diff --git a/README.md b/README.md
index d8c8e9faca235ed5954712c8b8488d90f33b4c40..5a0b7b55fe0a5a61cdb3486e21b1b6509de216b0 100644
--- a/README.md
+++ b/README.md
@@ -23,7 +23,7 @@ Piwik is released under the GPL v3 (or later) license, see [misc/gpl-3.0.txt](mi
 
 ## Requirements
 
-  * PHP 5.3.2 or greater
+  * PHP 5.3.3 or greater
   * MySQL 4.1 or greater, and either MySQLi or PDO library must be enabled
   * Piwik is OS / server independent
 
diff --git a/composer.json b/composer.json
index 270968a3ba475298d4468eefccbbd690203808ae..4badd4c57b840b7977020ab4f9bd33f74665eca8 100644
--- a/composer.json
+++ b/composer.json
@@ -31,7 +31,7 @@
         }
     },
     "require": {
-        "php": ">=5.3.2",
+        "php": ">=5.3.3",
         "twig/twig": "1.*",
         "leafo/lessphp": "0.4",
         "symfony/console": ">=v2.3.5",
diff --git a/composer.lock b/composer.lock
index a8676c511ef5e216491b8257fbe84f3ec0ac97c7..f801f0e7bdde9fee2567d2a0a127c64609af91e7 100644
--- a/composer.lock
+++ b/composer.lock
@@ -109,7 +109,7 @@
                 "shasum": ""
             },
             "require": {
-                "php": ">=5.3.2"
+                "php": ">=5.3.3"
             },
             "require-dev": {
                 "phpunit/phpunit": "~4.0"
@@ -1221,7 +1221,7 @@
     },
     "prefer-stable": false,
     "platform": {
-        "php": ">=5.3.2"
+        "php": ">=5.3.3"
     },
     "platform-dev": []
 }
diff --git a/config/global.ini.php b/config/global.ini.php
index 98ab17f30b0387726204ec68a33a53d8a13b8327..7d0a80ac7c07dedeefe63597334bd241f189f8ce 100644
--- a/config/global.ini.php
+++ b/config/global.ini.php
@@ -88,7 +88,6 @@ allow_upgrades_to_beta = 0
 enable_load_standalone_plugins_during_tests = 0
 
 [Development]
-
 ; Enables the development mode where we avoid most caching to make sure code changes will be directly applied as
 ; some caches are only invalidated after an update otherwise. When enabled it'll also performs some validation checks.
 ; For instance if you register a method in a widget we will verify whether the method actually exists and is public.
@@ -163,8 +162,10 @@ browser_archiving_disabled_enforce = 0
 ; By default, users can create Segments which are to be processed in Real-time.
 ; Setting this to 0 will force all newly created Custom Segments to be "Pre-processed (faster, requires archive.php cron)"
 ; This can be useful if you want to prevent users from adding much load on the server.
-; Note: any existing Segment set to "processed in Real time", will still be set to Real-time.
-;       this will only affect custom segments added or modified after this setting is changed.
+; Notes:
+;  * any existing Segment set to "processed in Real time", will still be set to Real-time.
+;    this will only affect custom segments added or modified after this setting is changed.
+;  * when set to 0 then any user with at least 'view' access will be able to create pre-processed segments.
 enable_create_realtime_segments = 1
 
 ; Whether to enable the "Suggest values for segment" in the Segment Editor panel.
diff --git a/core/Config.php b/core/Config.php
index 749c585647c96bf65b1bd90d328fc22a5071f380..7d0e9072e913847bef817d9506956e2e47cba084 100644
--- a/core/Config.php
+++ b/core/Config.php
@@ -429,11 +429,11 @@ class Config extends Singleton
                 : $this->configLocal[$name];
         }
 
-        if ($section === null && $name = 'superuser') {
+        if ($section === null && $name == 'superuser') {
             $user = $this->getConfigSuperUserForBackwardCompatibility();
             return $user;
         } else if ($section === null) {
-            throw new Exception("Error while trying to read a specific config file entry <strong>'$name'</strong> from your configuration files.</b>If you just completed a Piwik upgrade, please check that the file config/global.ini.php was overwritten by the latest Piwik version.");
+            $section = array();
         }
 
         // cache merged section for later
diff --git a/core/DataTable/Filter/GroupBy.php b/core/DataTable/Filter/GroupBy.php
index b899bb9059b8d7610f0854b15267bff7cfe322fe..9391ccd95fcab384134a4192140673137e18fbc1 100755
--- a/core/DataTable/Filter/GroupBy.php
+++ b/core/DataTable/Filter/GroupBy.php
@@ -51,11 +51,11 @@ class GroupBy extends BaseFilter
      * @param DataTable $table The DataTable to filter.
      * @param string $groupByColumn The column name to reduce.
      * @param callable $reduceFunction The reduce function. This must alter the `$groupByColumn`
-     *                                 columng in some way.
+     *                                 columng in some way. If not set then the filter will group by the raw column value.
      * @param array $parameters deprecated - use an [anonymous function](http://php.net/manual/en/functions.anonymous.php)
      *                          instead.
      */
-    public function __construct($table, $groupByColumn, $reduceFunction, $parameters = array())
+    public function __construct($table, $groupByColumn, $reduceFunction = null, $parameters = array())
     {
         parent::__construct($table);
 
@@ -80,10 +80,14 @@ class GroupBy extends BaseFilter
                 continue;
             }
 
-            // reduce the group by column of this row
             $groupByColumnValue = $row->getColumn($this->groupByColumn);
-            $parameters   = array_merge(array($groupByColumnValue), $this->parameters);
-            $groupByValue = call_user_func_array($this->reduceFunction, $parameters);
+            $groupByValue = $groupByColumnValue;
+
+            // reduce the group by column of this row
+            if($this->reduceFunction) {
+                $parameters   = array_merge(array($groupByColumnValue), $this->parameters);
+                $groupByValue = call_user_func_array($this->reduceFunction, $parameters);
+            }
 
             if (!isset($groupByRows[$groupByValue])) {
                 // if we haven't encountered this group by value before, we mark this row as a
diff --git a/core/DataTable/Renderer/Csv.php b/core/DataTable/Renderer/Csv.php
index f75ef8d2151b8ee46455fc64a38d9e46d84edc2d..6f37a660bdc2f76ab5926815f6efc41d2598c689 100644
--- a/core/DataTable/Renderer/Csv.php
+++ b/core/DataTable/Renderer/Csv.php
@@ -84,11 +84,7 @@ class Csv extends Renderer
 
         $this->renderHeader();
 
-        if ($this->convertToUnicode
-            && function_exists('mb_convert_encoding')
-        ) {
-            $str = chr(255) . chr(254) . mb_convert_encoding($str, 'UTF-16LE', 'UTF-8');
-        }
+        $str = $this->convertToUnicode($str);
         return $str;
     }
 
@@ -193,42 +189,7 @@ class Csv extends Renderer
             }
         }
 
-        $csv = array();
-        foreach ($table->getRows() as $row) {
-            $csvRow = $this->flattenColumnArray($row->getColumns());
-
-            if ($this->exportMetadata) {
-                $metadata = $row->getMetadata();
-                foreach ($metadata as $name => $value) {
-                    if ($name == 'idsubdatatable_in_db') {
-                        continue;
-                    }
-                    //if a metadata and a column have the same name make sure they dont overwrite
-                    if ($this->translateColumnNames) {
-                        $name = Piwik::translate('General_Metadata') . ': ' . $name;
-                    } else {
-                        $name = 'metadata_' . $name;
-                    }
-
-                    $csvRow[$name] = $value;
-                }
-            }
-
-            foreach ($csvRow as $name => $value) {
-                $allColumns[$name] = true;
-            }
-
-            if ($this->exportIdSubtable) {
-                $idsubdatatable = $row->getIdSubDataTable();
-                if ($idsubdatatable !== false
-                    && $this->hideIdSubDatatable === false
-                ) {
-                    $csvRow['idsubdatatable'] = $idsubdatatable;
-                }
-            }
-
-            $csv[] = $csvRow;
-        }
+        $csv = $this->makeArrayFromDataTable($table, $allColumns);
 
         // now we make sure that all the rows in the CSV array have all the columns
         foreach ($csv as &$row) {
@@ -239,31 +200,7 @@ class Csv extends Renderer
             }
         }
 
-        $str = '';
-
-        // specific case, we have only one column and this column wasn't named properly (indexed by a number)
-        // we don't print anything in the CSV file => an empty line
-        if (sizeof($allColumns) == 1
-            && reset($allColumns)
-            && !is_string(key($allColumns))
-        ) {
-            $str .= '';
-        } else {
-            // render row names
-            $str .= $this->getHeaderLine(array_keys($allColumns)) . $this->lineEnd;
-        }
-
-        // we render the CSV
-        foreach ($csv as $theRow) {
-            $rowStr = '';
-            foreach ($allColumns as $columnName => $true) {
-                $rowStr .= $this->formatValue($theRow[$columnName]) . $this->separator;
-            }
-            // remove the last separator
-            $rowStr = substr_replace($rowStr, "", -strlen($this->separator));
-            $str .= $rowStr . $this->lineEnd;
-        }
-        $str = substr($str, 0, -strlen($this->lineEnd));
+        $str = $this->buildCsvString($allColumns, $csv);
         return $str;
     }
 
@@ -392,4 +329,99 @@ class Csv extends Renderer
             return $name;
         }
     }
+
+    /**
+     * @param $allColumns
+     * @param $csv
+     * @return array
+     */
+    private function buildCsvString($allColumns, $csv)
+    {
+        $str = '';
+
+        // specific case, we have only one column and this column wasn't named properly (indexed by a number)
+        // we don't print anything in the CSV file => an empty line
+        if (sizeof($allColumns) == 1
+            && reset($allColumns)
+            && !is_string(key($allColumns))
+        ) {
+            $str .= '';
+        } else {
+            // render row names
+            $str .= $this->getHeaderLine(array_keys($allColumns)) . $this->lineEnd;
+        }
+
+        // we render the CSV
+        foreach ($csv as $theRow) {
+            $rowStr = '';
+            foreach ($allColumns as $columnName => $true) {
+                $rowStr .= $this->formatValue($theRow[$columnName]) . $this->separator;
+            }
+            // remove the last separator
+            $rowStr = substr_replace($rowStr, "", -strlen($this->separator));
+            $str .= $rowStr . $this->lineEnd;
+        }
+        $str = substr($str, 0, -strlen($this->lineEnd));
+        return $str;
+    }
+
+    /**
+     * @param $table
+     * @param $allColumns
+     * @return array of csv data
+     */
+    private function makeArrayFromDataTable($table, &$allColumns)
+    {
+        $csv = array();
+        foreach ($table->getRows() as $row) {
+            $csvRow = $this->flattenColumnArray($row->getColumns());
+
+            if ($this->exportMetadata) {
+                $metadata = $row->getMetadata();
+                foreach ($metadata as $name => $value) {
+                    if ($name == 'idsubdatatable_in_db') {
+                        continue;
+                    }
+                    //if a metadata and a column have the same name make sure they dont overwrite
+                    if ($this->translateColumnNames) {
+                        $name = Piwik::translate('General_Metadata') . ': ' . $name;
+                    } else {
+                        $name = 'metadata_' . $name;
+                    }
+
+                    $csvRow[$name] = $value;
+                }
+            }
+
+            foreach ($csvRow as $name => $value) {
+                $allColumns[$name] = true;
+            }
+
+            if ($this->exportIdSubtable) {
+                $idsubdatatable = $row->getIdSubDataTable();
+                if ($idsubdatatable !== false
+                    && $this->hideIdSubDatatable === false
+                ) {
+                    $csvRow['idsubdatatable'] = $idsubdatatable;
+                }
+            }
+
+            $csv[] = $csvRow;
+        }
+        return $csv;
+    }
+
+    /**
+     * @param $str
+     * @return string
+     */
+    private function convertToUnicode($str)
+    {
+        if ($this->convertToUnicode
+            && function_exists('mb_convert_encoding')
+        ) {
+            $str = chr(255) . chr(254) . mb_convert_encoding($str, 'UTF-16LE', 'UTF-8');
+        }
+        return $str;
+    }
 }
diff --git a/core/EventDispatcher.php b/core/EventDispatcher.php
index d343da8bebe2f261dad95756bc9d1a2809ecd8fe..bdec8c1c7c34b6de0fe40d1d13770cbd8a296504 100644
--- a/core/EventDispatcher.php
+++ b/core/EventDispatcher.php
@@ -90,6 +90,11 @@ class EventDispatcher extends Singleton
                 $plugin = $this->getPluginManager()->getLoadedPlugin($plugin);
             }
 
+            if (empty($plugin)) {
+                return; // may happen in unit tests
+            }
+
+
             $hooks = $plugin->getListHooksRegistered();
 
             if (isset($hooks[$eventName])) {
diff --git a/core/Option.php b/core/Option.php
index d50e5c42358c19e9543a7809f5da26134f7a3214..d79df967ed3be2eec38d16592380071c54164820 100644
--- a/core/Option.php
+++ b/core/Option.php
@@ -143,6 +143,17 @@ class Option
         return self::$instance;
     }
 
+    /**
+     * Sets the singleton instance. For testing purposes.
+     *
+     * @param mixed
+     * @ignore
+     */
+    public static function setSingletonInstance($instance)
+    {
+        self::$instance = $instance;
+    }
+
     /**
      * Private Constructor
      */
diff --git a/core/Piwik.php b/core/Piwik.php
index 16f50f387faee4f6336241eec2a8d52953a971f0..13124728f9a6237aef63a5d14c1fb3705fcb1ab4 100644
--- a/core/Piwik.php
+++ b/core/Piwik.php
@@ -142,6 +142,7 @@ class Piwik
 
         // Build optional parameters to be added to text
         $options = '';
+        $optionsBeforeTrackerUrl = '';
         if ($groupPageTitlesByDomain) {
             $options .= '  _paq.push(["setDocumentTitle", document.domain + "/" + document.title]);' . PHP_EOL;
         }
@@ -187,7 +188,9 @@ class Piwik
         $codeImpl = array(
             'idSite' => $idSite,
             'piwikUrl' => Common::sanitizeInputValue($piwikUrl),
-            'options' => $options
+            'options' => $options,
+            'optionsBeforeTrackerUrl' => $optionsBeforeTrackerUrl,
+            'protocol' => '//'
         );
         $parameters = compact('mergeSubdomains', 'groupPageTitlesByDomain', 'mergeAliasUrls', 'visitorCustomVariables',
                               'pageCustomVariables', 'customCampaignNameQueryParam', 'customCampaignKeywordParam',
@@ -205,6 +208,10 @@ class Piwik
          *                         - **piwikUrl**: The tracker URL to use.
          *                         - **options**: A string of JavaScript code that customises
          *                                        the JavaScript tracker.
+         *                         - **optionsBeforeTrackerUrl**: A string of Javascript code that customises
+         *                                        the JavaScript tracker inside of anonymous function before
+         *                                        adding setTrackerUrl into paq.
+         *                         - **protocol**: Piwik url protocol.
          *
          *                         The **httpsPiwikUrl** element can be set if the HTTPS
          *                         domain is different from the normal domain.
@@ -212,7 +219,7 @@ class Piwik
          */
         self::postEvent('Piwik.getJavascriptCode', array(&$codeImpl, $parameters));
 
-        $setTrackerUrl = 'var u="//{$piwikUrl}/";';
+        $setTrackerUrl = 'var u="' . $codeImpl['protocol'] . '{$piwikUrl}/";';
 
         if (!empty($codeImpl['httpsPiwikUrl'])) {
             $setTrackerUrl = 'var u=((document.location.protocol === "https:") ? "https://{$httpsPiwikUrl}/" : "http://{$piwikUrl}/");';
diff --git a/core/ReportRenderer/Html.php b/core/ReportRenderer/Html.php
index c929c9a4497109ac1469c0d9bc5a6620c8c07c1d..d8ff678bc817b8c3dd5304410116fb11fbf1e6a9 100644
--- a/core/ReportRenderer/Html.php
+++ b/core/ReportRenderer/Html.php
@@ -189,10 +189,9 @@ class Html extends ReportRenderer
 
         $additionalFile['filename'] =
             sprintf(
-                '%s - %s - %s %d - %s %d%s.png',
+                '%s - %s - %d - %s %d%s.png',
                 $processedReportMetadata['name'],
                 $prettyDate,
-                Piwik::translate('General_Website'),
                 $report['idsite'],
                 Piwik::translate('General_Report'),
                 $report['idreport'],
diff --git a/core/Tracker.php b/core/Tracker.php
index 3aa27237a12e193d89076aa81f9b6a640b8cae25..72bd3cd2891d9be5f53c88a6368b197afedf5b94 100644
--- a/core/Tracker.php
+++ b/core/Tracker.php
@@ -452,6 +452,7 @@ class Tracker
             }
             Common::sendHeader('Content-Type: application/json');
             echo Common::json_encode($result);
+            die(1);
             exit;
         }
 
@@ -468,8 +469,9 @@ class Tracker
             Common::sendHeader('Content-Type: text/html; charset=utf-8');
             echo $this->getMessageFromException($e);
         } else {
-            $this->outputTransparentGif ();
+            $this->outputTransparentGif();
         }
+        die(1);
         exit;
     }
 
diff --git a/core/testMinimumPhpVersion.php b/core/testMinimumPhpVersion.php
index 3dd3defd3e0691e195e54668c47f897437243447..542279f872395e5dfd9c8d3790cc87cc914fcd93 100644
--- a/core/testMinimumPhpVersion.php
+++ b/core/testMinimumPhpVersion.php
@@ -15,8 +15,8 @@
 
 $piwik_errorMessage = '';
 
-// Minimum requirement: stream_resolve_include_path in 5.3.2, namespaces in 5.3
-$piwik_minimumPHPVersion = '5.3.2';
+// Minimum requirement: stream_resolve_include_path, working json_encode in 5.3.3, namespaces in 5.3
+$piwik_minimumPHPVersion = '5.3.3';
 $piwik_currentPHPVersion = PHP_VERSION;
 $minimumPhpInvalid = version_compare($piwik_minimumPHPVersion, $piwik_currentPHPVersion) > 0;
 if ($minimumPhpInvalid) {
diff --git a/lang/cs.json b/lang/cs.json
index 9f64de1fca088fdeeb4c62d8577e1604492c716e..2c738582f26388d2468258ac63dfd1db1d73ad28 100644
--- a/lang/cs.json
+++ b/lang/cs.json
@@ -431,6 +431,7 @@
         "WarningFileIntegrityNoManifestDeployingFromGit": "Pokud nasazujete Piwik z Gitu, pak je tato zpráva normální.",
         "WarningFileIntegrityNoMd5file": "Test integrity nemůže být dokončen z důvodů chybějící funkce md5_file().",
         "WarningPasswordStored": "%sUpozornění:%s Toto heslo bude uloženo v konfiguračním souboru viditelné pro všechny s přístupem k němu.",
+        "WarningPhpVersionXIsTooOld": "PHP verze %s, kterou používáte již není podporována (EOL). Důrazně doporučujeme aktualizovat na novější verzi, protože stávající může obsahovat bezpečnostní a další problémy, které byly opraveny v novějších verzích PHP.",
         "Website": "Web stránky",
         "Weekly": "Týdně",
         "WeeklyReport": "Týdně",
diff --git a/lang/da.json b/lang/da.json
index 8b3c5b8a7b53c2dfd73d4e3b5c5a16d5fa7edcdd..41c57deed7cbe8e41c5e22f3bd1c51c7e41411ff 100644
--- a/lang/da.json
+++ b/lang/da.json
@@ -431,6 +431,7 @@
         "WarningFileIntegrityNoManifestDeployingFromGit": "Hvis du implementerer Piwik fra Git, er meddelelsen normal.",
         "WarningFileIntegrityNoMd5file": "Fil integritetstjek kunne ikke gennemføres pga. manglende md5_file () funktion.",
         "WarningPasswordStored": "%sAdvarsel:%s Adgangskoden bliver gemt i konfigurationsfilen synlig for alle, der har adgang til den.",
+        "WarningPhpVersionXIsTooOld": "PHP version %s har nået slutningen af ​​sin levetid (EOL). Du opfordres kraftigt til at opgradere til den aktuelle version, fordi brug af denne version kan udsætte dig for sikkerhedshuller og fejl, som er blevet rettet i nyere versioner af PHP.",
         "Website": "Hjemmeside",
         "Weekly": "Ugentligt",
         "WeeklyReport": "ugentlig",
diff --git a/lang/de.json b/lang/de.json
index e002a0bb2bfd4f5da67bdaa972509fb0263c2ff3..11fcdf70f0e7e47b7bf920f11ee2c491e37281c1 100644
--- a/lang/de.json
+++ b/lang/de.json
@@ -431,6 +431,7 @@
         "WarningFileIntegrityNoManifestDeployingFromGit": "Wenn Sie Piwik von Git deployen ist diese Nachricht normal.",
         "WarningFileIntegrityNoMd5file": "Durch die fehlende md5_file() Funktion konnte die Integritätsprüfung nicht durchgeführt werden.",
         "WarningPasswordStored": "%sWarnung:%s Dieses Passwort wird in der Konfigurationsdatei gespeichert und ist so für jeden sichtbar, der auf diese Datei Zugriff hat.",
+        "WarningPhpVersionXIsTooOld": "Die von Ihnen eingesetzte PHP Version %s hat das Ende der Lebensdauer (EOL) erreicht. Es wird dringend angeraten, ein Update auf eine aktuelle Version durchzuführen, da der Einsatz dieser Version zu Sicherheitsrisiken und Fehlern führen kann, welche in neueren PHP Versionen korrigiert wurden.",
         "Website": "Webseite",
         "Weekly": "Wöchentlich",
         "WeeklyReport": "wöchentlich",
diff --git a/lang/el.json b/lang/el.json
index 2929d928aac268df3ed9c5775982a7b3aa918849..e30d4e22d38027924326a72bb713489f3e87f67c 100644
--- a/lang/el.json
+++ b/lang/el.json
@@ -432,6 +432,7 @@
         "WarningFileIntegrityNoManifestDeployingFromGit": "Αν παίρνετε το Piwik από το Git, το μήνυμα αυτό είναι φυσιολογικό.",
         "WarningFileIntegrityNoMd5file": "Ο έλεγχος ακεραιότητας αρχείου δεν μπορεί να ολοκληρωθεί γιατί είναι ανενεργή η συνάρτηση md5_file().",
         "WarningPasswordStored": "%sΠροειδοποίηση:%s Αυτός ο κωδικός πρόσβασης θα αποθηκευτεί στο αρχείο ρυθμίσεων και θα είναι ορατός από οποιονδήποτε έχει πρόσβαση σε αυτό.",
+        "WarningPhpVersionXIsTooOld": "Η έκδοση PHP %s που χρησιμοποιείτε έχει φτάσει στο Τέλος Ζωής της (EOL). Συνιστάται να αναβαθμίσετε στην τρέχουσα έκδοση, καθώς η χρήση αυτή της έκδοσης μπορεί να σας εκθέσει σε προβλήματα ασφαλείας και σφάλματα που έχουν διορθωθεί στις πρόσφατες εκδόσεις της PHP.",
         "Website": "Ιστοσελίδα",
         "Weekly": "Εβδομαδιαίως",
         "WeeklyReport": "εβδομαδιαία",
diff --git a/lang/en.json b/lang/en.json
index 0af012ecc3113a9cd14c93d7f3a642a73f6bd798..6785487c23699eeac9075758fee3114a495df862 100644
--- a/lang/en.json
+++ b/lang/en.json
@@ -208,6 +208,7 @@
         "LastDays": "Last %s days (including today)",
         "LastDaysShort": "Last %s days",
         "LayoutDirection": "ltr",
+        "LearnMore": "%1$slearn more%2$s",
         "Live": "Live",
         "Loading": "Loading...",
         "LoadingData": "Loading data...",
@@ -355,6 +356,7 @@
         "Seconds": "%ss",
         "SeeAll": "see all",
         "SeeTheOfficialDocumentationForMoreInformation": "See the %sofficial documentation%s for more information.",
+        "SeeThisFaq": "See %1$sthis faq%2$s.",
         "Segment": "Segment",
         "SelectYesIfYouWantToSendEmailsViaServer": "Select \"Yes\" if you want or have to send e-mail via a named server instead of the local mail function",
         "Settings": "Settings",
diff --git a/lang/es.json b/lang/es.json
index 71aff14d847dba1439000f48bbba5769f78b7af8..20adcc359c59af861befed618dea3c1a4437b91a 100644
--- a/lang/es.json
+++ b/lang/es.json
@@ -32,6 +32,7 @@
         "ChooseLanguage": "Elegir idioma",
         "ChoosePeriod": "Elegir periodo",
         "ChooseWebsite": "Elegir sitio web",
+        "Clear": "Quitar",
         "ClickHere": "Haga clic aquí para más información.",
         "ClickToChangePeriod": "Haz un click nuevamente para modificar el período.",
         "Close": "Cerrar",
@@ -167,6 +168,7 @@
         "ExceptionUnableToStartSession": "No se pudo iniciar sesión.",
         "ExceptionUndeletableFile": "No se puede borrar %s",
         "ExceptionUnreadableFileDisabledMethod": "El archivo de configuración {%s} no se pudo leer. Su host puede estar deshabilitado %s.",
+        "ExceptionWidgetNotFound": "El widget solicitado no existe.",
         "ExpandDataTableFooter": "Cambia la visualización o modifica el informe",
         "Export": "Exportar",
         "ExportAsImage": "Exportar como Imagen",
@@ -400,6 +402,7 @@
         "Unknown": "Desconocido",
         "Upload": "Subir",
         "UsePlusMinusIconsDocumentation": "Use los iconos de más y menos en la izquierda para navegar.",
+        "UserId": "ID Usuario",
         "Username": "Nombre de usuario",
         "UseSMTPServerForEmail": "Use el servidor SMTP para el correo",
         "Value": "Valor",
diff --git a/lang/et.json b/lang/et.json
index e6f195ccff0aea4fbe327236304a192a0dc069d2..7c124bb435e6eccc04787bc3b64bd48274aaf162 100644
--- a/lang/et.json
+++ b/lang/et.json
@@ -50,6 +50,7 @@
         "ColumnMaxActions": "Maksimaalne tegevuste arv ühe külastuse jooksul",
         "ColumnNbActions": "Tegevused",
         "ColumnNbUniqVisitors": "Unikaalsed külastajad",
+        "ColumnNbUsers": "Kasutajaid",
         "ColumnNbVisits": "Külastused",
         "ColumnPageviews": "Lehevaatamisi",
         "ColumnPercentageVisits": "% Külastustest",
@@ -207,6 +208,7 @@
         "NotValid": "%s ei ole kehtiv",
         "NSeconds": "%s sekundit",
         "NumberOfVisits": "Külastuste arv",
+        "NUsers": "%s kasutajaid",
         "NVisits": "%s külastust",
         "Ok": "Ok",
         "OneAction": "1 tegevus",
@@ -313,6 +315,7 @@
         "Table": "Tabel",
         "TagCloud": "Sildipilv",
         "Tax": "Maksud",
+        "TimeAgo": "%s tagasi",
         "TimeOnPage": "Aeg lehel",
         "Today": "Täna",
         "Total": "Kokku",
@@ -327,6 +330,7 @@
         "Unknown": "Tundmatu",
         "Upload": "Ãœleslaadimine",
         "UsePlusMinusIconsDocumentation": "Kasuta pluss ja miinus ikoone vasakul, et navigeerida",
+        "UserId": "Kasutaja ID",
         "Username": "Kasutajanimi",
         "UseSMTPServerForEmail": "Kasuta e-posti edastamiseks SMTP serverit",
         "Value": "Väärtus",
diff --git a/lang/it.json b/lang/it.json
index 9e64d0539227a1f1a894bd742ef05f1a430f8555..f099c47966090827dc3814b4fc670ee476946dd5 100644
--- a/lang/it.json
+++ b/lang/it.json
@@ -431,6 +431,7 @@
         "WarningFileIntegrityNoManifestDeployingFromGit": "Se stai sviluppando Piwik da Git, questo messaggio è normale.",
         "WarningFileIntegrityNoMd5file": "Il controllo dell'integrità dei file non può essere eseguito per la mancanza della funzione md5_file().",
         "WarningPasswordStored": "%sAttenzione:%s Questa password verrà salvata nel file di configurazione e sarà visibile a chiunque ne ha accesso.",
+        "WarningPhpVersionXIsTooOld": "La versione %s di PHP che stai utilizzando ha raggiunto il fine vita (EOL). Si invita caldamente ad aggiornare con urgenza all'ultima versione, perché l'uso di questa versione può esporti a vulnerabilità nella sicurezza e ai bug che sono stati corretti nelle versioni più recenti di PHP.",
         "Website": "Sito:",
         "Weekly": "Settimanale",
         "WeeklyReport": "settimanale",
diff --git a/lang/ja.json b/lang/ja.json
index 0e44d9c433f592b0878dc0018ecd2ad353079cb7..fe90d8692d322aa859df3590d96654085f913a5c 100644
--- a/lang/ja.json
+++ b/lang/ja.json
@@ -133,13 +133,18 @@
         "DownloadFail_FileExistsContinue": "%s のダウンロードを続行しようとしていますが、完全にダウンロードされたファイルがすでに存在しています!",
         "DownloadFail_HttpRequestFail": "ファイルをダウンロードできませんでした! ダウンロード元のウェブサイトに何らかの誤りがあるかもしれません。後でもう一度試すか、自分自身でファイルを取得してください。",
         "DownloadFullVersion": "フルバージョンを%1$sダウンロード%2$s! %3$s を確認してください",
+        "DownloadPleaseRemoveExisting": "それを置き換える場合は、既存のファイルを削除してください。",
         "Downloads": "ダウンロード数",
         "EcommerceOrders": "eコマース受注",
+        "EcommerceVisitStatusDesc": "訪問の最後に、e コマースの状況をご確認ください。",
+        "EcommerceVisitStatusEg": "例えば、e コマースで注文を行った全ての訪問を選択するために、 API リクエストは %s を含んでいる可能性があります。",
         "Edit": "編集",
         "EncryptedSmtpTransport": "SMTP サーバーで必要となる、トランスポートレイヤーの暗号を入力します。",
         "EnglishLanguageName": "Japanese",
         "Error": "エラー",
+        "ErrorRequest": "おっと ! ...リクエスト中に問題がありました。おそらくサーバに一時的な問題が発生しているか、データ量が多過ぎるレポートをリクエストした可能性があります。もう一度お試しください。このエラーが繰り返し表示される場合は、%scontact your Piwik dministrator%s",
         "EvolutionOverPeriod": "一定期間の推移",
+        "ExceptionCheckUserHasSuperUserAccessOrIsTheUser": "ユーザーは、スーパーユーザーもしくはユーザー '%s' それ自身のいずれかである必要があります。",
         "ExceptionConfigurationFileNotFound": "設定ファイル {%s} が見つかりませんでした",
         "ExceptionDatabaseVersion": "%1$s のバージョンが %2$s ですが、Piwik には少なくとも %3$s が必要となります。",
         "ExceptionFileIntegrity": "整合性チェックの失敗: %s",
@@ -161,9 +166,12 @@
         "ExceptionPrivilege": "このリソースには %s アクセス権が必要なため、アクセスすることはできません。",
         "ExceptionPrivilegeAccessWebsite": "このリソースには website id = %d 用の %s アクセス権が必要なため、アクセスすることはできません。",
         "ExceptionPrivilegeAtLeastOneWebsite": "このリソースには少なくとも1つのウェブサイト用の %s アクセス権が必要なため、アクセスすることはできません。",
+        "ExceptionReportNotEnabled": "リクエストされたレポートは、利用できません。レポートの定義が無効になっているか、このレポートにアクセスする十分な権限を持っていない可能性があります。",
+        "ExceptionReportNotFound": "リクエストされたレポートは存在しません。",
         "ExceptionUnableToStartSession": "セッションを開始できません",
         "ExceptionUndeletableFile": "%s が削除できませんでした",
         "ExceptionUnreadableFileDisabledMethod": "設定ファイル {%s} を読み込むことができませんでした。 サーバーで %s が無効化されている可能性があります。",
+        "ExceptionWidgetNotFound": "リクエストされたウィジェットは存在しません。",
         "ExpandDataTableFooter": "ビジュアルの変更やレポートの設定",
         "Export": "エクスポート",
         "ExportAsImage": "画像としてエクスポートする",
@@ -184,6 +192,7 @@
         "GraphHelp": "Piwik でのグラフ表示の詳細です。",
         "HelloUser": "こんにちは、%s さん!",
         "Help": "ヘルプ",
+        "HelpTranslatePiwik": "%1$shelp us improve the Piwik translations%2$s ?",
         "Hide": "非表示にする",
         "HoursMinutes": "%1$s 時間 %2$s 分",
         "Id": "ID",
@@ -289,6 +298,7 @@
         "Others": "その他",
         "Outlink": "外部リンク",
         "Outlinks": "外部リンク数",
+        "OverlayRowActionTooltip": "ウェブサイトで新しいタブを開いて、直接分析データをご確認ください。",
         "OverlayRowActionTooltipTitle": "ページオーバーレイを開く",
         "Overview": "概観",
         "Pages": "ページ",
@@ -296,6 +306,8 @@
         "Password": "パスワード",
         "Period": "期間",
         "Piechart": "円グラフ",
+        "PiwikIsACollaborativeProjectYouCanContributeAndDonate": "%1$sPiwik%2$s は、%7$sPiwik team%8$s メンバーだけでなく世界中の他の多くの貢献者による共同プロジェクトです。もし Piwik のファンになって頂けたら、ぜひ貢献してください。: %3$sHow to participate in Piwik%4$s を読んで、Piwik 3.0 基金を助けるために %5$sdonate %6$s !",
+        "PiwikXIsAvailablePleaseNotifyPiwikAdmin": "%1$s が利用可能です。ぜひ %2$sPiwik administrator%3$s に通知してください。",
         "PiwikXIsAvailablePleaseUpdateNow": "Piwik %1$s が利用可能です。 %2$s今すぐアップデートしてください!%3$s(%4$s変更点%5$sを参照)。",
         "PleaseSpecifyValue": "'%s' の値を指定してください。",
         "PleaseUpdatePiwik": "Piwik を更新してください",
@@ -311,6 +323,7 @@
         "PurchasedProducts": "購入された製品",
         "Quantity": "数量",
         "RangeReports": "カスタム期間",
+        "ReadThisToLearnMore": "%1$sRead this to learn more.%2$s",
         "Recommended": "(推奨)",
         "RecordsToPlot": "プロットするレコード",
         "Refresh": "リフレッシュ",
@@ -320,6 +333,7 @@
         "Remove": "削除",
         "Report": "リポート",
         "ReportGeneratedFrom": "このレポートは、%s のデータを使用して生成しました。",
+        "ReportRatioTooltip": "'%1$s' は %5$s で %3$s %4$s の %2$s を表しています。",
         "Reports": "リポート",
         "ReportsContainingTodayWillBeProcessedAtMostEvery": "今日のリポート(または今日を含む、他の日付範囲)が生成される間隔は",
         "ReportsWillBeProcessedAtMostEveryHour": "従って、リポートは1時間ごとに処理されます。",
@@ -370,6 +384,7 @@
         "SmtpServerAddress": "SMTP のサーバアドレス",
         "SmtpUsername": "SMTP のユーザー名",
         "Source": "ソース",
+        "StatisticsAreNotRecorded": "Piwik ビジタートラッキングは、現在利用できません! お使いの config\/config.ini.php ファイルで record_statistics = 1 を設定することで、再度ご利用頂けるようになります。",
         "Subtotal": "小計",
         "Summary": "サマリ",
         "Table": "テーブル",
@@ -379,7 +394,9 @@
         "TimeOnPage": "このページの滞在時間",
         "Today": "今日",
         "Total": "合計",
+        "TotalRatioTooltip": "これは、全ての %2$s %3$s の %1$sです。",
         "TotalRevenue": "総収益",
+        "TotalVisitsPageviewsRevenue": "( 合計 : 訪問数 %s 、ページビュー %s 、利益 %s )",
         "TransitionsRowActionTooltip": "訪問者が、このページの表示前後に何をしていたか見てください",
         "TransitionsRowActionTooltipTitle": "トランジションを開く",
         "TranslatorEmail": "hello@piwik.org",
@@ -408,6 +425,7 @@
         "VisitTypeExample": "例えば、前回のビジットで何かを購入した訪問者を含む、全てのリピーターを選択するためのAPIリクエストは %s を含むものとなります。",
         "Warning": "警告",
         "WarningFileIntegrityNoManifest": "manifest.inc.php が不足しているため、ファイルの整合性チェックを実行することができませんでした。",
+        "WarningFileIntegrityNoManifestDeployingFromGit": "Git から Piwik を開発している場合、このメッセージは正常です。",
         "WarningFileIntegrityNoMd5file": "md5_file() 関数が存在しないため、ファイルの整合性チェックを完了することができませんでした。",
         "WarningPasswordStored": "%s警告:%s このパスワードは設定ファイルに保存されます。 この設定ファイルにアクセス可能な人であれば、パスワードを見られる可能性があることに注意してください。",
         "Website": "ウェブサイト",
@@ -416,6 +434,8 @@
         "WeeklyReports": "週次リポート",
         "WellDone": "よくできました!",
         "Widgets": "ウィジェット",
+        "XComparedToY": "%2$s に比べ %1$s",
+        "XFromY": "%2$s からの %1$s",
         "YearlyReport": "毎年",
         "YearlyReports": "年次リポート",
         "YearsDays": "%1$s å¹´ %2$s æ—¥",
diff --git a/lang/pl.json b/lang/pl.json
index 0bbaf84217b9bdac3c7708e8b9bdde25427b99ad..e671506b5d23ff63f89df7313dc83e954af6481d 100644
--- a/lang/pl.json
+++ b/lang/pl.json
@@ -410,6 +410,7 @@
         "YearlyReport": "rocznie",
         "YearlyReports": "Raporty roczne",
         "YearsDays": "%1$s lat %2$s dni",
+        "YearShort": "r",
         "Yes": "Tak",
         "Yesterday": "wczoraj",
         "YouAreCurrentlyUsing": "Aktualnie używasz Piwik %s.",
@@ -452,7 +453,9 @@
         "NoWebsitesShort": "Brak stron",
         "RatingDontRemindMe": "Nie przypominaj mi",
         "RatingNotNow": "Nie teraz",
+        "Reloading": "Przeładowanie...",
         "SaveSuccessError": "Prosimy sprawdzić ustawienia konfiguracyjne",
+        "SearchWebsite": "Przeszukuj witryny",
         "ShowAll": "Pokaż wszystko",
         "ShowLess": "Pokaż mniej",
         "TryIt": "Wypróbuj!",
diff --git a/lang/tr.json b/lang/tr.json
index 364758b656d7207e1dc34cac9d861688c57d21b3..d1b84cdff3244e01d660196d869eeb0b9c7457cf 100644
--- a/lang/tr.json
+++ b/lang/tr.json
@@ -319,7 +319,7 @@
         "Total": "Toplam",
         "TotalRevenue": "Toplam Kazanç",
         "TranslatorEmail": "halfdan@xnorfz.de, dev@yazici.info, hello@emresaracoglu.com",
-        "TranslatorName": "Fabian Becker, Emre Yazici, Emre Saraçoğlu, <a href=\"http:\/\/www.radyofm.com\" target=\"_blank\" title=\"Uğur Eskici\">Uğur Eskici<\/a>",
+        "TranslatorName": "Fabian Becker, Emre Yazici, Emre Saraçoğlu",
         "UniquePurchases": "Tekil Satın Alımlar",
         "Unknown": "Bilinmeyen",
         "Upload": "Yükle",
diff --git a/plugins/API/lang/pt.json b/plugins/API/lang/pt.json
index fe74fdfb6d7a2aff4293184fd468a9c79e8dba18..80c635a7a05df5f753e829c19c67d7d82338ba3b 100644
--- a/plugins/API/lang/pt.json
+++ b/plugins/API/lang/pt.json
@@ -6,6 +6,7 @@
         "MoreInformation": "Para mais informação sobre os APIs de Piwik, por favor dê uma vista de olhos na %s Introdução ao API Piwik %s e a %s Referência do API Piwik %s.",
         "PluginDescription": "Todos os dados em Piwik estão disponíveis através de APIs simples. Este plugin é o ponto de entrada do serviço web, que pode chamar para receber os seus dados das Analíticas Web em xml, json, php, csv, etc.",
         "QuickDocumentationTitle": "Documentação rápida do API",
+        "TopLinkTooltip": "Aceda programaticamente à sua informação através de uma simples API em json, xml, etc.",
         "UserAuthentication": "Autenticação do utilizador",
         "UsingTokenAuth": "Se quer %s pedir dados através de um script, crontab, etc. %s tem que adicionar o parâmetro %s aos URLs das chamadas do API que necessitam de autenticação."
     }
diff --git a/plugins/Actions/lang/pt.json b/plugins/Actions/lang/pt.json
index 8a64eddb4482fd8ea782223aa626a662a54e3bb8..751f721d5d94ffebea44cce470549882a38968a7 100644
--- a/plugins/Actions/lang/pt.json
+++ b/plugins/Actions/lang/pt.json
@@ -9,12 +9,16 @@
         "ColumnEntryPageURL": "URL da Página de Entrada",
         "ColumnExitPageTitle": "Título da Página de Saída",
         "ColumnExitPageURL": "URL da Página de Saída",
-        "ColumnPageName": "Nome da Páginal",
+        "ColumnNoResultKeyword": "Palavra Chave sem Resultado de Pesquisa",
+        "ColumnPageName": "Nome da Página",
         "ColumnPagesPerSearch": "Páginas de resultados",
         "ColumnPageURL": "Endereço da Página",
         "ColumnSearchCategory": "Pesquisar Categoria",
+        "ColumnSearches": "Pesquisas",
         "ColumnSearchesDocumentation": "O número de visitas que procurou esta palavra-chave no motor de busca do seu site.",
+        "ColumnSearchExits": "% Saídas de Pesquisa",
         "ColumnSearchExitsDocumentation": "A percentagem de visitas que deixou o site após a pesquisa por esta palavra-chave no motor de busca do seu Site.",
+        "ColumnSearchResultsCount": "Contagem de Resultados de Pesquisa",
         "ColumnSiteSearchKeywords": "Palavra Chave Única",
         "ColumnUniqueClicks": "Cliques Únicos",
         "ColumnUniqueClicksDocumentation": "O número de visitas que envolveu um clique neste link. Se um link foi clicado várias vezes durante uma visita, só é contado uma vez.",
@@ -22,8 +26,10 @@
         "ColumnUniqueOutlinks": "Links de saída únicos",
         "DownloadsReportDocumentation": "Neste relatório, você pode ver quais os arquivos que os visitantes têm feito download.%s O que o Piwik entende como um download é clicar num link de download. Se o download foi concluído ou não, não é conhecido pelo Piwik.",
         "EntryPagesReportDocumentation": "Este relatório contém informações sobre as páginas de entrada que foram utilizadas durante o período especificado. Uma página de entrada é a primeira página que um utilizador visualiza durante a sua visita. %s As URLs de entrada são exibidas como uma estrutura de pastas.",
+        "EntryPageTitles": "Títulos das páginas de entrada",
         "EntryPageTitlesReportDocumentation": "Este relatório contém informações sobre os títulos das páginas de entrada que foram usados ​​durante o período especificado.",
         "ExitPagesReportDocumentation": "Este relatório contém informações sobre as páginas de saída que ocorreram durante o período especificado. Uma página de saída é a última página que um utilizador visualiza durante a sua visita. %s Os URLs de saída são exibidos como uma estrutura de pastas.",
+        "ExitPageTitles": "Títulos das páginas de saída",
         "ExitPageTitlesReportDocumentation": "Este relatório contém informações sobre os títulos de páginas de saída que ocorreram durante o período especificado.",
         "OneSearch": "1 Pesquisa",
         "OutlinkDocumentation": "Um outlink é um link que leva o visitante para fora do seu website (para outro domínio).",
@@ -31,12 +37,24 @@
         "PagesReportDocumentation": "Este relatório contém informações sobre URLs das páginas que foram visitadas. %s A tabela está organizada hierarquicamente, as URLs são exibidas como uma estrutura de pastas.",
         "PageUrls": "URLs de páginas",
         "PluginDescription": "Relatórios sobre páginas vistas, ligações de saída e downloads. O rastreio de ligações de saída e downloads é automático.",
+        "SiteSearchCategories1": "Este relatório lista as Categorias que os visitantes selecionaram quando realizaram uma Pesquisa na sua página.",
         "SiteSearchCategories2": "Por exemplo, os sites de comércio electrónico têm tipicamente uma \"Categoria\" seleccionada de modo que os visitantes podem restringir suas pesquisas a todos os produtos em uma categoria específica.",
         "SiteSearchIntro": "Rastrear pesquisas que os visitantes fazem em seu site é uma maneira muito eficaz de aprender mais sobre o que o seu público está procurando, ele pode ajudar a encontrar ideias para novos conteúdos, novos produtos de comércio electrónico que os potenciais clientes podem estar procurando, e em geral, melhorar os visitantes experiência em seu site.",
+        "SiteSearchKeyword": "Palavra Chave (Pesquisa)",
         "SiteSearchKeywordsDocumentation": "Este relatório lista as palavras-chave de pesquisa que os visitantes procuraram em sua busca interna do motor.",
+        "SiteSearchKeywordsNoResultDocumentation": "Este relatório lista as Pesquisas de Palavras Chave que não devolveram resultado de Pesquisa algum: talvez o algoritmo do motor de busca pode ser melhorado, ou talvez os seus visitantes encontram-se à procura de conteúdo que (ainda) não consta na sua página.",
         "SubmenuPagesEntry": "Páginas de entrada",
         "SubmenuPagesExit": "Páginas de saída",
         "SubmenuPageTitles": "Títulos das páginas",
-        "SubmenuSitesearch": "Pesquisar Site"
+        "SubmenuSitesearch": "Pesquisar Site",
+        "WidgetEntryPageTitles": "Títulos de Páginas de Entrada",
+        "WidgetExitPageTitles": "Títulos de Páginas de Saída",
+        "WidgetPagesEntry": "Páginas de Entrada",
+        "WidgetPagesExit": "Páginas de Saída",
+        "WidgetPageTitles": "Títulos de Página",
+        "WidgetPageTitlesFollowingSearch": "Títulos de Páginas Resultantes de uma Pesquisa de Página",
+        "WidgetPageUrlsFollowingSearch": "Páginas Resultantes de uma Pesquisa de Página",
+        "WidgetSearchCategories": "Categorias de Pesquisa",
+        "WidgetSearchNoResultKeywords": "Palavras Chaves de Pesquisa Sem Resultados"
     }
 }
\ No newline at end of file
diff --git a/plugins/Annotations/lang/pt.json b/plugins/Annotations/lang/pt.json
new file mode 100644
index 0000000000000000000000000000000000000000..313a1539013c91dbf509e3aee761874f1681132c
--- /dev/null
+++ b/plugins/Annotations/lang/pt.json
@@ -0,0 +1,20 @@
+{
+    "Annotations": {
+        "AddAnnotationsFor": "Adicionar anotações para %s...",
+        "Annotations": "Anotações",
+        "ClickToDelete": "Clique para eliminar esta anotação.",
+        "ClickToEdit": "Clique para editar esta anotação.",
+        "ClickToEditOrAdd": "Clique para editar ou adicionar uma nova anotação.",
+        "CreateNewAnnotation": "Criar uma nova anotação...",
+        "EnterAnnotationText": "Introduza a sua nota...",
+        "HideAnnotationsFor": "Esconder anotações para %s...",
+        "IconDesc": "Ver notas para este intervalo de datas.",
+        "IconDescHideNotes": "Esconder notas para este intervalo de datas.",
+        "InlineQuickHelp": "Você pode criar anotações para marcar eventos especiais (como uma nova publicação no blogue, ou alteração no aspeto do sítio de internet), para salvar a sua informação ou para salvar algo que julgue ser importante.",
+        "LoginToAnnotate": "Entre para criar uma anotação.",
+        "NoAnnotations": "Não existem anotações para este intervalo de datas.",
+        "PluginDescription": "Permite que anexe notas a dias diferentes para marcar alterações realizadas à sua página de internet, salvar análises que realizou com respeito à sua informação e partilhar os seus pensamentos com os seus colegas. Ao anotar a sua informação, terá a certeza que se lembrará a razão pela qual esta tem o aspeto que tem.",
+        "ViewAndAddAnnotations": "Ver e adicionar anotações para %s...",
+        "YouCannotModifyThisNote": "Você não pode modificar esta anotação, porque você não a criou, nem possui previlégios de administração para este sítio de internet."
+    }
+}
\ No newline at end of file
diff --git a/plugins/Contents/lang/cs.json b/plugins/Contents/lang/cs.json
new file mode 100644
index 0000000000000000000000000000000000000000..e06fabbf4732d0958b85d863d886da9843c126df
--- /dev/null
+++ b/plugins/Contents/lang/cs.json
@@ -0,0 +1,12 @@
+{
+    "Contents": {
+        "ContentName": "Jméno obsahu",
+        "ContentPiece": "Část obsahu",
+        "Contents": "Obsah",
+        "ContentTarget": "Cíl obsahu",
+        "Impressions": "Dojmy",
+        "Interaction": "Interakce",
+        "InteractionRate": "Rychlost interakcí",
+        "Interactions": "Interakce"
+    }
+}
\ No newline at end of file
diff --git a/plugins/Contents/lang/da.json b/plugins/Contents/lang/da.json
new file mode 100644
index 0000000000000000000000000000000000000000..725e9a55f29ab5407d89b35acc5e33f34df410a2
--- /dev/null
+++ b/plugins/Contents/lang/da.json
@@ -0,0 +1,12 @@
+{
+    "Contents": {
+        "ContentName": "Indholdsnavn",
+        "ContentPiece": "Indholdsstykke",
+        "Contents": "Indhold",
+        "ContentTarget": "Indholdsmål",
+        "Impressions": "Indtryk",
+        "Interaction": "Interaktion",
+        "InteractionRate": "Interaktionsfrekvens",
+        "Interactions": "Interaktioner"
+    }
+}
\ No newline at end of file
diff --git a/plugins/Contents/lang/de.json b/plugins/Contents/lang/de.json
new file mode 100644
index 0000000000000000000000000000000000000000..11ecd6e985285ba03cce3d18cd0ced079f19dbfc
--- /dev/null
+++ b/plugins/Contents/lang/de.json
@@ -0,0 +1,12 @@
+{
+    "Contents": {
+        "ContentName": "Inhaltsname",
+        "ContentPiece": "Inhaltsteil",
+        "Contents": "Inhalte",
+        "ContentTarget": "Inhaltsziel",
+        "Impressions": "Impressionen",
+        "Interaction": "Interaktion",
+        "InteractionRate": "Interaktionsrate",
+        "Interactions": "Interaktionen"
+    }
+}
\ No newline at end of file
diff --git a/plugins/Contents/lang/el.json b/plugins/Contents/lang/el.json
new file mode 100644
index 0000000000000000000000000000000000000000..00eeeb05784ba177aa166459eccb4806b5e30b5c
--- /dev/null
+++ b/plugins/Contents/lang/el.json
@@ -0,0 +1,12 @@
+{
+    "Contents": {
+        "ContentName": "Όνομα Περιεχομένου",
+        "ContentPiece": "Κομμάτι Περιεχομένου",
+        "Contents": "Περιεχόμενα",
+        "ContentTarget": "Στόχος Περιεχομένου",
+        "Impressions": "Αποτυπώσεις",
+        "Interaction": "Αλληλεπίδραση",
+        "InteractionRate": "Ρυθμός αλληλεπίδρασης",
+        "Interactions": "Αλληλεπιδράσεις"
+    }
+}
\ No newline at end of file
diff --git a/plugins/Contents/lang/es.json b/plugins/Contents/lang/es.json
new file mode 100644
index 0000000000000000000000000000000000000000..3eb3bec9e7e0196613a05016276184662b2b611d
--- /dev/null
+++ b/plugins/Contents/lang/es.json
@@ -0,0 +1,6 @@
+{
+    "Contents": {
+        "ContentName": "Nombre del contenido",
+        "Interactions": "Interacciones"
+    }
+}
\ No newline at end of file
diff --git a/plugins/Contents/lang/et.json b/plugins/Contents/lang/et.json
new file mode 100644
index 0000000000000000000000000000000000000000..9d6a1f3e9d1ada33f516cf4321c5144775f6ade9
--- /dev/null
+++ b/plugins/Contents/lang/et.json
@@ -0,0 +1,9 @@
+{
+    "Contents": {
+        "ContentName": "Sisu nimi",
+        "ContentPiece": "Sisu tükk",
+        "Contents": "Sisud",
+        "InteractionRate": "Koostoime mõju",
+        "Interactions": "Koostoime"
+    }
+}
\ No newline at end of file
diff --git a/plugins/Contents/lang/it.json b/plugins/Contents/lang/it.json
new file mode 100644
index 0000000000000000000000000000000000000000..f040e21bfe1804d0be72db0328a05c6d14268100
--- /dev/null
+++ b/plugins/Contents/lang/it.json
@@ -0,0 +1,10 @@
+{
+    "Contents": {
+        "ContentName": "Nome Contenuto",
+        "Contents": "Contenuti",
+        "Impressions": "Impressioni",
+        "Interaction": "Interazione",
+        "InteractionRate": "Rapporto di Interazione",
+        "Interactions": "Interazioni"
+    }
+}
\ No newline at end of file
diff --git a/plugins/Contents/lang/pl.json b/plugins/Contents/lang/pl.json
new file mode 100644
index 0000000000000000000000000000000000000000..846b76db091ed8974250291796df2c9295e9c089
--- /dev/null
+++ b/plugins/Contents/lang/pl.json
@@ -0,0 +1,7 @@
+{
+    "Contents": {
+        "ContentName": "Nazwa treści",
+        "Contents": "Treści",
+        "Interactions": "Interakcje"
+    }
+}
\ No newline at end of file
diff --git a/plugins/Contents/lang/pt.json b/plugins/Contents/lang/pt.json
new file mode 100644
index 0000000000000000000000000000000000000000..4efc05c515efd99ec924cee9024d14d97e05c5d7
--- /dev/null
+++ b/plugins/Contents/lang/pt.json
@@ -0,0 +1,9 @@
+{
+    "Contents": {
+        "Contents": "Conteúdos",
+        "ContentTarget": "Conteúdo de Destino",
+        "Impressions": "Impressões",
+        "Interaction": "Interação",
+        "Interactions": "Interações"
+    }
+}
\ No newline at end of file
diff --git a/plugins/Contents/tests/System/expected/test_Contents__Live.getLastVisitsDetails_day.xml b/plugins/Contents/tests/System/expected/test_Contents__Live.getLastVisitsDetails_day.xml
index 989f816722569544d52920872adc903958cc58b6..241be92f2f671b20a1a002a0db47fdc1080fc63f 100644
--- a/plugins/Contents/tests/System/expected/test_Contents__Live.getLastVisitsDetails_day.xml
+++ b/plugins/Contents/tests/System/expected/test_Contents__Live.getLastVisitsDetails_day.xml
@@ -47,7 +47,7 @@
 		<events>0</events>
 		<provider>Unknown</provider>
 		<providerName>Unknown</providerName>
-		<providerUrl>http://piwik.org/faq/general/#faq_52</providerUrl>
+		<providerUrl />
 		<referrerType>direct</referrerType>
 		<referrerTypeName>Direct Entry</referrerTypeName>
 		<referrerName />
@@ -147,7 +147,7 @@
 		<events>0</events>
 		<provider>Unknown</provider>
 		<providerName>Unknown</providerName>
-		<providerUrl>http://piwik.org/faq/general/#faq_52</providerUrl>
+		<providerUrl />
 		<referrerType>direct</referrerType>
 		<referrerTypeName>Direct Entry</referrerTypeName>
 		<referrerName />
diff --git a/plugins/Contents/tests/System/expected/test_Contents__Live.getLastVisitsDetails_month.xml b/plugins/Contents/tests/System/expected/test_Contents__Live.getLastVisitsDetails_month.xml
index 989f816722569544d52920872adc903958cc58b6..241be92f2f671b20a1a002a0db47fdc1080fc63f 100644
--- a/plugins/Contents/tests/System/expected/test_Contents__Live.getLastVisitsDetails_month.xml
+++ b/plugins/Contents/tests/System/expected/test_Contents__Live.getLastVisitsDetails_month.xml
@@ -47,7 +47,7 @@
 		<events>0</events>
 		<provider>Unknown</provider>
 		<providerName>Unknown</providerName>
-		<providerUrl>http://piwik.org/faq/general/#faq_52</providerUrl>
+		<providerUrl />
 		<referrerType>direct</referrerType>
 		<referrerTypeName>Direct Entry</referrerTypeName>
 		<referrerName />
@@ -147,7 +147,7 @@
 		<events>0</events>
 		<provider>Unknown</provider>
 		<providerName>Unknown</providerName>
-		<providerUrl>http://piwik.org/faq/general/#faq_52</providerUrl>
+		<providerUrl />
 		<referrerType>direct</referrerType>
 		<referrerTypeName>Direct Entry</referrerTypeName>
 		<referrerName />
diff --git a/plugins/Contents/tests/System/expected/test_Contents_contentInteractionMatch__Live.getLastVisitsDetails_day.xml b/plugins/Contents/tests/System/expected/test_Contents_contentInteractionMatch__Live.getLastVisitsDetails_day.xml
index 989f816722569544d52920872adc903958cc58b6..241be92f2f671b20a1a002a0db47fdc1080fc63f 100644
--- a/plugins/Contents/tests/System/expected/test_Contents_contentInteractionMatch__Live.getLastVisitsDetails_day.xml
+++ b/plugins/Contents/tests/System/expected/test_Contents_contentInteractionMatch__Live.getLastVisitsDetails_day.xml
@@ -47,7 +47,7 @@
 		<events>0</events>
 		<provider>Unknown</provider>
 		<providerName>Unknown</providerName>
-		<providerUrl>http://piwik.org/faq/general/#faq_52</providerUrl>
+		<providerUrl />
 		<referrerType>direct</referrerType>
 		<referrerTypeName>Direct Entry</referrerTypeName>
 		<referrerName />
@@ -147,7 +147,7 @@
 		<events>0</events>
 		<provider>Unknown</provider>
 		<providerName>Unknown</providerName>
-		<providerUrl>http://piwik.org/faq/general/#faq_52</providerUrl>
+		<providerUrl />
 		<referrerType>direct</referrerType>
 		<referrerTypeName>Direct Entry</referrerTypeName>
 		<referrerName />
diff --git a/plugins/Contents/tests/System/expected/test_Contents_contentTargetMatch__Live.getLastVisitsDetails_day.xml b/plugins/Contents/tests/System/expected/test_Contents_contentTargetMatch__Live.getLastVisitsDetails_day.xml
index 989f816722569544d52920872adc903958cc58b6..241be92f2f671b20a1a002a0db47fdc1080fc63f 100644
--- a/plugins/Contents/tests/System/expected/test_Contents_contentTargetMatch__Live.getLastVisitsDetails_day.xml
+++ b/plugins/Contents/tests/System/expected/test_Contents_contentTargetMatch__Live.getLastVisitsDetails_day.xml
@@ -47,7 +47,7 @@
 		<events>0</events>
 		<provider>Unknown</provider>
 		<providerName>Unknown</providerName>
-		<providerUrl>http://piwik.org/faq/general/#faq_52</providerUrl>
+		<providerUrl />
 		<referrerType>direct</referrerType>
 		<referrerTypeName>Direct Entry</referrerTypeName>
 		<referrerName />
@@ -147,7 +147,7 @@
 		<events>0</events>
 		<provider>Unknown</provider>
 		<providerName>Unknown</providerName>
-		<providerUrl>http://piwik.org/faq/general/#faq_52</providerUrl>
+		<providerUrl />
 		<referrerType>direct</referrerType>
 		<referrerTypeName>Direct Entry</referrerTypeName>
 		<referrerName />
diff --git a/plugins/Contents/tests/System/expected/test_ContentscontentNameOrPieceMatch__Live.getLastVisitsDetails_day.xml b/plugins/Contents/tests/System/expected/test_ContentscontentNameOrPieceMatch__Live.getLastVisitsDetails_day.xml
index 989f816722569544d52920872adc903958cc58b6..241be92f2f671b20a1a002a0db47fdc1080fc63f 100644
--- a/plugins/Contents/tests/System/expected/test_ContentscontentNameOrPieceMatch__Live.getLastVisitsDetails_day.xml
+++ b/plugins/Contents/tests/System/expected/test_ContentscontentNameOrPieceMatch__Live.getLastVisitsDetails_day.xml
@@ -47,7 +47,7 @@
 		<events>0</events>
 		<provider>Unknown</provider>
 		<providerName>Unknown</providerName>
-		<providerUrl>http://piwik.org/faq/general/#faq_52</providerUrl>
+		<providerUrl />
 		<referrerType>direct</referrerType>
 		<referrerTypeName>Direct Entry</referrerTypeName>
 		<referrerName />
@@ -147,7 +147,7 @@
 		<events>0</events>
 		<provider>Unknown</provider>
 		<providerName>Unknown</providerName>
-		<providerUrl>http://piwik.org/faq/general/#faq_52</providerUrl>
+		<providerUrl />
 		<referrerType>direct</referrerType>
 		<referrerTypeName>Direct Entry</referrerTypeName>
 		<referrerName />
diff --git a/plugins/CoreAdminHome/Commands/RunScheduledTasks.php b/plugins/CoreAdminHome/Commands/RunScheduledTasks.php
index 3dbccfdc2dcfea87276f18913e492fae65b60325..1e73c1d6268624a5d4f6876b958ddb4218fe43d4 100644
--- a/plugins/CoreAdminHome/Commands/RunScheduledTasks.php
+++ b/plugins/CoreAdminHome/Commands/RunScheduledTasks.php
@@ -23,7 +23,6 @@ class RunScheduledTasks extends ConsoleCommand
         $this->setName('core:run-scheduled-tasks');
         $this->setDescription('Will run all scheduled tasks due to run at this time.');
         $this->addOption('force', null, InputOption::VALUE_NONE, 'If set, it will execute all tasks even the ones not due to run at this time.');
-        $this->addOption('token-auth', null, InputOption::VALUE_REQUIRED, 'The API token of a user that has super user access, see http://piwik.org/faq/general/#faq_114');
     }
 
     /**
@@ -31,41 +30,20 @@ class RunScheduledTasks extends ConsoleCommand
      */
     protected function execute(InputInterface $input, OutputInterface $output)
     {
-        $_GET['token_auth'] = $this->askForTokenAuth($input, $output);
         $this->forceRunAllTasksIfRequested($input);
 
         FrontController::getInstance()->init();
-        API::getInstance()->runScheduledTasks();
-
-        $this->writeSuccessMessage($output, array('Scheduled Tasks executed'));
-    }
-
-    /**
-     * @param InputInterface $input
-     * @param OutputInterface $output
-     * @return string
-     * @throws \RuntimeException
-     */
-    private function askForTokenAuth(InputInterface $input, OutputInterface $output)
-    {
-        $validate = function ($tokenAuth) {
-            if (empty($tokenAuth)) {
-                throw new \InvalidArgumentException('You have to specify a token_auth');
-            }
-
-            return $tokenAuth;
-        };
-
-        $tokenAuth = $input->getOption('token-auth');
-
-        if (empty($tokenAuth)) {
-            $dialog    = $this->getHelperSet()->get('dialog');
-            $tokenAuth = $dialog->askAndValidate($output, 'Enter the token_auth of a user having super user access: ', $validate);
-        } else {
-            $validate($tokenAuth);
+        $scheduledTasksResults = API::getInstance()->runScheduledTasks();
+
+        foreach ($scheduledTasksResults as $scheduledTasksResult) {
+            $output->writeln(sprintf(
+                '<comment>%s</comment> - %s',
+                $scheduledTasksResult['task'],
+                $scheduledTasksResult['output']
+            ));
         }
 
-        return $tokenAuth;
+        $this->writeSuccessMessage($output, array('Scheduled Tasks executed'));
     }
 
     private function forceRunAllTasksIfRequested(InputInterface $input)
@@ -76,4 +54,4 @@ class RunScheduledTasks extends ConsoleCommand
             $GLOBALS['PIWIK_TRACKER_DEBUG_FORCE_SCHEDULED_TASKS'] = true;
         }
     }
-}
+}
\ No newline at end of file
diff --git a/plugins/CoreAdminHome/lang/es.json b/plugins/CoreAdminHome/lang/es.json
index 2df924f2183fabc743dd117bd8ad04dd5e5c380c..6b034059f4e4c0e58ddd22e528b0cf184da22a60 100644
--- a/plugins/CoreAdminHome/lang/es.json
+++ b/plugins/CoreAdminHome/lang/es.json
@@ -10,6 +10,8 @@
         "CustomLogoHelpText": "Puede personalizar el logo de Piwik que será mostrado en la interfaz de usuario y los reportes por email.",
         "DevelopmentProcess": "Mientras que nuestro %sproceso de desarrollo%s incluye miles de pruebas automatizadas, Beta Testers juegan un papel clave en el logro de la \"política de no error\" en Piwik.",
         "EmailServerSettings": "Configuración del servidor de email",
+        "FaviconUpload": "Selecciona un Favicon para subir",
+        "FileUploadDisabled": "La subida de archivos no está habilitada en tu configuración de PHP. Para subir tu logo personalizado por favor pon %s en php.ini y reinicia tu servidor web.",
         "ForBetaTestersOnly": "Para betatesters sólo",
         "ImageTracking": "Seguimiento mediante Imagen",
         "ImageTrackingIntro1": "Cuando un visitante se ha inhabilitado JavaScript o JavaScript que no se puede utilizar, puede utilizar un vínculo de seguimiento en la imagen para rastrear a los visitantes.",
@@ -49,6 +51,7 @@
         "LogoNotWriteableInstruction": "Para utilizar tu logo personalizado en lugar del logo estándar de Piwik puedes conceder permisos de escritura a este directorio: %1$s Piwik necesita el permiso de escritura para sus logos salvados en los archivos %2$s.",
         "LogoUpload": "Seleccione un logo para subir",
         "LogoUploadHelp": "Sube un archivo en formato %s con un alto mínimo de %s píxeles.",
+        "MenuDevelopment": "Desarrollo",
         "MenuDiagnostic": "diagnóstico",
         "MenuGeneralSettings": "Configuración General",
         "MenuManage": "gestionar",
@@ -60,6 +63,7 @@
         "PiwikIsInstalledAt": "Piwik está instalado en",
         "PluginDescription": "Área de Administración de Piwik",
         "PluginSettingChangeNotAllowed": "No está permitido cambiar el valor de configuración \"%s\" en el plugin \"%s\"",
+        "PluginSettingReadNotAllowed": "No está permitido que leas el valor de la opción \"%s\" en el plugin \"%s\"",
         "PluginSettings": "Configuración del plugin",
         "PluginSettingsIntro": "Aquí puedes cambiar la configuración de los siguientes plugins de terceros:",
         "PluginSettingsValueNotAllowed": "El valor del campo \"%s\" del plugin \"%s\" no es permitido.",
diff --git a/plugins/CoreAdminHome/lang/pt.json b/plugins/CoreAdminHome/lang/pt.json
index 95e90e281cc649042dd3215ef44a12a19394f727..a85b4e6d36226ffe509acf5358e536654cc211fd 100644
--- a/plugins/CoreAdminHome/lang/pt.json
+++ b/plugins/CoreAdminHome/lang/pt.json
@@ -1,19 +1,47 @@
 {
     "CoreAdminHome": {
         "Administration": "Administração",
+        "ArchivingSettings": "A arquivar definições",
         "BrandingSettings": "Definições de Marca",
+        "CheckReleaseGetVersion": "Ao procurar por novas versões do Piwik, obter sempre",
         "ClickHereToOptIn": "Clique aqui para fazer opt-in.",
         "ClickHereToOptOut": "Clique aqui para fazer opt-out.",
         "CustomLogoHelpText": "Você pode personalizar o logotipo Piwik que será exibido na interface do utilizador e relatórios de e-mail.",
         "EmailServerSettings": "Definições do servidor de email",
+        "FaviconUpload": "Selecione um Favicon para carregar",
+        "FileUploadDisabled": "Carregar ficheiros não se encontra ativo nas sua configuração PHP. Para carregar o seu logótipo personalizado por favor defina %s em php.ini e reinicie o seu servidor.",
+        "ForBetaTestersOnly": "Para testadores de versões beta apenas",
+        "ImportingServerLogs": "A Importar Relatórios de Servidor",
+        "InvalidPluginsWarning": "Os seguintes plugins não são compatíveis com %1$s e não puderam ser carregados: %2$s.",
+        "JSTracking_CampaignKwdParam": "Parâmetro da Palavra Chave da Campanha",
+        "JSTracking_CodeNote": "Certifique-se que este código se encontra em todas as páginas do seu sítio de internet antes da etiqueta %1$s.",
+        "JSTracking_EnableDoNotTrack": "Ativar deteção NãoSeguir do lado do cliente",
+        "JSTracking_MergeSubdomains": "Seguir visitantes através todos os subdomínios de",
+        "JSTracking_PageCustomVars": "Siga uma variável personalizada para cada visualização de página",
+        "JSTracking_PageCustomVarsDesc": "Por exemplo, com nome de variável \"Categoria\" e valor \"Documentos Brancos\".",
+        "JSTracking_VisitorCustomVars": "Siga variáveis personalizadas para este visitante.",
+        "JSTracking_VisitorCustomVarsDesc": "Por exemplo, com nome de variável \"Tipo\" e valor \"Cliente\".",
+        "LatestBetaRelease": "A mais recente publicação beta",
+        "LatestStableRelease": "A mais recente versão estável",
         "LogoUpload": "Selecione um logo para fazer upload",
+        "MenuDevelopment": "Desenvolvimento",
         "MenuGeneralSettings": "Definições gerais",
+        "MenuManage": "Gerir",
         "OptOutComplete": "Opt-out completo; as suas visitas a este site não serão gravadas pela ferramenta de Web Analytics.",
         "OptOutCompleteBis": "Note que se você apagar os cookies, apagar o cookie de opt-out, ou se você mudar de computador ou navegadores Web, vai precisar de realizar o procedimento de opt-out novamente.",
         "OptOutExplanation": "O Piwik é dedicado a fornecer privacidade na Internet. Para apresentar aos seus visitantes a escolha de opting-out da Web Analytics Piwik, você pode adicionar o seguinte código HTML em uma das páginas do seu site, por exemplo, numa página de Política de Privacidade.",
         "OptOutExplanationBis": "Este código irá exibir um iFrame contendo um link para que seus visitantes possam fazer opt-out do Piwik definindo um cookie de opt-out nos navegadores do utilizador. %s Clique aqui%s para ver o conteúdo que será exibido pelo iFrame.",
         "OptOutForYourVisitors": "opt-out do Piwik para os seus visitantes",
+        "PiwikIsInstalledAt": "Piwik encontra-se instalado em",
         "PluginDescription": "Área de administração de Piwik.",
+        "PluginSettingChangeNotAllowed": "Não lhe é permitido alterar o valor da definição \"%s\" no plugin \"%s\"",
+        "PluginSettingReadNotAllowed": "Não lhe é permitido ler o valor da definição \"%s\" no plugin \"%s\"",
+        "PluginSettings": "Definições de Plugin",
+        "PluginSettingsIntro": "Aqui pode alterar as definições dos seguintes plugins de terceiros:",
+        "PluginSettingsValueNotAllowed": "O valor para o campo \"%s\" no plugin \"%s\" não é permitido",
+        "SendPluginUpdateCommunication": "Envie-me uma notificação para o correio eletrónico quando existir uma nova atualização para um plugin",
+        "SendPluginUpdateCommunicationHelp": "Será enviado correio eletrónico para os Super Utilizadores quando existir uma nova versão disponível para um plugin.",
+        "StableReleases": "Se o Piwik é uma parte crítica do seu negócio, recomendamos que utilize a versão estável mais recente. Se você usa a mais recente versão beta e julga que encontrou um erro ou possui uma sugestão, por favor %sveja aqui%s.",
         "UseCustomLogo": "Use um logo personalizado.",
         "YouAreOptedIn": "Actualmente está activa a opção opt-in",
         "YouAreOptedOut": "Actualmente está activa a opção opt-out",
diff --git a/plugins/CoreAdminHome/stylesheets/generalSettings.less b/plugins/CoreAdminHome/stylesheets/generalSettings.less
index 2a056e070db199345d90d39c7b5c661431eda583..f4af53c9018ebe6b9c3574ee47b05f5668e85c16 100644
--- a/plugins/CoreAdminHome/stylesheets/generalSettings.less
+++ b/plugins/CoreAdminHome/stylesheets/generalSettings.less
@@ -4,6 +4,7 @@
 
 .admin a {
     color: black;
+    text-decoration: underline;
 }
 
 #content.admin {
diff --git a/plugins/CoreConsole/Commands/ClearCaches.php b/plugins/CoreConsole/Commands/ClearCaches.php
index 35d96917066870442cb72e8cbc1e2952af41c741..13413c62b79e6a36605085a05e7b95701432cba7 100644
--- a/plugins/CoreConsole/Commands/ClearCaches.php
+++ b/plugins/CoreConsole/Commands/ClearCaches.php
@@ -30,6 +30,7 @@ class ClearCaches extends ConsoleCommand
      */
     protected function execute(InputInterface $input, OutputInterface $output)
     {
+        // Note: the logic for this command must be refactored in this helper function below.
         Filesystem::deleteAllCacheOnUpdate();
 
         $this->writeSuccessMessage($output, array('Caches cleared'));
diff --git a/plugins/CoreConsole/Commands/DevelopmentEnable.php b/plugins/CoreConsole/Commands/DevelopmentEnable.php
index 5ee80610d68852f5464906da3311a2b5ee4291c1..51ae722662dcfe47c02e11a29ac0cfc789b1580c 100644
--- a/plugins/CoreConsole/Commands/DevelopmentEnable.php
+++ b/plugins/CoreConsole/Commands/DevelopmentEnable.php
@@ -25,29 +25,23 @@ class DevelopmentEnable extends ConsoleCommand
         $this->setName('development:enable');
         $this->setAliases(array('development:disable'));
         $this->setDescription('Enable or disable development mode. See config/global.ini.php in section [Development] for more information');
-        $this->addOption('full', null, InputOption::VALUE_NONE, 'If set, it will enable/disable more developer options such as disable merged assets as well and not only the [Development:enabled] option.');
     }
 
     protected function execute(InputInterface $input, OutputInterface $output)
     {
         $commandName = $input->getFirstArgument();
         $enable      = (false !== strpos($commandName, 'enable'));
-        $full        = $input->getOption('full');
 
         $config      = Config::getInstance();
         $development = $config->Development;
 
         if ($enable) {
             $development['enabled'] = 1;
-            if ($full) {
-                $development['disable_merged_assets'] = 1;
-            }
+            $development['disable_merged_assets'] = 1;
             $message = 'Development mode enabled';
         } else {
             $development['enabled'] = 0;
-            if ($full) {
-                $development['disable_merged_assets'] = 0;
-            }
+            $development['disable_merged_assets'] = 0;
             $message = 'Development mode disabled';
         }
 
diff --git a/plugins/CoreConsole/Commands/DevelopmentSyncUITestScreenshots.php b/plugins/CoreConsole/Commands/DevelopmentSyncUITestScreenshots.php
index 593faf0f170875267b8f579b018d272718fb7e64..69f0ab46e4a5d7009462a47474f7f9d3b0a443ee 100644
--- a/plugins/CoreConsole/Commands/DevelopmentSyncUITestScreenshots.php
+++ b/plugins/CoreConsole/Commands/DevelopmentSyncUITestScreenshots.php
@@ -100,8 +100,8 @@ git commit -m'' # WRITE A COMMIT MESSAGE
 git push
 cd ..
 git add UI
-git commit -m'' #WRITE A COMMIT MESSAGE
 git pull
+git commit -m'' #WRITE A COMMIT MESSAGE
 git push";
         $output->writeln($commands);
     }
diff --git a/plugins/CoreHome/CoreHome.php b/plugins/CoreHome/CoreHome.php
index f833b1e5cc8c838359d499ce93022a0872caf606..a2f5195fa376a1a5d14e42621ddb98b43a8d48a6 100644
--- a/plugins/CoreHome/CoreHome.php
+++ b/plugins/CoreHome/CoreHome.php
@@ -153,6 +153,9 @@ class CoreHome extends \Piwik\Plugin
 
         $jsFiles[] = "plugins/CoreHome/angularjs/notification/notification.controller.js";
         $jsFiles[] = "plugins/CoreHome/angularjs/notification/notification.directive.js";
+
+        $jsFiles[] = "plugins/CoreHome/angularjs/ajax-form/ajax-form.controller.js";
+        $jsFiles[] = "plugins/CoreHome/angularjs/ajax-form/ajax-form.directive.js";
     }
 
     public function getClientSideTranslationKeys(&$translationKeys)
@@ -243,7 +246,9 @@ class CoreHome extends \Piwik\Plugin
         $translationKeys[] = 'General_Default';
         $translationKeys[] = 'General_LoadingData';
         $translationKeys[] = 'General_ErrorRequest';
+        $translationKeys[] = 'General_YourChangesHaveBeenSaved';
         $translationKeys[] = 'CoreHome_UndoPivotBySubtable';
         $translationKeys[] = 'CoreHome_PivotBySubtable';
+        $translationKeys[] = 'General_LearnMore';
     }
 }
diff --git a/plugins/CoreHome/angularjs/ajax-form/ajax-form.controller.js b/plugins/CoreHome/angularjs/ajax-form/ajax-form.controller.js
new file mode 100644
index 0000000000000000000000000000000000000000..4f6bd77d699a8d7e3f39977f708192c11bac6537
--- /dev/null
+++ b/plugins/CoreHome/angularjs/ajax-form/ajax-form.controller.js
@@ -0,0 +1,85 @@
+/*!
+ * Piwik - free/libre analytics platform
+ *
+ * @link http://piwik.org
+ * @license http://www.gnu.org/licenses/gpl-3.0.html GPL v3 or later
+ */
+(function () {
+    angular.module('piwikApp').controller('AjaxFormController', AjaxFormController);
+
+    AjaxFormController.$inject = ['piwikApi', '$filter'];
+
+    function AjaxFormController(piwikApi, $filter) {
+        var vm = this;
+
+        /**
+         * Set to non-null when a form submit request returns successfully. When successful, it will
+         * be the entire JSON parsed response of the request.
+         *
+         * @type {null|string}
+         */
+        vm.successfulPostResponse = null;
+
+        /**
+         * Set to non-null when a form submit request results in an error. When an error occurs,
+         * it will be set to the string error message.
+         *
+         * @type {null|string}
+         */
+        vm.errorPostResponse = null;
+
+        /**
+         * true if currently submitting a POST request, false if otherwise.
+         *
+         * @type {bool}
+         */
+        vm.isSubmitting = false;
+
+        vm.submitForm = submitForm;
+
+        /**
+         * Sends a POST to the configured API method.
+         */
+        function submitForm() {
+            var postParams;
+
+            vm.successfulPostResponse = null;
+            vm.errorPostResponse = null;
+
+            if (vm.sendJsonPayload) {
+                postParams = {data: JSON.stringify(vm.data)};
+            } else {
+                postParams = vm.data;
+            }
+
+            vm.isSubmitting = true;
+            piwikApi.post(
+                { // GET params
+                    module: 'API',
+                    method: vm.submitApiMethod
+                },
+                postParams,
+                { // request options
+                    createErrorNotification: !vm.noErrorNotification
+                }
+            ).then(function (response) {
+                vm.successResponse = response;
+
+                if (!vm.noSuccessNotification) {
+                    var UI = require('piwik/UI');
+                    var notification = new UI.Notification();
+                    notification.show($filter('translate')('General_YourChangesHaveBeenSaved'), {
+                        context: 'success',
+                        type: 'toast',
+                        id: 'ajaxHelper'
+                    });
+                    notification.scrollToNotification();
+                }
+            }).catch(function (errorMessage) {
+                vm.errorPostResponse = errorMessage;
+            })['finally'](function () {
+                vm.isSubmitting = false;
+            });
+        }
+    }
+})();
\ No newline at end of file
diff --git a/plugins/CoreHome/angularjs/ajax-form/ajax-form.directive.js b/plugins/CoreHome/angularjs/ajax-form/ajax-form.directive.js
new file mode 100644
index 0000000000000000000000000000000000000000..89d572cedf2681ee98529c9686f9913101ce5a47
--- /dev/null
+++ b/plugins/CoreHome/angularjs/ajax-form/ajax-form.directive.js
@@ -0,0 +1,142 @@
+/*!
+ * Piwik - free/libre analytics platform
+ *
+ * @link http://piwik.org
+ * @license http://www.gnu.org/licenses/gpl-3.0.html GPL v3 or later
+ */
+
+/**
+ * AngularJS directive that manages an AJAX form.
+ *
+ * This directive will detect inputs & selects defined within an element and when a
+ * submit button is clicked, will post data from the inputs & selects to a Piwik API method.
+ *
+ * When the POST request is finished the result will, by default, be displayed as a
+ * notification.
+ *
+ * This directive accepts the following attributes:
+ *
+ * - **save-api-method**: **required** The Piwik API method that handles the POST request.
+ * - **send-json-payload**: Whether to send the data as a form encoded URL or to send it as JSON.
+ *                          If sending as JSON, the payload will still be a form encoded value,
+ *                          but will contain a JSON object like `{data: {...form data...}}`.
+ *
+ *                          This is for forms with lots of fields where having the same number
+ *                          of parameters in an API method would not be desired.
+ * - **no-error-notification**: If true, does not display an error notification if the AJAX post
+ *                              fails.
+ * - **no-success-notification**: If true, does not display an error notification if the AJAX
+ *                                results in success.
+ *
+ * **Custom Success/Error Handling**
+ *
+ * On success/failure, the response will be stored in controller scope. Child elements of a
+ * piwik-ajax-form element can access this data, and thus, can customize what happens when
+ * a form submit succeeds/fails.
+ *
+ * See the ajax-form.controller.js file for more info.
+ *
+ * Usage:
+ *
+ *     <div piwik-ajax-form
+ *          save-api-method="'MyPlugin.myFormSaveMethod'"
+ *          send-json-payload="true"
+ *          ng-model="myFormData">
+ *
+ *          <h2>My Form</h2>
+ *          <input name="myOption" value="myDefaultValue" type="text" />
+ *          <input name="myOtherOption" type="checkbox" checked="checked" />
+ *          <input type="submit" value="Submit" ng-disabled="ajaxForm.isSubmitting" />
+ *
+ *          <div piwik-notification context='error' ng-show="errorPostResponse">ERROR!</div>
+ *     </div>
+ */
+(function () {
+    angular.module('piwikApp').directive('piwikAjaxForm', piwikAjaxForm);
+
+    piwikAjaxForm.$inject = ['$parse'];
+
+    function piwikAjaxForm($parse) {
+        return {
+            restrict: 'A',
+            scope: {
+                submitApiMethod: '=',
+                sendJsonPayload: '=',
+                noErrorNotification: '=',
+                noSuccessNotification: '=',
+                useCustomDataBinding: '='
+            },
+            require: '?ngModel',
+            controller: 'AjaxFormController',
+            controllerAs: 'ajaxForm',
+            transclude: true,
+            compile: function (element, attrs) {
+                attrs.noErrorNotification = !! attrs.noErrorNotification;
+
+                return function (scope, element, attrs, ngModel, transclude) {
+                    if (!scope.submitApiMethod) {
+                        throw new Error("submitApiMethod is required");
+                    }
+
+                    scope.ajaxForm.submitApiMethod = scope.submitApiMethod;
+                    scope.ajaxForm.sendJsonPayload = scope.sendJsonPayload;
+                    scope.ajaxForm.noErrorNotification = scope.noErrorNotification;
+                    scope.ajaxForm.noSuccessNotification = scope.noSuccessNotification;
+
+                    scope.ajaxForm.data = {};
+
+                    // if a model is supplied, initiate form data w/ model value
+                    if (ngModel) {
+                        var ngModelGetter = $parse(attrs.ngModel); // probably redundant, but I cannot find another way to
+                                                                   // get the ng model value here
+                        scope.ajaxForm.data = ngModelGetter(scope.$parent);
+                    }
+
+                    // on change of any input, change appropriate value in model, but only if requested
+                    if (!scope.useCustomDataBinding) {
+                        element.on('change', 'input,select', function () {
+                            setFormValueFromInput(this);
+                        });
+                    }
+
+                    // on submit call controller submit method
+                    element.on('click', 'input[type=submit]', function () {
+                        scope.ajaxForm.submitForm();
+                    });
+
+                    // make sure child elements can access this directive's scope
+                    transclude(scope, function(clone, scope) {
+                        if (!scope.useCustomDataBinding) {
+                            var $inputs = clone.find('input,select').not('[type=submit]');
+
+                            // initialize form data to input values (include <select>s
+                            $inputs.each(function () {
+                                setFormValueFromInput(this, true);
+                            });
+                        }
+
+                        element.append(clone);
+                    });
+
+                    function setFormValueFromInput(inputElement, skipScopeApply) {
+                        var $ = angular.element,
+                            name = $(inputElement).attr('name'),
+                            val;
+
+                        if ($(inputElement).attr('type') == 'checkbox') {
+                            val = $(inputElement).is(':checked');
+                        } else {
+                            val = $(inputElement).val();
+                        }
+
+                        scope.ajaxForm.data[name] = val;
+
+                        if (!skipScopeApply) {
+                            scope.$apply();
+                        }
+                    }
+                };
+            }
+        };
+    }
+})();
\ No newline at end of file
diff --git a/plugins/CoreHome/javascripts/dataTable.js b/plugins/CoreHome/javascripts/dataTable.js
index 205ec70023d0f21251c8c19e152ed75a68a8f50d..a65ffd851997c853059d0c18b9f1cf92adb12174 100644
--- a/plugins/CoreHome/javascripts/dataTable.js
+++ b/plugins/CoreHome/javascripts/dataTable.js
@@ -312,6 +312,7 @@ $.extend(DataTable.prototype, UIControl.prototype, {
         self.handleColumnHighlighting(domElem);
         self.handleExpandFooter(domElem);
         self.setFixWidthToMakeEllipsisWork(domElem);
+        self.handleSummaryRow(domElem);
     },
 
     setFixWidthToMakeEllipsisWork: function (domElem) {
@@ -1700,6 +1701,22 @@ $.extend(DataTable.prototype, UIControl.prototype, {
         });
     },
 
+    handleSummaryRow: function (domElem) {
+        var details = _pk_translate('General_LearnMore', [' (<a href="http://piwik.org/faq/how-to/faq_54/" target="_blank">', '</a>)']);
+
+        domElem.find('tr.summaryRow').each(function () {
+            var labelSpan = $(this).find('.label .value');
+            var defaultLabel = labelSpan.text();
+
+            $(this).hover(function() {
+                    labelSpan.html(defaultLabel + details);
+                },
+                function() {
+                    labelSpan.text(defaultLabel);
+                });
+        });
+    },
+
     // also used in action data table
     doHandleRowActions: function (trs) {
         var self = this;
diff --git a/plugins/CoreHome/lang/cs.json b/plugins/CoreHome/lang/cs.json
index 7a4067cc403a5a707a0925d71cde33a8e1aec290..70341bdd0f373c922fb03643cd2d2df24d868ff6 100644
--- a/plugins/CoreHome/lang/cs.json
+++ b/plugins/CoreHome/lang/cs.json
@@ -39,6 +39,7 @@
         "PeriodWeeks": "týdnů",
         "PeriodYear": "Rok",
         "PeriodYears": "let",
+        "PivotBySubtable": "Toto hlášení není zaměřené %s Zaměřit na %s",
         "PluginDescription": "Struktura hlášení",
         "ReportGeneratedOn": "Hlášení vygenerované %s",
         "ReportGeneratedXAgo": "Hlášení vygenerováno před %s",
@@ -54,6 +55,7 @@
         "SupportPiwik": "Podpořte Piwik!",
         "TableNoData": "Žádná data",
         "ThereIsNoDataForThisReport": "Pro toto hlášení nejsou k dispozici žádná data",
+        "UndoPivotBySubtable": "Toto hlášení bylo zaměřeno %s Vrátit zpět",
         "UnFlattenDataTable": "Hlášení je ploché %s Vytvořit hierarchický",
         "ViewAllPiwikVideoTutorials": "Zobrazit všechny návody Piwik",
         "WebAnalyticsReports": "Hlášení",
diff --git a/plugins/CoreHome/lang/da.json b/plugins/CoreHome/lang/da.json
index f19966cd1daf9a698762ee575c55a7011618ace0..e62b9fd950a56361312e09d096a142d9dfc2bbb8 100644
--- a/plugins/CoreHome/lang/da.json
+++ b/plugins/CoreHome/lang/da.json
@@ -41,6 +41,7 @@
         "PeriodWeeks": "uger",
         "PeriodYear": "Ã…r",
         "PeriodYears": "Ã¥r",
+        "PivotBySubtable": "Rapporten er ikke pivoteret %s Pivoter med %s.",
         "PluginDescription": "Struktur for webanalyse-rapporter.",
         "ReportGeneratedOn": "Rapport genereret på %s",
         "ReportGeneratedXAgo": "Rapport genereret %s siden",
@@ -56,6 +57,7 @@
         "SupportPiwik": "Støt Piwik!",
         "TableNoData": "Ingen data til denne tabel.",
         "ThereIsNoDataForThisReport": "Der er ingen data for denne rapport.",
+        "UndoPivotBySubtable": "Rapporten er blevet pivoteret %s Fortryd pivot.",
         "UnFlattenDataTable": "Rapporten er ikke hierarkisk %s lav den hierakisk",
         "ViewAllPiwikVideoTutorials": "Vis alle Piwik videoselvstudier",
         "WebAnalyticsReports": "Webanalyse-rapporter",
diff --git a/plugins/CoreHome/lang/de.json b/plugins/CoreHome/lang/de.json
index 90a7cb7f41728027ba2637e863a85e990f598bc4..24ca6e25a1742c7324f6ad702668fb7c6b37248f 100644
--- a/plugins/CoreHome/lang/de.json
+++ b/plugins/CoreHome/lang/de.json
@@ -41,6 +41,7 @@
         "PeriodWeeks": "Wochen",
         "PeriodYear": "Jahr",
         "PeriodYears": "Jahre",
+        "PivotBySubtable": "Kein Pivot erstellt für diesen Bericht %s Pivot erstellen mit %s",
         "PluginDescription": "Webanalytik Berichts-Struktur",
         "ReportGeneratedOn": "Bericht erzeugt am %s",
         "ReportGeneratedXAgo": "Bericht erzeugt vor %s",
@@ -56,6 +57,7 @@
         "SupportPiwik": "Unterstützen Sie Piwik!",
         "TableNoData": "Keine Daten für diese Tabelle.",
         "ThereIsNoDataForThisReport": "Es stehen keine Daten für diesen Bericht zur Verfügung.",
+        "UndoPivotBySubtable": "Pivot erstellt für diesen Bericht %s Pivot rückgängig machen",
         "UnFlattenDataTable": "Der Bericht ist flach %s Hierarchisch anzeigen",
         "ViewAllPiwikVideoTutorials": "Zeige alle Piwik Video Tutorials an",
         "WebAnalyticsReports": "Webanalytik Berichte",
diff --git a/plugins/CoreHome/lang/el.json b/plugins/CoreHome/lang/el.json
index edbac45aec7ef93c53f327cec058582ac5145fcb..3251141515d8aa20f15ba70c25fbd630780c35c4 100644
--- a/plugins/CoreHome/lang/el.json
+++ b/plugins/CoreHome/lang/el.json
@@ -41,6 +41,7 @@
         "PeriodWeeks": "εβδομάδων",
         "PeriodYear": "Έτος",
         "PeriodYears": "ετών",
+        "PivotBySubtable": "Η αναφορά αυτή δεν είναι θεμελιωμένη %s Να θεμελιωθεί από %s",
         "PluginDescription": "Δομή Αναφορών Ανάλυσης Ιστού.",
         "ReportGeneratedOn": "Η αναφορά δημιουργήθηκε στις %s",
         "ReportGeneratedXAgo": "Η αναφορά δημιουργήθηκε πριν από %s",
@@ -56,6 +57,7 @@
         "SupportPiwik": "Στηρίξτε το Piwik!",
         "TableNoData": "Δεν υπάρχουν δεδομένα για τον πίνακα.",
         "ThereIsNoDataForThisReport": "Δεν υπάρχουν δεδομένα για αυτή την αναφορά.",
+        "UndoPivotBySubtable": "Η αναφορά θεμελιώθηκε %s Αναίρεση της θεμελίωσης",
         "UnFlattenDataTable": "Η αναφορά είναι επίπεδη %s Κάντε την ιεραρχημένη",
         "ViewAllPiwikVideoTutorials": "Δείτε όλα τα βίντεο εκμάθησης του Piwik",
         "WebAnalyticsReports": "Αναφορές Στατιστικών Ιστού",
diff --git a/plugins/CoreHome/lang/et.json b/plugins/CoreHome/lang/et.json
index 41bcc820ed6dc2fb5c66ea0d91fbdc5e2ba32047..a91581a1afce3aec53972d5454e4993e6f634e34 100644
--- a/plugins/CoreHome/lang/et.json
+++ b/plugins/CoreHome/lang/et.json
@@ -7,6 +7,7 @@
         "DateFormat": "%longDay% %day% %longMonth% %longYear%",
         "Default": "vaikimisi",
         "ExcludeRowsWithLowPopulation": "Kuvatakse kõiki ridu %s Eemalda ebapopulaarsemad",
+        "ExternalHelp": "Abi (avaneb uues aknas)",
         "FlattenDataTable": "Antud raport on hierarhiline %s Tee see lamedaks",
         "HowMuchIsPiwikWorth": "Kui palju on Piwik sulle väärt?",
         "IncludeRowsWithLowPopulation": "Ebapopulaarsed read on peidetud %s Kuva kõik read",
diff --git a/plugins/CoreHome/lang/it.json b/plugins/CoreHome/lang/it.json
index 1e36eeb330a7695593f6014efceece56ab61c6fd..704abae33655be955730ead5ba97fb2b6d84f8fc 100644
--- a/plugins/CoreHome/lang/it.json
+++ b/plugins/CoreHome/lang/it.json
@@ -41,6 +41,7 @@
         "PeriodWeeks": "settimane",
         "PeriodYear": "Anno",
         "PeriodYears": "anni",
+        "PivotBySubtable": "Questo report non è imperniato al Pivot %s da %s",
         "PluginDescription": "Struttura di base per i report di Web Analytics.",
         "ReportGeneratedOn": "Report generato il %s",
         "ReportGeneratedXAgo": "Report generato %s fa",
@@ -56,6 +57,7 @@
         "SupportPiwik": "Sostieni Piwik!",
         "TableNoData": "nessun dato per questa tabella.",
         "ThereIsNoDataForThisReport": "Non c'è nessun dato in questo report.",
+        "UndoPivotBySubtable": "Questo report è stato imperniato al Pivot %s Undo",
         "UnFlattenDataTable": "Il report è piatto %s Rendilo gerarchico",
         "ViewAllPiwikVideoTutorials": "Vedi tutti i Video Tutorial di Piwik",
         "WebAnalyticsReports": "Report Web Analytics",
diff --git a/plugins/CoreHome/lang/pt.json b/plugins/CoreHome/lang/pt.json
index fbb65ea1c1e703fc18b8b776ad37b8eb6d3fbcb8..e111bdcb06de454f1f7ae42c59d140523bb61653 100644
--- a/plugins/CoreHome/lang/pt.json
+++ b/plugins/CoreHome/lang/pt.json
@@ -1,6 +1,12 @@
 {
     "CoreHome": {
         "CategoryNoData": "Sem dados nesta categoria. Tente o \"Incluir toda a população\".",
+        "DataTableExcludeAggregateRows": "Linhas agregadas encontram-se visíveis %s Esconda-as",
+        "DataTableIncludeAggregateRows": "Linhas agregadas encontram-se escondidas %s Mostre-as",
+        "Default": "defeito",
+        "DonateCall1": "O Piwik nunca lhe custará nada para usar, mas isso não quer dizer que não nos custe nada para o criar.",
+        "DonateCall2": "O Piwik presisa do seu contínuo suporte para crescer e brilhar.",
+        "DonateCall3": "Se você sente que o Piwik adicionou um valor significante ao seu negócio, %1$spor favor considere realizar um donativo!%2$s",
         "JavascriptDisabled": "JavaScript tem que estar activado para poder usar Piwik no esquema padrão.<br \/>No entanto, parece que JavaScript está desactivado ou não é suportado pelo seu navegador.<br \/>Para usar o esquema padrão, active JavaScript nas opções do seu navegador, depois %1$stente de novo%2$s.<br \/>",
         "PageOf": "%1$s de %2$s",
         "PeriodDay": "Dia",
diff --git a/plugins/CoreUpdater/Commands/Update.php b/plugins/CoreUpdater/Commands/Update.php
index 108281c4607520a7d1e5297f26e8a2629d3d9b98..900de31a3d9e5878d5c5f7bacd8c0cbfa18ae796 100644
--- a/plugins/CoreUpdater/Commands/Update.php
+++ b/plugins/CoreUpdater/Commands/Update.php
@@ -8,6 +8,7 @@
  */
 namespace Piwik\Plugins\CoreUpdater\Commands;
 
+use Piwik\Filesystem;
 use Piwik\Plugin\ConsoleCommand;
 use Piwik\Plugins\CoreUpdater\Controller;
 use Piwik\Plugins\CoreUpdater\NoUpdatesFoundException;
@@ -35,6 +36,8 @@ class Update extends ConsoleCommand
      */
     protected function execute(InputInterface $input, OutputInterface $output)
     {
+        $this->executeClearCaches();
+
         $doDryRun = (bool) $input->getOption('dry-run');
 
         try {
@@ -54,6 +57,11 @@ class Update extends ConsoleCommand
         }
     }
 
+    protected function executeClearCaches()
+    {
+        Filesystem::deleteAllCacheOnUpdate();
+    }
+
     protected function makeUpdate(InputInterface $input, OutputInterface $output, $doDryRun)
     {
         $this->checkAllRequiredOptionsAreNotEmpty($input);
diff --git a/plugins/CoreUpdater/lang/es.json b/plugins/CoreUpdater/lang/es.json
index 0a71529f2c6b0e25b677d5e4b2d965b1cf1dd308..b3210a311bad791489cf555afb2bc090ac06e101 100644
--- a/plugins/CoreUpdater/lang/es.json
+++ b/plugins/CoreUpdater/lang/es.json
@@ -38,7 +38,7 @@
         "PiwikUpdatedSuccessfully": "¡Piwik actualizado con éxito!",
         "PiwikWillBeUpgradedFromVersionXToVersionY": "La base de datos de Piwik será actualizada desde la versión %1$s a la nueva versión %2$s.",
         "PluginDescription": "mecanismo de actualización de Piwik",
-        "ReadyToGo": "Listo?",
+        "ReadyToGo": "¿Listo?",
         "TheFollowingPluginsWillBeUpgradedX": "Los siguientes plugins serán actualizados: %s.",
         "ThereIsNewPluginVersionAvailableForUpdate": "Algunos plugins que utilizas han sido actualizados en el Marketplace:",
         "ThereIsNewVersionAvailableForUpdate": "Hay una nueva versión de Piwik disponible para actualizar",
diff --git a/plugins/CoreVisualizations/templates/_dataTableViz_htmlTable.twig b/plugins/CoreVisualizations/templates/_dataTableViz_htmlTable.twig
index 13c153f89c6be837ac203389b735be9f0419e62a..f6fe938c6a9b796a833f12573630a004bd790039 100644
--- a/plugins/CoreVisualizations/templates/_dataTableViz_htmlTable.twig
+++ b/plugins/CoreVisualizations/templates/_dataTableViz_htmlTable.twig
@@ -18,7 +18,8 @@
         {% else %}
             {%- for rowId, row in dataTable.getRows() -%}
                 {%- set rowHasSubtable = not subtablesAreDisabled and row.getIdSubDataTable() and properties.subtable_controller_action is not null -%}
-                {%- set shouldHighlightRow = rowId == constant('Piwik\\DataTable::ID_SUMMARY_ROW') and properties.highlight_summary_row -%}
+                {%- set isSummaryRow = rowId == constant('Piwik\\DataTable::ID_SUMMARY_ROW') -%}
+                {%- set shouldHighlightRow = isSummaryRow and properties.highlight_summary_row -%}
 
                 {# display this row if it doesn't have a subtable or if we don't replace the row with the subtable #}
                 {%- set showRow = subtablesAreDisabled
@@ -28,7 +29,7 @@
 
                 {% if showRow %}
                 <tr {% if rowHasSubtable %}id="{{ row.getIdSubDataTable() }}"{% endif %}
-                    class="{{ row.getMetadata('css_class') }} {% if rowHasSubtable %}subDataTable{% endif %}{% if shouldHighlightRow %} highlight{% endif %}"
+                    class="{{ row.getMetadata('css_class') }} {% if rowHasSubtable %}subDataTable{% endif %}{% if shouldHighlightRow %} highlight{% endif %}{% if isSummaryRow %} summaryRow{% endif %}"
                     {% if rowHasSubtable %}title="{{ 'CoreHome_ClickRowToExpandOrContract'|translate }}"{% endif %}>
                     {% for column in properties.columns_to_display %}
                         <td>
diff --git a/plugins/CustomVariables/tests/System/expected/test_CustomVariablesSystemTest__Live.getLastVisitsDetails_day.xml b/plugins/CustomVariables/tests/System/expected/test_CustomVariablesSystemTest__Live.getLastVisitsDetails_day.xml
index a61cb115544bbf3bd588842256ddde595e334c6e..a02dc66b3a8ff39d53c2480cdc1bf7e9f975cc29 100644
--- a/plugins/CustomVariables/tests/System/expected/test_CustomVariablesSystemTest__Live.getLastVisitsDetails_day.xml
+++ b/plugins/CustomVariables/tests/System/expected/test_CustomVariablesSystemTest__Live.getLastVisitsDetails_day.xml
@@ -120,7 +120,7 @@
 		<events>0</events>
 		<provider>Unknown</provider>
 		<providerName>Unknown</providerName>
-		<providerUrl>http://piwik.org/faq/general/#faq_52</providerUrl>
+		<providerUrl />
 		<referrerType>search</referrerType>
 		<referrerTypeName>Search Engines</referrerTypeName>
 		<referrerName>Google</referrerName>
diff --git a/plugins/CustomVariables/tests/System/processed/test_CustomVariablesIntegrationTest__Live.getLastVisitsDetails_day.xml b/plugins/CustomVariables/tests/System/processed/test_CustomVariablesIntegrationTest__Live.getLastVisitsDetails_day.xml
index a61cb115544bbf3bd588842256ddde595e334c6e..a02dc66b3a8ff39d53c2480cdc1bf7e9f975cc29 100644
--- a/plugins/CustomVariables/tests/System/processed/test_CustomVariablesIntegrationTest__Live.getLastVisitsDetails_day.xml
+++ b/plugins/CustomVariables/tests/System/processed/test_CustomVariablesIntegrationTest__Live.getLastVisitsDetails_day.xml
@@ -120,7 +120,7 @@
 		<events>0</events>
 		<provider>Unknown</provider>
 		<providerName>Unknown</providerName>
-		<providerUrl>http://piwik.org/faq/general/#faq_52</providerUrl>
+		<providerUrl />
 		<referrerType>search</referrerType>
 		<referrerTypeName>Search Engines</referrerTypeName>
 		<referrerName>Google</referrerName>
diff --git a/plugins/DevicesDetection/lang/de.json b/plugins/DevicesDetection/lang/de.json
index 431728a5bb51b56d6dd454ea91f35e9a85d460c3..34f16e573666eba96c8c0c932b0432afd8926e1c 100644
--- a/plugins/DevicesDetection/lang/de.json
+++ b/plugins/DevicesDetection/lang/de.json
@@ -16,8 +16,8 @@
         "DevicesDetection": "Geräte der Besucher",
         "DeviceType": "Gerätetyp",
         "FeaturePhone": "Feature-Phone",
-        "OperatingSystemFamilies": "Betriebssystem Familie",
-        "OperatingSystemVersions": "Betriebssystem Familien",
+        "OperatingSystemFamilies": "Betriebssystem Familien",
+        "OperatingSystemVersions": "Betriebssystem Versionen",
         "PluginDescription": "Dieses Plugin stellt erweiterte Informationen über mobile Geräte, wie Marke (Hersteller), Modell (Geräteversion), bessere Gerätetyperkennung (TV, Konsolen, Smartphones, Desktop, etc) und mehr bereit. Dieses Plugin fügt einen neuen Bericht unter 'Besucher > Geräte' hinzu.",
         "SmartDisplay": "Smart Display",
         "Smartphone": "Smartphone",
diff --git a/plugins/Events/lang/pl.json b/plugins/Events/lang/pl.json
index 24ff7eb98168fff13a1a551b38a2600c1d7723f4..9fc090435dee23b573a467ae9a73104cad71a77c 100644
--- a/plugins/Events/lang/pl.json
+++ b/plugins/Events/lang/pl.json
@@ -16,6 +16,7 @@
         "MaxValueDocumentation": "Maksymalna wartość dla tego zdarzenia",
         "MinValue": "Minimalna wartość",
         "MinValueDocumentation": "Minimalna wartość tego wydarzenia",
+        "SecondaryDimension": "Drugi wymiar to %s.",
         "TopEvents": "Najważniejsze wydarzenia",
         "TotalEvents": "Liczba zdarzeń",
         "TotalEventsDocumentation": "Łączna liczba zdarzeń",
diff --git a/plugins/Goals/lang/es.json b/plugins/Goals/lang/es.json
index 48d0d232388d95c29d8417d63e0eeb55cdfed6dd..bd78837b19828906191a0a98ec0e5276645455dd 100644
--- a/plugins/Goals/lang/es.json
+++ b/plugins/Goals/lang/es.json
@@ -10,6 +10,7 @@
         "BestKeywords": "Tus mejores palabras de búsqueda son:",
         "BestReferrers": "Tus mejores palabras de búsqueda son:",
         "CaseSensitive": "Coincidir mayúsculas y minúsculas",
+        "ChooseGoal": "Elegir Objetivo",
         "ClickOutlink": "Clic en un Enlace a un sitio web externo",
         "ColumnAverageOrderRevenueDocumentation": "Valor Medio del Pedido (VMP) es el valor obtenido dividiendo los ingresos totales de todos los pedidos entre el número de pedidos.",
         "ColumnAveragePriceDocumentation": "El promedio de ingresos para este %s.",
diff --git a/plugins/Goals/lang/et.json b/plugins/Goals/lang/et.json
index 1e015d9940f352588d604ac34ffc920a5e04055d..32a485f6630746fcbb064278ed7e49342ba3661c 100644
--- a/plugins/Goals/lang/et.json
+++ b/plugins/Goals/lang/et.json
@@ -10,6 +10,7 @@
         "BestKeywords": "Sinu parimad tulutoovad märksõnad on:",
         "BestReferrers": "Sinu parimad tulutoovad veebilehtede suunajad on:",
         "CaseSensitive": "Tähtede tõusutundlik võrdlus",
+        "ChooseGoal": "Vali eesmärk",
         "ClickOutlink": "Klikivad välise lehe lingile",
         "ColumnConversions": "Tulu tekitamised",
         "ColumnVisits": "Külastuste koguarv, hoolimata sellest, kas eesmärgini jõuti või ei.",
diff --git a/plugins/Goals/lang/ja.json b/plugins/Goals/lang/ja.json
index 6c7c37bd80571a27ffc6d84376784af0e463a0bb..71be9dc192e45fef2a8de138cf962df51d703344 100644
--- a/plugins/Goals/lang/ja.json
+++ b/plugins/Goals/lang/ja.json
@@ -65,7 +65,12 @@
         "Manually": "手動",
         "ManuallyTriggeredUsingJavascriptFunction": "JavaScript API の trackGoal() を使用した手動トリガー",
         "MatchesExpression": "正規表現 %s に一致する",
+        "NewGoalDescription": "Piwik での目標とは、あなたの戦略や優先事項のことです。例えば、以下を含みます。:「パンフレットのダウンロード」、「ニュースレターの登録」、「services.html ページへの訪問」等",
+        "NewGoalIntro": "目標コンバージョントラッキングは、あなたのビジネス目標の測定や改善のために、最も効率的な方法の一つです。",
+        "NewGoalYouWillBeAbleTo": "各目標に対するパフォーマンスの確認や分析を行い、コンバージョンやコンバージョンレート、訪問数あたりの収益を上げる方法を知ることができます。",
         "NewVisitorsConversionRateIs": "新規ビジターのコンバージョン率は %s です",
+        "NewWhatDoYouWantUsersToDo": "ウェブサイトビジターに、何をしてもらいたいですか?",
+        "NoGoalsNeedAccess": "管理者またはスーパーユーザーアクセス権限を持つユーザーのみが、指定のウェブサイトに目標を追加できます。ウェブサイトに目標を設定するには、Piwik 管理者にお問い合わせください。<br> 目標の追跡は、あなたのウェブサイトへの理解を深め、パフォーマンスを最大化させるために、非常に良い方法です。",
         "Optional": "(オプション)",
         "OverallConversionRate": "%s 総コンバージョン率(目標達成ビジット)",
         "OverallRevenue": "%s 総収益",
@@ -77,6 +82,7 @@
         "Products": "製品",
         "ProductSKU": "製品番号",
         "ReturningVisitorsConversionRateIs": "リピーターのコンバージョン率は %s です",
+        "SendEvent": "イベントを送信",
         "SingleGoalOverviewDocumentation": "これは単一の目標のコンバージョンの概観です。 %s グラフの下のスパークラインは、クリックして拡大できます。",
         "UpdateGoal": "目標を更新",
         "URL": "URL",
diff --git a/plugins/ImageGraph/lang/ja.json b/plugins/ImageGraph/lang/ja.json
index 6b3aad8c3d2924bf361bed3c218cd0dc8e1319c5..492ff339e0c7207ee3d2f2fa2da4756cf3c95969 100644
--- a/plugins/ImageGraph/lang/ja.json
+++ b/plugins/ImageGraph/lang/ja.json
@@ -1,5 +1,6 @@
 {
     "ImageGraph": {
+        "ColumnOrdinateMissing": "列 '%s' は、このレポートで見つかりませんでした。%s のいずれかをお試しください。",
         "PluginDescription": "Piwikリポートの美しい静的PNGグラフ画像を生成します。"
     }
 }
\ No newline at end of file
diff --git a/plugins/Insights/lang/et.json b/plugins/Insights/lang/et.json
new file mode 100644
index 0000000000000000000000000000000000000000..6a83802c174ad80518cf0f7cfe54d19fce2cdc3d
--- /dev/null
+++ b/plugins/Insights/lang/et.json
@@ -0,0 +1,5 @@
+{
+    "Insights": {
+        "Filter": "Filter"
+    }
+}
\ No newline at end of file
diff --git a/plugins/Insights/lang/ja.json b/plugins/Insights/lang/ja.json
index ce74cdcf84184409c3638ce0c162578a74fd030a..93d1bf23258a95776f041403c87e6eedef4ce522 100644
--- a/plugins/Insights/lang/ja.json
+++ b/plugins/Insights/lang/ja.json
@@ -1,6 +1,8 @@
 {
     "Insights": {
         "ControlComparedToDescription": "比較する実績値は",
+        "ControlFilterByDescription": "すべて、変動のみ、新規のみ、削除のみを表示",
+        "DatePeriodCombinationNotSupported": "この日付と期間の組み合わせに対するインサイトは作成できません。",
         "DayComparedToPreviousDay": "前の日",
         "DayComparedToPreviousWeek": "前週の同じ日",
         "DayComparedToPreviousYear": "去年の同じ日",
@@ -11,9 +13,17 @@
         "FilterOnlyIncreaser": "増加した値のみ",
         "FilterOnlyMovers": "変化のあった値のみ",
         "FilterOnlyNew": "新しい値のみ",
+        "IgnoredChanges": "訪問数 %s 未満の影響を及ぼす変更は無視されました。",
         "MonthComparedToPreviousMonth": "前の月",
         "MonthComparedToPreviousYear": "去年の同じ月",
+        "MoversAndShakersWidgetTitle": "変動レポート",
+        "NoResultMatchesCriteria": "基準に一致する列がありません。",
         "OverviewWidgetTitle": "インサイトの概要",
+        "TitleConsideredInsightsChanges": "列が少なくとも %1$s 訪問 ( 合計訪問数 %3$s の %2$s%% ) 増加または減少しました。",
+        "TitleConsideredInsightsGrowth": "次の列は %2$s に比べて少なくとも %1$s%% の成長があります。",
+        "TitleRowDisappearedDetails": "%2$s によって '%1$s' は減少し、%4$s に比べ、%3$s で消滅した",
+        "TitleRowMoverAndShaker": "この列は、平均より高い影響を与えました。",
+        "TitleRowNewDetails": "'%2$s によって '%1$s' が増加し、%3$s に比べて新しい",
         "WeekComparedToPreviousWeek": "前の週",
         "WidgetCategory": "インサイト",
         "YearComparedToPreviousYear": "前の年"
diff --git a/plugins/Installation/lang/es.json b/plugins/Installation/lang/es.json
index 74b759f55013bae23dcfebf0eac25077b16b68ac..84d8bec7e19ed2f413a469a4e3ee5dbaebedf126 100644
--- a/plugins/Installation/lang/es.json
+++ b/plugins/Installation/lang/es.json
@@ -1,5 +1,6 @@
 {
     "Installation": {
+        "CannotConnectToDb": "No se puedo conectar con la base de datos",
         "CollaborativeProject": "Piwik es un proyecto de colaboración, creado con amor por personas de todo el mundo",
         "ConfigurationHelp": "Su archivo de configuración de Piwik parece estar desconfigurado. Puede remover el archivo config\/config.ini.php y seguir la instalación, o corregir la configuración de conexión de la base de datos.",
         "ConfirmDeleteExistingTables": "¿Está seguro de que desea borrar las tablas: %s de su base de datos? ADVERTENCIA: ¡LOS DATOS DE ESTAS TABLAS NO SE PUEDEN RECUPERAR!",
@@ -34,6 +35,7 @@
         "NfsFilesystemWarningSuffixAdmin": "Esto significa que Piwik será extremadamente lento cuando se utilice sesiones basadas en archivos.",
         "NfsFilesystemWarningSuffixInstall": "Utilizando sesiones basadas en archivos sobre NFS es extremadamente lento, por lo tanto, Piwik utilizará sesiones basada en base de datos. Si tiene varios usuarios de panel, puede que necesite incrementar el número máximo de conexiones de clientes al servidor de la base de datos.",
         "NoConfigFound": "El archivo de configuración de Piwik no se ha encontrado y está intentando acceder a una página de Piwik.<br \/><b>  » Puede <a href='index.php'>instalar Piwik ahora<\/a><\/b><br \/><small>¡Si ha instalado Piwik antes y tiene algunas tablas en su BD, no se preocupe, usted puede reutilizar las mismas tablas y mantener sus datos existentes!<\/small>",
+        "NotSupported": "no soportado",
         "Optional": "Opcional",
         "Password": "Contraseña",
         "PasswordDoNotMatch": "las contraseñas no coinciden",
diff --git a/plugins/Installation/lang/ja.json b/plugins/Installation/lang/ja.json
index 51945d8fedd218fa033425523cfbe116aa291915..2a3052923c8d310a0ee7db79ec8b63387a3f8789 100644
--- a/plugins/Installation/lang/ja.json
+++ b/plugins/Installation/lang/ja.json
@@ -1,9 +1,13 @@
 {
     "Installation": {
+        "CannotConnectToDb": "データベースに接続できません。",
+        "CannotConnectToDbResolvingExplanation": "これは一時的な問題の可能性があります。%1$srefreshing the page%2$s をお試しください。問題が続く場合、Piwik 管理者にお問い合わせください。",
+        "CollaborativeProject": "Piwik は、世界中の人々に愛され、構築されている共同プロジェクトです。",
         "ConfigurationHelp": "Piwik 設定ファイルが誤設定されているようです。 config\/config.ini.php を削除してインストールを再開するか、データベースの接続設定を修正してください。",
         "ConfirmDeleteExistingTables": "本当にデータベースからテーブル %s を削除しますか? 警告: これらのテーブルのデータを復旧することはできません!",
         "Congratulations": "おめでとうございます",
         "CongratulationsHelp": "<p>おめでとうございます! Piwik のインストールは完了しました。<\/p><p>javascript コードをウェブサイトのページに埋め込み、最初のビジターをお待ちください!<\/p>",
+        "DatabaseAbilities": "データベースアビリティ",
         "DatabaseCreation": "データベースの作成",
         "DatabaseErrorConnect": "データベースサーバーへの接続中にエラーが発生しました",
         "DatabaseServerVersion": "データベースサーバーのバージョン",
@@ -16,13 +20,23 @@
         "Email": "メールアドレス",
         "Extension": "エクステンション",
         "Filesystem": "ファイルシステム",
+        "GetInvolved": "もし Piwik を気にって頂けたら、是非 %1$sget involved%2$s 。",
         "GoBackAndDefinePrefix": "戻って、Piwik テーブルのプレフィックスを定義する",
         "HappyAnalysing": "ハッピーな解析を!",
         "Installation": "インストール",
         "InstallationStatus": "インストール状況",
         "InsufficientPrivilegesHelp": "phpMyAdminのようなツールを使用するか、正しいSQLクエリを実行することにより、これらの権限を追加できます。やり方がわからない場合は、システム管理者に依頼して、権限を付与してもらってください。",
+        "InsufficientPrivilegesMain": "データベースが存在しない ( および作成できない ) 、または具体的なユーザーが十分な権限を持っていない可能性があります。データベースユーザーは、次の権限を有する必要があります。: %s",
+        "JsTagArchivingHelp1": "中~高トラフィックのウェブサイトのために、Piwik をより早く(例えば %1$ssetting up auto-archiving%2$s のように) 実行するための最適化の手段があります。",
+        "JSTracking_EndNote": "注:インストールの処理後、%1$sTracking Code%2$s の管理セクションで、トラッキングコードのカスタマイズを行うことができます。",
+        "JSTracking_Intro": "Piwik でウェブトラフィックの追跡をするには、一部の特別なコードが各 web ページに追加されているかどうかを確認する必要があります。",
         "LargePiwikInstances": "高トラフィック環境で Piwik を使用するためのヒント",
         "Legend": "説明",
+        "LoadDataInfileRecommended": "あなたの Piwik サーバーが高いトラフィックのウェブサイト ( 例、1 ヶ月あたり 100,000 ページ以上 ) を追跡している場合、この問題の解決をお勧めします。",
+        "LoadDataInfileUnavailableHelp": "%1$s を使用すると、Piwik のアーカイブプロセスを大幅に高速化させます。それを Piwik で利用可能にするには、お使いの PHP と MySQL ソフトウェアのアップデートをお試しください。またデータベースユーザーが %2$s 権限を持っているかどうかご確認ください。",
+        "NfsFilesystemWarning": "あなたのサーバーは、NFS ファイルシステムを使用しています。",
+        "NfsFilesystemWarningSuffixAdmin": "これは、ファイルベースのセッションを利用する際、Piwik が極端に遅くなることを意味します。",
+        "NfsFilesystemWarningSuffixInstall": "NFS 上でファイルベースのセッションを利用すると極端に遅いので、Piwik はデータベースセッションを使用します。同時に多くのダッシュボードユーザーがいる場合、データベースサーバーへのクライアント接続の最大数を増やす必要があります。",
         "NoConfigFound": "Piwik の設定ファイルを見つけることができませんでしたが、あなたは Piwik ページにアクセスしようとしています。<br \/><b>  »<a href='index.php'>ただちに Piwik をインストール<\/a>することができます。<\/b><br \/><small>以前に Piwik をインストールしたことがあり、DB に多少のデータがある場合でも心配しないでください。 既存のデータを保持したまま、同じテーブルを再利用することができます!<\/small>",
         "NotSupported": "サポートされていません",
         "Optional": "オプション",
@@ -30,22 +44,30 @@
         "PasswordDoNotMatch": "パスワードが一致しませんでした",
         "PasswordRepeat": "パスワード(再入力)",
         "PercentDone": "%s %% 完了",
+        "PiwikOrgNewsletter": "私に Piwik コミュニティの最新情報をメールで送る",
+        "PiwikProNewsletter": "%sPiwik PRO%s サービス( 月1回以下のメール受信 ) に興味があります。",
         "PleaseFixTheFollowingErrors": "次のエラーを修正してください",
         "PluginDescription": "Piwik のインストール処理を行います。 インストールは通常1回のみですが、設定ファイル(config\/config.inc.php)が削除された場合は、インストールが再度開始されます。",
         "Requirements": "Piwik の動作環境",
         "RestartWebServer": "この変更を行った後、ウェブサーバーを再起動してください。",
+        "ReusingTables": "表の再利用",
+        "SeeBelowForMoreInfo": "詳細は、以下をご確認ください。",
         "SetupWebsite": "ウェブサイトのセットアップ",
         "SetupWebsiteError": "ウェブサイトを追加する際にエラーが発生しました",
         "SetupWebSiteName": "ウェブサイトの名前",
         "SetupWebsiteSetupSuccess": "ウェブサイト %s は正常に作成されました!",
         "SetupWebSiteURL": "ウェブサイトの URL",
+        "SiteSetup": "Piwik で追跡・分析したい初めのウェブサイトを設定してください。",
+        "SiteSetupFootnote": "注: Piwik のインストールが完了すると、さらに追跡対象のウェブサイトを追加することができるようになります!",
         "SuperUser": "スーパーユーザー",
         "SuperUserLogin": "スーパーユーザーのログイン",
+        "SuperUserSetupError": "スーパーユーザーの追加時に、エラーが発生しました。",
         "SuperUserSetupSuccess": "スーパーユーザーの作成に成功しました!",
         "SystemCheck": "システムの確認",
         "SystemCheckAutoUpdateHelp": "注意: Piwik のワンクリックアップデートには、Piwik のフォルダとその内容に書き込み権限が必要となります。",
         "SystemCheckCreateFunctionHelp": "Piwik はコールバックに匿名関数を使用します。",
         "SystemCheckCronArchiveProcess": "アーカイブ cron",
+        "SystemCheckCronArchiveProcessCLI": "CLI を経由して処理を管理する",
         "SystemCheckDatabaseHelp": "Piwik には、mysqli エクステンションか、PDO と pdo_mysql エクステンションの両方の、どちらかが必要です。",
         "SystemCheckDebugBacktraceHelp": "View::factory はコール側モジュールのビューを作成することができません。",
         "SystemCheckError": "エラー発生 - 次の処理へ進む前に修正する必要があります。",
@@ -53,13 +75,16 @@
         "SystemCheckExtensions": "その他の必須エクステンション",
         "SystemCheckFileIntegrity": "ファイルの整合性",
         "SystemCheckFunctions": "必須関数",
+        "SystemCheckGDFreeType": "GD > 2.x + Freetype (graphics)",
         "SystemCheckGDHelp": "スパークライン(小さなグラフ)は動作しません。",
         "SystemCheckGlobHelp": "この組み込み関数はホストで無効化されています。 Piwik はこの関数のエミュレートを試みますが、さらなるセキュリティ制限に遭遇する場合があります。 また、機能性にも影響を与える場合があります。",
         "SystemCheckGzcompressHelp": "zlib エクステンションと gzcompress() 関数を有効にする必要があります。",
         "SystemCheckGzuncompressHelp": "zlib エクステンションと gzuncompress() 関数を有効にする必要があります。",
         "SystemCheckIconvHelp": "\"iconv\" のサポートを有効にして、PHP の再構築と設定を行う必要があります(--with-iconv)。",
+        "SystemCheckJsonHelp": "JSON データの読取と書込には、Piwik に php5-json の拡張モジュールが必要です。",
         "SystemCheckMailHelp": "mail() 関数がない場合、フィードバックとパスワード紛失のメッセージを送信することができません。",
         "SystemCheckMbstring": "mbstring",
+        "SystemCheckMbstringHelp": "拡張モジュール mbstring は、ユーザインタフェースと API レスポンスで、マルチバイト文字を処理するために必要です。また、php.ini で mbstring.func_overload が「 0 」に設定されていることを確認してください。",
         "SystemCheckMemoryLimit": "メモリー制限",
         "SystemCheckMemoryLimitHelp": "アクセス数の多いウェブサイトでは、アーカイブ処理の実行に、現在許可されている以上に多くのメモリを必要とする場合があります。<br \/>必要であれば、php.ini ファイルのディレクティブ memory_limit を参照してください。",
         "SystemCheckOpenURL": "オープン URL",
diff --git a/plugins/LeftMenu/lang/es.json b/plugins/LeftMenu/lang/es.json
new file mode 100644
index 0000000000000000000000000000000000000000..e4156feb2e16217bb1e5db0d83f32c82a80334ec
--- /dev/null
+++ b/plugins/LeftMenu/lang/es.json
@@ -0,0 +1,5 @@
+{
+    "LeftMenu": {
+        "GlobalSettingTitle": "Menú izquierdo activado por defecto"
+    }
+}
\ No newline at end of file
diff --git a/plugins/Login/lang/pl.json b/plugins/Login/lang/pl.json
index e277d958b5d23d305953381ba44b2dffbf400e5a..8a43531505bb34beb973fd5c1afb518afc88c8db 100644
--- a/plugins/Login/lang/pl.json
+++ b/plugins/Login/lang/pl.json
@@ -3,6 +3,7 @@
         "ConfirmationLinkSent": "Potwierdzenie zostało wysłane na skrzynkę odbiorczą. Sprawdź swój e-mail i odwiedzić link do autoryzacji żądania zmiany hasła.",
         "ContactAdmin": "Prawdopodobny powód: twój host mógł wyłączyć działanie funkcji mail(). <br \/>Skontaktuj się w tej sprawie ze swoim administratorem statystyk Piwik.",
         "ExceptionPasswordMD5HashExpected": "Oczekiwanym parametrem hasła jest hash z MD5 uzyskany z hasła.",
+        "InvalidNonceOrHeadersOrReferrer": "Błąd zabezpieczeń formularza. Proszę przeładować stronę z formularzem i upewnić się, że obsługa ciasteczek jest włączona. Jeśli korzystasz z serwera proxy, należy %s skonfigurować Piwik, tak aby akceptował nagłówek serwera proxy%s, który przekazuje nagłówek serwera docelowego. Ponadto sprawdź, czy naglówek Referrer jest poprawnie wysyłany.",
         "InvalidOrExpiredToken": "Token jest błędny lub już wygasł.",
         "InvalidUsernameEmail": "Błędna nazwa użytkownika i\/lub adres e-mail",
         "LogIn": "Zaloguj siÄ™",
diff --git a/plugins/MobileMessaging/MobileMessaging.php b/plugins/MobileMessaging/MobileMessaging.php
index 884ff9b63a9ba070befa5bd01cec25f83c7e96b5..ed57c259f90cd3173354125cf2ecbb31e30833ec 100644
--- a/plugins/MobileMessaging/MobileMessaging.php
+++ b/plugins/MobileMessaging/MobileMessaging.php
@@ -9,6 +9,7 @@
 namespace Piwik\Plugins\MobileMessaging;
 
 use Piwik\Option;
+use Piwik\Period;
 use Piwik\Piwik;
 use Piwik\Plugins\API\API as APIPlugins;
 use Piwik\Plugins\MobileMessaging\API as APIMobileMessaging;
@@ -177,7 +178,7 @@ class MobileMessaging extends \Piwik\Plugin
     }
 
     public function sendReport($reportType, $report, $contents, $filename, $prettyDate, $reportSubject, $reportTitle,
-                               $additionalFiles)
+                               $additionalFiles, Period $period = null, $force)
     {
         if (self::manageEvent($reportType)) {
             $parameters = $report['parameters'];
diff --git a/plugins/MobileMessaging/lang/pl.json b/plugins/MobileMessaging/lang/pl.json
index eaf82a779818d7a38a178efa1860a86baec4dd73..859635f5649e511c5e89f94d6bf4ae8515e24764 100644
--- a/plugins/MobileMessaging/lang/pl.json
+++ b/plugins/MobileMessaging/lang/pl.json
@@ -1,11 +1,13 @@
 {
     "MobileMessaging": {
         "PhoneNumbers": "Numery telefonu",
+        "Settings_APIKey": "Klucz API",
         "Settings_CountryCode": "Kod Państwa",
         "Settings_DeleteAccountConfirm": "Czy jesteś pewny, że chcesz skasowac to konto SMS?",
         "Settings_ManagePhoneNumbers": "Zarządzaj numerami telefonów",
         "Settings_PhoneNumber": "Numer telefonu",
         "Settings_PhoneNumbers_Add": "Dodaj nowy numer telefonu",
+        "Settings_SMSProvider": "Dostawca usługi SMS",
         "Settings_ValidatePhoneNumber": "Zatwierdź",
         "SMS_Content_Too_Long": "[zbyt długie]",
         "TopMenu": "Raporty Email & SMS"
diff --git a/plugins/MobileMessaging/tests/Integration/MobileMessagingTest.php b/plugins/MobileMessaging/tests/Integration/MobileMessagingTest.php
index 6d2eb9849b1538d6ea3c66b4b5e06918fa1e0849..f387534bf30d6442dfbb10d46fe321182ca801c8 100644
--- a/plugins/MobileMessaging/tests/Integration/MobileMessagingTest.php
+++ b/plugins/MobileMessaging/tests/Integration/MobileMessagingTest.php
@@ -255,7 +255,7 @@ class MobileMessagingTest extends IntegrationTestCase
         \Piwik\Plugins\MobileMessaging\API::setSingletonInstance($stubbedAPIMobileMessaging);
 
         $mobileMessaging = new MobileMessaging();
-        $mobileMessaging->sendReport(MobileMessaging::MOBILE_TYPE, $report, $reportContent, null, null, $reportSubject, null, null);
+        $mobileMessaging->sendReport(MobileMessaging::MOBILE_TYPE, $report, $reportContent, null, null, $reportSubject, null, null, null, false);
 
         \Piwik\Plugins\MobileMessaging\API::unsetInstance();
     }
diff --git a/plugins/Morpheus/stylesheets/general/_forms.less b/plugins/Morpheus/stylesheets/general/_forms.less
index ea75691a781a142e44da34bac0729b68c4d493e7..475c72d9f755cb9b3721e44990e3f804ec771378 100644
--- a/plugins/Morpheus/stylesheets/general/_forms.less
+++ b/plugins/Morpheus/stylesheets/general/_forms.less
@@ -23,6 +23,7 @@ button[type="button"],
     font-weight: normal;
     padding: 5px 15px !important;
     text-align: center;
+    text-decoration: none !important;
     cursor: pointer;
     border: 0px !important;
     &:hover {
diff --git a/plugins/Morpheus/templates/javascriptCode.tpl b/plugins/Morpheus/templates/javascriptCode.tpl
index 344e6d0311e1c11c638ffdbb75f2b9a437f19555..125259b8072e72c7a0f09ce833d86f1abacd06d6 100644
--- a/plugins/Morpheus/templates/javascriptCode.tpl
+++ b/plugins/Morpheus/templates/javascriptCode.tpl
@@ -5,11 +5,11 @@
   _paq.push(['enableLinkTracking']);
   (function() {
     {$setTrackerUrl}
-    _paq.push(['setTrackerUrl', u+'piwik.php']);
+    {$optionsBeforeTrackerUrl}_paq.push(['setTrackerUrl', u+'piwik.php']);
     _paq.push(['setSiteId', {$idSite}]);
     var d=document, g=d.createElement('script'), s=d.getElementsByTagName('script')[0];
     g.type='text/javascript'; g.async=true; g.defer=true; g.src=u+'piwik.js'; s.parentNode.insertBefore(g,s);
   })();
 </script>
-<noscript><p><img src="//{$piwikUrl}/piwik.php?idsite={$idSite}" style="border:0;" alt="" /></p></noscript>
+<noscript><p><img src="{$protocol}{$piwikUrl}/piwik.php?idsite={$idSite}" style="border:0;" alt="" /></p></noscript>
 <!-- End Piwik Code -->
diff --git a/plugins/MultiSites/lang/pl.json b/plugins/MultiSites/lang/pl.json
index 2999d348d5c5492bdeb0d4b09eb55c579b447365..a3557cd8a889cdec70b13f6ee461b65cda8659c8 100644
--- a/plugins/MultiSites/lang/pl.json
+++ b/plugins/MultiSites/lang/pl.json
@@ -2,6 +2,7 @@
     "MultiSites": {
         "Evolution": "Postęp",
         "LoadingWebsites": "Ładowanie stron",
+        "Pagination": "%s - %s z %s",
         "PluginDescription": "Wyświetla wielostronicowe podsumowania\/statystyki. Obecnie zastosowane jako wtyczka jądra Piwik."
     }
 }
\ No newline at end of file
diff --git a/plugins/PrivacyManager/javascripts/privacySettings.js b/plugins/PrivacyManager/javascripts/privacySettings.js
index 4f0260e7d688bd95567da607887b043b8526d7d9..f40985b9841d8c746b543b4f061ea895781d1289 100644
--- a/plugins/PrivacyManager/javascripts/privacySettings.js
+++ b/plugins/PrivacyManager/javascripts/privacySettings.js
@@ -93,7 +93,10 @@ $(document).ready(function () {
         toggleBlock("deleteLogSettings", $("input[name=deleteEnable]:checked").val());
         toggleBlock("anonymizeIPenabled", $("input[name=anonymizeIPEnable]:checked").val());
         toggleBlock("deleteReportsSettings", $("input[name=deleteReportsEnable]:checked").val());
-        toggleBlock("deleteOldReportsMoreInfo", $("input[name=deleteReportsEnable]:checked").val());
+        // This one is in an AngularJS directive, so is generated later
+        setTimeout(function () {
+            toggleBlock("deleteOldReportsMoreInfo", $("input[name=deleteReportsEnable]:checked").val());
+        }, 500);
         toggleOtherDeleteSections();
     });
 
diff --git a/plugins/Provider/API.php b/plugins/Provider/API.php
index dd367fc21bd64ed6a4f443c0494e16c4db8f671f..c7e7cd11c8c82cc746d35de7febdf57ec008c1e2 100644
--- a/plugins/Provider/API.php
+++ b/plugins/Provider/API.php
@@ -34,7 +34,7 @@ class API extends \Piwik\Plugin\API
         $dataTable->queueFilter('ColumnCallbackReplace', array('label', __NAMESPACE__ . '\getPrettyProviderName'));
         $dataTable->queueFilter('ReplaceColumnNames');
         $dataTable->queueFilter('ReplaceSummaryRowLabel');
+        $dataTable->queueFilter('GroupBy', array('label'));
         return $dataTable;
     }
 }
-
diff --git a/plugins/Provider/Reports/GetProvider.php b/plugins/Provider/Reports/GetProvider.php
index 9323deccf170995ae3d4173eec8659316a54ba87..739124088ce3e5e77e232edb01e7586ff63014eb 100644
--- a/plugins/Provider/Reports/GetProvider.php
+++ b/plugins/Provider/Reports/GetProvider.php
@@ -8,11 +8,13 @@
  */
 namespace Piwik\Plugins\Provider\Reports;
 
+use Piwik\Common;
 use Piwik\Piwik;
+use Piwik\Plugin\Report;
 use Piwik\Plugin\ViewDataTable;
 use Piwik\Plugins\Provider\Columns\Provider;
 
-class GetProvider extends \Piwik\Plugin\Report
+class GetProvider extends Report
 {
     protected function init()
     {
@@ -28,6 +30,14 @@ class GetProvider extends \Piwik\Plugin\Report
     {
         $view->requestConfig->filter_limit = 5;
         $view->config->addTranslation('label', $this->dimension->getName());
-    }
 
+        $message = Piwik::translate("General_Note") . ': ' . Piwik::translate('Provider_ProviderReportFooter', '');
+        if (! Common::getRequestVar('disableLink', 0, 'int')) {
+            $message .= ' ' . Piwik::translate(
+                    'General_SeeThisFaq',
+                    array('<a href="http://piwik.org/faq/general/faq_52/" target="_blank">', '</a>')
+                );
+        }
+        $view->config->show_footer_message = $message;
+    }
 }
diff --git a/plugins/Provider/Visitor.php b/plugins/Provider/Visitor.php
index 0efbb92eb348210e3625d7f29798cf67d9f0ac73..c11f1e3a9b8f6255ff83da3f5bc34000cedaa15e 100644
--- a/plugins/Provider/Visitor.php
+++ b/plugins/Provider/Visitor.php
@@ -25,9 +25,8 @@ class Visitor
     {
         if (isset($this->details['location_provider'])) {
             return $this->details['location_provider'];
-        } else {
-            return Piwik::translate('General_Unknown');
         }
+        return Piwik::translate('General_Unknown');
     }
 
     public function getProviderName()
diff --git a/plugins/Provider/functions.php b/plugins/Provider/functions.php
index 110b54a35966eda4a73521cc4bd0d35771f7d819..3e2c4a2da8f3f382867e36f9f62ee759019a5772 100644
--- a/plugins/Provider/functions.php
+++ b/plugins/Provider/functions.php
@@ -20,12 +20,9 @@ use Piwik\Piwik;
  */
 function getHostnameName($in)
 {
-    if (empty($in)) {
+    if (empty($in) || strtolower($in) === 'ip') {
         return Piwik::translate('General_Unknown');
     }
-    if (strtolower($in) === 'ip') {
-        return "IP";
-    }
     if (($positionDot = strpos($in, '.')) !== false) {
         return ucfirst(substr($in, 0, $positionDot));
     }
@@ -40,14 +37,8 @@ function getHostnameName($in)
  */
 function getHostnameUrl($in)
 {
-    if ($in == DataTable::LABEL_SUMMARY_ROW) {
-        return false;
-    }
-    if (empty($in)
-        || strtolower($in) === 'ip'
-    ) {
-        // link to "what does 'IP' mean?"
-        return "http://piwik.org/faq/general/#faq_52";
+    if ($in == DataTable::LABEL_SUMMARY_ROW || empty($in) || strtolower($in) === 'ip') {
+        return null;
     }
 
     // if the name looks like it can be used in a URL, use it in one, otherwise link to startpage
diff --git a/plugins/Provider/lang/en.json b/plugins/Provider/lang/en.json
index d27bb9636312b2dd26ac11793fa6187489a4df09..f634e2eda74c9398c189d310cd57ce634cbc08f2 100644
--- a/plugins/Provider/lang/en.json
+++ b/plugins/Provider/lang/en.json
@@ -4,6 +4,7 @@
         "PluginDescription": "Reports the Provider of the visitors.",
         "ProviderReportDocumentation": "This report shows which Internet Service Providers your visitors used to access the website. You can click on a provider name for more details. %s If Piwik can't determine a visitor's provider, it is listed as IP.",
         "SubmenuLocationsProvider": "Locations & Provider",
-        "WidgetProviders": "Providers"
+        "WidgetProviders": "Providers",
+        "ProviderReportFooter": "Unknown provider means the IP address could not be looked up."
     }
 }
\ No newline at end of file
diff --git a/plugins/ScheduledReports/API.php b/plugins/ScheduledReports/API.php
index a42b5bb209ad90fb0593051079757546d9859ebd..92acbd2c8db0b97af61da47a96463e0f9f2e3b85 100644
--- a/plugins/ScheduledReports/API.php
+++ b/plugins/ScheduledReports/API.php
@@ -466,7 +466,7 @@ class API extends \Piwik\Plugin\API
         }
     }
 
-    public function sendReport($idReport, $period = false, $date = false)
+    public function sendReport($idReport, $period = false, $date = false, $force = false)
     {
         Piwik::checkUserIsNotAnonymous();
 
@@ -527,6 +527,9 @@ class API extends \Piwik\Plugin\API
          * @param string $reportTitle The scheduled report's given title (given by a Piwik user).
          * @param array $additionalFiles The list of additional files that should be
          *                               sent with this report.
+         * @param \Piwik\Period $period The period for which the report has been generated.
+         * @param boolean $force A report can only be sent once per period. Setting this to true
+         *                       will force to send the report even if it has already been sent.
          */
         Piwik::postEvent(
             self::SEND_REPORT_EVENT,
@@ -538,7 +541,9 @@ class API extends \Piwik\Plugin\API
                 $prettyDate,
                 $reportSubject,
                 $reportTitle,
-                $additionalFiles
+                $additionalFiles,
+                \Piwik\Period\Factory::build($report['period'], $date),
+                $force
             )
         );
 
@@ -560,7 +565,7 @@ class API extends \Piwik\Plugin\API
     private static function getReportSubjectAndReportTitle($websiteName, $reports)
     {
         // if the only report is "All websites", we don't display the site name
-        $reportTitle = Piwik::translate('General_Website') . " " . $websiteName;
+        $reportTitle = $websiteName;
         $reportSubject = $websiteName;
         if (count($reports) == 1
             && $reports[0] == 'MultiSites_getAll'
diff --git a/plugins/ScheduledReports/ScheduledReports.php b/plugins/ScheduledReports/ScheduledReports.php
index e59e9140abad99fcbeb38040ce2a782084932b06..4b8190fead22deb5f31a62e30a246f213b258532 100644
--- a/plugins/ScheduledReports/ScheduledReports.php
+++ b/plugins/ScheduledReports/ScheduledReports.php
@@ -10,7 +10,10 @@ namespace Piwik\Plugins\ScheduledReports;
 
 use Exception;
 use Piwik\Db;
+use Piwik\Log;
 use Piwik\Mail;
+use Piwik\Option;
+use Piwik\Period;
 use Piwik\Piwik;
 use Piwik\Plugins\MobileMessaging\MobileMessaging;
 use Piwik\Plugins\UsersManager\API as APIUsersManager;
@@ -63,6 +66,8 @@ class ScheduledReports extends \Piwik\Plugin
         ReportRenderer::CSV_FORMAT  => 'plugins/Morpheus/images/export.png',
     );
 
+    const OPTION_KEY_LAST_SENT_DATERANGE = 'report_last_sent_daterange_';
+
     /**
      * @see Piwik\Plugin::getListHooksRegistered
      */
@@ -117,37 +122,39 @@ class ScheduledReports extends \Piwik\Plugin
 
     public function validateReportParameters(&$parameters, $reportType)
     {
-        if (self::manageEvent($reportType)) {
-            $reportFormat = $parameters[self::DISPLAY_FORMAT_PARAMETER];
-            $availableDisplayFormats = array_keys(self::getDisplayFormats());
-            if (!in_array($reportFormat, $availableDisplayFormats)) {
-                throw new Exception(
-                    Piwik::translate(
-                    // General_ExceptionInvalidAggregateReportsFormat should be named General_ExceptionInvalidDisplayFormat
-                        'General_ExceptionInvalidAggregateReportsFormat',
-                        array($reportFormat, implode(', ', $availableDisplayFormats))
-                    )
-                );
-            }
+        if (! self::manageEvent($reportType)) {
+            return;
+        }
 
-            // emailMe is an optional parameter
-            if (!isset($parameters[self::EMAIL_ME_PARAMETER])) {
-                $parameters[self::EMAIL_ME_PARAMETER] = self::EMAIL_ME_PARAMETER_DEFAULT_VALUE;
-            } else {
-                $parameters[self::EMAIL_ME_PARAMETER] = self::valueIsTrue($parameters[self::EMAIL_ME_PARAMETER]);
-            }
+        $reportFormat = $parameters[self::DISPLAY_FORMAT_PARAMETER];
+        $availableDisplayFormats = array_keys(self::getDisplayFormats());
+        if (!in_array($reportFormat, $availableDisplayFormats)) {
+            throw new Exception(
+                Piwik::translate(
+                // General_ExceptionInvalidAggregateReportsFormat should be named General_ExceptionInvalidDisplayFormat
+                    'General_ExceptionInvalidAggregateReportsFormat',
+                    array($reportFormat, implode(', ', $availableDisplayFormats))
+                )
+            );
+        }
 
-            // evolutionGraph is an optional parameter
-            if (!isset($parameters[self::EVOLUTION_GRAPH_PARAMETER])) {
-                $parameters[self::EVOLUTION_GRAPH_PARAMETER] = self::EVOLUTION_GRAPH_PARAMETER_DEFAULT_VALUE;
-            } else {
-                $parameters[self::EVOLUTION_GRAPH_PARAMETER] = self::valueIsTrue($parameters[self::EVOLUTION_GRAPH_PARAMETER]);
-            }
+        // emailMe is an optional parameter
+        if (!isset($parameters[self::EMAIL_ME_PARAMETER])) {
+            $parameters[self::EMAIL_ME_PARAMETER] = self::EMAIL_ME_PARAMETER_DEFAULT_VALUE;
+        } else {
+            $parameters[self::EMAIL_ME_PARAMETER] = self::valueIsTrue($parameters[self::EMAIL_ME_PARAMETER]);
+        }
 
-            // additionalEmails is an optional parameter
-            if (isset($parameters[self::ADDITIONAL_EMAILS_PARAMETER])) {
-                $parameters[self::ADDITIONAL_EMAILS_PARAMETER] = self::checkAdditionalEmails($parameters[self::ADDITIONAL_EMAILS_PARAMETER]);
-            }
+        // evolutionGraph is an optional parameter
+        if (!isset($parameters[self::EVOLUTION_GRAPH_PARAMETER])) {
+            $parameters[self::EVOLUTION_GRAPH_PARAMETER] = self::EVOLUTION_GRAPH_PARAMETER_DEFAULT_VALUE;
+        } else {
+            $parameters[self::EVOLUTION_GRAPH_PARAMETER] = self::valueIsTrue($parameters[self::EVOLUTION_GRAPH_PARAMETER]);
+        }
+
+        // additionalEmails is an optional parameter
+        if (isset($parameters[self::ADDITIONAL_EMAILS_PARAMETER])) {
+            $parameters[self::ADDITIONAL_EMAILS_PARAMETER] = self::checkAdditionalEmails($parameters[self::ADDITIONAL_EMAILS_PARAMETER]);
         }
     }
 
@@ -159,22 +166,26 @@ class ScheduledReports extends \Piwik\Plugin
 
     public function getReportMetadata(&$reportMetadata, $reportType, $idSite)
     {
-        if (self::manageEvent($reportType)) {
-            $availableReportMetadata = \Piwik\Plugins\API\API::getInstance()->getReportMetadata($idSite);
+        if (! self::manageEvent($reportType)) {
+            return;
+        }
 
-            $filteredReportMetadata = array();
-            foreach ($availableReportMetadata as $reportMetadata) {
-                // removing reports from the API category and MultiSites.getOne
-                if (
-                    $reportMetadata['category'] == 'API' ||
-                    $reportMetadata['category'] == Piwik::translate('General_MultiSitesSummary') && $reportMetadata['name'] == Piwik::translate('General_SingleWebsitesDashboard')
-                ) continue;
+        $availableReportMetadata = \Piwik\Plugins\API\API::getInstance()->getReportMetadata($idSite);
 
-                $filteredReportMetadata[] = $reportMetadata;
+        $filteredReportMetadata = array();
+        foreach ($availableReportMetadata as $reportMetadata) {
+            // removing reports from the API category and MultiSites.getOne
+            if (
+                $reportMetadata['category'] == 'API' ||
+                $reportMetadata['category'] == Piwik::translate('General_MultiSitesSummary') && $reportMetadata['name'] == Piwik::translate('General_SingleWebsitesDashboard')
+            ) {
+                continue;
             }
 
-            $reportMetadata = $filteredReportMetadata;
+            $filteredReportMetadata[] = $reportMetadata;
         }
+
+        $reportMetadata = $filteredReportMetadata;
     }
 
     public function getReportTypes(&$reportTypes)
@@ -198,53 +209,57 @@ class ScheduledReports extends \Piwik\Plugin
 
     public function processReports(&$processedReports, $reportType, $outputType, $report)
     {
-        if (self::manageEvent($reportType)) {
-            $displayFormat = $report['parameters'][self::DISPLAY_FORMAT_PARAMETER];
-            $evolutionGraph = $report['parameters'][self::EVOLUTION_GRAPH_PARAMETER];
+        if (! self::manageEvent($reportType)) {
+            return;
+        }
 
-            foreach ($processedReports as &$processedReport) {
-                $metadata = $processedReport['metadata'];
+        $displayFormat = $report['parameters'][self::DISPLAY_FORMAT_PARAMETER];
+        $evolutionGraph = $report['parameters'][self::EVOLUTION_GRAPH_PARAMETER];
 
-                $isAggregateReport = !empty($metadata['dimension']);
+        foreach ($processedReports as &$processedReport) {
+            $metadata = $processedReport['metadata'];
 
-                $processedReport['displayTable'] = $displayFormat != self::DISPLAY_FORMAT_GRAPHS_ONLY;
+            $isAggregateReport = !empty($metadata['dimension']);
 
-                $processedReport['displayGraph'] =
-                    ($isAggregateReport ?
-                        $displayFormat == self::DISPLAY_FORMAT_GRAPHS_ONLY || $displayFormat == self::DISPLAY_FORMAT_TABLES_AND_GRAPHS
-                        :
-                        $displayFormat != self::DISPLAY_FORMAT_TABLES_ONLY)
-                    && \Piwik\SettingsServer::isGdExtensionEnabled()
-                    && \Piwik\Plugin\Manager::getInstance()->isPluginActivated('ImageGraph')
-                    && !empty($metadata['imageGraphUrl']);
+            $processedReport['displayTable'] = $displayFormat != self::DISPLAY_FORMAT_GRAPHS_ONLY;
 
-                $processedReport['evolutionGraph'] = $evolutionGraph;
+            $processedReport['displayGraph'] =
+                ($isAggregateReport ?
+                    $displayFormat == self::DISPLAY_FORMAT_GRAPHS_ONLY || $displayFormat == self::DISPLAY_FORMAT_TABLES_AND_GRAPHS
+                    :
+                    $displayFormat != self::DISPLAY_FORMAT_TABLES_ONLY)
+                && \Piwik\SettingsServer::isGdExtensionEnabled()
+                && \Piwik\Plugin\Manager::getInstance()->isPluginActivated('ImageGraph')
+                && !empty($metadata['imageGraphUrl']);
 
-                // remove evolution metrics from MultiSites.getAll
-                if ($metadata['module'] == 'MultiSites') {
-                    $columns = $processedReport['columns'];
+            $processedReport['evolutionGraph'] = $evolutionGraph;
 
-                    foreach (\Piwik\Plugins\MultiSites\API::getApiMetrics($enhanced = true) as $metricSettings) {
-                        unset($columns[$metricSettings[\Piwik\Plugins\MultiSites\API::METRIC_EVOLUTION_COL_NAME_KEY]]);
-                    }
+            // remove evolution metrics from MultiSites.getAll
+            if ($metadata['module'] == 'MultiSites') {
+                $columns = $processedReport['columns'];
 
-                    $processedReport['metadata'] = $metadata;
-                    $processedReport['columns'] = $columns;
+                foreach (\Piwik\Plugins\MultiSites\API::getApiMetrics($enhanced = true) as $metricSettings) {
+                    unset($columns[$metricSettings[\Piwik\Plugins\MultiSites\API::METRIC_EVOLUTION_COL_NAME_KEY]]);
                 }
+
+                $processedReport['metadata'] = $metadata;
+                $processedReport['columns'] = $columns;
             }
         }
     }
 
     public function getRendererInstance(&$reportRenderer, $reportType, $outputType, $report)
     {
-        if (self::manageEvent($reportType)) {
-            $reportFormat = $report['format'];
+        if (! self::manageEvent($reportType)) {
+            return;
+        }
 
-            $reportRenderer = ReportRenderer::factory($reportFormat);
+        $reportFormat = $report['format'];
 
-            if ($reportFormat == ReportRenderer::HTML_FORMAT) {
-                $reportRenderer->setRenderImageInline($outputType != API::OUTPUT_SAVE_ON_DISK);
-            }
+        $reportRenderer = ReportRenderer::factory($reportFormat);
+
+        if ($reportFormat == ReportRenderer::HTML_FORMAT) {
+            $reportRenderer->setRenderImageInline($outputType != API::OUTPUT_SAVE_ON_DISK);
         }
     }
 
@@ -256,132 +271,148 @@ class ScheduledReports extends \Piwik\Plugin
     }
 
     public function sendReport($reportType, $report, $contents, $filename, $prettyDate, $reportSubject, $reportTitle,
-                               $additionalFiles)
+                               $additionalFiles, Period $period = null, $force)
     {
-        if (self::manageEvent($reportType)) {
-            $periods = self::getPeriodToFrequencyAsAdjective();
-            $message = Piwik::translate('ScheduledReports_EmailHello');
-            $subject = Piwik::translate('General_Report') . ' ' . $reportTitle . " - " . $prettyDate;
-
-            $mail = new Mail();
-            $mail->setDefaultFromPiwik();
-            $mail->setSubject($subject);
-            $attachmentName = $subject;
-
-            $this->setReplyToAsSender($mail, $report);
-
-            $displaySegmentInfo = false;
-            $segmentInfo = null;
-            $segment = API::getSegment($report['idsegment']);
-            if ($segment != null) {
-                $displaySegmentInfo = true;
-                $segmentInfo = Piwik::translate('ScheduledReports_SegmentAppliedToReports', $segment['name']);
-            }
+        if (! self::manageEvent($reportType)) {
+            return;
+        }
 
-            switch ($report['format']) {
-                case 'html':
+        // Safeguard against sending the same report twice to the same email (unless $force is true)
+        if (!$force && $this->reportAlreadySent($report, $period)) {
+            Log::warning(
+                'Preventing the same scheduled report from being sent again (report #%s for period "%s")',
+                $report['idreport'],
+                $prettyDate
+            );
+            return;
+        }
 
-                    // Needed when using images as attachment with cid
-                    $mail->setType(Zend_Mime::MULTIPART_RELATED);
-                    $message .= "<br/>" . Piwik::translate('ScheduledReports_PleaseFindBelow', array($periods[$report['period']], $reportTitle));
+        $periods = self::getPeriodToFrequencyAsAdjective();
+        $message = Piwik::translate('ScheduledReports_EmailHello');
+        $subject = Piwik::translate('General_Report') . ' ' . $reportTitle . " - " . $prettyDate;
 
-                    if ($displaySegmentInfo) {
-                        $message .= " " . $segmentInfo;
-                    }
+        $mail = new Mail();
+        $mail->setDefaultFromPiwik();
+        $mail->setSubject($subject);
+        $attachmentName = $subject;
 
-                    $mail->setBodyHtml($message . "<br/><br/>" . $contents);
-                    break;
+        $this->setReplyToAsSender($mail, $report);
 
-                case 'csv':
-                    $message .= "\n" . Piwik::translate('ScheduledReports_PleaseFindAttachedFile', array($periods[$report['period']], $reportTitle));
+        $displaySegmentInfo = false;
+        $segmentInfo = null;
+        $segment = API::getSegment($report['idsegment']);
+        if ($segment != null) {
+            $displaySegmentInfo = true;
+            $segmentInfo = Piwik::translate('ScheduledReports_SegmentAppliedToReports', $segment['name']);
+        }
 
-                    if ($displaySegmentInfo) {
-                        $message .= " " . $segmentInfo;
-                    }
+        switch ($report['format']) {
+            case 'html':
 
-                    $mail->setBodyText($message);
-                    $mail->createAttachment(
-                        $contents,
-                        'application/csv',
-                        Zend_Mime::DISPOSITION_INLINE,
-                        Zend_Mime::ENCODING_BASE64,
-                        $attachmentName . '.csv'
-                    );
-                    break;
+                // Needed when using images as attachment with cid
+                $mail->setType(Zend_Mime::MULTIPART_RELATED);
+                $message .= "<br/>" . Piwik::translate('ScheduledReports_PleaseFindBelow', array($periods[$report['period']], $reportTitle));
 
-                default:
-                case 'pdf':
-                    $message .= "\n" . Piwik::translate('ScheduledReports_PleaseFindAttachedFile', array($periods[$report['period']], $reportTitle));
+                if ($displaySegmentInfo) {
+                    $message .= " " . $segmentInfo;
+                }
 
-                    if ($displaySegmentInfo) {
-                        $message .= " " . $segmentInfo;
-                    }
+                $mail->setBodyHtml($message . "<br/><br/>" . $contents);
+                break;
 
-                    $mail->setBodyText($message);
-                    $mail->createAttachment(
-                        $contents,
-                        'application/pdf',
-                        Zend_Mime::DISPOSITION_INLINE,
-                        Zend_Mime::ENCODING_BASE64,
-                        $attachmentName . '.pdf'
-                    );
-                    break;
-            }
+            case 'csv':
+                $message .= "\n" . Piwik::translate('ScheduledReports_PleaseFindAttachedFile', array($periods[$report['period']], $reportTitle));
 
-            foreach ($additionalFiles as $additionalFile) {
-                $fileContent = $additionalFile['content'];
-                $at = $mail->createAttachment(
-                    $fileContent,
-                    $additionalFile['mimeType'],
+                if ($displaySegmentInfo) {
+                    $message .= " " . $segmentInfo;
+                }
+
+                $mail->setBodyText($message);
+                $mail->createAttachment(
+                    $contents,
+                    'application/csv',
                     Zend_Mime::DISPOSITION_INLINE,
-                    $additionalFile['encoding'],
-                    $additionalFile['filename']
+                    Zend_Mime::ENCODING_BASE64,
+                    $attachmentName . '.csv'
                 );
-                $at->id = $additionalFile['cid'];
+                break;
 
-                unset($fileContent);
-            }
+            default:
+            case 'pdf':
+                $message .= "\n" . Piwik::translate('ScheduledReports_PleaseFindAttachedFile', array($periods[$report['period']], $reportTitle));
 
-            // Get user emails and languages
-            $reportParameters = $report['parameters'];
-            $emails = array();
+                if ($displaySegmentInfo) {
+                    $message .= " " . $segmentInfo;
+                }
 
-            if (isset($reportParameters[self::ADDITIONAL_EMAILS_PARAMETER])) {
-                $emails = $reportParameters[self::ADDITIONAL_EMAILS_PARAMETER];
-            }
+                $mail->setBodyText($message);
+                $mail->createAttachment(
+                    $contents,
+                    'application/pdf',
+                    Zend_Mime::DISPOSITION_INLINE,
+                    Zend_Mime::ENCODING_BASE64,
+                    $attachmentName . '.pdf'
+                );
+                break;
+        }
 
-            if ($reportParameters[self::EMAIL_ME_PARAMETER] == 1) {
-                if (Piwik::getCurrentUserLogin() == $report['login']) {
-                    $emails[] = Piwik::getCurrentUserEmail();
-                } else {
-                    try {
-                        $user = APIUsersManager::getInstance()->getUser($report['login']);
-                    } catch (Exception $e) {
-                        return;
-                    }
-                    $emails[] = $user['email'];
-                }
-            }
+        foreach ($additionalFiles as $additionalFile) {
+            $fileContent = $additionalFile['content'];
+            $at = $mail->createAttachment(
+                $fileContent,
+                $additionalFile['mimeType'],
+                Zend_Mime::DISPOSITION_INLINE,
+                $additionalFile['encoding'],
+                $additionalFile['filename']
+            );
+            $at->id = $additionalFile['cid'];
+
+            unset($fileContent);
+        }
 
-            foreach ($emails as $email) {
-                if (empty($email)) {
-                    continue;
-                }
-                $mail->addTo($email);
+        // Get user emails and languages
+        $reportParameters = $report['parameters'];
+        $emails = array();
+
+        if (isset($reportParameters[self::ADDITIONAL_EMAILS_PARAMETER])) {
+            $emails = $reportParameters[self::ADDITIONAL_EMAILS_PARAMETER];
+        }
 
+        if ($reportParameters[self::EMAIL_ME_PARAMETER] == 1) {
+            if (Piwik::getCurrentUserLogin() == $report['login']) {
+                $emails[] = Piwik::getCurrentUserEmail();
+            } else {
                 try {
-                    $mail->send();
+                    $user = APIUsersManager::getInstance()->getUser($report['login']);
                 } catch (Exception $e) {
+                    return;
+                }
+                $emails[] = $user['email'];
+            }
+        }
 
-                    // If running from piwik.php with debug, we ignore the 'email not sent' error
-                    if (!isset($GLOBALS['PIWIK_TRACKER_DEBUG']) || !$GLOBALS['PIWIK_TRACKER_DEBUG']) {
-                        throw new Exception("An error occured while sending '$filename' " .
-                            " to " . implode(', ', $mail->getRecipients()) .
-                            ". Error was '" . $e->getMessage() . "'");
-                    }
+        if (! $force) {
+            $this->markReportAsSent($report, $period);
+        }
+
+        foreach ($emails as $email) {
+            if (empty($email)) {
+                continue;
+            }
+            $mail->addTo($email);
+
+            try {
+                $mail->send();
+            } catch (Exception $e) {
+
+                // If running from piwik.php with debug, we ignore the 'email not sent' error
+                if (!isset($GLOBALS['PIWIK_TRACKER_DEBUG']) || !$GLOBALS['PIWIK_TRACKER_DEBUG']) {
+                    throw new Exception("An error occured while sending '$filename' " .
+                        " to " . implode(', ', $mail->getRecipients()) .
+                        ". Error was '" . $e->getMessage() . "'");
                 }
-                $mail->clearRecipients();
             }
+            $mail->clearRecipients();
         }
     }
 
@@ -429,20 +460,22 @@ class ScheduledReports extends \Piwik\Plugin
 
     public function getReportRecipients(&$recipients, $reportType, $report)
     {
-        if (self::manageEvent($reportType)) {
-            $parameters = $report['parameters'];
-            $eMailMe = $parameters[self::EMAIL_ME_PARAMETER];
+        if (! self::manageEvent($reportType)) {
+            return;
+        }
 
-            if ($eMailMe) {
-                $recipients[] = Piwik::getCurrentUserEmail();
-            }
+        $parameters = $report['parameters'];
+        $eMailMe = $parameters[self::EMAIL_ME_PARAMETER];
 
-            if (isset($parameters[self::ADDITIONAL_EMAILS_PARAMETER])) {
-                $additionalEMails = $parameters[self::ADDITIONAL_EMAILS_PARAMETER];
-                $recipients = array_merge($recipients, $additionalEMails);
-            }
-            $recipients = array_filter($recipients);
+        if ($eMailMe) {
+            $recipients[] = Piwik::getCurrentUserEmail();
+        }
+
+        if (isset($parameters[self::ADDITIONAL_EMAILS_PARAMETER])) {
+            $additionalEMails = $parameters[self::ADDITIONAL_EMAILS_PARAMETER];
+            $recipients = array_merge($recipients, $additionalEMails);
         }
+        $recipients = array_filter($recipients);
     }
 
     public static function template_reportParametersScheduledReports(&$out)
@@ -492,7 +525,6 @@ class ScheduledReports extends \Piwik\Plugin
         }
 
         $this->throwExceptionReportsAreUsingSegment($reportsNeedSegment);
-
     }
 
     public function segmentDeactivation($idSegment)
@@ -618,4 +650,20 @@ class ScheduledReports extends \Piwik\Plugin
             }
         }
     }
+
+    private function reportAlreadySent($report, Period $period)
+    {
+        $key = self::OPTION_KEY_LAST_SENT_DATERANGE . $report['idreport'];
+
+        $previousDate = Option::get($key);
+
+        return $previousDate === $period->getRangeString();
+    }
+
+    private function markReportAsSent($report, Period $period)
+    {
+        $key = self::OPTION_KEY_LAST_SENT_DATERANGE . $report['idreport'];
+
+        Option::set($key, $period->getRangeString());
+    }
 }
diff --git a/plugins/ScheduledReports/javascripts/pdf.js b/plugins/ScheduledReports/javascripts/pdf.js
index 59b16c9d080592b598cdd2add90d183a68c1c2f2..da23deb4fdd231436b03b5880b43535830ac0a44 100644
--- a/plugins/ScheduledReports/javascripts/pdf.js
+++ b/plugins/ScheduledReports/javascripts/pdf.js
@@ -142,6 +142,7 @@ function initManagePdf() {
         var idReport = $(this).attr('idreport');
         var parameters = getReportAjaxRequest(idReport, 'ScheduledReports.sendReport');
         parameters.idReport = idReport;
+        parameters.force = true;
 
         var ajaxHandler = new ajaxHelper();
         ajaxHandler.addParams(parameters, 'POST');
diff --git a/plugins/ScheduledReports/tests/Integration/ApiTest.php b/plugins/ScheduledReports/tests/Integration/ApiTest.php
index 419834a0e7ec8ddbfc8c0a49116ba3a34cc54bb9..be13cb2b1011a99f256c30e16eabdf045c87c10b 100644
--- a/plugins/ScheduledReports/tests/Integration/ApiTest.php
+++ b/plugins/ScheduledReports/tests/Integration/ApiTest.php
@@ -30,6 +30,7 @@ require_once PIWIK_INCLUDE_PATH . '/plugins/ScheduledReports/ScheduledReports.ph
  * Class Plugins_ScheduledReportsTest
  *
  * @group Plugins
+ * @group ScheduledReportsTest
  */
 class ApiTest extends IntegrationTestCase
 {
@@ -405,8 +406,8 @@ class ApiTest extends IntegrationTestCase
     public function getGetReportSubjectAndReportTitleTestCases()
     {
         return array(
-            array('Piwik.org', 'General_Website Piwik.org', 'Piwik.org', array('UserSettings_getBrowserType')),
-            array('Piwik.org', 'General_Website Piwik.org', 'Piwik.org', array('MultiSites_getAll', 'UserSettings_getBrowserType')),
+            array('<Piwik.org>', '<Piwik.org>', '<Piwik.org>', array('UserSettings_getBrowserType')),
+            array('Piwik.org', 'Piwik.org', 'Piwik.org', array('MultiSites_getAll', 'UserSettings_getBrowserType')),
             array('General_MultiSitesSummary', 'General_MultiSitesSummary', 'Piwik.org', array('MultiSites_getAll')),
         );
     }
diff --git a/plugins/SegmentEditor/API.php b/plugins/SegmentEditor/API.php
index 699ad3a4eae2ca5014f5b5b94aa65c15fae43ae6..c08f302e7387809a14b2f5b4c855a07950be4fbe 100644
--- a/plugins/SegmentEditor/API.php
+++ b/plugins/SegmentEditor/API.php
@@ -77,22 +77,38 @@ class API extends \Piwik\Plugin\API
     protected function checkAutoArchive($autoArchive, $idSite)
     {
         $autoArchive = (int)$autoArchive;
-        if ($autoArchive) {
-            $exception = new Exception(
-                "Please contact Support to make these changes on your behalf. ".
-                " To update (or create) a pre-processed segment, a user must have admin access or super user access. "
-            );
-
-            if (empty($idSite)) {
-                if (!Piwik::hasUserSuperUserAccess()) {
-                    throw $exception;
-                }
-            } else {
-                if (!Piwik::isUserHasAdminAccess($idSite)) {
-                    throw $exception;
-                }
+        if (!$autoArchive) {
+            return $autoArchive;
+        }
+
+        $exception = new Exception(
+            "Please contact Support to make these changes on your behalf. ".
+            " To modify a pre-processed segment, a user must have admin access or super user access. "
+        );
+
+        // Segment 'All websites' and pre-processed requires Super User
+        if (empty($idSite)) {
+            if (!Piwik::hasUserSuperUserAccess()) {
+                throw $exception;
             }
+            return $autoArchive;
         }
+
+        // if real-time segments are disabled, then allow user to create pre-processed report
+        $realTimeSegmentsDisabled = !Config::getInstance()->General['enable_create_realtime_segments'];
+        if($realTimeSegmentsDisabled) {
+            // User is at least view
+            if(!Piwik::isUserHasViewAccess($idSite)) {
+                throw $exception;
+            }
+            return $autoArchive;
+        }
+
+        // pre-processed segment for a given website requires admin access
+        if(!Piwik::isUserHasAdminAccess($idSite)) {
+            throw $exception;
+        }
+
         return $autoArchive;
     }
 
diff --git a/plugins/UserCountryMap/lang/pl.json b/plugins/UserCountryMap/lang/pl.json
index c948f51bf048ea327836c63e9980e6ebba18bb96..1319e7f781f5a289b10617a91dbe49a8b6ee205f 100644
--- a/plugins/UserCountryMap/lang/pl.json
+++ b/plugins/UserCountryMap/lang/pl.json
@@ -10,6 +10,7 @@
         "Minutes": "minut",
         "None": "Brak",
         "NoVisit": "Brak wizyt",
+        "RealTimeMap": "Mapa czasu rzeczywistego",
         "Regions": "Regiony",
         "Searches": "%s wyszukań",
         "Seconds": "sekund",
diff --git a/plugins/UsersManager/API.php b/plugins/UsersManager/API.php
index 7a1c9faf7a8aed4ba59e45db195c5924c65d402d..2281f36513eeee13cb23e4812c2e4fc53c9e84ed 100644
--- a/plugins/UsersManager/API.php
+++ b/plugins/UsersManager/API.php
@@ -397,7 +397,12 @@ class API extends \Piwik\Plugin\API
     {
         Piwik::checkUserIsNotAnonymous();
 
-        return $this->model->getUsersHavingSuperUserAccess();
+        $users = $this->model->getUsersHavingSuperUserAccess();
+        foreach($users as &$user) {
+            // remove token_auth in API response
+            unset($user['token_auth']);
+        }
+        return $users;
     }
 
     /**
diff --git a/plugins/UsersManager/Menu.php b/plugins/UsersManager/Menu.php
index 88aeb051f5b8cb79b561d8bb80ccd5f38bfc24ad..cf363926036f305d9163b01145498ad6c8cbe118 100644
--- a/plugins/UsersManager/Menu.php
+++ b/plugins/UsersManager/Menu.php
@@ -25,7 +25,7 @@ class Menu extends \Piwik\Plugin\Menu
     public function configureUserMenu(MenuUser $menu)
     {
         if (!Piwik::isUserIsAnonymous()) {
-            $menu->addItem('', 'General_Settings', $this->urlForAction('index'), 0);
+            $menu->addItem('', 'General_Settings', $this->urlForAction('userSettings'), 0);
         }
     }
 }
diff --git a/plugins/UsersManager/Model.php b/plugins/UsersManager/Model.php
index 3d62ca61fd8e43265503e4331c279e81b0a493d1..1729d51c7d4566ea1d04ff50a17d5f1bf7316cab 100644
--- a/plugins/UsersManager/Model.php
+++ b/plugins/UsersManager/Model.php
@@ -190,9 +190,14 @@ class Model
         );
     }
 
+    /**
+     * Note that this returns the token_auth which is as private as the password!
+     *
+     * @return returns login, email and token_auth
+     */
     public function getUsersHavingSuperUserAccess()
     {
-        $users = $this->getDb()->fetchAll("SELECT login, email
+        $users = $this->getDb()->fetchAll("SELECT login, email, token_auth
                                            FROM " . Common::prefixTable("user") . "
                                            WHERE superuser_access = 1
                                            ORDER BY date_registered ASC");
diff --git a/plugins/UsersManager/javascripts/usersManager.js b/plugins/UsersManager/javascripts/usersManager.js
index b7e8ed04f37d9761c0d9a2f50dbe8e8120e36aa4..51be3f80639582791587f1414b06c6cdcbe14814 100644
--- a/plugins/UsersManager/javascripts/usersManager.js
+++ b/plugins/UsersManager/javascripts/usersManager.js
@@ -303,4 +303,12 @@ $(document).ready(function () {
             piwik.broadcast.propagateNewPage('segment=&idSite=' + site.id, false);
         }
     });
+
+    // Show the token_auth
+    $('.token_auth').click(function () {
+        var token = $(this).data('token');
+        if ($(this).text() != token) {
+            $(this).text(token);
+        }
+    });
 });
diff --git a/plugins/UsersManager/templates/index.twig b/plugins/UsersManager/templates/index.twig
index d411b6e02bd131da0f8ad57786fb05bcdc1bc705..f102bce7e1d4231e9900a5e12e55ad6b6eaa3e4d 100644
--- a/plugins/UsersManager/templates/index.twig
+++ b/plugins/UsersManager/templates/index.twig
@@ -135,7 +135,7 @@
                         <td id="password" class="editable">-</td>
                         <td id="email" class="editable">{{ user.email }}</td>
                         <td id="alias" class="editable">{{ user.alias|raw }}</td>
-                        <td id="token_auth">{{ user.token_auth }}</td>
+                        <td id="token_auth" class="token_auth" data-token="{{ user.token_auth }}">{{ user.token_auth|slice(0, 8) }}…</td>
                         {% if user.last_seen is defined %}
                         <td id="last_seen">{% if user.last_seen is empty %}-{% else %}{{ 'General_TimeAgo'|translate(user.last_seen)|raw }}{% endif %}</td>
                         {% endif %}
diff --git a/plugins/VisitorGenerator b/plugins/VisitorGenerator
index 5385c1cf4f30878ddb9bc7f92fda3d1614e97799..aea836e8702778a52a22c3453061c8066fd34cd0 160000
--- a/plugins/VisitorGenerator
+++ b/plugins/VisitorGenerator
@@ -1 +1 @@
-Subproject commit 5385c1cf4f30878ddb9bc7f92fda3d1614e97799
+Subproject commit aea836e8702778a52a22c3453061c8066fd34cd0
diff --git a/tests/PHPUnit/Impl/TestRequestResponse.php b/tests/PHPUnit/Impl/TestRequestResponse.php
index f71a430aa6d0abf1eb215cd58f318d0e30c145df..026f2c43b48a2301c52ac203281fa2b65a7894ef 100644
--- a/tests/PHPUnit/Impl/TestRequestResponse.php
+++ b/tests/PHPUnit/Impl/TestRequestResponse.php
@@ -71,10 +71,17 @@ class TestRequestResponse
 
         if ($expected->requestUrl['format'] == 'xml') {
             Asserts::assertXmlStringEqualsXmlString($expectedText, $actualText, $message);
-        } else {
+            return;
+        }
+
+        // check content size to get quick feedback and avoid lengthy diff
+        $checkSizeFirst = array('pdf', 'csv');
+        if(!empty($expected->requestUrl['reportFormat'])
+            && in_array($expected->requestUrl['reportFormat'], $checkSizeFirst)) {
             Asserts::assertEquals(strlen($expectedText), strlen($actualText), $message);
-            Asserts::assertEquals($expectedText, $actualText, $message);
         }
+
+        Asserts::assertEquals($expectedText, $actualText, $message);
     }
 
     private function normalizeApiResponse($apiResponse)
diff --git a/tests/PHPUnit/Integration/PiwikTest.php b/tests/PHPUnit/Integration/PiwikTest.php
index 99262e56bae939a849f3dfc5b83337e49a92ead1..c73f8bb0b48396d89e8bb6f46961f2a82db1f661 100644
--- a/tests/PHPUnit/Integration/PiwikTest.php
+++ b/tests/PHPUnit/Integration/PiwikTest.php
@@ -67,6 +67,99 @@ class Core_PiwikTest extends IntegrationTestCase
         $this->assertEquals($expected, $jsTag);
     }
 
+    /**
+     * Tests the generated JS code with protocol overwrite
+     * @group Core
+     */
+    public function testJavascriptTrackingCode_withAllOptionsAndProtocolOverwrite()
+    {
+        Piwik::addAction('Piwik.getJavascriptCode', function (&$codeImpl) {
+            $codeImpl['protocol'] = 'https://';
+        });
+
+        $jsTag = Piwik::getJavascriptCode($idSite = 1, $piwikUrl = 'http://localhost/piwik',
+            $mergeSubdomains = true, $groupPageTitlesByDomain = true, $mergeAliasUrls = true,
+            $visitorCustomVariables = array( array("name", "value"), array("name 2", "value 2") ),
+            $pageCustomVariables = array( array("page cvar", "page cvar value") ),
+            $customCampaignNameQueryParam = "campaignKey", $customCampaignKeywordParam = "keywordKey",
+            $doNotTrack = true);
+
+        $expected = "&lt;!-- Piwik --&gt;
+&lt;script type=&quot;text/javascript&quot;&gt;
+  var _paq = _paq || [];
+  _paq.push([\"setDocumentTitle\", document.domain + \"/\" + document.title]);
+  // you can set up to 5 custom variables for each visitor
+  _paq.push([\"setCustomVariable\", 1, \"name\", \"value\", \"visit\"]);
+  _paq.push([\"setCustomVariable\", 2, \"name 2\", \"value 2\", \"visit\"]);
+  // you can set up to 5 custom variables for each action (page view, download, click, site search)
+  _paq.push([\"setCustomVariable\", 1, \"page cvar\", \"page cvar value\", \"page\"]);
+  _paq.push([\"setCampaignNameKey\", \"campaignKey\"]);
+  _paq.push([\"setCampaignKeywordKey\", \"keywordKey\"]);
+  _paq.push([\"setDoNotTrack\", true]);
+  _paq.push(['trackPageView']);
+  _paq.push(['enableLinkTracking']);
+  (function() {
+    var u=&quot;https://localhost/piwik/&quot;;
+    _paq.push(['setTrackerUrl', u+'piwik.php']);
+    _paq.push(['setSiteId', 1]);
+    var d=document, g=d.createElement('script'), s=d.getElementsByTagName('script')[0];
+    g.type='text/javascript'; g.async=true; g.defer=true; g.src=u+'piwik.js'; s.parentNode.insertBefore(g,s);
+  })();
+&lt;/script&gt;
+&lt;noscript&gt;&lt;p&gt;&lt;img src=&quot;https://localhost/piwik/piwik.php?idsite=1&quot; style=&quot;border:0;&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;&lt;/noscript&gt;
+&lt;!-- End Piwik Code --&gt;
+";
+
+        $this->assertEquals($expected, $jsTag);
+    }
+
+    /**
+     * Tests the generated JS code with options before tracker url
+     * @group Core
+     */
+    public function testJavascriptTrackingCode_withAllOptionsAndOptionsBeforeTrackerUrl()
+    {
+        Piwik::addAction('Piwik.getJavascriptCode', function (&$codeImpl) {
+            $codeImpl['optionsBeforeTrackerUrl'] .= "_paq.push(['setAPIUrl', 'http://localhost/statistics']);\n    ";
+        });
+
+        $jsTag = Piwik::getJavascriptCode($idSite = 1, $piwikUrl = 'http://localhost/piwik',
+            $mergeSubdomains = true, $groupPageTitlesByDomain = true, $mergeAliasUrls = true,
+            $visitorCustomVariables = array( array("name", "value"), array("name 2", "value 2") ),
+            $pageCustomVariables = array( array("page cvar", "page cvar value") ),
+            $customCampaignNameQueryParam = "campaignKey", $customCampaignKeywordParam = "keywordKey",
+            $doNotTrack = true);
+
+        $expected = "&lt;!-- Piwik --&gt;
+&lt;script type=&quot;text/javascript&quot;&gt;
+  var _paq = _paq || [];
+  _paq.push([\"setDocumentTitle\", document.domain + \"/\" + document.title]);
+  // you can set up to 5 custom variables for each visitor
+  _paq.push([\"setCustomVariable\", 1, \"name\", \"value\", \"visit\"]);
+  _paq.push([\"setCustomVariable\", 2, \"name 2\", \"value 2\", \"visit\"]);
+  // you can set up to 5 custom variables for each action (page view, download, click, site search)
+  _paq.push([\"setCustomVariable\", 1, \"page cvar\", \"page cvar value\", \"page\"]);
+  _paq.push([\"setCampaignNameKey\", \"campaignKey\"]);
+  _paq.push([\"setCampaignKeywordKey\", \"keywordKey\"]);
+  _paq.push([\"setDoNotTrack\", true]);
+  _paq.push(['trackPageView']);
+  _paq.push(['enableLinkTracking']);
+  (function() {
+    var u=&quot;//localhost/piwik/&quot;;
+    _paq.push(['setAPIUrl', 'http://localhost/statistics']);
+    _paq.push(['setTrackerUrl', u+'piwik.php']);
+    _paq.push(['setSiteId', 1]);
+    var d=document, g=d.createElement('script'), s=d.getElementsByTagName('script')[0];
+    g.type='text/javascript'; g.async=true; g.defer=true; g.src=u+'piwik.js'; s.parentNode.insertBefore(g,s);
+  })();
+&lt;/script&gt;
+&lt;noscript&gt;&lt;p&gt;&lt;img src=&quot;//localhost/piwik/piwik.php?idsite=1&quot; style=&quot;border:0;&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;&lt;/noscript&gt;
+&lt;!-- End Piwik Code --&gt;
+";
+
+        $this->assertEquals($expected, $jsTag);
+    }
+
     /**
      * Dataprovider for testIsNumericValid
      */
diff --git a/tests/PHPUnit/Integration/expected/test_ImportLogs__WhiteLabel.getSampleReport_month.xml b/tests/PHPUnit/Integration/expected/test_ImportLogs__WhiteLabel.getSampleReport_month.xml
new file mode 100644
index 0000000000000000000000000000000000000000..a2de386f66be3ec1935e32849d9c40ebdf53b393
--- /dev/null
+++ b/tests/PHPUnit/Integration/expected/test_ImportLogs__WhiteLabel.getSampleReport_month.xml
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="utf-8" ?>
+<result>
+	<error message="The plugin WhiteLabel is not enabled. You can activate the plugin on Settings &gt; Plugins page in Piwik.
+ 
+ --&gt; To temporarily debug this error further, set const PIWIK_PRINT_ERROR_BACKTRACE=true; in index.php" />
+</result>
\ No newline at end of file
diff --git a/tests/PHPUnit/Integration/expected/test_noVisit_PeriodIsLast__WhiteLabel.getSampleReport_day.xml b/tests/PHPUnit/Integration/expected/test_noVisit_PeriodIsLast__WhiteLabel.getSampleReport_day.xml
new file mode 100644
index 0000000000000000000000000000000000000000..a2de386f66be3ec1935e32849d9c40ebdf53b393
--- /dev/null
+++ b/tests/PHPUnit/Integration/expected/test_noVisit_PeriodIsLast__WhiteLabel.getSampleReport_day.xml
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="utf-8" ?>
+<result>
+	<error message="The plugin WhiteLabel is not enabled. You can activate the plugin on Settings &gt; Plugins page in Piwik.
+ 
+ --&gt; To temporarily debug this error further, set const PIWIK_PRINT_ERROR_BACKTRACE=true; in index.php" />
+</result>
\ No newline at end of file
diff --git a/tests/PHPUnit/Integration/expected/test_noVisit_PeriodIsLast__WhiteLabel.getSampleReport_week.xml b/tests/PHPUnit/Integration/expected/test_noVisit_PeriodIsLast__WhiteLabel.getSampleReport_week.xml
new file mode 100644
index 0000000000000000000000000000000000000000..a2de386f66be3ec1935e32849d9c40ebdf53b393
--- /dev/null
+++ b/tests/PHPUnit/Integration/expected/test_noVisit_PeriodIsLast__WhiteLabel.getSampleReport_week.xml
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="utf-8" ?>
+<result>
+	<error message="The plugin WhiteLabel is not enabled. You can activate the plugin on Settings &gt; Plugins page in Piwik.
+ 
+ --&gt; To temporarily debug this error further, set const PIWIK_PRINT_ERROR_BACKTRACE=true; in index.php" />
+</result>
\ No newline at end of file
diff --git a/tests/PHPUnit/Integration/expected/test_noVisit__WhiteLabel.getSampleReport_day.xml b/tests/PHPUnit/Integration/expected/test_noVisit__WhiteLabel.getSampleReport_day.xml
new file mode 100644
index 0000000000000000000000000000000000000000..a2de386f66be3ec1935e32849d9c40ebdf53b393
--- /dev/null
+++ b/tests/PHPUnit/Integration/expected/test_noVisit__WhiteLabel.getSampleReport_day.xml
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="utf-8" ?>
+<result>
+	<error message="The plugin WhiteLabel is not enabled. You can activate the plugin on Settings &gt; Plugins page in Piwik.
+ 
+ --&gt; To temporarily debug this error further, set const PIWIK_PRINT_ERROR_BACKTRACE=true; in index.php" />
+</result>
\ No newline at end of file
diff --git a/tests/PHPUnit/System/expected/test_ArchiveCronTest_archive_php_cron_output.txt b/tests/PHPUnit/System/expected/test_ArchiveCronTest_archive_php_cron_output.txt
index afc6e909b1137d67b0bc6ba249b68405aba3ee56..16bfe19f8cb3698fff4a6fa5d4cf3333d3133ba2 100644
--- a/tests/PHPUnit/System/expected/test_ArchiveCronTest_archive_php_cron_output.txt
+++ b/tests/PHPUnit/System/expected/test_ArchiveCronTest_archive_php_cron_output.txt
@@ -1,73 +1,11 @@
 
 -------------------------------------------------------
 Using this 'archive.php' script is no longer recommended.
-Please use '/path/to/php /home/travis/build/piwik/piwik/tests/PHPUnit/proxy/../../..//console core:archive --url=http://localhost/tests/PHPUnit/proxy/index.php' instead.
-To get help use '/path/to/php /home/travis/build/piwik/piwik/tests/PHPUnit/proxy/../../..//console core:archive --help'
+Please use '/path/to/php /home/matt/dev/piwik-master/tests/PHPUnit/proxy/../../..//console core:archive --url=http://localhost/piwik-master/tests/PHPUnit/proxy/index.php' instead.
+To get help use '/path/to/php /home/matt/dev/piwik-master/tests/PHPUnit/proxy/../../..//console core:archive --help'
 See also: http://piwik.org/docs/setup-auto-archiving/
 
 If you cannot use the console because it requires CLI
 try 'php archive.php -- url=http://your.piwik/path'
 -------------------------------------------------------
 
-
-INFO CoreConsole[2014-09-09 01:46:27] ---------------------------
-INFO CoreConsole[2014-09-09 01:46:27] INIT
-INFO CoreConsole[2014-09-09 01:46:27] Piwik is installed at: http://localhost/tests/PHPUnit/proxy/index.php
-INFO CoreConsole[2014-09-09 01:46:27] Running Piwik 2.7.0-b2 as Super User
-DEBUG CoreConsole[2014-09-09 01:46:27] /home/travis/.phpenv/versions/5.6.0/bin/php -q /home/travis/build/piwik/piwik/tests/PHPUnit/proxy/../../..//console climulti:request --piwik-domain='localhost' 'module=API&method=API.getDefaultMetricTranslations&format=original&serialize=1&trigger=archivephp&testmode=1&pid=2e1e341f728109bd9f2aa50667ff5ebd1334473b8e8026e85ab7850d28c9a2de11be5a02bbded91d38aab2870492ef77ebdd0' > /home/travis/build/piwik/piwik/tests/PHPUnit/proxy/../../..//tmp/climulti/2e1e341f728109bd9f2aa50667ff5ebd1334473b8e8026e85ab7850d28c9a2de11be5a02bbded91d38aab2870492ef77ebdd0.output 2>&1 &
-INFO CoreConsole[2014-09-09 01:46:28] ---------------------------
-INFO CoreConsole[2014-09-09 01:46:28] NOTES
-INFO CoreConsole[2014-09-09 01:46:28] - If you execute this script at least once per hour (or more often) in a crontab, you may disable 'Browser trigger archiving' in Piwik UI > Settings > General Settings.
-INFO CoreConsole[2014-09-09 01:46:28] See the doc at: http://piwik.org/docs/setup-auto-archiving/
-INFO CoreConsole[2014-09-09 01:46:28] - Reports for today will be processed at most every 150 seconds. You can change this value in Piwik UI > Settings > General Settings.
-INFO CoreConsole[2014-09-09 01:46:28] - Reports for the current week/month/year will be refreshed at most every 3600 seconds.
-INFO CoreConsole[2014-09-09 01:46:28] - Will process 0 websites with new visits since 7 days 0 hours
-INFO CoreConsole[2014-09-09 01:46:28] - Will process 2 other websites because some old data reports have been invalidated (eg. using the Log Import script) , IDs: 1, 2
-INFO CoreConsole[2014-09-09 01:46:28] ---------------------------
-INFO CoreConsole[2014-09-09 01:46:28] START
-INFO CoreConsole[2014-09-09 01:46:28] Starting Piwik reports archiving...
-DEBUG CoreConsole[2014-09-09 01:46:28] /home/travis/.phpenv/versions/5.6.0/bin/php -q /home/travis/build/piwik/piwik/tests/PHPUnit/proxy/../../..//console climulti:request --piwik-domain='localhost' 'module=API&method=API.get&idSite=1&period=day&date=last52&format=php&token_auth=9ad1de7f8b329ab919d854c556f860c1&trigger=archivephp&testmode=1&pid=85cfb29c2e26e4c8440e7e33d55e413d39509345117eb194d4ba3b2459213c11737c71fb534b13d060ee3a51686d040bcd780' > /home/travis/build/piwik/piwik/tests/PHPUnit/proxy/../../..//tmp/climulti/85cfb29c2e26e4c8440e7e33d55e413d39509345117eb194d4ba3b2459213c11737c71fb534b13d060ee3a51686d040bcd780.output 2>&1 &
-INFO CoreConsole[2014-09-09 01:46:29] Will pre-process the following 1 Segments for this website (id = 1): browserCode==IE
-DEBUG CoreConsole[2014-09-09 01:46:29] /home/travis/.phpenv/versions/5.6.0/bin/php -q /home/travis/build/piwik/piwik/tests/PHPUnit/proxy/../../..//console climulti:request --piwik-domain='localhost' 'module=API&method=API.get&idSite=1&period=day&date=last52&format=php&token_auth=9ad1de7f8b329ab919d854c556f860c1&trigger=archivephp&segment=browserCode%3D%3DIE&testmode=1&pid=e517450ff87813ef3b86a502f8e864d00e86570c4a62df480ab1e2c7d3e6233ca2de3e34d74a5f4601857ba97241fa7469ad0' > /home/travis/build/piwik/piwik/tests/PHPUnit/proxy/../../..//tmp/climulti/e517450ff87813ef3b86a502f8e864d00e86570c4a62df480ab1e2c7d3e6233ca2de3e34d74a5f4601857ba97241fa7469ad0.output 2>&1 &
-INFO CoreConsole[2014-09-09 01:46:31] Archived website id = 1, period = day, 0 visits in last last52 days, 0 visits today, Time elapsed: 3.438s
-INFO CoreConsole[2014-09-09 01:46:31] Will pre-process the following 1 Segments for this website (id = 1): browserCode==IE
-DEBUG CoreConsole[2014-09-09 01:46:31] /home/travis/.phpenv/versions/5.6.0/bin/php -q /home/travis/build/piwik/piwik/tests/PHPUnit/proxy/../../..//console climulti:request --piwik-domain='localhost' 'module=API&method=API.get&idSite=1&period=week&date=last260&format=php&token_auth=9ad1de7f8b329ab919d854c556f860c1&trigger=archivephp&testmode=1&pid=064eca2df6d0757ed6c729255a072f39dddcfb7132eede4fb060f3c000aaf06abc5b8d1e6a1d7f5a75191665e2ee17322fff0' > /home/travis/build/piwik/piwik/tests/PHPUnit/proxy/../../..//tmp/climulti/064eca2df6d0757ed6c729255a072f39dddcfb7132eede4fb060f3c000aaf06abc5b8d1e6a1d7f5a75191665e2ee17322fff0.output 2>&1 &
-DEBUG CoreConsole[2014-09-09 01:46:31] /home/travis/.phpenv/versions/5.6.0/bin/php -q /home/travis/build/piwik/piwik/tests/PHPUnit/proxy/../../..//console climulti:request --piwik-domain='localhost' 'module=API&method=API.get&idSite=1&period=week&date=last260&format=php&token_auth=9ad1de7f8b329ab919d854c556f860c1&trigger=archivephp&segment=browserCode%3D%3DIE&testmode=1&pid=05b992fcb7f031578d525e2a1f4f50c50ac40c0ca149c7c17243a57a96530a80c0d774430ed783c3bcb4ef9f1fc78b6054ce1' > /home/travis/build/piwik/piwik/tests/PHPUnit/proxy/../../..//tmp/climulti/05b992fcb7f031578d525e2a1f4f50c50ac40c0ca149c7c17243a57a96530a80c0d774430ed783c3bcb4ef9f1fc78b6054ce1.output 2>&1 &
-INFO CoreConsole[2014-09-09 01:46:50] Archived website id = 1, period = week, 40 visits in last last260 weeks, 0 visits this week, Time elapsed: 19.207s
-INFO CoreConsole[2014-09-09 01:46:50] Will pre-process the following 1 Segments for this website (id = 1): browserCode==IE
-DEBUG CoreConsole[2014-09-09 01:46:50] /home/travis/.phpenv/versions/5.6.0/bin/php -q /home/travis/build/piwik/piwik/tests/PHPUnit/proxy/../../..//console climulti:request --piwik-domain='localhost' 'module=API&method=API.get&idSite=1&period=month&date=last52&format=php&token_auth=9ad1de7f8b329ab919d854c556f860c1&trigger=archivephp&testmode=1&pid=b97b6610e36a1879beef58fa96cbbdb3fd16e27953fea563b080df5ec743f899de9cd189e99a522132b1affa42b39c368c830' > /home/travis/build/piwik/piwik/tests/PHPUnit/proxy/../../..//tmp/climulti/b97b6610e36a1879beef58fa96cbbdb3fd16e27953fea563b080df5ec743f899de9cd189e99a522132b1affa42b39c368c830.output 2>&1 &
-DEBUG CoreConsole[2014-09-09 01:46:50] /home/travis/.phpenv/versions/5.6.0/bin/php -q /home/travis/build/piwik/piwik/tests/PHPUnit/proxy/../../..//console climulti:request --piwik-domain='localhost' 'module=API&method=API.get&idSite=1&period=month&date=last52&format=php&token_auth=9ad1de7f8b329ab919d854c556f860c1&trigger=archivephp&segment=browserCode%3D%3DIE&testmode=1&pid=9943bef019811f952ac8a2913efa0bf4c49862a24c78cbcda994890313db0cb693ce980e0ec5002f9d0501eb6df6218b370c1' > /home/travis/build/piwik/piwik/tests/PHPUnit/proxy/../../..//tmp/climulti/9943bef019811f952ac8a2913efa0bf4c49862a24c78cbcda994890313db0cb693ce980e0ec5002f9d0501eb6df6218b370c1.output 2>&1 &
-INFO CoreConsole[2014-09-09 01:47:01] Archived website id = 1, period = month, 40 visits in last last52 months, 0 visits this month, Time elapsed: 10.722s
-INFO CoreConsole[2014-09-09 01:47:01] Will pre-process the following 1 Segments for this website (id = 1): browserCode==IE
-DEBUG CoreConsole[2014-09-09 01:47:01] /home/travis/.phpenv/versions/5.6.0/bin/php -q /home/travis/build/piwik/piwik/tests/PHPUnit/proxy/../../..//console climulti:request --piwik-domain='localhost' 'module=API&method=API.get&idSite=1&period=year&date=last7&format=php&token_auth=9ad1de7f8b329ab919d854c556f860c1&trigger=archivephp&testmode=1&pid=773203159cb45b3702e6807c378c811f789b41f466570dec02f1558cb23d6eb7cb2163a52046dd2827ef68bed432b61818340' > /home/travis/build/piwik/piwik/tests/PHPUnit/proxy/../../..//tmp/climulti/773203159cb45b3702e6807c378c811f789b41f466570dec02f1558cb23d6eb7cb2163a52046dd2827ef68bed432b61818340.output 2>&1 &
-DEBUG CoreConsole[2014-09-09 01:47:01] /home/travis/.phpenv/versions/5.6.0/bin/php -q /home/travis/build/piwik/piwik/tests/PHPUnit/proxy/../../..//console climulti:request --piwik-domain='localhost' 'module=API&method=API.get&idSite=1&period=year&date=last7&format=php&token_auth=9ad1de7f8b329ab919d854c556f860c1&trigger=archivephp&segment=browserCode%3D%3DIE&testmode=1&pid=63ed9ebfc2372a39e2c3111dd73fbfb529d5db843e728c09afdf8cf78f32983dabe42cbba513af309f04ae5e2ef664eada8a1' > /home/travis/build/piwik/piwik/tests/PHPUnit/proxy/../../..//tmp/climulti/63ed9ebfc2372a39e2c3111dd73fbfb529d5db843e728c09afdf8cf78f32983dabe42cbba513af309f04ae5e2ef664eada8a1.output 2>&1 &
-INFO CoreConsole[2014-09-09 01:47:03] Archived website id = 1, period = year, 40 visits in last last7 years, 12 visits this year, Time elapsed: 2.326s
-INFO CoreConsole[2014-09-09 01:47:03] Archived website id = 1, 8 API requests, Time elapsed: 35.697s [1/2 done]
-DEBUG CoreConsole[2014-09-09 01:47:03] /home/travis/.phpenv/versions/5.6.0/bin/php -q /home/travis/build/piwik/piwik/tests/PHPUnit/proxy/../../..//console climulti:request --piwik-domain='localhost' 'module=API&method=API.get&idSite=2&period=day&date=last52&format=php&token_auth=9ad1de7f8b329ab919d854c556f860c1&trigger=archivephp&testmode=1&pid=db38d41d3398b809310cc0d63ba1d3ee0d4726acaaea720b3412a9e5fa6311d88c6752611e6104270c047e0ecebed37db2fc0' > /home/travis/build/piwik/piwik/tests/PHPUnit/proxy/../../..//tmp/climulti/db38d41d3398b809310cc0d63ba1d3ee0d4726acaaea720b3412a9e5fa6311d88c6752611e6104270c047e0ecebed37db2fc0.output 2>&1 &
-INFO CoreConsole[2014-09-09 01:47:05] Archived website id = 2, period = day, 0 visits in last last52 days, 0 visits today, Time elapsed: 1.618s
-DEBUG CoreConsole[2014-09-09 01:47:05] /home/travis/.phpenv/versions/5.6.0/bin/php -q /home/travis/build/piwik/piwik/tests/PHPUnit/proxy/../../..//console climulti:request --piwik-domain='localhost' 'module=API&method=API.get&idSite=2&period=week&date=last260&format=php&token_auth=9ad1de7f8b329ab919d854c556f860c1&trigger=archivephp&testmode=1&pid=e1d0a7846bb142eded2edc12020f04b70b85023db70ea1b590d8e0f955277003fa45b8bff24756e6db5154e9bc3cbd2777700' > /home/travis/build/piwik/piwik/tests/PHPUnit/proxy/../../..//tmp/climulti/e1d0a7846bb142eded2edc12020f04b70b85023db70ea1b590d8e0f955277003fa45b8bff24756e6db5154e9bc3cbd2777700.output 2>&1 &
-INFO CoreConsole[2014-09-09 01:47:18] Archived website id = 2, period = week, 1 visits in last last260 weeks, 0 visits this week, Time elapsed: 13.418s
-DEBUG CoreConsole[2014-09-09 01:47:18] /home/travis/.phpenv/versions/5.6.0/bin/php -q /home/travis/build/piwik/piwik/tests/PHPUnit/proxy/../../..//console climulti:request --piwik-domain='localhost' 'module=API&method=API.get&idSite=2&period=month&date=last52&format=php&token_auth=9ad1de7f8b329ab919d854c556f860c1&trigger=archivephp&testmode=1&pid=81840a421ef9c17763c65ef8c899601470ae84add7097344023dc8876451749d42fbf4ea653a5498f8bd8358032bdc7a28f10' > /home/travis/build/piwik/piwik/tests/PHPUnit/proxy/../../..//tmp/climulti/81840a421ef9c17763c65ef8c899601470ae84add7097344023dc8876451749d42fbf4ea653a5498f8bd8358032bdc7a28f10.output 2>&1 &
-INFO CoreConsole[2014-09-09 01:47:25] Archived website id = 2, period = month, 1 visits in last last52 months, 0 visits this month, Time elapsed: 6.115s
-DEBUG CoreConsole[2014-09-09 01:47:25] /home/travis/.phpenv/versions/5.6.0/bin/php -q /home/travis/build/piwik/piwik/tests/PHPUnit/proxy/../../..//console climulti:request --piwik-domain='localhost' 'module=API&method=API.get&idSite=2&period=year&date=last7&format=php&token_auth=9ad1de7f8b329ab919d854c556f860c1&trigger=archivephp&testmode=1&pid=087c4f9970b4fedb2cd40f0fe1b5da80c76b8a64e63cd7e7a93885147dc86e67b0b0f79ab52cd1769e2d6634b59ce1ffa56f0' > /home/travis/build/piwik/piwik/tests/PHPUnit/proxy/../../..//tmp/climulti/087c4f9970b4fedb2cd40f0fe1b5da80c76b8a64e63cd7e7a93885147dc86e67b0b0f79ab52cd1769e2d6634b59ce1ffa56f0.output 2>&1 &
-INFO CoreConsole[2014-09-09 01:47:26] Archived website id = 2, period = year, 1 visits in last last7 years, 0 visits this year, Time elapsed: 1.373s
-INFO CoreConsole[2014-09-09 01:47:26] Archived website id = 2, 4 API requests, Time elapsed: 22.528s [2/2 done]
-INFO CoreConsole[2014-09-09 01:47:26] Done archiving!
-INFO CoreConsole[2014-09-09 01:47:26] ---------------------------
-INFO CoreConsole[2014-09-09 01:47:26] SUMMARY
-INFO CoreConsole[2014-09-09 01:47:26] Total visits for today across archived websites: 0
-INFO CoreConsole[2014-09-09 01:47:26] Archived today's reports for 2 websites
-INFO CoreConsole[2014-09-09 01:47:26] Archived week/month/year for 2 websites
-INFO CoreConsole[2014-09-09 01:47:26] Skipped 0 websites: no new visit since the last script execution
-INFO CoreConsole[2014-09-09 01:47:26] Skipped 0 websites day archiving: existing daily reports are less than 150 seconds old
-INFO CoreConsole[2014-09-09 01:47:26] Skipped 0 websites week/month/year archiving: existing periods reports are less than 3600 seconds old
-INFO CoreConsole[2014-09-09 01:47:26] Total API requests: 12
-INFO CoreConsole[2014-09-09 01:47:26] done: 2/2 100%, 0 vtoday, 2 wtoday, 2 wperiods, 12 req, 58327 ms, no error
-INFO CoreConsole[2014-09-09 01:47:26] Time elapsed: 58.328s
-INFO CoreConsole[2014-09-09 01:47:26] ---------------------------
-INFO CoreConsole[2014-09-09 01:47:26] SCHEDULED TASKS
-INFO CoreConsole[2014-09-09 01:47:26] Starting Scheduled tasks...
-DEBUG CoreConsole[2014-09-09 01:47:26] /home/travis/.phpenv/versions/5.6.0/bin/php -q /home/travis/build/piwik/piwik/tests/PHPUnit/proxy/../../..//console climulti:request --piwik-domain='localhost' 'module=API&method=CoreAdminHome.runScheduledTasks&format=csv&convertToUnicode=0&token_auth=9ad1de7f8b329ab919d854c556f860c1&trigger=archivephp&testmode=1&pid=334d2f79cda2d2f08e0357c080f38cf6fe90f1248ebb91af3cea79e4593d1c4feff96328b77d32ce1fe9cfcd6e434b11dca50' > /home/travis/build/piwik/piwik/tests/PHPUnit/proxy/../../..//tmp/climulti/334d2f79cda2d2f08e0357c080f38cf6fe90f1248ebb91af3cea79e4593d1c4feff96328b77d32ce1fe9cfcd6e434b11dca50.output 2>&1 &
-INFO CoreConsole[2014-09-09 01:47:26] No task to run
-INFO CoreConsole[2014-09-09 01:47:26] done
-INFO CoreConsole[2014-09-09 01:47:26] ---------------------------
\ No newline at end of file
diff --git a/tests/PHPUnit/System/expected/test_ArchiveCronTest_segmentOnlyOneSite_noOptions__VisitsSummary.get_day.xml b/tests/PHPUnit/System/expected/test_ArchiveCronTest_segmentOnlyOneSite_noOptions__VisitsSummary.get_day.xml
index d7dfbaef5a120118a7c2ee23a16a8a0ea288e7a2..89cd6273392c68181061c2eda26d01c61d7315e4 100644
--- a/tests/PHPUnit/System/expected/test_ArchiveCronTest_segmentOnlyOneSite_noOptions__VisitsSummary.get_day.xml
+++ b/tests/PHPUnit/System/expected/test_ArchiveCronTest_segmentOnlyOneSite_noOptions__VisitsSummary.get_day.xml
@@ -2,6 +2,7 @@
 <results>
 	<result idSite="1">
 		<nb_uniq_visitors>1</nb_uniq_visitors>
+		<nb_users>0</nb_users>
 		<nb_visits>1</nb_visits>
 		<nb_actions>1</nb_actions>
 		<nb_visits_converted>1</nb_visits_converted>
diff --git a/tests/PHPUnit/System/expected/test_ArchiveCronTest_segmentOnlyOneSite_noOptions__VisitsSummary.get_month.xml b/tests/PHPUnit/System/expected/test_ArchiveCronTest_segmentOnlyOneSite_noOptions__VisitsSummary.get_month.xml
index e949f7b0418976dc2599d994b42e9bb61a4e8161..dc70f24c00da91b00873fb529f84697a71731a13 100644
--- a/tests/PHPUnit/System/expected/test_ArchiveCronTest_segmentOnlyOneSite_noOptions__VisitsSummary.get_month.xml
+++ b/tests/PHPUnit/System/expected/test_ArchiveCronTest_segmentOnlyOneSite_noOptions__VisitsSummary.get_month.xml
@@ -2,6 +2,7 @@
 <results>
 	<result idSite="1">
 		<nb_uniq_visitors>6</nb_uniq_visitors>
+		<nb_users>0</nb_users>
 		<nb_visits>6</nb_visits>
 		<nb_actions>6</nb_actions>
 		<nb_visits_converted>6</nb_visits_converted>
diff --git a/tests/PHPUnit/System/expected/test_ArchiveCronTest_segmentOnlyOneSite_noOptions__VisitsSummary.get_week.xml b/tests/PHPUnit/System/expected/test_ArchiveCronTest_segmentOnlyOneSite_noOptions__VisitsSummary.get_week.xml
index 4e3f9c3a15973cc13728d71a54312b08c18f3d67..09a9dec19afa38e9ef0e3c425924587d1a0702b2 100644
--- a/tests/PHPUnit/System/expected/test_ArchiveCronTest_segmentOnlyOneSite_noOptions__VisitsSummary.get_week.xml
+++ b/tests/PHPUnit/System/expected/test_ArchiveCronTest_segmentOnlyOneSite_noOptions__VisitsSummary.get_week.xml
@@ -2,6 +2,7 @@
 <results>
 	<result idSite="1">
 		<nb_uniq_visitors>5</nb_uniq_visitors>
+		<nb_users>0</nb_users>
 		<nb_visits>5</nb_visits>
 		<nb_actions>5</nb_actions>
 		<nb_visits_converted>5</nb_visits_converted>
diff --git a/tests/PHPUnit/System/expected/test_AutoSuggestAPITest__Live.getLastVisitsDetails_range.xml b/tests/PHPUnit/System/expected/test_AutoSuggestAPITest__Live.getLastVisitsDetails_range.xml
index 88e4c569eba28d9720bda1cee92f587bfecd8375..06d553899c0d4e1bf509e3dfbf6bb81e9c0477fc 100644
--- a/tests/PHPUnit/System/expected/test_AutoSuggestAPITest__Live.getLastVisitsDetails_range.xml
+++ b/tests/PHPUnit/System/expected/test_AutoSuggestAPITest__Live.getLastVisitsDetails_range.xml
@@ -98,7 +98,7 @@
 		<daysSinceLastVisit>0</daysSinceLastVisit>
 		<provider>Unknown</provider>
 		<providerName>Unknown</providerName>
-		<providerUrl>http://piwik.org/faq/general/#faq_52</providerUrl>
+		<providerUrl />
 		<customVariables>
 		</customVariables>
 		
@@ -246,7 +246,7 @@
 		<daysSinceLastVisit>10</daysSinceLastVisit>
 		<provider>Unknown</provider>
 		<providerName>Unknown</providerName>
-		<providerUrl>http://piwik.org/faq/general/#faq_52</providerUrl>
+		<providerUrl />
 		<customVariables>
 			<row>
 				<customVariableName1>Cvar 1 name</customVariableName1>
@@ -371,7 +371,7 @@
 		<daysSinceLastVisit>11</daysSinceLastVisit>
 		<provider>Unknown</provider>
 		<providerName>Unknown</providerName>
-		<providerUrl>http://piwik.org/faq/general/#faq_52</providerUrl>
+		<providerUrl />
 		<customVariables>
 			<row>
 				<customVariableName1>Cvar 1 name</customVariableName1>
@@ -510,7 +510,7 @@
 		<daysSinceLastVisit>10</daysSinceLastVisit>
 		<provider>Unknown</provider>
 		<providerName>Unknown</providerName>
-		<providerUrl>http://piwik.org/faq/general/#faq_52</providerUrl>
+		<providerUrl />
 		<customVariables>
 			<row>
 				<customVariableName1>Cvar 1 name</customVariableName1>
@@ -635,7 +635,7 @@
 		<daysSinceLastVisit>11</daysSinceLastVisit>
 		<provider>Unknown</provider>
 		<providerName>Unknown</providerName>
-		<providerUrl>http://piwik.org/faq/general/#faq_52</providerUrl>
+		<providerUrl />
 		<customVariables>
 			<row>
 				<customVariableName1>Cvar 1 name</customVariableName1>
@@ -791,7 +791,7 @@
 		<daysSinceLastVisit>10</daysSinceLastVisit>
 		<provider>Unknown</provider>
 		<providerName>Unknown</providerName>
-		<providerUrl>http://piwik.org/faq/general/#faq_52</providerUrl>
+		<providerUrl />
 		<customVariables>
 			<row>
 				<customVariableName1>Cvar 1 name</customVariableName1>
@@ -916,7 +916,7 @@
 		<daysSinceLastVisit>11</daysSinceLastVisit>
 		<provider>Unknown</provider>
 		<providerName>Unknown</providerName>
-		<providerUrl>http://piwik.org/faq/general/#faq_52</providerUrl>
+		<providerUrl />
 		<customVariables>
 			<row>
 				<customVariableName1>Cvar 1 name</customVariableName1>
@@ -1055,7 +1055,7 @@
 		<daysSinceLastVisit>10</daysSinceLastVisit>
 		<provider>Unknown</provider>
 		<providerName>Unknown</providerName>
-		<providerUrl>http://piwik.org/faq/general/#faq_52</providerUrl>
+		<providerUrl />
 		<customVariables>
 			<row>
 				<customVariableName1>Cvar 1 name</customVariableName1>
@@ -1180,7 +1180,7 @@
 		<daysSinceLastVisit>11</daysSinceLastVisit>
 		<provider>Unknown</provider>
 		<providerName>Unknown</providerName>
-		<providerUrl>http://piwik.org/faq/general/#faq_52</providerUrl>
+		<providerUrl />
 		<customVariables>
 			<row>
 				<customVariableName1>Cvar 1 name</customVariableName1>
@@ -1600,7 +1600,7 @@
 		<daysSinceLastVisit>10</daysSinceLastVisit>
 		<provider>Unknown</provider>
 		<providerName>Unknown</providerName>
-		<providerUrl>http://piwik.org/faq/general/#faq_52</providerUrl>
+		<providerUrl />
 		<customVariables>
 			<row>
 				<customVariableName1>Cvar 1 name</customVariableName1>
@@ -1739,7 +1739,7 @@
 		<daysSinceLastVisit>10</daysSinceLastVisit>
 		<provider>Unknown</provider>
 		<providerName>Unknown</providerName>
-		<providerUrl>http://piwik.org/faq/general/#faq_52</providerUrl>
+		<providerUrl />
 		<customVariables>
 		</customVariables>
 		
@@ -1856,7 +1856,7 @@
 		<daysSinceLastVisit>11</daysSinceLastVisit>
 		<provider>Unknown</provider>
 		<providerName>Unknown</providerName>
-		<providerUrl>http://piwik.org/faq/general/#faq_52</providerUrl>
+		<providerUrl />
 		<customVariables>
 			<row>
 				<customVariableName1>Cvar 1 name</customVariableName1>
@@ -1981,7 +1981,7 @@
 		<daysSinceLastVisit>11</daysSinceLastVisit>
 		<provider>Unknown</provider>
 		<providerName>Unknown</providerName>
-		<providerUrl>http://piwik.org/faq/general/#faq_52</providerUrl>
+		<providerUrl />
 		<customVariables>
 			<row>
 				<customVariableName1>Cvar 1 name</customVariableName1>
@@ -2293,7 +2293,7 @@
 		<daysSinceLastVisit>10</daysSinceLastVisit>
 		<provider>Unknown</provider>
 		<providerName>Unknown</providerName>
-		<providerUrl>http://piwik.org/faq/general/#faq_52</providerUrl>
+		<providerUrl />
 		<customVariables>
 		</customVariables>
 		
@@ -2535,7 +2535,7 @@
 		<daysSinceLastVisit>11</daysSinceLastVisit>
 		<provider>Unknown</provider>
 		<providerName>Unknown</providerName>
-		<providerUrl>http://piwik.org/faq/general/#faq_52</providerUrl>
+		<providerUrl />
 		<customVariables>
 			<row>
 				<customVariableName1>Cvar 1 name</customVariableName1>
@@ -2674,7 +2674,7 @@
 		<daysSinceLastVisit>10</daysSinceLastVisit>
 		<provider>Unknown</provider>
 		<providerName>Unknown</providerName>
-		<providerUrl>http://piwik.org/faq/general/#faq_52</providerUrl>
+		<providerUrl />
 		<customVariables>
 			<row>
 				<customVariableName1>Cvar 1 name</customVariableName1>
@@ -2813,7 +2813,7 @@
 		<daysSinceLastVisit>10</daysSinceLastVisit>
 		<provider>Unknown</provider>
 		<providerName>Unknown</providerName>
-		<providerUrl>http://piwik.org/faq/general/#faq_52</providerUrl>
+		<providerUrl />
 		<customVariables>
 			<row>
 				<customVariableName1>Cvar 1 name</customVariableName1>
@@ -2952,7 +2952,7 @@
 		<daysSinceLastVisit>10</daysSinceLastVisit>
 		<provider>Unknown</provider>
 		<providerName>Unknown</providerName>
-		<providerUrl>http://piwik.org/faq/general/#faq_52</providerUrl>
+		<providerUrl />
 		<customVariables>
 		</customVariables>
 		
@@ -3083,7 +3083,7 @@
 		<daysSinceLastVisit>10</daysSinceLastVisit>
 		<provider>Unknown</provider>
 		<providerName>Unknown</providerName>
-		<providerUrl>http://piwik.org/faq/general/#faq_52</providerUrl>
+		<providerUrl />
 		<customVariables>
 			<row>
 				<customVariableName1>Cvar 1 name</customVariableName1>
@@ -3208,7 +3208,7 @@
 		<daysSinceLastVisit>11</daysSinceLastVisit>
 		<provider>Unknown</provider>
 		<providerName>Unknown</providerName>
-		<providerUrl>http://piwik.org/faq/general/#faq_52</providerUrl>
+		<providerUrl />
 		<customVariables>
 			<row>
 				<customVariableName1>Cvar 1 name</customVariableName1>
@@ -3333,7 +3333,7 @@
 		<daysSinceLastVisit>11</daysSinceLastVisit>
 		<provider>Unknown</provider>
 		<providerName>Unknown</providerName>
-		<providerUrl>http://piwik.org/faq/general/#faq_52</providerUrl>
+		<providerUrl />
 		<customVariables>
 			<row>
 				<customVariableName1>Cvar 1 name</customVariableName1>
@@ -3458,7 +3458,7 @@
 		<daysSinceLastVisit>11</daysSinceLastVisit>
 		<provider>Unknown</provider>
 		<providerName>Unknown</providerName>
-		<providerUrl>http://piwik.org/faq/general/#faq_52</providerUrl>
+		<providerUrl />
 		<customVariables>
 			<row>
 				<customVariableName1>Cvar 1 name</customVariableName1>
@@ -3583,7 +3583,7 @@
 		<daysSinceLastVisit>11</daysSinceLastVisit>
 		<provider>Unknown</provider>
 		<providerName>Unknown</providerName>
-		<providerUrl>http://piwik.org/faq/general/#faq_52</providerUrl>
+		<providerUrl />
 		<customVariables>
 			<row>
 				<customVariableName1>Cvar 1 name</customVariableName1>
@@ -3739,7 +3739,7 @@
 		<daysSinceLastVisit>10</daysSinceLastVisit>
 		<provider>Unknown</provider>
 		<providerName>Unknown</providerName>
-		<providerUrl>http://piwik.org/faq/general/#faq_52</providerUrl>
+		<providerUrl />
 		<customVariables>
 			<row>
 				<customVariableName1>Cvar 1 name</customVariableName1>
@@ -3895,7 +3895,7 @@
 		<daysSinceLastVisit>10</daysSinceLastVisit>
 		<provider>Unknown</provider>
 		<providerName>Unknown</providerName>
-		<providerUrl>http://piwik.org/faq/general/#faq_52</providerUrl>
+		<providerUrl />
 		<customVariables>
 			<row>
 				<customVariableName1>Cvar 1 name</customVariableName1>
@@ -4051,7 +4051,7 @@
 		<daysSinceLastVisit>10</daysSinceLastVisit>
 		<provider>Unknown</provider>
 		<providerName>Unknown</providerName>
-		<providerUrl>http://piwik.org/faq/general/#faq_52</providerUrl>
+		<providerUrl />
 		<customVariables>
 		</customVariables>
 		
@@ -4199,7 +4199,7 @@
 		<daysSinceLastVisit>10</daysSinceLastVisit>
 		<provider>Unknown</provider>
 		<providerName>Unknown</providerName>
-		<providerUrl>http://piwik.org/faq/general/#faq_52</providerUrl>
+		<providerUrl />
 		<customVariables>
 			<row>
 				<customVariableName1>Cvar 1 name</customVariableName1>
@@ -4324,7 +4324,7 @@
 		<daysSinceLastVisit>0</daysSinceLastVisit>
 		<provider>Unknown</provider>
 		<providerName>Unknown</providerName>
-		<providerUrl>http://piwik.org/faq/general/#faq_52</providerUrl>
+		<providerUrl />
 		<customVariables>
 			<row>
 				<customVariableName1>Cvar 1 name</customVariableName1>
@@ -4449,7 +4449,7 @@
 		<daysSinceLastVisit>0</daysSinceLastVisit>
 		<provider>Unknown</provider>
 		<providerName>Unknown</providerName>
-		<providerUrl>http://piwik.org/faq/general/#faq_52</providerUrl>
+		<providerUrl />
 		<customVariables>
 			<row>
 				<customVariableName1>Cvar 1 name</customVariableName1>
@@ -4574,7 +4574,7 @@
 		<daysSinceLastVisit>0</daysSinceLastVisit>
 		<provider>Unknown</provider>
 		<providerName>Unknown</providerName>
-		<providerUrl>http://piwik.org/faq/general/#faq_52</providerUrl>
+		<providerUrl />
 		<customVariables>
 			<row>
 				<customVariableName1>Cvar 1 name</customVariableName1>
@@ -4699,7 +4699,7 @@
 		<daysSinceLastVisit>0</daysSinceLastVisit>
 		<provider>Unknown</provider>
 		<providerName>Unknown</providerName>
-		<providerUrl>http://piwik.org/faq/general/#faq_52</providerUrl>
+		<providerUrl />
 		<customVariables>
 			<row>
 				<customVariableName1>Cvar 1 name</customVariableName1>
diff --git a/tests/PHPUnit/System/expected/test_CustomEvents__Live.getLastVisitsDetails_day.xml b/tests/PHPUnit/System/expected/test_CustomEvents__Live.getLastVisitsDetails_day.xml
index 61b4626535f827b7016a17fc752b88b35ff6423f..20a321c37a2078a6fd953e8a68766782c43af87b 100644
--- a/tests/PHPUnit/System/expected/test_CustomEvents__Live.getLastVisitsDetails_day.xml
+++ b/tests/PHPUnit/System/expected/test_CustomEvents__Live.getLastVisitsDetails_day.xml
@@ -49,7 +49,7 @@
 		<events>1</events>
 		<provider>Unknown</provider>
 		<providerName>Unknown</providerName>
-		<providerUrl>http://piwik.org/faq/general/#faq_52</providerUrl>
+		<providerUrl />
 		<referrerType>direct</referrerType>
 		<referrerTypeName>Direct Entry</referrerTypeName>
 		<referrerName />
@@ -151,7 +151,7 @@
 		<events>1</events>
 		<provider>Unknown</provider>
 		<providerName>Unknown</providerName>
-		<providerUrl>http://piwik.org/faq/general/#faq_52</providerUrl>
+		<providerUrl />
 		<referrerType>direct</referrerType>
 		<referrerTypeName>Direct Entry</referrerTypeName>
 		<referrerName />
@@ -321,7 +321,7 @@
 		<events>6</events>
 		<provider>Unknown</provider>
 		<providerName>Unknown</providerName>
-		<providerUrl>http://piwik.org/faq/general/#faq_52</providerUrl>
+		<providerUrl />
 		<referrerType>direct</referrerType>
 		<referrerTypeName>Direct Entry</referrerTypeName>
 		<referrerName />
@@ -423,7 +423,7 @@
 		<events>1</events>
 		<provider>Unknown</provider>
 		<providerName>Unknown</providerName>
-		<providerUrl>http://piwik.org/faq/general/#faq_52</providerUrl>
+		<providerUrl />
 		<referrerType>direct</referrerType>
 		<referrerTypeName>Direct Entry</referrerTypeName>
 		<referrerName />
@@ -760,7 +760,7 @@
 		<events>13</events>
 		<provider>Unknown</provider>
 		<providerName>Unknown</providerName>
-		<providerUrl>http://piwik.org/faq/general/#faq_52</providerUrl>
+		<providerUrl />
 		<referrerType>direct</referrerType>
 		<referrerTypeName>Direct Entry</referrerTypeName>
 		<referrerName />
@@ -862,7 +862,7 @@
 		<events>1</events>
 		<provider>Unknown</provider>
 		<providerName>Unknown</providerName>
-		<providerUrl>http://piwik.org/faq/general/#faq_52</providerUrl>
+		<providerUrl />
 		<referrerType>direct</referrerType>
 		<referrerTypeName>Direct Entry</referrerTypeName>
 		<referrerName />
@@ -960,7 +960,7 @@
 		<events>1</events>
 		<provider>Unknown</provider>
 		<providerName>Unknown</providerName>
-		<providerUrl>http://piwik.org/faq/general/#faq_52</providerUrl>
+		<providerUrl />
 		<referrerType>direct</referrerType>
 		<referrerTypeName>Direct Entry</referrerTypeName>
 		<referrerName />
@@ -1126,7 +1126,7 @@
 		<events>6</events>
 		<provider>Unknown</provider>
 		<providerName>Unknown</providerName>
-		<providerUrl>http://piwik.org/faq/general/#faq_52</providerUrl>
+		<providerUrl />
 		<referrerType>direct</referrerType>
 		<referrerTypeName>Direct Entry</referrerTypeName>
 		<referrerName />
@@ -1224,7 +1224,7 @@
 		<events>1</events>
 		<provider>Unknown</provider>
 		<providerName>Unknown</providerName>
-		<providerUrl>http://piwik.org/faq/general/#faq_52</providerUrl>
+		<providerUrl />
 		<referrerType>direct</referrerType>
 		<referrerTypeName>Direct Entry</referrerTypeName>
 		<referrerName />
@@ -1557,7 +1557,7 @@
 		<events>13</events>
 		<provider>Unknown</provider>
 		<providerName>Unknown</providerName>
-		<providerUrl>http://piwik.org/faq/general/#faq_52</providerUrl>
+		<providerUrl />
 		<referrerType>direct</referrerType>
 		<referrerTypeName>Direct Entry</referrerTypeName>
 		<referrerName />
diff --git a/tests/PHPUnit/System/expected/test_CustomEvents__Live.getLastVisitsDetails_month.xml b/tests/PHPUnit/System/expected/test_CustomEvents__Live.getLastVisitsDetails_month.xml
index 61b4626535f827b7016a17fc752b88b35ff6423f..20a321c37a2078a6fd953e8a68766782c43af87b 100644
--- a/tests/PHPUnit/System/expected/test_CustomEvents__Live.getLastVisitsDetails_month.xml
+++ b/tests/PHPUnit/System/expected/test_CustomEvents__Live.getLastVisitsDetails_month.xml
@@ -49,7 +49,7 @@
 		<events>1</events>
 		<provider>Unknown</provider>
 		<providerName>Unknown</providerName>
-		<providerUrl>http://piwik.org/faq/general/#faq_52</providerUrl>
+		<providerUrl />
 		<referrerType>direct</referrerType>
 		<referrerTypeName>Direct Entry</referrerTypeName>
 		<referrerName />
@@ -151,7 +151,7 @@
 		<events>1</events>
 		<provider>Unknown</provider>
 		<providerName>Unknown</providerName>
-		<providerUrl>http://piwik.org/faq/general/#faq_52</providerUrl>
+		<providerUrl />
 		<referrerType>direct</referrerType>
 		<referrerTypeName>Direct Entry</referrerTypeName>
 		<referrerName />
@@ -321,7 +321,7 @@
 		<events>6</events>
 		<provider>Unknown</provider>
 		<providerName>Unknown</providerName>
-		<providerUrl>http://piwik.org/faq/general/#faq_52</providerUrl>
+		<providerUrl />
 		<referrerType>direct</referrerType>
 		<referrerTypeName>Direct Entry</referrerTypeName>
 		<referrerName />
@@ -423,7 +423,7 @@
 		<events>1</events>
 		<provider>Unknown</provider>
 		<providerName>Unknown</providerName>
-		<providerUrl>http://piwik.org/faq/general/#faq_52</providerUrl>
+		<providerUrl />
 		<referrerType>direct</referrerType>
 		<referrerTypeName>Direct Entry</referrerTypeName>
 		<referrerName />
@@ -760,7 +760,7 @@
 		<events>13</events>
 		<provider>Unknown</provider>
 		<providerName>Unknown</providerName>
-		<providerUrl>http://piwik.org/faq/general/#faq_52</providerUrl>
+		<providerUrl />
 		<referrerType>direct</referrerType>
 		<referrerTypeName>Direct Entry</referrerTypeName>
 		<referrerName />
@@ -862,7 +862,7 @@
 		<events>1</events>
 		<provider>Unknown</provider>
 		<providerName>Unknown</providerName>
-		<providerUrl>http://piwik.org/faq/general/#faq_52</providerUrl>
+		<providerUrl />
 		<referrerType>direct</referrerType>
 		<referrerTypeName>Direct Entry</referrerTypeName>
 		<referrerName />
@@ -960,7 +960,7 @@
 		<events>1</events>
 		<provider>Unknown</provider>
 		<providerName>Unknown</providerName>
-		<providerUrl>http://piwik.org/faq/general/#faq_52</providerUrl>
+		<providerUrl />
 		<referrerType>direct</referrerType>
 		<referrerTypeName>Direct Entry</referrerTypeName>
 		<referrerName />
@@ -1126,7 +1126,7 @@
 		<events>6</events>
 		<provider>Unknown</provider>
 		<providerName>Unknown</providerName>
-		<providerUrl>http://piwik.org/faq/general/#faq_52</providerUrl>
+		<providerUrl />
 		<referrerType>direct</referrerType>
 		<referrerTypeName>Direct Entry</referrerTypeName>
 		<referrerName />
@@ -1224,7 +1224,7 @@
 		<events>1</events>
 		<provider>Unknown</provider>
 		<providerName>Unknown</providerName>
-		<providerUrl>http://piwik.org/faq/general/#faq_52</providerUrl>
+		<providerUrl />
 		<referrerType>direct</referrerType>
 		<referrerTypeName>Direct Entry</referrerTypeName>
 		<referrerName />
@@ -1557,7 +1557,7 @@
 		<events>13</events>
 		<provider>Unknown</provider>
 		<providerName>Unknown</providerName>
-		<providerUrl>http://piwik.org/faq/general/#faq_52</providerUrl>
+		<providerUrl />
 		<referrerType>direct</referrerType>
 		<referrerTypeName>Direct Entry</referrerTypeName>
 		<referrerName />
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 06291c5c5f9eb0573cffbf69d554b2b4c7251bc9..0d3bdc865ce2b6fb3b6b0e84b84686db48840963 100644
--- a/tests/PHPUnit/System/expected/test_ImportLogs__Live.getLastVisitsDetails_range.xml
+++ b/tests/PHPUnit/System/expected/test_ImportLogs__Live.getLastVisitsDetails_range.xml
@@ -65,7 +65,7 @@
 		<events>0</events>
 		<provider>Unknown</provider>
 		<providerName>Unknown</providerName>
-		<providerUrl>http://piwik.org/faq/general/#faq_52</providerUrl>
+		<providerUrl />
 		<referrerType>website</referrerType>
 		<referrerTypeName>Websites</referrerTypeName>
 		<referrerName>blog.comperiosearch.com</referrerName>
@@ -203,7 +203,7 @@
 		<events>0</events>
 		<provider>Unknown</provider>
 		<providerName>Unknown</providerName>
-		<providerUrl>http://piwik.org/faq/general/#faq_52</providerUrl>
+		<providerUrl />
 		<referrerType>direct</referrerType>
 		<referrerTypeName>Direct Entry</referrerTypeName>
 		<referrerName />
@@ -316,7 +316,7 @@
 		<events>0</events>
 		<provider>Unknown</provider>
 		<providerName>Unknown</providerName>
-		<providerUrl>http://piwik.org/faq/general/#faq_52</providerUrl>
+		<providerUrl />
 		<referrerType>direct</referrerType>
 		<referrerTypeName>Direct Entry</referrerTypeName>
 		<referrerName />
@@ -462,7 +462,7 @@
 		<events>0</events>
 		<provider>Unknown</provider>
 		<providerName>Unknown</providerName>
-		<providerUrl>http://piwik.org/faq/general/#faq_52</providerUrl>
+		<providerUrl />
 		<referrerType>search</referrerType>
 		<referrerTypeName>Search Engines</referrerTypeName>
 		<referrerName>Google</referrerName>
@@ -577,7 +577,7 @@
 		<events>0</events>
 		<provider>Unknown</provider>
 		<providerName>Unknown</providerName>
-		<providerUrl>http://piwik.org/faq/general/#faq_52</providerUrl>
+		<providerUrl />
 		<referrerType>website</referrerType>
 		<referrerTypeName>Websites</referrerTypeName>
 		<referrerName>musicforeveryoneradio.be</referrerName>
@@ -703,7 +703,7 @@
 		<events>0</events>
 		<provider>Unknown</provider>
 		<providerName>Unknown</providerName>
-		<providerUrl>http://piwik.org/faq/general/#faq_52</providerUrl>
+		<providerUrl />
 		<referrerType>search</referrerType>
 		<referrerTypeName>Search Engines</referrerTypeName>
 		<referrerName>Google</referrerName>
@@ -836,7 +836,7 @@
 		<events>0</events>
 		<provider>Unknown</provider>
 		<providerName>Unknown</providerName>
-		<providerUrl>http://piwik.org/faq/general/#faq_52</providerUrl>
+		<providerUrl />
 		<referrerType>search</referrerType>
 		<referrerTypeName>Search Engines</referrerTypeName>
 		<referrerName>Google</referrerName>
@@ -958,7 +958,7 @@
 		<events>0</events>
 		<provider>Unknown</provider>
 		<providerName>Unknown</providerName>
-		<providerUrl>http://piwik.org/faq/general/#faq_52</providerUrl>
+		<providerUrl />
 		<referrerType>website</referrerType>
 		<referrerTypeName>Websites</referrerTypeName>
 		<referrerName>berndjung.com</referrerName>
@@ -1072,7 +1072,7 @@
 		<events>0</events>
 		<provider>Unknown</provider>
 		<providerName>Unknown</providerName>
-		<providerUrl>http://piwik.org/faq/general/#faq_52</providerUrl>
+		<providerUrl />
 		<referrerType>website</referrerType>
 		<referrerTypeName>Websites</referrerTypeName>
 		<referrerName>forum.golem.de</referrerName>
@@ -1241,7 +1241,7 @@
 		<events>0</events>
 		<provider>Unknown</provider>
 		<providerName>Unknown</providerName>
-		<providerUrl>http://piwik.org/faq/general/#faq_52</providerUrl>
+		<providerUrl />
 		<referrerType>search</referrerType>
 		<referrerTypeName>Search Engines</referrerTypeName>
 		<referrerName>Google</referrerName>
@@ -1359,7 +1359,7 @@
 		<events>0</events>
 		<provider>Unknown</provider>
 		<providerName>Unknown</providerName>
-		<providerUrl>http://piwik.org/faq/general/#faq_52</providerUrl>
+		<providerUrl />
 		<referrerType>direct</referrerType>
 		<referrerTypeName>Direct Entry</referrerTypeName>
 		<referrerName />
@@ -1485,7 +1485,7 @@
 		<events>0</events>
 		<provider>Unknown</provider>
 		<providerName>Unknown</providerName>
-		<providerUrl>http://piwik.org/faq/general/#faq_52</providerUrl>
+		<providerUrl />
 		<referrerType>website</referrerType>
 		<referrerTypeName>Websites</referrerTypeName>
 		<referrerName>musicforeveryoneradio.be</referrerName>
@@ -1769,7 +1769,7 @@
 		<events>0</events>
 		<provider>Unknown</provider>
 		<providerName>Unknown</providerName>
-		<providerUrl>http://piwik.org/faq/general/#faq_52</providerUrl>
+		<providerUrl />
 		<referrerType>direct</referrerType>
 		<referrerTypeName>Direct Entry</referrerTypeName>
 		<referrerName />
@@ -1885,7 +1885,7 @@
 		<events>0</events>
 		<provider>Unknown</provider>
 		<providerName>Unknown</providerName>
-		<providerUrl>http://piwik.org/faq/general/#faq_52</providerUrl>
+		<providerUrl />
 		<referrerType>website</referrerType>
 		<referrerTypeName>Websites</referrerTypeName>
 		<referrerName>piwik.org</referrerName>
@@ -2002,7 +2002,7 @@
 		<events>0</events>
 		<provider>Unknown</provider>
 		<providerName>Unknown</providerName>
-		<providerUrl>http://piwik.org/faq/general/#faq_52</providerUrl>
+		<providerUrl />
 		<referrerType>website</referrerType>
 		<referrerTypeName>Websites</referrerTypeName>
 		<referrerName>sn110w.snt110.mail.live.com</referrerName>
@@ -2135,7 +2135,7 @@
 		<events>0</events>
 		<provider>Unknown</provider>
 		<providerName>Unknown</providerName>
-		<providerUrl>http://piwik.org/faq/general/#faq_52</providerUrl>
+		<providerUrl />
 		<referrerType>direct</referrerType>
 		<referrerTypeName>Direct Entry</referrerTypeName>
 		<referrerName />
@@ -2260,7 +2260,7 @@
 		<events>0</events>
 		<provider>Unknown</provider>
 		<providerName>Unknown</providerName>
-		<providerUrl>http://piwik.org/faq/general/#faq_52</providerUrl>
+		<providerUrl />
 		<referrerType>direct</referrerType>
 		<referrerTypeName>Direct Entry</referrerTypeName>
 		<referrerName />
@@ -2392,7 +2392,7 @@
 		<events>0</events>
 		<provider>Unknown</provider>
 		<providerName>Unknown</providerName>
-		<providerUrl>http://piwik.org/faq/general/#faq_52</providerUrl>
+		<providerUrl />
 		<referrerType>direct</referrerType>
 		<referrerTypeName>Direct Entry</referrerTypeName>
 		<referrerName />
@@ -2500,7 +2500,7 @@
 		<events>0</events>
 		<provider>Unknown</provider>
 		<providerName>Unknown</providerName>
-		<providerUrl>http://piwik.org/faq/general/#faq_52</providerUrl>
+		<providerUrl />
 		<referrerType>direct</referrerType>
 		<referrerTypeName>Direct Entry</referrerTypeName>
 		<referrerName />
@@ -2608,7 +2608,7 @@
 		<events>0</events>
 		<provider>Unknown</provider>
 		<providerName>Unknown</providerName>
-		<providerUrl>http://piwik.org/faq/general/#faq_52</providerUrl>
+		<providerUrl />
 		<referrerType>direct</referrerType>
 		<referrerTypeName>Direct Entry</referrerTypeName>
 		<referrerName />
@@ -2706,7 +2706,7 @@
 		<events>0</events>
 		<provider>Unknown</provider>
 		<providerName>Unknown</providerName>
-		<providerUrl>http://piwik.org/faq/general/#faq_52</providerUrl>
+		<providerUrl />
 		<referrerType>direct</referrerType>
 		<referrerTypeName>Direct Entry</referrerTypeName>
 		<referrerName />
@@ -2814,7 +2814,7 @@
 		<events>0</events>
 		<provider>Unknown</provider>
 		<providerName>Unknown</providerName>
-		<providerUrl>http://piwik.org/faq/general/#faq_52</providerUrl>
+		<providerUrl />
 		<referrerType>direct</referrerType>
 		<referrerTypeName>Direct Entry</referrerTypeName>
 		<referrerName />
@@ -2922,7 +2922,7 @@
 		<events>0</events>
 		<provider>Unknown</provider>
 		<providerName>Unknown</providerName>
-		<providerUrl>http://piwik.org/faq/general/#faq_52</providerUrl>
+		<providerUrl />
 		<referrerType>direct</referrerType>
 		<referrerTypeName>Direct Entry</referrerTypeName>
 		<referrerName />
@@ -3026,7 +3026,7 @@
 		<events>0</events>
 		<provider>Unknown</provider>
 		<providerName>Unknown</providerName>
-		<providerUrl>http://piwik.org/faq/general/#faq_52</providerUrl>
+		<providerUrl />
 		<referrerType>direct</referrerType>
 		<referrerTypeName>Direct Entry</referrerTypeName>
 		<referrerName />
@@ -3130,7 +3130,7 @@
 		<events>0</events>
 		<provider>Unknown</provider>
 		<providerName>Unknown</providerName>
-		<providerUrl>http://piwik.org/faq/general/#faq_52</providerUrl>
+		<providerUrl />
 		<referrerType>direct</referrerType>
 		<referrerTypeName>Direct Entry</referrerTypeName>
 		<referrerName />
@@ -3234,7 +3234,7 @@
 		<events>0</events>
 		<provider>Unknown</provider>
 		<providerName>Unknown</providerName>
-		<providerUrl>http://piwik.org/faq/general/#faq_52</providerUrl>
+		<providerUrl />
 		<referrerType>direct</referrerType>
 		<referrerTypeName>Direct Entry</referrerTypeName>
 		<referrerName />
@@ -3338,7 +3338,7 @@
 		<events>0</events>
 		<provider>Unknown</provider>
 		<providerName>Unknown</providerName>
-		<providerUrl>http://piwik.org/faq/general/#faq_52</providerUrl>
+		<providerUrl />
 		<referrerType>direct</referrerType>
 		<referrerTypeName>Direct Entry</referrerTypeName>
 		<referrerName />
@@ -3442,7 +3442,7 @@
 		<events>0</events>
 		<provider>Unknown</provider>
 		<providerName>Unknown</providerName>
-		<providerUrl>http://piwik.org/faq/general/#faq_52</providerUrl>
+		<providerUrl />
 		<referrerType>direct</referrerType>
 		<referrerTypeName>Direct Entry</referrerTypeName>
 		<referrerName />
@@ -3546,7 +3546,7 @@
 		<events>0</events>
 		<provider>Unknown</provider>
 		<providerName>Unknown</providerName>
-		<providerUrl>http://piwik.org/faq/general/#faq_52</providerUrl>
+		<providerUrl />
 		<referrerType>direct</referrerType>
 		<referrerTypeName>Direct Entry</referrerTypeName>
 		<referrerName />
@@ -3650,7 +3650,7 @@
 		<events>0</events>
 		<provider>Unknown</provider>
 		<providerName>Unknown</providerName>
-		<providerUrl>http://piwik.org/faq/general/#faq_52</providerUrl>
+		<providerUrl />
 		<referrerType>direct</referrerType>
 		<referrerTypeName>Direct Entry</referrerTypeName>
 		<referrerName />
@@ -3754,7 +3754,7 @@
 		<events>0</events>
 		<provider>Unknown</provider>
 		<providerName>Unknown</providerName>
-		<providerUrl>http://piwik.org/faq/general/#faq_52</providerUrl>
+		<providerUrl />
 		<referrerType>direct</referrerType>
 		<referrerTypeName>Direct Entry</referrerTypeName>
 		<referrerName />
@@ -3858,7 +3858,7 @@
 		<events>0</events>
 		<provider>Unknown</provider>
 		<providerName>Unknown</providerName>
-		<providerUrl>http://piwik.org/faq/general/#faq_52</providerUrl>
+		<providerUrl />
 		<referrerType>direct</referrerType>
 		<referrerTypeName>Direct Entry</referrerTypeName>
 		<referrerName />
@@ -3962,7 +3962,7 @@
 		<events>0</events>
 		<provider>Unknown</provider>
 		<providerName>Unknown</providerName>
-		<providerUrl>http://piwik.org/faq/general/#faq_52</providerUrl>
+		<providerUrl />
 		<referrerType>direct</referrerType>
 		<referrerTypeName>Direct Entry</referrerTypeName>
 		<referrerName />
@@ -4066,7 +4066,7 @@
 		<events>0</events>
 		<provider>Unknown</provider>
 		<providerName>Unknown</providerName>
-		<providerUrl>http://piwik.org/faq/general/#faq_52</providerUrl>
+		<providerUrl />
 		<referrerType>direct</referrerType>
 		<referrerTypeName>Direct Entry</referrerTypeName>
 		<referrerName />
@@ -4170,7 +4170,7 @@
 		<events>0</events>
 		<provider>Unknown</provider>
 		<providerName>Unknown</providerName>
-		<providerUrl>http://piwik.org/faq/general/#faq_52</providerUrl>
+		<providerUrl />
 		<referrerType>direct</referrerType>
 		<referrerTypeName>Direct Entry</referrerTypeName>
 		<referrerName />
@@ -4274,7 +4274,7 @@
 		<events>0</events>
 		<provider>Unknown</provider>
 		<providerName>Unknown</providerName>
-		<providerUrl>http://piwik.org/faq/general/#faq_52</providerUrl>
+		<providerUrl />
 		<referrerType>direct</referrerType>
 		<referrerTypeName>Direct Entry</referrerTypeName>
 		<referrerName />
@@ -4378,7 +4378,7 @@
 		<events>0</events>
 		<provider>Unknown</provider>
 		<providerName>Unknown</providerName>
-		<providerUrl>http://piwik.org/faq/general/#faq_52</providerUrl>
+		<providerUrl />
 		<referrerType>direct</referrerType>
 		<referrerTypeName>Direct Entry</referrerTypeName>
 		<referrerName />
@@ -4482,7 +4482,7 @@
 		<events>0</events>
 		<provider>Unknown</provider>
 		<providerName>Unknown</providerName>
-		<providerUrl>http://piwik.org/faq/general/#faq_52</providerUrl>
+		<providerUrl />
 		<referrerType>direct</referrerType>
 		<referrerTypeName>Direct Entry</referrerTypeName>
 		<referrerName />
@@ -4586,7 +4586,7 @@
 		<events>0</events>
 		<provider>Unknown</provider>
 		<providerName>Unknown</providerName>
-		<providerUrl>http://piwik.org/faq/general/#faq_52</providerUrl>
+		<providerUrl />
 		<referrerType>direct</referrerType>
 		<referrerTypeName>Direct Entry</referrerTypeName>
 		<referrerName />
@@ -4690,7 +4690,7 @@
 		<events>0</events>
 		<provider>Unknown</provider>
 		<providerName>Unknown</providerName>
-		<providerUrl>http://piwik.org/faq/general/#faq_52</providerUrl>
+		<providerUrl />
 		<referrerType>direct</referrerType>
 		<referrerTypeName>Direct Entry</referrerTypeName>
 		<referrerName />
diff --git a/tests/PHPUnit/System/expected/test_ImportLogs__Provider.getProvider_month.xml b/tests/PHPUnit/System/expected/test_ImportLogs__Provider.getProvider_month.xml
index e248df22a839672bccb882dbb2fc7ba3dc1a43b2..8cc6494492a35050c4058f1efc7a8ae8023cc432 100644
--- a/tests/PHPUnit/System/expected/test_ImportLogs__Provider.getProvider_month.xml
+++ b/tests/PHPUnit/System/expected/test_ImportLogs__Provider.getProvider_month.xml
@@ -10,6 +10,6 @@
 		<nb_visits_converted>25</nb_visits_converted>
 		<sum_daily_nb_uniq_visitors>27</sum_daily_nb_uniq_visitors>
 		<sum_daily_nb_users>0</sum_daily_nb_users>
-		<url>http://piwik.org/faq/general/#faq_52</url>
+		<url />
 	</row>
 </result>
\ No newline at end of file
diff --git a/tests/PHPUnit/System/expected/test_ManyVisitorsOneWebsiteTest_Live.getLastVisitsDetails_sortByIdVisitAsc__Live.getLastVisitsDetails_month.xml b/tests/PHPUnit/System/expected/test_ManyVisitorsOneWebsiteTest_Live.getLastVisitsDetails_sortByIdVisitAsc__Live.getLastVisitsDetails_month.xml
index 02678e9aee68e98bc34c66cb245c8b2925a53bb0..4bef268a9f6320a89e752e5e4a520706b7e251ec 100644
--- a/tests/PHPUnit/System/expected/test_ManyVisitorsOneWebsiteTest_Live.getLastVisitsDetails_sortByIdVisitAsc__Live.getLastVisitsDetails_month.xml
+++ b/tests/PHPUnit/System/expected/test_ManyVisitorsOneWebsiteTest_Live.getLastVisitsDetails_sortByIdVisitAsc__Live.getLastVisitsDetails_month.xml
@@ -106,7 +106,7 @@
 		<daysSinceLastVisit>0</daysSinceLastVisit>
 		<provider>Unknown</provider>
 		<providerName>Unknown</providerName>
-		<providerUrl>http://piwik.org/faq/general/#faq_52</providerUrl>
+		<providerUrl />
 		<customVariables>
 			<row>
 				<customVariableName1>Cvar 1 name</customVariableName1>
@@ -260,7 +260,7 @@
 		<daysSinceLastVisit>10</daysSinceLastVisit>
 		<provider>Unknown</provider>
 		<providerName>Unknown</providerName>
-		<providerUrl>http://piwik.org/faq/general/#faq_52</providerUrl>
+		<providerUrl />
 		<customVariables>
 			<row>
 				<customVariableName1>Cvar 1 name</customVariableName1>
@@ -383,7 +383,7 @@
 		<daysSinceLastVisit>0</daysSinceLastVisit>
 		<provider>Unknown</provider>
 		<providerName>Unknown</providerName>
-		<providerUrl>http://piwik.org/faq/general/#faq_52</providerUrl>
+		<providerUrl />
 		<customVariables>
 			<row>
 				<customVariableName1>Cvar 1 name</customVariableName1>
@@ -537,7 +537,7 @@
 		<daysSinceLastVisit>10</daysSinceLastVisit>
 		<provider>Unknown</provider>
 		<providerName>Unknown</providerName>
-		<providerUrl>http://piwik.org/faq/general/#faq_52</providerUrl>
+		<providerUrl />
 		<customVariables>
 			<row>
 				<customVariableName1>Cvar 1 name</customVariableName1>
@@ -660,7 +660,7 @@
 		<daysSinceLastVisit>0</daysSinceLastVisit>
 		<provider>Unknown</provider>
 		<providerName>Unknown</providerName>
-		<providerUrl>http://piwik.org/faq/general/#faq_52</providerUrl>
+		<providerUrl />
 		<customVariables>
 			<row>
 				<customVariableName1>Cvar 1 name</customVariableName1>
@@ -814,7 +814,7 @@
 		<daysSinceLastVisit>10</daysSinceLastVisit>
 		<provider>Unknown</provider>
 		<providerName>Unknown</providerName>
-		<providerUrl>http://piwik.org/faq/general/#faq_52</providerUrl>
+		<providerUrl />
 		<customVariables>
 		</customVariables>
 		
@@ -929,7 +929,7 @@
 		<daysSinceLastVisit>0</daysSinceLastVisit>
 		<provider>Unknown</provider>
 		<providerName>Unknown</providerName>
-		<providerUrl>http://piwik.org/faq/general/#faq_52</providerUrl>
+		<providerUrl />
 		<customVariables>
 			<row>
 				<customVariableName1>Cvar 1 name</customVariableName1>
diff --git a/tests/PHPUnit/System/expected/test_ManyVisitorsOneWebsiteTest_Live.getLastVisitsDetails_sortByIdVisit__Live.getLastVisitsDetails_month.xml b/tests/PHPUnit/System/expected/test_ManyVisitorsOneWebsiteTest_Live.getLastVisitsDetails_sortByIdVisit__Live.getLastVisitsDetails_month.xml
index 47c2f38c4eb442637e3b4a40252d3a3636bc36a8..375e6853cdb7f6f354ff8153c68b82946e741f78 100644
--- a/tests/PHPUnit/System/expected/test_ManyVisitorsOneWebsiteTest_Live.getLastVisitsDetails_sortByIdVisit__Live.getLastVisitsDetails_month.xml
+++ b/tests/PHPUnit/System/expected/test_ManyVisitorsOneWebsiteTest_Live.getLastVisitsDetails_sortByIdVisit__Live.getLastVisitsDetails_month.xml
@@ -98,7 +98,7 @@
 		<daysSinceLastVisit>0</daysSinceLastVisit>
 		<provider>Unknown</provider>
 		<providerName>Unknown</providerName>
-		<providerUrl>http://piwik.org/faq/general/#faq_52</providerUrl>
+		<providerUrl />
 		<customVariables>
 		</customVariables>
 		
@@ -246,7 +246,7 @@
 		<daysSinceLastVisit>10</daysSinceLastVisit>
 		<provider>Unknown</provider>
 		<providerName>Unknown</providerName>
-		<providerUrl>http://piwik.org/faq/general/#faq_52</providerUrl>
+		<providerUrl />
 		<customVariables>
 			<row>
 				<customVariableName1>Cvar 1 name</customVariableName1>
@@ -371,7 +371,7 @@
 		<daysSinceLastVisit>11</daysSinceLastVisit>
 		<provider>Unknown</provider>
 		<providerName>Unknown</providerName>
-		<providerUrl>http://piwik.org/faq/general/#faq_52</providerUrl>
+		<providerUrl />
 		<customVariables>
 			<row>
 				<customVariableName1>Cvar 1 name</customVariableName1>
@@ -510,7 +510,7 @@
 		<daysSinceLastVisit>10</daysSinceLastVisit>
 		<provider>Unknown</provider>
 		<providerName>Unknown</providerName>
-		<providerUrl>http://piwik.org/faq/general/#faq_52</providerUrl>
+		<providerUrl />
 		<customVariables>
 			<row>
 				<customVariableName1>Cvar 1 name</customVariableName1>
@@ -635,7 +635,7 @@
 		<daysSinceLastVisit>11</daysSinceLastVisit>
 		<provider>Unknown</provider>
 		<providerName>Unknown</providerName>
-		<providerUrl>http://piwik.org/faq/general/#faq_52</providerUrl>
+		<providerUrl />
 		<customVariables>
 			<row>
 				<customVariableName1>Cvar 1 name</customVariableName1>
@@ -791,7 +791,7 @@
 		<daysSinceLastVisit>10</daysSinceLastVisit>
 		<provider>Unknown</provider>
 		<providerName>Unknown</providerName>
-		<providerUrl>http://piwik.org/faq/general/#faq_52</providerUrl>
+		<providerUrl />
 		<customVariables>
 			<row>
 				<customVariableName1>Cvar 1 name</customVariableName1>
@@ -916,7 +916,7 @@
 		<daysSinceLastVisit>11</daysSinceLastVisit>
 		<provider>Unknown</provider>
 		<providerName>Unknown</providerName>
-		<providerUrl>http://piwik.org/faq/general/#faq_52</providerUrl>
+		<providerUrl />
 		<customVariables>
 			<row>
 				<customVariableName1>Cvar 1 name</customVariableName1>
diff --git a/tests/PHPUnit/System/expected/test_ManyVisitorsOneWebsiteTest_Live.getLastVisitsDetails_sortByVisitCount__Live.getLastVisitsDetails_month.xml b/tests/PHPUnit/System/expected/test_ManyVisitorsOneWebsiteTest_Live.getLastVisitsDetails_sortByVisitCount__Live.getLastVisitsDetails_month.xml
index 8c0eba69bb4bfee6bcc26c13909ef89d7ef9208e..b17d355a839a223f6b2c6184eabdd01b1012e872 100644
--- a/tests/PHPUnit/System/expected/test_ManyVisitorsOneWebsiteTest_Live.getLastVisitsDetails_sortByVisitCount__Live.getLastVisitsDetails_month.xml
+++ b/tests/PHPUnit/System/expected/test_ManyVisitorsOneWebsiteTest_Live.getLastVisitsDetails_sortByVisitCount__Live.getLastVisitsDetails_month.xml
@@ -139,7 +139,7 @@
 		<daysSinceLastVisit>10</daysSinceLastVisit>
 		<provider>Unknown</provider>
 		<providerName>Unknown</providerName>
-		<providerUrl>http://piwik.org/faq/general/#faq_52</providerUrl>
+		<providerUrl />
 		<customVariables>
 			<row>
 				<customVariableName1>Cvar 1 name</customVariableName1>
@@ -264,7 +264,7 @@
 		<daysSinceLastVisit>11</daysSinceLastVisit>
 		<provider>Unknown</provider>
 		<providerName>Unknown</providerName>
-		<providerUrl>http://piwik.org/faq/general/#faq_52</providerUrl>
+		<providerUrl />
 		<customVariables>
 			<row>
 				<customVariableName1>Cvar 1 name</customVariableName1>
@@ -420,7 +420,7 @@
 		<daysSinceLastVisit>10</daysSinceLastVisit>
 		<provider>Unknown</provider>
 		<providerName>Unknown</providerName>
-		<providerUrl>http://piwik.org/faq/general/#faq_52</providerUrl>
+		<providerUrl />
 		<customVariables>
 			<row>
 				<customVariableName1>Cvar 1 name</customVariableName1>
@@ -559,7 +559,7 @@
 		<daysSinceLastVisit>10</daysSinceLastVisit>
 		<provider>Unknown</provider>
 		<providerName>Unknown</providerName>
-		<providerUrl>http://piwik.org/faq/general/#faq_52</providerUrl>
+		<providerUrl />
 		<customVariables>
 			<row>
 				<customVariableName1>Cvar 1 name</customVariableName1>
@@ -684,7 +684,7 @@
 		<daysSinceLastVisit>11</daysSinceLastVisit>
 		<provider>Unknown</provider>
 		<providerName>Unknown</providerName>
-		<providerUrl>http://piwik.org/faq/general/#faq_52</providerUrl>
+		<providerUrl />
 		<customVariables>
 			<row>
 				<customVariableName1>Cvar 1 name</customVariableName1>
@@ -809,7 +809,7 @@
 		<daysSinceLastVisit>11</daysSinceLastVisit>
 		<provider>Unknown</provider>
 		<providerName>Unknown</providerName>
-		<providerUrl>http://piwik.org/faq/general/#faq_52</providerUrl>
+		<providerUrl />
 		<customVariables>
 			<row>
 				<customVariableName1>Cvar 1 name</customVariableName1>
@@ -924,7 +924,7 @@
 		<daysSinceLastVisit>0</daysSinceLastVisit>
 		<provider>Unknown</provider>
 		<providerName>Unknown</providerName>
-		<providerUrl>http://piwik.org/faq/general/#faq_52</providerUrl>
+		<providerUrl />
 		<customVariables>
 		</customVariables>
 		
diff --git a/tests/PHPUnit/System/expected/test_ManyVisitorsOneWebsiteTest_Live.getLastVisitsDetails_sortDesc__Live.getLastVisitsDetails_month.xml b/tests/PHPUnit/System/expected/test_ManyVisitorsOneWebsiteTest_Live.getLastVisitsDetails_sortDesc__Live.getLastVisitsDetails_month.xml
index 47c2f38c4eb442637e3b4a40252d3a3636bc36a8..375e6853cdb7f6f354ff8153c68b82946e741f78 100644
--- a/tests/PHPUnit/System/expected/test_ManyVisitorsOneWebsiteTest_Live.getLastVisitsDetails_sortDesc__Live.getLastVisitsDetails_month.xml
+++ b/tests/PHPUnit/System/expected/test_ManyVisitorsOneWebsiteTest_Live.getLastVisitsDetails_sortDesc__Live.getLastVisitsDetails_month.xml
@@ -98,7 +98,7 @@
 		<daysSinceLastVisit>0</daysSinceLastVisit>
 		<provider>Unknown</provider>
 		<providerName>Unknown</providerName>
-		<providerUrl>http://piwik.org/faq/general/#faq_52</providerUrl>
+		<providerUrl />
 		<customVariables>
 		</customVariables>
 		
@@ -246,7 +246,7 @@
 		<daysSinceLastVisit>10</daysSinceLastVisit>
 		<provider>Unknown</provider>
 		<providerName>Unknown</providerName>
-		<providerUrl>http://piwik.org/faq/general/#faq_52</providerUrl>
+		<providerUrl />
 		<customVariables>
 			<row>
 				<customVariableName1>Cvar 1 name</customVariableName1>
@@ -371,7 +371,7 @@
 		<daysSinceLastVisit>11</daysSinceLastVisit>
 		<provider>Unknown</provider>
 		<providerName>Unknown</providerName>
-		<providerUrl>http://piwik.org/faq/general/#faq_52</providerUrl>
+		<providerUrl />
 		<customVariables>
 			<row>
 				<customVariableName1>Cvar 1 name</customVariableName1>
@@ -510,7 +510,7 @@
 		<daysSinceLastVisit>10</daysSinceLastVisit>
 		<provider>Unknown</provider>
 		<providerName>Unknown</providerName>
-		<providerUrl>http://piwik.org/faq/general/#faq_52</providerUrl>
+		<providerUrl />
 		<customVariables>
 			<row>
 				<customVariableName1>Cvar 1 name</customVariableName1>
@@ -635,7 +635,7 @@
 		<daysSinceLastVisit>11</daysSinceLastVisit>
 		<provider>Unknown</provider>
 		<providerName>Unknown</providerName>
-		<providerUrl>http://piwik.org/faq/general/#faq_52</providerUrl>
+		<providerUrl />
 		<customVariables>
 			<row>
 				<customVariableName1>Cvar 1 name</customVariableName1>
@@ -791,7 +791,7 @@
 		<daysSinceLastVisit>10</daysSinceLastVisit>
 		<provider>Unknown</provider>
 		<providerName>Unknown</providerName>
-		<providerUrl>http://piwik.org/faq/general/#faq_52</providerUrl>
+		<providerUrl />
 		<customVariables>
 			<row>
 				<customVariableName1>Cvar 1 name</customVariableName1>
@@ -916,7 +916,7 @@
 		<daysSinceLastVisit>11</daysSinceLastVisit>
 		<provider>Unknown</provider>
 		<providerName>Unknown</providerName>
-		<providerUrl>http://piwik.org/faq/general/#faq_52</providerUrl>
+		<providerUrl />
 		<customVariables>
 			<row>
 				<customVariableName1>Cvar 1 name</customVariableName1>
diff --git a/tests/PHPUnit/System/expected/test_ManyVisitorsOneWebsiteTest__Live.getLastVisitsDetails_month.xml b/tests/PHPUnit/System/expected/test_ManyVisitorsOneWebsiteTest__Live.getLastVisitsDetails_month.xml
index ce1748a73ad174225532b2f8f51b120b1a3a0dea..83f8c16d701a487f11b61539aa468e3e593c67d5 100644
--- a/tests/PHPUnit/System/expected/test_ManyVisitorsOneWebsiteTest__Live.getLastVisitsDetails_month.xml
+++ b/tests/PHPUnit/System/expected/test_ManyVisitorsOneWebsiteTest__Live.getLastVisitsDetails_month.xml
@@ -98,7 +98,7 @@
 		<daysSinceLastVisit>0</daysSinceLastVisit>
 		<provider>Unknown</provider>
 		<providerName>Unknown</providerName>
-		<providerUrl>http://piwik.org/faq/general/#faq_52</providerUrl>
+		<providerUrl />
 		<customVariables>
 		</customVariables>
 		
@@ -246,7 +246,7 @@
 		<daysSinceLastVisit>10</daysSinceLastVisit>
 		<provider>Unknown</provider>
 		<providerName>Unknown</providerName>
-		<providerUrl>http://piwik.org/faq/general/#faq_52</providerUrl>
+		<providerUrl />
 		<customVariables>
 			<row>
 				<customVariableName1>Cvar 1 name</customVariableName1>
@@ -371,7 +371,7 @@
 		<daysSinceLastVisit>11</daysSinceLastVisit>
 		<provider>Unknown</provider>
 		<providerName>Unknown</providerName>
-		<providerUrl>http://piwik.org/faq/general/#faq_52</providerUrl>
+		<providerUrl />
 		<customVariables>
 			<row>
 				<customVariableName1>Cvar 1 name</customVariableName1>
@@ -510,7 +510,7 @@
 		<daysSinceLastVisit>10</daysSinceLastVisit>
 		<provider>Unknown</provider>
 		<providerName>Unknown</providerName>
-		<providerUrl>http://piwik.org/faq/general/#faq_52</providerUrl>
+		<providerUrl />
 		<customVariables>
 			<row>
 				<customVariableName1>Cvar 1 name</customVariableName1>
@@ -635,7 +635,7 @@
 		<daysSinceLastVisit>11</daysSinceLastVisit>
 		<provider>Unknown</provider>
 		<providerName>Unknown</providerName>
-		<providerUrl>http://piwik.org/faq/general/#faq_52</providerUrl>
+		<providerUrl />
 		<customVariables>
 			<row>
 				<customVariableName1>Cvar 1 name</customVariableName1>
@@ -791,7 +791,7 @@
 		<daysSinceLastVisit>10</daysSinceLastVisit>
 		<provider>Unknown</provider>
 		<providerName>Unknown</providerName>
-		<providerUrl>http://piwik.org/faq/general/#faq_52</providerUrl>
+		<providerUrl />
 		<customVariables>
 			<row>
 				<customVariableName1>Cvar 1 name</customVariableName1>
@@ -916,7 +916,7 @@
 		<daysSinceLastVisit>11</daysSinceLastVisit>
 		<provider>Unknown</provider>
 		<providerName>Unknown</providerName>
-		<providerUrl>http://piwik.org/faq/general/#faq_52</providerUrl>
+		<providerUrl />
 		<customVariables>
 			<row>
 				<customVariableName1>Cvar 1 name</customVariableName1>
@@ -1055,7 +1055,7 @@
 		<daysSinceLastVisit>10</daysSinceLastVisit>
 		<provider>Unknown</provider>
 		<providerName>Unknown</providerName>
-		<providerUrl>http://piwik.org/faq/general/#faq_52</providerUrl>
+		<providerUrl />
 		<customVariables>
 			<row>
 				<customVariableName1>Cvar 1 name</customVariableName1>
@@ -1180,7 +1180,7 @@
 		<daysSinceLastVisit>11</daysSinceLastVisit>
 		<provider>Unknown</provider>
 		<providerName>Unknown</providerName>
-		<providerUrl>http://piwik.org/faq/general/#faq_52</providerUrl>
+		<providerUrl />
 		<customVariables>
 			<row>
 				<customVariableName1>Cvar 1 name</customVariableName1>
diff --git a/tests/PHPUnit/System/expected/test_OneVisitorTwoVisits__Provider.getProvider_day.xml b/tests/PHPUnit/System/expected/test_OneVisitorTwoVisits__Provider.getProvider_day.xml
index 7b9b086c4412c46d38e01d6d37e68ab3fe539fe2..6ca6cdbd8191b3781a67e9afb7bdffbfbd71eee3 100644
--- a/tests/PHPUnit/System/expected/test_OneVisitorTwoVisits__Provider.getProvider_day.xml
+++ b/tests/PHPUnit/System/expected/test_OneVisitorTwoVisits__Provider.getProvider_day.xml
@@ -9,6 +9,6 @@
 		<sum_visit_length>1621</sum_visit_length>
 		<bounce_count>1</bounce_count>
 		<nb_visits_converted>2</nb_visits_converted>
-		<url>http://piwik.org/faq/general/#faq_52</url>
+		<url />
 	</row>
 </result>
\ No newline at end of file
diff --git a/tests/PHPUnit/System/expected/test_OneVisitorTwoVisits_withCookieSupport__Live.getLastVisitsDetails_day.xml b/tests/PHPUnit/System/expected/test_OneVisitorTwoVisits_withCookieSupport__Live.getLastVisitsDetails_day.xml
index 2ceb5d70bf32645385e43ca4cf34e0981d492a65..1a94308fac65835ddd5ca122c9043105553cbd70 100644
--- a/tests/PHPUnit/System/expected/test_OneVisitorTwoVisits_withCookieSupport__Live.getLastVisitsDetails_day.xml
+++ b/tests/PHPUnit/System/expected/test_OneVisitorTwoVisits_withCookieSupport__Live.getLastVisitsDetails_day.xml
@@ -55,7 +55,7 @@
 		<events>0</events>
 		<provider>Unknown</provider>
 		<providerName>Unknown</providerName>
-		<providerUrl>http://piwik.org/faq/general/#faq_52</providerUrl>
+		<providerUrl />
 		<referrerType>search</referrerType>
 		<referrerTypeName>Search Engines</referrerTypeName>
 		<referrerName>Yahoo!</referrerName>
@@ -243,7 +243,7 @@
 		<events>0</events>
 		<provider>Unknown</provider>
 		<providerName>Unknown</providerName>
-		<providerUrl>http://piwik.org/faq/general/#faq_52</providerUrl>
+		<providerUrl />
 		<referrerType>website</referrerType>
 		<referrerTypeName>Websites</referrerTypeName>
 		<referrerName>referrer.com</referrerName>
diff --git a/tests/PHPUnit/System/expected/test_OneVisitorTwoVisits_withCookieSupport__Provider.getProvider_day.xml b/tests/PHPUnit/System/expected/test_OneVisitorTwoVisits_withCookieSupport__Provider.getProvider_day.xml
index 7254c4a970669ff20a0d89db6d408c2cff7a7642..039448a1aa2e9601edcdfd8a286ab4dac4a07aee 100644
--- a/tests/PHPUnit/System/expected/test_OneVisitorTwoVisits_withCookieSupport__Provider.getProvider_day.xml
+++ b/tests/PHPUnit/System/expected/test_OneVisitorTwoVisits_withCookieSupport__Provider.getProvider_day.xml
@@ -10,6 +10,6 @@
 		<sum_visit_length>1621</sum_visit_length>
 		<bounce_count>1</bounce_count>
 		<nb_visits_converted>2</nb_visits_converted>
-		<url>http://piwik.org/faq/general/#faq_52</url>
+		<url />
 	</row>
 </result>
\ No newline at end of file
diff --git a/tests/PHPUnit/System/expected/test_OneVisitor_NoKeywordSpecified__Live.getLastVisitsDetails_day.xml b/tests/PHPUnit/System/expected/test_OneVisitor_NoKeywordSpecified__Live.getLastVisitsDetails_day.xml
index 9175168a743ea78f0f5b065b2dab79a10c5c12d7..4fc272c7ffb2cfd2fb29aeedf29d6a0e71e7b40c 100644
--- a/tests/PHPUnit/System/expected/test_OneVisitor_NoKeywordSpecified__Live.getLastVisitsDetails_day.xml
+++ b/tests/PHPUnit/System/expected/test_OneVisitor_NoKeywordSpecified__Live.getLastVisitsDetails_day.xml
@@ -90,7 +90,7 @@
 		</customVariables>
 		<provider>Inconnu</provider>
 		<providerName>Inconnu</providerName>
-		<providerUrl>http://piwik.org/faq/general/#faq_52</providerUrl>
+		<providerUrl />
 		
 		
 		
@@ -197,7 +197,7 @@
 		</customVariables>
 		<provider>Inconnu</provider>
 		<providerName>Inconnu</providerName>
-		<providerUrl>http://piwik.org/faq/general/#faq_52</providerUrl>
+		<providerUrl />
 		
 		
 		
diff --git a/tests/PHPUnit/System/expected/test_OneVisitor_SeveralDays_ImportedInRandomOrderTest_shouldShowOneVisit_InEachOfThreeDays__Live.getLastVisitsDetails_month.xml b/tests/PHPUnit/System/expected/test_OneVisitor_SeveralDays_ImportedInRandomOrderTest_shouldShowOneVisit_InEachOfThreeDays__Live.getLastVisitsDetails_month.xml
index f77489d7a34b9d925a4e314a5177937052272281..a0db0d7c8eec133bf5ba42bcab55990c712f6e91 100644
--- a/tests/PHPUnit/System/expected/test_OneVisitor_SeveralDays_ImportedInRandomOrderTest_shouldShowOneVisit_InEachOfThreeDays__Live.getLastVisitsDetails_month.xml
+++ b/tests/PHPUnit/System/expected/test_OneVisitor_SeveralDays_ImportedInRandomOrderTest_shouldShowOneVisit_InEachOfThreeDays__Live.getLastVisitsDetails_month.xml
@@ -49,7 +49,7 @@
 		<events>0</events>
 		<provider>Unknown</provider>
 		<providerName>Unknown</providerName>
-		<providerUrl>http://piwik.org/faq/general/#faq_52</providerUrl>
+		<providerUrl />
 		<referrerType>direct</referrerType>
 		<referrerTypeName>Direct Entry</referrerTypeName>
 		<referrerName />
@@ -142,7 +142,7 @@
 		<events>0</events>
 		<provider>Unknown</provider>
 		<providerName>Unknown</providerName>
-		<providerUrl>http://piwik.org/faq/general/#faq_52</providerUrl>
+		<providerUrl />
 		<referrerType>direct</referrerType>
 		<referrerTypeName>Direct Entry</referrerTypeName>
 		<referrerName />
@@ -235,7 +235,7 @@
 		<events>0</events>
 		<provider>Unknown</provider>
 		<providerName>Unknown</providerName>
-		<providerUrl>http://piwik.org/faq/general/#faq_52</providerUrl>
+		<providerUrl />
 		<referrerType>direct</referrerType>
 		<referrerTypeName>Direct Entry</referrerTypeName>
 		<referrerName />
diff --git a/tests/PHPUnit/System/expected/test_TimezonesTest__Live.getLastVisitsDetails_day.xml b/tests/PHPUnit/System/expected/test_TimezonesTest__Live.getLastVisitsDetails_day.xml
index 4d5a3bb878ba8a0131b7fb3e5f289ab8c2f035b0..d820d786ab98ee8b42bbdc05ca1e4d8d90e2c8b8 100644
--- a/tests/PHPUnit/System/expected/test_TimezonesTest__Live.getLastVisitsDetails_day.xml
+++ b/tests/PHPUnit/System/expected/test_TimezonesTest__Live.getLastVisitsDetails_day.xml
@@ -44,7 +44,7 @@
 		<events>0</events>
 		<provider>Unknown</provider>
 		<providerName>Unknown</providerName>
-		<providerUrl>http://piwik.org/faq/general/#faq_52</providerUrl>
+		<providerUrl />
 		<referrerType>direct</referrerType>
 		<referrerTypeName>Direct Entry</referrerTypeName>
 		<referrerName />
diff --git a/tests/PHPUnit/System/expected/test_TwoVisitors_twoWebsites_differentDays_scheduled_report_in_html_row_evolution_graph__ScheduledReports.generateReport_month.original.html b/tests/PHPUnit/System/expected/test_TwoVisitors_twoWebsites_differentDays_scheduled_report_in_html_row_evolution_graph__ScheduledReports.generateReport_month.original.html
index fc803f8028bea02026f48f3172352e983f110381..828f15f4aa659f21c8234561254008377b1ba5e8 100644
--- a/tests/PHPUnit/System/expected/test_TwoVisitors_twoWebsites_differentDays_scheduled_report_in_html_row_evolution_graph__ScheduledReports.generateReport_month.original.html
+++ b/tests/PHPUnit/System/expected/test_TwoVisitors_twoWebsites_differentDays_scheduled_report_in_html_row_evolution_graph__ScheduledReports.generateReport_month.original.html
@@ -7,7 +7,7 @@
 <a id="reportTop" target="_blank" href=""><img title="Go to Piwik" border="0" alt="Piwik" src='plugins/Morpheus/images/logo-header.png'/></a>
 
 <h1 style="color: rgb(126,115,99); font-size: 11pt;">
-    Website Site 1
+    Site 1
 </h1>
 
 <p>
diff --git a/tests/PHPUnit/System/expected/test_TwoVisitors_twoWebsites_differentDays_scheduled_report_in_html_tables_and_graph__ScheduledReports.generateReport_month.original.html b/tests/PHPUnit/System/expected/test_TwoVisitors_twoWebsites_differentDays_scheduled_report_in_html_tables_and_graph__ScheduledReports.generateReport_month.original.html
index c5183f184f0f4e44791494f4e4a4c600e451850f..88ed239c6da58a94ebbacdd75b9b527300692c45 100644
--- a/tests/PHPUnit/System/expected/test_TwoVisitors_twoWebsites_differentDays_scheduled_report_in_html_tables_and_graph__ScheduledReports.generateReport_month.original.html
+++ b/tests/PHPUnit/System/expected/test_TwoVisitors_twoWebsites_differentDays_scheduled_report_in_html_tables_and_graph__ScheduledReports.generateReport_month.original.html
@@ -7,7 +7,7 @@
 <a id="reportTop" target="_blank" href=""><img title="Go to Piwik" border="0" alt="Piwik" src='plugins/Morpheus/images/logo-header.png'/></a>
 
 <h1 style="color: rgb(126,115,99); font-size: 11pt;">
-    Website Site 1
+    Site 1
 </h1>
 
 <p>
@@ -5152,7 +5152,7 @@
                                                     
                                                                     <tr style="">
                                                                 <td style="font-size: 11pt; border-bottom: 1px solid rgb(231,231,231); padding: 5px 0 5px 5px;">
-                                                                                                                                                                            <a style="color: rgb(68,68,68);" href='http://piwik.org/faq/general/#faq_52'>
+                                                                                                                                                                            <a style="color: rgb(68,68,68);" href='http://'>
                                                                         Unknown                                                                            </a>
                                                                                                                         </td>
                                             <td style="font-size: 11pt; border-bottom: 1px solid rgb(231,231,231); padding: 5px 0 5px 5px;">
diff --git a/tests/PHPUnit/System/expected/test_TwoVisitors_twoWebsites_differentDays_scheduled_report_in_html_tables_only__ScheduledReports.generateReport_month.original.html b/tests/PHPUnit/System/expected/test_TwoVisitors_twoWebsites_differentDays_scheduled_report_in_html_tables_only__ScheduledReports.generateReport_month.original.html
index 8e8c6e7cd15077ad0fa64ad803eb76abe0408281..3dc09d6491f994ff1e84ab3bbc861b22a55a5b5b 100644
--- a/tests/PHPUnit/System/expected/test_TwoVisitors_twoWebsites_differentDays_scheduled_report_in_html_tables_only__ScheduledReports.generateReport_month.original.html
+++ b/tests/PHPUnit/System/expected/test_TwoVisitors_twoWebsites_differentDays_scheduled_report_in_html_tables_only__ScheduledReports.generateReport_month.original.html
@@ -7,7 +7,7 @@
 <a id="reportTop" target="_blank" href=""><img title="Go to Piwik" border="0" alt="Piwik" src='plugins/Morpheus/images/logo-header.png'/></a>
 
 <h1 style="color: rgb(126,115,99); font-size: 11pt;">
-    Website Site 1
+    Site 1
 </h1>
 
 <p>
@@ -4924,7 +4924,7 @@
                                                     
                                                                     <tr style="">
                                                                 <td style="font-size: 11pt; border-bottom: 1px solid rgb(231,231,231); padding: 5px 0 5px 5px;">
-                                                                                                                                                                            <a style="color: rgb(68,68,68);" href='http://piwik.org/faq/general/#faq_52'>
+                                                                                                                                                                            <a style="color: rgb(68,68,68);" href='http://'>
                                                                         Unknown                                                                            </a>
                                                                                                                         </td>
                                             <td style="font-size: 11pt; border-bottom: 1px solid rgb(231,231,231); padding: 5px 0 5px 5px;">
diff --git a/tests/PHPUnit/System/expected/test_TwoVisitors_twoWebsites_differentDays_scheduled_report_in_pdf_tables_only__ScheduledReports.generateReport_month.original.pdf b/tests/PHPUnit/System/expected/test_TwoVisitors_twoWebsites_differentDays_scheduled_report_in_pdf_tables_only__ScheduledReports.generateReport_month.original.pdf
index 7891c7d5ca81b8bb7d192678110ae18739417f34..1fbdd629d828b8ceb9151e5469196adb10371b5f 100644
Binary files a/tests/PHPUnit/System/expected/test_TwoVisitors_twoWebsites_differentDays_scheduled_report_in_pdf_tables_only__ScheduledReports.generateReport_month.original.pdf and b/tests/PHPUnit/System/expected/test_TwoVisitors_twoWebsites_differentDays_scheduled_report_in_pdf_tables_only__ScheduledReports.generateReport_month.original.pdf differ
diff --git a/tests/PHPUnit/System/expected/test_csvExport__Live.getLastVisitsDetails_day.csv b/tests/PHPUnit/System/expected/test_csvExport__Live.getLastVisitsDetails_day.csv
index c287c4bf018d6dd8074cfb02fc330e94a57a772d..dc400d69e07a8ab253c3f0e9bca049b2850c3cb0 100644
Binary files a/tests/PHPUnit/System/expected/test_csvExport__Live.getLastVisitsDetails_day.csv and b/tests/PHPUnit/System/expected/test_csvExport__Live.getLastVisitsDetails_day.csv differ
diff --git a/tests/PHPUnit/System/expected/test_ecommerceOrderWithItems_LiveEcommerceStatusOrdered__Live.getLastVisitsDetails_day.xml b/tests/PHPUnit/System/expected/test_ecommerceOrderWithItems_LiveEcommerceStatusOrdered__Live.getLastVisitsDetails_day.xml
index 25ac19a415a1cd48b7523795c5169b41bd0eb08d..f8da6f787ceb2c48f0c20fc2855d207c5cac9a8a 100644
--- a/tests/PHPUnit/System/expected/test_ecommerceOrderWithItems_LiveEcommerceStatusOrdered__Live.getLastVisitsDetails_day.xml
+++ b/tests/PHPUnit/System/expected/test_ecommerceOrderWithItems_LiveEcommerceStatusOrdered__Live.getLastVisitsDetails_day.xml
@@ -82,7 +82,7 @@
 		<events>0</events>
 		<provider>Unknown</provider>
 		<providerName>Unknown</providerName>
-		<providerUrl>http://piwik.org/faq/general/#faq_52</providerUrl>
+		<providerUrl />
 		<referrerType>direct</referrerType>
 		<referrerTypeName>Direct Entry</referrerTypeName>
 		<referrerName />
@@ -293,7 +293,7 @@
 		<events>0</events>
 		<provider>Unknown</provider>
 		<providerName>Unknown</providerName>
-		<providerUrl>http://piwik.org/faq/general/#faq_52</providerUrl>
+		<providerUrl />
 		<referrerType>direct</referrerType>
 		<referrerTypeName>Direct Entry</referrerTypeName>
 		<referrerName />
diff --git a/tests/PHPUnit/System/expected/test_ecommerceOrderWithItems__Live.getLastVisitsDetails_day.xml b/tests/PHPUnit/System/expected/test_ecommerceOrderWithItems__Live.getLastVisitsDetails_day.xml
index 30ae50eb8f3141864e6fef3a8461114f38523356..75cf165e0ce69550782b7f28fbffb509ebcb4cdb 100644
--- a/tests/PHPUnit/System/expected/test_ecommerceOrderWithItems__Live.getLastVisitsDetails_day.xml
+++ b/tests/PHPUnit/System/expected/test_ecommerceOrderWithItems__Live.getLastVisitsDetails_day.xml
@@ -158,7 +158,7 @@
 		<events>0</events>
 		<provider>Unknown</provider>
 		<providerName>Unknown</providerName>
-		<providerUrl>http://piwik.org/faq/general/#faq_52</providerUrl>
+		<providerUrl />
 		<referrerType>direct</referrerType>
 		<referrerTypeName>Direct Entry</referrerTypeName>
 		<referrerName />
@@ -488,7 +488,7 @@
 		<events>0</events>
 		<provider>Unknown</provider>
 		<providerName>Unknown</providerName>
-		<providerUrl>http://piwik.org/faq/general/#faq_52</providerUrl>
+		<providerUrl />
 		<referrerType>direct</referrerType>
 		<referrerTypeName>Direct Entry</referrerTypeName>
 		<referrerName />
@@ -704,7 +704,7 @@
 		<events>0</events>
 		<provider>Unknown</provider>
 		<providerName>Unknown</providerName>
-		<providerUrl>http://piwik.org/faq/general/#faq_52</providerUrl>
+		<providerUrl />
 		<referrerType>direct</referrerType>
 		<referrerTypeName>Direct Entry</referrerTypeName>
 		<referrerName />
diff --git a/tests/PHPUnit/System/expected/test_ecommerceOrderWithItems_scheduled_report_in_html_row_evolution_graph__ScheduledReports.generateReport_week.original.html b/tests/PHPUnit/System/expected/test_ecommerceOrderWithItems_scheduled_report_in_html_row_evolution_graph__ScheduledReports.generateReport_week.original.html
index 451b79191c82afee3ed480e92b1dbf255ef4a346..03178c7d324c9dc08a2e8b0b2c2d645c33029a6b 100644
--- a/tests/PHPUnit/System/expected/test_ecommerceOrderWithItems_scheduled_report_in_html_row_evolution_graph__ScheduledReports.generateReport_week.original.html
+++ b/tests/PHPUnit/System/expected/test_ecommerceOrderWithItems_scheduled_report_in_html_row_evolution_graph__ScheduledReports.generateReport_week.original.html
@@ -7,7 +7,7 @@
 <a id="reportTop" target="_blank" href=""><img title="Go to Piwik" border="0" alt="Piwik" src='plugins/Morpheus/images/logo-header.png'/></a>
 
 <h1 style="color: rgb(126,115,99); font-size: 11pt;">
-    Website Piwik test
+    Piwik test
 </h1>
 
 <p>
diff --git a/tests/PHPUnit/System/expected/test_ecommerceOrderWithItems_scheduled_report_in_html_tables_and_graph__ScheduledReports.generateReport_week.original.html b/tests/PHPUnit/System/expected/test_ecommerceOrderWithItems_scheduled_report_in_html_tables_and_graph__ScheduledReports.generateReport_week.original.html
index b5f59686c4ac6f5869332014484fe40ad94fde57..4c0d5a3173657a4f3a2faa82cf56007bb3c4e8fd 100644
--- a/tests/PHPUnit/System/expected/test_ecommerceOrderWithItems_scheduled_report_in_html_tables_and_graph__ScheduledReports.generateReport_week.original.html
+++ b/tests/PHPUnit/System/expected/test_ecommerceOrderWithItems_scheduled_report_in_html_tables_and_graph__ScheduledReports.generateReport_week.original.html
@@ -7,7 +7,7 @@
 <a id="reportTop" target="_blank" href=""><img title="Go to Piwik" border="0" alt="Piwik" src='plugins/Morpheus/images/logo-header.png'/></a>
 
 <h1 style="color: rgb(126,115,99); font-size: 11pt;">
-    Website Piwik test
+    Piwik test
 </h1>
 
 <p>
@@ -6827,7 +6827,7 @@
                                                     
                                                                     <tr style="">
                                                                 <td style="font-size: 11pt; border-bottom: 1px solid rgb(231,231,231); padding: 5px 0 5px 5px;">
-                                                                                                                                                                            <a style="color: rgb(68,68,68);" href='http://piwik.org/faq/general/#faq_52'>
+                                                                                                                                                                            <a style="color: rgb(68,68,68);" href='http://'>
                                                                         Unknown                                                                            </a>
                                                                                                                         </td>
                                             <td style="font-size: 11pt; border-bottom: 1px solid rgb(231,231,231); padding: 5px 0 5px 5px;">
diff --git a/tests/PHPUnit/System/expected/test_ecommerceOrderWithItems_scheduled_report_in_html_tables_only__ScheduledReports.generateReport_week.original.html b/tests/PHPUnit/System/expected/test_ecommerceOrderWithItems_scheduled_report_in_html_tables_only__ScheduledReports.generateReport_week.original.html
index 8283259e336c0c82fd3c8f9ab7780c1b321e9c11..2c71900b41de883f506b1f4e825b81c08da9eb52 100644
--- a/tests/PHPUnit/System/expected/test_ecommerceOrderWithItems_scheduled_report_in_html_tables_only__ScheduledReports.generateReport_week.original.html
+++ b/tests/PHPUnit/System/expected/test_ecommerceOrderWithItems_scheduled_report_in_html_tables_only__ScheduledReports.generateReport_week.original.html
@@ -7,7 +7,7 @@
 <a id="reportTop" target="_blank" href=""><img title="Go to Piwik" border="0" alt="Piwik" src='plugins/Morpheus/images/logo-header.png'/></a>
 
 <h1 style="color: rgb(126,115,99); font-size: 11pt;">
-    Website Piwik test
+    Piwik test
 </h1>
 
 <p>
@@ -6521,7 +6521,7 @@
                                                     
                                                                     <tr style="">
                                                                 <td style="font-size: 11pt; border-bottom: 1px solid rgb(231,231,231); padding: 5px 0 5px 5px;">
-                                                                                                                                                                            <a style="color: rgb(68,68,68);" href='http://piwik.org/faq/general/#faq_52'>
+                                                                                                                                                                            <a style="color: rgb(68,68,68);" href='http://'>
                                                                         Unknown                                                                            </a>
                                                                                                                         </td>
                                             <td style="font-size: 11pt; border-bottom: 1px solid rgb(231,231,231); padding: 5px 0 5px 5px;">
diff --git a/tests/PHPUnit/System/expected/test_ecommerceOrderWithItems_scheduled_report_in_pdf_tables_only__ScheduledReports.generateReport_week.original.pdf b/tests/PHPUnit/System/expected/test_ecommerceOrderWithItems_scheduled_report_in_pdf_tables_only__ScheduledReports.generateReport_week.original.pdf
index e8e37848fd2f107a6b9e3ad041a811634a3f2642..3db8e7ed770c4ed225c87091b08c556f0397bc20 100644
Binary files a/tests/PHPUnit/System/expected/test_ecommerceOrderWithItems_scheduled_report_in_pdf_tables_only__ScheduledReports.generateReport_week.original.pdf and b/tests/PHPUnit/System/expected/test_ecommerceOrderWithItems_scheduled_report_in_pdf_tables_only__ScheduledReports.generateReport_week.original.pdf differ
diff --git a/tests/PHPUnit/System/expected/test_periodIsRange_dateIsLastN_MetadataAndNormalAPI__Live.getLastVisitsDetails_range.xml b/tests/PHPUnit/System/expected/test_periodIsRange_dateIsLastN_MetadataAndNormalAPI__Live.getLastVisitsDetails_range.xml
index 8112427124a8bee24f7ee9946a582ce55ffb9e25..9dec8f6d62d9cc783b49a4e3d128aa3828d08818 100644
--- a/tests/PHPUnit/System/expected/test_periodIsRange_dateIsLastN_MetadataAndNormalAPI__Live.getLastVisitsDetails_range.xml
+++ b/tests/PHPUnit/System/expected/test_periodIsRange_dateIsLastN_MetadataAndNormalAPI__Live.getLastVisitsDetails_range.xml
@@ -52,7 +52,7 @@
 		<events>0</events>
 		<provider>Unknown</provider>
 		<providerName>Unknown</providerName>
-		<providerUrl>http://piwik.org/faq/general/#faq_52</providerUrl>
+		<providerUrl />
 		<referrerType>direct</referrerType>
 		<referrerTypeName>Direct Entry</referrerTypeName>
 		<referrerName />
@@ -167,7 +167,7 @@
 		<events>0</events>
 		<provider>Unknown</provider>
 		<providerName>Unknown</providerName>
-		<providerUrl>http://piwik.org/faq/general/#faq_52</providerUrl>
+		<providerUrl />
 		<referrerType>direct</referrerType>
 		<referrerTypeName>Direct Entry</referrerTypeName>
 		<referrerName />
@@ -342,7 +342,7 @@
 		<events>0</events>
 		<provider>Unknown</provider>
 		<providerName>Unknown</providerName>
-		<providerUrl>http://piwik.org/faq/general/#faq_52</providerUrl>
+		<providerUrl />
 		<referrerType>search</referrerType>
 		<referrerTypeName>Search Engines</referrerTypeName>
 		<referrerName>Google</referrerName>
diff --git a/tests/PHPUnit/System/expected/test_periodIsRange_dateIsLastN_MetadataAndNormalAPI__Live.getVisitorProfile.xml b/tests/PHPUnit/System/expected/test_periodIsRange_dateIsLastN_MetadataAndNormalAPI__Live.getVisitorProfile.xml
index 20546709ec9015463e5a70b98d6fe2a1cfeb1a16..949ab7b840171e44054f69f7a1ee26687742f614 100644
--- a/tests/PHPUnit/System/expected/test_periodIsRange_dateIsLastN_MetadataAndNormalAPI__Live.getVisitorProfile.xml
+++ b/tests/PHPUnit/System/expected/test_periodIsRange_dateIsLastN_MetadataAndNormalAPI__Live.getVisitorProfile.xml
@@ -95,7 +95,7 @@
 			<events>0</events>
 			<provider>Unknown</provider>
 			<providerName>Unknown</providerName>
-			<providerUrl>http://piwik.org/faq/general/#faq_52</providerUrl>
+			<providerUrl />
 			<referrerType>direct</referrerType>
 			<referrerTypeName>Direct Entry</referrerTypeName>
 			<referrerName />
@@ -211,7 +211,7 @@
 			<events>0</events>
 			<provider>Unknown</provider>
 			<providerName>Unknown</providerName>
-			<providerUrl>http://piwik.org/faq/general/#faq_52</providerUrl>
+			<providerUrl />
 			<referrerType>direct</referrerType>
 			<referrerTypeName>Direct Entry</referrerTypeName>
 			<referrerName />
diff --git a/tests/PHPUnit/System/expected/test_reportLimiting_rankingQueryDisabled__Provider.getProvider_month.xml b/tests/PHPUnit/System/expected/test_reportLimiting_rankingQueryDisabled__Provider.getProvider_month.xml
index eb96e297f56dc7b9fb05a5cf58f3da03e6f2e578..95d4b8662796306e6a3ba7ba38ffae9b0c989d35 100644
--- a/tests/PHPUnit/System/expected/test_reportLimiting_rankingQueryDisabled__Provider.getProvider_month.xml
+++ b/tests/PHPUnit/System/expected/test_reportLimiting_rankingQueryDisabled__Provider.getProvider_month.xml
@@ -34,6 +34,6 @@
 		<nb_visits_converted>0</nb_visits_converted>
 		<sum_daily_nb_uniq_visitors>10</sum_daily_nb_uniq_visitors>
 		<sum_daily_nb_users>0</sum_daily_nb_users>
-		<url>http://piwik.org/faq/general/#faq_52</url>
+		<url />
 	</row>
 </result>
\ No newline at end of file
diff --git a/tests/PHPUnit/TestingEnvironment.php b/tests/PHPUnit/TestingEnvironment.php
index 3e2d0ec4c7270ecd16aa7617081a8a4cc4e1a437..b2b875d7fced9225c3d2efd9ecf0731ed56f613c 100644
--- a/tests/PHPUnit/TestingEnvironment.php
+++ b/tests/PHPUnit/TestingEnvironment.php
@@ -88,7 +88,7 @@ class Piwik_TestingEnvironment
             if (isset($_SERVER['QUERY_STRING'])
                 && !$this->dontUseTestConfig
             ) {
-                \Piwik\Log::verbose("Test Environment Variables for (%s):\n%s", $_SERVER['QUERY_STRING'], print_r($this->behaviorOverrideProperties, true));
+                @\Piwik\Log::verbose("Test Environment Variables for (%s):\n%s", $_SERVER['QUERY_STRING'], print_r($this->behaviorOverrideProperties, true));
             }
         } catch (Exception $ex) {
             // ignore
diff --git a/tests/PHPUnit/UI b/tests/PHPUnit/UI
index d98325f48a495a6d5d71cb1ffed231f6834f30bb..6100f9642a51ee82b613d4f25595e4ee914878a9 160000
--- a/tests/PHPUnit/UI
+++ b/tests/PHPUnit/UI
@@ -1 +1 @@
-Subproject commit d98325f48a495a6d5d71cb1ffed231f6834f30bb
+Subproject commit 6100f9642a51ee82b613d4f25595e4ee914878a9
diff --git a/tests/README.md b/tests/README.md
index 2cc2c3180c139ad4b9f8dec339067b7979dbf46b..1e1299eae77422ef619036231b1b2147e6a9b275 100644
--- a/tests/README.md
+++ b/tests/README.md
@@ -133,6 +133,10 @@ Some of these scheduled reports contain PNG graphs. Depending on the system unde
 Therefore, PNG graphs are only tested and compared against "expected" graphs, if the system under test has the same characteristics as the integration server.
 The characteristics of the integration server are described in `SystemTestCase::canImagesBeIncludedInScheduledReports()`
 
+### Running tests on Ubuntu
+
+If you use Ubuntu or another Linux distribution, you must make one change to the filesystem configuration to make tests run fast. [Read more here](https://github.com/piwik/piwik/blob/master/tests/README.troubleshooting.md#important-note-for-linux-users-fix-for-slow-tests).
+
 ## JavaScript Tests
 
 piwik.js is unit tested and you can run the Javascript tests at: /piwik/tests/javascript/
diff --git a/tests/README.troubleshooting.md b/tests/README.troubleshooting.md
index a82c84a3da6d75e39777ab02bd59c40d5350933f..7582b476e2c7714a8829a44673c412887c135fe9 100644
--- a/tests/README.troubleshooting.md
+++ b/tests/README.troubleshooting.md
@@ -4,6 +4,19 @@ If you have problems with running Piwik tests see below.
 
 If you cannot solve your issues please [ask in the forums](http://forum.piwik.org/list.php?9)
 
+
+## Important note for Linux users: fix for slow tests
+
+If the tests are running incredibly slow on your machine, maybe you are running mysql DB on an ext4 partition?
+Here is the tip that will save you hours of research: if you use Mysql on ext4 partition,
+make sure you add "nobarrier" option to /etc/fstab to disable some super slow IO feature.
+
+Change from:
+    `UUID=83237e54-445f-8b83-180f06459d46       /       ext4    errors=remount-ro     0       1`
+to this:
+    `UUID=83237e54-445f-8b83-180f06459d46       /       ext4    errors=remount-ro,nobarrier     0       1`
+
+
 ## Using latest GIT version
 On ubuntu to use the latest GIT:
 
@@ -32,15 +45,3 @@ On your dev server, give your user permissions to write to the directory:
     $ sudo chmod 777 -R piwik/tmp/
 
 **If you get the MySQL error number `2002`**, try changing the `[database_tests] host` config option to `"127.0.0.1"`.
-
-## Troubleshooting SLOW tests
-
-If the tests are running incredibly slow on your machine, maybe you are running mysql DB on an ext4 partition?
-Here is the tip that will save you hours of research: if you use Mysql on ext4 partition,
-make sure you add "nobarrier" option to /etc/fstab to disable some super slow IO feature.
-
-Change from:
-    `UUID=83237e54-445f-8b83-180f06459d46       /       ext4    errors=remount-ro     0       1`
-to this:
-    `UUID=83237e54-445f-8b83-180f06459d46       /       ext4    errors=remount-ro,nobarrier     0       1`
-