diff options
239 files changed, 953 insertions, 441 deletions
diff --git a/.gitmodules b/.gitmodules index c7aa0f27e0..a86f9ffe7f 100644 --- a/.gitmodules +++ b/.gitmodules @@ -46,6 +46,10 @@ path = plugins/Bandwidth url = https://github.com/piwik/plugin-Bandwidth.git branch = master +[submodule "plugins/LoginLdap"] + path = plugins/LoginLdap + url = https://github.com/piwik/plugin-LoginLdap.git + branch = master # Add new Plugin submodule above this line ^^ diff --git a/.travis.yml b/.travis.yml index 463a521af5..08672b09a2 100644 --- a/.travis.yml +++ b/.travis.yml @@ -84,8 +84,6 @@ sudo: required script: $PIWIK_ROOT_DIR/tests/travis/travis.sh before_install: - # do not use the Zend allocator on PHP 5.3 since it will randomly segfault after program execution - - '[[ "$TRAVIS_PHP_VERSION" == 5.3* ]] && export USE_ZEND_ALLOC=0 || true' - ./tests/travis/install_git_lfs.sh install: @@ -96,9 +94,6 @@ install: - ./tests/travis/configure_git.sh - # disable tls for php 5.3 as openssl isn't available - - '[[ "$TRAVIS_PHP_VERSION" == 5.3* ]] && composer config -g -- disable-tls true || true' - # travis now complains about this failing 9 times out of 10, so removing it #- travis_retry composer self-update - '[ "$SKIP_COMPOSER_INSTALL" == "1" ] || travis_retry composer install' @@ -145,7 +140,7 @@ before_script: - ./tests/travis/prepare.sh - ./tests/travis/setup_webserver.sh - - if [[ "$TRAVIS_PHP_VERSION" != 5.3* ]]; then ./tests/travis/install_phantomjs.sh; export PATH=$PWD/travis_phantomjs/phantomjs-2.1.1-linux-x86_64/bin:$PATH; fi + - ./tests/travis/install_phantomjs.sh; export PATH=$PWD/travis_phantomjs/phantomjs-2.1.1-linux-x86_64/bin:$PATH; - cd tests/PHPUnit diff --git a/CHANGELOG.md b/CHANGELOG.md index 156e979540..2048c4b838 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -10,6 +10,8 @@ The Product Changelog at **[piwik.org/changelog](http://piwik.org/changelog)** l * A new event `Db.getActionReferenceColumnsByTable` has been added in case a plugin defines a custom log table which references data to the log_action table * A new JavaScript tracker method `getPiwikUrl` has been added to retrieve the URL of where the Piwik instance is located * A new JavaScript tracker method `getCurrentUrl` has been added to retrieve the current URL of the website. +* A new JavaScript tracker method `getNumTrackedPageViews` has been added to retrieve the number of tracked page views within the currently loaded page or web application. +* New JavaScript tracker methods `setSessionCookie`, `getCookie`, `hasCookies`, `getCookieDomain`, `getCookiePath`, and `getSessionCookieTimeout` have been added for better cookie support in plugins. ## Piwik 3.0.3 diff --git a/LEGALNOTICE b/LEGALNOTICE index 85bb53e12c..737525957a 100644 --- a/LEGALNOTICE +++ b/LEGALNOTICE @@ -270,7 +270,7 @@ THIRD-PARTY CONTENT License: GPL By: Alessandro Rei - http://www.kde-look.org/usermanager/search.php?username=mentalrey - Name: Material icons ("icon-info2" "icon-outline" "icon-settings", "icon-form") in plugins/Morpheus/fonts + Name: Material icons ("icon-info2", "icon-outline", "icon-settings", "icon-form", "icon-play", "icon-pause", "icon-replay", "icon-skip-next", "icon-skip-forward", "icon-stop", "icon-fast-forward", "icon-fast-rewind") in plugins/Morpheus/fonts Link: https://design.google.com/icons/ License: Apache License Version 2.0 diff --git a/core/Console.php b/core/Console.php index 7a7629443f..bb6f4f7eff 100644 --- a/core/Console.php +++ b/core/Console.php @@ -12,6 +12,7 @@ use Piwik\Application\Environment; use Piwik\Config\ConfigNotFoundException; use Piwik\Container\StaticContainer; use Piwik\Plugin\Manager as PluginManager; +use Piwik\Version; use Symfony\Bridge\Monolog\Handler\ConsoleHandler; use Symfony\Component\Console\Application; use Symfony\Component\Console\Command\Command; @@ -30,7 +31,7 @@ class Console extends Application { $this->setServerArgsIfPhpCgi(); - parent::__construct(); + parent::__construct('Piwik', Version::VERSION); $this->environment = $environment; diff --git a/core/Version.php b/core/Version.php index 5c0fe9f073..6c175843e0 100644 --- a/core/Version.php +++ b/core/Version.php @@ -20,7 +20,7 @@ final class Version * The current Piwik version. * @var string */ - const VERSION = '3.0.4-b1'; + const VERSION = '3.0.4-b3'; public function isStableVersion($version) { diff --git a/js/piwik.js b/js/piwik.js index c5a0e2351d..69c95ffe36 100644 --- a/js/piwik.js +++ b/js/piwik.js @@ -986,15 +986,15 @@ if (typeof JSON_PIWIK !== 'object' && typeof window.JSON === 'object' && window. setDownloadClasses, setLinkClasses, setCampaignNameKey, setCampaignKeywordKey, discardHashTag, - setCookieNamePrefix, setCookieDomain, setCookiePath, setVisitorIdCookie, - setVisitorCookieTimeout, setSessionCookieTimeout, setReferralCookieTimeout, + setCookieNamePrefix, setCookieDomain, setCookiePath, setVisitorIdCookie, getCookieDomain, hasCookies, setSessionCookie, + setVisitorCookieTimeout, setSessionCookieTimeout, setReferralCookieTimeout, getCookie, getCookiePath, getSessionCookieTimeout, setConversionAttributionFirstReferrer, tracker, request, disablePerformanceTracking, setGenerationTimeMs, doNotTrack, setDoNotTrack, msDoNotTrack, getValuesFromVisitorIdCookie, enableCrossDomainLinking, disableCrossDomainLinking, isCrossDomainLinkingEnabled, addListener, enableLinkTracking, enableJSErrorTracking, setLinkTrackingTimer, getLinkTrackingTimer, enableHeartBeatTimer, disableHeartBeatTimer, killFrame, redirectFile, setCountPreRendered, - trackGoal, trackLink, trackPageView, trackRequest, trackSiteSearch, trackEvent, + trackGoal, trackLink, trackPageView, getNumTrackedPageViews, trackRequest, trackSiteSearch, trackEvent, setEcommerceView, addEcommerceItem, trackEcommerceOrder, trackEcommerceCartUpdate, deleteCookie, deleteCookies, offsetTop, offsetLeft, offsetHeight, offsetWidth, nodeType, defaultView, innerHTML, scrollLeft, scrollTop, currentStyle, getComputedStyle, querySelectorAll, splice, @@ -1037,8 +1037,8 @@ if (typeof JSON_PIWIK !== 'object' && typeof window.JSON === 'object' && window. /*global AnalyticsTracker:true */ /*members initialize */ /*global define */ +/*global console */ /*members amd */ -/*global console:true */ /*members error */ /*members log */ @@ -1168,7 +1168,9 @@ if (typeof window.Piwik !== 'object') { * @param message */ function logConsoleError(message) { - if (console !== undefined && console && console.error) { + // needed to write it this way for jslint + var consoleType = typeof console; + if (consoleType !== 'undefined' && console && console.error) { console.error(message); } } @@ -3186,7 +3188,13 @@ if (typeof window.Piwik !== 'object') { // Domain hash value domainHash, - configIdPageView; + configIdPageView, + + // we measure how many pageviews have been tracked so plugins can use it to eg detect if a + // pageview was already tracked or not + numTrackedPageviews = 0, + + configCookiesToDelete = ['id', 'ses', 'cvar', 'ref']; // Document title try { @@ -4025,11 +4033,10 @@ if (typeof window.Piwik !== 'object') { // Temporarily allow cookies just to delete the existing ones configCookiesDisabled = false; - var cookiesToDelete = ['id', 'ses', 'cvar', 'ref']; var index, cookieName; - for (index = 0; index < cookiesToDelete.length; index++) { - cookieName = getCookieName(cookiesToDelete[index]); + for (index = 0; index < configCookiesToDelete.length; index++) { + cookieName = getCookieName(configCookiesToDelete[index]); if (0 !== getCookie(cookieName)) { deleteCookie(cookieName, configCookiePath, configCookieDomain); } @@ -5523,9 +5530,6 @@ if (typeof window.Piwik !== 'object') { this.getDomains = function () { return configHostsAlias; }; - this.getConfigCookiePath = function () { - return configCookiePath; - }; this.getConfigIdPageView = function () { return configIdPageView; }; @@ -6254,7 +6258,59 @@ if (typeof window.Piwik !== 'object') { }; /** - * Set first-party cookie path + * Get first-party cookie domain + */ + this.getCookieDomain = function () { + return configCookieDomain; + }; + + /** + * Detect if cookies are enabled and supported by browser. + */ + this.hasCookies = function () { + return '1' === hasCookies(); + }; + + /** + * Set a first-party cookie for the duration of the session. + * + * @param string cookieName + * @param string cookieValue + * @param int msToExpire Defaults to session cookie timeout + */ + this.setSessionCookie = function (cookieName, cookieValue, msToExpire) { + if (!cookieName) { + throw new Error('Missing cookie name'); + } + + if (!isDefined(msToExpire)) { + msToExpire = configSessionCookieTimeout; + } + + configCookiesToDelete.push(cookieName); + + setCookie(getCookieName(cookieName), cookieValue, msToExpire, configCookiePath, configCookieDomain); + }; + + /** + * Get first-party cookie value. + * + * Returns null if cookies are disabled or if no cookie could be found for this name. + * + * @param string cookieName + */ + this.getCookie = function (cookieName) { + var cookieValue = getCookie(getCookieName(cookieName)); + + if (cookieValue === 0) { + return null; + } + + return cookieValue; + }; + + /** + * Set first-party cookie path. * * @param string domain */ @@ -6264,6 +6320,15 @@ if (typeof window.Piwik !== 'object') { }; /** + * Get first-party cookie path. + * + * @param string domain + */ + this.getCookiePath = function (path) { + return configCookiePath; + }; + + /** * Set visitor cookie timeout (in seconds) * Defaults to 13 months (timeout=33955200) * @@ -6284,6 +6349,13 @@ if (typeof window.Piwik !== 'object') { }; /** + * Get session cookie timeout (in seconds). + */ + this.getSessionCookieTimeout = function () { + return configSessionCookieTimeout; + }; + + /** * Set referral cookie timeout (in seconds). * Defaults to 6 months (15768000000) * @@ -6543,6 +6615,13 @@ if (typeof window.Piwik !== 'object') { }; /** + * Get the number of page views that have been tracked so far within the currently loaded page. + */ + this.getNumTrackedPageViews = function () { + return numTrackedPageviews; + }; + + /** * Log visit to this page * * @param string customTitle @@ -6558,6 +6637,7 @@ if (typeof window.Piwik !== 'object') { }); } else { trackCallback(function () { + numTrackedPageviews++; logPageView(customTitle, customData, callback); }); } @@ -6767,7 +6847,9 @@ if (typeof window.Piwik !== 'object') { var contentNodes = content.findContentNodes(); var contents = content.collectContent(contentNodes); - if (console !== undefined && console && console.log) { + // needed to write it this way for jslint + var consoleType = typeof console; + if (consoleType !== 'undefined' && console && console.log) { console.log(contents); } }; @@ -7277,7 +7359,9 @@ if (typeof window.Piwik !== 'object') { window.Piwik.addTracker(); } else { _paq = {push: function (args) { - if (console !== undefined && console && console.error) { + // needed to write it this way for jslint + var consoleType = typeof console; + if (consoleType !== 'undefined' && console && console.error) { console.error('_paq.push() was used but Piwik tracker was not initialized before the piwik.js file was loaded. Make sure to configure the tracker via _paq.push before loading piwik.js. Alternatively, you can create a tracker via Piwik.addTracker() manually and then use _paq.push but it may not fully work as tracker methods may not be executed in the correct order.', args); } }}; diff --git a/js/piwik.min.js b/js/piwik.min.js index c876ba8251..0a50b8285e 100644 --- a/js/piwik.min.js +++ b/js/piwik.min.js @@ -19,7 +19,7 @@ var I="000000";var t=function(ac,ad){return(I+(ad||0)).slice(-ac)};var z="\\u00" ad.length<af;ad+=" "){}}}else{if(ai==O){ad=af.length<=10?af:af.slice(0,10)}}}return p("",(ak={},ak[""]=ac,ak),al,aj,ad,"",[])}}if(!o("json-parse")){var M=R.fromCharCode;var l={92:"\\",34:'"',47:"/",98:"\b",116:"\t",110:"\n",102:"\f",114:"\r"};var G,X;var H=function(){G=X=null;throw T()};var y=function(){var ah=X,af=ah.length,ag,ae,ac,ai,ad;while(G<af){ad=ah.charCodeAt(G);switch(ad){case 9:case 10:case 13:case 32:G++;break;case 123:case 125:case 91:case 93:case 58:case 44:ag=F?ah.charAt(G):ah[G];G++;return ag;case 34:for(ag="@",G++;G<af;){ad=ah.charCodeAt(G);if(ad<32){H()}else{if(ad==92){ad=ah.charCodeAt(++G);switch(ad){case 92:case 34:case 47:case 98:case 116:case 110:case 102:case 114:ag+=l[ad];G++;break;case 117:ae=++G;for(ac=G+4;G<ac;G++){ad=ah.charCodeAt(G);if(!(ad>=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<af&&((ad=ah.charCodeAt(G)),ad>=48&&ad<=57);G++){}if(ah.charCodeAt(G)==46){ac=++G;for(;ac<af&&((ad=ah.charCodeAt(ac)),ad>=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<af&&((ad=ah.charCodeAt(ac)),ad>=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.Piwik=(function(){var p,a={},v={},D=document,g=navigator,T=screen,Q=window,h=Q.performance||Q.mozPerformance||Q.msPerformance||Q.webkitPerformance,r=Q.encodeURIComponent,P=Q.decodeURIComponent,k=unescape,F=[],B,d,aa=[]; -function n(ah){try{return P(ah)}catch(ai){return unescape(ah)}}function G(ai){var ah=typeof ai;return ah!=="undefined"}function x(ah){return typeof ah==="function"}function S(ah){return typeof ah==="object"}function u(ah){return typeof ah==="string"||ah instanceof String}function y(ai){if(!ai){return true}var ah;var aj=true;for(ah in ai){if(Object.prototype.hasOwnProperty.call(ai,ah)){aj=false}}return aj}function ad(ah){if(console!==undefined&&console&&console.error){console.error(ah)}}function Z(){var am,al,ao,ai,ah;for(am=0;am<arguments.length;am+=1){ah=null;if(arguments[am]&&arguments[am].slice){ah=arguments[am].slice()}ai=arguments[am];ao=ai.shift();var an,aj;var ak=u(ao)&&ao.indexOf("::")>0;if(ak){an=ao.split("::");aj=an[0];ao=an[1];if("object"===typeof d[aj]&&"function"===typeof d[aj][ao]){d[aj][ao].apply(d[aj],ai)}else{if(ah){aa.push(ah)}}}else{for(al=0;al<F.length;al++){if(u(ao)){aj=F[al];var ap=ao.indexOf(".")>0;if(ap){an=ao.split(".");if(aj&&"object"===typeof aj[an[0]]){aj=aj[an[0]]; +function n(ah){try{return P(ah)}catch(ai){return unescape(ah)}}function G(ai){var ah=typeof ai;return ah!=="undefined"}function x(ah){return typeof ah==="function"}function S(ah){return typeof ah==="object"}function u(ah){return typeof ah==="string"||ah instanceof String}function y(ai){if(!ai){return true}var ah;var aj=true;for(ah in ai){if(Object.prototype.hasOwnProperty.call(ai,ah)){aj=false}}return aj}function ad(ah){var ai=typeof console;if(ai!=="undefined"&&console&&console.error){console.error(ah)}}function Z(){var am,al,ao,ai,ah;for(am=0;am<arguments.length;am+=1){ah=null;if(arguments[am]&&arguments[am].slice){ah=arguments[am].slice()}ai=arguments[am];ao=ai.shift();var an,aj;var ak=u(ao)&&ao.indexOf("::")>0;if(ak){an=ao.split("::");aj=an[0];ao=an[1];if("object"===typeof d[aj]&&"function"===typeof d[aj][ao]){d[aj][ao].apply(d[aj],ai)}else{if(ah){aa.push(ah)}}}else{for(al=0;al<F.length;al++){if(u(ao)){aj=F[al];var ap=ao.indexOf(".")>0;if(ap){an=ao.split(".");if(aj&&"object"===typeof aj[an[0]]){aj=aj[an[0]]; ao=an[1]}else{if(ah){aa.push(ah);break}}}if(aj[ao]){aj[ao].apply(aj,ai)}else{var aq="The method '"+ao+'\' was not found in "_paq" variable. Please have a look at the Piwik tracker documentation: http://developer.piwik.org/api-reference/tracking-javascript';ad(aq);if(!ap){throw new TypeError(aq)}}if(ao==="addTracker"){break}if(ao==="setTrackerUrl"||ao==="setSiteId"){break}}else{ao.apply(F[al],ai)}}}}}function ag(ak,aj,ai,ah){if(ak.addEventListener){ak.addEventListener(aj,ai,ah);return true}if(ak.attachEvent){return ak.attachEvent("on"+aj,ai)}ak["on"+aj]=ai}function l(ah){if(D.readyState==="complete"){ah()}else{if(Q.addEventListener){Q.addEventListener("load",ah)}else{if(Q.attachEvent){Q.attachEvent("onload",ah)}}}}function o(ak){var ah=false;if(D.attachEvent){ah=D.readyState==="complete"}else{ah=D.readyState!=="loading"}if(ah){ak();return}var aj;if(D.addEventListener){ag(D,"DOMContentLoaded",function ai(){D.removeEventListener("DOMContentLoaded",ai,false);if(!ah){ah=true;ak()}})}else{if(D.attachEvent){D.attachEvent("onreadystatechange",function ai(){if(D.readyState==="complete"){D.detachEvent("onreadystatechange",ai); if(!ah){ah=true;ak()}}});if(D.documentElement.doScroll&&Q===Q.top){(function ai(){if(!ah){try{D.documentElement.doScroll("left")}catch(al){setTimeout(ai,0);return}ah=true;ak()}}())}}}ag(Q,"load",function(){if(!ah){ah=true;ak()}},false)}function W(ai,an,ao){if(!ai){return""}var ah="",ak,aj,al,am;for(ak in a){if(Object.prototype.hasOwnProperty.call(a,ak)){am=a[ak]&&"function"===typeof a[ak][ai];if(am){aj=a[ak][ai];al=aj(an||{},ao);if(al){ah+=al}}}}return ah}function ab(){var ah;W("unload");if(p){do{ah=new Date()}while(ah.getTimeAlias()<p)}}function m(aj,ai){var ah=D.createElement("script");ah.type="text/javascript";ah.src=aj;if(ah.readyState){ah.onreadystatechange=function(){var ak=this.readyState;if(ak==="loaded"||ak==="complete"){ah.onreadystatechange=null;ai()}}}else{ah.onload=ai}D.getElementsByTagName("head")[0].appendChild(ah)}function H(){var ah="";try{ah=Q.top.document.referrer}catch(aj){if(Q.parent){try{ah=Q.parent.document.referrer}catch(ai){ah=""}}}if(ah===""){ah=D.referrer}return ah }function q(ah){var aj=new RegExp("^([a-z]+):"),ai=aj.exec(ah);return ai?ai[1]:null}function c(ah){var aj=new RegExp("^(?:(?:https?|ftp):)/*(?:[^@]+@)?([^:/#]+)"),ai=aj.exec(ah);return ai?ai[1]:ah}function ac(ai,ah){ai=String(ai);return ai.lastIndexOf(ah,0)===0}function O(ai,ah){ai=String(ai);return ai.indexOf(ah,ai.length-ah.length)!==-1}function w(ai,ah){ai=String(ai);return ai.indexOf(ah)!==-1}function f(ai,ah){ai=String(ai);return ai.substr(0,ai.length-ah)}function C(ak,aj,am){ak=String(ak);if(!am){am=""}var ah=ak.indexOf("#");var an=ak.length;if(ah===-1){ah=an}var al=ak.substr(0,ah);var ai=ak.substr(ah,an-ah);if(al.indexOf("?")===-1){al+="?"}else{if(!O(al,"?")){al+="&"}}return al+r(aj)+"="+r(am)+ai}function j(ai,aj){ai=String(ai);if(ai.indexOf("?"+aj+"=")===-1&&ai.indexOf("&"+aj+"=")===-1){return ai}var ak=ai.indexOf("?");if(ak===-1){return ai}var ah=ai.substr(ak+1);var ao=ai.substr(0,ak);if(ah){var ap="";var ar=ah.indexOf("#");if(ar!==-1){ap=ah.substr(ar+1);ah=ah.substr(0,ar)}var al; @@ -38,39 +38,39 @@ var aj=this.findMediaUrlInNode(ah);if(aj){return this.toAbsoluteUrl(aj)}},findCo }var ai=ak.clientWidth;if(Q.innerWidth&&ai>Q.innerWidth){ai=Q.innerWidth}var ah=ak.clientHeight;if(Q.innerHeight&&ah>Q.innerHeight){ah=Q.innerHeight}return((al.bottom>0||aj)&&al.right>0&&al.left<ai&&((al.top<ah)||aj))},isNodeVisible:function(ai){var ah=i(ai);var aj=this.isOrWasNodeInViewport(ai);return ah&&aj},buildInteractionRequestParams:function(ah,ai,aj,ak){var al="";if(ah){al+="c_i="+r(ah)}if(ai){if(al){al+="&"}al+="c_n="+r(ai)}if(aj){if(al){al+="&"}al+="c_p="+r(aj)}if(ak){if(al){al+="&"}al+="c_t="+r(ak)}return al},buildImpressionRequestParams:function(ah,ai,aj){var ak="c_n="+r(ah)+"&c_p="+r(ai);if(aj){ak+="&c_t="+r(aj)}return ak},buildContentBlock:function(aj){if(!aj){return}var ah=this.findContentName(aj);var ai=this.findContentPiece(aj);var ak=this.findContentTarget(aj);ah=this.trim(ah);ai=this.trim(ai);ak=this.trim(ak);return{name:ah||"Unknown",piece:ai||"Unknown",target:ak||""}},collectContent:function(ak){if(!ak||!ak.length){return[]}var aj=[];var ah,ai;for(ah=0;ah<ak.length; ah++){ai=this.buildContentBlock(ak[ah]);if(G(ai)){aj.push(ai)}}return aj},setLocation:function(ah){this.location=ah},getLocation:function(){var ah=this.location||Q.location;if(!ah.origin){ah.origin=ah.protocol+"//"+ah.hostname+(ah.port?":"+ah.port:"")}return ah},toAbsoluteUrl:function(ai){if((!ai||String(ai)!==ai)&&ai!==""){return ai}if(""===ai){return this.getLocation().href}if(ai.search(/^\/\//)!==-1){return this.getLocation().protocol+ai}if(ai.search(/:\/\//)!==-1){return ai}if(0===ai.indexOf("#")){return this.getLocation().origin+this.getLocation().pathname+ai}if(0===ai.indexOf("?")){return this.getLocation().origin+this.getLocation().pathname+ai}if(0===ai.search("^[a-zA-Z]{2,11}:")){return ai}if(ai.search(/^\//)!==-1){return this.getLocation().origin+ai}var ah="(.*/)";var aj=this.getLocation().origin+this.getLocation().pathname.match(new RegExp(ah))[0];return aj+ai},isUrlToCurrentDomain:function(ai){var aj=this.toAbsoluteUrl(ai);if(!aj){return false}var ah=this.getLocation().origin; if(ah===aj){return true}if(0===String(aj).indexOf(ah)){if(":"===String(aj).substr(ah.length,1)){return false}return true}return false},setHrefAttribute:function(ai,ah){if(!ai||!ah){return}Y.setAnyAttribute(ai,"href",ah)},shouldIgnoreInteraction:function(aj){var ai=Y.hasNodeAttribute(aj,this.CONTENT_IGNOREINTERACTION_ATTR);var ah=Y.hasNodeCssClass(aj,this.CONTENT_IGNOREINTERACTION_CLASS);return ai||ah}};function L(ai,al){if(al){return al}ai=t.toAbsoluteUrl(ai);if(w(ai,"?")){var ak=ai.indexOf("?");ai=ai.slice(0,ak)}if(O(ai,"piwik.php")){ai=f(ai,"piwik.php".length)}else{if(O(ai,".php")){var ah=ai.lastIndexOf("/");var aj=1;ai=ai.slice(0,ah+aj)}}if(O(ai,"/js/")){ai=f(ai,"js/".length)}return ai}function K(an){var ap="Piwik_Overlay";var ai=new RegExp("index\\.php\\?module=Overlay&action=startOverlaySession&idSite=([0-9]+)&period=([^&]+)&date=([^&]+)(&segment=.*)?$");var aj=ai.exec(D.referrer);if(aj){var al=aj[1];if(al!==String(an)){return false}var am=aj[2],ah=aj[3],ak=aj[4];if(!ak){ak=""}else{if(ak.indexOf("&segment=")===0){ak=ak.substr("&segment=".length) -}}Q.name=ap+"###"+am+"###"+ah+"###"+ak}var ao=Q.name.split("###");return ao.length===4&&ao[0]===ap}function U(ai,ao,ak){var an=Q.name.split("###"),am=an[1],ah=an[2],al=an[3],aj=L(ai,ao);m(aj+"plugins/Overlay/client/client.js?v=1",function(){Piwik_Overlay_Client.initialize(aj,ak,am,ah,al)})}function s(){var aj;try{aj=Q.frameElement}catch(ai){return true}if(G(aj)){return(aj&&String(aj.nodeName).toLowerCase()==="iframe")?true:false}try{return Q.self!==Q.top}catch(ah){return true}}function N(bV,bP){var bq=this,bL=V(D.domain,Q.location.href,H()),cw=I(bL[0]),bv=n(bL[1]),a9=n(bL[2]),cu=false,bZ="GET",cJ=bZ,az="application/x-www-form-urlencoded; charset=UTF-8",cd=az,av=bV||"",bp="",cA="",bN=bP||"",bi="",bw="",aT,a5="",cG=["7z","aac","apk","arc","arj","asf","asx","avi","azw3","bin","csv","deb","dmg","doc","docx","epub","exe","flv","gif","gz","gzip","hqx","ibooks","jar","jpg","jpeg","js","mobi","mp2","mp3","mp4","mpg","mpeg","mov","movie","msi","msp","odb","odf","odg","ods","odt","ogg","ogv","pdf","phps","png","ppt","pptx","qt","qtm","ra","ram","rar","rpm","sea","sit","tar","tbz","tbz2","bz","bz2","tgz","torrent","txt","wav","wma","wmv","wpd","xls","xlsx","xml","z","zip"],ao=[cw],bj=[],bt=[],aW=[],br=500,cm,aU,bz,bx,ah,b8=["pk_campaign","piwik_campaign","utm_campaign","utm_source","utm_medium"],bo=["pk_kwd","piwik_kwd","utm_term"],a6="_pk_",an="pk_vid",cy,bb,a7=false,cs,a1,bf,cn=33955200000,b6=1800000,cF=15768000000,aR=true,b4=0,by=false,aG=false,bS,bD={},b3={},a8={},be=200,cB={},cH={},bR=[],bW=false,cg=false,ai=false,cI=false,cp=false,aE=false,a0=s(),cz=null,bT,aH,bk,bO=af,ba,aB; -try{a5=D.title}catch(ce){a5=""}function cM(cX,cU,cT,cW,cS,cV){if(a7){return}var cR;if(cT){cR=new Date();cR.setTime(cR.getTime()+cT)}D.cookie=cX+"="+r(cU)+(cT?";expires="+cR.toGMTString():"")+";path="+(cW||"/")+(cS?";domain="+cS:"")+(cV?";secure":"")}function au(cT){if(a7){return 0}var cR=new RegExp("(^|;)[ ]*"+cT+"=([^;]*)"),cS=cR.exec(D.cookie);return cS?P(cS[2]):0}function bJ(cR){var cS;cR=j(cR,an);if(bx){cS=new RegExp("#.*");return cR.replace(cS,"")}return cR}function bC(cT,cR){var cU=q(cR),cS;if(cU){return cR}if(cR.slice(0,1)==="/"){return q(cT)+"://"+c(cT)+cR}cT=bJ(cT);cS=cT.indexOf("?");if(cS>=0){cT=cT.slice(0,cS)}cS=cT.lastIndexOf("/");if(cS!==cT.length-1){cT=cT.slice(0,cS+1)}return cT+cR}function cl(cT,cR){var cS;cT=String(cT).toLowerCase();cR=String(cR).toLowerCase();if(cT===cR){return true}if(cR.slice(0,1)==="."){if(cT===cR.slice(1)){return true}cS=cT.length-cR.length;if((cS>0)&&(cT.slice(cS)===cR)){return true}}return false}function b2(cR){var cS=document.createElement("a");if(cR.indexOf("//")!==0&&cR.indexOf("http")!==0){if(cR.indexOf("*")===0){cR=cR.substr(1) -}if(cR.indexOf(".")===0){cR=cR.substr(1)}cR="http://"+cR}cS.href=t.toAbsoluteUrl(cR);if(cS.pathname){return cS.pathname}return""}function aS(cS,cR){if(!ac(cR,"/")){cR="/"+cR}if(!ac(cS,"/")){cS="/"+cS}var cT=(cR==="/"||cR==="/*");if(cT){return true}if(cS===cR){return true}cR=String(cR).toLowerCase();cS=String(cS).toLowerCase();if(O(cR,"*")){cR=cR.slice(0,-1);cT=(!cR||cR==="/");if(cT){return true}if(cS===cR){return true}return cS.indexOf(cR)===0}if(!O(cS,"/")){cS+="/"}if(!O(cR,"/")){cR+="/"}return cS.indexOf(cR)===0}function ak(cV,cX){var cS,cR,cT,cU,cW;for(cS=0;cS<ao.length;cS++){cU=I(ao[cS]);cW=b2(ao[cS]);if(cl(cV,cU)&&aS(cX,cW)){return true}}return false}function aL(cU){var cS,cR,cT;for(cS=0;cS<ao.length;cS++){cR=I(ao[cS].toLowerCase());if(cU===cR){return true}if(cR.slice(0,1)==="."){if(cU===cR.slice(1)){return true}cT=cU.length-cR.length;if((cT>0)&&(cU.slice(cT)===cR)){return true}}}return false}function b7(cR,cT){var cS=new Image(1,1);cS.onload=function(){B=0;if(typeof cT==="function"){cT() -}};cR=cR.replace("send_image=0","send_image=1");cS.src=av+(av.indexOf("?")<0?"?":"&")+cR}function cE(cS,cV,cR){if(!G(cR)||null===cR){cR=true}try{var cU=Q.XMLHttpRequest?new Q.XMLHttpRequest():Q.ActiveXObject?new ActiveXObject("Microsoft.XMLHTTP"):null;cU.open("POST",av,true);cU.onreadystatechange=function(){if(this.readyState===4&&!(this.status>=200&&this.status<300)&&cR){b7(cS,cV)}else{if(this.readyState===4&&(typeof cV==="function")){cV()}}};cU.setRequestHeader("Content-Type",cd);cU.send(cS)}catch(cT){if(cR){b7(cS,cV)}}}function bX(cS){var cR=new Date();var cT=cR.getTime()+cS;if(!p||cT>p){p=cT}}function b5(cR){if(bT||!aU){return}bT=setTimeout(function cS(){bT=null;if(!a0){a0=(!D.hasFocus||D.hasFocus())}if(!a0){b5(aU);return}if(bz()){return}var cT=new Date(),cU=aU-(cT.getTime()-cz);cU=Math.min(aU,cU);b5(cU)},cR||aU)}function bs(){if(!bT){return}clearTimeout(bT);bT=null}function aY(){a0=true;if(bz()){return}b5()}function ap(){bs()}function cO(){if(aE||!aU){return}aE=true;ag(Q,"focus",aY); -ag(Q,"blur",ap);b5()}function ch(cV){var cS=new Date();var cR=cS.getTime();cz=cR;if(cg&&cR<cg){var cT=cg-cR;setTimeout(cV,cT);bX(cT+50);cg+=50;return}if(cg===false){var cU=800;cg=cR+cU}cV()}function bn(cS,cR,cT){if(!cs&&cS){ch(function(){if(cJ==="POST"||String(cS).length>2000){cE(cS,cT)}else{b7(cS,cT)}bX(cR)})}if(!aE){cO()}else{b5()}}function b1(cR){if(cs){return false}return(cR&&cR.length)}function cN(cT,cR){if(!b1(cT)){return}var cS='{"requests":["?'+cT.join('","?')+'"]}';ch(function(){cE(cS,null,false);bX(cR)})}function aJ(cR){return a6+cR+"."+bN+"."+ba}function bM(){if(a7){return"0"}if(!G(g.cookieEnabled)){var cR=aJ("testcookie");cM(cR,"1");return au(cR)==="1"?"1":"0"}return g.cookieEnabled?"1":"0"}function a4(){ba=bO((cy||cw)+(bb||"/")).slice(0,4)}function bE(){var cS=aJ("cvar"),cR=au(cS);if(cR.length){cR=JSON_PIWIK.parse(cR);if(S(cR)){return cR}}return{}}function ci(){if(aG===false){aG=bE()}}function ct(){return bO((g.userAgent||"")+(g.platform||"")+JSON_PIWIK.stringify(cH)+(new Date()).getTime()+Math.random()).slice(0,16) -}function aq(){return bO((g.userAgent||"")+(g.platform||"")+JSON_PIWIK.stringify(cH)).slice(0,6)}function a2(){return Math.floor((new Date()).getTime()/1000)}function aA(){var cS=a2();var cT=aq();var cR=String(cS)+cT;return cR}function cD(cU){cU=String(cU);var cX=aq();var cV=cX.length;var cW=cU.substr(-1*cV,cV);var cT=parseInt(cU.substr(0,cU.length-cV),10);if(cT&&cW&&cW===cX){var cR=a2();var cS=45;if(cR>=cT&&cR<=(cT+cS)){return true}}return false}function cP(cR){if(!cp){return""}var cV=e(cR,an);if(!cV){return""}cV=String(cV);var cT=new RegExp("^[a-zA-Z0-9]+$");if(cV.length===32&&cT.test(cV)){var cS=cV.substr(16,32);if(cD(cS)){var cU=cV.substr(0,16);return cU}}return""}function cq(){if(!bw){bw=cP(bv)}var cT=new Date(),cR=Math.round(cT.getTime()/1000),cS=aJ("id"),cW=au(cS),cV,cU;if(cW){cV=cW.split(".");cV.unshift("0");if(bw.length){cV[1]=bw}return cV}if(bw.length){cU=bw}else{if("0"===bM()){cU=""}else{cU=ct()}}cV=["1",cU,cR,0,cR,"",""];return cV}function aN(){var cY=cq(),cU=cY[0],cV=cY[1],cS=cY[2],cR=cY[3],cW=cY[4],cT=cY[5]; -if(!G(cY[6])){cY[6]=""}var cX=cY[6];return{newVisitor:cU,uuid:cV,createTs:cS,visitCount:cR,currentVisitTs:cW,lastVisitTs:cT,lastEcommerceOrderTs:cX}}function ay(){var cU=new Date(),cS=cU.getTime(),cV=aN().createTs;var cR=parseInt(cV,10);var cT=(cR*1000)+cn-cS;return cT}function aC(cR){if(!bN){return}var cT=new Date(),cS=Math.round(cT.getTime()/1000);if(!G(cR)){cR=aN()}var cU=cR.uuid+"."+cR.createTs+"."+cR.visitCount+"."+cS+"."+cR.lastVisitTs+"."+cR.lastEcommerceOrderTs;cM(aJ("id"),cU,ay(),bb,cy)}function bu(){var cR=au(aJ("ref"));if(cR.length){try{cR=JSON_PIWIK.parse(cR);if(S(cR)){return cR}}catch(cS){}}return["","",0,""]}function bF(cT,cS,cR){cM(cT,"",-86400,cS,cR)}function bg(cS){var cR="testvalue";cM("test",cR,10000,null,cS);if(au("test")===cR){bF("test",null,cS);return true}return false}function aw(){var cT=a7;a7=false;var cR=["id","ses","cvar","ref"];var cS,cU;for(cS=0;cS<cR.length;cS++){cU=aJ(cR[cS]);if(0!==au(cU)){bF(cU,bb,cy)}}a7=cT}function bK(cR){bN=cR;aC()}function cQ(cV){if(!cV||!S(cV)){return -}var cU=[];var cT;for(cT in cV){if(Object.prototype.hasOwnProperty.call(cV,cT)){cU.push(cT)}}var cW={};cU.sort();var cR=cU.length;var cS;for(cS=0;cS<cR;cS++){cW[cU[cS]]=cV[cU[cS]]}return cW}function bU(){cM(aJ("ses"),"*",b6,bb,cy)}function a3(){var cU="";var cS="abcdefghijklmnopqrstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ";var cT=cS.length;var cR;for(cR=0;cR<6;cR++){cU+=cS.charAt(Math.floor(Math.random()*cT))}return cU}function b9(cT,de,df,cU){var dd,cS=new Date(),c1=Math.round(cS.getTime()/1000),cY,dc,cV=1024,dk,c2,da=aG,cW=aJ("ses"),c8=aJ("ref"),c5=aJ("cvar"),c6=au(cW),db=bu(),dh=aT||bv,cZ,cR;if(a7){aw()}if(cs){return""}var c7=aN();if(!G(cU)){cU=""}var c4=D.characterSet||D.charset;if(!c4||c4.toLowerCase()==="utf-8"){c4=null}cZ=db[0];cR=db[1];cY=db[2];dc=db[3];if(!c6){var dg=b6/1000;if(!c7.lastVisitTs||(c1-c7.lastVisitTs)>dg){c7.visitCount++;c7.lastVisitTs=c7.currentVisitTs}if(!bf||!cZ.length){for(dd in b8){if(Object.prototype.hasOwnProperty.call(b8,dd)){cZ=e(dh,b8[dd]);if(cZ.length){break -}}}for(dd in bo){if(Object.prototype.hasOwnProperty.call(bo,dd)){cR=e(dh,bo[dd]);if(cR.length){break}}}}dk=c(a9);c2=dc.length?c(dc):"";if(dk.length&&!aL(dk)&&(!bf||!c2.length||aL(c2))){dc=a9}if(dc.length||cZ.length){cY=c1;db=[cZ,cR,cY,bJ(dc.slice(0,cV))];cM(c8,JSON_PIWIK.stringify(db),cF,bb,cy)}}cT+="&idsite="+bN+"&rec=1&r="+String(Math.random()).slice(2,8)+"&h="+cS.getHours()+"&m="+cS.getMinutes()+"&s="+cS.getSeconds()+"&url="+r(bJ(dh))+(a9.length?"&urlref="+r(bJ(a9)):"")+((bi&&bi.length)?"&uid="+r(bi):"")+"&_id="+c7.uuid+"&_idts="+c7.createTs+"&_idvc="+c7.visitCount+"&_idn="+c7.newVisitor+(cZ.length?"&_rcn="+r(cZ):"")+(cR.length?"&_rck="+r(cR):"")+"&_refts="+cY+"&_viewts="+c7.lastVisitTs+(String(c7.lastEcommerceOrderTs).length?"&_ects="+c7.lastEcommerceOrderTs:"")+(String(dc).length?"&_ref="+r(bJ(dc.slice(0,cV))):"")+(c4?"&cs="+r(c4):"")+"&send_image=0";for(dd in cH){if(Object.prototype.hasOwnProperty.call(cH,dd)){cT+="&"+dd+"="+cH[dd]}}var dj=[];if(de){for(dd in de){if(Object.prototype.hasOwnProperty.call(de,dd)&&/^dimension\d+$/.test(dd)){var cX=dd.replace("dimension",""); -dj.push(parseInt(cX,10));dj.push(String(cX));cT+="&"+dd+"="+de[dd];delete de[dd]}}}if(de&&y(de)){de=null}for(dd in a8){if(Object.prototype.hasOwnProperty.call(a8,dd)){var c3=(-1===J(dj,dd));if(c3){cT+="&dimension"+dd+"="+a8[dd]}}}if(de){cT+="&data="+r(JSON_PIWIK.stringify(de))}else{if(ah){cT+="&data="+r(JSON_PIWIK.stringify(ah))}}function c0(dl,dm){var dn=JSON_PIWIK.stringify(dl);if(dn.length>2){return"&"+dm+"="+r(dn)}return""}var di=cQ(bD);var c9=cQ(b3);cT+=c0(di,"cvar");cT+=c0(c9,"e_cvar");if(aG){cT+=c0(aG,"_cvar");for(dd in da){if(Object.prototype.hasOwnProperty.call(da,dd)){if(aG[dd][0]===""||aG[dd][1]===""){delete aG[dd]}}}if(by){cM(c5,JSON_PIWIK.stringify(aG),b6,bb,cy)}}if(aR){if(b4){cT+=">_ms="+b4}else{if(h&&h.timing&&h.timing.requestStart&&h.timing.responseEnd){cT+=">_ms="+(h.timing.responseEnd-h.timing.requestStart)}}}if(aB){cT+="&pv_id="+aB}c7.lastEcommerceOrderTs=G(cU)&&String(cU).length?cU:c7.lastEcommerceOrderTs;aC(c7);bU();cT+=W(df,{tracker:bq,request:cT});if(cA.length){cT+="&"+cA -}if(x(bS)){cT=bS(cT)}return cT}bz=function aV(){var cR=new Date();if(cz+aU<=cR.getTime()){var cS=b9("ping=1",null,"ping");bn(cS,br);return true}return false};function bc(cU,cT,cZ,cV,cR,c2){var cX="idgoal=0",cY,cS=new Date(),c0=[],c1,cW=String(cU).length;if(cW){cX+="&ec_id="+r(cU);cY=Math.round(cS.getTime()/1000)}cX+="&revenue="+cT;if(String(cZ).length){cX+="&ec_st="+cZ}if(String(cV).length){cX+="&ec_tx="+cV}if(String(cR).length){cX+="&ec_sh="+cR}if(String(c2).length){cX+="&ec_dt="+c2}if(cB){for(c1 in cB){if(Object.prototype.hasOwnProperty.call(cB,c1)){if(!G(cB[c1][1])){cB[c1][1]=""}if(!G(cB[c1][2])){cB[c1][2]=""}if(!G(cB[c1][3])||String(cB[c1][3]).length===0){cB[c1][3]=0}if(!G(cB[c1][4])||String(cB[c1][4]).length===0){cB[c1][4]=1}c0.push(cB[c1])}}cX+="&ec_items="+r(JSON_PIWIK.stringify(c0))}cX=b9(cX,ah,"ecommerce",cY);bn(cX,br);if(cW){cB={}}}function bG(cR,cV,cU,cT,cS,cW){if(String(cR).length&&G(cV)){bc(cR,cV,cU,cT,cS,cW)}}function bd(cR){if(G(cR)){bc("",cR,"","","","")}}function bH(cS,cU,cT){aB=a3(); -var cR=b9("action_name="+r(ae(cS||a5)),cU,"log");bn(cR,br,cT)}function aP(cT,cS){var cU,cR="(^| )(piwik[_-]"+cS;if(cT){for(cU=0;cU<cT.length;cU++){cR+="|"+cT[cU]}}cR+=")( |$)";return new RegExp(cR)}function aK(cR){return(av&&cR&&0===String(cR).indexOf(av))}function ca(cV,cR,cW,cS){if(aK(cR)){return 0}var cU=aP(bt,"download"),cT=aP(aW,"link"),cX=new RegExp("\\.("+cG.join("|")+")([?&#]|$)","i");if(cT.test(cV)){return"link"}if(cS||cU.test(cV)||cX.test(cR)){return"download"}if(cW){return 0}return"link"}function al(cS){var cR;cR=cS.parentNode;while(cR!==null&&G(cR)){if(Y.isLinkElement(cS)){break}cS=cR;cR=cS.parentNode}return cS}function cK(cW){cW=al(cW);if(!Y.hasNodeAttribute(cW,"href")){return}if(!G(cW.href)){return}var cV=Y.getAttributeValueFromNode(cW,"href");if(aK(cV)){return}var cS=cW.pathname||b2(cW.href);var cX=cW.hostname||c(cW.href);var cY=cX.toLowerCase();var cT=cW.href.replace(cX,cY);var cU=new RegExp("^(javascript|vbscript|jscript|mocha|livescript|ecmascript|mailto|tel):","i");if(!cU.test(cT)){var cR=ca(cW.className,cT,ak(cY,cS),Y.hasNodeAttribute(cW,"download")); -if(cR){return{type:cR,href:cT}}}}function aF(cR,cS,cT,cU){var cV=t.buildInteractionRequestParams(cR,cS,cT,cU);if(!cV){return}return b9(cV,null,"contentInteraction")}function co(cT,cU,cY,cR,cS){if(!G(cT)){return}if(aK(cT)){return cT}var cW=t.toAbsoluteUrl(cT);var cV="redirecturl="+r(cW)+"&";cV+=aF(cU,cY,cR,(cS||cT));var cX="&";if(av.indexOf("?")<0){cX="?"}return av+cX+cV}function aZ(cR,cS){if(!cR||!cS){return false}var cT=t.findTargetNode(cR);if(t.shouldIgnoreInteraction(cT)){return false}cT=t.findTargetNodeNoDefault(cR);if(cT&&!R(cT,cS)){return false}return true}function cb(cT,cS,cV){if(!cT){return}var cR=t.findParentContentNode(cT);if(!cR){return}if(!aZ(cR,cT)){return}var cU=t.buildContentBlock(cR);if(!cU){return}if(!cU.target&&cV){cU.target=cV}return t.buildInteractionRequestParams(cS,cU.name,cU.piece,cU.target)}function aM(cS){if(!bR||!bR.length){return false}var cR,cT;for(cR=0;cR<bR.length;cR++){cT=bR[cR];if(cT&&cT.name===cS.name&&cT.piece===cS.piece&&cT.target===cS.target){return true -}}return false}function bm(cU){if(!cU){return false}var cX=t.findTargetNode(cU);if(!cX||t.shouldIgnoreInteraction(cX)){return false}var cY=cK(cX);if(cI&&cY&&cY.type){return false}if(Y.isLinkElement(cX)&&Y.hasNodeAttributeWithValue(cX,"href")){var cR=String(Y.getAttributeValueFromNode(cX,"href"));if(0===cR.indexOf("#")){return false}if(aK(cR)){return true}if(!t.isUrlToCurrentDomain(cR)){return false}var cV=t.buildContentBlock(cU);if(!cV){return}var cT=cV.name;var cZ=cV.piece;var cW=cV.target;if(!Y.hasNodeAttributeWithValue(cX,t.CONTENT_TARGET_ATTR)||cX.wasContentTargetAttrReplaced){cX.wasContentTargetAttrReplaced=true;cW=t.toAbsoluteUrl(cR);Y.setAnyAttribute(cX,t.CONTENT_TARGET_ATTR,cW)}var cS=co(cR,"click",cT,cZ,cW);t.setHrefAttribute(cX,cS);return true}return false}function aD(cS){if(!cS||!cS.length){return}var cR;for(cR=0;cR<cS.length;cR++){bm(cS[cR])}}function aO(cR){return function(cS){if(!cR){return}var cV=t.findParentContentNode(cR);var cW;if(cS){cW=cS.target||cS.srcElement}if(!cW){cW=cR -}if(!aZ(cV,cW)){return}bX(br);if(Y.isLinkElement(cR)&&Y.hasNodeAttributeWithValue(cR,"href")&&Y.hasNodeAttributeWithValue(cR,t.CONTENT_TARGET_ATTR)){var cT=Y.getAttributeValueFromNode(cR,"href");if(!aK(cT)&&cR.wasContentTargetAttrReplaced){Y.setAnyAttribute(cR,t.CONTENT_TARGET_ATTR,"")}}var c0=cK(cR);if(ai&&c0&&c0.type){return c0.type}if(bm(cV)){return"href"}var cX=t.buildContentBlock(cV);if(!cX){return}var cU=cX.name;var c1=cX.piece;var cZ=cX.target;var cY=aF("click",cU,c1,cZ);bn(cY,br);return cY}}function bI(cT){if(!cT||!cT.length){return}var cR,cS;for(cR=0;cR<cT.length;cR++){cS=t.findTargetNode(cT[cR]);if(cS&&!cS.contentInteractionTrackingSetupDone){cS.contentInteractionTrackingSetupDone=true;ag(cS,"click",aO(cS))}}}function bh(cT,cU){if(!cT||!cT.length){return[]}var cR,cS;for(cR=0;cR<cT.length;cR++){if(aM(cT[cR])){cT.splice(cR,1);cR--}else{bR.push(cT[cR])}}if(!cT||!cT.length){return[]}aD(cU);bI(cU);var cV=[];for(cR=0;cR<cT.length;cR++){cS=b9(t.buildImpressionRequestParams(cT[cR].name,cT[cR].piece,cT[cR].target),undefined,"contentImpressions"); -if(cS){cV.push(cS)}}return cV}function cf(cS){var cR=t.collectContent(cS);return bh(cR,cS)}function aX(cS){if(!cS||!cS.length){return[]}var cR;for(cR=0;cR<cS.length;cR++){if(!t.isNodeVisible(cS[cR])){cS.splice(cR,1);cR--}}if(!cS||!cS.length){return[]}return cf(cS)}function ax(cT,cR,cS){var cU=t.buildImpressionRequestParams(cT,cR,cS);return b9(cU,null,"contentImpression")}function cL(cU,cS){if(!cU){return}var cR=t.findParentContentNode(cU);var cT=t.buildContentBlock(cR);if(!cT){return}if(!cS){cS="Unknown"}return aF(cS,cT.name,cT.piece,cT.target)}function cr(cS,cU,cR,cT){return"e_c="+r(cS)+"&e_a="+r(cU)+(G(cR)?"&e_n="+r(cR):"")+(G(cT)?"&e_v="+r(cT):"")}function am(cT,cV,cR,cU,cX,cW){if(String(cT).length===0||String(cV).length===0){return false}var cS=b9(cr(cT,cV,cR,cU),cX,"event");bn(cS,br,cW)}function bQ(cR,cU,cS,cV){var cT=b9("search="+r(cR)+(cU?"&search_cat="+r(cU):"")+(G(cS)?"&search_count="+cS:""),cV,"sitesearch");bn(cT,br)}function cv(cR,cU,cT){var cS=b9("idgoal="+cR+(cU?"&revenue="+cU:""),cT,"goal"); -bn(cS,br)}function cC(cU,cR,cY,cX,cT){var cW=cR+"="+r(bJ(cU));var cS=cb(cT,"click",cU);if(cS){cW+="&"+cS}var cV=b9(cW,cY,"link");bn(cV,br,cX)}function bB(cS,cR){if(cS!==""){return cS+cR.charAt(0).toUpperCase()+cR.slice(1)}return cR}function bY(cW){var cV,cR,cU=["","webkit","ms","moz"],cT;if(!a1){for(cR=0;cR<cU.length;cR++){cT=cU[cR];if(Object.prototype.hasOwnProperty.call(D,bB(cT,"hidden"))){if(D[bB(cT,"visibilityState")]==="prerender"){cV=true}break}}}if(cV){ag(D,cT+"visibilitychange",function cS(){D.removeEventListener(cT+"visibilitychange",cS,false);cW()});return}cW()}function b0(cR){if(!cR){return}if(!Y.hasNodeAttribute(cR,"href")){return}var cS=Y.getAttributeValueFromNode(cR,"href");if(!cS||aK(cS)){return}cS=j(cS,an);if(cS.indexOf("?")>0){cS+="&"}else{cS+="?"}var cU=aN().uuid;var cT=aA();cS=C(cS,an,cU+cT);Y.setAnyAttribute(cR,"href",cS)}function ar(cU){var cV=Y.getAttributeValueFromNode(cU,"href");if(!cV){return false}cV=String(cV);var cS=cV.indexOf("//")===0||cV.indexOf("http://")===0||cV.indexOf("https://")===0; -if(!cS){return false}var cR=cU.pathname||b2(cU.href);var cT=(cU.hostname||c(cU.href)).toLowerCase();if(ak(cT,cR)){if(!cl(cw,I(cT))){return true}return false}return false}function ck(cR){var cS=cK(cR);if(cS&&cS.type){cS.href=n(cS.href);cC(cS.href,cS.type,undefined,null,cR);return}if(cp){cR=al(cR);if(ar(cR)){b0(cR)}}}function cc(){return D.all&&!D.addEventListener}function cx(cR){var cT=cR.which;var cS=(typeof cR.button);if(!cT&&cS!=="undefined"){if(cc()){if(cR.button&1){cT=1}else{if(cR.button&2){cT=3}else{if(cR.button&4){cT=2}}}}else{if(cR.button===0||cR.button==="0"){cT=1}else{if(cR.button&1){cT=2}else{if(cR.button&2){cT=3}}}}}return cT}function bA(cR){switch(cx(cR)){case 1:return"left";case 2:return"middle";case 3:return"right"}}function aQ(cR){return cR.target||cR.srcElement}function at(cR){return function(cU){cU=cU||Q.event;var cT=bA(cU);var cV=aQ(cU);if(cU.type==="click"){var cS=false;if(cR&&cT==="middle"){cS=true}if(cV&&!cS){ck(cV)}}else{if(cU.type==="mousedown"){if(cT==="middle"&&cV){aH=cT; -bk=cV}else{aH=bk=null}}else{if(cU.type==="mouseup"){if(cT===aH&&cV===bk){ck(cV)}aH=bk=null}else{if(cU.type==="contextmenu"){ck(cV)}}}}}}function aj(cT,cS){var cR=typeof cS;if(cR==="undefined"){cS=true}ag(cT,"click",at(cS),false);if(cS){ag(cT,"mouseup",at(cS),false);ag(cT,"mousedown",at(cS),false);ag(cT,"contextmenu",at(cS),false)}}function bl(cT,cV){ai=true;var cU,cS=aP(bj,"ignore"),cW=D.links,cR=null,cX=null;if(cW){for(cU=0;cU<cW.length;cU++){cR=cW[cU];if(!cS.test(cR.className)){cX=typeof cR.piwikTrackers;if("undefined"===cX){cR.piwikTrackers=[]}if(-1===J(cR.piwikTrackers,cV)){cR.piwikTrackers.push(cV);aj(cR,cT)}}}}}function aI(cT,cV,cW){if(bW){return true}bW=true;var cX=false;var cU,cS;function cR(){cX=true}l(function(){function cY(c0){setTimeout(function(){if(!bW){return}cX=false;cW.trackVisibleContentImpressions();cY(c0)},c0)}function cZ(c0){setTimeout(function(){if(!bW){return}if(cX){cX=false;cW.trackVisibleContentImpressions()}cZ(c0)},c0)}if(cT){cU=["scroll","resize"];for(cS=0;cS<cU.length; -cS++){if(D.addEventListener){D.addEventListener(cU[cS],cR)}else{Q.attachEvent("on"+cU[cS],cR)}}cZ(100)}if(cV&&cV>0){cV=parseInt(cV,10);cY(cV)}})}function cj(){var cS,cU,cV={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(g.userAgent))){if(g.mimeTypes&&g.mimeTypes.length){for(cS in cV){if(Object.prototype.hasOwnProperty.call(cV,cS)){cU=g.mimeTypes[cV[cS]];cH[cS]=(cU&&cU.enabledPlugin)?"1":"0"}}}if(typeof navigator.javaEnabled!=="unknown"&&G(g.javaEnabled)&&g.javaEnabled()){cH.java="1"}if(x(Q.GearsFactory)){cH.gears="1"}cH.cookie=bM()}var cT=parseInt(T.width,10);var cR=parseInt(T.height,10);cH.res=parseInt(cT,10)+"x"+parseInt(cR,10)}cj();a4();aC();this.getVisitorId=function(){return aN().uuid};this.getVisitorInfo=function(){return cq()};this.getAttributionInfo=function(){return bu() -};this.getAttributionCampaignName=function(){return bu()[0]};this.getAttributionCampaignKeyword=function(){return bu()[1]};this.getAttributionReferrerTimestamp=function(){return bu()[2]};this.getAttributionReferrerUrl=function(){return bu()[3]};this.setTrackerUrl=function(cR){av=cR};this.getTrackerUrl=function(){return av};this.getPiwikUrl=function(){return L(this.getTrackerUrl(),bp)};this.addTracker=function(cR,cT){if(!cT){throw new Error("A siteId must be given to add a new tracker")}if(!G(cR)||null===cR){cR=this.getTrackerUrl()}var cS=new N(cR,cT);F.push(cS);return cS};this.getSiteId=function(){return bN};this.setSiteId=function(cR){bK(cR)};this.setUserId=function(cR){if(!G(cR)||!cR.length){return}bi=cR;bw=bO(bi).substr(0,16)};this.getUserId=function(){return bi};this.setCustomData=function(cR,cS){if(S(cR)){ah=cR}else{if(!ah){ah={}}ah[cR]=cS}};this.getCustomData=function(){return ah};this.setCustomRequestProcessing=function(cR){bS=cR};this.appendToTrackingUrl=function(cR){cA=cR};this.getRequest=function(cR){return b9(cR) -};this.addPlugin=function(cR,cS){a[cR]=cS};this.setCustomDimension=function(cR,cS){cR=parseInt(cR,10);if(cR>0){if(!G(cS)){cS=""}if(!u(cS)){cS=String(cS)}a8[cR]=cS}};this.getCustomDimension=function(cR){cR=parseInt(cR,10);if(cR>0&&Object.prototype.hasOwnProperty.call(a8,cR)){return a8[cR]}};this.deleteCustomDimension=function(cR){cR=parseInt(cR,10);if(cR>0){delete a8[cR]}};this.setCustomVariable=function(cS,cR,cV,cT){var cU;if(!G(cT)){cT="visit"}if(!G(cR)){return}if(!G(cV)){cV=""}if(cS>0){cR=!u(cR)?String(cR):cR;cV=!u(cV)?String(cV):cV;cU=[cR.slice(0,be),cV.slice(0,be)];if(cT==="visit"||cT===2){ci();aG[cS]=cU}else{if(cT==="page"||cT===3){bD[cS]=cU}else{if(cT==="event"){b3[cS]=cU}}}}};this.getCustomVariable=function(cS,cT){var cR;if(!G(cT)){cT="visit"}if(cT==="page"||cT===3){cR=bD[cS]}else{if(cT==="event"){cR=b3[cS]}else{if(cT==="visit"||cT===2){ci();cR=aG[cS]}}}if(!G(cR)||(cR&&cR[0]==="")){return false}return cR};this.deleteCustomVariable=function(cR,cS){if(this.getCustomVariable(cR,cS)){this.setCustomVariable(cR,"","",cS) -}};this.deleteCustomVariables=function(cR){if(cR==="page"||cR===3){bD={}}else{if(cR==="event"){b3={}}else{if(cR==="visit"||cR===2){aG={}}}}};this.storeCustomVariablesInCookie=function(){by=true};this.setLinkTrackingTimer=function(cR){br=cR};this.getLinkTrackingTimer=function(){return br};this.setDownloadExtensions=function(cR){if(u(cR)){cR=cR.split("|")}cG=cR};this.addDownloadExtensions=function(cS){var cR;if(u(cS)){cS=cS.split("|")}for(cR=0;cR<cS.length;cR++){cG.push(cS[cR])}};this.removeDownloadExtensions=function(cT){var cS,cR=[];if(u(cT)){cT=cT.split("|")}for(cS=0;cS<cG.length;cS++){if(J(cT,cG[cS])===-1){cR.push(cG[cS])}}cG=cR};this.setDomains=function(cR){ao=u(cR)?[cR]:cR;var cV=false,cT=0,cS;for(cT;cT<ao.length;cT++){cS=String(ao[cT]);if(cl(cw,I(cS))){cV=true;break}var cU=b2(cS);if(cU&&cU!=="/"&&cU!=="/*"){cV=true;break}}if(!cV){ao.push(cw)}};this.enableCrossDomainLinking=function(){cp=true};this.disableCrossDomainLinking=function(){cp=false};this.isCrossDomainLinkingEnabled=function(){return cp -};this.setIgnoreClasses=function(cR){bj=u(cR)?[cR]:cR};this.setRequestMethod=function(cR){cJ=cR||bZ};this.setRequestContentType=function(cR){cd=cR||az};this.setReferrerUrl=function(cR){a9=cR};this.setCustomUrl=function(cR){aT=bC(bv,cR)};this.getCurrentUrl=function(){return aT||bv};this.setDocumentTitle=function(cR){a5=cR};this.setAPIUrl=function(cR){bp=cR};this.setDownloadClasses=function(cR){bt=u(cR)?[cR]:cR};this.setLinkClasses=function(cR){aW=u(cR)?[cR]:cR};this.setCampaignNameKey=function(cR){b8=u(cR)?[cR]:cR};this.setCampaignKeywordKey=function(cR){bo=u(cR)?[cR]:cR};this.discardHashTag=function(cR){bx=cR};this.setCookieNamePrefix=function(cR){a6=cR;aG=bE()};this.setCookieDomain=function(cR){var cS=I(cR);if(bg(cS)){cy=cS;a4()}};this.setCookiePath=function(cR){bb=cR;a4()};this.setVisitorCookieTimeout=function(cR){cn=cR*1000};this.setSessionCookieTimeout=function(cR){b6=cR*1000};this.setReferralCookieTimeout=function(cR){cF=cR*1000};this.setConversionAttributionFirstReferrer=function(cR){bf=cR -};this.disableCookies=function(){a7=true;cH.cookie="0";if(bN){aw()}};this.deleteCookies=function(){aw()};this.setDoNotTrack=function(cS){var cR=g.doNotTrack||g.msDoNotTrack;cs=cS&&(cR==="yes"||cR==="1");if(cs){this.disableCookies()}};this.addListener=function(cS,cR){aj(cS,cR)};this.enableLinkTracking=function(cS){cI=true;var cR=this;bY(function(){o(function(){bl(cS,cR)})})};this.enableJSErrorTracking=function(){if(cu){return}cu=true;var cR=Q.onerror;Q.onerror=function(cW,cU,cT,cV,cS){bY(function(){var cX="JavaScript Errors";var cY=cU+":"+cT;if(cV){cY+=":"+cV}am(cX,cY,cW)});if(cR){return cR(cW,cU,cT,cV,cS)}return false}};this.disablePerformanceTracking=function(){aR=false};this.setGenerationTimeMs=function(cR){b4=parseInt(cR,10)};this.enableHeartBeatTimer=function(cR){cR=Math.max(cR,1);aU=(cR||15)*1000;if(cz!==null){cO()}};this.disableHeartBeatTimer=function(){bs();if(aU||aE){if(Q.removeEventListener){Q.removeEventListener("focus",aY,true);Q.removeEventListener("blur",ap,true)}else{if(Q.detachEvent){Q.detachEvent("onfocus",aY); -Q.detachEvent("onblur",ap)}}}aU=null;aE=false};this.killFrame=function(){if(Q.location!==Q.top.location){Q.top.location=Q.location}};this.redirectFile=function(cR){if(Q.location.protocol==="file:"){Q.location=cR}};this.setCountPreRendered=function(cR){a1=cR};this.trackGoal=function(cR,cT,cS){bY(function(){cv(cR,cT,cS)})};this.trackLink=function(cS,cR,cU,cT){bY(function(){cC(cS,cR,cU,cT)})};this.trackPageView=function(cR,cT,cS){bR=[];if(K(bN)){bY(function(){U(av,bp,bN)})}else{bY(function(){bH(cR,cT,cS)})}};this.trackAllContentImpressions=function(){if(K(bN)){return}bY(function(){o(function(){var cR=t.findContentNodes();var cS=cf(cR);cN(cS,br)})})};this.trackVisibleContentImpressions=function(cR,cS){if(K(bN)){return}if(!G(cR)){cR=true}if(!G(cS)){cS=750}aI(cR,cS,this);bY(function(){l(function(){var cT=t.findContentNodes();var cU=aX(cT);cN(cU,br)})})};this.trackContentImpression=function(cT,cR,cS){if(K(bN)){return}if(!cT){return}cR=cR||"Unknown";bY(function(){var cU=ax(cT,cR,cS);bn(cU,br)}) -};this.trackContentImpressionsWithinNode=function(cR){if(K(bN)||!cR){return}bY(function(){if(bW){l(function(){var cS=t.findContentNodesWithinNode(cR);var cT=aX(cS);cN(cT,br)})}else{o(function(){var cS=t.findContentNodesWithinNode(cR);var cT=cf(cS);cN(cT,br)})}})};this.trackContentInteraction=function(cT,cU,cR,cS){if(K(bN)){return}if(!cT||!cU){return}cR=cR||"Unknown";bY(function(){var cV=aF(cT,cU,cR,cS);bn(cV,br)})};this.trackContentInteractionNode=function(cS,cR){if(K(bN)||!cS){return}bY(function(){var cT=cL(cS,cR);bn(cT,br)})};this.logAllContentBlocksOnPage=function(){var cS=t.findContentNodes();var cR=t.collectContent(cS);if(console!==undefined&&console&&console.log){console.log(cR)}};this.trackEvent=function(cS,cU,cR,cT,cW,cV){bY(function(){am(cS,cU,cR,cT,cW,cV)})};this.trackSiteSearch=function(cR,cT,cS,cU){bY(function(){bQ(cR,cT,cS,cU)})};this.setEcommerceView=function(cU,cR,cT,cS){if(!G(cT)||!cT.length){cT=""}else{if(cT instanceof Array){cT=JSON_PIWIK.stringify(cT)}}bD[5]=["_pkc",cT]; -if(G(cS)&&String(cS).length){bD[2]=["_pkp",cS]}if((!G(cU)||!cU.length)&&(!G(cR)||!cR.length)){return}if(G(cU)&&cU.length){bD[3]=["_pks",cU]}if(!G(cR)||!cR.length){cR=""}bD[4]=["_pkn",cR]};this.addEcommerceItem=function(cV,cR,cT,cS,cU){if(cV.length){cB[cV]=[cV,cR,cT,cS,cU]}};this.trackEcommerceOrder=function(cR,cV,cU,cT,cS,cW){bG(cR,cV,cU,cT,cS,cW)};this.trackEcommerceCartUpdate=function(cR){bd(cR)};this.trackRequest=function(cS,cU,cT,cR){bY(function(){var cV=b9(cS,cU,cR);bn(cV,br,cT)})};d.trigger("TrackerSetup",[this])}function E(){return{push:Z}}function b(am,al){var an={};var aj,ak;for(aj=0;aj<al.length;aj++){var ah=al[aj];an[ah]=1;for(ak=0;ak<am.length;ak++){if(am[ak]&&am[ak][0]){var ai=am[ak][0];if(ah===ai){Z(am[ak]);delete am[ak];if(an[ai]>1){ad("The method "+ai+' 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: http://developer.piwik.org/guides/tracking-javascript-guide#multiple-piwik-trackers') -}an[ai]++}}}}return am}var z=["addTracker","disableCookies","setTrackerUrl","setAPIUrl","enableCrossDomainLinking","setCookiePath","setCookieDomain","setDomains","setUserId","setSiteId","enableLinkTracking"];function X(ah,aj){var ai=new N(ah,aj);F.push(ai);_paq=b(_paq,z);for(B=0;B<_paq.length;B++){if(_paq[B]){Z(_paq[B])}}_paq=new E();return ai}ag(Q,"beforeunload",ab,false);Date.prototype.getTimeAlias=Date.prototype.getTime;d={initialized:false,JSON:JSON_PIWIK,DOM:{addEventListener:function(ak,aj,ai,ah){var al=typeof ah;if(al==="undefined"){ah=false}ag(ak,aj,ai,ah)},onLoad:l,onReady:o,isNodeVisible:i,isOrWasNodeVisible:t.isNodeVisible},on:function(ai,ah){if(!v[ai]){v[ai]=[]}v[ai].push(ah)},off:function(aj,ai){if(!v[aj]){return}var ah=0;for(ah;ah<v[aj].length;ah++){if(v[aj][ah]===ai){v[aj].splice(ah,1)}}},trigger:function(aj,ak,ai){if(!v[aj]){return}var ah=0;for(ah;ah<v[aj].length;ah++){v[aj][ah].apply(ai||Q,ak)}},addPlugin:function(ah,ai){a[ah]=ai},getTracker:function(ah,ai){if(!G(ai)){ai=this.getAsyncTracker().getSiteId() -}if(!G(ah)){ah=this.getAsyncTracker().getTrackerUrl()}return new N(ah,ai)},getAsyncTrackers:function(){return F},addTracker:function(ah,ai){if(!F.length){X(ah,ai)}else{F[0].addTracker(ah,ai)}},getAsyncTracker:function(ai,al){var ak;if(F&&F.length&&F[0]){ak=F[0]}else{return X(ai,al)}if(!al&&!ai){return ak}if((!G(al)||null===al)&&ak){al=ak.getSiteId()}if((!G(ai)||null===ai)&&ak){ai=ak.getTrackerUrl()}var aj,ah=0;for(ah;ah<F.length;ah++){aj=F[ah];if(aj&&String(aj.getSiteId())===String(al)&&aj.getTrackerUrl()===ai){return aj}}},retryMissedPluginCalls:function(){var ai=aa;aa=[];var ah=0;for(ah;ah<ai.length;ah++){Z(ai[ah])}}};if(typeof define==="function"&&define.amd){define("piwik",[],function(){return d})}return d}()); +}}Q.name=ap+"###"+am+"###"+ah+"###"+ak}var ao=Q.name.split("###");return ao.length===4&&ao[0]===ap}function U(ai,ao,ak){var an=Q.name.split("###"),am=an[1],ah=an[2],al=an[3],aj=L(ai,ao);m(aj+"plugins/Overlay/client/client.js?v=1",function(){Piwik_Overlay_Client.initialize(aj,ak,am,ah,al)})}function s(){var aj;try{aj=Q.frameElement}catch(ai){return true}if(G(aj)){return(aj&&String(aj.nodeName).toLowerCase()==="iframe")?true:false}try{return Q.self!==Q.top}catch(ah){return true}}function N(bW,bR){var br=this,bM=V(D.domain,Q.location.href,H()),cy=I(bM[0]),bw=n(bM[1]),a9=n(bM[2]),cw=false,b0="GET",cL=b0,az="application/x-www-form-urlencoded; charset=UTF-8",cf=az,av=bW||"",bq="",cC="",bO=bR||"",bj="",bx="",aT,a5="",cI=["7z","aac","apk","arc","arj","asf","asx","avi","azw3","bin","csv","deb","dmg","doc","docx","epub","exe","flv","gif","gz","gzip","hqx","ibooks","jar","jpg","jpeg","js","mobi","mp2","mp3","mp4","mpg","mpeg","mov","movie","msi","msp","odb","odf","odg","ods","odt","ogg","ogv","pdf","phps","png","ppt","pptx","qt","qtm","ra","ram","rar","rpm","sea","sit","tar","tbz","tbz2","bz","bz2","tgz","torrent","txt","wav","wma","wmv","wpd","xls","xlsx","xml","z","zip"],ao=[cy],bk=[],bu=[],aW=[],bs=500,co,aU,bA,by,ah,b9=["pk_campaign","piwik_campaign","utm_campaign","utm_source","utm_medium"],bp=["pk_kwd","piwik_kwd","utm_term"],a6="_pk_",an="pk_vid",cA,bb,a7=false,cu,a1,bg,cp=33955200000,b7=1800000,cH=15768000000,aR=true,b5=0,bz=false,aG=false,bT,bE={},b4={},a8={},be=200,cD={},cJ={},bS=[],bX=false,ci=false,ai=false,cK=false,cr=false,aE=false,a0=s(),cB=null,bU,aH,bl,bP=af,ba,aB,ca=0,bf=["id","ses","cvar","ref"]; +try{a5=D.title}catch(cg){a5=""}function cO(cZ,cW,cV,cY,cU,cX){if(a7){return}var cT;if(cV){cT=new Date();cT.setTime(cT.getTime()+cV)}D.cookie=cZ+"="+r(cW)+(cV?";expires="+cT.toGMTString():"")+";path="+(cY||"/")+(cU?";domain="+cU:"")+(cX?";secure":"")}function au(cV){if(a7){return 0}var cT=new RegExp("(^|;)[ ]*"+cV+"=([^;]*)"),cU=cT.exec(D.cookie);return cU?P(cU[2]):0}function bK(cT){var cU;cT=j(cT,an);if(by){cU=new RegExp("#.*");return cT.replace(cU,"")}return cT}function bD(cV,cT){var cW=q(cT),cU;if(cW){return cT}if(cT.slice(0,1)==="/"){return q(cV)+"://"+c(cV)+cT}cV=bK(cV);cU=cV.indexOf("?");if(cU>=0){cV=cV.slice(0,cU)}cU=cV.lastIndexOf("/");if(cU!==cV.length-1){cV=cV.slice(0,cU+1)}return cV+cT}function cn(cV,cT){var cU;cV=String(cV).toLowerCase();cT=String(cT).toLowerCase();if(cV===cT){return true}if(cT.slice(0,1)==="."){if(cV===cT.slice(1)){return true}cU=cV.length-cT.length;if((cU>0)&&(cV.slice(cU)===cT)){return true}}return false}function b3(cT){var cU=document.createElement("a");if(cT.indexOf("//")!==0&&cT.indexOf("http")!==0){if(cT.indexOf("*")===0){cT=cT.substr(1) +}if(cT.indexOf(".")===0){cT=cT.substr(1)}cT="http://"+cT}cU.href=t.toAbsoluteUrl(cT);if(cU.pathname){return cU.pathname}return""}function aS(cU,cT){if(!ac(cT,"/")){cT="/"+cT}if(!ac(cU,"/")){cU="/"+cU}var cV=(cT==="/"||cT==="/*");if(cV){return true}if(cU===cT){return true}cT=String(cT).toLowerCase();cU=String(cU).toLowerCase();if(O(cT,"*")){cT=cT.slice(0,-1);cV=(!cT||cT==="/");if(cV){return true}if(cU===cT){return true}return cU.indexOf(cT)===0}if(!O(cU,"/")){cU+="/"}if(!O(cT,"/")){cT+="/"}return cU.indexOf(cT)===0}function ak(cX,cZ){var cU,cT,cV,cW,cY;for(cU=0;cU<ao.length;cU++){cW=I(ao[cU]);cY=b3(ao[cU]);if(cn(cX,cW)&&aS(cZ,cY)){return true}}return false}function aL(cW){var cU,cT,cV;for(cU=0;cU<ao.length;cU++){cT=I(ao[cU].toLowerCase());if(cW===cT){return true}if(cT.slice(0,1)==="."){if(cW===cT.slice(1)){return true}cV=cW.length-cT.length;if((cV>0)&&(cW.slice(cV)===cT)){return true}}}return false}function b8(cT,cV){var cU=new Image(1,1);cU.onload=function(){B=0;if(typeof cV==="function"){cV() +}};cT=cT.replace("send_image=0","send_image=1");cU.src=av+(av.indexOf("?")<0?"?":"&")+cT}function cG(cU,cX,cT){if(!G(cT)||null===cT){cT=true}try{var cW=Q.XMLHttpRequest?new Q.XMLHttpRequest():Q.ActiveXObject?new ActiveXObject("Microsoft.XMLHTTP"):null;cW.open("POST",av,true);cW.onreadystatechange=function(){if(this.readyState===4&&!(this.status>=200&&this.status<300)&&cT){b8(cU,cX)}else{if(this.readyState===4&&(typeof cX==="function")){cX()}}};cW.setRequestHeader("Content-Type",cf);cW.send(cU)}catch(cV){if(cT){b8(cU,cX)}}}function bY(cU){var cT=new Date();var cV=cT.getTime()+cU;if(!p||cV>p){p=cV}}function b6(cT){if(bU||!aU){return}bU=setTimeout(function cU(){bU=null;if(!a0){a0=(!D.hasFocus||D.hasFocus())}if(!a0){b6(aU);return}if(bA()){return}var cV=new Date(),cW=aU-(cV.getTime()-cB);cW=Math.min(aU,cW);b6(cW)},cT||aU)}function bt(){if(!bU){return}clearTimeout(bU);bU=null}function aY(){a0=true;if(bA()){return}b6()}function ap(){bt()}function cQ(){if(aE||!aU){return}aE=true;ag(Q,"focus",aY); +ag(Q,"blur",ap);b6()}function cj(cX){var cU=new Date();var cT=cU.getTime();cB=cT;if(ci&&cT<ci){var cV=ci-cT;setTimeout(cX,cV);bY(cV+50);ci+=50;return}if(ci===false){var cW=800;ci=cT+cW}cX()}function bo(cU,cT,cV){if(!cu&&cU){cj(function(){if(cL==="POST"||String(cU).length>2000){cG(cU,cV)}else{b8(cU,cV)}bY(cT)})}if(!aE){cQ()}else{b6()}}function b2(cT){if(cu){return false}return(cT&&cT.length)}function cP(cV,cT){if(!b2(cV)){return}var cU='{"requests":["?'+cV.join('","?')+'"]}';cj(function(){cG(cU,null,false);bY(cT)})}function aJ(cT){return a6+cT+"."+bO+"."+ba}function bN(){if(a7){return"0"}if(!G(g.cookieEnabled)){var cT=aJ("testcookie");cO(cT,"1");return au(cT)==="1"?"1":"0"}return g.cookieEnabled?"1":"0"}function a4(){ba=bP((cA||cy)+(bb||"/")).slice(0,4)}function bF(){var cU=aJ("cvar"),cT=au(cU);if(cT.length){cT=JSON_PIWIK.parse(cT);if(S(cT)){return cT}}return{}}function ck(){if(aG===false){aG=bF()}}function cv(){return bP((g.userAgent||"")+(g.platform||"")+JSON_PIWIK.stringify(cJ)+(new Date()).getTime()+Math.random()).slice(0,16) +}function aq(){return bP((g.userAgent||"")+(g.platform||"")+JSON_PIWIK.stringify(cJ)).slice(0,6)}function a2(){return Math.floor((new Date()).getTime()/1000)}function aA(){var cU=a2();var cV=aq();var cT=String(cU)+cV;return cT}function cF(cW){cW=String(cW);var cZ=aq();var cX=cZ.length;var cY=cW.substr(-1*cX,cX);var cV=parseInt(cW.substr(0,cW.length-cX),10);if(cV&&cY&&cY===cZ){var cT=a2();var cU=45;if(cT>=cV&&cT<=(cV+cU)){return true}}return false}function cR(cT){if(!cr){return""}var cX=e(cT,an);if(!cX){return""}cX=String(cX);var cV=new RegExp("^[a-zA-Z0-9]+$");if(cX.length===32&&cV.test(cX)){var cU=cX.substr(16,32);if(cF(cU)){var cW=cX.substr(0,16);return cW}}return""}function cs(){if(!bx){bx=cR(bw)}var cV=new Date(),cT=Math.round(cV.getTime()/1000),cU=aJ("id"),cY=au(cU),cX,cW;if(cY){cX=cY.split(".");cX.unshift("0");if(bx.length){cX[1]=bx}return cX}if(bx.length){cW=bx}else{if("0"===bN()){cW=""}else{cW=cv()}}cX=["1",cW,cT,0,cT,"",""];return cX}function aN(){var c0=cs(),cW=c0[0],cX=c0[1],cU=c0[2],cT=c0[3],cY=c0[4],cV=c0[5]; +if(!G(c0[6])){c0[6]=""}var cZ=c0[6];return{newVisitor:cW,uuid:cX,createTs:cU,visitCount:cT,currentVisitTs:cY,lastVisitTs:cV,lastEcommerceOrderTs:cZ}}function ay(){var cW=new Date(),cU=cW.getTime(),cX=aN().createTs;var cT=parseInt(cX,10);var cV=(cT*1000)+cp-cU;return cV}function aC(cT){if(!bO){return}var cV=new Date(),cU=Math.round(cV.getTime()/1000);if(!G(cT)){cT=aN()}var cW=cT.uuid+"."+cT.createTs+"."+cT.visitCount+"."+cU+"."+cT.lastVisitTs+"."+cT.lastEcommerceOrderTs;cO(aJ("id"),cW,ay(),bb,cA)}function bv(){var cT=au(aJ("ref"));if(cT.length){try{cT=JSON_PIWIK.parse(cT);if(S(cT)){return cT}}catch(cU){}}return["","",0,""]}function bG(cV,cU,cT){cO(cV,"",-86400,cU,cT)}function bh(cU){var cT="testvalue";cO("test",cT,10000,null,cU);if(au("test")===cT){bG("test",null,cU);return true}return false}function aw(){var cU=a7;a7=false;var cT,cV;for(cT=0;cT<bf.length;cT++){cV=aJ(bf[cT]);if(0!==au(cV)){bG(cV,bb,cA)}}a7=cU}function bL(cT){bO=cT;aC()}function cS(cX){if(!cX||!S(cX)){return}var cW=[];var cV; +for(cV in cX){if(Object.prototype.hasOwnProperty.call(cX,cV)){cW.push(cV)}}var cY={};cW.sort();var cT=cW.length;var cU;for(cU=0;cU<cT;cU++){cY[cW[cU]]=cX[cW[cU]]}return cY}function bV(){cO(aJ("ses"),"*",b7,bb,cA)}function a3(){var cW="";var cU="abcdefghijklmnopqrstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ";var cV=cU.length;var cT;for(cT=0;cT<6;cT++){cW+=cU.charAt(Math.floor(Math.random()*cV))}return cW}function cb(cV,dg,dh,cW){var df,cU=new Date(),c3=Math.round(cU.getTime()/1000),c0,de,cX=1024,dm,c4,dc=aG,cY=aJ("ses"),da=aJ("ref"),c7=aJ("cvar"),c8=au(cY),dd=bv(),dj=aT||bw,c1,cT;if(a7){aw()}if(cu){return""}var c9=aN();if(!G(cW)){cW=""}var c6=D.characterSet||D.charset;if(!c6||c6.toLowerCase()==="utf-8"){c6=null}c1=dd[0];cT=dd[1];c0=dd[2];de=dd[3];if(!c8){var di=b7/1000;if(!c9.lastVisitTs||(c3-c9.lastVisitTs)>di){c9.visitCount++;c9.lastVisitTs=c9.currentVisitTs}if(!bg||!c1.length){for(df in b9){if(Object.prototype.hasOwnProperty.call(b9,df)){c1=e(dj,b9[df]);if(c1.length){break}}}for(df in bp){if(Object.prototype.hasOwnProperty.call(bp,df)){cT=e(dj,bp[df]); +if(cT.length){break}}}}dm=c(a9);c4=de.length?c(de):"";if(dm.length&&!aL(dm)&&(!bg||!c4.length||aL(c4))){de=a9}if(de.length||c1.length){c0=c3;dd=[c1,cT,c0,bK(de.slice(0,cX))];cO(da,JSON_PIWIK.stringify(dd),cH,bb,cA)}}cV+="&idsite="+bO+"&rec=1&r="+String(Math.random()).slice(2,8)+"&h="+cU.getHours()+"&m="+cU.getMinutes()+"&s="+cU.getSeconds()+"&url="+r(bK(dj))+(a9.length?"&urlref="+r(bK(a9)):"")+((bj&&bj.length)?"&uid="+r(bj):"")+"&_id="+c9.uuid+"&_idts="+c9.createTs+"&_idvc="+c9.visitCount+"&_idn="+c9.newVisitor+(c1.length?"&_rcn="+r(c1):"")+(cT.length?"&_rck="+r(cT):"")+"&_refts="+c0+"&_viewts="+c9.lastVisitTs+(String(c9.lastEcommerceOrderTs).length?"&_ects="+c9.lastEcommerceOrderTs:"")+(String(de).length?"&_ref="+r(bK(de.slice(0,cX))):"")+(c6?"&cs="+r(c6):"")+"&send_image=0";for(df in cJ){if(Object.prototype.hasOwnProperty.call(cJ,df)){cV+="&"+df+"="+cJ[df]}}var dl=[];if(dg){for(df in dg){if(Object.prototype.hasOwnProperty.call(dg,df)&&/^dimension\d+$/.test(df)){var cZ=df.replace("dimension",""); +dl.push(parseInt(cZ,10));dl.push(String(cZ));cV+="&"+df+"="+dg[df];delete dg[df]}}}if(dg&&y(dg)){dg=null}for(df in a8){if(Object.prototype.hasOwnProperty.call(a8,df)){var c5=(-1===J(dl,df));if(c5){cV+="&dimension"+df+"="+a8[df]}}}if(dg){cV+="&data="+r(JSON_PIWIK.stringify(dg))}else{if(ah){cV+="&data="+r(JSON_PIWIK.stringify(ah))}}function c2(dn,dp){var dq=JSON_PIWIK.stringify(dn);if(dq.length>2){return"&"+dp+"="+r(dq)}return""}var dk=cS(bE);var db=cS(b4);cV+=c2(dk,"cvar");cV+=c2(db,"e_cvar");if(aG){cV+=c2(aG,"_cvar");for(df in dc){if(Object.prototype.hasOwnProperty.call(dc,df)){if(aG[df][0]===""||aG[df][1]===""){delete aG[df]}}}if(bz){cO(c7,JSON_PIWIK.stringify(aG),b7,bb,cA)}}if(aR){if(b5){cV+=">_ms="+b5}else{if(h&&h.timing&&h.timing.requestStart&&h.timing.responseEnd){cV+=">_ms="+(h.timing.responseEnd-h.timing.requestStart)}}}if(aB){cV+="&pv_id="+aB}c9.lastEcommerceOrderTs=G(cW)&&String(cW).length?cW:c9.lastEcommerceOrderTs;aC(c9);bV();cV+=W(dh,{tracker:br,request:cV});if(cC.length){cV+="&"+cC +}if(x(bT)){cV=bT(cV)}return cV}bA=function aV(){var cT=new Date();if(cB+aU<=cT.getTime()){var cU=cb("ping=1",null,"ping");bo(cU,bs);return true}return false};function bc(cW,cV,c1,cX,cT,c4){var cZ="idgoal=0",c0,cU=new Date(),c2=[],c3,cY=String(cW).length;if(cY){cZ+="&ec_id="+r(cW);c0=Math.round(cU.getTime()/1000)}cZ+="&revenue="+cV;if(String(c1).length){cZ+="&ec_st="+c1}if(String(cX).length){cZ+="&ec_tx="+cX}if(String(cT).length){cZ+="&ec_sh="+cT}if(String(c4).length){cZ+="&ec_dt="+c4}if(cD){for(c3 in cD){if(Object.prototype.hasOwnProperty.call(cD,c3)){if(!G(cD[c3][1])){cD[c3][1]=""}if(!G(cD[c3][2])){cD[c3][2]=""}if(!G(cD[c3][3])||String(cD[c3][3]).length===0){cD[c3][3]=0}if(!G(cD[c3][4])||String(cD[c3][4]).length===0){cD[c3][4]=1}c2.push(cD[c3])}}cZ+="&ec_items="+r(JSON_PIWIK.stringify(c2))}cZ=cb(cZ,ah,"ecommerce",c0);bo(cZ,bs);if(cY){cD={}}}function bH(cT,cX,cW,cV,cU,cY){if(String(cT).length&&G(cX)){bc(cT,cX,cW,cV,cU,cY)}}function bd(cT){if(G(cT)){bc("",cT,"","","","")}}function bI(cU,cW,cV){aB=a3(); +var cT=cb("action_name="+r(ae(cU||a5)),cW,"log");bo(cT,bs,cV)}function aP(cV,cU){var cW,cT="(^| )(piwik[_-]"+cU;if(cV){for(cW=0;cW<cV.length;cW++){cT+="|"+cV[cW]}}cT+=")( |$)";return new RegExp(cT)}function aK(cT){return(av&&cT&&0===String(cT).indexOf(av))}function cc(cX,cT,cY,cU){if(aK(cT)){return 0}var cW=aP(bu,"download"),cV=aP(aW,"link"),cZ=new RegExp("\\.("+cI.join("|")+")([?&#]|$)","i");if(cV.test(cX)){return"link"}if(cU||cW.test(cX)||cZ.test(cT)){return"download"}if(cY){return 0}return"link"}function am(cU){var cT;cT=cU.parentNode;while(cT!==null&&G(cT)){if(Y.isLinkElement(cU)){break}cU=cT;cT=cU.parentNode}return cU}function cM(cY){cY=am(cY);if(!Y.hasNodeAttribute(cY,"href")){return}if(!G(cY.href)){return}var cX=Y.getAttributeValueFromNode(cY,"href");if(aK(cX)){return}var cU=cY.pathname||b3(cY.href);var cZ=cY.hostname||c(cY.href);var c0=cZ.toLowerCase();var cV=cY.href.replace(cZ,c0);var cW=new RegExp("^(javascript|vbscript|jscript|mocha|livescript|ecmascript|mailto|tel):","i");if(!cW.test(cV)){var cT=cc(cY.className,cV,ak(c0,cU),Y.hasNodeAttribute(cY,"download")); +if(cT){return{type:cT,href:cV}}}}function aF(cT,cU,cV,cW){var cX=t.buildInteractionRequestParams(cT,cU,cV,cW);if(!cX){return}return cb(cX,null,"contentInteraction")}function cq(cV,cW,c0,cT,cU){if(!G(cV)){return}if(aK(cV)){return cV}var cY=t.toAbsoluteUrl(cV);var cX="redirecturl="+r(cY)+"&";cX+=aF(cW,c0,cT,(cU||cV));var cZ="&";if(av.indexOf("?")<0){cZ="?"}return av+cZ+cX}function aZ(cT,cU){if(!cT||!cU){return false}var cV=t.findTargetNode(cT);if(t.shouldIgnoreInteraction(cV)){return false}cV=t.findTargetNodeNoDefault(cT);if(cV&&!R(cV,cU)){return false}return true}function cd(cV,cU,cX){if(!cV){return}var cT=t.findParentContentNode(cV);if(!cT){return}if(!aZ(cT,cV)){return}var cW=t.buildContentBlock(cT);if(!cW){return}if(!cW.target&&cX){cW.target=cX}return t.buildInteractionRequestParams(cU,cW.name,cW.piece,cW.target)}function aM(cU){if(!bS||!bS.length){return false}var cT,cV;for(cT=0;cT<bS.length;cT++){cV=bS[cT];if(cV&&cV.name===cU.name&&cV.piece===cU.piece&&cV.target===cU.target){return true +}}return false}function bn(cW){if(!cW){return false}var cZ=t.findTargetNode(cW);if(!cZ||t.shouldIgnoreInteraction(cZ)){return false}var c0=cM(cZ);if(cK&&c0&&c0.type){return false}if(Y.isLinkElement(cZ)&&Y.hasNodeAttributeWithValue(cZ,"href")){var cT=String(Y.getAttributeValueFromNode(cZ,"href"));if(0===cT.indexOf("#")){return false}if(aK(cT)){return true}if(!t.isUrlToCurrentDomain(cT)){return false}var cX=t.buildContentBlock(cW);if(!cX){return}var cV=cX.name;var c1=cX.piece;var cY=cX.target;if(!Y.hasNodeAttributeWithValue(cZ,t.CONTENT_TARGET_ATTR)||cZ.wasContentTargetAttrReplaced){cZ.wasContentTargetAttrReplaced=true;cY=t.toAbsoluteUrl(cT);Y.setAnyAttribute(cZ,t.CONTENT_TARGET_ATTR,cY)}var cU=cq(cT,"click",cV,c1,cY);t.setHrefAttribute(cZ,cU);return true}return false}function aD(cU){if(!cU||!cU.length){return}var cT;for(cT=0;cT<cU.length;cT++){bn(cU[cT])}}function aO(cT){return function(cU){if(!cT){return}var cX=t.findParentContentNode(cT);var cY;if(cU){cY=cU.target||cU.srcElement}if(!cY){cY=cT +}if(!aZ(cX,cY)){return}bY(bs);if(Y.isLinkElement(cT)&&Y.hasNodeAttributeWithValue(cT,"href")&&Y.hasNodeAttributeWithValue(cT,t.CONTENT_TARGET_ATTR)){var cV=Y.getAttributeValueFromNode(cT,"href");if(!aK(cV)&&cT.wasContentTargetAttrReplaced){Y.setAnyAttribute(cT,t.CONTENT_TARGET_ATTR,"")}}var c2=cM(cT);if(ai&&c2&&c2.type){return c2.type}if(bn(cX)){return"href"}var cZ=t.buildContentBlock(cX);if(!cZ){return}var cW=cZ.name;var c3=cZ.piece;var c1=cZ.target;var c0=aF("click",cW,c3,c1);bo(c0,bs);return c0}}function bJ(cV){if(!cV||!cV.length){return}var cT,cU;for(cT=0;cT<cV.length;cT++){cU=t.findTargetNode(cV[cT]);if(cU&&!cU.contentInteractionTrackingSetupDone){cU.contentInteractionTrackingSetupDone=true;ag(cU,"click",aO(cU))}}}function bi(cV,cW){if(!cV||!cV.length){return[]}var cT,cU;for(cT=0;cT<cV.length;cT++){if(aM(cV[cT])){cV.splice(cT,1);cT--}else{bS.push(cV[cT])}}if(!cV||!cV.length){return[]}aD(cW);bJ(cW);var cX=[];for(cT=0;cT<cV.length;cT++){cU=cb(t.buildImpressionRequestParams(cV[cT].name,cV[cT].piece,cV[cT].target),undefined,"contentImpressions"); +if(cU){cX.push(cU)}}return cX}function ch(cU){var cT=t.collectContent(cU);return bi(cT,cU)}function aX(cU){if(!cU||!cU.length){return[]}var cT;for(cT=0;cT<cU.length;cT++){if(!t.isNodeVisible(cU[cT])){cU.splice(cT,1);cT--}}if(!cU||!cU.length){return[]}return ch(cU)}function ax(cV,cT,cU){var cW=t.buildImpressionRequestParams(cV,cT,cU);return cb(cW,null,"contentImpression")}function cN(cW,cU){if(!cW){return}var cT=t.findParentContentNode(cW);var cV=t.buildContentBlock(cT);if(!cV){return}if(!cU){cU="Unknown"}return aF(cU,cV.name,cV.piece,cV.target)}function ct(cU,cW,cT,cV){return"e_c="+r(cU)+"&e_a="+r(cW)+(G(cT)?"&e_n="+r(cT):"")+(G(cV)?"&e_v="+r(cV):"")}function al(cV,cX,cT,cW,cZ,cY){if(String(cV).length===0||String(cX).length===0){return false}var cU=cb(ct(cV,cX,cT,cW),cZ,"event");bo(cU,bs,cY)}function bQ(cT,cW,cU,cX){var cV=cb("search="+r(cT)+(cW?"&search_cat="+r(cW):"")+(G(cU)?"&search_count="+cU:""),cX,"sitesearch");bo(cV,bs)}function cx(cT,cW,cV){var cU=cb("idgoal="+cT+(cW?"&revenue="+cW:""),cV,"goal"); +bo(cU,bs)}function cE(cW,cT,c0,cZ,cV){var cY=cT+"="+r(bK(cW));var cU=cd(cV,"click",cW);if(cU){cY+="&"+cU}var cX=cb(cY,c0,"link");bo(cX,bs,cZ)}function bC(cU,cT){if(cU!==""){return cU+cT.charAt(0).toUpperCase()+cT.slice(1)}return cT}function bZ(cY){var cX,cT,cW=["","webkit","ms","moz"],cV;if(!a1){for(cT=0;cT<cW.length;cT++){cV=cW[cT];if(Object.prototype.hasOwnProperty.call(D,bC(cV,"hidden"))){if(D[bC(cV,"visibilityState")]==="prerender"){cX=true}break}}}if(cX){ag(D,cV+"visibilitychange",function cU(){D.removeEventListener(cV+"visibilitychange",cU,false);cY()});return}cY()}function b1(cT){if(!cT){return}if(!Y.hasNodeAttribute(cT,"href")){return}var cU=Y.getAttributeValueFromNode(cT,"href");if(!cU||aK(cU)){return}cU=j(cU,an);if(cU.indexOf("?")>0){cU+="&"}else{cU+="?"}var cW=aN().uuid;var cV=aA();cU=C(cU,an,cW+cV);Y.setAnyAttribute(cT,"href",cU)}function ar(cW){var cX=Y.getAttributeValueFromNode(cW,"href");if(!cX){return false}cX=String(cX);var cU=cX.indexOf("//")===0||cX.indexOf("http://")===0||cX.indexOf("https://")===0; +if(!cU){return false}var cT=cW.pathname||b3(cW.href);var cV=(cW.hostname||c(cW.href)).toLowerCase();if(ak(cV,cT)){if(!cn(cy,I(cV))){return true}return false}return false}function cm(cT){var cU=cM(cT);if(cU&&cU.type){cU.href=n(cU.href);cE(cU.href,cU.type,undefined,null,cT);return}if(cr){cT=am(cT);if(ar(cT)){b1(cT)}}}function ce(){return D.all&&!D.addEventListener}function cz(cT){var cV=cT.which;var cU=(typeof cT.button);if(!cV&&cU!=="undefined"){if(ce()){if(cT.button&1){cV=1}else{if(cT.button&2){cV=3}else{if(cT.button&4){cV=2}}}}else{if(cT.button===0||cT.button==="0"){cV=1}else{if(cT.button&1){cV=2}else{if(cT.button&2){cV=3}}}}}return cV}function bB(cT){switch(cz(cT)){case 1:return"left";case 2:return"middle";case 3:return"right"}}function aQ(cT){return cT.target||cT.srcElement}function at(cT){return function(cW){cW=cW||Q.event;var cV=bB(cW);var cX=aQ(cW);if(cW.type==="click"){var cU=false;if(cT&&cV==="middle"){cU=true}if(cX&&!cU){cm(cX)}}else{if(cW.type==="mousedown"){if(cV==="middle"&&cX){aH=cV; +bl=cX}else{aH=bl=null}}else{if(cW.type==="mouseup"){if(cV===aH&&cX===bl){cm(cX)}aH=bl=null}else{if(cW.type==="contextmenu"){cm(cX)}}}}}}function aj(cV,cU){var cT=typeof cU;if(cT==="undefined"){cU=true}ag(cV,"click",at(cU),false);if(cU){ag(cV,"mouseup",at(cU),false);ag(cV,"mousedown",at(cU),false);ag(cV,"contextmenu",at(cU),false)}}function bm(cV,cX){ai=true;var cW,cU=aP(bk,"ignore"),cY=D.links,cT=null,cZ=null;if(cY){for(cW=0;cW<cY.length;cW++){cT=cY[cW];if(!cU.test(cT.className)){cZ=typeof cT.piwikTrackers;if("undefined"===cZ){cT.piwikTrackers=[]}if(-1===J(cT.piwikTrackers,cX)){cT.piwikTrackers.push(cX);aj(cT,cV)}}}}}function aI(cV,cX,cY){if(bX){return true}bX=true;var cZ=false;var cW,cU;function cT(){cZ=true}l(function(){function c0(c2){setTimeout(function(){if(!bX){return}cZ=false;cY.trackVisibleContentImpressions();c0(c2)},c2)}function c1(c2){setTimeout(function(){if(!bX){return}if(cZ){cZ=false;cY.trackVisibleContentImpressions()}c1(c2)},c2)}if(cV){cW=["scroll","resize"];for(cU=0;cU<cW.length; +cU++){if(D.addEventListener){D.addEventListener(cW[cU],cT)}else{Q.attachEvent("on"+cW[cU],cT)}}c1(100)}if(cX&&cX>0){cX=parseInt(cX,10);c0(cX)}})}function cl(){var cU,cW,cX={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(g.userAgent))){if(g.mimeTypes&&g.mimeTypes.length){for(cU in cX){if(Object.prototype.hasOwnProperty.call(cX,cU)){cW=g.mimeTypes[cX[cU]];cJ[cU]=(cW&&cW.enabledPlugin)?"1":"0"}}}if(typeof navigator.javaEnabled!=="unknown"&&G(g.javaEnabled)&&g.javaEnabled()){cJ.java="1"}if(x(Q.GearsFactory)){cJ.gears="1"}cJ.cookie=bN()}var cV=parseInt(T.width,10);var cT=parseInt(T.height,10);cJ.res=parseInt(cV,10)+"x"+parseInt(cT,10)}cl();a4();aC();this.getVisitorId=function(){return aN().uuid};this.getVisitorInfo=function(){return cs()};this.getAttributionInfo=function(){return bv() +};this.getAttributionCampaignName=function(){return bv()[0]};this.getAttributionCampaignKeyword=function(){return bv()[1]};this.getAttributionReferrerTimestamp=function(){return bv()[2]};this.getAttributionReferrerUrl=function(){return bv()[3]};this.setTrackerUrl=function(cT){av=cT};this.getTrackerUrl=function(){return av};this.getPiwikUrl=function(){return L(this.getTrackerUrl(),bq)};this.addTracker=function(cT,cV){if(!cV){throw new Error("A siteId must be given to add a new tracker")}if(!G(cT)||null===cT){cT=this.getTrackerUrl()}var cU=new N(cT,cV);F.push(cU);return cU};this.getSiteId=function(){return bO};this.setSiteId=function(cT){bL(cT)};this.setUserId=function(cT){if(!G(cT)||!cT.length){return}bj=cT;bx=bP(bj).substr(0,16)};this.getUserId=function(){return bj};this.setCustomData=function(cT,cU){if(S(cT)){ah=cT}else{if(!ah){ah={}}ah[cT]=cU}};this.getCustomData=function(){return ah};this.setCustomRequestProcessing=function(cT){bT=cT};this.appendToTrackingUrl=function(cT){cC=cT};this.getRequest=function(cT){return cb(cT) +};this.addPlugin=function(cT,cU){a[cT]=cU};this.setCustomDimension=function(cT,cU){cT=parseInt(cT,10);if(cT>0){if(!G(cU)){cU=""}if(!u(cU)){cU=String(cU)}a8[cT]=cU}};this.getCustomDimension=function(cT){cT=parseInt(cT,10);if(cT>0&&Object.prototype.hasOwnProperty.call(a8,cT)){return a8[cT]}};this.deleteCustomDimension=function(cT){cT=parseInt(cT,10);if(cT>0){delete a8[cT]}};this.setCustomVariable=function(cU,cT,cX,cV){var cW;if(!G(cV)){cV="visit"}if(!G(cT)){return}if(!G(cX)){cX=""}if(cU>0){cT=!u(cT)?String(cT):cT;cX=!u(cX)?String(cX):cX;cW=[cT.slice(0,be),cX.slice(0,be)];if(cV==="visit"||cV===2){ck();aG[cU]=cW}else{if(cV==="page"||cV===3){bE[cU]=cW}else{if(cV==="event"){b4[cU]=cW}}}}};this.getCustomVariable=function(cU,cV){var cT;if(!G(cV)){cV="visit"}if(cV==="page"||cV===3){cT=bE[cU]}else{if(cV==="event"){cT=b4[cU]}else{if(cV==="visit"||cV===2){ck();cT=aG[cU]}}}if(!G(cT)||(cT&&cT[0]==="")){return false}return cT};this.deleteCustomVariable=function(cT,cU){if(this.getCustomVariable(cT,cU)){this.setCustomVariable(cT,"","",cU) +}};this.deleteCustomVariables=function(cT){if(cT==="page"||cT===3){bE={}}else{if(cT==="event"){b4={}}else{if(cT==="visit"||cT===2){aG={}}}}};this.storeCustomVariablesInCookie=function(){bz=true};this.setLinkTrackingTimer=function(cT){bs=cT};this.getLinkTrackingTimer=function(){return bs};this.setDownloadExtensions=function(cT){if(u(cT)){cT=cT.split("|")}cI=cT};this.addDownloadExtensions=function(cU){var cT;if(u(cU)){cU=cU.split("|")}for(cT=0;cT<cU.length;cT++){cI.push(cU[cT])}};this.removeDownloadExtensions=function(cV){var cU,cT=[];if(u(cV)){cV=cV.split("|")}for(cU=0;cU<cI.length;cU++){if(J(cV,cI[cU])===-1){cT.push(cI[cU])}}cI=cT};this.setDomains=function(cT){ao=u(cT)?[cT]:cT;var cX=false,cV=0,cU;for(cV;cV<ao.length;cV++){cU=String(ao[cV]);if(cn(cy,I(cU))){cX=true;break}var cW=b3(cU);if(cW&&cW!=="/"&&cW!=="/*"){cX=true;break}}if(!cX){ao.push(cy)}};this.enableCrossDomainLinking=function(){cr=true};this.disableCrossDomainLinking=function(){cr=false};this.isCrossDomainLinkingEnabled=function(){return cr +};this.setIgnoreClasses=function(cT){bk=u(cT)?[cT]:cT};this.setRequestMethod=function(cT){cL=cT||b0};this.setRequestContentType=function(cT){cf=cT||az};this.setReferrerUrl=function(cT){a9=cT};this.setCustomUrl=function(cT){aT=bD(bw,cT)};this.getCurrentUrl=function(){return aT||bw};this.setDocumentTitle=function(cT){a5=cT};this.setAPIUrl=function(cT){bq=cT};this.setDownloadClasses=function(cT){bu=u(cT)?[cT]:cT};this.setLinkClasses=function(cT){aW=u(cT)?[cT]:cT};this.setCampaignNameKey=function(cT){b9=u(cT)?[cT]:cT};this.setCampaignKeywordKey=function(cT){bp=u(cT)?[cT]:cT};this.discardHashTag=function(cT){by=cT};this.setCookieNamePrefix=function(cT){a6=cT;aG=bF()};this.setCookieDomain=function(cT){var cU=I(cT);if(bh(cU)){cA=cU;a4()}};this.getCookieDomain=function(){return cA};this.hasCookies=function(){return"1"===bN()};this.setSessionCookie=function(cV,cU,cT){if(!cV){throw new Error("Missing cookie name")}if(!G(cT)){cT=b7}bf.push(cV);cO(aJ(cV),cU,cT,bb,cA)};this.getCookie=function(cU){var cT=au(aJ(cU)); +if(cT===0){return null}return cT};this.setCookiePath=function(cT){bb=cT;a4()};this.getCookiePath=function(cT){return bb};this.setVisitorCookieTimeout=function(cT){cp=cT*1000};this.setSessionCookieTimeout=function(cT){b7=cT*1000};this.getSessionCookieTimeout=function(){return b7};this.setReferralCookieTimeout=function(cT){cH=cT*1000};this.setConversionAttributionFirstReferrer=function(cT){bg=cT};this.disableCookies=function(){a7=true;cJ.cookie="0";if(bO){aw()}};this.deleteCookies=function(){aw()};this.setDoNotTrack=function(cU){var cT=g.doNotTrack||g.msDoNotTrack;cu=cU&&(cT==="yes"||cT==="1");if(cu){this.disableCookies()}};this.addListener=function(cU,cT){aj(cU,cT)};this.enableLinkTracking=function(cU){cK=true;var cT=this;bZ(function(){o(function(){bm(cU,cT)})})};this.enableJSErrorTracking=function(){if(cw){return}cw=true;var cT=Q.onerror;Q.onerror=function(cY,cW,cV,cX,cU){bZ(function(){var cZ="JavaScript Errors";var c0=cW+":"+cV;if(cX){c0+=":"+cX}al(cZ,c0,cY)});if(cT){return cT(cY,cW,cV,cX,cU) +}return false}};this.disablePerformanceTracking=function(){aR=false};this.setGenerationTimeMs=function(cT){b5=parseInt(cT,10)};this.enableHeartBeatTimer=function(cT){cT=Math.max(cT,1);aU=(cT||15)*1000;if(cB!==null){cQ()}};this.disableHeartBeatTimer=function(){bt();if(aU||aE){if(Q.removeEventListener){Q.removeEventListener("focus",aY,true);Q.removeEventListener("blur",ap,true)}else{if(Q.detachEvent){Q.detachEvent("onfocus",aY);Q.detachEvent("onblur",ap)}}}aU=null;aE=false};this.killFrame=function(){if(Q.location!==Q.top.location){Q.top.location=Q.location}};this.redirectFile=function(cT){if(Q.location.protocol==="file:"){Q.location=cT}};this.setCountPreRendered=function(cT){a1=cT};this.trackGoal=function(cT,cV,cU){bZ(function(){cx(cT,cV,cU)})};this.trackLink=function(cU,cT,cW,cV){bZ(function(){cE(cU,cT,cW,cV)})};this.getNumTrackedPageViews=function(){return ca};this.trackPageView=function(cT,cV,cU){bS=[];if(K(bO)){bZ(function(){U(av,bq,bO)})}else{bZ(function(){ca++;bI(cT,cV,cU)})}};this.trackAllContentImpressions=function(){if(K(bO)){return +}bZ(function(){o(function(){var cT=t.findContentNodes();var cU=ch(cT);cP(cU,bs)})})};this.trackVisibleContentImpressions=function(cT,cU){if(K(bO)){return}if(!G(cT)){cT=true}if(!G(cU)){cU=750}aI(cT,cU,this);bZ(function(){l(function(){var cV=t.findContentNodes();var cW=aX(cV);cP(cW,bs)})})};this.trackContentImpression=function(cV,cT,cU){if(K(bO)){return}if(!cV){return}cT=cT||"Unknown";bZ(function(){var cW=ax(cV,cT,cU);bo(cW,bs)})};this.trackContentImpressionsWithinNode=function(cT){if(K(bO)||!cT){return}bZ(function(){if(bX){l(function(){var cU=t.findContentNodesWithinNode(cT);var cV=aX(cU);cP(cV,bs)})}else{o(function(){var cU=t.findContentNodesWithinNode(cT);var cV=ch(cU);cP(cV,bs)})}})};this.trackContentInteraction=function(cV,cW,cT,cU){if(K(bO)){return}if(!cV||!cW){return}cT=cT||"Unknown";bZ(function(){var cX=aF(cV,cW,cT,cU);bo(cX,bs)})};this.trackContentInteractionNode=function(cU,cT){if(K(bO)||!cU){return}bZ(function(){var cV=cN(cU,cT);bo(cV,bs)})};this.logAllContentBlocksOnPage=function(){var cV=t.findContentNodes(); +var cT=t.collectContent(cV);var cU=typeof console;if(cU!=="undefined"&&console&&console.log){console.log(cT)}};this.trackEvent=function(cU,cW,cT,cV,cY,cX){bZ(function(){al(cU,cW,cT,cV,cY,cX)})};this.trackSiteSearch=function(cT,cV,cU,cW){bZ(function(){bQ(cT,cV,cU,cW)})};this.setEcommerceView=function(cW,cT,cV,cU){if(!G(cV)||!cV.length){cV=""}else{if(cV instanceof Array){cV=JSON_PIWIK.stringify(cV)}}bE[5]=["_pkc",cV];if(G(cU)&&String(cU).length){bE[2]=["_pkp",cU]}if((!G(cW)||!cW.length)&&(!G(cT)||!cT.length)){return}if(G(cW)&&cW.length){bE[3]=["_pks",cW]}if(!G(cT)||!cT.length){cT=""}bE[4]=["_pkn",cT]};this.addEcommerceItem=function(cX,cT,cV,cU,cW){if(cX.length){cD[cX]=[cX,cT,cV,cU,cW]}};this.trackEcommerceOrder=function(cT,cX,cW,cV,cU,cY){bH(cT,cX,cW,cV,cU,cY)};this.trackEcommerceCartUpdate=function(cT){bd(cT)};this.trackRequest=function(cU,cW,cV,cT){bZ(function(){var cX=cb(cU,cW,cT);bo(cX,bs,cV)})};d.trigger("TrackerSetup",[this])}function E(){return{push:Z}}function b(am,al){var an={};var aj,ak; +for(aj=0;aj<al.length;aj++){var ah=al[aj];an[ah]=1;for(ak=0;ak<am.length;ak++){if(am[ak]&&am[ak][0]){var ai=am[ak][0];if(ah===ai){Z(am[ak]);delete am[ak];if(an[ai]>1){ad("The method "+ai+' 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: http://developer.piwik.org/guides/tracking-javascript-guide#multiple-piwik-trackers')}an[ai]++}}}}return am}var z=["addTracker","disableCookies","setTrackerUrl","setAPIUrl","enableCrossDomainLinking","setCookiePath","setCookieDomain","setDomains","setUserId","setSiteId","enableLinkTracking"];function X(ah,aj){var ai=new N(ah,aj);F.push(ai);_paq=b(_paq,z);for(B=0;B<_paq.length;B++){if(_paq[B]){Z(_paq[B])}}_paq=new E();return ai}ag(Q,"beforeunload",ab,false);Date.prototype.getTimeAlias=Date.prototype.getTime;d={initialized:false,JSON:JSON_PIWIK,DOM:{addEventListener:function(ak,aj,ai,ah){var al=typeof ah;if(al==="undefined"){ah=false}ag(ak,aj,ai,ah)},onLoad:l,onReady:o,isNodeVisible:i,isOrWasNodeVisible:t.isNodeVisible},on:function(ai,ah){if(!v[ai]){v[ai]=[] +}v[ai].push(ah)},off:function(aj,ai){if(!v[aj]){return}var ah=0;for(ah;ah<v[aj].length;ah++){if(v[aj][ah]===ai){v[aj].splice(ah,1)}}},trigger:function(aj,ak,ai){if(!v[aj]){return}var ah=0;for(ah;ah<v[aj].length;ah++){v[aj][ah].apply(ai||Q,ak)}},addPlugin:function(ah,ai){a[ah]=ai},getTracker:function(ah,ai){if(!G(ai)){ai=this.getAsyncTracker().getSiteId()}if(!G(ah)){ah=this.getAsyncTracker().getTrackerUrl()}return new N(ah,ai)},getAsyncTrackers:function(){return F},addTracker:function(ah,ai){if(!F.length){X(ah,ai)}else{F[0].addTracker(ah,ai)}},getAsyncTracker:function(ai,al){var ak;if(F&&F.length&&F[0]){ak=F[0]}else{return X(ai,al)}if(!al&&!ai){return ak}if((!G(al)||null===al)&&ak){al=ak.getSiteId()}if((!G(ai)||null===ai)&&ak){ai=ak.getTrackerUrl()}var aj,ah=0;for(ah;ah<F.length;ah++){aj=F[ah];if(aj&&String(aj.getSiteId())===String(al)&&aj.getTrackerUrl()===ai){return aj}}},retryMissedPluginCalls:function(){var ai=aa;aa=[];var ah=0;for(ah;ah<ai.length;ah++){Z(ai[ah])}}};if(typeof define==="function"&&define.amd){define("piwik",[],function(){return d +})}return d}()); /*!!! pluginTrackerHook */ -}(function(){function b(){if("object"!==typeof _paq){return false}var c=typeof _paq.length;if("undefined"===c){return false}return !!_paq.length}if(window&&"object"===typeof window.piwikPluginAsyncInit&&window.piwikPluginAsyncInit.length){var a=0;for(a; -a<window.piwikPluginAsyncInit.length;a++){if(typeof window.piwikPluginAsyncInit[a]==="function"){window.piwikPluginAsyncInit[a]()}}}if(window&&window.piwikAsyncInit){window.piwikAsyncInit()}if(!window.Piwik.getAsyncTrackers().length){if(b()){window.Piwik.addTracker()}else{_paq={push:function(c){if(console!==undefined&&console&&console.error){console.error("_paq.push() was used but Piwik tracker was not initialized before the piwik.js file was loaded. Make sure to configure the tracker via _paq.push before loading piwik.js. Alternatively, you can create a tracker via Piwik.addTracker() manually and then use _paq.push but it may not fully work as tracker methods may not be executed in the correct order.",c)}}}}}window.Piwik.trigger("PiwikInitialized",[]);window.Piwik.initialized=true}());(function(){var a=(typeof AnalyticsTracker);if(a==="undefined"){AnalyticsTracker=window.Piwik}}());if(typeof piwik_log!=="function"){piwik_log=function(b,f,d,g){function a(h){try{if(window["piwik_"+h]){return window["piwik_"+h] -}}catch(i){}return}var c,e=window.Piwik.getTracker(d,f);e.setDocumentTitle(b);e.setCustomData(g);c=a("tracker_pause");if(c){e.setLinkTrackingTimer(c)}c=a("download_extensions");if(c){e.setDownloadExtensions(c)}c=a("hosts_alias");if(c){e.setDomains(c)}c=a("ignore_classes");if(c){e.setIgnoreClasses(c)}e.trackPageView();if(a("install_tracker")){piwik_track=function(i,k,j,h){e.setSiteId(k);e.setTrackerUrl(j);e.trackLink(i,h)};e.enableLinkTracking()}}; +}(function(){function b(){if("object"!==typeof _paq){return false}var c=typeof _paq.length;if("undefined"===c){return false}return !!_paq.length}if(window&&"object"===typeof window.piwikPluginAsyncInit&&window.piwikPluginAsyncInit.length){var a=0;for(a;a<window.piwikPluginAsyncInit.length;a++){if(typeof window.piwikPluginAsyncInit[a]==="function"){window.piwikPluginAsyncInit[a]()}}}if(window&&window.piwikAsyncInit){window.piwikAsyncInit()}if(!window.Piwik.getAsyncTrackers().length){if(b()){window.Piwik.addTracker()}else{_paq={push:function(c){var d=typeof console;if(d!=="undefined"&&console&&console.error){console.error("_paq.push() was used but Piwik tracker was not initialized before the piwik.js file was loaded. Make sure to configure the tracker via _paq.push before loading piwik.js. Alternatively, you can create a tracker via Piwik.addTracker() manually and then use _paq.push but it may not fully work as tracker methods may not be executed in the correct order.",c) +}}}}}window.Piwik.trigger("PiwikInitialized",[]);window.Piwik.initialized=true}());(function(){var a=(typeof AnalyticsTracker);if(a==="undefined"){AnalyticsTracker=window.Piwik}}());if(typeof piwik_log!=="function"){piwik_log=function(b,f,d,g){function a(h){try{if(window["piwik_"+h]){return window["piwik_"+h]}}catch(i){}return}var c,e=window.Piwik.getTracker(d,f);e.setDocumentTitle(b);e.setCustomData(g);c=a("tracker_pause");if(c){e.setLinkTrackingTimer(c)}c=a("download_extensions");if(c){e.setDownloadExtensions(c)}c=a("hosts_alias");if(c){e.setDomains(c)}c=a("ignore_classes");if(c){e.setIgnoreClasses(c)}e.trackPageView();if(a("install_tracker")){piwik_track=function(i,k,j,h){e.setSiteId(k);e.setTrackerUrl(j);e.trackLink(i,h)};e.enableLinkTracking()}}; /*!! @license-end */ };
\ No newline at end of file @@ -19,7 +19,7 @@ var I="000000";var t=function(ac,ad){return(I+(ad||0)).slice(-ac)};var z="\\u00" ad.length<af;ad+=" "){}}}else{if(ai==O){ad=af.length<=10?af:af.slice(0,10)}}}return p("",(ak={},ak[""]=ac,ak),al,aj,ad,"",[])}}if(!o("json-parse")){var M=R.fromCharCode;var l={92:"\\",34:'"',47:"/",98:"\b",116:"\t",110:"\n",102:"\f",114:"\r"};var G,X;var H=function(){G=X=null;throw T()};var y=function(){var ah=X,af=ah.length,ag,ae,ac,ai,ad;while(G<af){ad=ah.charCodeAt(G);switch(ad){case 9:case 10:case 13:case 32:G++;break;case 123:case 125:case 91:case 93:case 58:case 44:ag=F?ah.charAt(G):ah[G];G++;return ag;case 34:for(ag="@",G++;G<af;){ad=ah.charCodeAt(G);if(ad<32){H()}else{if(ad==92){ad=ah.charCodeAt(++G);switch(ad){case 92:case 34:case 47:case 98:case 116:case 110:case 102:case 114:ag+=l[ad];G++;break;case 117:ae=++G;for(ac=G+4;G<ac;G++){ad=ah.charCodeAt(G);if(!(ad>=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<af&&((ad=ah.charCodeAt(G)),ad>=48&&ad<=57);G++){}if(ah.charCodeAt(G)==46){ac=++G;for(;ac<af&&((ad=ah.charCodeAt(ac)),ad>=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<af&&((ad=ah.charCodeAt(ac)),ad>=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.Piwik=(function(){var p,a={},v={},D=document,g=navigator,T=screen,Q=window,h=Q.performance||Q.mozPerformance||Q.msPerformance||Q.webkitPerformance,r=Q.encodeURIComponent,P=Q.decodeURIComponent,k=unescape,F=[],B,d,aa=[]; -function n(ah){try{return P(ah)}catch(ai){return unescape(ah)}}function G(ai){var ah=typeof ai;return ah!=="undefined"}function x(ah){return typeof ah==="function"}function S(ah){return typeof ah==="object"}function u(ah){return typeof ah==="string"||ah instanceof String}function y(ai){if(!ai){return true}var ah;var aj=true;for(ah in ai){if(Object.prototype.hasOwnProperty.call(ai,ah)){aj=false}}return aj}function ad(ah){if(console!==undefined&&console&&console.error){console.error(ah)}}function Z(){var am,al,ao,ai,ah;for(am=0;am<arguments.length;am+=1){ah=null;if(arguments[am]&&arguments[am].slice){ah=arguments[am].slice()}ai=arguments[am];ao=ai.shift();var an,aj;var ak=u(ao)&&ao.indexOf("::")>0;if(ak){an=ao.split("::");aj=an[0];ao=an[1];if("object"===typeof d[aj]&&"function"===typeof d[aj][ao]){d[aj][ao].apply(d[aj],ai)}else{if(ah){aa.push(ah)}}}else{for(al=0;al<F.length;al++){if(u(ao)){aj=F[al];var ap=ao.indexOf(".")>0;if(ap){an=ao.split(".");if(aj&&"object"===typeof aj[an[0]]){aj=aj[an[0]]; +function n(ah){try{return P(ah)}catch(ai){return unescape(ah)}}function G(ai){var ah=typeof ai;return ah!=="undefined"}function x(ah){return typeof ah==="function"}function S(ah){return typeof ah==="object"}function u(ah){return typeof ah==="string"||ah instanceof String}function y(ai){if(!ai){return true}var ah;var aj=true;for(ah in ai){if(Object.prototype.hasOwnProperty.call(ai,ah)){aj=false}}return aj}function ad(ah){var ai=typeof console;if(ai!=="undefined"&&console&&console.error){console.error(ah)}}function Z(){var am,al,ao,ai,ah;for(am=0;am<arguments.length;am+=1){ah=null;if(arguments[am]&&arguments[am].slice){ah=arguments[am].slice()}ai=arguments[am];ao=ai.shift();var an,aj;var ak=u(ao)&&ao.indexOf("::")>0;if(ak){an=ao.split("::");aj=an[0];ao=an[1];if("object"===typeof d[aj]&&"function"===typeof d[aj][ao]){d[aj][ao].apply(d[aj],ai)}else{if(ah){aa.push(ah)}}}else{for(al=0;al<F.length;al++){if(u(ao)){aj=F[al];var ap=ao.indexOf(".")>0;if(ap){an=ao.split(".");if(aj&&"object"===typeof aj[an[0]]){aj=aj[an[0]]; ao=an[1]}else{if(ah){aa.push(ah);break}}}if(aj[ao]){aj[ao].apply(aj,ai)}else{var aq="The method '"+ao+'\' was not found in "_paq" variable. Please have a look at the Piwik tracker documentation: http://developer.piwik.org/api-reference/tracking-javascript';ad(aq);if(!ap){throw new TypeError(aq)}}if(ao==="addTracker"){break}if(ao==="setTrackerUrl"||ao==="setSiteId"){break}}else{ao.apply(F[al],ai)}}}}}function ag(ak,aj,ai,ah){if(ak.addEventListener){ak.addEventListener(aj,ai,ah);return true}if(ak.attachEvent){return ak.attachEvent("on"+aj,ai)}ak["on"+aj]=ai}function l(ah){if(D.readyState==="complete"){ah()}else{if(Q.addEventListener){Q.addEventListener("load",ah)}else{if(Q.attachEvent){Q.attachEvent("onload",ah)}}}}function o(ak){var ah=false;if(D.attachEvent){ah=D.readyState==="complete"}else{ah=D.readyState!=="loading"}if(ah){ak();return}var aj;if(D.addEventListener){ag(D,"DOMContentLoaded",function ai(){D.removeEventListener("DOMContentLoaded",ai,false);if(!ah){ah=true;ak()}})}else{if(D.attachEvent){D.attachEvent("onreadystatechange",function ai(){if(D.readyState==="complete"){D.detachEvent("onreadystatechange",ai); if(!ah){ah=true;ak()}}});if(D.documentElement.doScroll&&Q===Q.top){(function ai(){if(!ah){try{D.documentElement.doScroll("left")}catch(al){setTimeout(ai,0);return}ah=true;ak()}}())}}}ag(Q,"load",function(){if(!ah){ah=true;ak()}},false)}function W(ai,an,ao){if(!ai){return""}var ah="",ak,aj,al,am;for(ak in a){if(Object.prototype.hasOwnProperty.call(a,ak)){am=a[ak]&&"function"===typeof a[ak][ai];if(am){aj=a[ak][ai];al=aj(an||{},ao);if(al){ah+=al}}}}return ah}function ab(){var ah;W("unload");if(p){do{ah=new Date()}while(ah.getTimeAlias()<p)}}function m(aj,ai){var ah=D.createElement("script");ah.type="text/javascript";ah.src=aj;if(ah.readyState){ah.onreadystatechange=function(){var ak=this.readyState;if(ak==="loaded"||ak==="complete"){ah.onreadystatechange=null;ai()}}}else{ah.onload=ai}D.getElementsByTagName("head")[0].appendChild(ah)}function H(){var ah="";try{ah=Q.top.document.referrer}catch(aj){if(Q.parent){try{ah=Q.parent.document.referrer}catch(ai){ah=""}}}if(ah===""){ah=D.referrer}return ah }function q(ah){var aj=new RegExp("^([a-z]+):"),ai=aj.exec(ah);return ai?ai[1]:null}function c(ah){var aj=new RegExp("^(?:(?:https?|ftp):)/*(?:[^@]+@)?([^:/#]+)"),ai=aj.exec(ah);return ai?ai[1]:ah}function ac(ai,ah){ai=String(ai);return ai.lastIndexOf(ah,0)===0}function O(ai,ah){ai=String(ai);return ai.indexOf(ah,ai.length-ah.length)!==-1}function w(ai,ah){ai=String(ai);return ai.indexOf(ah)!==-1}function f(ai,ah){ai=String(ai);return ai.substr(0,ai.length-ah)}function C(ak,aj,am){ak=String(ak);if(!am){am=""}var ah=ak.indexOf("#");var an=ak.length;if(ah===-1){ah=an}var al=ak.substr(0,ah);var ai=ak.substr(ah,an-ah);if(al.indexOf("?")===-1){al+="?"}else{if(!O(al,"?")){al+="&"}}return al+r(aj)+"="+r(am)+ai}function j(ai,aj){ai=String(ai);if(ai.indexOf("?"+aj+"=")===-1&&ai.indexOf("&"+aj+"=")===-1){return ai}var ak=ai.indexOf("?");if(ak===-1){return ai}var ah=ai.substr(ak+1);var ao=ai.substr(0,ak);if(ah){var ap="";var ar=ah.indexOf("#");if(ar!==-1){ap=ah.substr(ar+1);ah=ah.substr(0,ar)}var al; @@ -38,39 +38,39 @@ var aj=this.findMediaUrlInNode(ah);if(aj){return this.toAbsoluteUrl(aj)}},findCo }var ai=ak.clientWidth;if(Q.innerWidth&&ai>Q.innerWidth){ai=Q.innerWidth}var ah=ak.clientHeight;if(Q.innerHeight&&ah>Q.innerHeight){ah=Q.innerHeight}return((al.bottom>0||aj)&&al.right>0&&al.left<ai&&((al.top<ah)||aj))},isNodeVisible:function(ai){var ah=i(ai);var aj=this.isOrWasNodeInViewport(ai);return ah&&aj},buildInteractionRequestParams:function(ah,ai,aj,ak){var al="";if(ah){al+="c_i="+r(ah)}if(ai){if(al){al+="&"}al+="c_n="+r(ai)}if(aj){if(al){al+="&"}al+="c_p="+r(aj)}if(ak){if(al){al+="&"}al+="c_t="+r(ak)}return al},buildImpressionRequestParams:function(ah,ai,aj){var ak="c_n="+r(ah)+"&c_p="+r(ai);if(aj){ak+="&c_t="+r(aj)}return ak},buildContentBlock:function(aj){if(!aj){return}var ah=this.findContentName(aj);var ai=this.findContentPiece(aj);var ak=this.findContentTarget(aj);ah=this.trim(ah);ai=this.trim(ai);ak=this.trim(ak);return{name:ah||"Unknown",piece:ai||"Unknown",target:ak||""}},collectContent:function(ak){if(!ak||!ak.length){return[]}var aj=[];var ah,ai;for(ah=0;ah<ak.length; ah++){ai=this.buildContentBlock(ak[ah]);if(G(ai)){aj.push(ai)}}return aj},setLocation:function(ah){this.location=ah},getLocation:function(){var ah=this.location||Q.location;if(!ah.origin){ah.origin=ah.protocol+"//"+ah.hostname+(ah.port?":"+ah.port:"")}return ah},toAbsoluteUrl:function(ai){if((!ai||String(ai)!==ai)&&ai!==""){return ai}if(""===ai){return this.getLocation().href}if(ai.search(/^\/\//)!==-1){return this.getLocation().protocol+ai}if(ai.search(/:\/\//)!==-1){return ai}if(0===ai.indexOf("#")){return this.getLocation().origin+this.getLocation().pathname+ai}if(0===ai.indexOf("?")){return this.getLocation().origin+this.getLocation().pathname+ai}if(0===ai.search("^[a-zA-Z]{2,11}:")){return ai}if(ai.search(/^\//)!==-1){return this.getLocation().origin+ai}var ah="(.*/)";var aj=this.getLocation().origin+this.getLocation().pathname.match(new RegExp(ah))[0];return aj+ai},isUrlToCurrentDomain:function(ai){var aj=this.toAbsoluteUrl(ai);if(!aj){return false}var ah=this.getLocation().origin; if(ah===aj){return true}if(0===String(aj).indexOf(ah)){if(":"===String(aj).substr(ah.length,1)){return false}return true}return false},setHrefAttribute:function(ai,ah){if(!ai||!ah){return}Y.setAnyAttribute(ai,"href",ah)},shouldIgnoreInteraction:function(aj){var ai=Y.hasNodeAttribute(aj,this.CONTENT_IGNOREINTERACTION_ATTR);var ah=Y.hasNodeCssClass(aj,this.CONTENT_IGNOREINTERACTION_CLASS);return ai||ah}};function L(ai,al){if(al){return al}ai=t.toAbsoluteUrl(ai);if(w(ai,"?")){var ak=ai.indexOf("?");ai=ai.slice(0,ak)}if(O(ai,"piwik.php")){ai=f(ai,"piwik.php".length)}else{if(O(ai,".php")){var ah=ai.lastIndexOf("/");var aj=1;ai=ai.slice(0,ah+aj)}}if(O(ai,"/js/")){ai=f(ai,"js/".length)}return ai}function K(an){var ap="Piwik_Overlay";var ai=new RegExp("index\\.php\\?module=Overlay&action=startOverlaySession&idSite=([0-9]+)&period=([^&]+)&date=([^&]+)(&segment=.*)?$");var aj=ai.exec(D.referrer);if(aj){var al=aj[1];if(al!==String(an)){return false}var am=aj[2],ah=aj[3],ak=aj[4];if(!ak){ak=""}else{if(ak.indexOf("&segment=")===0){ak=ak.substr("&segment=".length) -}}Q.name=ap+"###"+am+"###"+ah+"###"+ak}var ao=Q.name.split("###");return ao.length===4&&ao[0]===ap}function U(ai,ao,ak){var an=Q.name.split("###"),am=an[1],ah=an[2],al=an[3],aj=L(ai,ao);m(aj+"plugins/Overlay/client/client.js?v=1",function(){Piwik_Overlay_Client.initialize(aj,ak,am,ah,al)})}function s(){var aj;try{aj=Q.frameElement}catch(ai){return true}if(G(aj)){return(aj&&String(aj.nodeName).toLowerCase()==="iframe")?true:false}try{return Q.self!==Q.top}catch(ah){return true}}function N(bV,bP){var bq=this,bL=V(D.domain,Q.location.href,H()),cw=I(bL[0]),bv=n(bL[1]),a9=n(bL[2]),cu=false,bZ="GET",cJ=bZ,az="application/x-www-form-urlencoded; charset=UTF-8",cd=az,av=bV||"",bp="",cA="",bN=bP||"",bi="",bw="",aT,a5="",cG=["7z","aac","apk","arc","arj","asf","asx","avi","azw3","bin","csv","deb","dmg","doc","docx","epub","exe","flv","gif","gz","gzip","hqx","ibooks","jar","jpg","jpeg","js","mobi","mp2","mp3","mp4","mpg","mpeg","mov","movie","msi","msp","odb","odf","odg","ods","odt","ogg","ogv","pdf","phps","png","ppt","pptx","qt","qtm","ra","ram","rar","rpm","sea","sit","tar","tbz","tbz2","bz","bz2","tgz","torrent","txt","wav","wma","wmv","wpd","xls","xlsx","xml","z","zip"],ao=[cw],bj=[],bt=[],aW=[],br=500,cm,aU,bz,bx,ah,b8=["pk_campaign","piwik_campaign","utm_campaign","utm_source","utm_medium"],bo=["pk_kwd","piwik_kwd","utm_term"],a6="_pk_",an="pk_vid",cy,bb,a7=false,cs,a1,bf,cn=33955200000,b6=1800000,cF=15768000000,aR=true,b4=0,by=false,aG=false,bS,bD={},b3={},a8={},be=200,cB={},cH={},bR=[],bW=false,cg=false,ai=false,cI=false,cp=false,aE=false,a0=s(),cz=null,bT,aH,bk,bO=af,ba,aB; -try{a5=D.title}catch(ce){a5=""}function cM(cX,cU,cT,cW,cS,cV){if(a7){return}var cR;if(cT){cR=new Date();cR.setTime(cR.getTime()+cT)}D.cookie=cX+"="+r(cU)+(cT?";expires="+cR.toGMTString():"")+";path="+(cW||"/")+(cS?";domain="+cS:"")+(cV?";secure":"")}function au(cT){if(a7){return 0}var cR=new RegExp("(^|;)[ ]*"+cT+"=([^;]*)"),cS=cR.exec(D.cookie);return cS?P(cS[2]):0}function bJ(cR){var cS;cR=j(cR,an);if(bx){cS=new RegExp("#.*");return cR.replace(cS,"")}return cR}function bC(cT,cR){var cU=q(cR),cS;if(cU){return cR}if(cR.slice(0,1)==="/"){return q(cT)+"://"+c(cT)+cR}cT=bJ(cT);cS=cT.indexOf("?");if(cS>=0){cT=cT.slice(0,cS)}cS=cT.lastIndexOf("/");if(cS!==cT.length-1){cT=cT.slice(0,cS+1)}return cT+cR}function cl(cT,cR){var cS;cT=String(cT).toLowerCase();cR=String(cR).toLowerCase();if(cT===cR){return true}if(cR.slice(0,1)==="."){if(cT===cR.slice(1)){return true}cS=cT.length-cR.length;if((cS>0)&&(cT.slice(cS)===cR)){return true}}return false}function b2(cR){var cS=document.createElement("a");if(cR.indexOf("//")!==0&&cR.indexOf("http")!==0){if(cR.indexOf("*")===0){cR=cR.substr(1) -}if(cR.indexOf(".")===0){cR=cR.substr(1)}cR="http://"+cR}cS.href=t.toAbsoluteUrl(cR);if(cS.pathname){return cS.pathname}return""}function aS(cS,cR){if(!ac(cR,"/")){cR="/"+cR}if(!ac(cS,"/")){cS="/"+cS}var cT=(cR==="/"||cR==="/*");if(cT){return true}if(cS===cR){return true}cR=String(cR).toLowerCase();cS=String(cS).toLowerCase();if(O(cR,"*")){cR=cR.slice(0,-1);cT=(!cR||cR==="/");if(cT){return true}if(cS===cR){return true}return cS.indexOf(cR)===0}if(!O(cS,"/")){cS+="/"}if(!O(cR,"/")){cR+="/"}return cS.indexOf(cR)===0}function ak(cV,cX){var cS,cR,cT,cU,cW;for(cS=0;cS<ao.length;cS++){cU=I(ao[cS]);cW=b2(ao[cS]);if(cl(cV,cU)&&aS(cX,cW)){return true}}return false}function aL(cU){var cS,cR,cT;for(cS=0;cS<ao.length;cS++){cR=I(ao[cS].toLowerCase());if(cU===cR){return true}if(cR.slice(0,1)==="."){if(cU===cR.slice(1)){return true}cT=cU.length-cR.length;if((cT>0)&&(cU.slice(cT)===cR)){return true}}}return false}function b7(cR,cT){var cS=new Image(1,1);cS.onload=function(){B=0;if(typeof cT==="function"){cT() -}};cR=cR.replace("send_image=0","send_image=1");cS.src=av+(av.indexOf("?")<0?"?":"&")+cR}function cE(cS,cV,cR){if(!G(cR)||null===cR){cR=true}try{var cU=Q.XMLHttpRequest?new Q.XMLHttpRequest():Q.ActiveXObject?new ActiveXObject("Microsoft.XMLHTTP"):null;cU.open("POST",av,true);cU.onreadystatechange=function(){if(this.readyState===4&&!(this.status>=200&&this.status<300)&&cR){b7(cS,cV)}else{if(this.readyState===4&&(typeof cV==="function")){cV()}}};cU.setRequestHeader("Content-Type",cd);cU.send(cS)}catch(cT){if(cR){b7(cS,cV)}}}function bX(cS){var cR=new Date();var cT=cR.getTime()+cS;if(!p||cT>p){p=cT}}function b5(cR){if(bT||!aU){return}bT=setTimeout(function cS(){bT=null;if(!a0){a0=(!D.hasFocus||D.hasFocus())}if(!a0){b5(aU);return}if(bz()){return}var cT=new Date(),cU=aU-(cT.getTime()-cz);cU=Math.min(aU,cU);b5(cU)},cR||aU)}function bs(){if(!bT){return}clearTimeout(bT);bT=null}function aY(){a0=true;if(bz()){return}b5()}function ap(){bs()}function cO(){if(aE||!aU){return}aE=true;ag(Q,"focus",aY); -ag(Q,"blur",ap);b5()}function ch(cV){var cS=new Date();var cR=cS.getTime();cz=cR;if(cg&&cR<cg){var cT=cg-cR;setTimeout(cV,cT);bX(cT+50);cg+=50;return}if(cg===false){var cU=800;cg=cR+cU}cV()}function bn(cS,cR,cT){if(!cs&&cS){ch(function(){if(cJ==="POST"||String(cS).length>2000){cE(cS,cT)}else{b7(cS,cT)}bX(cR)})}if(!aE){cO()}else{b5()}}function b1(cR){if(cs){return false}return(cR&&cR.length)}function cN(cT,cR){if(!b1(cT)){return}var cS='{"requests":["?'+cT.join('","?')+'"]}';ch(function(){cE(cS,null,false);bX(cR)})}function aJ(cR){return a6+cR+"."+bN+"."+ba}function bM(){if(a7){return"0"}if(!G(g.cookieEnabled)){var cR=aJ("testcookie");cM(cR,"1");return au(cR)==="1"?"1":"0"}return g.cookieEnabled?"1":"0"}function a4(){ba=bO((cy||cw)+(bb||"/")).slice(0,4)}function bE(){var cS=aJ("cvar"),cR=au(cS);if(cR.length){cR=JSON_PIWIK.parse(cR);if(S(cR)){return cR}}return{}}function ci(){if(aG===false){aG=bE()}}function ct(){return bO((g.userAgent||"")+(g.platform||"")+JSON_PIWIK.stringify(cH)+(new Date()).getTime()+Math.random()).slice(0,16) -}function aq(){return bO((g.userAgent||"")+(g.platform||"")+JSON_PIWIK.stringify(cH)).slice(0,6)}function a2(){return Math.floor((new Date()).getTime()/1000)}function aA(){var cS=a2();var cT=aq();var cR=String(cS)+cT;return cR}function cD(cU){cU=String(cU);var cX=aq();var cV=cX.length;var cW=cU.substr(-1*cV,cV);var cT=parseInt(cU.substr(0,cU.length-cV),10);if(cT&&cW&&cW===cX){var cR=a2();var cS=45;if(cR>=cT&&cR<=(cT+cS)){return true}}return false}function cP(cR){if(!cp){return""}var cV=e(cR,an);if(!cV){return""}cV=String(cV);var cT=new RegExp("^[a-zA-Z0-9]+$");if(cV.length===32&&cT.test(cV)){var cS=cV.substr(16,32);if(cD(cS)){var cU=cV.substr(0,16);return cU}}return""}function cq(){if(!bw){bw=cP(bv)}var cT=new Date(),cR=Math.round(cT.getTime()/1000),cS=aJ("id"),cW=au(cS),cV,cU;if(cW){cV=cW.split(".");cV.unshift("0");if(bw.length){cV[1]=bw}return cV}if(bw.length){cU=bw}else{if("0"===bM()){cU=""}else{cU=ct()}}cV=["1",cU,cR,0,cR,"",""];return cV}function aN(){var cY=cq(),cU=cY[0],cV=cY[1],cS=cY[2],cR=cY[3],cW=cY[4],cT=cY[5]; -if(!G(cY[6])){cY[6]=""}var cX=cY[6];return{newVisitor:cU,uuid:cV,createTs:cS,visitCount:cR,currentVisitTs:cW,lastVisitTs:cT,lastEcommerceOrderTs:cX}}function ay(){var cU=new Date(),cS=cU.getTime(),cV=aN().createTs;var cR=parseInt(cV,10);var cT=(cR*1000)+cn-cS;return cT}function aC(cR){if(!bN){return}var cT=new Date(),cS=Math.round(cT.getTime()/1000);if(!G(cR)){cR=aN()}var cU=cR.uuid+"."+cR.createTs+"."+cR.visitCount+"."+cS+"."+cR.lastVisitTs+"."+cR.lastEcommerceOrderTs;cM(aJ("id"),cU,ay(),bb,cy)}function bu(){var cR=au(aJ("ref"));if(cR.length){try{cR=JSON_PIWIK.parse(cR);if(S(cR)){return cR}}catch(cS){}}return["","",0,""]}function bF(cT,cS,cR){cM(cT,"",-86400,cS,cR)}function bg(cS){var cR="testvalue";cM("test",cR,10000,null,cS);if(au("test")===cR){bF("test",null,cS);return true}return false}function aw(){var cT=a7;a7=false;var cR=["id","ses","cvar","ref"];var cS,cU;for(cS=0;cS<cR.length;cS++){cU=aJ(cR[cS]);if(0!==au(cU)){bF(cU,bb,cy)}}a7=cT}function bK(cR){bN=cR;aC()}function cQ(cV){if(!cV||!S(cV)){return -}var cU=[];var cT;for(cT in cV){if(Object.prototype.hasOwnProperty.call(cV,cT)){cU.push(cT)}}var cW={};cU.sort();var cR=cU.length;var cS;for(cS=0;cS<cR;cS++){cW[cU[cS]]=cV[cU[cS]]}return cW}function bU(){cM(aJ("ses"),"*",b6,bb,cy)}function a3(){var cU="";var cS="abcdefghijklmnopqrstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ";var cT=cS.length;var cR;for(cR=0;cR<6;cR++){cU+=cS.charAt(Math.floor(Math.random()*cT))}return cU}function b9(cT,de,df,cU){var dd,cS=new Date(),c1=Math.round(cS.getTime()/1000),cY,dc,cV=1024,dk,c2,da=aG,cW=aJ("ses"),c8=aJ("ref"),c5=aJ("cvar"),c6=au(cW),db=bu(),dh=aT||bv,cZ,cR;if(a7){aw()}if(cs){return""}var c7=aN();if(!G(cU)){cU=""}var c4=D.characterSet||D.charset;if(!c4||c4.toLowerCase()==="utf-8"){c4=null}cZ=db[0];cR=db[1];cY=db[2];dc=db[3];if(!c6){var dg=b6/1000;if(!c7.lastVisitTs||(c1-c7.lastVisitTs)>dg){c7.visitCount++;c7.lastVisitTs=c7.currentVisitTs}if(!bf||!cZ.length){for(dd in b8){if(Object.prototype.hasOwnProperty.call(b8,dd)){cZ=e(dh,b8[dd]);if(cZ.length){break -}}}for(dd in bo){if(Object.prototype.hasOwnProperty.call(bo,dd)){cR=e(dh,bo[dd]);if(cR.length){break}}}}dk=c(a9);c2=dc.length?c(dc):"";if(dk.length&&!aL(dk)&&(!bf||!c2.length||aL(c2))){dc=a9}if(dc.length||cZ.length){cY=c1;db=[cZ,cR,cY,bJ(dc.slice(0,cV))];cM(c8,JSON_PIWIK.stringify(db),cF,bb,cy)}}cT+="&idsite="+bN+"&rec=1&r="+String(Math.random()).slice(2,8)+"&h="+cS.getHours()+"&m="+cS.getMinutes()+"&s="+cS.getSeconds()+"&url="+r(bJ(dh))+(a9.length?"&urlref="+r(bJ(a9)):"")+((bi&&bi.length)?"&uid="+r(bi):"")+"&_id="+c7.uuid+"&_idts="+c7.createTs+"&_idvc="+c7.visitCount+"&_idn="+c7.newVisitor+(cZ.length?"&_rcn="+r(cZ):"")+(cR.length?"&_rck="+r(cR):"")+"&_refts="+cY+"&_viewts="+c7.lastVisitTs+(String(c7.lastEcommerceOrderTs).length?"&_ects="+c7.lastEcommerceOrderTs:"")+(String(dc).length?"&_ref="+r(bJ(dc.slice(0,cV))):"")+(c4?"&cs="+r(c4):"")+"&send_image=0";for(dd in cH){if(Object.prototype.hasOwnProperty.call(cH,dd)){cT+="&"+dd+"="+cH[dd]}}var dj=[];if(de){for(dd in de){if(Object.prototype.hasOwnProperty.call(de,dd)&&/^dimension\d+$/.test(dd)){var cX=dd.replace("dimension",""); -dj.push(parseInt(cX,10));dj.push(String(cX));cT+="&"+dd+"="+de[dd];delete de[dd]}}}if(de&&y(de)){de=null}for(dd in a8){if(Object.prototype.hasOwnProperty.call(a8,dd)){var c3=(-1===J(dj,dd));if(c3){cT+="&dimension"+dd+"="+a8[dd]}}}if(de){cT+="&data="+r(JSON_PIWIK.stringify(de))}else{if(ah){cT+="&data="+r(JSON_PIWIK.stringify(ah))}}function c0(dl,dm){var dn=JSON_PIWIK.stringify(dl);if(dn.length>2){return"&"+dm+"="+r(dn)}return""}var di=cQ(bD);var c9=cQ(b3);cT+=c0(di,"cvar");cT+=c0(c9,"e_cvar");if(aG){cT+=c0(aG,"_cvar");for(dd in da){if(Object.prototype.hasOwnProperty.call(da,dd)){if(aG[dd][0]===""||aG[dd][1]===""){delete aG[dd]}}}if(by){cM(c5,JSON_PIWIK.stringify(aG),b6,bb,cy)}}if(aR){if(b4){cT+=">_ms="+b4}else{if(h&&h.timing&&h.timing.requestStart&&h.timing.responseEnd){cT+=">_ms="+(h.timing.responseEnd-h.timing.requestStart)}}}if(aB){cT+="&pv_id="+aB}c7.lastEcommerceOrderTs=G(cU)&&String(cU).length?cU:c7.lastEcommerceOrderTs;aC(c7);bU();cT+=W(df,{tracker:bq,request:cT});if(cA.length){cT+="&"+cA -}if(x(bS)){cT=bS(cT)}return cT}bz=function aV(){var cR=new Date();if(cz+aU<=cR.getTime()){var cS=b9("ping=1",null,"ping");bn(cS,br);return true}return false};function bc(cU,cT,cZ,cV,cR,c2){var cX="idgoal=0",cY,cS=new Date(),c0=[],c1,cW=String(cU).length;if(cW){cX+="&ec_id="+r(cU);cY=Math.round(cS.getTime()/1000)}cX+="&revenue="+cT;if(String(cZ).length){cX+="&ec_st="+cZ}if(String(cV).length){cX+="&ec_tx="+cV}if(String(cR).length){cX+="&ec_sh="+cR}if(String(c2).length){cX+="&ec_dt="+c2}if(cB){for(c1 in cB){if(Object.prototype.hasOwnProperty.call(cB,c1)){if(!G(cB[c1][1])){cB[c1][1]=""}if(!G(cB[c1][2])){cB[c1][2]=""}if(!G(cB[c1][3])||String(cB[c1][3]).length===0){cB[c1][3]=0}if(!G(cB[c1][4])||String(cB[c1][4]).length===0){cB[c1][4]=1}c0.push(cB[c1])}}cX+="&ec_items="+r(JSON_PIWIK.stringify(c0))}cX=b9(cX,ah,"ecommerce",cY);bn(cX,br);if(cW){cB={}}}function bG(cR,cV,cU,cT,cS,cW){if(String(cR).length&&G(cV)){bc(cR,cV,cU,cT,cS,cW)}}function bd(cR){if(G(cR)){bc("",cR,"","","","")}}function bH(cS,cU,cT){aB=a3(); -var cR=b9("action_name="+r(ae(cS||a5)),cU,"log");bn(cR,br,cT)}function aP(cT,cS){var cU,cR="(^| )(piwik[_-]"+cS;if(cT){for(cU=0;cU<cT.length;cU++){cR+="|"+cT[cU]}}cR+=")( |$)";return new RegExp(cR)}function aK(cR){return(av&&cR&&0===String(cR).indexOf(av))}function ca(cV,cR,cW,cS){if(aK(cR)){return 0}var cU=aP(bt,"download"),cT=aP(aW,"link"),cX=new RegExp("\\.("+cG.join("|")+")([?&#]|$)","i");if(cT.test(cV)){return"link"}if(cS||cU.test(cV)||cX.test(cR)){return"download"}if(cW){return 0}return"link"}function al(cS){var cR;cR=cS.parentNode;while(cR!==null&&G(cR)){if(Y.isLinkElement(cS)){break}cS=cR;cR=cS.parentNode}return cS}function cK(cW){cW=al(cW);if(!Y.hasNodeAttribute(cW,"href")){return}if(!G(cW.href)){return}var cV=Y.getAttributeValueFromNode(cW,"href");if(aK(cV)){return}var cS=cW.pathname||b2(cW.href);var cX=cW.hostname||c(cW.href);var cY=cX.toLowerCase();var cT=cW.href.replace(cX,cY);var cU=new RegExp("^(javascript|vbscript|jscript|mocha|livescript|ecmascript|mailto|tel):","i");if(!cU.test(cT)){var cR=ca(cW.className,cT,ak(cY,cS),Y.hasNodeAttribute(cW,"download")); -if(cR){return{type:cR,href:cT}}}}function aF(cR,cS,cT,cU){var cV=t.buildInteractionRequestParams(cR,cS,cT,cU);if(!cV){return}return b9(cV,null,"contentInteraction")}function co(cT,cU,cY,cR,cS){if(!G(cT)){return}if(aK(cT)){return cT}var cW=t.toAbsoluteUrl(cT);var cV="redirecturl="+r(cW)+"&";cV+=aF(cU,cY,cR,(cS||cT));var cX="&";if(av.indexOf("?")<0){cX="?"}return av+cX+cV}function aZ(cR,cS){if(!cR||!cS){return false}var cT=t.findTargetNode(cR);if(t.shouldIgnoreInteraction(cT)){return false}cT=t.findTargetNodeNoDefault(cR);if(cT&&!R(cT,cS)){return false}return true}function cb(cT,cS,cV){if(!cT){return}var cR=t.findParentContentNode(cT);if(!cR){return}if(!aZ(cR,cT)){return}var cU=t.buildContentBlock(cR);if(!cU){return}if(!cU.target&&cV){cU.target=cV}return t.buildInteractionRequestParams(cS,cU.name,cU.piece,cU.target)}function aM(cS){if(!bR||!bR.length){return false}var cR,cT;for(cR=0;cR<bR.length;cR++){cT=bR[cR];if(cT&&cT.name===cS.name&&cT.piece===cS.piece&&cT.target===cS.target){return true -}}return false}function bm(cU){if(!cU){return false}var cX=t.findTargetNode(cU);if(!cX||t.shouldIgnoreInteraction(cX)){return false}var cY=cK(cX);if(cI&&cY&&cY.type){return false}if(Y.isLinkElement(cX)&&Y.hasNodeAttributeWithValue(cX,"href")){var cR=String(Y.getAttributeValueFromNode(cX,"href"));if(0===cR.indexOf("#")){return false}if(aK(cR)){return true}if(!t.isUrlToCurrentDomain(cR)){return false}var cV=t.buildContentBlock(cU);if(!cV){return}var cT=cV.name;var cZ=cV.piece;var cW=cV.target;if(!Y.hasNodeAttributeWithValue(cX,t.CONTENT_TARGET_ATTR)||cX.wasContentTargetAttrReplaced){cX.wasContentTargetAttrReplaced=true;cW=t.toAbsoluteUrl(cR);Y.setAnyAttribute(cX,t.CONTENT_TARGET_ATTR,cW)}var cS=co(cR,"click",cT,cZ,cW);t.setHrefAttribute(cX,cS);return true}return false}function aD(cS){if(!cS||!cS.length){return}var cR;for(cR=0;cR<cS.length;cR++){bm(cS[cR])}}function aO(cR){return function(cS){if(!cR){return}var cV=t.findParentContentNode(cR);var cW;if(cS){cW=cS.target||cS.srcElement}if(!cW){cW=cR -}if(!aZ(cV,cW)){return}bX(br);if(Y.isLinkElement(cR)&&Y.hasNodeAttributeWithValue(cR,"href")&&Y.hasNodeAttributeWithValue(cR,t.CONTENT_TARGET_ATTR)){var cT=Y.getAttributeValueFromNode(cR,"href");if(!aK(cT)&&cR.wasContentTargetAttrReplaced){Y.setAnyAttribute(cR,t.CONTENT_TARGET_ATTR,"")}}var c0=cK(cR);if(ai&&c0&&c0.type){return c0.type}if(bm(cV)){return"href"}var cX=t.buildContentBlock(cV);if(!cX){return}var cU=cX.name;var c1=cX.piece;var cZ=cX.target;var cY=aF("click",cU,c1,cZ);bn(cY,br);return cY}}function bI(cT){if(!cT||!cT.length){return}var cR,cS;for(cR=0;cR<cT.length;cR++){cS=t.findTargetNode(cT[cR]);if(cS&&!cS.contentInteractionTrackingSetupDone){cS.contentInteractionTrackingSetupDone=true;ag(cS,"click",aO(cS))}}}function bh(cT,cU){if(!cT||!cT.length){return[]}var cR,cS;for(cR=0;cR<cT.length;cR++){if(aM(cT[cR])){cT.splice(cR,1);cR--}else{bR.push(cT[cR])}}if(!cT||!cT.length){return[]}aD(cU);bI(cU);var cV=[];for(cR=0;cR<cT.length;cR++){cS=b9(t.buildImpressionRequestParams(cT[cR].name,cT[cR].piece,cT[cR].target),undefined,"contentImpressions"); -if(cS){cV.push(cS)}}return cV}function cf(cS){var cR=t.collectContent(cS);return bh(cR,cS)}function aX(cS){if(!cS||!cS.length){return[]}var cR;for(cR=0;cR<cS.length;cR++){if(!t.isNodeVisible(cS[cR])){cS.splice(cR,1);cR--}}if(!cS||!cS.length){return[]}return cf(cS)}function ax(cT,cR,cS){var cU=t.buildImpressionRequestParams(cT,cR,cS);return b9(cU,null,"contentImpression")}function cL(cU,cS){if(!cU){return}var cR=t.findParentContentNode(cU);var cT=t.buildContentBlock(cR);if(!cT){return}if(!cS){cS="Unknown"}return aF(cS,cT.name,cT.piece,cT.target)}function cr(cS,cU,cR,cT){return"e_c="+r(cS)+"&e_a="+r(cU)+(G(cR)?"&e_n="+r(cR):"")+(G(cT)?"&e_v="+r(cT):"")}function am(cT,cV,cR,cU,cX,cW){if(String(cT).length===0||String(cV).length===0){return false}var cS=b9(cr(cT,cV,cR,cU),cX,"event");bn(cS,br,cW)}function bQ(cR,cU,cS,cV){var cT=b9("search="+r(cR)+(cU?"&search_cat="+r(cU):"")+(G(cS)?"&search_count="+cS:""),cV,"sitesearch");bn(cT,br)}function cv(cR,cU,cT){var cS=b9("idgoal="+cR+(cU?"&revenue="+cU:""),cT,"goal"); -bn(cS,br)}function cC(cU,cR,cY,cX,cT){var cW=cR+"="+r(bJ(cU));var cS=cb(cT,"click",cU);if(cS){cW+="&"+cS}var cV=b9(cW,cY,"link");bn(cV,br,cX)}function bB(cS,cR){if(cS!==""){return cS+cR.charAt(0).toUpperCase()+cR.slice(1)}return cR}function bY(cW){var cV,cR,cU=["","webkit","ms","moz"],cT;if(!a1){for(cR=0;cR<cU.length;cR++){cT=cU[cR];if(Object.prototype.hasOwnProperty.call(D,bB(cT,"hidden"))){if(D[bB(cT,"visibilityState")]==="prerender"){cV=true}break}}}if(cV){ag(D,cT+"visibilitychange",function cS(){D.removeEventListener(cT+"visibilitychange",cS,false);cW()});return}cW()}function b0(cR){if(!cR){return}if(!Y.hasNodeAttribute(cR,"href")){return}var cS=Y.getAttributeValueFromNode(cR,"href");if(!cS||aK(cS)){return}cS=j(cS,an);if(cS.indexOf("?")>0){cS+="&"}else{cS+="?"}var cU=aN().uuid;var cT=aA();cS=C(cS,an,cU+cT);Y.setAnyAttribute(cR,"href",cS)}function ar(cU){var cV=Y.getAttributeValueFromNode(cU,"href");if(!cV){return false}cV=String(cV);var cS=cV.indexOf("//")===0||cV.indexOf("http://")===0||cV.indexOf("https://")===0; -if(!cS){return false}var cR=cU.pathname||b2(cU.href);var cT=(cU.hostname||c(cU.href)).toLowerCase();if(ak(cT,cR)){if(!cl(cw,I(cT))){return true}return false}return false}function ck(cR){var cS=cK(cR);if(cS&&cS.type){cS.href=n(cS.href);cC(cS.href,cS.type,undefined,null,cR);return}if(cp){cR=al(cR);if(ar(cR)){b0(cR)}}}function cc(){return D.all&&!D.addEventListener}function cx(cR){var cT=cR.which;var cS=(typeof cR.button);if(!cT&&cS!=="undefined"){if(cc()){if(cR.button&1){cT=1}else{if(cR.button&2){cT=3}else{if(cR.button&4){cT=2}}}}else{if(cR.button===0||cR.button==="0"){cT=1}else{if(cR.button&1){cT=2}else{if(cR.button&2){cT=3}}}}}return cT}function bA(cR){switch(cx(cR)){case 1:return"left";case 2:return"middle";case 3:return"right"}}function aQ(cR){return cR.target||cR.srcElement}function at(cR){return function(cU){cU=cU||Q.event;var cT=bA(cU);var cV=aQ(cU);if(cU.type==="click"){var cS=false;if(cR&&cT==="middle"){cS=true}if(cV&&!cS){ck(cV)}}else{if(cU.type==="mousedown"){if(cT==="middle"&&cV){aH=cT; -bk=cV}else{aH=bk=null}}else{if(cU.type==="mouseup"){if(cT===aH&&cV===bk){ck(cV)}aH=bk=null}else{if(cU.type==="contextmenu"){ck(cV)}}}}}}function aj(cT,cS){var cR=typeof cS;if(cR==="undefined"){cS=true}ag(cT,"click",at(cS),false);if(cS){ag(cT,"mouseup",at(cS),false);ag(cT,"mousedown",at(cS),false);ag(cT,"contextmenu",at(cS),false)}}function bl(cT,cV){ai=true;var cU,cS=aP(bj,"ignore"),cW=D.links,cR=null,cX=null;if(cW){for(cU=0;cU<cW.length;cU++){cR=cW[cU];if(!cS.test(cR.className)){cX=typeof cR.piwikTrackers;if("undefined"===cX){cR.piwikTrackers=[]}if(-1===J(cR.piwikTrackers,cV)){cR.piwikTrackers.push(cV);aj(cR,cT)}}}}}function aI(cT,cV,cW){if(bW){return true}bW=true;var cX=false;var cU,cS;function cR(){cX=true}l(function(){function cY(c0){setTimeout(function(){if(!bW){return}cX=false;cW.trackVisibleContentImpressions();cY(c0)},c0)}function cZ(c0){setTimeout(function(){if(!bW){return}if(cX){cX=false;cW.trackVisibleContentImpressions()}cZ(c0)},c0)}if(cT){cU=["scroll","resize"];for(cS=0;cS<cU.length; -cS++){if(D.addEventListener){D.addEventListener(cU[cS],cR)}else{Q.attachEvent("on"+cU[cS],cR)}}cZ(100)}if(cV&&cV>0){cV=parseInt(cV,10);cY(cV)}})}function cj(){var cS,cU,cV={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(g.userAgent))){if(g.mimeTypes&&g.mimeTypes.length){for(cS in cV){if(Object.prototype.hasOwnProperty.call(cV,cS)){cU=g.mimeTypes[cV[cS]];cH[cS]=(cU&&cU.enabledPlugin)?"1":"0"}}}if(typeof navigator.javaEnabled!=="unknown"&&G(g.javaEnabled)&&g.javaEnabled()){cH.java="1"}if(x(Q.GearsFactory)){cH.gears="1"}cH.cookie=bM()}var cT=parseInt(T.width,10);var cR=parseInt(T.height,10);cH.res=parseInt(cT,10)+"x"+parseInt(cR,10)}cj();a4();aC();this.getVisitorId=function(){return aN().uuid};this.getVisitorInfo=function(){return cq()};this.getAttributionInfo=function(){return bu() -};this.getAttributionCampaignName=function(){return bu()[0]};this.getAttributionCampaignKeyword=function(){return bu()[1]};this.getAttributionReferrerTimestamp=function(){return bu()[2]};this.getAttributionReferrerUrl=function(){return bu()[3]};this.setTrackerUrl=function(cR){av=cR};this.getTrackerUrl=function(){return av};this.getPiwikUrl=function(){return L(this.getTrackerUrl(),bp)};this.addTracker=function(cR,cT){if(!cT){throw new Error("A siteId must be given to add a new tracker")}if(!G(cR)||null===cR){cR=this.getTrackerUrl()}var cS=new N(cR,cT);F.push(cS);return cS};this.getSiteId=function(){return bN};this.setSiteId=function(cR){bK(cR)};this.setUserId=function(cR){if(!G(cR)||!cR.length){return}bi=cR;bw=bO(bi).substr(0,16)};this.getUserId=function(){return bi};this.setCustomData=function(cR,cS){if(S(cR)){ah=cR}else{if(!ah){ah={}}ah[cR]=cS}};this.getCustomData=function(){return ah};this.setCustomRequestProcessing=function(cR){bS=cR};this.appendToTrackingUrl=function(cR){cA=cR};this.getRequest=function(cR){return b9(cR) -};this.addPlugin=function(cR,cS){a[cR]=cS};this.setCustomDimension=function(cR,cS){cR=parseInt(cR,10);if(cR>0){if(!G(cS)){cS=""}if(!u(cS)){cS=String(cS)}a8[cR]=cS}};this.getCustomDimension=function(cR){cR=parseInt(cR,10);if(cR>0&&Object.prototype.hasOwnProperty.call(a8,cR)){return a8[cR]}};this.deleteCustomDimension=function(cR){cR=parseInt(cR,10);if(cR>0){delete a8[cR]}};this.setCustomVariable=function(cS,cR,cV,cT){var cU;if(!G(cT)){cT="visit"}if(!G(cR)){return}if(!G(cV)){cV=""}if(cS>0){cR=!u(cR)?String(cR):cR;cV=!u(cV)?String(cV):cV;cU=[cR.slice(0,be),cV.slice(0,be)];if(cT==="visit"||cT===2){ci();aG[cS]=cU}else{if(cT==="page"||cT===3){bD[cS]=cU}else{if(cT==="event"){b3[cS]=cU}}}}};this.getCustomVariable=function(cS,cT){var cR;if(!G(cT)){cT="visit"}if(cT==="page"||cT===3){cR=bD[cS]}else{if(cT==="event"){cR=b3[cS]}else{if(cT==="visit"||cT===2){ci();cR=aG[cS]}}}if(!G(cR)||(cR&&cR[0]==="")){return false}return cR};this.deleteCustomVariable=function(cR,cS){if(this.getCustomVariable(cR,cS)){this.setCustomVariable(cR,"","",cS) -}};this.deleteCustomVariables=function(cR){if(cR==="page"||cR===3){bD={}}else{if(cR==="event"){b3={}}else{if(cR==="visit"||cR===2){aG={}}}}};this.storeCustomVariablesInCookie=function(){by=true};this.setLinkTrackingTimer=function(cR){br=cR};this.getLinkTrackingTimer=function(){return br};this.setDownloadExtensions=function(cR){if(u(cR)){cR=cR.split("|")}cG=cR};this.addDownloadExtensions=function(cS){var cR;if(u(cS)){cS=cS.split("|")}for(cR=0;cR<cS.length;cR++){cG.push(cS[cR])}};this.removeDownloadExtensions=function(cT){var cS,cR=[];if(u(cT)){cT=cT.split("|")}for(cS=0;cS<cG.length;cS++){if(J(cT,cG[cS])===-1){cR.push(cG[cS])}}cG=cR};this.setDomains=function(cR){ao=u(cR)?[cR]:cR;var cV=false,cT=0,cS;for(cT;cT<ao.length;cT++){cS=String(ao[cT]);if(cl(cw,I(cS))){cV=true;break}var cU=b2(cS);if(cU&&cU!=="/"&&cU!=="/*"){cV=true;break}}if(!cV){ao.push(cw)}};this.enableCrossDomainLinking=function(){cp=true};this.disableCrossDomainLinking=function(){cp=false};this.isCrossDomainLinkingEnabled=function(){return cp -};this.setIgnoreClasses=function(cR){bj=u(cR)?[cR]:cR};this.setRequestMethod=function(cR){cJ=cR||bZ};this.setRequestContentType=function(cR){cd=cR||az};this.setReferrerUrl=function(cR){a9=cR};this.setCustomUrl=function(cR){aT=bC(bv,cR)};this.getCurrentUrl=function(){return aT||bv};this.setDocumentTitle=function(cR){a5=cR};this.setAPIUrl=function(cR){bp=cR};this.setDownloadClasses=function(cR){bt=u(cR)?[cR]:cR};this.setLinkClasses=function(cR){aW=u(cR)?[cR]:cR};this.setCampaignNameKey=function(cR){b8=u(cR)?[cR]:cR};this.setCampaignKeywordKey=function(cR){bo=u(cR)?[cR]:cR};this.discardHashTag=function(cR){bx=cR};this.setCookieNamePrefix=function(cR){a6=cR;aG=bE()};this.setCookieDomain=function(cR){var cS=I(cR);if(bg(cS)){cy=cS;a4()}};this.setCookiePath=function(cR){bb=cR;a4()};this.setVisitorCookieTimeout=function(cR){cn=cR*1000};this.setSessionCookieTimeout=function(cR){b6=cR*1000};this.setReferralCookieTimeout=function(cR){cF=cR*1000};this.setConversionAttributionFirstReferrer=function(cR){bf=cR -};this.disableCookies=function(){a7=true;cH.cookie="0";if(bN){aw()}};this.deleteCookies=function(){aw()};this.setDoNotTrack=function(cS){var cR=g.doNotTrack||g.msDoNotTrack;cs=cS&&(cR==="yes"||cR==="1");if(cs){this.disableCookies()}};this.addListener=function(cS,cR){aj(cS,cR)};this.enableLinkTracking=function(cS){cI=true;var cR=this;bY(function(){o(function(){bl(cS,cR)})})};this.enableJSErrorTracking=function(){if(cu){return}cu=true;var cR=Q.onerror;Q.onerror=function(cW,cU,cT,cV,cS){bY(function(){var cX="JavaScript Errors";var cY=cU+":"+cT;if(cV){cY+=":"+cV}am(cX,cY,cW)});if(cR){return cR(cW,cU,cT,cV,cS)}return false}};this.disablePerformanceTracking=function(){aR=false};this.setGenerationTimeMs=function(cR){b4=parseInt(cR,10)};this.enableHeartBeatTimer=function(cR){cR=Math.max(cR,1);aU=(cR||15)*1000;if(cz!==null){cO()}};this.disableHeartBeatTimer=function(){bs();if(aU||aE){if(Q.removeEventListener){Q.removeEventListener("focus",aY,true);Q.removeEventListener("blur",ap,true)}else{if(Q.detachEvent){Q.detachEvent("onfocus",aY); -Q.detachEvent("onblur",ap)}}}aU=null;aE=false};this.killFrame=function(){if(Q.location!==Q.top.location){Q.top.location=Q.location}};this.redirectFile=function(cR){if(Q.location.protocol==="file:"){Q.location=cR}};this.setCountPreRendered=function(cR){a1=cR};this.trackGoal=function(cR,cT,cS){bY(function(){cv(cR,cT,cS)})};this.trackLink=function(cS,cR,cU,cT){bY(function(){cC(cS,cR,cU,cT)})};this.trackPageView=function(cR,cT,cS){bR=[];if(K(bN)){bY(function(){U(av,bp,bN)})}else{bY(function(){bH(cR,cT,cS)})}};this.trackAllContentImpressions=function(){if(K(bN)){return}bY(function(){o(function(){var cR=t.findContentNodes();var cS=cf(cR);cN(cS,br)})})};this.trackVisibleContentImpressions=function(cR,cS){if(K(bN)){return}if(!G(cR)){cR=true}if(!G(cS)){cS=750}aI(cR,cS,this);bY(function(){l(function(){var cT=t.findContentNodes();var cU=aX(cT);cN(cU,br)})})};this.trackContentImpression=function(cT,cR,cS){if(K(bN)){return}if(!cT){return}cR=cR||"Unknown";bY(function(){var cU=ax(cT,cR,cS);bn(cU,br)}) -};this.trackContentImpressionsWithinNode=function(cR){if(K(bN)||!cR){return}bY(function(){if(bW){l(function(){var cS=t.findContentNodesWithinNode(cR);var cT=aX(cS);cN(cT,br)})}else{o(function(){var cS=t.findContentNodesWithinNode(cR);var cT=cf(cS);cN(cT,br)})}})};this.trackContentInteraction=function(cT,cU,cR,cS){if(K(bN)){return}if(!cT||!cU){return}cR=cR||"Unknown";bY(function(){var cV=aF(cT,cU,cR,cS);bn(cV,br)})};this.trackContentInteractionNode=function(cS,cR){if(K(bN)||!cS){return}bY(function(){var cT=cL(cS,cR);bn(cT,br)})};this.logAllContentBlocksOnPage=function(){var cS=t.findContentNodes();var cR=t.collectContent(cS);if(console!==undefined&&console&&console.log){console.log(cR)}};this.trackEvent=function(cS,cU,cR,cT,cW,cV){bY(function(){am(cS,cU,cR,cT,cW,cV)})};this.trackSiteSearch=function(cR,cT,cS,cU){bY(function(){bQ(cR,cT,cS,cU)})};this.setEcommerceView=function(cU,cR,cT,cS){if(!G(cT)||!cT.length){cT=""}else{if(cT instanceof Array){cT=JSON_PIWIK.stringify(cT)}}bD[5]=["_pkc",cT]; -if(G(cS)&&String(cS).length){bD[2]=["_pkp",cS]}if((!G(cU)||!cU.length)&&(!G(cR)||!cR.length)){return}if(G(cU)&&cU.length){bD[3]=["_pks",cU]}if(!G(cR)||!cR.length){cR=""}bD[4]=["_pkn",cR]};this.addEcommerceItem=function(cV,cR,cT,cS,cU){if(cV.length){cB[cV]=[cV,cR,cT,cS,cU]}};this.trackEcommerceOrder=function(cR,cV,cU,cT,cS,cW){bG(cR,cV,cU,cT,cS,cW)};this.trackEcommerceCartUpdate=function(cR){bd(cR)};this.trackRequest=function(cS,cU,cT,cR){bY(function(){var cV=b9(cS,cU,cR);bn(cV,br,cT)})};d.trigger("TrackerSetup",[this])}function E(){return{push:Z}}function b(am,al){var an={};var aj,ak;for(aj=0;aj<al.length;aj++){var ah=al[aj];an[ah]=1;for(ak=0;ak<am.length;ak++){if(am[ak]&&am[ak][0]){var ai=am[ak][0];if(ah===ai){Z(am[ak]);delete am[ak];if(an[ai]>1){ad("The method "+ai+' 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: http://developer.piwik.org/guides/tracking-javascript-guide#multiple-piwik-trackers') -}an[ai]++}}}}return am}var z=["addTracker","disableCookies","setTrackerUrl","setAPIUrl","enableCrossDomainLinking","setCookiePath","setCookieDomain","setDomains","setUserId","setSiteId","enableLinkTracking"];function X(ah,aj){var ai=new N(ah,aj);F.push(ai);_paq=b(_paq,z);for(B=0;B<_paq.length;B++){if(_paq[B]){Z(_paq[B])}}_paq=new E();return ai}ag(Q,"beforeunload",ab,false);Date.prototype.getTimeAlias=Date.prototype.getTime;d={initialized:false,JSON:JSON_PIWIK,DOM:{addEventListener:function(ak,aj,ai,ah){var al=typeof ah;if(al==="undefined"){ah=false}ag(ak,aj,ai,ah)},onLoad:l,onReady:o,isNodeVisible:i,isOrWasNodeVisible:t.isNodeVisible},on:function(ai,ah){if(!v[ai]){v[ai]=[]}v[ai].push(ah)},off:function(aj,ai){if(!v[aj]){return}var ah=0;for(ah;ah<v[aj].length;ah++){if(v[aj][ah]===ai){v[aj].splice(ah,1)}}},trigger:function(aj,ak,ai){if(!v[aj]){return}var ah=0;for(ah;ah<v[aj].length;ah++){v[aj][ah].apply(ai||Q,ak)}},addPlugin:function(ah,ai){a[ah]=ai},getTracker:function(ah,ai){if(!G(ai)){ai=this.getAsyncTracker().getSiteId() -}if(!G(ah)){ah=this.getAsyncTracker().getTrackerUrl()}return new N(ah,ai)},getAsyncTrackers:function(){return F},addTracker:function(ah,ai){if(!F.length){X(ah,ai)}else{F[0].addTracker(ah,ai)}},getAsyncTracker:function(ai,al){var ak;if(F&&F.length&&F[0]){ak=F[0]}else{return X(ai,al)}if(!al&&!ai){return ak}if((!G(al)||null===al)&&ak){al=ak.getSiteId()}if((!G(ai)||null===ai)&&ak){ai=ak.getTrackerUrl()}var aj,ah=0;for(ah;ah<F.length;ah++){aj=F[ah];if(aj&&String(aj.getSiteId())===String(al)&&aj.getTrackerUrl()===ai){return aj}}},retryMissedPluginCalls:function(){var ai=aa;aa=[];var ah=0;for(ah;ah<ai.length;ah++){Z(ai[ah])}}};if(typeof define==="function"&&define.amd){define("piwik",[],function(){return d})}return d}()); +}}Q.name=ap+"###"+am+"###"+ah+"###"+ak}var ao=Q.name.split("###");return ao.length===4&&ao[0]===ap}function U(ai,ao,ak){var an=Q.name.split("###"),am=an[1],ah=an[2],al=an[3],aj=L(ai,ao);m(aj+"plugins/Overlay/client/client.js?v=1",function(){Piwik_Overlay_Client.initialize(aj,ak,am,ah,al)})}function s(){var aj;try{aj=Q.frameElement}catch(ai){return true}if(G(aj)){return(aj&&String(aj.nodeName).toLowerCase()==="iframe")?true:false}try{return Q.self!==Q.top}catch(ah){return true}}function N(bW,bR){var br=this,bM=V(D.domain,Q.location.href,H()),cy=I(bM[0]),bw=n(bM[1]),a9=n(bM[2]),cw=false,b0="GET",cL=b0,az="application/x-www-form-urlencoded; charset=UTF-8",cf=az,av=bW||"",bq="",cC="",bO=bR||"",bj="",bx="",aT,a5="",cI=["7z","aac","apk","arc","arj","asf","asx","avi","azw3","bin","csv","deb","dmg","doc","docx","epub","exe","flv","gif","gz","gzip","hqx","ibooks","jar","jpg","jpeg","js","mobi","mp2","mp3","mp4","mpg","mpeg","mov","movie","msi","msp","odb","odf","odg","ods","odt","ogg","ogv","pdf","phps","png","ppt","pptx","qt","qtm","ra","ram","rar","rpm","sea","sit","tar","tbz","tbz2","bz","bz2","tgz","torrent","txt","wav","wma","wmv","wpd","xls","xlsx","xml","z","zip"],ao=[cy],bk=[],bu=[],aW=[],bs=500,co,aU,bA,by,ah,b9=["pk_campaign","piwik_campaign","utm_campaign","utm_source","utm_medium"],bp=["pk_kwd","piwik_kwd","utm_term"],a6="_pk_",an="pk_vid",cA,bb,a7=false,cu,a1,bg,cp=33955200000,b7=1800000,cH=15768000000,aR=true,b5=0,bz=false,aG=false,bT,bE={},b4={},a8={},be=200,cD={},cJ={},bS=[],bX=false,ci=false,ai=false,cK=false,cr=false,aE=false,a0=s(),cB=null,bU,aH,bl,bP=af,ba,aB,ca=0,bf=["id","ses","cvar","ref"]; +try{a5=D.title}catch(cg){a5=""}function cO(cZ,cW,cV,cY,cU,cX){if(a7){return}var cT;if(cV){cT=new Date();cT.setTime(cT.getTime()+cV)}D.cookie=cZ+"="+r(cW)+(cV?";expires="+cT.toGMTString():"")+";path="+(cY||"/")+(cU?";domain="+cU:"")+(cX?";secure":"")}function au(cV){if(a7){return 0}var cT=new RegExp("(^|;)[ ]*"+cV+"=([^;]*)"),cU=cT.exec(D.cookie);return cU?P(cU[2]):0}function bK(cT){var cU;cT=j(cT,an);if(by){cU=new RegExp("#.*");return cT.replace(cU,"")}return cT}function bD(cV,cT){var cW=q(cT),cU;if(cW){return cT}if(cT.slice(0,1)==="/"){return q(cV)+"://"+c(cV)+cT}cV=bK(cV);cU=cV.indexOf("?");if(cU>=0){cV=cV.slice(0,cU)}cU=cV.lastIndexOf("/");if(cU!==cV.length-1){cV=cV.slice(0,cU+1)}return cV+cT}function cn(cV,cT){var cU;cV=String(cV).toLowerCase();cT=String(cT).toLowerCase();if(cV===cT){return true}if(cT.slice(0,1)==="."){if(cV===cT.slice(1)){return true}cU=cV.length-cT.length;if((cU>0)&&(cV.slice(cU)===cT)){return true}}return false}function b3(cT){var cU=document.createElement("a");if(cT.indexOf("//")!==0&&cT.indexOf("http")!==0){if(cT.indexOf("*")===0){cT=cT.substr(1) +}if(cT.indexOf(".")===0){cT=cT.substr(1)}cT="http://"+cT}cU.href=t.toAbsoluteUrl(cT);if(cU.pathname){return cU.pathname}return""}function aS(cU,cT){if(!ac(cT,"/")){cT="/"+cT}if(!ac(cU,"/")){cU="/"+cU}var cV=(cT==="/"||cT==="/*");if(cV){return true}if(cU===cT){return true}cT=String(cT).toLowerCase();cU=String(cU).toLowerCase();if(O(cT,"*")){cT=cT.slice(0,-1);cV=(!cT||cT==="/");if(cV){return true}if(cU===cT){return true}return cU.indexOf(cT)===0}if(!O(cU,"/")){cU+="/"}if(!O(cT,"/")){cT+="/"}return cU.indexOf(cT)===0}function ak(cX,cZ){var cU,cT,cV,cW,cY;for(cU=0;cU<ao.length;cU++){cW=I(ao[cU]);cY=b3(ao[cU]);if(cn(cX,cW)&&aS(cZ,cY)){return true}}return false}function aL(cW){var cU,cT,cV;for(cU=0;cU<ao.length;cU++){cT=I(ao[cU].toLowerCase());if(cW===cT){return true}if(cT.slice(0,1)==="."){if(cW===cT.slice(1)){return true}cV=cW.length-cT.length;if((cV>0)&&(cW.slice(cV)===cT)){return true}}}return false}function b8(cT,cV){var cU=new Image(1,1);cU.onload=function(){B=0;if(typeof cV==="function"){cV() +}};cT=cT.replace("send_image=0","send_image=1");cU.src=av+(av.indexOf("?")<0?"?":"&")+cT}function cG(cU,cX,cT){if(!G(cT)||null===cT){cT=true}try{var cW=Q.XMLHttpRequest?new Q.XMLHttpRequest():Q.ActiveXObject?new ActiveXObject("Microsoft.XMLHTTP"):null;cW.open("POST",av,true);cW.onreadystatechange=function(){if(this.readyState===4&&!(this.status>=200&&this.status<300)&&cT){b8(cU,cX)}else{if(this.readyState===4&&(typeof cX==="function")){cX()}}};cW.setRequestHeader("Content-Type",cf);cW.send(cU)}catch(cV){if(cT){b8(cU,cX)}}}function bY(cU){var cT=new Date();var cV=cT.getTime()+cU;if(!p||cV>p){p=cV}}function b6(cT){if(bU||!aU){return}bU=setTimeout(function cU(){bU=null;if(!a0){a0=(!D.hasFocus||D.hasFocus())}if(!a0){b6(aU);return}if(bA()){return}var cV=new Date(),cW=aU-(cV.getTime()-cB);cW=Math.min(aU,cW);b6(cW)},cT||aU)}function bt(){if(!bU){return}clearTimeout(bU);bU=null}function aY(){a0=true;if(bA()){return}b6()}function ap(){bt()}function cQ(){if(aE||!aU){return}aE=true;ag(Q,"focus",aY); +ag(Q,"blur",ap);b6()}function cj(cX){var cU=new Date();var cT=cU.getTime();cB=cT;if(ci&&cT<ci){var cV=ci-cT;setTimeout(cX,cV);bY(cV+50);ci+=50;return}if(ci===false){var cW=800;ci=cT+cW}cX()}function bo(cU,cT,cV){if(!cu&&cU){cj(function(){if(cL==="POST"||String(cU).length>2000){cG(cU,cV)}else{b8(cU,cV)}bY(cT)})}if(!aE){cQ()}else{b6()}}function b2(cT){if(cu){return false}return(cT&&cT.length)}function cP(cV,cT){if(!b2(cV)){return}var cU='{"requests":["?'+cV.join('","?')+'"]}';cj(function(){cG(cU,null,false);bY(cT)})}function aJ(cT){return a6+cT+"."+bO+"."+ba}function bN(){if(a7){return"0"}if(!G(g.cookieEnabled)){var cT=aJ("testcookie");cO(cT,"1");return au(cT)==="1"?"1":"0"}return g.cookieEnabled?"1":"0"}function a4(){ba=bP((cA||cy)+(bb||"/")).slice(0,4)}function bF(){var cU=aJ("cvar"),cT=au(cU);if(cT.length){cT=JSON_PIWIK.parse(cT);if(S(cT)){return cT}}return{}}function ck(){if(aG===false){aG=bF()}}function cv(){return bP((g.userAgent||"")+(g.platform||"")+JSON_PIWIK.stringify(cJ)+(new Date()).getTime()+Math.random()).slice(0,16) +}function aq(){return bP((g.userAgent||"")+(g.platform||"")+JSON_PIWIK.stringify(cJ)).slice(0,6)}function a2(){return Math.floor((new Date()).getTime()/1000)}function aA(){var cU=a2();var cV=aq();var cT=String(cU)+cV;return cT}function cF(cW){cW=String(cW);var cZ=aq();var cX=cZ.length;var cY=cW.substr(-1*cX,cX);var cV=parseInt(cW.substr(0,cW.length-cX),10);if(cV&&cY&&cY===cZ){var cT=a2();var cU=45;if(cT>=cV&&cT<=(cV+cU)){return true}}return false}function cR(cT){if(!cr){return""}var cX=e(cT,an);if(!cX){return""}cX=String(cX);var cV=new RegExp("^[a-zA-Z0-9]+$");if(cX.length===32&&cV.test(cX)){var cU=cX.substr(16,32);if(cF(cU)){var cW=cX.substr(0,16);return cW}}return""}function cs(){if(!bx){bx=cR(bw)}var cV=new Date(),cT=Math.round(cV.getTime()/1000),cU=aJ("id"),cY=au(cU),cX,cW;if(cY){cX=cY.split(".");cX.unshift("0");if(bx.length){cX[1]=bx}return cX}if(bx.length){cW=bx}else{if("0"===bN()){cW=""}else{cW=cv()}}cX=["1",cW,cT,0,cT,"",""];return cX}function aN(){var c0=cs(),cW=c0[0],cX=c0[1],cU=c0[2],cT=c0[3],cY=c0[4],cV=c0[5]; +if(!G(c0[6])){c0[6]=""}var cZ=c0[6];return{newVisitor:cW,uuid:cX,createTs:cU,visitCount:cT,currentVisitTs:cY,lastVisitTs:cV,lastEcommerceOrderTs:cZ}}function ay(){var cW=new Date(),cU=cW.getTime(),cX=aN().createTs;var cT=parseInt(cX,10);var cV=(cT*1000)+cp-cU;return cV}function aC(cT){if(!bO){return}var cV=new Date(),cU=Math.round(cV.getTime()/1000);if(!G(cT)){cT=aN()}var cW=cT.uuid+"."+cT.createTs+"."+cT.visitCount+"."+cU+"."+cT.lastVisitTs+"."+cT.lastEcommerceOrderTs;cO(aJ("id"),cW,ay(),bb,cA)}function bv(){var cT=au(aJ("ref"));if(cT.length){try{cT=JSON_PIWIK.parse(cT);if(S(cT)){return cT}}catch(cU){}}return["","",0,""]}function bG(cV,cU,cT){cO(cV,"",-86400,cU,cT)}function bh(cU){var cT="testvalue";cO("test",cT,10000,null,cU);if(au("test")===cT){bG("test",null,cU);return true}return false}function aw(){var cU=a7;a7=false;var cT,cV;for(cT=0;cT<bf.length;cT++){cV=aJ(bf[cT]);if(0!==au(cV)){bG(cV,bb,cA)}}a7=cU}function bL(cT){bO=cT;aC()}function cS(cX){if(!cX||!S(cX)){return}var cW=[];var cV; +for(cV in cX){if(Object.prototype.hasOwnProperty.call(cX,cV)){cW.push(cV)}}var cY={};cW.sort();var cT=cW.length;var cU;for(cU=0;cU<cT;cU++){cY[cW[cU]]=cX[cW[cU]]}return cY}function bV(){cO(aJ("ses"),"*",b7,bb,cA)}function a3(){var cW="";var cU="abcdefghijklmnopqrstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ";var cV=cU.length;var cT;for(cT=0;cT<6;cT++){cW+=cU.charAt(Math.floor(Math.random()*cV))}return cW}function cb(cV,dg,dh,cW){var df,cU=new Date(),c3=Math.round(cU.getTime()/1000),c0,de,cX=1024,dm,c4,dc=aG,cY=aJ("ses"),da=aJ("ref"),c7=aJ("cvar"),c8=au(cY),dd=bv(),dj=aT||bw,c1,cT;if(a7){aw()}if(cu){return""}var c9=aN();if(!G(cW)){cW=""}var c6=D.characterSet||D.charset;if(!c6||c6.toLowerCase()==="utf-8"){c6=null}c1=dd[0];cT=dd[1];c0=dd[2];de=dd[3];if(!c8){var di=b7/1000;if(!c9.lastVisitTs||(c3-c9.lastVisitTs)>di){c9.visitCount++;c9.lastVisitTs=c9.currentVisitTs}if(!bg||!c1.length){for(df in b9){if(Object.prototype.hasOwnProperty.call(b9,df)){c1=e(dj,b9[df]);if(c1.length){break}}}for(df in bp){if(Object.prototype.hasOwnProperty.call(bp,df)){cT=e(dj,bp[df]); +if(cT.length){break}}}}dm=c(a9);c4=de.length?c(de):"";if(dm.length&&!aL(dm)&&(!bg||!c4.length||aL(c4))){de=a9}if(de.length||c1.length){c0=c3;dd=[c1,cT,c0,bK(de.slice(0,cX))];cO(da,JSON_PIWIK.stringify(dd),cH,bb,cA)}}cV+="&idsite="+bO+"&rec=1&r="+String(Math.random()).slice(2,8)+"&h="+cU.getHours()+"&m="+cU.getMinutes()+"&s="+cU.getSeconds()+"&url="+r(bK(dj))+(a9.length?"&urlref="+r(bK(a9)):"")+((bj&&bj.length)?"&uid="+r(bj):"")+"&_id="+c9.uuid+"&_idts="+c9.createTs+"&_idvc="+c9.visitCount+"&_idn="+c9.newVisitor+(c1.length?"&_rcn="+r(c1):"")+(cT.length?"&_rck="+r(cT):"")+"&_refts="+c0+"&_viewts="+c9.lastVisitTs+(String(c9.lastEcommerceOrderTs).length?"&_ects="+c9.lastEcommerceOrderTs:"")+(String(de).length?"&_ref="+r(bK(de.slice(0,cX))):"")+(c6?"&cs="+r(c6):"")+"&send_image=0";for(df in cJ){if(Object.prototype.hasOwnProperty.call(cJ,df)){cV+="&"+df+"="+cJ[df]}}var dl=[];if(dg){for(df in dg){if(Object.prototype.hasOwnProperty.call(dg,df)&&/^dimension\d+$/.test(df)){var cZ=df.replace("dimension",""); +dl.push(parseInt(cZ,10));dl.push(String(cZ));cV+="&"+df+"="+dg[df];delete dg[df]}}}if(dg&&y(dg)){dg=null}for(df in a8){if(Object.prototype.hasOwnProperty.call(a8,df)){var c5=(-1===J(dl,df));if(c5){cV+="&dimension"+df+"="+a8[df]}}}if(dg){cV+="&data="+r(JSON_PIWIK.stringify(dg))}else{if(ah){cV+="&data="+r(JSON_PIWIK.stringify(ah))}}function c2(dn,dp){var dq=JSON_PIWIK.stringify(dn);if(dq.length>2){return"&"+dp+"="+r(dq)}return""}var dk=cS(bE);var db=cS(b4);cV+=c2(dk,"cvar");cV+=c2(db,"e_cvar");if(aG){cV+=c2(aG,"_cvar");for(df in dc){if(Object.prototype.hasOwnProperty.call(dc,df)){if(aG[df][0]===""||aG[df][1]===""){delete aG[df]}}}if(bz){cO(c7,JSON_PIWIK.stringify(aG),b7,bb,cA)}}if(aR){if(b5){cV+=">_ms="+b5}else{if(h&&h.timing&&h.timing.requestStart&&h.timing.responseEnd){cV+=">_ms="+(h.timing.responseEnd-h.timing.requestStart)}}}if(aB){cV+="&pv_id="+aB}c9.lastEcommerceOrderTs=G(cW)&&String(cW).length?cW:c9.lastEcommerceOrderTs;aC(c9);bV();cV+=W(dh,{tracker:br,request:cV});if(cC.length){cV+="&"+cC +}if(x(bT)){cV=bT(cV)}return cV}bA=function aV(){var cT=new Date();if(cB+aU<=cT.getTime()){var cU=cb("ping=1",null,"ping");bo(cU,bs);return true}return false};function bc(cW,cV,c1,cX,cT,c4){var cZ="idgoal=0",c0,cU=new Date(),c2=[],c3,cY=String(cW).length;if(cY){cZ+="&ec_id="+r(cW);c0=Math.round(cU.getTime()/1000)}cZ+="&revenue="+cV;if(String(c1).length){cZ+="&ec_st="+c1}if(String(cX).length){cZ+="&ec_tx="+cX}if(String(cT).length){cZ+="&ec_sh="+cT}if(String(c4).length){cZ+="&ec_dt="+c4}if(cD){for(c3 in cD){if(Object.prototype.hasOwnProperty.call(cD,c3)){if(!G(cD[c3][1])){cD[c3][1]=""}if(!G(cD[c3][2])){cD[c3][2]=""}if(!G(cD[c3][3])||String(cD[c3][3]).length===0){cD[c3][3]=0}if(!G(cD[c3][4])||String(cD[c3][4]).length===0){cD[c3][4]=1}c2.push(cD[c3])}}cZ+="&ec_items="+r(JSON_PIWIK.stringify(c2))}cZ=cb(cZ,ah,"ecommerce",c0);bo(cZ,bs);if(cY){cD={}}}function bH(cT,cX,cW,cV,cU,cY){if(String(cT).length&&G(cX)){bc(cT,cX,cW,cV,cU,cY)}}function bd(cT){if(G(cT)){bc("",cT,"","","","")}}function bI(cU,cW,cV){aB=a3(); +var cT=cb("action_name="+r(ae(cU||a5)),cW,"log");bo(cT,bs,cV)}function aP(cV,cU){var cW,cT="(^| )(piwik[_-]"+cU;if(cV){for(cW=0;cW<cV.length;cW++){cT+="|"+cV[cW]}}cT+=")( |$)";return new RegExp(cT)}function aK(cT){return(av&&cT&&0===String(cT).indexOf(av))}function cc(cX,cT,cY,cU){if(aK(cT)){return 0}var cW=aP(bu,"download"),cV=aP(aW,"link"),cZ=new RegExp("\\.("+cI.join("|")+")([?&#]|$)","i");if(cV.test(cX)){return"link"}if(cU||cW.test(cX)||cZ.test(cT)){return"download"}if(cY){return 0}return"link"}function am(cU){var cT;cT=cU.parentNode;while(cT!==null&&G(cT)){if(Y.isLinkElement(cU)){break}cU=cT;cT=cU.parentNode}return cU}function cM(cY){cY=am(cY);if(!Y.hasNodeAttribute(cY,"href")){return}if(!G(cY.href)){return}var cX=Y.getAttributeValueFromNode(cY,"href");if(aK(cX)){return}var cU=cY.pathname||b3(cY.href);var cZ=cY.hostname||c(cY.href);var c0=cZ.toLowerCase();var cV=cY.href.replace(cZ,c0);var cW=new RegExp("^(javascript|vbscript|jscript|mocha|livescript|ecmascript|mailto|tel):","i");if(!cW.test(cV)){var cT=cc(cY.className,cV,ak(c0,cU),Y.hasNodeAttribute(cY,"download")); +if(cT){return{type:cT,href:cV}}}}function aF(cT,cU,cV,cW){var cX=t.buildInteractionRequestParams(cT,cU,cV,cW);if(!cX){return}return cb(cX,null,"contentInteraction")}function cq(cV,cW,c0,cT,cU){if(!G(cV)){return}if(aK(cV)){return cV}var cY=t.toAbsoluteUrl(cV);var cX="redirecturl="+r(cY)+"&";cX+=aF(cW,c0,cT,(cU||cV));var cZ="&";if(av.indexOf("?")<0){cZ="?"}return av+cZ+cX}function aZ(cT,cU){if(!cT||!cU){return false}var cV=t.findTargetNode(cT);if(t.shouldIgnoreInteraction(cV)){return false}cV=t.findTargetNodeNoDefault(cT);if(cV&&!R(cV,cU)){return false}return true}function cd(cV,cU,cX){if(!cV){return}var cT=t.findParentContentNode(cV);if(!cT){return}if(!aZ(cT,cV)){return}var cW=t.buildContentBlock(cT);if(!cW){return}if(!cW.target&&cX){cW.target=cX}return t.buildInteractionRequestParams(cU,cW.name,cW.piece,cW.target)}function aM(cU){if(!bS||!bS.length){return false}var cT,cV;for(cT=0;cT<bS.length;cT++){cV=bS[cT];if(cV&&cV.name===cU.name&&cV.piece===cU.piece&&cV.target===cU.target){return true +}}return false}function bn(cW){if(!cW){return false}var cZ=t.findTargetNode(cW);if(!cZ||t.shouldIgnoreInteraction(cZ)){return false}var c0=cM(cZ);if(cK&&c0&&c0.type){return false}if(Y.isLinkElement(cZ)&&Y.hasNodeAttributeWithValue(cZ,"href")){var cT=String(Y.getAttributeValueFromNode(cZ,"href"));if(0===cT.indexOf("#")){return false}if(aK(cT)){return true}if(!t.isUrlToCurrentDomain(cT)){return false}var cX=t.buildContentBlock(cW);if(!cX){return}var cV=cX.name;var c1=cX.piece;var cY=cX.target;if(!Y.hasNodeAttributeWithValue(cZ,t.CONTENT_TARGET_ATTR)||cZ.wasContentTargetAttrReplaced){cZ.wasContentTargetAttrReplaced=true;cY=t.toAbsoluteUrl(cT);Y.setAnyAttribute(cZ,t.CONTENT_TARGET_ATTR,cY)}var cU=cq(cT,"click",cV,c1,cY);t.setHrefAttribute(cZ,cU);return true}return false}function aD(cU){if(!cU||!cU.length){return}var cT;for(cT=0;cT<cU.length;cT++){bn(cU[cT])}}function aO(cT){return function(cU){if(!cT){return}var cX=t.findParentContentNode(cT);var cY;if(cU){cY=cU.target||cU.srcElement}if(!cY){cY=cT +}if(!aZ(cX,cY)){return}bY(bs);if(Y.isLinkElement(cT)&&Y.hasNodeAttributeWithValue(cT,"href")&&Y.hasNodeAttributeWithValue(cT,t.CONTENT_TARGET_ATTR)){var cV=Y.getAttributeValueFromNode(cT,"href");if(!aK(cV)&&cT.wasContentTargetAttrReplaced){Y.setAnyAttribute(cT,t.CONTENT_TARGET_ATTR,"")}}var c2=cM(cT);if(ai&&c2&&c2.type){return c2.type}if(bn(cX)){return"href"}var cZ=t.buildContentBlock(cX);if(!cZ){return}var cW=cZ.name;var c3=cZ.piece;var c1=cZ.target;var c0=aF("click",cW,c3,c1);bo(c0,bs);return c0}}function bJ(cV){if(!cV||!cV.length){return}var cT,cU;for(cT=0;cT<cV.length;cT++){cU=t.findTargetNode(cV[cT]);if(cU&&!cU.contentInteractionTrackingSetupDone){cU.contentInteractionTrackingSetupDone=true;ag(cU,"click",aO(cU))}}}function bi(cV,cW){if(!cV||!cV.length){return[]}var cT,cU;for(cT=0;cT<cV.length;cT++){if(aM(cV[cT])){cV.splice(cT,1);cT--}else{bS.push(cV[cT])}}if(!cV||!cV.length){return[]}aD(cW);bJ(cW);var cX=[];for(cT=0;cT<cV.length;cT++){cU=cb(t.buildImpressionRequestParams(cV[cT].name,cV[cT].piece,cV[cT].target),undefined,"contentImpressions"); +if(cU){cX.push(cU)}}return cX}function ch(cU){var cT=t.collectContent(cU);return bi(cT,cU)}function aX(cU){if(!cU||!cU.length){return[]}var cT;for(cT=0;cT<cU.length;cT++){if(!t.isNodeVisible(cU[cT])){cU.splice(cT,1);cT--}}if(!cU||!cU.length){return[]}return ch(cU)}function ax(cV,cT,cU){var cW=t.buildImpressionRequestParams(cV,cT,cU);return cb(cW,null,"contentImpression")}function cN(cW,cU){if(!cW){return}var cT=t.findParentContentNode(cW);var cV=t.buildContentBlock(cT);if(!cV){return}if(!cU){cU="Unknown"}return aF(cU,cV.name,cV.piece,cV.target)}function ct(cU,cW,cT,cV){return"e_c="+r(cU)+"&e_a="+r(cW)+(G(cT)?"&e_n="+r(cT):"")+(G(cV)?"&e_v="+r(cV):"")}function al(cV,cX,cT,cW,cZ,cY){if(String(cV).length===0||String(cX).length===0){return false}var cU=cb(ct(cV,cX,cT,cW),cZ,"event");bo(cU,bs,cY)}function bQ(cT,cW,cU,cX){var cV=cb("search="+r(cT)+(cW?"&search_cat="+r(cW):"")+(G(cU)?"&search_count="+cU:""),cX,"sitesearch");bo(cV,bs)}function cx(cT,cW,cV){var cU=cb("idgoal="+cT+(cW?"&revenue="+cW:""),cV,"goal"); +bo(cU,bs)}function cE(cW,cT,c0,cZ,cV){var cY=cT+"="+r(bK(cW));var cU=cd(cV,"click",cW);if(cU){cY+="&"+cU}var cX=cb(cY,c0,"link");bo(cX,bs,cZ)}function bC(cU,cT){if(cU!==""){return cU+cT.charAt(0).toUpperCase()+cT.slice(1)}return cT}function bZ(cY){var cX,cT,cW=["","webkit","ms","moz"],cV;if(!a1){for(cT=0;cT<cW.length;cT++){cV=cW[cT];if(Object.prototype.hasOwnProperty.call(D,bC(cV,"hidden"))){if(D[bC(cV,"visibilityState")]==="prerender"){cX=true}break}}}if(cX){ag(D,cV+"visibilitychange",function cU(){D.removeEventListener(cV+"visibilitychange",cU,false);cY()});return}cY()}function b1(cT){if(!cT){return}if(!Y.hasNodeAttribute(cT,"href")){return}var cU=Y.getAttributeValueFromNode(cT,"href");if(!cU||aK(cU)){return}cU=j(cU,an);if(cU.indexOf("?")>0){cU+="&"}else{cU+="?"}var cW=aN().uuid;var cV=aA();cU=C(cU,an,cW+cV);Y.setAnyAttribute(cT,"href",cU)}function ar(cW){var cX=Y.getAttributeValueFromNode(cW,"href");if(!cX){return false}cX=String(cX);var cU=cX.indexOf("//")===0||cX.indexOf("http://")===0||cX.indexOf("https://")===0; +if(!cU){return false}var cT=cW.pathname||b3(cW.href);var cV=(cW.hostname||c(cW.href)).toLowerCase();if(ak(cV,cT)){if(!cn(cy,I(cV))){return true}return false}return false}function cm(cT){var cU=cM(cT);if(cU&&cU.type){cU.href=n(cU.href);cE(cU.href,cU.type,undefined,null,cT);return}if(cr){cT=am(cT);if(ar(cT)){b1(cT)}}}function ce(){return D.all&&!D.addEventListener}function cz(cT){var cV=cT.which;var cU=(typeof cT.button);if(!cV&&cU!=="undefined"){if(ce()){if(cT.button&1){cV=1}else{if(cT.button&2){cV=3}else{if(cT.button&4){cV=2}}}}else{if(cT.button===0||cT.button==="0"){cV=1}else{if(cT.button&1){cV=2}else{if(cT.button&2){cV=3}}}}}return cV}function bB(cT){switch(cz(cT)){case 1:return"left";case 2:return"middle";case 3:return"right"}}function aQ(cT){return cT.target||cT.srcElement}function at(cT){return function(cW){cW=cW||Q.event;var cV=bB(cW);var cX=aQ(cW);if(cW.type==="click"){var cU=false;if(cT&&cV==="middle"){cU=true}if(cX&&!cU){cm(cX)}}else{if(cW.type==="mousedown"){if(cV==="middle"&&cX){aH=cV; +bl=cX}else{aH=bl=null}}else{if(cW.type==="mouseup"){if(cV===aH&&cX===bl){cm(cX)}aH=bl=null}else{if(cW.type==="contextmenu"){cm(cX)}}}}}}function aj(cV,cU){var cT=typeof cU;if(cT==="undefined"){cU=true}ag(cV,"click",at(cU),false);if(cU){ag(cV,"mouseup",at(cU),false);ag(cV,"mousedown",at(cU),false);ag(cV,"contextmenu",at(cU),false)}}function bm(cV,cX){ai=true;var cW,cU=aP(bk,"ignore"),cY=D.links,cT=null,cZ=null;if(cY){for(cW=0;cW<cY.length;cW++){cT=cY[cW];if(!cU.test(cT.className)){cZ=typeof cT.piwikTrackers;if("undefined"===cZ){cT.piwikTrackers=[]}if(-1===J(cT.piwikTrackers,cX)){cT.piwikTrackers.push(cX);aj(cT,cV)}}}}}function aI(cV,cX,cY){if(bX){return true}bX=true;var cZ=false;var cW,cU;function cT(){cZ=true}l(function(){function c0(c2){setTimeout(function(){if(!bX){return}cZ=false;cY.trackVisibleContentImpressions();c0(c2)},c2)}function c1(c2){setTimeout(function(){if(!bX){return}if(cZ){cZ=false;cY.trackVisibleContentImpressions()}c1(c2)},c2)}if(cV){cW=["scroll","resize"];for(cU=0;cU<cW.length; +cU++){if(D.addEventListener){D.addEventListener(cW[cU],cT)}else{Q.attachEvent("on"+cW[cU],cT)}}c1(100)}if(cX&&cX>0){cX=parseInt(cX,10);c0(cX)}})}function cl(){var cU,cW,cX={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(g.userAgent))){if(g.mimeTypes&&g.mimeTypes.length){for(cU in cX){if(Object.prototype.hasOwnProperty.call(cX,cU)){cW=g.mimeTypes[cX[cU]];cJ[cU]=(cW&&cW.enabledPlugin)?"1":"0"}}}if(typeof navigator.javaEnabled!=="unknown"&&G(g.javaEnabled)&&g.javaEnabled()){cJ.java="1"}if(x(Q.GearsFactory)){cJ.gears="1"}cJ.cookie=bN()}var cV=parseInt(T.width,10);var cT=parseInt(T.height,10);cJ.res=parseInt(cV,10)+"x"+parseInt(cT,10)}cl();a4();aC();this.getVisitorId=function(){return aN().uuid};this.getVisitorInfo=function(){return cs()};this.getAttributionInfo=function(){return bv() +};this.getAttributionCampaignName=function(){return bv()[0]};this.getAttributionCampaignKeyword=function(){return bv()[1]};this.getAttributionReferrerTimestamp=function(){return bv()[2]};this.getAttributionReferrerUrl=function(){return bv()[3]};this.setTrackerUrl=function(cT){av=cT};this.getTrackerUrl=function(){return av};this.getPiwikUrl=function(){return L(this.getTrackerUrl(),bq)};this.addTracker=function(cT,cV){if(!cV){throw new Error("A siteId must be given to add a new tracker")}if(!G(cT)||null===cT){cT=this.getTrackerUrl()}var cU=new N(cT,cV);F.push(cU);return cU};this.getSiteId=function(){return bO};this.setSiteId=function(cT){bL(cT)};this.setUserId=function(cT){if(!G(cT)||!cT.length){return}bj=cT;bx=bP(bj).substr(0,16)};this.getUserId=function(){return bj};this.setCustomData=function(cT,cU){if(S(cT)){ah=cT}else{if(!ah){ah={}}ah[cT]=cU}};this.getCustomData=function(){return ah};this.setCustomRequestProcessing=function(cT){bT=cT};this.appendToTrackingUrl=function(cT){cC=cT};this.getRequest=function(cT){return cb(cT) +};this.addPlugin=function(cT,cU){a[cT]=cU};this.setCustomDimension=function(cT,cU){cT=parseInt(cT,10);if(cT>0){if(!G(cU)){cU=""}if(!u(cU)){cU=String(cU)}a8[cT]=cU}};this.getCustomDimension=function(cT){cT=parseInt(cT,10);if(cT>0&&Object.prototype.hasOwnProperty.call(a8,cT)){return a8[cT]}};this.deleteCustomDimension=function(cT){cT=parseInt(cT,10);if(cT>0){delete a8[cT]}};this.setCustomVariable=function(cU,cT,cX,cV){var cW;if(!G(cV)){cV="visit"}if(!G(cT)){return}if(!G(cX)){cX=""}if(cU>0){cT=!u(cT)?String(cT):cT;cX=!u(cX)?String(cX):cX;cW=[cT.slice(0,be),cX.slice(0,be)];if(cV==="visit"||cV===2){ck();aG[cU]=cW}else{if(cV==="page"||cV===3){bE[cU]=cW}else{if(cV==="event"){b4[cU]=cW}}}}};this.getCustomVariable=function(cU,cV){var cT;if(!G(cV)){cV="visit"}if(cV==="page"||cV===3){cT=bE[cU]}else{if(cV==="event"){cT=b4[cU]}else{if(cV==="visit"||cV===2){ck();cT=aG[cU]}}}if(!G(cT)||(cT&&cT[0]==="")){return false}return cT};this.deleteCustomVariable=function(cT,cU){if(this.getCustomVariable(cT,cU)){this.setCustomVariable(cT,"","",cU) +}};this.deleteCustomVariables=function(cT){if(cT==="page"||cT===3){bE={}}else{if(cT==="event"){b4={}}else{if(cT==="visit"||cT===2){aG={}}}}};this.storeCustomVariablesInCookie=function(){bz=true};this.setLinkTrackingTimer=function(cT){bs=cT};this.getLinkTrackingTimer=function(){return bs};this.setDownloadExtensions=function(cT){if(u(cT)){cT=cT.split("|")}cI=cT};this.addDownloadExtensions=function(cU){var cT;if(u(cU)){cU=cU.split("|")}for(cT=0;cT<cU.length;cT++){cI.push(cU[cT])}};this.removeDownloadExtensions=function(cV){var cU,cT=[];if(u(cV)){cV=cV.split("|")}for(cU=0;cU<cI.length;cU++){if(J(cV,cI[cU])===-1){cT.push(cI[cU])}}cI=cT};this.setDomains=function(cT){ao=u(cT)?[cT]:cT;var cX=false,cV=0,cU;for(cV;cV<ao.length;cV++){cU=String(ao[cV]);if(cn(cy,I(cU))){cX=true;break}var cW=b3(cU);if(cW&&cW!=="/"&&cW!=="/*"){cX=true;break}}if(!cX){ao.push(cy)}};this.enableCrossDomainLinking=function(){cr=true};this.disableCrossDomainLinking=function(){cr=false};this.isCrossDomainLinkingEnabled=function(){return cr +};this.setIgnoreClasses=function(cT){bk=u(cT)?[cT]:cT};this.setRequestMethod=function(cT){cL=cT||b0};this.setRequestContentType=function(cT){cf=cT||az};this.setReferrerUrl=function(cT){a9=cT};this.setCustomUrl=function(cT){aT=bD(bw,cT)};this.getCurrentUrl=function(){return aT||bw};this.setDocumentTitle=function(cT){a5=cT};this.setAPIUrl=function(cT){bq=cT};this.setDownloadClasses=function(cT){bu=u(cT)?[cT]:cT};this.setLinkClasses=function(cT){aW=u(cT)?[cT]:cT};this.setCampaignNameKey=function(cT){b9=u(cT)?[cT]:cT};this.setCampaignKeywordKey=function(cT){bp=u(cT)?[cT]:cT};this.discardHashTag=function(cT){by=cT};this.setCookieNamePrefix=function(cT){a6=cT;aG=bF()};this.setCookieDomain=function(cT){var cU=I(cT);if(bh(cU)){cA=cU;a4()}};this.getCookieDomain=function(){return cA};this.hasCookies=function(){return"1"===bN()};this.setSessionCookie=function(cV,cU,cT){if(!cV){throw new Error("Missing cookie name")}if(!G(cT)){cT=b7}bf.push(cV);cO(aJ(cV),cU,cT,bb,cA)};this.getCookie=function(cU){var cT=au(aJ(cU)); +if(cT===0){return null}return cT};this.setCookiePath=function(cT){bb=cT;a4()};this.getCookiePath=function(cT){return bb};this.setVisitorCookieTimeout=function(cT){cp=cT*1000};this.setSessionCookieTimeout=function(cT){b7=cT*1000};this.getSessionCookieTimeout=function(){return b7};this.setReferralCookieTimeout=function(cT){cH=cT*1000};this.setConversionAttributionFirstReferrer=function(cT){bg=cT};this.disableCookies=function(){a7=true;cJ.cookie="0";if(bO){aw()}};this.deleteCookies=function(){aw()};this.setDoNotTrack=function(cU){var cT=g.doNotTrack||g.msDoNotTrack;cu=cU&&(cT==="yes"||cT==="1");if(cu){this.disableCookies()}};this.addListener=function(cU,cT){aj(cU,cT)};this.enableLinkTracking=function(cU){cK=true;var cT=this;bZ(function(){o(function(){bm(cU,cT)})})};this.enableJSErrorTracking=function(){if(cw){return}cw=true;var cT=Q.onerror;Q.onerror=function(cY,cW,cV,cX,cU){bZ(function(){var cZ="JavaScript Errors";var c0=cW+":"+cV;if(cX){c0+=":"+cX}al(cZ,c0,cY)});if(cT){return cT(cY,cW,cV,cX,cU) +}return false}};this.disablePerformanceTracking=function(){aR=false};this.setGenerationTimeMs=function(cT){b5=parseInt(cT,10)};this.enableHeartBeatTimer=function(cT){cT=Math.max(cT,1);aU=(cT||15)*1000;if(cB!==null){cQ()}};this.disableHeartBeatTimer=function(){bt();if(aU||aE){if(Q.removeEventListener){Q.removeEventListener("focus",aY,true);Q.removeEventListener("blur",ap,true)}else{if(Q.detachEvent){Q.detachEvent("onfocus",aY);Q.detachEvent("onblur",ap)}}}aU=null;aE=false};this.killFrame=function(){if(Q.location!==Q.top.location){Q.top.location=Q.location}};this.redirectFile=function(cT){if(Q.location.protocol==="file:"){Q.location=cT}};this.setCountPreRendered=function(cT){a1=cT};this.trackGoal=function(cT,cV,cU){bZ(function(){cx(cT,cV,cU)})};this.trackLink=function(cU,cT,cW,cV){bZ(function(){cE(cU,cT,cW,cV)})};this.getNumTrackedPageViews=function(){return ca};this.trackPageView=function(cT,cV,cU){bS=[];if(K(bO)){bZ(function(){U(av,bq,bO)})}else{bZ(function(){ca++;bI(cT,cV,cU)})}};this.trackAllContentImpressions=function(){if(K(bO)){return +}bZ(function(){o(function(){var cT=t.findContentNodes();var cU=ch(cT);cP(cU,bs)})})};this.trackVisibleContentImpressions=function(cT,cU){if(K(bO)){return}if(!G(cT)){cT=true}if(!G(cU)){cU=750}aI(cT,cU,this);bZ(function(){l(function(){var cV=t.findContentNodes();var cW=aX(cV);cP(cW,bs)})})};this.trackContentImpression=function(cV,cT,cU){if(K(bO)){return}if(!cV){return}cT=cT||"Unknown";bZ(function(){var cW=ax(cV,cT,cU);bo(cW,bs)})};this.trackContentImpressionsWithinNode=function(cT){if(K(bO)||!cT){return}bZ(function(){if(bX){l(function(){var cU=t.findContentNodesWithinNode(cT);var cV=aX(cU);cP(cV,bs)})}else{o(function(){var cU=t.findContentNodesWithinNode(cT);var cV=ch(cU);cP(cV,bs)})}})};this.trackContentInteraction=function(cV,cW,cT,cU){if(K(bO)){return}if(!cV||!cW){return}cT=cT||"Unknown";bZ(function(){var cX=aF(cV,cW,cT,cU);bo(cX,bs)})};this.trackContentInteractionNode=function(cU,cT){if(K(bO)||!cU){return}bZ(function(){var cV=cN(cU,cT);bo(cV,bs)})};this.logAllContentBlocksOnPage=function(){var cV=t.findContentNodes(); +var cT=t.collectContent(cV);var cU=typeof console;if(cU!=="undefined"&&console&&console.log){console.log(cT)}};this.trackEvent=function(cU,cW,cT,cV,cY,cX){bZ(function(){al(cU,cW,cT,cV,cY,cX)})};this.trackSiteSearch=function(cT,cV,cU,cW){bZ(function(){bQ(cT,cV,cU,cW)})};this.setEcommerceView=function(cW,cT,cV,cU){if(!G(cV)||!cV.length){cV=""}else{if(cV instanceof Array){cV=JSON_PIWIK.stringify(cV)}}bE[5]=["_pkc",cV];if(G(cU)&&String(cU).length){bE[2]=["_pkp",cU]}if((!G(cW)||!cW.length)&&(!G(cT)||!cT.length)){return}if(G(cW)&&cW.length){bE[3]=["_pks",cW]}if(!G(cT)||!cT.length){cT=""}bE[4]=["_pkn",cT]};this.addEcommerceItem=function(cX,cT,cV,cU,cW){if(cX.length){cD[cX]=[cX,cT,cV,cU,cW]}};this.trackEcommerceOrder=function(cT,cX,cW,cV,cU,cY){bH(cT,cX,cW,cV,cU,cY)};this.trackEcommerceCartUpdate=function(cT){bd(cT)};this.trackRequest=function(cU,cW,cV,cT){bZ(function(){var cX=cb(cU,cW,cT);bo(cX,bs,cV)})};d.trigger("TrackerSetup",[this])}function E(){return{push:Z}}function b(am,al){var an={};var aj,ak; +for(aj=0;aj<al.length;aj++){var ah=al[aj];an[ah]=1;for(ak=0;ak<am.length;ak++){if(am[ak]&&am[ak][0]){var ai=am[ak][0];if(ah===ai){Z(am[ak]);delete am[ak];if(an[ai]>1){ad("The method "+ai+' 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: http://developer.piwik.org/guides/tracking-javascript-guide#multiple-piwik-trackers')}an[ai]++}}}}return am}var z=["addTracker","disableCookies","setTrackerUrl","setAPIUrl","enableCrossDomainLinking","setCookiePath","setCookieDomain","setDomains","setUserId","setSiteId","enableLinkTracking"];function X(ah,aj){var ai=new N(ah,aj);F.push(ai);_paq=b(_paq,z);for(B=0;B<_paq.length;B++){if(_paq[B]){Z(_paq[B])}}_paq=new E();return ai}ag(Q,"beforeunload",ab,false);Date.prototype.getTimeAlias=Date.prototype.getTime;d={initialized:false,JSON:JSON_PIWIK,DOM:{addEventListener:function(ak,aj,ai,ah){var al=typeof ah;if(al==="undefined"){ah=false}ag(ak,aj,ai,ah)},onLoad:l,onReady:o,isNodeVisible:i,isOrWasNodeVisible:t.isNodeVisible},on:function(ai,ah){if(!v[ai]){v[ai]=[] +}v[ai].push(ah)},off:function(aj,ai){if(!v[aj]){return}var ah=0;for(ah;ah<v[aj].length;ah++){if(v[aj][ah]===ai){v[aj].splice(ah,1)}}},trigger:function(aj,ak,ai){if(!v[aj]){return}var ah=0;for(ah;ah<v[aj].length;ah++){v[aj][ah].apply(ai||Q,ak)}},addPlugin:function(ah,ai){a[ah]=ai},getTracker:function(ah,ai){if(!G(ai)){ai=this.getAsyncTracker().getSiteId()}if(!G(ah)){ah=this.getAsyncTracker().getTrackerUrl()}return new N(ah,ai)},getAsyncTrackers:function(){return F},addTracker:function(ah,ai){if(!F.length){X(ah,ai)}else{F[0].addTracker(ah,ai)}},getAsyncTracker:function(ai,al){var ak;if(F&&F.length&&F[0]){ak=F[0]}else{return X(ai,al)}if(!al&&!ai){return ak}if((!G(al)||null===al)&&ak){al=ak.getSiteId()}if((!G(ai)||null===ai)&&ak){ai=ak.getTrackerUrl()}var aj,ah=0;for(ah;ah<F.length;ah++){aj=F[ah];if(aj&&String(aj.getSiteId())===String(al)&&aj.getTrackerUrl()===ai){return aj}}},retryMissedPluginCalls:function(){var ai=aa;aa=[];var ah=0;for(ah;ah<ai.length;ah++){Z(ai[ah])}}};if(typeof define==="function"&&define.amd){define("piwik",[],function(){return d +})}return d}()); /*!!! pluginTrackerHook */ -}(function(){function b(){if("object"!==typeof _paq){return false}var c=typeof _paq.length;if("undefined"===c){return false}return !!_paq.length}if(window&&"object"===typeof window.piwikPluginAsyncInit&&window.piwikPluginAsyncInit.length){var a=0;for(a; -a<window.piwikPluginAsyncInit.length;a++){if(typeof window.piwikPluginAsyncInit[a]==="function"){window.piwikPluginAsyncInit[a]()}}}if(window&&window.piwikAsyncInit){window.piwikAsyncInit()}if(!window.Piwik.getAsyncTrackers().length){if(b()){window.Piwik.addTracker()}else{_paq={push:function(c){if(console!==undefined&&console&&console.error){console.error("_paq.push() was used but Piwik tracker was not initialized before the piwik.js file was loaded. Make sure to configure the tracker via _paq.push before loading piwik.js. Alternatively, you can create a tracker via Piwik.addTracker() manually and then use _paq.push but it may not fully work as tracker methods may not be executed in the correct order.",c)}}}}}window.Piwik.trigger("PiwikInitialized",[]);window.Piwik.initialized=true}());(function(){var a=(typeof AnalyticsTracker);if(a==="undefined"){AnalyticsTracker=window.Piwik}}());if(typeof piwik_log!=="function"){piwik_log=function(b,f,d,g){function a(h){try{if(window["piwik_"+h]){return window["piwik_"+h] -}}catch(i){}return}var c,e=window.Piwik.getTracker(d,f);e.setDocumentTitle(b);e.setCustomData(g);c=a("tracker_pause");if(c){e.setLinkTrackingTimer(c)}c=a("download_extensions");if(c){e.setDownloadExtensions(c)}c=a("hosts_alias");if(c){e.setDomains(c)}c=a("ignore_classes");if(c){e.setIgnoreClasses(c)}e.trackPageView();if(a("install_tracker")){piwik_track=function(i,k,j,h){e.setSiteId(k);e.setTrackerUrl(j);e.trackLink(i,h)};e.enableLinkTracking()}}; +}(function(){function b(){if("object"!==typeof _paq){return false}var c=typeof _paq.length;if("undefined"===c){return false}return !!_paq.length}if(window&&"object"===typeof window.piwikPluginAsyncInit&&window.piwikPluginAsyncInit.length){var a=0;for(a;a<window.piwikPluginAsyncInit.length;a++){if(typeof window.piwikPluginAsyncInit[a]==="function"){window.piwikPluginAsyncInit[a]()}}}if(window&&window.piwikAsyncInit){window.piwikAsyncInit()}if(!window.Piwik.getAsyncTrackers().length){if(b()){window.Piwik.addTracker()}else{_paq={push:function(c){var d=typeof console;if(d!=="undefined"&&console&&console.error){console.error("_paq.push() was used but Piwik tracker was not initialized before the piwik.js file was loaded. Make sure to configure the tracker via _paq.push before loading piwik.js. Alternatively, you can create a tracker via Piwik.addTracker() manually and then use _paq.push but it may not fully work as tracker methods may not be executed in the correct order.",c) +}}}}}window.Piwik.trigger("PiwikInitialized",[]);window.Piwik.initialized=true}());(function(){var a=(typeof AnalyticsTracker);if(a==="undefined"){AnalyticsTracker=window.Piwik}}());if(typeof piwik_log!=="function"){piwik_log=function(b,f,d,g){function a(h){try{if(window["piwik_"+h]){return window["piwik_"+h]}}catch(i){}return}var c,e=window.Piwik.getTracker(d,f);e.setDocumentTitle(b);e.setCustomData(g);c=a("tracker_pause");if(c){e.setLinkTrackingTimer(c)}c=a("download_extensions");if(c){e.setDownloadExtensions(c)}c=a("hosts_alias");if(c){e.setDomains(c)}c=a("ignore_classes");if(c){e.setIgnoreClasses(c)}e.trackPageView();if(a("install_tracker")){piwik_track=function(i,k,j,h){e.setSiteId(k);e.setTrackerUrl(j);e.trackLink(i,h)};e.enableLinkTracking()}}; /*!! @license-end */ };
\ No newline at end of file diff --git a/plugins/API/Controller.php b/plugins/API/Controller.php index 25bfb7212d..41234d5c9a 100644 --- a/plugins/API/Controller.php +++ b/plugins/API/Controller.php @@ -49,6 +49,8 @@ class Controller extends \Piwik\Plugin\Controller public function listAllMethods() { + Piwik::checkUserHasSomeViewAccess(); + $ApiDocumentation = new DocumentationGenerator(); $prefixUrls = Common::getRequestVar('prefixUrl', 'http://demo.piwik.org/', 'string'); if (!UrlHelper::isLookLikeUrl($prefixUrls)) { diff --git a/plugins/CoreHome/CoreHome.php b/plugins/CoreHome/CoreHome.php index 7a221bc7db..fd3e729f74 100644 --- a/plugins/CoreHome/CoreHome.php +++ b/plugins/CoreHome/CoreHome.php @@ -241,6 +241,7 @@ class CoreHome extends \Piwik\Plugin $jsFiles[] = "plugins/CorePluginsAdmin/angularjs/save-button/save-button.directive.js"; $jsFiles[] = "plugins/CorePluginsAdmin/angularjs/plugins/plugin-filter.directive.js"; $jsFiles[] = "plugins/CorePluginsAdmin/angularjs/plugins/plugin-management.directive.js"; + $jsFiles[] = "plugins/CorePluginsAdmin/angularjs/plugins/plugin-upload.directive.js"; $jsFiles[] = "plugins/CoreHome/javascripts/iframeResizer.min.js"; } diff --git a/plugins/CoreHome/javascripts/broadcast.js b/plugins/CoreHome/javascripts/broadcast.js index 7117a0fb69..a58868261f 100644 --- a/plugins/CoreHome/javascripts/broadcast.js +++ b/plugins/CoreHome/javascripts/broadcast.js @@ -92,6 +92,7 @@ var broadcast = { hash = (''+hash).substr(1); } + if (hash) { if (/^popover=/.test(hash)) { @@ -124,7 +125,7 @@ var broadcast = { popoverParamUpdated = (popoverParam != ''); } - if (pageUrlUpdated || broadcast.forceReload) { + if (!broadcast.isWidgetizedDashboard() && (pageUrlUpdated || broadcast.forceReload)) { Piwik_Popover.close(); if (hashUrl != broadcast.currentHashUrl || broadcast.forceReload) { @@ -159,10 +160,16 @@ var broadcast = { } else { // start page Piwik_Popover.close(); - $('.pageWrap #content:not(.admin)').empty(); + if (!broadcast.isWidgetizedDashboard()) { + $('.pageWrap #content:not(.admin)').empty(); + } } }, + isWidgetizedDashboard: function() { + return broadcast.getValueFromUrl('module') == 'Widgetize' && broadcast.getValueFromUrl('moduleToWidgetize') == 'Dashboard'; + }, + /** * Returns if the current page is the login page * @return {boolean} @@ -304,6 +311,11 @@ var broadcast = { // available in global scope var currentSearchStr = window.location.search; var currentHashStr = broadcast.getHashFromUrl(); + + if (!currentSearchStr) { + currentSearchStr = '?'; + } + var oldUrl = currentSearchStr + currentHashStr; for (var i = 0; i < params_vals.length; i++) { @@ -420,7 +432,9 @@ var broadcast = { */ propagateNewPopoverParameter: function (handlerName, value) { // init broadcast if not already done (it is required to make popovers work in widgetize mode) - //broadcast.init(true); + if (broadcast.isWidgetizedDashboard()) { + broadcast.init(true); + } var $location = angular.element(document).injector().get('$location'); diff --git a/plugins/CorePluginsAdmin/Controller.php b/plugins/CorePluginsAdmin/Controller.php index d2b0b305e4..5defcac356 100644 --- a/plugins/CorePluginsAdmin/Controller.php +++ b/plugins/CorePluginsAdmin/Controller.php @@ -11,7 +11,6 @@ namespace Piwik\Plugins\CorePluginsAdmin; use Exception; use Piwik\API\Request; use Piwik\Common; -use Piwik\Config; use Piwik\Container\StaticContainer; use Piwik\Exception\MissingFilePermissionException; use Piwik\Filechecks; @@ -184,6 +183,9 @@ class Controller extends Plugin\ControllerAdmin } } + $view->isPluginUploadEnabled = CorePluginsAdmin::isPluginUploadEnabled(); + $view->installNonce = Nonce::getNonce(MarketplaceController::INSTALL_NONCE); + return $view; } @@ -247,10 +249,19 @@ class Controller extends Plugin\ControllerAdmin $suffix = "You may uninstall the plugin or manually delete the files in piwik/plugins/$pluginName/"; } - $description = '<strong>' - . $this->translator->translate('CorePluginsAdmin_PluginNotCompatibleWith', array($pluginName, self::getPiwikVersion())) - . '</strong><br/>' - . $suffix; + if ($this->pluginManager->isPluginInFilesystem($pluginName)) { + $description = '<strong>' + . $this->translator->translate('CorePluginsAdmin_PluginNotCompatibleWith', + array($pluginName, self::getPiwikVersion())) + . '</strong><br/>' + . $suffix; + } else { + $description = '<strong>' + . $this->translator->translate('CorePluginsAdmin_PluginNotFound', + array($pluginName)) + . '</strong><br/>' + . $this->translator->translate('CorePluginsAdmin_PluginNotFoundAlternative'); + } $plugin['info'] = array( 'description' => $description, 'version' => $this->translator->translate('General_Unknown'), diff --git a/plugins/CorePluginsAdmin/angularjs/plugins/plugin-upload.directive.js b/plugins/CorePluginsAdmin/angularjs/plugins/plugin-upload.directive.js new file mode 100644 index 0000000000..a18a2defde --- /dev/null +++ b/plugins/CorePluginsAdmin/angularjs/plugins/plugin-upload.directive.js @@ -0,0 +1,46 @@ +/*! + * Piwik - free/libre analytics platform + * + * @link http://piwik.org + * @license http://www.gnu.org/licenses/gpl-3.0.html GPL v3 or later + */ + +/** + * Usage: + * <div piwik-plugin-upload> + */ +(function () { + + angular.module('piwikApp').directive('piwikPluginUpload', piwikPluginUpload); + + piwikPluginUpload.$inject = ['piwik']; + + function piwikPluginUpload(piwik){ + + return { + restrict: 'A', + compile: function (element, attrs) { + + return function (scope, element, attrs) { + + $('.uploadPlugin').click(function (event) { + event.preventDefault(); + + piwikHelper.modalConfirm('#installPluginByUpload', {}); + }); + + $('#uploadPluginForm').submit(function (event) { + + var $zipFile = $('[name=pluginZip]'); + var fileName = $zipFile.val(); + + if (!fileName || '.zip' != fileName.slice(-4)) { + event.preventDefault(); + alert(_pk_translate('CorePluginsAdmin_NoZipFileSelected')); + } + }); + }; + } + }; + } +})();
\ No newline at end of file diff --git a/plugins/CorePluginsAdmin/lang/en.json b/plugins/CorePluginsAdmin/lang/en.json index 5247ae19d9..0da98b6179 100644 --- a/plugins/CorePluginsAdmin/lang/en.json +++ b/plugins/CorePluginsAdmin/lang/en.json @@ -41,6 +41,8 @@ "OriginThirdParty": "Third-party", "PluginHomepage": "Plugin Homepage", "PluginNotCompatibleWith": "%1$s plugin is not compatible with %2$s.", + "PluginNotFound": "Plugin %1$s not found on filesystem.", + "PluginNotFoundAlternative": "If you've been using this plugin, try reuploading or reinstalling it from the marketplace. If not, click uninstall to remove it from the list.", "PluginNotWorkingAlternative": "If you've been using this plugin, maybe you can find a more recent version in the Marketplace. If not, you may want to uninstall it.", "PluginRequirement": "%1$s requires %2$s.", "PluginsManagement": "Manage Plugins", @@ -51,7 +53,7 @@ "Status": "Status", "SuccessfullyActicated": "You have successfully activated <strong>%s<\/strong>.", "TeaserExtendPiwik": "Extend Piwik with Plugins and Themes", - "TeaserExtendPiwikByPlugin": "Extend Piwik by %1$sinstalling a new plugin%2$s.", + "TeaserExtendPiwikByPlugin": "Extend Piwik by %1$sinstalling plugins from the Marketplace%2$s or %3$supload a plugin in .zip format%4$s.", "TeaserExtendPiwikByTheme": "Enjoy another look & feel by %1$sinstalling a new theme%2$s.", "InstallingNewPluginViaMarketplaceOrUpload": "You may automatically install plugins from the Marketplace or %1$supload a plugin%2$s in .zip format.", "Theme": "Theme", diff --git a/plugins/CorePluginsAdmin/templates/plugins.twig b/plugins/CorePluginsAdmin/templates/plugins.twig index 4822c89d88..6fdb8c15b6 100644 --- a/plugins/CorePluginsAdmin/templates/plugins.twig +++ b/plugins/CorePluginsAdmin/templates/plugins.twig @@ -7,6 +7,8 @@ {% block content %} + {% include '@Marketplace/uploadPluginDialog.twig' %} + <div piwik-content-intro> <h2 piwik-enriched-headline> {{ title|e('html_attr') }} @@ -16,14 +18,18 @@ {{ 'CorePluginsAdmin_OncePluginIsInstalledYouMayActivateHere'|translate }} {% if isMarketplaceEnabled %} - {{ 'CorePluginsAdmin_TeaserExtendPiwikByPlugin'|translate('<a href="' ~ linkTo({'action':'browsePlugins', 'sort': ''}) ~ '">', '</a>')|raw }} + {{ 'CorePluginsAdmin_TeaserExtendPiwikByPlugin'|translate( + '<a href="' ~ linkTo({'action':'browsePlugins', 'sort': ''}) ~ '">', + '</a>', + '<a href="#" class="uploadPlugin">', + '</a>' + )|raw }} {% endif %} {% if not isPluginsAdminEnabled %} <br/>{{ 'CorePluginsAdmin_DoMoreContactPiwikAdmins'|translate }} {% endif %} - <br /> {{ 'CorePluginsAdmin_ChangeLookByManageThemes'|translate('<a href="' ~ linkTo({'action': 'themes'}) ~'">', '</a>')|raw }} </p> </div> diff --git a/plugins/CoreUpdater/Model.php b/plugins/CoreUpdater/Model.php index e03015e1b3..fa0ab59785 100644 --- a/plugins/CoreUpdater/Model.php +++ b/plugins/CoreUpdater/Model.php @@ -26,6 +26,8 @@ class Model public function removeGoneFiles($source, $target) { Filesystem::unlinkTargetFilesNotPresentInSource($source . '/core', $target . '/core'); + Filesystem::unlinkTargetFilesNotPresentInSource($source . '/libs', $target . '/libs'); + Filesystem::unlinkTargetFilesNotPresentInSource($source . '/vendor', $target . '/vendor'); foreach ($this->getPluginsFromDirectoy($source) as $pluginDir) { Filesystem::unlinkTargetFilesNotPresentInSource($source . $pluginDir, $target . $pluginDir); diff --git a/plugins/Dashboard/angularjs/dashboard/dashboard.directive.js b/plugins/Dashboard/angularjs/dashboard/dashboard.directive.js index 3231d60a52..04c1a8e6a5 100644 --- a/plugins/Dashboard/angularjs/dashboard/dashboard.directive.js +++ b/plugins/Dashboard/angularjs/dashboard/dashboard.directive.js @@ -93,7 +93,8 @@ function onLocationChange(event, newUrl, oldUrl) { - if (newUrl !== oldUrl && newUrl.indexOf('category=Dashboard_Dashboard') === -1) { + if (broadcast.getValueFromUrl('module') != 'Widgetize' && newUrl !== oldUrl && + newUrl.indexOf('category=Dashboard_Dashboard') === -1) { // we remove the dashboard only if we no longer show a dashboard. clearDashboard(); } diff --git a/plugins/DevicesDetection/functions.php b/plugins/DevicesDetection/functions.php index 8aa6f312d3..663e3361e9 100644 --- a/plugins/DevicesDetection/functions.php +++ b/plugins/DevicesDetection/functions.php @@ -16,13 +16,12 @@ use DeviceDetector\Parser\Client\Browser AS BrowserParser; function getBrandLogo($label) { + $path = 'plugins/Morpheus/icons/dist/brand/%s.png'; $label = preg_replace("/[^a-z0-9_-]+/i", "_", $label); - $path = dirname(__FILE__) . '/images/brand/' . $label . '.png'; - if (file_exists($path)) { - return 'plugins/DevicesDetection/images/brand/' . $label . '.png'; - } else { - return 'plugins/DevicesDetection/images/brand/Unknown.png'; + if (!file_exists(PIWIK_INCLUDE_PATH . '/' . sprintf($path, $label))) { + $label = "unk"; } + return sprintf($path, $label); } function getBrowserFamilyFullName($label) diff --git a/plugins/DevicesDetection/images/brand/3Q.png b/plugins/DevicesDetection/images/brand/3Q.png Binary files differdeleted file mode 100644 index 8a2e5e2f1c..0000000000 --- a/plugins/DevicesDetection/images/brand/3Q.png +++ /dev/null diff --git a/plugins/DevicesDetection/images/brand/Acer.png b/plugins/DevicesDetection/images/brand/Acer.png Binary files differdeleted file mode 100644 index 33e2e60ca3..0000000000 --- a/plugins/DevicesDetection/images/brand/Acer.png +++ /dev/null diff --git a/plugins/DevicesDetection/images/brand/Alcatel.png b/plugins/DevicesDetection/images/brand/Alcatel.png Binary files differdeleted file mode 100644 index 91ccc70297..0000000000 --- a/plugins/DevicesDetection/images/brand/Alcatel.png +++ /dev/null diff --git a/plugins/DevicesDetection/images/brand/Apple.png b/plugins/DevicesDetection/images/brand/Apple.png Binary files differdeleted file mode 100644 index 3ce2b7d569..0000000000 --- a/plugins/DevicesDetection/images/brand/Apple.png +++ /dev/null diff --git a/plugins/DevicesDetection/images/brand/Archos.png b/plugins/DevicesDetection/images/brand/Archos.png Binary files differdeleted file mode 100644 index a397830f7b..0000000000 --- a/plugins/DevicesDetection/images/brand/Archos.png +++ /dev/null diff --git a/plugins/DevicesDetection/images/brand/Asus.png b/plugins/DevicesDetection/images/brand/Asus.png Binary files differdeleted file mode 100644 index d5e7e4a436..0000000000 --- a/plugins/DevicesDetection/images/brand/Asus.png +++ /dev/null diff --git a/plugins/DevicesDetection/images/brand/Audiovox.png b/plugins/DevicesDetection/images/brand/Audiovox.png Binary files differdeleted file mode 100644 index d674fc28d8..0000000000 --- a/plugins/DevicesDetection/images/brand/Audiovox.png +++ /dev/null diff --git a/plugins/DevicesDetection/images/brand/Avvio.png b/plugins/DevicesDetection/images/brand/Avvio.png Binary files differdeleted file mode 100644 index 9f28e1750c..0000000000 --- a/plugins/DevicesDetection/images/brand/Avvio.png +++ /dev/null diff --git a/plugins/DevicesDetection/images/brand/BBK.png b/plugins/DevicesDetection/images/brand/BBK.png Binary files differdeleted file mode 100644 index 6352fd1b02..0000000000 --- a/plugins/DevicesDetection/images/brand/BBK.png +++ /dev/null diff --git a/plugins/DevicesDetection/images/brand/BangOlufsen.png b/plugins/DevicesDetection/images/brand/BangOlufsen.png Binary files differdeleted file mode 100644 index c3260f449d..0000000000 --- a/plugins/DevicesDetection/images/brand/BangOlufsen.png +++ /dev/null diff --git a/plugins/DevicesDetection/images/brand/Barnes_Noble.png b/plugins/DevicesDetection/images/brand/Barnes_Noble.png Binary files differdeleted file mode 100644 index 2eb62cb8e1..0000000000 --- a/plugins/DevicesDetection/images/brand/Barnes_Noble.png +++ /dev/null diff --git a/plugins/DevicesDetection/images/brand/Becker.png b/plugins/DevicesDetection/images/brand/Becker.png Binary files differdeleted file mode 100644 index 133ff9ac2b..0000000000 --- a/plugins/DevicesDetection/images/brand/Becker.png +++ /dev/null diff --git a/plugins/DevicesDetection/images/brand/Beetel.png b/plugins/DevicesDetection/images/brand/Beetel.png Binary files differdeleted file mode 100644 index d7602ecb37..0000000000 --- a/plugins/DevicesDetection/images/brand/Beetel.png +++ /dev/null diff --git a/plugins/DevicesDetection/images/brand/BenQ.png b/plugins/DevicesDetection/images/brand/BenQ.png Binary files differdeleted file mode 100644 index 10414987cf..0000000000 --- a/plugins/DevicesDetection/images/brand/BenQ.png +++ /dev/null diff --git a/plugins/DevicesDetection/images/brand/Cat.png b/plugins/DevicesDetection/images/brand/Cat.png Binary files differdeleted file mode 100644 index a6b262f172..0000000000 --- a/plugins/DevicesDetection/images/brand/Cat.png +++ /dev/null diff --git a/plugins/DevicesDetection/images/brand/Celkon.png b/plugins/DevicesDetection/images/brand/Celkon.png Binary files differdeleted file mode 100644 index c35d5864b4..0000000000 --- a/plugins/DevicesDetection/images/brand/Celkon.png +++ /dev/null diff --git a/plugins/DevicesDetection/images/brand/Cherry_Mobile.png b/plugins/DevicesDetection/images/brand/Cherry_Mobile.png Binary files differdeleted file mode 100644 index 393f1ca49d..0000000000 --- a/plugins/DevicesDetection/images/brand/Cherry_Mobile.png +++ /dev/null diff --git a/plugins/DevicesDetection/images/brand/CnM.png b/plugins/DevicesDetection/images/brand/CnM.png Binary files differdeleted file mode 100644 index dae12ed0fc..0000000000 --- a/plugins/DevicesDetection/images/brand/CnM.png +++ /dev/null diff --git a/plugins/DevicesDetection/images/brand/Compal.png b/plugins/DevicesDetection/images/brand/Compal.png Binary files differdeleted file mode 100644 index 8f89ab9894..0000000000 --- a/plugins/DevicesDetection/images/brand/Compal.png +++ /dev/null diff --git a/plugins/DevicesDetection/images/brand/Compaq.png b/plugins/DevicesDetection/images/brand/Compaq.png Binary files differdeleted file mode 100644 index b0738259bd..0000000000 --- a/plugins/DevicesDetection/images/brand/Compaq.png +++ /dev/null diff --git a/plugins/DevicesDetection/images/brand/ConCorde.png b/plugins/DevicesDetection/images/brand/ConCorde.png Binary files differdeleted file mode 100644 index 27efdbab49..0000000000 --- a/plugins/DevicesDetection/images/brand/ConCorde.png +++ /dev/null diff --git a/plugins/DevicesDetection/images/brand/Coolpad.png b/plugins/DevicesDetection/images/brand/Coolpad.png Binary files differdeleted file mode 100644 index 75caa69358..0000000000 --- a/plugins/DevicesDetection/images/brand/Coolpad.png +++ /dev/null diff --git a/plugins/DevicesDetection/images/brand/CreNova.png b/plugins/DevicesDetection/images/brand/CreNova.png Binary files differdeleted file mode 100644 index 282b466ec6..0000000000 --- a/plugins/DevicesDetection/images/brand/CreNova.png +++ /dev/null diff --git a/plugins/DevicesDetection/images/brand/Cricket.png b/plugins/DevicesDetection/images/brand/Cricket.png Binary files differdeleted file mode 100644 index 1e45f3ae52..0000000000 --- a/plugins/DevicesDetection/images/brand/Cricket.png +++ /dev/null diff --git a/plugins/DevicesDetection/images/brand/Crius_Mea.png b/plugins/DevicesDetection/images/brand/Crius_Mea.png Binary files differdeleted file mode 100644 index 4c3473a737..0000000000 --- a/plugins/DevicesDetection/images/brand/Crius_Mea.png +++ /dev/null diff --git a/plugins/DevicesDetection/images/brand/Crosscall.png b/plugins/DevicesDetection/images/brand/Crosscall.png Binary files differdeleted file mode 100644 index 39eab86c5d..0000000000 --- a/plugins/DevicesDetection/images/brand/Crosscall.png +++ /dev/null diff --git a/plugins/DevicesDetection/images/brand/DMM.png b/plugins/DevicesDetection/images/brand/DMM.png Binary files differdeleted file mode 100644 index 07d2fd3e09..0000000000 --- a/plugins/DevicesDetection/images/brand/DMM.png +++ /dev/null diff --git a/plugins/DevicesDetection/images/brand/Danew.png b/plugins/DevicesDetection/images/brand/Danew.png Binary files differdeleted file mode 100644 index 373eded938..0000000000 --- a/plugins/DevicesDetection/images/brand/Danew.png +++ /dev/null diff --git a/plugins/DevicesDetection/images/brand/Dell.png b/plugins/DevicesDetection/images/brand/Dell.png Binary files differdeleted file mode 100644 index 0a719c2cfd..0000000000 --- a/plugins/DevicesDetection/images/brand/Dell.png +++ /dev/null diff --git a/plugins/DevicesDetection/images/brand/Denver.png b/plugins/DevicesDetection/images/brand/Denver.png Binary files differdeleted file mode 100644 index 0ae2e6211a..0000000000 --- a/plugins/DevicesDetection/images/brand/Denver.png +++ /dev/null diff --git a/plugins/DevicesDetection/images/brand/DoCoMo.png b/plugins/DevicesDetection/images/brand/DoCoMo.png Binary files differdeleted file mode 100644 index cf9f3ef0e6..0000000000 --- a/plugins/DevicesDetection/images/brand/DoCoMo.png +++ /dev/null diff --git a/plugins/DevicesDetection/images/brand/Easypix.png b/plugins/DevicesDetection/images/brand/Easypix.png Binary files differdeleted file mode 100644 index a14cd928ba..0000000000 --- a/plugins/DevicesDetection/images/brand/Easypix.png +++ /dev/null diff --git a/plugins/DevicesDetection/images/brand/Ericsson.png b/plugins/DevicesDetection/images/brand/Ericsson.png Binary files differdeleted file mode 100644 index a377acd22e..0000000000 --- a/plugins/DevicesDetection/images/brand/Ericsson.png +++ /dev/null diff --git a/plugins/DevicesDetection/images/brand/Evertek.png b/plugins/DevicesDetection/images/brand/Evertek.png Binary files differdeleted file mode 100644 index c09bf2c331..0000000000 --- a/plugins/DevicesDetection/images/brand/Evertek.png +++ /dev/null diff --git a/plugins/DevicesDetection/images/brand/Fly.png b/plugins/DevicesDetection/images/brand/Fly.png Binary files differdeleted file mode 100644 index a4ae584c37..0000000000 --- a/plugins/DevicesDetection/images/brand/Fly.png +++ /dev/null diff --git a/plugins/DevicesDetection/images/brand/Fujitsu.png b/plugins/DevicesDetection/images/brand/Fujitsu.png Binary files differdeleted file mode 100644 index e2ac9cae5c..0000000000 --- a/plugins/DevicesDetection/images/brand/Fujitsu.png +++ /dev/null diff --git a/plugins/DevicesDetection/images/brand/Gemini.png b/plugins/DevicesDetection/images/brand/Gemini.png Binary files differdeleted file mode 100644 index deeb01e570..0000000000 --- a/plugins/DevicesDetection/images/brand/Gemini.png +++ /dev/null diff --git a/plugins/DevicesDetection/images/brand/Gigabyte.png b/plugins/DevicesDetection/images/brand/Gigabyte.png Binary files differdeleted file mode 100644 index ced0200cd8..0000000000 --- a/plugins/DevicesDetection/images/brand/Gigabyte.png +++ /dev/null diff --git a/plugins/DevicesDetection/images/brand/Gigaset.png b/plugins/DevicesDetection/images/brand/Gigaset.png Binary files differdeleted file mode 100644 index 5ad69fb6d2..0000000000 --- a/plugins/DevicesDetection/images/brand/Gigaset.png +++ /dev/null diff --git a/plugins/DevicesDetection/images/brand/Gionee.png b/plugins/DevicesDetection/images/brand/Gionee.png Binary files differdeleted file mode 100644 index 704085f1be..0000000000 --- a/plugins/DevicesDetection/images/brand/Gionee.png +++ /dev/null diff --git a/plugins/DevicesDetection/images/brand/Google.png b/plugins/DevicesDetection/images/brand/Google.png Binary files differdeleted file mode 100644 index fe481b517c..0000000000 --- a/plugins/DevicesDetection/images/brand/Google.png +++ /dev/null diff --git a/plugins/DevicesDetection/images/brand/Gradiente.png b/plugins/DevicesDetection/images/brand/Gradiente.png Binary files differdeleted file mode 100644 index 28d671dfbc..0000000000 --- a/plugins/DevicesDetection/images/brand/Gradiente.png +++ /dev/null diff --git a/plugins/DevicesDetection/images/brand/Grundig.png b/plugins/DevicesDetection/images/brand/Grundig.png Binary files differdeleted file mode 100644 index 0a0351a95a..0000000000 --- a/plugins/DevicesDetection/images/brand/Grundig.png +++ /dev/null diff --git a/plugins/DevicesDetection/images/brand/HP.png b/plugins/DevicesDetection/images/brand/HP.png Binary files differdeleted file mode 100644 index 5ca41db9b7..0000000000 --- a/plugins/DevicesDetection/images/brand/HP.png +++ /dev/null diff --git a/plugins/DevicesDetection/images/brand/HTC.png b/plugins/DevicesDetection/images/brand/HTC.png Binary files differdeleted file mode 100644 index 28c75f0c66..0000000000 --- a/plugins/DevicesDetection/images/brand/HTC.png +++ /dev/null diff --git a/plugins/DevicesDetection/images/brand/Haier.png b/plugins/DevicesDetection/images/brand/Haier.png Binary files differdeleted file mode 100644 index 03ccce3ff8..0000000000 --- a/plugins/DevicesDetection/images/brand/Haier.png +++ /dev/null diff --git a/plugins/DevicesDetection/images/brand/Huawei.png b/plugins/DevicesDetection/images/brand/Huawei.png Binary files differdeleted file mode 100644 index 441a40221c..0000000000 --- a/plugins/DevicesDetection/images/brand/Huawei.png +++ /dev/null diff --git a/plugins/DevicesDetection/images/brand/Humax.png b/plugins/DevicesDetection/images/brand/Humax.png Binary files differdeleted file mode 100644 index cdb27bf41d..0000000000 --- a/plugins/DevicesDetection/images/brand/Humax.png +++ /dev/null diff --git a/plugins/DevicesDetection/images/brand/Hyundai.png b/plugins/DevicesDetection/images/brand/Hyundai.png Binary files differdeleted file mode 100644 index 3565bcf03f..0000000000 --- a/plugins/DevicesDetection/images/brand/Hyundai.png +++ /dev/null diff --git a/plugins/DevicesDetection/images/brand/INQ.png b/plugins/DevicesDetection/images/brand/INQ.png Binary files differdeleted file mode 100644 index 3d012cf243..0000000000 --- a/plugins/DevicesDetection/images/brand/INQ.png +++ /dev/null diff --git a/plugins/DevicesDetection/images/brand/Ikea.png b/plugins/DevicesDetection/images/brand/Ikea.png Binary files differdeleted file mode 100644 index d9c160a039..0000000000 --- a/plugins/DevicesDetection/images/brand/Ikea.png +++ /dev/null diff --git a/plugins/DevicesDetection/images/brand/Intek.png b/plugins/DevicesDetection/images/brand/Intek.png Binary files differdeleted file mode 100644 index b0d505a3e9..0000000000 --- a/plugins/DevicesDetection/images/brand/Intek.png +++ /dev/null diff --git a/plugins/DevicesDetection/images/brand/Inverto.png b/plugins/DevicesDetection/images/brand/Inverto.png Binary files differdeleted file mode 100644 index 88729a4ed6..0000000000 --- a/plugins/DevicesDetection/images/brand/Inverto.png +++ /dev/null diff --git a/plugins/DevicesDetection/images/brand/Jolla.png b/plugins/DevicesDetection/images/brand/Jolla.png Binary files differdeleted file mode 100644 index 92b8535708..0000000000 --- a/plugins/DevicesDetection/images/brand/Jolla.png +++ /dev/null diff --git a/plugins/DevicesDetection/images/brand/KDDI.png b/plugins/DevicesDetection/images/brand/KDDI.png Binary files differdeleted file mode 100644 index 0142b8b082..0000000000 --- a/plugins/DevicesDetection/images/brand/KDDI.png +++ /dev/null diff --git a/plugins/DevicesDetection/images/brand/Karbonn.png b/plugins/DevicesDetection/images/brand/Karbonn.png Binary files differdeleted file mode 100644 index 8f200aeaaf..0000000000 --- a/plugins/DevicesDetection/images/brand/Karbonn.png +++ /dev/null diff --git a/plugins/DevicesDetection/images/brand/Kindle.png b/plugins/DevicesDetection/images/brand/Kindle.png Binary files differdeleted file mode 100644 index cbf915881b..0000000000 --- a/plugins/DevicesDetection/images/brand/Kindle.png +++ /dev/null diff --git a/plugins/DevicesDetection/images/brand/Kyocera.png b/plugins/DevicesDetection/images/brand/Kyocera.png Binary files differdeleted file mode 100644 index 5bc4da8b73..0000000000 --- a/plugins/DevicesDetection/images/brand/Kyocera.png +++ /dev/null diff --git a/plugins/DevicesDetection/images/brand/LG.png b/plugins/DevicesDetection/images/brand/LG.png Binary files differdeleted file mode 100644 index 8e7d07b93a..0000000000 --- a/plugins/DevicesDetection/images/brand/LG.png +++ /dev/null diff --git a/plugins/DevicesDetection/images/brand/LGUPlus.png b/plugins/DevicesDetection/images/brand/LGUPlus.png Binary files differdeleted file mode 100644 index db5f4fe1a4..0000000000 --- a/plugins/DevicesDetection/images/brand/LGUPlus.png +++ /dev/null diff --git a/plugins/DevicesDetection/images/brand/Lanix.png b/plugins/DevicesDetection/images/brand/Lanix.png Binary files differdeleted file mode 100644 index 790f8ad843..0000000000 --- a/plugins/DevicesDetection/images/brand/Lanix.png +++ /dev/null diff --git a/plugins/DevicesDetection/images/brand/Le_Pan.png b/plugins/DevicesDetection/images/brand/Le_Pan.png Binary files differdeleted file mode 100644 index cea70792e3..0000000000 --- a/plugins/DevicesDetection/images/brand/Le_Pan.png +++ /dev/null diff --git a/plugins/DevicesDetection/images/brand/Lenovo.png b/plugins/DevicesDetection/images/brand/Lenovo.png Binary files differdeleted file mode 100644 index 42c92f4eb6..0000000000 --- a/plugins/DevicesDetection/images/brand/Lenovo.png +++ /dev/null diff --git a/plugins/DevicesDetection/images/brand/Loewe.png b/plugins/DevicesDetection/images/brand/Loewe.png Binary files differdeleted file mode 100644 index aabc403d55..0000000000 --- a/plugins/DevicesDetection/images/brand/Loewe.png +++ /dev/null diff --git a/plugins/DevicesDetection/images/brand/MSI.png b/plugins/DevicesDetection/images/brand/MSI.png Binary files differdeleted file mode 100644 index 88cb1029d8..0000000000 --- a/plugins/DevicesDetection/images/brand/MSI.png +++ /dev/null diff --git a/plugins/DevicesDetection/images/brand/Manta_Multimedia.png b/plugins/DevicesDetection/images/brand/Manta_Multimedia.png Binary files differdeleted file mode 100644 index 05c79869d3..0000000000 --- a/plugins/DevicesDetection/images/brand/Manta_Multimedia.png +++ /dev/null diff --git a/plugins/DevicesDetection/images/brand/MediaTek.png b/plugins/DevicesDetection/images/brand/MediaTek.png Binary files differdeleted file mode 100644 index 0901a828de..0000000000 --- a/plugins/DevicesDetection/images/brand/MediaTek.png +++ /dev/null diff --git a/plugins/DevicesDetection/images/brand/Medion.png b/plugins/DevicesDetection/images/brand/Medion.png Binary files differdeleted file mode 100644 index 7873a80802..0000000000 --- a/plugins/DevicesDetection/images/brand/Medion.png +++ /dev/null diff --git a/plugins/DevicesDetection/images/brand/Metz.png b/plugins/DevicesDetection/images/brand/Metz.png Binary files differdeleted file mode 100644 index 5801781743..0000000000 --- a/plugins/DevicesDetection/images/brand/Metz.png +++ /dev/null diff --git a/plugins/DevicesDetection/images/brand/MicroMax.png b/plugins/DevicesDetection/images/brand/MicroMax.png Binary files differdeleted file mode 100644 index 1b3beda0cf..0000000000 --- a/plugins/DevicesDetection/images/brand/MicroMax.png +++ /dev/null diff --git a/plugins/DevicesDetection/images/brand/Microsoft.png b/plugins/DevicesDetection/images/brand/Microsoft.png Binary files differdeleted file mode 100644 index f1417973d0..0000000000 --- a/plugins/DevicesDetection/images/brand/Microsoft.png +++ /dev/null diff --git a/plugins/DevicesDetection/images/brand/Mio.png b/plugins/DevicesDetection/images/brand/Mio.png Binary files differdeleted file mode 100644 index a7abb66268..0000000000 --- a/plugins/DevicesDetection/images/brand/Mio.png +++ /dev/null diff --git a/plugins/DevicesDetection/images/brand/Mitsubishi.png b/plugins/DevicesDetection/images/brand/Mitsubishi.png Binary files differdeleted file mode 100644 index 248a92fc4d..0000000000 --- a/plugins/DevicesDetection/images/brand/Mitsubishi.png +++ /dev/null diff --git a/plugins/DevicesDetection/images/brand/Motorola.png b/plugins/DevicesDetection/images/brand/Motorola.png Binary files differdeleted file mode 100644 index 7a4daa95a7..0000000000 --- a/plugins/DevicesDetection/images/brand/Motorola.png +++ /dev/null diff --git a/plugins/DevicesDetection/images/brand/MyPhone.png b/plugins/DevicesDetection/images/brand/MyPhone.png Binary files differdeleted file mode 100644 index 3717270632..0000000000 --- a/plugins/DevicesDetection/images/brand/MyPhone.png +++ /dev/null diff --git a/plugins/DevicesDetection/images/brand/NEC.png b/plugins/DevicesDetection/images/brand/NEC.png Binary files differdeleted file mode 100644 index f2c60d1cd1..0000000000 --- a/plugins/DevicesDetection/images/brand/NEC.png +++ /dev/null diff --git a/plugins/DevicesDetection/images/brand/NGM.png b/plugins/DevicesDetection/images/brand/NGM.png Binary files differdeleted file mode 100644 index 533c88ba67..0000000000 --- a/plugins/DevicesDetection/images/brand/NGM.png +++ /dev/null diff --git a/plugins/DevicesDetection/images/brand/Nexian.png b/plugins/DevicesDetection/images/brand/Nexian.png Binary files differdeleted file mode 100644 index fba9dd7dba..0000000000 --- a/plugins/DevicesDetection/images/brand/Nexian.png +++ /dev/null diff --git a/plugins/DevicesDetection/images/brand/Nikon.png b/plugins/DevicesDetection/images/brand/Nikon.png Binary files differdeleted file mode 100644 index 99d714d1bd..0000000000 --- a/plugins/DevicesDetection/images/brand/Nikon.png +++ /dev/null diff --git a/plugins/DevicesDetection/images/brand/Nintendo.png b/plugins/DevicesDetection/images/brand/Nintendo.png Binary files differdeleted file mode 100644 index 20c6f4b5eb..0000000000 --- a/plugins/DevicesDetection/images/brand/Nintendo.png +++ /dev/null diff --git a/plugins/DevicesDetection/images/brand/Nokia.png b/plugins/DevicesDetection/images/brand/Nokia.png Binary files differdeleted file mode 100644 index 5af67b3573..0000000000 --- a/plugins/DevicesDetection/images/brand/Nokia.png +++ /dev/null diff --git a/plugins/DevicesDetection/images/brand/O2.png b/plugins/DevicesDetection/images/brand/O2.png Binary files differdeleted file mode 100644 index 468e9f5e62..0000000000 --- a/plugins/DevicesDetection/images/brand/O2.png +++ /dev/null diff --git a/plugins/DevicesDetection/images/brand/OPPO.png b/plugins/DevicesDetection/images/brand/OPPO.png Binary files differdeleted file mode 100644 index d947bb8c5a..0000000000 --- a/plugins/DevicesDetection/images/brand/OPPO.png +++ /dev/null diff --git a/plugins/DevicesDetection/images/brand/Onda.png b/plugins/DevicesDetection/images/brand/Onda.png Binary files differdeleted file mode 100644 index 386ea8ed58..0000000000 --- a/plugins/DevicesDetection/images/brand/Onda.png +++ /dev/null diff --git a/plugins/DevicesDetection/images/brand/OnePlus.png b/plugins/DevicesDetection/images/brand/OnePlus.png Binary files differdeleted file mode 100644 index 1f9c73a7d5..0000000000 --- a/plugins/DevicesDetection/images/brand/OnePlus.png +++ /dev/null diff --git a/plugins/DevicesDetection/images/brand/Orange.png b/plugins/DevicesDetection/images/brand/Orange.png Binary files differdeleted file mode 100644 index d3303f5825..0000000000 --- a/plugins/DevicesDetection/images/brand/Orange.png +++ /dev/null diff --git a/plugins/DevicesDetection/images/brand/PEAQ.png b/plugins/DevicesDetection/images/brand/PEAQ.png Binary files differdeleted file mode 100644 index 0626e7a93e..0000000000 --- a/plugins/DevicesDetection/images/brand/PEAQ.png +++ /dev/null diff --git a/plugins/DevicesDetection/images/brand/Panasonic.png b/plugins/DevicesDetection/images/brand/Panasonic.png Binary files differdeleted file mode 100644 index 6480c23af7..0000000000 --- a/plugins/DevicesDetection/images/brand/Panasonic.png +++ /dev/null diff --git a/plugins/DevicesDetection/images/brand/Pantech.png b/plugins/DevicesDetection/images/brand/Pantech.png Binary files differdeleted file mode 100644 index f3ff1432eb..0000000000 --- a/plugins/DevicesDetection/images/brand/Pantech.png +++ /dev/null diff --git a/plugins/DevicesDetection/images/brand/Philips.png b/plugins/DevicesDetection/images/brand/Philips.png Binary files differdeleted file mode 100644 index 6f952a104b..0000000000 --- a/plugins/DevicesDetection/images/brand/Philips.png +++ /dev/null diff --git a/plugins/DevicesDetection/images/brand/Polaroid.png b/plugins/DevicesDetection/images/brand/Polaroid.png Binary files differdeleted file mode 100644 index 3c1dc59aca..0000000000 --- a/plugins/DevicesDetection/images/brand/Polaroid.png +++ /dev/null diff --git a/plugins/DevicesDetection/images/brand/PolyPad.png b/plugins/DevicesDetection/images/brand/PolyPad.png Binary files differdeleted file mode 100644 index d6ef005892..0000000000 --- a/plugins/DevicesDetection/images/brand/PolyPad.png +++ /dev/null diff --git a/plugins/DevicesDetection/images/brand/Quechua.png b/plugins/DevicesDetection/images/brand/Quechua.png Binary files differdeleted file mode 100644 index b720b484b0..0000000000 --- a/plugins/DevicesDetection/images/brand/Quechua.png +++ /dev/null diff --git a/plugins/DevicesDetection/images/brand/RIM.png b/plugins/DevicesDetection/images/brand/RIM.png Binary files differdeleted file mode 100644 index 3263638840..0000000000 --- a/plugins/DevicesDetection/images/brand/RIM.png +++ /dev/null diff --git a/plugins/DevicesDetection/images/brand/SFR.png b/plugins/DevicesDetection/images/brand/SFR.png Binary files differdeleted file mode 100644 index 59a47182cc..0000000000 --- a/plugins/DevicesDetection/images/brand/SFR.png +++ /dev/null diff --git a/plugins/DevicesDetection/images/brand/Sagem.png b/plugins/DevicesDetection/images/brand/Sagem.png Binary files differdeleted file mode 100644 index 1f2f11d894..0000000000 --- a/plugins/DevicesDetection/images/brand/Sagem.png +++ /dev/null diff --git a/plugins/DevicesDetection/images/brand/Samsung.png b/plugins/DevicesDetection/images/brand/Samsung.png Binary files differdeleted file mode 100644 index ddef8460a2..0000000000 --- a/plugins/DevicesDetection/images/brand/Samsung.png +++ /dev/null diff --git a/plugins/DevicesDetection/images/brand/Sanyo.png b/plugins/DevicesDetection/images/brand/Sanyo.png Binary files differdeleted file mode 100644 index 5bc4da8b73..0000000000 --- a/plugins/DevicesDetection/images/brand/Sanyo.png +++ /dev/null diff --git a/plugins/DevicesDetection/images/brand/Sega.png b/plugins/DevicesDetection/images/brand/Sega.png Binary files differdeleted file mode 100644 index 58e505f18a..0000000000 --- a/plugins/DevicesDetection/images/brand/Sega.png +++ /dev/null diff --git a/plugins/DevicesDetection/images/brand/Selevision.png b/plugins/DevicesDetection/images/brand/Selevision.png Binary files differdeleted file mode 100644 index 7f54997696..0000000000 --- a/plugins/DevicesDetection/images/brand/Selevision.png +++ /dev/null diff --git a/plugins/DevicesDetection/images/brand/Sencor.png b/plugins/DevicesDetection/images/brand/Sencor.png Binary files differdeleted file mode 100644 index bc0540c337..0000000000 --- a/plugins/DevicesDetection/images/brand/Sencor.png +++ /dev/null diff --git a/plugins/DevicesDetection/images/brand/Sharp.png b/plugins/DevicesDetection/images/brand/Sharp.png Binary files differdeleted file mode 100644 index 5d7b8523cf..0000000000 --- a/plugins/DevicesDetection/images/brand/Sharp.png +++ /dev/null diff --git a/plugins/DevicesDetection/images/brand/Siemens.png b/plugins/DevicesDetection/images/brand/Siemens.png Binary files differdeleted file mode 100644 index f11c4d6a5a..0000000000 --- a/plugins/DevicesDetection/images/brand/Siemens.png +++ /dev/null diff --git a/plugins/DevicesDetection/images/brand/Smart.png b/plugins/DevicesDetection/images/brand/Smart.png Binary files differdeleted file mode 100644 index 9e3d779c63..0000000000 --- a/plugins/DevicesDetection/images/brand/Smart.png +++ /dev/null diff --git a/plugins/DevicesDetection/images/brand/Smartfren.png b/plugins/DevicesDetection/images/brand/Smartfren.png Binary files differdeleted file mode 100644 index 853f640448..0000000000 --- a/plugins/DevicesDetection/images/brand/Smartfren.png +++ /dev/null diff --git a/plugins/DevicesDetection/images/brand/Softbank.png b/plugins/DevicesDetection/images/brand/Softbank.png Binary files differdeleted file mode 100644 index d0b8dc8dc2..0000000000 --- a/plugins/DevicesDetection/images/brand/Softbank.png +++ /dev/null diff --git a/plugins/DevicesDetection/images/brand/Sony.png b/plugins/DevicesDetection/images/brand/Sony.png Binary files differdeleted file mode 100644 index 8d9dbf3796..0000000000 --- a/plugins/DevicesDetection/images/brand/Sony.png +++ /dev/null diff --git a/plugins/DevicesDetection/images/brand/Sony_Ericsson.png b/plugins/DevicesDetection/images/brand/Sony_Ericsson.png Binary files differdeleted file mode 100644 index a3cb9d2909..0000000000 --- a/plugins/DevicesDetection/images/brand/Sony_Ericsson.png +++ /dev/null diff --git a/plugins/DevicesDetection/images/brand/Spice.png b/plugins/DevicesDetection/images/brand/Spice.png Binary files differdeleted file mode 100644 index e9d7e0602a..0000000000 --- a/plugins/DevicesDetection/images/brand/Spice.png +++ /dev/null diff --git a/plugins/DevicesDetection/images/brand/T-Mobile.png b/plugins/DevicesDetection/images/brand/T-Mobile.png Binary files differdeleted file mode 100644 index 8908033d19..0000000000 --- a/plugins/DevicesDetection/images/brand/T-Mobile.png +++ /dev/null diff --git a/plugins/DevicesDetection/images/brand/TCL.png b/plugins/DevicesDetection/images/brand/TCL.png Binary files differdeleted file mode 100644 index a66cd3e924..0000000000 --- a/plugins/DevicesDetection/images/brand/TCL.png +++ /dev/null diff --git a/plugins/DevicesDetection/images/brand/TechniSat.png b/plugins/DevicesDetection/images/brand/TechniSat.png Binary files differdeleted file mode 100644 index f29d4e26ee..0000000000 --- a/plugins/DevicesDetection/images/brand/TechniSat.png +++ /dev/null diff --git a/plugins/DevicesDetection/images/brand/TechnoTrend.png b/plugins/DevicesDetection/images/brand/TechnoTrend.png Binary files differdeleted file mode 100644 index 9ef288505f..0000000000 --- a/plugins/DevicesDetection/images/brand/TechnoTrend.png +++ /dev/null diff --git a/plugins/DevicesDetection/images/brand/Tecno_Mobile.png b/plugins/DevicesDetection/images/brand/Tecno_Mobile.png Binary files differdeleted file mode 100644 index 7ea787c5ba..0000000000 --- a/plugins/DevicesDetection/images/brand/Tecno_Mobile.png +++ /dev/null diff --git a/plugins/DevicesDetection/images/brand/Telefunken.png b/plugins/DevicesDetection/images/brand/Telefunken.png Binary files differdeleted file mode 100644 index 9656092a10..0000000000 --- a/plugins/DevicesDetection/images/brand/Telefunken.png +++ /dev/null diff --git a/plugins/DevicesDetection/images/brand/Telit.png b/plugins/DevicesDetection/images/brand/Telit.png Binary files differdeleted file mode 100644 index f06186c545..0000000000 --- a/plugins/DevicesDetection/images/brand/Telit.png +++ /dev/null diff --git a/plugins/DevicesDetection/images/brand/Thomson.png b/plugins/DevicesDetection/images/brand/Thomson.png Binary files differdeleted file mode 100644 index 89c5133956..0000000000 --- a/plugins/DevicesDetection/images/brand/Thomson.png +++ /dev/null diff --git a/plugins/DevicesDetection/images/brand/TiPhone.png b/plugins/DevicesDetection/images/brand/TiPhone.png Binary files differdeleted file mode 100644 index da1531ac76..0000000000 --- a/plugins/DevicesDetection/images/brand/TiPhone.png +++ /dev/null diff --git a/plugins/DevicesDetection/images/brand/Tolino.png b/plugins/DevicesDetection/images/brand/Tolino.png Binary files differdeleted file mode 100644 index 23b44b02b7..0000000000 --- a/plugins/DevicesDetection/images/brand/Tolino.png +++ /dev/null diff --git a/plugins/DevicesDetection/images/brand/Toshiba.png b/plugins/DevicesDetection/images/brand/Toshiba.png Binary files differdeleted file mode 100644 index 3ea1260dab..0000000000 --- a/plugins/DevicesDetection/images/brand/Toshiba.png +++ /dev/null diff --git a/plugins/DevicesDetection/images/brand/Tunisie_Telecom.png b/plugins/DevicesDetection/images/brand/Tunisie_Telecom.png Binary files differdeleted file mode 100644 index 44e87d65ed..0000000000 --- a/plugins/DevicesDetection/images/brand/Tunisie_Telecom.png +++ /dev/null diff --git a/plugins/DevicesDetection/images/brand/Unknown.png b/plugins/DevicesDetection/images/brand/Unknown.png Binary files differdeleted file mode 100644 index 2c75a533a1..0000000000 --- a/plugins/DevicesDetection/images/brand/Unknown.png +++ /dev/null diff --git a/plugins/DevicesDetection/images/brand/Vertu.png b/plugins/DevicesDetection/images/brand/Vertu.png Binary files differdeleted file mode 100644 index caa2ec1a17..0000000000 --- a/plugins/DevicesDetection/images/brand/Vertu.png +++ /dev/null diff --git a/plugins/DevicesDetection/images/brand/Vestel.png b/plugins/DevicesDetection/images/brand/Vestel.png Binary files differdeleted file mode 100644 index 74466e4d31..0000000000 --- a/plugins/DevicesDetection/images/brand/Vestel.png +++ /dev/null diff --git a/plugins/DevicesDetection/images/brand/Videocon.png b/plugins/DevicesDetection/images/brand/Videocon.png Binary files differdeleted file mode 100644 index aee145d59e..0000000000 --- a/plugins/DevicesDetection/images/brand/Videocon.png +++ /dev/null diff --git a/plugins/DevicesDetection/images/brand/Videoweb.png b/plugins/DevicesDetection/images/brand/Videoweb.png Binary files differdeleted file mode 100644 index 8892f58f13..0000000000 --- a/plugins/DevicesDetection/images/brand/Videoweb.png +++ /dev/null diff --git a/plugins/DevicesDetection/images/brand/ViewSonic.png b/plugins/DevicesDetection/images/brand/ViewSonic.png Binary files differdeleted file mode 100644 index 0a57879b00..0000000000 --- a/plugins/DevicesDetection/images/brand/ViewSonic.png +++ /dev/null diff --git a/plugins/DevicesDetection/images/brand/Voxtel.png b/plugins/DevicesDetection/images/brand/Voxtel.png Binary files differdeleted file mode 100644 index b2b4b9afe5..0000000000 --- a/plugins/DevicesDetection/images/brand/Voxtel.png +++ /dev/null diff --git a/plugins/DevicesDetection/images/brand/Wiko.png b/plugins/DevicesDetection/images/brand/Wiko.png Binary files differdeleted file mode 100644 index 5ab15ac0c8..0000000000 --- a/plugins/DevicesDetection/images/brand/Wiko.png +++ /dev/null diff --git a/plugins/DevicesDetection/images/brand/Wolder.png b/plugins/DevicesDetection/images/brand/Wolder.png Binary files differdeleted file mode 100644 index 2d7884166d..0000000000 --- a/plugins/DevicesDetection/images/brand/Wolder.png +++ /dev/null diff --git a/plugins/DevicesDetection/images/brand/Woxter.png b/plugins/DevicesDetection/images/brand/Woxter.png Binary files differdeleted file mode 100644 index 9ca46b13a7..0000000000 --- a/plugins/DevicesDetection/images/brand/Woxter.png +++ /dev/null diff --git a/plugins/DevicesDetection/images/brand/Xiaomi.png b/plugins/DevicesDetection/images/brand/Xiaomi.png Binary files differdeleted file mode 100644 index 662a1a843b..0000000000 --- a/plugins/DevicesDetection/images/brand/Xiaomi.png +++ /dev/null diff --git a/plugins/DevicesDetection/images/brand/Yarvik.png b/plugins/DevicesDetection/images/brand/Yarvik.png Binary files differdeleted file mode 100644 index 0b24f3935f..0000000000 --- a/plugins/DevicesDetection/images/brand/Yarvik.png +++ /dev/null diff --git a/plugins/DevicesDetection/images/brand/Yuandao.png b/plugins/DevicesDetection/images/brand/Yuandao.png Binary files differdeleted file mode 100644 index 50b25f57bd..0000000000 --- a/plugins/DevicesDetection/images/brand/Yuandao.png +++ /dev/null diff --git a/plugins/DevicesDetection/images/brand/ZTE.png b/plugins/DevicesDetection/images/brand/ZTE.png Binary files differdeleted file mode 100644 index b1e74f2aae..0000000000 --- a/plugins/DevicesDetection/images/brand/ZTE.png +++ /dev/null diff --git a/plugins/DevicesDetection/images/brand/Zonda.png b/plugins/DevicesDetection/images/brand/Zonda.png Binary files differdeleted file mode 100644 index 6002ce66e4..0000000000 --- a/plugins/DevicesDetection/images/brand/Zonda.png +++ /dev/null diff --git a/plugins/DevicesDetection/images/brand/Zopo.png b/plugins/DevicesDetection/images/brand/Zopo.png Binary files differdeleted file mode 100644 index 03d6f4530e..0000000000 --- a/plugins/DevicesDetection/images/brand/Zopo.png +++ /dev/null diff --git a/plugins/DevicesDetection/images/brand/bq.png b/plugins/DevicesDetection/images/brand/bq.png Binary files differdeleted file mode 100644 index 088f3d1144..0000000000 --- a/plugins/DevicesDetection/images/brand/bq.png +++ /dev/null diff --git a/plugins/DevicesDetection/images/brand/eTouch.png b/plugins/DevicesDetection/images/brand/eTouch.png Binary files differdeleted file mode 100644 index 30e09812b6..0000000000 --- a/plugins/DevicesDetection/images/brand/eTouch.png +++ /dev/null diff --git a/plugins/DevicesDetection/images/brand/i-mobile.png b/plugins/DevicesDetection/images/brand/i-mobile.png Binary files differdeleted file mode 100644 index 2b02066876..0000000000 --- a/plugins/DevicesDetection/images/brand/i-mobile.png +++ /dev/null diff --git a/plugins/DevicesDetection/images/brand/iBerry.png b/plugins/DevicesDetection/images/brand/iBerry.png Binary files differdeleted file mode 100644 index 528e04a4c5..0000000000 --- a/plugins/DevicesDetection/images/brand/iBerry.png +++ /dev/null diff --git a/plugins/DevicesDetection/images/brand/teXet.png b/plugins/DevicesDetection/images/brand/teXet.png Binary files differdeleted file mode 100644 index 2d046b9f73..0000000000 --- a/plugins/DevicesDetection/images/brand/teXet.png +++ /dev/null diff --git a/plugins/DevicesDetection/tests/System/expected/test___DevicesDetection.getBrand_day.xml b/plugins/DevicesDetection/tests/System/expected/test___DevicesDetection.getBrand_day.xml index 0f038157ba..6f23cb8eb7 100644 --- a/plugins/DevicesDetection/tests/System/expected/test___DevicesDetection.getBrand_day.xml +++ b/plugins/DevicesDetection/tests/System/expected/test___DevicesDetection.getBrand_day.xml @@ -18,7 +18,7 @@ </goals> <nb_conversions>2</nb_conversions> <revenue>52.26</revenue> - <logo>plugins/DevicesDetection/images/brand/Apple.png</logo> + <logo>plugins/Morpheus/icons/dist/brand/Apple.png</logo> <segment>deviceBrand==Apple</segment> </row> <row> @@ -39,7 +39,7 @@ </goals> <nb_conversions>3</nb_conversions> <revenue>62.26</revenue> - <logo>plugins/DevicesDetection/images/brand/Unknown.png</logo> + <logo>plugins/Morpheus/icons/dist/brand/Unknown.png</logo> <segment>deviceBrand==Unknown</segment> </row> <row> @@ -60,7 +60,7 @@ </goals> <nb_conversions>1</nb_conversions> <revenue>42.26</revenue> - <logo>plugins/DevicesDetection/images/brand/HTC.png</logo> + <logo>plugins/Morpheus/icons/dist/brand/HTC.png</logo> <segment>deviceBrand==HTC</segment> </row> <row> @@ -73,7 +73,7 @@ <sum_visit_length>0</sum_visit_length> <bounce_count>1</bounce_count> <nb_visits_converted>0</nb_visits_converted> - <logo>plugins/DevicesDetection/images/brand/Philips.png</logo> + <logo>plugins/Morpheus/icons/dist/brand/Philips.png</logo> <segment>deviceBrand==Philips</segment> </row> <row> @@ -86,7 +86,7 @@ <sum_visit_length>0</sum_visit_length> <bounce_count>1</bounce_count> <nb_visits_converted>0</nb_visits_converted> - <logo>plugins/DevicesDetection/images/brand/Samsung.png</logo> + <logo>plugins/Morpheus/icons/dist/brand/Samsung.png</logo> <segment>deviceBrand==Samsung</segment> </row> <row> @@ -107,7 +107,7 @@ </goals> <nb_conversions>1</nb_conversions> <revenue>10</revenue> - <logo>plugins/DevicesDetection/images/brand/ViewSonic.png</logo> + <logo>plugins/Morpheus/icons/dist/brand/ViewSonic.png</logo> <segment>deviceBrand==ViewSonic</segment> </row> </result>
\ No newline at end of file diff --git a/plugins/Diagnostics/Diagnostic/PageSpeedCheck.php b/plugins/Diagnostics/Diagnostic/PageSpeedCheck.php index 8f456a04bb..495e13ee45 100644 --- a/plugins/Diagnostics/Diagnostic/PageSpeedCheck.php +++ b/plugins/Diagnostics/Diagnostic/PageSpeedCheck.php @@ -72,9 +72,7 @@ class PageSpeedCheck implements Diagnostic // If the test failed, we assume Page speed is not enabled return false; } - - $headers = $page['headers']; - - return isset($headers['X-Mod-Pagespeed']) || isset($headers['X-Page-Speed']); + + return isset($page['headers']['X-Mod-Pagespeed']) || isset($page['headers']['X-Page-Speed']); } } diff --git a/plugins/ImageGraph/StaticGraph.php b/plugins/ImageGraph/StaticGraph.php index 1f74457e7d..44c9309a59 100644 --- a/plugins/ImageGraph/StaticGraph.php +++ b/plugins/ImageGraph/StaticGraph.php @@ -239,8 +239,9 @@ abstract class StaticGraph extends BaseFactory foreach ($this->ordinateSeries as $column => $data) { $this->pData->addPoints($data, $column); $this->pData->setSerieDescription($column, $this->ordinateLabels[$column]); + if (isset($this->ordinateLogos[$column])) { - $ordinateLogo = $this->ordinateLogos[$column]; + $ordinateLogo = $this->createResizedImageCopyIfNeeded($this->ordinateLogos[$column]); $this->pData->setSeriePicture($column, $ordinateLogo); } } @@ -251,6 +252,38 @@ abstract class StaticGraph extends BaseFactory $this->pData->setAbscissa(self::ABSCISSA_SERIE_NAME); } + protected function createResizedImageCopyIfNeeded($image) + { + $size = getimagesize($image); + + if ($size[0] <= 16 && $size[1] <= 16) { + return $image; // use original image if size fits + } + + $ratio = $size[0] / $size[1]; + if ($ratio > 1) { + $width = 16; + $height = 16 / $ratio; + } else { + $width = 16 * $ratio; + $height = 16; + } + + $newImage = self::getOutputPath(md5($image) . '.png'); + + $src = imagecreatefromstring(file_get_contents($image)); + $dst = imagecreatetruecolor($width, $height); + imagesavealpha($dst, true); + $color = imagecolorallocatealpha($dst, 0, 0, 0, 127); + imagefill($dst, 0, 0, $color); + imagecopyresampled($dst, $src, 0, 0, 0, 0, $width, $height, $size[0], $size[1]); + imagedestroy($src); + imagepng($dst, $newImage); + imagedestroy($dst); + + return $newImage; + } + protected function initpImage() { $this->pImage = new Image($this->width, $this->height, $this->pData); diff --git a/plugins/ImageGraph/StaticGraph/HorizontalBar.php b/plugins/ImageGraph/StaticGraph/HorizontalBar.php index 2f6f4b8ca5..c8ae7345ee 100644 --- a/plugins/ImageGraph/StaticGraph/HorizontalBar.php +++ b/plugins/ImageGraph/StaticGraph/HorizontalBar.php @@ -24,14 +24,16 @@ class HorizontalBar extends GridGraph { $verticalLegend = false; - // determine the maximum logo width & height - list($maxLogoWidth, $maxLogoHeight) = self::getMaxLogoSize($this->abscissaLogos); - - foreach ($this->abscissaLogos as $logoPath) { + // create resized copies of logo to match maximum width / height + foreach ($this->abscissaLogos as &$logoPath) { + $logoPath = $this->createResizedImageCopyIfNeeded($logoPath); list($logoWidth, $logoHeight) = self::getLogoSize($logoPath); $logoPathToHeight[$logoPath] = $logoHeight; } + // determine the maximum logo width & height + list($maxLogoWidth, $maxLogoHeight) = self::getMaxLogoSize($this->abscissaLogos); + // truncate report $graphHeight = $this->getGraphBottom($horizontalGraph = true) - $this->getGridTopMargin($horizontalGraph = true, $verticalLegend); diff --git a/plugins/LoginLdap b/plugins/LoginLdap new file mode 160000 +Subproject e4b5faedcab4a9de793f72dc32b5212383c4a09 diff --git a/plugins/Marketplace/angularjs/marketplace/marketplace.directive.js b/plugins/Marketplace/angularjs/marketplace/marketplace.directive.js index 96812865d6..0ae4d9e63d 100644 --- a/plugins/Marketplace/angularjs/marketplace/marketplace.directive.js +++ b/plugins/Marketplace/angularjs/marketplace/marketplace.directive.js @@ -32,24 +32,6 @@ piwikHelper.modalConfirm('#installAllPaidPluginsAtOnce'); }); - $('.uploadPlugin').click(function (event) { - event.preventDefault(); - - piwikHelper.modalConfirm('#installPluginByUpload', {}); - }); - - - $('#uploadPluginForm').submit(function (event) { - - var $zipFile = $('[name=pluginZip]'); - var fileName = $zipFile.val(); - - if (!fileName || '.zip' != fileName.slice(-4)) { - event.preventDefault(); - alert(_pk_translate('CorePluginsAdmin_NoZipFileSelected')); - } - }); - // Keeps the plugin descriptions the same height $('.marketplace .plugin .description').dotdotdot({ after: 'a.more', diff --git a/plugins/Marketplace/templates/overview.twig b/plugins/Marketplace/templates/overview.twig index 76123fc2a1..f158b2522a 100644 --- a/plugins/Marketplace/templates/overview.twig +++ b/plugins/Marketplace/templates/overview.twig @@ -28,25 +28,7 @@ {% include '@Marketplace/licenseform.twig' %} - <div class="ui-confirm" id="installPluginByUpload"> - <h2>{{ 'Marketplace_TeaserExtendPiwikByUpload'|translate }}</h2> - - {% if isPluginUploadEnabled %} - <p class="description"> {{ 'Marketplace_AllowedUploadFormats'|translate }} </p> - - <form enctype="multipart/form-data" method="post" id="uploadPluginForm" - action="{{ linkTo({'module':'CorePluginsAdmin', 'action':'uploadPlugin', 'nonce': installNonce}) }}"> - <input type="file" name="pluginZip"> - <br /> - <input class="startUpload btn" type="submit" value="{{ 'Marketplace_UploadZipFile'|translate }}"> - </form> - {% else %} - <p class="description"> {{ 'Marketplace_PluginUploadDisabled'|translate|raw }} </p> - <pre>[General] -enable_plugin_upload = 1</pre> - <input role="yes" type="button" value="{{ 'General_Ok'|translate }}"/> - {% endif %} - </div> + {% include '@Marketplace/uploadPluginDialog.twig' %} <div class="row marketplaceActions" ng-controller="PiwikMarketplaceController as marketplace"> <div piwik-field uicontrol="select" name="plugin_type" diff --git a/plugins/Marketplace/templates/uploadPluginDialog.twig b/plugins/Marketplace/templates/uploadPluginDialog.twig new file mode 100644 index 0000000000..5770d5fb31 --- /dev/null +++ b/plugins/Marketplace/templates/uploadPluginDialog.twig @@ -0,0 +1,19 @@ +<div class="ui-confirm" id="installPluginByUpload" piwik-plugin-upload> + <h2>{{ 'Marketplace_TeaserExtendPiwikByUpload'|translate }}</h2> + + {% if isPluginUploadEnabled %} + <p class="description"> {{ 'Marketplace_AllowedUploadFormats'|translate }} </p> + + <form enctype="multipart/form-data" method="post" id="uploadPluginForm" + action="{{ linkTo({'module':'CorePluginsAdmin', 'action':'uploadPlugin', 'nonce': installNonce}) }}"> + <input type="file" name="pluginZip"> + <br /> + <input class="startUpload btn" type="submit" value="{{ 'Marketplace_UploadZipFile'|translate }}"> + </form> + {% else %} + <p class="description"> {{ 'Marketplace_PluginUploadDisabled'|translate|raw }} </p> + <pre>[General] +enable_plugin_upload = 1</pre> + <input role="yes" type="button" value="{{ 'General_Ok'|translate }}"/> + {% endif %} +</div>
\ No newline at end of file diff --git a/plugins/Morpheus/fonts/piwik.svg b/plugins/Morpheus/fonts/piwik.svg index 1d0176dd66..2e361d9270 100644 --- a/plugins/Morpheus/fonts/piwik.svg +++ b/plugins/Morpheus/fonts/piwik.svg @@ -24,6 +24,14 @@ <font-face units-per-em="1024" ascent="960" descent="-64" /> <missing-glyph horiz-adv-x="1024" /> <glyph unicode=" " horiz-adv-x="512" d="" /> +<glyph unicode="" glyph-name="fast-forward" data-tags="fast_forward" d="M557.5 704l394.333-277.333-394.333-277.333v554.667zM141.5 149.334v554.667l394.333-277.333z" /> +<glyph unicode="" glyph-name="fast-rewind" data-tags="fast_rewind" d="M488.167 426.667l394.333 277.333v-554.667zM466.5 149.334l-394.333 277.333 394.333 277.333v-554.667z" /> +<glyph unicode="" glyph-name="pause" data-tags="pause_circle_filled" d="M665.84 222.348v408.639h-103.362v-408.639h103.362zM461.521 222.348v408.639h-103.362v-408.639h103.362zM512 938.667c283.643 0 512-228.357 512-512s-228.357-512-512-512-512 228.357-512 512 228.357 512 512 512z" /> +<glyph unicode="" glyph-name="play" data-tags="play_circle_filled" d="M408.639 195.907l307.681 230.76-307.681 230.76v-461.521zM512 938.667c283.643 0 512-228.357 512-512s-228.357-512-512-512-512 228.357-512 512 228.357 512 512 512z" /> +<glyph unicode="" glyph-name="replay" data-tags="replay" d="M512 709.515c206.638 0 375.906-167.070 375.906-373.708s-169.268-375.906-375.906-375.906-375.906 169.268-375.906 375.906h94.525c0-156.079 125.3-281.38 281.38-281.38s281.38 125.3 281.38 281.38-125.3 281.38-281.38 281.38v-189.053l-235.216 235.216 235.216 235.216v-189.053z" /> +<glyph unicode="" glyph-name="skip-next" data-tags="skip_next" d="M710.334 725.333h100.334v-597.334h-100.334v597.334zM213.334 128.001v597.334l422.334-298.666z" /> +<glyph unicode="" glyph-name="skip_previous" data-tags="skip_previous" d="M388.332 426.667l422.33 298.668v-597.33zM213.332 725.335h100.331v-597.33h-100.331v597.33z" /> +<glyph unicode="" glyph-name="stop" data-tags="stop" d="M213.334 725.333h597.334v-597.334h-597.334v597.334z" /> <glyph unicode="" glyph-name="alien" data-tags="ico-alien" d="M576 896c0-35.346-28.654-64-64-64s-64 28.654-64 64c0 35.346 28.654 64 64 64s64-28.654 64-64zM480 864h64v-128h-64v128zM897.024-64h-770.048c-70.144 0-126.976 56.832-126.976 126.976v0c0 70.144 56.832 126.976 126.976 126.976h769.984c70.144 0 126.976-56.832 126.976-126.976v0c0.064-70.144-56.768-126.976-126.912-126.976zM512 768c-194.432 0-352-157.568-352-352v-160h704v160c0 194.432-157.568 352-352 352zM384 352c-52.992 0-96 43.008-96 96s43.008 96 96 96 96-43.008 96-96-43.008-96-96-96zM640 352c-52.992 0-96 43.008-96 96s43.008 96 96 96 96-43.008 96-96-43.008-96-96-96z" /> <glyph unicode="" glyph-name="annotation" data-tags="ico-annotation" d="M736 704h-448c-17.664 0-32-14.336-32-32s14.336-32 32-32h448c17.664 0 32 14.336 32 32s-14.336 32-32 32zM736 576h-448c-17.664 0-32-14.336-32-32s14.336-32 32-32h448c17.664 0 32 14.336 32 32s-14.336 32-32 32zM608 448h-320c-17.664 0-32-14.336-32-32s14.336-32 32-32h320c17.664 0 32 14.336 32 32s-14.336 32-32 32zM832 960h-640c-106.048 0-192-85.952-192-192v-448c0-106.048 85.952-192 192-192h320l195.2-184.32c25.024-18.816 60.8-0.896 60.8 30.4v153.92h64c106.048 0 192 85.952 192 192v448c0 106.048-85.952 192-192 192zM896 320c0-35.264-28.736-64-64-64h-640c-35.264 0-64 28.736-64 64v448c0 35.264 28.736 64 64 64h640c35.264 0 64-28.736 64-64v-448z" /> <glyph unicode="" glyph-name="arrow-left" data-tags="ico-arrow-left" d="M704 736v-576l-321.024 286.976z" /> @@ -91,7 +99,6 @@ <glyph unicode="" glyph-name="tag-cloud" data-tags="ico-tag-cloud" d="M740.288 448.64c0 0.576 0.064 1.088 0.064 1.664 0 55.232-44.8 100.032-100.032 100.032-23.36 0-44.8-8.064-61.824-21.504-26.24 48.96-77.824 82.368-137.28 82.368-85.888 0-155.584-69.632-155.584-155.584 0-2.048 0.256-4.032 0.32-6.080-31.488-12.544-53.952-43.392-53.952-79.296v-0.128c0-46.976 38.4-85.376 85.376-85.376h389.312c46.976 0 85.376 38.4 85.376 85.376v0.128c-0.064 35.072-21.44 65.28-51.776 78.4zM832 832c35.264 0 64-28.736 64-64v-640c0-35.264-28.736-64-64-64h-640c-35.264 0-64 28.736-64 64v640c0 35.264 28.736 64 64 64h640zM832 960h-640c-106.048 0-192-85.952-192-192v-640c0-106.048 85.952-192 192-192h640c106.048 0 192 85.952 192 192v640c0 106.048-85.952 192-192 192v0z" /> <glyph unicode="" glyph-name="user" data-tags="ico-user" d="M605.632 375.104c0.384 3.072 1.792 5.696 1.792 8.832 0 7.296-2.368 13.888-4.16 20.608 90.304 62.784 154.176 206.656 154.176 309.952 0 135.616-109.888 245.504-245.44 245.504s-245.44-109.888-245.44-245.44c0-103.296 63.872-247.168 154.176-309.952-1.792-6.784-4.16-13.312-4.16-20.672 0-3.136 1.472-5.824 1.792-8.832-238.016-33.728-418.368-193.152-418.368-385.088 0-0.192 0-0.384 0-0.576 0.064-29.824 22.72-53.44 49.28-53.44h925.44c26.496 0 49.216 23.616 49.28 53.504 0 0.192 0 0.384 0 0.576 0 191.872-180.352 351.296-418.368 385.024z" /> <glyph unicode="" glyph-name="user-add" data-tags="ico-user-add" d="M615.424 568.576c0-110.144-89.28-277.504-199.424-277.504s-199.424 167.36-199.424 277.504 89.28 199.424 199.424 199.424 199.424-89.28 199.424-199.424zM792-64c21.568 0 40 19.2 40 43.456 0 0.128 0 0.32 0 0.448 0 175.872-186.24 318.4-416 318.4s-416-142.528-416-318.4c0-0.128 0-0.32 0-0.448 0.064-24.256 18.496-43.456 40-43.456h752zM832 576v0c-35.328 0-64 28.672-64 64v256c0 35.328 28.672 64 64 64v0c35.328 0 64-28.672 64-64v-256c0-35.328-28.672-64-64-64zM640 768v0c0 35.328 28.672 64 64 64h256c35.328 0 64-28.672 64-64v0c0-35.328-28.672-64-64-64h-256c-35.328 0-64 28.672-64 64z" /> -<glyph unicode="" glyph-name="play" data-tags="ico-play" d="M512 960c-282.752 0-512-229.248-512-512s229.248-512 512-512 512 229.248 512 512-229.248 512-512 512zM384 224.64v446.72l320-222.656-320-224.064z" /> <glyph unicode="" glyph-name="visitor-profile" data-tags="ico-visitor-profile" d="M832 768c35.264 0 64-28.736 64-64v-512c0-35.264-28.736-64-64-64h-640c-35.264 0-64 28.736-64 64v512c0 35.264 28.736 64 64 64h640zM832 896h-640c-106.048 0-192-85.952-192-192v-512c0-106.048 85.952-192 192-192h640c106.048 0 192 85.952 192 192v512c0 106.048-85.952 192-192 192v0zM570.752 581.248c0-67.776-54.976-170.752-122.752-170.752s-122.752 102.976-122.752 170.752 54.976 122.752 122.752 122.752 122.752-54.976 122.752-122.752zM679.36 192c13.248 0 24.64 11.84 24.64 26.752 0 0.064 0 0.192 0 0.256 0 108.224-114.624 195.968-256 195.968s-256-87.744-256-195.968c0-0.064 0-0.192 0-0.256 0-14.912 11.392-26.752 24.64-26.752h462.72zM800 640h-128c-17.664 0-32-14.336-32-32s14.336-32 32-32h128c17.664 0 32 14.336 32 32s-14.336 32-32 32zM800 512h-128c-17.664 0-32-14.336-32-32s14.336-32 32-32h128c17.664 0 32 14.336 32 32s-14.336 32-32 32zM800 384h-64c-17.664 0-32-14.336-32-32s14.336-32 32-32h64c17.664 0 32 14.336 32 32s-14.336 32-32 32z" /> <glyph unicode="" glyph-name="zoom-in" data-tags="ico-zoom-in" d="M448 832c176.448 0 320-143.552 320-320s-143.552-320-320-320-320 143.552-320 320 143.552 320 320 320zM448 960c-247.424 0-448-200.576-448-448s200.576-448 448-448 448 200.576 448 448-200.576 448-448 448v0zM640 192l229.504-229.504c35.328-35.328 92.672-35.328 128 0v0c35.328 35.328 35.328 92.672 0 128l-229.504 229.504-128-128zM448 320v0c-35.328 0-64 28.672-64 64v256c0 35.328 28.672 64 64 64v0c35.328 0 64-28.672 64-64v-256c0-35.328-28.672-64-64-64zM256 512v0c0 35.328 28.672 64 64 64h256c35.328 0 64-28.672 64-64v0c0-35.328-28.672-64-64-64h-256c-35.328 0-64 28.672-64 64z" /> <glyph unicode="" glyph-name="zoom-out" data-tags="ico-zoom-out" d="M448 832c176.448 0 320-143.552 320-320s-143.552-320-320-320-320 143.552-320 320 143.552 320 320 320zM448 960c-247.424 0-448-200.576-448-448s200.576-448 448-448 448 200.576 448 448-200.576 448-448 448v0zM640 192l229.504-229.504c35.328-35.328 92.672-35.328 128 0v0c35.328 35.328 35.328 92.672 0 128l-229.504 229.504-128-128zM256 512v0c0 35.328 28.672 64 64 64h256c35.328 0 64-28.672 64-64v0c0-35.328-28.672-64-64-64h-256c-35.328 0-64 28.672-64 64z" /> diff --git a/plugins/Morpheus/fonts/piwik.ttf b/plugins/Morpheus/fonts/piwik.ttf Binary files differindex 83d95f1742..71de816461 100755 --- a/plugins/Morpheus/fonts/piwik.ttf +++ b/plugins/Morpheus/fonts/piwik.ttf diff --git a/plugins/Morpheus/fonts/piwik.woff b/plugins/Morpheus/fonts/piwik.woff Binary files differindex ee16b4a277..5dc05341d1 100644 --- a/plugins/Morpheus/fonts/piwik.woff +++ b/plugins/Morpheus/fonts/piwik.woff diff --git a/plugins/Morpheus/fonts/selection.json b/plugins/Morpheus/fonts/selection.json index cc873bd6ef..f321e25925 100644 --- a/plugins/Morpheus/fonts/selection.json +++ b/plugins/Morpheus/fonts/selection.json @@ -26,7 +26,7 @@ "name": "alien" }, "setIdx": 0, - "setId": 15, + "setId": 19, "iconIdx": 0 }, { @@ -54,7 +54,7 @@ "name": "annotation" }, "setIdx": 0, - "setId": 15, + "setId": 19, "iconIdx": 1 }, { @@ -79,7 +79,7 @@ "name": "arrow-left" }, "setIdx": 0, - "setId": 15, + "setId": 19, "iconIdx": 2 }, { @@ -104,7 +104,7 @@ "name": "arrow-right" }, "setIdx": 0, - "setId": 15, + "setId": 19, "iconIdx": 3 }, { @@ -131,7 +131,7 @@ "name": "business" }, "setIdx": 0, - "setId": 15, + "setId": 19, "iconIdx": 4 }, { @@ -162,7 +162,7 @@ "name": "calendar" }, "setIdx": 0, - "setId": 15, + "setId": 19, "iconIdx": 5 }, { @@ -189,7 +189,7 @@ "name": "chart-bar" }, "setIdx": 0, - "setId": 15, + "setId": 19, "iconIdx": 6 }, { @@ -214,7 +214,7 @@ "name": "chart-line-details" }, "setIdx": 0, - "setId": 15, + "setId": 19, "iconIdx": 7 }, { @@ -239,7 +239,7 @@ "name": "chart-line" }, "setIdx": 0, - "setId": 15, + "setId": 19, "iconIdx": 8 }, { @@ -265,7 +265,7 @@ "name": "chart-pie" }, "setIdx": 0, - "setId": 15, + "setId": 19, "iconIdx": 9 }, { @@ -291,7 +291,7 @@ "name": "close" }, "setIdx": 0, - "setId": 15, + "setId": 19, "iconIdx": 10 }, { @@ -317,7 +317,7 @@ "name": "collapsed-arrows" }, "setIdx": 0, - "setId": 15, + "setId": 19, "iconIdx": 11 }, { @@ -343,7 +343,7 @@ "name": "configure" }, "setIdx": 0, - "setId": 15, + "setId": 19, "iconIdx": 12 }, { @@ -368,7 +368,7 @@ "name": "datepicker-arr-l" }, "setIdx": 0, - "setId": 15, + "setId": 19, "iconIdx": 13 }, { @@ -393,7 +393,7 @@ "name": "datepicker-arr-r" }, "setIdx": 0, - "setId": 15, + "setId": 19, "iconIdx": 14 }, { @@ -419,7 +419,7 @@ "name": "delete" }, "setIdx": 0, - "setId": 15, + "setId": 19, "iconIdx": 15 }, { @@ -450,7 +450,7 @@ "name": "document" }, "setIdx": 0, - "setId": 15, + "setId": 19, "iconIdx": 16 }, { @@ -478,7 +478,7 @@ "name": "download" }, "setIdx": 0, - "setId": 15, + "setId": 19, "iconIdx": 17 }, { @@ -504,7 +504,7 @@ "name": "drop" }, "setIdx": 0, - "setId": 15, + "setId": 19, "iconIdx": 18 }, { @@ -530,7 +530,7 @@ "name": "ecommerce-abandoned" }, "setIdx": 0, - "setId": 15, + "setId": 19, "iconIdx": 19 }, { @@ -556,7 +556,7 @@ "name": "ecommerce-order" }, "setIdx": 0, - "setId": 15, + "setId": 19, "iconIdx": 20 }, { @@ -581,7 +581,7 @@ "name": "email" }, "setIdx": 0, - "setId": 15, + "setId": 19, "iconIdx": 21 }, { @@ -606,7 +606,7 @@ "name": "error" }, "setIdx": 0, - "setId": 15, + "setId": 19, "iconIdx": 22 }, { @@ -632,7 +632,7 @@ "name": "export" }, "setIdx": 0, - "setId": 15, + "setId": 19, "iconIdx": 23 }, { @@ -657,7 +657,7 @@ "name": "feed" }, "setIdx": 0, - "setId": 15, + "setId": 19, "iconIdx": 24 }, { @@ -683,7 +683,7 @@ "name": "finance" }, "setIdx": 0, - "setId": 15, + "setId": 19, "iconIdx": 25 }, { @@ -708,7 +708,7 @@ "name": "folder-charts" }, "setIdx": 0, - "setId": 15, + "setId": 19, "iconIdx": 26 }, { @@ -733,7 +733,7 @@ "name": "folder" }, "setIdx": 0, - "setId": 15, + "setId": 19, "iconIdx": 27 }, { @@ -761,7 +761,7 @@ "name": "fullscreen" }, "setIdx": 0, - "setId": 15, + "setId": 19, "iconIdx": 28 }, { @@ -788,7 +788,7 @@ "name": "goal" }, "setIdx": 0, - "setId": 15, + "setId": 19, "iconIdx": 29 }, { @@ -813,7 +813,7 @@ "name": "help-alt" }, "setIdx": 0, - "setId": 15, + "setId": 19, "iconIdx": 30 }, { @@ -838,7 +838,7 @@ "name": "help" }, "setIdx": 0, - "setId": 15, + "setId": 19, "iconIdx": 31 }, { @@ -866,7 +866,7 @@ "name": "code" }, "setIdx": 0, - "setId": 15, + "setId": 19, "iconIdx": 32 }, { @@ -891,7 +891,7 @@ "name": "alert" }, "setIdx": 0, - "setId": 15, + "setId": 19, "iconIdx": 33 }, { @@ -918,7 +918,7 @@ "name": "edit" }, "setIdx": 0, - "setId": 15, + "setId": 19, "iconIdx": 34 }, { @@ -945,7 +945,7 @@ "name": "image" }, "setIdx": 0, - "setId": 15, + "setId": 19, "iconIdx": 35 }, { @@ -973,7 +973,7 @@ "name": "info" }, "setIdx": 0, - "setId": 15, + "setId": 19, "iconIdx": 36 }, { @@ -999,7 +999,7 @@ "name": "insights" }, "setIdx": 0, - "setId": 15, + "setId": 19, "iconIdx": 37 }, { @@ -1031,7 +1031,7 @@ "name": "locked-2" }, "setIdx": 0, - "setId": 15, + "setId": 19, "iconIdx": 38 }, { @@ -1056,7 +1056,7 @@ "name": "locked" }, "setIdx": 0, - "setId": 15, + "setId": 19, "iconIdx": 39 }, { @@ -1081,7 +1081,7 @@ "name": "locked-3" }, "setIdx": 0, - "setId": 15, + "setId": 19, "iconIdx": 40 }, { @@ -1106,7 +1106,7 @@ "name": "locked-4" }, "setIdx": 0, - "setId": 15, + "setId": 19, "iconIdx": 41 }, { @@ -1134,7 +1134,7 @@ "name": "maximise" }, "setIdx": 0, - "setId": 15, + "setId": 19, "iconIdx": 42 }, { @@ -1159,7 +1159,7 @@ "name": "minimise" }, "setIdx": 0, - "setId": 15, + "setId": 19, "iconIdx": 43 }, { @@ -1184,7 +1184,7 @@ "name": "minus" }, "setIdx": 0, - "setId": 15, + "setId": 19, "iconIdx": 44 }, { @@ -1209,7 +1209,7 @@ "name": "newtab" }, "setIdx": 0, - "setId": 15, + "setId": 19, "iconIdx": 45 }, { @@ -1234,7 +1234,7 @@ "name": "ok" }, "setIdx": 0, - "setId": 15, + "setId": 19, "iconIdx": 46 }, { @@ -1259,7 +1259,7 @@ "name": "open-source" }, "setIdx": 0, - "setId": 15, + "setId": 19, "iconIdx": 47 }, { @@ -1284,7 +1284,7 @@ "name": "add" }, "setIdx": 0, - "setId": 15, + "setId": 19, "iconIdx": 48 }, { @@ -1309,7 +1309,7 @@ "name": "puzzle" }, "setIdx": 0, - "setId": 15, + "setId": 19, "iconIdx": 49 }, { @@ -1334,7 +1334,7 @@ "name": "refresh" }, "setIdx": 0, - "setId": 15, + "setId": 19, "iconIdx": 50 }, { @@ -1360,7 +1360,7 @@ "name": "reload" }, "setIdx": 0, - "setId": 15, + "setId": 19, "iconIdx": 51 }, { @@ -1386,7 +1386,7 @@ "name": "search" }, "setIdx": 0, - "setId": 15, + "setId": 19, "iconIdx": 52 }, { @@ -1416,7 +1416,7 @@ "name": "users" }, "setIdx": 0, - "setId": 15, + "setId": 19, "iconIdx": 53 }, { @@ -1445,7 +1445,7 @@ "name": "server-alt" }, "setIdx": 0, - "setId": 15, + "setId": 19, "iconIdx": 54 }, { @@ -1474,7 +1474,7 @@ "name": "server" }, "setIdx": 0, - "setId": 15, + "setId": 19, "iconIdx": 55 }, { @@ -1499,7 +1499,7 @@ "name": "hide" }, "setIdx": 0, - "setId": 15, + "setId": 19, "iconIdx": 56 }, { @@ -1525,7 +1525,7 @@ "name": "show" }, "setIdx": 0, - "setId": 15, + "setId": 19, "iconIdx": 57 }, { @@ -1550,7 +1550,7 @@ "name": "arrow-top" }, "setIdx": 0, - "setId": 15, + "setId": 19, "iconIdx": 58 }, { @@ -1575,7 +1575,7 @@ "name": "arrow-bottom" }, "setIdx": 0, - "setId": 15, + "setId": 19, "iconIdx": 59 }, { @@ -1600,7 +1600,7 @@ "name": "star" }, "setIdx": 0, - "setId": 15, + "setId": 19, "iconIdx": 60 }, { @@ -1625,7 +1625,7 @@ "name": "success" }, "setIdx": 0, - "setId": 15, + "setId": 19, "iconIdx": 61 }, { @@ -1658,7 +1658,7 @@ "name": "table-more" }, "setIdx": 0, - "setId": 15, + "setId": 19, "iconIdx": 62 }, { @@ -1689,7 +1689,7 @@ "name": "table" }, "setIdx": 0, - "setId": 15, + "setId": 19, "iconIdx": 63 }, { @@ -1715,7 +1715,7 @@ "name": "tag-cloud" }, "setIdx": 0, - "setId": 15, + "setId": 19, "iconIdx": 64 }, { @@ -1740,7 +1740,7 @@ "name": "user" }, "setIdx": 0, - "setId": 15, + "setId": 19, "iconIdx": 65 }, { @@ -1768,37 +1768,12 @@ "name": "user-add" }, "setIdx": 0, - "setId": 15, + "setId": 19, "iconIdx": 66 }, { "icon": { "paths": [ - "M512 0c-282.752 0-512 229.248-512 512s229.248 512 512 512 512-229.248 512-512-229.248-512-512-512zM384 735.36v-446.72l320 222.656-320 224.064z" - ], - "attrs": [], - "isMulticolor": false, - "isMulticolor2": false, - "tags": [ - "ico-play" - ], - "grid": 0 - }, - "attrs": [], - "properties": { - "order": 174, - "id": 67, - "prevSize": 32, - "code": 58947, - "name": "play" - }, - "setIdx": 0, - "setId": 15, - "iconIdx": 67 - }, - { - "icon": { - "paths": [ "M832 192c35.264 0 64 28.736 64 64v512c0 35.264-28.736 64-64 64h-640c-35.264 0-64-28.736-64-64v-512c0-35.264 28.736-64 64-64h640zM832 64h-640c-106.048 0-192 85.952-192 192v512c0 106.048 85.952 192 192 192h640c106.048 0 192-85.952 192-192v-512c0-106.048-85.952-192-192-192v0z", "M570.752 378.752c0 67.776-54.976 170.752-122.752 170.752s-122.752-102.976-122.752-170.752 54.976-122.752 122.752-122.752 122.752 54.976 122.752 122.752z", "M679.36 768c13.248 0 24.64-11.84 24.64-26.752 0-0.064 0-0.192 0-0.256 0-108.224-114.624-195.968-256-195.968s-256 87.744-256 195.968c0 0.064 0 0.192 0 0.256 0 14.912 11.392 26.752 24.64 26.752h462.72z", @@ -1823,7 +1798,7 @@ "name": "visitor-profile" }, "setIdx": 0, - "setId": 15, + "setId": 19, "iconIdx": 68 }, { @@ -1851,7 +1826,7 @@ "name": "zoom-in" }, "setIdx": 0, - "setId": 15, + "setId": 19, "iconIdx": 69 }, { @@ -1878,7 +1853,7 @@ "name": "zoom-out" }, "setIdx": 0, - "setId": 15, + "setId": 19, "iconIdx": 70 }, { @@ -1906,7 +1881,7 @@ "name": "sign-out" }, "setIdx": 0, - "setId": 15, + "setId": 19, "iconIdx": 71 }, { @@ -1933,7 +1908,7 @@ "name": "sign-in" }, "setIdx": 0, - "setId": 15, + "setId": 19, "iconIdx": 72 }, { @@ -1960,7 +1935,7 @@ "name": "menu-hamburger" }, "setIdx": 0, - "setId": 15, + "setId": 19, "iconIdx": 73 }, { @@ -1987,7 +1962,7 @@ "name": "menu-horiz" }, "setIdx": 0, - "setId": 15, + "setId": 19, "iconIdx": 74 }, { @@ -2014,7 +1989,7 @@ "name": "menu-verti" }, "setIdx": 0, - "setId": 15, + "setId": 19, "iconIdx": 75 }, { @@ -2041,7 +2016,7 @@ "name": "admin-administration" }, "setIdx": 0, - "setId": 15, + "setId": 19, "iconIdx": 76 }, { @@ -2068,7 +2043,7 @@ "name": "admin-development" }, "setIdx": 0, - "setId": 15, + "setId": 19, "iconIdx": 77 }, { @@ -2095,7 +2070,7 @@ "name": "admin-diagnostic" }, "setIdx": 0, - "setId": 15, + "setId": 19, "iconIdx": 78 }, { @@ -2122,7 +2097,7 @@ "name": "admin-platform" }, "setIdx": 0, - "setId": 15, + "setId": 19, "iconIdx": 79 }, { @@ -2149,7 +2124,7 @@ "name": "admin-settings" }, "setIdx": 0, - "setId": 15, + "setId": 19, "iconIdx": 80 }, { @@ -2176,7 +2151,7 @@ "name": "reporting-actions" }, "setIdx": 0, - "setId": 15, + "setId": 19, "iconIdx": 81 }, { @@ -2203,7 +2178,7 @@ "name": "reporting-dashboard" }, "setIdx": 0, - "setId": 15, + "setId": 19, "iconIdx": 82 }, { @@ -2230,7 +2205,7 @@ "name": "reporting-ecommerce" }, "setIdx": 0, - "setId": 15, + "setId": 19, "iconIdx": 83 }, { @@ -2257,7 +2232,7 @@ "name": "reporting-goal" }, "setIdx": 0, - "setId": 15, + "setId": 19, "iconIdx": 84 }, { @@ -2284,7 +2259,7 @@ "name": "reporting-referer" }, "setIdx": 0, - "setId": 15, + "setId": 19, "iconIdx": 85 }, { @@ -2311,7 +2286,7 @@ "name": "reporting-visitors" }, "setIdx": 0, - "setId": 15, + "setId": 19, "iconIdx": 86 }, { @@ -2338,7 +2313,7 @@ "name": "user-manage" }, "setIdx": 0, - "setId": 15, + "setId": 19, "iconIdx": 87 }, { @@ -2365,7 +2340,7 @@ "name": "user-personal" }, "setIdx": 0, - "setId": 15, + "setId": 19, "iconIdx": 88 }, { @@ -2392,12 +2367,39 @@ "name": "user-platform" }, "setIdx": 0, - "setId": 15, + "setId": 19, "iconIdx": 89 }, { "icon": { "paths": [ + "M742.038 374.408v-92.444h-460.074v92.444h460.074zM742.038 557.148v-90.296h-460.074v90.296h460.074zM604.444 742.038v-92.444h-322.482v92.444h322.482zM512 99.222c-25.798 0-45.148 19.348-45.148 45.148s19.348 47.298 45.148 47.298 45.148-21.498 45.148-47.298-19.348-45.148-45.148-45.148zM832.332 99.222c49.448 0 92.444 42.998 92.444 92.444v640.666c0 49.448-42.998 92.444-92.444 92.444h-640.666c-49.448 0-92.444-42.998-92.444-92.444v-640.666c0-49.448 42.998-92.444 92.444-92.444h191.34c19.348-53.748 68.796-92.444 128.992-92.444s109.644 38.698 128.992 92.444h191.34z" + ], + "attrs": [], + "isMulticolor": false, + "isMulticolor2": false, + "tags": [ + "assignment" + ], + "defaultCode": 59485, + "grid": 32 + }, + "attrs": [], + "properties": { + "order": 210, + "ligatures": "assignment", + "id": 0, + "prevSize": 24, + "code": 59485, + "name": "assignment" + }, + "setIdx": 1, + "setId": 18, + "iconIdx": 0 + }, + { + "icon": { + "paths": [ "M562.479 358.16v-103.361h-100.958v103.361h100.958zM562.479 769.202v-307.681h-100.958v307.681h100.958zM512 0c283.643 0 512 228.357 512 512s-228.357 512-512 512-512-228.357-512-512 228.357-512 512-512z" ], "attrs": [], @@ -2418,8 +2420,8 @@ "code": 59534, "name": "info2" }, - "setIdx": 1, - "setId": 14, + "setIdx": 2, + "setId": 17, "iconIdx": 0 }, { @@ -2445,8 +2447,8 @@ "code": 59535, "name": "info_outline" }, - "setIdx": 1, - "setId": 14, + "setIdx": 2, + "setId": 17, "iconIdx": 1 }, { @@ -2472,36 +2474,225 @@ "code": 59576, "name": "settings" }, - "setIdx": 1, - "setId": 14, + "setIdx": 2, + "setId": 17, "iconIdx": 2 }, { "icon": { "paths": [ - "M742.038 374.408v-92.444h-460.074v92.444h460.074zM742.038 557.148v-90.296h-460.074v90.296h460.074zM604.444 742.038v-92.444h-322.482v92.444h322.482zM512 99.222c-25.798 0-45.148 19.348-45.148 45.148s19.348 47.298 45.148 47.298 45.148-21.498 45.148-47.298-19.348-45.148-45.148-45.148zM832.332 99.222c49.448 0 92.444 42.998 92.444 92.444v640.666c0 49.448-42.998 92.444-92.444 92.444h-640.666c-49.448 0-92.444-42.998-92.444-92.444v-640.666c0-49.448 42.998-92.444 92.444-92.444h191.34c19.348-53.748 68.796-92.444 128.992-92.444s109.644 38.698 128.992 92.444h191.34z" + "M557.5 234.667l394.333 277.333-394.333 277.333v-554.667zM141.5 789.333v-554.667l394.333 277.333z" ], "attrs": [], "isMulticolor": false, "isMulticolor2": false, "tags": [ - "assignment" + "fast_forward" ], - "defaultCode": 59485, - "grid": 32 + "defaultCode": 57375, + "grid": 24 }, "attrs": [], "properties": { - "order": 210, - "ligatures": "assignment", - "id": 3, + "order": 215, + "ligatures": "fast_forward", + "id": 267, "prevSize": 24, - "code": 59485, - "name": "assignment" + "code": 57375, + "name": "fast-forward" }, - "setIdx": 1, - "setId": 14, - "iconIdx": 3 + "setIdx": 15, + "setId": 4, + "iconIdx": 267 + }, + { + "icon": { + "paths": [ + "M488.167 512l394.333-277.333v554.667zM466.5 789.333l-394.333-277.333 394.333-277.333v554.667z" + ], + "attrs": [], + "isMulticolor": false, + "isMulticolor2": false, + "tags": [ + "fast_rewind" + ], + "defaultCode": 57376, + "grid": 24 + }, + "attrs": [], + "properties": { + "order": 218, + "ligatures": "fast_rewind", + "id": 268, + "prevSize": 24, + "code": 57376, + "name": "fast-rewind" + }, + "setIdx": 15, + "setId": 4, + "iconIdx": 268 + }, + { + "icon": { + "paths": [ + "M665.84 716.319v-408.639h-103.362v408.639h103.362zM461.521 716.319v-408.639h-103.362v408.639h103.362zM512 0c283.643 0 512 228.357 512 512s-228.357 512-512 512-512-228.357-512-512 228.357-512 512-512z" + ], + "attrs": [], + "isMulticolor": false, + "isMulticolor2": false, + "tags": [ + "pause_circle_filled" + ], + "defaultCode": 57397, + "grid": 24 + }, + "attrs": [], + "properties": { + "order": 225, + "ligatures": "pause_circle_filled", + "id": 546, + "prevSize": 24, + "code": 57397, + "name": "pause" + }, + "setIdx": 15, + "setId": 4, + "iconIdx": 546 + }, + { + "icon": { + "paths": [ + "M408.639 742.76l307.681-230.76-307.681-230.76v461.521zM512 0c283.643 0 512 228.357 512 512s-228.357 512-512 512-512-228.357-512-512 228.357-512 512-512z" + ], + "attrs": [], + "isMulticolor": false, + "isMulticolor2": false, + "tags": [ + "play_circle_filled" + ], + "defaultCode": 57400, + "grid": 24 + }, + "attrs": [], + "properties": { + "order": 234, + "ligatures": "play_circle_filled", + "id": 588, + "prevSize": 24, + "code": 57400, + "name": "play" + }, + "setIdx": 15, + "setId": 4, + "iconIdx": 588 + }, + { + "icon": { + "paths": [ + "M512 229.152c206.638 0 375.906 167.070 375.906 373.708s-169.268 375.906-375.906 375.906-375.906-169.268-375.906-375.906h94.525c0 156.079 125.3 281.38 281.38 281.38s281.38-125.3 281.38-281.38-125.3-281.38-281.38-281.38v189.053l-235.216-235.216 235.216-235.216v189.053z" + ], + "attrs": [], + "isMulticolor": false, + "isMulticolor2": false, + "tags": [ + "replay" + ], + "defaultCode": 57410, + "grid": 24 + }, + "attrs": [], + "properties": { + "order": 219, + "ligatures": "replay", + "id": 625, + "prevSize": 24, + "code": 57410, + "name": "replay" + }, + "setIdx": 15, + "setId": 4, + "iconIdx": 625 + }, + { + "icon": { + "paths": [ + "M710.334 213.334h100.334v597.334h-100.334v-597.334zM213.334 810.666v-597.334l422.334 298.666z" + ], + "attrs": [], + "isMulticolor": false, + "isMulticolor2": false, + "tags": [ + "skip_next" + ], + "defaultCode": 57412, + "grid": 24 + }, + "attrs": [], + "properties": { + "order": 216, + "ligatures": "skip_next", + "id": 697, + "prevSize": 24, + "code": 57412, + "name": "skip-next" + }, + "setIdx": 15, + "setId": 4, + "iconIdx": 697 + }, + { + "icon": { + "paths": [ + "M388.332 512l422.33-298.668v597.33zM213.332 213.332h100.331v597.33h-100.331v-597.33z" + ], + "attrs": [], + "isMulticolor": false, + "isMulticolor2": false, + "tags": [ + "skip_previous" + ], + "defaultCode": 57413, + "grid": 24 + }, + "attrs": [], + "properties": { + "order": 217, + "ligatures": "skip_previous", + "id": 698, + "prevSize": 24, + "code": 57413, + "name": "skip_previous" + }, + "setIdx": 15, + "setId": 4, + "iconIdx": 698 + }, + { + "icon": { + "paths": [ + "M213.334 213.334h597.334v597.334h-597.334v-597.334z" + ], + "attrs": [], + "isMulticolor": false, + "isMulticolor2": false, + "tags": [ + "stop" + ], + "defaultCode": 57415, + "grid": 24 + }, + "attrs": [], + "properties": { + "order": 228, + "ligatures": "stop", + "id": 720, + "prevSize": 24, + "code": 57415, + "name": "stop" + }, + "setIdx": 15, + "setId": 4, + "iconIdx": 720 }, { "icon": { @@ -2527,8 +2718,8 @@ "prevSize": 32, "code": 59995 }, - "setIdx": 2, - "setId": 13, + "setIdx": 3, + "setId": 16, "iconIdx": 0 }, { @@ -2536,6 +2727,9 @@ "paths": [ "M832 64h-640l-192 192v672c0 17.674 14.326 32 32 32h960c17.672 0 32-14.326 32-32v-672l-192-192zM512 832l-320-256h192v-192h256v192h192l-320 256zM154.51 192l64-64h586.978l64 64h-714.978z" ], + "attrs": [], + "isMulticolor": false, + "isMulticolor2": false, "tags": [ "box-add", "box", @@ -2545,27 +2739,29 @@ "archive" ], "defaultCode": 59742, - "grid": 16, - "attrs": [] + "grid": 16 }, "attrs": [], "properties": { "ligatures": "box-add, box3", "name": "archive", "order": 211, - "id": 95, + "id": 1, "prevSize": 32, "code": 59742 }, - "setIdx": 14, - "setId": 1, - "iconIdx": 94 + "setIdx": 3, + "setId": 16, + "iconIdx": 1 }, { "icon": { "paths": [ "M956.29 804.482l-316.29-527.024v-213.458h32c17.6 0 32-14.4 32-32s-14.4-32-32-32h-320c-17.6 0-32 14.4-32 32s14.4 32 32 32h32v213.458l-316.288 527.024c-72.442 120.734-16.512 219.518 124.288 219.518h640c140.8 0 196.73-98.784 124.29-219.518zM241.038 640l206.962-344.938v-231.062h128v231.062l206.964 344.938h-541.926z" ], + "attrs": [], + "isMulticolor": false, + "isMulticolor2": false, "tags": [ "lab", "beta", @@ -2574,21 +2770,20 @@ "experiment" ], "defaultCode": 59818, - "grid": 16, - "attrs": [] + "grid": 16 }, "attrs": [], "properties": { "ligatures": "lab, beta", "name": "lab", "order": 212, - "id": 171, + "id": 2, "prevSize": 32, "code": 59818 }, - "setIdx": 14, - "setId": 1, - "iconIdx": 170 + "setIdx": 3, + "setId": 16, + "iconIdx": 2 } ], "height": 1024, diff --git a/plugins/Morpheus/icons b/plugins/Morpheus/icons -Subproject 3937b5daef048afb3446fbbeb6cdca5b9f6d6f5 +Subproject 1b5597760791b2b305e6b9c26ca1a6b8b15ee0e diff --git a/plugins/Morpheus/stylesheets/base/icons.css b/plugins/Morpheus/stylesheets/base/icons.css index 2c19c30050..219e355d78 100644 --- a/plugins/Morpheus/stylesheets/base/icons.css +++ b/plugins/Morpheus/stylesheets/base/icons.css @@ -236,7 +236,7 @@ content: "\e641"; } .icon-play:before { - content: "\e643"; + content: "\e038"; } .icon-visitor-profile:before { content: "\e644"; @@ -315,4 +315,25 @@ } .icon-archive:before { content: "\e95e"; +} +.icon-fast-forward:before { + content: "\e01f"; +} +.icon-fast-rewind:before { + content: "\e020"; +} +.icon-pause:before { + content: "\e035"; +} +.icon-replay:before { + content: "\e042"; +} +.icon-skip-next:before { + content: "\e044"; +} +.icon-skip-previous:before { + content: "\e045"; +} +.icon-stop:before { + content: "\e047"; }
\ No newline at end of file diff --git a/plugins/Morpheus/templates/demo.twig b/plugins/Morpheus/templates/demo.twig index 621a8a6fdc..e1bb02ee60 100644 --- a/plugins/Morpheus/templates/demo.twig +++ b/plugins/Morpheus/templates/demo.twig @@ -706,6 +706,13 @@ 'server-alt', 'tag-cloud', 'play', + 'pause', + 'replay', + 'stop', + 'fast-forward', + 'fast-rewind', + 'skip-next', + 'skip-previous', 'sign-in', 'sign-out', 'settings' diff --git a/plugins/SEO/Metric/DomainAge.php b/plugins/SEO/Metric/DomainAge.php index e08dc3fa98..54038a7dae 100644 --- a/plugins/SEO/Metric/DomainAge.php +++ b/plugins/SEO/Metric/DomainAge.php @@ -74,7 +74,7 @@ class DomainAge implements MetricsProvider */ private function getAgeArchiveOrg($domain) { - $data = $this->getUrl('http://wayback.archive.org/web/*/' . urlencode($domain)); + $data = $this->getUrl('https://wayback.archive.org/web/*/' . urlencode($domain)); preg_match('#<a href=\"([^>]*)' . preg_quote($domain) . '/\">([^<]*)<\/a>#', $data, $p); if (!empty($p[2])) { $value = strtotime($p[2]); @@ -94,7 +94,7 @@ class DomainAge implements MetricsProvider */ private function getAgeWhoIs($domain) { - $data = $this->getUrl('http://www.who.is/whois/' . urlencode($domain)); + $data = $this->getUrl('https://www.who.is/whois/' . urlencode($domain)); preg_match('#(?:Creation Date|Created On|created|Registered on)\.*:\s*([ \ta-z0-9\/\-:\.]+)#si', $data, $p); if (!empty($p[1])) { $value = strtotime(trim($p[1])); @@ -114,7 +114,7 @@ class DomainAge implements MetricsProvider */ private function getAgeWhoisCom($domain) { - $data = $this->getUrl('http://www.whois.com/whois/' . urlencode($domain)); + $data = $this->getUrl('https://www.whois.com/whois/' . urlencode($domain)); preg_match('#(?:Creation Date|Created On|created):\s*([ \ta-z0-9\/\-:\.]+)#si', $data, $p); if (!empty($p[1])) { $value = strtotime(trim($p[1])); @@ -129,10 +129,21 @@ class DomainAge implements MetricsProvider private function getUrl($url) { try { - return str_replace(' ', ' ', Http::sendHttpRequest($url, $timeout = 10, @$_SERVER['HTTP_USER_AGENT'])); + return $this->getHttpResponse($url); + } catch (\Exception $e) { + } + + $httpUrl = str_replace('https://', 'http://', $url); + try { + return $this->getHttpResponse($httpUrl); } catch (\Exception $e) { $this->logger->warning('Error while getting SEO stats (domain age): {message}', array('message' => $e->getMessage())); return ''; } } + + private function getHttpResponse($url) + { + return str_replace(' ', ' ', Http::sendHttpRequest($url, $timeout = 10, @$_SERVER['HTTP_USER_AGENT'])); + } } diff --git a/plugins/ScheduledReports/API.php b/plugins/ScheduledReports/API.php index 35b3f078b0..7674634120 100644 --- a/plugins/ScheduledReports/API.php +++ b/plugins/ScheduledReports/API.php @@ -478,7 +478,7 @@ class API extends \Piwik\Plugin\API $reportRenderer->setReport($report); // render report - $description = str_replace(array("\r", "\n"), ' ', $report['description']); + $description = str_replace(array("\r", "\n"), ' ', Common::unsanitizeInputValue($report['description'])); list($reportSubject, $reportTitle) = self::getReportSubjectAndReportTitle(Common::unsanitizeInputValue(Site::getNameFor($idSite)), $report['reports']); diff --git a/plugins/ScheduledReports/angularjs/manage-scheduled-report/manage-scheduled-report.controller.js b/plugins/ScheduledReports/angularjs/manage-scheduled-report/manage-scheduled-report.controller.js index afc2932898..35a5223c32 100644 --- a/plugins/ScheduledReports/angularjs/manage-scheduled-report/manage-scheduled-report.controller.js +++ b/plugins/ScheduledReports/angularjs/manage-scheduled-report/manage-scheduled-report.controller.js @@ -133,7 +133,7 @@ apiParameters.reportFormat = this.report['format' + this.report.type]; var period = self.report.period; - var hour = adjustHourToTimezone(this.report.hour, timeZoneDifference); + var hour = adjustHourToTimezone(this.report.hour, -timeZoneDifference); var reports = []; $('[name=reportsList].' + apiParameters.reportType + ' input:checked').each(function () { diff --git a/plugins/UserCountry/GeoIPAutoUpdater.php b/plugins/UserCountry/GeoIPAutoUpdater.php index 1359c8ac2e..77636afdd1 100755 --- a/plugins/UserCountry/GeoIPAutoUpdater.php +++ b/plugins/UserCountry/GeoIPAutoUpdater.php @@ -485,6 +485,7 @@ class GeoIPAutoUpdater extends Task if ($ext != 'tar.gz' && $ext != 'gz' && $ext != 'dat.gz' + && $ext != 'mmdb.gz' ) { throw new \Exception(Piwik::translate('UserCountry_UnsupportedArchiveType', "'$ext'")); } diff --git a/plugins/UserCountry/stylesheets/userCountry.less b/plugins/UserCountry/stylesheets/userCountry.less index c035ece395..147666fc24 100755 --- a/plugins/UserCountry/stylesheets/userCountry.less +++ b/plugins/UserCountry/stylesheets/userCountry.less @@ -1,5 +1,5 @@ #widgetUserCountrygetRegion, #widgetUserCountrygetCountry, #widgetUserCountrygetCity { - .dataTable .label img { + .dataTable .label > img { border: 1px solid lightgray; box-sizing: content-box; margin-top: -1px; diff --git a/plugins/UsersManager/angularjs/manage-users/manage-users.controller.js b/plugins/UsersManager/angularjs/manage-users/manage-users.controller.js index a10d331e4f..78f776de26 100644 --- a/plugins/UsersManager/angularjs/manage-users/manage-users.controller.js +++ b/plugins/UsersManager/angularjs/manage-users/manage-users.controller.js @@ -163,6 +163,7 @@ piwikHelper.hideAjaxError(); $(this).parents('tr').remove(); $('.add-user').toggle(); + self.showCreateUser = true; }); }; diff --git a/plugins/VisitTime/API.php b/plugins/VisitTime/API.php index f706860b4e..28b73b99a4 100644 --- a/plugins/VisitTime/API.php +++ b/plugins/VisitTime/API.php @@ -54,7 +54,13 @@ class API extends \Piwik\Plugin\API $table->filter('Piwik\Plugins\VisitTime\DataTable\Filter\AddSegmentByLabelInUTC', array($timezone, $period, $date)); if ($hideFutureHoursWhenToday) { - $table = $this->removeHoursInFuture($table, $idSite, $period, $date); + if ($table instanceof DataTable\Map) { + foreach ($table->getDataTables() as &$dataTable) { + $dataTable = $this->removeHoursInFuture($dataTable, $idSite, $period, $date); + } + } else { + $table = $this->removeHoursInFuture($table, $idSite, $period, $date); + } } return $table; diff --git a/tests/PHPUnit/Framework/TestingEnvironmentManipulator.php b/tests/PHPUnit/Framework/TestingEnvironmentManipulator.php index df6a011af5..1aa1a74de8 100644 --- a/tests/PHPUnit/Framework/TestingEnvironmentManipulator.php +++ b/tests/PHPUnit/Framework/TestingEnvironmentManipulator.php @@ -213,21 +213,46 @@ class TestingEnvironmentManipulator implements EnvironmentManipulator Plugin::getPluginNameFromNamespace(get_called_class()) ) ); + foreach ($extraPlugins as $pluginName) { if (empty($pluginName)) { continue; } - if (in_array($pluginName, $plugins)) { - continue; + $plugins = $this->getPluginAndRequiredPlugins($pluginName, $plugins); + } + + return $plugins; + } + + private function getPluginAndRequiredPlugins($pluginName, $plugins) + { + $pluginJsonPath = $this->makePathToPluginJson($pluginName); + + if (file_exists($pluginJsonPath)) { + $pluginJson = json_decode(trim(file_get_contents($pluginJsonPath)), true); + + if (!empty($pluginJson['require'])) { + foreach ($pluginJson['require'] as $possiblePluginName => $requiredVersion) { + if (file_exists($this->makePathToPluginJson($possiblePluginName))) { + $plugins = $this->getPluginAndRequiredPlugins($possiblePluginName, $plugins); + } + } } + } + if (!in_array($pluginName, $plugins)) { $plugins[] = $pluginName; } return $plugins; } + private function makePathToPluginJson($pluginName) + { + return Plugin\Manager::getPluginsDirectory() . $pluginName . '/' . Plugin\MetadataLoader::PLUGIN_JSON_FILENAME; + } + private function classExists($klass) { if (class_exists($klass)) { diff --git a/tests/PHPUnit/Framework/TestingEnvironmentVariables.php b/tests/PHPUnit/Framework/TestingEnvironmentVariables.php index 60942d2510..596daa82f2 100644 --- a/tests/PHPUnit/Framework/TestingEnvironmentVariables.php +++ b/tests/PHPUnit/Framework/TestingEnvironmentVariables.php @@ -104,6 +104,7 @@ class TestingEnvironmentVariables $disabledPlugins = $pluginList->getCorePluginsDisabledByDefault(); $disabledPlugins[] = 'LoginHttpAuth'; + $disabledPlugins[] = 'LoginLdap'; $disabledPlugins[] = 'ExampleVisualization'; $disabledPlugins = array_diff($disabledPlugins, array( diff --git a/tests/PHPUnit/System/expected/test_ImportLogs__DevicesDetection.getBrand_month.xml b/tests/PHPUnit/System/expected/test_ImportLogs__DevicesDetection.getBrand_month.xml index 59e8831abf..2d1a7bd095 100644 --- a/tests/PHPUnit/System/expected/test_ImportLogs__DevicesDetection.getBrand_month.xml +++ b/tests/PHPUnit/System/expected/test_ImportLogs__DevicesDetection.getBrand_month.xml @@ -19,7 +19,7 @@ <sum_daily_nb_uniq_visitors>33</sum_daily_nb_uniq_visitors> <sum_daily_nb_users>2</sum_daily_nb_users> <nb_visits_converted>0</nb_visits_converted> - <logo>plugins/DevicesDetection/images/brand/Unknown.png</logo> + <logo>plugins/Morpheus/icons/dist/brand/Unknown.png</logo> <segment>deviceBrand==Unknown</segment> </row> <row> @@ -40,7 +40,7 @@ <revenue>10</revenue> <sum_daily_nb_uniq_visitors>2</sum_daily_nb_uniq_visitors> <sum_daily_nb_users>0</sum_daily_nb_users> - <logo>plugins/DevicesDetection/images/brand/HTC.png</logo> + <logo>plugins/Morpheus/icons/dist/brand/HTC.png</logo> <segment>deviceBrand==HTC</segment> </row> <row> @@ -61,7 +61,7 @@ <revenue>5</revenue> <sum_daily_nb_uniq_visitors>1</sum_daily_nb_uniq_visitors> <sum_daily_nb_users>0</sum_daily_nb_users> - <logo>plugins/DevicesDetection/images/brand/Apple.png</logo> + <logo>plugins/Morpheus/icons/dist/brand/Apple.png</logo> <segment>deviceBrand==Apple</segment> </row> <row> @@ -82,7 +82,7 @@ <revenue>5</revenue> <sum_daily_nb_uniq_visitors>1</sum_daily_nb_uniq_visitors> <sum_daily_nb_users>1</sum_daily_nb_users> - <logo>plugins/DevicesDetection/images/brand/Samsung.png</logo> + <logo>plugins/Morpheus/icons/dist/brand/Samsung.png</logo> <segment>deviceBrand==Samsung</segment> </row> </result>
\ No newline at end of file diff --git a/tests/PHPUnit/System/expected/test_OneVisitorTwoVisits__DevicesDetection.getBrand_day.xml b/tests/PHPUnit/System/expected/test_OneVisitorTwoVisits__DevicesDetection.getBrand_day.xml index 13a8112681..da99abbc01 100644 --- a/tests/PHPUnit/System/expected/test_OneVisitorTwoVisits__DevicesDetection.getBrand_day.xml +++ b/tests/PHPUnit/System/expected/test_OneVisitorTwoVisits__DevicesDetection.getBrand_day.xml @@ -22,7 +22,7 @@ </goals> <nb_conversions>2</nb_conversions> <revenue>43</revenue> - <logo>plugins/DevicesDetection/images/brand/Unknown.ico</logo> + <logo>plugins/Morpheus/icons/dist/brand/Unknown.ico</logo> <segment>deviceBrand==Unknown</segment> </row> </result>
\ No newline at end of file diff --git a/tests/PHPUnit/System/expected/test_OneVisitorTwoVisits_withCookieSupport__DevicesDetection.getBrand_day.xml b/tests/PHPUnit/System/expected/test_OneVisitorTwoVisits_withCookieSupport__DevicesDetection.getBrand_day.xml index f03b829dbf..e498a16332 100644 --- a/tests/PHPUnit/System/expected/test_OneVisitorTwoVisits_withCookieSupport__DevicesDetection.getBrand_day.xml +++ b/tests/PHPUnit/System/expected/test_OneVisitorTwoVisits_withCookieSupport__DevicesDetection.getBrand_day.xml @@ -23,7 +23,7 @@ </goals> <nb_conversions>2</nb_conversions> <revenue>43</revenue> - <logo>plugins/DevicesDetection/images/brand/Unknown.png</logo> + <logo>plugins/Morpheus/icons/dist/brand/Unknown.png</logo> <segment>deviceBrand==Unknown</segment> </row> </result>
\ No newline at end of file diff --git a/tests/PHPUnit/System/expected/test_TwoVisitors_twoWebsites_differentDays_scheduled_report_in_html_tables_and_graph__ScheduledReports.generateReport_month.original.html b/tests/PHPUnit/System/expected/test_TwoVisitors_twoWebsites_differentDays_scheduled_report_in_html_tables_and_graph__ScheduledReports.generateReport_month.original.html index 0bb9cceec4..f94bb1df2f 100644 --- a/tests/PHPUnit/System/expected/test_TwoVisitors_twoWebsites_differentDays_scheduled_report_in_html_tables_and_graph__ScheduledReports.generateReport_month.original.html +++ b/tests/PHPUnit/System/expected/test_TwoVisitors_twoWebsites_differentDays_scheduled_report_in_html_tables_and_graph__ScheduledReports.generateReport_month.original.html @@ -563,7 +563,7 @@ </h2> <img alt="" - src="data:image/png;base64,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" + src="data:image/png;base64,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" height="200" width="700" margin="0 auto"/> @@ -762,7 +762,7 @@ <tr style=";"> <td style="padding:17px 15px;;border-bottom:1px solid rgb(231,231,231);font-size: 15px;padding:17px 15px;color:#0d0d0d;font-family:-apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen-Sans, Cantarell, 'Helvetica Neue', sans-serif;"> - <img height="16px" src='http://example.com/piwik/tests/PHPUnit/proxy/plugins/DevicesDetection/images/brand/Unknown.png'> + <img height="16px" src='http://example.com/piwik/tests/PHPUnit/proxy/plugins/Morpheus/icons/dist/brand/Unknown.png'> Unknown </td> <td style="padding:17px 15px; text-align:right;;border-bottom:1px solid rgb(231,231,231);font-size: 15px;padding:17px 15px;color:#0d0d0d;font-family:-apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen-Sans, Cantarell, 'Helvetica Neue', sans-serif;"> @@ -887,7 +887,7 @@ </h2> <img alt="" - src="data:image/png;base64,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" + src="data:image/png;base64,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" height="200" width="700" margin="0 auto"/> @@ -982,7 +982,7 @@ </h2> <img alt="" - src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAArwAAADICAIAAACF9KXqAAAgAElEQVR4nO3deXRdV30v8O/e55w760qWZFnymFh2PGWExAkkgYzgQAKEoeQ1DGkLpWlL32PoSktZZVHa14amlEKhzORRphAIbQohIVMhEBKCkziT40GOR82zdKdz9t6/98d1VGFL8o0ta7j6ftZZWlf37nvO2XfZ93y1p6NEBERERETHomf7BIiIiGh+YGggIiKiijA0EBERUUUYGoiIiKgiDA1ERERUEYYGIiIiqghDw9zS2to62ZMTvjTFu4iIiKYXQ8O80dbWdsyXmB6IiOjkYWiYW9ra2o648Le2tk4RF4iIiGaMP9snsBD936/+5ohnPvIH5x7zXWPpYXyqGHtmLG2MvXpE/mDyICKiE8TQMAt2HRiOomjs1yAIDh06tGzZskree0TDw/hfyylhfFfFZCWJiIiOA7snZkd+HADt7e1jL41vITjmlb7yHMDEQEREJ4ihYZ4pR4pKBjxWXpKIiKgS7J6Yf8aPbKikHaKSkkRERMfE0DA7UqnUFK+O9VAcc5plJSMVKi9JREQ0BYaGWXDtZa3thw4d33srv/YzJRAR0fRiaJgFb3jVKmDV8b136omU41/llEsiIppeSkRm+xyIiIhoHuDsCSIiIqoIQwMRERFVhKGBiIiIKsLQQERERBXh7IlpxgkLRCcbpxMTTbsKL14MDdOJ94giOtm4MjrRtKv84sXuCSKaNxjEiWYXQwMRzQ9MDESzjt0TRDQPMDEQnTyVryDM0EBE88P4LzVmCKJpVPmYBoYGIpoHOMSYaC7gmAYiIiKqCFsaphNvLElERPNO5Rcv3uWSiIiIKsLuCSIiIqoIQwMRERFVhKGBiIiIKsLQQERERBVhaCAiIqKKMDQQERFRRRgaToqtW7fO9ikQVaf29vb29vbZPgui6nTMixdDAxEREVWEoYGIiIgqwtBAREREFWFoICIioorwhlUnS9uBwdk+BaIq1NOTA1Cw/P9FNP06+sKpCzA0nCx//qkHZ/sUiIiIXpqrXzPVq+yeICIiooowNBAREVFFGBqIiIioIgwNREREVBGGBiIiIqoIQwMRERFVhKGBiIiIKsLQQERERBVhaCAiIqKKMDQQERFRRRgaiIiIqCIMDURERFQRhgYiIiKqyHHe5bK1tbWtrW16T4WIiIjmgtbW1rHH4y/3esISkz1DRERE1a3cLjBmfBhg9wQRERFV5NihoRwxWl80RYEJi7WOM778ZI+PeTgiIiKaFRWNaRg/guGI0QyTvVR+PEXh4zscERERnVRHdElMPKZh6vdP+PwRV/QKr+5jZzMWLI7YFVMCERHRbDkpYxrYBkBERLSgHH9oOCJ9EBERUXX7nzENRwxBqKQh4ehRCxUa/8bj3gkRERFNuynGNPiTlXtJAxQmKzzFgYmIiGhumux6rURkhk9lIdi6devffXP/bJ8FERHRS3PHP187xatc3ImIiIgqwtBAREREFWFoICIiooowNBAREVFFGBqIiIioIgwNREREVBGGBiIiIqoIQwMRERFVhKGBiIiIKsLQQERERBVhaCAiIqKKMDQQERFRRRgaiIiIqCIMDURERFQRf7ZPoGpNfXdRIjo+7e3tAJYuXTrbJ0JUhbZu3Tp1AbY0EBERUUUYGoiIiKgiDA1ERERUEYYGIiIiqghDAxEREVWEoYGIiIgqsoCmXOYi6czbA8O2O2c78m6o5Er28EupADUx3ZT0lme9FRlvSUonfDWrJ0tERDTnVH9oEKC7hKc6i9t7w86czUfinIhAABEoBQGGgE5gt4LvqXRML8v4GxqDTU3xhhiYHYiIiMqqOTQI0B3hkXY81tbbW7RF46yDAFoprZRSCgpKKRERAUSciIj0Wtfeg2c7/IeywcaW+lcsQ3Oc0YGIiKh6Q0PO4eEO3P/MQPfgUC60Bc8b1SqpVKBV3PMCT3sa5dwAQCDOSWhdydph41zO1tjCuWcnMjr5jW3qjKb4JStUypvtKhEREc2qagkNNo9SD1Kryr/tzeGOZ0ee3tU1MlIsWCnG/GHfc54uah0P0rXaQEREaQUFUYAAoqEEHlQaaiCJ9o7S5+/q+dMLCjdd1fLrruCbz3lXnopTXQ+y9UBF8eHGv73nZFaYptO/ffS1s30KRETzQJWEBvfCQ3LgYe/SjzvgsW586+G9+w4NRf3FYmSN0sb3ehKLupNNqdrYMsnBIatsXMEDlAIETmCsRM4ZJ1Yk46maxcFAlPjw7bsf277nMx9cuXnJhi/swprvf/6Sy5b757+7ks+tqy8/AxUnIiKaMdUw5dLlBzrvu7X3sftN956f9uNf7j607Yn2zn39ncOjvYViu+dtSy7fl258S/0dD626/OG1l63ydg7ZZNHYkrHFyBWMzUV2xNjhyA1Fdii0uWJkIttQ668/venWx6PL3v8E8NM/WouBqz/2tX+6f/Dnn0NUnO1KExERzbRqCA355x8e3PHc8O62J796y8332F/sHtnR6+8aSbcN1rTll7R5G0/3n32ibsu/r/y9DYse/sKONzzQc4YzpZwxo5HJlTdj8pEdjcxQZDqLYWEwXxwtFX2XFnfxuU2/OJR+zftfAL7ytjOw9BPf/ubXH2n/4ntRPDTb9SYiIppR1dA90f/Eo4XBaLAngd98b3Nz6K29eGPs+bg2LqaGs035WP1nsx+vr9uPGL607cYP7/uL5qX50SgXaO0pBUAgViRyEjoXWRcvhK63ULJW4igU7KWb0l/8+jXv+vgvP/z3D93ylzdfve6mu2/68i/ft/m1az6V3fIJIDXbtSciIpoh8z40uKg03LZveD8GuxONte7PlvxnVv9njV9ATCElaIaJYuJ70NmekUV/ufuDwZLINyM5ZzyttVJKQUScwDrnrBNrvcjYmKBo3EDkInv7T7uyRh741MVf+Y+WnY/8w2nnfXrL+v/znd+9+aHPf+z1W+4ErpvtD4CIiGiGzPvQIIXh9u09Pftk7VloWZWCSQ0Cg1BwKjSieuGlJQk0xdr/s+3yfm9NNjwoNip4Jq4VylMuBRAR52CdMs46iQIfEHhK5Qr+kLnle9taVyx6z5vWmPyH0PXHWNr0tvdd8uWtrx/e9fXs2guBFbP9GRAREc2EeT+mwZpopLew7hxZdioKReQEBagiUEI5DUAEJYFR8VWPP1Ub7RkOFx8qNR0sNu8vLR4Ia1DSKEUoRqpkdMl4oQlCExijjYN1Sns19XWLW5Z+5EuPFEP4qQ1IXR91/MBH2xUf3hxBwdw12x8AERHRDJn3LQ1K7OmbXcogNwLRKA9SOLxGtCiIwAEOOZdeeXD3j/ve+qOz3za8qC69CCM9xV+1Le5qOT+rIohoEW2d55xnrTJWRVYZ6xmrnMTjpqs9+ut//fknP/gq1L1OhdtM/6OrVy2TkZgd/Q9d+26lErP9MRAREZ108z40RDt+GhS7CyEEgILI4ecVIA7KQZySQAziPWFdQ27/xw9+PDZs0WHRI1/9VfJvrr4vlkxpl1ciyokyVoURBNo6bZ0yRiLjRVEqlvjevds/+YElUEYnXuZKz6BYr1CEeRb2IPw1s/kREBERzYj5HRpM/wt9P/u2DUUsRIuCGmtjEIFyEAtlIQZicKA93nYg6ivoeDScKJiNr1g78JrXRCYeFIchAifKWhRLKBQPLxfp+WKMNZGNIk9F+zrNnfc8+YYtdRqh06LUqSIHIb2wexgaiIhoIZjfoWH06XvD/YecgZPDazseuVmIheQApxrXlrBsw2k3vjbl28yahl1R8/e+U5sIjbYhAFiLYuiKBTFWrLXOWa21H1gTWWO0H6Fkb/uvg2/YkkO8F1EPdIvyasWE4h/g7ayIiGghmMehwRYG848/YEOIhQigAQelAXe4YwJOxCplRIzKj8imLdDPuybschte/Q+PLv7ivYK0a9IDAOCcCyMXllwYOmuds2KMckb7gWjPGWNGIvTuefhXBhiC6oI7BBWD/3YJH/G8A2Yk79dwwQYiIqpy83j2RNixq3hojzNwFhDAQeTwhrEH5b6JCNKHZItLpLd++dauTX9ubr49ivt2STioSqEqllQYaee00trzxBoJi4gKEubNSL8Z6R/N55oagw/eeNneHX0Y3AV0ic1DCir7dokDfU8P33fbbH8YREREJ92shYbW1tbW1tYT2UNxz+PRSE4MxEIcxJVHMwAOcIcnTcAJjIKBC1WyZEY3Nn6oeH07mltqhjOlYVMqmWLRlIqmWIyKBVPMuyhUKomoJGHRhSUXFuxoV9h1qGP/4D99/A0XXnTB1qcs/FNdNCpuCGgJ/Ibnf3qg++eceElERNXv+Lsnjrjkt7W1tba2trW1VfjeCktOwRSHBHFn8+LGDWhw5YkTEAEclEMihngC2VQupnLLa6KGTFRSw36pGKry0k5AeW2nwohEJQDwa11UlCgUZ8RasRATdXT0AfjcLTcMt++FXu+G75KanEKEWPN/3O+ds33v+hOsDM0B4/9Jn/i/TyKi6nNCYxqO+GKd4e9ZJQlTKDkDDUC/OMFSQanyY4lnlBO075T4QO77sTX5lvTFpx7wirlAh1aXoMqJoRwx4EpFiYoQJzIKa8RZsQbOwBoJi9LXP9T/wllnLLXLT0X0tPJHoTLAXmDxU4e8dTW8wMx7RwTZacm1RERVZjoHQpa/Z8f/xER/vZWfKf8slzy6wNj39RTf3aZkbOicAxS0gyrnBiWilHKIJdDfI8/dLzXFUrEudaO9CjtSq57oMBmTUXmrlBofGgAXRRIOQSXhrJgQYuEsrBFnVGQxnNvb9pOz6hd5qW124Ps6FepUCXgGw8F9T9S+83c4f2LeY0QgIjqmkzJ7YnxiOPqvtyMixRQFpv5rL+w+YG05KECp8nSJwy0NcBjN49kHxIdafYbsjWXQUZNJliKVzYSDojSUEoz1TpT7NRxcDBoSFWFDOCvOwlk444wBAoRfA0ZQ6I1GhkVf7nvtwFPbny30dC9rvaj+ZHyMREREc8oJhYbJ+oBn5o82G4k1gFNQogClAQMAUKJiKt8BT6kVp6F2cfK8dN+G/j3bB5rS2eFyYoBSgCopFZZgbFwJgqRJK8AZRAWxEZwt5wZxNipZIKzB05BVhYFrBnd+d9HGZm0fgP7Vd35S8/Yt3adtWjID9aUZw74JIqIJTeeYhgkd3xSJSoZVquQip2MShtBwgH5x5CMcxMKOorEZmRoYhfqEuf3lP3rXby57vKc5lwhTqaKEKhel8yW/Jh5lEyMC9HfH+yTZuChKOitREc6JsyJOrCkVHGBG9mewcoPEL3P5H/t1v7FhlydDF7Ws/5MNo2Hp9bHjqCTNPWO9ZrN9IkREc9FJX9zp+L5/K+meSK8+zUtlS/leiFIiXnnehAUUkBc/perTCGJS9FVfKd1aP3L3JXd9cdf6Tz+3obs7BY01i3rffcGe68/ftWrZqM7Kzr4lf/XdTXc9ulzSiJtInAXgTDg4YBoaGi+5pmnRyMPR3ih55h5ZVxSz1xZjSi06Z6kxo3GTPpehoQqwgYGIaGozuiLk9H4pZ9ae7tXWu+5eAArKGvG8wwMaxCIWg6cEUAAKQOdwJpspfvTMbe9as3tvPpNKmQ1Lh9P1JcQ9OI3Inbbu4O1/3/WOD1z4420tyVjJRQWIiImGh92ms3Drp9D//5KR6wiy31UxP+yqlZgqFLxov1b1jUHjWdNVKZotTAxERMd0ckPDhJMjjllg7Ot76saGxIoN8eZVQ8/vdAIItFZKiVKAhVLwPVEAnEhJOaAk0jOSyLtEJi7nZQbgqyhM9ncmwzzy+6TYnouW1jSci+JoqE0BgdNeYIu5Qs4Ccv7Zz3tL7i90ZuI1+zEahiP1LtQSV1G3NoMq2XqWX3fKdH9yNAuOXnpkts6EiGhuOv7QMGECOPr5Cb95px41WeGYSqX9mrWnd9x/rxIowBgoQJUXuVRQXrkQnBU3Ci9QOpCogNEE8ojDIBqU3BByLxT3HlLfyK26x1sm39OZpGvMDEvkICLOFAsWCN7xxnaYQYUEMqnh7nQ46LtQSxxmrxYTS62/WnnsnZj3GBGIiI5pHt+wCkB2w1kqnrK5PKQ8JUIpJb6CtkB5PoVA+7CRynXDRQhTqBFRBqUi8rlif496pFB/a7y+bVFzrUYShSQgxkFERMSY0ZJb2Tz08jMtnl6sGxGGgRvSUb/nQoUAph26bmV8+Tmz/TEQERHNhPkdGjJrNmROXdP3xDbx1OHVGpRSSjB2Uw0FpRDExGtWhQLufCa+9VCsPoYahXapfwaJPbFFvvZaZCRuBCLuxVtd5Z0d6i8B7gNvLWAo07cTshLhIe36lRlSEqk0pNil9paipaGZ1c+AiIhohszv0OClsssv3dLz+DYxLy7xpMprNskRazRqT5YtUVcvMl+9u3nfvix8h6T10sVaV8g4AOJEyiXzIsOjEBtFodu0Mnz/q0vojxVK1kVi98KVlB1BOoagT936WPKcVUpzNUgiIloY5ndoANB02Wtr7rh9cNee8sLQh9eGhgLEK7c3CJRABINDsrLGPHrNgW/vTD06EP/FgXjnqF/0gLiIi1xJrOiSBFERq5dE/3j50G1PBX/x6pznUOpC2AWxSiykpII8alPyL4+m7t2ZePOVS3VN3ax+AERERDNk1m6NPV38xqWt175FRJlITIQogjGIDCKjjIWzEAuxgIEYdA7BhvZPNo1841UdHzhjeN2iUj6K9Q/EBnoxNCKjBVmSUW88PXfnW/vfvLbwxUuHN662Bujd7qL9yvQrO6DsELKQn+yIf+S/l7xvdX/rRRerID7bnwEREdFMmPctDQCat7yp8d4Hun+9FTi8MMOLXQ0KIp4HLdAeIFAeBnLIF5BKBjduHP2DDfl9uYHn+r0DI6rGw6YWs7HRBp4TIwf7EF8CLwk3gEIPXEmVJ3DGDfYPeTc9vOTDZ3ZuuXxt5pVbZrPmREREM6gaQoNX27DpPTf2b/9QNDwEiEBBAJRHNCon4r+YGCBQGiWNUg75giS0XZGxa1fB9+CUihzyIQoRSjH4STiHYj/MAKJeIC4wcCGcRc+I+sdNHS9fHNRc+8d+Q/Ns156IiGiGVENoAFC3+ZXn3HDDts98thQ6EYFAoJzAOfi+EgfniSfQGurFraRR0hgeAjSglNICDaWVF0ALXAkSwRqEo4AHZeEMXEkig1NcpFOp9Jv/d80rrpjtehMREc2cKgkN0LrpuuvXH+ze/b3vjApE4ER8p8SHlKODKOfE86D1uOigILq8IJQcXhnKEytwBlAQp2wJAJSCc2JL8COoCLG6RYt+588yV71N+dXy6REREVWgGi571lrnXKS91Lvfubyvt+u+n+YFkVPiRBycU54H5+B5ynPwPCnnBq2gNaCgyrlBARriAAOlIA7iBAoArIMJkYgQ81R85emJt/2hd94rrci8H0RKRET0UlRDaABgjAnD0MXj0Q3vTlvt3393zknBKefgO3G+cg6eV96U1vA8KYcGrQ+v7oDx24sCgbaQCDpUtqSHX3GVfv21S1pXG2O01lprz/Nmr9JEREQzqkpCQ5lzLkgmu970OutJ9sGHY+FwwanQKt+K81GODtbB07BWjbU3qPJPBShROBwaRJAQJBwGinrrsB/kvFNXryhecuXyRXXGGOfcLFeViIhoxlVJaCj/3e/7vtY6m812Xn7p8zU1y372SG1PV9FGJYOSrzxfPA+eD89Xnvc/WUEB/7MENcrrQiEQ9Fp911DtPQeCDZmR3z1l0eDVVzfX1fm+Xz6K1uydICKihaUaQoPnec453/djsVgmkzHG1NfXu3Nf9lRdNvv4k6ds35PN94dWlYwqanie0p54HrQHz4PSqjwistwvUV7gIQkEQF8xWRf6n9w4nNi0qXvzlU2nrE6lUqlUKhaLxWIx9k0QEdFCUw2hAUAQBOUH5QaAcoBIJBK9zc2Pbtjb8Nz2FXtfqBso1Kii0QJPQcN5gFbak5hCoA7fU1sDXgxKYgiCVYuTdctP6V53dmbtuuWNjdlsNpvNplKpRCLh+/7YESdzxz9fe9KrTURENIOqJDQACIKg3EPh+34ikUilUtlstr6+vrm5eXDD+n2dnQcPHKpva8NAf865pmIhkzeBiQKlOjK+BEFce76fGk4HJpvNLW5yLcsSLS1Lly49JZvNZDKZTKYcF2KxmO/7bGMgIqIFqHpCAwDP8zzPKzczjIWGYrGYz+dXr15dLBZHR0eHh0f8fK4zDO3ISGpkNDM6crC2Ib540VjUqM1kVqQOS7yonBUYF4iIaCGrqtBQdkR0MOOEYTj2eGwGxDrnxsZRlo1FhPHDHhkXiIhogavC0FBWjg4A4vG4tRaA+23lYs65sXkQ+reVdzJLp09ERDTnVG1oGK987WcCICIiOhFcbICIiIgqsiBaGsqcMa63T144oHbvkY4ufagTuTwApFNuWbNqWSJrVqtTV+imxVy4iYiI6GgLIjRIe5d99Dfqvx/2n3oGXb3I5WHt+ALl3gukU1jSaM883VzySu/8c9XSJbN0vkRERHNRNYcG55xs3+X9193qngf8PfuPCApHsjEMGwx3ers68YP7sGE1Xvtqe9WlasNaNjwQERGhikODtHfpb3wXP/gxOjqnLJiEM0ZKPYXuQRuOIgIQaLXkse6Wp57ybrsDb3+z/O61bHUgIiKqwtDgnJMHHvI+/UU8+cyUBZOIRp8s7n0u7Osu2VB+e1SoQ0yhoX/Hmj1PtN75w4a//oi67OKX1OTwzR89e3znP5e94+pNs30KREQ0a6otNLhcTt/6XXzuaxgembzU4biwY3Qo1AZAw9GzMTUK1h8V++hA75MPP7Dx+ra1f/H+xvf+QSyTqfBM7rh/5/FVYS5jaCAiWsiqKjS4XE797afw7TumGr7ggkHT/VhtPDrnzOYVqwHEeoaizr3YvbuQy+V8vxhF5YIZD4BXHiW5u6ej668/esrBjjM+elNy0aKZqAwREdEcUz2hoZwY1LESQ/eaxu1b3rT0NVctbm5R8XgQ+FFkBgf6R598KnXnPcm7f1gwZuioboiaJODc3i99LiiVNv3DJypvbyAiIqoaVRIanDH4x389RmKIpdvf+MqB6//Xy9evTyaT4xeIbGiod6ee2nvxRV2XXBjc8plE++4+kQn3cfBbt8br0qd97GP+sW6NTUREVGWqJTR85w7/mz+YOjH0/961+j3vWt+0+Oj1pMs3m2huaa67/rp961oLN98c+9Wjvc5MuKe9//bv8VNOaX3Pe6bx/ImIiOa+aliBwD67A5/8rCsUneDoDQBiaXvD2+wf/X7Tkqap70CRSCZaL7ggedNNDWvObNR+4E+waZ3fc/MtXU88OTO1IyIimiPmfWgIR0fxz1/wB4ZkEgDsZRf0/f7bGxrqK5kz6QfBqnPPi9/0p3WLG2odJs4No0Ptn/9cODp68utHREQ0V8z70KDv/Zl3338b6yZMDJ5WaGke+qN3NC5tqXyVhUQyUXvZpfqK19VmUhOGhsD3Rx58sPvOH53UqhEREc0p8zs0FAYG/K9+C8ZaYMINgL1mS2rTppe6FHRdXV36D2/ItLY2ah3zggk243q//c3CwMDJqBcREdEcNL9DQ2zrU3hme8m6CV+NO0FLc9+brkwkE8ex88a1pwVXXV2TTAaBN+EW37179NePnVgNiIiI5o15HBpMFHnfvxOF0ImbcAMgV1ycXbv2+PafSCbcq18Vb2hI64Svg6M3JUF09z3mxcWgiIiIqts8Dg2F9nZsfdpoZTHBFiiNZKz3kvOPr5mhLH3aGrPu9LSKfF8dvVnfmW1PFNrbp7FSREREc9Y8Dg146llzsD0vzkGO3nwnsnKZWr/+RI6QzWblvHPjqZQ3CQwMFJ/fMV0VIiIimsumbXGn1tbWscdtbW3TtdvJOOfSW592gHMTD2iA8tTGdZmmphM5itbanrYmSCaDXH7CAgml/Me3uSuveKkDLYmIiOad6QkNra2t44PCEb+eDPl8PrN9l7HWTbzcM6DQv2xJXTx2ggfKrFim6upqCoX8hLHAuVR3ez6fzyyku1GUA+IMREMiIppTpuHv46MjQltbW/m6MvazbPxbjnhyfPkJ33IENzIqHZ0hxCpMuBWU5FtXnngDgNTVJWpr47GYp/XRGwDX1eVGFtAqTzOQCImIaG466feeGH+NKT+erFli/PNHvOXo3YYD/XZgyAB2kjtLFawLmptP/PzjqVRyxYpwzx5/ovWn41pjZCQc6EfLNBxrXmBiICJasE56aKj8GvOSrka2FOajKD/JCg0AbF2NmY4uA9/zUVtb4/ulidJJCYgBthSe+IGIiIjmuNm5y+UU/Q4VFjCRATBpZAAASOJEBzQA8H0P8TiAye50FeMQSCIiWhhmJzRM3ahwRI/GFCUn65soU8VpawDQsZg/UauG5zExEBHRQjEN17yxYY9jXtJYuWM2KkwoSMQBBEpZyIRbcWTUn467UBpjMTAAwPP00VvgeV5NjXfCczSIiIjmvulpaTgiNxwxzvGI56coPOHeJqRra1GbRU//pFMugeLgNNxNSooFjI4CUBN1Q8StRSKB9AKab0lERAvWtHVPTNa0MOHzEwaFSvY2xq/Nes1NaseuydZ2cs4F+/ZPvZNKmOFh9PbC9/0Ju0J8H83Nfm32xA80XxwxS5aTKYiIFo7ZGdNw4jLpdH7tavzsl0apCQvEgdjOAyaK/CA4kQNFPb3IFUKtJz6Mc1i5MpNOn8gh5hemBCKiBevkhoaTd4Hxg2D4ZRs9wE7S1FBSKvns0/nevuyJraCQ3L9PSgVvkmgivm8XLzvBXEJERDQvzOfB/6dvNEua4koZ4OgtJzK880Bh+/MncoRioZh89lmltVbq6M3zPFVf39+6croqRERENJfN49BQt3q1d+HZAKx1E26FXD745a9P5BC6pxs7dgBQWh+9AcC6danVp05HbYiIiOa6eRwaUqmUu+JSAAzu7dcAAAR5SURBVAYy4ZaztvdH94zs23fch9APPYTBwUlfTqdHzn55KpU67v0TERHNI/M4NGitY6+6GBtWpz3PWJlw6396Z/dtPzy+/Yf79/sPPjhViZUrS2eezptiExHRAjG/L3j1S5rSN1znI/I9ZRSO3opOur/2jf6dO1/qnp1zsV/+Ap2dk5ZIp92VV9QtbTmhChAREc0f8zs0+EEQXPO64KILfSjj3IRbbk9nz2e+UCwUX9Ke1XPP4c7/mvTlVBIbNvRuPJ3zJoiIaOGY36EBQENLc+zDN6YW1yeUNiITbp233nHos19wxlS4z3D/fvWVr2BkZNISi+oHt2xpWDC3wyYiIkIVhAbP85pe+Yr4n9yQ8LSvlBU5ehstFg/+zac7vvz1SnJDuH9/7Etfwu7dk5ZIp82rXpU46+zJ7ntJRERUlebripDjJZKJ9DuvM/v3m6/dbiKJJlruabhQ2PbRv9WjIy1/+PuorZtwP84Y9fzzsa98ZarEkEpi8+ahK69sSCam6/yJiIjmhWoIDQCaljTZD70/19WfufO+UaBg7dFlzEDhib/8J7XtyaZ3Xa/PP9/VZMcmPrhcTr3wgn74YTz44FS9EqkkNp9/6M1vbmlsPEkVISIimrOqJDRorZtXrsQnP9YRD3D7TwDk7AQ9EX22dO+37jrvsSfWv+4yvW7d4SaHkVHd3o4dO44RF5TGeecdestbmleu5DRLIiJagKokNADwPK955Up84iPddRl76w91zgwddcOIhFJFcT/ftWvPZ/svvHBt7YoXRzKGFvnCBDtNJRHzEFpEbmDz5vxb3tK8ciWHMhAR0cJUPaEBgOd5LatWxT72V+1nn5W/5TPejgN5rfO/PcQhBhWTmg43eNtDjzSgZtPa5rWrl3s1GdRlJtjjcKH4fMf+ZE3hve9c+sarWxrq2cZAREQLVlWFBgBa68WLG2uuv+6FDevwpW/4d9+b6h46OjpkJAVgUOUfbHv+l7v2ZJFesTKTjCfi8IKkP1ooFUpF0xHaugTecHnj+967btPpCY58JCKiha3aQkNZIplYu/ncgdPWHnrrNea2H/r3PpjqHrJASWsjEoqUi2UkBZsCUIR7dn8XgIyyAHypybY2ZK57beat1yy7YPOiutrjWMTppt87f1rrRERENMuqMzQA8INg8eLGRVuuHLhgc+/OXblfPBr96pGa53eGB/tNLgfgt+dXKE9SfjodW16P9acFr7ggfdH5jaetPb64UHb+mUtPvBZERERzR9WGhrJydKivXxS97JzBd13Xd+hguGevfeGg6+7UXX26FAFw8cAtadBNzd6py2OrT2lYtryuri6IBRzwSERENF6Vh4Yyz/O8pNecbF7ctFjOOssYWywVo8hYYwB4vh8EfiKe8H1Pac2sQERENKEFERrGeJ4Hz/ODgKMaiYiIXipOICQiIqKKKHlxKgERERHRFNjSQERERBVhaCAiIqKKMDQQERFRRRgaiIiIqCIMDURERFQRhgYiIiKqCEMDERERVYShgYiIiCry/wHKmbj9PFyeIAAAAABJRU5ErkJggg==" + src="data:image/png;base64,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" height="200" width="700" margin="0 auto"/> @@ -1102,7 +1102,7 @@ </h2> <img alt="" - src="data:image/png;base64,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" + src="data:image/png;base64,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" height="200" width="700" margin="0 auto"/> @@ -1336,7 +1336,7 @@ </h2> <img alt="" - src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAArwAAADICAIAAACF9KXqAAAKFklEQVR4nO3dP2yjZx3A8cex47vkeuXUDld6lVpkMbQSLGWhAxWVWCtVQiAhMXVCMABSJdS9SAip3eiA2GBCupkBCSZYyFpVRxJVac6EKPX5kjixHTsvgw+f6zjOL4mdN04+nyGy3z/OkyF+v37e13Yhy7IEAHCSubwHAADMBtEAAISIBgAgRDQAACGiAQAIEQ0AQIhouFwqlcpxC0euGrMXAEyWaJgZKysrJ65SDwBMj2i4XFZWVoYO/JVKZUwuAMCFKeU9gOvo13/419CS99/91ol79ethsCr6S/q10V871B/KA4BzEg05+Pfn2wcHB/278/PzDx8+vHfvXmTfoYmHwbu9Shg8VXHclgBwBk5P5GNvQEqpWq32Vw3OEJx4pI93gGIA4JxEw4zpJUXkgsf4lgAQ4fTE7Bm8siEyDxHZEgBOJBrysbi4OGZt/wzFiW+zjFypEN8SAMYQDTl4561K9eHDs+0bP/arBAAmSzTk4O3vvJzSy2fbd/wbKQfXesslAJNVyLIs7zEAADPAuycAgBDRAACEiAYAIEQ0AAAh3j0xYd6wANPm7cQwccGDl2iYJN8RBdPmk9Fh4uIHL6cngJkhxCFfogGYDYoBcuf0BDADFANMT/wThEUDMBsGn9Q0BExQ/JoG0QDMAJcYw2XgmgYAIMRMwyT5YkkAZk784OVbLgGAEKcnAIAQ0QAAhIgGACBENAAAIaIBAAgRDQBAiGiYiqWlpbyHAFdTtVqtVqt5jwKuphMPXqIBAAgRDQBAiGgAAEJEAwAQIhoAgBDRAACEiAYAIKSU9wCurKVPNvIeAlxBX3zxKKX0n7oXPDB5yw/3X3993AaiYVo++P0/8x4CAJzOD98et1atAwAhogEACBENAECIaAAAQkQDABAiGgCAENEAAISIBgAgRDQAACGiAQAIEQ0AQIhoAABCRAMAECIaAIAQ0QAAhIgGACBENAAAIaIBAAgRDQBAiGgAAEJEAwAQIhoAgJAzRkOlUpnsOACAS+5pNBztAGUAANdQZcDg8lJeAwIALqFKpbKysjLy7smnJ3qVMbI4hjYYudnRWhlaG3wcACBfoZmGwcoYEyBHb4/Z+Gy/DgDISygajjtsDx3Rg0f3fkwc/XmqxwEAJq53UB6827999msazAEAwNVzrmsajjNUIgDA1fY0GoYiIDKRcOZuGDwfcfTSBwDgEvrS6YnBCDjtBQpj1g7ePes4AYCLMObYXciyLI8hXXFLS0sf/HEt71EAwOnc/+idMWt99wQAECIaAIAQ0QAAhIgGACBENAAAIaIBAAgRDQBAiGgAAEJEAwAQIhoAgBDRAACEiAYAIEQ0AAAhogEACBENAECIaAAAQkQDABAiGgCAENEAAISIBgAgRDQAACGiAQAIEQ0AQIhoAABCSnkP4Mq6/9E7eQ8BrqBqtZpSevHFF/MeCFxBS0tL4zcw0wAAhIgGACBENAAAIaIBAAgRDQBAiGgAAEJEAwAQIhoAgBDRAACEiAYAIEQ0AAAhogEACBENAECIaAAAQkQDABAiGgCAkFLeA7iy3vvwb3kPgevut7/8bt5DAK4U0TAtK5/X8x4CAEyS0xMAQIhoAABCRAMAECIaAIAQF0Kewn4nq+11anvd9ced1Vp7+YuDTzZbq7X2Z48ODj54Ne/RAcB0iYbRWt1st51ttua2mulBLdXqjdXN7dXaQXW7s9Xo7LYPm52sc5j3KAHgAomG1OpmzU621ehW2/MbjfRgs71Wa67VD6o7nc3GYX2/22x0U9rLe5gAkLPrFQ2tbpZSulEstLrZ36uFTza7n2409AEARFzNaOhmWecw1duFWittNdNGI63Xu6tbzeWt5ltfu/neG7c2dzs/u7+1vOHzlwAgauajoZtl7W7aPijUWmltJ63vpI3H7bVac3mztdU6PDp/8MqtOyndSim193dzHTgAzJhZjYY/rzyZPKjvd9YetavbnXo77bacXwCAaZnVaPjRn9Y7+/oAAC7OrEZDZ38n7yEAwPXiEyEBgBDRAACEiAYAIEQ0AAAhogEACBENAECIaAAAQkQDABAiGgCAkOl+ImSlUllZWZnqrwDGq1Qq/dv+H4HzGJ5pGHx+Oe7u0ELg0uqFe59/XuA8znJ6wosVmBX+W4EJGo6GwdcivdcoQ3fTl+cbKv/Xf4TKgDELh9YevX30QQCAHJ3rmobBSxb6hTH4yqYfFkMLT3z1c+I2z5QLi/OllNJc4TClVC4WIgNud7M7i+WU0lwhvXD76d9eLhVuluZKc6lcLNwsDYdUqbzYiTw6XFb9+DbxAJzHuaLhPE9A/cI4+jOy+z9+8krvxmK5mFIqF9PcQDYcZsfu2Nv+hdul+z9+qbdZb8eb88WUUq8bzvQHweU1FPf5DgaYXcdGQ//J5VTH8knpnxY57vc+t1gcs/tc4WkEpJTKxUI/KXpLioXC4ExDT7FQ6GZZsSAaAGCEEdEw8hLrXLphzO9943efjdm3XCqklEaecfjBN2//9NvPff744P2/bO62D59sPzC7MDzTcOOZ8q3bKaVyedxFox+/ecKfA7kwtQBM0LEzDYNPNGd7p9aJuwzOYZx2PmPt8RkvM3jtbjmlVN/v/nW5sbHbDeyxndJiujFuYiOl9PGbL51tPDBVQ/+8AgI4jwl/uNPgM9TgKYbTPm1N+7qt3pUNYXupNY1RwEUQCsCkjI6Go88yQxMPR7fp3z265cgHHLPxmO0BgLz47gkAIEQ0AAAh1zcafB4DAJzK9Y0GAOBUrmk0nO7NEwDAtY0GAOC0RAMAECIaAIAQ0QAAhIgGACBENAAAIbMbDYt5DwAArpcJf8vlhfnw+y9t7HSr9f21R+3qdqfeTrutbrPRTWkv76EBwNU0q9Hwi9eLKRW72Xy7m7YPCrVWWttJ6ztp43F7rdZcqx9UdzqbjcP6vpIAgMmY1WjoKRYKC6W0UEp3F9Krd3rLyt1svnOY6u1CrZW2mmmjkdbr3dWt5vJWs7rTubP45E8uLzyTHtfzGzsAzJjZjoaRioVCsZjuLqS7C0+XpXSr1V3cbWe9+8/eLP7qe199sPm8ExwAEHQFo+E4N4qFGwtPvtnyKzfm3n0tpdfKR09wPNhs1xvN5c3WVuuwunOoJACg5xpFw0gjTnA8KYnbgyVRqzdWN7dXawfV7c5Wo7PbPmx2ss5hzoMHgIt03aNhpFGXStxK6dZ+J6vtdWp73fXHndVae30n+/S/e8tfHHz2qJ3vgAHgAoiGU1goFe49O3/v2flvvNBf9nyO4wGAizS7H+4EAFwo0QAAhIgGACBENAAAIS6EnJbf/PzNvIcAAJMkGqbl6y8/l/cQAGCSnJ4AAEJEAwAQIhoAgBDRAACEiAYAIEQ0AAAhogEACClkWZb3GACAGWCmAQAIEQ0AQIhoAABCRAMAECIaAIAQ0QAAhIgGACBENAAAIf8DdmYQhxw59l0AAAAASUVORK5CYII=" + src="data:image/png;base64,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" height="200" width="700" margin="0 auto"/> @@ -1708,7 +1708,7 @@ </h2> <img alt="" - src="data:image/png;base64,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" + src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAArwAAADICAIAAACF9KXqAAAHfUlEQVR4nO3dv28jaQHH4dn8aKJUNJF2iy0s/oJLDV6qaIuTtqKJVqslfwBCIgX9ISEkLj1CSsG2l26VIhJNJBqckgbccIqhOXFyAYUTmSLIN2d7nW8cJ+84fp4q45lx3hT2fOadcfxsOBxWAAC3WSs9AABgOYgGACAiGgCAiGgAACKiAQCIiAYAICIa7qbVan3qwamrZuwFAMtFNCxMt9u9dZV6AGB5iYa76Xa7Ywf+Vqs1IxcA4MnYKD2AJvr1H/4y9sivfrZ7616jeqhXxeiRUW2M1o71h/IAoOFEwxR/+7o/GAxGi5ubm5eXly9evEj2HZt4qC/eVEL9UsWntgSABnJ5Yrr/1FRV1ev1RqvqMwS3HunzDlAMADScaFiwm6RIbnjMtwSAJnB5YvHqdzYk8xDJlgBQnGiYbmtra8ba0RWKWz9mmdypkG8JAAWJhine/KTVu7ycb9/82K8SAFguomGKz3/0sqpezrfv7A9S1tf6yCUAy+XZcDgsPQYAYAn49AQAEBENAEBENAAAEdEAAERW7tMTPrAATePjx1BceHBcrWjwHVHQNP6TOhSXHxxdngCKEe6wXEQDUIZigKWzWpcngIZQDNAc+X8oFg1AGfU3KQ0BBeX3NIgGoAC3JMMyck8DABBZrZkGXywJAGPyg6NvuQQAIi5PAAAR0QAAREQDABARDQBARDQAABHRAABEVjQaOp1O6SEAVVVVvV6v1+uVHgVQVcHBcUWjAQC4K9EAAEREAwAQEQ0AQEQ0AAAR0QAAREQDABDZKD2AYjp//VfpIQDVN9/8u6qqf37rBAbK+/vlfz/7bNYGqxsNX/z+z6WHAADN8tPPZ61V9wBARDQAABHRAABERAMAEBENAEBENAAAEdEAAEREAwAQEQ0AQEQ0AAAR0QAAREQDABARDQBARDQAABHRAABERAMAEBENAEBENAAAEdEAAEREAwAQEQ0AQEQ0AACROaOh1WotdhwAQMN9Fw2THaAMAGAFtWrqj2+UGtDCDQaD09PTqqr29vY2NzdLDwcAllKr1ep2u1MXb788cVMZU4tjbIOpm03Wytja8HludXBw8P79+7dv37579y7fCwAIRTMN9cqYESCTP8/YeL5f9ynX19f9fv/s7Kzf77fb7ePjY5MNALBYUTR86rA9dkRPju43m9WTYjIvwuepW19fPzk5GQwG+/v7u7u7igEA5nNzUK4vjn6e/56GcA7gMR0dHV1cXJyfn5ceCAAsq3vd0/ApYyXSBGtra4eHhzs7O6UHAgBP0HfRMBYByUTC3N1Qvx4xeevD3Pr9/tXV1f2fBwCY9L3LE/UIuOsNCjPW1hfnHWek3W5vb28/6K8AgKdtxrH72XA4LDGkwjqdzhd//EfpUQBAs3z15ZsZa333BAAQEQ0AQEQ0AAAR0QAAREQDABARDQBARDQAABHRAABERAMAEBENAEBENAAAEdEAAEREAwAQEQ0AQEQ0AAAR0QAAREQDABARDQBARDQAABHRAABERAMAEBENAEBENAAAEdEAAEQ2Sg+gmK++fFN6CEDV6/Wqqnr+/HnpgQBVp9OZvYGZBgAgIhoAgIhoAAAiogEAiIgGACAiGgCAiGgAACKiAQCIiAYAICIaAICIaAAAIqIBAIiIBgAgIhoAgIhoAAAiogEAiGyUHkAxv/zdn0oPAW7321+8Kj0EgP9b3Wjofv1t6SEAwDJxeQIAiIgGACAiGgCAiGgAACKiAQCIiAYAICIaAICIaAAAIqIBAIiIBgAgIhoAgIhoAAAiogEAiIgGACAiGgCAiGgAACKiAQCIiAYAICIaAICIaAAAIqIBAIiIBgAgsjH3nq1Wq77Y7XbvPRhguvrLzWsNKGX+aKi8ecGjaLVa9dfa2CLAo7lXNIy5eS8bvaONzo1Gizdr6w9W006h5jupGgwGp6enVVXt7e1tbm7e82+B5pAIQEMsMhqq758D1bOg3g31ByfPmeY+qTo4OPj48ePV1dXr168/fPhw/78FAKi7VzRMTgnMPsA/3AnT9fV1v98/Ozvr9/vtdvv4+NhkA0/M5CwdwCN7wHsaxu6UzM2x4/r6+snJyWAw2N/f393dVQw8PZNTdwCPbMGXJ0bGrkTcad+53xCPjo4uLi7Oz8/n2x0AmKHp/6fhTsGxtrZ2eHi4s7PzcOOBxzf3pB3AYj3UTEP9gxL5Zt1ud/KR/Jf2+/2tra07jROa7z4vCoAFmj8aJt+5xh4JF299nly73d7e3p5vX2gyoQA0wUPNNBTx6tWr0kMAgCer6fc0AAANIRoAgIhoAAAiogEAiIgGACAiGgCAiGgAACKiAQCIiAYAICIaAICIaAAAIqIBAIiIBgAgIhoAgIhoAAAiogEAiIgGACAiGgCAiGgAACKiAQCIiAYAICIaAICIaAAAIqIBAIhslB5AMb/5+Y9LDwEAlsnqRsMPX/6g9BAAYJm4PAEAREQDABARDQBARDQAABHRAABERAMAEBENAEDk2XA4LD0GAGAJmGkAACKiAQCIiAYAICIaAICIaAAAIqIBAIiIBgAgIhoAgMj/APL/aVFpu5MbAAAAAElFTkSuQmCC" height="200" width="700" margin="0 auto"/> @@ -1894,7 +1894,7 @@ </h2> <img alt="" - src="data:image/png;base64,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" + src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAArwAAADICAIAAACF9KXqAAAGS0lEQVR4nO3dMW8TZwDHYSckC2JnYGC4jalSMldRP0AlpM4IUdSPwNC9XWFgqlSJoWMFQ5YOjHTroc6tLKRWyVKpg1V1McgdIszVOcf/XGxe2/c8U+K7s1+G1/5x7128M5lMBgAAi+yWHgAAsBlEAwAQEQ0AQEQ0AAAR0QAAREQDABARDZdTVdW8B1s3XXAUAGwW0bA0w+Fw4Sb1AMDmEg2XMxwOZz74q6q6IBcAYGvslR7AOvr2+19mHvn6y8OFR03roVkV00emtTHdOtMfygOANScaWvz+52g8Hk9/3d/fPzk5uXXrVnLszImH5q9nldBcqpi3JwCsIcsT7f5tGAwGp6en003NMwQLP+nzDlAMAKw50bBkZ0mRXPCY7wkA68DyxPI1r2xIzkMkewJAcaKh3fXr1y/YOl2hWHibZXKlQr4nABQkGlrc/aw6PTnpdmz+2a8SANgsoqHF55/eHgxudzv24hspm1vdcgnAZtmZTCalxwAAbAB3TwAAEdEAAEREAwAQEQ0AQKR3d0+4YQGKOP+nTUxG+Ghap1uHOdivaPAdUVBE84tem4/M+xVYotbp1m0OWp4AVk4QQEFLnICiAQCIiAYA6IsrLgX265oGAOinpXyjsmgAgC23rGuNLU8AwDZb4t1JvfvCKreGw8fXnHeD91PPZISPY2YCDq4wB3sXDQBAN5YnAICIaAAAIqIBAIiIBgAgIhoAgIhoAAAiPY2Guq5LDwF6zRyEsrrNwZ5GAwBwWaIBAIiIBgAgIhoAgIhoAAAiogEAiIgGACAiGgCAiGgAACKiAQCIiAYAICIaAICIaAAAIqIBAIiIBgAgIhoAgMhe6QEU892Pv5YeAvTXX3/9Xb9Z1Rz86otPVvTM0HP9jYaffn5TegjQb7/9s6InFg2wIpYnAICIaAAAIqIBAIiIBgAgIhoAgIhoAAAiogEAiIgGACAiGgCAiGgAACKiAQCIiAYAICIaAICIaAAAIqIBAIiIBgAgIhoAgIhoAAAiogEAiIgGACAiGgCAiGgAACKiAQCIiAYAICIaAICIaAAAIqIBAIiIBgAgIhoAgIhoAAAiogEAiIgGACAiGgCAiGgAACKiAQCIiAYAICIaAICIaAAAIqIBAIiIBgAgIhoAgIhoAAAiogEAiIgGACAiGgCAiGgAACKiAQCIiAYAICIaAICIaAAAIqIBAIh0jIaqqpY7DgBgzX2IhvMdoAyAzVVVVevbmnc26Gx7lifG4/Hx8fHx8fF4PC49FqCwqqqGw2HyIJBbHA1nVV69d8EOrbtVDc395/288OXmefjw4YMHD+7du3f//v38KGArtcaBYoAr2kt2aub5TKrP23T28wU7d3u5ed69ezcajV6+fDkajY6Ojp49e7a/v5/80wCAULQ8Me9je+YTPaz4s5gYNMJi5qk6/G/g2rVrL168uHPnztOnTw8PDxUDACxddKah1RquDj558uT169evXr0qPRAA2ELdL4ScniRYH7u7u48ePbp582bpgQDAFvoQDTMRkJxI6NwNzcsdzl/60NloNHr79u3VnwcAOO9/yxPNCLjUBQrzdp6pilUvZxwdHd24cWOlLwFshJnbtc7efFofBHI7k8mk9BgKqOv6mx/+KD0KYCWeP75begiw7uq6Pjg4uOxR2/PHnQCAlRINAEBENAAAEdEAAEREAwAQEQ0AQEQ0AAAR0QAAREQDABARDQBARDQAABHRAABERAMAEBENAEBENAAAEdEAAEREAwAQEQ0AQEQ0AAAR0QAAREQDABARDQBARDQAABHRAABERAMAEBENAEBENAAAEdEAAEREAwAQEQ0AQEQ0AAAR0QAAREQDABARDQBARDQAABHRAABERAMAEBENAEBENAAAEdEAAEREAwAQEQ0AQEQ0AAAR0QAAREQDABARDQBARDQAABHRAABERAMAEBENAEBENAAAEdEAAEREAwAQ2Ss9gGKeP75begjQX3VdHxwclB4FcDnONAAAEdEAAEREAwAQEQ0AQEQ0AAAR0QAAREQDABARDQBARDQAABHRAABERAMAEBENAEBENAAAEdEAAEREAwAQEQ0AQEQ0AACRnclkUnoMAMAGcKYBAIiIBgAgIhoAgIhoAAAiogEAiIgGACAiGgCAiGgAACL/ARU2tgDMbXaHAAAAAElFTkSuQmCC" height="200" width="700" margin="0 auto"/> @@ -2055,7 +2055,7 @@ </h2> <img alt="" - src="data:image/png;base64,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" + src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAArwAAADICAIAAACF9KXqAAAGS0lEQVR4nO3dMW8TZwDHYSckC2JnYGC4jalSMldRP0AlpM4IUdSPwNC9XWFgqlSJoWMFQ5YOjHTroc6tLKRWyVKpg1V1McgdIszVOcf/XGxe2/c8U+K7s1+G1/5x7128M5lMBgAAi+yWHgAAsBlEAwAQEQ0AQEQ0AAAR0QAAREQDABARDZdTVdW8B1s3XXAUAGwW0bA0w+Fw4Sb1AMDmEg2XMxwOZz74q6q6IBcAYGvslR7AOvr2+19mHvn6y8OFR03roVkV00emtTHdOtMfygOANScaWvz+52g8Hk9/3d/fPzk5uXXrVnLszImH5q9nldBcqpi3JwCsIcsT7f5tGAwGp6en003NMwQLP+nzDlAMAKw50bBkZ0mRXPCY7wkA68DyxPI1r2xIzkMkewJAcaKh3fXr1y/YOl2hWHibZXKlQr4nABQkGlrc/aw6PTnpdmz+2a8SANgsoqHF55/eHgxudzv24hspm1vdcgnAZtmZTCalxwAAbAB3TwAAEdEAAEREAwAQEQ0AQKR3d0+4YQGKOP+nTUxG+Ghap1uHOdivaPAdUVBE84tem4/M+xVYotbp1m0OWp4AVk4QQEFLnICiAQCIiAYA6IsrLgX265oGAOinpXyjsmgAgC23rGuNLU8AwDZb4t1JvfvCKreGw8fXnHeD91PPZISPY2YCDq4wB3sXDQBAN5YnAICIaAAAIqIBAIiIBgAgIhoAgIhoAAAiPY2Guq5LDwF6zRyEsrrNwZ5GAwBwWaIBAIiIBgAgIhoAgIhoAAAiogEAiIgGACAiGgCAiGgAACKiAQCIiAYAICIaAICIaAAAIqIBAIiIBgAgIhoAgMhe6QEU892Pv5YeAvTXX3/9Xb9Z1Rz86otPVvTM0HP9jYaffn5TegjQb7/9s6InFg2wIpYnAICIaAAAIqIBAIiIBgAgIhoAgIhoAAAiogEAiIgGACAiGgCAiGgAACKiAQCIiAYAICIaAICIaAAAIqIBAIiIBgAgIhoAgIhoAAAiogEAiIgGACAiGgCAiGgAACKiAQCIiAYAICIaAICIaAAAIqIBAIiIBgAgIhoAgIhoAAAiogEAiIgGACAiGgCAiGgAACKiAQCIiAYAICIaAICIaAAAIqIBAIiIBgAgIhoAgIhoAAAiogEAiIgGACAiGgCAiGgAACKiAQCIiAYAICIaAICIaAAAIqIBAIh0jIaqqpY7DgBgzX2IhvMdoAyAzVVVVevbmnc26Gx7lifG4/Hx8fHx8fF4PC49FqCwqqqGw2HyIJBbHA1nVV69d8EOrbtVDc395/288OXmefjw4YMHD+7du3f//v38KGArtcaBYoAr2kt2aub5TKrP23T28wU7d3u5ed69ezcajV6+fDkajY6Ojp49e7a/v5/80wCAULQ8Me9je+YTPaz4s5gYNMJi5qk6/G/g2rVrL168uHPnztOnTw8PDxUDACxddKah1RquDj558uT169evXr0qPRAA2ELdL4ScniRYH7u7u48ePbp582bpgQDAFvoQDTMRkJxI6NwNzcsdzl/60NloNHr79u3VnwcAOO9/yxPNCLjUBQrzdp6pilUvZxwdHd24cWOlLwFshJnbtc7efFofBHI7k8mk9BgKqOv6mx/+KD0KYCWeP75begiw7uq6Pjg4uOxR2/PHnQCAlRINAEBENAAAEdEAAEREAwAQEQ0AQEQ0AAAR0QAAREQDABARDQBARDQAABHRAABERAMAEBENAEBENAAAEdEAAEREAwAQEQ0AQEQ0AAAR0QAAREQDABARDQBARDQAABHRAABERAMAEBENAEBENAAAEdEAAEREAwAQEQ0AQEQ0AAAR0QAAREQDABARDQBARDQAABHRAABERAMAEBENAEBENAAAEdEAAEREAwAQEQ0AQEQ0AAAR0QAAREQDABARDQBARDQAABHRAABERAMAEBENAEBENAAAEdEAAEREAwAQ2Ss9gGKeP75begjQX3VdHxwclB4FcDnONAAAEdEAAEREAwAQEQ0AQEQ0AAAR0QAAREQDABARDQBARDQAABHRAABERAMAEBENAEBENAAAEdEAAEREAwAQEQ0AQEQ0AACRnclkUnoMAMAGcKYBAIiIBgAgIhoAgIhoAAAiogEAiIgGACAiGgCAiGgAACL/ARU2tgDMbXaHAAAAAElFTkSuQmCC" height="200" width="700" margin="0 auto"/> diff --git a/tests/PHPUnit/System/expected/test_TwoVisitors_twoWebsites_differentDays_scheduled_report_in_html_tables_only__ScheduledReports.generateReport_month.original.html b/tests/PHPUnit/System/expected/test_TwoVisitors_twoWebsites_differentDays_scheduled_report_in_html_tables_only__ScheduledReports.generateReport_month.original.html index 4c9121ed82..13af6755f2 100644 --- a/tests/PHPUnit/System/expected/test_TwoVisitors_twoWebsites_differentDays_scheduled_report_in_html_tables_only__ScheduledReports.generateReport_month.original.html +++ b/tests/PHPUnit/System/expected/test_TwoVisitors_twoWebsites_differentDays_scheduled_report_in_html_tables_only__ScheduledReports.generateReport_month.original.html @@ -727,7 +727,7 @@ <tr style=";"> <td style="padding:17px 15px;;border-bottom:1px solid rgb(231,231,231);font-size: 15px;padding:17px 15px;color:#0d0d0d;font-family:-apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen-Sans, Cantarell, 'Helvetica Neue', sans-serif;"> - <img height="16px" src='http://example.com/piwik/tests/PHPUnit/proxy/plugins/DevicesDetection/images/brand/Unknown.png'> + <img height="16px" src='http://example.com/piwik/tests/PHPUnit/proxy/plugins/Morpheus/icons/dist/brand/Unknown.png'> Unknown </td> <td style="padding:17px 15px; text-align:right;;border-bottom:1px solid rgb(231,231,231);font-size: 15px;padding:17px 15px;color:#0d0d0d;font-family:-apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen-Sans, Cantarell, 'Helvetica Neue', sans-serif;"> diff --git a/tests/PHPUnit/System/expected/test_TwoVisitors_twoWebsites_differentDays_scheduled_report_in_pdf_tables_only__ScheduledReports.generateReport_month.original.pdf b/tests/PHPUnit/System/expected/test_TwoVisitors_twoWebsites_differentDays_scheduled_report_in_pdf_tables_only__ScheduledReports.generateReport_month.original.pdf Binary files differindex 1c30f1752e..b1c7db1191 100644 --- a/tests/PHPUnit/System/expected/test_TwoVisitors_twoWebsites_differentDays_scheduled_report_in_pdf_tables_only__ScheduledReports.generateReport_month.original.pdf +++ b/tests/PHPUnit/System/expected/test_TwoVisitors_twoWebsites_differentDays_scheduled_report_in_pdf_tables_only__ScheduledReports.generateReport_month.original.pdf diff --git a/tests/PHPUnit/System/expected/test_ecommerceOrderWithItems_scheduled_report_in_html_tables_and_graph__ScheduledReports.generateReport_week.original.html b/tests/PHPUnit/System/expected/test_ecommerceOrderWithItems_scheduled_report_in_html_tables_and_graph__ScheduledReports.generateReport_week.original.html index d9b30ad3ca..91b68caf4f 100644 --- a/tests/PHPUnit/System/expected/test_ecommerceOrderWithItems_scheduled_report_in_html_tables_and_graph__ScheduledReports.generateReport_week.original.html +++ b/tests/PHPUnit/System/expected/test_ecommerceOrderWithItems_scheduled_report_in_html_tables_and_graph__ScheduledReports.generateReport_week.original.html @@ -731,7 +731,7 @@ </h2> <img alt="" - src="data:image/png;base64,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" + src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAArwAAADICAIAAACF9KXqAAAG2klEQVR4nO3dv2sbZwDHYflHIGQMZPLgQSGQrcSdMnjopCUlgf4HhpI/IFP3djJkNYVuJVMJGT1kCnTrmW4BN6LExV4EHUoxgfxQB8P1LEvWN7ask07PM4To7iS/sVDuw/ve2Uv9fr8FADDOct0DAADmg2gAACKiAQCIiAYAICIaAICIaAAAIqJhpHa7PWrj0F3nPAsAGkA0XES32x27Sz0A0DCiYaRutztw4m+32+fkAgA022rdA6jZDz/9NrDlu60vxz6rrIdqVZRbytoo9w70h/IAYB4tejT88dc/79+/Lx9eu3bt8PBwbW0tee7AxEP14UklVJcqRh0JAPPC8kTruKLVah0dHZW7qjMEY8/0eQcoBgDmkWi4uJOkSC54zI8EgJm16MsTl1S9siGZh0iOBIDZJBpaN27cOGdvuUIx9jbL5EqF/EgAmDWLHg2PvmofHR5e7Ln5uV8lANAAix4NX2+ut1rrF3vu+TdSVve65RKABljq9/t1jwEAmAPungAAIqIBAIiIBgAgIhoAgEiT755wwwLMIB9MmE3VO/5GHdPYaPA7omAG+WDCbAo/jJYngOmRCDCD8nxv7EwDABAK1w1FAzBtydIpME3huqFoAKat/P/INQ0wX1zTAABERAMwPdV1U2DuNPkXVrkdHGaQDybMoPCD2eRoAAAmyPIEABARDQBARDQAABHRAABERAMAEBENAECk+dFQFEXdQwAG+WDCDBr7wWx+NAAAEyEaAICIaAAAIqIBAIiIBgAgIhoAgIhoAAAiogEAiIgGACAiGgCAiGgAACKiAQCIiAYAICIaAICIaAAAIqIBAIis1j2Aafjxl9/rHgJwSq/3d/GnDyZX69tvvqh7CE2zENGw++ufdQ8BOGP/37pHQMOJhomzPAEAREQDABARDQBARDQAABHRAABERAMAEBENAEBENAAAEdEAAEREAwAQEQ0AQEQ0AAAR0QAAREQDABARDQBARDQAABHRAABERAMAEBENAEBENAAAEdEAAEREAwAQEQ0AQEQ0AAAR0QAAREQDABARDQBARDQAABHRAABERAMAEBENAEBENAAAEdEAAEREAwAQEQ0AQEQ0AAAR0QAAREQDABARDQBARDQAABHRAABERAMAEBENAEBENAAAEdEAAEREAwAQEQ0AQEQ0AAAR0QAARFbrHsB4vV7v1atXnz59Gnvk8vLy5ubmrVu3pjAqAFg0k4mGdrvd7XYn8lJndTqdvb298OB79+4VRXFFIwGARfZ/NLTb7eqOy0fApEpib2/vyZMnjx8/Hnvkzs7O9vb25b8iAHDWqZmG6jn+SicPPtfNmzcHmmbUYVMYDADz4uy5Y3ZObfNo5PJEt9stu6H6TS+/3eXGgTfg5Fkne0/+HPUi1SPPvg4AXJ6TywSNv6ZhYMqhPNMPfRvK7QPHDH2Rge0zNbcBAAyY5N0TFzjrqwQArtTQyXIuJoqGoWtC1aWHlnkCAGbP0AX0ugbTAFE0DP0WD6wvnLNmAQA0wMifCHnOVQujnlK9qhEAaJhTMw1DF34GUmDgVoiBsKjON1SXMIa+yKiveNbx8XGv1xv7jzk+Ph57DACLwxT4ZC31+/26vnb4Xt69e3d/fz98zTt37rx+/bq6pSiK738+uMj4AJhnz58+arkQ8nMURbGxsXHOAXPwuydevny5u7v74cOHcsvu7u6LFy9ardbDhw87nU65fXV1tfoQAITCBNUZDeEbuba2trW1VT58+/btmzdvTv5++/btTqezvr5+JeMDACrmYKah6uPHj/fv3z86Ojp5uL29/ezZs4ODg5WVlXoHBgCNN2fRsLKysrOz8+7du3LL9evXFQMATMGcRUOr1Xrw4EHdQwCARTTy5zQAAFSJBgAgIhoAgIhoAAAiogEAiIgGACAiGgCAiGgAACKiAQCIiAYAICIaAICIaAAAIqIBAIiIBgAgIhoAgIhoAAAiogEAiIgGACAiGgCAiGgAACKiAQCIiAYAICIaAICIaAAAIqIBAIiIBgAgIhoAgIhoAAAiogEAiIgGACAiGgCAiGgAACKiAQCIiAYAICIaAICIaAAAIqIBAIiIBgAgIhoAgIhoAAAiogEAiIgGACAiGgCAiGgAACKiAQCIiAYAICIaAICIaAAAIqIBAIis1j2AaXj+9FHdQwBOKYpiY2Oj7lEAn8dMAwAQEQ0AQEQ0AAAR0QAAREQDABARDQBARDQAABHRAABERAMAEBENAEBENAAAEdEAAEREAwAQEQ0AQEQ0AAAR0QAAREQDABBZ6vf7dY8BAJgDZhoAgIhoAAAiogEAiIgGACAiGgCAiGgAACKiAQCIiAYAIPIfXhPyLH3NW9sAAAAASUVORK5CYII=" height="200" width="700" margin="0 auto"/> @@ -905,7 +905,7 @@ <tr style=";"> <td style="padding:17px 15px;;border-bottom:1px solid rgb(231,231,231);font-size: 15px;padding:17px 15px;color:#0d0d0d;font-family:-apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen-Sans, Cantarell, 'Helvetica Neue', sans-serif;"> - <img height="16px" src='http://example.com/piwik/tests/PHPUnit/proxy/plugins/DevicesDetection/images/brand/Unknown.png'> + <img height="16px" src='http://example.com/piwik/tests/PHPUnit/proxy/plugins/Morpheus/icons/dist/brand/Unknown.png'> Unknown </td> <td style="padding:17px 15px; text-align:right;;border-bottom:1px solid rgb(231,231,231);font-size: 15px;padding:17px 15px;color:#0d0d0d;font-family:-apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen-Sans, Cantarell, 'Helvetica Neue', sans-serif;"> @@ -1007,7 +1007,7 @@ </h2> <img alt="" - src="data:image/png;base64,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" + src="data:image/png;base64,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" height="200" width="700" margin="0 auto"/> @@ -1077,7 +1077,7 @@ </h2> <img alt="" - src="data:image/png;base64,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" + src="data:image/png;base64,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" height="200" width="700" margin="0 auto"/> @@ -1147,7 +1147,7 @@ </h2> <img alt="" - src="data:image/png;base64,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" + src="data:image/png;base64,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" height="200" width="700" margin="0 auto"/> @@ -1285,7 +1285,7 @@ </h2> <img alt="" - src="data:image/png;base64,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" + src="data:image/png;base64,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" height="200" width="700" margin="0 auto"/> @@ -1586,7 +1586,7 @@ </h2> <img alt="" - src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAArwAAADICAIAAACF9KXqAAAGyUlEQVR4nO3dv4scZQDH4TnZNMFKsEmKFINYWMZWRUGwMZAi+AcI1iJoYZUmgggGa7GzskhjaWGRwsYlnSA6jeE2QggGCxUirMXGcZzLzX5vb3ffnb3nqW7nx+4buN35ZOad24P5fF4BACzzVOkBAADjIBoAgIhoAAAiogEAiIgGACAiGgCAiGjYLXVdH7fwiasG9gKA9RINo9E0zdJV6gGAzRENu6Vpmt6Bv67rgVwAgK2ZlB7AWfTRF9/3lnz49otL92rroVsV7ZK2Ntq1vf5QHgCckmgo4Ke7vz969Kh9eO7cucPDw4sXLyb79k48dB8uKqF7qeK4LQFgBS5PlPFHR1VVs9msXdU9Q7D0SJ93gGIA4JREw8gskiKZ8JhvCQAJlyfGpzuzITkPkWwJAEuJhjLOnz8/sLa9QrH0NstkpkK+JQAMEA0FXH2tnh0errZvfuxXCQCsl2go4MrLl6rq0mr7Dt9I2V3rlksA1utgPp+XHgMAMALungAAIqIBAIiIBgAgIhoAgIi7J9bMDQuwId5csAXDt+uLhnXyHVGwId5csAVLv3nA5QlgBCQCbFrS4qIBAM668OydaABGxrUJWK/8PWVOAzAavrIVNqQ7m2GgIUQDMA5OMMCG5LOMXZ4ARkAxwC5wpmGdfLEkbE7vZjDvL9g+33IJAERcngAAIqIBAIiIBgAgIhoAgIhoAAAiogEAiIiGjZhOp6WHAPtpNpvNZrPSo4D9tPTgJRoAgIhoAAAiogEAiIgGACAiGgCAiGgAACKiAQCITEoPYG9Nf/i19BBgDz148FtVVfce+g8PrN/Ph39evjy0gWjYlBuff1d6CABwMm9dGVqr1gGAiGgAACKiAQCIiAYAICIaAICIaAAAIqIBAIiIBgAgIhoAgIhoAAAiogEAiIgGACAiGgCAiGgAACKiAQCIiAYAICIaAICIaAAAIqIBAIiIBgAgIhoAgIhoAAAiq0RDXdcrv95p9gUACpq0P/UO503TbH0wAMAOqeu62wOT7rruit52AMCZcvTiwOSJ2x23Ty8j2lWL5YvO6C184qsCALusd0xfWBINvfMNvYfdLOh2Q+/1es9wun8FALBZx11tWPPdE65oAMCoDcxPmPS2a39ODv9rPG3QPPvSup6qiPr+7dJDAID16B7fuw1x7ETI5BnNWgCAPTMwLWGrf9xJWwDAeC2ZCNmbOdmbBZlEQO9+Ct0AACN1MJ/PS4+hqvZuTsN0Or3x5S+lBgMAq7l18+rAWt89AQBERAMAEBENAEBENAAAEdEAAEREAwAQEQ0AQEQ0AAAR0QAAREQDABARDQBARDQAABHRAABERAMAEBENAEBENAAAEdEAAEREAwAQEQ0AQGRSegCP1fdvlx4CADDEmQYAICIaAICIaAAAIqIBAIjsykTI/XPr5tXSQ4A9NJvNqqq6cOFC6YHAHppOp8MbONMAAEREAwAQEQ0AQEQ0AAAR0QAAREQDABARDQBARDQAABHRAABERAMAEBENAEBENAAAEdEAAEREAwAQEQ0AQEQ0AACRSekB7K33P/229BBIffLeq6WHADAComFTmrsPSw8BANbJ5QkAICIaAICIaAAAIqIBAIjsykTIg+evn2b3rz67du2NF1be/e+vv/nrnQ9OM4Cn7905ze4AsPucaQAAIqIBAIiIBgAgIhoAgIhoAAAiogEAiIgGACAiGgCAiGgAACKiAQCIiAYAICIaAICIaAAAIqIBAIiIBgAgIhoAgIhoAAAik/anuq67K5qm2fpgoKTFW8BvPsBxJt0HPi45s+q6bpqml84AdE0G1rUfo4uYaD9P24fdD9k2OLofu70dK13CrvKbCbDUUDRU/5bB4uduFnS7obuwu+ToMxx9CACMxf+i4egpgeEDvMM/AJwdJ5jTsPLlXteJAWAPLLk80epdiTjRazghAQB7YNt/p8FZBwAYqfRMQ3g3Wm+zpmmOLjnpEGEL2t9Sf60B4Dj/RcPRT8nekvDh0ueBHeS3FGApf0YaAIiIBgAgIhoAgIhoAAAiogEAiIgGACAiGgCAiGgAACKiAQCIiAYAICIaAICIaAAAIqIBAIiIBgAgIhoAgIhoAAAiogEAiIgGACAiGgCAiGgAACKT0gN4bP7j9YKvPnnz9afv3Sk4AADYfc40AAAR0QAAREQDABARDQBAZFcmQu6fj999pfQQAGCdRMOmPHfpmdJDAIB1cnkCAIiIBgAgIhoAgIhoAAAiogEAiIgGACAiGgCAyMF8Pi89BgBgBJxpAAAiogEAiIgGACAiGgCAiGgAACKiAQCIiAYAICIaAIDIP9nw7d9uAspGAAAAAElFTkSuQmCC" + src="data:image/png;base64,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" height="200" width="700" margin="0 auto"/> @@ -1749,7 +1749,7 @@ </h2> <img alt="" - src="data:image/png;base64,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" + src="data:image/png;base64,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" height="200" width="700" margin="0 auto"/> @@ -1910,7 +1910,7 @@ </h2> <img alt="" - src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAArwAAADICAIAAACF9KXqAAAH3UlEQVR4nO3dMWiU/x3H8cegi38JwRQHPfgPJ+JYpG5SjGQuCTg4iAhCBxEHDSIdDDgUUaSjIDjo4PQnAacOYhzSyUaKW1JCh+ohhSzBFEFIOsSeTy7/XD7GJM/d5fUaJM89z+mXg3jvPL/nuexbWVkpAAA201f1AABAdxANAEBENAAAEdEAAEREAwAQEQ0AQEQ0dLd6vb7Rg7+6q82zAKA90dCz5ufnN92lHgDIiYbuNj8/3/LGX6/X2+QCAGzZ/qoHYHN/fvL3lkf+dOV3mz6rWQ/lqmg+0qyN5t6W/lAeALQQDV3gn/9e/PLlS3PzwIEDHz58OHbsWPLclhMP5c3VSigvVWx0JAAUlie6xX9LiqJoNBrNXeUzBJu+0+cdoBgAaCEaetxqUiQXPOZHArA3WZ7ofeUrG5LzEMmRAOxBoqE7HDx4sM3e5grFprdZJlcq5EcCsKeIhi4weq7e+PBha8/N3/tVAgDtiYYu8Iff/1wUP2/tue1vpCzvdcslAO3tW1lZqXoGAKALuHsCAIiIBgAgIhoAgIhoAAAi7p6omBsW4Af5JoJtUb6ZbqNjREOV/I4o+EG+iWBbhN87lieALiYR4Mflte1MAwDsdeEyn2gAul6yFgu0ES7ziQag6zX/g3NNA+wo1zQAABHRAHSx8kIssNP8wqqKucUcfpBvIvhx4feRaAAAIpYnAICIaAAAIqIBAIiIBgAgIhoAgIhoAAAioqEjzMzMVD0CdLdGo9FoNKqeArrbpm9GogEAiIgGACAiGgCAiGgAACKiAQCIiAYAICIaAICIaAAAIqIBAIiIBgAgIhoAgIhoAAAiogEAiIgGACAiGgCAiGgAACL7qx6Arx7/8o+qR4AutrS0VBTFTz/9p+pB6A5/PP/bqkfoSqKhU/z1b/+qegSAvUI0bI3lCQAgIhoAgIhoAAAiogEAiIgGACAiGgCAiGgAACKiAQCIiAYAICIaAICIaAAAIqIBAIiIBgAgIhoAgIhoAAAiogEAiIgGACAiGgCAiGgAACKiAQCIiAYAICIaAICIaAAAIqIBAIiIBgAgIhoAgIhoAAAiogEAiIgGACAiGgCAiGgAACKiAQCIiAYAICIaAICIaAAAIqIBAIiIBgAgIhoAgIhoAAAiogEAiIgGACAiGgCAiGgAACL7qx6gs8zOzk5PT79//74oilqtdvbs2Xq9XvVQANARRMNXU1NTd+7cmZ6ebnn8zJkzd+/eHRoaqmQqAOgclieKoigePXo0PDy8vhiKopienh4eHn748OHuTwUAHUU0FJOTk9euXVteXt7ogOXl5bGxsSdPnuzmVADQafZ6NCwtLV2/fr1NMTTduHFjYWFhF0YCgM6016Ph2bNnq5c9rurr6xsbG3v16tXExMSlS5f6+r69PouLi/fu3atiRgDoCHs9Gp4/f17evH///oMHD4aGhkZHR58+ffr48ePy3hcvXuzudADQQfZ6NLx79675dX9//82bN8t7r1y5cuLEiebm3Nzc0tLS7g0HAJ1ki7dc1uv1+fn57R1l9y0sLBw/fry5ee7cufXHnDx5cm5urrn58eNHn9wAwN70LRrWd0BvlEEbg4ODMzMz7Y8pX/FQFMXAwMBOTgTALln/E2Bvv+VtCx/u1M7U1NTbt2+bm7VabXBwsMJ5ANhGKuF7bX5Nw2qL1f+vzQG/eli9pHz8Rl9v+s/tmjdv3oyMjJQfuXDhQlXDAEDlojMN5XWKljWLjXatft3m4K39c7tmampqZGRkcXGx+UitVrt9+/buTwLADin/aOqsQyKKho1eypZ39PAVb8bE+j+/6+/ZOZOTk+fPny9/4lN/f//ExIS1CYCesdcu49sWW7/lsldf39nZ2cuXL7cUw8uXL0+fPl3hVABQua1Hw+rpgW0cpUPcunWrvCqhGABg1bdoaImA5ETClruhvB6x/tKHCs3Pz5c/9rGvr08xAPSknvy5d6etuaahHAHfe4FCm73lza3OuUtev35d3rx48aJiAOhJXfcO1QlaL4Rc/6q1PNI8PdDmkfJmm57Y9Os2T98hLR/l1HLLJQC9RCh8r73+uydafPr0qbxZq9WqmgQAOo1PhFzj0KFDp06dam4ePny4wmEAoKOIhjXGx8fHx8erngIAOpFoWGNpaenz58/NTZ/mBABNrmlY4+rVq78pcY0MADSJBgAgIhoAgIhoAAAiLoRcY2Rk5MiRI83NgYGBCocBgI4iGtYYHR0dHR2tegoA6ESWJwCAiGgAACKiAQCIiAYAICIaAICIaAAAIqIBAIiIBgAgIhoAgIhoAAAiogEAiIgGACAiGgCAiGgAACKiAQCIiAYAICIaAICIaAAAIqIBAIiIBgAgIhoAgIhoAAAiogEAiIgGACAiGgCAiGgAACKiAQCIiAYAICIaAICIaAAAIqIBAIiIBgAgIhoAgIhoAAAiogEAiIgGACAiGgCAiGgAACKiAQCIiAYAICIaAICIaAAAIqIBAIjsr3oAvpr4y2jVI0AXazQaRVEcPXq06kGglznTAABERAMAEBENAEBENAAAEdEAAEREAwAQEQ0AQEQ0AAAR0QAAREQDABARDQBARDQAABHRAABERAMAEBENAEBENAAAEdEAAET2raysVD0DANAFnGkAACKiAQCIiAYAICIaAICIaAAAIqIBAIiIBgAgIhoAgMj/AO+9UAovy7Z8AAAAAElFTkSuQmCC" + src="data:image/png;base64,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" height="200" width="700" margin="0 auto"/> diff --git a/tests/PHPUnit/System/expected/test_ecommerceOrderWithItems_scheduled_report_in_html_tables_only__ScheduledReports.generateReport_week.original.html b/tests/PHPUnit/System/expected/test_ecommerceOrderWithItems_scheduled_report_in_html_tables_only__ScheduledReports.generateReport_week.original.html index 14ea464a75..84bff31348 100644 --- a/tests/PHPUnit/System/expected/test_ecommerceOrderWithItems_scheduled_report_in_html_tables_only__ScheduledReports.generateReport_week.original.html +++ b/tests/PHPUnit/System/expected/test_ecommerceOrderWithItems_scheduled_report_in_html_tables_only__ScheduledReports.generateReport_week.original.html @@ -863,7 +863,7 @@ <tr style=";"> <td style="padding:17px 15px;;border-bottom:1px solid rgb(231,231,231);font-size: 15px;padding:17px 15px;color:#0d0d0d;font-family:-apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen-Sans, Cantarell, 'Helvetica Neue', sans-serif;"> - <img height="16px" src='http://example.com/piwik/tests/PHPUnit/proxy/plugins/DevicesDetection/images/brand/Unknown.png'> + <img height="16px" src='http://example.com/piwik/tests/PHPUnit/proxy/plugins/Morpheus/icons/dist/brand/Unknown.png'> Unknown </td> <td style="padding:17px 15px; text-align:right;;border-bottom:1px solid rgb(231,231,231);font-size: 15px;padding:17px 15px;color:#0d0d0d;font-family:-apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen-Sans, Cantarell, 'Helvetica Neue', sans-serif;"> diff --git a/tests/PHPUnit/System/expected/test_ecommerceOrderWithItems_scheduled_report_in_pdf_tables_only__ScheduledReports.generateReport_week.original.pdf b/tests/PHPUnit/System/expected/test_ecommerceOrderWithItems_scheduled_report_in_pdf_tables_only__ScheduledReports.generateReport_week.original.pdf Binary files differindex 6f742b60c7..71bbf00529 100644 --- a/tests/PHPUnit/System/expected/test_ecommerceOrderWithItems_scheduled_report_in_pdf_tables_only__ScheduledReports.generateReport_week.original.pdf +++ b/tests/PHPUnit/System/expected/test_ecommerceOrderWithItems_scheduled_report_in_pdf_tables_only__ScheduledReports.generateReport_week.original.pdf diff --git a/tests/PHPUnit/Unit/ConsoleTest.php b/tests/PHPUnit/Unit/ConsoleTest.php new file mode 100644 index 0000000000..f13f825f32 --- /dev/null +++ b/tests/PHPUnit/Unit/ConsoleTest.php @@ -0,0 +1,25 @@ +<?php +/** + * Piwik - free/libre analytics platform + * + * @link http://piwik.org + * @license http://www.gnu.org/licenses/gpl-3.0.html GPL v3 or later + */ +namespace Piwik\Tests\Unit; + +use Piwik\Console; +use Piwik\Version; + +/** + * @group Console + */ +class ConsoleTest extends \PHPUnit_Framework_TestCase +{ + public function testIsApplicationNameAndVersionCorrect() + { + $console = new Console(); + + $this->assertEquals('Piwik', $console->getName()); + $this->assertEquals(Version::VERSION, $console->getVersion()); + } +} diff --git a/tests/UI/expected-screenshots/DashboardManager_removed.png b/tests/UI/expected-screenshots/DashboardManager_removed.png index c3f4c872b8..df2c731a99 100644 --- a/tests/UI/expected-screenshots/DashboardManager_removed.png +++ b/tests/UI/expected-screenshots/DashboardManager_removed.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:bfec34cd02b6d06c3185a332878546247608b9d94bb5622e435c5e6ea6c76ed2 -size 366890 +oid sha256:6c6d41eed07679db507039b41e64fce5642e088ad84515c86b4c33cbe72d8792 +size 367005 diff --git a/tests/UI/expected-screenshots/Dashboard_loaded_token_auth.png b/tests/UI/expected-screenshots/Dashboard_loaded_token_auth.png index 4fe1619f74..4a06725782 100644 --- a/tests/UI/expected-screenshots/Dashboard_loaded_token_auth.png +++ b/tests/UI/expected-screenshots/Dashboard_loaded_token_auth.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:d6bb1736426fcc8662f2ab9fb7683707f47f76acfdfd807da6667025e62075f1 -size 538056 +oid sha256:09fb2cbf638ca3671a6382a11eeb292af94d77c1479de082c37b2efaa7034700 +size 538187 diff --git a/tests/UI/expected-screenshots/Dashboard_removed.png b/tests/UI/expected-screenshots/Dashboard_removed.png index 251e8e4251..95eb9f0c59 100644 --- a/tests/UI/expected-screenshots/Dashboard_removed.png +++ b/tests/UI/expected-screenshots/Dashboard_removed.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:934d56de8199bd5a9dc9354fd0f730dc258054cce977ddb6ad6fa16ecf2ff77a -size 537698 +oid sha256:4881ee29c12b8c00a463d1bcc4d84d422b64bed3c651bb6165ac7db9e4db221b +size 537830 diff --git a/tests/UI/expected-screenshots/Dashboard_widget_add_widget.png b/tests/UI/expected-screenshots/Dashboard_widget_add_widget.png index 831a084eed..8dcf929915 100644 --- a/tests/UI/expected-screenshots/Dashboard_widget_add_widget.png +++ b/tests/UI/expected-screenshots/Dashboard_widget_add_widget.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:fc2e2ca4f458d306b828a6813d99162c5c6bad0db8944c011a7f401127691cf2 -size 37203 +oid sha256:4fcdb9abc4ec83336c6983bf85c16b4e6aecde06f49f160951cf01a442200962 +size 196579 diff --git a/tests/UI/expected-screenshots/EvolutionGraph_annotation_delete.png b/tests/UI/expected-screenshots/EvolutionGraph_annotation_delete.png index 41d21abacd..771a5f4691 100644 --- a/tests/UI/expected-screenshots/EvolutionGraph_annotation_delete.png +++ b/tests/UI/expected-screenshots/EvolutionGraph_annotation_delete.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:b41dbad9fcc7cc7c4eaaaff971ae71a32f4eec5712b7c80cf472e44553e06452 -size 24676 +oid sha256:1f2bfdc7721ab5372524cd4c7d8903e92e21653f41aefe3f9cc0d2ded2ed91da +size 24909 diff --git a/tests/UI/expected-screenshots/EvolutionGraph_annotation_edit_form.png b/tests/UI/expected-screenshots/EvolutionGraph_annotation_edit_form.png index 587509e37c..a526505ece 100644 --- a/tests/UI/expected-screenshots/EvolutionGraph_annotation_edit_form.png +++ b/tests/UI/expected-screenshots/EvolutionGraph_annotation_edit_form.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:3f59c77050157232bef476ce7db0f7cb142f338f09ecb6b10762825ec1784597 -size 30609 +oid sha256:700ea4b0df79c96ff7bd139f2be7e4e10fd457e605f05776896ac3d075a70f1d +size 30993 diff --git a/tests/UI/expected-screenshots/EvolutionGraph_annotation_edit_submit.png b/tests/UI/expected-screenshots/EvolutionGraph_annotation_edit_submit.png index 863db84cda..1b29dab959 100644 --- a/tests/UI/expected-screenshots/EvolutionGraph_annotation_edit_submit.png +++ b/tests/UI/expected-screenshots/EvolutionGraph_annotation_edit_submit.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:9075e528fb365327b60f16db2857226751b389291321d081899ce1b4a264f239 -size 27210 +oid sha256:68f2d40120e5d1d183ac55448009668b4e90cad0d2e63742f9a5935b9c49b9aa +size 27849 diff --git a/tests/UI/expected-screenshots/EvolutionGraph_annotation_starred.png b/tests/UI/expected-screenshots/EvolutionGraph_annotation_starred.png index ef5008365c..e2ae1a43fe 100644 --- a/tests/UI/expected-screenshots/EvolutionGraph_annotation_starred.png +++ b/tests/UI/expected-screenshots/EvolutionGraph_annotation_starred.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:94d4c9296a23c5932f0b3391e892cdb73386eadae2afa2868f895f3d07726c9b -size 26131 +oid sha256:be9ca36adf10dae4fd79ad1f83c6c261f93427511e7775693952bf28a375e9cf +size 26578 diff --git a/tests/UI/expected-screenshots/EvolutionGraph_annotations_all.png b/tests/UI/expected-screenshots/EvolutionGraph_annotations_all.png index e7a44d1529..34496817a5 100644 --- a/tests/UI/expected-screenshots/EvolutionGraph_annotations_all.png +++ b/tests/UI/expected-screenshots/EvolutionGraph_annotations_all.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:b179758966032ee46ccfca480dc3f49d32aebc6892eab19b73458ab139f97652 -size 83792 +oid sha256:201f0f5274affddd466681b4fcb61755c7ec72a08c8734bacf581fe2df3ff47e +size 85480 diff --git a/tests/UI/expected-screenshots/EvolutionGraph_annotations_none.png b/tests/UI/expected-screenshots/EvolutionGraph_annotations_none.png index ce160ed771..3f76e46e10 100644 --- a/tests/UI/expected-screenshots/EvolutionGraph_annotations_none.png +++ b/tests/UI/expected-screenshots/EvolutionGraph_annotations_none.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:e3e87694906156a8cd3dfb61979bd8e167f3cc96f0e7c2037115ecfb325032d2 -size 24833 +oid sha256:df6b55f72e2a345b6f873f7c3e90ee8889b935a72a407e05e406c96a9d6d00f1 +size 25045 diff --git a/tests/UI/expected-screenshots/EvolutionGraph_annotations_single_period.png b/tests/UI/expected-screenshots/EvolutionGraph_annotations_single_period.png index 1932c3d3cd..a76be26c87 100644 --- a/tests/UI/expected-screenshots/EvolutionGraph_annotations_single_period.png +++ b/tests/UI/expected-screenshots/EvolutionGraph_annotations_single_period.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:353eb441717877b73002c7066a4b63b34f21dd5fdae9836a293f20fbd597fccf -size 35288 +oid sha256:3386f6a1cab8b1bc90f5c13fb6568543e138dee60c1c6a5c0af23272ed656caf +size 35701 diff --git a/tests/UI/expected-screenshots/EvolutionGraph_new_annotation_form.png b/tests/UI/expected-screenshots/EvolutionGraph_new_annotation_form.png index 9f57ed2cdb..1479d7a198 100644 --- a/tests/UI/expected-screenshots/EvolutionGraph_new_annotation_form.png +++ b/tests/UI/expected-screenshots/EvolutionGraph_new_annotation_form.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:e93725975918d888d26e14993655b23a65177488d815da1b60a7d1dc625f16c6 -size 31297 +oid sha256:fb5bddf0ecc590b28d9239cbdef014609b876f6c60eeb90db6fabcb1fac808e8 +size 31493 diff --git a/tests/UI/expected-screenshots/EvolutionGraph_new_annotation_submit.png b/tests/UI/expected-screenshots/EvolutionGraph_new_annotation_submit.png index a1c6b5b669..bd5bef5de5 100644 --- a/tests/UI/expected-screenshots/EvolutionGraph_new_annotation_submit.png +++ b/tests/UI/expected-screenshots/EvolutionGraph_new_annotation_submit.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:5c61ecd6709639577eaebf67a9c5c3f924a967113bc1a08e11e4bcda8c368433 -size 25978 +oid sha256:82427b4f972c8c2602a13dfbb22e5c659339e9174263cfbf417421cdb5bf501c +size 26432 diff --git a/tests/UI/expected-screenshots/Installation_congrats.png b/tests/UI/expected-screenshots/Installation_congrats.png index 744573edc4..bce38cb608 100644 --- a/tests/UI/expected-screenshots/Installation_congrats.png +++ b/tests/UI/expected-screenshots/Installation_congrats.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:2a5ae658114ed5aa7bd1bf600328d05f431688a7f8faac9ea7a3ff0492c5df2d -size 163850 +oid sha256:62833169cea606e8429fbba63346045ffc5948946a80296565e94c61f3daf9ff +size 163919 diff --git a/tests/UI/expected-screenshots/Installation_setup_website.png b/tests/UI/expected-screenshots/Installation_setup_website.png index c57321d01a..8503c0b15e 100644 --- a/tests/UI/expected-screenshots/Installation_setup_website.png +++ b/tests/UI/expected-screenshots/Installation_setup_website.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:8d71d3dfe494fd9fc1ac64f165ca945795a8d047f0e862e2328210d4fadce3ea -size 73532 +oid sha256:33b6b974410ca7159767b186462e0406f668d246f599fbe72ca394a9af28da06 +size 73198 diff --git a/tests/UI/expected-screenshots/Installation_setup_website_fail.png b/tests/UI/expected-screenshots/Installation_setup_website_fail.png index 7d81d35d5b..a0733bbd1d 100644 --- a/tests/UI/expected-screenshots/Installation_setup_website_fail.png +++ b/tests/UI/expected-screenshots/Installation_setup_website_fail.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:9e6bc7c4614fb082565f36f3f52556fd996f4d7e6a9b87362e958fa2fe24f643 -size 80117 +oid sha256:e7833320f86007dd35b8f7cb38f763c1026481ce037b3a7cf1cf2ee132871ab4 +size 79787 diff --git a/tests/UI/expected-screenshots/MeasurableManager_add_measurable_view.png b/tests/UI/expected-screenshots/MeasurableManager_add_measurable_view.png index e71e879402..f64025e5ce 100644 --- a/tests/UI/expected-screenshots/MeasurableManager_add_measurable_view.png +++ b/tests/UI/expected-screenshots/MeasurableManager_add_measurable_view.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:a86785bdde4c70ca7dea71035926d5b0232742f1a18f6d0d44c21d74642d00e1 -size 427663 +oid sha256:d6dce0c9a2ffbfc3403d591f81a34552a56ed99213c395bc75ca41cecc24cab2 +size 427678 diff --git a/tests/UI/expected-screenshots/Morpheus_load.png b/tests/UI/expected-screenshots/Morpheus_load.png index 9f66128ef4..b124217687 100644 --- a/tests/UI/expected-screenshots/Morpheus_load.png +++ b/tests/UI/expected-screenshots/Morpheus_load.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:1c4ae719b6a0c2313be51c74531cc9e5878d74838fb450fb06483802f276cd23 -size 1174900 +oid sha256:73c4779f2af6eef0ddc37badcb41bf484d9e3fb056acacbbb78317d23759116f +size 1186022 diff --git a/tests/UI/expected-screenshots/SitesManager_global_settings.png b/tests/UI/expected-screenshots/SitesManager_global_settings.png index 367b51db00..4a7544c1b7 100644 --- a/tests/UI/expected-screenshots/SitesManager_global_settings.png +++ b/tests/UI/expected-screenshots/SitesManager_global_settings.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:d2a6121d0bd6140ff76525be0e9caba01ed07c3fd0a2fa43802444f384ba85d0 -size 260936 +oid sha256:19c35feaaf6438237125a8aab914a901ed9204967aae99947664aaade1faa3d9 +size 260824 diff --git a/tests/UI/expected-screenshots/Theme_home.png b/tests/UI/expected-screenshots/Theme_home.png index a751d02286..3f7a34e7df 100644 --- a/tests/UI/expected-screenshots/Theme_home.png +++ b/tests/UI/expected-screenshots/Theme_home.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:fcc3c528ee455ded2d3f7d1811e62a3fd7bf0031acba5b825ca87ecd35ea8eed -size 536692 +oid sha256:64694774ceca23ba7d665b1991e4c3af953729330b16615e2b1b6cccd761ec62 +size 536680 diff --git a/tests/UI/expected-screenshots/UIIntegrationTest_admin_diagnostics_configfile.png b/tests/UI/expected-screenshots/UIIntegrationTest_admin_diagnostics_configfile.png index b98f8ecb03..5313bdbaff 100644 --- a/tests/UI/expected-screenshots/UIIntegrationTest_admin_diagnostics_configfile.png +++ b/tests/UI/expected-screenshots/UIIntegrationTest_admin_diagnostics_configfile.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:ce5fe2a7e10433eccc7ff65ecc8282e9f261309697be4cf8378eb0384c5c3f8a -size 3559171 +oid sha256:f23888721909bb9fdf8f5fc8d9fd1c30a4b38acf7871f2bce8f871e8d7011ea6 +size 3560277 diff --git a/tests/UI/expected-screenshots/UIIntegrationTest_admin_home.png b/tests/UI/expected-screenshots/UIIntegrationTest_admin_home.png index b90c7f5d5e..8503c491b9 100644 --- a/tests/UI/expected-screenshots/UIIntegrationTest_admin_home.png +++ b/tests/UI/expected-screenshots/UIIntegrationTest_admin_home.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:f7ca0b7e1cbadb43e8f2d93000da883c116a737e7c25192089ab96face178f25 -size 126845 +oid sha256:802770602b9cf5bf51dfdb676d2b7d0169bd26a68d0aa85fb7987a2d988a6e55 +size 126797 diff --git a/tests/UI/expected-screenshots/UIIntegrationTest_admin_plugins.png b/tests/UI/expected-screenshots/UIIntegrationTest_admin_plugins.png index 726fca1877..27f9d770e1 100644 --- a/tests/UI/expected-screenshots/UIIntegrationTest_admin_plugins.png +++ b/tests/UI/expected-screenshots/UIIntegrationTest_admin_plugins.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:0cacebc0fa6fa2aec9920c16311d1ea10a0770d787967f0f411d2b3b172c4ed2 -size 956270 +oid sha256:e7fec3803c8cffdc013bfff529662092c3d14519c188342c19a165da15e01620 +size 976409 diff --git a/tests/UI/expected-screenshots/UIIntegrationTest_admin_privacy_settings.png b/tests/UI/expected-screenshots/UIIntegrationTest_admin_privacy_settings.png index 7fe2bc2cdb..4ff28a59f7 100644 --- a/tests/UI/expected-screenshots/UIIntegrationTest_admin_privacy_settings.png +++ b/tests/UI/expected-screenshots/UIIntegrationTest_admin_privacy_settings.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:70fa3bf708bb0a58e1566013cf0534bcf00b8b7c83f137b765d91fe37ebc06ef -size 258590 +oid sha256:4358bdd7716e4436466c63e3cd64e2b8d7ffe1cd1123026d64a287bd151bd7bd +size 258567 diff --git a/tests/UI/expected-screenshots/UIIntegrationTest_admin_settings_general.png b/tests/UI/expected-screenshots/UIIntegrationTest_admin_settings_general.png index c13ddb72b9..08e94bbc9e 100644 --- a/tests/UI/expected-screenshots/UIIntegrationTest_admin_settings_general.png +++ b/tests/UI/expected-screenshots/UIIntegrationTest_admin_settings_general.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:a0de3aa3ad3d81ac2c29249bc1cf1e9acdd3470eba73fd32a494822ba7a9af15 -size 653375 +oid sha256:127712b381c85f7b7059c74fcb44010591f131ee0ec8eaf0ca9b8e7e2064c770 +size 654055 diff --git a/tests/UI/expected-screenshots/UIIntegrationTest_admin_settings_mobilemessaging.png b/tests/UI/expected-screenshots/UIIntegrationTest_admin_settings_mobilemessaging.png index f64833740d..8dee64314a 100644 --- a/tests/UI/expected-screenshots/UIIntegrationTest_admin_settings_mobilemessaging.png +++ b/tests/UI/expected-screenshots/UIIntegrationTest_admin_settings_mobilemessaging.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:bcd82ed26ee738929a901f7af749fcfcbdb7aa9a25df9ec44381fb7dc587c3e9 -size 152621 +oid sha256:4114501817bdf9d848295200329e8bdad1faf8813e15c4dd1584b4704ad86257 +size 152841 diff --git a/tests/UI/expected-screenshots/UIIntegrationTest_admin_settings_mobilemessaging_provider.png b/tests/UI/expected-screenshots/UIIntegrationTest_admin_settings_mobilemessaging_provider.png index 0aa2d9e038..098d3cac1f 100644 --- a/tests/UI/expected-screenshots/UIIntegrationTest_admin_settings_mobilemessaging_provider.png +++ b/tests/UI/expected-screenshots/UIIntegrationTest_admin_settings_mobilemessaging_provider.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:3bfb217b2559a0903376b184d06acaaac3818b16e265c0a45bfab9b7aa17cdf9 -size 121285 +oid sha256:d1b6d1d9fba747461f0a176b37369f37bbadf3f45bdfeeda71c9878a3e33a4bb +size 121517 diff --git a/tests/UI/expected-screenshots/UIIntegrationTest_api_listing.png b/tests/UI/expected-screenshots/UIIntegrationTest_api_listing.png index 1b665763b3..df77d61967 100644 --- a/tests/UI/expected-screenshots/UIIntegrationTest_api_listing.png +++ b/tests/UI/expected-screenshots/UIIntegrationTest_api_listing.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:e89dec188dfd22ab45968c14547eaa831fb78d0621fff7807d423fab6bf0894f -size 4193113 +oid sha256:64daa79a981cc4fa26baa2b88a4883bcc23a28e291bfaa14855b1c075a0888e6 +size 4233315 diff --git a/tests/UI/expected-screenshots/UIIntegrationTest_dashboard1.png b/tests/UI/expected-screenshots/UIIntegrationTest_dashboard1.png index fe648a5446..e7c292c532 100644 --- a/tests/UI/expected-screenshots/UIIntegrationTest_dashboard1.png +++ b/tests/UI/expected-screenshots/UIIntegrationTest_dashboard1.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:5795c428bdfcffed6ed15c18b22691834b7ec2ed18df5cc9fde5e57d86828cec -size 487989 +oid sha256:35f8e97101e79b367c1714510be3773a6282e89de071f6c46f60a765169e479f +size 488137 diff --git a/tests/UI/expected-screenshots/UIIntegrationTest_dashboard2.png b/tests/UI/expected-screenshots/UIIntegrationTest_dashboard2.png index a1c7909537..1bbe405b57 100644 --- a/tests/UI/expected-screenshots/UIIntegrationTest_dashboard2.png +++ b/tests/UI/expected-screenshots/UIIntegrationTest_dashboard2.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:e30fe1296a83f3cb595783f2f7494b36f1296f342f2c25614e5ce4c5814ba398 -size 1440753 +oid sha256:eabdaf4e0384eb39b23b73f9bf9e7ad6c6424726260a5197ea4f78a0088952b4 +size 1441407 diff --git a/tests/UI/expected-screenshots/UIIntegrationTest_ecommerce_log.png b/tests/UI/expected-screenshots/UIIntegrationTest_ecommerce_log.png index 1cd27cf96f..ee8f18da7b 100644 --- a/tests/UI/expected-screenshots/UIIntegrationTest_ecommerce_log.png +++ b/tests/UI/expected-screenshots/UIIntegrationTest_ecommerce_log.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:acaebcbfa0545af24abd0fc3356f2ab9bb1b142caa5b52a921f363dc4708e3e6 -size 447957 +oid sha256:54d5a5bf44ada674991c3ae24e94641cefbb5e44612b27faa454e7ed556eaf13 +size 448409 diff --git a/tests/UI/expected-screenshots/UIIntegrationTest_fatal_error_safemode.png b/tests/UI/expected-screenshots/UIIntegrationTest_fatal_error_safemode.png index db73bcf5a6..98ed0d33c2 100644 --- a/tests/UI/expected-screenshots/UIIntegrationTest_fatal_error_safemode.png +++ b/tests/UI/expected-screenshots/UIIntegrationTest_fatal_error_safemode.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:ead27f2a738167a13047f24e34ed56914b3aee1dd0ca473e635d25e6a3af1e38 -size 193129 +oid sha256:ce4997e90ad02cac0b258440b26181a3dab713c9fbabfab71156d37c1ac69d3b +size 196162 diff --git a/tests/UI/expected-screenshots/UIIntegrationTest_menu_apidisallowed.png b/tests/UI/expected-screenshots/UIIntegrationTest_menu_apidisallowed.png deleted file mode 100644 index 84c488ce56..0000000000 --- a/tests/UI/expected-screenshots/UIIntegrationTest_menu_apidisallowed.png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:0a2e98763d0164ad875f528aa2cf5b43f59136c20e4eb40191cdf98da2ced882 -size 493887 diff --git a/tests/UI/expected-screenshots/UIIntegrationTest_segmented_visitorlog.png b/tests/UI/expected-screenshots/UIIntegrationTest_segmented_visitorlog.png index e93f72dcbe..1987d000a5 100644 --- a/tests/UI/expected-screenshots/UIIntegrationTest_segmented_visitorlog.png +++ b/tests/UI/expected-screenshots/UIIntegrationTest_segmented_visitorlog.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:9219b7935f8089264403158f7f2797169cb3788ac67d464598d2554cecf4f1c7 -size 793558 +oid sha256:8553fea53c171e73d6eb19d5b815f0b25c7fc170b5d66c5e9d21df3bc17e26a9 +size 794032 diff --git a/tests/UI/expected-screenshots/UIIntegrationTest_visitor_profile_popup.png b/tests/UI/expected-screenshots/UIIntegrationTest_visitor_profile_popup.png index f8c0772272..0ed1242d77 100644 --- a/tests/UI/expected-screenshots/UIIntegrationTest_visitor_profile_popup.png +++ b/tests/UI/expected-screenshots/UIIntegrationTest_visitor_profile_popup.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:4202c32e26df1e3577903ff380004ba52f46b313d0b02ec9ee913d157255f730 -size 228743 +oid sha256:e7d312b0af70a079517a677fba00abf962c4e21ff14e334e13ddb02fccef6f46 +size 228875 diff --git a/tests/UI/expected-screenshots/UIIntegrationTest_visitors_devices.png b/tests/UI/expected-screenshots/UIIntegrationTest_visitors_devices.png index 788ed995c0..fb7836055a 100644 --- a/tests/UI/expected-screenshots/UIIntegrationTest_visitors_devices.png +++ b/tests/UI/expected-screenshots/UIIntegrationTest_visitors_devices.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:84e46a6c71501c0f36628be28836e23eaa603eb7aeeef4c7f7f892942ae047e4 -size 93244 +oid sha256:e63248f8321005905b35329822a739873a5722d639190acbfc5e6855a0bc6377 +size 93680 diff --git a/tests/UI/expected-screenshots/UIIntegrationTest_visitors_with_site_search_visitorlog.png b/tests/UI/expected-screenshots/UIIntegrationTest_visitors_with_site_search_visitorlog.png index f9084b46f2..4440cc5798 100644 --- a/tests/UI/expected-screenshots/UIIntegrationTest_visitors_with_site_search_visitorlog.png +++ b/tests/UI/expected-screenshots/UIIntegrationTest_visitors_with_site_search_visitorlog.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:87f45e8093a90c7ff913de3da13d583bfc12bc465c0e7b70f3142b9909f5e17c -size 107636 +oid sha256:cf2276f3d97d6a06769672b8daea66634a55d4e3791669b9421560c61cc42b01 +size 107714 diff --git a/tests/UI/expected-screenshots/UIIntegrationTest_widgetize_ecommercelog.png b/tests/UI/expected-screenshots/UIIntegrationTest_widgetize_ecommercelog.png index 73c08bfaa8..f4a15eebb3 100644 --- a/tests/UI/expected-screenshots/UIIntegrationTest_widgetize_ecommercelog.png +++ b/tests/UI/expected-screenshots/UIIntegrationTest_widgetize_ecommercelog.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:cada449b2e86e1151601de02d1992fb0fa0e15d6f8c3776ffe6d225a91580173 -size 442565 +oid sha256:028f3354d882d0ac8291f81e67e64d8e841ca1b9dbd6a68ae473ae7ce06b7b3b +size 442772 diff --git a/tests/UI/expected-screenshots/UIIntegrationTest_widgetize_visitor_log.png b/tests/UI/expected-screenshots/UIIntegrationTest_widgetize_visitor_log.png index 60daf5906f..395b8dd15b 100644 --- a/tests/UI/expected-screenshots/UIIntegrationTest_widgetize_visitor_log.png +++ b/tests/UI/expected-screenshots/UIIntegrationTest_widgetize_visitor_log.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:631e7e5f6270af4f5c4ae945661ef109403af6d7b4cdacebfc2fd53e8e326802 -size 626906 +oid sha256:c34486e4ef8423a4b1f7607d57b70e6d8116c254a6de5c5d938fffef63b4ff9e +size 627836 diff --git a/tests/UI/expected-screenshots/ViewDataTableTest_12_aggregate_shown.png b/tests/UI/expected-screenshots/ViewDataTableTest_12_aggregate_shown.png index 87a4cf6185..bae3187e57 100644 --- a/tests/UI/expected-screenshots/ViewDataTableTest_12_aggregate_shown.png +++ b/tests/UI/expected-screenshots/ViewDataTableTest_12_aggregate_shown.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:9e9e2064a5d68ec792c9f86751e049c6473e1d6b1396fa60079d734305e12a62 -size 70625 +oid sha256:5a1e26b90b295ae91ca7a830822862758fa1e3197aa0b958635895cfeac1b2ef +size 71028 diff --git a/tests/UI/specs/Dashboard_spec.js b/tests/UI/specs/Dashboard_spec.js index e585bc719f..9378eecc57 100644 --- a/tests/UI/specs/Dashboard_spec.js +++ b/tests/UI/specs/Dashboard_spec.js @@ -124,17 +124,27 @@ describe("Dashboard", function () { page.mouseMove('.widgetpreview-categorylist>li:contains(Live!)'); // have to mouse move twice... otherwise Live! will just be highlighted page.click('.widgetpreview-categorylist>li:contains(Live!)'); - page.mouseMove('.widgetpreview-categorylist>li:contains(Times):first'); - page.click('.widgetpreview-categorylist>li:contains(Times):first'); + page.mouseMove('.widgetpreview-categorylist>li:contains(Actions):first'); + page.click('.widgetpreview-categorylist>li:contains(Actions):first'); - page.mouseMove('.widgetpreview-widgetlist>li:contains(Visits per local time)'); - page.click('.widgetpreview-widgetlist>li:contains(Visits per local time)'); + page.mouseMove('.widgetpreview-widgetlist>li:contains(Pages):first'); + page.click('.widgetpreview-widgetlist>li:contains(Pages):first'); + }, done); + }); + + it("should open row evolution", function (done) { + expect.screenshot("rowevolution").to.be.capture(function (page) { + page.mouseMove('#widgetActionsgetPageUrls table.dataTable tbody tr:contains(thankyou)'); + page.mouseMove('a.actionRowEvolution:visible'); // necessary to get popover to display + page.click('a.actionRowEvolution:visible', 2000); }, done); }); it("should remove widget when remove widget icon is clicked", function (done) { expect.screenshot("widget_move_removed").to.be.capture(function (page) { - var widget = '[id="widgetVisitTimegetVisitInformationPerLocalTime"]'; + page.click('.ui-dialog-titlebar-close:visible'); // close row evolution + + var widget = '[id="widgetActionsgetPageUrls"]'; page.mouseMove(widget + ' .widgetTop'); page.click(widget + ' .button#close'); diff --git a/tests/UI/specs/UIIntegration_spec.js b/tests/UI/specs/UIIntegration_spec.js index a1e43ead5c..a7d781ae69 100644 --- a/tests/UI/specs/UIIntegration_spec.js +++ b/tests/UI/specs/UIIntegration_spec.js @@ -399,9 +399,10 @@ describe("UIIntegrationTest", function () { // TODO: Rename to Piwik? }, done); }); - it('should not display API response in the content', function (done) { - expect.screenshot('menu_apidisallowed').to.be.captureSelector('#content', function (page) { - page.load("?" + urlBase + "#?" + generalParams + "&module=API&action=SitesManager.getImageTrackingCode"); + it('should not display API response in the content and redirect to dashboard instead', function (done) { + expect.page().contains('#dashboardWidgetsArea', /*'menu_apidisallowed',*/ function (page) { + var url = "?" + urlBase + "#?" + generalParams + "&module=API&action=SitesManager.getImageTrackingCode"; + page.load(url, 2000); }, done); }); diff --git a/tests/javascript/index.php b/tests/javascript/index.php index bdc83d5e9c..163baa40f7 100644 --- a/tests/javascript/index.php +++ b/tests/javascript/index.php @@ -2104,7 +2104,7 @@ function PiwikTest() { }); test("API methods", function() { - expect(79); + expect(87); equal( typeof Piwik.addPlugin, 'function', 'addPlugin' ); equal( typeof Piwik.addPlugin, 'function', 'addTracker' ); @@ -2166,6 +2166,11 @@ function PiwikTest() { equal( typeof tracker.setCookieNamePrefix, 'function', 'setCookieNamePrefix' ); equal( typeof tracker.setCookieDomain, 'function', 'setCookieDomain' ); equal( typeof tracker.setCookiePath, 'function', 'setCookiePath' ); + equal( typeof tracker.setSessionCookie, 'function', 'setSessionCookie' ); + equal( typeof tracker.getCookie, 'function', 'getCookie' ); + equal( typeof tracker.hasCookies, 'function', 'hasCookies' ); + equal( typeof tracker.getCookiePath, 'function', 'getCookiePath' ); + equal( typeof tracker.getSessionCookieTimeout, 'function', 'getSessionCookieTimeout' ); equal( typeof tracker.setVisitorCookieTimeout, 'function', 'setVisitorCookieTimeout' ); equal( typeof tracker.setSessionCookieTimeout, 'function', 'setSessionCookieTimeout' ); equal( typeof tracker.setReferralCookieTimeout, 'function', 'setReferralCookieTimeout' ); @@ -2179,8 +2184,11 @@ function PiwikTest() { equal( typeof tracker.setCountPreRendered, 'function', 'setCountPreRendered' ); equal( typeof tracker.trackGoal, 'function', 'trackGoal' ); equal( typeof tracker.trackLink, 'function', 'trackLink' ); + equal( typeof tracker.getNumTrackedPageViews, 'function', 'getNumTrackedPageViews' ); equal( typeof tracker.trackPageView, 'function', 'trackPageView' ); equal( typeof tracker.trackRequest, 'function', 'trackRequest' ); + equal( typeof tracker.disableCookies, 'function', 'disableCookies' ); + equal( typeof tracker.deleteCookies, 'function', 'deleteCookies' ); // content equal( typeof tracker.trackAllContentImpressions, 'function', 'trackAllContentImpressions' ); equal( typeof tracker.trackVisibleContentImpressions, 'function', 'trackVisibleContentImpressions' ); @@ -2515,7 +2523,7 @@ function PiwikTest() { }); test("Tracker setDomains(), isSiteHostName(), isSiteHostPath(), and getLinkIfShouldBeProcessed()", function() { - expect(165); + expect(168); var tracker = Piwik.getTracker(); var initialDomains = tracker.getDomains(); @@ -2755,17 +2763,22 @@ function PiwikTest() { */ tracker.setCookiePath(null); tracker.setDomains( ['.' + domainAlias + '/tests'] ); - equal(null, tracker.getConfigCookiePath(), 'should not set a cookie path automatically'); + equal(null, tracker.getCookiePath(), 'should not set a cookie path automatically'); tracker.setCookiePath(null); tracker.setDomains( ['.' + domainAlias + '/tests/javascript'] ); - equal(null, tracker.getConfigCookiePath(), 'should not set a cookie path automatically'); + equal(null, tracker.getCookiePath(), 'should not set a cookie path automatically'); tracker.setCookiePath('/path2'); tracker.setDomains( ['.' + domainAlias + '/tests/javascript', '.' + domainAlias + '/tests'] ); - equal('/path2', tracker.getConfigCookiePath(), 'should not set a cookie path automatically'); + equal('/path2', tracker.getCookiePath(), 'should not set a cookie path automatically'); tracker.setCookiePath(null); + + strictEqual(true, tracker.hasCookies()); + tracker.setSessionCookie('mytest', 'myvalue'); + equal('myvalue', tracker.getCookie('mytest')); + strictEqual(null, tracker.getCookie('34343434343'), 'not existing cookie returns null'); }); test("Tracker CrossDomainLinking()", function() { @@ -3493,7 +3506,7 @@ if ($mysql) { }); test("tracking", function() { - expect(149); + expect(152); // Prevent Opera and HtmlUnit from performing the default action (i.e., load the href URL) var stopEvent = function (evt) { @@ -3513,7 +3526,9 @@ if ($mysql) { var tracker = Piwik.getTracker(); tracker.setTrackerUrl("piwik.php"); tracker.setSiteId(1); - + + strictEqual(0, tracker.getNumTrackedPageViews(), 'getNumTrackedPageViews, is zero by default'); + var piwikUrl = location.href; if (piwikUrl.indexOf('?') > 0) { piwikUrl = piwikUrl.substr(0, piwikUrl.indexOf('?')); @@ -3631,6 +3646,8 @@ if ($mysql) { referrerTimestamp = Math.round(new Date().getTime() / 1000); tracker.trackPageView(); + strictEqual(1, tracker.getNumTrackedPageViews(), 'getNumTrackedPageViews, should increase num pageview counter'); + var idPageview = tracker.getConfigIdPageView(); ok(/([0-9a-zA-Z]){6}/.test(idPageview), 'trackPageview, should generate a random pageview id'); @@ -3638,6 +3655,7 @@ if ($mysql) { equal(tracker.getCustomDimension(2), "", "custom dimensions should not be cleared after a tracked pageview"); tracker.trackPageView("CustomTitleTest", {dimension2: 'my new value', dimension5: 'another dimension'}); + strictEqual(2, tracker.getNumTrackedPageViews(), 'getNumTrackedPageViews, should increase num pageview counter'); var idPageviewCustomTitle = tracker.getConfigIdPageView(); ok(idPageviewCustomTitle != idPageview, 'trackPageview, should generate a new random pageview id whenever it is called'); diff --git a/tests/travis b/tests/travis -Subproject e3ee1bc4a16a93e807b1cfbcee42567cd5b8fcb +Subproject 2b964578ba1b74e28699ae75d9fee3402258b5d |