Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/matomo-org/matomo.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--composer.json2
-rw-r--r--composer.lock12
-rw-r--r--core/Tracker/Request.php8
-rw-r--r--core/Tracker/TableLogAction.php17
-rw-r--r--js/piwik.js26
-rw-r--r--js/piwik.min.js76
-rw-r--r--matomo.js76
-rw-r--r--piwik.js76
-rw-r--r--plugins/API/API.php3
-rw-r--r--plugins/API/tests/System/expected/test_AutoSuggestAPITest__Live.getLastVisitsDetails_range.xml106
-rw-r--r--plugins/API/tests/System/expected/test_AutoSuggestAPITest_productViewCategory__API.getSuggestedValuesForSegment.xml8
-rw-r--r--plugins/API/tests/System/expected/test_AutoSuggestAPITest_productViewCategory__VisitsSummary.get_range.xml12
-rw-r--r--plugins/API/tests/System/expected/test_AutoSuggestAPITest_productViewName__API.getSuggestedValuesForSegment.xml4
-rw-r--r--plugins/API/tests/System/expected/test_AutoSuggestAPITest_productViewName__VisitsSummary.get_range.xml12
-rw-r--r--plugins/API/tests/System/expected/test_AutoSuggestAPITest_productViewPrice__API.getSuggestedValuesForSegment.xml4
-rw-r--r--plugins/API/tests/System/expected/test_AutoSuggestAPITest_productViewPrice__VisitsSummary.get_range.xml12
-rw-r--r--plugins/API/tests/System/expected/test_AutoSuggestAPITest_productViewSku__API.getSuggestedValuesForSegment.xml4
-rw-r--r--plugins/API/tests/System/expected/test_AutoSuggestAPITest_productViewSku__VisitsSummary.get_range.xml12
-rw-r--r--plugins/CoreConsole/tests/System/expected/test_ArchiveCronTest_preArchivedSegment0_noOptions__Live.getLastVisitsDetails_day.xml4
-rw-r--r--plugins/CoreConsole/tests/System/expected/test_ArchiveCronTest_preArchivedSegment0_noOptions__Live.getLastVisitsDetails_year.xml9
-rw-r--r--plugins/CoreConsole/tests/System/expected/test_ArchiveCronTest_preArchivedSegment1_noOptions__Live.getLastVisitsDetails_day.xml4
-rw-r--r--plugins/CoreConsole/tests/System/expected/test_ArchiveCronTest_preArchivedSegment1_noOptions__Live.getLastVisitsDetails_year.xml9
-rw-r--r--plugins/CoreUpdater/tests/UI/expected-screenshots/CoreUpdaterDb_main.png4
-rw-r--r--plugins/CoreUpdater/tests/UI/expected-screenshots/CoreUpdaterDb_main_instance.png4
m---------plugins/CustomDimensions0
-rw-r--r--plugins/CustomVariables/Archiver.php7
-rw-r--r--plugins/Ecommerce/Columns/ProductViewCategory.php132
-rw-r--r--plugins/Ecommerce/Columns/ProductViewCategory2.php23
-rw-r--r--plugins/Ecommerce/Columns/ProductViewCategory3.php23
-rw-r--r--plugins/Ecommerce/Columns/ProductViewCategory4.php23
-rw-r--r--plugins/Ecommerce/Columns/ProductViewCategory5.php23
-rw-r--r--plugins/Ecommerce/Columns/ProductViewName.php57
-rw-r--r--plugins/Ecommerce/Columns/ProductViewPrice.php40
-rw-r--r--plugins/Ecommerce/Columns/ProductViewSku.php57
-rw-r--r--plugins/Ecommerce/Ecommerce.php30
-rw-r--r--plugins/Ecommerce/VisitorDetails.php40
-rw-r--r--plugins/Ecommerce/lang/en.json4
-rw-r--r--plugins/Ecommerce/templates/_actionTooltip.twig15
-rw-r--r--plugins/Ecommerce/tests/System/expected/test_ecommerceOrderWithItems_AbandonedCarts__Goals.getItemsCategory_day.xml16
-rw-r--r--plugins/Ecommerce/tests/System/expected/test_ecommerceOrderWithItems_AbandonedCarts__Goals.getItemsName_day.xml6
-rw-r--r--plugins/Ecommerce/tests/System/expected/test_ecommerceOrderWithItems_AbandonedCarts__Goals.getItemsSku_day.xml6
-rw-r--r--plugins/Ecommerce/tests/System/expected/test_ecommerceOrderWithItems_LiveEcommerceStatusOrdered__Live.getLastVisitsDetails_day.xml62
-rw-r--r--plugins/Ecommerce/tests/System/expected/test_ecommerceOrderWithItems_Metadata_ItemsCategory__API.getProcessedReport_day.xml2
-rw-r--r--plugins/Ecommerce/tests/System/expected/test_ecommerceOrderWithItems_Metadata_ItemsSku__API.getProcessedReport_day.xml2
-rw-r--r--plugins/Ecommerce/tests/System/expected/test_ecommerceOrderWithItems_SegmentCountryIsFr__Goals.getItemsCategory_day.xml12
-rw-r--r--plugins/Ecommerce/tests/System/expected/test_ecommerceOrderWithItems_SegmentCountryIsFr__Goals.getItemsName_day.xml2
-rw-r--r--plugins/Ecommerce/tests/System/expected/test_ecommerceOrderWithItems_SegmentCountryIsFr__Goals.getItemsSku_day.xml4
-rw-r--r--plugins/Ecommerce/tests/System/expected/test_ecommerceOrderWithItems_SegmentPageUrlContains__Goals.getItemsCategory_day.xml16
-rw-r--r--plugins/Ecommerce/tests/System/expected/test_ecommerceOrderWithItems_SegmentPageUrlContains__Goals.getItemsName_day.xml6
-rw-r--r--plugins/Ecommerce/tests/System/expected/test_ecommerceOrderWithItems_SegmentPageUrlContains__Goals.getItemsSku_day.xml6
-rw-r--r--plugins/Ecommerce/tests/System/expected/test_ecommerceOrderWithItems__CustomVariables.getCustomVariables_day.xml157
-rw-r--r--plugins/Ecommerce/tests/System/expected/test_ecommerceOrderWithItems__Goals.getItemsCategory_day.xml16
-rw-r--r--plugins/Ecommerce/tests/System/expected/test_ecommerceOrderWithItems__Goals.getItemsName_day.xml6
-rw-r--r--plugins/Ecommerce/tests/System/expected/test_ecommerceOrderWithItems__Goals.getItemsSku_day.xml6
-rw-r--r--plugins/Ecommerce/tests/System/expected/test_ecommerceOrderWithItems__Live.getLastVisitsDetails_day.xml278
-rw-r--r--plugins/Ecommerce/tests/System/expected/test_ecommerceOrderWithItemsmultipleDates__Goals.getItemsCategory_day.xml22
-rw-r--r--plugins/Ecommerce/tests/System/expected/test_ecommerceOrderWithItemsmultipleDates__Goals.getItemsName_day.xml10
-rw-r--r--plugins/Ecommerce/tests/System/expected/test_ecommerceOrderWithItemsmultipleDates__Goals.getItemsSku_day.xml10
-rw-r--r--plugins/Ecommerce/tests/System/expected/test_ecommerceOrderWithItemsmultipleDates_andMultipleWebsites__Goals.getItemsCategory_day.xml73
-rw-r--r--plugins/Ecommerce/tests/System/expected/test_ecommerceOrderWithItemsmultipleDates_andMultipleWebsites__Goals.getItemsName_day.xml41
-rw-r--r--plugins/Ecommerce/tests/System/expected/test_ecommerceOrderWithItemsmultipleDates_andMultipleWebsites__Goals.getItemsSku_day.xml37
-rw-r--r--plugins/Goals/API.php45
-rw-r--r--plugins/Goals/Archiver.php97
-rw-r--r--plugins/PagePerformance/tests/UI/expected-screenshots/PagePerformance_visualizations.png4
-rw-r--r--plugins/PrivacyManager/tests/System/expected/test___PrivacyManager.getAvailableLinkVisitActionColumnsToAnonymize.xml32
-rw-r--r--tests/PHPUnit/Fixtures/ManyVisitsWithGeoIPAndEcommerce.php5
-rw-r--r--tests/PHPUnit/Fixtures/TwoSitesEcommerceOrderWithItems.php6
-rw-r--r--tests/PHPUnit/System/expected/test_ImportLogs__Live.getLastVisitsDetails_range.xml77
-rw-r--r--tests/PHPUnit/System/expected/test_ImportLogs__PrivacyManager.getAvailableLinkVisitActionColumnsToAnonymize.xml32
-rw-r--r--tests/PHPUnit/System/expected/test_ImportLogs_siteIdThree_TrackedUsingLogReplayWithFixedSiteId__Live.getLastVisitsDetails_range.xml47
-rw-r--r--tests/PHPUnit/System/expected/test_OneVisitorTwoVisits__PrivacyManager.getAvailableLinkVisitActionColumnsToAnonymize.xml32
-rw-r--r--tests/PHPUnit/System/expected/test_apiGetReportMetadata__API.getSegmentsMetadata.xml31
-rw-r--r--tests/PHPUnit/System/expected/test_noVisit_PeriodIsLast__PrivacyManager.getAvailableLinkVisitActionColumnsToAnonymize.xml32
-rw-r--r--tests/PHPUnit/System/expected/test_noVisit__PrivacyManager.getAvailableLinkVisitActionColumnsToAnonymize.xml32
-rw-r--r--tests/PHPUnit/System/expected/test_reportLimiting__Goals.getItemsCategory_day.xml37
-rw-r--r--tests/PHPUnit/System/expected/test_reportLimiting__Goals.getItemsName_day.xml217
-rw-r--r--tests/PHPUnit/System/expected/test_reportLimiting__Goals.getItemsSku_day.xml228
-rw-r--r--tests/PHPUnit/System/expected/test_reportLimiting_flattened__Goals.getItemsCategory_day.xml47
-rw-r--r--tests/PHPUnit/System/expected/test_reportLimiting_flattened__Goals.getItemsName_day.xml247
-rw-r--r--tests/PHPUnit/System/expected/test_reportLimiting_flattened__Goals.getItemsSku_day.xml253
-rw-r--r--tests/PHPUnit/System/expected/test_reportLimiting_rankingQuery__Goals.getItemsCategory_day.xml37
-rw-r--r--tests/PHPUnit/System/expected/test_reportLimiting_rankingQuery__Goals.getItemsName_day.xml217
-rw-r--r--tests/PHPUnit/System/expected/test_reportLimiting_rankingQuery__Goals.getItemsSku_day.xml228
-rw-r--r--tests/javascript/index.php40
84 files changed, 2947 insertions, 850 deletions
diff --git a/composer.json b/composer.json
index cec2176dfc..0811d9b457 100644
--- a/composer.json
+++ b/composer.json
@@ -35,7 +35,7 @@
"matomo/cache": "~2.0",
"matomo/decompress": "~2.0",
"matomo/ini": "~2.0",
- "matomo/matomo-php-tracker": "dev-4.x-dev",
+ "matomo/matomo-php-tracker": "dev-ecommerceview",
"matomo/network": "~2.0",
"matomo/referrer-spam-blacklist": "^3.11",
"matomo/searchengine-and-social-list": "~3.0",
diff --git a/composer.lock b/composer.lock
index 5a0c0101dd..82017d2b4b 100644
--- a/composer.lock
+++ b/composer.lock
@@ -4,7 +4,7 @@
"Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies",
"This file is @generated automatically"
],
- "content-hash": "af2d8862dd5d4cf2d4a8570cb4e5f307",
+ "content-hash": "154553adcd814500964bfe8686f11a00",
"packages": [
{
"name": "composer/ca-bundle",
@@ -544,16 +544,16 @@
},
{
"name": "matomo/matomo-php-tracker",
- "version": "dev-4.x-dev",
+ "version": "dev-ecommerceview",
"source": {
"type": "git",
"url": "https://github.com/matomo-org/matomo-php-tracker.git",
- "reference": "69e876faf4f981bafa3f65c8dd78a1d131badc1c"
+ "reference": "036f4974eb1024047805cb34c0b999c44283db62"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/matomo-org/matomo-php-tracker/zipball/69e876faf4f981bafa3f65c8dd78a1d131badc1c",
- "reference": "69e876faf4f981bafa3f65c8dd78a1d131badc1c",
+ "url": "https://api.github.com/repos/matomo-org/matomo-php-tracker/zipball/036f4974eb1024047805cb34c0b999c44283db62",
+ "reference": "036f4974eb1024047805cb34c0b999c44283db62",
"shasum": ""
},
"require": {
@@ -588,7 +588,7 @@
"piwik",
"tracker"
],
- "time": "2020-05-27T06:53:04+00:00"
+ "time": "2020-05-28T09:29:11+00:00"
},
{
"name": "matomo/network",
diff --git a/core/Tracker/Request.php b/core/Tracker/Request.php
index 441b91f5c9..b40a283e41 100644
--- a/core/Tracker/Request.php
+++ b/core/Tracker/Request.php
@@ -390,6 +390,12 @@ class Request
'ec_dt' => array(false, 'float'),
'ec_items' => array('', 'json'),
+ // ecommerce product/category view
+ '_pkc' => array('', 'string'),
+ '_pks' => array('', 'string'),
+ '_pkn' => array('', 'string'),
+ '_pkp' => array(false, 'float'),
+
// Events
'e_c' => array('', 'string'),
'e_a' => array('', 'string'),
@@ -455,7 +461,7 @@ class Request
}
}
- private function hasParam($name)
+ public function hasParam($name)
{
return isset($this->params[$name]);
}
diff --git a/core/Tracker/TableLogAction.php b/core/Tracker/TableLogAction.php
index aba3b8eb19..fea4cac171 100644
--- a/core/Tracker/TableLogAction.php
+++ b/core/Tracker/TableLogAction.php
@@ -226,6 +226,8 @@ class TableLogAction
'contentInteraction' => Action::TYPE_CONTENT_INTERACTION,
'productName' => Action::TYPE_ECOMMERCE_ITEM_NAME,
'productSku' => Action::TYPE_ECOMMERCE_ITEM_SKU,
+ 'productViewName' => Action::TYPE_ECOMMERCE_ITEM_NAME,
+ 'productViewSku' => Action::TYPE_ECOMMERCE_ITEM_SKU
);
if (!empty($exactMatch[$segmentName])) {
@@ -233,17 +235,14 @@ class TableLogAction
}
if (stripos($segmentName, 'pageurl') !== false) {
- $actionType = Action::TYPE_PAGE_URL;
- return $actionType;
+ return Action::TYPE_PAGE_URL;
} elseif (stripos($segmentName, 'pagetitle') !== false) {
- $actionType = Action::TYPE_PAGE_TITLE;
- return $actionType;
+ return Action::TYPE_PAGE_TITLE;
} elseif (stripos($segmentName, 'sitesearch') !== false) {
- $actionType = Action::TYPE_SITE_SEARCH;
- return $actionType;
- } elseif (stripos($segmentName, 'productcategory') !== false) {
- $actionType = Action::TYPE_ECOMMERCE_ITEM_CATEGORY;
- return $actionType;
+ return Action::TYPE_SITE_SEARCH;
+ } elseif (stripos($segmentName, 'productcategory') !== false
+ || stripos($segmentName, 'productviewcategory') !== false) {
+ return Action::TYPE_ECOMMERCE_ITEM_CATEGORY;
} else {
throw new \Exception("We cannot guess the action type from the segment $segmentName.");
}
diff --git a/js/piwik.js b/js/piwik.js
index 4783eba905..b961361cbc 100644
--- a/js/piwik.js
+++ b/js/piwik.js
@@ -2277,6 +2277,9 @@ if (typeof window.Piwik !== 'object') {
// Custom Variables names and values are each truncated before being sent in the request or recorded in the cookie
customVariableMaximumLength = 200,
+ // Ecommerce product view
+ ecommerceProductView = {},
+
// Ecommerce items
ecommerceItems = {},
@@ -3682,6 +3685,13 @@ if (typeof window.Piwik !== 'object') {
// we deleted all keys from custom data
}
+ // product page view
+ for (i in ecommerceProductView) {
+ if (Object.prototype.hasOwnProperty.call(ecommerceProductView, i)) {
+ request += '&' + i + '=' + encodeWrapper(ecommerceProductView[i]);
+ }
+ }
+
// custom dimensions
for (i in customDimensions) {
if (Object.prototype.hasOwnProperty.call(customDimensions, i)) {
@@ -6309,8 +6319,6 @@ if (typeof window.Piwik !== 'object') {
/**
* Used to record that the current page view is an item (product) page view, or a Ecommerce Category page view.
* This must be called before trackPageView() on the product/category page.
- * It will set 3 custom variables of scope "page" with the SKU, Name and Category for this page view.
- * Note: Custom Variables of scope "page" slots 3, 4 and 5 will be used.
*
* On a category page, you can set the parameter category, and set the other parameters to empty string or false
*
@@ -6323,6 +6331,8 @@ if (typeof window.Piwik !== 'object') {
* @param float price Item's display price, not use in standard Piwik reports, but output in API product reports.
*/
this.setEcommerceView = function (sku, name, category, price) {
+ ecommerceProductView = {};
+
if (isNumberOrHasLength(category)) {
category = String(category);
}
@@ -6332,10 +6342,12 @@ if (typeof window.Piwik !== 'object') {
category = windowAlias.JSON.stringify(category);
}
- customVariablesPage[5] = ['_pkc', category];
+ var param = '_pkc';
+ ecommerceProductView[param] = category;
if (isDefined(price) && price !== null && price !== false && String(price).length) {
- customVariablesPage[2] = ['_pkp', price];
+ param = '_pkp';
+ ecommerceProductView[param] = price;
}
// On a category page, do not track Product name not defined
@@ -6344,14 +6356,16 @@ if (typeof window.Piwik !== 'object') {
}
if (isNumberOrHasLength(sku)) {
- customVariablesPage[3] = ['_pks', sku];
+ param = '_pks';
+ ecommerceProductView[param] = sku;
}
if (!isNumberOrHasLength(name)) {
name = "";
}
- customVariablesPage[4] = ['_pkn', name];
+ param = '_pkn';
+ ecommerceProductView[param] = name;
};
/**
diff --git a/js/piwik.min.js b/js/piwik.min.js
index 73bf10e1b9..cb16f0764b 100644
--- a/js/piwik.min.js
+++ b/js/piwik.min.js
@@ -28,43 +28,43 @@ if(-1!==M(aq,ao)&&ae.findFirstNodeHavingAttributeWithValue(at,"src")){var ar=ae.
if(T.innerHeight&&ao>T.innerHeight){ao=T.innerHeight}return((at.bottom>0||aq)&&at.right>0&&at.left<ap&&((at.top<ao)||aq))},isNodeVisible:function(ap){var ao=j(ap);var aq=this.isOrWasNodeInViewport(ap);return ao&&aq},buildInteractionRequestParams:function(ao,ap,aq,ar){var at="";if(ao){at+="c_i="+t(ao)}if(ap){if(at){at+="&"}at+="c_n="+t(ap)}if(aq){if(at){at+="&"}at+="c_p="+t(aq)}if(ar){if(at){at+="&"}at+="c_t="+t(ar)}return at},buildImpressionRequestParams:function(ao,ap,aq){var ar="c_n="+t(ao)+"&c_p="+t(ap);if(aq){ar+="&c_t="+t(aq)}return ar},buildContentBlock:function(aq){if(!aq){return}var ao=this.findContentName(aq);var ap=this.findContentPiece(aq);var ar=this.findContentTarget(aq);ao=this.trim(ao);ap=this.trim(ap);ar=this.trim(ar);return{name:ao||"Unknown",piece:ap||"Unknown",target:ar||""}},collectContent:function(ar){if(!ar||!ar.length){return[]}var aq=[];var ao,ap;for(ao=0;ao<ar.length;ao++){ap=this.buildContentBlock(ar[ao]);if(J(ap)){aq.push(ap)}}return aq},setLocation:function(ao){this.location=ao
},getLocation:function(){var ao=this.location||T.location;if(!ao.origin){ao.origin=ao.protocol+"//"+ao.hostname+(ao.port?":"+ao.port:"")}return ao},toAbsoluteUrl:function(ap){if((!ap||String(ap)!==ap)&&ap!==""){return ap}if(""===ap){return this.getLocation().href}if(ap.search(/^\/\//)!==-1){return this.getLocation().protocol+ap}if(ap.search(/:\/\//)!==-1){return ap}if(0===ap.indexOf("#")){return this.getLocation().origin+this.getLocation().pathname+ap}if(0===ap.indexOf("?")){return this.getLocation().origin+this.getLocation().pathname+ap}if(0===ap.search("^[a-zA-Z]{2,11}:")){return ap}if(ap.search(/^\//)!==-1){return this.getLocation().origin+ap}var ao="(.*/)";var aq=this.getLocation().origin+this.getLocation().pathname.match(new RegExp(ao))[0];return aq+ap},isUrlToCurrentDomain:function(ap){var aq=this.toAbsoluteUrl(ap);if(!aq){return false}var ao=this.getLocation().origin;if(ao===aq){return true}if(0===String(aq).indexOf(ao)){if(":"===String(aq).substr(ao.length,1)){return false}return true
}return false},setHrefAttribute:function(ap,ao){if(!ap||!ao){return}ae.setAnyAttribute(ap,"href",ao)},shouldIgnoreInteraction:function(aq){var ap=ae.hasNodeAttribute(aq,this.CONTENT_IGNOREINTERACTION_ATTR);var ao=ae.hasNodeCssClass(aq,this.CONTENT_IGNOREINTERACTION_CLASS);return ap||ao}};function O(ap,at){if(at){return at}ap=v.toAbsoluteUrl(ap);if(z(ap,"?")){var ar=ap.indexOf("?");ap=ap.slice(0,ar)}if(R(ap,"matomo.php")){ap=g(ap,"matomo.php".length)}else{if(R(ap,"piwik.php")){ap=g(ap,"piwik.php".length)}else{if(R(ap,".php")){var ao=ap.lastIndexOf("/");var aq=1;ap=ap.slice(0,ao+aq)}}}if(R(ap,"/js/")){ap=g(ap,"js/".length)}return ap}function N(av){var ax="Piwik_Overlay";var ap=new RegExp("index\\.php\\?module=Overlay&action=startOverlaySession&idSite=([0-9]+)&period=([^&]+)&date=([^&]+)(&segment=.*)?$");var aq=ap.exec(G.referrer);if(aq){var at=aq[1];if(at!==String(av)){return false}var au=aq[2],ao=aq[3],ar=aq[4];if(!ar){ar=""}else{if(ar.indexOf("&segment=")===0){ar=ar.substr("&segment=".length)
-}}T.name=ax+"###"+au+"###"+ao+"###"+ar}var aw=T.name.split("###");return aw.length===4&&aw[0]===ax}function Z(ap,aw,ar){var av=T.name.split("###"),au=av[1],ao=av[2],at=av[3],aq=O(ap,aw);o(aq+"plugins/Overlay/client/client.js?v=1",function(){Piwik_Overlay_Client.initialize(aq,ar,au,ao,at)})}function u(){var aq;try{aq=T.frameElement}catch(ap){return true}if(J(aq)){return(aq&&String(aq.nodeName).toLowerCase()==="iframe")?true:false}try{return T.self!==T.top}catch(ao){return true}}function Q(ce,b9){var bI=this,bd="mtm_consent",cL="mtm_consent_removed",b4=aa(G.domain,T.location.href,K()),cT=L(b4[0]),bN=p(b4[1]),bn=p(b4[2]),cR=false,ci="GET",c9=ci,aI="application/x-www-form-urlencoded; charset=UTF-8",cw=aI,aE=ce||"",bH="",cY="",b6=b9||"",by="",bO="",a4,bj="",c5=["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","rtf","sea","sit","tar","tbz","tbz2","bz","bz2","tgz","torrent","txt","wav","wma","wmv","wpd","xls","xlsx","xml","z","zip"],ax=[cT],bz=[],bL=[],a8=[],bJ=500,cV=true,cI,a5,bR,c6=1800,bP,ao,cq=["pk_campaign","mtm_campaign","piwik_campaign","matomo_campaign","utm_campaign","utm_source","utm_medium"],bG=["pk_kwd","mtm_kwd","piwik_kwd","matomo_kwd","utm_term"],bk="_pk_",av="pk_vid",aZ=180,cW,bp,bS=false,bl=false,cP,be,bv,cJ=33955200000,co=1800000,c4=15768000000,a2=true,bE=false,bh=false,bQ=false,aQ=false,cb,bW={},cm={},bm={},bt=200,cZ={},c7={},ca=[],cf=false,cB=false,ap=false,c8=false,cM=false,aN=false,bc=u(),cx=null,cX=null,cc,aR,bA,b7=am,bo,aL,cr=0,bu=["id","ses","cvar","ref"],cA=false,bB=null,cK=[],aw=U++;
-try{bj=G.title}catch(cy){bj=""}function dd(dp,dm,dl,dn,dk,dj){if(bl){return}var di;if(dl){di=new Date();di.setTime(di.getTime()+dl)}G.cookie=dp+"="+t(dm)+(dl?";expires="+di.toGMTString():"")+";path="+(dn||"/")+(dk?";domain="+dk:"")+(dj?";secure":"")+";SameSite=Lax"}function aD(dk){if(bl){return 0}var di=new RegExp("(^|;)[ ]*"+dk+"=([^;]*)"),dj=di.exec(G.cookie);return dj?S(dj[2]):0}bB=!aD(cL);function b2(di){var dj;di=k(di,av);if(bP){dj=new RegExp("#.*");return di.replace(dj,"")}return di}function bV(dk,di){var dl=s(di),dj;if(dl){return di}if(di.slice(0,1)==="/"){return s(dk)+"://"+d(dk)+di}dk=b2(dk);dj=dk.indexOf("?");if(dj>=0){dk=dk.slice(0,dj)}dj=dk.lastIndexOf("/");if(dj!==dk.length-1){dk=dk.slice(0,dj+1)}return dk+di}function cG(dk,di){var dj;dk=String(dk).toLowerCase();di=String(di).toLowerCase();if(dk===di){return true}if(di.slice(0,1)==="."){if(dk===di.slice(1)){return true}dj=dk.length-di.length;if((dj>0)&&(dk.slice(dj)===di)){return true}}return false}function cl(di){var dj=document.createElement("a");
-if(di.indexOf("//")!==0&&di.indexOf("http")!==0){if(di.indexOf("*")===0){di=di.substr(1)}if(di.indexOf(".")===0){di=di.substr(1)}di="http://"+di}dj.href=v.toAbsoluteUrl(di);if(dj.pathname){return dj.pathname}return""}function a3(dj,di){if(!aj(di,"/")){di="/"+di}if(!aj(dj,"/")){dj="/"+dj}var dk=(di==="/"||di==="/*");if(dk){return true}if(dj===di){return true}di=String(di).toLowerCase();dj=String(dj).toLowerCase();if(R(di,"*")){di=di.slice(0,-1);dk=(!di||di==="/");if(dk){return true}if(dj===di){return true}return dj.indexOf(di)===0}if(!R(dj,"/")){dj+="/"}if(!R(di,"/")){di+="/"}return dj.indexOf(di)===0}function ar(dm,dp){var dj,di,dk,dl,dn;for(dj=0;dj<ax.length;dj++){dl=L(ax[dj]);dn=cl(ax[dj]);if(cG(dm,dl)&&a3(dp,dn)){return true}}return false}function aV(dl){var dj,di,dk;for(dj=0;dj<ax.length;dj++){di=L(ax[dj].toLowerCase());if(dl===di){return true}if(di.slice(0,1)==="."){if(dl===di.slice(1)){return true}dk=dl.length-di.length;if((dk>0)&&(dl.slice(dk)===di)){return true}}}return false}function cp(di,dk){di=di.replace("send_image=0","send_image=1");
-var dj=new Image(1,1);dj.onload=function(){E=0;if(typeof dk==="function"){dk({request:di,trackerUrl:aE,success:true})}};dj.onerror=function(){if(typeof dk==="function"){dk({request:di,trackerUrl:aE,success:false})}};dj.src=aE+(aE.indexOf("?")<0?"?":"&")+di}function cD(di){if(c9==="POST"){return true}return di&&(di.length>2000||di.indexOf('{"requests"')===0)}function aK(){return"object"===typeof h&&"function"===typeof h.sendBeacon&&"function"===typeof Blob}function a6(dm,dq,dp){var dk=aK();if(!dk){return false}var dl={type:"application/x-www-form-urlencoded; charset=UTF-8"};var dr=false;var dj=aE;try{var di=new Blob([dm],dl);if(dp&&!cD(dm)){di=new Blob([],dl);dj=dj+(dj.indexOf("?")<0?"?":"&")+dm}dr=h.sendBeacon(dj,di)}catch(dn){return false}if(dr&&typeof dq==="function"){dq({request:dm,trackerUrl:aE,success:true,isSendBeacon:true})}return dr}function c3(dj,dk,di){if(!J(di)||null===di){di=true}if(m&&a6(dj,dk,di)){return}setTimeout(function(){if(m&&a6(dj,dk,di)){return}var dn;try{var dm=T.XMLHttpRequest?new T.XMLHttpRequest():T.ActiveXObject?new ActiveXObject("Microsoft.XMLHTTP"):null;
-dm.open("POST",aE,true);dm.onreadystatechange=function(){if(this.readyState===4&&!(this.status>=200&&this.status<300)){var dp=m&&a6(dj,dk,di);if(!dp&&di){cp(dj,dk)}else{if(typeof dk==="function"){dk({request:dj,trackerUrl:aE,success:false,xhr:this})}}}else{if(this.readyState===4&&(typeof dk==="function")){dk({request:dj,trackerUrl:aE,success:true,xhr:this})}}};dm.setRequestHeader("Content-Type",cw);dm.withCredentials=true;dm.send(dj)}catch(dl){dn=m&&a6(dj,dk,di);if(!dn&&di){cp(dj,dk)}else{if(typeof dk==="function"){dk({request:dj,trackerUrl:aE,success:false})}}}},50)}function cg(dj){var di=new Date();var dk=di.getTime()+dj;if(!r||dk>r){r=dk}}function cn(di){if(cc||!a5||!bB){return}cc=setTimeout(function dj(){cc=null;if(!bc){bc=(!G.hasFocus||G.hasFocus())}if(!bc){cn(a5);return}if(bR()){return}var dk=new Date(),dl=a5-(dk.getTime()-cX);dl=Math.min(a5,dl);cn(dl)},di||a5)}function bK(){if(!cc){return}clearTimeout(cc);cc=null}function ba(){bc=true;cx=new Date().getTime()}function dc(){var di=new Date().getTime();
-return !cx||(di-cx)>a5}function ay(){if(dc()){bR()}bK()}function df(){if(aN||!a5){return}aN=true;an(T,"focus",ba);an(T,"blur",ay);ab++;e.addPlugin("HeartBeat"+ab,{unload:function(){if(aN&&dc()){bR()}}})}function cC(dm){var dj=new Date();var di=dj.getTime();cX=di;if(cB&&di<cB){var dk=cB-di;setTimeout(dm,dk);cg(dk+50);cB+=50;return}if(cB===false){var dl=800;cB=di+dl}dm()}function aO(){if(aD(cL)){bB=false}else{if(aD(bd)){bB=true}}}function bF(dj,di,dk){aO();if(!bB){cK.push(dj);return}if(!cP&&dj){if(cA&&bB){dj+="&consent=1"}cC(function(){if(cV&&a6(dj,dk,true)){cg(100);return}if(cD(dj)){c3(dj,dk)}else{cp(dj,dk)}cg(di)})}if(!aN){df()}}function ck(di){if(cP){return false}return(di&&di.length)}function c2(di,dm){if(!dm||dm>=di.length){return[di]}var dj=0;var dk=di.length;var dl=[];for(dj;dj<dk;dj+=dm){dl.push(di.slice(dj,dj+dm))}return dl}function de(dj,di){if(!ck(dj)){return}if(!bB){cK.push(dj);return}cC(function(){var dm=c2(dj,50);var dk=0,dl;for(dk;dk<dm.length;dk++){dl='{"requests":["?'+dm[dk].join('","?')+'"]}';
-if(cV&&a6(dl,null,false)){cg(100)}else{c3(dl,null,false)}}cg(di)})}function aT(di){return bk+di+"."+b6+"."+bo}function bY(dk,dj,di){dd(dk,"",-86400,dj,di)}function b5(){if(bl){return"0"}if(!J(T.showModalDialog)&&J(h.cookieEnabled)){return h.cookieEnabled?"1":"0"}var di=bk+"testcookie";dd(di,"1",undefined,bp,cW,bS);var dj=aD(di)==="1"?"1":"0";bY(di);return dj}function bi(){bo=b7((cW||cT)+(bp||"/")).slice(0,4)}function cH(){if(J(c7.res)){return c7}var dj,dl,dm={pdf:"application/pdf",qt:"video/quicktime",realp:"audio/x-pn-realaudio-plugin",wma:"application/x-mplayer2",fla:"application/x-shockwave-flash",java:"application/x-java-vm",ag:"application/x-silverlight"};if(!((new RegExp("MSIE")).test(h.userAgent))){if(h.mimeTypes&&h.mimeTypes.length){for(dj in dm){if(Object.prototype.hasOwnProperty.call(dm,dj)){dl=h.mimeTypes[dm[dj]];c7[dj]=(dl&&dl.enabledPlugin)?"1":"0"}}}if(!((new RegExp("Edge[ /](\\d+[\\.\\d]+)")).test(h.userAgent))&&typeof navigator.javaEnabled!=="unknown"&&J(h.javaEnabled)&&h.javaEnabled()){c7.java="1"
-}c7.cookie=b5()}var dk=parseInt(X.width,10);var di=parseInt(X.height,10);c7.res=parseInt(dk,10)+"x"+parseInt(di,10);return c7}function bX(){var dj=aT("cvar"),di=aD(dj);if(di&&di.length){di=T.JSON.parse(di);if(W(di)){return di}}return{}}function cE(){if(aQ===false){aQ=bX()}}function cQ(){var di=cH();return b7((h.userAgent||"")+(h.platform||"")+T.JSON.stringify(di)+(new Date()).getTime()+Math.random()).slice(0,16)}function aA(){var di=cH();return b7((h.userAgent||"")+(h.platform||"")+T.JSON.stringify(di)).slice(0,6)}function bf(){return Math.floor((new Date()).getTime()/1000)}function aJ(){var dj=bf();var dk=aA();var di=String(dj)+dk;return di}function c1(dk){dk=String(dk);var dn=aA();var dl=dn.length;var dm=dk.substr(-1*dl,dl);var dj=parseInt(dk.substr(0,dk.length-dl),10);if(dj&&dm&&dm===dn){var di=bf();if(aZ<=0){return true}if(di>=dj&&di<=(dj+aZ)){return true}}return false}function dg(di){if(!cM){return""}var dm=f(di,av);if(!dm){return""}dm=String(dm);var dk=new RegExp("^[a-zA-Z0-9]+$");
-if(dm.length===32&&dk.test(dm)){var dj=dm.substr(16,32);if(c1(dj)){var dl=dm.substr(0,16);return dl}}return""}function cN(){if(!bO){bO=dg(bN)}var dk=new Date(),di=Math.round(dk.getTime()/1000),dj=aT("id"),dn=aD(dj),dm,dl;if(dn){dm=dn.split(".");dm.unshift("0");if(bO.length){dm[1]=bO}return dm}if(bO.length){dl=bO}else{if("0"===b5()){dl=""}else{dl=cQ()}}dm=["1",dl,di,0,di,"",""];return dm}function aY(){var dq=cN(),dl=dq[0],dm=dq[1],dj=dq[2],di=dq[3],dn=dq[4],dk=dq[5];if(!J(dq[6])){dq[6]=""}var dp=dq[6];return{newVisitor:dl,uuid:dm,createTs:dj,visitCount:di,currentVisitTs:dn,lastVisitTs:dk,lastEcommerceOrderTs:dp}}function aH(){var dl=new Date(),dj=dl.getTime(),dm=aY().createTs;var di=parseInt(dm,10);var dk=(di*1000)+cJ-dj;return dk}function aM(di){if(!b6){return}var dk=new Date(),dj=Math.round(dk.getTime()/1000);if(!J(di)){di=aY()}var dl=di.uuid+"."+di.createTs+"."+di.visitCount+"."+dj+"."+di.lastVisitTs+"."+di.lastEcommerceOrderTs;dd(aT("id"),dl,aH(),bp,cW,bS)}function bM(){var di=aD(aT("ref"));
-if(di.length){try{di=T.JSON.parse(di);if(W(di)){return di}}catch(dj){}}return["","",0,""]}function bw(dj){var di="testvalue";dd("test",di,10000,null,dj);if(aD("test")===di){bY("test",null,dj);return true}return false}function aF(){var dj=bl;bl=false;var di,dk;for(di=0;di<bu.length;di++){dk=aT(bu[di]);if(dk!==cL&&dk!==bd&&0!==aD(dk)){bY(dk,bp,cW)}}bl=dj}function b3(di){b6=di;aM()}function dh(dm){if(!dm||!W(dm)){return}var dl=[];var dk;for(dk in dm){if(Object.prototype.hasOwnProperty.call(dm,dk)){dl.push(dk)}}var dn={};dl.sort();var di=dl.length;var dj;for(dj=0;dj<di;dj++){dn[dl[dj]]=dm[dl[dj]]}return dn}function cd(){dd(aT("ses"),"1",co,bp,cW,bS)}function bg(){var dl="";var dj="abcdefghijklmnopqrstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ";var dk=dj.length;var di;for(di=0;di<6;di++){dl+=dj.charAt(Math.floor(Math.random()*dk))}return dl}function az(di){if(i&&i.timing&&i&&i.timing.connectEnd&&i.timing.fetchStart){di+="&pf_net="+(i.timing.connectEnd-i.timing.fetchStart)}if(i&&i.timing&&i&&i.timing.responseStart&&i.timing.requestStart){di+="&pf_srv="+(i.timing.responseStart-i.timing.requestStart)
-}if(i&&i.timing&&i&&i.timing.responseStart&&i.timing.responseEnd){di+="&pf_tfr="+(i.timing.responseEnd-i.timing.responseStart)}if(i&&i.timing&&i&&i.timing.domInteractive&&i.timing.domLoading){di+="&pf_dm1="+(i.timing.domInteractive-i.timing.domLoading)}if(i&&i.timing&&i&&i.timing.domComplete&&i.timing.domInteractive){di+="&pf_dm2="+(i.timing.domComplete-i.timing.domInteractive)}if(i&&i.timing&&i&&i.timing.loadEventEnd&&i.timing.loadEventStart){di+="&pf_onl="+(i.timing.loadEventEnd-i.timing.loadEventStart)}return di}function cs(dk,dG,dH,dl){var dF,dj=new Date(),dt=Math.round(dj.getTime()/1000),dq,dE,dm=1024,dN,du,dC=aQ,dn=aT("ses"),dA=aT("ref"),dx=aT("cvar"),dy=aD(dn),dD=bM(),dJ=a4||bN,dr,di;if(bl){aF()}if(cP){return""}var dz=aY();if(!J(dl)){dl=""}var dw=G.characterSet||G.charset;if(!dw||dw.toLowerCase()==="utf-8"){dw=null}dr=dD[0];di=dD[1];dq=dD[2];dE=dD[3];if(!dy){var dI=co/1000;if(!dz.lastVisitTs||(dt-dz.lastVisitTs)>dI){dz.visitCount++;dz.lastVisitTs=dz.currentVisitTs}if(!bv||!dr.length){for(dF in cq){if(Object.prototype.hasOwnProperty.call(cq,dF)){dr=f(dJ,cq[dF]);
-if(dr.length){break}}}for(dF in bG){if(Object.prototype.hasOwnProperty.call(bG,dF)){di=f(dJ,bG[dF]);if(di.length){break}}}}dN=d(bn);du=dE.length?d(dE):"";if(dN.length&&!aV(dN)&&(!bv||!du.length||aV(du))){dE=bn}if(dE.length||dr.length){dq=dt;dD=[dr,di,dq,b2(dE.slice(0,dm))];dd(dA,T.JSON.stringify(dD),c4,bp,cW,bS)}}dk+="&idsite="+b6+"&rec=1&r="+String(Math.random()).slice(2,8)+"&h="+dj.getHours()+"&m="+dj.getMinutes()+"&s="+dj.getSeconds()+"&url="+t(b2(dJ))+(bn.length?"&urlref="+t(b2(bn)):"")+((by&&by.length)?"&uid="+t(by):"")+"&_id="+dz.uuid+"&_idts="+dz.createTs+"&_idvc="+dz.visitCount+"&_idn="+dz.newVisitor+(dr.length?"&_rcn="+t(dr):"")+(di.length?"&_rck="+t(di):"")+"&_refts="+dq+"&_viewts="+dz.lastVisitTs+(String(dz.lastEcommerceOrderTs).length?"&_ects="+dz.lastEcommerceOrderTs:"")+(String(dE).length?"&_ref="+t(b2(dE.slice(0,dm))):"")+(dw?"&cs="+t(dw):"")+"&send_image=0";var dM=cH();for(dF in dM){if(Object.prototype.hasOwnProperty.call(dM,dF)){dk+="&"+dF+"="+dM[dF]}}var dL=[];if(dG){for(dF in dG){if(Object.prototype.hasOwnProperty.call(dG,dF)&&/^dimension\d+$/.test(dF)){var dp=dF.replace("dimension","");
-dL.push(parseInt(dp,10));dL.push(String(dp));dk+="&"+dF+"="+t(dG[dF]);delete dG[dF]}}}if(dG&&B(dG)){dG=null}for(dF in bm){if(Object.prototype.hasOwnProperty.call(bm,dF)){var dv=(-1===M(dL,dF));if(dv){dk+="&dimension"+dF+"="+t(bm[dF])}}}if(dG){dk+="&data="+t(T.JSON.stringify(dG))}else{if(ao){dk+="&data="+t(T.JSON.stringify(ao))}}function ds(dO,dP){var dQ=T.JSON.stringify(dO);if(dQ.length>2){return"&"+dP+"="+t(dQ)}return""}var dK=dh(bW);var dB=dh(cm);dk+=ds(dK,"cvar");dk+=ds(dB,"e_cvar");if(aQ){dk+=ds(aQ,"_cvar");for(dF in dC){if(Object.prototype.hasOwnProperty.call(dC,dF)){if(aQ[dF][0]===""||aQ[dF][1]===""){delete aQ[dF]}}}if(bQ){dd(dx,T.JSON.stringify(aQ),co,bp,cW,bS)}}if(a2&&bE&&!bh){dk=az(dk);bh=true}if(aL){dk+="&pv_id="+aL}dz.lastEcommerceOrderTs=J(dl)&&String(dl).length?dl:dz.lastEcommerceOrderTs;aM(dz);cd();dk+=ac(dH,{tracker:bI,request:dk});if(cY.length){dk+="&"+cY}if(A(cb)){dk=cb(dk)}return dk}bR=function a7(){var di=new Date();di=di.getTime();if(!cX){return false}if((cX+(1000*c6))<=di){return false
-}if(cX+a5<=di){bI.ping();return true}return false};function bq(dl,dk,dr,dm,di,du){var dp="idgoal=0",dq,dj=new Date(),ds=[],dt,dn=String(dl).length;if(dn){dp+="&ec_id="+t(dl);dq=Math.round(dj.getTime()/1000)}dp+="&revenue="+dk;if(String(dr).length){dp+="&ec_st="+dr}if(String(dm).length){dp+="&ec_tx="+dm}if(String(di).length){dp+="&ec_sh="+di}if(String(du).length){dp+="&ec_dt="+du}if(cZ){for(dt in cZ){if(Object.prototype.hasOwnProperty.call(cZ,dt)){if(!J(cZ[dt][1])){cZ[dt][1]=""}if(!J(cZ[dt][2])){cZ[dt][2]=""}if(!J(cZ[dt][3])||String(cZ[dt][3]).length===0){cZ[dt][3]=0}if(!J(cZ[dt][4])||String(cZ[dt][4]).length===0){cZ[dt][4]=1}ds.push(cZ[dt])}}dp+="&ec_items="+t(T.JSON.stringify(ds))}dp=cs(dp,ao,"ecommerce",dq);bF(dp,bJ);if(dn){cZ={}}}function bZ(di,dm,dl,dk,dj,dn){if(String(di).length&&J(dm)){bq(di,dm,dl,dk,dj,dn)}}function bs(di){if(J(di)){bq("",di,"","","","")}}function b0(dj,dl,dk){aL=bg();var di=cs("action_name="+t(al(dj||bj)),dl,"log");if(!bh){di=az(di)}bF(di,bJ,dk)}function a0(dk,dj){var dl,di="(^| )(piwik[_-]"+dj;
-if(dk){for(dl=0;dl<dk.length;dl++){di+="|"+dk[dl]}}di+=")( |$)";return new RegExp(di)}function aU(di){return(aE&&di&&0===String(di).indexOf(aE))}function cu(dm,di,dn,dj){if(aU(di)){return 0}var dl=a0(bL,"download"),dk=a0(a8,"link"),dp=new RegExp("\\.("+c5.join("|")+")([?&#]|$)","i");if(dk.test(dm)){return"link"}if(dj||dl.test(dm)||dp.test(di)){return"download"}if(dn){return 0}return"link"}function au(dj){var di;di=dj.parentNode;while(di!==null&&J(di)){if(ae.isLinkElement(dj)){break}dj=di;di=dj.parentNode}return dj}function db(dn){dn=au(dn);if(!ae.hasNodeAttribute(dn,"href")){return}if(!J(dn.href)){return}var dm=ae.getAttributeValueFromNode(dn,"href");var dj=dn.pathname||cl(dn.href);var dp=dn.hostname||d(dn.href);var dq=dp.toLowerCase();var dk=dn.href.replace(dp,dq);var dl=new RegExp("^(javascript|vbscript|jscript|mocha|livescript|ecmascript|mailto|tel):","i");if(!dl.test(dk)){var di=cu(dn.className,dk,ar(dq,dj),ae.hasNodeAttribute(dn,"download"));if(di){return{type:di,href:dk}}}}function aP(di,dj,dk,dl){var dm=v.buildInteractionRequestParams(di,dj,dk,dl);
-if(!dm){return}return cs(dm,null,"contentInteraction")}function bb(di,dj){if(!di||!dj){return false}var dk=v.findTargetNode(di);if(v.shouldIgnoreInteraction(dk)){return false}dk=v.findTargetNodeNoDefault(di);if(dk&&!V(dk,dj)){return false}return true}function ct(dk,dj,dm){if(!dk){return}var di=v.findParentContentNode(dk);if(!di){return}if(!bb(di,dk)){return}var dl=v.buildContentBlock(di);if(!dl){return}if(!dl.target&&dm){dl.target=dm}return v.buildInteractionRequestParams(dj,dl.name,dl.piece,dl.target)}function aW(dj){if(!ca||!ca.length){return false}var di,dk;for(di=0;di<ca.length;di++){dk=ca[di];if(dk&&dk.name===dj.name&&dk.piece===dj.piece&&dk.target===dj.target){return true}}return false}function aX(di){return function(dm){if(!di){return}var dk=v.findParentContentNode(di);var dj;if(dm){dj=dm.target||dm.srcElement}if(!dj){dj=di}if(!bb(dk,dj)){return}if(!dk){return false}var dn=v.findTargetNode(dk);if(!dn||v.shouldIgnoreInteraction(dn)){return false}var dl=db(dn);if(c8&&dl&&dl.type){return dl.type
-}return bI.trackContentInteractionNode(dj,"click")}}function b1(dk){if(!dk||!dk.length){return}var di,dj;for(di=0;di<dk.length;di++){dj=v.findTargetNode(dk[di]);if(dj&&!dj.contentInteractionTrackingSetupDone){dj.contentInteractionTrackingSetupDone=true;an(dj,"click",aX(dj))}}}function bx(dk,dl){if(!dk||!dk.length){return[]}var di,dj;for(di=0;di<dk.length;di++){if(aW(dk[di])){dk.splice(di,1);di--}else{ca.push(dk[di])}}if(!dk||!dk.length){return[]}b1(dl);var dm=[];for(di=0;di<dk.length;di++){dj=cs(v.buildImpressionRequestParams(dk[di].name,dk[di].piece,dk[di].target),undefined,"contentImpressions");if(dj){dm.push(dj)}}return dm}function cz(dj){var di=v.collectContent(dj);return bx(di,dj)}function a9(dj){if(!dj||!dj.length){return[]}var di;for(di=0;di<dj.length;di++){if(!v.isNodeVisible(dj[di])){dj.splice(di,1);di--}}if(!dj||!dj.length){return[]}return cz(dj)}function aG(dk,di,dj){var dl=v.buildImpressionRequestParams(dk,di,dj);return cs(dl,null,"contentImpression")}function da(dl,dj){if(!dl){return
-}var di=v.findParentContentNode(dl);var dk=v.buildContentBlock(di);if(!dk){return}if(!dj){dj="Unknown"}return aP(dj,dk.name,dk.piece,dk.target)}function cO(dj,dl,di,dk){return"e_c="+t(dj)+"&e_a="+t(dl)+(J(di)?"&e_n="+t(di):"")+(J(dk)?"&e_v="+t(dk):"")}function at(dk,dm,di,dl,dp,dn){if(!Y(dk)||!Y(dm)){ak("Error while logging event: Parameters `category` and `action` must not be empty or filled with whitespaces");return false}var dj=cs(cO(dk,dm,di,dl),dp,"event");bF(dj,bJ,dn)}function b8(di,dl,dj,dm){var dk=cs("search="+t(di)+(dl?"&search_cat="+t(dl):"")+(J(dj)?"&search_count="+dj:""),dm,"sitesearch");bF(dk,bJ)}function cS(di,dm,dl,dk){var dj=cs("idgoal="+di+(dm?"&revenue="+dm:""),dl,"goal");bF(dj,bJ,dk)}function c0(dl,di,dq,dp,dk){var dn=di+"="+t(b2(dl));var dj=ct(dk,"click",dl);if(dj){dn+="&"+dj}var dm=cs(dn,dq,"link");bF(dm,bJ,dp)}function bU(dj,di){if(dj!==""){return dj+di.charAt(0).toUpperCase()+di.slice(1)}return di}function ch(dn){var dm,di,dl=["","webkit","ms","moz"],dk;if(!be){for(di=0;
-di<dl.length;di++){dk=dl[di];if(Object.prototype.hasOwnProperty.call(G,bU(dk,"hidden"))){if(G[bU(dk,"visibilityState")]==="prerender"){dm=true}break}}}if(dm){an(G,dk+"visibilitychange",function dj(){G.removeEventListener(dk+"visibilitychange",dj,false);dn()});return}dn()}function br(){var dj=bI.getVisitorId();var di=aJ();return dj+di}function cj(di){if(!di){return}if(!ae.hasNodeAttribute(di,"href")){return}var dj=ae.getAttributeValueFromNode(di,"href");if(!dj||aU(dj)){return}if(!bI.getVisitorId()){return}dj=k(dj,av);var dk=br();dj=F(dj,av,dk);ae.setAnyAttribute(di,"href",dj)}function aB(dl){var dm=ae.getAttributeValueFromNode(dl,"href");if(!dm){return false}dm=String(dm);var dj=dm.indexOf("//")===0||dm.indexOf("http://")===0||dm.indexOf("https://")===0;if(!dj){return false}var di=dl.pathname||cl(dl.href);var dk=(dl.hostname||d(dl.href)).toLowerCase();if(ar(dk,di)){if(!cG(cT,L(dk))){return true}return false}return false}function cF(di){var dj=db(di);if(dj&&dj.type){dj.href=p(dj.href);c0(dj.href,dj.type,undefined,null,di);
-return}if(cM){di=au(di);if(aB(di)){cj(di)}}}function cv(){return G.all&&!G.addEventListener}function cU(di){var dk=di.which;var dj=(typeof di.button);if(!dk&&dj!=="undefined"){if(cv()){if(di.button&1){dk=1}else{if(di.button&2){dk=3}else{if(di.button&4){dk=2}}}}else{if(di.button===0||di.button==="0"){dk=1}else{if(di.button&1){dk=2}else{if(di.button&2){dk=3}}}}}return dk}function bT(di){switch(cU(di)){case 1:return"left";case 2:return"middle";case 3:return"right"}}function a1(di){return di.target||di.srcElement}function aC(di){return function(dl){dl=dl||T.event;var dk=bT(dl);var dm=a1(dl);if(dl.type==="click"){var dj=false;if(di&&dk==="middle"){dj=true}if(dm&&!dj){cF(dm)}}else{if(dl.type==="mousedown"){if(dk==="middle"&&dm){aR=dk;bA=dm}else{aR=bA=null}}else{if(dl.type==="mouseup"){if(dk===aR&&dm===bA){cF(dm)}aR=bA=null}else{if(dl.type==="contextmenu"){cF(dm)}}}}}}function aq(dk,dj){var di=typeof dj;if(di==="undefined"){dj=true}an(dk,"click",aC(dj),false);if(dj){an(dk,"mouseup",aC(dj),false);
-an(dk,"mousedown",aC(dj),false);an(dk,"contextmenu",aC(dj),false)}}function bD(dk,dm){ap=true;var dl,dj=a0(bz,"ignore"),dn=G.links,di=null,dp=null;if(dn){for(dl=0;dl<dn.length;dl++){di=dn[dl];if(!dj.test(di.className)){dp=typeof di.piwikTrackers;if("undefined"===dp){di.piwikTrackers=[]}if(-1===M(di.piwikTrackers,dm)){di.piwikTrackers.push(dm);aq(di,dk)}}}}}function aS(dj,dm,dn){if(cf){return true}cf=true;var dp=false;var dl,dk;function di(){dp=true}n(function(){function dq(ds){setTimeout(function(){if(!cf){return}dp=false;dn.trackVisibleContentImpressions();dq(ds)},ds)}function dr(ds){setTimeout(function(){if(!cf){return}if(dp){dp=false;dn.trackVisibleContentImpressions()}dr(ds)},ds)}if(dj){dl=["scroll","resize"];for(dk=0;dk<dl.length;dk++){if(G.addEventListener){G.addEventListener(dl[dk],di,false)}else{T.attachEvent("on"+dl[dk],di)}}dr(100)}if(dm&&dm>0){dm=parseInt(dm,10);dq(dm)}})}var bC={enabled:true,requests:[],timeout:null,interval:2500,sendRequests:function(){var di=this.requests;
-this.requests=[];if(di.length===1){bF(di[0],bJ)}else{de(di,bJ)}},canQueue:function(){return !m&&this.enabled},pushMultiple:function(dj){if(!this.canQueue()){de(dj,bJ);return}var di;for(di=0;di<dj.length;di++){this.push(dj[di])}},push:function(di){if(!di){return}if(!this.canQueue()){bF(di,bJ);return}bC.requests.push(di);if(this.timeout){clearTimeout(this.timeout);this.timeout=null}this.timeout=setTimeout(function(){bC.timeout=null;bC.sendRequests()},bC.interval);var dj="RequestQueue"+aw;if(!Object.prototype.hasOwnProperty.call(b,dj)){b[dj]={unload:function(){if(bC.timeout){clearTimeout(bC.timeout)}bC.sendRequests()}}}}};bi();aM();this.hasConsent=function(){return bB};this.getVisitorId=function(){return aY().uuid};this.getVisitorInfo=function(){return cN()};this.getAttributionInfo=function(){return bM()};this.getAttributionCampaignName=function(){return bM()[0]};this.getAttributionCampaignKeyword=function(){return bM()[1]};this.getAttributionReferrerTimestamp=function(){return bM()[2]};this.getAttributionReferrerUrl=function(){return bM()[3]
-};this.setTrackerUrl=function(di){aE=di};this.getTrackerUrl=function(){return aE};this.getPiwikUrl=function(){return O(this.getTrackerUrl(),bH)};this.addTracker=function(di,dk){if(!J(di)||null===di){di=this.getTrackerUrl()}var dj=new Q(di,dk);I.push(dj);e.trigger("TrackerAdded",[this]);return dj};this.getSiteId=function(){return b6};this.setSiteId=function(di){b3(di)};this.resetUserId=function(){by=""};this.setUserId=function(di){if(Y(di)){by=di}};this.getUserId=function(){return by};this.setCustomData=function(di,dj){if(W(di)){ao=di}else{if(!ao){ao={}}ao[di]=dj}};this.getCustomData=function(){return ao};this.setCustomRequestProcessing=function(di){cb=di};this.appendToTrackingUrl=function(di){cY=di};this.getRequest=function(di){return cs(di)};this.addPlugin=function(di,dj){b[di]=dj};this.setCustomDimension=function(di,dj){di=parseInt(di,10);if(di>0){if(!J(dj)){dj=""}if(!w(dj)){dj=String(dj)}bm[di]=dj}};this.getCustomDimension=function(di){di=parseInt(di,10);if(di>0&&Object.prototype.hasOwnProperty.call(bm,di)){return bm[di]
-}};this.deleteCustomDimension=function(di){di=parseInt(di,10);if(di>0){delete bm[di]}};this.setCustomVariable=function(dj,di,dm,dk){var dl;if(!J(dk)){dk="visit"}if(!J(di)){return}if(!J(dm)){dm=""}if(dj>0){di=!w(di)?String(di):di;dm=!w(dm)?String(dm):dm;dl=[di.slice(0,bt),dm.slice(0,bt)];if(dk==="visit"||dk===2){cE();aQ[dj]=dl}else{if(dk==="page"||dk===3){bW[dj]=dl}else{if(dk==="event"){cm[dj]=dl}}}}};this.getCustomVariable=function(dj,dk){var di;if(!J(dk)){dk="visit"}if(dk==="page"||dk===3){di=bW[dj]}else{if(dk==="event"){di=cm[dj]}else{if(dk==="visit"||dk===2){cE();di=aQ[dj]}}}if(!J(di)||(di&&di[0]==="")){return false}return di};this.deleteCustomVariable=function(di,dj){if(this.getCustomVariable(di,dj)){this.setCustomVariable(di,"","",dj)}};this.deleteCustomVariables=function(di){if(di==="page"||di===3){bW={}}else{if(di==="event"){cm={}}else{if(di==="visit"||di===2){aQ={}}}}};this.storeCustomVariablesInCookie=function(){bQ=true};this.setLinkTrackingTimer=function(di){bJ=di};this.getLinkTrackingTimer=function(){return bJ
-};this.setDownloadExtensions=function(di){if(w(di)){di=di.split("|")}c5=di};this.addDownloadExtensions=function(dj){var di;if(w(dj)){dj=dj.split("|")}for(di=0;di<dj.length;di++){c5.push(dj[di])}};this.removeDownloadExtensions=function(dk){var dj,di=[];if(w(dk)){dk=dk.split("|")}for(dj=0;dj<c5.length;dj++){if(M(dk,c5[dj])===-1){di.push(c5[dj])}}c5=di};this.setDomains=function(di){ax=w(di)?[di]:di;var dm=false,dk=0,dj;for(dk;dk<ax.length;dk++){dj=String(ax[dk]);if(cG(cT,L(dj))){dm=true;break}var dl=cl(dj);if(dl&&dl!=="/"&&dl!=="/*"){dm=true;break}}if(!dm){ax.push(cT)}};this.enableCrossDomainLinking=function(){cM=true};this.disableCrossDomainLinking=function(){cM=false};this.isCrossDomainLinkingEnabled=function(){return cM};this.setCrossDomainLinkingTimeout=function(di){aZ=di};this.getCrossDomainLinkingUrlParameter=function(){return t(av)+"="+t(br())};this.setIgnoreClasses=function(di){bz=w(di)?[di]:di};this.setRequestMethod=function(di){c9=di||ci};this.setRequestContentType=function(di){cw=di||aI
-};this.setReferrerUrl=function(di){bn=di};this.setCustomUrl=function(di){a4=bV(bN,di)};this.getCurrentUrl=function(){return a4||bN};this.setDocumentTitle=function(di){bj=di};this.setAPIUrl=function(di){bH=di};this.setDownloadClasses=function(di){bL=w(di)?[di]:di};this.setLinkClasses=function(di){a8=w(di)?[di]:di};this.setCampaignNameKey=function(di){cq=w(di)?[di]:di};this.setCampaignKeywordKey=function(di){bG=w(di)?[di]:di};this.discardHashTag=function(di){bP=di};this.setCookieNamePrefix=function(di){bk=di;if(aQ){aQ=bX()}};this.setCookieDomain=function(di){var dj=L(di);if(bw(dj)){cW=dj;bi()}};this.getCookieDomain=function(){return cW};this.hasCookies=function(){return"1"===b5()};this.setSessionCookie=function(dk,dj,di){if(!dk){throw new Error("Missing cookie name")}if(!J(di)){di=co}bu.push(dk);dd(aT(dk),dj,di,bp,cW)};this.getCookie=function(dj){var di=aD(aT(dj));if(di===0){return null}return di};this.setCookiePath=function(di){bp=di;bi()};this.getCookiePath=function(di){return bp};this.setVisitorCookieTimeout=function(di){cJ=di*1000
-};this.setSessionCookieTimeout=function(di){co=di*1000};this.getSessionCookieTimeout=function(){return co};this.setReferralCookieTimeout=function(di){c4=di*1000};this.setConversionAttributionFirstReferrer=function(di){bv=di};this.setSecureCookie=function(di){bS=di};this.disableCookies=function(){bl=true;c7.cookie="0";if(b6){aF()}};this.deleteCookies=function(){aF()};this.setDoNotTrack=function(dj){var di=h.doNotTrack||h.msDoNotTrack;cP=dj&&(di==="yes"||di==="1");if(cP){this.disableCookies()}};this.alwaysUseSendBeacon=function(){cV=true};this.disableAlwaysUseSendBeacon=function(){cV=false};this.addListener=function(dj,di){aq(dj,di)};this.enableLinkTracking=function(dj){c8=true;var di=this;ch(function(){q(function(){bD(dj,di)});n(function(){bD(dj,di)})})};this.enableJSErrorTracking=function(){if(cR){return}cR=true;var di=T.onerror;T.onerror=function(dn,dl,dk,dm,dj){ch(function(){var dp="JavaScript Errors";var dq=dl+":"+dk;if(dm){dq+=":"+dm}at(dp,dq,dn)});if(di){return di(dn,dl,dk,dm,dj)}return false
-}};this.disablePerformanceTracking=function(){a2=false};this.setVisitStandardLength=function(di){di=Math.max(di,5);c6=di};this.enableHeartBeatTimer=function(di){di=Math.max(di,5);a5=(di||15)*1000;if(cX!==null){df()}};this.disableHeartBeatTimer=function(){bK();if(a5||aN){if(T.removeEventListener){T.removeEventListener("focus",ba);T.removeEventListener("blur",ay)}else{if(T.detachEvent){T.detachEvent("onfocus",ba);T.detachEvent("onblur",ay)}}}a5=null;aN=false};this.killFrame=function(){if(T.location!==T.top.location){T.top.location=T.location}};this.redirectFile=function(di){if(T.location.protocol==="file:"){T.location=di}};this.setCountPreRendered=function(di){be=di};this.trackGoal=function(di,dl,dk,dj){ch(function(){cS(di,dl,dk,dj)})};this.trackLink=function(dj,di,dl,dk){ch(function(){c0(dj,di,dl,dk)})};this.getNumTrackedPageViews=function(){return cr};this.trackPageView=function(di,dk,dj){ca=[];cK=[];if(N(b6)){ch(function(){Z(aE,bH,b6)})}else{ch(function(){cr++;b0(di,dk,dj)})}};this.trackAllContentImpressions=function(){if(N(b6)){return
-}ch(function(){q(function(){var di=v.findContentNodes();var dj=cz(di);bC.pushMultiple(dj)})})};this.trackVisibleContentImpressions=function(di,dj){if(N(b6)){return}if(!J(di)){di=true}if(!J(dj)){dj=750}aS(di,dj,this);ch(function(){n(function(){var dk=v.findContentNodes();var dl=a9(dk);bC.pushMultiple(dl)})})};this.trackContentImpression=function(dk,di,dj){if(N(b6)){return}dk=a(dk);di=a(di);dj=a(dj);if(!dk){return}di=di||"Unknown";ch(function(){var dl=aG(dk,di,dj);bC.push(dl)})};this.trackContentImpressionsWithinNode=function(di){if(N(b6)||!di){return}ch(function(){if(cf){n(function(){var dj=v.findContentNodesWithinNode(di);var dk=a9(dj);bC.pushMultiple(dk)})}else{q(function(){var dj=v.findContentNodesWithinNode(di);var dk=cz(dj);bC.pushMultiple(dk)})}})};this.trackContentInteraction=function(dk,dl,di,dj){if(N(b6)){return}dk=a(dk);dl=a(dl);di=a(di);dj=a(dj);if(!dk||!dl){return}di=di||"Unknown";ch(function(){var dm=aP(dk,dl,di,dj);if(dm){bC.push(dm)}})};this.trackContentInteractionNode=function(dk,dj){if(N(b6)||!dk){return
-}var di=null;ch(function(){di=da(dk,dj);if(di){bC.push(di)}});return di};this.logAllContentBlocksOnPage=function(){var dk=v.findContentNodes();var di=v.collectContent(dk);var dj=typeof console;if(dj!=="undefined"&&console&&console.log){console.log(di)}};this.trackEvent=function(dj,dl,di,dk,dn,dm){ch(function(){at(dj,dl,di,dk,dn,dm)})};this.trackSiteSearch=function(di,dk,dj,dl){ca=[];ch(function(){b8(di,dk,dj,dl)})};this.setEcommerceView=function(dl,di,dk,dj){if(Y(dk)){dk=String(dk)}if(!J(dk)||dk===null||dk===false||!dk.length){dk=""}else{if(dk instanceof Array){dk=T.JSON.stringify(dk)}}bW[5]=["_pkc",dk];if(J(dj)&&dj!==null&&dj!==false&&String(dj).length){bW[2]=["_pkp",dj]}if(!Y(dl)&&!Y(di)){return}if(Y(dl)){bW[3]=["_pks",dl]}if(!Y(di)){di=""}bW[4]=["_pkn",di]};this.getEcommerceItems=function(){return JSON.parse(JSON.stringify(cZ))};this.addEcommerceItem=function(dm,di,dk,dj,dl){if(Y(dm)){cZ[dm]=[String(dm),di,dk,dj,dl]}};this.removeEcommerceItem=function(di){if(Y(di)){di=String(di);delete cZ[di]
-}};this.clearEcommerceCart=function(){cZ={}};this.trackEcommerceOrder=function(di,dm,dl,dk,dj,dn){bZ(di,dm,dl,dk,dj,dn)};this.trackEcommerceCartUpdate=function(di){bs(di)};this.trackRequest=function(dj,dl,dk,di){ch(function(){var dm=cs(dj,dl,di);bF(dm,bJ,dk)})};this.ping=function(){this.trackRequest("ping=1",null,null,"ping")};this.disableQueueRequest=function(){bC.enabled=false};this.setRequestQueueInterval=function(di){if(di<1000){throw new Error("Request queue interval needs to be at least 1000ms")}bC.interval=di};this.queueRequest=function(di){ch(function(){var dj=cs(di);bC.push(dj)})};this.isConsentRequired=function(){return cA};this.getRememberedConsent=function(){var di=aD(bd);if(aD(cL)){if(di){bY(bd,bp,cW)}return null}if(!di||di===0){return null}return di};this.hasRememberedConsent=function(){return !!this.getRememberedConsent()};this.requireConsent=function(){cA=true;bB=this.hasRememberedConsent();x++;b["CoreConsent"+x]={unload:function(){if(!bB){aF()}}}};this.setConsentGiven=function(){bB=true;
-bY(cL,bp,cW);var dj,di;for(dj=0;dj<cK.length;dj++){di=typeof cK[dj];if(di==="string"){bF(cK[dj],bJ)}else{if(di==="object"){de(cK[dj],bJ)}}}cK=[]};this.rememberConsentGiven=function(dj){if(dj){dj=dj*60*60*1000}else{dj=30*365*24*60*60*1000}this.setConsentGiven();var di=new Date().getTime();dd(bd,di,dj,bp,cW,bS)};this.forgetConsentGiven=function(){var di=30*365*24*60*60*1000;bY(bd,bp,cW);dd(cL,new Date().getTime(),di,bp,cW,bS);this.requireConsent()};this.isUserOptedOut=function(){return !bB};this.optUserOut=this.forgetConsentGiven;this.forgetUserOptOut=this.rememberConsentGiven;n(function(){setTimeout(function(){bE=true},0)});e.trigger("TrackerSetup",[this])}function H(){return{push:af}}function c(au,at){var av={};var aq,ar;for(aq=0;aq<at.length;aq++){var ao=at[aq];av[ao]=1;for(ar=0;ar<au.length;ar++){if(au[ar]&&au[ar][0]){var ap=au[ar][0];if(ao===ap){af(au[ar]);delete au[ar];if(av[ap]>1&&ap!=="addTracker"){ak("The method "+ap+' is registered more than once in "_paq" variable. Only the last call has an effect. Please have a look at the multiple Piwik trackers documentation: https://developer.piwik.org/guides/tracking-javascript-guide#multiple-piwik-trackers')
-}av[ap]++}}}}return au}var C=["addTracker","disableCookies","setTrackerUrl","setAPIUrl","enableCrossDomainLinking","setCrossDomainLinkingTimeout","setSessionCookieTimeout","setVisitorCookieTimeout","setCookieNamePrefix","setSecureCookie","setCookiePath","setCookieDomain","setDomains","setUserId","setSiteId","alwaysUseSendBeacon","enableLinkTracking","requireConsent","setConsentGiven"];function ad(ao,aq){var ap=new Q(ao,aq);I.push(ap);_paq=c(_paq,C);for(E=0;E<_paq.length;E++){if(_paq[E]){af(_paq[E])}}_paq=new H();e.trigger("TrackerAdded",[ap]);return ap}an(T,"beforeunload",ai,false);an(T,"message",function(au){if(!au||!au.origin){return}var aw,ar,ap;var ax=d(au.origin);var at=e.getAsyncTrackers();for(ar=0;ar<at.length;ar++){ap=d(at[ar].getPiwikUrl());if(ap===ax){aw=at[ar];break}}if(!aw){return}var aq=null;try{aq=JSON.parse(au.data)}catch(av){return}if(!aq){return}function ao(aA){var aC=G.getElementsByTagName("iframe");for(ar=0;ar<aC.length;ar++){var aB=aC[ar];var ay=d(aB.src);if(aB.contentWindow&&J(aB.contentWindow.postMessage)&&ay===ax){var az=JSON.stringify(aA);
-aB.contentWindow.postMessage(az,"*")}}}if(J(aq.maq_initial_value)){ao({maq_opted_in:aq.maq_initial_value&&aw.hasConsent(),maq_url:aw.getPiwikUrl(),maq_optout_by_default:aw.isConsentRequired()})}else{if(J(aq.maq_opted_in)){at=e.getAsyncTrackers();for(ar=0;ar<at.length;ar++){aw=at[ar];if(aq.maq_opted_in){aw.rememberConsentGiven()}else{aw.forgetConsentGiven()}}ao({maq_confirm_opted_in:aw.hasConsent(),maq_url:aw.getPiwikUrl(),maq_optout_by_default:aw.isConsentRequired()})}}},false);Date.prototype.getTimeAlias=Date.prototype.getTime;e={initialized:false,JSON:T.JSON,DOM:{addEventListener:function(ar,aq,ap,ao){var at=typeof ao;if(at==="undefined"){ao=false}an(ar,aq,ap,ao)},onLoad:n,onReady:q,isNodeVisible:j,isOrWasNodeVisible:v.isNodeVisible},on:function(ap,ao){if(!y[ap]){y[ap]=[]}y[ap].push(ao)},off:function(aq,ap){if(!y[aq]){return}var ao=0;for(ao;ao<y[aq].length;ao++){if(y[aq][ao]===ap){y[aq].splice(ao,1)}}},trigger:function(aq,ar,ap){if(!y[aq]){return}var ao=0;for(ao;ao<y[aq].length;ao++){y[aq][ao].apply(ap||T,ar)
-}},addPlugin:function(ao,ap){b[ao]=ap},getTracker:function(ao,ap){if(!J(ap)){ap=this.getAsyncTracker().getSiteId()}if(!J(ao)){ao=this.getAsyncTracker().getTrackerUrl()}return new Q(ao,ap)},getAsyncTrackers:function(){return I},addTracker:function(ao,aq){var ap;if(!I.length){ap=ad(ao,aq)}else{ap=I[0].addTracker(ao,aq)}return ap},getAsyncTracker:function(ap,at){var ar;if(I&&I.length&&I[0]){ar=I[0]}else{return ad(ap,at)}if(!at&&!ap){return ar}if((!J(at)||null===at)&&ar){at=ar.getSiteId()}if((!J(ap)||null===ap)&&ar){ap=ar.getTrackerUrl()}var aq,ao=0;for(ao;ao<I.length;ao++){aq=I[ao];if(aq&&String(aq.getSiteId())===String(at)&&aq.getTrackerUrl()===ap){return aq}}},retryMissedPluginCalls:function(){var ap=ah;ah=[];var ao=0;for(ao;ao<ap.length;ao++){af(ap[ao])}}};if(typeof define==="function"&&define.amd){define("piwik",[],function(){return e});define("matomo",[],function(){return e})}return e}())}
+}}T.name=ax+"###"+au+"###"+ao+"###"+ar}var aw=T.name.split("###");return aw.length===4&&aw[0]===ax}function Z(ap,aw,ar){var av=T.name.split("###"),au=av[1],ao=av[2],at=av[3],aq=O(ap,aw);o(aq+"plugins/Overlay/client/client.js?v=1",function(){Piwik_Overlay_Client.initialize(aq,ar,au,ao,at)})}function u(){var aq;try{aq=T.frameElement}catch(ap){return true}if(J(aq)){return(aq&&String(aq.nodeName).toLowerCase()==="iframe")?true:false}try{return T.self!==T.top}catch(ao){return true}}function Q(ce,b9){var bI=this,bd="mtm_consent",cM="mtm_consent_removed",b4=aa(G.domain,T.location.href,K()),cU=L(b4[0]),bN=p(b4[1]),bn=p(b4[2]),cS=false,ci="GET",da=ci,aI="application/x-www-form-urlencoded; charset=UTF-8",cx=aI,aE=ce||"",bH="",cZ="",b6=b9||"",by="",bO="",a4,bj="",c6=["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","rtf","sea","sit","tar","tbz","tbz2","bz","bz2","tgz","torrent","txt","wav","wma","wmv","wpd","xls","xlsx","xml","z","zip"],ax=[cU],bz=[],bL=[],a8=[],bJ=500,cW=true,cJ,a5,bR,c7=1800,bP,ao,cq=["pk_campaign","mtm_campaign","piwik_campaign","matomo_campaign","utm_campaign","utm_source","utm_medium"],bG=["pk_kwd","mtm_kwd","piwik_kwd","matomo_kwd","utm_term"],bk="_pk_",av="pk_vid",aZ=180,cX,bp,bS=false,bl=false,cQ,be,bv,cK=33955200000,co=1800000,c5=15768000000,a2=true,bE=false,bh=false,bQ=false,aQ=false,cb,bW={},cm={},bm={},bt=200,ct={},c0={},c8={},ca=[],cf=false,cC=false,ap=false,c9=false,cN=false,aN=false,bc=u(),cy=null,cY=null,cc,aR,bA,b7=am,bo,aL,cr=0,bu=["id","ses","cvar","ref"],cB=false,bB=null,cL=[],aw=U++;
+try{bj=G.title}catch(cz){bj=""}function de(dq,dn,dm,dp,dl,dk){if(bl){return}var dj;if(dm){dj=new Date();dj.setTime(dj.getTime()+dm)}G.cookie=dq+"="+t(dn)+(dm?";expires="+dj.toGMTString():"")+";path="+(dp||"/")+(dl?";domain="+dl:"")+(dk?";secure":"")+";SameSite=Lax"}function aD(dl){if(bl){return 0}var dj=new RegExp("(^|;)[ ]*"+dl+"=([^;]*)"),dk=dj.exec(G.cookie);return dk?S(dk[2]):0}bB=!aD(cM);function b2(dj){var dk;dj=k(dj,av);if(bP){dk=new RegExp("#.*");return dj.replace(dk,"")}return dj}function bV(dl,dj){var dm=s(dj),dk;if(dm){return dj}if(dj.slice(0,1)==="/"){return s(dl)+"://"+d(dl)+dj}dl=b2(dl);dk=dl.indexOf("?");if(dk>=0){dl=dl.slice(0,dk)}dk=dl.lastIndexOf("/");if(dk!==dl.length-1){dl=dl.slice(0,dk+1)}return dl+dj}function cH(dl,dj){var dk;dl=String(dl).toLowerCase();dj=String(dj).toLowerCase();if(dl===dj){return true}if(dj.slice(0,1)==="."){if(dl===dj.slice(1)){return true}dk=dl.length-dj.length;if((dk>0)&&(dl.slice(dk)===dj)){return true}}return false}function cl(dj){var dk=document.createElement("a");
+if(dj.indexOf("//")!==0&&dj.indexOf("http")!==0){if(dj.indexOf("*")===0){dj=dj.substr(1)}if(dj.indexOf(".")===0){dj=dj.substr(1)}dj="http://"+dj}dk.href=v.toAbsoluteUrl(dj);if(dk.pathname){return dk.pathname}return""}function a3(dk,dj){if(!aj(dj,"/")){dj="/"+dj}if(!aj(dk,"/")){dk="/"+dk}var dl=(dj==="/"||dj==="/*");if(dl){return true}if(dk===dj){return true}dj=String(dj).toLowerCase();dk=String(dk).toLowerCase();if(R(dj,"*")){dj=dj.slice(0,-1);dl=(!dj||dj==="/");if(dl){return true}if(dk===dj){return true}return dk.indexOf(dj)===0}if(!R(dk,"/")){dk+="/"}if(!R(dj,"/")){dj+="/"}return dk.indexOf(dj)===0}function ar(dn,dq){var dk,dj,dl,dm,dp;for(dk=0;dk<ax.length;dk++){dm=L(ax[dk]);dp=cl(ax[dk]);if(cH(dn,dm)&&a3(dq,dp)){return true}}return false}function aV(dm){var dk,dj,dl;for(dk=0;dk<ax.length;dk++){dj=L(ax[dk].toLowerCase());if(dm===dj){return true}if(dj.slice(0,1)==="."){if(dm===dj.slice(1)){return true}dl=dm.length-dj.length;if((dl>0)&&(dm.slice(dl)===dj)){return true}}}return false}function cp(dj,dl){dj=dj.replace("send_image=0","send_image=1");
+var dk=new Image(1,1);dk.onload=function(){E=0;if(typeof dl==="function"){dl({request:dj,trackerUrl:aE,success:true})}};dk.onerror=function(){if(typeof dl==="function"){dl({request:dj,trackerUrl:aE,success:false})}};dk.src=aE+(aE.indexOf("?")<0?"?":"&")+dj}function cE(dj){if(da==="POST"){return true}return dj&&(dj.length>2000||dj.indexOf('{"requests"')===0)}function aK(){return"object"===typeof h&&"function"===typeof h.sendBeacon&&"function"===typeof Blob}function a6(dn,dr,dq){var dl=aK();if(!dl){return false}var dm={type:"application/x-www-form-urlencoded; charset=UTF-8"};var ds=false;var dk=aE;try{var dj=new Blob([dn],dm);if(dq&&!cE(dn)){dj=new Blob([],dm);dk=dk+(dk.indexOf("?")<0?"?":"&")+dn}ds=h.sendBeacon(dk,dj)}catch(dp){return false}if(ds&&typeof dr==="function"){dr({request:dn,trackerUrl:aE,success:true,isSendBeacon:true})}return ds}function c4(dk,dl,dj){if(!J(dj)||null===dj){dj=true}if(m&&a6(dk,dl,dj)){return}setTimeout(function(){if(m&&a6(dk,dl,dj)){return}var dp;try{var dn=T.XMLHttpRequest?new T.XMLHttpRequest():T.ActiveXObject?new ActiveXObject("Microsoft.XMLHTTP"):null;
+dn.open("POST",aE,true);dn.onreadystatechange=function(){if(this.readyState===4&&!(this.status>=200&&this.status<300)){var dq=m&&a6(dk,dl,dj);if(!dq&&dj){cp(dk,dl)}else{if(typeof dl==="function"){dl({request:dk,trackerUrl:aE,success:false,xhr:this})}}}else{if(this.readyState===4&&(typeof dl==="function")){dl({request:dk,trackerUrl:aE,success:true,xhr:this})}}};dn.setRequestHeader("Content-Type",cx);dn.withCredentials=true;dn.send(dk)}catch(dm){dp=m&&a6(dk,dl,dj);if(!dp&&dj){cp(dk,dl)}else{if(typeof dl==="function"){dl({request:dk,trackerUrl:aE,success:false})}}}},50)}function cg(dk){var dj=new Date();var dl=dj.getTime()+dk;if(!r||dl>r){r=dl}}function cn(dj){if(cc||!a5||!bB){return}cc=setTimeout(function dk(){cc=null;if(!bc){bc=(!G.hasFocus||G.hasFocus())}if(!bc){cn(a5);return}if(bR()){return}var dl=new Date(),dm=a5-(dl.getTime()-cY);dm=Math.min(a5,dm);cn(dm)},dj||a5)}function bK(){if(!cc){return}clearTimeout(cc);cc=null}function ba(){bc=true;cy=new Date().getTime()}function dd(){var dj=new Date().getTime();
+return !cy||(dj-cy)>a5}function ay(){if(dd()){bR()}bK()}function dg(){if(aN||!a5){return}aN=true;an(T,"focus",ba);an(T,"blur",ay);ab++;e.addPlugin("HeartBeat"+ab,{unload:function(){if(aN&&dd()){bR()}}})}function cD(dn){var dk=new Date();var dj=dk.getTime();cY=dj;if(cC&&dj<cC){var dl=cC-dj;setTimeout(dn,dl);cg(dl+50);cC+=50;return}if(cC===false){var dm=800;cC=dj+dm}dn()}function aO(){if(aD(cM)){bB=false}else{if(aD(bd)){bB=true}}}function bF(dk,dj,dl){aO();if(!bB){cL.push(dk);return}if(!cQ&&dk){if(cB&&bB){dk+="&consent=1"}cD(function(){if(cW&&a6(dk,dl,true)){cg(100);return}if(cE(dk)){c4(dk,dl)}else{cp(dk,dl)}cg(dj)})}if(!aN){dg()}}function ck(dj){if(cQ){return false}return(dj&&dj.length)}function c3(dj,dn){if(!dn||dn>=dj.length){return[dj]}var dk=0;var dl=dj.length;var dm=[];for(dk;dk<dl;dk+=dn){dm.push(dj.slice(dk,dk+dn))}return dm}function df(dk,dj){if(!ck(dk)){return}if(!bB){cL.push(dk);return}cD(function(){var dn=c3(dk,50);var dl=0,dm;for(dl;dl<dn.length;dl++){dm='{"requests":["?'+dn[dl].join('","?')+'"]}';
+if(cW&&a6(dm,null,false)){cg(100)}else{c4(dm,null,false)}}cg(dj)})}function aT(dj){return bk+dj+"."+b6+"."+bo}function bY(dl,dk,dj){de(dl,"",-86400,dk,dj)}function b5(){if(bl){return"0"}if(!J(T.showModalDialog)&&J(h.cookieEnabled)){return h.cookieEnabled?"1":"0"}var dj=bk+"testcookie";de(dj,"1",undefined,bp,cX,bS);var dk=aD(dj)==="1"?"1":"0";bY(dj);return dk}function bi(){bo=b7((cX||cU)+(bp||"/")).slice(0,4)}function cI(){if(J(c8.res)){return c8}var dk,dm,dn={pdf:"application/pdf",qt:"video/quicktime",realp:"audio/x-pn-realaudio-plugin",wma:"application/x-mplayer2",fla:"application/x-shockwave-flash",java:"application/x-java-vm",ag:"application/x-silverlight"};if(!((new RegExp("MSIE")).test(h.userAgent))){if(h.mimeTypes&&h.mimeTypes.length){for(dk in dn){if(Object.prototype.hasOwnProperty.call(dn,dk)){dm=h.mimeTypes[dn[dk]];c8[dk]=(dm&&dm.enabledPlugin)?"1":"0"}}}if(!((new RegExp("Edge[ /](\\d+[\\.\\d]+)")).test(h.userAgent))&&typeof navigator.javaEnabled!=="unknown"&&J(h.javaEnabled)&&h.javaEnabled()){c8.java="1"
+}c8.cookie=b5()}var dl=parseInt(X.width,10);var dj=parseInt(X.height,10);c8.res=parseInt(dl,10)+"x"+parseInt(dj,10);return c8}function bX(){var dk=aT("cvar"),dj=aD(dk);if(dj&&dj.length){dj=T.JSON.parse(dj);if(W(dj)){return dj}}return{}}function cF(){if(aQ===false){aQ=bX()}}function cR(){var dj=cI();return b7((h.userAgent||"")+(h.platform||"")+T.JSON.stringify(dj)+(new Date()).getTime()+Math.random()).slice(0,16)}function aA(){var dj=cI();return b7((h.userAgent||"")+(h.platform||"")+T.JSON.stringify(dj)).slice(0,6)}function bf(){return Math.floor((new Date()).getTime()/1000)}function aJ(){var dk=bf();var dl=aA();var dj=String(dk)+dl;return dj}function c2(dl){dl=String(dl);var dp=aA();var dm=dp.length;var dn=dl.substr(-1*dm,dm);var dk=parseInt(dl.substr(0,dl.length-dm),10);if(dk&&dn&&dn===dp){var dj=bf();if(aZ<=0){return true}if(dj>=dk&&dj<=(dk+aZ)){return true}}return false}function dh(dj){if(!cN){return""}var dn=f(dj,av);if(!dn){return""}dn=String(dn);var dl=new RegExp("^[a-zA-Z0-9]+$");
+if(dn.length===32&&dl.test(dn)){var dk=dn.substr(16,32);if(c2(dk)){var dm=dn.substr(0,16);return dm}}return""}function cO(){if(!bO){bO=dh(bN)}var dl=new Date(),dj=Math.round(dl.getTime()/1000),dk=aT("id"),dp=aD(dk),dn,dm;if(dp){dn=dp.split(".");dn.unshift("0");if(bO.length){dn[1]=bO}return dn}if(bO.length){dm=bO}else{if("0"===b5()){dm=""}else{dm=cR()}}dn=["1",dm,dj,0,dj,"",""];return dn}function aY(){var dr=cO(),dm=dr[0],dn=dr[1],dk=dr[2],dj=dr[3],dp=dr[4],dl=dr[5];if(!J(dr[6])){dr[6]=""}var dq=dr[6];return{newVisitor:dm,uuid:dn,createTs:dk,visitCount:dj,currentVisitTs:dp,lastVisitTs:dl,lastEcommerceOrderTs:dq}}function aH(){var dm=new Date(),dk=dm.getTime(),dn=aY().createTs;var dj=parseInt(dn,10);var dl=(dj*1000)+cK-dk;return dl}function aM(dj){if(!b6){return}var dl=new Date(),dk=Math.round(dl.getTime()/1000);if(!J(dj)){dj=aY()}var dm=dj.uuid+"."+dj.createTs+"."+dj.visitCount+"."+dk+"."+dj.lastVisitTs+"."+dj.lastEcommerceOrderTs;de(aT("id"),dm,aH(),bp,cX,bS)}function bM(){var dj=aD(aT("ref"));
+if(dj.length){try{dj=T.JSON.parse(dj);if(W(dj)){return dj}}catch(dk){}}return["","",0,""]}function bw(dk){var dj="testvalue";de("test",dj,10000,null,dk);if(aD("test")===dj){bY("test",null,dk);return true}return false}function aF(){var dk=bl;bl=false;var dj,dl;for(dj=0;dj<bu.length;dj++){dl=aT(bu[dj]);if(dl!==cM&&dl!==bd&&0!==aD(dl)){bY(dl,bp,cX)}}bl=dk}function b3(dj){b6=dj;aM()}function di(dn){if(!dn||!W(dn)){return}var dm=[];var dl;for(dl in dn){if(Object.prototype.hasOwnProperty.call(dn,dl)){dm.push(dl)}}var dp={};dm.sort();var dj=dm.length;var dk;for(dk=0;dk<dj;dk++){dp[dm[dk]]=dn[dm[dk]]}return dp}function cd(){de(aT("ses"),"1",co,bp,cX,bS)}function bg(){var dm="";var dk="abcdefghijklmnopqrstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ";var dl=dk.length;var dj;for(dj=0;dj<6;dj++){dm+=dk.charAt(Math.floor(Math.random()*dl))}return dm}function az(dj){if(i&&i.timing&&i&&i.timing.connectEnd&&i.timing.fetchStart){dj+="&pf_net="+(i.timing.connectEnd-i.timing.fetchStart)}if(i&&i.timing&&i&&i.timing.responseStart&&i.timing.requestStart){dj+="&pf_srv="+(i.timing.responseStart-i.timing.requestStart)
+}if(i&&i.timing&&i&&i.timing.responseStart&&i.timing.responseEnd){dj+="&pf_tfr="+(i.timing.responseEnd-i.timing.responseStart)}if(i&&i.timing&&i&&i.timing.domInteractive&&i.timing.domLoading){dj+="&pf_dm1="+(i.timing.domInteractive-i.timing.domLoading)}if(i&&i.timing&&i&&i.timing.domComplete&&i.timing.domInteractive){dj+="&pf_dm2="+(i.timing.domComplete-i.timing.domInteractive)}if(i&&i.timing&&i&&i.timing.loadEventEnd&&i.timing.loadEventStart){dj+="&pf_onl="+(i.timing.loadEventEnd-i.timing.loadEventStart)}return dj}function cs(dl,dH,dI,dm){var dG,dk=new Date(),du=Math.round(dk.getTime()/1000),dr,dF,dn=1024,dO,dv,dD=aQ,dp=aT("ses"),dB=aT("ref"),dy=aT("cvar"),dz=aD(dp),dE=bM(),dK=a4||bN,ds,dj;if(bl){aF()}if(cQ){return""}var dA=aY();if(!J(dm)){dm=""}var dx=G.characterSet||G.charset;if(!dx||dx.toLowerCase()==="utf-8"){dx=null}ds=dE[0];dj=dE[1];dr=dE[2];dF=dE[3];if(!dz){var dJ=co/1000;if(!dA.lastVisitTs||(du-dA.lastVisitTs)>dJ){dA.visitCount++;dA.lastVisitTs=dA.currentVisitTs}if(!bv||!ds.length){for(dG in cq){if(Object.prototype.hasOwnProperty.call(cq,dG)){ds=f(dK,cq[dG]);
+if(ds.length){break}}}for(dG in bG){if(Object.prototype.hasOwnProperty.call(bG,dG)){dj=f(dK,bG[dG]);if(dj.length){break}}}}dO=d(bn);dv=dF.length?d(dF):"";if(dO.length&&!aV(dO)&&(!bv||!dv.length||aV(dv))){dF=bn}if(dF.length||ds.length){dr=du;dE=[ds,dj,dr,b2(dF.slice(0,dn))];de(dB,T.JSON.stringify(dE),c5,bp,cX,bS)}}dl+="&idsite="+b6+"&rec=1&r="+String(Math.random()).slice(2,8)+"&h="+dk.getHours()+"&m="+dk.getMinutes()+"&s="+dk.getSeconds()+"&url="+t(b2(dK))+(bn.length?"&urlref="+t(b2(bn)):"")+((by&&by.length)?"&uid="+t(by):"")+"&_id="+dA.uuid+"&_idts="+dA.createTs+"&_idvc="+dA.visitCount+"&_idn="+dA.newVisitor+(ds.length?"&_rcn="+t(ds):"")+(dj.length?"&_rck="+t(dj):"")+"&_refts="+dr+"&_viewts="+dA.lastVisitTs+(String(dA.lastEcommerceOrderTs).length?"&_ects="+dA.lastEcommerceOrderTs:"")+(String(dF).length?"&_ref="+t(b2(dF.slice(0,dn))):"")+(dx?"&cs="+t(dx):"")+"&send_image=0";var dN=cI();for(dG in dN){if(Object.prototype.hasOwnProperty.call(dN,dG)){dl+="&"+dG+"="+dN[dG]}}var dM=[];if(dH){for(dG in dH){if(Object.prototype.hasOwnProperty.call(dH,dG)&&/^dimension\d+$/.test(dG)){var dq=dG.replace("dimension","");
+dM.push(parseInt(dq,10));dM.push(String(dq));dl+="&"+dG+"="+t(dH[dG]);delete dH[dG]}}}if(dH&&B(dH)){dH=null}for(dG in ct){if(Object.prototype.hasOwnProperty.call(ct,dG)){dl+="&"+dG+"="+t(ct[dG])}}for(dG in bm){if(Object.prototype.hasOwnProperty.call(bm,dG)){var dw=(-1===M(dM,dG));if(dw){dl+="&dimension"+dG+"="+t(bm[dG])}}}if(dH){dl+="&data="+t(T.JSON.stringify(dH))}else{if(ao){dl+="&data="+t(T.JSON.stringify(ao))}}function dt(dP,dQ){var dR=T.JSON.stringify(dP);if(dR.length>2){return"&"+dQ+"="+t(dR)}return""}var dL=di(bW);var dC=di(cm);dl+=dt(dL,"cvar");dl+=dt(dC,"e_cvar");if(aQ){dl+=dt(aQ,"_cvar");for(dG in dD){if(Object.prototype.hasOwnProperty.call(dD,dG)){if(aQ[dG][0]===""||aQ[dG][1]===""){delete aQ[dG]}}}if(bQ){de(dy,T.JSON.stringify(aQ),co,bp,cX,bS)}}if(a2&&bE&&!bh){dl=az(dl);bh=true}if(aL){dl+="&pv_id="+aL}dA.lastEcommerceOrderTs=J(dm)&&String(dm).length?dm:dA.lastEcommerceOrderTs;aM(dA);cd();dl+=ac(dI,{tracker:bI,request:dl});if(cZ.length){dl+="&"+cZ}if(A(cb)){dl=cb(dl)}return dl
+}bR=function a7(){var dj=new Date();dj=dj.getTime();if(!cY){return false}if((cY+(1000*c7))<=dj){return false}if(cY+a5<=dj){bI.ping();return true}return false};function bq(dm,dl,ds,dn,dj,dv){var dq="idgoal=0",dr,dk=new Date(),dt=[],du,dp=String(dm).length;if(dp){dq+="&ec_id="+t(dm);dr=Math.round(dk.getTime()/1000)}dq+="&revenue="+dl;if(String(ds).length){dq+="&ec_st="+ds}if(String(dn).length){dq+="&ec_tx="+dn}if(String(dj).length){dq+="&ec_sh="+dj}if(String(dv).length){dq+="&ec_dt="+dv}if(c0){for(du in c0){if(Object.prototype.hasOwnProperty.call(c0,du)){if(!J(c0[du][1])){c0[du][1]=""}if(!J(c0[du][2])){c0[du][2]=""}if(!J(c0[du][3])||String(c0[du][3]).length===0){c0[du][3]=0}if(!J(c0[du][4])||String(c0[du][4]).length===0){c0[du][4]=1}dt.push(c0[du])}}dq+="&ec_items="+t(T.JSON.stringify(dt))}dq=cs(dq,ao,"ecommerce",dr);bF(dq,bJ);if(dp){c0={}}}function bZ(dj,dn,dm,dl,dk,dp){if(String(dj).length&&J(dn)){bq(dj,dn,dm,dl,dk,dp)}}function bs(dj){if(J(dj)){bq("",dj,"","","","")}}function b0(dk,dm,dl){aL=bg();
+var dj=cs("action_name="+t(al(dk||bj)),dm,"log");if(!bh){dj=az(dj)}bF(dj,bJ,dl)}function a0(dl,dk){var dm,dj="(^| )(piwik[_-]"+dk;if(dl){for(dm=0;dm<dl.length;dm++){dj+="|"+dl[dm]}}dj+=")( |$)";return new RegExp(dj)}function aU(dj){return(aE&&dj&&0===String(dj).indexOf(aE))}function cv(dn,dj,dp,dk){if(aU(dj)){return 0}var dm=a0(bL,"download"),dl=a0(a8,"link"),dq=new RegExp("\\.("+c6.join("|")+")([?&#]|$)","i");if(dl.test(dn)){return"link"}if(dk||dm.test(dn)||dq.test(dj)){return"download"}if(dp){return 0}return"link"}function au(dk){var dj;dj=dk.parentNode;while(dj!==null&&J(dj)){if(ae.isLinkElement(dk)){break}dk=dj;dj=dk.parentNode}return dk}function dc(dp){dp=au(dp);if(!ae.hasNodeAttribute(dp,"href")){return}if(!J(dp.href)){return}var dn=ae.getAttributeValueFromNode(dp,"href");var dk=dp.pathname||cl(dp.href);var dq=dp.hostname||d(dp.href);var dr=dq.toLowerCase();var dl=dp.href.replace(dq,dr);var dm=new RegExp("^(javascript|vbscript|jscript|mocha|livescript|ecmascript|mailto|tel):","i");
+if(!dm.test(dl)){var dj=cv(dp.className,dl,ar(dr,dk),ae.hasNodeAttribute(dp,"download"));if(dj){return{type:dj,href:dl}}}}function aP(dj,dk,dl,dm){var dn=v.buildInteractionRequestParams(dj,dk,dl,dm);if(!dn){return}return cs(dn,null,"contentInteraction")}function bb(dj,dk){if(!dj||!dk){return false}var dl=v.findTargetNode(dj);if(v.shouldIgnoreInteraction(dl)){return false}dl=v.findTargetNodeNoDefault(dj);if(dl&&!V(dl,dk)){return false}return true}function cu(dl,dk,dn){if(!dl){return}var dj=v.findParentContentNode(dl);if(!dj){return}if(!bb(dj,dl)){return}var dm=v.buildContentBlock(dj);if(!dm){return}if(!dm.target&&dn){dm.target=dn}return v.buildInteractionRequestParams(dk,dm.name,dm.piece,dm.target)}function aW(dk){if(!ca||!ca.length){return false}var dj,dl;for(dj=0;dj<ca.length;dj++){dl=ca[dj];if(dl&&dl.name===dk.name&&dl.piece===dk.piece&&dl.target===dk.target){return true}}return false}function aX(dj){return function(dn){if(!dj){return}var dl=v.findParentContentNode(dj);var dk;if(dn){dk=dn.target||dn.srcElement
+}if(!dk){dk=dj}if(!bb(dl,dk)){return}if(!dl){return false}var dp=v.findTargetNode(dl);if(!dp||v.shouldIgnoreInteraction(dp)){return false}var dm=dc(dp);if(c9&&dm&&dm.type){return dm.type}return bI.trackContentInteractionNode(dk,"click")}}function b1(dl){if(!dl||!dl.length){return}var dj,dk;for(dj=0;dj<dl.length;dj++){dk=v.findTargetNode(dl[dj]);if(dk&&!dk.contentInteractionTrackingSetupDone){dk.contentInteractionTrackingSetupDone=true;an(dk,"click",aX(dk))}}}function bx(dl,dm){if(!dl||!dl.length){return[]}var dj,dk;for(dj=0;dj<dl.length;dj++){if(aW(dl[dj])){dl.splice(dj,1);dj--}else{ca.push(dl[dj])}}if(!dl||!dl.length){return[]}b1(dm);var dn=[];for(dj=0;dj<dl.length;dj++){dk=cs(v.buildImpressionRequestParams(dl[dj].name,dl[dj].piece,dl[dj].target),undefined,"contentImpressions");if(dk){dn.push(dk)}}return dn}function cA(dk){var dj=v.collectContent(dk);return bx(dj,dk)}function a9(dk){if(!dk||!dk.length){return[]}var dj;for(dj=0;dj<dk.length;dj++){if(!v.isNodeVisible(dk[dj])){dk.splice(dj,1);
+dj--}}if(!dk||!dk.length){return[]}return cA(dk)}function aG(dl,dj,dk){var dm=v.buildImpressionRequestParams(dl,dj,dk);return cs(dm,null,"contentImpression")}function db(dm,dk){if(!dm){return}var dj=v.findParentContentNode(dm);var dl=v.buildContentBlock(dj);if(!dl){return}if(!dk){dk="Unknown"}return aP(dk,dl.name,dl.piece,dl.target)}function cP(dk,dm,dj,dl){return"e_c="+t(dk)+"&e_a="+t(dm)+(J(dj)?"&e_n="+t(dj):"")+(J(dl)?"&e_v="+t(dl):"")}function at(dl,dn,dj,dm,dq,dp){if(!Y(dl)||!Y(dn)){ak("Error while logging event: Parameters `category` and `action` must not be empty or filled with whitespaces");return false}var dk=cs(cP(dl,dn,dj,dm),dq,"event");bF(dk,bJ,dp)}function b8(dj,dm,dk,dn){var dl=cs("search="+t(dj)+(dm?"&search_cat="+t(dm):"")+(J(dk)?"&search_count="+dk:""),dn,"sitesearch");bF(dl,bJ)}function cT(dj,dn,dm,dl){var dk=cs("idgoal="+dj+(dn?"&revenue="+dn:""),dm,"goal");bF(dk,bJ,dl)}function c1(dm,dj,dr,dq,dl){var dp=dj+"="+t(b2(dm));var dk=cu(dl,"click",dm);if(dk){dp+="&"+dk}var dn=cs(dp,dr,"link");
+bF(dn,bJ,dq)}function bU(dk,dj){if(dk!==""){return dk+dj.charAt(0).toUpperCase()+dj.slice(1)}return dj}function ch(dp){var dn,dj,dm=["","webkit","ms","moz"],dl;if(!be){for(dj=0;dj<dm.length;dj++){dl=dm[dj];if(Object.prototype.hasOwnProperty.call(G,bU(dl,"hidden"))){if(G[bU(dl,"visibilityState")]==="prerender"){dn=true}break}}}if(dn){an(G,dl+"visibilitychange",function dk(){G.removeEventListener(dl+"visibilitychange",dk,false);dp()});return}dp()}function br(){var dk=bI.getVisitorId();var dj=aJ();return dk+dj}function cj(dj){if(!dj){return}if(!ae.hasNodeAttribute(dj,"href")){return}var dk=ae.getAttributeValueFromNode(dj,"href");if(!dk||aU(dk)){return}if(!bI.getVisitorId()){return}dk=k(dk,av);var dl=br();dk=F(dk,av,dl);ae.setAnyAttribute(dj,"href",dk)}function aB(dm){var dn=ae.getAttributeValueFromNode(dm,"href");if(!dn){return false}dn=String(dn);var dk=dn.indexOf("//")===0||dn.indexOf("http://")===0||dn.indexOf("https://")===0;if(!dk){return false}var dj=dm.pathname||cl(dm.href);var dl=(dm.hostname||d(dm.href)).toLowerCase();
+if(ar(dl,dj)){if(!cH(cU,L(dl))){return true}return false}return false}function cG(dj){var dk=dc(dj);if(dk&&dk.type){dk.href=p(dk.href);c1(dk.href,dk.type,undefined,null,dj);return}if(cN){dj=au(dj);if(aB(dj)){cj(dj)}}}function cw(){return G.all&&!G.addEventListener}function cV(dj){var dl=dj.which;var dk=(typeof dj.button);if(!dl&&dk!=="undefined"){if(cw()){if(dj.button&1){dl=1}else{if(dj.button&2){dl=3}else{if(dj.button&4){dl=2}}}}else{if(dj.button===0||dj.button==="0"){dl=1}else{if(dj.button&1){dl=2}else{if(dj.button&2){dl=3}}}}}return dl}function bT(dj){switch(cV(dj)){case 1:return"left";case 2:return"middle";case 3:return"right"}}function a1(dj){return dj.target||dj.srcElement}function aC(dj){return function(dm){dm=dm||T.event;var dl=bT(dm);var dn=a1(dm);if(dm.type==="click"){var dk=false;if(dj&&dl==="middle"){dk=true}if(dn&&!dk){cG(dn)}}else{if(dm.type==="mousedown"){if(dl==="middle"&&dn){aR=dl;bA=dn}else{aR=bA=null}}else{if(dm.type==="mouseup"){if(dl===aR&&dn===bA){cG(dn)}aR=bA=null
+}else{if(dm.type==="contextmenu"){cG(dn)}}}}}}function aq(dl,dk){var dj=typeof dk;if(dj==="undefined"){dk=true}an(dl,"click",aC(dk),false);if(dk){an(dl,"mouseup",aC(dk),false);an(dl,"mousedown",aC(dk),false);an(dl,"contextmenu",aC(dk),false)}}function bD(dl,dn){ap=true;var dm,dk=a0(bz,"ignore"),dp=G.links,dj=null,dq=null;if(dp){for(dm=0;dm<dp.length;dm++){dj=dp[dm];if(!dk.test(dj.className)){dq=typeof dj.piwikTrackers;if("undefined"===dq){dj.piwikTrackers=[]}if(-1===M(dj.piwikTrackers,dn)){dj.piwikTrackers.push(dn);aq(dj,dl)}}}}}function aS(dk,dn,dp){if(cf){return true}cf=true;var dq=false;var dm,dl;function dj(){dq=true}n(function(){function dr(dt){setTimeout(function(){if(!cf){return}dq=false;dp.trackVisibleContentImpressions();dr(dt)},dt)}function ds(dt){setTimeout(function(){if(!cf){return}if(dq){dq=false;dp.trackVisibleContentImpressions()}ds(dt)},dt)}if(dk){dm=["scroll","resize"];for(dl=0;dl<dm.length;dl++){if(G.addEventListener){G.addEventListener(dm[dl],dj,false)}else{T.attachEvent("on"+dm[dl],dj)
+}}ds(100)}if(dn&&dn>0){dn=parseInt(dn,10);dr(dn)}})}var bC={enabled:true,requests:[],timeout:null,interval:2500,sendRequests:function(){var dj=this.requests;this.requests=[];if(dj.length===1){bF(dj[0],bJ)}else{df(dj,bJ)}},canQueue:function(){return !m&&this.enabled},pushMultiple:function(dk){if(!this.canQueue()){df(dk,bJ);return}var dj;for(dj=0;dj<dk.length;dj++){this.push(dk[dj])}},push:function(dj){if(!dj){return}if(!this.canQueue()){bF(dj,bJ);return}bC.requests.push(dj);if(this.timeout){clearTimeout(this.timeout);this.timeout=null}this.timeout=setTimeout(function(){bC.timeout=null;bC.sendRequests()},bC.interval);var dk="RequestQueue"+aw;if(!Object.prototype.hasOwnProperty.call(b,dk)){b[dk]={unload:function(){if(bC.timeout){clearTimeout(bC.timeout)}bC.sendRequests()}}}}};bi();aM();this.hasConsent=function(){return bB};this.getVisitorId=function(){return aY().uuid};this.getVisitorInfo=function(){return cO()};this.getAttributionInfo=function(){return bM()};this.getAttributionCampaignName=function(){return bM()[0]
+};this.getAttributionCampaignKeyword=function(){return bM()[1]};this.getAttributionReferrerTimestamp=function(){return bM()[2]};this.getAttributionReferrerUrl=function(){return bM()[3]};this.setTrackerUrl=function(dj){aE=dj};this.getTrackerUrl=function(){return aE};this.getPiwikUrl=function(){return O(this.getTrackerUrl(),bH)};this.addTracker=function(dj,dl){if(!J(dj)||null===dj){dj=this.getTrackerUrl()}var dk=new Q(dj,dl);I.push(dk);e.trigger("TrackerAdded",[this]);return dk};this.getSiteId=function(){return b6};this.setSiteId=function(dj){b3(dj)};this.resetUserId=function(){by=""};this.setUserId=function(dj){if(Y(dj)){by=dj}};this.getUserId=function(){return by};this.setCustomData=function(dj,dk){if(W(dj)){ao=dj}else{if(!ao){ao={}}ao[dj]=dk}};this.getCustomData=function(){return ao};this.setCustomRequestProcessing=function(dj){cb=dj};this.appendToTrackingUrl=function(dj){cZ=dj};this.getRequest=function(dj){return cs(dj)};this.addPlugin=function(dj,dk){b[dj]=dk};this.setCustomDimension=function(dj,dk){dj=parseInt(dj,10);
+if(dj>0){if(!J(dk)){dk=""}if(!w(dk)){dk=String(dk)}bm[dj]=dk}};this.getCustomDimension=function(dj){dj=parseInt(dj,10);if(dj>0&&Object.prototype.hasOwnProperty.call(bm,dj)){return bm[dj]}};this.deleteCustomDimension=function(dj){dj=parseInt(dj,10);if(dj>0){delete bm[dj]}};this.setCustomVariable=function(dk,dj,dn,dl){var dm;if(!J(dl)){dl="visit"}if(!J(dj)){return}if(!J(dn)){dn=""}if(dk>0){dj=!w(dj)?String(dj):dj;dn=!w(dn)?String(dn):dn;dm=[dj.slice(0,bt),dn.slice(0,bt)];if(dl==="visit"||dl===2){cF();aQ[dk]=dm}else{if(dl==="page"||dl===3){bW[dk]=dm}else{if(dl==="event"){cm[dk]=dm}}}}};this.getCustomVariable=function(dk,dl){var dj;if(!J(dl)){dl="visit"}if(dl==="page"||dl===3){dj=bW[dk]}else{if(dl==="event"){dj=cm[dk]}else{if(dl==="visit"||dl===2){cF();dj=aQ[dk]}}}if(!J(dj)||(dj&&dj[0]==="")){return false}return dj};this.deleteCustomVariable=function(dj,dk){if(this.getCustomVariable(dj,dk)){this.setCustomVariable(dj,"","",dk)}};this.deleteCustomVariables=function(dj){if(dj==="page"||dj===3){bW={}
+}else{if(dj==="event"){cm={}}else{if(dj==="visit"||dj===2){aQ={}}}}};this.storeCustomVariablesInCookie=function(){bQ=true};this.setLinkTrackingTimer=function(dj){bJ=dj};this.getLinkTrackingTimer=function(){return bJ};this.setDownloadExtensions=function(dj){if(w(dj)){dj=dj.split("|")}c6=dj};this.addDownloadExtensions=function(dk){var dj;if(w(dk)){dk=dk.split("|")}for(dj=0;dj<dk.length;dj++){c6.push(dk[dj])}};this.removeDownloadExtensions=function(dl){var dk,dj=[];if(w(dl)){dl=dl.split("|")}for(dk=0;dk<c6.length;dk++){if(M(dl,c6[dk])===-1){dj.push(c6[dk])}}c6=dj};this.setDomains=function(dj){ax=w(dj)?[dj]:dj;var dn=false,dl=0,dk;for(dl;dl<ax.length;dl++){dk=String(ax[dl]);if(cH(cU,L(dk))){dn=true;break}var dm=cl(dk);if(dm&&dm!=="/"&&dm!=="/*"){dn=true;break}}if(!dn){ax.push(cU)}};this.enableCrossDomainLinking=function(){cN=true};this.disableCrossDomainLinking=function(){cN=false};this.isCrossDomainLinkingEnabled=function(){return cN};this.setCrossDomainLinkingTimeout=function(dj){aZ=dj};this.getCrossDomainLinkingUrlParameter=function(){return t(av)+"="+t(br())
+};this.setIgnoreClasses=function(dj){bz=w(dj)?[dj]:dj};this.setRequestMethod=function(dj){da=dj||ci};this.setRequestContentType=function(dj){cx=dj||aI};this.setReferrerUrl=function(dj){bn=dj};this.setCustomUrl=function(dj){a4=bV(bN,dj)};this.getCurrentUrl=function(){return a4||bN};this.setDocumentTitle=function(dj){bj=dj};this.setAPIUrl=function(dj){bH=dj};this.setDownloadClasses=function(dj){bL=w(dj)?[dj]:dj};this.setLinkClasses=function(dj){a8=w(dj)?[dj]:dj};this.setCampaignNameKey=function(dj){cq=w(dj)?[dj]:dj};this.setCampaignKeywordKey=function(dj){bG=w(dj)?[dj]:dj};this.discardHashTag=function(dj){bP=dj};this.setCookieNamePrefix=function(dj){bk=dj;if(aQ){aQ=bX()}};this.setCookieDomain=function(dj){var dk=L(dj);if(bw(dk)){cX=dk;bi()}};this.getCookieDomain=function(){return cX};this.hasCookies=function(){return"1"===b5()};this.setSessionCookie=function(dl,dk,dj){if(!dl){throw new Error("Missing cookie name")}if(!J(dj)){dj=co}bu.push(dl);de(aT(dl),dk,dj,bp,cX)};this.getCookie=function(dk){var dj=aD(aT(dk));
+if(dj===0){return null}return dj};this.setCookiePath=function(dj){bp=dj;bi()};this.getCookiePath=function(dj){return bp};this.setVisitorCookieTimeout=function(dj){cK=dj*1000};this.setSessionCookieTimeout=function(dj){co=dj*1000};this.getSessionCookieTimeout=function(){return co};this.setReferralCookieTimeout=function(dj){c5=dj*1000};this.setConversionAttributionFirstReferrer=function(dj){bv=dj};this.setSecureCookie=function(dj){bS=dj};this.disableCookies=function(){bl=true;c8.cookie="0";if(b6){aF()}};this.deleteCookies=function(){aF()};this.setDoNotTrack=function(dk){var dj=h.doNotTrack||h.msDoNotTrack;cQ=dk&&(dj==="yes"||dj==="1");if(cQ){this.disableCookies()}};this.alwaysUseSendBeacon=function(){cW=true};this.disableAlwaysUseSendBeacon=function(){cW=false};this.addListener=function(dk,dj){aq(dk,dj)};this.enableLinkTracking=function(dk){c9=true;var dj=this;ch(function(){q(function(){bD(dk,dj)});n(function(){bD(dk,dj)})})};this.enableJSErrorTracking=function(){if(cS){return}cS=true;var dj=T.onerror;
+T.onerror=function(dp,dm,dl,dn,dk){ch(function(){var dq="JavaScript Errors";var dr=dm+":"+dl;if(dn){dr+=":"+dn}at(dq,dr,dp)});if(dj){return dj(dp,dm,dl,dn,dk)}return false}};this.disablePerformanceTracking=function(){a2=false};this.setVisitStandardLength=function(dj){dj=Math.max(dj,5);c7=dj};this.enableHeartBeatTimer=function(dj){dj=Math.max(dj,5);a5=(dj||15)*1000;if(cY!==null){dg()}};this.disableHeartBeatTimer=function(){bK();if(a5||aN){if(T.removeEventListener){T.removeEventListener("focus",ba);T.removeEventListener("blur",ay)}else{if(T.detachEvent){T.detachEvent("onfocus",ba);T.detachEvent("onblur",ay)}}}a5=null;aN=false};this.killFrame=function(){if(T.location!==T.top.location){T.top.location=T.location}};this.redirectFile=function(dj){if(T.location.protocol==="file:"){T.location=dj}};this.setCountPreRendered=function(dj){be=dj};this.trackGoal=function(dj,dm,dl,dk){ch(function(){cT(dj,dm,dl,dk)})};this.trackLink=function(dk,dj,dm,dl){ch(function(){c1(dk,dj,dm,dl)})};this.getNumTrackedPageViews=function(){return cr
+};this.trackPageView=function(dj,dl,dk){ca=[];cL=[];if(N(b6)){ch(function(){Z(aE,bH,b6)})}else{ch(function(){cr++;b0(dj,dl,dk)})}};this.trackAllContentImpressions=function(){if(N(b6)){return}ch(function(){q(function(){var dj=v.findContentNodes();var dk=cA(dj);bC.pushMultiple(dk)})})};this.trackVisibleContentImpressions=function(dj,dk){if(N(b6)){return}if(!J(dj)){dj=true}if(!J(dk)){dk=750}aS(dj,dk,this);ch(function(){n(function(){var dl=v.findContentNodes();var dm=a9(dl);bC.pushMultiple(dm)})})};this.trackContentImpression=function(dl,dj,dk){if(N(b6)){return}dl=a(dl);dj=a(dj);dk=a(dk);if(!dl){return}dj=dj||"Unknown";ch(function(){var dm=aG(dl,dj,dk);bC.push(dm)})};this.trackContentImpressionsWithinNode=function(dj){if(N(b6)||!dj){return}ch(function(){if(cf){n(function(){var dk=v.findContentNodesWithinNode(dj);var dl=a9(dk);bC.pushMultiple(dl)})}else{q(function(){var dk=v.findContentNodesWithinNode(dj);var dl=cA(dk);bC.pushMultiple(dl)})}})};this.trackContentInteraction=function(dl,dm,dj,dk){if(N(b6)){return
+}dl=a(dl);dm=a(dm);dj=a(dj);dk=a(dk);if(!dl||!dm){return}dj=dj||"Unknown";ch(function(){var dn=aP(dl,dm,dj,dk);if(dn){bC.push(dn)}})};this.trackContentInteractionNode=function(dl,dk){if(N(b6)||!dl){return}var dj=null;ch(function(){dj=db(dl,dk);if(dj){bC.push(dj)}});return dj};this.logAllContentBlocksOnPage=function(){var dl=v.findContentNodes();var dj=v.collectContent(dl);var dk=typeof console;if(dk!=="undefined"&&console&&console.log){console.log(dj)}};this.trackEvent=function(dk,dm,dj,dl,dp,dn){ch(function(){at(dk,dm,dj,dl,dp,dn)})};this.trackSiteSearch=function(dj,dl,dk,dm){ca=[];ch(function(){b8(dj,dl,dk,dm)})};this.setEcommerceView=function(dn,dj,dl,dk){ct={};if(Y(dl)){dl=String(dl)}if(!J(dl)||dl===null||dl===false||!dl.length){dl=""}else{if(dl instanceof Array){dl=T.JSON.stringify(dl)}}var dm="_pkc";ct[dm]=dl;if(J(dk)&&dk!==null&&dk!==false&&String(dk).length){dm="_pkp";ct[dm]=dk}if(!Y(dn)&&!Y(dj)){return}if(Y(dn)){dm="_pks";ct[dm]=dn}if(!Y(dj)){dj=""}dm="_pkn";ct[dm]=dj};this.getEcommerceItems=function(){return JSON.parse(JSON.stringify(c0))
+};this.addEcommerceItem=function(dn,dj,dl,dk,dm){if(Y(dn)){c0[dn]=[String(dn),dj,dl,dk,dm]}};this.removeEcommerceItem=function(dj){if(Y(dj)){dj=String(dj);delete c0[dj]}};this.clearEcommerceCart=function(){c0={}};this.trackEcommerceOrder=function(dj,dn,dm,dl,dk,dp){bZ(dj,dn,dm,dl,dk,dp)};this.trackEcommerceCartUpdate=function(dj){bs(dj)};this.trackRequest=function(dk,dm,dl,dj){ch(function(){var dn=cs(dk,dm,dj);bF(dn,bJ,dl)})};this.ping=function(){this.trackRequest("ping=1",null,null,"ping")};this.disableQueueRequest=function(){bC.enabled=false};this.setRequestQueueInterval=function(dj){if(dj<1000){throw new Error("Request queue interval needs to be at least 1000ms")}bC.interval=dj};this.queueRequest=function(dj){ch(function(){var dk=cs(dj);bC.push(dk)})};this.isConsentRequired=function(){return cB};this.getRememberedConsent=function(){var dj=aD(bd);if(aD(cM)){if(dj){bY(bd,bp,cX)}return null}if(!dj||dj===0){return null}return dj};this.hasRememberedConsent=function(){return !!this.getRememberedConsent()
+};this.requireConsent=function(){cB=true;bB=this.hasRememberedConsent();x++;b["CoreConsent"+x]={unload:function(){if(!bB){aF()}}}};this.setConsentGiven=function(){bB=true;bY(cM,bp,cX);var dk,dj;for(dk=0;dk<cL.length;dk++){dj=typeof cL[dk];if(dj==="string"){bF(cL[dk],bJ)}else{if(dj==="object"){df(cL[dk],bJ)}}}cL=[]};this.rememberConsentGiven=function(dk){if(dk){dk=dk*60*60*1000}else{dk=30*365*24*60*60*1000}this.setConsentGiven();var dj=new Date().getTime();de(bd,dj,dk,bp,cX,bS)};this.forgetConsentGiven=function(){var dj=30*365*24*60*60*1000;bY(bd,bp,cX);de(cM,new Date().getTime(),dj,bp,cX,bS);this.requireConsent()};this.isUserOptedOut=function(){return !bB};this.optUserOut=this.forgetConsentGiven;this.forgetUserOptOut=this.rememberConsentGiven;n(function(){setTimeout(function(){bE=true},0)});e.trigger("TrackerSetup",[this])}function H(){return{push:af}}function c(au,at){var av={};var aq,ar;for(aq=0;aq<at.length;aq++){var ao=at[aq];av[ao]=1;for(ar=0;ar<au.length;ar++){if(au[ar]&&au[ar][0]){var ap=au[ar][0];
+if(ao===ap){af(au[ar]);delete au[ar];if(av[ap]>1&&ap!=="addTracker"){ak("The method "+ap+' is registered more than once in "_paq" variable. Only the last call has an effect. Please have a look at the multiple Piwik trackers documentation: https://developer.piwik.org/guides/tracking-javascript-guide#multiple-piwik-trackers')}av[ap]++}}}}return au}var C=["addTracker","disableCookies","setTrackerUrl","setAPIUrl","enableCrossDomainLinking","setCrossDomainLinkingTimeout","setSessionCookieTimeout","setVisitorCookieTimeout","setCookieNamePrefix","setSecureCookie","setCookiePath","setCookieDomain","setDomains","setUserId","setSiteId","alwaysUseSendBeacon","enableLinkTracking","requireConsent","setConsentGiven"];function ad(ao,aq){var ap=new Q(ao,aq);I.push(ap);_paq=c(_paq,C);for(E=0;E<_paq.length;E++){if(_paq[E]){af(_paq[E])}}_paq=new H();e.trigger("TrackerAdded",[ap]);return ap}an(T,"beforeunload",ai,false);an(T,"message",function(au){if(!au||!au.origin){return}var aw,ar,ap;var ax=d(au.origin);
+var at=e.getAsyncTrackers();for(ar=0;ar<at.length;ar++){ap=d(at[ar].getPiwikUrl());if(ap===ax){aw=at[ar];break}}if(!aw){return}var aq=null;try{aq=JSON.parse(au.data)}catch(av){return}if(!aq){return}function ao(aA){var aC=G.getElementsByTagName("iframe");for(ar=0;ar<aC.length;ar++){var aB=aC[ar];var ay=d(aB.src);if(aB.contentWindow&&J(aB.contentWindow.postMessage)&&ay===ax){var az=JSON.stringify(aA);aB.contentWindow.postMessage(az,"*")}}}if(J(aq.maq_initial_value)){ao({maq_opted_in:aq.maq_initial_value&&aw.hasConsent(),maq_url:aw.getPiwikUrl(),maq_optout_by_default:aw.isConsentRequired()})}else{if(J(aq.maq_opted_in)){at=e.getAsyncTrackers();for(ar=0;ar<at.length;ar++){aw=at[ar];if(aq.maq_opted_in){aw.rememberConsentGiven()}else{aw.forgetConsentGiven()}}ao({maq_confirm_opted_in:aw.hasConsent(),maq_url:aw.getPiwikUrl(),maq_optout_by_default:aw.isConsentRequired()})}}},false);Date.prototype.getTimeAlias=Date.prototype.getTime;e={initialized:false,JSON:T.JSON,DOM:{addEventListener:function(ar,aq,ap,ao){var at=typeof ao;
+if(at==="undefined"){ao=false}an(ar,aq,ap,ao)},onLoad:n,onReady:q,isNodeVisible:j,isOrWasNodeVisible:v.isNodeVisible},on:function(ap,ao){if(!y[ap]){y[ap]=[]}y[ap].push(ao)},off:function(aq,ap){if(!y[aq]){return}var ao=0;for(ao;ao<y[aq].length;ao++){if(y[aq][ao]===ap){y[aq].splice(ao,1)}}},trigger:function(aq,ar,ap){if(!y[aq]){return}var ao=0;for(ao;ao<y[aq].length;ao++){y[aq][ao].apply(ap||T,ar)}},addPlugin:function(ao,ap){b[ao]=ap},getTracker:function(ao,ap){if(!J(ap)){ap=this.getAsyncTracker().getSiteId()}if(!J(ao)){ao=this.getAsyncTracker().getTrackerUrl()}return new Q(ao,ap)},getAsyncTrackers:function(){return I},addTracker:function(ao,aq){var ap;if(!I.length){ap=ad(ao,aq)}else{ap=I[0].addTracker(ao,aq)}return ap},getAsyncTracker:function(ap,at){var ar;if(I&&I.length&&I[0]){ar=I[0]}else{return ad(ap,at)}if(!at&&!ap){return ar}if((!J(at)||null===at)&&ar){at=ar.getSiteId()}if((!J(ap)||null===ap)&&ar){ap=ar.getTrackerUrl()}var aq,ao=0;for(ao;ao<I.length;ao++){aq=I[ao];if(aq&&String(aq.getSiteId())===String(at)&&aq.getTrackerUrl()===ap){return aq
+}}},retryMissedPluginCalls:function(){var ap=ah;ah=[];var ao=0;for(ao;ao<ap.length;ao++){af(ap[ao])}}};if(typeof define==="function"&&define.amd){define("piwik",[],function(){return e});define("matomo",[],function(){return e})}return e}())}
/*!!! 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){var d=typeof console;if(d!=="undefined"&&console&&console.error){console.error("_paq.push() was used but Matomo tracker was not initialized before the matomo.js file was loaded. Make sure to configure the tracker via _paq.push before loading matomo.js. Alternatively, you can create a tracker via Matomo.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 Matomo tracker was not initialized before the matomo.js file was loaded. Make sure to configure the tracker via _paq.push before loading matomo.js. Alternatively, you can create a tracker via Matomo.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/matomo.js b/matomo.js
index 73bf10e1b9..cb16f0764b 100644
--- a/matomo.js
+++ b/matomo.js
@@ -28,43 +28,43 @@ if(-1!==M(aq,ao)&&ae.findFirstNodeHavingAttributeWithValue(at,"src")){var ar=ae.
if(T.innerHeight&&ao>T.innerHeight){ao=T.innerHeight}return((at.bottom>0||aq)&&at.right>0&&at.left<ap&&((at.top<ao)||aq))},isNodeVisible:function(ap){var ao=j(ap);var aq=this.isOrWasNodeInViewport(ap);return ao&&aq},buildInteractionRequestParams:function(ao,ap,aq,ar){var at="";if(ao){at+="c_i="+t(ao)}if(ap){if(at){at+="&"}at+="c_n="+t(ap)}if(aq){if(at){at+="&"}at+="c_p="+t(aq)}if(ar){if(at){at+="&"}at+="c_t="+t(ar)}return at},buildImpressionRequestParams:function(ao,ap,aq){var ar="c_n="+t(ao)+"&c_p="+t(ap);if(aq){ar+="&c_t="+t(aq)}return ar},buildContentBlock:function(aq){if(!aq){return}var ao=this.findContentName(aq);var ap=this.findContentPiece(aq);var ar=this.findContentTarget(aq);ao=this.trim(ao);ap=this.trim(ap);ar=this.trim(ar);return{name:ao||"Unknown",piece:ap||"Unknown",target:ar||""}},collectContent:function(ar){if(!ar||!ar.length){return[]}var aq=[];var ao,ap;for(ao=0;ao<ar.length;ao++){ap=this.buildContentBlock(ar[ao]);if(J(ap)){aq.push(ap)}}return aq},setLocation:function(ao){this.location=ao
},getLocation:function(){var ao=this.location||T.location;if(!ao.origin){ao.origin=ao.protocol+"//"+ao.hostname+(ao.port?":"+ao.port:"")}return ao},toAbsoluteUrl:function(ap){if((!ap||String(ap)!==ap)&&ap!==""){return ap}if(""===ap){return this.getLocation().href}if(ap.search(/^\/\//)!==-1){return this.getLocation().protocol+ap}if(ap.search(/:\/\//)!==-1){return ap}if(0===ap.indexOf("#")){return this.getLocation().origin+this.getLocation().pathname+ap}if(0===ap.indexOf("?")){return this.getLocation().origin+this.getLocation().pathname+ap}if(0===ap.search("^[a-zA-Z]{2,11}:")){return ap}if(ap.search(/^\//)!==-1){return this.getLocation().origin+ap}var ao="(.*/)";var aq=this.getLocation().origin+this.getLocation().pathname.match(new RegExp(ao))[0];return aq+ap},isUrlToCurrentDomain:function(ap){var aq=this.toAbsoluteUrl(ap);if(!aq){return false}var ao=this.getLocation().origin;if(ao===aq){return true}if(0===String(aq).indexOf(ao)){if(":"===String(aq).substr(ao.length,1)){return false}return true
}return false},setHrefAttribute:function(ap,ao){if(!ap||!ao){return}ae.setAnyAttribute(ap,"href",ao)},shouldIgnoreInteraction:function(aq){var ap=ae.hasNodeAttribute(aq,this.CONTENT_IGNOREINTERACTION_ATTR);var ao=ae.hasNodeCssClass(aq,this.CONTENT_IGNOREINTERACTION_CLASS);return ap||ao}};function O(ap,at){if(at){return at}ap=v.toAbsoluteUrl(ap);if(z(ap,"?")){var ar=ap.indexOf("?");ap=ap.slice(0,ar)}if(R(ap,"matomo.php")){ap=g(ap,"matomo.php".length)}else{if(R(ap,"piwik.php")){ap=g(ap,"piwik.php".length)}else{if(R(ap,".php")){var ao=ap.lastIndexOf("/");var aq=1;ap=ap.slice(0,ao+aq)}}}if(R(ap,"/js/")){ap=g(ap,"js/".length)}return ap}function N(av){var ax="Piwik_Overlay";var ap=new RegExp("index\\.php\\?module=Overlay&action=startOverlaySession&idSite=([0-9]+)&period=([^&]+)&date=([^&]+)(&segment=.*)?$");var aq=ap.exec(G.referrer);if(aq){var at=aq[1];if(at!==String(av)){return false}var au=aq[2],ao=aq[3],ar=aq[4];if(!ar){ar=""}else{if(ar.indexOf("&segment=")===0){ar=ar.substr("&segment=".length)
-}}T.name=ax+"###"+au+"###"+ao+"###"+ar}var aw=T.name.split("###");return aw.length===4&&aw[0]===ax}function Z(ap,aw,ar){var av=T.name.split("###"),au=av[1],ao=av[2],at=av[3],aq=O(ap,aw);o(aq+"plugins/Overlay/client/client.js?v=1",function(){Piwik_Overlay_Client.initialize(aq,ar,au,ao,at)})}function u(){var aq;try{aq=T.frameElement}catch(ap){return true}if(J(aq)){return(aq&&String(aq.nodeName).toLowerCase()==="iframe")?true:false}try{return T.self!==T.top}catch(ao){return true}}function Q(ce,b9){var bI=this,bd="mtm_consent",cL="mtm_consent_removed",b4=aa(G.domain,T.location.href,K()),cT=L(b4[0]),bN=p(b4[1]),bn=p(b4[2]),cR=false,ci="GET",c9=ci,aI="application/x-www-form-urlencoded; charset=UTF-8",cw=aI,aE=ce||"",bH="",cY="",b6=b9||"",by="",bO="",a4,bj="",c5=["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","rtf","sea","sit","tar","tbz","tbz2","bz","bz2","tgz","torrent","txt","wav","wma","wmv","wpd","xls","xlsx","xml","z","zip"],ax=[cT],bz=[],bL=[],a8=[],bJ=500,cV=true,cI,a5,bR,c6=1800,bP,ao,cq=["pk_campaign","mtm_campaign","piwik_campaign","matomo_campaign","utm_campaign","utm_source","utm_medium"],bG=["pk_kwd","mtm_kwd","piwik_kwd","matomo_kwd","utm_term"],bk="_pk_",av="pk_vid",aZ=180,cW,bp,bS=false,bl=false,cP,be,bv,cJ=33955200000,co=1800000,c4=15768000000,a2=true,bE=false,bh=false,bQ=false,aQ=false,cb,bW={},cm={},bm={},bt=200,cZ={},c7={},ca=[],cf=false,cB=false,ap=false,c8=false,cM=false,aN=false,bc=u(),cx=null,cX=null,cc,aR,bA,b7=am,bo,aL,cr=0,bu=["id","ses","cvar","ref"],cA=false,bB=null,cK=[],aw=U++;
-try{bj=G.title}catch(cy){bj=""}function dd(dp,dm,dl,dn,dk,dj){if(bl){return}var di;if(dl){di=new Date();di.setTime(di.getTime()+dl)}G.cookie=dp+"="+t(dm)+(dl?";expires="+di.toGMTString():"")+";path="+(dn||"/")+(dk?";domain="+dk:"")+(dj?";secure":"")+";SameSite=Lax"}function aD(dk){if(bl){return 0}var di=new RegExp("(^|;)[ ]*"+dk+"=([^;]*)"),dj=di.exec(G.cookie);return dj?S(dj[2]):0}bB=!aD(cL);function b2(di){var dj;di=k(di,av);if(bP){dj=new RegExp("#.*");return di.replace(dj,"")}return di}function bV(dk,di){var dl=s(di),dj;if(dl){return di}if(di.slice(0,1)==="/"){return s(dk)+"://"+d(dk)+di}dk=b2(dk);dj=dk.indexOf("?");if(dj>=0){dk=dk.slice(0,dj)}dj=dk.lastIndexOf("/");if(dj!==dk.length-1){dk=dk.slice(0,dj+1)}return dk+di}function cG(dk,di){var dj;dk=String(dk).toLowerCase();di=String(di).toLowerCase();if(dk===di){return true}if(di.slice(0,1)==="."){if(dk===di.slice(1)){return true}dj=dk.length-di.length;if((dj>0)&&(dk.slice(dj)===di)){return true}}return false}function cl(di){var dj=document.createElement("a");
-if(di.indexOf("//")!==0&&di.indexOf("http")!==0){if(di.indexOf("*")===0){di=di.substr(1)}if(di.indexOf(".")===0){di=di.substr(1)}di="http://"+di}dj.href=v.toAbsoluteUrl(di);if(dj.pathname){return dj.pathname}return""}function a3(dj,di){if(!aj(di,"/")){di="/"+di}if(!aj(dj,"/")){dj="/"+dj}var dk=(di==="/"||di==="/*");if(dk){return true}if(dj===di){return true}di=String(di).toLowerCase();dj=String(dj).toLowerCase();if(R(di,"*")){di=di.slice(0,-1);dk=(!di||di==="/");if(dk){return true}if(dj===di){return true}return dj.indexOf(di)===0}if(!R(dj,"/")){dj+="/"}if(!R(di,"/")){di+="/"}return dj.indexOf(di)===0}function ar(dm,dp){var dj,di,dk,dl,dn;for(dj=0;dj<ax.length;dj++){dl=L(ax[dj]);dn=cl(ax[dj]);if(cG(dm,dl)&&a3(dp,dn)){return true}}return false}function aV(dl){var dj,di,dk;for(dj=0;dj<ax.length;dj++){di=L(ax[dj].toLowerCase());if(dl===di){return true}if(di.slice(0,1)==="."){if(dl===di.slice(1)){return true}dk=dl.length-di.length;if((dk>0)&&(dl.slice(dk)===di)){return true}}}return false}function cp(di,dk){di=di.replace("send_image=0","send_image=1");
-var dj=new Image(1,1);dj.onload=function(){E=0;if(typeof dk==="function"){dk({request:di,trackerUrl:aE,success:true})}};dj.onerror=function(){if(typeof dk==="function"){dk({request:di,trackerUrl:aE,success:false})}};dj.src=aE+(aE.indexOf("?")<0?"?":"&")+di}function cD(di){if(c9==="POST"){return true}return di&&(di.length>2000||di.indexOf('{"requests"')===0)}function aK(){return"object"===typeof h&&"function"===typeof h.sendBeacon&&"function"===typeof Blob}function a6(dm,dq,dp){var dk=aK();if(!dk){return false}var dl={type:"application/x-www-form-urlencoded; charset=UTF-8"};var dr=false;var dj=aE;try{var di=new Blob([dm],dl);if(dp&&!cD(dm)){di=new Blob([],dl);dj=dj+(dj.indexOf("?")<0?"?":"&")+dm}dr=h.sendBeacon(dj,di)}catch(dn){return false}if(dr&&typeof dq==="function"){dq({request:dm,trackerUrl:aE,success:true,isSendBeacon:true})}return dr}function c3(dj,dk,di){if(!J(di)||null===di){di=true}if(m&&a6(dj,dk,di)){return}setTimeout(function(){if(m&&a6(dj,dk,di)){return}var dn;try{var dm=T.XMLHttpRequest?new T.XMLHttpRequest():T.ActiveXObject?new ActiveXObject("Microsoft.XMLHTTP"):null;
-dm.open("POST",aE,true);dm.onreadystatechange=function(){if(this.readyState===4&&!(this.status>=200&&this.status<300)){var dp=m&&a6(dj,dk,di);if(!dp&&di){cp(dj,dk)}else{if(typeof dk==="function"){dk({request:dj,trackerUrl:aE,success:false,xhr:this})}}}else{if(this.readyState===4&&(typeof dk==="function")){dk({request:dj,trackerUrl:aE,success:true,xhr:this})}}};dm.setRequestHeader("Content-Type",cw);dm.withCredentials=true;dm.send(dj)}catch(dl){dn=m&&a6(dj,dk,di);if(!dn&&di){cp(dj,dk)}else{if(typeof dk==="function"){dk({request:dj,trackerUrl:aE,success:false})}}}},50)}function cg(dj){var di=new Date();var dk=di.getTime()+dj;if(!r||dk>r){r=dk}}function cn(di){if(cc||!a5||!bB){return}cc=setTimeout(function dj(){cc=null;if(!bc){bc=(!G.hasFocus||G.hasFocus())}if(!bc){cn(a5);return}if(bR()){return}var dk=new Date(),dl=a5-(dk.getTime()-cX);dl=Math.min(a5,dl);cn(dl)},di||a5)}function bK(){if(!cc){return}clearTimeout(cc);cc=null}function ba(){bc=true;cx=new Date().getTime()}function dc(){var di=new Date().getTime();
-return !cx||(di-cx)>a5}function ay(){if(dc()){bR()}bK()}function df(){if(aN||!a5){return}aN=true;an(T,"focus",ba);an(T,"blur",ay);ab++;e.addPlugin("HeartBeat"+ab,{unload:function(){if(aN&&dc()){bR()}}})}function cC(dm){var dj=new Date();var di=dj.getTime();cX=di;if(cB&&di<cB){var dk=cB-di;setTimeout(dm,dk);cg(dk+50);cB+=50;return}if(cB===false){var dl=800;cB=di+dl}dm()}function aO(){if(aD(cL)){bB=false}else{if(aD(bd)){bB=true}}}function bF(dj,di,dk){aO();if(!bB){cK.push(dj);return}if(!cP&&dj){if(cA&&bB){dj+="&consent=1"}cC(function(){if(cV&&a6(dj,dk,true)){cg(100);return}if(cD(dj)){c3(dj,dk)}else{cp(dj,dk)}cg(di)})}if(!aN){df()}}function ck(di){if(cP){return false}return(di&&di.length)}function c2(di,dm){if(!dm||dm>=di.length){return[di]}var dj=0;var dk=di.length;var dl=[];for(dj;dj<dk;dj+=dm){dl.push(di.slice(dj,dj+dm))}return dl}function de(dj,di){if(!ck(dj)){return}if(!bB){cK.push(dj);return}cC(function(){var dm=c2(dj,50);var dk=0,dl;for(dk;dk<dm.length;dk++){dl='{"requests":["?'+dm[dk].join('","?')+'"]}';
-if(cV&&a6(dl,null,false)){cg(100)}else{c3(dl,null,false)}}cg(di)})}function aT(di){return bk+di+"."+b6+"."+bo}function bY(dk,dj,di){dd(dk,"",-86400,dj,di)}function b5(){if(bl){return"0"}if(!J(T.showModalDialog)&&J(h.cookieEnabled)){return h.cookieEnabled?"1":"0"}var di=bk+"testcookie";dd(di,"1",undefined,bp,cW,bS);var dj=aD(di)==="1"?"1":"0";bY(di);return dj}function bi(){bo=b7((cW||cT)+(bp||"/")).slice(0,4)}function cH(){if(J(c7.res)){return c7}var dj,dl,dm={pdf:"application/pdf",qt:"video/quicktime",realp:"audio/x-pn-realaudio-plugin",wma:"application/x-mplayer2",fla:"application/x-shockwave-flash",java:"application/x-java-vm",ag:"application/x-silverlight"};if(!((new RegExp("MSIE")).test(h.userAgent))){if(h.mimeTypes&&h.mimeTypes.length){for(dj in dm){if(Object.prototype.hasOwnProperty.call(dm,dj)){dl=h.mimeTypes[dm[dj]];c7[dj]=(dl&&dl.enabledPlugin)?"1":"0"}}}if(!((new RegExp("Edge[ /](\\d+[\\.\\d]+)")).test(h.userAgent))&&typeof navigator.javaEnabled!=="unknown"&&J(h.javaEnabled)&&h.javaEnabled()){c7.java="1"
-}c7.cookie=b5()}var dk=parseInt(X.width,10);var di=parseInt(X.height,10);c7.res=parseInt(dk,10)+"x"+parseInt(di,10);return c7}function bX(){var dj=aT("cvar"),di=aD(dj);if(di&&di.length){di=T.JSON.parse(di);if(W(di)){return di}}return{}}function cE(){if(aQ===false){aQ=bX()}}function cQ(){var di=cH();return b7((h.userAgent||"")+(h.platform||"")+T.JSON.stringify(di)+(new Date()).getTime()+Math.random()).slice(0,16)}function aA(){var di=cH();return b7((h.userAgent||"")+(h.platform||"")+T.JSON.stringify(di)).slice(0,6)}function bf(){return Math.floor((new Date()).getTime()/1000)}function aJ(){var dj=bf();var dk=aA();var di=String(dj)+dk;return di}function c1(dk){dk=String(dk);var dn=aA();var dl=dn.length;var dm=dk.substr(-1*dl,dl);var dj=parseInt(dk.substr(0,dk.length-dl),10);if(dj&&dm&&dm===dn){var di=bf();if(aZ<=0){return true}if(di>=dj&&di<=(dj+aZ)){return true}}return false}function dg(di){if(!cM){return""}var dm=f(di,av);if(!dm){return""}dm=String(dm);var dk=new RegExp("^[a-zA-Z0-9]+$");
-if(dm.length===32&&dk.test(dm)){var dj=dm.substr(16,32);if(c1(dj)){var dl=dm.substr(0,16);return dl}}return""}function cN(){if(!bO){bO=dg(bN)}var dk=new Date(),di=Math.round(dk.getTime()/1000),dj=aT("id"),dn=aD(dj),dm,dl;if(dn){dm=dn.split(".");dm.unshift("0");if(bO.length){dm[1]=bO}return dm}if(bO.length){dl=bO}else{if("0"===b5()){dl=""}else{dl=cQ()}}dm=["1",dl,di,0,di,"",""];return dm}function aY(){var dq=cN(),dl=dq[0],dm=dq[1],dj=dq[2],di=dq[3],dn=dq[4],dk=dq[5];if(!J(dq[6])){dq[6]=""}var dp=dq[6];return{newVisitor:dl,uuid:dm,createTs:dj,visitCount:di,currentVisitTs:dn,lastVisitTs:dk,lastEcommerceOrderTs:dp}}function aH(){var dl=new Date(),dj=dl.getTime(),dm=aY().createTs;var di=parseInt(dm,10);var dk=(di*1000)+cJ-dj;return dk}function aM(di){if(!b6){return}var dk=new Date(),dj=Math.round(dk.getTime()/1000);if(!J(di)){di=aY()}var dl=di.uuid+"."+di.createTs+"."+di.visitCount+"."+dj+"."+di.lastVisitTs+"."+di.lastEcommerceOrderTs;dd(aT("id"),dl,aH(),bp,cW,bS)}function bM(){var di=aD(aT("ref"));
-if(di.length){try{di=T.JSON.parse(di);if(W(di)){return di}}catch(dj){}}return["","",0,""]}function bw(dj){var di="testvalue";dd("test",di,10000,null,dj);if(aD("test")===di){bY("test",null,dj);return true}return false}function aF(){var dj=bl;bl=false;var di,dk;for(di=0;di<bu.length;di++){dk=aT(bu[di]);if(dk!==cL&&dk!==bd&&0!==aD(dk)){bY(dk,bp,cW)}}bl=dj}function b3(di){b6=di;aM()}function dh(dm){if(!dm||!W(dm)){return}var dl=[];var dk;for(dk in dm){if(Object.prototype.hasOwnProperty.call(dm,dk)){dl.push(dk)}}var dn={};dl.sort();var di=dl.length;var dj;for(dj=0;dj<di;dj++){dn[dl[dj]]=dm[dl[dj]]}return dn}function cd(){dd(aT("ses"),"1",co,bp,cW,bS)}function bg(){var dl="";var dj="abcdefghijklmnopqrstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ";var dk=dj.length;var di;for(di=0;di<6;di++){dl+=dj.charAt(Math.floor(Math.random()*dk))}return dl}function az(di){if(i&&i.timing&&i&&i.timing.connectEnd&&i.timing.fetchStart){di+="&pf_net="+(i.timing.connectEnd-i.timing.fetchStart)}if(i&&i.timing&&i&&i.timing.responseStart&&i.timing.requestStart){di+="&pf_srv="+(i.timing.responseStart-i.timing.requestStart)
-}if(i&&i.timing&&i&&i.timing.responseStart&&i.timing.responseEnd){di+="&pf_tfr="+(i.timing.responseEnd-i.timing.responseStart)}if(i&&i.timing&&i&&i.timing.domInteractive&&i.timing.domLoading){di+="&pf_dm1="+(i.timing.domInteractive-i.timing.domLoading)}if(i&&i.timing&&i&&i.timing.domComplete&&i.timing.domInteractive){di+="&pf_dm2="+(i.timing.domComplete-i.timing.domInteractive)}if(i&&i.timing&&i&&i.timing.loadEventEnd&&i.timing.loadEventStart){di+="&pf_onl="+(i.timing.loadEventEnd-i.timing.loadEventStart)}return di}function cs(dk,dG,dH,dl){var dF,dj=new Date(),dt=Math.round(dj.getTime()/1000),dq,dE,dm=1024,dN,du,dC=aQ,dn=aT("ses"),dA=aT("ref"),dx=aT("cvar"),dy=aD(dn),dD=bM(),dJ=a4||bN,dr,di;if(bl){aF()}if(cP){return""}var dz=aY();if(!J(dl)){dl=""}var dw=G.characterSet||G.charset;if(!dw||dw.toLowerCase()==="utf-8"){dw=null}dr=dD[0];di=dD[1];dq=dD[2];dE=dD[3];if(!dy){var dI=co/1000;if(!dz.lastVisitTs||(dt-dz.lastVisitTs)>dI){dz.visitCount++;dz.lastVisitTs=dz.currentVisitTs}if(!bv||!dr.length){for(dF in cq){if(Object.prototype.hasOwnProperty.call(cq,dF)){dr=f(dJ,cq[dF]);
-if(dr.length){break}}}for(dF in bG){if(Object.prototype.hasOwnProperty.call(bG,dF)){di=f(dJ,bG[dF]);if(di.length){break}}}}dN=d(bn);du=dE.length?d(dE):"";if(dN.length&&!aV(dN)&&(!bv||!du.length||aV(du))){dE=bn}if(dE.length||dr.length){dq=dt;dD=[dr,di,dq,b2(dE.slice(0,dm))];dd(dA,T.JSON.stringify(dD),c4,bp,cW,bS)}}dk+="&idsite="+b6+"&rec=1&r="+String(Math.random()).slice(2,8)+"&h="+dj.getHours()+"&m="+dj.getMinutes()+"&s="+dj.getSeconds()+"&url="+t(b2(dJ))+(bn.length?"&urlref="+t(b2(bn)):"")+((by&&by.length)?"&uid="+t(by):"")+"&_id="+dz.uuid+"&_idts="+dz.createTs+"&_idvc="+dz.visitCount+"&_idn="+dz.newVisitor+(dr.length?"&_rcn="+t(dr):"")+(di.length?"&_rck="+t(di):"")+"&_refts="+dq+"&_viewts="+dz.lastVisitTs+(String(dz.lastEcommerceOrderTs).length?"&_ects="+dz.lastEcommerceOrderTs:"")+(String(dE).length?"&_ref="+t(b2(dE.slice(0,dm))):"")+(dw?"&cs="+t(dw):"")+"&send_image=0";var dM=cH();for(dF in dM){if(Object.prototype.hasOwnProperty.call(dM,dF)){dk+="&"+dF+"="+dM[dF]}}var dL=[];if(dG){for(dF in dG){if(Object.prototype.hasOwnProperty.call(dG,dF)&&/^dimension\d+$/.test(dF)){var dp=dF.replace("dimension","");
-dL.push(parseInt(dp,10));dL.push(String(dp));dk+="&"+dF+"="+t(dG[dF]);delete dG[dF]}}}if(dG&&B(dG)){dG=null}for(dF in bm){if(Object.prototype.hasOwnProperty.call(bm,dF)){var dv=(-1===M(dL,dF));if(dv){dk+="&dimension"+dF+"="+t(bm[dF])}}}if(dG){dk+="&data="+t(T.JSON.stringify(dG))}else{if(ao){dk+="&data="+t(T.JSON.stringify(ao))}}function ds(dO,dP){var dQ=T.JSON.stringify(dO);if(dQ.length>2){return"&"+dP+"="+t(dQ)}return""}var dK=dh(bW);var dB=dh(cm);dk+=ds(dK,"cvar");dk+=ds(dB,"e_cvar");if(aQ){dk+=ds(aQ,"_cvar");for(dF in dC){if(Object.prototype.hasOwnProperty.call(dC,dF)){if(aQ[dF][0]===""||aQ[dF][1]===""){delete aQ[dF]}}}if(bQ){dd(dx,T.JSON.stringify(aQ),co,bp,cW,bS)}}if(a2&&bE&&!bh){dk=az(dk);bh=true}if(aL){dk+="&pv_id="+aL}dz.lastEcommerceOrderTs=J(dl)&&String(dl).length?dl:dz.lastEcommerceOrderTs;aM(dz);cd();dk+=ac(dH,{tracker:bI,request:dk});if(cY.length){dk+="&"+cY}if(A(cb)){dk=cb(dk)}return dk}bR=function a7(){var di=new Date();di=di.getTime();if(!cX){return false}if((cX+(1000*c6))<=di){return false
-}if(cX+a5<=di){bI.ping();return true}return false};function bq(dl,dk,dr,dm,di,du){var dp="idgoal=0",dq,dj=new Date(),ds=[],dt,dn=String(dl).length;if(dn){dp+="&ec_id="+t(dl);dq=Math.round(dj.getTime()/1000)}dp+="&revenue="+dk;if(String(dr).length){dp+="&ec_st="+dr}if(String(dm).length){dp+="&ec_tx="+dm}if(String(di).length){dp+="&ec_sh="+di}if(String(du).length){dp+="&ec_dt="+du}if(cZ){for(dt in cZ){if(Object.prototype.hasOwnProperty.call(cZ,dt)){if(!J(cZ[dt][1])){cZ[dt][1]=""}if(!J(cZ[dt][2])){cZ[dt][2]=""}if(!J(cZ[dt][3])||String(cZ[dt][3]).length===0){cZ[dt][3]=0}if(!J(cZ[dt][4])||String(cZ[dt][4]).length===0){cZ[dt][4]=1}ds.push(cZ[dt])}}dp+="&ec_items="+t(T.JSON.stringify(ds))}dp=cs(dp,ao,"ecommerce",dq);bF(dp,bJ);if(dn){cZ={}}}function bZ(di,dm,dl,dk,dj,dn){if(String(di).length&&J(dm)){bq(di,dm,dl,dk,dj,dn)}}function bs(di){if(J(di)){bq("",di,"","","","")}}function b0(dj,dl,dk){aL=bg();var di=cs("action_name="+t(al(dj||bj)),dl,"log");if(!bh){di=az(di)}bF(di,bJ,dk)}function a0(dk,dj){var dl,di="(^| )(piwik[_-]"+dj;
-if(dk){for(dl=0;dl<dk.length;dl++){di+="|"+dk[dl]}}di+=")( |$)";return new RegExp(di)}function aU(di){return(aE&&di&&0===String(di).indexOf(aE))}function cu(dm,di,dn,dj){if(aU(di)){return 0}var dl=a0(bL,"download"),dk=a0(a8,"link"),dp=new RegExp("\\.("+c5.join("|")+")([?&#]|$)","i");if(dk.test(dm)){return"link"}if(dj||dl.test(dm)||dp.test(di)){return"download"}if(dn){return 0}return"link"}function au(dj){var di;di=dj.parentNode;while(di!==null&&J(di)){if(ae.isLinkElement(dj)){break}dj=di;di=dj.parentNode}return dj}function db(dn){dn=au(dn);if(!ae.hasNodeAttribute(dn,"href")){return}if(!J(dn.href)){return}var dm=ae.getAttributeValueFromNode(dn,"href");var dj=dn.pathname||cl(dn.href);var dp=dn.hostname||d(dn.href);var dq=dp.toLowerCase();var dk=dn.href.replace(dp,dq);var dl=new RegExp("^(javascript|vbscript|jscript|mocha|livescript|ecmascript|mailto|tel):","i");if(!dl.test(dk)){var di=cu(dn.className,dk,ar(dq,dj),ae.hasNodeAttribute(dn,"download"));if(di){return{type:di,href:dk}}}}function aP(di,dj,dk,dl){var dm=v.buildInteractionRequestParams(di,dj,dk,dl);
-if(!dm){return}return cs(dm,null,"contentInteraction")}function bb(di,dj){if(!di||!dj){return false}var dk=v.findTargetNode(di);if(v.shouldIgnoreInteraction(dk)){return false}dk=v.findTargetNodeNoDefault(di);if(dk&&!V(dk,dj)){return false}return true}function ct(dk,dj,dm){if(!dk){return}var di=v.findParentContentNode(dk);if(!di){return}if(!bb(di,dk)){return}var dl=v.buildContentBlock(di);if(!dl){return}if(!dl.target&&dm){dl.target=dm}return v.buildInteractionRequestParams(dj,dl.name,dl.piece,dl.target)}function aW(dj){if(!ca||!ca.length){return false}var di,dk;for(di=0;di<ca.length;di++){dk=ca[di];if(dk&&dk.name===dj.name&&dk.piece===dj.piece&&dk.target===dj.target){return true}}return false}function aX(di){return function(dm){if(!di){return}var dk=v.findParentContentNode(di);var dj;if(dm){dj=dm.target||dm.srcElement}if(!dj){dj=di}if(!bb(dk,dj)){return}if(!dk){return false}var dn=v.findTargetNode(dk);if(!dn||v.shouldIgnoreInteraction(dn)){return false}var dl=db(dn);if(c8&&dl&&dl.type){return dl.type
-}return bI.trackContentInteractionNode(dj,"click")}}function b1(dk){if(!dk||!dk.length){return}var di,dj;for(di=0;di<dk.length;di++){dj=v.findTargetNode(dk[di]);if(dj&&!dj.contentInteractionTrackingSetupDone){dj.contentInteractionTrackingSetupDone=true;an(dj,"click",aX(dj))}}}function bx(dk,dl){if(!dk||!dk.length){return[]}var di,dj;for(di=0;di<dk.length;di++){if(aW(dk[di])){dk.splice(di,1);di--}else{ca.push(dk[di])}}if(!dk||!dk.length){return[]}b1(dl);var dm=[];for(di=0;di<dk.length;di++){dj=cs(v.buildImpressionRequestParams(dk[di].name,dk[di].piece,dk[di].target),undefined,"contentImpressions");if(dj){dm.push(dj)}}return dm}function cz(dj){var di=v.collectContent(dj);return bx(di,dj)}function a9(dj){if(!dj||!dj.length){return[]}var di;for(di=0;di<dj.length;di++){if(!v.isNodeVisible(dj[di])){dj.splice(di,1);di--}}if(!dj||!dj.length){return[]}return cz(dj)}function aG(dk,di,dj){var dl=v.buildImpressionRequestParams(dk,di,dj);return cs(dl,null,"contentImpression")}function da(dl,dj){if(!dl){return
-}var di=v.findParentContentNode(dl);var dk=v.buildContentBlock(di);if(!dk){return}if(!dj){dj="Unknown"}return aP(dj,dk.name,dk.piece,dk.target)}function cO(dj,dl,di,dk){return"e_c="+t(dj)+"&e_a="+t(dl)+(J(di)?"&e_n="+t(di):"")+(J(dk)?"&e_v="+t(dk):"")}function at(dk,dm,di,dl,dp,dn){if(!Y(dk)||!Y(dm)){ak("Error while logging event: Parameters `category` and `action` must not be empty or filled with whitespaces");return false}var dj=cs(cO(dk,dm,di,dl),dp,"event");bF(dj,bJ,dn)}function b8(di,dl,dj,dm){var dk=cs("search="+t(di)+(dl?"&search_cat="+t(dl):"")+(J(dj)?"&search_count="+dj:""),dm,"sitesearch");bF(dk,bJ)}function cS(di,dm,dl,dk){var dj=cs("idgoal="+di+(dm?"&revenue="+dm:""),dl,"goal");bF(dj,bJ,dk)}function c0(dl,di,dq,dp,dk){var dn=di+"="+t(b2(dl));var dj=ct(dk,"click",dl);if(dj){dn+="&"+dj}var dm=cs(dn,dq,"link");bF(dm,bJ,dp)}function bU(dj,di){if(dj!==""){return dj+di.charAt(0).toUpperCase()+di.slice(1)}return di}function ch(dn){var dm,di,dl=["","webkit","ms","moz"],dk;if(!be){for(di=0;
-di<dl.length;di++){dk=dl[di];if(Object.prototype.hasOwnProperty.call(G,bU(dk,"hidden"))){if(G[bU(dk,"visibilityState")]==="prerender"){dm=true}break}}}if(dm){an(G,dk+"visibilitychange",function dj(){G.removeEventListener(dk+"visibilitychange",dj,false);dn()});return}dn()}function br(){var dj=bI.getVisitorId();var di=aJ();return dj+di}function cj(di){if(!di){return}if(!ae.hasNodeAttribute(di,"href")){return}var dj=ae.getAttributeValueFromNode(di,"href");if(!dj||aU(dj)){return}if(!bI.getVisitorId()){return}dj=k(dj,av);var dk=br();dj=F(dj,av,dk);ae.setAnyAttribute(di,"href",dj)}function aB(dl){var dm=ae.getAttributeValueFromNode(dl,"href");if(!dm){return false}dm=String(dm);var dj=dm.indexOf("//")===0||dm.indexOf("http://")===0||dm.indexOf("https://")===0;if(!dj){return false}var di=dl.pathname||cl(dl.href);var dk=(dl.hostname||d(dl.href)).toLowerCase();if(ar(dk,di)){if(!cG(cT,L(dk))){return true}return false}return false}function cF(di){var dj=db(di);if(dj&&dj.type){dj.href=p(dj.href);c0(dj.href,dj.type,undefined,null,di);
-return}if(cM){di=au(di);if(aB(di)){cj(di)}}}function cv(){return G.all&&!G.addEventListener}function cU(di){var dk=di.which;var dj=(typeof di.button);if(!dk&&dj!=="undefined"){if(cv()){if(di.button&1){dk=1}else{if(di.button&2){dk=3}else{if(di.button&4){dk=2}}}}else{if(di.button===0||di.button==="0"){dk=1}else{if(di.button&1){dk=2}else{if(di.button&2){dk=3}}}}}return dk}function bT(di){switch(cU(di)){case 1:return"left";case 2:return"middle";case 3:return"right"}}function a1(di){return di.target||di.srcElement}function aC(di){return function(dl){dl=dl||T.event;var dk=bT(dl);var dm=a1(dl);if(dl.type==="click"){var dj=false;if(di&&dk==="middle"){dj=true}if(dm&&!dj){cF(dm)}}else{if(dl.type==="mousedown"){if(dk==="middle"&&dm){aR=dk;bA=dm}else{aR=bA=null}}else{if(dl.type==="mouseup"){if(dk===aR&&dm===bA){cF(dm)}aR=bA=null}else{if(dl.type==="contextmenu"){cF(dm)}}}}}}function aq(dk,dj){var di=typeof dj;if(di==="undefined"){dj=true}an(dk,"click",aC(dj),false);if(dj){an(dk,"mouseup",aC(dj),false);
-an(dk,"mousedown",aC(dj),false);an(dk,"contextmenu",aC(dj),false)}}function bD(dk,dm){ap=true;var dl,dj=a0(bz,"ignore"),dn=G.links,di=null,dp=null;if(dn){for(dl=0;dl<dn.length;dl++){di=dn[dl];if(!dj.test(di.className)){dp=typeof di.piwikTrackers;if("undefined"===dp){di.piwikTrackers=[]}if(-1===M(di.piwikTrackers,dm)){di.piwikTrackers.push(dm);aq(di,dk)}}}}}function aS(dj,dm,dn){if(cf){return true}cf=true;var dp=false;var dl,dk;function di(){dp=true}n(function(){function dq(ds){setTimeout(function(){if(!cf){return}dp=false;dn.trackVisibleContentImpressions();dq(ds)},ds)}function dr(ds){setTimeout(function(){if(!cf){return}if(dp){dp=false;dn.trackVisibleContentImpressions()}dr(ds)},ds)}if(dj){dl=["scroll","resize"];for(dk=0;dk<dl.length;dk++){if(G.addEventListener){G.addEventListener(dl[dk],di,false)}else{T.attachEvent("on"+dl[dk],di)}}dr(100)}if(dm&&dm>0){dm=parseInt(dm,10);dq(dm)}})}var bC={enabled:true,requests:[],timeout:null,interval:2500,sendRequests:function(){var di=this.requests;
-this.requests=[];if(di.length===1){bF(di[0],bJ)}else{de(di,bJ)}},canQueue:function(){return !m&&this.enabled},pushMultiple:function(dj){if(!this.canQueue()){de(dj,bJ);return}var di;for(di=0;di<dj.length;di++){this.push(dj[di])}},push:function(di){if(!di){return}if(!this.canQueue()){bF(di,bJ);return}bC.requests.push(di);if(this.timeout){clearTimeout(this.timeout);this.timeout=null}this.timeout=setTimeout(function(){bC.timeout=null;bC.sendRequests()},bC.interval);var dj="RequestQueue"+aw;if(!Object.prototype.hasOwnProperty.call(b,dj)){b[dj]={unload:function(){if(bC.timeout){clearTimeout(bC.timeout)}bC.sendRequests()}}}}};bi();aM();this.hasConsent=function(){return bB};this.getVisitorId=function(){return aY().uuid};this.getVisitorInfo=function(){return cN()};this.getAttributionInfo=function(){return bM()};this.getAttributionCampaignName=function(){return bM()[0]};this.getAttributionCampaignKeyword=function(){return bM()[1]};this.getAttributionReferrerTimestamp=function(){return bM()[2]};this.getAttributionReferrerUrl=function(){return bM()[3]
-};this.setTrackerUrl=function(di){aE=di};this.getTrackerUrl=function(){return aE};this.getPiwikUrl=function(){return O(this.getTrackerUrl(),bH)};this.addTracker=function(di,dk){if(!J(di)||null===di){di=this.getTrackerUrl()}var dj=new Q(di,dk);I.push(dj);e.trigger("TrackerAdded",[this]);return dj};this.getSiteId=function(){return b6};this.setSiteId=function(di){b3(di)};this.resetUserId=function(){by=""};this.setUserId=function(di){if(Y(di)){by=di}};this.getUserId=function(){return by};this.setCustomData=function(di,dj){if(W(di)){ao=di}else{if(!ao){ao={}}ao[di]=dj}};this.getCustomData=function(){return ao};this.setCustomRequestProcessing=function(di){cb=di};this.appendToTrackingUrl=function(di){cY=di};this.getRequest=function(di){return cs(di)};this.addPlugin=function(di,dj){b[di]=dj};this.setCustomDimension=function(di,dj){di=parseInt(di,10);if(di>0){if(!J(dj)){dj=""}if(!w(dj)){dj=String(dj)}bm[di]=dj}};this.getCustomDimension=function(di){di=parseInt(di,10);if(di>0&&Object.prototype.hasOwnProperty.call(bm,di)){return bm[di]
-}};this.deleteCustomDimension=function(di){di=parseInt(di,10);if(di>0){delete bm[di]}};this.setCustomVariable=function(dj,di,dm,dk){var dl;if(!J(dk)){dk="visit"}if(!J(di)){return}if(!J(dm)){dm=""}if(dj>0){di=!w(di)?String(di):di;dm=!w(dm)?String(dm):dm;dl=[di.slice(0,bt),dm.slice(0,bt)];if(dk==="visit"||dk===2){cE();aQ[dj]=dl}else{if(dk==="page"||dk===3){bW[dj]=dl}else{if(dk==="event"){cm[dj]=dl}}}}};this.getCustomVariable=function(dj,dk){var di;if(!J(dk)){dk="visit"}if(dk==="page"||dk===3){di=bW[dj]}else{if(dk==="event"){di=cm[dj]}else{if(dk==="visit"||dk===2){cE();di=aQ[dj]}}}if(!J(di)||(di&&di[0]==="")){return false}return di};this.deleteCustomVariable=function(di,dj){if(this.getCustomVariable(di,dj)){this.setCustomVariable(di,"","",dj)}};this.deleteCustomVariables=function(di){if(di==="page"||di===3){bW={}}else{if(di==="event"){cm={}}else{if(di==="visit"||di===2){aQ={}}}}};this.storeCustomVariablesInCookie=function(){bQ=true};this.setLinkTrackingTimer=function(di){bJ=di};this.getLinkTrackingTimer=function(){return bJ
-};this.setDownloadExtensions=function(di){if(w(di)){di=di.split("|")}c5=di};this.addDownloadExtensions=function(dj){var di;if(w(dj)){dj=dj.split("|")}for(di=0;di<dj.length;di++){c5.push(dj[di])}};this.removeDownloadExtensions=function(dk){var dj,di=[];if(w(dk)){dk=dk.split("|")}for(dj=0;dj<c5.length;dj++){if(M(dk,c5[dj])===-1){di.push(c5[dj])}}c5=di};this.setDomains=function(di){ax=w(di)?[di]:di;var dm=false,dk=0,dj;for(dk;dk<ax.length;dk++){dj=String(ax[dk]);if(cG(cT,L(dj))){dm=true;break}var dl=cl(dj);if(dl&&dl!=="/"&&dl!=="/*"){dm=true;break}}if(!dm){ax.push(cT)}};this.enableCrossDomainLinking=function(){cM=true};this.disableCrossDomainLinking=function(){cM=false};this.isCrossDomainLinkingEnabled=function(){return cM};this.setCrossDomainLinkingTimeout=function(di){aZ=di};this.getCrossDomainLinkingUrlParameter=function(){return t(av)+"="+t(br())};this.setIgnoreClasses=function(di){bz=w(di)?[di]:di};this.setRequestMethod=function(di){c9=di||ci};this.setRequestContentType=function(di){cw=di||aI
-};this.setReferrerUrl=function(di){bn=di};this.setCustomUrl=function(di){a4=bV(bN,di)};this.getCurrentUrl=function(){return a4||bN};this.setDocumentTitle=function(di){bj=di};this.setAPIUrl=function(di){bH=di};this.setDownloadClasses=function(di){bL=w(di)?[di]:di};this.setLinkClasses=function(di){a8=w(di)?[di]:di};this.setCampaignNameKey=function(di){cq=w(di)?[di]:di};this.setCampaignKeywordKey=function(di){bG=w(di)?[di]:di};this.discardHashTag=function(di){bP=di};this.setCookieNamePrefix=function(di){bk=di;if(aQ){aQ=bX()}};this.setCookieDomain=function(di){var dj=L(di);if(bw(dj)){cW=dj;bi()}};this.getCookieDomain=function(){return cW};this.hasCookies=function(){return"1"===b5()};this.setSessionCookie=function(dk,dj,di){if(!dk){throw new Error("Missing cookie name")}if(!J(di)){di=co}bu.push(dk);dd(aT(dk),dj,di,bp,cW)};this.getCookie=function(dj){var di=aD(aT(dj));if(di===0){return null}return di};this.setCookiePath=function(di){bp=di;bi()};this.getCookiePath=function(di){return bp};this.setVisitorCookieTimeout=function(di){cJ=di*1000
-};this.setSessionCookieTimeout=function(di){co=di*1000};this.getSessionCookieTimeout=function(){return co};this.setReferralCookieTimeout=function(di){c4=di*1000};this.setConversionAttributionFirstReferrer=function(di){bv=di};this.setSecureCookie=function(di){bS=di};this.disableCookies=function(){bl=true;c7.cookie="0";if(b6){aF()}};this.deleteCookies=function(){aF()};this.setDoNotTrack=function(dj){var di=h.doNotTrack||h.msDoNotTrack;cP=dj&&(di==="yes"||di==="1");if(cP){this.disableCookies()}};this.alwaysUseSendBeacon=function(){cV=true};this.disableAlwaysUseSendBeacon=function(){cV=false};this.addListener=function(dj,di){aq(dj,di)};this.enableLinkTracking=function(dj){c8=true;var di=this;ch(function(){q(function(){bD(dj,di)});n(function(){bD(dj,di)})})};this.enableJSErrorTracking=function(){if(cR){return}cR=true;var di=T.onerror;T.onerror=function(dn,dl,dk,dm,dj){ch(function(){var dp="JavaScript Errors";var dq=dl+":"+dk;if(dm){dq+=":"+dm}at(dp,dq,dn)});if(di){return di(dn,dl,dk,dm,dj)}return false
-}};this.disablePerformanceTracking=function(){a2=false};this.setVisitStandardLength=function(di){di=Math.max(di,5);c6=di};this.enableHeartBeatTimer=function(di){di=Math.max(di,5);a5=(di||15)*1000;if(cX!==null){df()}};this.disableHeartBeatTimer=function(){bK();if(a5||aN){if(T.removeEventListener){T.removeEventListener("focus",ba);T.removeEventListener("blur",ay)}else{if(T.detachEvent){T.detachEvent("onfocus",ba);T.detachEvent("onblur",ay)}}}a5=null;aN=false};this.killFrame=function(){if(T.location!==T.top.location){T.top.location=T.location}};this.redirectFile=function(di){if(T.location.protocol==="file:"){T.location=di}};this.setCountPreRendered=function(di){be=di};this.trackGoal=function(di,dl,dk,dj){ch(function(){cS(di,dl,dk,dj)})};this.trackLink=function(dj,di,dl,dk){ch(function(){c0(dj,di,dl,dk)})};this.getNumTrackedPageViews=function(){return cr};this.trackPageView=function(di,dk,dj){ca=[];cK=[];if(N(b6)){ch(function(){Z(aE,bH,b6)})}else{ch(function(){cr++;b0(di,dk,dj)})}};this.trackAllContentImpressions=function(){if(N(b6)){return
-}ch(function(){q(function(){var di=v.findContentNodes();var dj=cz(di);bC.pushMultiple(dj)})})};this.trackVisibleContentImpressions=function(di,dj){if(N(b6)){return}if(!J(di)){di=true}if(!J(dj)){dj=750}aS(di,dj,this);ch(function(){n(function(){var dk=v.findContentNodes();var dl=a9(dk);bC.pushMultiple(dl)})})};this.trackContentImpression=function(dk,di,dj){if(N(b6)){return}dk=a(dk);di=a(di);dj=a(dj);if(!dk){return}di=di||"Unknown";ch(function(){var dl=aG(dk,di,dj);bC.push(dl)})};this.trackContentImpressionsWithinNode=function(di){if(N(b6)||!di){return}ch(function(){if(cf){n(function(){var dj=v.findContentNodesWithinNode(di);var dk=a9(dj);bC.pushMultiple(dk)})}else{q(function(){var dj=v.findContentNodesWithinNode(di);var dk=cz(dj);bC.pushMultiple(dk)})}})};this.trackContentInteraction=function(dk,dl,di,dj){if(N(b6)){return}dk=a(dk);dl=a(dl);di=a(di);dj=a(dj);if(!dk||!dl){return}di=di||"Unknown";ch(function(){var dm=aP(dk,dl,di,dj);if(dm){bC.push(dm)}})};this.trackContentInteractionNode=function(dk,dj){if(N(b6)||!dk){return
-}var di=null;ch(function(){di=da(dk,dj);if(di){bC.push(di)}});return di};this.logAllContentBlocksOnPage=function(){var dk=v.findContentNodes();var di=v.collectContent(dk);var dj=typeof console;if(dj!=="undefined"&&console&&console.log){console.log(di)}};this.trackEvent=function(dj,dl,di,dk,dn,dm){ch(function(){at(dj,dl,di,dk,dn,dm)})};this.trackSiteSearch=function(di,dk,dj,dl){ca=[];ch(function(){b8(di,dk,dj,dl)})};this.setEcommerceView=function(dl,di,dk,dj){if(Y(dk)){dk=String(dk)}if(!J(dk)||dk===null||dk===false||!dk.length){dk=""}else{if(dk instanceof Array){dk=T.JSON.stringify(dk)}}bW[5]=["_pkc",dk];if(J(dj)&&dj!==null&&dj!==false&&String(dj).length){bW[2]=["_pkp",dj]}if(!Y(dl)&&!Y(di)){return}if(Y(dl)){bW[3]=["_pks",dl]}if(!Y(di)){di=""}bW[4]=["_pkn",di]};this.getEcommerceItems=function(){return JSON.parse(JSON.stringify(cZ))};this.addEcommerceItem=function(dm,di,dk,dj,dl){if(Y(dm)){cZ[dm]=[String(dm),di,dk,dj,dl]}};this.removeEcommerceItem=function(di){if(Y(di)){di=String(di);delete cZ[di]
-}};this.clearEcommerceCart=function(){cZ={}};this.trackEcommerceOrder=function(di,dm,dl,dk,dj,dn){bZ(di,dm,dl,dk,dj,dn)};this.trackEcommerceCartUpdate=function(di){bs(di)};this.trackRequest=function(dj,dl,dk,di){ch(function(){var dm=cs(dj,dl,di);bF(dm,bJ,dk)})};this.ping=function(){this.trackRequest("ping=1",null,null,"ping")};this.disableQueueRequest=function(){bC.enabled=false};this.setRequestQueueInterval=function(di){if(di<1000){throw new Error("Request queue interval needs to be at least 1000ms")}bC.interval=di};this.queueRequest=function(di){ch(function(){var dj=cs(di);bC.push(dj)})};this.isConsentRequired=function(){return cA};this.getRememberedConsent=function(){var di=aD(bd);if(aD(cL)){if(di){bY(bd,bp,cW)}return null}if(!di||di===0){return null}return di};this.hasRememberedConsent=function(){return !!this.getRememberedConsent()};this.requireConsent=function(){cA=true;bB=this.hasRememberedConsent();x++;b["CoreConsent"+x]={unload:function(){if(!bB){aF()}}}};this.setConsentGiven=function(){bB=true;
-bY(cL,bp,cW);var dj,di;for(dj=0;dj<cK.length;dj++){di=typeof cK[dj];if(di==="string"){bF(cK[dj],bJ)}else{if(di==="object"){de(cK[dj],bJ)}}}cK=[]};this.rememberConsentGiven=function(dj){if(dj){dj=dj*60*60*1000}else{dj=30*365*24*60*60*1000}this.setConsentGiven();var di=new Date().getTime();dd(bd,di,dj,bp,cW,bS)};this.forgetConsentGiven=function(){var di=30*365*24*60*60*1000;bY(bd,bp,cW);dd(cL,new Date().getTime(),di,bp,cW,bS);this.requireConsent()};this.isUserOptedOut=function(){return !bB};this.optUserOut=this.forgetConsentGiven;this.forgetUserOptOut=this.rememberConsentGiven;n(function(){setTimeout(function(){bE=true},0)});e.trigger("TrackerSetup",[this])}function H(){return{push:af}}function c(au,at){var av={};var aq,ar;for(aq=0;aq<at.length;aq++){var ao=at[aq];av[ao]=1;for(ar=0;ar<au.length;ar++){if(au[ar]&&au[ar][0]){var ap=au[ar][0];if(ao===ap){af(au[ar]);delete au[ar];if(av[ap]>1&&ap!=="addTracker"){ak("The method "+ap+' is registered more than once in "_paq" variable. Only the last call has an effect. Please have a look at the multiple Piwik trackers documentation: https://developer.piwik.org/guides/tracking-javascript-guide#multiple-piwik-trackers')
-}av[ap]++}}}}return au}var C=["addTracker","disableCookies","setTrackerUrl","setAPIUrl","enableCrossDomainLinking","setCrossDomainLinkingTimeout","setSessionCookieTimeout","setVisitorCookieTimeout","setCookieNamePrefix","setSecureCookie","setCookiePath","setCookieDomain","setDomains","setUserId","setSiteId","alwaysUseSendBeacon","enableLinkTracking","requireConsent","setConsentGiven"];function ad(ao,aq){var ap=new Q(ao,aq);I.push(ap);_paq=c(_paq,C);for(E=0;E<_paq.length;E++){if(_paq[E]){af(_paq[E])}}_paq=new H();e.trigger("TrackerAdded",[ap]);return ap}an(T,"beforeunload",ai,false);an(T,"message",function(au){if(!au||!au.origin){return}var aw,ar,ap;var ax=d(au.origin);var at=e.getAsyncTrackers();for(ar=0;ar<at.length;ar++){ap=d(at[ar].getPiwikUrl());if(ap===ax){aw=at[ar];break}}if(!aw){return}var aq=null;try{aq=JSON.parse(au.data)}catch(av){return}if(!aq){return}function ao(aA){var aC=G.getElementsByTagName("iframe");for(ar=0;ar<aC.length;ar++){var aB=aC[ar];var ay=d(aB.src);if(aB.contentWindow&&J(aB.contentWindow.postMessage)&&ay===ax){var az=JSON.stringify(aA);
-aB.contentWindow.postMessage(az,"*")}}}if(J(aq.maq_initial_value)){ao({maq_opted_in:aq.maq_initial_value&&aw.hasConsent(),maq_url:aw.getPiwikUrl(),maq_optout_by_default:aw.isConsentRequired()})}else{if(J(aq.maq_opted_in)){at=e.getAsyncTrackers();for(ar=0;ar<at.length;ar++){aw=at[ar];if(aq.maq_opted_in){aw.rememberConsentGiven()}else{aw.forgetConsentGiven()}}ao({maq_confirm_opted_in:aw.hasConsent(),maq_url:aw.getPiwikUrl(),maq_optout_by_default:aw.isConsentRequired()})}}},false);Date.prototype.getTimeAlias=Date.prototype.getTime;e={initialized:false,JSON:T.JSON,DOM:{addEventListener:function(ar,aq,ap,ao){var at=typeof ao;if(at==="undefined"){ao=false}an(ar,aq,ap,ao)},onLoad:n,onReady:q,isNodeVisible:j,isOrWasNodeVisible:v.isNodeVisible},on:function(ap,ao){if(!y[ap]){y[ap]=[]}y[ap].push(ao)},off:function(aq,ap){if(!y[aq]){return}var ao=0;for(ao;ao<y[aq].length;ao++){if(y[aq][ao]===ap){y[aq].splice(ao,1)}}},trigger:function(aq,ar,ap){if(!y[aq]){return}var ao=0;for(ao;ao<y[aq].length;ao++){y[aq][ao].apply(ap||T,ar)
-}},addPlugin:function(ao,ap){b[ao]=ap},getTracker:function(ao,ap){if(!J(ap)){ap=this.getAsyncTracker().getSiteId()}if(!J(ao)){ao=this.getAsyncTracker().getTrackerUrl()}return new Q(ao,ap)},getAsyncTrackers:function(){return I},addTracker:function(ao,aq){var ap;if(!I.length){ap=ad(ao,aq)}else{ap=I[0].addTracker(ao,aq)}return ap},getAsyncTracker:function(ap,at){var ar;if(I&&I.length&&I[0]){ar=I[0]}else{return ad(ap,at)}if(!at&&!ap){return ar}if((!J(at)||null===at)&&ar){at=ar.getSiteId()}if((!J(ap)||null===ap)&&ar){ap=ar.getTrackerUrl()}var aq,ao=0;for(ao;ao<I.length;ao++){aq=I[ao];if(aq&&String(aq.getSiteId())===String(at)&&aq.getTrackerUrl()===ap){return aq}}},retryMissedPluginCalls:function(){var ap=ah;ah=[];var ao=0;for(ao;ao<ap.length;ao++){af(ap[ao])}}};if(typeof define==="function"&&define.amd){define("piwik",[],function(){return e});define("matomo",[],function(){return e})}return e}())}
+}}T.name=ax+"###"+au+"###"+ao+"###"+ar}var aw=T.name.split("###");return aw.length===4&&aw[0]===ax}function Z(ap,aw,ar){var av=T.name.split("###"),au=av[1],ao=av[2],at=av[3],aq=O(ap,aw);o(aq+"plugins/Overlay/client/client.js?v=1",function(){Piwik_Overlay_Client.initialize(aq,ar,au,ao,at)})}function u(){var aq;try{aq=T.frameElement}catch(ap){return true}if(J(aq)){return(aq&&String(aq.nodeName).toLowerCase()==="iframe")?true:false}try{return T.self!==T.top}catch(ao){return true}}function Q(ce,b9){var bI=this,bd="mtm_consent",cM="mtm_consent_removed",b4=aa(G.domain,T.location.href,K()),cU=L(b4[0]),bN=p(b4[1]),bn=p(b4[2]),cS=false,ci="GET",da=ci,aI="application/x-www-form-urlencoded; charset=UTF-8",cx=aI,aE=ce||"",bH="",cZ="",b6=b9||"",by="",bO="",a4,bj="",c6=["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","rtf","sea","sit","tar","tbz","tbz2","bz","bz2","tgz","torrent","txt","wav","wma","wmv","wpd","xls","xlsx","xml","z","zip"],ax=[cU],bz=[],bL=[],a8=[],bJ=500,cW=true,cJ,a5,bR,c7=1800,bP,ao,cq=["pk_campaign","mtm_campaign","piwik_campaign","matomo_campaign","utm_campaign","utm_source","utm_medium"],bG=["pk_kwd","mtm_kwd","piwik_kwd","matomo_kwd","utm_term"],bk="_pk_",av="pk_vid",aZ=180,cX,bp,bS=false,bl=false,cQ,be,bv,cK=33955200000,co=1800000,c5=15768000000,a2=true,bE=false,bh=false,bQ=false,aQ=false,cb,bW={},cm={},bm={},bt=200,ct={},c0={},c8={},ca=[],cf=false,cC=false,ap=false,c9=false,cN=false,aN=false,bc=u(),cy=null,cY=null,cc,aR,bA,b7=am,bo,aL,cr=0,bu=["id","ses","cvar","ref"],cB=false,bB=null,cL=[],aw=U++;
+try{bj=G.title}catch(cz){bj=""}function de(dq,dn,dm,dp,dl,dk){if(bl){return}var dj;if(dm){dj=new Date();dj.setTime(dj.getTime()+dm)}G.cookie=dq+"="+t(dn)+(dm?";expires="+dj.toGMTString():"")+";path="+(dp||"/")+(dl?";domain="+dl:"")+(dk?";secure":"")+";SameSite=Lax"}function aD(dl){if(bl){return 0}var dj=new RegExp("(^|;)[ ]*"+dl+"=([^;]*)"),dk=dj.exec(G.cookie);return dk?S(dk[2]):0}bB=!aD(cM);function b2(dj){var dk;dj=k(dj,av);if(bP){dk=new RegExp("#.*");return dj.replace(dk,"")}return dj}function bV(dl,dj){var dm=s(dj),dk;if(dm){return dj}if(dj.slice(0,1)==="/"){return s(dl)+"://"+d(dl)+dj}dl=b2(dl);dk=dl.indexOf("?");if(dk>=0){dl=dl.slice(0,dk)}dk=dl.lastIndexOf("/");if(dk!==dl.length-1){dl=dl.slice(0,dk+1)}return dl+dj}function cH(dl,dj){var dk;dl=String(dl).toLowerCase();dj=String(dj).toLowerCase();if(dl===dj){return true}if(dj.slice(0,1)==="."){if(dl===dj.slice(1)){return true}dk=dl.length-dj.length;if((dk>0)&&(dl.slice(dk)===dj)){return true}}return false}function cl(dj){var dk=document.createElement("a");
+if(dj.indexOf("//")!==0&&dj.indexOf("http")!==0){if(dj.indexOf("*")===0){dj=dj.substr(1)}if(dj.indexOf(".")===0){dj=dj.substr(1)}dj="http://"+dj}dk.href=v.toAbsoluteUrl(dj);if(dk.pathname){return dk.pathname}return""}function a3(dk,dj){if(!aj(dj,"/")){dj="/"+dj}if(!aj(dk,"/")){dk="/"+dk}var dl=(dj==="/"||dj==="/*");if(dl){return true}if(dk===dj){return true}dj=String(dj).toLowerCase();dk=String(dk).toLowerCase();if(R(dj,"*")){dj=dj.slice(0,-1);dl=(!dj||dj==="/");if(dl){return true}if(dk===dj){return true}return dk.indexOf(dj)===0}if(!R(dk,"/")){dk+="/"}if(!R(dj,"/")){dj+="/"}return dk.indexOf(dj)===0}function ar(dn,dq){var dk,dj,dl,dm,dp;for(dk=0;dk<ax.length;dk++){dm=L(ax[dk]);dp=cl(ax[dk]);if(cH(dn,dm)&&a3(dq,dp)){return true}}return false}function aV(dm){var dk,dj,dl;for(dk=0;dk<ax.length;dk++){dj=L(ax[dk].toLowerCase());if(dm===dj){return true}if(dj.slice(0,1)==="."){if(dm===dj.slice(1)){return true}dl=dm.length-dj.length;if((dl>0)&&(dm.slice(dl)===dj)){return true}}}return false}function cp(dj,dl){dj=dj.replace("send_image=0","send_image=1");
+var dk=new Image(1,1);dk.onload=function(){E=0;if(typeof dl==="function"){dl({request:dj,trackerUrl:aE,success:true})}};dk.onerror=function(){if(typeof dl==="function"){dl({request:dj,trackerUrl:aE,success:false})}};dk.src=aE+(aE.indexOf("?")<0?"?":"&")+dj}function cE(dj){if(da==="POST"){return true}return dj&&(dj.length>2000||dj.indexOf('{"requests"')===0)}function aK(){return"object"===typeof h&&"function"===typeof h.sendBeacon&&"function"===typeof Blob}function a6(dn,dr,dq){var dl=aK();if(!dl){return false}var dm={type:"application/x-www-form-urlencoded; charset=UTF-8"};var ds=false;var dk=aE;try{var dj=new Blob([dn],dm);if(dq&&!cE(dn)){dj=new Blob([],dm);dk=dk+(dk.indexOf("?")<0?"?":"&")+dn}ds=h.sendBeacon(dk,dj)}catch(dp){return false}if(ds&&typeof dr==="function"){dr({request:dn,trackerUrl:aE,success:true,isSendBeacon:true})}return ds}function c4(dk,dl,dj){if(!J(dj)||null===dj){dj=true}if(m&&a6(dk,dl,dj)){return}setTimeout(function(){if(m&&a6(dk,dl,dj)){return}var dp;try{var dn=T.XMLHttpRequest?new T.XMLHttpRequest():T.ActiveXObject?new ActiveXObject("Microsoft.XMLHTTP"):null;
+dn.open("POST",aE,true);dn.onreadystatechange=function(){if(this.readyState===4&&!(this.status>=200&&this.status<300)){var dq=m&&a6(dk,dl,dj);if(!dq&&dj){cp(dk,dl)}else{if(typeof dl==="function"){dl({request:dk,trackerUrl:aE,success:false,xhr:this})}}}else{if(this.readyState===4&&(typeof dl==="function")){dl({request:dk,trackerUrl:aE,success:true,xhr:this})}}};dn.setRequestHeader("Content-Type",cx);dn.withCredentials=true;dn.send(dk)}catch(dm){dp=m&&a6(dk,dl,dj);if(!dp&&dj){cp(dk,dl)}else{if(typeof dl==="function"){dl({request:dk,trackerUrl:aE,success:false})}}}},50)}function cg(dk){var dj=new Date();var dl=dj.getTime()+dk;if(!r||dl>r){r=dl}}function cn(dj){if(cc||!a5||!bB){return}cc=setTimeout(function dk(){cc=null;if(!bc){bc=(!G.hasFocus||G.hasFocus())}if(!bc){cn(a5);return}if(bR()){return}var dl=new Date(),dm=a5-(dl.getTime()-cY);dm=Math.min(a5,dm);cn(dm)},dj||a5)}function bK(){if(!cc){return}clearTimeout(cc);cc=null}function ba(){bc=true;cy=new Date().getTime()}function dd(){var dj=new Date().getTime();
+return !cy||(dj-cy)>a5}function ay(){if(dd()){bR()}bK()}function dg(){if(aN||!a5){return}aN=true;an(T,"focus",ba);an(T,"blur",ay);ab++;e.addPlugin("HeartBeat"+ab,{unload:function(){if(aN&&dd()){bR()}}})}function cD(dn){var dk=new Date();var dj=dk.getTime();cY=dj;if(cC&&dj<cC){var dl=cC-dj;setTimeout(dn,dl);cg(dl+50);cC+=50;return}if(cC===false){var dm=800;cC=dj+dm}dn()}function aO(){if(aD(cM)){bB=false}else{if(aD(bd)){bB=true}}}function bF(dk,dj,dl){aO();if(!bB){cL.push(dk);return}if(!cQ&&dk){if(cB&&bB){dk+="&consent=1"}cD(function(){if(cW&&a6(dk,dl,true)){cg(100);return}if(cE(dk)){c4(dk,dl)}else{cp(dk,dl)}cg(dj)})}if(!aN){dg()}}function ck(dj){if(cQ){return false}return(dj&&dj.length)}function c3(dj,dn){if(!dn||dn>=dj.length){return[dj]}var dk=0;var dl=dj.length;var dm=[];for(dk;dk<dl;dk+=dn){dm.push(dj.slice(dk,dk+dn))}return dm}function df(dk,dj){if(!ck(dk)){return}if(!bB){cL.push(dk);return}cD(function(){var dn=c3(dk,50);var dl=0,dm;for(dl;dl<dn.length;dl++){dm='{"requests":["?'+dn[dl].join('","?')+'"]}';
+if(cW&&a6(dm,null,false)){cg(100)}else{c4(dm,null,false)}}cg(dj)})}function aT(dj){return bk+dj+"."+b6+"."+bo}function bY(dl,dk,dj){de(dl,"",-86400,dk,dj)}function b5(){if(bl){return"0"}if(!J(T.showModalDialog)&&J(h.cookieEnabled)){return h.cookieEnabled?"1":"0"}var dj=bk+"testcookie";de(dj,"1",undefined,bp,cX,bS);var dk=aD(dj)==="1"?"1":"0";bY(dj);return dk}function bi(){bo=b7((cX||cU)+(bp||"/")).slice(0,4)}function cI(){if(J(c8.res)){return c8}var dk,dm,dn={pdf:"application/pdf",qt:"video/quicktime",realp:"audio/x-pn-realaudio-plugin",wma:"application/x-mplayer2",fla:"application/x-shockwave-flash",java:"application/x-java-vm",ag:"application/x-silverlight"};if(!((new RegExp("MSIE")).test(h.userAgent))){if(h.mimeTypes&&h.mimeTypes.length){for(dk in dn){if(Object.prototype.hasOwnProperty.call(dn,dk)){dm=h.mimeTypes[dn[dk]];c8[dk]=(dm&&dm.enabledPlugin)?"1":"0"}}}if(!((new RegExp("Edge[ /](\\d+[\\.\\d]+)")).test(h.userAgent))&&typeof navigator.javaEnabled!=="unknown"&&J(h.javaEnabled)&&h.javaEnabled()){c8.java="1"
+}c8.cookie=b5()}var dl=parseInt(X.width,10);var dj=parseInt(X.height,10);c8.res=parseInt(dl,10)+"x"+parseInt(dj,10);return c8}function bX(){var dk=aT("cvar"),dj=aD(dk);if(dj&&dj.length){dj=T.JSON.parse(dj);if(W(dj)){return dj}}return{}}function cF(){if(aQ===false){aQ=bX()}}function cR(){var dj=cI();return b7((h.userAgent||"")+(h.platform||"")+T.JSON.stringify(dj)+(new Date()).getTime()+Math.random()).slice(0,16)}function aA(){var dj=cI();return b7((h.userAgent||"")+(h.platform||"")+T.JSON.stringify(dj)).slice(0,6)}function bf(){return Math.floor((new Date()).getTime()/1000)}function aJ(){var dk=bf();var dl=aA();var dj=String(dk)+dl;return dj}function c2(dl){dl=String(dl);var dp=aA();var dm=dp.length;var dn=dl.substr(-1*dm,dm);var dk=parseInt(dl.substr(0,dl.length-dm),10);if(dk&&dn&&dn===dp){var dj=bf();if(aZ<=0){return true}if(dj>=dk&&dj<=(dk+aZ)){return true}}return false}function dh(dj){if(!cN){return""}var dn=f(dj,av);if(!dn){return""}dn=String(dn);var dl=new RegExp("^[a-zA-Z0-9]+$");
+if(dn.length===32&&dl.test(dn)){var dk=dn.substr(16,32);if(c2(dk)){var dm=dn.substr(0,16);return dm}}return""}function cO(){if(!bO){bO=dh(bN)}var dl=new Date(),dj=Math.round(dl.getTime()/1000),dk=aT("id"),dp=aD(dk),dn,dm;if(dp){dn=dp.split(".");dn.unshift("0");if(bO.length){dn[1]=bO}return dn}if(bO.length){dm=bO}else{if("0"===b5()){dm=""}else{dm=cR()}}dn=["1",dm,dj,0,dj,"",""];return dn}function aY(){var dr=cO(),dm=dr[0],dn=dr[1],dk=dr[2],dj=dr[3],dp=dr[4],dl=dr[5];if(!J(dr[6])){dr[6]=""}var dq=dr[6];return{newVisitor:dm,uuid:dn,createTs:dk,visitCount:dj,currentVisitTs:dp,lastVisitTs:dl,lastEcommerceOrderTs:dq}}function aH(){var dm=new Date(),dk=dm.getTime(),dn=aY().createTs;var dj=parseInt(dn,10);var dl=(dj*1000)+cK-dk;return dl}function aM(dj){if(!b6){return}var dl=new Date(),dk=Math.round(dl.getTime()/1000);if(!J(dj)){dj=aY()}var dm=dj.uuid+"."+dj.createTs+"."+dj.visitCount+"."+dk+"."+dj.lastVisitTs+"."+dj.lastEcommerceOrderTs;de(aT("id"),dm,aH(),bp,cX,bS)}function bM(){var dj=aD(aT("ref"));
+if(dj.length){try{dj=T.JSON.parse(dj);if(W(dj)){return dj}}catch(dk){}}return["","",0,""]}function bw(dk){var dj="testvalue";de("test",dj,10000,null,dk);if(aD("test")===dj){bY("test",null,dk);return true}return false}function aF(){var dk=bl;bl=false;var dj,dl;for(dj=0;dj<bu.length;dj++){dl=aT(bu[dj]);if(dl!==cM&&dl!==bd&&0!==aD(dl)){bY(dl,bp,cX)}}bl=dk}function b3(dj){b6=dj;aM()}function di(dn){if(!dn||!W(dn)){return}var dm=[];var dl;for(dl in dn){if(Object.prototype.hasOwnProperty.call(dn,dl)){dm.push(dl)}}var dp={};dm.sort();var dj=dm.length;var dk;for(dk=0;dk<dj;dk++){dp[dm[dk]]=dn[dm[dk]]}return dp}function cd(){de(aT("ses"),"1",co,bp,cX,bS)}function bg(){var dm="";var dk="abcdefghijklmnopqrstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ";var dl=dk.length;var dj;for(dj=0;dj<6;dj++){dm+=dk.charAt(Math.floor(Math.random()*dl))}return dm}function az(dj){if(i&&i.timing&&i&&i.timing.connectEnd&&i.timing.fetchStart){dj+="&pf_net="+(i.timing.connectEnd-i.timing.fetchStart)}if(i&&i.timing&&i&&i.timing.responseStart&&i.timing.requestStart){dj+="&pf_srv="+(i.timing.responseStart-i.timing.requestStart)
+}if(i&&i.timing&&i&&i.timing.responseStart&&i.timing.responseEnd){dj+="&pf_tfr="+(i.timing.responseEnd-i.timing.responseStart)}if(i&&i.timing&&i&&i.timing.domInteractive&&i.timing.domLoading){dj+="&pf_dm1="+(i.timing.domInteractive-i.timing.domLoading)}if(i&&i.timing&&i&&i.timing.domComplete&&i.timing.domInteractive){dj+="&pf_dm2="+(i.timing.domComplete-i.timing.domInteractive)}if(i&&i.timing&&i&&i.timing.loadEventEnd&&i.timing.loadEventStart){dj+="&pf_onl="+(i.timing.loadEventEnd-i.timing.loadEventStart)}return dj}function cs(dl,dH,dI,dm){var dG,dk=new Date(),du=Math.round(dk.getTime()/1000),dr,dF,dn=1024,dO,dv,dD=aQ,dp=aT("ses"),dB=aT("ref"),dy=aT("cvar"),dz=aD(dp),dE=bM(),dK=a4||bN,ds,dj;if(bl){aF()}if(cQ){return""}var dA=aY();if(!J(dm)){dm=""}var dx=G.characterSet||G.charset;if(!dx||dx.toLowerCase()==="utf-8"){dx=null}ds=dE[0];dj=dE[1];dr=dE[2];dF=dE[3];if(!dz){var dJ=co/1000;if(!dA.lastVisitTs||(du-dA.lastVisitTs)>dJ){dA.visitCount++;dA.lastVisitTs=dA.currentVisitTs}if(!bv||!ds.length){for(dG in cq){if(Object.prototype.hasOwnProperty.call(cq,dG)){ds=f(dK,cq[dG]);
+if(ds.length){break}}}for(dG in bG){if(Object.prototype.hasOwnProperty.call(bG,dG)){dj=f(dK,bG[dG]);if(dj.length){break}}}}dO=d(bn);dv=dF.length?d(dF):"";if(dO.length&&!aV(dO)&&(!bv||!dv.length||aV(dv))){dF=bn}if(dF.length||ds.length){dr=du;dE=[ds,dj,dr,b2(dF.slice(0,dn))];de(dB,T.JSON.stringify(dE),c5,bp,cX,bS)}}dl+="&idsite="+b6+"&rec=1&r="+String(Math.random()).slice(2,8)+"&h="+dk.getHours()+"&m="+dk.getMinutes()+"&s="+dk.getSeconds()+"&url="+t(b2(dK))+(bn.length?"&urlref="+t(b2(bn)):"")+((by&&by.length)?"&uid="+t(by):"")+"&_id="+dA.uuid+"&_idts="+dA.createTs+"&_idvc="+dA.visitCount+"&_idn="+dA.newVisitor+(ds.length?"&_rcn="+t(ds):"")+(dj.length?"&_rck="+t(dj):"")+"&_refts="+dr+"&_viewts="+dA.lastVisitTs+(String(dA.lastEcommerceOrderTs).length?"&_ects="+dA.lastEcommerceOrderTs:"")+(String(dF).length?"&_ref="+t(b2(dF.slice(0,dn))):"")+(dx?"&cs="+t(dx):"")+"&send_image=0";var dN=cI();for(dG in dN){if(Object.prototype.hasOwnProperty.call(dN,dG)){dl+="&"+dG+"="+dN[dG]}}var dM=[];if(dH){for(dG in dH){if(Object.prototype.hasOwnProperty.call(dH,dG)&&/^dimension\d+$/.test(dG)){var dq=dG.replace("dimension","");
+dM.push(parseInt(dq,10));dM.push(String(dq));dl+="&"+dG+"="+t(dH[dG]);delete dH[dG]}}}if(dH&&B(dH)){dH=null}for(dG in ct){if(Object.prototype.hasOwnProperty.call(ct,dG)){dl+="&"+dG+"="+t(ct[dG])}}for(dG in bm){if(Object.prototype.hasOwnProperty.call(bm,dG)){var dw=(-1===M(dM,dG));if(dw){dl+="&dimension"+dG+"="+t(bm[dG])}}}if(dH){dl+="&data="+t(T.JSON.stringify(dH))}else{if(ao){dl+="&data="+t(T.JSON.stringify(ao))}}function dt(dP,dQ){var dR=T.JSON.stringify(dP);if(dR.length>2){return"&"+dQ+"="+t(dR)}return""}var dL=di(bW);var dC=di(cm);dl+=dt(dL,"cvar");dl+=dt(dC,"e_cvar");if(aQ){dl+=dt(aQ,"_cvar");for(dG in dD){if(Object.prototype.hasOwnProperty.call(dD,dG)){if(aQ[dG][0]===""||aQ[dG][1]===""){delete aQ[dG]}}}if(bQ){de(dy,T.JSON.stringify(aQ),co,bp,cX,bS)}}if(a2&&bE&&!bh){dl=az(dl);bh=true}if(aL){dl+="&pv_id="+aL}dA.lastEcommerceOrderTs=J(dm)&&String(dm).length?dm:dA.lastEcommerceOrderTs;aM(dA);cd();dl+=ac(dI,{tracker:bI,request:dl});if(cZ.length){dl+="&"+cZ}if(A(cb)){dl=cb(dl)}return dl
+}bR=function a7(){var dj=new Date();dj=dj.getTime();if(!cY){return false}if((cY+(1000*c7))<=dj){return false}if(cY+a5<=dj){bI.ping();return true}return false};function bq(dm,dl,ds,dn,dj,dv){var dq="idgoal=0",dr,dk=new Date(),dt=[],du,dp=String(dm).length;if(dp){dq+="&ec_id="+t(dm);dr=Math.round(dk.getTime()/1000)}dq+="&revenue="+dl;if(String(ds).length){dq+="&ec_st="+ds}if(String(dn).length){dq+="&ec_tx="+dn}if(String(dj).length){dq+="&ec_sh="+dj}if(String(dv).length){dq+="&ec_dt="+dv}if(c0){for(du in c0){if(Object.prototype.hasOwnProperty.call(c0,du)){if(!J(c0[du][1])){c0[du][1]=""}if(!J(c0[du][2])){c0[du][2]=""}if(!J(c0[du][3])||String(c0[du][3]).length===0){c0[du][3]=0}if(!J(c0[du][4])||String(c0[du][4]).length===0){c0[du][4]=1}dt.push(c0[du])}}dq+="&ec_items="+t(T.JSON.stringify(dt))}dq=cs(dq,ao,"ecommerce",dr);bF(dq,bJ);if(dp){c0={}}}function bZ(dj,dn,dm,dl,dk,dp){if(String(dj).length&&J(dn)){bq(dj,dn,dm,dl,dk,dp)}}function bs(dj){if(J(dj)){bq("",dj,"","","","")}}function b0(dk,dm,dl){aL=bg();
+var dj=cs("action_name="+t(al(dk||bj)),dm,"log");if(!bh){dj=az(dj)}bF(dj,bJ,dl)}function a0(dl,dk){var dm,dj="(^| )(piwik[_-]"+dk;if(dl){for(dm=0;dm<dl.length;dm++){dj+="|"+dl[dm]}}dj+=")( |$)";return new RegExp(dj)}function aU(dj){return(aE&&dj&&0===String(dj).indexOf(aE))}function cv(dn,dj,dp,dk){if(aU(dj)){return 0}var dm=a0(bL,"download"),dl=a0(a8,"link"),dq=new RegExp("\\.("+c6.join("|")+")([?&#]|$)","i");if(dl.test(dn)){return"link"}if(dk||dm.test(dn)||dq.test(dj)){return"download"}if(dp){return 0}return"link"}function au(dk){var dj;dj=dk.parentNode;while(dj!==null&&J(dj)){if(ae.isLinkElement(dk)){break}dk=dj;dj=dk.parentNode}return dk}function dc(dp){dp=au(dp);if(!ae.hasNodeAttribute(dp,"href")){return}if(!J(dp.href)){return}var dn=ae.getAttributeValueFromNode(dp,"href");var dk=dp.pathname||cl(dp.href);var dq=dp.hostname||d(dp.href);var dr=dq.toLowerCase();var dl=dp.href.replace(dq,dr);var dm=new RegExp("^(javascript|vbscript|jscript|mocha|livescript|ecmascript|mailto|tel):","i");
+if(!dm.test(dl)){var dj=cv(dp.className,dl,ar(dr,dk),ae.hasNodeAttribute(dp,"download"));if(dj){return{type:dj,href:dl}}}}function aP(dj,dk,dl,dm){var dn=v.buildInteractionRequestParams(dj,dk,dl,dm);if(!dn){return}return cs(dn,null,"contentInteraction")}function bb(dj,dk){if(!dj||!dk){return false}var dl=v.findTargetNode(dj);if(v.shouldIgnoreInteraction(dl)){return false}dl=v.findTargetNodeNoDefault(dj);if(dl&&!V(dl,dk)){return false}return true}function cu(dl,dk,dn){if(!dl){return}var dj=v.findParentContentNode(dl);if(!dj){return}if(!bb(dj,dl)){return}var dm=v.buildContentBlock(dj);if(!dm){return}if(!dm.target&&dn){dm.target=dn}return v.buildInteractionRequestParams(dk,dm.name,dm.piece,dm.target)}function aW(dk){if(!ca||!ca.length){return false}var dj,dl;for(dj=0;dj<ca.length;dj++){dl=ca[dj];if(dl&&dl.name===dk.name&&dl.piece===dk.piece&&dl.target===dk.target){return true}}return false}function aX(dj){return function(dn){if(!dj){return}var dl=v.findParentContentNode(dj);var dk;if(dn){dk=dn.target||dn.srcElement
+}if(!dk){dk=dj}if(!bb(dl,dk)){return}if(!dl){return false}var dp=v.findTargetNode(dl);if(!dp||v.shouldIgnoreInteraction(dp)){return false}var dm=dc(dp);if(c9&&dm&&dm.type){return dm.type}return bI.trackContentInteractionNode(dk,"click")}}function b1(dl){if(!dl||!dl.length){return}var dj,dk;for(dj=0;dj<dl.length;dj++){dk=v.findTargetNode(dl[dj]);if(dk&&!dk.contentInteractionTrackingSetupDone){dk.contentInteractionTrackingSetupDone=true;an(dk,"click",aX(dk))}}}function bx(dl,dm){if(!dl||!dl.length){return[]}var dj,dk;for(dj=0;dj<dl.length;dj++){if(aW(dl[dj])){dl.splice(dj,1);dj--}else{ca.push(dl[dj])}}if(!dl||!dl.length){return[]}b1(dm);var dn=[];for(dj=0;dj<dl.length;dj++){dk=cs(v.buildImpressionRequestParams(dl[dj].name,dl[dj].piece,dl[dj].target),undefined,"contentImpressions");if(dk){dn.push(dk)}}return dn}function cA(dk){var dj=v.collectContent(dk);return bx(dj,dk)}function a9(dk){if(!dk||!dk.length){return[]}var dj;for(dj=0;dj<dk.length;dj++){if(!v.isNodeVisible(dk[dj])){dk.splice(dj,1);
+dj--}}if(!dk||!dk.length){return[]}return cA(dk)}function aG(dl,dj,dk){var dm=v.buildImpressionRequestParams(dl,dj,dk);return cs(dm,null,"contentImpression")}function db(dm,dk){if(!dm){return}var dj=v.findParentContentNode(dm);var dl=v.buildContentBlock(dj);if(!dl){return}if(!dk){dk="Unknown"}return aP(dk,dl.name,dl.piece,dl.target)}function cP(dk,dm,dj,dl){return"e_c="+t(dk)+"&e_a="+t(dm)+(J(dj)?"&e_n="+t(dj):"")+(J(dl)?"&e_v="+t(dl):"")}function at(dl,dn,dj,dm,dq,dp){if(!Y(dl)||!Y(dn)){ak("Error while logging event: Parameters `category` and `action` must not be empty or filled with whitespaces");return false}var dk=cs(cP(dl,dn,dj,dm),dq,"event");bF(dk,bJ,dp)}function b8(dj,dm,dk,dn){var dl=cs("search="+t(dj)+(dm?"&search_cat="+t(dm):"")+(J(dk)?"&search_count="+dk:""),dn,"sitesearch");bF(dl,bJ)}function cT(dj,dn,dm,dl){var dk=cs("idgoal="+dj+(dn?"&revenue="+dn:""),dm,"goal");bF(dk,bJ,dl)}function c1(dm,dj,dr,dq,dl){var dp=dj+"="+t(b2(dm));var dk=cu(dl,"click",dm);if(dk){dp+="&"+dk}var dn=cs(dp,dr,"link");
+bF(dn,bJ,dq)}function bU(dk,dj){if(dk!==""){return dk+dj.charAt(0).toUpperCase()+dj.slice(1)}return dj}function ch(dp){var dn,dj,dm=["","webkit","ms","moz"],dl;if(!be){for(dj=0;dj<dm.length;dj++){dl=dm[dj];if(Object.prototype.hasOwnProperty.call(G,bU(dl,"hidden"))){if(G[bU(dl,"visibilityState")]==="prerender"){dn=true}break}}}if(dn){an(G,dl+"visibilitychange",function dk(){G.removeEventListener(dl+"visibilitychange",dk,false);dp()});return}dp()}function br(){var dk=bI.getVisitorId();var dj=aJ();return dk+dj}function cj(dj){if(!dj){return}if(!ae.hasNodeAttribute(dj,"href")){return}var dk=ae.getAttributeValueFromNode(dj,"href");if(!dk||aU(dk)){return}if(!bI.getVisitorId()){return}dk=k(dk,av);var dl=br();dk=F(dk,av,dl);ae.setAnyAttribute(dj,"href",dk)}function aB(dm){var dn=ae.getAttributeValueFromNode(dm,"href");if(!dn){return false}dn=String(dn);var dk=dn.indexOf("//")===0||dn.indexOf("http://")===0||dn.indexOf("https://")===0;if(!dk){return false}var dj=dm.pathname||cl(dm.href);var dl=(dm.hostname||d(dm.href)).toLowerCase();
+if(ar(dl,dj)){if(!cH(cU,L(dl))){return true}return false}return false}function cG(dj){var dk=dc(dj);if(dk&&dk.type){dk.href=p(dk.href);c1(dk.href,dk.type,undefined,null,dj);return}if(cN){dj=au(dj);if(aB(dj)){cj(dj)}}}function cw(){return G.all&&!G.addEventListener}function cV(dj){var dl=dj.which;var dk=(typeof dj.button);if(!dl&&dk!=="undefined"){if(cw()){if(dj.button&1){dl=1}else{if(dj.button&2){dl=3}else{if(dj.button&4){dl=2}}}}else{if(dj.button===0||dj.button==="0"){dl=1}else{if(dj.button&1){dl=2}else{if(dj.button&2){dl=3}}}}}return dl}function bT(dj){switch(cV(dj)){case 1:return"left";case 2:return"middle";case 3:return"right"}}function a1(dj){return dj.target||dj.srcElement}function aC(dj){return function(dm){dm=dm||T.event;var dl=bT(dm);var dn=a1(dm);if(dm.type==="click"){var dk=false;if(dj&&dl==="middle"){dk=true}if(dn&&!dk){cG(dn)}}else{if(dm.type==="mousedown"){if(dl==="middle"&&dn){aR=dl;bA=dn}else{aR=bA=null}}else{if(dm.type==="mouseup"){if(dl===aR&&dn===bA){cG(dn)}aR=bA=null
+}else{if(dm.type==="contextmenu"){cG(dn)}}}}}}function aq(dl,dk){var dj=typeof dk;if(dj==="undefined"){dk=true}an(dl,"click",aC(dk),false);if(dk){an(dl,"mouseup",aC(dk),false);an(dl,"mousedown",aC(dk),false);an(dl,"contextmenu",aC(dk),false)}}function bD(dl,dn){ap=true;var dm,dk=a0(bz,"ignore"),dp=G.links,dj=null,dq=null;if(dp){for(dm=0;dm<dp.length;dm++){dj=dp[dm];if(!dk.test(dj.className)){dq=typeof dj.piwikTrackers;if("undefined"===dq){dj.piwikTrackers=[]}if(-1===M(dj.piwikTrackers,dn)){dj.piwikTrackers.push(dn);aq(dj,dl)}}}}}function aS(dk,dn,dp){if(cf){return true}cf=true;var dq=false;var dm,dl;function dj(){dq=true}n(function(){function dr(dt){setTimeout(function(){if(!cf){return}dq=false;dp.trackVisibleContentImpressions();dr(dt)},dt)}function ds(dt){setTimeout(function(){if(!cf){return}if(dq){dq=false;dp.trackVisibleContentImpressions()}ds(dt)},dt)}if(dk){dm=["scroll","resize"];for(dl=0;dl<dm.length;dl++){if(G.addEventListener){G.addEventListener(dm[dl],dj,false)}else{T.attachEvent("on"+dm[dl],dj)
+}}ds(100)}if(dn&&dn>0){dn=parseInt(dn,10);dr(dn)}})}var bC={enabled:true,requests:[],timeout:null,interval:2500,sendRequests:function(){var dj=this.requests;this.requests=[];if(dj.length===1){bF(dj[0],bJ)}else{df(dj,bJ)}},canQueue:function(){return !m&&this.enabled},pushMultiple:function(dk){if(!this.canQueue()){df(dk,bJ);return}var dj;for(dj=0;dj<dk.length;dj++){this.push(dk[dj])}},push:function(dj){if(!dj){return}if(!this.canQueue()){bF(dj,bJ);return}bC.requests.push(dj);if(this.timeout){clearTimeout(this.timeout);this.timeout=null}this.timeout=setTimeout(function(){bC.timeout=null;bC.sendRequests()},bC.interval);var dk="RequestQueue"+aw;if(!Object.prototype.hasOwnProperty.call(b,dk)){b[dk]={unload:function(){if(bC.timeout){clearTimeout(bC.timeout)}bC.sendRequests()}}}}};bi();aM();this.hasConsent=function(){return bB};this.getVisitorId=function(){return aY().uuid};this.getVisitorInfo=function(){return cO()};this.getAttributionInfo=function(){return bM()};this.getAttributionCampaignName=function(){return bM()[0]
+};this.getAttributionCampaignKeyword=function(){return bM()[1]};this.getAttributionReferrerTimestamp=function(){return bM()[2]};this.getAttributionReferrerUrl=function(){return bM()[3]};this.setTrackerUrl=function(dj){aE=dj};this.getTrackerUrl=function(){return aE};this.getPiwikUrl=function(){return O(this.getTrackerUrl(),bH)};this.addTracker=function(dj,dl){if(!J(dj)||null===dj){dj=this.getTrackerUrl()}var dk=new Q(dj,dl);I.push(dk);e.trigger("TrackerAdded",[this]);return dk};this.getSiteId=function(){return b6};this.setSiteId=function(dj){b3(dj)};this.resetUserId=function(){by=""};this.setUserId=function(dj){if(Y(dj)){by=dj}};this.getUserId=function(){return by};this.setCustomData=function(dj,dk){if(W(dj)){ao=dj}else{if(!ao){ao={}}ao[dj]=dk}};this.getCustomData=function(){return ao};this.setCustomRequestProcessing=function(dj){cb=dj};this.appendToTrackingUrl=function(dj){cZ=dj};this.getRequest=function(dj){return cs(dj)};this.addPlugin=function(dj,dk){b[dj]=dk};this.setCustomDimension=function(dj,dk){dj=parseInt(dj,10);
+if(dj>0){if(!J(dk)){dk=""}if(!w(dk)){dk=String(dk)}bm[dj]=dk}};this.getCustomDimension=function(dj){dj=parseInt(dj,10);if(dj>0&&Object.prototype.hasOwnProperty.call(bm,dj)){return bm[dj]}};this.deleteCustomDimension=function(dj){dj=parseInt(dj,10);if(dj>0){delete bm[dj]}};this.setCustomVariable=function(dk,dj,dn,dl){var dm;if(!J(dl)){dl="visit"}if(!J(dj)){return}if(!J(dn)){dn=""}if(dk>0){dj=!w(dj)?String(dj):dj;dn=!w(dn)?String(dn):dn;dm=[dj.slice(0,bt),dn.slice(0,bt)];if(dl==="visit"||dl===2){cF();aQ[dk]=dm}else{if(dl==="page"||dl===3){bW[dk]=dm}else{if(dl==="event"){cm[dk]=dm}}}}};this.getCustomVariable=function(dk,dl){var dj;if(!J(dl)){dl="visit"}if(dl==="page"||dl===3){dj=bW[dk]}else{if(dl==="event"){dj=cm[dk]}else{if(dl==="visit"||dl===2){cF();dj=aQ[dk]}}}if(!J(dj)||(dj&&dj[0]==="")){return false}return dj};this.deleteCustomVariable=function(dj,dk){if(this.getCustomVariable(dj,dk)){this.setCustomVariable(dj,"","",dk)}};this.deleteCustomVariables=function(dj){if(dj==="page"||dj===3){bW={}
+}else{if(dj==="event"){cm={}}else{if(dj==="visit"||dj===2){aQ={}}}}};this.storeCustomVariablesInCookie=function(){bQ=true};this.setLinkTrackingTimer=function(dj){bJ=dj};this.getLinkTrackingTimer=function(){return bJ};this.setDownloadExtensions=function(dj){if(w(dj)){dj=dj.split("|")}c6=dj};this.addDownloadExtensions=function(dk){var dj;if(w(dk)){dk=dk.split("|")}for(dj=0;dj<dk.length;dj++){c6.push(dk[dj])}};this.removeDownloadExtensions=function(dl){var dk,dj=[];if(w(dl)){dl=dl.split("|")}for(dk=0;dk<c6.length;dk++){if(M(dl,c6[dk])===-1){dj.push(c6[dk])}}c6=dj};this.setDomains=function(dj){ax=w(dj)?[dj]:dj;var dn=false,dl=0,dk;for(dl;dl<ax.length;dl++){dk=String(ax[dl]);if(cH(cU,L(dk))){dn=true;break}var dm=cl(dk);if(dm&&dm!=="/"&&dm!=="/*"){dn=true;break}}if(!dn){ax.push(cU)}};this.enableCrossDomainLinking=function(){cN=true};this.disableCrossDomainLinking=function(){cN=false};this.isCrossDomainLinkingEnabled=function(){return cN};this.setCrossDomainLinkingTimeout=function(dj){aZ=dj};this.getCrossDomainLinkingUrlParameter=function(){return t(av)+"="+t(br())
+};this.setIgnoreClasses=function(dj){bz=w(dj)?[dj]:dj};this.setRequestMethod=function(dj){da=dj||ci};this.setRequestContentType=function(dj){cx=dj||aI};this.setReferrerUrl=function(dj){bn=dj};this.setCustomUrl=function(dj){a4=bV(bN,dj)};this.getCurrentUrl=function(){return a4||bN};this.setDocumentTitle=function(dj){bj=dj};this.setAPIUrl=function(dj){bH=dj};this.setDownloadClasses=function(dj){bL=w(dj)?[dj]:dj};this.setLinkClasses=function(dj){a8=w(dj)?[dj]:dj};this.setCampaignNameKey=function(dj){cq=w(dj)?[dj]:dj};this.setCampaignKeywordKey=function(dj){bG=w(dj)?[dj]:dj};this.discardHashTag=function(dj){bP=dj};this.setCookieNamePrefix=function(dj){bk=dj;if(aQ){aQ=bX()}};this.setCookieDomain=function(dj){var dk=L(dj);if(bw(dk)){cX=dk;bi()}};this.getCookieDomain=function(){return cX};this.hasCookies=function(){return"1"===b5()};this.setSessionCookie=function(dl,dk,dj){if(!dl){throw new Error("Missing cookie name")}if(!J(dj)){dj=co}bu.push(dl);de(aT(dl),dk,dj,bp,cX)};this.getCookie=function(dk){var dj=aD(aT(dk));
+if(dj===0){return null}return dj};this.setCookiePath=function(dj){bp=dj;bi()};this.getCookiePath=function(dj){return bp};this.setVisitorCookieTimeout=function(dj){cK=dj*1000};this.setSessionCookieTimeout=function(dj){co=dj*1000};this.getSessionCookieTimeout=function(){return co};this.setReferralCookieTimeout=function(dj){c5=dj*1000};this.setConversionAttributionFirstReferrer=function(dj){bv=dj};this.setSecureCookie=function(dj){bS=dj};this.disableCookies=function(){bl=true;c8.cookie="0";if(b6){aF()}};this.deleteCookies=function(){aF()};this.setDoNotTrack=function(dk){var dj=h.doNotTrack||h.msDoNotTrack;cQ=dk&&(dj==="yes"||dj==="1");if(cQ){this.disableCookies()}};this.alwaysUseSendBeacon=function(){cW=true};this.disableAlwaysUseSendBeacon=function(){cW=false};this.addListener=function(dk,dj){aq(dk,dj)};this.enableLinkTracking=function(dk){c9=true;var dj=this;ch(function(){q(function(){bD(dk,dj)});n(function(){bD(dk,dj)})})};this.enableJSErrorTracking=function(){if(cS){return}cS=true;var dj=T.onerror;
+T.onerror=function(dp,dm,dl,dn,dk){ch(function(){var dq="JavaScript Errors";var dr=dm+":"+dl;if(dn){dr+=":"+dn}at(dq,dr,dp)});if(dj){return dj(dp,dm,dl,dn,dk)}return false}};this.disablePerformanceTracking=function(){a2=false};this.setVisitStandardLength=function(dj){dj=Math.max(dj,5);c7=dj};this.enableHeartBeatTimer=function(dj){dj=Math.max(dj,5);a5=(dj||15)*1000;if(cY!==null){dg()}};this.disableHeartBeatTimer=function(){bK();if(a5||aN){if(T.removeEventListener){T.removeEventListener("focus",ba);T.removeEventListener("blur",ay)}else{if(T.detachEvent){T.detachEvent("onfocus",ba);T.detachEvent("onblur",ay)}}}a5=null;aN=false};this.killFrame=function(){if(T.location!==T.top.location){T.top.location=T.location}};this.redirectFile=function(dj){if(T.location.protocol==="file:"){T.location=dj}};this.setCountPreRendered=function(dj){be=dj};this.trackGoal=function(dj,dm,dl,dk){ch(function(){cT(dj,dm,dl,dk)})};this.trackLink=function(dk,dj,dm,dl){ch(function(){c1(dk,dj,dm,dl)})};this.getNumTrackedPageViews=function(){return cr
+};this.trackPageView=function(dj,dl,dk){ca=[];cL=[];if(N(b6)){ch(function(){Z(aE,bH,b6)})}else{ch(function(){cr++;b0(dj,dl,dk)})}};this.trackAllContentImpressions=function(){if(N(b6)){return}ch(function(){q(function(){var dj=v.findContentNodes();var dk=cA(dj);bC.pushMultiple(dk)})})};this.trackVisibleContentImpressions=function(dj,dk){if(N(b6)){return}if(!J(dj)){dj=true}if(!J(dk)){dk=750}aS(dj,dk,this);ch(function(){n(function(){var dl=v.findContentNodes();var dm=a9(dl);bC.pushMultiple(dm)})})};this.trackContentImpression=function(dl,dj,dk){if(N(b6)){return}dl=a(dl);dj=a(dj);dk=a(dk);if(!dl){return}dj=dj||"Unknown";ch(function(){var dm=aG(dl,dj,dk);bC.push(dm)})};this.trackContentImpressionsWithinNode=function(dj){if(N(b6)||!dj){return}ch(function(){if(cf){n(function(){var dk=v.findContentNodesWithinNode(dj);var dl=a9(dk);bC.pushMultiple(dl)})}else{q(function(){var dk=v.findContentNodesWithinNode(dj);var dl=cA(dk);bC.pushMultiple(dl)})}})};this.trackContentInteraction=function(dl,dm,dj,dk){if(N(b6)){return
+}dl=a(dl);dm=a(dm);dj=a(dj);dk=a(dk);if(!dl||!dm){return}dj=dj||"Unknown";ch(function(){var dn=aP(dl,dm,dj,dk);if(dn){bC.push(dn)}})};this.trackContentInteractionNode=function(dl,dk){if(N(b6)||!dl){return}var dj=null;ch(function(){dj=db(dl,dk);if(dj){bC.push(dj)}});return dj};this.logAllContentBlocksOnPage=function(){var dl=v.findContentNodes();var dj=v.collectContent(dl);var dk=typeof console;if(dk!=="undefined"&&console&&console.log){console.log(dj)}};this.trackEvent=function(dk,dm,dj,dl,dp,dn){ch(function(){at(dk,dm,dj,dl,dp,dn)})};this.trackSiteSearch=function(dj,dl,dk,dm){ca=[];ch(function(){b8(dj,dl,dk,dm)})};this.setEcommerceView=function(dn,dj,dl,dk){ct={};if(Y(dl)){dl=String(dl)}if(!J(dl)||dl===null||dl===false||!dl.length){dl=""}else{if(dl instanceof Array){dl=T.JSON.stringify(dl)}}var dm="_pkc";ct[dm]=dl;if(J(dk)&&dk!==null&&dk!==false&&String(dk).length){dm="_pkp";ct[dm]=dk}if(!Y(dn)&&!Y(dj)){return}if(Y(dn)){dm="_pks";ct[dm]=dn}if(!Y(dj)){dj=""}dm="_pkn";ct[dm]=dj};this.getEcommerceItems=function(){return JSON.parse(JSON.stringify(c0))
+};this.addEcommerceItem=function(dn,dj,dl,dk,dm){if(Y(dn)){c0[dn]=[String(dn),dj,dl,dk,dm]}};this.removeEcommerceItem=function(dj){if(Y(dj)){dj=String(dj);delete c0[dj]}};this.clearEcommerceCart=function(){c0={}};this.trackEcommerceOrder=function(dj,dn,dm,dl,dk,dp){bZ(dj,dn,dm,dl,dk,dp)};this.trackEcommerceCartUpdate=function(dj){bs(dj)};this.trackRequest=function(dk,dm,dl,dj){ch(function(){var dn=cs(dk,dm,dj);bF(dn,bJ,dl)})};this.ping=function(){this.trackRequest("ping=1",null,null,"ping")};this.disableQueueRequest=function(){bC.enabled=false};this.setRequestQueueInterval=function(dj){if(dj<1000){throw new Error("Request queue interval needs to be at least 1000ms")}bC.interval=dj};this.queueRequest=function(dj){ch(function(){var dk=cs(dj);bC.push(dk)})};this.isConsentRequired=function(){return cB};this.getRememberedConsent=function(){var dj=aD(bd);if(aD(cM)){if(dj){bY(bd,bp,cX)}return null}if(!dj||dj===0){return null}return dj};this.hasRememberedConsent=function(){return !!this.getRememberedConsent()
+};this.requireConsent=function(){cB=true;bB=this.hasRememberedConsent();x++;b["CoreConsent"+x]={unload:function(){if(!bB){aF()}}}};this.setConsentGiven=function(){bB=true;bY(cM,bp,cX);var dk,dj;for(dk=0;dk<cL.length;dk++){dj=typeof cL[dk];if(dj==="string"){bF(cL[dk],bJ)}else{if(dj==="object"){df(cL[dk],bJ)}}}cL=[]};this.rememberConsentGiven=function(dk){if(dk){dk=dk*60*60*1000}else{dk=30*365*24*60*60*1000}this.setConsentGiven();var dj=new Date().getTime();de(bd,dj,dk,bp,cX,bS)};this.forgetConsentGiven=function(){var dj=30*365*24*60*60*1000;bY(bd,bp,cX);de(cM,new Date().getTime(),dj,bp,cX,bS);this.requireConsent()};this.isUserOptedOut=function(){return !bB};this.optUserOut=this.forgetConsentGiven;this.forgetUserOptOut=this.rememberConsentGiven;n(function(){setTimeout(function(){bE=true},0)});e.trigger("TrackerSetup",[this])}function H(){return{push:af}}function c(au,at){var av={};var aq,ar;for(aq=0;aq<at.length;aq++){var ao=at[aq];av[ao]=1;for(ar=0;ar<au.length;ar++){if(au[ar]&&au[ar][0]){var ap=au[ar][0];
+if(ao===ap){af(au[ar]);delete au[ar];if(av[ap]>1&&ap!=="addTracker"){ak("The method "+ap+' is registered more than once in "_paq" variable. Only the last call has an effect. Please have a look at the multiple Piwik trackers documentation: https://developer.piwik.org/guides/tracking-javascript-guide#multiple-piwik-trackers')}av[ap]++}}}}return au}var C=["addTracker","disableCookies","setTrackerUrl","setAPIUrl","enableCrossDomainLinking","setCrossDomainLinkingTimeout","setSessionCookieTimeout","setVisitorCookieTimeout","setCookieNamePrefix","setSecureCookie","setCookiePath","setCookieDomain","setDomains","setUserId","setSiteId","alwaysUseSendBeacon","enableLinkTracking","requireConsent","setConsentGiven"];function ad(ao,aq){var ap=new Q(ao,aq);I.push(ap);_paq=c(_paq,C);for(E=0;E<_paq.length;E++){if(_paq[E]){af(_paq[E])}}_paq=new H();e.trigger("TrackerAdded",[ap]);return ap}an(T,"beforeunload",ai,false);an(T,"message",function(au){if(!au||!au.origin){return}var aw,ar,ap;var ax=d(au.origin);
+var at=e.getAsyncTrackers();for(ar=0;ar<at.length;ar++){ap=d(at[ar].getPiwikUrl());if(ap===ax){aw=at[ar];break}}if(!aw){return}var aq=null;try{aq=JSON.parse(au.data)}catch(av){return}if(!aq){return}function ao(aA){var aC=G.getElementsByTagName("iframe");for(ar=0;ar<aC.length;ar++){var aB=aC[ar];var ay=d(aB.src);if(aB.contentWindow&&J(aB.contentWindow.postMessage)&&ay===ax){var az=JSON.stringify(aA);aB.contentWindow.postMessage(az,"*")}}}if(J(aq.maq_initial_value)){ao({maq_opted_in:aq.maq_initial_value&&aw.hasConsent(),maq_url:aw.getPiwikUrl(),maq_optout_by_default:aw.isConsentRequired()})}else{if(J(aq.maq_opted_in)){at=e.getAsyncTrackers();for(ar=0;ar<at.length;ar++){aw=at[ar];if(aq.maq_opted_in){aw.rememberConsentGiven()}else{aw.forgetConsentGiven()}}ao({maq_confirm_opted_in:aw.hasConsent(),maq_url:aw.getPiwikUrl(),maq_optout_by_default:aw.isConsentRequired()})}}},false);Date.prototype.getTimeAlias=Date.prototype.getTime;e={initialized:false,JSON:T.JSON,DOM:{addEventListener:function(ar,aq,ap,ao){var at=typeof ao;
+if(at==="undefined"){ao=false}an(ar,aq,ap,ao)},onLoad:n,onReady:q,isNodeVisible:j,isOrWasNodeVisible:v.isNodeVisible},on:function(ap,ao){if(!y[ap]){y[ap]=[]}y[ap].push(ao)},off:function(aq,ap){if(!y[aq]){return}var ao=0;for(ao;ao<y[aq].length;ao++){if(y[aq][ao]===ap){y[aq].splice(ao,1)}}},trigger:function(aq,ar,ap){if(!y[aq]){return}var ao=0;for(ao;ao<y[aq].length;ao++){y[aq][ao].apply(ap||T,ar)}},addPlugin:function(ao,ap){b[ao]=ap},getTracker:function(ao,ap){if(!J(ap)){ap=this.getAsyncTracker().getSiteId()}if(!J(ao)){ao=this.getAsyncTracker().getTrackerUrl()}return new Q(ao,ap)},getAsyncTrackers:function(){return I},addTracker:function(ao,aq){var ap;if(!I.length){ap=ad(ao,aq)}else{ap=I[0].addTracker(ao,aq)}return ap},getAsyncTracker:function(ap,at){var ar;if(I&&I.length&&I[0]){ar=I[0]}else{return ad(ap,at)}if(!at&&!ap){return ar}if((!J(at)||null===at)&&ar){at=ar.getSiteId()}if((!J(ap)||null===ap)&&ar){ap=ar.getTrackerUrl()}var aq,ao=0;for(ao;ao<I.length;ao++){aq=I[ao];if(aq&&String(aq.getSiteId())===String(at)&&aq.getTrackerUrl()===ap){return aq
+}}},retryMissedPluginCalls:function(){var ap=ah;ah=[];var ao=0;for(ao;ao<ap.length;ao++){af(ap[ao])}}};if(typeof define==="function"&&define.amd){define("piwik",[],function(){return e});define("matomo",[],function(){return e})}return e}())}
/*!!! 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){var d=typeof console;if(d!=="undefined"&&console&&console.error){console.error("_paq.push() was used but Matomo tracker was not initialized before the matomo.js file was loaded. Make sure to configure the tracker via _paq.push before loading matomo.js. Alternatively, you can create a tracker via Matomo.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 Matomo tracker was not initialized before the matomo.js file was loaded. Make sure to configure the tracker via _paq.push before loading matomo.js. Alternatively, you can create a tracker via Matomo.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/piwik.js b/piwik.js
index 73bf10e1b9..cb16f0764b 100644
--- a/piwik.js
+++ b/piwik.js
@@ -28,43 +28,43 @@ if(-1!==M(aq,ao)&&ae.findFirstNodeHavingAttributeWithValue(at,"src")){var ar=ae.
if(T.innerHeight&&ao>T.innerHeight){ao=T.innerHeight}return((at.bottom>0||aq)&&at.right>0&&at.left<ap&&((at.top<ao)||aq))},isNodeVisible:function(ap){var ao=j(ap);var aq=this.isOrWasNodeInViewport(ap);return ao&&aq},buildInteractionRequestParams:function(ao,ap,aq,ar){var at="";if(ao){at+="c_i="+t(ao)}if(ap){if(at){at+="&"}at+="c_n="+t(ap)}if(aq){if(at){at+="&"}at+="c_p="+t(aq)}if(ar){if(at){at+="&"}at+="c_t="+t(ar)}return at},buildImpressionRequestParams:function(ao,ap,aq){var ar="c_n="+t(ao)+"&c_p="+t(ap);if(aq){ar+="&c_t="+t(aq)}return ar},buildContentBlock:function(aq){if(!aq){return}var ao=this.findContentName(aq);var ap=this.findContentPiece(aq);var ar=this.findContentTarget(aq);ao=this.trim(ao);ap=this.trim(ap);ar=this.trim(ar);return{name:ao||"Unknown",piece:ap||"Unknown",target:ar||""}},collectContent:function(ar){if(!ar||!ar.length){return[]}var aq=[];var ao,ap;for(ao=0;ao<ar.length;ao++){ap=this.buildContentBlock(ar[ao]);if(J(ap)){aq.push(ap)}}return aq},setLocation:function(ao){this.location=ao
},getLocation:function(){var ao=this.location||T.location;if(!ao.origin){ao.origin=ao.protocol+"//"+ao.hostname+(ao.port?":"+ao.port:"")}return ao},toAbsoluteUrl:function(ap){if((!ap||String(ap)!==ap)&&ap!==""){return ap}if(""===ap){return this.getLocation().href}if(ap.search(/^\/\//)!==-1){return this.getLocation().protocol+ap}if(ap.search(/:\/\//)!==-1){return ap}if(0===ap.indexOf("#")){return this.getLocation().origin+this.getLocation().pathname+ap}if(0===ap.indexOf("?")){return this.getLocation().origin+this.getLocation().pathname+ap}if(0===ap.search("^[a-zA-Z]{2,11}:")){return ap}if(ap.search(/^\//)!==-1){return this.getLocation().origin+ap}var ao="(.*/)";var aq=this.getLocation().origin+this.getLocation().pathname.match(new RegExp(ao))[0];return aq+ap},isUrlToCurrentDomain:function(ap){var aq=this.toAbsoluteUrl(ap);if(!aq){return false}var ao=this.getLocation().origin;if(ao===aq){return true}if(0===String(aq).indexOf(ao)){if(":"===String(aq).substr(ao.length,1)){return false}return true
}return false},setHrefAttribute:function(ap,ao){if(!ap||!ao){return}ae.setAnyAttribute(ap,"href",ao)},shouldIgnoreInteraction:function(aq){var ap=ae.hasNodeAttribute(aq,this.CONTENT_IGNOREINTERACTION_ATTR);var ao=ae.hasNodeCssClass(aq,this.CONTENT_IGNOREINTERACTION_CLASS);return ap||ao}};function O(ap,at){if(at){return at}ap=v.toAbsoluteUrl(ap);if(z(ap,"?")){var ar=ap.indexOf("?");ap=ap.slice(0,ar)}if(R(ap,"matomo.php")){ap=g(ap,"matomo.php".length)}else{if(R(ap,"piwik.php")){ap=g(ap,"piwik.php".length)}else{if(R(ap,".php")){var ao=ap.lastIndexOf("/");var aq=1;ap=ap.slice(0,ao+aq)}}}if(R(ap,"/js/")){ap=g(ap,"js/".length)}return ap}function N(av){var ax="Piwik_Overlay";var ap=new RegExp("index\\.php\\?module=Overlay&action=startOverlaySession&idSite=([0-9]+)&period=([^&]+)&date=([^&]+)(&segment=.*)?$");var aq=ap.exec(G.referrer);if(aq){var at=aq[1];if(at!==String(av)){return false}var au=aq[2],ao=aq[3],ar=aq[4];if(!ar){ar=""}else{if(ar.indexOf("&segment=")===0){ar=ar.substr("&segment=".length)
-}}T.name=ax+"###"+au+"###"+ao+"###"+ar}var aw=T.name.split("###");return aw.length===4&&aw[0]===ax}function Z(ap,aw,ar){var av=T.name.split("###"),au=av[1],ao=av[2],at=av[3],aq=O(ap,aw);o(aq+"plugins/Overlay/client/client.js?v=1",function(){Piwik_Overlay_Client.initialize(aq,ar,au,ao,at)})}function u(){var aq;try{aq=T.frameElement}catch(ap){return true}if(J(aq)){return(aq&&String(aq.nodeName).toLowerCase()==="iframe")?true:false}try{return T.self!==T.top}catch(ao){return true}}function Q(ce,b9){var bI=this,bd="mtm_consent",cL="mtm_consent_removed",b4=aa(G.domain,T.location.href,K()),cT=L(b4[0]),bN=p(b4[1]),bn=p(b4[2]),cR=false,ci="GET",c9=ci,aI="application/x-www-form-urlencoded; charset=UTF-8",cw=aI,aE=ce||"",bH="",cY="",b6=b9||"",by="",bO="",a4,bj="",c5=["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","rtf","sea","sit","tar","tbz","tbz2","bz","bz2","tgz","torrent","txt","wav","wma","wmv","wpd","xls","xlsx","xml","z","zip"],ax=[cT],bz=[],bL=[],a8=[],bJ=500,cV=true,cI,a5,bR,c6=1800,bP,ao,cq=["pk_campaign","mtm_campaign","piwik_campaign","matomo_campaign","utm_campaign","utm_source","utm_medium"],bG=["pk_kwd","mtm_kwd","piwik_kwd","matomo_kwd","utm_term"],bk="_pk_",av="pk_vid",aZ=180,cW,bp,bS=false,bl=false,cP,be,bv,cJ=33955200000,co=1800000,c4=15768000000,a2=true,bE=false,bh=false,bQ=false,aQ=false,cb,bW={},cm={},bm={},bt=200,cZ={},c7={},ca=[],cf=false,cB=false,ap=false,c8=false,cM=false,aN=false,bc=u(),cx=null,cX=null,cc,aR,bA,b7=am,bo,aL,cr=0,bu=["id","ses","cvar","ref"],cA=false,bB=null,cK=[],aw=U++;
-try{bj=G.title}catch(cy){bj=""}function dd(dp,dm,dl,dn,dk,dj){if(bl){return}var di;if(dl){di=new Date();di.setTime(di.getTime()+dl)}G.cookie=dp+"="+t(dm)+(dl?";expires="+di.toGMTString():"")+";path="+(dn||"/")+(dk?";domain="+dk:"")+(dj?";secure":"")+";SameSite=Lax"}function aD(dk){if(bl){return 0}var di=new RegExp("(^|;)[ ]*"+dk+"=([^;]*)"),dj=di.exec(G.cookie);return dj?S(dj[2]):0}bB=!aD(cL);function b2(di){var dj;di=k(di,av);if(bP){dj=new RegExp("#.*");return di.replace(dj,"")}return di}function bV(dk,di){var dl=s(di),dj;if(dl){return di}if(di.slice(0,1)==="/"){return s(dk)+"://"+d(dk)+di}dk=b2(dk);dj=dk.indexOf("?");if(dj>=0){dk=dk.slice(0,dj)}dj=dk.lastIndexOf("/");if(dj!==dk.length-1){dk=dk.slice(0,dj+1)}return dk+di}function cG(dk,di){var dj;dk=String(dk).toLowerCase();di=String(di).toLowerCase();if(dk===di){return true}if(di.slice(0,1)==="."){if(dk===di.slice(1)){return true}dj=dk.length-di.length;if((dj>0)&&(dk.slice(dj)===di)){return true}}return false}function cl(di){var dj=document.createElement("a");
-if(di.indexOf("//")!==0&&di.indexOf("http")!==0){if(di.indexOf("*")===0){di=di.substr(1)}if(di.indexOf(".")===0){di=di.substr(1)}di="http://"+di}dj.href=v.toAbsoluteUrl(di);if(dj.pathname){return dj.pathname}return""}function a3(dj,di){if(!aj(di,"/")){di="/"+di}if(!aj(dj,"/")){dj="/"+dj}var dk=(di==="/"||di==="/*");if(dk){return true}if(dj===di){return true}di=String(di).toLowerCase();dj=String(dj).toLowerCase();if(R(di,"*")){di=di.slice(0,-1);dk=(!di||di==="/");if(dk){return true}if(dj===di){return true}return dj.indexOf(di)===0}if(!R(dj,"/")){dj+="/"}if(!R(di,"/")){di+="/"}return dj.indexOf(di)===0}function ar(dm,dp){var dj,di,dk,dl,dn;for(dj=0;dj<ax.length;dj++){dl=L(ax[dj]);dn=cl(ax[dj]);if(cG(dm,dl)&&a3(dp,dn)){return true}}return false}function aV(dl){var dj,di,dk;for(dj=0;dj<ax.length;dj++){di=L(ax[dj].toLowerCase());if(dl===di){return true}if(di.slice(0,1)==="."){if(dl===di.slice(1)){return true}dk=dl.length-di.length;if((dk>0)&&(dl.slice(dk)===di)){return true}}}return false}function cp(di,dk){di=di.replace("send_image=0","send_image=1");
-var dj=new Image(1,1);dj.onload=function(){E=0;if(typeof dk==="function"){dk({request:di,trackerUrl:aE,success:true})}};dj.onerror=function(){if(typeof dk==="function"){dk({request:di,trackerUrl:aE,success:false})}};dj.src=aE+(aE.indexOf("?")<0?"?":"&")+di}function cD(di){if(c9==="POST"){return true}return di&&(di.length>2000||di.indexOf('{"requests"')===0)}function aK(){return"object"===typeof h&&"function"===typeof h.sendBeacon&&"function"===typeof Blob}function a6(dm,dq,dp){var dk=aK();if(!dk){return false}var dl={type:"application/x-www-form-urlencoded; charset=UTF-8"};var dr=false;var dj=aE;try{var di=new Blob([dm],dl);if(dp&&!cD(dm)){di=new Blob([],dl);dj=dj+(dj.indexOf("?")<0?"?":"&")+dm}dr=h.sendBeacon(dj,di)}catch(dn){return false}if(dr&&typeof dq==="function"){dq({request:dm,trackerUrl:aE,success:true,isSendBeacon:true})}return dr}function c3(dj,dk,di){if(!J(di)||null===di){di=true}if(m&&a6(dj,dk,di)){return}setTimeout(function(){if(m&&a6(dj,dk,di)){return}var dn;try{var dm=T.XMLHttpRequest?new T.XMLHttpRequest():T.ActiveXObject?new ActiveXObject("Microsoft.XMLHTTP"):null;
-dm.open("POST",aE,true);dm.onreadystatechange=function(){if(this.readyState===4&&!(this.status>=200&&this.status<300)){var dp=m&&a6(dj,dk,di);if(!dp&&di){cp(dj,dk)}else{if(typeof dk==="function"){dk({request:dj,trackerUrl:aE,success:false,xhr:this})}}}else{if(this.readyState===4&&(typeof dk==="function")){dk({request:dj,trackerUrl:aE,success:true,xhr:this})}}};dm.setRequestHeader("Content-Type",cw);dm.withCredentials=true;dm.send(dj)}catch(dl){dn=m&&a6(dj,dk,di);if(!dn&&di){cp(dj,dk)}else{if(typeof dk==="function"){dk({request:dj,trackerUrl:aE,success:false})}}}},50)}function cg(dj){var di=new Date();var dk=di.getTime()+dj;if(!r||dk>r){r=dk}}function cn(di){if(cc||!a5||!bB){return}cc=setTimeout(function dj(){cc=null;if(!bc){bc=(!G.hasFocus||G.hasFocus())}if(!bc){cn(a5);return}if(bR()){return}var dk=new Date(),dl=a5-(dk.getTime()-cX);dl=Math.min(a5,dl);cn(dl)},di||a5)}function bK(){if(!cc){return}clearTimeout(cc);cc=null}function ba(){bc=true;cx=new Date().getTime()}function dc(){var di=new Date().getTime();
-return !cx||(di-cx)>a5}function ay(){if(dc()){bR()}bK()}function df(){if(aN||!a5){return}aN=true;an(T,"focus",ba);an(T,"blur",ay);ab++;e.addPlugin("HeartBeat"+ab,{unload:function(){if(aN&&dc()){bR()}}})}function cC(dm){var dj=new Date();var di=dj.getTime();cX=di;if(cB&&di<cB){var dk=cB-di;setTimeout(dm,dk);cg(dk+50);cB+=50;return}if(cB===false){var dl=800;cB=di+dl}dm()}function aO(){if(aD(cL)){bB=false}else{if(aD(bd)){bB=true}}}function bF(dj,di,dk){aO();if(!bB){cK.push(dj);return}if(!cP&&dj){if(cA&&bB){dj+="&consent=1"}cC(function(){if(cV&&a6(dj,dk,true)){cg(100);return}if(cD(dj)){c3(dj,dk)}else{cp(dj,dk)}cg(di)})}if(!aN){df()}}function ck(di){if(cP){return false}return(di&&di.length)}function c2(di,dm){if(!dm||dm>=di.length){return[di]}var dj=0;var dk=di.length;var dl=[];for(dj;dj<dk;dj+=dm){dl.push(di.slice(dj,dj+dm))}return dl}function de(dj,di){if(!ck(dj)){return}if(!bB){cK.push(dj);return}cC(function(){var dm=c2(dj,50);var dk=0,dl;for(dk;dk<dm.length;dk++){dl='{"requests":["?'+dm[dk].join('","?')+'"]}';
-if(cV&&a6(dl,null,false)){cg(100)}else{c3(dl,null,false)}}cg(di)})}function aT(di){return bk+di+"."+b6+"."+bo}function bY(dk,dj,di){dd(dk,"",-86400,dj,di)}function b5(){if(bl){return"0"}if(!J(T.showModalDialog)&&J(h.cookieEnabled)){return h.cookieEnabled?"1":"0"}var di=bk+"testcookie";dd(di,"1",undefined,bp,cW,bS);var dj=aD(di)==="1"?"1":"0";bY(di);return dj}function bi(){bo=b7((cW||cT)+(bp||"/")).slice(0,4)}function cH(){if(J(c7.res)){return c7}var dj,dl,dm={pdf:"application/pdf",qt:"video/quicktime",realp:"audio/x-pn-realaudio-plugin",wma:"application/x-mplayer2",fla:"application/x-shockwave-flash",java:"application/x-java-vm",ag:"application/x-silverlight"};if(!((new RegExp("MSIE")).test(h.userAgent))){if(h.mimeTypes&&h.mimeTypes.length){for(dj in dm){if(Object.prototype.hasOwnProperty.call(dm,dj)){dl=h.mimeTypes[dm[dj]];c7[dj]=(dl&&dl.enabledPlugin)?"1":"0"}}}if(!((new RegExp("Edge[ /](\\d+[\\.\\d]+)")).test(h.userAgent))&&typeof navigator.javaEnabled!=="unknown"&&J(h.javaEnabled)&&h.javaEnabled()){c7.java="1"
-}c7.cookie=b5()}var dk=parseInt(X.width,10);var di=parseInt(X.height,10);c7.res=parseInt(dk,10)+"x"+parseInt(di,10);return c7}function bX(){var dj=aT("cvar"),di=aD(dj);if(di&&di.length){di=T.JSON.parse(di);if(W(di)){return di}}return{}}function cE(){if(aQ===false){aQ=bX()}}function cQ(){var di=cH();return b7((h.userAgent||"")+(h.platform||"")+T.JSON.stringify(di)+(new Date()).getTime()+Math.random()).slice(0,16)}function aA(){var di=cH();return b7((h.userAgent||"")+(h.platform||"")+T.JSON.stringify(di)).slice(0,6)}function bf(){return Math.floor((new Date()).getTime()/1000)}function aJ(){var dj=bf();var dk=aA();var di=String(dj)+dk;return di}function c1(dk){dk=String(dk);var dn=aA();var dl=dn.length;var dm=dk.substr(-1*dl,dl);var dj=parseInt(dk.substr(0,dk.length-dl),10);if(dj&&dm&&dm===dn){var di=bf();if(aZ<=0){return true}if(di>=dj&&di<=(dj+aZ)){return true}}return false}function dg(di){if(!cM){return""}var dm=f(di,av);if(!dm){return""}dm=String(dm);var dk=new RegExp("^[a-zA-Z0-9]+$");
-if(dm.length===32&&dk.test(dm)){var dj=dm.substr(16,32);if(c1(dj)){var dl=dm.substr(0,16);return dl}}return""}function cN(){if(!bO){bO=dg(bN)}var dk=new Date(),di=Math.round(dk.getTime()/1000),dj=aT("id"),dn=aD(dj),dm,dl;if(dn){dm=dn.split(".");dm.unshift("0");if(bO.length){dm[1]=bO}return dm}if(bO.length){dl=bO}else{if("0"===b5()){dl=""}else{dl=cQ()}}dm=["1",dl,di,0,di,"",""];return dm}function aY(){var dq=cN(),dl=dq[0],dm=dq[1],dj=dq[2],di=dq[3],dn=dq[4],dk=dq[5];if(!J(dq[6])){dq[6]=""}var dp=dq[6];return{newVisitor:dl,uuid:dm,createTs:dj,visitCount:di,currentVisitTs:dn,lastVisitTs:dk,lastEcommerceOrderTs:dp}}function aH(){var dl=new Date(),dj=dl.getTime(),dm=aY().createTs;var di=parseInt(dm,10);var dk=(di*1000)+cJ-dj;return dk}function aM(di){if(!b6){return}var dk=new Date(),dj=Math.round(dk.getTime()/1000);if(!J(di)){di=aY()}var dl=di.uuid+"."+di.createTs+"."+di.visitCount+"."+dj+"."+di.lastVisitTs+"."+di.lastEcommerceOrderTs;dd(aT("id"),dl,aH(),bp,cW,bS)}function bM(){var di=aD(aT("ref"));
-if(di.length){try{di=T.JSON.parse(di);if(W(di)){return di}}catch(dj){}}return["","",0,""]}function bw(dj){var di="testvalue";dd("test",di,10000,null,dj);if(aD("test")===di){bY("test",null,dj);return true}return false}function aF(){var dj=bl;bl=false;var di,dk;for(di=0;di<bu.length;di++){dk=aT(bu[di]);if(dk!==cL&&dk!==bd&&0!==aD(dk)){bY(dk,bp,cW)}}bl=dj}function b3(di){b6=di;aM()}function dh(dm){if(!dm||!W(dm)){return}var dl=[];var dk;for(dk in dm){if(Object.prototype.hasOwnProperty.call(dm,dk)){dl.push(dk)}}var dn={};dl.sort();var di=dl.length;var dj;for(dj=0;dj<di;dj++){dn[dl[dj]]=dm[dl[dj]]}return dn}function cd(){dd(aT("ses"),"1",co,bp,cW,bS)}function bg(){var dl="";var dj="abcdefghijklmnopqrstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ";var dk=dj.length;var di;for(di=0;di<6;di++){dl+=dj.charAt(Math.floor(Math.random()*dk))}return dl}function az(di){if(i&&i.timing&&i&&i.timing.connectEnd&&i.timing.fetchStart){di+="&pf_net="+(i.timing.connectEnd-i.timing.fetchStart)}if(i&&i.timing&&i&&i.timing.responseStart&&i.timing.requestStart){di+="&pf_srv="+(i.timing.responseStart-i.timing.requestStart)
-}if(i&&i.timing&&i&&i.timing.responseStart&&i.timing.responseEnd){di+="&pf_tfr="+(i.timing.responseEnd-i.timing.responseStart)}if(i&&i.timing&&i&&i.timing.domInteractive&&i.timing.domLoading){di+="&pf_dm1="+(i.timing.domInteractive-i.timing.domLoading)}if(i&&i.timing&&i&&i.timing.domComplete&&i.timing.domInteractive){di+="&pf_dm2="+(i.timing.domComplete-i.timing.domInteractive)}if(i&&i.timing&&i&&i.timing.loadEventEnd&&i.timing.loadEventStart){di+="&pf_onl="+(i.timing.loadEventEnd-i.timing.loadEventStart)}return di}function cs(dk,dG,dH,dl){var dF,dj=new Date(),dt=Math.round(dj.getTime()/1000),dq,dE,dm=1024,dN,du,dC=aQ,dn=aT("ses"),dA=aT("ref"),dx=aT("cvar"),dy=aD(dn),dD=bM(),dJ=a4||bN,dr,di;if(bl){aF()}if(cP){return""}var dz=aY();if(!J(dl)){dl=""}var dw=G.characterSet||G.charset;if(!dw||dw.toLowerCase()==="utf-8"){dw=null}dr=dD[0];di=dD[1];dq=dD[2];dE=dD[3];if(!dy){var dI=co/1000;if(!dz.lastVisitTs||(dt-dz.lastVisitTs)>dI){dz.visitCount++;dz.lastVisitTs=dz.currentVisitTs}if(!bv||!dr.length){for(dF in cq){if(Object.prototype.hasOwnProperty.call(cq,dF)){dr=f(dJ,cq[dF]);
-if(dr.length){break}}}for(dF in bG){if(Object.prototype.hasOwnProperty.call(bG,dF)){di=f(dJ,bG[dF]);if(di.length){break}}}}dN=d(bn);du=dE.length?d(dE):"";if(dN.length&&!aV(dN)&&(!bv||!du.length||aV(du))){dE=bn}if(dE.length||dr.length){dq=dt;dD=[dr,di,dq,b2(dE.slice(0,dm))];dd(dA,T.JSON.stringify(dD),c4,bp,cW,bS)}}dk+="&idsite="+b6+"&rec=1&r="+String(Math.random()).slice(2,8)+"&h="+dj.getHours()+"&m="+dj.getMinutes()+"&s="+dj.getSeconds()+"&url="+t(b2(dJ))+(bn.length?"&urlref="+t(b2(bn)):"")+((by&&by.length)?"&uid="+t(by):"")+"&_id="+dz.uuid+"&_idts="+dz.createTs+"&_idvc="+dz.visitCount+"&_idn="+dz.newVisitor+(dr.length?"&_rcn="+t(dr):"")+(di.length?"&_rck="+t(di):"")+"&_refts="+dq+"&_viewts="+dz.lastVisitTs+(String(dz.lastEcommerceOrderTs).length?"&_ects="+dz.lastEcommerceOrderTs:"")+(String(dE).length?"&_ref="+t(b2(dE.slice(0,dm))):"")+(dw?"&cs="+t(dw):"")+"&send_image=0";var dM=cH();for(dF in dM){if(Object.prototype.hasOwnProperty.call(dM,dF)){dk+="&"+dF+"="+dM[dF]}}var dL=[];if(dG){for(dF in dG){if(Object.prototype.hasOwnProperty.call(dG,dF)&&/^dimension\d+$/.test(dF)){var dp=dF.replace("dimension","");
-dL.push(parseInt(dp,10));dL.push(String(dp));dk+="&"+dF+"="+t(dG[dF]);delete dG[dF]}}}if(dG&&B(dG)){dG=null}for(dF in bm){if(Object.prototype.hasOwnProperty.call(bm,dF)){var dv=(-1===M(dL,dF));if(dv){dk+="&dimension"+dF+"="+t(bm[dF])}}}if(dG){dk+="&data="+t(T.JSON.stringify(dG))}else{if(ao){dk+="&data="+t(T.JSON.stringify(ao))}}function ds(dO,dP){var dQ=T.JSON.stringify(dO);if(dQ.length>2){return"&"+dP+"="+t(dQ)}return""}var dK=dh(bW);var dB=dh(cm);dk+=ds(dK,"cvar");dk+=ds(dB,"e_cvar");if(aQ){dk+=ds(aQ,"_cvar");for(dF in dC){if(Object.prototype.hasOwnProperty.call(dC,dF)){if(aQ[dF][0]===""||aQ[dF][1]===""){delete aQ[dF]}}}if(bQ){dd(dx,T.JSON.stringify(aQ),co,bp,cW,bS)}}if(a2&&bE&&!bh){dk=az(dk);bh=true}if(aL){dk+="&pv_id="+aL}dz.lastEcommerceOrderTs=J(dl)&&String(dl).length?dl:dz.lastEcommerceOrderTs;aM(dz);cd();dk+=ac(dH,{tracker:bI,request:dk});if(cY.length){dk+="&"+cY}if(A(cb)){dk=cb(dk)}return dk}bR=function a7(){var di=new Date();di=di.getTime();if(!cX){return false}if((cX+(1000*c6))<=di){return false
-}if(cX+a5<=di){bI.ping();return true}return false};function bq(dl,dk,dr,dm,di,du){var dp="idgoal=0",dq,dj=new Date(),ds=[],dt,dn=String(dl).length;if(dn){dp+="&ec_id="+t(dl);dq=Math.round(dj.getTime()/1000)}dp+="&revenue="+dk;if(String(dr).length){dp+="&ec_st="+dr}if(String(dm).length){dp+="&ec_tx="+dm}if(String(di).length){dp+="&ec_sh="+di}if(String(du).length){dp+="&ec_dt="+du}if(cZ){for(dt in cZ){if(Object.prototype.hasOwnProperty.call(cZ,dt)){if(!J(cZ[dt][1])){cZ[dt][1]=""}if(!J(cZ[dt][2])){cZ[dt][2]=""}if(!J(cZ[dt][3])||String(cZ[dt][3]).length===0){cZ[dt][3]=0}if(!J(cZ[dt][4])||String(cZ[dt][4]).length===0){cZ[dt][4]=1}ds.push(cZ[dt])}}dp+="&ec_items="+t(T.JSON.stringify(ds))}dp=cs(dp,ao,"ecommerce",dq);bF(dp,bJ);if(dn){cZ={}}}function bZ(di,dm,dl,dk,dj,dn){if(String(di).length&&J(dm)){bq(di,dm,dl,dk,dj,dn)}}function bs(di){if(J(di)){bq("",di,"","","","")}}function b0(dj,dl,dk){aL=bg();var di=cs("action_name="+t(al(dj||bj)),dl,"log");if(!bh){di=az(di)}bF(di,bJ,dk)}function a0(dk,dj){var dl,di="(^| )(piwik[_-]"+dj;
-if(dk){for(dl=0;dl<dk.length;dl++){di+="|"+dk[dl]}}di+=")( |$)";return new RegExp(di)}function aU(di){return(aE&&di&&0===String(di).indexOf(aE))}function cu(dm,di,dn,dj){if(aU(di)){return 0}var dl=a0(bL,"download"),dk=a0(a8,"link"),dp=new RegExp("\\.("+c5.join("|")+")([?&#]|$)","i");if(dk.test(dm)){return"link"}if(dj||dl.test(dm)||dp.test(di)){return"download"}if(dn){return 0}return"link"}function au(dj){var di;di=dj.parentNode;while(di!==null&&J(di)){if(ae.isLinkElement(dj)){break}dj=di;di=dj.parentNode}return dj}function db(dn){dn=au(dn);if(!ae.hasNodeAttribute(dn,"href")){return}if(!J(dn.href)){return}var dm=ae.getAttributeValueFromNode(dn,"href");var dj=dn.pathname||cl(dn.href);var dp=dn.hostname||d(dn.href);var dq=dp.toLowerCase();var dk=dn.href.replace(dp,dq);var dl=new RegExp("^(javascript|vbscript|jscript|mocha|livescript|ecmascript|mailto|tel):","i");if(!dl.test(dk)){var di=cu(dn.className,dk,ar(dq,dj),ae.hasNodeAttribute(dn,"download"));if(di){return{type:di,href:dk}}}}function aP(di,dj,dk,dl){var dm=v.buildInteractionRequestParams(di,dj,dk,dl);
-if(!dm){return}return cs(dm,null,"contentInteraction")}function bb(di,dj){if(!di||!dj){return false}var dk=v.findTargetNode(di);if(v.shouldIgnoreInteraction(dk)){return false}dk=v.findTargetNodeNoDefault(di);if(dk&&!V(dk,dj)){return false}return true}function ct(dk,dj,dm){if(!dk){return}var di=v.findParentContentNode(dk);if(!di){return}if(!bb(di,dk)){return}var dl=v.buildContentBlock(di);if(!dl){return}if(!dl.target&&dm){dl.target=dm}return v.buildInteractionRequestParams(dj,dl.name,dl.piece,dl.target)}function aW(dj){if(!ca||!ca.length){return false}var di,dk;for(di=0;di<ca.length;di++){dk=ca[di];if(dk&&dk.name===dj.name&&dk.piece===dj.piece&&dk.target===dj.target){return true}}return false}function aX(di){return function(dm){if(!di){return}var dk=v.findParentContentNode(di);var dj;if(dm){dj=dm.target||dm.srcElement}if(!dj){dj=di}if(!bb(dk,dj)){return}if(!dk){return false}var dn=v.findTargetNode(dk);if(!dn||v.shouldIgnoreInteraction(dn)){return false}var dl=db(dn);if(c8&&dl&&dl.type){return dl.type
-}return bI.trackContentInteractionNode(dj,"click")}}function b1(dk){if(!dk||!dk.length){return}var di,dj;for(di=0;di<dk.length;di++){dj=v.findTargetNode(dk[di]);if(dj&&!dj.contentInteractionTrackingSetupDone){dj.contentInteractionTrackingSetupDone=true;an(dj,"click",aX(dj))}}}function bx(dk,dl){if(!dk||!dk.length){return[]}var di,dj;for(di=0;di<dk.length;di++){if(aW(dk[di])){dk.splice(di,1);di--}else{ca.push(dk[di])}}if(!dk||!dk.length){return[]}b1(dl);var dm=[];for(di=0;di<dk.length;di++){dj=cs(v.buildImpressionRequestParams(dk[di].name,dk[di].piece,dk[di].target),undefined,"contentImpressions");if(dj){dm.push(dj)}}return dm}function cz(dj){var di=v.collectContent(dj);return bx(di,dj)}function a9(dj){if(!dj||!dj.length){return[]}var di;for(di=0;di<dj.length;di++){if(!v.isNodeVisible(dj[di])){dj.splice(di,1);di--}}if(!dj||!dj.length){return[]}return cz(dj)}function aG(dk,di,dj){var dl=v.buildImpressionRequestParams(dk,di,dj);return cs(dl,null,"contentImpression")}function da(dl,dj){if(!dl){return
-}var di=v.findParentContentNode(dl);var dk=v.buildContentBlock(di);if(!dk){return}if(!dj){dj="Unknown"}return aP(dj,dk.name,dk.piece,dk.target)}function cO(dj,dl,di,dk){return"e_c="+t(dj)+"&e_a="+t(dl)+(J(di)?"&e_n="+t(di):"")+(J(dk)?"&e_v="+t(dk):"")}function at(dk,dm,di,dl,dp,dn){if(!Y(dk)||!Y(dm)){ak("Error while logging event: Parameters `category` and `action` must not be empty or filled with whitespaces");return false}var dj=cs(cO(dk,dm,di,dl),dp,"event");bF(dj,bJ,dn)}function b8(di,dl,dj,dm){var dk=cs("search="+t(di)+(dl?"&search_cat="+t(dl):"")+(J(dj)?"&search_count="+dj:""),dm,"sitesearch");bF(dk,bJ)}function cS(di,dm,dl,dk){var dj=cs("idgoal="+di+(dm?"&revenue="+dm:""),dl,"goal");bF(dj,bJ,dk)}function c0(dl,di,dq,dp,dk){var dn=di+"="+t(b2(dl));var dj=ct(dk,"click",dl);if(dj){dn+="&"+dj}var dm=cs(dn,dq,"link");bF(dm,bJ,dp)}function bU(dj,di){if(dj!==""){return dj+di.charAt(0).toUpperCase()+di.slice(1)}return di}function ch(dn){var dm,di,dl=["","webkit","ms","moz"],dk;if(!be){for(di=0;
-di<dl.length;di++){dk=dl[di];if(Object.prototype.hasOwnProperty.call(G,bU(dk,"hidden"))){if(G[bU(dk,"visibilityState")]==="prerender"){dm=true}break}}}if(dm){an(G,dk+"visibilitychange",function dj(){G.removeEventListener(dk+"visibilitychange",dj,false);dn()});return}dn()}function br(){var dj=bI.getVisitorId();var di=aJ();return dj+di}function cj(di){if(!di){return}if(!ae.hasNodeAttribute(di,"href")){return}var dj=ae.getAttributeValueFromNode(di,"href");if(!dj||aU(dj)){return}if(!bI.getVisitorId()){return}dj=k(dj,av);var dk=br();dj=F(dj,av,dk);ae.setAnyAttribute(di,"href",dj)}function aB(dl){var dm=ae.getAttributeValueFromNode(dl,"href");if(!dm){return false}dm=String(dm);var dj=dm.indexOf("//")===0||dm.indexOf("http://")===0||dm.indexOf("https://")===0;if(!dj){return false}var di=dl.pathname||cl(dl.href);var dk=(dl.hostname||d(dl.href)).toLowerCase();if(ar(dk,di)){if(!cG(cT,L(dk))){return true}return false}return false}function cF(di){var dj=db(di);if(dj&&dj.type){dj.href=p(dj.href);c0(dj.href,dj.type,undefined,null,di);
-return}if(cM){di=au(di);if(aB(di)){cj(di)}}}function cv(){return G.all&&!G.addEventListener}function cU(di){var dk=di.which;var dj=(typeof di.button);if(!dk&&dj!=="undefined"){if(cv()){if(di.button&1){dk=1}else{if(di.button&2){dk=3}else{if(di.button&4){dk=2}}}}else{if(di.button===0||di.button==="0"){dk=1}else{if(di.button&1){dk=2}else{if(di.button&2){dk=3}}}}}return dk}function bT(di){switch(cU(di)){case 1:return"left";case 2:return"middle";case 3:return"right"}}function a1(di){return di.target||di.srcElement}function aC(di){return function(dl){dl=dl||T.event;var dk=bT(dl);var dm=a1(dl);if(dl.type==="click"){var dj=false;if(di&&dk==="middle"){dj=true}if(dm&&!dj){cF(dm)}}else{if(dl.type==="mousedown"){if(dk==="middle"&&dm){aR=dk;bA=dm}else{aR=bA=null}}else{if(dl.type==="mouseup"){if(dk===aR&&dm===bA){cF(dm)}aR=bA=null}else{if(dl.type==="contextmenu"){cF(dm)}}}}}}function aq(dk,dj){var di=typeof dj;if(di==="undefined"){dj=true}an(dk,"click",aC(dj),false);if(dj){an(dk,"mouseup",aC(dj),false);
-an(dk,"mousedown",aC(dj),false);an(dk,"contextmenu",aC(dj),false)}}function bD(dk,dm){ap=true;var dl,dj=a0(bz,"ignore"),dn=G.links,di=null,dp=null;if(dn){for(dl=0;dl<dn.length;dl++){di=dn[dl];if(!dj.test(di.className)){dp=typeof di.piwikTrackers;if("undefined"===dp){di.piwikTrackers=[]}if(-1===M(di.piwikTrackers,dm)){di.piwikTrackers.push(dm);aq(di,dk)}}}}}function aS(dj,dm,dn){if(cf){return true}cf=true;var dp=false;var dl,dk;function di(){dp=true}n(function(){function dq(ds){setTimeout(function(){if(!cf){return}dp=false;dn.trackVisibleContentImpressions();dq(ds)},ds)}function dr(ds){setTimeout(function(){if(!cf){return}if(dp){dp=false;dn.trackVisibleContentImpressions()}dr(ds)},ds)}if(dj){dl=["scroll","resize"];for(dk=0;dk<dl.length;dk++){if(G.addEventListener){G.addEventListener(dl[dk],di,false)}else{T.attachEvent("on"+dl[dk],di)}}dr(100)}if(dm&&dm>0){dm=parseInt(dm,10);dq(dm)}})}var bC={enabled:true,requests:[],timeout:null,interval:2500,sendRequests:function(){var di=this.requests;
-this.requests=[];if(di.length===1){bF(di[0],bJ)}else{de(di,bJ)}},canQueue:function(){return !m&&this.enabled},pushMultiple:function(dj){if(!this.canQueue()){de(dj,bJ);return}var di;for(di=0;di<dj.length;di++){this.push(dj[di])}},push:function(di){if(!di){return}if(!this.canQueue()){bF(di,bJ);return}bC.requests.push(di);if(this.timeout){clearTimeout(this.timeout);this.timeout=null}this.timeout=setTimeout(function(){bC.timeout=null;bC.sendRequests()},bC.interval);var dj="RequestQueue"+aw;if(!Object.prototype.hasOwnProperty.call(b,dj)){b[dj]={unload:function(){if(bC.timeout){clearTimeout(bC.timeout)}bC.sendRequests()}}}}};bi();aM();this.hasConsent=function(){return bB};this.getVisitorId=function(){return aY().uuid};this.getVisitorInfo=function(){return cN()};this.getAttributionInfo=function(){return bM()};this.getAttributionCampaignName=function(){return bM()[0]};this.getAttributionCampaignKeyword=function(){return bM()[1]};this.getAttributionReferrerTimestamp=function(){return bM()[2]};this.getAttributionReferrerUrl=function(){return bM()[3]
-};this.setTrackerUrl=function(di){aE=di};this.getTrackerUrl=function(){return aE};this.getPiwikUrl=function(){return O(this.getTrackerUrl(),bH)};this.addTracker=function(di,dk){if(!J(di)||null===di){di=this.getTrackerUrl()}var dj=new Q(di,dk);I.push(dj);e.trigger("TrackerAdded",[this]);return dj};this.getSiteId=function(){return b6};this.setSiteId=function(di){b3(di)};this.resetUserId=function(){by=""};this.setUserId=function(di){if(Y(di)){by=di}};this.getUserId=function(){return by};this.setCustomData=function(di,dj){if(W(di)){ao=di}else{if(!ao){ao={}}ao[di]=dj}};this.getCustomData=function(){return ao};this.setCustomRequestProcessing=function(di){cb=di};this.appendToTrackingUrl=function(di){cY=di};this.getRequest=function(di){return cs(di)};this.addPlugin=function(di,dj){b[di]=dj};this.setCustomDimension=function(di,dj){di=parseInt(di,10);if(di>0){if(!J(dj)){dj=""}if(!w(dj)){dj=String(dj)}bm[di]=dj}};this.getCustomDimension=function(di){di=parseInt(di,10);if(di>0&&Object.prototype.hasOwnProperty.call(bm,di)){return bm[di]
-}};this.deleteCustomDimension=function(di){di=parseInt(di,10);if(di>0){delete bm[di]}};this.setCustomVariable=function(dj,di,dm,dk){var dl;if(!J(dk)){dk="visit"}if(!J(di)){return}if(!J(dm)){dm=""}if(dj>0){di=!w(di)?String(di):di;dm=!w(dm)?String(dm):dm;dl=[di.slice(0,bt),dm.slice(0,bt)];if(dk==="visit"||dk===2){cE();aQ[dj]=dl}else{if(dk==="page"||dk===3){bW[dj]=dl}else{if(dk==="event"){cm[dj]=dl}}}}};this.getCustomVariable=function(dj,dk){var di;if(!J(dk)){dk="visit"}if(dk==="page"||dk===3){di=bW[dj]}else{if(dk==="event"){di=cm[dj]}else{if(dk==="visit"||dk===2){cE();di=aQ[dj]}}}if(!J(di)||(di&&di[0]==="")){return false}return di};this.deleteCustomVariable=function(di,dj){if(this.getCustomVariable(di,dj)){this.setCustomVariable(di,"","",dj)}};this.deleteCustomVariables=function(di){if(di==="page"||di===3){bW={}}else{if(di==="event"){cm={}}else{if(di==="visit"||di===2){aQ={}}}}};this.storeCustomVariablesInCookie=function(){bQ=true};this.setLinkTrackingTimer=function(di){bJ=di};this.getLinkTrackingTimer=function(){return bJ
-};this.setDownloadExtensions=function(di){if(w(di)){di=di.split("|")}c5=di};this.addDownloadExtensions=function(dj){var di;if(w(dj)){dj=dj.split("|")}for(di=0;di<dj.length;di++){c5.push(dj[di])}};this.removeDownloadExtensions=function(dk){var dj,di=[];if(w(dk)){dk=dk.split("|")}for(dj=0;dj<c5.length;dj++){if(M(dk,c5[dj])===-1){di.push(c5[dj])}}c5=di};this.setDomains=function(di){ax=w(di)?[di]:di;var dm=false,dk=0,dj;for(dk;dk<ax.length;dk++){dj=String(ax[dk]);if(cG(cT,L(dj))){dm=true;break}var dl=cl(dj);if(dl&&dl!=="/"&&dl!=="/*"){dm=true;break}}if(!dm){ax.push(cT)}};this.enableCrossDomainLinking=function(){cM=true};this.disableCrossDomainLinking=function(){cM=false};this.isCrossDomainLinkingEnabled=function(){return cM};this.setCrossDomainLinkingTimeout=function(di){aZ=di};this.getCrossDomainLinkingUrlParameter=function(){return t(av)+"="+t(br())};this.setIgnoreClasses=function(di){bz=w(di)?[di]:di};this.setRequestMethod=function(di){c9=di||ci};this.setRequestContentType=function(di){cw=di||aI
-};this.setReferrerUrl=function(di){bn=di};this.setCustomUrl=function(di){a4=bV(bN,di)};this.getCurrentUrl=function(){return a4||bN};this.setDocumentTitle=function(di){bj=di};this.setAPIUrl=function(di){bH=di};this.setDownloadClasses=function(di){bL=w(di)?[di]:di};this.setLinkClasses=function(di){a8=w(di)?[di]:di};this.setCampaignNameKey=function(di){cq=w(di)?[di]:di};this.setCampaignKeywordKey=function(di){bG=w(di)?[di]:di};this.discardHashTag=function(di){bP=di};this.setCookieNamePrefix=function(di){bk=di;if(aQ){aQ=bX()}};this.setCookieDomain=function(di){var dj=L(di);if(bw(dj)){cW=dj;bi()}};this.getCookieDomain=function(){return cW};this.hasCookies=function(){return"1"===b5()};this.setSessionCookie=function(dk,dj,di){if(!dk){throw new Error("Missing cookie name")}if(!J(di)){di=co}bu.push(dk);dd(aT(dk),dj,di,bp,cW)};this.getCookie=function(dj){var di=aD(aT(dj));if(di===0){return null}return di};this.setCookiePath=function(di){bp=di;bi()};this.getCookiePath=function(di){return bp};this.setVisitorCookieTimeout=function(di){cJ=di*1000
-};this.setSessionCookieTimeout=function(di){co=di*1000};this.getSessionCookieTimeout=function(){return co};this.setReferralCookieTimeout=function(di){c4=di*1000};this.setConversionAttributionFirstReferrer=function(di){bv=di};this.setSecureCookie=function(di){bS=di};this.disableCookies=function(){bl=true;c7.cookie="0";if(b6){aF()}};this.deleteCookies=function(){aF()};this.setDoNotTrack=function(dj){var di=h.doNotTrack||h.msDoNotTrack;cP=dj&&(di==="yes"||di==="1");if(cP){this.disableCookies()}};this.alwaysUseSendBeacon=function(){cV=true};this.disableAlwaysUseSendBeacon=function(){cV=false};this.addListener=function(dj,di){aq(dj,di)};this.enableLinkTracking=function(dj){c8=true;var di=this;ch(function(){q(function(){bD(dj,di)});n(function(){bD(dj,di)})})};this.enableJSErrorTracking=function(){if(cR){return}cR=true;var di=T.onerror;T.onerror=function(dn,dl,dk,dm,dj){ch(function(){var dp="JavaScript Errors";var dq=dl+":"+dk;if(dm){dq+=":"+dm}at(dp,dq,dn)});if(di){return di(dn,dl,dk,dm,dj)}return false
-}};this.disablePerformanceTracking=function(){a2=false};this.setVisitStandardLength=function(di){di=Math.max(di,5);c6=di};this.enableHeartBeatTimer=function(di){di=Math.max(di,5);a5=(di||15)*1000;if(cX!==null){df()}};this.disableHeartBeatTimer=function(){bK();if(a5||aN){if(T.removeEventListener){T.removeEventListener("focus",ba);T.removeEventListener("blur",ay)}else{if(T.detachEvent){T.detachEvent("onfocus",ba);T.detachEvent("onblur",ay)}}}a5=null;aN=false};this.killFrame=function(){if(T.location!==T.top.location){T.top.location=T.location}};this.redirectFile=function(di){if(T.location.protocol==="file:"){T.location=di}};this.setCountPreRendered=function(di){be=di};this.trackGoal=function(di,dl,dk,dj){ch(function(){cS(di,dl,dk,dj)})};this.trackLink=function(dj,di,dl,dk){ch(function(){c0(dj,di,dl,dk)})};this.getNumTrackedPageViews=function(){return cr};this.trackPageView=function(di,dk,dj){ca=[];cK=[];if(N(b6)){ch(function(){Z(aE,bH,b6)})}else{ch(function(){cr++;b0(di,dk,dj)})}};this.trackAllContentImpressions=function(){if(N(b6)){return
-}ch(function(){q(function(){var di=v.findContentNodes();var dj=cz(di);bC.pushMultiple(dj)})})};this.trackVisibleContentImpressions=function(di,dj){if(N(b6)){return}if(!J(di)){di=true}if(!J(dj)){dj=750}aS(di,dj,this);ch(function(){n(function(){var dk=v.findContentNodes();var dl=a9(dk);bC.pushMultiple(dl)})})};this.trackContentImpression=function(dk,di,dj){if(N(b6)){return}dk=a(dk);di=a(di);dj=a(dj);if(!dk){return}di=di||"Unknown";ch(function(){var dl=aG(dk,di,dj);bC.push(dl)})};this.trackContentImpressionsWithinNode=function(di){if(N(b6)||!di){return}ch(function(){if(cf){n(function(){var dj=v.findContentNodesWithinNode(di);var dk=a9(dj);bC.pushMultiple(dk)})}else{q(function(){var dj=v.findContentNodesWithinNode(di);var dk=cz(dj);bC.pushMultiple(dk)})}})};this.trackContentInteraction=function(dk,dl,di,dj){if(N(b6)){return}dk=a(dk);dl=a(dl);di=a(di);dj=a(dj);if(!dk||!dl){return}di=di||"Unknown";ch(function(){var dm=aP(dk,dl,di,dj);if(dm){bC.push(dm)}})};this.trackContentInteractionNode=function(dk,dj){if(N(b6)||!dk){return
-}var di=null;ch(function(){di=da(dk,dj);if(di){bC.push(di)}});return di};this.logAllContentBlocksOnPage=function(){var dk=v.findContentNodes();var di=v.collectContent(dk);var dj=typeof console;if(dj!=="undefined"&&console&&console.log){console.log(di)}};this.trackEvent=function(dj,dl,di,dk,dn,dm){ch(function(){at(dj,dl,di,dk,dn,dm)})};this.trackSiteSearch=function(di,dk,dj,dl){ca=[];ch(function(){b8(di,dk,dj,dl)})};this.setEcommerceView=function(dl,di,dk,dj){if(Y(dk)){dk=String(dk)}if(!J(dk)||dk===null||dk===false||!dk.length){dk=""}else{if(dk instanceof Array){dk=T.JSON.stringify(dk)}}bW[5]=["_pkc",dk];if(J(dj)&&dj!==null&&dj!==false&&String(dj).length){bW[2]=["_pkp",dj]}if(!Y(dl)&&!Y(di)){return}if(Y(dl)){bW[3]=["_pks",dl]}if(!Y(di)){di=""}bW[4]=["_pkn",di]};this.getEcommerceItems=function(){return JSON.parse(JSON.stringify(cZ))};this.addEcommerceItem=function(dm,di,dk,dj,dl){if(Y(dm)){cZ[dm]=[String(dm),di,dk,dj,dl]}};this.removeEcommerceItem=function(di){if(Y(di)){di=String(di);delete cZ[di]
-}};this.clearEcommerceCart=function(){cZ={}};this.trackEcommerceOrder=function(di,dm,dl,dk,dj,dn){bZ(di,dm,dl,dk,dj,dn)};this.trackEcommerceCartUpdate=function(di){bs(di)};this.trackRequest=function(dj,dl,dk,di){ch(function(){var dm=cs(dj,dl,di);bF(dm,bJ,dk)})};this.ping=function(){this.trackRequest("ping=1",null,null,"ping")};this.disableQueueRequest=function(){bC.enabled=false};this.setRequestQueueInterval=function(di){if(di<1000){throw new Error("Request queue interval needs to be at least 1000ms")}bC.interval=di};this.queueRequest=function(di){ch(function(){var dj=cs(di);bC.push(dj)})};this.isConsentRequired=function(){return cA};this.getRememberedConsent=function(){var di=aD(bd);if(aD(cL)){if(di){bY(bd,bp,cW)}return null}if(!di||di===0){return null}return di};this.hasRememberedConsent=function(){return !!this.getRememberedConsent()};this.requireConsent=function(){cA=true;bB=this.hasRememberedConsent();x++;b["CoreConsent"+x]={unload:function(){if(!bB){aF()}}}};this.setConsentGiven=function(){bB=true;
-bY(cL,bp,cW);var dj,di;for(dj=0;dj<cK.length;dj++){di=typeof cK[dj];if(di==="string"){bF(cK[dj],bJ)}else{if(di==="object"){de(cK[dj],bJ)}}}cK=[]};this.rememberConsentGiven=function(dj){if(dj){dj=dj*60*60*1000}else{dj=30*365*24*60*60*1000}this.setConsentGiven();var di=new Date().getTime();dd(bd,di,dj,bp,cW,bS)};this.forgetConsentGiven=function(){var di=30*365*24*60*60*1000;bY(bd,bp,cW);dd(cL,new Date().getTime(),di,bp,cW,bS);this.requireConsent()};this.isUserOptedOut=function(){return !bB};this.optUserOut=this.forgetConsentGiven;this.forgetUserOptOut=this.rememberConsentGiven;n(function(){setTimeout(function(){bE=true},0)});e.trigger("TrackerSetup",[this])}function H(){return{push:af}}function c(au,at){var av={};var aq,ar;for(aq=0;aq<at.length;aq++){var ao=at[aq];av[ao]=1;for(ar=0;ar<au.length;ar++){if(au[ar]&&au[ar][0]){var ap=au[ar][0];if(ao===ap){af(au[ar]);delete au[ar];if(av[ap]>1&&ap!=="addTracker"){ak("The method "+ap+' is registered more than once in "_paq" variable. Only the last call has an effect. Please have a look at the multiple Piwik trackers documentation: https://developer.piwik.org/guides/tracking-javascript-guide#multiple-piwik-trackers')
-}av[ap]++}}}}return au}var C=["addTracker","disableCookies","setTrackerUrl","setAPIUrl","enableCrossDomainLinking","setCrossDomainLinkingTimeout","setSessionCookieTimeout","setVisitorCookieTimeout","setCookieNamePrefix","setSecureCookie","setCookiePath","setCookieDomain","setDomains","setUserId","setSiteId","alwaysUseSendBeacon","enableLinkTracking","requireConsent","setConsentGiven"];function ad(ao,aq){var ap=new Q(ao,aq);I.push(ap);_paq=c(_paq,C);for(E=0;E<_paq.length;E++){if(_paq[E]){af(_paq[E])}}_paq=new H();e.trigger("TrackerAdded",[ap]);return ap}an(T,"beforeunload",ai,false);an(T,"message",function(au){if(!au||!au.origin){return}var aw,ar,ap;var ax=d(au.origin);var at=e.getAsyncTrackers();for(ar=0;ar<at.length;ar++){ap=d(at[ar].getPiwikUrl());if(ap===ax){aw=at[ar];break}}if(!aw){return}var aq=null;try{aq=JSON.parse(au.data)}catch(av){return}if(!aq){return}function ao(aA){var aC=G.getElementsByTagName("iframe");for(ar=0;ar<aC.length;ar++){var aB=aC[ar];var ay=d(aB.src);if(aB.contentWindow&&J(aB.contentWindow.postMessage)&&ay===ax){var az=JSON.stringify(aA);
-aB.contentWindow.postMessage(az,"*")}}}if(J(aq.maq_initial_value)){ao({maq_opted_in:aq.maq_initial_value&&aw.hasConsent(),maq_url:aw.getPiwikUrl(),maq_optout_by_default:aw.isConsentRequired()})}else{if(J(aq.maq_opted_in)){at=e.getAsyncTrackers();for(ar=0;ar<at.length;ar++){aw=at[ar];if(aq.maq_opted_in){aw.rememberConsentGiven()}else{aw.forgetConsentGiven()}}ao({maq_confirm_opted_in:aw.hasConsent(),maq_url:aw.getPiwikUrl(),maq_optout_by_default:aw.isConsentRequired()})}}},false);Date.prototype.getTimeAlias=Date.prototype.getTime;e={initialized:false,JSON:T.JSON,DOM:{addEventListener:function(ar,aq,ap,ao){var at=typeof ao;if(at==="undefined"){ao=false}an(ar,aq,ap,ao)},onLoad:n,onReady:q,isNodeVisible:j,isOrWasNodeVisible:v.isNodeVisible},on:function(ap,ao){if(!y[ap]){y[ap]=[]}y[ap].push(ao)},off:function(aq,ap){if(!y[aq]){return}var ao=0;for(ao;ao<y[aq].length;ao++){if(y[aq][ao]===ap){y[aq].splice(ao,1)}}},trigger:function(aq,ar,ap){if(!y[aq]){return}var ao=0;for(ao;ao<y[aq].length;ao++){y[aq][ao].apply(ap||T,ar)
-}},addPlugin:function(ao,ap){b[ao]=ap},getTracker:function(ao,ap){if(!J(ap)){ap=this.getAsyncTracker().getSiteId()}if(!J(ao)){ao=this.getAsyncTracker().getTrackerUrl()}return new Q(ao,ap)},getAsyncTrackers:function(){return I},addTracker:function(ao,aq){var ap;if(!I.length){ap=ad(ao,aq)}else{ap=I[0].addTracker(ao,aq)}return ap},getAsyncTracker:function(ap,at){var ar;if(I&&I.length&&I[0]){ar=I[0]}else{return ad(ap,at)}if(!at&&!ap){return ar}if((!J(at)||null===at)&&ar){at=ar.getSiteId()}if((!J(ap)||null===ap)&&ar){ap=ar.getTrackerUrl()}var aq,ao=0;for(ao;ao<I.length;ao++){aq=I[ao];if(aq&&String(aq.getSiteId())===String(at)&&aq.getTrackerUrl()===ap){return aq}}},retryMissedPluginCalls:function(){var ap=ah;ah=[];var ao=0;for(ao;ao<ap.length;ao++){af(ap[ao])}}};if(typeof define==="function"&&define.amd){define("piwik",[],function(){return e});define("matomo",[],function(){return e})}return e}())}
+}}T.name=ax+"###"+au+"###"+ao+"###"+ar}var aw=T.name.split("###");return aw.length===4&&aw[0]===ax}function Z(ap,aw,ar){var av=T.name.split("###"),au=av[1],ao=av[2],at=av[3],aq=O(ap,aw);o(aq+"plugins/Overlay/client/client.js?v=1",function(){Piwik_Overlay_Client.initialize(aq,ar,au,ao,at)})}function u(){var aq;try{aq=T.frameElement}catch(ap){return true}if(J(aq)){return(aq&&String(aq.nodeName).toLowerCase()==="iframe")?true:false}try{return T.self!==T.top}catch(ao){return true}}function Q(ce,b9){var bI=this,bd="mtm_consent",cM="mtm_consent_removed",b4=aa(G.domain,T.location.href,K()),cU=L(b4[0]),bN=p(b4[1]),bn=p(b4[2]),cS=false,ci="GET",da=ci,aI="application/x-www-form-urlencoded; charset=UTF-8",cx=aI,aE=ce||"",bH="",cZ="",b6=b9||"",by="",bO="",a4,bj="",c6=["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","rtf","sea","sit","tar","tbz","tbz2","bz","bz2","tgz","torrent","txt","wav","wma","wmv","wpd","xls","xlsx","xml","z","zip"],ax=[cU],bz=[],bL=[],a8=[],bJ=500,cW=true,cJ,a5,bR,c7=1800,bP,ao,cq=["pk_campaign","mtm_campaign","piwik_campaign","matomo_campaign","utm_campaign","utm_source","utm_medium"],bG=["pk_kwd","mtm_kwd","piwik_kwd","matomo_kwd","utm_term"],bk="_pk_",av="pk_vid",aZ=180,cX,bp,bS=false,bl=false,cQ,be,bv,cK=33955200000,co=1800000,c5=15768000000,a2=true,bE=false,bh=false,bQ=false,aQ=false,cb,bW={},cm={},bm={},bt=200,ct={},c0={},c8={},ca=[],cf=false,cC=false,ap=false,c9=false,cN=false,aN=false,bc=u(),cy=null,cY=null,cc,aR,bA,b7=am,bo,aL,cr=0,bu=["id","ses","cvar","ref"],cB=false,bB=null,cL=[],aw=U++;
+try{bj=G.title}catch(cz){bj=""}function de(dq,dn,dm,dp,dl,dk){if(bl){return}var dj;if(dm){dj=new Date();dj.setTime(dj.getTime()+dm)}G.cookie=dq+"="+t(dn)+(dm?";expires="+dj.toGMTString():"")+";path="+(dp||"/")+(dl?";domain="+dl:"")+(dk?";secure":"")+";SameSite=Lax"}function aD(dl){if(bl){return 0}var dj=new RegExp("(^|;)[ ]*"+dl+"=([^;]*)"),dk=dj.exec(G.cookie);return dk?S(dk[2]):0}bB=!aD(cM);function b2(dj){var dk;dj=k(dj,av);if(bP){dk=new RegExp("#.*");return dj.replace(dk,"")}return dj}function bV(dl,dj){var dm=s(dj),dk;if(dm){return dj}if(dj.slice(0,1)==="/"){return s(dl)+"://"+d(dl)+dj}dl=b2(dl);dk=dl.indexOf("?");if(dk>=0){dl=dl.slice(0,dk)}dk=dl.lastIndexOf("/");if(dk!==dl.length-1){dl=dl.slice(0,dk+1)}return dl+dj}function cH(dl,dj){var dk;dl=String(dl).toLowerCase();dj=String(dj).toLowerCase();if(dl===dj){return true}if(dj.slice(0,1)==="."){if(dl===dj.slice(1)){return true}dk=dl.length-dj.length;if((dk>0)&&(dl.slice(dk)===dj)){return true}}return false}function cl(dj){var dk=document.createElement("a");
+if(dj.indexOf("//")!==0&&dj.indexOf("http")!==0){if(dj.indexOf("*")===0){dj=dj.substr(1)}if(dj.indexOf(".")===0){dj=dj.substr(1)}dj="http://"+dj}dk.href=v.toAbsoluteUrl(dj);if(dk.pathname){return dk.pathname}return""}function a3(dk,dj){if(!aj(dj,"/")){dj="/"+dj}if(!aj(dk,"/")){dk="/"+dk}var dl=(dj==="/"||dj==="/*");if(dl){return true}if(dk===dj){return true}dj=String(dj).toLowerCase();dk=String(dk).toLowerCase();if(R(dj,"*")){dj=dj.slice(0,-1);dl=(!dj||dj==="/");if(dl){return true}if(dk===dj){return true}return dk.indexOf(dj)===0}if(!R(dk,"/")){dk+="/"}if(!R(dj,"/")){dj+="/"}return dk.indexOf(dj)===0}function ar(dn,dq){var dk,dj,dl,dm,dp;for(dk=0;dk<ax.length;dk++){dm=L(ax[dk]);dp=cl(ax[dk]);if(cH(dn,dm)&&a3(dq,dp)){return true}}return false}function aV(dm){var dk,dj,dl;for(dk=0;dk<ax.length;dk++){dj=L(ax[dk].toLowerCase());if(dm===dj){return true}if(dj.slice(0,1)==="."){if(dm===dj.slice(1)){return true}dl=dm.length-dj.length;if((dl>0)&&(dm.slice(dl)===dj)){return true}}}return false}function cp(dj,dl){dj=dj.replace("send_image=0","send_image=1");
+var dk=new Image(1,1);dk.onload=function(){E=0;if(typeof dl==="function"){dl({request:dj,trackerUrl:aE,success:true})}};dk.onerror=function(){if(typeof dl==="function"){dl({request:dj,trackerUrl:aE,success:false})}};dk.src=aE+(aE.indexOf("?")<0?"?":"&")+dj}function cE(dj){if(da==="POST"){return true}return dj&&(dj.length>2000||dj.indexOf('{"requests"')===0)}function aK(){return"object"===typeof h&&"function"===typeof h.sendBeacon&&"function"===typeof Blob}function a6(dn,dr,dq){var dl=aK();if(!dl){return false}var dm={type:"application/x-www-form-urlencoded; charset=UTF-8"};var ds=false;var dk=aE;try{var dj=new Blob([dn],dm);if(dq&&!cE(dn)){dj=new Blob([],dm);dk=dk+(dk.indexOf("?")<0?"?":"&")+dn}ds=h.sendBeacon(dk,dj)}catch(dp){return false}if(ds&&typeof dr==="function"){dr({request:dn,trackerUrl:aE,success:true,isSendBeacon:true})}return ds}function c4(dk,dl,dj){if(!J(dj)||null===dj){dj=true}if(m&&a6(dk,dl,dj)){return}setTimeout(function(){if(m&&a6(dk,dl,dj)){return}var dp;try{var dn=T.XMLHttpRequest?new T.XMLHttpRequest():T.ActiveXObject?new ActiveXObject("Microsoft.XMLHTTP"):null;
+dn.open("POST",aE,true);dn.onreadystatechange=function(){if(this.readyState===4&&!(this.status>=200&&this.status<300)){var dq=m&&a6(dk,dl,dj);if(!dq&&dj){cp(dk,dl)}else{if(typeof dl==="function"){dl({request:dk,trackerUrl:aE,success:false,xhr:this})}}}else{if(this.readyState===4&&(typeof dl==="function")){dl({request:dk,trackerUrl:aE,success:true,xhr:this})}}};dn.setRequestHeader("Content-Type",cx);dn.withCredentials=true;dn.send(dk)}catch(dm){dp=m&&a6(dk,dl,dj);if(!dp&&dj){cp(dk,dl)}else{if(typeof dl==="function"){dl({request:dk,trackerUrl:aE,success:false})}}}},50)}function cg(dk){var dj=new Date();var dl=dj.getTime()+dk;if(!r||dl>r){r=dl}}function cn(dj){if(cc||!a5||!bB){return}cc=setTimeout(function dk(){cc=null;if(!bc){bc=(!G.hasFocus||G.hasFocus())}if(!bc){cn(a5);return}if(bR()){return}var dl=new Date(),dm=a5-(dl.getTime()-cY);dm=Math.min(a5,dm);cn(dm)},dj||a5)}function bK(){if(!cc){return}clearTimeout(cc);cc=null}function ba(){bc=true;cy=new Date().getTime()}function dd(){var dj=new Date().getTime();
+return !cy||(dj-cy)>a5}function ay(){if(dd()){bR()}bK()}function dg(){if(aN||!a5){return}aN=true;an(T,"focus",ba);an(T,"blur",ay);ab++;e.addPlugin("HeartBeat"+ab,{unload:function(){if(aN&&dd()){bR()}}})}function cD(dn){var dk=new Date();var dj=dk.getTime();cY=dj;if(cC&&dj<cC){var dl=cC-dj;setTimeout(dn,dl);cg(dl+50);cC+=50;return}if(cC===false){var dm=800;cC=dj+dm}dn()}function aO(){if(aD(cM)){bB=false}else{if(aD(bd)){bB=true}}}function bF(dk,dj,dl){aO();if(!bB){cL.push(dk);return}if(!cQ&&dk){if(cB&&bB){dk+="&consent=1"}cD(function(){if(cW&&a6(dk,dl,true)){cg(100);return}if(cE(dk)){c4(dk,dl)}else{cp(dk,dl)}cg(dj)})}if(!aN){dg()}}function ck(dj){if(cQ){return false}return(dj&&dj.length)}function c3(dj,dn){if(!dn||dn>=dj.length){return[dj]}var dk=0;var dl=dj.length;var dm=[];for(dk;dk<dl;dk+=dn){dm.push(dj.slice(dk,dk+dn))}return dm}function df(dk,dj){if(!ck(dk)){return}if(!bB){cL.push(dk);return}cD(function(){var dn=c3(dk,50);var dl=0,dm;for(dl;dl<dn.length;dl++){dm='{"requests":["?'+dn[dl].join('","?')+'"]}';
+if(cW&&a6(dm,null,false)){cg(100)}else{c4(dm,null,false)}}cg(dj)})}function aT(dj){return bk+dj+"."+b6+"."+bo}function bY(dl,dk,dj){de(dl,"",-86400,dk,dj)}function b5(){if(bl){return"0"}if(!J(T.showModalDialog)&&J(h.cookieEnabled)){return h.cookieEnabled?"1":"0"}var dj=bk+"testcookie";de(dj,"1",undefined,bp,cX,bS);var dk=aD(dj)==="1"?"1":"0";bY(dj);return dk}function bi(){bo=b7((cX||cU)+(bp||"/")).slice(0,4)}function cI(){if(J(c8.res)){return c8}var dk,dm,dn={pdf:"application/pdf",qt:"video/quicktime",realp:"audio/x-pn-realaudio-plugin",wma:"application/x-mplayer2",fla:"application/x-shockwave-flash",java:"application/x-java-vm",ag:"application/x-silverlight"};if(!((new RegExp("MSIE")).test(h.userAgent))){if(h.mimeTypes&&h.mimeTypes.length){for(dk in dn){if(Object.prototype.hasOwnProperty.call(dn,dk)){dm=h.mimeTypes[dn[dk]];c8[dk]=(dm&&dm.enabledPlugin)?"1":"0"}}}if(!((new RegExp("Edge[ /](\\d+[\\.\\d]+)")).test(h.userAgent))&&typeof navigator.javaEnabled!=="unknown"&&J(h.javaEnabled)&&h.javaEnabled()){c8.java="1"
+}c8.cookie=b5()}var dl=parseInt(X.width,10);var dj=parseInt(X.height,10);c8.res=parseInt(dl,10)+"x"+parseInt(dj,10);return c8}function bX(){var dk=aT("cvar"),dj=aD(dk);if(dj&&dj.length){dj=T.JSON.parse(dj);if(W(dj)){return dj}}return{}}function cF(){if(aQ===false){aQ=bX()}}function cR(){var dj=cI();return b7((h.userAgent||"")+(h.platform||"")+T.JSON.stringify(dj)+(new Date()).getTime()+Math.random()).slice(0,16)}function aA(){var dj=cI();return b7((h.userAgent||"")+(h.platform||"")+T.JSON.stringify(dj)).slice(0,6)}function bf(){return Math.floor((new Date()).getTime()/1000)}function aJ(){var dk=bf();var dl=aA();var dj=String(dk)+dl;return dj}function c2(dl){dl=String(dl);var dp=aA();var dm=dp.length;var dn=dl.substr(-1*dm,dm);var dk=parseInt(dl.substr(0,dl.length-dm),10);if(dk&&dn&&dn===dp){var dj=bf();if(aZ<=0){return true}if(dj>=dk&&dj<=(dk+aZ)){return true}}return false}function dh(dj){if(!cN){return""}var dn=f(dj,av);if(!dn){return""}dn=String(dn);var dl=new RegExp("^[a-zA-Z0-9]+$");
+if(dn.length===32&&dl.test(dn)){var dk=dn.substr(16,32);if(c2(dk)){var dm=dn.substr(0,16);return dm}}return""}function cO(){if(!bO){bO=dh(bN)}var dl=new Date(),dj=Math.round(dl.getTime()/1000),dk=aT("id"),dp=aD(dk),dn,dm;if(dp){dn=dp.split(".");dn.unshift("0");if(bO.length){dn[1]=bO}return dn}if(bO.length){dm=bO}else{if("0"===b5()){dm=""}else{dm=cR()}}dn=["1",dm,dj,0,dj,"",""];return dn}function aY(){var dr=cO(),dm=dr[0],dn=dr[1],dk=dr[2],dj=dr[3],dp=dr[4],dl=dr[5];if(!J(dr[6])){dr[6]=""}var dq=dr[6];return{newVisitor:dm,uuid:dn,createTs:dk,visitCount:dj,currentVisitTs:dp,lastVisitTs:dl,lastEcommerceOrderTs:dq}}function aH(){var dm=new Date(),dk=dm.getTime(),dn=aY().createTs;var dj=parseInt(dn,10);var dl=(dj*1000)+cK-dk;return dl}function aM(dj){if(!b6){return}var dl=new Date(),dk=Math.round(dl.getTime()/1000);if(!J(dj)){dj=aY()}var dm=dj.uuid+"."+dj.createTs+"."+dj.visitCount+"."+dk+"."+dj.lastVisitTs+"."+dj.lastEcommerceOrderTs;de(aT("id"),dm,aH(),bp,cX,bS)}function bM(){var dj=aD(aT("ref"));
+if(dj.length){try{dj=T.JSON.parse(dj);if(W(dj)){return dj}}catch(dk){}}return["","",0,""]}function bw(dk){var dj="testvalue";de("test",dj,10000,null,dk);if(aD("test")===dj){bY("test",null,dk);return true}return false}function aF(){var dk=bl;bl=false;var dj,dl;for(dj=0;dj<bu.length;dj++){dl=aT(bu[dj]);if(dl!==cM&&dl!==bd&&0!==aD(dl)){bY(dl,bp,cX)}}bl=dk}function b3(dj){b6=dj;aM()}function di(dn){if(!dn||!W(dn)){return}var dm=[];var dl;for(dl in dn){if(Object.prototype.hasOwnProperty.call(dn,dl)){dm.push(dl)}}var dp={};dm.sort();var dj=dm.length;var dk;for(dk=0;dk<dj;dk++){dp[dm[dk]]=dn[dm[dk]]}return dp}function cd(){de(aT("ses"),"1",co,bp,cX,bS)}function bg(){var dm="";var dk="abcdefghijklmnopqrstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ";var dl=dk.length;var dj;for(dj=0;dj<6;dj++){dm+=dk.charAt(Math.floor(Math.random()*dl))}return dm}function az(dj){if(i&&i.timing&&i&&i.timing.connectEnd&&i.timing.fetchStart){dj+="&pf_net="+(i.timing.connectEnd-i.timing.fetchStart)}if(i&&i.timing&&i&&i.timing.responseStart&&i.timing.requestStart){dj+="&pf_srv="+(i.timing.responseStart-i.timing.requestStart)
+}if(i&&i.timing&&i&&i.timing.responseStart&&i.timing.responseEnd){dj+="&pf_tfr="+(i.timing.responseEnd-i.timing.responseStart)}if(i&&i.timing&&i&&i.timing.domInteractive&&i.timing.domLoading){dj+="&pf_dm1="+(i.timing.domInteractive-i.timing.domLoading)}if(i&&i.timing&&i&&i.timing.domComplete&&i.timing.domInteractive){dj+="&pf_dm2="+(i.timing.domComplete-i.timing.domInteractive)}if(i&&i.timing&&i&&i.timing.loadEventEnd&&i.timing.loadEventStart){dj+="&pf_onl="+(i.timing.loadEventEnd-i.timing.loadEventStart)}return dj}function cs(dl,dH,dI,dm){var dG,dk=new Date(),du=Math.round(dk.getTime()/1000),dr,dF,dn=1024,dO,dv,dD=aQ,dp=aT("ses"),dB=aT("ref"),dy=aT("cvar"),dz=aD(dp),dE=bM(),dK=a4||bN,ds,dj;if(bl){aF()}if(cQ){return""}var dA=aY();if(!J(dm)){dm=""}var dx=G.characterSet||G.charset;if(!dx||dx.toLowerCase()==="utf-8"){dx=null}ds=dE[0];dj=dE[1];dr=dE[2];dF=dE[3];if(!dz){var dJ=co/1000;if(!dA.lastVisitTs||(du-dA.lastVisitTs)>dJ){dA.visitCount++;dA.lastVisitTs=dA.currentVisitTs}if(!bv||!ds.length){for(dG in cq){if(Object.prototype.hasOwnProperty.call(cq,dG)){ds=f(dK,cq[dG]);
+if(ds.length){break}}}for(dG in bG){if(Object.prototype.hasOwnProperty.call(bG,dG)){dj=f(dK,bG[dG]);if(dj.length){break}}}}dO=d(bn);dv=dF.length?d(dF):"";if(dO.length&&!aV(dO)&&(!bv||!dv.length||aV(dv))){dF=bn}if(dF.length||ds.length){dr=du;dE=[ds,dj,dr,b2(dF.slice(0,dn))];de(dB,T.JSON.stringify(dE),c5,bp,cX,bS)}}dl+="&idsite="+b6+"&rec=1&r="+String(Math.random()).slice(2,8)+"&h="+dk.getHours()+"&m="+dk.getMinutes()+"&s="+dk.getSeconds()+"&url="+t(b2(dK))+(bn.length?"&urlref="+t(b2(bn)):"")+((by&&by.length)?"&uid="+t(by):"")+"&_id="+dA.uuid+"&_idts="+dA.createTs+"&_idvc="+dA.visitCount+"&_idn="+dA.newVisitor+(ds.length?"&_rcn="+t(ds):"")+(dj.length?"&_rck="+t(dj):"")+"&_refts="+dr+"&_viewts="+dA.lastVisitTs+(String(dA.lastEcommerceOrderTs).length?"&_ects="+dA.lastEcommerceOrderTs:"")+(String(dF).length?"&_ref="+t(b2(dF.slice(0,dn))):"")+(dx?"&cs="+t(dx):"")+"&send_image=0";var dN=cI();for(dG in dN){if(Object.prototype.hasOwnProperty.call(dN,dG)){dl+="&"+dG+"="+dN[dG]}}var dM=[];if(dH){for(dG in dH){if(Object.prototype.hasOwnProperty.call(dH,dG)&&/^dimension\d+$/.test(dG)){var dq=dG.replace("dimension","");
+dM.push(parseInt(dq,10));dM.push(String(dq));dl+="&"+dG+"="+t(dH[dG]);delete dH[dG]}}}if(dH&&B(dH)){dH=null}for(dG in ct){if(Object.prototype.hasOwnProperty.call(ct,dG)){dl+="&"+dG+"="+t(ct[dG])}}for(dG in bm){if(Object.prototype.hasOwnProperty.call(bm,dG)){var dw=(-1===M(dM,dG));if(dw){dl+="&dimension"+dG+"="+t(bm[dG])}}}if(dH){dl+="&data="+t(T.JSON.stringify(dH))}else{if(ao){dl+="&data="+t(T.JSON.stringify(ao))}}function dt(dP,dQ){var dR=T.JSON.stringify(dP);if(dR.length>2){return"&"+dQ+"="+t(dR)}return""}var dL=di(bW);var dC=di(cm);dl+=dt(dL,"cvar");dl+=dt(dC,"e_cvar");if(aQ){dl+=dt(aQ,"_cvar");for(dG in dD){if(Object.prototype.hasOwnProperty.call(dD,dG)){if(aQ[dG][0]===""||aQ[dG][1]===""){delete aQ[dG]}}}if(bQ){de(dy,T.JSON.stringify(aQ),co,bp,cX,bS)}}if(a2&&bE&&!bh){dl=az(dl);bh=true}if(aL){dl+="&pv_id="+aL}dA.lastEcommerceOrderTs=J(dm)&&String(dm).length?dm:dA.lastEcommerceOrderTs;aM(dA);cd();dl+=ac(dI,{tracker:bI,request:dl});if(cZ.length){dl+="&"+cZ}if(A(cb)){dl=cb(dl)}return dl
+}bR=function a7(){var dj=new Date();dj=dj.getTime();if(!cY){return false}if((cY+(1000*c7))<=dj){return false}if(cY+a5<=dj){bI.ping();return true}return false};function bq(dm,dl,ds,dn,dj,dv){var dq="idgoal=0",dr,dk=new Date(),dt=[],du,dp=String(dm).length;if(dp){dq+="&ec_id="+t(dm);dr=Math.round(dk.getTime()/1000)}dq+="&revenue="+dl;if(String(ds).length){dq+="&ec_st="+ds}if(String(dn).length){dq+="&ec_tx="+dn}if(String(dj).length){dq+="&ec_sh="+dj}if(String(dv).length){dq+="&ec_dt="+dv}if(c0){for(du in c0){if(Object.prototype.hasOwnProperty.call(c0,du)){if(!J(c0[du][1])){c0[du][1]=""}if(!J(c0[du][2])){c0[du][2]=""}if(!J(c0[du][3])||String(c0[du][3]).length===0){c0[du][3]=0}if(!J(c0[du][4])||String(c0[du][4]).length===0){c0[du][4]=1}dt.push(c0[du])}}dq+="&ec_items="+t(T.JSON.stringify(dt))}dq=cs(dq,ao,"ecommerce",dr);bF(dq,bJ);if(dp){c0={}}}function bZ(dj,dn,dm,dl,dk,dp){if(String(dj).length&&J(dn)){bq(dj,dn,dm,dl,dk,dp)}}function bs(dj){if(J(dj)){bq("",dj,"","","","")}}function b0(dk,dm,dl){aL=bg();
+var dj=cs("action_name="+t(al(dk||bj)),dm,"log");if(!bh){dj=az(dj)}bF(dj,bJ,dl)}function a0(dl,dk){var dm,dj="(^| )(piwik[_-]"+dk;if(dl){for(dm=0;dm<dl.length;dm++){dj+="|"+dl[dm]}}dj+=")( |$)";return new RegExp(dj)}function aU(dj){return(aE&&dj&&0===String(dj).indexOf(aE))}function cv(dn,dj,dp,dk){if(aU(dj)){return 0}var dm=a0(bL,"download"),dl=a0(a8,"link"),dq=new RegExp("\\.("+c6.join("|")+")([?&#]|$)","i");if(dl.test(dn)){return"link"}if(dk||dm.test(dn)||dq.test(dj)){return"download"}if(dp){return 0}return"link"}function au(dk){var dj;dj=dk.parentNode;while(dj!==null&&J(dj)){if(ae.isLinkElement(dk)){break}dk=dj;dj=dk.parentNode}return dk}function dc(dp){dp=au(dp);if(!ae.hasNodeAttribute(dp,"href")){return}if(!J(dp.href)){return}var dn=ae.getAttributeValueFromNode(dp,"href");var dk=dp.pathname||cl(dp.href);var dq=dp.hostname||d(dp.href);var dr=dq.toLowerCase();var dl=dp.href.replace(dq,dr);var dm=new RegExp("^(javascript|vbscript|jscript|mocha|livescript|ecmascript|mailto|tel):","i");
+if(!dm.test(dl)){var dj=cv(dp.className,dl,ar(dr,dk),ae.hasNodeAttribute(dp,"download"));if(dj){return{type:dj,href:dl}}}}function aP(dj,dk,dl,dm){var dn=v.buildInteractionRequestParams(dj,dk,dl,dm);if(!dn){return}return cs(dn,null,"contentInteraction")}function bb(dj,dk){if(!dj||!dk){return false}var dl=v.findTargetNode(dj);if(v.shouldIgnoreInteraction(dl)){return false}dl=v.findTargetNodeNoDefault(dj);if(dl&&!V(dl,dk)){return false}return true}function cu(dl,dk,dn){if(!dl){return}var dj=v.findParentContentNode(dl);if(!dj){return}if(!bb(dj,dl)){return}var dm=v.buildContentBlock(dj);if(!dm){return}if(!dm.target&&dn){dm.target=dn}return v.buildInteractionRequestParams(dk,dm.name,dm.piece,dm.target)}function aW(dk){if(!ca||!ca.length){return false}var dj,dl;for(dj=0;dj<ca.length;dj++){dl=ca[dj];if(dl&&dl.name===dk.name&&dl.piece===dk.piece&&dl.target===dk.target){return true}}return false}function aX(dj){return function(dn){if(!dj){return}var dl=v.findParentContentNode(dj);var dk;if(dn){dk=dn.target||dn.srcElement
+}if(!dk){dk=dj}if(!bb(dl,dk)){return}if(!dl){return false}var dp=v.findTargetNode(dl);if(!dp||v.shouldIgnoreInteraction(dp)){return false}var dm=dc(dp);if(c9&&dm&&dm.type){return dm.type}return bI.trackContentInteractionNode(dk,"click")}}function b1(dl){if(!dl||!dl.length){return}var dj,dk;for(dj=0;dj<dl.length;dj++){dk=v.findTargetNode(dl[dj]);if(dk&&!dk.contentInteractionTrackingSetupDone){dk.contentInteractionTrackingSetupDone=true;an(dk,"click",aX(dk))}}}function bx(dl,dm){if(!dl||!dl.length){return[]}var dj,dk;for(dj=0;dj<dl.length;dj++){if(aW(dl[dj])){dl.splice(dj,1);dj--}else{ca.push(dl[dj])}}if(!dl||!dl.length){return[]}b1(dm);var dn=[];for(dj=0;dj<dl.length;dj++){dk=cs(v.buildImpressionRequestParams(dl[dj].name,dl[dj].piece,dl[dj].target),undefined,"contentImpressions");if(dk){dn.push(dk)}}return dn}function cA(dk){var dj=v.collectContent(dk);return bx(dj,dk)}function a9(dk){if(!dk||!dk.length){return[]}var dj;for(dj=0;dj<dk.length;dj++){if(!v.isNodeVisible(dk[dj])){dk.splice(dj,1);
+dj--}}if(!dk||!dk.length){return[]}return cA(dk)}function aG(dl,dj,dk){var dm=v.buildImpressionRequestParams(dl,dj,dk);return cs(dm,null,"contentImpression")}function db(dm,dk){if(!dm){return}var dj=v.findParentContentNode(dm);var dl=v.buildContentBlock(dj);if(!dl){return}if(!dk){dk="Unknown"}return aP(dk,dl.name,dl.piece,dl.target)}function cP(dk,dm,dj,dl){return"e_c="+t(dk)+"&e_a="+t(dm)+(J(dj)?"&e_n="+t(dj):"")+(J(dl)?"&e_v="+t(dl):"")}function at(dl,dn,dj,dm,dq,dp){if(!Y(dl)||!Y(dn)){ak("Error while logging event: Parameters `category` and `action` must not be empty or filled with whitespaces");return false}var dk=cs(cP(dl,dn,dj,dm),dq,"event");bF(dk,bJ,dp)}function b8(dj,dm,dk,dn){var dl=cs("search="+t(dj)+(dm?"&search_cat="+t(dm):"")+(J(dk)?"&search_count="+dk:""),dn,"sitesearch");bF(dl,bJ)}function cT(dj,dn,dm,dl){var dk=cs("idgoal="+dj+(dn?"&revenue="+dn:""),dm,"goal");bF(dk,bJ,dl)}function c1(dm,dj,dr,dq,dl){var dp=dj+"="+t(b2(dm));var dk=cu(dl,"click",dm);if(dk){dp+="&"+dk}var dn=cs(dp,dr,"link");
+bF(dn,bJ,dq)}function bU(dk,dj){if(dk!==""){return dk+dj.charAt(0).toUpperCase()+dj.slice(1)}return dj}function ch(dp){var dn,dj,dm=["","webkit","ms","moz"],dl;if(!be){for(dj=0;dj<dm.length;dj++){dl=dm[dj];if(Object.prototype.hasOwnProperty.call(G,bU(dl,"hidden"))){if(G[bU(dl,"visibilityState")]==="prerender"){dn=true}break}}}if(dn){an(G,dl+"visibilitychange",function dk(){G.removeEventListener(dl+"visibilitychange",dk,false);dp()});return}dp()}function br(){var dk=bI.getVisitorId();var dj=aJ();return dk+dj}function cj(dj){if(!dj){return}if(!ae.hasNodeAttribute(dj,"href")){return}var dk=ae.getAttributeValueFromNode(dj,"href");if(!dk||aU(dk)){return}if(!bI.getVisitorId()){return}dk=k(dk,av);var dl=br();dk=F(dk,av,dl);ae.setAnyAttribute(dj,"href",dk)}function aB(dm){var dn=ae.getAttributeValueFromNode(dm,"href");if(!dn){return false}dn=String(dn);var dk=dn.indexOf("//")===0||dn.indexOf("http://")===0||dn.indexOf("https://")===0;if(!dk){return false}var dj=dm.pathname||cl(dm.href);var dl=(dm.hostname||d(dm.href)).toLowerCase();
+if(ar(dl,dj)){if(!cH(cU,L(dl))){return true}return false}return false}function cG(dj){var dk=dc(dj);if(dk&&dk.type){dk.href=p(dk.href);c1(dk.href,dk.type,undefined,null,dj);return}if(cN){dj=au(dj);if(aB(dj)){cj(dj)}}}function cw(){return G.all&&!G.addEventListener}function cV(dj){var dl=dj.which;var dk=(typeof dj.button);if(!dl&&dk!=="undefined"){if(cw()){if(dj.button&1){dl=1}else{if(dj.button&2){dl=3}else{if(dj.button&4){dl=2}}}}else{if(dj.button===0||dj.button==="0"){dl=1}else{if(dj.button&1){dl=2}else{if(dj.button&2){dl=3}}}}}return dl}function bT(dj){switch(cV(dj)){case 1:return"left";case 2:return"middle";case 3:return"right"}}function a1(dj){return dj.target||dj.srcElement}function aC(dj){return function(dm){dm=dm||T.event;var dl=bT(dm);var dn=a1(dm);if(dm.type==="click"){var dk=false;if(dj&&dl==="middle"){dk=true}if(dn&&!dk){cG(dn)}}else{if(dm.type==="mousedown"){if(dl==="middle"&&dn){aR=dl;bA=dn}else{aR=bA=null}}else{if(dm.type==="mouseup"){if(dl===aR&&dn===bA){cG(dn)}aR=bA=null
+}else{if(dm.type==="contextmenu"){cG(dn)}}}}}}function aq(dl,dk){var dj=typeof dk;if(dj==="undefined"){dk=true}an(dl,"click",aC(dk),false);if(dk){an(dl,"mouseup",aC(dk),false);an(dl,"mousedown",aC(dk),false);an(dl,"contextmenu",aC(dk),false)}}function bD(dl,dn){ap=true;var dm,dk=a0(bz,"ignore"),dp=G.links,dj=null,dq=null;if(dp){for(dm=0;dm<dp.length;dm++){dj=dp[dm];if(!dk.test(dj.className)){dq=typeof dj.piwikTrackers;if("undefined"===dq){dj.piwikTrackers=[]}if(-1===M(dj.piwikTrackers,dn)){dj.piwikTrackers.push(dn);aq(dj,dl)}}}}}function aS(dk,dn,dp){if(cf){return true}cf=true;var dq=false;var dm,dl;function dj(){dq=true}n(function(){function dr(dt){setTimeout(function(){if(!cf){return}dq=false;dp.trackVisibleContentImpressions();dr(dt)},dt)}function ds(dt){setTimeout(function(){if(!cf){return}if(dq){dq=false;dp.trackVisibleContentImpressions()}ds(dt)},dt)}if(dk){dm=["scroll","resize"];for(dl=0;dl<dm.length;dl++){if(G.addEventListener){G.addEventListener(dm[dl],dj,false)}else{T.attachEvent("on"+dm[dl],dj)
+}}ds(100)}if(dn&&dn>0){dn=parseInt(dn,10);dr(dn)}})}var bC={enabled:true,requests:[],timeout:null,interval:2500,sendRequests:function(){var dj=this.requests;this.requests=[];if(dj.length===1){bF(dj[0],bJ)}else{df(dj,bJ)}},canQueue:function(){return !m&&this.enabled},pushMultiple:function(dk){if(!this.canQueue()){df(dk,bJ);return}var dj;for(dj=0;dj<dk.length;dj++){this.push(dk[dj])}},push:function(dj){if(!dj){return}if(!this.canQueue()){bF(dj,bJ);return}bC.requests.push(dj);if(this.timeout){clearTimeout(this.timeout);this.timeout=null}this.timeout=setTimeout(function(){bC.timeout=null;bC.sendRequests()},bC.interval);var dk="RequestQueue"+aw;if(!Object.prototype.hasOwnProperty.call(b,dk)){b[dk]={unload:function(){if(bC.timeout){clearTimeout(bC.timeout)}bC.sendRequests()}}}}};bi();aM();this.hasConsent=function(){return bB};this.getVisitorId=function(){return aY().uuid};this.getVisitorInfo=function(){return cO()};this.getAttributionInfo=function(){return bM()};this.getAttributionCampaignName=function(){return bM()[0]
+};this.getAttributionCampaignKeyword=function(){return bM()[1]};this.getAttributionReferrerTimestamp=function(){return bM()[2]};this.getAttributionReferrerUrl=function(){return bM()[3]};this.setTrackerUrl=function(dj){aE=dj};this.getTrackerUrl=function(){return aE};this.getPiwikUrl=function(){return O(this.getTrackerUrl(),bH)};this.addTracker=function(dj,dl){if(!J(dj)||null===dj){dj=this.getTrackerUrl()}var dk=new Q(dj,dl);I.push(dk);e.trigger("TrackerAdded",[this]);return dk};this.getSiteId=function(){return b6};this.setSiteId=function(dj){b3(dj)};this.resetUserId=function(){by=""};this.setUserId=function(dj){if(Y(dj)){by=dj}};this.getUserId=function(){return by};this.setCustomData=function(dj,dk){if(W(dj)){ao=dj}else{if(!ao){ao={}}ao[dj]=dk}};this.getCustomData=function(){return ao};this.setCustomRequestProcessing=function(dj){cb=dj};this.appendToTrackingUrl=function(dj){cZ=dj};this.getRequest=function(dj){return cs(dj)};this.addPlugin=function(dj,dk){b[dj]=dk};this.setCustomDimension=function(dj,dk){dj=parseInt(dj,10);
+if(dj>0){if(!J(dk)){dk=""}if(!w(dk)){dk=String(dk)}bm[dj]=dk}};this.getCustomDimension=function(dj){dj=parseInt(dj,10);if(dj>0&&Object.prototype.hasOwnProperty.call(bm,dj)){return bm[dj]}};this.deleteCustomDimension=function(dj){dj=parseInt(dj,10);if(dj>0){delete bm[dj]}};this.setCustomVariable=function(dk,dj,dn,dl){var dm;if(!J(dl)){dl="visit"}if(!J(dj)){return}if(!J(dn)){dn=""}if(dk>0){dj=!w(dj)?String(dj):dj;dn=!w(dn)?String(dn):dn;dm=[dj.slice(0,bt),dn.slice(0,bt)];if(dl==="visit"||dl===2){cF();aQ[dk]=dm}else{if(dl==="page"||dl===3){bW[dk]=dm}else{if(dl==="event"){cm[dk]=dm}}}}};this.getCustomVariable=function(dk,dl){var dj;if(!J(dl)){dl="visit"}if(dl==="page"||dl===3){dj=bW[dk]}else{if(dl==="event"){dj=cm[dk]}else{if(dl==="visit"||dl===2){cF();dj=aQ[dk]}}}if(!J(dj)||(dj&&dj[0]==="")){return false}return dj};this.deleteCustomVariable=function(dj,dk){if(this.getCustomVariable(dj,dk)){this.setCustomVariable(dj,"","",dk)}};this.deleteCustomVariables=function(dj){if(dj==="page"||dj===3){bW={}
+}else{if(dj==="event"){cm={}}else{if(dj==="visit"||dj===2){aQ={}}}}};this.storeCustomVariablesInCookie=function(){bQ=true};this.setLinkTrackingTimer=function(dj){bJ=dj};this.getLinkTrackingTimer=function(){return bJ};this.setDownloadExtensions=function(dj){if(w(dj)){dj=dj.split("|")}c6=dj};this.addDownloadExtensions=function(dk){var dj;if(w(dk)){dk=dk.split("|")}for(dj=0;dj<dk.length;dj++){c6.push(dk[dj])}};this.removeDownloadExtensions=function(dl){var dk,dj=[];if(w(dl)){dl=dl.split("|")}for(dk=0;dk<c6.length;dk++){if(M(dl,c6[dk])===-1){dj.push(c6[dk])}}c6=dj};this.setDomains=function(dj){ax=w(dj)?[dj]:dj;var dn=false,dl=0,dk;for(dl;dl<ax.length;dl++){dk=String(ax[dl]);if(cH(cU,L(dk))){dn=true;break}var dm=cl(dk);if(dm&&dm!=="/"&&dm!=="/*"){dn=true;break}}if(!dn){ax.push(cU)}};this.enableCrossDomainLinking=function(){cN=true};this.disableCrossDomainLinking=function(){cN=false};this.isCrossDomainLinkingEnabled=function(){return cN};this.setCrossDomainLinkingTimeout=function(dj){aZ=dj};this.getCrossDomainLinkingUrlParameter=function(){return t(av)+"="+t(br())
+};this.setIgnoreClasses=function(dj){bz=w(dj)?[dj]:dj};this.setRequestMethod=function(dj){da=dj||ci};this.setRequestContentType=function(dj){cx=dj||aI};this.setReferrerUrl=function(dj){bn=dj};this.setCustomUrl=function(dj){a4=bV(bN,dj)};this.getCurrentUrl=function(){return a4||bN};this.setDocumentTitle=function(dj){bj=dj};this.setAPIUrl=function(dj){bH=dj};this.setDownloadClasses=function(dj){bL=w(dj)?[dj]:dj};this.setLinkClasses=function(dj){a8=w(dj)?[dj]:dj};this.setCampaignNameKey=function(dj){cq=w(dj)?[dj]:dj};this.setCampaignKeywordKey=function(dj){bG=w(dj)?[dj]:dj};this.discardHashTag=function(dj){bP=dj};this.setCookieNamePrefix=function(dj){bk=dj;if(aQ){aQ=bX()}};this.setCookieDomain=function(dj){var dk=L(dj);if(bw(dk)){cX=dk;bi()}};this.getCookieDomain=function(){return cX};this.hasCookies=function(){return"1"===b5()};this.setSessionCookie=function(dl,dk,dj){if(!dl){throw new Error("Missing cookie name")}if(!J(dj)){dj=co}bu.push(dl);de(aT(dl),dk,dj,bp,cX)};this.getCookie=function(dk){var dj=aD(aT(dk));
+if(dj===0){return null}return dj};this.setCookiePath=function(dj){bp=dj;bi()};this.getCookiePath=function(dj){return bp};this.setVisitorCookieTimeout=function(dj){cK=dj*1000};this.setSessionCookieTimeout=function(dj){co=dj*1000};this.getSessionCookieTimeout=function(){return co};this.setReferralCookieTimeout=function(dj){c5=dj*1000};this.setConversionAttributionFirstReferrer=function(dj){bv=dj};this.setSecureCookie=function(dj){bS=dj};this.disableCookies=function(){bl=true;c8.cookie="0";if(b6){aF()}};this.deleteCookies=function(){aF()};this.setDoNotTrack=function(dk){var dj=h.doNotTrack||h.msDoNotTrack;cQ=dk&&(dj==="yes"||dj==="1");if(cQ){this.disableCookies()}};this.alwaysUseSendBeacon=function(){cW=true};this.disableAlwaysUseSendBeacon=function(){cW=false};this.addListener=function(dk,dj){aq(dk,dj)};this.enableLinkTracking=function(dk){c9=true;var dj=this;ch(function(){q(function(){bD(dk,dj)});n(function(){bD(dk,dj)})})};this.enableJSErrorTracking=function(){if(cS){return}cS=true;var dj=T.onerror;
+T.onerror=function(dp,dm,dl,dn,dk){ch(function(){var dq="JavaScript Errors";var dr=dm+":"+dl;if(dn){dr+=":"+dn}at(dq,dr,dp)});if(dj){return dj(dp,dm,dl,dn,dk)}return false}};this.disablePerformanceTracking=function(){a2=false};this.setVisitStandardLength=function(dj){dj=Math.max(dj,5);c7=dj};this.enableHeartBeatTimer=function(dj){dj=Math.max(dj,5);a5=(dj||15)*1000;if(cY!==null){dg()}};this.disableHeartBeatTimer=function(){bK();if(a5||aN){if(T.removeEventListener){T.removeEventListener("focus",ba);T.removeEventListener("blur",ay)}else{if(T.detachEvent){T.detachEvent("onfocus",ba);T.detachEvent("onblur",ay)}}}a5=null;aN=false};this.killFrame=function(){if(T.location!==T.top.location){T.top.location=T.location}};this.redirectFile=function(dj){if(T.location.protocol==="file:"){T.location=dj}};this.setCountPreRendered=function(dj){be=dj};this.trackGoal=function(dj,dm,dl,dk){ch(function(){cT(dj,dm,dl,dk)})};this.trackLink=function(dk,dj,dm,dl){ch(function(){c1(dk,dj,dm,dl)})};this.getNumTrackedPageViews=function(){return cr
+};this.trackPageView=function(dj,dl,dk){ca=[];cL=[];if(N(b6)){ch(function(){Z(aE,bH,b6)})}else{ch(function(){cr++;b0(dj,dl,dk)})}};this.trackAllContentImpressions=function(){if(N(b6)){return}ch(function(){q(function(){var dj=v.findContentNodes();var dk=cA(dj);bC.pushMultiple(dk)})})};this.trackVisibleContentImpressions=function(dj,dk){if(N(b6)){return}if(!J(dj)){dj=true}if(!J(dk)){dk=750}aS(dj,dk,this);ch(function(){n(function(){var dl=v.findContentNodes();var dm=a9(dl);bC.pushMultiple(dm)})})};this.trackContentImpression=function(dl,dj,dk){if(N(b6)){return}dl=a(dl);dj=a(dj);dk=a(dk);if(!dl){return}dj=dj||"Unknown";ch(function(){var dm=aG(dl,dj,dk);bC.push(dm)})};this.trackContentImpressionsWithinNode=function(dj){if(N(b6)||!dj){return}ch(function(){if(cf){n(function(){var dk=v.findContentNodesWithinNode(dj);var dl=a9(dk);bC.pushMultiple(dl)})}else{q(function(){var dk=v.findContentNodesWithinNode(dj);var dl=cA(dk);bC.pushMultiple(dl)})}})};this.trackContentInteraction=function(dl,dm,dj,dk){if(N(b6)){return
+}dl=a(dl);dm=a(dm);dj=a(dj);dk=a(dk);if(!dl||!dm){return}dj=dj||"Unknown";ch(function(){var dn=aP(dl,dm,dj,dk);if(dn){bC.push(dn)}})};this.trackContentInteractionNode=function(dl,dk){if(N(b6)||!dl){return}var dj=null;ch(function(){dj=db(dl,dk);if(dj){bC.push(dj)}});return dj};this.logAllContentBlocksOnPage=function(){var dl=v.findContentNodes();var dj=v.collectContent(dl);var dk=typeof console;if(dk!=="undefined"&&console&&console.log){console.log(dj)}};this.trackEvent=function(dk,dm,dj,dl,dp,dn){ch(function(){at(dk,dm,dj,dl,dp,dn)})};this.trackSiteSearch=function(dj,dl,dk,dm){ca=[];ch(function(){b8(dj,dl,dk,dm)})};this.setEcommerceView=function(dn,dj,dl,dk){ct={};if(Y(dl)){dl=String(dl)}if(!J(dl)||dl===null||dl===false||!dl.length){dl=""}else{if(dl instanceof Array){dl=T.JSON.stringify(dl)}}var dm="_pkc";ct[dm]=dl;if(J(dk)&&dk!==null&&dk!==false&&String(dk).length){dm="_pkp";ct[dm]=dk}if(!Y(dn)&&!Y(dj)){return}if(Y(dn)){dm="_pks";ct[dm]=dn}if(!Y(dj)){dj=""}dm="_pkn";ct[dm]=dj};this.getEcommerceItems=function(){return JSON.parse(JSON.stringify(c0))
+};this.addEcommerceItem=function(dn,dj,dl,dk,dm){if(Y(dn)){c0[dn]=[String(dn),dj,dl,dk,dm]}};this.removeEcommerceItem=function(dj){if(Y(dj)){dj=String(dj);delete c0[dj]}};this.clearEcommerceCart=function(){c0={}};this.trackEcommerceOrder=function(dj,dn,dm,dl,dk,dp){bZ(dj,dn,dm,dl,dk,dp)};this.trackEcommerceCartUpdate=function(dj){bs(dj)};this.trackRequest=function(dk,dm,dl,dj){ch(function(){var dn=cs(dk,dm,dj);bF(dn,bJ,dl)})};this.ping=function(){this.trackRequest("ping=1",null,null,"ping")};this.disableQueueRequest=function(){bC.enabled=false};this.setRequestQueueInterval=function(dj){if(dj<1000){throw new Error("Request queue interval needs to be at least 1000ms")}bC.interval=dj};this.queueRequest=function(dj){ch(function(){var dk=cs(dj);bC.push(dk)})};this.isConsentRequired=function(){return cB};this.getRememberedConsent=function(){var dj=aD(bd);if(aD(cM)){if(dj){bY(bd,bp,cX)}return null}if(!dj||dj===0){return null}return dj};this.hasRememberedConsent=function(){return !!this.getRememberedConsent()
+};this.requireConsent=function(){cB=true;bB=this.hasRememberedConsent();x++;b["CoreConsent"+x]={unload:function(){if(!bB){aF()}}}};this.setConsentGiven=function(){bB=true;bY(cM,bp,cX);var dk,dj;for(dk=0;dk<cL.length;dk++){dj=typeof cL[dk];if(dj==="string"){bF(cL[dk],bJ)}else{if(dj==="object"){df(cL[dk],bJ)}}}cL=[]};this.rememberConsentGiven=function(dk){if(dk){dk=dk*60*60*1000}else{dk=30*365*24*60*60*1000}this.setConsentGiven();var dj=new Date().getTime();de(bd,dj,dk,bp,cX,bS)};this.forgetConsentGiven=function(){var dj=30*365*24*60*60*1000;bY(bd,bp,cX);de(cM,new Date().getTime(),dj,bp,cX,bS);this.requireConsent()};this.isUserOptedOut=function(){return !bB};this.optUserOut=this.forgetConsentGiven;this.forgetUserOptOut=this.rememberConsentGiven;n(function(){setTimeout(function(){bE=true},0)});e.trigger("TrackerSetup",[this])}function H(){return{push:af}}function c(au,at){var av={};var aq,ar;for(aq=0;aq<at.length;aq++){var ao=at[aq];av[ao]=1;for(ar=0;ar<au.length;ar++){if(au[ar]&&au[ar][0]){var ap=au[ar][0];
+if(ao===ap){af(au[ar]);delete au[ar];if(av[ap]>1&&ap!=="addTracker"){ak("The method "+ap+' is registered more than once in "_paq" variable. Only the last call has an effect. Please have a look at the multiple Piwik trackers documentation: https://developer.piwik.org/guides/tracking-javascript-guide#multiple-piwik-trackers')}av[ap]++}}}}return au}var C=["addTracker","disableCookies","setTrackerUrl","setAPIUrl","enableCrossDomainLinking","setCrossDomainLinkingTimeout","setSessionCookieTimeout","setVisitorCookieTimeout","setCookieNamePrefix","setSecureCookie","setCookiePath","setCookieDomain","setDomains","setUserId","setSiteId","alwaysUseSendBeacon","enableLinkTracking","requireConsent","setConsentGiven"];function ad(ao,aq){var ap=new Q(ao,aq);I.push(ap);_paq=c(_paq,C);for(E=0;E<_paq.length;E++){if(_paq[E]){af(_paq[E])}}_paq=new H();e.trigger("TrackerAdded",[ap]);return ap}an(T,"beforeunload",ai,false);an(T,"message",function(au){if(!au||!au.origin){return}var aw,ar,ap;var ax=d(au.origin);
+var at=e.getAsyncTrackers();for(ar=0;ar<at.length;ar++){ap=d(at[ar].getPiwikUrl());if(ap===ax){aw=at[ar];break}}if(!aw){return}var aq=null;try{aq=JSON.parse(au.data)}catch(av){return}if(!aq){return}function ao(aA){var aC=G.getElementsByTagName("iframe");for(ar=0;ar<aC.length;ar++){var aB=aC[ar];var ay=d(aB.src);if(aB.contentWindow&&J(aB.contentWindow.postMessage)&&ay===ax){var az=JSON.stringify(aA);aB.contentWindow.postMessage(az,"*")}}}if(J(aq.maq_initial_value)){ao({maq_opted_in:aq.maq_initial_value&&aw.hasConsent(),maq_url:aw.getPiwikUrl(),maq_optout_by_default:aw.isConsentRequired()})}else{if(J(aq.maq_opted_in)){at=e.getAsyncTrackers();for(ar=0;ar<at.length;ar++){aw=at[ar];if(aq.maq_opted_in){aw.rememberConsentGiven()}else{aw.forgetConsentGiven()}}ao({maq_confirm_opted_in:aw.hasConsent(),maq_url:aw.getPiwikUrl(),maq_optout_by_default:aw.isConsentRequired()})}}},false);Date.prototype.getTimeAlias=Date.prototype.getTime;e={initialized:false,JSON:T.JSON,DOM:{addEventListener:function(ar,aq,ap,ao){var at=typeof ao;
+if(at==="undefined"){ao=false}an(ar,aq,ap,ao)},onLoad:n,onReady:q,isNodeVisible:j,isOrWasNodeVisible:v.isNodeVisible},on:function(ap,ao){if(!y[ap]){y[ap]=[]}y[ap].push(ao)},off:function(aq,ap){if(!y[aq]){return}var ao=0;for(ao;ao<y[aq].length;ao++){if(y[aq][ao]===ap){y[aq].splice(ao,1)}}},trigger:function(aq,ar,ap){if(!y[aq]){return}var ao=0;for(ao;ao<y[aq].length;ao++){y[aq][ao].apply(ap||T,ar)}},addPlugin:function(ao,ap){b[ao]=ap},getTracker:function(ao,ap){if(!J(ap)){ap=this.getAsyncTracker().getSiteId()}if(!J(ao)){ao=this.getAsyncTracker().getTrackerUrl()}return new Q(ao,ap)},getAsyncTrackers:function(){return I},addTracker:function(ao,aq){var ap;if(!I.length){ap=ad(ao,aq)}else{ap=I[0].addTracker(ao,aq)}return ap},getAsyncTracker:function(ap,at){var ar;if(I&&I.length&&I[0]){ar=I[0]}else{return ad(ap,at)}if(!at&&!ap){return ar}if((!J(at)||null===at)&&ar){at=ar.getSiteId()}if((!J(ap)||null===ap)&&ar){ap=ar.getTrackerUrl()}var aq,ao=0;for(ao;ao<I.length;ao++){aq=I[ao];if(aq&&String(aq.getSiteId())===String(at)&&aq.getTrackerUrl()===ap){return aq
+}}},retryMissedPluginCalls:function(){var ap=ah;ah=[];var ao=0;for(ao;ao<ap.length;ao++){af(ap[ao])}}};if(typeof define==="function"&&define.amd){define("piwik",[],function(){return e});define("matomo",[],function(){return e})}return e}())}
/*!!! 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){var d=typeof console;if(d!=="undefined"&&console&&console.error){console.error("_paq.push() was used but Matomo tracker was not initialized before the matomo.js file was loaded. Make sure to configure the tracker via _paq.push before loading matomo.js. Alternatively, you can create a tracker via Matomo.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 Matomo tracker was not initialized before the matomo.js file was loaded. Make sure to configure the tracker via _paq.push before loading matomo.js. Alternatively, you can create a tracker via Matomo.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/API.php b/plugins/API/API.php
index 7d961f02ab..f889329417 100644
--- a/plugins/API/API.php
+++ b/plugins/API/API.php
@@ -744,7 +744,8 @@ class API extends \Piwik\Plugin\API
$segmentsNeedActionsInfo = array('visitConvertedGoalId',
'pageUrl', 'pageTitle', 'siteSearchKeyword', 'siteSearchCategory', 'siteSearchCount',
'entryPageTitle', 'entryPageUrl', 'exitPageTitle', 'exitPageUrl',
- 'outlinkUrl', 'downloadUrl', 'eventUrl', 'orderId'
+ 'outlinkUrl', 'downloadUrl', 'eventUrl', 'orderId', 'productViewName', 'productViewSku', 'productViewPrice',
+ 'productViewCategory1', 'productViewCategory2', 'productViewCategory3', 'productViewCategory4', 'productViewCategory5'
);
$isCustomVariablePage = stripos($segmentName, 'customVariablePage') !== false;
$isEventSegment = stripos($segmentName, 'event') !== false;
diff --git a/plugins/API/tests/System/expected/test_AutoSuggestAPITest__Live.getLastVisitsDetails_range.xml b/plugins/API/tests/System/expected/test_AutoSuggestAPITest__Live.getLastVisitsDetails_range.xml
index f3cd7a238a..898cab80f8 100644
--- a/plugins/API/tests/System/expected/test_AutoSuggestAPITest__Live.getLastVisitsDetails_range.xml
+++ b/plugins/API/tests/System/expected/test_AutoSuggestAPITest__Live.getLastVisitsDetails_range.xml
@@ -218,7 +218,7 @@
<type>download</type>
<url>http://example.org/path/file8.zip</url>
<pageTitle />
- <pageIdAction>50</pageIdAction>
+ <pageIdAction>58</pageIdAction>
<pageId>48</pageId>
@@ -237,7 +237,7 @@
<type>outlink</type>
<url>http://example-outlink.org/8.html</url>
<pageTitle />
- <pageIdAction>51</pageIdAction>
+ <pageIdAction>59</pageIdAction>
<pageId>49</pageId>
@@ -593,7 +593,7 @@
<type>download</type>
<url>http://example.org/path/file7.zip</url>
<pageTitle />
- <pageIdAction>45</pageIdAction>
+ <pageIdAction>53</pageIdAction>
<pageId>42</pageId>
@@ -612,7 +612,7 @@
<type>outlink</type>
<url>http://example-outlink.org/7.html</url>
<pageTitle />
- <pageIdAction>46</pageIdAction>
+ <pageIdAction>54</pageIdAction>
<pageId>43</pageId>
@@ -768,6 +768,9 @@
<pageId>40</pageId>
+ <productViewPrice>17.4</productViewPrice>
+ <productViewName>MyName</productViewName>
+ <productViewSku>Custom SKU</productViewSku>
<bandwidth />
<pageviewPosition>1</pageviewPosition>
<title>It's &lt;script&gt; pitch black...</title>
@@ -775,6 +778,12 @@
<icon />
<iconSVG>plugins/Morpheus/images/action.svg</iconSVG>
+ <productViewCategories>
+ <row>Category1</row>
+ <row>Category2</row>
+ <row>Category3</row>
+ <row>Category7</row>
+ </productViewCategories>
<customVariables>
<row>
<customVariablePageName2>Cvar 2 PAGE name</customVariablePageName2>
@@ -989,7 +998,7 @@
<type>download</type>
<url>http://example.org/path/file6.zip</url>
<pageTitle />
- <pageIdAction>40</pageIdAction>
+ <pageIdAction>47</pageIdAction>
<pageId>37</pageId>
@@ -1008,7 +1017,7 @@
<type>outlink</type>
<url>http://example-outlink.org/6.html</url>
<pageTitle />
- <pageIdAction>41</pageIdAction>
+ <pageIdAction>48</pageIdAction>
<pageId>38</pageId>
@@ -1393,7 +1402,7 @@
<type>download</type>
<url>http://example.org/path/file5.zip</url>
<pageTitle />
- <pageIdAction>35</pageIdAction>
+ <pageIdAction>42</pageIdAction>
<pageId>31</pageId>
@@ -1412,7 +1421,7 @@
<type>outlink</type>
<url>http://example-outlink.org/5.html</url>
<pageTitle />
- <pageIdAction>36</pageIdAction>
+ <pageIdAction>43</pageIdAction>
<pageId>32</pageId>
@@ -1789,7 +1798,7 @@
<type>download</type>
<url>http://example.org/path/file4.zip</url>
<pageTitle />
- <pageIdAction>30</pageIdAction>
+ <pageIdAction>37</pageIdAction>
<pageId>26</pageId>
@@ -1808,7 +1817,7 @@
<type>outlink</type>
<url>http://example-outlink.org/4.html</url>
<pageTitle />
- <pageIdAction>31</pageIdAction>
+ <pageIdAction>38</pageIdAction>
<pageId>27</pageId>
@@ -1964,6 +1973,9 @@
<pageId>23</pageId>
+ <productViewPrice>17.4</productViewPrice>
+ <productViewName>MyName</productViewName>
+ <productViewSku>Custom SKU</productViewSku>
<bandwidth />
<pageviewPosition>1</pageviewPosition>
<title>It's &lt;script&gt; pitch black...</title>
@@ -1971,6 +1983,12 @@
<icon />
<iconSVG>plugins/Morpheus/images/action.svg</iconSVG>
+ <productViewCategories>
+ <row>Category1</row>
+ <row>Category2</row>
+ <row>Category3</row>
+ <row>Category4</row>
+ </productViewCategories>
<customVariables>
<row>
<customVariablePageName2>Cvar 2 PAGE name</customVariablePageName2>
@@ -2164,7 +2182,7 @@
<type>download</type>
<url>http://example.org/path/file3.zip</url>
<pageTitle />
- <pageIdAction>25</pageIdAction>
+ <pageIdAction>31</pageIdAction>
<pageId>20</pageId>
@@ -2183,7 +2201,7 @@
<type>outlink</type>
<url>http://example-outlink.org/3.html</url>
<pageTitle />
- <pageIdAction>26</pageIdAction>
+ <pageIdAction>32</pageIdAction>
<pageId>21</pageId>
@@ -2413,7 +2431,7 @@
<type>download</type>
<url>http://example.org/path/file3.zip</url>
<pageTitle />
- <pageIdAction>25</pageIdAction>
+ <pageIdAction>31</pageIdAction>
<pageId>81</pageId>
@@ -2432,7 +2450,7 @@
<type>outlink</type>
<url>http://example-outlink.org/3.html</url>
<pageTitle />
- <pageIdAction>26</pageIdAction>
+ <pageIdAction>32</pageIdAction>
<pageId>82</pageId>
@@ -2985,7 +3003,7 @@
<type>download</type>
<url>http://example.org/path/file2.zip</url>
<pageTitle />
- <pageIdAction>20</pageIdAction>
+ <pageIdAction>26</pageIdAction>
<pageId>15</pageId>
@@ -3004,7 +3022,7 @@
<type>outlink</type>
<url>http://example-outlink.org/2.html</url>
<pageTitle />
- <pageIdAction>21</pageIdAction>
+ <pageIdAction>27</pageIdAction>
<pageId>16</pageId>
@@ -3226,7 +3244,7 @@
<type>download</type>
<url>http://example.org/path/file2.zip</url>
<pageTitle />
- <pageIdAction>20</pageIdAction>
+ <pageIdAction>26</pageIdAction>
<pageId>76</pageId>
@@ -3245,7 +3263,7 @@
<type>outlink</type>
<url>http://example-outlink.org/2.html</url>
<pageTitle />
- <pageIdAction>21</pageIdAction>
+ <pageIdAction>27</pageIdAction>
<pageId>77</pageId>
@@ -3748,7 +3766,7 @@
<type>download</type>
<url>http://example.org/path/file1.zip</url>
<pageTitle />
- <pageIdAction>15</pageIdAction>
+ <pageIdAction>21</pageIdAction>
<pageId>9</pageId>
@@ -3767,7 +3785,7 @@
<type>outlink</type>
<url>http://example-outlink.org/1.html</url>
<pageTitle />
- <pageIdAction>16</pageIdAction>
+ <pageIdAction>22</pageIdAction>
<pageId>10</pageId>
@@ -3968,7 +3986,7 @@
<type>download</type>
<url>http://example.org/path/file1.zip</url>
<pageTitle />
- <pageIdAction>15</pageIdAction>
+ <pageIdAction>21</pageIdAction>
<pageId>59</pageId>
@@ -3987,7 +4005,7 @@
<type>outlink</type>
<url>http://example-outlink.org/1.html</url>
<pageTitle />
- <pageIdAction>16</pageIdAction>
+ <pageIdAction>22</pageIdAction>
<pageId>60</pageId>
@@ -4188,7 +4206,7 @@
<type>download</type>
<url>http://example.org/path/file1.zip</url>
<pageTitle />
- <pageIdAction>15</pageIdAction>
+ <pageIdAction>21</pageIdAction>
<pageId>70</pageId>
@@ -4207,7 +4225,7 @@
<type>outlink</type>
<url>http://example-outlink.org/1.html</url>
<pageTitle />
- <pageIdAction>16</pageIdAction>
+ <pageIdAction>22</pageIdAction>
<pageId>71</pageId>
@@ -4400,7 +4418,7 @@
<type>download</type>
<url>http://example.org/path/file1.zip</url>
<pageTitle />
- <pageIdAction>15</pageIdAction>
+ <pageIdAction>21</pageIdAction>
<pageId>92</pageId>
@@ -4419,7 +4437,7 @@
<type>outlink</type>
<url>http://example-outlink.org/1.html</url>
<pageTitle />
- <pageIdAction>16</pageIdAction>
+ <pageIdAction>22</pageIdAction>
<pageId>93</pageId>
@@ -4575,6 +4593,9 @@
<pageId>7</pageId>
+ <productViewPrice>17.4</productViewPrice>
+ <productViewName>MyName</productViewName>
+ <productViewSku>Custom SKU</productViewSku>
<bandwidth />
<pageviewPosition>1</pageviewPosition>
<title>It's &lt;script&gt; pitch black...</title>
@@ -4582,6 +4603,12 @@
<icon />
<iconSVG>plugins/Morpheus/images/action.svg</iconSVG>
+ <productViewCategories>
+ <row>Category1</row>
+ <row>Category2</row>
+ <row>Category3</row>
+ <row>Category1</row>
+ </productViewCategories>
<customVariables>
<row>
<customVariablePageName2>Cvar 2 PAGE name</customVariablePageName2>
@@ -4730,6 +4757,9 @@
<pageId>57</pageId>
+ <productViewPrice>17.4</productViewPrice>
+ <productViewName>MyName</productViewName>
+ <productViewSku>Custom SKU</productViewSku>
<bandwidth />
<pageviewPosition>1</pageviewPosition>
<title>It's &lt;script&gt; pitch black...</title>
@@ -4737,6 +4767,12 @@
<icon />
<iconSVG>plugins/Morpheus/images/action.svg</iconSVG>
+ <productViewCategories>
+ <row>Category1</row>
+ <row>Category2</row>
+ <row>Category3</row>
+ <row>Category1</row>
+ </productViewCategories>
<customVariables>
<row>
<customVariablePageName2>Cvar 2 PAGE name</customVariablePageName2>
@@ -4885,6 +4921,9 @@
<pageId>68</pageId>
+ <productViewPrice>17.4</productViewPrice>
+ <productViewName>MyName</productViewName>
+ <productViewSku>Custom SKU</productViewSku>
<bandwidth />
<pageviewPosition>1</pageviewPosition>
<title>It's &lt;script&gt; pitch black...</title>
@@ -4892,6 +4931,12 @@
<icon />
<iconSVG>plugins/Morpheus/images/action.svg</iconSVG>
+ <productViewCategories>
+ <row>Category1</row>
+ <row>Category2</row>
+ <row>Category3</row>
+ <row>Category1</row>
+ </productViewCategories>
<customVariables>
<row>
<customVariablePageName2>Cvar 2 PAGE name</customVariablePageName2>
@@ -5040,6 +5085,9 @@
<pageId>90</pageId>
+ <productViewPrice>17.4</productViewPrice>
+ <productViewName>MyName</productViewName>
+ <productViewSku>Custom SKU</productViewSku>
<bandwidth />
<pageviewPosition>1</pageviewPosition>
<title>It's &lt;script&gt; pitch black...</title>
@@ -5047,6 +5095,12 @@
<icon />
<iconSVG>plugins/Morpheus/images/action.svg</iconSVG>
+ <productViewCategories>
+ <row>Category1</row>
+ <row>Category2</row>
+ <row>Category3</row>
+ <row>Category1</row>
+ </productViewCategories>
<customVariables>
<row>
<customVariablePageName2>Cvar 2 PAGE name</customVariablePageName2>
diff --git a/plugins/API/tests/System/expected/test_AutoSuggestAPITest_productViewCategory__API.getSuggestedValuesForSegment.xml b/plugins/API/tests/System/expected/test_AutoSuggestAPITest_productViewCategory__API.getSuggestedValuesForSegment.xml
new file mode 100644
index 0000000000..3de4537c1f
--- /dev/null
+++ b/plugins/API/tests/System/expected/test_AutoSuggestAPITest_productViewCategory__API.getSuggestedValuesForSegment.xml
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="utf-8" ?>
+<result>
+ <row>Category1</row>
+ <row>Category2</row>
+ <row>Category3</row>
+ <row>Category4</row>
+ <row>Category7</row>
+</result> \ No newline at end of file
diff --git a/plugins/API/tests/System/expected/test_AutoSuggestAPITest_productViewCategory__VisitsSummary.get_range.xml b/plugins/API/tests/System/expected/test_AutoSuggestAPITest_productViewCategory__VisitsSummary.get_range.xml
new file mode 100644
index 0000000000..795e37d874
--- /dev/null
+++ b/plugins/API/tests/System/expected/test_AutoSuggestAPITest_productViewCategory__VisitsSummary.get_range.xml
@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="utf-8" ?>
+<result>
+ <nb_visits>6</nb_visits>
+ <nb_actions>6</nb_actions>
+ <nb_visits_converted>6</nb_visits_converted>
+ <bounce_count>6</bounce_count>
+ <sum_visit_length>5</sum_visit_length>
+ <max_actions>1</max_actions>
+ <bounce_rate>100%</bounce_rate>
+ <nb_actions_per_visit>1</nb_actions_per_visit>
+ <avg_time_on_site>1</avg_time_on_site>
+</result> \ No newline at end of file
diff --git a/plugins/API/tests/System/expected/test_AutoSuggestAPITest_productViewName__API.getSuggestedValuesForSegment.xml b/plugins/API/tests/System/expected/test_AutoSuggestAPITest_productViewName__API.getSuggestedValuesForSegment.xml
new file mode 100644
index 0000000000..30d4eb9a25
--- /dev/null
+++ b/plugins/API/tests/System/expected/test_AutoSuggestAPITest_productViewName__API.getSuggestedValuesForSegment.xml
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="utf-8" ?>
+<result>
+ <row>MyName</row>
+</result> \ No newline at end of file
diff --git a/plugins/API/tests/System/expected/test_AutoSuggestAPITest_productViewName__VisitsSummary.get_range.xml b/plugins/API/tests/System/expected/test_AutoSuggestAPITest_productViewName__VisitsSummary.get_range.xml
new file mode 100644
index 0000000000..795e37d874
--- /dev/null
+++ b/plugins/API/tests/System/expected/test_AutoSuggestAPITest_productViewName__VisitsSummary.get_range.xml
@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="utf-8" ?>
+<result>
+ <nb_visits>6</nb_visits>
+ <nb_actions>6</nb_actions>
+ <nb_visits_converted>6</nb_visits_converted>
+ <bounce_count>6</bounce_count>
+ <sum_visit_length>5</sum_visit_length>
+ <max_actions>1</max_actions>
+ <bounce_rate>100%</bounce_rate>
+ <nb_actions_per_visit>1</nb_actions_per_visit>
+ <avg_time_on_site>1</avg_time_on_site>
+</result> \ No newline at end of file
diff --git a/plugins/API/tests/System/expected/test_AutoSuggestAPITest_productViewPrice__API.getSuggestedValuesForSegment.xml b/plugins/API/tests/System/expected/test_AutoSuggestAPITest_productViewPrice__API.getSuggestedValuesForSegment.xml
new file mode 100644
index 0000000000..2673898acd
--- /dev/null
+++ b/plugins/API/tests/System/expected/test_AutoSuggestAPITest_productViewPrice__API.getSuggestedValuesForSegment.xml
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="utf-8" ?>
+<result>
+ <row>17.4</row>
+</result> \ No newline at end of file
diff --git a/plugins/API/tests/System/expected/test_AutoSuggestAPITest_productViewPrice__VisitsSummary.get_range.xml b/plugins/API/tests/System/expected/test_AutoSuggestAPITest_productViewPrice__VisitsSummary.get_range.xml
new file mode 100644
index 0000000000..795e37d874
--- /dev/null
+++ b/plugins/API/tests/System/expected/test_AutoSuggestAPITest_productViewPrice__VisitsSummary.get_range.xml
@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="utf-8" ?>
+<result>
+ <nb_visits>6</nb_visits>
+ <nb_actions>6</nb_actions>
+ <nb_visits_converted>6</nb_visits_converted>
+ <bounce_count>6</bounce_count>
+ <sum_visit_length>5</sum_visit_length>
+ <max_actions>1</max_actions>
+ <bounce_rate>100%</bounce_rate>
+ <nb_actions_per_visit>1</nb_actions_per_visit>
+ <avg_time_on_site>1</avg_time_on_site>
+</result> \ No newline at end of file
diff --git a/plugins/API/tests/System/expected/test_AutoSuggestAPITest_productViewSku__API.getSuggestedValuesForSegment.xml b/plugins/API/tests/System/expected/test_AutoSuggestAPITest_productViewSku__API.getSuggestedValuesForSegment.xml
new file mode 100644
index 0000000000..e31ca4dd4f
--- /dev/null
+++ b/plugins/API/tests/System/expected/test_AutoSuggestAPITest_productViewSku__API.getSuggestedValuesForSegment.xml
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="utf-8" ?>
+<result>
+ <row>Custom SKU</row>
+</result> \ No newline at end of file
diff --git a/plugins/API/tests/System/expected/test_AutoSuggestAPITest_productViewSku__VisitsSummary.get_range.xml b/plugins/API/tests/System/expected/test_AutoSuggestAPITest_productViewSku__VisitsSummary.get_range.xml
new file mode 100644
index 0000000000..795e37d874
--- /dev/null
+++ b/plugins/API/tests/System/expected/test_AutoSuggestAPITest_productViewSku__VisitsSummary.get_range.xml
@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="utf-8" ?>
+<result>
+ <nb_visits>6</nb_visits>
+ <nb_actions>6</nb_actions>
+ <nb_visits_converted>6</nb_visits_converted>
+ <bounce_count>6</bounce_count>
+ <sum_visit_length>5</sum_visit_length>
+ <max_actions>1</max_actions>
+ <bounce_rate>100%</bounce_rate>
+ <nb_actions_per_visit>1</nb_actions_per_visit>
+ <avg_time_on_site>1</avg_time_on_site>
+</result> \ No newline at end of file
diff --git a/plugins/CoreConsole/tests/System/expected/test_ArchiveCronTest_preArchivedSegment0_noOptions__Live.getLastVisitsDetails_day.xml b/plugins/CoreConsole/tests/System/expected/test_ArchiveCronTest_preArchivedSegment0_noOptions__Live.getLastVisitsDetails_day.xml
index ec02c9517a..ed78948bce 100644
--- a/plugins/CoreConsole/tests/System/expected/test_ArchiveCronTest_preArchivedSegment0_noOptions__Live.getLastVisitsDetails_day.xml
+++ b/plugins/CoreConsole/tests/System/expected/test_ArchiveCronTest_preArchivedSegment0_noOptions__Live.getLastVisitsDetails_day.xml
@@ -1035,7 +1035,7 @@
<type>action</type>
<url>http://www.included4.com/blog/category/meta/</url>
<pageTitle />
- <pageIdAction>57</pageIdAction>
+ <pageIdAction>61</pageIdAction>
<pageId>81</pageId>
@@ -1163,7 +1163,7 @@
<type>action</type>
<url>http://www.included2.com/blog/category/meta/</url>
<pageTitle />
- <pageIdAction>59</pageIdAction>
+ <pageIdAction>63</pageIdAction>
<pageId>83</pageId>
diff --git a/plugins/CoreConsole/tests/System/expected/test_ArchiveCronTest_preArchivedSegment0_noOptions__Live.getLastVisitsDetails_year.xml b/plugins/CoreConsole/tests/System/expected/test_ArchiveCronTest_preArchivedSegment0_noOptions__Live.getLastVisitsDetails_year.xml
index b3842392c6..685defc42f 100644
--- a/plugins/CoreConsole/tests/System/expected/test_ArchiveCronTest_preArchivedSegment0_noOptions__Live.getLastVisitsDetails_year.xml
+++ b/plugins/CoreConsole/tests/System/expected/test_ArchiveCronTest_preArchivedSegment0_noOptions__Live.getLastVisitsDetails_year.xml
@@ -364,7 +364,7 @@
<type>action</type>
<url>http://www.notdatefiltered.com/blog/category/meta/</url>
<pageTitle />
- <pageIdAction>60</pageIdAction>
+ <pageIdAction>64</pageIdAction>
<pageId>84</pageId>
@@ -496,6 +496,8 @@
<pageId>30</pageId>
+ <productViewName>PRODUCT name</productViewName>
+ <productViewSku>SKU2</productViewSku>
<bandwidth>43</bandwidth>
<pageviewPosition>1</pageviewPosition>
<title>incredible title!</title>
@@ -503,6 +505,9 @@
<icon />
<iconSVG>plugins/Morpheus/images/action.svg</iconSVG>
+ <productViewCategories>
+ <row>Electronics &amp; Cameras</row>
+ </productViewCategories>
<customVariables>
<row>
<customVariablePageName3>_pks</customVariablePageName3>
@@ -645,7 +650,7 @@
<type>action</type>
<url>http://forum.piwik.org/register.php?0,approve=9a94a02145599</url>
<pageTitle>Piwik Forums</pageTitle>
- <pageIdAction>31</pageIdAction>
+ <pageIdAction>34</pageIdAction>
<pageId>31</pageId>
diff --git a/plugins/CoreConsole/tests/System/expected/test_ArchiveCronTest_preArchivedSegment1_noOptions__Live.getLastVisitsDetails_day.xml b/plugins/CoreConsole/tests/System/expected/test_ArchiveCronTest_preArchivedSegment1_noOptions__Live.getLastVisitsDetails_day.xml
index ec02c9517a..ed78948bce 100644
--- a/plugins/CoreConsole/tests/System/expected/test_ArchiveCronTest_preArchivedSegment1_noOptions__Live.getLastVisitsDetails_day.xml
+++ b/plugins/CoreConsole/tests/System/expected/test_ArchiveCronTest_preArchivedSegment1_noOptions__Live.getLastVisitsDetails_day.xml
@@ -1035,7 +1035,7 @@
<type>action</type>
<url>http://www.included4.com/blog/category/meta/</url>
<pageTitle />
- <pageIdAction>57</pageIdAction>
+ <pageIdAction>61</pageIdAction>
<pageId>81</pageId>
@@ -1163,7 +1163,7 @@
<type>action</type>
<url>http://www.included2.com/blog/category/meta/</url>
<pageTitle />
- <pageIdAction>59</pageIdAction>
+ <pageIdAction>63</pageIdAction>
<pageId>83</pageId>
diff --git a/plugins/CoreConsole/tests/System/expected/test_ArchiveCronTest_preArchivedSegment1_noOptions__Live.getLastVisitsDetails_year.xml b/plugins/CoreConsole/tests/System/expected/test_ArchiveCronTest_preArchivedSegment1_noOptions__Live.getLastVisitsDetails_year.xml
index b3842392c6..685defc42f 100644
--- a/plugins/CoreConsole/tests/System/expected/test_ArchiveCronTest_preArchivedSegment1_noOptions__Live.getLastVisitsDetails_year.xml
+++ b/plugins/CoreConsole/tests/System/expected/test_ArchiveCronTest_preArchivedSegment1_noOptions__Live.getLastVisitsDetails_year.xml
@@ -364,7 +364,7 @@
<type>action</type>
<url>http://www.notdatefiltered.com/blog/category/meta/</url>
<pageTitle />
- <pageIdAction>60</pageIdAction>
+ <pageIdAction>64</pageIdAction>
<pageId>84</pageId>
@@ -496,6 +496,8 @@
<pageId>30</pageId>
+ <productViewName>PRODUCT name</productViewName>
+ <productViewSku>SKU2</productViewSku>
<bandwidth>43</bandwidth>
<pageviewPosition>1</pageviewPosition>
<title>incredible title!</title>
@@ -503,6 +505,9 @@
<icon />
<iconSVG>plugins/Morpheus/images/action.svg</iconSVG>
+ <productViewCategories>
+ <row>Electronics &amp; Cameras</row>
+ </productViewCategories>
<customVariables>
<row>
<customVariablePageName3>_pks</customVariablePageName3>
@@ -645,7 +650,7 @@
<type>action</type>
<url>http://forum.piwik.org/register.php?0,approve=9a94a02145599</url>
<pageTitle>Piwik Forums</pageTitle>
- <pageIdAction>31</pageIdAction>
+ <pageIdAction>34</pageIdAction>
<pageId>31</pageId>
diff --git a/plugins/CoreUpdater/tests/UI/expected-screenshots/CoreUpdaterDb_main.png b/plugins/CoreUpdater/tests/UI/expected-screenshots/CoreUpdaterDb_main.png
index cc5af8189b..acff7f07b9 100644
--- a/plugins/CoreUpdater/tests/UI/expected-screenshots/CoreUpdaterDb_main.png
+++ b/plugins/CoreUpdater/tests/UI/expected-screenshots/CoreUpdaterDb_main.png
@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
-oid sha256:e10b74ab626934273f88e7602bb748ff8793106b7eb55fd82eb752d5bd92a96a
-size 318163
+oid sha256:58620aacd400599c532c95aa5bc6f4ec70d696b2e336cf0174af32d119d8a6a5
+size 347883
diff --git a/plugins/CoreUpdater/tests/UI/expected-screenshots/CoreUpdaterDb_main_instance.png b/plugins/CoreUpdater/tests/UI/expected-screenshots/CoreUpdaterDb_main_instance.png
index 8a89cdf9fa..eb8c2e698e 100644
--- a/plugins/CoreUpdater/tests/UI/expected-screenshots/CoreUpdaterDb_main_instance.png
+++ b/plugins/CoreUpdater/tests/UI/expected-screenshots/CoreUpdaterDb_main_instance.png
@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
-oid sha256:2ccbc587b85f918b20502831627d589b1476b128870c8942b0e54eec1857a509
-size 319558
+oid sha256:e4e8b16346b3fbd16c03a169f2e216e6bceada2ef8d8efb8ce1a9c73cd68c013
+size 349415
diff --git a/plugins/CustomDimensions b/plugins/CustomDimensions
-Subproject d36a3d533408e8d4a1ea749f68a6e805334fa26
+Subproject 4f12c89fd19eb726d04781c38c5a14032197483
diff --git a/plugins/CustomVariables/Archiver.php b/plugins/CustomVariables/Archiver.php
index c580220a47..b8970b27e1 100644
--- a/plugins/CustomVariables/Archiver.php
+++ b/plugins/CustomVariables/Archiver.php
@@ -12,6 +12,7 @@ use Piwik\Config;
use Piwik\DataAccess\LogAggregator;
use Piwik\DataArray;
use Piwik\DataTable;
+use Piwik\DbHelper;
use Piwik\Metrics;
use Piwik\Tracker\GoalManager;
use Piwik\Tracker;
@@ -107,7 +108,9 @@ class Archiver extends \Piwik\Plugin\Archiver
// then we also query the "Product page view" price which was possibly recorded.
$additionalSelects = false;
- if (in_array($slot, array(\MatomoTracker::CVAR_INDEX_ECOMMERCE_ITEM_SKU, \MatomoTracker::CVAR_INDEX_ECOMMERCE_ITEM_NAME, \MatomoTracker::CVAR_INDEX_ECOMMERCE_ITEM_CATEGORY))) {
+ // Before Matomo 4.0.0 ecommerce views were tracked in custom variables
+ // So if Matomo was installed before still try to archive it the old way, as old data might be archived
+ if (version_compare(DbHelper::getInstallVersion(),'4.0.0-b2', '<') && in_array($slot, array(3, 4, 5))) {
$additionalSelects = array($this->getSelectAveragePrice());
}
$query = $this->getLogAggregator()->queryActionsByDimension($dimensions, $where, $additionalSelects);
@@ -119,7 +122,7 @@ class Archiver extends \Piwik\Plugin\Archiver
protected function getSelectAveragePrice()
{
- $field = "custom_var_v" . \MatomoTracker::CVAR_INDEX_ECOMMERCE_ITEM_PRICE;
+ $field = "custom_var_v2";
return LogAggregator::getSqlRevenue("AVG(log_link_visit_action." . $field . ")") . " as `" . Metrics::INDEX_ECOMMERCE_ITEM_PRICE_VIEWED . "`";
}
diff --git a/plugins/Ecommerce/Columns/ProductViewCategory.php b/plugins/Ecommerce/Columns/ProductViewCategory.php
new file mode 100644
index 0000000000..b047fe3c7c
--- /dev/null
+++ b/plugins/Ecommerce/Columns/ProductViewCategory.php
@@ -0,0 +1,132 @@
+<?php
+/**
+ * Matomo - free/libre analytics platform
+ *
+ * @link https://matomo.org
+ * @license http://www.gnu.org/licenses/gpl-3.0.html GPL v3 or later
+ *
+ */
+namespace Piwik\Plugins\Ecommerce\Columns;
+
+use Piwik\Columns\DimensionSegmentFactory;
+use Piwik\Columns\Discriminator;
+use Piwik\Columns\Join\ActionNameJoin;
+use Piwik\Common;
+use Piwik\Db;
+use Piwik\Log;
+use Piwik\Plugin\Dimension\ActionDimension;
+use Piwik\Plugin\Segment;
+use Piwik\Segment\SegmentsList;
+use Piwik\Tracker\Action;
+use Piwik\Tracker\Request;
+use Piwik\Tracker\Visitor;
+
+class ProductViewCategory extends ActionDimension
+{
+ protected $type = self::TYPE_TEXT;
+ protected $nameSingular = 'Ecommerce_ViewedProductCategory';
+ protected $columnName = 'idaction_product_cat';
+ protected $segmentName = 'productViewCategory';
+ protected $columnType = 'INT(10) UNSIGNED NULL';
+ protected $category = 'Goals_Ecommerce';
+ protected $categoryNumber = 1;
+
+ public function configureSegments(SegmentsList $segmentsList, DimensionSegmentFactory $dimensionSegmentFactory)
+ {
+ $individualProductCategorySegments = $this->getProductCategorySegments(ProductCategory::PRODUCT_CATEGORY_COUNT);
+
+ // add individual productCategoryN segments for use as a union (these segments are not available through the UI/API)
+ foreach ($individualProductCategorySegments as $i => $productCategoryName) {
+ $productCategoryColumnName = 'idaction_product_cat';
+ if ($i > 0) {
+ $productCategoryColumnName .= $i + 1;
+ }
+
+ $segment = new Segment();
+ $segment->setCategory($this->category);
+ $segment->setType('dimension');
+ $segment->setName($this->getName() . ' ' . ($i + 1));
+ $segment->setSegment($productCategoryName);
+ $segment->setSqlFilter('\\Piwik\\Tracker\\TableLogAction::getIdActionFromSegment');
+ $segment->setSqlSegment('log_link_visit_action.' . $productCategoryColumnName);
+ $segment->setIsInternal(true);
+ $segment->setSuggestedValuesCallback(function ($idSite, $maxValuesToReturn, $table) {
+ $values = [];
+ foreach ($table->getRows() as $row) {
+ foreach ($row->getColumn('actionDetails') as $actionRow) {
+ if (isset($actionRow['productViewCategories'])) {
+ $values = array_merge($values, $actionRow['productViewCategories']);
+ }
+ }
+ }
+ return $values;
+ });
+ $segmentsList->addSegment($dimensionSegmentFactory->createSegment($segment));
+ }
+
+ // add a union of these individual columns as productCategory
+ $segment = new Segment();
+ $segment->setCategory($this->category);
+ $segment->setType('dimension');
+ $segment->setSegment('productViewCategory');
+ $segment->setName($this->getName());
+ $segment->setUnionOfSegments($individualProductCategorySegments);
+ $segmentsList->addSegment($dimensionSegmentFactory->createSegment($segment));
+ }
+
+ private function getProductCategorySegments($categoryCount)
+ {
+ $result = [];
+ for ($i = 0; $i < $categoryCount; ++$i) {
+ $segmentName = 'productViewCategory' . ($i + 1);
+ $result[] = $segmentName;
+ }
+ return $result;
+ }
+
+ public function getDbColumnJoin()
+ {
+ return new ActionNameJoin();
+ }
+
+ public function getDbDiscriminator()
+ {
+ return new Discriminator('log_action', 'type', Action::TYPE_ECOMMERCE_ITEM_CATEGORY);
+ }
+
+ public function onLookupAction(Request $request, Action $action)
+ {
+ if ($request->hasParam('_pkc')) {
+ $categories = Common::unsanitizeInputValue($request->getParam('_pkc'));
+ $categories = $this->handleCategoryParam($categories);
+
+ return $categories[$this->categoryNumber - 1] ?? false;
+ }
+
+ // fall back to custom variables (might happen if old logs are replayed)
+ $customVariables = $request->getCustomVariablesInPageScope();
+ if (isset($customVariables['custom_var_k5']) && $customVariables['custom_var_k5'] === '_pkc') {
+ $categories = $this->handleCategoryParam($customVariables['custom_var_v5'] ?? '');
+
+ return $categories[$this->categoryNumber - 1] ?? false;
+ }
+
+ return parent::onLookupAction($request, $action);
+ }
+
+ protected function handleCategoryParam($categories)
+ {
+ if (0 === strpos($categories, '["')) {
+ $categories = array_values(array_filter(@\json_decode($categories, true)));
+ } else {
+ $categories = [$categories];
+ }
+
+ return $categories;
+ }
+
+ public function getActionId()
+ {
+ return Action::TYPE_ECOMMERCE_ITEM_CATEGORY;
+ }
+} \ No newline at end of file
diff --git a/plugins/Ecommerce/Columns/ProductViewCategory2.php b/plugins/Ecommerce/Columns/ProductViewCategory2.php
new file mode 100644
index 0000000000..b0ecbfda91
--- /dev/null
+++ b/plugins/Ecommerce/Columns/ProductViewCategory2.php
@@ -0,0 +1,23 @@
+<?php
+/**
+ * Matomo - free/libre analytics platform
+ *
+ * @link https://matomo.org
+ * @license http://www.gnu.org/licenses/gpl-3.0.html GPL v3 or later
+ *
+ */
+namespace Piwik\Plugins\Ecommerce\Columns;
+
+use Piwik\Columns\DimensionSegmentFactory;
+use Piwik\Segment\SegmentsList;
+
+class ProductViewCategory2 extends ProductViewCategory
+{
+ protected $columnName = 'idaction_product_cat2';
+ protected $categoryNumber = 2;
+
+ public function configureSegments(SegmentsList $segmentsList, DimensionSegmentFactory $dimensionSegmentFactory)
+ {
+ // handled in category 1
+ }
+} \ No newline at end of file
diff --git a/plugins/Ecommerce/Columns/ProductViewCategory3.php b/plugins/Ecommerce/Columns/ProductViewCategory3.php
new file mode 100644
index 0000000000..e8dd10e1b3
--- /dev/null
+++ b/plugins/Ecommerce/Columns/ProductViewCategory3.php
@@ -0,0 +1,23 @@
+<?php
+/**
+ * Matomo - free/libre analytics platform
+ *
+ * @link https://matomo.org
+ * @license http://www.gnu.org/licenses/gpl-3.0.html GPL v3 or later
+ *
+ */
+namespace Piwik\Plugins\Ecommerce\Columns;
+
+use Piwik\Columns\DimensionSegmentFactory;
+use Piwik\Segment\SegmentsList;
+
+class ProductViewCategory3 extends ProductViewCategory
+{
+ protected $columnName = 'idaction_product_cat3';
+ protected $categoryNumber = 3;
+
+ public function configureSegments(SegmentsList $segmentsList, DimensionSegmentFactory $dimensionSegmentFactory)
+ {
+ // handled in category 1
+ }
+} \ No newline at end of file
diff --git a/plugins/Ecommerce/Columns/ProductViewCategory4.php b/plugins/Ecommerce/Columns/ProductViewCategory4.php
new file mode 100644
index 0000000000..81fe96ccc1
--- /dev/null
+++ b/plugins/Ecommerce/Columns/ProductViewCategory4.php
@@ -0,0 +1,23 @@
+<?php
+/**
+ * Matomo - free/libre analytics platform
+ *
+ * @link https://matomo.org
+ * @license http://www.gnu.org/licenses/gpl-3.0.html GPL v3 or later
+ *
+ */
+namespace Piwik\Plugins\Ecommerce\Columns;
+
+use Piwik\Columns\DimensionSegmentFactory;
+use Piwik\Segment\SegmentsList;
+
+class ProductViewCategory4 extends ProductViewCategory
+{
+ protected $columnName = 'idaction_product_cat4';
+ protected $categoryNumber = 4;
+
+ public function configureSegments(SegmentsList $segmentsList, DimensionSegmentFactory $dimensionSegmentFactory)
+ {
+ // handled in category 1
+ }
+} \ No newline at end of file
diff --git a/plugins/Ecommerce/Columns/ProductViewCategory5.php b/plugins/Ecommerce/Columns/ProductViewCategory5.php
new file mode 100644
index 0000000000..21edfeffef
--- /dev/null
+++ b/plugins/Ecommerce/Columns/ProductViewCategory5.php
@@ -0,0 +1,23 @@
+<?php
+/**
+ * Matomo - free/libre analytics platform
+ *
+ * @link https://matomo.org
+ * @license http://www.gnu.org/licenses/gpl-3.0.html GPL v3 or later
+ *
+ */
+namespace Piwik\Plugins\Ecommerce\Columns;
+
+use Piwik\Columns\DimensionSegmentFactory;
+use Piwik\Segment\SegmentsList;
+
+class ProductViewCategory5 extends ProductViewCategory
+{
+ protected $columnName = 'idaction_product_cat5';
+ protected $categoryNumber = 5;
+
+ public function configureSegments(SegmentsList $segmentsList, DimensionSegmentFactory $dimensionSegmentFactory)
+ {
+ // handled in category 1
+ }
+} \ No newline at end of file
diff --git a/plugins/Ecommerce/Columns/ProductViewName.php b/plugins/Ecommerce/Columns/ProductViewName.php
new file mode 100644
index 0000000000..687a3cd52b
--- /dev/null
+++ b/plugins/Ecommerce/Columns/ProductViewName.php
@@ -0,0 +1,57 @@
+<?php
+/**
+ * Matomo - free/libre analytics platform
+ *
+ * @link https://matomo.org
+ * @license http://www.gnu.org/licenses/gpl-3.0.html GPL v3 or later
+ *
+ */
+namespace Piwik\Plugins\Ecommerce\Columns;
+
+use Piwik\Columns\Discriminator;
+use Piwik\Columns\Join\ActionNameJoin;
+use Piwik\Common;
+use Piwik\Plugin\Dimension\ActionDimension;
+use Piwik\Tracker\Action;
+use Piwik\Tracker\Request;
+
+class ProductViewName extends ActionDimension
+{
+ protected $type = self::TYPE_TEXT;
+ protected $nameSingular = 'Ecommerce_ViewedProductName';
+ protected $columnName = 'idaction_product_name';
+ protected $segmentName = 'productViewName';
+ protected $columnType = 'INT(10) UNSIGNED NULL';
+ protected $category = 'Goals_Ecommerce';
+ protected $sqlFilter = '\\Piwik\\Tracker\\TableLogAction::getIdActionFromSegment';
+
+ public function getDbColumnJoin()
+ {
+ return new ActionNameJoin();
+ }
+
+ public function getDbDiscriminator()
+ {
+ return new Discriminator('log_action', 'type', Action::TYPE_ECOMMERCE_ITEM_NAME);
+ }
+
+ public function onLookupAction(Request $request, Action $action)
+ {
+ if ($request->hasParam('_pkn')) {
+ return Common::unsanitizeInputValue($request->getParam('_pkn'));
+ }
+
+ // fall back to custom variables (might happen if old logs are replayed)
+ $customVariables = $request->getCustomVariablesInPageScope();
+ if (isset($customVariables['custom_var_k4']) && $customVariables['custom_var_k4'] === '_pkn') {
+ return $customVariables['custom_var_v4'] ?? false;
+ }
+
+ return parent::onLookupAction($request, $action);
+ }
+
+ public function getActionId()
+ {
+ return Action::TYPE_ECOMMERCE_ITEM_NAME;
+ }
+} \ No newline at end of file
diff --git a/plugins/Ecommerce/Columns/ProductViewPrice.php b/plugins/Ecommerce/Columns/ProductViewPrice.php
new file mode 100644
index 0000000000..2b8b96fbb6
--- /dev/null
+++ b/plugins/Ecommerce/Columns/ProductViewPrice.php
@@ -0,0 +1,40 @@
+<?php
+/**
+ * Matomo - free/libre analytics platform
+ *
+ * @link https://matomo.org
+ * @license http://www.gnu.org/licenses/gpl-3.0.html GPL v3 or later
+ *
+ */
+namespace Piwik\Plugins\Ecommerce\Columns;
+
+use Piwik\Plugin\Dimension\ActionDimension;
+use Piwik\Tracker\Action;
+use Piwik\Tracker\Request;
+use Piwik\Tracker\Visitor;
+
+class ProductViewPrice extends ActionDimension
+{
+ protected $type = self::TYPE_MONEY;
+ protected $nameSingular = 'Ecommerce_ViewedProductPrice';
+ protected $columnName = 'product_price';
+ protected $segmentName = 'productViewPrice';
+ protected $columnType = 'DOUBLE NULL';
+ protected $category = 'Goals_Ecommerce';
+
+ public function onNewAction(Request $request, Visitor $visitor, Action $action)
+ {
+ $price = $request->getParam('_pkp');
+ if (is_numeric($price)) {
+ return $price;
+ }
+
+ // fall back to custom variables (might happen if old logs are replayed)
+ $customVariables = $request->getCustomVariablesInPageScope();
+ if (isset($customVariables['custom_var_k2']) && $customVariables['custom_var_k2'] === '_pkp') {
+ return $customVariables['custom_var_v2'] ?? false;
+ }
+
+ return parent::onNewAction($request, $visitor, $action);
+ }
+} \ No newline at end of file
diff --git a/plugins/Ecommerce/Columns/ProductViewSku.php b/plugins/Ecommerce/Columns/ProductViewSku.php
new file mode 100644
index 0000000000..140f125801
--- /dev/null
+++ b/plugins/Ecommerce/Columns/ProductViewSku.php
@@ -0,0 +1,57 @@
+<?php
+/**
+ * Matomo - free/libre analytics platform
+ *
+ * @link https://matomo.org
+ * @license http://www.gnu.org/licenses/gpl-3.0.html GPL v3 or later
+ *
+ */
+namespace Piwik\Plugins\Ecommerce\Columns;
+
+use Piwik\Columns\Discriminator;
+use Piwik\Columns\Join\ActionNameJoin;
+use Piwik\Common;
+use Piwik\Plugin\Dimension\ActionDimension;
+use Piwik\Tracker\Action;
+use Piwik\Tracker\Request;
+
+class ProductViewSku extends ActionDimension
+{
+ protected $type = self::TYPE_TEXT;
+ protected $nameSingular = 'Ecommerce_ViewedProductSKU';
+ protected $columnName = 'idaction_product_sku';
+ protected $segmentName = 'productViewSku';
+ protected $columnType = 'INT(10) UNSIGNED NULL';
+ protected $category = 'Goals_Ecommerce';
+ protected $sqlFilter = '\\Piwik\\Tracker\\TableLogAction::getIdActionFromSegment';
+
+ public function getDbColumnJoin()
+ {
+ return new ActionNameJoin();
+ }
+
+ public function getDbDiscriminator()
+ {
+ return new Discriminator('log_action', 'type', Action::TYPE_ECOMMERCE_ITEM_SKU);
+ }
+
+ public function onLookupAction(Request $request, Action $action)
+ {
+ if ($request->hasParam('_pks')) {
+ return Common::unsanitizeInputValue($request->getParam('_pks'));
+ }
+
+ // fall back to custom variables (might happen if old logs are replayed)
+ $customVariables = $request->getCustomVariablesInPageScope();
+ if (isset($customVariables['custom_var_k3']) && $customVariables['custom_var_k3'] === '_pks') {
+ return $customVariables['custom_var_v3'] ?? false;
+ }
+
+ return parent::onLookupAction($request, $action);
+ }
+
+ public function getActionId()
+ {
+ return Action::TYPE_ECOMMERCE_ITEM_SKU;
+ }
+} \ No newline at end of file
diff --git a/plugins/Ecommerce/Ecommerce.php b/plugins/Ecommerce/Ecommerce.php
index 8b6a447482..ea5a6a559d 100644
--- a/plugins/Ecommerce/Ecommerce.php
+++ b/plugins/Ecommerce/Ecommerce.php
@@ -9,25 +9,43 @@
namespace Piwik\Plugins\Ecommerce;
use Piwik\Columns\ComputedMetricFactory;
use Piwik\Columns\MetricsList;
-use Piwik\Piwik;
+use Piwik\Common;
use Piwik\Plugin\ArchivedMetric;
use Piwik\Plugin\ComputedMetric;
+use Piwik\Plugins\Ecommerce\Columns\ProductCategory;
/**
*
*/
class Ecommerce extends \Piwik\Plugin
{
-
/**
* @see \Piwik\Plugin::registerEvents
*/
public function registerEvents()
{
- $hooks = array(
- 'Metric.addComputedMetrics' => 'addComputedMetrics'
- );
- return $hooks;
+ return [
+ 'Metric.addComputedMetrics' => 'addComputedMetrics',
+ 'Actions.getCustomActionDimensionFieldsAndJoins' => 'provideActionDimensionFields'
+ ];
+ }
+
+ public function provideActionDimensionFields(&$fields, &$joins)
+ {
+ $fields[] = 'log_link_visit_action.product_price as productViewPrice';
+ $fields[] = 'log_action_productview_name.name as productViewName';
+ $fields[] = 'log_action_productview_sku.name as productViewSku';
+ $joins[] = 'LEFT JOIN ' . Common::prefixTable('log_action') . ' AS log_action_productview_name
+ ON log_link_visit_action.idaction_product_name = log_action_productview_name.idaction';
+ $joins[] = 'LEFT JOIN ' . Common::prefixTable('log_action') . ' AS log_action_productview_sku
+ ON log_link_visit_action.idaction_product_sku = log_action_productview_sku.idaction';
+
+ for($i = 1; $i <= ProductCategory::PRODUCT_CATEGORY_COUNT; $i++) {
+ $suffix = $i > 1 ? $i : '';
+ $fields[] = "log_action_productview_category$i.name as productViewCategory$i";
+ $joins[] = "LEFT JOIN " . Common::prefixTable('log_action') . " AS log_action_productview_category$i
+ ON log_link_visit_action.idaction_product_cat$suffix = log_action_productview_category$i.idaction";
+ }
}
public function addComputedMetrics(MetricsList $list, ComputedMetricFactory $computedMetricFactory)
diff --git a/plugins/Ecommerce/VisitorDetails.php b/plugins/Ecommerce/VisitorDetails.php
index 220d7ba9fc..5b2e20a667 100644
--- a/plugins/Ecommerce/VisitorDetails.php
+++ b/plugins/Ecommerce/VisitorDetails.php
@@ -15,6 +15,7 @@ use Piwik\Date;
use Piwik\Db;
use Piwik\Metrics\Formatter;
use Piwik\Piwik;
+use Piwik\Plugins\Ecommerce\Columns\ProductCategory;
use Piwik\Plugins\Live\VisitorDetailsAbstract;
use Piwik\Site;
use Piwik\Tracker\Action;
@@ -39,6 +40,45 @@ class VisitorDetails extends VisitorDetailsAbstract
$visitor['totalAbandonedCartsItems'] = $ecommerceMetrics['totalAbandonedCartsItems'];
}
+ public function extendActionDetails(&$action, $nextAction, $visitorDetails)
+ {
+ if (empty($action['productViewName'])) {
+ unset($action['productViewName']);
+ }
+ if (empty($action['productViewSku'])) {
+ unset($action['productViewSku']);
+ }
+ if (empty($action['productViewPrice'])) {
+ unset($action['productViewPrice']);
+ }
+
+ $categories = [];
+ for($i = 1; $i <= ProductCategory::PRODUCT_CATEGORY_COUNT; $i++) {
+ if (!empty($action['productViewCategory'.$i])) {
+ $categories[] = $action['productViewCategory'.$i];
+ }
+
+ unset($action['productViewCategory'.$i]);
+ }
+ if (!empty($categories)) {
+ $action['productViewCategories'] = $categories;
+ }
+ }
+
+ public function renderActionTooltip($action, $visitInfo)
+ {
+ if (!isset($action['productViewName']) && !isset($action['productViewSku']) &&
+ !isset($action['productViewPrice']) && !isset($action['productViewCategories'])) {
+ return [];
+ }
+
+ $view = new View('@Ecommerce/_actionTooltip');
+ $view->sendHeadersWhenRendering = false;
+ $view->action = $action;
+ $view->visitInfo = $visitInfo;
+ return [[ 15, $view->render() ]];
+ }
+
public function provideActionsForVisitIds(&$actions, $idVisits)
{
$ecommerceDetails = $this->queryEcommerceConversionsForVisits($idVisits);
diff --git a/plugins/Ecommerce/lang/en.json b/plugins/Ecommerce/lang/en.json
index bd2960eee4..e8cfa5ec1d 100644
--- a/plugins/Ecommerce/lang/en.json
+++ b/plugins/Ecommerce/lang/en.json
@@ -5,6 +5,10 @@
"Order": "Order",
"OrderId": "Order ID",
"Orders": "Orders",
+ "ViewedProductCategory": "Viewed Product Category",
+ "ViewedProductName": "Viewed Product Name",
+ "ViewedProductPrice": "Viewed Product Price",
+ "ViewedProductSKU": "Viewed Product SKU",
"SalesBy": "Sales by %s",
"SalesAdjective": "Sales %s",
"NumberOfItems": "Number of Items in Cart",
diff --git a/plugins/Ecommerce/templates/_actionTooltip.twig b/plugins/Ecommerce/templates/_actionTooltip.twig
new file mode 100644
index 0000000000..2db9e51ece
--- /dev/null
+++ b/plugins/Ecommerce/templates/_actionTooltip.twig
@@ -0,0 +1,15 @@
+
+{% apply spaceless %}
+{% if action.productViewName is defined %}
+{{ 'Ecommerce_ViewedProductName'|translate }}: {{ action.productViewName }}
+{% endif %}
+{% if action.productViewSku is defined %}
+{{ 'Ecommerce_ViewedProductSKU'|translate }}: {{ action.productViewSku }}
+{% endif %}
+{% if action.productViewPrice is defined %}
+{{ 'Ecommerce_ViewedProductPrice'|translate }}: {{ action.productViewPrice|money(visitInfo.idSite) }}
+{% endif %}
+{% if action.productViewCategories is defined %}
+{{ 'Ecommerce_ViewedProductCategory'|translate }}: {{ action.productViewCategories|implode(', ') }}
+{% endif %}
+{% endapply %} \ No newline at end of file
diff --git a/plugins/Ecommerce/tests/System/expected/test_ecommerceOrderWithItems_AbandonedCarts__Goals.getItemsCategory_day.xml b/plugins/Ecommerce/tests/System/expected/test_ecommerceOrderWithItems_AbandonedCarts__Goals.getItemsCategory_day.xml
index 68c9d35408..5ebc8bab40 100644
--- a/plugins/Ecommerce/tests/System/expected/test_ecommerceOrderWithItems_AbandonedCarts__Goals.getItemsCategory_day.xml
+++ b/plugins/Ecommerce/tests/System/expected/test_ecommerceOrderWithItems_AbandonedCarts__Goals.getItemsCategory_day.xml
@@ -4,8 +4,8 @@
<label>Category TWO LEFT in cart</label>
<revenue>4000</revenue>
<quantity>4</quantity>
- <nb_uniq_visitors>1</nb_uniq_visitors>
<nb_visits>2</nb_visits>
+ <nb_uniq_visitors>1</nb_uniq_visitors>
<nb_actions>2</nb_actions>
<abandoned_carts>2</abandoned_carts>
<avg_price>1000</avg_price>
@@ -16,8 +16,8 @@
<label>second category</label>
<revenue>4000</revenue>
<quantity>4</quantity>
- <nb_uniq_visitors>1</nb_uniq_visitors>
<nb_visits>2</nb_visits>
+ <nb_uniq_visitors>1</nb_uniq_visitors>
<nb_actions>2</nb_actions>
<abandoned_carts>2</abandoned_carts>
<avg_price>1000</avg_price>
@@ -28,8 +28,8 @@
<label>Product Category not defined</label>
<revenue>1000.22</revenue>
<quantity>2</quantity>
- <nb_uniq_visitors>1</nb_uniq_visitors>
<nb_visits>3</nb_visits>
+ <nb_uniq_visitors>1</nb_uniq_visitors>
<nb_actions>5</nb_actions>
<abandoned_carts>2</abandoned_carts>
<avg_price>500.11</avg_price>
@@ -40,8 +40,8 @@
<label>Electronics &amp; Cameras</label>
<revenue>20</revenue>
<quantity>2</quantity>
- <nb_uniq_visitors>2</nb_uniq_visitors>
<nb_visits>3</nb_visits>
+ <nb_uniq_visitors>2</nb_uniq_visitors>
<nb_actions>6</nb_actions>
<abandoned_carts>2</abandoned_carts>
<avg_price>10</avg_price>
@@ -50,8 +50,8 @@
</row>
<row>
<label>Multiple Category 1</label>
- <nb_uniq_visitors>1</nb_uniq_visitors>
<nb_visits>1</nb_visits>
+ <nb_uniq_visitors>1</nb_uniq_visitors>
<nb_actions>1</nb_actions>
<avg_price>0</avg_price>
<avg_quantity>0</avg_quantity>
@@ -59,8 +59,8 @@
</row>
<row>
<label>Multiple Category 2</label>
- <nb_uniq_visitors>1</nb_uniq_visitors>
<nb_visits>1</nb_visits>
+ <nb_uniq_visitors>1</nb_uniq_visitors>
<nb_actions>1</nb_actions>
<avg_price>0</avg_price>
<avg_quantity>0</avg_quantity>
@@ -68,8 +68,8 @@
</row>
<row>
<label>Multiple Category 4</label>
- <nb_uniq_visitors>1</nb_uniq_visitors>
<nb_visits>1</nb_visits>
+ <nb_uniq_visitors>1</nb_uniq_visitors>
<nb_actions>1</nb_actions>
<avg_price>0</avg_price>
<avg_quantity>0</avg_quantity>
@@ -77,8 +77,8 @@
</row>
<row>
<label>Multiple Category 5</label>
- <nb_uniq_visitors>1</nb_uniq_visitors>
<nb_visits>1</nb_visits>
+ <nb_uniq_visitors>1</nb_uniq_visitors>
<nb_actions>1</nb_actions>
<avg_price>0</avg_price>
<avg_quantity>0</avg_quantity>
diff --git a/plugins/Ecommerce/tests/System/expected/test_ecommerceOrderWithItems_AbandonedCarts__Goals.getItemsName_day.xml b/plugins/Ecommerce/tests/System/expected/test_ecommerceOrderWithItems_AbandonedCarts__Goals.getItemsName_day.xml
index 76195df336..a36d584040 100644
--- a/plugins/Ecommerce/tests/System/expected/test_ecommerceOrderWithItems_AbandonedCarts__Goals.getItemsName_day.xml
+++ b/plugins/Ecommerce/tests/System/expected/test_ecommerceOrderWithItems_AbandonedCarts__Goals.getItemsName_day.xml
@@ -4,8 +4,8 @@
<label>PRODUCT TWO LEFT in cart</label>
<revenue>4000</revenue>
<quantity>4</quantity>
- <nb_uniq_visitors>1</nb_uniq_visitors>
<nb_visits>2</nb_visits>
+ <nb_uniq_visitors>1</nb_uniq_visitors>
<nb_actions>2</nb_actions>
<abandoned_carts>2</abandoned_carts>
<avg_price>1000</avg_price>
@@ -25,8 +25,8 @@
<label>PRODUCT THREE LEFT in cart</label>
<revenue>20</revenue>
<quantity>2</quantity>
- <nb_uniq_visitors>1</nb_uniq_visitors>
<nb_visits>2</nb_visits>
+ <nb_uniq_visitors>1</nb_uniq_visitors>
<nb_actions>4</nb_actions>
<abandoned_carts>2</abandoned_carts>
<avg_price>10</avg_price>
@@ -35,8 +35,8 @@
</row>
<row>
<label>PRODUCT name</label>
- <nb_uniq_visitors>1</nb_uniq_visitors>
<nb_visits>2</nb_visits>
+ <nb_uniq_visitors>1</nb_uniq_visitors>
<nb_actions>5</nb_actions>
<avg_price>832.78</avg_price>
<avg_quantity>0</avg_quantity>
diff --git a/plugins/Ecommerce/tests/System/expected/test_ecommerceOrderWithItems_AbandonedCarts__Goals.getItemsSku_day.xml b/plugins/Ecommerce/tests/System/expected/test_ecommerceOrderWithItems_AbandonedCarts__Goals.getItemsSku_day.xml
index ca2b2296ed..1815a93d1b 100644
--- a/plugins/Ecommerce/tests/System/expected/test_ecommerceOrderWithItems_AbandonedCarts__Goals.getItemsSku_day.xml
+++ b/plugins/Ecommerce/tests/System/expected/test_ecommerceOrderWithItems_AbandonedCarts__Goals.getItemsSku_day.xml
@@ -4,8 +4,8 @@
<label>SKU IN ABANDONED CART TWO</label>
<revenue>4000</revenue>
<quantity>4</quantity>
- <nb_uniq_visitors>1</nb_uniq_visitors>
<nb_visits>2</nb_visits>
+ <nb_uniq_visitors>1</nb_uniq_visitors>
<nb_actions>2</nb_actions>
<abandoned_carts>2</abandoned_carts>
<avg_price>1000</avg_price>
@@ -25,8 +25,8 @@
<label>SKU VERY nice indeed</label>
<revenue>20</revenue>
<quantity>2</quantity>
- <nb_uniq_visitors>1</nb_uniq_visitors>
<nb_visits>3</nb_visits>
+ <nb_uniq_visitors>1</nb_uniq_visitors>
<nb_actions>8</nb_actions>
<abandoned_carts>2</abandoned_carts>
<avg_price>10</avg_price>
@@ -35,8 +35,8 @@
</row>
<row>
<label>SKU2</label>
- <nb_uniq_visitors>1</nb_uniq_visitors>
<nb_visits>1</nb_visits>
+ <nb_uniq_visitors>1</nb_uniq_visitors>
<nb_actions>1</nb_actions>
<avg_price>1111.11</avg_price>
<avg_quantity>0</avg_quantity>
diff --git a/plugins/Ecommerce/tests/System/expected/test_ecommerceOrderWithItems_LiveEcommerceStatusOrdered__Live.getLastVisitsDetails_day.xml b/plugins/Ecommerce/tests/System/expected/test_ecommerceOrderWithItems_LiveEcommerceStatusOrdered__Live.getLastVisitsDetails_day.xml
index 1650d5e51f..cbbcfdfb97 100644
--- a/plugins/Ecommerce/tests/System/expected/test_ecommerceOrderWithItems_LiveEcommerceStatusOrdered__Live.getLastVisitsDetails_day.xml
+++ b/plugins/Ecommerce/tests/System/expected/test_ecommerceOrderWithItems_LiveEcommerceStatusOrdered__Live.getLastVisitsDetails_day.xml
@@ -180,6 +180,9 @@
<pageId>14</pageId>
+ <productViewPrice>999</productViewPrice>
+ <productViewName>PRODUCT THREE LEFT in cart</productViewName>
+ <productViewSku>SKU VERY nice indeed</productViewSku>
<bandwidth />
<timeSpent>180</timeSpent>
<timeSpentPretty>3 min 0s</timeSpentPretty>
@@ -189,24 +192,6 @@
<icon />
<iconSVG>plugins/Morpheus/images/action.svg</iconSVG>
- <customVariables>
- <row>
- <customVariablePageName2>_pkp</customVariablePageName2>
- <customVariablePageValue2>999</customVariablePageValue2>
- </row>
- <row>
- <customVariablePageName3>_pks</customVariablePageName3>
- <customVariablePageValue3>SKU VERY nice indeed</customVariablePageValue3>
- </row>
- <row>
- <customVariablePageName4>_pkn</customVariablePageName4>
- <customVariablePageValue4>PRODUCT THREE LEFT in cart</customVariablePageValue4>
- </row>
- <row>
- <customVariablePageName5>_pkc</customVariablePageName5>
- <customVariablePageValue5 />
- </row>
- </customVariables>
<bandwidth_pretty>0 M</bandwidth_pretty>
</row>
<row>
@@ -217,6 +202,9 @@
<pageId>15</pageId>
+ <productViewPrice>333</productViewPrice>
+ <productViewName>PRODUCT THREE LEFT in cart</productViewName>
+ <productViewSku>SKU VERY nice indeed</productViewSku>
<bandwidth />
<timeSpent>180</timeSpent>
<timeSpentPretty>3 min 0s</timeSpentPretty>
@@ -226,24 +214,6 @@
<icon />
<iconSVG>plugins/Morpheus/images/action.svg</iconSVG>
- <customVariables>
- <row>
- <customVariablePageName2>_pkp</customVariablePageName2>
- <customVariablePageValue2>333</customVariablePageValue2>
- </row>
- <row>
- <customVariablePageName3>_pks</customVariablePageName3>
- <customVariablePageValue3>SKU VERY nice indeed</customVariablePageValue3>
- </row>
- <row>
- <customVariablePageName4>_pkn</customVariablePageName4>
- <customVariablePageValue4>PRODUCT THREE LEFT in cart</customVariablePageValue4>
- </row>
- <row>
- <customVariablePageName5>_pkc</customVariablePageName5>
- <customVariablePageValue5 />
- </row>
- </customVariables>
<bandwidth_pretty>0 M</bandwidth_pretty>
</row>
<row>
@@ -254,6 +224,8 @@
<pageId>16</pageId>
+ <productViewName>PRODUCT TWO LEFT in cart</productViewName>
+ <productViewSku>SKU IN ABANDONED CART TWO</productViewSku>
<bandwidth />
<timeSpent>361</timeSpent>
<timeSpentPretty>6 min 1s</timeSpentPretty>
@@ -263,20 +235,10 @@
<icon />
<iconSVG>plugins/Morpheus/images/action.svg</iconSVG>
- <customVariables>
- <row>
- <customVariablePageName3>_pks</customVariablePageName3>
- <customVariablePageValue3>SKU IN ABANDONED CART TWO</customVariablePageValue3>
- </row>
- <row>
- <customVariablePageName4>_pkn</customVariablePageName4>
- <customVariablePageValue4>PRODUCT TWO LEFT in cart</customVariablePageValue4>
- </row>
- <row>
- <customVariablePageName5>_pkc</customVariablePageName5>
- <customVariablePageValue5>[&quot;Category TWO LEFT in cart&quot;,&quot;second category&quot;]</customVariablePageValue5>
- </row>
- </customVariables>
+ <productViewCategories>
+ <row>Category TWO LEFT in cart</row>
+ <row>second category</row>
+ </productViewCategories>
<bandwidth_pretty>0 M</bandwidth_pretty>
</row>
<row>
diff --git a/plugins/Ecommerce/tests/System/expected/test_ecommerceOrderWithItems_Metadata_ItemsCategory__API.getProcessedReport_day.xml b/plugins/Ecommerce/tests/System/expected/test_ecommerceOrderWithItems_Metadata_ItemsCategory__API.getProcessedReport_day.xml
index b5f207b970..79ae7dbac9 100644
--- a/plugins/Ecommerce/tests/System/expected/test_ecommerceOrderWithItems_Metadata_ItemsCategory__API.getProcessedReport_day.xml
+++ b/plugins/Ecommerce/tests/System/expected/test_ecommerceOrderWithItems_Metadata_ItemsCategory__API.getProcessedReport_day.xml
@@ -123,8 +123,8 @@
<quantity>18</quantity>
<price>4111.22</price>
<orders>8</orders>
- <nb_uniq_visitors>9</nb_uniq_visitors>
<nb_visits>14</nb_visits>
+ <nb_uniq_visitors>9</nb_uniq_visitors>
<nb_actions>19</nb_actions>
</reportTotal>
</result> \ No newline at end of file
diff --git a/plugins/Ecommerce/tests/System/expected/test_ecommerceOrderWithItems_Metadata_ItemsSku__API.getProcessedReport_day.xml b/plugins/Ecommerce/tests/System/expected/test_ecommerceOrderWithItems_Metadata_ItemsSku__API.getProcessedReport_day.xml
index 6aadc31921..9c345af89b 100644
--- a/plugins/Ecommerce/tests/System/expected/test_ecommerceOrderWithItems_Metadata_ItemsSku__API.getProcessedReport_day.xml
+++ b/plugins/Ecommerce/tests/System/expected/test_ecommerceOrderWithItems_Metadata_ItemsSku__API.getProcessedReport_day.xml
@@ -83,8 +83,8 @@
<quantity>10</quantity>
<price>2111.22</price>
<orders>4</orders>
- <nb_uniq_visitors>3</nb_uniq_visitors>
<nb_visits>6</nb_visits>
+ <nb_uniq_visitors>3</nb_uniq_visitors>
<nb_actions>11</nb_actions>
</reportTotal>
</result> \ No newline at end of file
diff --git a/plugins/Ecommerce/tests/System/expected/test_ecommerceOrderWithItems_SegmentCountryIsFr__Goals.getItemsCategory_day.xml b/plugins/Ecommerce/tests/System/expected/test_ecommerceOrderWithItems_SegmentCountryIsFr__Goals.getItemsCategory_day.xml
index 02187588c4..5747aa5989 100644
--- a/plugins/Ecommerce/tests/System/expected/test_ecommerceOrderWithItems_SegmentCountryIsFr__Goals.getItemsCategory_day.xml
+++ b/plugins/Ecommerce/tests/System/expected/test_ecommerceOrderWithItems_SegmentCountryIsFr__Goals.getItemsCategory_day.xml
@@ -2,8 +2,8 @@
<result>
<row>
<label>Electronics &amp; Cameras</label>
- <nb_uniq_visitors>2</nb_uniq_visitors>
<nb_visits>2</nb_visits>
+ <nb_uniq_visitors>2</nb_uniq_visitors>
<nb_actions>3</nb_actions>
<avg_price>888.56</avg_price>
<avg_quantity>0</avg_quantity>
@@ -11,8 +11,8 @@
</row>
<row>
<label>Multiple Category 1</label>
- <nb_uniq_visitors>1</nb_uniq_visitors>
<nb_visits>1</nb_visits>
+ <nb_uniq_visitors>1</nb_uniq_visitors>
<nb_actions>1</nb_actions>
<avg_price>0</avg_price>
<avg_quantity>0</avg_quantity>
@@ -20,8 +20,8 @@
</row>
<row>
<label>Multiple Category 2</label>
- <nb_uniq_visitors>1</nb_uniq_visitors>
<nb_visits>1</nb_visits>
+ <nb_uniq_visitors>1</nb_uniq_visitors>
<nb_actions>1</nb_actions>
<avg_price>0</avg_price>
<avg_quantity>0</avg_quantity>
@@ -29,8 +29,8 @@
</row>
<row>
<label>Multiple Category 4</label>
- <nb_uniq_visitors>1</nb_uniq_visitors>
<nb_visits>1</nb_visits>
+ <nb_uniq_visitors>1</nb_uniq_visitors>
<nb_actions>1</nb_actions>
<avg_price>0</avg_price>
<avg_quantity>0</avg_quantity>
@@ -38,8 +38,8 @@
</row>
<row>
<label>Multiple Category 5</label>
- <nb_uniq_visitors>1</nb_uniq_visitors>
<nb_visits>1</nb_visits>
+ <nb_uniq_visitors>1</nb_uniq_visitors>
<nb_actions>1</nb_actions>
<avg_price>0</avg_price>
<avg_quantity>0</avg_quantity>
@@ -47,8 +47,8 @@
</row>
<row>
<label>Product Category not defined</label>
- <nb_uniq_visitors>1</nb_uniq_visitors>
<nb_visits>1</nb_visits>
+ <nb_uniq_visitors>1</nb_uniq_visitors>
<nb_actions>1</nb_actions>
<avg_price>888</avg_price>
<avg_quantity>0</avg_quantity>
diff --git a/plugins/Ecommerce/tests/System/expected/test_ecommerceOrderWithItems_SegmentCountryIsFr__Goals.getItemsName_day.xml b/plugins/Ecommerce/tests/System/expected/test_ecommerceOrderWithItems_SegmentCountryIsFr__Goals.getItemsName_day.xml
index bf093d7b73..86d4007206 100644
--- a/plugins/Ecommerce/tests/System/expected/test_ecommerceOrderWithItems_SegmentCountryIsFr__Goals.getItemsName_day.xml
+++ b/plugins/Ecommerce/tests/System/expected/test_ecommerceOrderWithItems_SegmentCountryIsFr__Goals.getItemsName_day.xml
@@ -2,8 +2,8 @@
<result>
<row>
<label>PRODUCT name</label>
- <nb_uniq_visitors>1</nb_uniq_visitors>
<nb_visits>1</nb_visits>
+ <nb_uniq_visitors>1</nb_uniq_visitors>
<nb_actions>4</nb_actions>
<avg_price>888.37</avg_price>
<avg_quantity>0</avg_quantity>
diff --git a/plugins/Ecommerce/tests/System/expected/test_ecommerceOrderWithItems_SegmentCountryIsFr__Goals.getItemsSku_day.xml b/plugins/Ecommerce/tests/System/expected/test_ecommerceOrderWithItems_SegmentCountryIsFr__Goals.getItemsSku_day.xml
index 505b4d6109..5a693793cb 100644
--- a/plugins/Ecommerce/tests/System/expected/test_ecommerceOrderWithItems_SegmentCountryIsFr__Goals.getItemsSku_day.xml
+++ b/plugins/Ecommerce/tests/System/expected/test_ecommerceOrderWithItems_SegmentCountryIsFr__Goals.getItemsSku_day.xml
@@ -2,8 +2,8 @@
<result>
<row>
<label>SKU2</label>
- <nb_uniq_visitors>1</nb_uniq_visitors>
<nb_visits>1</nb_visits>
+ <nb_uniq_visitors>1</nb_uniq_visitors>
<nb_actions>1</nb_actions>
<avg_price>1111.11</avg_price>
<avg_quantity>0</avg_quantity>
@@ -11,8 +11,8 @@
</row>
<row>
<label>SKU VERY nice indeed</label>
- <nb_uniq_visitors>1</nb_uniq_visitors>
<nb_visits>1</nb_visits>
+ <nb_uniq_visitors>1</nb_uniq_visitors>
<nb_actions>3</nb_actions>
<avg_price>777</avg_price>
<avg_quantity>0</avg_quantity>
diff --git a/plugins/Ecommerce/tests/System/expected/test_ecommerceOrderWithItems_SegmentPageUrlContains__Goals.getItemsCategory_day.xml b/plugins/Ecommerce/tests/System/expected/test_ecommerceOrderWithItems_SegmentPageUrlContains__Goals.getItemsCategory_day.xml
index ceefbebe55..7b50d0b1c3 100644
--- a/plugins/Ecommerce/tests/System/expected/test_ecommerceOrderWithItems_SegmentPageUrlContains__Goals.getItemsCategory_day.xml
+++ b/plugins/Ecommerce/tests/System/expected/test_ecommerceOrderWithItems_SegmentPageUrlContains__Goals.getItemsCategory_day.xml
@@ -5,8 +5,8 @@
<revenue>2500</revenue>
<quantity>3</quantity>
<orders>2</orders>
- <nb_uniq_visitors>2</nb_uniq_visitors>
<nb_visits>3</nb_visits>
+ <nb_uniq_visitors>2</nb_uniq_visitors>
<nb_actions>6</nb_actions>
<avg_price>1000</avg_price>
<avg_quantity>1.5</avg_quantity>
@@ -17,8 +17,8 @@
<revenue>1000</revenue>
<quantity>2</quantity>
<orders>1</orders>
- <nb_uniq_visitors>1</nb_uniq_visitors>
<nb_visits>1</nb_visits>
+ <nb_uniq_visitors>1</nb_uniq_visitors>
<nb_actions>1</nb_actions>
<avg_price>500</avg_price>
<avg_quantity>2</avg_quantity>
@@ -29,8 +29,8 @@
<revenue>1000</revenue>
<quantity>2</quantity>
<orders>1</orders>
- <nb_uniq_visitors>1</nb_uniq_visitors>
<nb_visits>1</nb_visits>
+ <nb_uniq_visitors>1</nb_uniq_visitors>
<nb_actions>1</nb_actions>
<avg_price>500</avg_price>
<avg_quantity>2</avg_quantity>
@@ -41,8 +41,8 @@
<revenue>1000</revenue>
<quantity>2</quantity>
<orders>1</orders>
- <nb_uniq_visitors>1</nb_uniq_visitors>
<nb_visits>1</nb_visits>
+ <nb_uniq_visitors>1</nb_uniq_visitors>
<nb_actions>1</nb_actions>
<avg_price>500</avg_price>
<avg_quantity>2</avg_quantity>
@@ -53,8 +53,8 @@
<revenue>1000</revenue>
<quantity>2</quantity>
<orders>1</orders>
- <nb_uniq_visitors>1</nb_uniq_visitors>
<nb_visits>1</nb_visits>
+ <nb_uniq_visitors>1</nb_uniq_visitors>
<nb_actions>1</nb_actions>
<avg_price>500</avg_price>
<avg_quantity>2</avg_quantity>
@@ -65,8 +65,8 @@
<revenue>611.22</revenue>
<quantity>7</quantity>
<orders>2</orders>
- <nb_uniq_visitors>1</nb_uniq_visitors>
<nb_visits>3</nb_visits>
+ <nb_uniq_visitors>1</nb_uniq_visitors>
<nb_actions>5</nb_actions>
<avg_price>55.61</avg_price>
<avg_quantity>3.5</avg_quantity>
@@ -74,8 +74,8 @@
</row>
<row>
<label>Category TWO LEFT in cart</label>
- <nb_uniq_visitors>1</nb_uniq_visitors>
<nb_visits>2</nb_visits>
+ <nb_uniq_visitors>1</nb_uniq_visitors>
<nb_actions>2</nb_actions>
<avg_price>0</avg_price>
<avg_quantity>0</avg_quantity>
@@ -83,8 +83,8 @@
</row>
<row>
<label>second category</label>
- <nb_uniq_visitors>1</nb_uniq_visitors>
<nb_visits>2</nb_visits>
+ <nb_uniq_visitors>1</nb_uniq_visitors>
<nb_actions>2</nb_actions>
<avg_price>0</avg_price>
<avg_quantity>0</avg_quantity>
diff --git a/plugins/Ecommerce/tests/System/expected/test_ecommerceOrderWithItems_SegmentPageUrlContains__Goals.getItemsName_day.xml b/plugins/Ecommerce/tests/System/expected/test_ecommerceOrderWithItems_SegmentPageUrlContains__Goals.getItemsName_day.xml
index 8beefcdba1..4de9730ec6 100644
--- a/plugins/Ecommerce/tests/System/expected/test_ecommerceOrderWithItems_SegmentPageUrlContains__Goals.getItemsName_day.xml
+++ b/plugins/Ecommerce/tests/System/expected/test_ecommerceOrderWithItems_SegmentPageUrlContains__Goals.getItemsName_day.xml
@@ -14,8 +14,8 @@
<revenue>1011.22</revenue>
<quantity>3</quantity>
<orders>2</orders>
- <nb_uniq_visitors>1</nb_uniq_visitors>
<nb_visits>2</nb_visits>
+ <nb_uniq_visitors>1</nb_uniq_visitors>
<nb_actions>5</nb_actions>
<avg_price>255.61</avg_price>
<avg_quantity>1.5</avg_quantity>
@@ -32,8 +32,8 @@
</row>
<row>
<label>PRODUCT TWO LEFT in cart</label>
- <nb_uniq_visitors>1</nb_uniq_visitors>
<nb_visits>2</nb_visits>
+ <nb_uniq_visitors>1</nb_uniq_visitors>
<nb_actions>2</nb_actions>
<avg_price>0</avg_price>
<avg_quantity>0</avg_quantity>
@@ -41,8 +41,8 @@
</row>
<row>
<label>PRODUCT THREE LEFT in cart</label>
- <nb_uniq_visitors>1</nb_uniq_visitors>
<nb_visits>2</nb_visits>
+ <nb_uniq_visitors>1</nb_uniq_visitors>
<nb_actions>4</nb_actions>
<avg_price>666</avg_price>
<avg_quantity>0</avg_quantity>
diff --git a/plugins/Ecommerce/tests/System/expected/test_ecommerceOrderWithItems_SegmentPageUrlContains__Goals.getItemsSku_day.xml b/plugins/Ecommerce/tests/System/expected/test_ecommerceOrderWithItems_SegmentPageUrlContains__Goals.getItemsSku_day.xml
index 83b6b8ab73..0d55589eb7 100644
--- a/plugins/Ecommerce/tests/System/expected/test_ecommerceOrderWithItems_SegmentPageUrlContains__Goals.getItemsSku_day.xml
+++ b/plugins/Ecommerce/tests/System/expected/test_ecommerceOrderWithItems_SegmentPageUrlContains__Goals.getItemsSku_day.xml
@@ -5,8 +5,8 @@
<revenue>1500</revenue>
<quantity>1</quantity>
<orders>1</orders>
- <nb_uniq_visitors>1</nb_uniq_visitors>
<nb_visits>1</nb_visits>
+ <nb_uniq_visitors>1</nb_uniq_visitors>
<nb_actions>1</nb_actions>
<avg_price>1500</avg_price>
<avg_quantity>1</avg_quantity>
@@ -17,8 +17,8 @@
<revenue>1011.22</revenue>
<quantity>3</quantity>
<orders>2</orders>
- <nb_uniq_visitors>1</nb_uniq_visitors>
<nb_visits>3</nb_visits>
+ <nb_uniq_visitors>1</nb_uniq_visitors>
<nb_actions>8</nb_actions>
<avg_price>255.61</avg_price>
<avg_quantity>1.5</avg_quantity>
@@ -35,8 +35,8 @@
</row>
<row>
<label>SKU IN ABANDONED CART TWO</label>
- <nb_uniq_visitors>1</nb_uniq_visitors>
<nb_visits>2</nb_visits>
+ <nb_uniq_visitors>1</nb_uniq_visitors>
<nb_actions>2</nb_actions>
<avg_price>0</avg_price>
<avg_quantity>0</avg_quantity>
diff --git a/plugins/Ecommerce/tests/System/expected/test_ecommerceOrderWithItems__CustomVariables.getCustomVariables_day.xml b/plugins/Ecommerce/tests/System/expected/test_ecommerceOrderWithItems__CustomVariables.getCustomVariables_day.xml
index f12f1fc15e..0610027789 100644
--- a/plugins/Ecommerce/tests/System/expected/test_ecommerceOrderWithItems__CustomVariables.getCustomVariables_day.xml
+++ b/plugins/Ecommerce/tests/System/expected/test_ecommerceOrderWithItems__CustomVariables.getCustomVariables_day.xml
@@ -159,124 +159,6 @@
</subtable>
</row>
<row>
- <label>_pkn</label>
- <nb_visits>6</nb_visits>
- <nb_actions>11</nb_actions>
- <slots>
- <row>
- <scope>page</scope>
- <index>4</index>
- </row>
- </slots>
- <segment>customVariableName==_pkn</segment>
- <subtable>
- <row>
- <label>PRODUCT name</label>
- <nb_visits>2</nb_visits>
- <nb_actions>5</nb_actions>
- <price_viewed>832.78</price_viewed>
- </row>
- <row>
- <label>PRODUCT THREE LEFT in cart</label>
- <nb_visits>2</nb_visits>
- <nb_actions>4</nb_actions>
- <price_viewed>666</price_viewed>
- </row>
- <row>
- <label>PRODUCT TWO LEFT in cart</label>
- <nb_visits>2</nb_visits>
- <nb_actions>2</nb_actions>
- </row>
- </subtable>
- </row>
- <row>
- <label>_pks</label>
- <nb_visits>6</nb_visits>
- <nb_actions>11</nb_actions>
- <slots>
- <row>
- <scope>page</scope>
- <index>3</index>
- </row>
- </slots>
- <segment>customVariableName==_pks</segment>
- <subtable>
- <row>
- <label>SKU VERY nice indeed</label>
- <nb_visits>3</nb_visits>
- <nb_actions>8</nb_actions>
- <price_viewed>697.71</price_viewed>
- </row>
- <row>
- <label>SKU IN ABANDONED CART TWO</label>
- <nb_visits>2</nb_visits>
- <nb_actions>2</nb_actions>
- </row>
- <row>
- <label>SKU2</label>
- <nb_visits>1</nb_visits>
- <nb_actions>1</nb_actions>
- <price_viewed>1111.11</price_viewed>
- </row>
- </subtable>
- </row>
- <row>
- <label>_pkc</label>
- <nb_visits>5</nb_visits>
- <nb_actions>10</nb_actions>
- <slots>
- <row>
- <scope>page</scope>
- <index>5</index>
- </row>
- </slots>
- <segment>customVariableName==_pkc</segment>
- <subtable>
- <row>
- <label>Electronics &amp; Cameras</label>
- <nb_visits>3</nb_visits>
- <nb_actions>6</nb_actions>
- <price_viewed>814.37</price_viewed>
- </row>
- <row>
- <label>Value not defined</label>
- <nb_visits>3</nb_visits>
- <nb_actions>5</nb_actions>
- <price_viewed>710.4</price_viewed>
- </row>
- <row>
- <label>Category TWO LEFT in cart</label>
- <nb_visits>2</nb_visits>
- <nb_actions>2</nb_actions>
- </row>
- <row>
- <label>second category</label>
- <nb_visits>2</nb_visits>
- <nb_actions>2</nb_actions>
- </row>
- <row>
- <label>Multiple Category 1</label>
- <nb_visits>1</nb_visits>
- <nb_actions>1</nb_actions>
- </row>
- <row>
- <label>Multiple Category 2</label>
- <nb_visits>1</nb_visits>
- <nb_actions>1</nb_actions>
- </row>
- <row>
- <label>Multiple Category 4</label>
- <nb_visits>1</nb_visits>
- <nb_actions>1</nb_actions>
- </row>
- <row>
- <label>Multiple Category 5</label>
- <nb_visits>1</nb_visits>
- <nb_actions>1</nb_actions>
- </row>
- </subtable>
- </row>
- <row>
<label>VisitorName</label>
<nb_visits>2</nb_visits>
<nb_actions>9</nb_actions>
@@ -345,43 +227,4 @@
</row>
</subtable>
</row>
- <row>
- <label>_pkp</label>
- <nb_visits>8</nb_visits>
- <nb_actions>8</nb_actions>
- <slots>
- <row>
- <scope>page</scope>
- <index>2</index>
- </row>
- </slots>
- <segment>customVariableName==_pkp</segment>
- <subtable>
- <row>
- <label>333</label>
- <nb_visits>2</nb_visits>
- <nb_actions>2</nb_actions>
- </row>
- <row>
- <label>666</label>
- <nb_visits>2</nb_visits>
- <nb_actions>2</nb_actions>
- </row>
- <row>
- <label>999</label>
- <nb_visits>2</nb_visits>
- <nb_actions>2</nb_actions>
- </row>
- <row>
- <label>888</label>
- <nb_visits>1</nb_visits>
- <nb_actions>1</nb_actions>
- </row>
- <row>
- <label>1111.11111</label>
- <nb_visits>1</nb_visits>
- <nb_actions>1</nb_actions>
- </row>
- </subtable>
- </row>
</result> \ No newline at end of file
diff --git a/plugins/Ecommerce/tests/System/expected/test_ecommerceOrderWithItems__Goals.getItemsCategory_day.xml b/plugins/Ecommerce/tests/System/expected/test_ecommerceOrderWithItems__Goals.getItemsCategory_day.xml
index ceefbebe55..7b50d0b1c3 100644
--- a/plugins/Ecommerce/tests/System/expected/test_ecommerceOrderWithItems__Goals.getItemsCategory_day.xml
+++ b/plugins/Ecommerce/tests/System/expected/test_ecommerceOrderWithItems__Goals.getItemsCategory_day.xml
@@ -5,8 +5,8 @@
<revenue>2500</revenue>
<quantity>3</quantity>
<orders>2</orders>
- <nb_uniq_visitors>2</nb_uniq_visitors>
<nb_visits>3</nb_visits>
+ <nb_uniq_visitors>2</nb_uniq_visitors>
<nb_actions>6</nb_actions>
<avg_price>1000</avg_price>
<avg_quantity>1.5</avg_quantity>
@@ -17,8 +17,8 @@
<revenue>1000</revenue>
<quantity>2</quantity>
<orders>1</orders>
- <nb_uniq_visitors>1</nb_uniq_visitors>
<nb_visits>1</nb_visits>
+ <nb_uniq_visitors>1</nb_uniq_visitors>
<nb_actions>1</nb_actions>
<avg_price>500</avg_price>
<avg_quantity>2</avg_quantity>
@@ -29,8 +29,8 @@
<revenue>1000</revenue>
<quantity>2</quantity>
<orders>1</orders>
- <nb_uniq_visitors>1</nb_uniq_visitors>
<nb_visits>1</nb_visits>
+ <nb_uniq_visitors>1</nb_uniq_visitors>
<nb_actions>1</nb_actions>
<avg_price>500</avg_price>
<avg_quantity>2</avg_quantity>
@@ -41,8 +41,8 @@
<revenue>1000</revenue>
<quantity>2</quantity>
<orders>1</orders>
- <nb_uniq_visitors>1</nb_uniq_visitors>
<nb_visits>1</nb_visits>
+ <nb_uniq_visitors>1</nb_uniq_visitors>
<nb_actions>1</nb_actions>
<avg_price>500</avg_price>
<avg_quantity>2</avg_quantity>
@@ -53,8 +53,8 @@
<revenue>1000</revenue>
<quantity>2</quantity>
<orders>1</orders>
- <nb_uniq_visitors>1</nb_uniq_visitors>
<nb_visits>1</nb_visits>
+ <nb_uniq_visitors>1</nb_uniq_visitors>
<nb_actions>1</nb_actions>
<avg_price>500</avg_price>
<avg_quantity>2</avg_quantity>
@@ -65,8 +65,8 @@
<revenue>611.22</revenue>
<quantity>7</quantity>
<orders>2</orders>
- <nb_uniq_visitors>1</nb_uniq_visitors>
<nb_visits>3</nb_visits>
+ <nb_uniq_visitors>1</nb_uniq_visitors>
<nb_actions>5</nb_actions>
<avg_price>55.61</avg_price>
<avg_quantity>3.5</avg_quantity>
@@ -74,8 +74,8 @@
</row>
<row>
<label>Category TWO LEFT in cart</label>
- <nb_uniq_visitors>1</nb_uniq_visitors>
<nb_visits>2</nb_visits>
+ <nb_uniq_visitors>1</nb_uniq_visitors>
<nb_actions>2</nb_actions>
<avg_price>0</avg_price>
<avg_quantity>0</avg_quantity>
@@ -83,8 +83,8 @@
</row>
<row>
<label>second category</label>
- <nb_uniq_visitors>1</nb_uniq_visitors>
<nb_visits>2</nb_visits>
+ <nb_uniq_visitors>1</nb_uniq_visitors>
<nb_actions>2</nb_actions>
<avg_price>0</avg_price>
<avg_quantity>0</avg_quantity>
diff --git a/plugins/Ecommerce/tests/System/expected/test_ecommerceOrderWithItems__Goals.getItemsName_day.xml b/plugins/Ecommerce/tests/System/expected/test_ecommerceOrderWithItems__Goals.getItemsName_day.xml
index 8beefcdba1..4de9730ec6 100644
--- a/plugins/Ecommerce/tests/System/expected/test_ecommerceOrderWithItems__Goals.getItemsName_day.xml
+++ b/plugins/Ecommerce/tests/System/expected/test_ecommerceOrderWithItems__Goals.getItemsName_day.xml
@@ -14,8 +14,8 @@
<revenue>1011.22</revenue>
<quantity>3</quantity>
<orders>2</orders>
- <nb_uniq_visitors>1</nb_uniq_visitors>
<nb_visits>2</nb_visits>
+ <nb_uniq_visitors>1</nb_uniq_visitors>
<nb_actions>5</nb_actions>
<avg_price>255.61</avg_price>
<avg_quantity>1.5</avg_quantity>
@@ -32,8 +32,8 @@
</row>
<row>
<label>PRODUCT TWO LEFT in cart</label>
- <nb_uniq_visitors>1</nb_uniq_visitors>
<nb_visits>2</nb_visits>
+ <nb_uniq_visitors>1</nb_uniq_visitors>
<nb_actions>2</nb_actions>
<avg_price>0</avg_price>
<avg_quantity>0</avg_quantity>
@@ -41,8 +41,8 @@
</row>
<row>
<label>PRODUCT THREE LEFT in cart</label>
- <nb_uniq_visitors>1</nb_uniq_visitors>
<nb_visits>2</nb_visits>
+ <nb_uniq_visitors>1</nb_uniq_visitors>
<nb_actions>4</nb_actions>
<avg_price>666</avg_price>
<avg_quantity>0</avg_quantity>
diff --git a/plugins/Ecommerce/tests/System/expected/test_ecommerceOrderWithItems__Goals.getItemsSku_day.xml b/plugins/Ecommerce/tests/System/expected/test_ecommerceOrderWithItems__Goals.getItemsSku_day.xml
index 83b6b8ab73..0d55589eb7 100644
--- a/plugins/Ecommerce/tests/System/expected/test_ecommerceOrderWithItems__Goals.getItemsSku_day.xml
+++ b/plugins/Ecommerce/tests/System/expected/test_ecommerceOrderWithItems__Goals.getItemsSku_day.xml
@@ -5,8 +5,8 @@
<revenue>1500</revenue>
<quantity>1</quantity>
<orders>1</orders>
- <nb_uniq_visitors>1</nb_uniq_visitors>
<nb_visits>1</nb_visits>
+ <nb_uniq_visitors>1</nb_uniq_visitors>
<nb_actions>1</nb_actions>
<avg_price>1500</avg_price>
<avg_quantity>1</avg_quantity>
@@ -17,8 +17,8 @@
<revenue>1011.22</revenue>
<quantity>3</quantity>
<orders>2</orders>
- <nb_uniq_visitors>1</nb_uniq_visitors>
<nb_visits>3</nb_visits>
+ <nb_uniq_visitors>1</nb_uniq_visitors>
<nb_actions>8</nb_actions>
<avg_price>255.61</avg_price>
<avg_quantity>1.5</avg_quantity>
@@ -35,8 +35,8 @@
</row>
<row>
<label>SKU IN ABANDONED CART TWO</label>
- <nb_uniq_visitors>1</nb_uniq_visitors>
<nb_visits>2</nb_visits>
+ <nb_uniq_visitors>1</nb_uniq_visitors>
<nb_actions>2</nb_actions>
<avg_price>0</avg_price>
<avg_quantity>0</avg_quantity>
diff --git a/plugins/Ecommerce/tests/System/expected/test_ecommerceOrderWithItems__Live.getLastVisitsDetails_day.xml b/plugins/Ecommerce/tests/System/expected/test_ecommerceOrderWithItems__Live.getLastVisitsDetails_day.xml
index 2c163842d7..cb987fe9ac 100644
--- a/plugins/Ecommerce/tests/System/expected/test_ecommerceOrderWithItems__Live.getLastVisitsDetails_day.xml
+++ b/plugins/Ecommerce/tests/System/expected/test_ecommerceOrderWithItems__Live.getLastVisitsDetails_day.xml
@@ -15,6 +15,9 @@
<pageId>11</pageId>
+ <productViewPrice>999</productViewPrice>
+ <productViewName>PRODUCT THREE LEFT in cart</productViewName>
+ <productViewSku>SKU VERY nice indeed</productViewSku>
<bandwidth />
<timeSpent>180</timeSpent>
<timeSpentPretty>3 min 0s</timeSpentPretty>
@@ -24,24 +27,6 @@
<icon />
<iconSVG>plugins/Morpheus/images/action.svg</iconSVG>
- <customVariables>
- <row>
- <customVariablePageName2>_pkp</customVariablePageName2>
- <customVariablePageValue2>999</customVariablePageValue2>
- </row>
- <row>
- <customVariablePageName3>_pks</customVariablePageName3>
- <customVariablePageValue3>SKU VERY nice indeed</customVariablePageValue3>
- </row>
- <row>
- <customVariablePageName4>_pkn</customVariablePageName4>
- <customVariablePageValue4>PRODUCT THREE LEFT in cart</customVariablePageValue4>
- </row>
- <row>
- <customVariablePageName5>_pkc</customVariablePageName5>
- <customVariablePageValue5 />
- </row>
- </customVariables>
<bandwidth_pretty>0 M</bandwidth_pretty>
</row>
<row>
@@ -52,6 +37,9 @@
<pageId>12</pageId>
+ <productViewPrice>333</productViewPrice>
+ <productViewName>PRODUCT THREE LEFT in cart</productViewName>
+ <productViewSku>SKU VERY nice indeed</productViewSku>
<bandwidth />
<timeSpent>180</timeSpent>
<timeSpentPretty>3 min 0s</timeSpentPretty>
@@ -61,24 +49,6 @@
<icon />
<iconSVG>plugins/Morpheus/images/action.svg</iconSVG>
- <customVariables>
- <row>
- <customVariablePageName2>_pkp</customVariablePageName2>
- <customVariablePageValue2>333</customVariablePageValue2>
- </row>
- <row>
- <customVariablePageName3>_pks</customVariablePageName3>
- <customVariablePageValue3>SKU VERY nice indeed</customVariablePageValue3>
- </row>
- <row>
- <customVariablePageName4>_pkn</customVariablePageName4>
- <customVariablePageValue4>PRODUCT THREE LEFT in cart</customVariablePageValue4>
- </row>
- <row>
- <customVariablePageName5>_pkc</customVariablePageName5>
- <customVariablePageValue5 />
- </row>
- </customVariables>
<bandwidth_pretty>0 M</bandwidth_pretty>
</row>
<row>
@@ -89,6 +59,8 @@
<pageId>13</pageId>
+ <productViewName>PRODUCT TWO LEFT in cart</productViewName>
+ <productViewSku>SKU IN ABANDONED CART TWO</productViewSku>
<bandwidth />
<timeSpent>361</timeSpent>
<timeSpentPretty>6 min 1s</timeSpentPretty>
@@ -98,20 +70,10 @@
<icon />
<iconSVG>plugins/Morpheus/images/action.svg</iconSVG>
- <customVariables>
- <row>
- <customVariablePageName3>_pks</customVariablePageName3>
- <customVariablePageValue3>SKU IN ABANDONED CART TWO</customVariablePageValue3>
- </row>
- <row>
- <customVariablePageName4>_pkn</customVariablePageName4>
- <customVariablePageValue4>PRODUCT TWO LEFT in cart</customVariablePageValue4>
- </row>
- <row>
- <customVariablePageName5>_pkc</customVariablePageName5>
- <customVariablePageValue5>[&quot;Category TWO LEFT in cart&quot;,&quot;second category&quot;]</customVariablePageValue5>
- </row>
- </customVariables>
+ <productViewCategories>
+ <row>Category TWO LEFT in cart</row>
+ <row>second category</row>
+ </productViewCategories>
<bandwidth_pretty>0 M</bandwidth_pretty>
</row>
<row>
@@ -292,12 +254,9 @@
<icon />
<iconSVG>plugins/Morpheus/images/action.svg</iconSVG>
- <customVariables>
- <row>
- <customVariablePageName5>_pkc</customVariablePageName5>
- <customVariablePageValue5>Electronics &amp; Cameras</customVariablePageValue5>
- </row>
- </customVariables>
+ <productViewCategories>
+ <row>Electronics &amp; Cameras</row>
+ </productViewCategories>
<bandwidth_pretty>0 M</bandwidth_pretty>
</row>
<row>
@@ -317,12 +276,9 @@
<icon />
<iconSVG>plugins/Morpheus/images/action.svg</iconSVG>
- <customVariables>
- <row>
- <customVariablePageName5>_pkc</customVariablePageName5>
- <customVariablePageValue5>Electronics &amp; Cameras</customVariablePageValue5>
- </row>
- </customVariables>
+ <productViewCategories>
+ <row>Electronics &amp; Cameras</row>
+ </productViewCategories>
<bandwidth_pretty>0 M</bandwidth_pretty>
</row>
<row>
@@ -333,6 +289,9 @@
<pageId>7</pageId>
+ <productViewPrice>666</productViewPrice>
+ <productViewName>PRODUCT name</productViewName>
+ <productViewSku>SKU VERY nice indeed</productViewSku>
<bandwidth />
<timeSpent>720</timeSpent>
<timeSpentPretty>12 min 0s</timeSpentPretty>
@@ -342,24 +301,9 @@
<icon />
<iconSVG>plugins/Morpheus/images/action.svg</iconSVG>
- <customVariables>
- <row>
- <customVariablePageName2>_pkp</customVariablePageName2>
- <customVariablePageValue2>666</customVariablePageValue2>
- </row>
- <row>
- <customVariablePageName3>_pks</customVariablePageName3>
- <customVariablePageValue3>SKU VERY nice indeed</customVariablePageValue3>
- </row>
- <row>
- <customVariablePageName4>_pkn</customVariablePageName4>
- <customVariablePageValue4>PRODUCT name</customVariablePageValue4>
- </row>
- <row>
- <customVariablePageName5>_pkc</customVariablePageName5>
- <customVariablePageValue5>Electronics &amp; Cameras</customVariablePageValue5>
- </row>
- </customVariables>
+ <productViewCategories>
+ <row>Electronics &amp; Cameras</row>
+ </productViewCategories>
<bandwidth_pretty>0 M</bandwidth_pretty>
</row>
<row>
@@ -417,15 +361,6 @@
<itemDetails>
<row>
- <itemSKU>SKU VERY nice indeed</itemSKU>
- <itemName>PRODUCT name</itemName>
- <itemCategory />
- <price>11.22</price>
- <quantity>1</quantity>
- <categories>
- </categories>
- </row>
- <row>
<itemSKU>SKU2</itemSKU>
<itemName>Canon SLR</itemName>
<itemCategory>Electronics &amp; Cameras</itemCategory>
@@ -435,11 +370,20 @@
<row>Electronics &amp; Cameras</row>
</categories>
</row>
+ <row>
+ <itemSKU>SKU VERY nice indeed</itemSKU>
+ <itemName>PRODUCT name</itemName>
+ <itemCategory />
+ <price>11.22</price>
+ <quantity>1</quantity>
+ <categories>
+ </categories>
+ </row>
</itemDetails>
<icon>plugins/Morpheus/images/ecommerceOrder.png</icon>
<iconSVG>plugins/Morpheus/images/ecommerceOrder.svg</iconSVG>
<title>Ordered (1037nsjusu4s3894)</title>
- <subtitle>$2,000 revenue - 2 items: PRODUCT name, Canon SLR)</subtitle>
+ <subtitle>$2,000 revenue - 2 items: Canon SLR, PRODUCT name)</subtitle>
</row>
<row>
@@ -450,6 +394,9 @@
<pageId>8</pageId>
+ <productViewPrice>999</productViewPrice>
+ <productViewName>PRODUCT THREE LEFT in cart</productViewName>
+ <productViewSku>SKU VERY nice indeed</productViewSku>
<bandwidth />
<timeSpent>180</timeSpent>
<timeSpentPretty>3 min 0s</timeSpentPretty>
@@ -459,24 +406,6 @@
<icon />
<iconSVG>plugins/Morpheus/images/action.svg</iconSVG>
- <customVariables>
- <row>
- <customVariablePageName2>_pkp</customVariablePageName2>
- <customVariablePageValue2>999</customVariablePageValue2>
- </row>
- <row>
- <customVariablePageName3>_pks</customVariablePageName3>
- <customVariablePageValue3>SKU VERY nice indeed</customVariablePageValue3>
- </row>
- <row>
- <customVariablePageName4>_pkn</customVariablePageName4>
- <customVariablePageValue4>PRODUCT THREE LEFT in cart</customVariablePageValue4>
- </row>
- <row>
- <customVariablePageName5>_pkc</customVariablePageName5>
- <customVariablePageValue5 />
- </row>
- </customVariables>
<bandwidth_pretty>0 M</bandwidth_pretty>
</row>
<row>
@@ -487,6 +416,9 @@
<pageId>9</pageId>
+ <productViewPrice>333</productViewPrice>
+ <productViewName>PRODUCT THREE LEFT in cart</productViewName>
+ <productViewSku>SKU VERY nice indeed</productViewSku>
<bandwidth />
<timeSpent>180</timeSpent>
<timeSpentPretty>3 min 0s</timeSpentPretty>
@@ -496,24 +428,6 @@
<icon />
<iconSVG>plugins/Morpheus/images/action.svg</iconSVG>
- <customVariables>
- <row>
- <customVariablePageName2>_pkp</customVariablePageName2>
- <customVariablePageValue2>333</customVariablePageValue2>
- </row>
- <row>
- <customVariablePageName3>_pks</customVariablePageName3>
- <customVariablePageValue3>SKU VERY nice indeed</customVariablePageValue3>
- </row>
- <row>
- <customVariablePageName4>_pkn</customVariablePageName4>
- <customVariablePageValue4>PRODUCT THREE LEFT in cart</customVariablePageValue4>
- </row>
- <row>
- <customVariablePageName5>_pkc</customVariablePageName5>
- <customVariablePageValue5 />
- </row>
- </customVariables>
<bandwidth_pretty>0 M</bandwidth_pretty>
</row>
<row>
@@ -524,6 +438,8 @@
<pageId>10</pageId>
+ <productViewName>PRODUCT TWO LEFT in cart</productViewName>
+ <productViewSku>SKU IN ABANDONED CART TWO</productViewSku>
<bandwidth />
<timeSpent>361</timeSpent>
<timeSpentPretty>6 min 1s</timeSpentPretty>
@@ -533,20 +449,10 @@
<icon />
<iconSVG>plugins/Morpheus/images/action.svg</iconSVG>
- <customVariables>
- <row>
- <customVariablePageName3>_pks</customVariablePageName3>
- <customVariablePageValue3>SKU IN ABANDONED CART TWO</customVariablePageValue3>
- </row>
- <row>
- <customVariablePageName4>_pkn</customVariablePageName4>
- <customVariablePageValue4>PRODUCT TWO LEFT in cart</customVariablePageValue4>
- </row>
- <row>
- <customVariablePageName5>_pkc</customVariablePageName5>
- <customVariablePageValue5>[&quot;Category TWO LEFT in cart&quot;,&quot;second category&quot;]</customVariablePageValue5>
- </row>
- </customVariables>
+ <productViewCategories>
+ <row>Category TWO LEFT in cart</row>
+ <row>second category</row>
+ </productViewCategories>
<bandwidth_pretty>0 M</bandwidth_pretty>
</row>
<row>
@@ -718,6 +624,9 @@
<pageId>1</pageId>
+ <productViewPrice>1111.11111</productViewPrice>
+ <productViewName>PRODUCT name</productViewName>
+ <productViewSku>SKU2</productViewSku>
<bandwidth />
<timeSpent>360</timeSpent>
<timeSpentPretty>6 min 0s</timeSpentPretty>
@@ -727,24 +636,9 @@
<icon />
<iconSVG>plugins/Morpheus/images/action.svg</iconSVG>
- <customVariables>
- <row>
- <customVariablePageName2>_pkp</customVariablePageName2>
- <customVariablePageValue2>1111.11111</customVariablePageValue2>
- </row>
- <row>
- <customVariablePageName3>_pks</customVariablePageName3>
- <customVariablePageValue3>SKU2</customVariablePageValue3>
- </row>
- <row>
- <customVariablePageName4>_pkn</customVariablePageName4>
- <customVariablePageValue4>PRODUCT name</customVariablePageValue4>
- </row>
- <row>
- <customVariablePageName5>_pkc</customVariablePageName5>
- <customVariablePageValue5>Electronics &amp; Cameras</customVariablePageValue5>
- </row>
- </customVariables>
+ <productViewCategories>
+ <row>Electronics &amp; Cameras</row>
+ </productViewCategories>
<bandwidth_pretty>0 M</bandwidth_pretty>
</row>
<row>
@@ -770,6 +664,9 @@
<pageId>2</pageId>
+ <productViewPrice>666</productViewPrice>
+ <productViewName>PRODUCT name</productViewName>
+ <productViewSku>SKU VERY nice indeed</productViewSku>
<bandwidth />
<timeSpent>360</timeSpent>
<timeSpentPretty>6 min 0s</timeSpentPretty>
@@ -779,24 +676,9 @@
<icon />
<iconSVG>plugins/Morpheus/images/action.svg</iconSVG>
- <customVariables>
- <row>
- <customVariablePageName2>_pkp</customVariablePageName2>
- <customVariablePageValue2>666</customVariablePageValue2>
- </row>
- <row>
- <customVariablePageName3>_pks</customVariablePageName3>
- <customVariablePageValue3>SKU VERY nice indeed</customVariablePageValue3>
- </row>
- <row>
- <customVariablePageName4>_pkn</customVariablePageName4>
- <customVariablePageValue4>PRODUCT name</customVariablePageValue4>
- </row>
- <row>
- <customVariablePageName5>_pkc</customVariablePageName5>
- <customVariablePageValue5>Electronics &amp; Cameras</customVariablePageValue5>
- </row>
- </customVariables>
+ <productViewCategories>
+ <row>Electronics &amp; Cameras</row>
+ </productViewCategories>
<bandwidth_pretty>0 M</bandwidth_pretty>
</row>
<row>
@@ -807,6 +689,9 @@
<pageId>3</pageId>
+ <productViewPrice>888</productViewPrice>
+ <productViewName>PRODUCT name</productViewName>
+ <productViewSku>SKU VERY nice indeed</productViewSku>
<bandwidth />
<timeSpent>0</timeSpent>
<timeSpentPretty>0s</timeSpentPretty>
@@ -816,24 +701,6 @@
<icon />
<iconSVG>plugins/Morpheus/images/action.svg</iconSVG>
- <customVariables>
- <row>
- <customVariablePageName2>_pkp</customVariablePageName2>
- <customVariablePageValue2>888</customVariablePageValue2>
- </row>
- <row>
- <customVariablePageName3>_pks</customVariablePageName3>
- <customVariablePageValue3>SKU VERY nice indeed</customVariablePageValue3>
- </row>
- <row>
- <customVariablePageName4>_pkn</customVariablePageName4>
- <customVariablePageValue4>PRODUCT name</customVariablePageValue4>
- </row>
- <row>
- <customVariablePageName5>_pkc</customVariablePageName5>
- <customVariablePageValue5 />
- </row>
- </customVariables>
<bandwidth_pretty>0 M</bandwidth_pretty>
</row>
<row>
@@ -844,6 +711,8 @@
<pageId>4</pageId>
+ <productViewName>PRODUCT name</productViewName>
+ <productViewSku>SKU VERY nice indeed</productViewSku>
<bandwidth />
<pageviewPosition>4</pageviewPosition>
<title>Another Product page with multiple categories</title>
@@ -851,20 +720,13 @@
<icon />
<iconSVG>plugins/Morpheus/images/action.svg</iconSVG>
- <customVariables>
- <row>
- <customVariablePageName3>_pks</customVariablePageName3>
- <customVariablePageValue3>SKU VERY nice indeed</customVariablePageValue3>
- </row>
- <row>
- <customVariablePageName4>_pkn</customVariablePageName4>
- <customVariablePageValue4>PRODUCT name</customVariablePageValue4>
- </row>
- <row>
- <customVariablePageName5>_pkc</customVariablePageName5>
- <customVariablePageValue5>[&quot;Multiple Category 1&quot;,&quot;&quot;,0,&quot;Multiple Category 2&quot;,&quot;Electronics &amp; Cameras&quot;,&quot;Multiple Category 4&quot;,&quot;Multiple Category 5&quot;,&quot;SHOULD NOT BE REPORTEDSSSSSSSSSSSSSSssssssssssssssssssssssssssstttttttttttttttttt</customVariablePageValue5>
- </row>
- </customVariables>
+ <productViewCategories>
+ <row>Multiple Category 1</row>
+ <row>Multiple Category 2</row>
+ <row>Electronics &amp; Cameras</row>
+ <row>Multiple Category 4</row>
+ <row>Multiple Category 5</row>
+ </productViewCategories>
<bandwidth_pretty>0 M</bandwidth_pretty>
</row>
</actionDetails>
diff --git a/plugins/Ecommerce/tests/System/expected/test_ecommerceOrderWithItemsmultipleDates__Goals.getItemsCategory_day.xml b/plugins/Ecommerce/tests/System/expected/test_ecommerceOrderWithItemsmultipleDates__Goals.getItemsCategory_day.xml
index 9008439c34..1e63f48102 100644
--- a/plugins/Ecommerce/tests/System/expected/test_ecommerceOrderWithItemsmultipleDates__Goals.getItemsCategory_day.xml
+++ b/plugins/Ecommerce/tests/System/expected/test_ecommerceOrderWithItemsmultipleDates__Goals.getItemsCategory_day.xml
@@ -6,8 +6,8 @@
<revenue>2500</revenue>
<quantity>3</quantity>
<orders>2</orders>
- <nb_uniq_visitors>2</nb_uniq_visitors>
<nb_visits>3</nb_visits>
+ <nb_uniq_visitors>2</nb_uniq_visitors>
<nb_actions>6</nb_actions>
<avg_price>1000</avg_price>
<avg_quantity>1.5</avg_quantity>
@@ -18,8 +18,8 @@
<revenue>1000</revenue>
<quantity>2</quantity>
<orders>1</orders>
- <nb_uniq_visitors>1</nb_uniq_visitors>
<nb_visits>1</nb_visits>
+ <nb_uniq_visitors>1</nb_uniq_visitors>
<nb_actions>1</nb_actions>
<avg_price>500</avg_price>
<avg_quantity>2</avg_quantity>
@@ -30,8 +30,8 @@
<revenue>1000</revenue>
<quantity>2</quantity>
<orders>1</orders>
- <nb_uniq_visitors>1</nb_uniq_visitors>
<nb_visits>1</nb_visits>
+ <nb_uniq_visitors>1</nb_uniq_visitors>
<nb_actions>1</nb_actions>
<avg_price>500</avg_price>
<avg_quantity>2</avg_quantity>
@@ -42,8 +42,8 @@
<revenue>1000</revenue>
<quantity>2</quantity>
<orders>1</orders>
- <nb_uniq_visitors>1</nb_uniq_visitors>
<nb_visits>1</nb_visits>
+ <nb_uniq_visitors>1</nb_uniq_visitors>
<nb_actions>1</nb_actions>
<avg_price>500</avg_price>
<avg_quantity>2</avg_quantity>
@@ -54,8 +54,8 @@
<revenue>1000</revenue>
<quantity>2</quantity>
<orders>1</orders>
- <nb_uniq_visitors>1</nb_uniq_visitors>
<nb_visits>1</nb_visits>
+ <nb_uniq_visitors>1</nb_uniq_visitors>
<nb_actions>1</nb_actions>
<avg_price>500</avg_price>
<avg_quantity>2</avg_quantity>
@@ -66,8 +66,8 @@
<revenue>611.22</revenue>
<quantity>7</quantity>
<orders>2</orders>
- <nb_uniq_visitors>1</nb_uniq_visitors>
<nb_visits>3</nb_visits>
+ <nb_uniq_visitors>1</nb_uniq_visitors>
<nb_actions>5</nb_actions>
<avg_price>55.61</avg_price>
<avg_quantity>3.5</avg_quantity>
@@ -75,8 +75,8 @@
</row>
<row>
<label>Category TWO LEFT in cart</label>
- <nb_uniq_visitors>1</nb_uniq_visitors>
<nb_visits>2</nb_visits>
+ <nb_uniq_visitors>1</nb_uniq_visitors>
<nb_actions>2</nb_actions>
<avg_price>0</avg_price>
<avg_quantity>0</avg_quantity>
@@ -84,8 +84,8 @@
</row>
<row>
<label>second category</label>
- <nb_uniq_visitors>1</nb_uniq_visitors>
<nb_visits>2</nb_visits>
+ <nb_uniq_visitors>1</nb_uniq_visitors>
<nb_actions>2</nb_actions>
<avg_price>0</avg_price>
<avg_quantity>0</avg_quantity>
@@ -104,8 +104,8 @@
</row>
<row>
<label>Category TWO LEFT in cart</label>
- <nb_uniq_visitors>1</nb_uniq_visitors>
<nb_visits>1</nb_visits>
+ <nb_uniq_visitors>1</nb_uniq_visitors>
<nb_actions>1</nb_actions>
<avg_price>0</avg_price>
<avg_quantity>0</avg_quantity>
@@ -113,8 +113,8 @@
</row>
<row>
<label>Product Category not defined</label>
- <nb_uniq_visitors>1</nb_uniq_visitors>
<nb_visits>1</nb_visits>
+ <nb_uniq_visitors>1</nb_uniq_visitors>
<nb_actions>2</nb_actions>
<avg_price>666</avg_price>
<avg_quantity>0</avg_quantity>
@@ -122,8 +122,8 @@
</row>
<row>
<label>second category</label>
- <nb_uniq_visitors>1</nb_uniq_visitors>
<nb_visits>1</nb_visits>
+ <nb_uniq_visitors>1</nb_uniq_visitors>
<nb_actions>1</nb_actions>
<avg_price>0</avg_price>
<avg_quantity>0</avg_quantity>
diff --git a/plugins/Ecommerce/tests/System/expected/test_ecommerceOrderWithItemsmultipleDates__Goals.getItemsName_day.xml b/plugins/Ecommerce/tests/System/expected/test_ecommerceOrderWithItemsmultipleDates__Goals.getItemsName_day.xml
index f48390dcdb..d274dfbac8 100644
--- a/plugins/Ecommerce/tests/System/expected/test_ecommerceOrderWithItemsmultipleDates__Goals.getItemsName_day.xml
+++ b/plugins/Ecommerce/tests/System/expected/test_ecommerceOrderWithItemsmultipleDates__Goals.getItemsName_day.xml
@@ -15,8 +15,8 @@
<revenue>1011.22</revenue>
<quantity>3</quantity>
<orders>2</orders>
- <nb_uniq_visitors>1</nb_uniq_visitors>
<nb_visits>2</nb_visits>
+ <nb_uniq_visitors>1</nb_uniq_visitors>
<nb_actions>5</nb_actions>
<avg_price>255.61</avg_price>
<avg_quantity>1.5</avg_quantity>
@@ -33,8 +33,8 @@
</row>
<row>
<label>PRODUCT TWO LEFT in cart</label>
- <nb_uniq_visitors>1</nb_uniq_visitors>
<nb_visits>2</nb_visits>
+ <nb_uniq_visitors>1</nb_uniq_visitors>
<nb_actions>2</nb_actions>
<avg_price>0</avg_price>
<avg_quantity>0</avg_quantity>
@@ -42,8 +42,8 @@
</row>
<row>
<label>PRODUCT THREE LEFT in cart</label>
- <nb_uniq_visitors>1</nb_uniq_visitors>
<nb_visits>2</nb_visits>
+ <nb_uniq_visitors>1</nb_uniq_visitors>
<nb_actions>4</nb_actions>
<avg_price>666</avg_price>
<avg_quantity>0</avg_quantity>
@@ -62,8 +62,8 @@
</row>
<row>
<label>PRODUCT THREE LEFT in cart</label>
- <nb_uniq_visitors>1</nb_uniq_visitors>
<nb_visits>1</nb_visits>
+ <nb_uniq_visitors>1</nb_uniq_visitors>
<nb_actions>2</nb_actions>
<avg_price>666</avg_price>
<avg_quantity>0</avg_quantity>
@@ -71,8 +71,8 @@
</row>
<row>
<label>PRODUCT TWO LEFT in cart</label>
- <nb_uniq_visitors>1</nb_uniq_visitors>
<nb_visits>1</nb_visits>
+ <nb_uniq_visitors>1</nb_uniq_visitors>
<nb_actions>1</nb_actions>
<avg_price>0</avg_price>
<avg_quantity>0</avg_quantity>
diff --git a/plugins/Ecommerce/tests/System/expected/test_ecommerceOrderWithItemsmultipleDates__Goals.getItemsSku_day.xml b/plugins/Ecommerce/tests/System/expected/test_ecommerceOrderWithItemsmultipleDates__Goals.getItemsSku_day.xml
index cf37312d3b..5cdc3b1721 100644
--- a/plugins/Ecommerce/tests/System/expected/test_ecommerceOrderWithItemsmultipleDates__Goals.getItemsSku_day.xml
+++ b/plugins/Ecommerce/tests/System/expected/test_ecommerceOrderWithItemsmultipleDates__Goals.getItemsSku_day.xml
@@ -6,8 +6,8 @@
<revenue>1500</revenue>
<quantity>1</quantity>
<orders>1</orders>
- <nb_uniq_visitors>1</nb_uniq_visitors>
<nb_visits>1</nb_visits>
+ <nb_uniq_visitors>1</nb_uniq_visitors>
<nb_actions>1</nb_actions>
<avg_price>1500</avg_price>
<avg_quantity>1</avg_quantity>
@@ -18,8 +18,8 @@
<revenue>1011.22</revenue>
<quantity>3</quantity>
<orders>2</orders>
- <nb_uniq_visitors>1</nb_uniq_visitors>
<nb_visits>3</nb_visits>
+ <nb_uniq_visitors>1</nb_uniq_visitors>
<nb_actions>8</nb_actions>
<avg_price>255.61</avg_price>
<avg_quantity>1.5</avg_quantity>
@@ -36,8 +36,8 @@
</row>
<row>
<label>SKU IN ABANDONED CART TWO</label>
- <nb_uniq_visitors>1</nb_uniq_visitors>
<nb_visits>2</nb_visits>
+ <nb_uniq_visitors>1</nb_uniq_visitors>
<nb_actions>2</nb_actions>
<avg_price>0</avg_price>
<avg_quantity>0</avg_quantity>
@@ -56,8 +56,8 @@
</row>
<row>
<label>SKU IN ABANDONED CART TWO</label>
- <nb_uniq_visitors>1</nb_uniq_visitors>
<nb_visits>1</nb_visits>
+ <nb_uniq_visitors>1</nb_uniq_visitors>
<nb_actions>1</nb_actions>
<avg_price>0</avg_price>
<avg_quantity>0</avg_quantity>
@@ -65,8 +65,8 @@
</row>
<row>
<label>SKU VERY nice indeed</label>
- <nb_uniq_visitors>1</nb_uniq_visitors>
<nb_visits>1</nb_visits>
+ <nb_uniq_visitors>1</nb_uniq_visitors>
<nb_actions>2</nb_actions>
<avg_price>666</avg_price>
<avg_quantity>0</avg_quantity>
diff --git a/plugins/Ecommerce/tests/System/expected/test_ecommerceOrderWithItemsmultipleDates_andMultipleWebsites__Goals.getItemsCategory_day.xml b/plugins/Ecommerce/tests/System/expected/test_ecommerceOrderWithItemsmultipleDates_andMultipleWebsites__Goals.getItemsCategory_day.xml
index 477b37f3d5..225d5b0cf4 100644
--- a/plugins/Ecommerce/tests/System/expected/test_ecommerceOrderWithItemsmultipleDates_andMultipleWebsites__Goals.getItemsCategory_day.xml
+++ b/plugins/Ecommerce/tests/System/expected/test_ecommerceOrderWithItemsmultipleDates_andMultipleWebsites__Goals.getItemsCategory_day.xml
@@ -7,53 +7,89 @@
<revenue>2500</revenue>
<quantity>3</quantity>
<orders>2</orders>
+ <nb_visits>3</nb_visits>
+ <nb_uniq_visitors>2</nb_uniq_visitors>
+ <nb_actions>6</nb_actions>
<avg_price>1000</avg_price>
<avg_quantity>1.5</avg_quantity>
- <conversion_rate>0%</conversion_rate>
+ <conversion_rate>66.67%</conversion_rate>
</row>
<row>
<label>Multiple Category 1</label>
<revenue>1000</revenue>
<quantity>2</quantity>
<orders>1</orders>
+ <nb_visits>1</nb_visits>
+ <nb_uniq_visitors>1</nb_uniq_visitors>
+ <nb_actions>1</nb_actions>
<avg_price>500</avg_price>
<avg_quantity>2</avg_quantity>
- <conversion_rate>0%</conversion_rate>
+ <conversion_rate>100%</conversion_rate>
</row>
<row>
<label>Multiple Category 2</label>
<revenue>1000</revenue>
<quantity>2</quantity>
<orders>1</orders>
+ <nb_visits>1</nb_visits>
+ <nb_uniq_visitors>1</nb_uniq_visitors>
+ <nb_actions>1</nb_actions>
<avg_price>500</avg_price>
<avg_quantity>2</avg_quantity>
- <conversion_rate>0%</conversion_rate>
+ <conversion_rate>100%</conversion_rate>
</row>
<row>
<label>Multiple Category 4</label>
<revenue>1000</revenue>
<quantity>2</quantity>
<orders>1</orders>
+ <nb_visits>1</nb_visits>
+ <nb_uniq_visitors>1</nb_uniq_visitors>
+ <nb_actions>1</nb_actions>
<avg_price>500</avg_price>
<avg_quantity>2</avg_quantity>
- <conversion_rate>0%</conversion_rate>
+ <conversion_rate>100%</conversion_rate>
</row>
<row>
<label>Multiple Category 5</label>
<revenue>1000</revenue>
<quantity>2</quantity>
<orders>1</orders>
+ <nb_visits>1</nb_visits>
+ <nb_uniq_visitors>1</nb_uniq_visitors>
+ <nb_actions>1</nb_actions>
<avg_price>500</avg_price>
<avg_quantity>2</avg_quantity>
- <conversion_rate>0%</conversion_rate>
+ <conversion_rate>100%</conversion_rate>
</row>
<row>
<label>Product Category not defined</label>
<revenue>611.22</revenue>
<quantity>7</quantity>
<orders>2</orders>
+ <nb_visits>3</nb_visits>
+ <nb_uniq_visitors>1</nb_uniq_visitors>
+ <nb_actions>5</nb_actions>
<avg_price>55.61</avg_price>
<avg_quantity>3.5</avg_quantity>
+ <conversion_rate>66.67%</conversion_rate>
+ </row>
+ <row>
+ <label>Category TWO LEFT in cart</label>
+ <nb_visits>2</nb_visits>
+ <nb_uniq_visitors>1</nb_uniq_visitors>
+ <nb_actions>2</nb_actions>
+ <avg_price>0</avg_price>
+ <avg_quantity>0</avg_quantity>
+ <conversion_rate>0%</conversion_rate>
+ </row>
+ <row>
+ <label>second category</label>
+ <nb_visits>2</nb_visits>
+ <nb_uniq_visitors>1</nb_uniq_visitors>
+ <nb_actions>2</nb_actions>
+ <avg_price>0</avg_price>
+ <avg_quantity>0</avg_quantity>
<conversion_rate>0%</conversion_rate>
</row>
</result>
@@ -67,6 +103,33 @@
<avg_quantity>2</avg_quantity>
<conversion_rate>0%</conversion_rate>
</row>
+ <row>
+ <label>Category TWO LEFT in cart</label>
+ <nb_visits>1</nb_visits>
+ <nb_uniq_visitors>1</nb_uniq_visitors>
+ <nb_actions>1</nb_actions>
+ <avg_price>0</avg_price>
+ <avg_quantity>0</avg_quantity>
+ <conversion_rate>0%</conversion_rate>
+ </row>
+ <row>
+ <label>Product Category not defined</label>
+ <nb_visits>1</nb_visits>
+ <nb_uniq_visitors>1</nb_uniq_visitors>
+ <nb_actions>2</nb_actions>
+ <avg_price>666</avg_price>
+ <avg_quantity>0</avg_quantity>
+ <conversion_rate>0%</conversion_rate>
+ </row>
+ <row>
+ <label>second category</label>
+ <nb_visits>1</nb_visits>
+ <nb_uniq_visitors>1</nb_uniq_visitors>
+ <nb_actions>1</nb_actions>
+ <avg_price>0</avg_price>
+ <avg_quantity>0</avg_quantity>
+ <conversion_rate>0%</conversion_rate>
+ </row>
</result>
<result date="2011-04-07" />
<result date="2011-04-08" />
diff --git a/plugins/Ecommerce/tests/System/expected/test_ecommerceOrderWithItemsmultipleDates_andMultipleWebsites__Goals.getItemsName_day.xml b/plugins/Ecommerce/tests/System/expected/test_ecommerceOrderWithItemsmultipleDates_andMultipleWebsites__Goals.getItemsName_day.xml
index 01995b63ea..dbdf7c0517 100644
--- a/plugins/Ecommerce/tests/System/expected/test_ecommerceOrderWithItemsmultipleDates_andMultipleWebsites__Goals.getItemsName_day.xml
+++ b/plugins/Ecommerce/tests/System/expected/test_ecommerceOrderWithItemsmultipleDates_andMultipleWebsites__Goals.getItemsName_day.xml
@@ -16,9 +16,12 @@
<revenue>1011.22</revenue>
<quantity>3</quantity>
<orders>2</orders>
+ <nb_visits>2</nb_visits>
+ <nb_uniq_visitors>1</nb_uniq_visitors>
+ <nb_actions>5</nb_actions>
<avg_price>255.61</avg_price>
<avg_quantity>1.5</avg_quantity>
- <conversion_rate>0%</conversion_rate>
+ <conversion_rate>100%</conversion_rate>
</row>
<row>
<label>PRODUCT name BIS</label>
@@ -29,6 +32,24 @@
<avg_quantity>6</avg_quantity>
<conversion_rate>0%</conversion_rate>
</row>
+ <row>
+ <label>PRODUCT TWO LEFT in cart</label>
+ <nb_visits>2</nb_visits>
+ <nb_uniq_visitors>1</nb_uniq_visitors>
+ <nb_actions>2</nb_actions>
+ <avg_price>0</avg_price>
+ <avg_quantity>0</avg_quantity>
+ <conversion_rate>0%</conversion_rate>
+ </row>
+ <row>
+ <label>PRODUCT THREE LEFT in cart</label>
+ <nb_visits>2</nb_visits>
+ <nb_uniq_visitors>1</nb_uniq_visitors>
+ <nb_actions>4</nb_actions>
+ <avg_price>666</avg_price>
+ <avg_quantity>0</avg_quantity>
+ <conversion_rate>0%</conversion_rate>
+ </row>
</result>
<result date="2011-04-06">
<row>
@@ -40,6 +61,24 @@
<avg_quantity>2</avg_quantity>
<conversion_rate>0%</conversion_rate>
</row>
+ <row>
+ <label>PRODUCT THREE LEFT in cart</label>
+ <nb_visits>1</nb_visits>
+ <nb_uniq_visitors>1</nb_uniq_visitors>
+ <nb_actions>2</nb_actions>
+ <avg_price>666</avg_price>
+ <avg_quantity>0</avg_quantity>
+ <conversion_rate>0%</conversion_rate>
+ </row>
+ <row>
+ <label>PRODUCT TWO LEFT in cart</label>
+ <nb_visits>1</nb_visits>
+ <nb_uniq_visitors>1</nb_uniq_visitors>
+ <nb_actions>1</nb_actions>
+ <avg_price>0</avg_price>
+ <avg_quantity>0</avg_quantity>
+ <conversion_rate>0%</conversion_rate>
+ </row>
</result>
<result date="2011-04-07" />
<result date="2011-04-08" />
diff --git a/plugins/Ecommerce/tests/System/expected/test_ecommerceOrderWithItemsmultipleDates_andMultipleWebsites__Goals.getItemsSku_day.xml b/plugins/Ecommerce/tests/System/expected/test_ecommerceOrderWithItemsmultipleDates_andMultipleWebsites__Goals.getItemsSku_day.xml
index 2c696320d5..c65a555532 100644
--- a/plugins/Ecommerce/tests/System/expected/test_ecommerceOrderWithItemsmultipleDates_andMultipleWebsites__Goals.getItemsSku_day.xml
+++ b/plugins/Ecommerce/tests/System/expected/test_ecommerceOrderWithItemsmultipleDates_andMultipleWebsites__Goals.getItemsSku_day.xml
@@ -7,18 +7,24 @@
<revenue>1500</revenue>
<quantity>1</quantity>
<orders>1</orders>
+ <nb_visits>1</nb_visits>
+ <nb_uniq_visitors>1</nb_uniq_visitors>
+ <nb_actions>1</nb_actions>
<avg_price>1500</avg_price>
<avg_quantity>1</avg_quantity>
- <conversion_rate>0%</conversion_rate>
+ <conversion_rate>100%</conversion_rate>
</row>
<row>
<label>SKU VERY nice indeed</label>
<revenue>1011.22</revenue>
<quantity>3</quantity>
<orders>2</orders>
+ <nb_visits>3</nb_visits>
+ <nb_uniq_visitors>1</nb_uniq_visitors>
+ <nb_actions>8</nb_actions>
<avg_price>255.61</avg_price>
<avg_quantity>1.5</avg_quantity>
- <conversion_rate>0%</conversion_rate>
+ <conversion_rate>66.67%</conversion_rate>
</row>
<row>
<label>ANOTHER SKU HERE</label>
@@ -29,6 +35,15 @@
<avg_quantity>6</avg_quantity>
<conversion_rate>0%</conversion_rate>
</row>
+ <row>
+ <label>SKU IN ABANDONED CART TWO</label>
+ <nb_visits>2</nb_visits>
+ <nb_uniq_visitors>1</nb_uniq_visitors>
+ <nb_actions>2</nb_actions>
+ <avg_price>0</avg_price>
+ <avg_quantity>0</avg_quantity>
+ <conversion_rate>0%</conversion_rate>
+ </row>
</result>
<result date="2011-04-06">
<row>
@@ -40,6 +55,24 @@
<avg_quantity>2</avg_quantity>
<conversion_rate>0%</conversion_rate>
</row>
+ <row>
+ <label>SKU IN ABANDONED CART TWO</label>
+ <nb_visits>1</nb_visits>
+ <nb_uniq_visitors>1</nb_uniq_visitors>
+ <nb_actions>1</nb_actions>
+ <avg_price>0</avg_price>
+ <avg_quantity>0</avg_quantity>
+ <conversion_rate>0%</conversion_rate>
+ </row>
+ <row>
+ <label>SKU VERY nice indeed</label>
+ <nb_visits>1</nb_visits>
+ <nb_uniq_visitors>1</nb_uniq_visitors>
+ <nb_actions>2</nb_actions>
+ <avg_price>666</avg_price>
+ <avg_quantity>0</avg_quantity>
+ <conversion_rate>0%</conversion_rate>
+ </row>
</result>
<result date="2011-04-07" />
<result date="2011-04-08" />
diff --git a/plugins/Goals/API.php b/plugins/Goals/API.php
index e39b088f1d..ecbb8ef74b 100644
--- a/plugins/Goals/API.php
+++ b/plugins/Goals/API.php
@@ -15,8 +15,10 @@ use Piwik\CacheId;
use Piwik\Cache as PiwikCache;
use Piwik\Common;
use Piwik\DataTable;
+use Piwik\DbHelper;
use Piwik\Metrics;
use Piwik\Piwik;
+use Piwik\Plugin\Manager;
use Piwik\Plugins\API\DataTable\MergeDataTables;
use Piwik\Plugins\CoreHome\Columns\Metrics\ConversionRate;
use Piwik\Plugins\Goals\Columns\Metrics\AverageOrderRevenue;
@@ -329,11 +331,29 @@ class API extends \Piwik\Plugin\API
$archive = Archive::build($idSite, $period, $date, $segment);
$dataTable = $archive->getDataTable($recordNameFinal);
- $this->enrichItemsTableWithViewMetrics($dataTable, $recordName, $idSite, $period, $date, $segment);
+ // Before Matomo 4.0.0 ecommerce views were tracked in custom variables
+ // So if Matomo was installed before try to fetch the views from custom variables and enrich the report
+ if (version_compare(DbHelper::getInstallVersion(),'4.0.0-b2', '<')) {
+ $this->enrichItemsTableWithViewMetrics($dataTable, $recordName, $idSite, $period, $date, $segment);
+ }
- // First rename the avg_price_viewed column
- $renameColumn = array(self::AVG_PRICE_VIEWED => 'avg_price');
- $dataTable->filter('ReplaceColumnNames', array($renameColumn));
+ // use average ecommerce view price if no cart price is available
+ $dataTable->filter(function(DataTable $table){
+ foreach ($table->getRowsWithoutSummaryRow() as $row) {
+ if (!$row->getColumn('avg_price') && !$row->getColumn(Metrics::INDEX_ECOMMERCE_ITEM_PRICE)) {
+ $row->renameColumn(self::AVG_PRICE_VIEWED, 'avg_price');
+ }
+ $row->deleteColumn(self::AVG_PRICE_VIEWED);
+ }
+ });
+
+ $reportToNotDefinedString = array(
+ 'Goals_ItemsSku' => Piwik::translate('General_NotDefined', Piwik::translate('Goals_ProductSKU')), // Note: this should never happen
+ 'Goals_ItemsName' => Piwik::translate('General_NotDefined', Piwik::translate('Goals_ProductName')),
+ 'Goals_ItemsCategory' => Piwik::translate('General_NotDefined', Piwik::translate('Goals_ProductCategory'))
+ );
+ $notDefinedStringPretty = $reportToNotDefinedString[$recordName];
+ $this->renameNotDefinedRow($dataTable, $notDefinedStringPretty);
$dataTable->queueFilter('ReplaceColumnNames');
$dataTable->queueFilter('ReplaceSummaryRowLabel');
@@ -365,6 +385,11 @@ class API extends \Piwik\Plugin\API
protected function enrichItemsDataTableWithItemsViewMetrics($dataTable, $idSite, $period, $date, $segment, $idSubtable)
{
+ if (in_array('nb_visits', $dataTable->getColumns())) {
+ // skip if table already contains visits
+ return;
+ }
+
$ecommerceViews = \Piwik\Plugins\CustomVariables\API::getInstance()->getCustomVariablesValuesFromNameId($idSite, $period, $date, $idSubtable, $segment, $_leavePriceViewedColumn = true);
// For Product names and SKU reports, and for Category report
@@ -746,6 +771,10 @@ class API extends \Piwik\Plugin\API
*/
protected function enrichItemsTableWithViewMetrics($dataTable, $recordName, $idSite, $period, $date, $segment)
{
+ if (!Manager::getInstance()->isPluginActivated('CustomVariables')) {
+ return;
+ }
+
// Enrich the datatable with Product/Categories views, and conversion rates
$customVariables = \Piwik\Plugins\CustomVariables\API::getInstance()->getCustomVariables($idSite, $period, $date, $segment, $expanded = false,
$_leavePiwikCoreVariables = true);
@@ -754,12 +783,6 @@ class API extends \Piwik\Plugin\API
'Goals_ItemsName' => '_pkn',
'Goals_ItemsCategory' => '_pkc',
);
- $reportToNotDefinedString = array(
- 'Goals_ItemsSku' => Piwik::translate('General_NotDefined', Piwik::translate('Goals_ProductSKU')), // Note: this should never happen
- 'Goals_ItemsName' => Piwik::translate('General_NotDefined', Piwik::translate('Goals_ProductName')),
- 'Goals_ItemsCategory' => Piwik::translate('General_NotDefined', Piwik::translate('Goals_ProductCategory'))
- );
- $notDefinedStringPretty = $reportToNotDefinedString[$recordName];
$customVarNameToLookFor = $mapping[$recordName];
// Handle case where date=last30&period=day
@@ -782,7 +805,6 @@ class API extends \Piwik\Plugin\API
}
$dataTable->addTable($dataTableForDate, $key);
}
- $this->renameNotDefinedRow($dataTableForDate, $notDefinedStringPretty);
}
} elseif ($customVariables instanceof DataTable) {
$row = $customVariables->getRowFromLabel($customVarNameToLookFor);
@@ -790,7 +812,6 @@ class API extends \Piwik\Plugin\API
$idSubtable = $row->getIdSubDataTable();
$this->enrichItemsDataTableWithItemsViewMetrics($dataTable, $idSite, $period, $date, $segment, $idSubtable);
}
- $this->renameNotDefinedRow($dataTable, $notDefinedStringPretty);
}
}
diff --git a/plugins/Goals/Archiver.php b/plugins/Goals/Archiver.php
index 56e8ae66aa..b0b61fbead 100644
--- a/plugins/Goals/Archiver.php
+++ b/plugins/Goals/Archiver.php
@@ -72,17 +72,26 @@ class Archiver extends \Piwik\Plugin\Archiver
array(121, 364),
array(364)
);
- protected $dimensionRecord = array(
+ protected $dimensionRecord = [
self::SKU_FIELD => self::ITEMS_SKU_RECORD_NAME,
self::NAME_FIELD => self::ITEMS_NAME_RECORD_NAME,
self::CATEGORY_FIELD => self::ITEMS_CATEGORY_RECORD_NAME
- );
+ ];
+ protected $actionMapping = [
+ self::SKU_FIELD => 'idaction_product_sku',
+ self::NAME_FIELD => 'idaction_product_name',
+ self::CATEGORY_FIELD => 'idaction_product_cat',
+ self::CATEGORY2_FIELD => 'idaction_product_cat2',
+ self::CATEGORY3_FIELD => 'idaction_product_cat3',
+ self::CATEGORY4_FIELD => 'idaction_product_cat4',
+ self::CATEGORY5_FIELD => 'idaction_product_cat5',
+ ];
/**
* Array containing one DataArray for each Ecommerce items dimension (name/sku/category abandoned carts and orders)
- * @var array
+ * @var DataArray[][]
*/
- protected $itemReports = array();
+ protected $itemReports = [];
public function aggregateDayReport()
{
@@ -225,15 +234,34 @@ class Archiver extends \Piwik\Plugin\Archiver
$this->initItemReports();
foreach ($this->getItemsDimensions() as $dimension) {
$query = $this->getLogAggregator()->queryEcommerceItems($dimension);
- if ($query == false) {
- continue;
+ if ($query !== false) {
+ $this->aggregateFromEcommerceItems($query, $dimension);
+ }
+
+ $query = $this->queryItemViewsForDimension($dimension);
+ if ($query !== false) {
+ $this->aggregateFromEcommerceViews($query, $dimension);
}
- $this->aggregateFromEcommerceItems($query, $dimension);
}
$this->insertItemReports();
return true;
}
+ protected function queryItemViewsForDimension($dimension)
+ {
+ $column = $this->actionMapping[$dimension];
+ $where = "log_link_visit_action.$column is not null";
+
+ return $this->getLogAggregator()->queryActionsByDimension(
+ ['label' => 'log_action1.name'],
+ $where,
+ ['AVG(log_link_visit_action.product_price) AS `avg_price_viewed`'],
+ false,
+ null,
+ [$column]
+ );
+ }
+
protected function initItemReports()
{
foreach ($this->getEcommerceIdGoals() as $ecommerceType) {
@@ -245,7 +273,6 @@ class Archiver extends \Piwik\Plugin\Archiver
protected function insertItemReports()
{
- /** @var DataArray $array */
foreach ($this->itemReports as $dimension => $itemAggregatesByType) {
foreach ($itemAggregatesByType as $ecommerceType => $itemAggregate) {
$recordName = $this->dimensionRecord[$dimension];
@@ -299,22 +326,37 @@ class Archiver extends \Piwik\Plugin\Archiver
}
}
- protected function cleanupRowGetLabel(&$row, $currentField)
+ protected function aggregateFromEcommerceViews($query, $dimension)
{
- $label = $row['label'];
- if (empty($label)) {
- // An empty additional category -> skip this iteration
- if ($this->isItemExtraCategory($currentField)) {
- return false;
+ while ($row = $query->fetch()) {
+
+ $label = $this->getRowLabel($row, $dimension);
+ if ($label === false) {
+ continue; // ignore empty additional categories
}
- $label = "Value not defined";
- // Product Name/Category not defined"
- if (\Piwik\Plugin\Manager::getInstance()->isPluginActivated('CustomVariables')) {
- $label = \Piwik\Plugins\CustomVariables\Archiver::LABEL_CUSTOM_VALUE_NOT_DEFINED;
+
+ // Aggregate extra categories in the Item categories array
+ if ($this->isItemExtraCategory($dimension)) {
+ $array = $this->itemReports[self::CATEGORY_FIELD];
+ } else {
+ $array = $this->itemReports[$dimension];
+ }
+
+ unset($row['label']);
+ $row['avg_price_viewed'] = round($row['avg_price_viewed'], GoalManager::REVENUE_PRECISION);
+
+ // add views to all types
+ foreach ($array as $ecommerceType => $dataArray) {
+ $dataArray->sumMetrics($label, $row);
}
}
+ }
+
+ protected function cleanupRowGetLabel(&$row, $currentField)
+ {
+ $label = $this->getRowLabel($row, $currentField);
- if ($row['ecommerceType'] == GoalManager::IDGOAL_CART) {
+ if (isset($row['ecommerceType']) && $row['ecommerceType'] == GoalManager::IDGOAL_CART) {
// abandoned carts are the number of visits with an abandoned cart
$row[Metrics::INDEX_ECOMMERCE_ORDERS] = $row[Metrics::INDEX_NB_VISITS];
}
@@ -327,6 +369,23 @@ class Archiver extends \Piwik\Plugin\Archiver
return $label;
}
+ protected function getRowLabel(&$row, $currentField)
+ {
+ $label = $row['label'];
+ if (empty($label)) {
+ // An empty additional category -> skip this iteration
+ if ($this->isItemExtraCategory($currentField)) {
+ return false;
+ }
+ $label = "Value not defined";
+ // Product Name/Category not defined"
+ if (\Piwik\Plugin\Manager::getInstance()->isPluginActivated('CustomVariables')) {
+ $label = \Piwik\Plugins\CustomVariables\Archiver::LABEL_CUSTOM_VALUE_NOT_DEFINED;
+ }
+ }
+ return $label;
+ }
+
protected function roundColumnValues(&$row)
{
$columnsToRound = array(
diff --git a/plugins/PagePerformance/tests/UI/expected-screenshots/PagePerformance_visualizations.png b/plugins/PagePerformance/tests/UI/expected-screenshots/PagePerformance_visualizations.png
index 186475ee8c..9edd6ce932 100644
--- a/plugins/PagePerformance/tests/UI/expected-screenshots/PagePerformance_visualizations.png
+++ b/plugins/PagePerformance/tests/UI/expected-screenshots/PagePerformance_visualizations.png
@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
-oid sha256:709294423a8066d7040176492792bf8836d47e493e4588818ae7c5531cbe0c79
-size 40138
+oid sha256:3bcfe4d57238c68e1cede32e761ab1467979777e4605c4d4a7b407d21d6e8edc
+size 40312
diff --git a/plugins/PrivacyManager/tests/System/expected/test___PrivacyManager.getAvailableLinkVisitActionColumnsToAnonymize.xml b/plugins/PrivacyManager/tests/System/expected/test___PrivacyManager.getAvailableLinkVisitActionColumnsToAnonymize.xml
index 0a79714081..7ef63fc612 100644
--- a/plugins/PrivacyManager/tests/System/expected/test___PrivacyManager.getAvailableLinkVisitActionColumnsToAnonymize.xml
+++ b/plugins/PrivacyManager/tests/System/expected/test___PrivacyManager.getAvailableLinkVisitActionColumnsToAnonymize.xml
@@ -101,6 +101,34 @@
<default_value />
</row>
<row>
+ <column_name>idaction_product_cat</column_name>
+ <default_value />
+ </row>
+ <row>
+ <column_name>idaction_product_cat2</column_name>
+ <default_value />
+ </row>
+ <row>
+ <column_name>idaction_product_cat3</column_name>
+ <default_value />
+ </row>
+ <row>
+ <column_name>idaction_product_cat4</column_name>
+ <default_value />
+ </row>
+ <row>
+ <column_name>idaction_product_cat5</column_name>
+ <default_value />
+ </row>
+ <row>
+ <column_name>idaction_product_name</column_name>
+ <default_value />
+ </row>
+ <row>
+ <column_name>idaction_product_sku</column_name>
+ <default_value />
+ </row>
+ <row>
<column_name>idaction_url</column_name>
<default_value />
</row>
@@ -117,6 +145,10 @@
<default_value />
</row>
<row>
+ <column_name>product_price</column_name>
+ <default_value />
+ </row>
+ <row>
<column_name>search_cat</column_name>
<default_value />
</row>
diff --git a/tests/PHPUnit/Fixtures/ManyVisitsWithGeoIPAndEcommerce.php b/tests/PHPUnit/Fixtures/ManyVisitsWithGeoIPAndEcommerce.php
index cb9e24c543..064179e7af 100644
--- a/tests/PHPUnit/Fixtures/ManyVisitsWithGeoIPAndEcommerce.php
+++ b/tests/PHPUnit/Fixtures/ManyVisitsWithGeoIPAndEcommerce.php
@@ -20,6 +20,11 @@ class ManyVisitsWithGeoIPAndEcommerce extends ManyVisitsWithGeoIP
*/
protected function trackVisit(\MatomoTracker $t, $fixtureCounter, $visitorCounter, $doBulk, array $params)
{
+ // Add some ecommerce views
+ if (($visitorCounter % 3) == 1) {
+ $t->setEcommerceView('Custom SKU', 'MyName', ['Category1', 'Category2', 'Category3', 'Category' . $visitorCounter], 17.4);
+ }
+
parent::trackVisit($t, $fixtureCounter, $visitorCounter, $doBulk, $params);
// Add a few ecommerce orders
diff --git a/tests/PHPUnit/Fixtures/TwoSitesEcommerceOrderWithItems.php b/tests/PHPUnit/Fixtures/TwoSitesEcommerceOrderWithItems.php
index 8c5f945d0e..c5fe09b667 100644
--- a/tests/PHPUnit/Fixtures/TwoSitesEcommerceOrderWithItems.php
+++ b/tests/PHPUnit/Fixtures/TwoSitesEcommerceOrderWithItems.php
@@ -66,10 +66,6 @@ class TwoSitesEcommerceOrderWithItems extends Fixture
$t->setEcommerceView('SKU2', 'PRODUCT name', $category, $price);
$t->setCustomVariable(5, 'VisitorType', 'NewLoggedOut', 'visit');
$t->setCustomVariable(4, 'ValueIsZero', '0', 'visit');
- self::assertEquals(array('_pks', 'SKU2'), $t->getCustomVariable(3, 'page'));
- self::assertEquals(array('_pkn', 'PRODUCT name'), $t->getCustomVariable(4, 'page'));
- self::assertEquals(array('_pkc', $category), $t->getCustomVariable(5, 'page'));
- self::assertEquals(array('_pkp', $price), $t->getCustomVariable(2, 'page'));
self::assertEquals(array('VisitorType', 'NewLoggedOut'), $t->getCustomVariable(5, 'visit'));
// this is also a goal conversion (visitConvertedGoalId==1)
@@ -85,7 +81,7 @@ class TwoSitesEcommerceOrderWithItems extends Fixture
self::checkResponse($t->doTrackPageView('Another Product page with no category'));
$t->setForceVisitDateTime(Date::factory($this->dateTime)->addHour(0.2)->getDatetime());
- $t->setEcommerceView($sku = 'SKU VERY nice indeed', $name = 'PRODUCT name', $categories = array('Multiple Category 1', '', 0, 'Multiple Category 2', 'Electronics & Cameras', 'Multiple Category 4', 'Multiple Category 5', 'SHOULD NOT BE REPORTEDSSSSSSSSSSSSSSssssssssssssssssssssssssssstttttttttttttttttttttttuuuu!'));
+ $t->setEcommerceView($sku = 'SKU VERY nice indeed', $name = 'PRODUCT name', $categories = ['Multiple Category 1', '', 0, 'Multiple Category 2', 'Electronics & Cameras', 'Multiple Category 4', 'Multiple Category 5', 'SHOULD NOT BE REPORTEDSSSSSSSSSSSSSSssssssssssssssssssssssssssstttttttttttttttttttttttuuuu!']);
self::checkResponse($t->doTrackPageView('Another Product page with multiple categories'));
// VISIT NO 2
diff --git a/tests/PHPUnit/System/expected/test_ImportLogs__Live.getLastVisitsDetails_range.xml b/tests/PHPUnit/System/expected/test_ImportLogs__Live.getLastVisitsDetails_range.xml
index e1ca8909f2..f034959a21 100644
--- a/tests/PHPUnit/System/expected/test_ImportLogs__Live.getLastVisitsDetails_range.xml
+++ b/tests/PHPUnit/System/expected/test_ImportLogs__Live.getLastVisitsDetails_range.xml
@@ -11,7 +11,7 @@
<type>action</type>
<url>http://piwik.org/</url>
<pageTitle>Liberate Web Analytics - Analytics - Piwik</pageTitle>
- <pageIdAction>35</pageIdAction>
+ <pageIdAction>39</pageIdAction>
<pageId>49</pageId>
@@ -164,7 +164,7 @@
<type>action</type>
<url>http://piwik.org/changelog/</url>
<pageTitle>Changelog Archive - Analytics - Piwik</pageTitle>
- <pageIdAction>44</pageIdAction>
+ <pageIdAction>48</pageIdAction>
<pageId>40</pageId>
@@ -204,7 +204,7 @@
<type>action</type>
<url>http://piwik.org/contact/</url>
<pageTitle>Contact the Piwik team - Analytics - Piwik</pageTitle>
- <pageIdAction>55</pageIdAction>
+ <pageIdAction>59</pageIdAction>
<pageId>48</pageId>
@@ -323,7 +323,7 @@
<type>action</type>
<url>http://demo.piwik.org/index.php?module=CoreHome&amp;action=index&amp;date=yesterday&amp;period=day&amp;idSite=7</url>
<pageTitle>demo.piwik.org/Piwik Forums - Piwik › Web Analytics Reports</pageTitle>
- <pageIdAction>53</pageIdAction>
+ <pageIdAction>57</pageIdAction>
<pageId>47</pageId>
@@ -486,7 +486,7 @@
<type>action</type>
<url>http://piwik.org/</url>
<pageTitle>Liberate Web Analytics - Analytics - Piwik</pageTitle>
- <pageIdAction>35</pageIdAction>
+ <pageIdAction>39</pageIdAction>
<pageId>44</pageId>
@@ -526,7 +526,7 @@
<type>action</type>
<url>http://piwik.org/what-is-piwisk/</url>
<pageTitle>What is Piwik? - Analytics - Piwik</pageTitle>
- <pageIdAction>51</pageIdAction>
+ <pageIdAction>55</pageIdAction>
<pageId>46</pageId>
@@ -666,7 +666,7 @@
<type>outlink</type>
<url>http://demo.piwik.org/</url>
<pageTitle />
- <pageIdAction>49</pageIdAction>
+ <pageIdAction>53</pageIdAction>
<pageId>45</pageId>
@@ -806,7 +806,7 @@
<type>action</type>
<url>http://piwik.org/blog/2012/10/integrate-piwik-into-your-rails-application/</url>
<pageTitle>Integrate Piwik into your Rails Application - Analytics - Piwik</pageTitle>
- <pageIdAction>48</pageIdAction>
+ <pageIdAction>52</pageIdAction>
<pageId>43</pageId>
@@ -969,7 +969,7 @@
<type>action</type>
<url>http://piwik.org/log-analytics/</url>
<pageTitle>Log Analytics - Analytics - Piwik</pageTitle>
- <pageIdAction>42</pageIdAction>
+ <pageIdAction>46</pageIdAction>
<pageId>42</pageId>
@@ -1120,7 +1120,7 @@
<type>action</type>
<url>http://piwik.org/blog/2014/03/piwik-2-1-massive-performance-reliability-improvements/</url>
<pageTitle>Piwik 2.1 — Massive Performance and Reliability Improvements - Analytics - Piwik</pageTitle>
- <pageIdAction>46</pageIdAction>
+ <pageIdAction>50</pageIdAction>
<pageId>41</pageId>
@@ -1265,7 +1265,7 @@
<type>action</type>
<url>http://piwik.org/log-analytics/</url>
<pageTitle>Log Analytics - Analytics - Piwik</pageTitle>
- <pageIdAction>42</pageIdAction>
+ <pageIdAction>46</pageIdAction>
<pageId>39</pageId>
@@ -1430,7 +1430,7 @@
<type>action</type>
<url>http://piwik.org/</url>
<pageTitle>Liberate Web Analytics - Analytics - Piwik</pageTitle>
- <pageIdAction>35</pageIdAction>
+ <pageIdAction>39</pageIdAction>
<pageId>35</pageId>
@@ -1470,7 +1470,7 @@
<type>action</type>
<url>http://piwik.org/download/</url>
<pageTitle>Download - Analytics - Piwik</pageTitle>
- <pageIdAction>39</pageIdAction>
+ <pageIdAction>43</pageIdAction>
<pageId>37</pageId>
@@ -1495,7 +1495,7 @@
<type>download</type>
<url>http://builds.piwik.org/latest.zip</url>
<pageTitle />
- <pageIdAction>40</pageIdAction>
+ <pageIdAction>44</pageIdAction>
<pageId>38</pageId>
@@ -1627,7 +1627,7 @@
<type>action</type>
<url>http://piwik.org/docs/installation/</url>
<pageTitle>Hello Installing Piwik - Analytics - Piwik</pageTitle>
- <pageIdAction>37</pageIdAction>
+ <pageIdAction>41</pageIdAction>
<pageId>36</pageId>
@@ -1784,7 +1784,7 @@
<type>action</type>
<url>http://piwik.org/</url>
<pageTitle>Liberate Web Analytics - Analytics - Piwik</pageTitle>
- <pageIdAction>35</pageIdAction>
+ <pageIdAction>39</pageIdAction>
<pageId>34</pageId>
@@ -2296,7 +2296,7 @@
<type>action</type>
<url>http://piwik.net/view/my/file.html</url>
<pageTitle />
- <pageIdAction>65</pageIdAction>
+ <pageIdAction>69</pageIdAction>
<pageId>86</pageId>
@@ -2426,7 +2426,7 @@
<type>action</type>
<url>http://www.notdatefiltered.com/blog/category/meta/</url>
<pageTitle />
- <pageIdAction>76</pageIdAction>
+ <pageIdAction>80</pageIdAction>
<pageId>99</pageId>
@@ -2556,7 +2556,7 @@
<type>action</type>
<url>http://piwik.net/Citrix/XenApp/Wan/auth/login.jsp</url>
<pageTitle>302/URL = http%3A%2F%2Fpiwik.net%2FCitrix%2FXenApp%2FWan%2Fauth%2Flogin.jsp</pageTitle>
- <pageIdAction>63</pageIdAction>
+ <pageIdAction>67</pageIdAction>
<pageId>84</pageId>
@@ -2596,7 +2596,7 @@
<type>action</type>
<url>http://piwik.net/Citrix/XenApp/Wan/auth/silentDetection.jsp</url>
<pageTitle />
- <pageIdAction>64</pageIdAction>
+ <pageIdAction>68</pageIdAction>
<pageId>85</pageId>
@@ -2711,7 +2711,7 @@
<type>action</type>
<url>http://hello.example.com/hello/world/6,681965</url>
<pageTitle>404/URL = http%3A%2F%2Fhello.example.com%2Fhello%2Fworld%2F6%2C681965</pageTitle>
- <pageIdAction>60</pageIdAction>
+ <pageIdAction>64</pageIdAction>
<pageId>93</pageId>
@@ -2744,7 +2744,7 @@
<type>action</type>
<url>http://hello.example.com/hello/from/another/world/6,681965</url>
<pageTitle />
- <pageIdAction>61</pageIdAction>
+ <pageIdAction>65</pageIdAction>
<pageId>83</pageId>
@@ -2784,7 +2784,7 @@
<type>action</type>
<url>http://hello.example.com/hello/from/another/world/6,681965</url>
<pageTitle />
- <pageIdAction>61</pageIdAction>
+ <pageIdAction>65</pageIdAction>
<pageId>94</pageId>
@@ -2911,7 +2911,7 @@
<type>action</type>
<url>http://xzy.example.com/Products/theProduct</url>
<pageTitle />
- <pageIdAction>56</pageIdAction>
+ <pageIdAction>60</pageIdAction>
<pageId>80</pageId>
@@ -2951,7 +2951,7 @@
<type>action</type>
<url>http://xzy.example.com/Products/theProduct</url>
<pageTitle />
- <pageIdAction>56</pageIdAction>
+ <pageIdAction>60</pageIdAction>
<pageId>91</pageId>
@@ -3078,7 +3078,7 @@
<type>action</type>
<url>http://example.hello.com/Topic/hw43061</url>
<pageTitle>301/URL = http%3A%2F%2Fexample.hello.com%2FTopic%2Fhw43061</pageTitle>
- <pageIdAction>58</pageIdAction>
+ <pageIdAction>62</pageIdAction>
<pageId>81</pageId>
@@ -3118,7 +3118,7 @@
<type>action</type>
<url>http://example.hello.com/Topic/hw43061</url>
<pageTitle>301/URL = http%3A%2F%2Fexample.hello.com%2FTopic%2Fhw43061</pageTitle>
- <pageIdAction>58</pageIdAction>
+ <pageIdAction>62</pageIdAction>
<pageId>92</pageId>
@@ -3245,7 +3245,7 @@
<type>action</type>
<url>http://hello.example.com/hello/world/6,681965</url>
<pageTitle>404/URL = http%3A%2F%2Fhello.example.com%2Fhello%2Fworld%2F6%2C681965</pageTitle>
- <pageIdAction>60</pageIdAction>
+ <pageIdAction>64</pageIdAction>
<pageId>82</pageId>
@@ -3379,6 +3379,8 @@
<pageId>30</pageId>
+ <productViewName>PRODUCT name</productViewName>
+ <productViewSku>SKU2</productViewSku>
<bandwidth>43</bandwidth>
<pageviewPosition>1</pageviewPosition>
<title>incredible title!</title>
@@ -3386,6 +3388,9 @@
<icon />
<iconSVG>plugins/Morpheus/images/action.svg</iconSVG>
+ <productViewCategories>
+ <row>Electronics &amp; Cameras</row>
+ </productViewCategories>
<customVariables>
<row>
<customVariablePageName3>_pks</customVariablePageName3>
@@ -3530,7 +3535,7 @@
<type>action</type>
<url>http://forum.piwik.org/register.php?0,approve=9a94a02145599</url>
<pageTitle>Piwik Forums</pageTitle>
- <pageIdAction>31</pageIdAction>
+ <pageIdAction>34</pageIdAction>
<pageId>31</pageId>
@@ -3815,7 +3820,7 @@
<type>action</type>
<url>http://piwik.net/api/fútbol-user-agent</url>
<pageTitle />
- <pageIdAction>71</pageIdAction>
+ <pageIdAction>75</pageIdAction>
<pageId>90</pageId>
@@ -3944,7 +3949,7 @@
<row>
<type>event</type>
<url>http://piwik.net/shqshne4jdp4b6.cloudfront.net/cfx/st​?key=value</url>
- <pageIdAction>66</pageIdAction>
+ <pageIdAction>70</pageIdAction>
<pageId>88</pageId>
@@ -4061,7 +4066,7 @@
<row>
<type>event</type>
<url>http://piwik.net/shqshne4jdp4b6.cloudfront.net/cfx/st​?key=value</url>
- <pageIdAction>66</pageIdAction>
+ <pageIdAction>70</pageIdAction>
<pageId>87</pageId>
@@ -6469,7 +6474,7 @@
<type>action</type>
<url>http://included3.com/blog/category/meta/</url>
<pageTitle />
- <pageIdAction>72</pageIdAction>
+ <pageIdAction>76</pageIdAction>
<pageId>95</pageId>
@@ -6599,7 +6604,7 @@
<type>action</type>
<url>http://included1.com/blog/category/meta/</url>
<pageTitle />
- <pageIdAction>74</pageIdAction>
+ <pageIdAction>78</pageIdAction>
<pageId>97</pageId>
@@ -7769,7 +7774,7 @@
<type>action</type>
<url>http://www.included4.com/blog/category/meta/</url>
<pageTitle />
- <pageIdAction>73</pageIdAction>
+ <pageIdAction>77</pageIdAction>
<pageId>96</pageId>
@@ -7899,7 +7904,7 @@
<type>action</type>
<url>http://www.included2.com/blog/category/meta/</url>
<pageTitle />
- <pageIdAction>75</pageIdAction>
+ <pageIdAction>79</pageIdAction>
<pageId>98</pageId>
diff --git a/tests/PHPUnit/System/expected/test_ImportLogs__PrivacyManager.getAvailableLinkVisitActionColumnsToAnonymize.xml b/tests/PHPUnit/System/expected/test_ImportLogs__PrivacyManager.getAvailableLinkVisitActionColumnsToAnonymize.xml
index 0a79714081..7ef63fc612 100644
--- a/tests/PHPUnit/System/expected/test_ImportLogs__PrivacyManager.getAvailableLinkVisitActionColumnsToAnonymize.xml
+++ b/tests/PHPUnit/System/expected/test_ImportLogs__PrivacyManager.getAvailableLinkVisitActionColumnsToAnonymize.xml
@@ -101,6 +101,34 @@
<default_value />
</row>
<row>
+ <column_name>idaction_product_cat</column_name>
+ <default_value />
+ </row>
+ <row>
+ <column_name>idaction_product_cat2</column_name>
+ <default_value />
+ </row>
+ <row>
+ <column_name>idaction_product_cat3</column_name>
+ <default_value />
+ </row>
+ <row>
+ <column_name>idaction_product_cat4</column_name>
+ <default_value />
+ </row>
+ <row>
+ <column_name>idaction_product_cat5</column_name>
+ <default_value />
+ </row>
+ <row>
+ <column_name>idaction_product_name</column_name>
+ <default_value />
+ </row>
+ <row>
+ <column_name>idaction_product_sku</column_name>
+ <default_value />
+ </row>
+ <row>
<column_name>idaction_url</column_name>
<default_value />
</row>
@@ -117,6 +145,10 @@
<default_value />
</row>
<row>
+ <column_name>product_price</column_name>
+ <default_value />
+ </row>
+ <row>
<column_name>search_cat</column_name>
<default_value />
</row>
diff --git a/tests/PHPUnit/System/expected/test_ImportLogs_siteIdThree_TrackedUsingLogReplayWithFixedSiteId__Live.getLastVisitsDetails_range.xml b/tests/PHPUnit/System/expected/test_ImportLogs_siteIdThree_TrackedUsingLogReplayWithFixedSiteId__Live.getLastVisitsDetails_range.xml
index 69b7323420..3fbc0dcaa2 100644
--- a/tests/PHPUnit/System/expected/test_ImportLogs_siteIdThree_TrackedUsingLogReplayWithFixedSiteId__Live.getLastVisitsDetails_range.xml
+++ b/tests/PHPUnit/System/expected/test_ImportLogs_siteIdThree_TrackedUsingLogReplayWithFixedSiteId__Live.getLastVisitsDetails_range.xml
@@ -11,7 +11,7 @@
<type>action</type>
<url>http://piwik.org/</url>
<pageTitle>Liberate Web Analytics - Analytics - Piwik</pageTitle>
- <pageIdAction>35</pageIdAction>
+ <pageIdAction>39</pageIdAction>
<pageId>69</pageId>
@@ -149,7 +149,7 @@
<type>action</type>
<url>http://piwik.org/changelog/</url>
<pageTitle>Changelog Archive - Analytics - Piwik</pageTitle>
- <pageIdAction>44</pageIdAction>
+ <pageIdAction>48</pageIdAction>
<pageId>60</pageId>
@@ -174,7 +174,7 @@
<type>action</type>
<url>http://piwik.org/contact/</url>
<pageTitle>Contact the Piwik team - Analytics - Piwik</pageTitle>
- <pageIdAction>55</pageIdAction>
+ <pageIdAction>59</pageIdAction>
<pageId>68</pageId>
@@ -293,7 +293,7 @@
<type>action</type>
<url>http://demo.piwik.org/index.php?module=CoreHome&amp;action=index&amp;date=yesterday&amp;period=day&amp;idSite=7</url>
<pageTitle>demo.piwik.org/Piwik Forums - Piwik › Web Analytics Reports</pageTitle>
- <pageIdAction>53</pageIdAction>
+ <pageIdAction>57</pageIdAction>
<pageId>67</pageId>
@@ -441,7 +441,7 @@
<type>action</type>
<url>http://piwik.org/</url>
<pageTitle>Liberate Web Analytics - Analytics - Piwik</pageTitle>
- <pageIdAction>35</pageIdAction>
+ <pageIdAction>39</pageIdAction>
<pageId>64</pageId>
@@ -466,7 +466,7 @@
<type>action</type>
<url>http://piwik.org/what-is-piwisk/</url>
<pageTitle>What is Piwik? - Analytics - Piwik</pageTitle>
- <pageIdAction>51</pageIdAction>
+ <pageIdAction>55</pageIdAction>
<pageId>66</pageId>
@@ -606,7 +606,7 @@
<type>outlink</type>
<url>http://demo.piwik.org/</url>
<pageTitle />
- <pageIdAction>49</pageIdAction>
+ <pageIdAction>53</pageIdAction>
<pageId>65</pageId>
@@ -746,7 +746,7 @@
<type>action</type>
<url>http://piwik.org/blog/2012/10/integrate-piwik-into-your-rails-application/</url>
<pageTitle>Integrate Piwik into your Rails Application - Analytics - Piwik</pageTitle>
- <pageIdAction>48</pageIdAction>
+ <pageIdAction>52</pageIdAction>
<pageId>63</pageId>
@@ -894,7 +894,7 @@
<type>action</type>
<url>http://piwik.org/log-analytics/</url>
<pageTitle>Log Analytics - Analytics - Piwik</pageTitle>
- <pageIdAction>42</pageIdAction>
+ <pageIdAction>46</pageIdAction>
<pageId>62</pageId>
@@ -1030,7 +1030,7 @@
<type>action</type>
<url>http://piwik.org/blog/2014/03/piwik-2-1-massive-performance-reliability-improvements/</url>
<pageTitle>Piwik 2.1 — Massive Performance and Reliability Improvements - Analytics - Piwik</pageTitle>
- <pageIdAction>46</pageIdAction>
+ <pageIdAction>50</pageIdAction>
<pageId>61</pageId>
@@ -1160,7 +1160,7 @@
<type>action</type>
<url>http://piwik.org/log-analytics/</url>
<pageTitle>Log Analytics - Analytics - Piwik</pageTitle>
- <pageIdAction>42</pageIdAction>
+ <pageIdAction>46</pageIdAction>
<pageId>59</pageId>
@@ -1310,7 +1310,7 @@
<type>action</type>
<url>http://piwik.org/</url>
<pageTitle>Liberate Web Analytics - Analytics - Piwik</pageTitle>
- <pageIdAction>35</pageIdAction>
+ <pageIdAction>39</pageIdAction>
<pageId>55</pageId>
@@ -1335,7 +1335,7 @@
<type>action</type>
<url>http://piwik.org/download/</url>
<pageTitle>Download - Analytics - Piwik</pageTitle>
- <pageIdAction>39</pageIdAction>
+ <pageIdAction>43</pageIdAction>
<pageId>57</pageId>
@@ -1360,7 +1360,7 @@
<type>download</type>
<url>http://builds.piwik.org/latest.zip</url>
<pageTitle />
- <pageIdAction>40</pageIdAction>
+ <pageIdAction>44</pageIdAction>
<pageId>58</pageId>
@@ -1492,7 +1492,7 @@
<type>action</type>
<url>http://piwik.org/docs/installation/</url>
<pageTitle>Hello Installing Piwik - Analytics - Piwik</pageTitle>
- <pageIdAction>37</pageIdAction>
+ <pageIdAction>41</pageIdAction>
<pageId>56</pageId>
@@ -1634,7 +1634,7 @@
<type>action</type>
<url>http://piwik.org/</url>
<pageTitle>Liberate Web Analytics - Analytics - Piwik</pageTitle>
- <pageIdAction>35</pageIdAction>
+ <pageIdAction>39</pageIdAction>
<pageId>54</pageId>
@@ -1780,6 +1780,8 @@
<pageId>50</pageId>
+ <productViewName>PRODUCT name</productViewName>
+ <productViewSku>SKU2</productViewSku>
<bandwidth>43</bandwidth>
<pageviewPosition>1</pageviewPosition>
<title>incredible title!</title>
@@ -1787,6 +1789,9 @@
<icon />
<iconSVG>plugins/Morpheus/images/action.svg</iconSVG>
+ <productViewCategories>
+ <row>Electronics &amp; Cameras</row>
+ </productViewCategories>
<customVariables>
<row>
<customVariablePageName3>_pks</customVariablePageName3>
@@ -1916,7 +1921,7 @@
<type>action</type>
<url>http://forum.piwik.org/register.php?0,approve=9a94a02145599</url>
<pageTitle>Piwik Forums</pageTitle>
- <pageIdAction>31</pageIdAction>
+ <pageIdAction>34</pageIdAction>
<pageId>51</pageId>
@@ -2069,6 +2074,9 @@
<icon />
<iconSVG>plugins/Morpheus/images/action.svg</iconSVG>
+ <productViewCategories>
+ <row>Electronics &amp; Cameras</row>
+ </productViewCategories>
<customVariables>
<row>
<customVariablePageName5>_pkc</customVariablePageName5>
@@ -2085,6 +2093,8 @@
<pageId>52</pageId>
+ <productViewName>PRODUCT name</productViewName>
+ <productViewSku>SKU VERY nice indeed</productViewSku>
<bandwidth>43</bandwidth>
<timeSpent>0</timeSpent>
<timeSpentPretty>0s</timeSpentPretty>
@@ -2121,6 +2131,9 @@
<icon />
<iconSVG>plugins/Morpheus/images/action.svg</iconSVG>
+ <productViewCategories>
+ <row>Electronics &amp; Cameras</row>
+ </productViewCategories>
<customVariables>
<row>
<customVariablePageName5>_pkc</customVariablePageName5>
diff --git a/tests/PHPUnit/System/expected/test_OneVisitorTwoVisits__PrivacyManager.getAvailableLinkVisitActionColumnsToAnonymize.xml b/tests/PHPUnit/System/expected/test_OneVisitorTwoVisits__PrivacyManager.getAvailableLinkVisitActionColumnsToAnonymize.xml
index 0a79714081..7ef63fc612 100644
--- a/tests/PHPUnit/System/expected/test_OneVisitorTwoVisits__PrivacyManager.getAvailableLinkVisitActionColumnsToAnonymize.xml
+++ b/tests/PHPUnit/System/expected/test_OneVisitorTwoVisits__PrivacyManager.getAvailableLinkVisitActionColumnsToAnonymize.xml
@@ -101,6 +101,34 @@
<default_value />
</row>
<row>
+ <column_name>idaction_product_cat</column_name>
+ <default_value />
+ </row>
+ <row>
+ <column_name>idaction_product_cat2</column_name>
+ <default_value />
+ </row>
+ <row>
+ <column_name>idaction_product_cat3</column_name>
+ <default_value />
+ </row>
+ <row>
+ <column_name>idaction_product_cat4</column_name>
+ <default_value />
+ </row>
+ <row>
+ <column_name>idaction_product_cat5</column_name>
+ <default_value />
+ </row>
+ <row>
+ <column_name>idaction_product_name</column_name>
+ <default_value />
+ </row>
+ <row>
+ <column_name>idaction_product_sku</column_name>
+ <default_value />
+ </row>
+ <row>
<column_name>idaction_url</column_name>
<default_value />
</row>
@@ -117,6 +145,10 @@
<default_value />
</row>
<row>
+ <column_name>product_price</column_name>
+ <default_value />
+ </row>
+ <row>
<column_name>search_cat</column_name>
<default_value />
</row>
diff --git a/tests/PHPUnit/System/expected/test_apiGetReportMetadata__API.getSegmentsMetadata.xml b/tests/PHPUnit/System/expected/test_apiGetReportMetadata__API.getSegmentsMetadata.xml
index 7d0c3a4557..f99d03751a 100644
--- a/tests/PHPUnit/System/expected/test_apiGetReportMetadata__API.getSegmentsMetadata.xml
+++ b/tests/PHPUnit/System/expected/test_apiGetReportMetadata__API.getSegmentsMetadata.xml
@@ -742,6 +742,12 @@
<segment>productPrice</segment>
</row>
<row>
+ <type>metric</type>
+ <category>Ecommerce</category>
+ <name>Viewed Product Price</name>
+ <segment>productViewPrice</segment>
+ </row>
+ <row>
<type>dimension</type>
<category>Ecommerce</category>
<name>Product Category</name>
@@ -766,4 +772,29 @@
<name>Product SKU</name>
<segment>productSku</segment>
</row>
+ <row>
+ <type>dimension</type>
+ <category>Ecommerce</category>
+ <name>Viewed Product Category</name>
+ <segment>productViewCategory</segment>
+ <unionOfSegments>
+ <row>productViewCategory1</row>
+ <row>productViewCategory2</row>
+ <row>productViewCategory3</row>
+ <row>productViewCategory4</row>
+ <row>productViewCategory5</row>
+ </unionOfSegments>
+ </row>
+ <row>
+ <type>dimension</type>
+ <category>Ecommerce</category>
+ <name>Viewed Product Name</name>
+ <segment>productViewName</segment>
+ </row>
+ <row>
+ <type>dimension</type>
+ <category>Ecommerce</category>
+ <name>Viewed Product SKU</name>
+ <segment>productViewSku</segment>
+ </row>
</result> \ No newline at end of file
diff --git a/tests/PHPUnit/System/expected/test_noVisit_PeriodIsLast__PrivacyManager.getAvailableLinkVisitActionColumnsToAnonymize.xml b/tests/PHPUnit/System/expected/test_noVisit_PeriodIsLast__PrivacyManager.getAvailableLinkVisitActionColumnsToAnonymize.xml
index 0a79714081..7ef63fc612 100644
--- a/tests/PHPUnit/System/expected/test_noVisit_PeriodIsLast__PrivacyManager.getAvailableLinkVisitActionColumnsToAnonymize.xml
+++ b/tests/PHPUnit/System/expected/test_noVisit_PeriodIsLast__PrivacyManager.getAvailableLinkVisitActionColumnsToAnonymize.xml
@@ -101,6 +101,34 @@
<default_value />
</row>
<row>
+ <column_name>idaction_product_cat</column_name>
+ <default_value />
+ </row>
+ <row>
+ <column_name>idaction_product_cat2</column_name>
+ <default_value />
+ </row>
+ <row>
+ <column_name>idaction_product_cat3</column_name>
+ <default_value />
+ </row>
+ <row>
+ <column_name>idaction_product_cat4</column_name>
+ <default_value />
+ </row>
+ <row>
+ <column_name>idaction_product_cat5</column_name>
+ <default_value />
+ </row>
+ <row>
+ <column_name>idaction_product_name</column_name>
+ <default_value />
+ </row>
+ <row>
+ <column_name>idaction_product_sku</column_name>
+ <default_value />
+ </row>
+ <row>
<column_name>idaction_url</column_name>
<default_value />
</row>
@@ -117,6 +145,10 @@
<default_value />
</row>
<row>
+ <column_name>product_price</column_name>
+ <default_value />
+ </row>
+ <row>
<column_name>search_cat</column_name>
<default_value />
</row>
diff --git a/tests/PHPUnit/System/expected/test_noVisit__PrivacyManager.getAvailableLinkVisitActionColumnsToAnonymize.xml b/tests/PHPUnit/System/expected/test_noVisit__PrivacyManager.getAvailableLinkVisitActionColumnsToAnonymize.xml
index 0a79714081..7ef63fc612 100644
--- a/tests/PHPUnit/System/expected/test_noVisit__PrivacyManager.getAvailableLinkVisitActionColumnsToAnonymize.xml
+++ b/tests/PHPUnit/System/expected/test_noVisit__PrivacyManager.getAvailableLinkVisitActionColumnsToAnonymize.xml
@@ -101,6 +101,34 @@
<default_value />
</row>
<row>
+ <column_name>idaction_product_cat</column_name>
+ <default_value />
+ </row>
+ <row>
+ <column_name>idaction_product_cat2</column_name>
+ <default_value />
+ </row>
+ <row>
+ <column_name>idaction_product_cat3</column_name>
+ <default_value />
+ </row>
+ <row>
+ <column_name>idaction_product_cat4</column_name>
+ <default_value />
+ </row>
+ <row>
+ <column_name>idaction_product_cat5</column_name>
+ <default_value />
+ </row>
+ <row>
+ <column_name>idaction_product_name</column_name>
+ <default_value />
+ </row>
+ <row>
+ <column_name>idaction_product_sku</column_name>
+ <default_value />
+ </row>
+ <row>
<column_name>idaction_url</column_name>
<default_value />
</row>
@@ -117,6 +145,10 @@
<default_value />
</row>
<row>
+ <column_name>product_price</column_name>
+ <default_value />
+ </row>
+ <row>
<column_name>search_cat</column_name>
<default_value />
</row>
diff --git a/tests/PHPUnit/System/expected/test_reportLimiting__Goals.getItemsCategory_day.xml b/tests/PHPUnit/System/expected/test_reportLimiting__Goals.getItemsCategory_day.xml
index a8d3e17e53..defda4613c 100644
--- a/tests/PHPUnit/System/expected/test_reportLimiting__Goals.getItemsCategory_day.xml
+++ b/tests/PHPUnit/System/expected/test_reportLimiting__Goals.getItemsCategory_day.xml
@@ -2,19 +2,46 @@
<result>
<row>
<label>Books Cat #0</label>
+ <nb_visits>5</nb_visits>
+ <nb_uniq_visitors>5</nb_uniq_visitors>
+ <nb_actions>5</nb_actions>
+ <avg_price>7.5</avg_price>
+ <avg_quantity>0</avg_quantity>
+ <conversion_rate>0%</conversion_rate>
+ </row>
+ <row>
+ <label>Books Cat #1</label>
+ <nb_visits>5</nb_visits>
+ <nb_uniq_visitors>5</nb_uniq_visitors>
+ <nb_actions>5</nb_actions>
+ <avg_price>7.5</avg_price>
+ <avg_quantity>0</avg_quantity>
+ <conversion_rate>0%</conversion_rate>
+ </row>
+ <row>
+ <label>Books Cat #2</label>
+ <nb_visits>5</nb_visits>
<nb_uniq_visitors>5</nb_uniq_visitors>
+ <nb_actions>5</nb_actions>
+ <avg_price>7.5</avg_price>
+ <avg_quantity>0</avg_quantity>
+ <conversion_rate>0%</conversion_rate>
+ </row>
+ <row>
+ <label>Books Cat #3</label>
<nb_visits>5</nb_visits>
+ <nb_uniq_visitors>5</nb_uniq_visitors>
<nb_actions>5</nb_actions>
<avg_price>7.5</avg_price>
<avg_quantity>0</avg_quantity>
<conversion_rate>0%</conversion_rate>
</row>
<row>
- <label>Others</label>
- <nb_uniq_visitors>20</nb_uniq_visitors>
- <nb_visits>20</nb_visits>
- <nb_actions>20</nb_actions>
- <avg_price>30</avg_price>
+ <label>Books Cat #4</label>
+ <nb_visits>5</nb_visits>
+ <nb_uniq_visitors>5</nb_uniq_visitors>
+ <nb_actions>5</nb_actions>
+ <avg_price>7.5</avg_price>
<avg_quantity>0</avg_quantity>
<conversion_rate>0%</conversion_rate>
</row>
diff --git a/tests/PHPUnit/System/expected/test_reportLimiting__Goals.getItemsName_day.xml b/tests/PHPUnit/System/expected/test_reportLimiting__Goals.getItemsName_day.xml
index 95cb364b56..563eaeada9 100644
--- a/tests/PHPUnit/System/expected/test_reportLimiting__Goals.getItemsName_day.xml
+++ b/tests/PHPUnit/System/expected/test_reportLimiting__Goals.getItemsName_day.xml
@@ -2,19 +2,226 @@
<result>
<row>
<label>Book0</label>
+ <nb_visits>1</nb_visits>
+ <nb_uniq_visitors>1</nb_uniq_visitors>
+ <nb_actions>1</nb_actions>
+ <avg_price>7.5</avg_price>
+ <avg_quantity>0</avg_quantity>
+ <conversion_rate>0%</conversion_rate>
+ </row>
+ <row>
+ <label>Book1</label>
+ <nb_visits>1</nb_visits>
+ <nb_uniq_visitors>1</nb_uniq_visitors>
+ <nb_actions>1</nb_actions>
+ <avg_price>7.5</avg_price>
+ <avg_quantity>0</avg_quantity>
+ <conversion_rate>0%</conversion_rate>
+ </row>
+ <row>
+ <label>Book2</label>
+ <nb_visits>1</nb_visits>
+ <nb_uniq_visitors>1</nb_uniq_visitors>
+ <nb_actions>1</nb_actions>
+ <avg_price>7.5</avg_price>
+ <avg_quantity>0</avg_quantity>
+ <conversion_rate>0%</conversion_rate>
+ </row>
+ <row>
+ <label>Book3</label>
+ <nb_visits>1</nb_visits>
+ <nb_uniq_visitors>1</nb_uniq_visitors>
+ <nb_actions>1</nb_actions>
+ <avg_price>7.5</avg_price>
+ <avg_quantity>0</avg_quantity>
+ <conversion_rate>0%</conversion_rate>
+ </row>
+ <row>
+ <label>Book4</label>
+ <nb_visits>1</nb_visits>
+ <nb_uniq_visitors>1</nb_uniq_visitors>
+ <nb_actions>1</nb_actions>
+ <avg_price>7.5</avg_price>
+ <avg_quantity>0</avg_quantity>
+ <conversion_rate>0%</conversion_rate>
+ </row>
+ <row>
+ <label>Book5</label>
+ <nb_visits>1</nb_visits>
+ <nb_uniq_visitors>1</nb_uniq_visitors>
+ <nb_actions>1</nb_actions>
+ <avg_price>7.5</avg_price>
+ <avg_quantity>0</avg_quantity>
+ <conversion_rate>0%</conversion_rate>
+ </row>
+ <row>
+ <label>Book6</label>
+ <nb_visits>1</nb_visits>
+ <nb_uniq_visitors>1</nb_uniq_visitors>
+ <nb_actions>1</nb_actions>
+ <avg_price>7.5</avg_price>
+ <avg_quantity>0</avg_quantity>
+ <conversion_rate>0%</conversion_rate>
+ </row>
+ <row>
+ <label>Book7</label>
+ <nb_visits>1</nb_visits>
+ <nb_uniq_visitors>1</nb_uniq_visitors>
+ <nb_actions>1</nb_actions>
+ <avg_price>7.5</avg_price>
+ <avg_quantity>0</avg_quantity>
+ <conversion_rate>0%</conversion_rate>
+ </row>
+ <row>
+ <label>Book8</label>
+ <nb_visits>1</nb_visits>
+ <nb_uniq_visitors>1</nb_uniq_visitors>
+ <nb_actions>1</nb_actions>
+ <avg_price>7.5</avg_price>
+ <avg_quantity>0</avg_quantity>
+ <conversion_rate>0%</conversion_rate>
+ </row>
+ <row>
+ <label>Book9</label>
+ <nb_visits>1</nb_visits>
+ <nb_uniq_visitors>1</nb_uniq_visitors>
+ <nb_actions>1</nb_actions>
+ <avg_price>7.5</avg_price>
+ <avg_quantity>0</avg_quantity>
+ <conversion_rate>0%</conversion_rate>
+ </row>
+ <row>
+ <label>Book10</label>
+ <nb_visits>1</nb_visits>
+ <nb_uniq_visitors>1</nb_uniq_visitors>
+ <nb_actions>1</nb_actions>
+ <avg_price>7.5</avg_price>
+ <avg_quantity>0</avg_quantity>
+ <conversion_rate>0%</conversion_rate>
+ </row>
+ <row>
+ <label>Book11</label>
+ <nb_visits>1</nb_visits>
+ <nb_uniq_visitors>1</nb_uniq_visitors>
+ <nb_actions>1</nb_actions>
+ <avg_price>7.5</avg_price>
+ <avg_quantity>0</avg_quantity>
+ <conversion_rate>0%</conversion_rate>
+ </row>
+ <row>
+ <label>Book12</label>
+ <nb_visits>1</nb_visits>
+ <nb_uniq_visitors>1</nb_uniq_visitors>
+ <nb_actions>1</nb_actions>
+ <avg_price>7.5</avg_price>
+ <avg_quantity>0</avg_quantity>
+ <conversion_rate>0%</conversion_rate>
+ </row>
+ <row>
+ <label>Book13</label>
+ <nb_visits>1</nb_visits>
+ <nb_uniq_visitors>1</nb_uniq_visitors>
+ <nb_actions>1</nb_actions>
+ <avg_price>7.5</avg_price>
+ <avg_quantity>0</avg_quantity>
+ <conversion_rate>0%</conversion_rate>
+ </row>
+ <row>
+ <label>Book14</label>
+ <nb_visits>1</nb_visits>
+ <nb_uniq_visitors>1</nb_uniq_visitors>
+ <nb_actions>1</nb_actions>
+ <avg_price>7.5</avg_price>
+ <avg_quantity>0</avg_quantity>
+ <conversion_rate>0%</conversion_rate>
+ </row>
+ <row>
+ <label>Book15</label>
+ <nb_visits>1</nb_visits>
+ <nb_uniq_visitors>1</nb_uniq_visitors>
+ <nb_actions>1</nb_actions>
+ <avg_price>7.5</avg_price>
+ <avg_quantity>0</avg_quantity>
+ <conversion_rate>0%</conversion_rate>
+ </row>
+ <row>
+ <label>Book16</label>
+ <nb_visits>1</nb_visits>
+ <nb_uniq_visitors>1</nb_uniq_visitors>
+ <nb_actions>1</nb_actions>
+ <avg_price>7.5</avg_price>
+ <avg_quantity>0</avg_quantity>
+ <conversion_rate>0%</conversion_rate>
+ </row>
+ <row>
+ <label>Book17</label>
+ <nb_visits>1</nb_visits>
+ <nb_uniq_visitors>1</nb_uniq_visitors>
+ <nb_actions>1</nb_actions>
+ <avg_price>7.5</avg_price>
+ <avg_quantity>0</avg_quantity>
+ <conversion_rate>0%</conversion_rate>
+ </row>
+ <row>
+ <label>Book18</label>
+ <nb_visits>1</nb_visits>
+ <nb_uniq_visitors>1</nb_uniq_visitors>
+ <nb_actions>1</nb_actions>
+ <avg_price>7.5</avg_price>
+ <avg_quantity>0</avg_quantity>
+ <conversion_rate>0%</conversion_rate>
+ </row>
+ <row>
+ <label>Book19</label>
+ <nb_visits>1</nb_visits>
<nb_uniq_visitors>1</nb_uniq_visitors>
+ <nb_actions>1</nb_actions>
+ <avg_price>7.5</avg_price>
+ <avg_quantity>0</avg_quantity>
+ <conversion_rate>0%</conversion_rate>
+ </row>
+ <row>
+ <label>Book20</label>
<nb_visits>1</nb_visits>
+ <nb_uniq_visitors>1</nb_uniq_visitors>
<nb_actions>1</nb_actions>
<avg_price>7.5</avg_price>
<avg_quantity>0</avg_quantity>
<conversion_rate>0%</conversion_rate>
</row>
<row>
- <label>Others</label>
- <nb_uniq_visitors>24</nb_uniq_visitors>
- <nb_visits>24</nb_visits>
- <nb_actions>24</nb_actions>
- <avg_price>180</avg_price>
+ <label>Book21</label>
+ <nb_visits>1</nb_visits>
+ <nb_uniq_visitors>1</nb_uniq_visitors>
+ <nb_actions>1</nb_actions>
+ <avg_price>7.5</avg_price>
+ <avg_quantity>0</avg_quantity>
+ <conversion_rate>0%</conversion_rate>
+ </row>
+ <row>
+ <label>Book22</label>
+ <nb_visits>1</nb_visits>
+ <nb_uniq_visitors>1</nb_uniq_visitors>
+ <nb_actions>1</nb_actions>
+ <avg_price>7.5</avg_price>
+ <avg_quantity>0</avg_quantity>
+ <conversion_rate>0%</conversion_rate>
+ </row>
+ <row>
+ <label>Book23</label>
+ <nb_visits>1</nb_visits>
+ <nb_uniq_visitors>1</nb_uniq_visitors>
+ <nb_actions>1</nb_actions>
+ <avg_price>7.5</avg_price>
+ <avg_quantity>0</avg_quantity>
+ <conversion_rate>0%</conversion_rate>
+ </row>
+ <row>
+ <label>Book24</label>
+ <nb_visits>1</nb_visits>
+ <nb_uniq_visitors>1</nb_uniq_visitors>
+ <nb_actions>1</nb_actions>
+ <avg_price>7.5</avg_price>
<avg_quantity>0</avg_quantity>
<conversion_rate>0%</conversion_rate>
</row>
diff --git a/tests/PHPUnit/System/expected/test_reportLimiting__Goals.getItemsSku_day.xml b/tests/PHPUnit/System/expected/test_reportLimiting__Goals.getItemsSku_day.xml
index c234bed59e..4f702e147d 100644
--- a/tests/PHPUnit/System/expected/test_reportLimiting__Goals.getItemsSku_day.xml
+++ b/tests/PHPUnit/System/expected/test_reportLimiting__Goals.getItemsSku_day.xml
@@ -1,2 +1,228 @@
<?xml version="1.0" encoding="utf-8" ?>
-<result /> \ No newline at end of file
+<result>
+ <row>
+ <label>id_book0</label>
+ <nb_visits>1</nb_visits>
+ <nb_uniq_visitors>1</nb_uniq_visitors>
+ <nb_actions>1</nb_actions>
+ <avg_price>7.5</avg_price>
+ <avg_quantity>0</avg_quantity>
+ <conversion_rate>0%</conversion_rate>
+ </row>
+ <row>
+ <label>id_book1</label>
+ <nb_visits>1</nb_visits>
+ <nb_uniq_visitors>1</nb_uniq_visitors>
+ <nb_actions>1</nb_actions>
+ <avg_price>7.5</avg_price>
+ <avg_quantity>0</avg_quantity>
+ <conversion_rate>0%</conversion_rate>
+ </row>
+ <row>
+ <label>id_book2</label>
+ <nb_visits>1</nb_visits>
+ <nb_uniq_visitors>1</nb_uniq_visitors>
+ <nb_actions>1</nb_actions>
+ <avg_price>7.5</avg_price>
+ <avg_quantity>0</avg_quantity>
+ <conversion_rate>0%</conversion_rate>
+ </row>
+ <row>
+ <label>id_book3</label>
+ <nb_visits>1</nb_visits>
+ <nb_uniq_visitors>1</nb_uniq_visitors>
+ <nb_actions>1</nb_actions>
+ <avg_price>7.5</avg_price>
+ <avg_quantity>0</avg_quantity>
+ <conversion_rate>0%</conversion_rate>
+ </row>
+ <row>
+ <label>id_book4</label>
+ <nb_visits>1</nb_visits>
+ <nb_uniq_visitors>1</nb_uniq_visitors>
+ <nb_actions>1</nb_actions>
+ <avg_price>7.5</avg_price>
+ <avg_quantity>0</avg_quantity>
+ <conversion_rate>0%</conversion_rate>
+ </row>
+ <row>
+ <label>id_book5</label>
+ <nb_visits>1</nb_visits>
+ <nb_uniq_visitors>1</nb_uniq_visitors>
+ <nb_actions>1</nb_actions>
+ <avg_price>7.5</avg_price>
+ <avg_quantity>0</avg_quantity>
+ <conversion_rate>0%</conversion_rate>
+ </row>
+ <row>
+ <label>id_book6</label>
+ <nb_visits>1</nb_visits>
+ <nb_uniq_visitors>1</nb_uniq_visitors>
+ <nb_actions>1</nb_actions>
+ <avg_price>7.5</avg_price>
+ <avg_quantity>0</avg_quantity>
+ <conversion_rate>0%</conversion_rate>
+ </row>
+ <row>
+ <label>id_book7</label>
+ <nb_visits>1</nb_visits>
+ <nb_uniq_visitors>1</nb_uniq_visitors>
+ <nb_actions>1</nb_actions>
+ <avg_price>7.5</avg_price>
+ <avg_quantity>0</avg_quantity>
+ <conversion_rate>0%</conversion_rate>
+ </row>
+ <row>
+ <label>id_book8</label>
+ <nb_visits>1</nb_visits>
+ <nb_uniq_visitors>1</nb_uniq_visitors>
+ <nb_actions>1</nb_actions>
+ <avg_price>7.5</avg_price>
+ <avg_quantity>0</avg_quantity>
+ <conversion_rate>0%</conversion_rate>
+ </row>
+ <row>
+ <label>id_book9</label>
+ <nb_visits>1</nb_visits>
+ <nb_uniq_visitors>1</nb_uniq_visitors>
+ <nb_actions>1</nb_actions>
+ <avg_price>7.5</avg_price>
+ <avg_quantity>0</avg_quantity>
+ <conversion_rate>0%</conversion_rate>
+ </row>
+ <row>
+ <label>id_book10</label>
+ <nb_visits>1</nb_visits>
+ <nb_uniq_visitors>1</nb_uniq_visitors>
+ <nb_actions>1</nb_actions>
+ <avg_price>7.5</avg_price>
+ <avg_quantity>0</avg_quantity>
+ <conversion_rate>0%</conversion_rate>
+ </row>
+ <row>
+ <label>id_book11</label>
+ <nb_visits>1</nb_visits>
+ <nb_uniq_visitors>1</nb_uniq_visitors>
+ <nb_actions>1</nb_actions>
+ <avg_price>7.5</avg_price>
+ <avg_quantity>0</avg_quantity>
+ <conversion_rate>0%</conversion_rate>
+ </row>
+ <row>
+ <label>id_book12</label>
+ <nb_visits>1</nb_visits>
+ <nb_uniq_visitors>1</nb_uniq_visitors>
+ <nb_actions>1</nb_actions>
+ <avg_price>7.5</avg_price>
+ <avg_quantity>0</avg_quantity>
+ <conversion_rate>0%</conversion_rate>
+ </row>
+ <row>
+ <label>id_book13</label>
+ <nb_visits>1</nb_visits>
+ <nb_uniq_visitors>1</nb_uniq_visitors>
+ <nb_actions>1</nb_actions>
+ <avg_price>7.5</avg_price>
+ <avg_quantity>0</avg_quantity>
+ <conversion_rate>0%</conversion_rate>
+ </row>
+ <row>
+ <label>id_book14</label>
+ <nb_visits>1</nb_visits>
+ <nb_uniq_visitors>1</nb_uniq_visitors>
+ <nb_actions>1</nb_actions>
+ <avg_price>7.5</avg_price>
+ <avg_quantity>0</avg_quantity>
+ <conversion_rate>0%</conversion_rate>
+ </row>
+ <row>
+ <label>id_book15</label>
+ <nb_visits>1</nb_visits>
+ <nb_uniq_visitors>1</nb_uniq_visitors>
+ <nb_actions>1</nb_actions>
+ <avg_price>7.5</avg_price>
+ <avg_quantity>0</avg_quantity>
+ <conversion_rate>0%</conversion_rate>
+ </row>
+ <row>
+ <label>id_book16</label>
+ <nb_visits>1</nb_visits>
+ <nb_uniq_visitors>1</nb_uniq_visitors>
+ <nb_actions>1</nb_actions>
+ <avg_price>7.5</avg_price>
+ <avg_quantity>0</avg_quantity>
+ <conversion_rate>0%</conversion_rate>
+ </row>
+ <row>
+ <label>id_book17</label>
+ <nb_visits>1</nb_visits>
+ <nb_uniq_visitors>1</nb_uniq_visitors>
+ <nb_actions>1</nb_actions>
+ <avg_price>7.5</avg_price>
+ <avg_quantity>0</avg_quantity>
+ <conversion_rate>0%</conversion_rate>
+ </row>
+ <row>
+ <label>id_book18</label>
+ <nb_visits>1</nb_visits>
+ <nb_uniq_visitors>1</nb_uniq_visitors>
+ <nb_actions>1</nb_actions>
+ <avg_price>7.5</avg_price>
+ <avg_quantity>0</avg_quantity>
+ <conversion_rate>0%</conversion_rate>
+ </row>
+ <row>
+ <label>id_book19</label>
+ <nb_visits>1</nb_visits>
+ <nb_uniq_visitors>1</nb_uniq_visitors>
+ <nb_actions>1</nb_actions>
+ <avg_price>7.5</avg_price>
+ <avg_quantity>0</avg_quantity>
+ <conversion_rate>0%</conversion_rate>
+ </row>
+ <row>
+ <label>id_book20</label>
+ <nb_visits>1</nb_visits>
+ <nb_uniq_visitors>1</nb_uniq_visitors>
+ <nb_actions>1</nb_actions>
+ <avg_price>7.5</avg_price>
+ <avg_quantity>0</avg_quantity>
+ <conversion_rate>0%</conversion_rate>
+ </row>
+ <row>
+ <label>id_book21</label>
+ <nb_visits>1</nb_visits>
+ <nb_uniq_visitors>1</nb_uniq_visitors>
+ <nb_actions>1</nb_actions>
+ <avg_price>7.5</avg_price>
+ <avg_quantity>0</avg_quantity>
+ <conversion_rate>0%</conversion_rate>
+ </row>
+ <row>
+ <label>id_book22</label>
+ <nb_visits>1</nb_visits>
+ <nb_uniq_visitors>1</nb_uniq_visitors>
+ <nb_actions>1</nb_actions>
+ <avg_price>7.5</avg_price>
+ <avg_quantity>0</avg_quantity>
+ <conversion_rate>0%</conversion_rate>
+ </row>
+ <row>
+ <label>id_book23</label>
+ <nb_visits>1</nb_visits>
+ <nb_uniq_visitors>1</nb_uniq_visitors>
+ <nb_actions>1</nb_actions>
+ <avg_price>7.5</avg_price>
+ <avg_quantity>0</avg_quantity>
+ <conversion_rate>0%</conversion_rate>
+ </row>
+ <row>
+ <label>id_book24</label>
+ <nb_visits>1</nb_visits>
+ <nb_uniq_visitors>1</nb_uniq_visitors>
+ <nb_actions>1</nb_actions>
+ <avg_price>7.5</avg_price>
+ <avg_quantity>0</avg_quantity>
+ <conversion_rate>0%</conversion_rate>
+ </row>
+</result> \ No newline at end of file
diff --git a/tests/PHPUnit/System/expected/test_reportLimiting_flattened__Goals.getItemsCategory_day.xml b/tests/PHPUnit/System/expected/test_reportLimiting_flattened__Goals.getItemsCategory_day.xml
index 6b91011da3..2faabf690a 100644
--- a/tests/PHPUnit/System/expected/test_reportLimiting_flattened__Goals.getItemsCategory_day.xml
+++ b/tests/PHPUnit/System/expected/test_reportLimiting_flattened__Goals.getItemsCategory_day.xml
@@ -1,24 +1,53 @@
<?xml version="1.0" encoding="utf-8" ?>
<result>
<row>
- <label>Others</label>
- <nb_uniq_visitors>20</nb_uniq_visitors>
- <nb_visits>20</nb_visits>
- <nb_actions>20</nb_actions>
- <avg_price>30</avg_price>
+ <label>Books Cat #0</label>
+ <nb_visits>5</nb_visits>
+ <nb_uniq_visitors>5</nb_uniq_visitors>
+ <nb_actions>5</nb_actions>
+ <avg_price>7.5</avg_price>
<avg_quantity>0</avg_quantity>
<conversion_rate>0%</conversion_rate>
- <is_summary>1</is_summary>
- <Ecommerce_ProductCategory>Others</Ecommerce_ProductCategory>
+ <Ecommerce_ProductCategory>Books Cat #0</Ecommerce_ProductCategory>
</row>
<row>
- <label>Books Cat #0</label>
+ <label>Books Cat #1</label>
+ <nb_visits>5</nb_visits>
<nb_uniq_visitors>5</nb_uniq_visitors>
+ <nb_actions>5</nb_actions>
+ <avg_price>7.5</avg_price>
+ <avg_quantity>0</avg_quantity>
+ <conversion_rate>0%</conversion_rate>
+ <Ecommerce_ProductCategory>Books Cat #1</Ecommerce_ProductCategory>
+ </row>
+ <row>
+ <label>Books Cat #2</label>
<nb_visits>5</nb_visits>
+ <nb_uniq_visitors>5</nb_uniq_visitors>
<nb_actions>5</nb_actions>
<avg_price>7.5</avg_price>
<avg_quantity>0</avg_quantity>
<conversion_rate>0%</conversion_rate>
- <Ecommerce_ProductCategory>Books Cat #0</Ecommerce_ProductCategory>
+ <Ecommerce_ProductCategory>Books Cat #2</Ecommerce_ProductCategory>
+ </row>
+ <row>
+ <label>Books Cat #3</label>
+ <nb_visits>5</nb_visits>
+ <nb_uniq_visitors>5</nb_uniq_visitors>
+ <nb_actions>5</nb_actions>
+ <avg_price>7.5</avg_price>
+ <avg_quantity>0</avg_quantity>
+ <conversion_rate>0%</conversion_rate>
+ <Ecommerce_ProductCategory>Books Cat #3</Ecommerce_ProductCategory>
+ </row>
+ <row>
+ <label>Books Cat #4</label>
+ <nb_visits>5</nb_visits>
+ <nb_uniq_visitors>5</nb_uniq_visitors>
+ <nb_actions>5</nb_actions>
+ <avg_price>7.5</avg_price>
+ <avg_quantity>0</avg_quantity>
+ <conversion_rate>0%</conversion_rate>
+ <Ecommerce_ProductCategory>Books Cat #4</Ecommerce_ProductCategory>
</row>
</result> \ No newline at end of file
diff --git a/tests/PHPUnit/System/expected/test_reportLimiting_flattened__Goals.getItemsName_day.xml b/tests/PHPUnit/System/expected/test_reportLimiting_flattened__Goals.getItemsName_day.xml
index 3f35409fb0..9600fa8391 100644
--- a/tests/PHPUnit/System/expected/test_reportLimiting_flattened__Goals.getItemsName_day.xml
+++ b/tests/PHPUnit/System/expected/test_reportLimiting_flattened__Goals.getItemsName_day.xml
@@ -1,24 +1,253 @@
<?xml version="1.0" encoding="utf-8" ?>
<result>
<row>
- <label>Others</label>
- <nb_uniq_visitors>24</nb_uniq_visitors>
- <nb_visits>24</nb_visits>
- <nb_actions>24</nb_actions>
- <avg_price>180</avg_price>
+ <label>Book0</label>
+ <nb_visits>1</nb_visits>
+ <nb_uniq_visitors>1</nb_uniq_visitors>
+ <nb_actions>1</nb_actions>
+ <avg_price>7.5</avg_price>
<avg_quantity>0</avg_quantity>
<conversion_rate>0%</conversion_rate>
- <is_summary>1</is_summary>
- <Ecommerce_ProductName>Others</Ecommerce_ProductName>
+ <Ecommerce_ProductName>Book0</Ecommerce_ProductName>
</row>
<row>
- <label>Book0</label>
+ <label>Book1</label>
+ <nb_visits>1</nb_visits>
+ <nb_uniq_visitors>1</nb_uniq_visitors>
+ <nb_actions>1</nb_actions>
+ <avg_price>7.5</avg_price>
+ <avg_quantity>0</avg_quantity>
+ <conversion_rate>0%</conversion_rate>
+ <Ecommerce_ProductName>Book1</Ecommerce_ProductName>
+ </row>
+ <row>
+ <label>Book2</label>
+ <nb_visits>1</nb_visits>
<nb_uniq_visitors>1</nb_uniq_visitors>
+ <nb_actions>1</nb_actions>
+ <avg_price>7.5</avg_price>
+ <avg_quantity>0</avg_quantity>
+ <conversion_rate>0%</conversion_rate>
+ <Ecommerce_ProductName>Book2</Ecommerce_ProductName>
+ </row>
+ <row>
+ <label>Book3</label>
<nb_visits>1</nb_visits>
+ <nb_uniq_visitors>1</nb_uniq_visitors>
<nb_actions>1</nb_actions>
<avg_price>7.5</avg_price>
<avg_quantity>0</avg_quantity>
<conversion_rate>0%</conversion_rate>
- <Ecommerce_ProductName>Book0</Ecommerce_ProductName>
+ <Ecommerce_ProductName>Book3</Ecommerce_ProductName>
+ </row>
+ <row>
+ <label>Book4</label>
+ <nb_visits>1</nb_visits>
+ <nb_uniq_visitors>1</nb_uniq_visitors>
+ <nb_actions>1</nb_actions>
+ <avg_price>7.5</avg_price>
+ <avg_quantity>0</avg_quantity>
+ <conversion_rate>0%</conversion_rate>
+ <Ecommerce_ProductName>Book4</Ecommerce_ProductName>
+ </row>
+ <row>
+ <label>Book5</label>
+ <nb_visits>1</nb_visits>
+ <nb_uniq_visitors>1</nb_uniq_visitors>
+ <nb_actions>1</nb_actions>
+ <avg_price>7.5</avg_price>
+ <avg_quantity>0</avg_quantity>
+ <conversion_rate>0%</conversion_rate>
+ <Ecommerce_ProductName>Book5</Ecommerce_ProductName>
+ </row>
+ <row>
+ <label>Book6</label>
+ <nb_visits>1</nb_visits>
+ <nb_uniq_visitors>1</nb_uniq_visitors>
+ <nb_actions>1</nb_actions>
+ <avg_price>7.5</avg_price>
+ <avg_quantity>0</avg_quantity>
+ <conversion_rate>0%</conversion_rate>
+ <Ecommerce_ProductName>Book6</Ecommerce_ProductName>
+ </row>
+ <row>
+ <label>Book7</label>
+ <nb_visits>1</nb_visits>
+ <nb_uniq_visitors>1</nb_uniq_visitors>
+ <nb_actions>1</nb_actions>
+ <avg_price>7.5</avg_price>
+ <avg_quantity>0</avg_quantity>
+ <conversion_rate>0%</conversion_rate>
+ <Ecommerce_ProductName>Book7</Ecommerce_ProductName>
+ </row>
+ <row>
+ <label>Book8</label>
+ <nb_visits>1</nb_visits>
+ <nb_uniq_visitors>1</nb_uniq_visitors>
+ <nb_actions>1</nb_actions>
+ <avg_price>7.5</avg_price>
+ <avg_quantity>0</avg_quantity>
+ <conversion_rate>0%</conversion_rate>
+ <Ecommerce_ProductName>Book8</Ecommerce_ProductName>
+ </row>
+ <row>
+ <label>Book9</label>
+ <nb_visits>1</nb_visits>
+ <nb_uniq_visitors>1</nb_uniq_visitors>
+ <nb_actions>1</nb_actions>
+ <avg_price>7.5</avg_price>
+ <avg_quantity>0</avg_quantity>
+ <conversion_rate>0%</conversion_rate>
+ <Ecommerce_ProductName>Book9</Ecommerce_ProductName>
+ </row>
+ <row>
+ <label>Book10</label>
+ <nb_visits>1</nb_visits>
+ <nb_uniq_visitors>1</nb_uniq_visitors>
+ <nb_actions>1</nb_actions>
+ <avg_price>7.5</avg_price>
+ <avg_quantity>0</avg_quantity>
+ <conversion_rate>0%</conversion_rate>
+ <Ecommerce_ProductName>Book10</Ecommerce_ProductName>
+ </row>
+ <row>
+ <label>Book11</label>
+ <nb_visits>1</nb_visits>
+ <nb_uniq_visitors>1</nb_uniq_visitors>
+ <nb_actions>1</nb_actions>
+ <avg_price>7.5</avg_price>
+ <avg_quantity>0</avg_quantity>
+ <conversion_rate>0%</conversion_rate>
+ <Ecommerce_ProductName>Book11</Ecommerce_ProductName>
+ </row>
+ <row>
+ <label>Book12</label>
+ <nb_visits>1</nb_visits>
+ <nb_uniq_visitors>1</nb_uniq_visitors>
+ <nb_actions>1</nb_actions>
+ <avg_price>7.5</avg_price>
+ <avg_quantity>0</avg_quantity>
+ <conversion_rate>0%</conversion_rate>
+ <Ecommerce_ProductName>Book12</Ecommerce_ProductName>
+ </row>
+ <row>
+ <label>Book13</label>
+ <nb_visits>1</nb_visits>
+ <nb_uniq_visitors>1</nb_uniq_visitors>
+ <nb_actions>1</nb_actions>
+ <avg_price>7.5</avg_price>
+ <avg_quantity>0</avg_quantity>
+ <conversion_rate>0%</conversion_rate>
+ <Ecommerce_ProductName>Book13</Ecommerce_ProductName>
+ </row>
+ <row>
+ <label>Book14</label>
+ <nb_visits>1</nb_visits>
+ <nb_uniq_visitors>1</nb_uniq_visitors>
+ <nb_actions>1</nb_actions>
+ <avg_price>7.5</avg_price>
+ <avg_quantity>0</avg_quantity>
+ <conversion_rate>0%</conversion_rate>
+ <Ecommerce_ProductName>Book14</Ecommerce_ProductName>
+ </row>
+ <row>
+ <label>Book15</label>
+ <nb_visits>1</nb_visits>
+ <nb_uniq_visitors>1</nb_uniq_visitors>
+ <nb_actions>1</nb_actions>
+ <avg_price>7.5</avg_price>
+ <avg_quantity>0</avg_quantity>
+ <conversion_rate>0%</conversion_rate>
+ <Ecommerce_ProductName>Book15</Ecommerce_ProductName>
+ </row>
+ <row>
+ <label>Book16</label>
+ <nb_visits>1</nb_visits>
+ <nb_uniq_visitors>1</nb_uniq_visitors>
+ <nb_actions>1</nb_actions>
+ <avg_price>7.5</avg_price>
+ <avg_quantity>0</avg_quantity>
+ <conversion_rate>0%</conversion_rate>
+ <Ecommerce_ProductName>Book16</Ecommerce_ProductName>
+ </row>
+ <row>
+ <label>Book17</label>
+ <nb_visits>1</nb_visits>
+ <nb_uniq_visitors>1</nb_uniq_visitors>
+ <nb_actions>1</nb_actions>
+ <avg_price>7.5</avg_price>
+ <avg_quantity>0</avg_quantity>
+ <conversion_rate>0%</conversion_rate>
+ <Ecommerce_ProductName>Book17</Ecommerce_ProductName>
+ </row>
+ <row>
+ <label>Book18</label>
+ <nb_visits>1</nb_visits>
+ <nb_uniq_visitors>1</nb_uniq_visitors>
+ <nb_actions>1</nb_actions>
+ <avg_price>7.5</avg_price>
+ <avg_quantity>0</avg_quantity>
+ <conversion_rate>0%</conversion_rate>
+ <Ecommerce_ProductName>Book18</Ecommerce_ProductName>
+ </row>
+ <row>
+ <label>Book19</label>
+ <nb_visits>1</nb_visits>
+ <nb_uniq_visitors>1</nb_uniq_visitors>
+ <nb_actions>1</nb_actions>
+ <avg_price>7.5</avg_price>
+ <avg_quantity>0</avg_quantity>
+ <conversion_rate>0%</conversion_rate>
+ <Ecommerce_ProductName>Book19</Ecommerce_ProductName>
+ </row>
+ <row>
+ <label>Book20</label>
+ <nb_visits>1</nb_visits>
+ <nb_uniq_visitors>1</nb_uniq_visitors>
+ <nb_actions>1</nb_actions>
+ <avg_price>7.5</avg_price>
+ <avg_quantity>0</avg_quantity>
+ <conversion_rate>0%</conversion_rate>
+ <Ecommerce_ProductName>Book20</Ecommerce_ProductName>
+ </row>
+ <row>
+ <label>Book21</label>
+ <nb_visits>1</nb_visits>
+ <nb_uniq_visitors>1</nb_uniq_visitors>
+ <nb_actions>1</nb_actions>
+ <avg_price>7.5</avg_price>
+ <avg_quantity>0</avg_quantity>
+ <conversion_rate>0%</conversion_rate>
+ <Ecommerce_ProductName>Book21</Ecommerce_ProductName>
+ </row>
+ <row>
+ <label>Book22</label>
+ <nb_visits>1</nb_visits>
+ <nb_uniq_visitors>1</nb_uniq_visitors>
+ <nb_actions>1</nb_actions>
+ <avg_price>7.5</avg_price>
+ <avg_quantity>0</avg_quantity>
+ <conversion_rate>0%</conversion_rate>
+ <Ecommerce_ProductName>Book22</Ecommerce_ProductName>
+ </row>
+ <row>
+ <label>Book23</label>
+ <nb_visits>1</nb_visits>
+ <nb_uniq_visitors>1</nb_uniq_visitors>
+ <nb_actions>1</nb_actions>
+ <avg_price>7.5</avg_price>
+ <avg_quantity>0</avg_quantity>
+ <conversion_rate>0%</conversion_rate>
+ <Ecommerce_ProductName>Book23</Ecommerce_ProductName>
+ </row>
+ <row>
+ <label>Book24</label>
+ <nb_visits>1</nb_visits>
+ <nb_uniq_visitors>1</nb_uniq_visitors>
+ <nb_actions>1</nb_actions>
+ <avg_price>7.5</avg_price>
+ <avg_quantity>0</avg_quantity>
+ <conversion_rate>0%</conversion_rate>
+ <Ecommerce_ProductName>Book24</Ecommerce_ProductName>
</row>
</result> \ No newline at end of file
diff --git a/tests/PHPUnit/System/expected/test_reportLimiting_flattened__Goals.getItemsSku_day.xml b/tests/PHPUnit/System/expected/test_reportLimiting_flattened__Goals.getItemsSku_day.xml
index c234bed59e..d358bde25c 100644
--- a/tests/PHPUnit/System/expected/test_reportLimiting_flattened__Goals.getItemsSku_day.xml
+++ b/tests/PHPUnit/System/expected/test_reportLimiting_flattened__Goals.getItemsSku_day.xml
@@ -1,2 +1,253 @@
<?xml version="1.0" encoding="utf-8" ?>
-<result /> \ No newline at end of file
+<result>
+ <row>
+ <label>id_book0</label>
+ <nb_visits>1</nb_visits>
+ <nb_uniq_visitors>1</nb_uniq_visitors>
+ <nb_actions>1</nb_actions>
+ <avg_price>7.5</avg_price>
+ <avg_quantity>0</avg_quantity>
+ <conversion_rate>0%</conversion_rate>
+ <Ecommerce_ProductSku>id_book0</Ecommerce_ProductSku>
+ </row>
+ <row>
+ <label>id_book1</label>
+ <nb_visits>1</nb_visits>
+ <nb_uniq_visitors>1</nb_uniq_visitors>
+ <nb_actions>1</nb_actions>
+ <avg_price>7.5</avg_price>
+ <avg_quantity>0</avg_quantity>
+ <conversion_rate>0%</conversion_rate>
+ <Ecommerce_ProductSku>id_book1</Ecommerce_ProductSku>
+ </row>
+ <row>
+ <label>id_book2</label>
+ <nb_visits>1</nb_visits>
+ <nb_uniq_visitors>1</nb_uniq_visitors>
+ <nb_actions>1</nb_actions>
+ <avg_price>7.5</avg_price>
+ <avg_quantity>0</avg_quantity>
+ <conversion_rate>0%</conversion_rate>
+ <Ecommerce_ProductSku>id_book2</Ecommerce_ProductSku>
+ </row>
+ <row>
+ <label>id_book3</label>
+ <nb_visits>1</nb_visits>
+ <nb_uniq_visitors>1</nb_uniq_visitors>
+ <nb_actions>1</nb_actions>
+ <avg_price>7.5</avg_price>
+ <avg_quantity>0</avg_quantity>
+ <conversion_rate>0%</conversion_rate>
+ <Ecommerce_ProductSku>id_book3</Ecommerce_ProductSku>
+ </row>
+ <row>
+ <label>id_book4</label>
+ <nb_visits>1</nb_visits>
+ <nb_uniq_visitors>1</nb_uniq_visitors>
+ <nb_actions>1</nb_actions>
+ <avg_price>7.5</avg_price>
+ <avg_quantity>0</avg_quantity>
+ <conversion_rate>0%</conversion_rate>
+ <Ecommerce_ProductSku>id_book4</Ecommerce_ProductSku>
+ </row>
+ <row>
+ <label>id_book5</label>
+ <nb_visits>1</nb_visits>
+ <nb_uniq_visitors>1</nb_uniq_visitors>
+ <nb_actions>1</nb_actions>
+ <avg_price>7.5</avg_price>
+ <avg_quantity>0</avg_quantity>
+ <conversion_rate>0%</conversion_rate>
+ <Ecommerce_ProductSku>id_book5</Ecommerce_ProductSku>
+ </row>
+ <row>
+ <label>id_book6</label>
+ <nb_visits>1</nb_visits>
+ <nb_uniq_visitors>1</nb_uniq_visitors>
+ <nb_actions>1</nb_actions>
+ <avg_price>7.5</avg_price>
+ <avg_quantity>0</avg_quantity>
+ <conversion_rate>0%</conversion_rate>
+ <Ecommerce_ProductSku>id_book6</Ecommerce_ProductSku>
+ </row>
+ <row>
+ <label>id_book7</label>
+ <nb_visits>1</nb_visits>
+ <nb_uniq_visitors>1</nb_uniq_visitors>
+ <nb_actions>1</nb_actions>
+ <avg_price>7.5</avg_price>
+ <avg_quantity>0</avg_quantity>
+ <conversion_rate>0%</conversion_rate>
+ <Ecommerce_ProductSku>id_book7</Ecommerce_ProductSku>
+ </row>
+ <row>
+ <label>id_book8</label>
+ <nb_visits>1</nb_visits>
+ <nb_uniq_visitors>1</nb_uniq_visitors>
+ <nb_actions>1</nb_actions>
+ <avg_price>7.5</avg_price>
+ <avg_quantity>0</avg_quantity>
+ <conversion_rate>0%</conversion_rate>
+ <Ecommerce_ProductSku>id_book8</Ecommerce_ProductSku>
+ </row>
+ <row>
+ <label>id_book9</label>
+ <nb_visits>1</nb_visits>
+ <nb_uniq_visitors>1</nb_uniq_visitors>
+ <nb_actions>1</nb_actions>
+ <avg_price>7.5</avg_price>
+ <avg_quantity>0</avg_quantity>
+ <conversion_rate>0%</conversion_rate>
+ <Ecommerce_ProductSku>id_book9</Ecommerce_ProductSku>
+ </row>
+ <row>
+ <label>id_book10</label>
+ <nb_visits>1</nb_visits>
+ <nb_uniq_visitors>1</nb_uniq_visitors>
+ <nb_actions>1</nb_actions>
+ <avg_price>7.5</avg_price>
+ <avg_quantity>0</avg_quantity>
+ <conversion_rate>0%</conversion_rate>
+ <Ecommerce_ProductSku>id_book10</Ecommerce_ProductSku>
+ </row>
+ <row>
+ <label>id_book11</label>
+ <nb_visits>1</nb_visits>
+ <nb_uniq_visitors>1</nb_uniq_visitors>
+ <nb_actions>1</nb_actions>
+ <avg_price>7.5</avg_price>
+ <avg_quantity>0</avg_quantity>
+ <conversion_rate>0%</conversion_rate>
+ <Ecommerce_ProductSku>id_book11</Ecommerce_ProductSku>
+ </row>
+ <row>
+ <label>id_book12</label>
+ <nb_visits>1</nb_visits>
+ <nb_uniq_visitors>1</nb_uniq_visitors>
+ <nb_actions>1</nb_actions>
+ <avg_price>7.5</avg_price>
+ <avg_quantity>0</avg_quantity>
+ <conversion_rate>0%</conversion_rate>
+ <Ecommerce_ProductSku>id_book12</Ecommerce_ProductSku>
+ </row>
+ <row>
+ <label>id_book13</label>
+ <nb_visits>1</nb_visits>
+ <nb_uniq_visitors>1</nb_uniq_visitors>
+ <nb_actions>1</nb_actions>
+ <avg_price>7.5</avg_price>
+ <avg_quantity>0</avg_quantity>
+ <conversion_rate>0%</conversion_rate>
+ <Ecommerce_ProductSku>id_book13</Ecommerce_ProductSku>
+ </row>
+ <row>
+ <label>id_book14</label>
+ <nb_visits>1</nb_visits>
+ <nb_uniq_visitors>1</nb_uniq_visitors>
+ <nb_actions>1</nb_actions>
+ <avg_price>7.5</avg_price>
+ <avg_quantity>0</avg_quantity>
+ <conversion_rate>0%</conversion_rate>
+ <Ecommerce_ProductSku>id_book14</Ecommerce_ProductSku>
+ </row>
+ <row>
+ <label>id_book15</label>
+ <nb_visits>1</nb_visits>
+ <nb_uniq_visitors>1</nb_uniq_visitors>
+ <nb_actions>1</nb_actions>
+ <avg_price>7.5</avg_price>
+ <avg_quantity>0</avg_quantity>
+ <conversion_rate>0%</conversion_rate>
+ <Ecommerce_ProductSku>id_book15</Ecommerce_ProductSku>
+ </row>
+ <row>
+ <label>id_book16</label>
+ <nb_visits>1</nb_visits>
+ <nb_uniq_visitors>1</nb_uniq_visitors>
+ <nb_actions>1</nb_actions>
+ <avg_price>7.5</avg_price>
+ <avg_quantity>0</avg_quantity>
+ <conversion_rate>0%</conversion_rate>
+ <Ecommerce_ProductSku>id_book16</Ecommerce_ProductSku>
+ </row>
+ <row>
+ <label>id_book17</label>
+ <nb_visits>1</nb_visits>
+ <nb_uniq_visitors>1</nb_uniq_visitors>
+ <nb_actions>1</nb_actions>
+ <avg_price>7.5</avg_price>
+ <avg_quantity>0</avg_quantity>
+ <conversion_rate>0%</conversion_rate>
+ <Ecommerce_ProductSku>id_book17</Ecommerce_ProductSku>
+ </row>
+ <row>
+ <label>id_book18</label>
+ <nb_visits>1</nb_visits>
+ <nb_uniq_visitors>1</nb_uniq_visitors>
+ <nb_actions>1</nb_actions>
+ <avg_price>7.5</avg_price>
+ <avg_quantity>0</avg_quantity>
+ <conversion_rate>0%</conversion_rate>
+ <Ecommerce_ProductSku>id_book18</Ecommerce_ProductSku>
+ </row>
+ <row>
+ <label>id_book19</label>
+ <nb_visits>1</nb_visits>
+ <nb_uniq_visitors>1</nb_uniq_visitors>
+ <nb_actions>1</nb_actions>
+ <avg_price>7.5</avg_price>
+ <avg_quantity>0</avg_quantity>
+ <conversion_rate>0%</conversion_rate>
+ <Ecommerce_ProductSku>id_book19</Ecommerce_ProductSku>
+ </row>
+ <row>
+ <label>id_book20</label>
+ <nb_visits>1</nb_visits>
+ <nb_uniq_visitors>1</nb_uniq_visitors>
+ <nb_actions>1</nb_actions>
+ <avg_price>7.5</avg_price>
+ <avg_quantity>0</avg_quantity>
+ <conversion_rate>0%</conversion_rate>
+ <Ecommerce_ProductSku>id_book20</Ecommerce_ProductSku>
+ </row>
+ <row>
+ <label>id_book21</label>
+ <nb_visits>1</nb_visits>
+ <nb_uniq_visitors>1</nb_uniq_visitors>
+ <nb_actions>1</nb_actions>
+ <avg_price>7.5</avg_price>
+ <avg_quantity>0</avg_quantity>
+ <conversion_rate>0%</conversion_rate>
+ <Ecommerce_ProductSku>id_book21</Ecommerce_ProductSku>
+ </row>
+ <row>
+ <label>id_book22</label>
+ <nb_visits>1</nb_visits>
+ <nb_uniq_visitors>1</nb_uniq_visitors>
+ <nb_actions>1</nb_actions>
+ <avg_price>7.5</avg_price>
+ <avg_quantity>0</avg_quantity>
+ <conversion_rate>0%</conversion_rate>
+ <Ecommerce_ProductSku>id_book22</Ecommerce_ProductSku>
+ </row>
+ <row>
+ <label>id_book23</label>
+ <nb_visits>1</nb_visits>
+ <nb_uniq_visitors>1</nb_uniq_visitors>
+ <nb_actions>1</nb_actions>
+ <avg_price>7.5</avg_price>
+ <avg_quantity>0</avg_quantity>
+ <conversion_rate>0%</conversion_rate>
+ <Ecommerce_ProductSku>id_book23</Ecommerce_ProductSku>
+ </row>
+ <row>
+ <label>id_book24</label>
+ <nb_visits>1</nb_visits>
+ <nb_uniq_visitors>1</nb_uniq_visitors>
+ <nb_actions>1</nb_actions>
+ <avg_price>7.5</avg_price>
+ <avg_quantity>0</avg_quantity>
+ <conversion_rate>0%</conversion_rate>
+ <Ecommerce_ProductSku>id_book24</Ecommerce_ProductSku>
+ </row>
+</result> \ No newline at end of file
diff --git a/tests/PHPUnit/System/expected/test_reportLimiting_rankingQuery__Goals.getItemsCategory_day.xml b/tests/PHPUnit/System/expected/test_reportLimiting_rankingQuery__Goals.getItemsCategory_day.xml
index a8d3e17e53..defda4613c 100644
--- a/tests/PHPUnit/System/expected/test_reportLimiting_rankingQuery__Goals.getItemsCategory_day.xml
+++ b/tests/PHPUnit/System/expected/test_reportLimiting_rankingQuery__Goals.getItemsCategory_day.xml
@@ -2,19 +2,46 @@
<result>
<row>
<label>Books Cat #0</label>
+ <nb_visits>5</nb_visits>
+ <nb_uniq_visitors>5</nb_uniq_visitors>
+ <nb_actions>5</nb_actions>
+ <avg_price>7.5</avg_price>
+ <avg_quantity>0</avg_quantity>
+ <conversion_rate>0%</conversion_rate>
+ </row>
+ <row>
+ <label>Books Cat #1</label>
+ <nb_visits>5</nb_visits>
+ <nb_uniq_visitors>5</nb_uniq_visitors>
+ <nb_actions>5</nb_actions>
+ <avg_price>7.5</avg_price>
+ <avg_quantity>0</avg_quantity>
+ <conversion_rate>0%</conversion_rate>
+ </row>
+ <row>
+ <label>Books Cat #2</label>
+ <nb_visits>5</nb_visits>
<nb_uniq_visitors>5</nb_uniq_visitors>
+ <nb_actions>5</nb_actions>
+ <avg_price>7.5</avg_price>
+ <avg_quantity>0</avg_quantity>
+ <conversion_rate>0%</conversion_rate>
+ </row>
+ <row>
+ <label>Books Cat #3</label>
<nb_visits>5</nb_visits>
+ <nb_uniq_visitors>5</nb_uniq_visitors>
<nb_actions>5</nb_actions>
<avg_price>7.5</avg_price>
<avg_quantity>0</avg_quantity>
<conversion_rate>0%</conversion_rate>
</row>
<row>
- <label>Others</label>
- <nb_uniq_visitors>20</nb_uniq_visitors>
- <nb_visits>20</nb_visits>
- <nb_actions>20</nb_actions>
- <avg_price>30</avg_price>
+ <label>Books Cat #4</label>
+ <nb_visits>5</nb_visits>
+ <nb_uniq_visitors>5</nb_uniq_visitors>
+ <nb_actions>5</nb_actions>
+ <avg_price>7.5</avg_price>
<avg_quantity>0</avg_quantity>
<conversion_rate>0%</conversion_rate>
</row>
diff --git a/tests/PHPUnit/System/expected/test_reportLimiting_rankingQuery__Goals.getItemsName_day.xml b/tests/PHPUnit/System/expected/test_reportLimiting_rankingQuery__Goals.getItemsName_day.xml
index 95cb364b56..563eaeada9 100644
--- a/tests/PHPUnit/System/expected/test_reportLimiting_rankingQuery__Goals.getItemsName_day.xml
+++ b/tests/PHPUnit/System/expected/test_reportLimiting_rankingQuery__Goals.getItemsName_day.xml
@@ -2,19 +2,226 @@
<result>
<row>
<label>Book0</label>
+ <nb_visits>1</nb_visits>
+ <nb_uniq_visitors>1</nb_uniq_visitors>
+ <nb_actions>1</nb_actions>
+ <avg_price>7.5</avg_price>
+ <avg_quantity>0</avg_quantity>
+ <conversion_rate>0%</conversion_rate>
+ </row>
+ <row>
+ <label>Book1</label>
+ <nb_visits>1</nb_visits>
+ <nb_uniq_visitors>1</nb_uniq_visitors>
+ <nb_actions>1</nb_actions>
+ <avg_price>7.5</avg_price>
+ <avg_quantity>0</avg_quantity>
+ <conversion_rate>0%</conversion_rate>
+ </row>
+ <row>
+ <label>Book2</label>
+ <nb_visits>1</nb_visits>
+ <nb_uniq_visitors>1</nb_uniq_visitors>
+ <nb_actions>1</nb_actions>
+ <avg_price>7.5</avg_price>
+ <avg_quantity>0</avg_quantity>
+ <conversion_rate>0%</conversion_rate>
+ </row>
+ <row>
+ <label>Book3</label>
+ <nb_visits>1</nb_visits>
+ <nb_uniq_visitors>1</nb_uniq_visitors>
+ <nb_actions>1</nb_actions>
+ <avg_price>7.5</avg_price>
+ <avg_quantity>0</avg_quantity>
+ <conversion_rate>0%</conversion_rate>
+ </row>
+ <row>
+ <label>Book4</label>
+ <nb_visits>1</nb_visits>
+ <nb_uniq_visitors>1</nb_uniq_visitors>
+ <nb_actions>1</nb_actions>
+ <avg_price>7.5</avg_price>
+ <avg_quantity>0</avg_quantity>
+ <conversion_rate>0%</conversion_rate>
+ </row>
+ <row>
+ <label>Book5</label>
+ <nb_visits>1</nb_visits>
+ <nb_uniq_visitors>1</nb_uniq_visitors>
+ <nb_actions>1</nb_actions>
+ <avg_price>7.5</avg_price>
+ <avg_quantity>0</avg_quantity>
+ <conversion_rate>0%</conversion_rate>
+ </row>
+ <row>
+ <label>Book6</label>
+ <nb_visits>1</nb_visits>
+ <nb_uniq_visitors>1</nb_uniq_visitors>
+ <nb_actions>1</nb_actions>
+ <avg_price>7.5</avg_price>
+ <avg_quantity>0</avg_quantity>
+ <conversion_rate>0%</conversion_rate>
+ </row>
+ <row>
+ <label>Book7</label>
+ <nb_visits>1</nb_visits>
+ <nb_uniq_visitors>1</nb_uniq_visitors>
+ <nb_actions>1</nb_actions>
+ <avg_price>7.5</avg_price>
+ <avg_quantity>0</avg_quantity>
+ <conversion_rate>0%</conversion_rate>
+ </row>
+ <row>
+ <label>Book8</label>
+ <nb_visits>1</nb_visits>
+ <nb_uniq_visitors>1</nb_uniq_visitors>
+ <nb_actions>1</nb_actions>
+ <avg_price>7.5</avg_price>
+ <avg_quantity>0</avg_quantity>
+ <conversion_rate>0%</conversion_rate>
+ </row>
+ <row>
+ <label>Book9</label>
+ <nb_visits>1</nb_visits>
+ <nb_uniq_visitors>1</nb_uniq_visitors>
+ <nb_actions>1</nb_actions>
+ <avg_price>7.5</avg_price>
+ <avg_quantity>0</avg_quantity>
+ <conversion_rate>0%</conversion_rate>
+ </row>
+ <row>
+ <label>Book10</label>
+ <nb_visits>1</nb_visits>
+ <nb_uniq_visitors>1</nb_uniq_visitors>
+ <nb_actions>1</nb_actions>
+ <avg_price>7.5</avg_price>
+ <avg_quantity>0</avg_quantity>
+ <conversion_rate>0%</conversion_rate>
+ </row>
+ <row>
+ <label>Book11</label>
+ <nb_visits>1</nb_visits>
+ <nb_uniq_visitors>1</nb_uniq_visitors>
+ <nb_actions>1</nb_actions>
+ <avg_price>7.5</avg_price>
+ <avg_quantity>0</avg_quantity>
+ <conversion_rate>0%</conversion_rate>
+ </row>
+ <row>
+ <label>Book12</label>
+ <nb_visits>1</nb_visits>
+ <nb_uniq_visitors>1</nb_uniq_visitors>
+ <nb_actions>1</nb_actions>
+ <avg_price>7.5</avg_price>
+ <avg_quantity>0</avg_quantity>
+ <conversion_rate>0%</conversion_rate>
+ </row>
+ <row>
+ <label>Book13</label>
+ <nb_visits>1</nb_visits>
+ <nb_uniq_visitors>1</nb_uniq_visitors>
+ <nb_actions>1</nb_actions>
+ <avg_price>7.5</avg_price>
+ <avg_quantity>0</avg_quantity>
+ <conversion_rate>0%</conversion_rate>
+ </row>
+ <row>
+ <label>Book14</label>
+ <nb_visits>1</nb_visits>
+ <nb_uniq_visitors>1</nb_uniq_visitors>
+ <nb_actions>1</nb_actions>
+ <avg_price>7.5</avg_price>
+ <avg_quantity>0</avg_quantity>
+ <conversion_rate>0%</conversion_rate>
+ </row>
+ <row>
+ <label>Book15</label>
+ <nb_visits>1</nb_visits>
+ <nb_uniq_visitors>1</nb_uniq_visitors>
+ <nb_actions>1</nb_actions>
+ <avg_price>7.5</avg_price>
+ <avg_quantity>0</avg_quantity>
+ <conversion_rate>0%</conversion_rate>
+ </row>
+ <row>
+ <label>Book16</label>
+ <nb_visits>1</nb_visits>
+ <nb_uniq_visitors>1</nb_uniq_visitors>
+ <nb_actions>1</nb_actions>
+ <avg_price>7.5</avg_price>
+ <avg_quantity>0</avg_quantity>
+ <conversion_rate>0%</conversion_rate>
+ </row>
+ <row>
+ <label>Book17</label>
+ <nb_visits>1</nb_visits>
+ <nb_uniq_visitors>1</nb_uniq_visitors>
+ <nb_actions>1</nb_actions>
+ <avg_price>7.5</avg_price>
+ <avg_quantity>0</avg_quantity>
+ <conversion_rate>0%</conversion_rate>
+ </row>
+ <row>
+ <label>Book18</label>
+ <nb_visits>1</nb_visits>
+ <nb_uniq_visitors>1</nb_uniq_visitors>
+ <nb_actions>1</nb_actions>
+ <avg_price>7.5</avg_price>
+ <avg_quantity>0</avg_quantity>
+ <conversion_rate>0%</conversion_rate>
+ </row>
+ <row>
+ <label>Book19</label>
+ <nb_visits>1</nb_visits>
<nb_uniq_visitors>1</nb_uniq_visitors>
+ <nb_actions>1</nb_actions>
+ <avg_price>7.5</avg_price>
+ <avg_quantity>0</avg_quantity>
+ <conversion_rate>0%</conversion_rate>
+ </row>
+ <row>
+ <label>Book20</label>
<nb_visits>1</nb_visits>
+ <nb_uniq_visitors>1</nb_uniq_visitors>
<nb_actions>1</nb_actions>
<avg_price>7.5</avg_price>
<avg_quantity>0</avg_quantity>
<conversion_rate>0%</conversion_rate>
</row>
<row>
- <label>Others</label>
- <nb_uniq_visitors>24</nb_uniq_visitors>
- <nb_visits>24</nb_visits>
- <nb_actions>24</nb_actions>
- <avg_price>180</avg_price>
+ <label>Book21</label>
+ <nb_visits>1</nb_visits>
+ <nb_uniq_visitors>1</nb_uniq_visitors>
+ <nb_actions>1</nb_actions>
+ <avg_price>7.5</avg_price>
+ <avg_quantity>0</avg_quantity>
+ <conversion_rate>0%</conversion_rate>
+ </row>
+ <row>
+ <label>Book22</label>
+ <nb_visits>1</nb_visits>
+ <nb_uniq_visitors>1</nb_uniq_visitors>
+ <nb_actions>1</nb_actions>
+ <avg_price>7.5</avg_price>
+ <avg_quantity>0</avg_quantity>
+ <conversion_rate>0%</conversion_rate>
+ </row>
+ <row>
+ <label>Book23</label>
+ <nb_visits>1</nb_visits>
+ <nb_uniq_visitors>1</nb_uniq_visitors>
+ <nb_actions>1</nb_actions>
+ <avg_price>7.5</avg_price>
+ <avg_quantity>0</avg_quantity>
+ <conversion_rate>0%</conversion_rate>
+ </row>
+ <row>
+ <label>Book24</label>
+ <nb_visits>1</nb_visits>
+ <nb_uniq_visitors>1</nb_uniq_visitors>
+ <nb_actions>1</nb_actions>
+ <avg_price>7.5</avg_price>
<avg_quantity>0</avg_quantity>
<conversion_rate>0%</conversion_rate>
</row>
diff --git a/tests/PHPUnit/System/expected/test_reportLimiting_rankingQuery__Goals.getItemsSku_day.xml b/tests/PHPUnit/System/expected/test_reportLimiting_rankingQuery__Goals.getItemsSku_day.xml
index c234bed59e..4f702e147d 100644
--- a/tests/PHPUnit/System/expected/test_reportLimiting_rankingQuery__Goals.getItemsSku_day.xml
+++ b/tests/PHPUnit/System/expected/test_reportLimiting_rankingQuery__Goals.getItemsSku_day.xml
@@ -1,2 +1,228 @@
<?xml version="1.0" encoding="utf-8" ?>
-<result /> \ No newline at end of file
+<result>
+ <row>
+ <label>id_book0</label>
+ <nb_visits>1</nb_visits>
+ <nb_uniq_visitors>1</nb_uniq_visitors>
+ <nb_actions>1</nb_actions>
+ <avg_price>7.5</avg_price>
+ <avg_quantity>0</avg_quantity>
+ <conversion_rate>0%</conversion_rate>
+ </row>
+ <row>
+ <label>id_book1</label>
+ <nb_visits>1</nb_visits>
+ <nb_uniq_visitors>1</nb_uniq_visitors>
+ <nb_actions>1</nb_actions>
+ <avg_price>7.5</avg_price>
+ <avg_quantity>0</avg_quantity>
+ <conversion_rate>0%</conversion_rate>
+ </row>
+ <row>
+ <label>id_book2</label>
+ <nb_visits>1</nb_visits>
+ <nb_uniq_visitors>1</nb_uniq_visitors>
+ <nb_actions>1</nb_actions>
+ <avg_price>7.5</avg_price>
+ <avg_quantity>0</avg_quantity>
+ <conversion_rate>0%</conversion_rate>
+ </row>
+ <row>
+ <label>id_book3</label>
+ <nb_visits>1</nb_visits>
+ <nb_uniq_visitors>1</nb_uniq_visitors>
+ <nb_actions>1</nb_actions>
+ <avg_price>7.5</avg_price>
+ <avg_quantity>0</avg_quantity>
+ <conversion_rate>0%</conversion_rate>
+ </row>
+ <row>
+ <label>id_book4</label>
+ <nb_visits>1</nb_visits>
+ <nb_uniq_visitors>1</nb_uniq_visitors>
+ <nb_actions>1</nb_actions>
+ <avg_price>7.5</avg_price>
+ <avg_quantity>0</avg_quantity>
+ <conversion_rate>0%</conversion_rate>
+ </row>
+ <row>
+ <label>id_book5</label>
+ <nb_visits>1</nb_visits>
+ <nb_uniq_visitors>1</nb_uniq_visitors>
+ <nb_actions>1</nb_actions>
+ <avg_price>7.5</avg_price>
+ <avg_quantity>0</avg_quantity>
+ <conversion_rate>0%</conversion_rate>
+ </row>
+ <row>
+ <label>id_book6</label>
+ <nb_visits>1</nb_visits>
+ <nb_uniq_visitors>1</nb_uniq_visitors>
+ <nb_actions>1</nb_actions>
+ <avg_price>7.5</avg_price>
+ <avg_quantity>0</avg_quantity>
+ <conversion_rate>0%</conversion_rate>
+ </row>
+ <row>
+ <label>id_book7</label>
+ <nb_visits>1</nb_visits>
+ <nb_uniq_visitors>1</nb_uniq_visitors>
+ <nb_actions>1</nb_actions>
+ <avg_price>7.5</avg_price>
+ <avg_quantity>0</avg_quantity>
+ <conversion_rate>0%</conversion_rate>
+ </row>
+ <row>
+ <label>id_book8</label>
+ <nb_visits>1</nb_visits>
+ <nb_uniq_visitors>1</nb_uniq_visitors>
+ <nb_actions>1</nb_actions>
+ <avg_price>7.5</avg_price>
+ <avg_quantity>0</avg_quantity>
+ <conversion_rate>0%</conversion_rate>
+ </row>
+ <row>
+ <label>id_book9</label>
+ <nb_visits>1</nb_visits>
+ <nb_uniq_visitors>1</nb_uniq_visitors>
+ <nb_actions>1</nb_actions>
+ <avg_price>7.5</avg_price>
+ <avg_quantity>0</avg_quantity>
+ <conversion_rate>0%</conversion_rate>
+ </row>
+ <row>
+ <label>id_book10</label>
+ <nb_visits>1</nb_visits>
+ <nb_uniq_visitors>1</nb_uniq_visitors>
+ <nb_actions>1</nb_actions>
+ <avg_price>7.5</avg_price>
+ <avg_quantity>0</avg_quantity>
+ <conversion_rate>0%</conversion_rate>
+ </row>
+ <row>
+ <label>id_book11</label>
+ <nb_visits>1</nb_visits>
+ <nb_uniq_visitors>1</nb_uniq_visitors>
+ <nb_actions>1</nb_actions>
+ <avg_price>7.5</avg_price>
+ <avg_quantity>0</avg_quantity>
+ <conversion_rate>0%</conversion_rate>
+ </row>
+ <row>
+ <label>id_book12</label>
+ <nb_visits>1</nb_visits>
+ <nb_uniq_visitors>1</nb_uniq_visitors>
+ <nb_actions>1</nb_actions>
+ <avg_price>7.5</avg_price>
+ <avg_quantity>0</avg_quantity>
+ <conversion_rate>0%</conversion_rate>
+ </row>
+ <row>
+ <label>id_book13</label>
+ <nb_visits>1</nb_visits>
+ <nb_uniq_visitors>1</nb_uniq_visitors>
+ <nb_actions>1</nb_actions>
+ <avg_price>7.5</avg_price>
+ <avg_quantity>0</avg_quantity>
+ <conversion_rate>0%</conversion_rate>
+ </row>
+ <row>
+ <label>id_book14</label>
+ <nb_visits>1</nb_visits>
+ <nb_uniq_visitors>1</nb_uniq_visitors>
+ <nb_actions>1</nb_actions>
+ <avg_price>7.5</avg_price>
+ <avg_quantity>0</avg_quantity>
+ <conversion_rate>0%</conversion_rate>
+ </row>
+ <row>
+ <label>id_book15</label>
+ <nb_visits>1</nb_visits>
+ <nb_uniq_visitors>1</nb_uniq_visitors>
+ <nb_actions>1</nb_actions>
+ <avg_price>7.5</avg_price>
+ <avg_quantity>0</avg_quantity>
+ <conversion_rate>0%</conversion_rate>
+ </row>
+ <row>
+ <label>id_book16</label>
+ <nb_visits>1</nb_visits>
+ <nb_uniq_visitors>1</nb_uniq_visitors>
+ <nb_actions>1</nb_actions>
+ <avg_price>7.5</avg_price>
+ <avg_quantity>0</avg_quantity>
+ <conversion_rate>0%</conversion_rate>
+ </row>
+ <row>
+ <label>id_book17</label>
+ <nb_visits>1</nb_visits>
+ <nb_uniq_visitors>1</nb_uniq_visitors>
+ <nb_actions>1</nb_actions>
+ <avg_price>7.5</avg_price>
+ <avg_quantity>0</avg_quantity>
+ <conversion_rate>0%</conversion_rate>
+ </row>
+ <row>
+ <label>id_book18</label>
+ <nb_visits>1</nb_visits>
+ <nb_uniq_visitors>1</nb_uniq_visitors>
+ <nb_actions>1</nb_actions>
+ <avg_price>7.5</avg_price>
+ <avg_quantity>0</avg_quantity>
+ <conversion_rate>0%</conversion_rate>
+ </row>
+ <row>
+ <label>id_book19</label>
+ <nb_visits>1</nb_visits>
+ <nb_uniq_visitors>1</nb_uniq_visitors>
+ <nb_actions>1</nb_actions>
+ <avg_price>7.5</avg_price>
+ <avg_quantity>0</avg_quantity>
+ <conversion_rate>0%</conversion_rate>
+ </row>
+ <row>
+ <label>id_book20</label>
+ <nb_visits>1</nb_visits>
+ <nb_uniq_visitors>1</nb_uniq_visitors>
+ <nb_actions>1</nb_actions>
+ <avg_price>7.5</avg_price>
+ <avg_quantity>0</avg_quantity>
+ <conversion_rate>0%</conversion_rate>
+ </row>
+ <row>
+ <label>id_book21</label>
+ <nb_visits>1</nb_visits>
+ <nb_uniq_visitors>1</nb_uniq_visitors>
+ <nb_actions>1</nb_actions>
+ <avg_price>7.5</avg_price>
+ <avg_quantity>0</avg_quantity>
+ <conversion_rate>0%</conversion_rate>
+ </row>
+ <row>
+ <label>id_book22</label>
+ <nb_visits>1</nb_visits>
+ <nb_uniq_visitors>1</nb_uniq_visitors>
+ <nb_actions>1</nb_actions>
+ <avg_price>7.5</avg_price>
+ <avg_quantity>0</avg_quantity>
+ <conversion_rate>0%</conversion_rate>
+ </row>
+ <row>
+ <label>id_book23</label>
+ <nb_visits>1</nb_visits>
+ <nb_uniq_visitors>1</nb_uniq_visitors>
+ <nb_actions>1</nb_actions>
+ <avg_price>7.5</avg_price>
+ <avg_quantity>0</avg_quantity>
+ <conversion_rate>0%</conversion_rate>
+ </row>
+ <row>
+ <label>id_book24</label>
+ <nb_visits>1</nb_visits>
+ <nb_uniq_visitors>1</nb_uniq_visitors>
+ <nb_actions>1</nb_actions>
+ <avg_price>7.5</avg_price>
+ <avg_quantity>0</avg_quantity>
+ <conversion_rate>0%</conversion_rate>
+ </row>
+</result> \ No newline at end of file
diff --git a/tests/javascript/index.php b/tests/javascript/index.php
index 6dddf449c8..0a5978481b 100644
--- a/tests/javascript/index.php
+++ b/tests/javascript/index.php
@@ -3562,7 +3562,7 @@ if ($mysql) {
test("tracking", function() {
- expect(180);
+ expect(161);
// Prevent Opera and HtmlUnit from performing the default action (i.e., load the href URL)
var stopEvent = function (evt) {
@@ -3863,12 +3863,7 @@ if ($mysql) {
tracker.trackEvent("Event Category3", "Event Action3", "Event Name3", 3.333);
//Ecommerce views
- tracker.setEcommerceView( "", false, ["CATEGORY1","CATEGORY2"] );
- deepEqual( tracker.getCustomVariable(3, "page"), false, "Ecommerce view SKU");
tracker.setEcommerceView( "SKUMultiple", false, ["CATEGORY1","CATEGORY2"] );
- deepEqual( tracker.getCustomVariable(3, "page"), ["_pks","SKUMultiple"], "Ecommerce view sku");
- deepEqual( tracker.getCustomVariable(4, "page"), ["_pkn",""], "Ecommerce view Name");
- deepEqual( tracker.getCustomVariable(5, "page"), ["_pkc","[\"CATEGORY1\",\"CATEGORY2\"]"], "Ecommerce view Category");
tracker.trackPageView("MultipleCategories");
var tracker2 = Piwik.getTracker();
@@ -3897,37 +3892,10 @@ if ($mysql) {
// Ecommerce Views
tracker3.setEcommerceView( "SKU", "NAME HERE", "CATEGORY HERE" );
- deepEqual( tracker3.getCustomVariable(3, "page"), ["_pks","SKU"], "Ecommerce view SKU");
- deepEqual( tracker3.getCustomVariable(4, "page"), ["_pkn","NAME HERE"], "Ecommerce view Name");
- deepEqual( tracker3.getCustomVariable(5, "page"), ["_pkc","CATEGORY HERE"], "Ecommerce view Category");
tracker3.trackPageView("EcommerceView");
tracker3.deleteCustomVariables('page');
- // No data set
- tracker3.setEcommerceView( );
- deepEqual( tracker3.getCustomVariable(2, "page"), false, "No data Ecommerce price");
- deepEqual( tracker3.getCustomVariable(3, "page"), false, "No data Ecommerce view SKU");
- deepEqual( tracker3.getCustomVariable(4, "page"), false, "No data Ecommerce view Name");
- deepEqual( tracker3.getCustomVariable(5, "page"), ["_pkc",""], "No data Ecommerce view Category");
- tracker3.deleteCustomVariables('page');
-
- // all numbers
- tracker3.setEcommerceView( 34343, 3432, 343, 12121 );
- deepEqual( tracker3.getCustomVariable(2, "page"), ["_pkp",12121], "All numbers Ecommerce view price");
- deepEqual( tracker3.getCustomVariable(3, "page"), ["_pks",34343], "All numbers Ecommerce view SKU");
- deepEqual( tracker3.getCustomVariable(4, "page"), ["_pkn",3432], "All numbers Ecommerce view Name");
- deepEqual( tracker3.getCustomVariable(5, "page"), ["_pkc", '343'], "All numbers Ecommerce view Category");
- tracker3.deleteCustomVariables('page');
-
- // all false
- tracker3.setEcommerceView( false, false, false, false );
- deepEqual( tracker3.getCustomVariable(2, "page"), false, "All numbers Ecommerce view price");
- deepEqual( tracker3.getCustomVariable(3, "page"), false, "All numbers Ecommerce view SKU");
- deepEqual( tracker3.getCustomVariable(4, "page"), false, "All numbers Ecommerce view Name");
- deepEqual( tracker3.getCustomVariable(5, "page"), ["_pkc", ''], "All numbers Ecommerce view Category");
- tracker3.deleteCustomVariables('page');
-
//Ecommerce tests
tracker3.addEcommerceItem("SKU PRODUCT", "PRODUCT NAME", "PRODUCT CATEGORY", 11.1111, 2);
tracker3.addEcommerceItem("SKU TO REMOVE");
@@ -4143,12 +4111,10 @@ if ($mysql) {
ok( /e_c=Event%20Category3&e_a=Event%20Action3&e_n=Event%20Name3&e_v=3.333&idsite=1/.test(results), "event Category + Action + Name + Value");
// ecommerce view
- ok( /(EcommerceView).*(&cvar=%7B%225%22%3A%5B%22_pkc%22%2C%22CATEGORY%20HERE%22%5D%2C%223%22%3A%5B%22_pks%22%2C%22SKU%22%5D%2C%224%22%3A%5B%22_pkn%22%2C%22NAME%20HERE%22%5D%7D)/.test(results)
- || /(EcommerceView).*(&cvar=%7B%223%22%3A%5B%22_pks%22%2C%22SKU%22%5D%2C%224%22%3A%5B%22_pkn%22%2C%22NAME%20HERE%22%5D%2C%225%22%3A%5B%22_pkc%22%2C%22CATEGORY%20HERE%22%5D%7D)/.test(results), "ecommerce view");
+ ok( /(EcommerceView).*(&_pkc=CATEGORY%20HERE&_pks=SKU&_pkn=NAME)/.test(results), "ecommerce view");
// ecommerce view multiple categories
- ok( /(MultipleCategories).*(&cvar=%7B%222%22%3A%5B%22cookiename2PAGE%22%2C%22cookievalue2PAGE%22%5D%2C%225%22%3A%5B%22_pkc%22%2C%22%5B%5C%22CATEGORY1%5C%22%2C%5C%22CATEGORY2%5C%22%5D%22%5D%2C%223%22%3A%5B%22_pks%22%2C%22SKUMultiple%22%5D%2C%224%22%3A%5B%22_pkn%22%2C%22%22%5D%7D)/.test(results)
- || /(MultipleCategories).*(&cvar=%7B%222%22%3A%5B%22cookiename2PAGE%22%2C%22cookievalue2PAGE%22%5D%2C%223%22%3A%5B%22_pks%22%2C%22SKUMultiple%22%5D%2C%224%22%3A%5B%22_pkn%22%2C%22%22%5D%2C%225%22%3A%5B%22_pkc%22%2C%22%5B%5C%22CATEGORY1%5C%22%2C%5C%22CATEGORY2%5C%22%5D%22%5D%7D)/.test(results), "ecommerce view multiple categories");
+ ok( /(MultipleCategories).*(&_pkc=%5B%22CATEGORY1%22%2C%22CATEGORY2%22%5D&_pks=SKUMultiple&_pkn=)/.test(results), "ecommerce view multiple categories");
// Ecommerce order
ok( /idgoal=0&ec_id=ORDER%20ID%20YES&revenue=666.66&ec_st=333&ec_tx=222&ec_sh=111&ec_dt=1&ec_items=%5B%5B%22SKU%20PRODUCT%22%2C%22random%22%2C%22random%20PRODUCT%20CATEGORY%22%2C11.1111%2C2%5D%2C%5B%22SKU%20ONLY%20SKU%22%2C%22%22%2C%22%22%2C0%2C1%5D%2C%5B%22SKU%20ONLY%20NAME%22%2C%22PRODUCT%20NAME%202%22%2C%22%22%2C0%2C1%5D%2C%5B%22SKU%20NO%20PRICE%20NO%20QUANTITY%22%2C%22PRODUCT%20NAME%203%22%2C%22CATEGORY%22%2C0%2C1%5D%2C%5B%22SKU%20ONLY%22%2C%22%22%2C%22%22%2C0%2C1%5D%5D/.test( results ), "logEcommerceOrder() with items" );