diff --git a/composer.json b/composer.json
index 8b4a630d3e..c73996c0ea 100644
--- a/composer.json
+++ b/composer.json
@@ -16,7 +16,8 @@
"ezyang/htmlpurifier": "~4.7.0",
"mobiledetect/mobiledetectlib": "2.8.*",
"league/html-to-markdown": "~4.4.1",
- "pear-pear.php.net/Text_Highlighter": "*"
+ "pear-pear.php.net/Text_Highlighter": "*",
+ "pear-pear.php.net/Text_LanguageDetect": "*"
},
"repositories": [
{
diff --git a/composer.lock b/composer.lock
index f057d0cec7..6491f501e4 100644
--- a/composer.lock
+++ b/composer.lock
@@ -4,7 +4,7 @@
"Read more about it at https://getcomposer.org/doc/01-basic-usage.md#composer-lock-the-lock-file",
"This file is @generated automatically"
],
- "content-hash": "802372ddf124ef949e80dd8dc1d38797",
+ "content-hash": "7499dcab40af67a3f23036e3a8d9587f",
"packages": [
{
"name": "ezyang/htmlpurifier",
@@ -116,16 +116,16 @@
},
{
"name": "mobiledetect/mobiledetectlib",
- "version": "2.8.25",
+ "version": "2.8.26",
"source": {
"type": "git",
"url": "https://github.com/serbanghita/Mobile-Detect.git",
- "reference": "f0896b5c7274d1450023b0b376240be902c3251c"
+ "reference": "a0ed86c9d7c04ae27fa6418b55e3beb04dfe3297"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/serbanghita/Mobile-Detect/zipball/f0896b5c7274d1450023b0b376240be902c3251c",
- "reference": "f0896b5c7274d1450023b0b376240be902c3251c",
+ "url": "https://api.github.com/repos/serbanghita/Mobile-Detect/zipball/a0ed86c9d7c04ae27fa6418b55e3beb04dfe3297",
+ "reference": "a0ed86c9d7c04ae27fa6418b55e3beb04dfe3297",
"shasum": ""
},
"require": {
@@ -164,14 +164,14 @@
"mobile detector",
"php mobile detect"
],
- "time": "2017-03-29T13:59:30+00:00"
+ "time": "2017-08-29T18:23:54+00:00"
},
{
"name": "pear-pear.php.net/Archive_Tar",
- "version": "1.4.2",
+ "version": "1.4.3",
"dist": {
"type": "file",
- "url": "https://pear.php.net/get/Archive_Tar-1.4.2.tgz",
+ "url": "https://pear.php.net/get/Archive_Tar-1.4.3.tgz",
"reference": null,
"shasum": null
},
@@ -179,7 +179,7 @@
"php": ">=5.2.0.0"
},
"replace": {
- "pear-pear/archive_tar": "== 1.4.2.0"
+ "pear-pear/archive_tar": "== 1.4.3.0"
},
"type": "pear-library",
"autoload": {
@@ -226,10 +226,10 @@
},
{
"name": "pear-pear.php.net/PEAR",
- "version": "1.10.4",
+ "version": "1.10.5",
"dist": {
"type": "file",
- "url": "https://pear.php.net/get/PEAR-1.10.4.tgz",
+ "url": "https://pear.php.net/get/PEAR-1.10.5.tgz",
"reference": null,
"shasum": null
},
@@ -247,7 +247,7 @@
"pear-pear.php.net/pear_frontend_web": "<=0.4.0.0"
},
"replace": {
- "pear-pear/pear": "== 1.10.4.0"
+ "pear-pear/pear": "== 1.10.5.0"
},
"type": "pear-library",
"autoload": {
@@ -324,6 +324,36 @@
],
"description": "Text_Highlighter is a package for syntax highlighting.\n\nIt provides a base class provining all the functionality,\nand a descendent classes geneator class.\n\nThe main idea is to simplify creation of subclasses\nimplementing syntax highlighting for particular language.\nSubclasses do not implement any new functioanality,\nthey just provide syntax highlighting rules.\nThe rules sources are in XML format.\n\nTo create a highlighter for a language, there is no need\nto code a new class manually. Simply describe the rules\nin XML file and use Text_Highlighter_Generator to create\na new class."
},
+ {
+ "name": "pear-pear.php.net/Text_LanguageDetect",
+ "version": "1.0.0",
+ "dist": {
+ "type": "file",
+ "url": "https://pear.php.net/get/Text_LanguageDetect-1.0.0.tgz",
+ "reference": null,
+ "shasum": null
+ },
+ "require": {
+ "ext-pcre": "*",
+ "php": ">=5.4.0.0"
+ },
+ "replace": {
+ "pear-pear/text_languagedetect": "== 1.0.0.0"
+ },
+ "type": "pear-library",
+ "autoload": {
+ "classmap": [
+ ""
+ ]
+ },
+ "include-path": [
+ "/"
+ ],
+ "license": [
+ "BSD"
+ ],
+ "description": "Text_LanguageDetect can identify 52 human languages from text samples and return confidence scores for each."
+ },
{
"name": "pear-pear.php.net/XML_Parser",
"version": "1.3.7",
@@ -356,10 +386,10 @@
},
{
"name": "pear-pear.php.net/XML_Util",
- "version": "1.4.2",
+ "version": "1.4.3",
"dist": {
"type": "file",
- "url": "https://pear.php.net/get/XML_Util-1.4.2.tgz",
+ "url": "https://pear.php.net/get/XML_Util-1.4.3.tgz",
"reference": null,
"shasum": null
},
@@ -368,7 +398,7 @@
"php": ">=5.4.0.0"
},
"replace": {
- "pear-pear/xml_util": "== 1.4.2.0"
+ "pear-pear/xml_util": "== 1.4.3.0"
},
"type": "pear-library",
"autoload": {
diff --git a/include/items.php b/include/items.php
index 6945f8894d..35e01cbc74 100644
--- a/include/items.php
+++ b/include/items.php
@@ -364,13 +364,9 @@ function item_add_language_opt(&$arr) {
$postopts = "";
}
- require_once('library/langdet/Text/LanguageDetect.php');
-
$naked_body = preg_replace('/\[(.+?)\]/','', $arr['body']);
- $l = new Text_LanguageDetect();
- //$lng = $l->detectConfidence($naked_body);
- //$arr['postopts'] = (($lng['language']) ? 'lang=' . $lng['language'] . ';' . $lng['confidence'] : '');
- $lng = $l->detect($naked_body, 3);
+ $LanguageDetect = new Text_LanguageDetect();
+ $lng = $LanguageDetect->detect($naked_body, 3);
if (sizeof($lng) > 0) {
if ($postopts != "") $postopts .= '&'; // arbitrary separator, to be reviewed
diff --git a/library/langdet/README.rst b/library/langdet/README.rst
deleted file mode 100644
index 9381c7f7e4..0000000000
--- a/library/langdet/README.rst
+++ /dev/null
@@ -1,157 +0,0 @@
-*******************
-Text_LanguageDetect
-*******************
-PHP library to identify human languages from text samples.
-Returns confidence scores for each.
-
-
-Installation
-============
-
-PEAR
-----
-::
-
- $ pear install Text_LanguageDetect
-
-Composer
---------
-::
-
- $ composer require pear/text_languagedetect
-
-
-Usage
-=====
-Also see the examples in the ``docs/`` directory and
-the `official documentation`__.
-
-__ http://pear.php.net/package/Text_LanguageDetect/docs
-
-Language detection
-------------------
-Simple language detection::
-
- detectSimple($text);
-
- echo $language;
- //output: german
-
-Show the three most probable languages with their confidence score::
-
- detect($text, 3);
-
- foreach ($results as $language => $confidence) {
- echo $language . ': ' . number_format($confidence, 2) . "\n";
- }
-
- //output:
- //german: 0.35
- //dutch: 0.25
- //swedish: 0.20
- ?>
-
-
-Language code
--------------
-Instead of returning the full language name, ISO 639-2 two and three
-letter codes can be returned::
-
- setNameMode(2);
- echo $ld->detectSimple('Das ist ein kleiner Text') . "\n";
-
- //will output the ISO 639-2 three-letter language code
- // "deu"
- $ld->setNameMode(3);
- echo $ld->detectSimple('Das ist ein kleiner Text') . "\n";
- ?>
-
-
-Supported languages
-===================
-- albanian
-- arabic
-- azeri
-- bengali
-- bulgarian
-- cebuano
-- croatian
-- czech
-- danish
-- dutch
-- english
-- estonian
-- farsi
-- finnish
-- french
-- german
-- hausa
-- hawaiian
-- hindi
-- hungarian
-- icelandic
-- indonesian
-- italian
-- kazakh
-- kyrgyz
-- latin
-- latvian
-- lithuanian
-- macedonian
-- mongolian
-- nepali
-- norwegian
-- pashto
-- pidgin
-- polish
-- portuguese
-- romanian
-- russian
-- serbian
-- slovak
-- slovene
-- somali
-- spanish
-- swahili
-- swedish
-- tagalog
-- turkish
-- ukrainian
-- urdu
-- uzbek
-- vietnamese
-- welsh
-
-
-Links
-=====
-Homepage
- http://pear.php.net/package/Text_LanguageDetect
-Bug tracker
- http://pear.php.net/bugs/search.php?cmd=display&package_name[]=Text_LanguageDetect
-Documentation
- http://pear.php.net/package/Text_LanguageDetect/docs
-Unit test status
- https://travis-ci.org/pear/Text_LanguageDetect
-
- .. image:: https://travis-ci.org/pear/Text_LanguageDetect.svg?branch=master
- :target: https://travis-ci.org/pear/Text_LanguageDetect
diff --git a/library/langdet/data/build-unicode_blocks.php b/library/langdet/data/build-unicode_blocks.php
deleted file mode 100644
index afa75a501a..0000000000
--- a/library/langdet/data/build-unicode_blocks.php
+++ /dev/null
@@ -1,7 +0,0 @@
-
\ No newline at end of file
diff --git a/library/langdet/data/unicode_blocks.php b/library/langdet/data/unicode_blocks.php
deleted file mode 100644
index 2be6a19d91..0000000000
--- a/library/langdet/data/unicode_blocks.php
+++ /dev/null
@@ -1,874 +0,0 @@
-
- array (
- 0 => 0x0000,
- 1 => 0x007F,
- 2 => 'Basic Latin',
- ),
- 1 =>
- array (
- 0 => 0x0080,
- 1 => 0x00FF,
- 2 => 'Latin-1 Supplement',
- ),
- 2 =>
- array (
- 0 => 0x0100,
- 1 => 0x017F,
- 2 => 'Latin Extended-A',
- ),
- 3 =>
- array (
- 0 => 0x0180,
- 1 => 0x024F,
- 2 => 'Latin Extended-B',
- ),
- 4 =>
- array (
- 0 => 0x0250,
- 1 => 0x02AF,
- 2 => 'IPA Extensions',
- ),
- 5 =>
- array (
- 0 => 0x02B0,
- 1 => 0x02FF,
- 2 => 'Spacing Modifier Letters',
- ),
- 6 =>
- array (
- 0 => 0x0300,
- 1 => 0x036F,
- 2 => 'Combining Diacritical Marks',
- ),
- 7 =>
- array (
- 0 => 0x0370,
- 1 => 0x03FF,
- 2 => 'Greek and Coptic',
- ),
- 8 =>
- array (
- 0 => 0x0400,
- 1 => 0x04FF,
- 2 => 'Cyrillic',
- ),
- 9 =>
- array (
- 0 => 0x0500,
- 1 => 0x052F,
- 2 => 'Cyrillic Supplement',
- ),
- 10 =>
- array (
- 0 => 0x0530,
- 1 => 0x058F,
- 2 => 'Armenian',
- ),
- 11 =>
- array (
- 0 => 0x0590,
- 1 => 0x05FF,
- 2 => 'Hebrew',
- ),
- 12 =>
- array (
- 0 => 0x0600,
- 1 => 0x06FF,
- 2 => 'Arabic',
- ),
- 13 =>
- array (
- 0 => 0x0700,
- 1 => 0x074F,
- 2 => 'Syriac',
- ),
- 14 =>
- array (
- 0 => 0x0750,
- 1 => 0x077F,
- 2 => 'Arabic Supplement',
- ),
- 15 =>
- array (
- 0 => 0x0780,
- 1 => 0x07BF,
- 2 => 'Thaana',
- ),
- 16 =>
- array (
- 0 => 0x0900,
- 1 => 0x097F,
- 2 => 'Devanagari',
- ),
- 17 =>
- array (
- 0 => 0x0980,
- 1 => 0x09FF,
- 2 => 'Bengali',
- ),
- 18 =>
- array (
- 0 => 0x0A00,
- 1 => 0x0A7F,
- 2 => 'Gurmukhi',
- ),
- 19 =>
- array (
- 0 => 0x0A80,
- 1 => 0x0AFF,
- 2 => 'Gujarati',
- ),
- 20 =>
- array (
- 0 => 0x0B00,
- 1 => 0x0B7F,
- 2 => 'Oriya',
- ),
- 21 =>
- array (
- 0 => 0x0B80,
- 1 => 0x0BFF,
- 2 => 'Tamil',
- ),
- 22 =>
- array (
- 0 => 0x0C00,
- 1 => 0x0C7F,
- 2 => 'Telugu',
- ),
- 23 =>
- array (
- 0 => 0x0C80,
- 1 => 0x0CFF,
- 2 => 'Kannada',
- ),
- 24 =>
- array (
- 0 => 0x0D00,
- 1 => 0x0D7F,
- 2 => 'Malayalam',
- ),
- 25 =>
- array (
- 0 => 0x0D80,
- 1 => 0x0DFF,
- 2 => 'Sinhala',
- ),
- 26 =>
- array (
- 0 => 0x0E00,
- 1 => 0x0E7F,
- 2 => 'Thai',
- ),
- 27 =>
- array (
- 0 => 0x0E80,
- 1 => 0x0EFF,
- 2 => 'Lao',
- ),
- 28 =>
- array (
- 0 => 0x0F00,
- 1 => 0x0FFF,
- 2 => 'Tibetan',
- ),
- 29 =>
- array (
- 0 => 0x1000,
- 1 => 0x109F,
- 2 => 'Myanmar',
- ),
- 30 =>
- array (
- 0 => 0x10A0,
- 1 => 0x10FF,
- 2 => 'Georgian',
- ),
- 31 =>
- array (
- 0 => 0x1100,
- 1 => 0x11FF,
- 2 => 'Hangul Jamo',
- ),
- 32 =>
- array (
- 0 => 0x1200,
- 1 => 0x137F,
- 2 => 'Ethiopic',
- ),
- 33 =>
- array (
- 0 => 0x1380,
- 1 => 0x139F,
- 2 => 'Ethiopic Supplement',
- ),
- 34 =>
- array (
- 0 => 0x13A0,
- 1 => 0x13FF,
- 2 => 'Cherokee',
- ),
- 35 =>
- array (
- 0 => 0x1400,
- 1 => 0x167F,
- 2 => 'Unified Canadian Aboriginal Syllabics',
- ),
- 36 =>
- array (
- 0 => 0x1680,
- 1 => 0x169F,
- 2 => 'Ogham',
- ),
- 37 =>
- array (
- 0 => 0x16A0,
- 1 => 0x16FF,
- 2 => 'Runic',
- ),
- 38 =>
- array (
- 0 => 0x1700,
- 1 => 0x171F,
- 2 => 'Tagalog',
- ),
- 39 =>
- array (
- 0 => 0x1720,
- 1 => 0x173F,
- 2 => 'Hanunoo',
- ),
- 40 =>
- array (
- 0 => 0x1740,
- 1 => 0x175F,
- 2 => 'Buhid',
- ),
- 41 =>
- array (
- 0 => 0x1760,
- 1 => 0x177F,
- 2 => 'Tagbanwa',
- ),
- 42 =>
- array (
- 0 => 0x1780,
- 1 => 0x17FF,
- 2 => 'Khmer',
- ),
- 43 =>
- array (
- 0 => 0x1800,
- 1 => 0x18AF,
- 2 => 'Mongolian',
- ),
- 44 =>
- array (
- 0 => 0x1900,
- 1 => 0x194F,
- 2 => 'Limbu',
- ),
- 45 =>
- array (
- 0 => 0x1950,
- 1 => 0x197F,
- 2 => 'Tai Le',
- ),
- 46 =>
- array (
- 0 => 0x1980,
- 1 => 0x19DF,
- 2 => 'New Tai Lue',
- ),
- 47 =>
- array (
- 0 => 0x19E0,
- 1 => 0x19FF,
- 2 => 'Khmer Symbols',
- ),
- 48 =>
- array (
- 0 => 0x1A00,
- 1 => 0x1A1F,
- 2 => 'Buginese',
- ),
- 49 =>
- array (
- 0 => 0x1D00,
- 1 => 0x1D7F,
- 2 => 'Phonetic Extensions',
- ),
- 50 =>
- array (
- 0 => 0x1D80,
- 1 => 0x1DBF,
- 2 => 'Phonetic Extensions Supplement',
- ),
- 51 =>
- array (
- 0 => 0x1DC0,
- 1 => 0x1DFF,
- 2 => 'Combining Diacritical Marks Supplement',
- ),
- 52 =>
- array (
- 0 => 0x1E00,
- 1 => 0x1EFF,
- 2 => 'Latin Extended Additional',
- ),
- 53 =>
- array (
- 0 => 0x1F00,
- 1 => 0x1FFF,
- 2 => 'Greek Extended',
- ),
- 54 =>
- array (
- 0 => 0x2000,
- 1 => 0x206F,
- 2 => 'General Punctuation',
- ),
- 55 =>
- array (
- 0 => 0x2070,
- 1 => 0x209F,
- 2 => 'Superscripts and Subscripts',
- ),
- 56 =>
- array (
- 0 => 0x20A0,
- 1 => 0x20CF,
- 2 => 'Currency Symbols',
- ),
- 57 =>
- array (
- 0 => 0x20D0,
- 1 => 0x20FF,
- 2 => 'Combining Diacritical Marks for Symbols',
- ),
- 58 =>
- array (
- 0 => 0x2100,
- 1 => 0x214F,
- 2 => 'Letterlike Symbols',
- ),
- 59 =>
- array (
- 0 => 0x2150,
- 1 => 0x218F,
- 2 => 'Number Forms',
- ),
- 60 =>
- array (
- 0 => 0x2190,
- 1 => 0x21FF,
- 2 => 'Arrows',
- ),
- 61 =>
- array (
- 0 => 0x2200,
- 1 => 0x22FF,
- 2 => 'Mathematical Operators',
- ),
- 62 =>
- array (
- 0 => 0x2300,
- 1 => 0x23FF,
- 2 => 'Miscellaneous Technical',
- ),
- 63 =>
- array (
- 0 => 0x2400,
- 1 => 0x243F,
- 2 => 'Control Pictures',
- ),
- 64 =>
- array (
- 0 => 0x2440,
- 1 => 0x245F,
- 2 => 'Optical Character Recognition',
- ),
- 65 =>
- array (
- 0 => 0x2460,
- 1 => 0x24FF,
- 2 => 'Enclosed Alphanumerics',
- ),
- 66 =>
- array (
- 0 => 0x2500,
- 1 => 0x257F,
- 2 => 'Box Drawing',
- ),
- 67 =>
- array (
- 0 => 0x2580,
- 1 => 0x259F,
- 2 => 'Block Elements',
- ),
- 68 =>
- array (
- 0 => 0x25A0,
- 1 => 0x25FF,
- 2 => 'Geometric Shapes',
- ),
- 69 =>
- array (
- 0 => 0x2600,
- 1 => 0x26FF,
- 2 => 'Miscellaneous Symbols',
- ),
- 70 =>
- array (
- 0 => 0x2700,
- 1 => 0x27BF,
- 2 => 'Dingbats',
- ),
- 71 =>
- array (
- 0 => 0x27C0,
- 1 => 0x27EF,
- 2 => 'Miscellaneous Mathematical Symbols-A',
- ),
- 72 =>
- array (
- 0 => 0x27F0,
- 1 => 0x27FF,
- 2 => 'Supplemental Arrows-A',
- ),
- 73 =>
- array (
- 0 => 0x2800,
- 1 => 0x28FF,
- 2 => 'Braille Patterns',
- ),
- 74 =>
- array (
- 0 => 0x2900,
- 1 => 0x297F,
- 2 => 'Supplemental Arrows-B',
- ),
- 75 =>
- array (
- 0 => 0x2980,
- 1 => 0x29FF,
- 2 => 'Miscellaneous Mathematical Symbols-B',
- ),
- 76 =>
- array (
- 0 => 0x2A00,
- 1 => 0x2AFF,
- 2 => 'Supplemental Mathematical Operators',
- ),
- 77 =>
- array (
- 0 => 0x2B00,
- 1 => 0x2BFF,
- 2 => 'Miscellaneous Symbols and Arrows',
- ),
- 78 =>
- array (
- 0 => 0x2C00,
- 1 => 0x2C5F,
- 2 => 'Glagolitic',
- ),
- 79 =>
- array (
- 0 => 0x2C80,
- 1 => 0x2CFF,
- 2 => 'Coptic',
- ),
- 80 =>
- array (
- 0 => 0x2D00,
- 1 => 0x2D2F,
- 2 => 'Georgian Supplement',
- ),
- 81 =>
- array (
- 0 => 0x2D30,
- 1 => 0x2D7F,
- 2 => 'Tifinagh',
- ),
- 82 =>
- array (
- 0 => 0x2D80,
- 1 => 0x2DDF,
- 2 => 'Ethiopic Extended',
- ),
- 83 =>
- array (
- 0 => 0x2E00,
- 1 => 0x2E7F,
- 2 => 'Supplemental Punctuation',
- ),
- 84 =>
- array (
- 0 => 0x2E80,
- 1 => 0x2EFF,
- 2 => 'CJK Radicals Supplement',
- ),
- 85 =>
- array (
- 0 => 0x2F00,
- 1 => 0x2FDF,
- 2 => 'Kangxi Radicals',
- ),
- 86 =>
- array (
- 0 => 0x2FF0,
- 1 => 0x2FFF,
- 2 => 'Ideographic Description Characters',
- ),
- 87 =>
- array (
- 0 => 0x3000,
- 1 => 0x303F,
- 2 => 'CJK Symbols and Punctuation',
- ),
- 88 =>
- array (
- 0 => 0x3040,
- 1 => 0x309F,
- 2 => 'Hiragana',
- ),
- 89 =>
- array (
- 0 => 0x30A0,
- 1 => 0x30FF,
- 2 => 'Katakana',
- ),
- 90 =>
- array (
- 0 => 0x3100,
- 1 => 0x312F,
- 2 => 'Bopomofo',
- ),
- 91 =>
- array (
- 0 => 0x3130,
- 1 => 0x318F,
- 2 => 'Hangul Compatibility Jamo',
- ),
- 92 =>
- array (
- 0 => 0x3190,
- 1 => 0x319F,
- 2 => 'Kanbun',
- ),
- 93 =>
- array (
- 0 => 0x31A0,
- 1 => 0x31BF,
- 2 => 'Bopomofo Extended',
- ),
- 94 =>
- array (
- 0 => 0x31C0,
- 1 => 0x31EF,
- 2 => 'CJK Strokes',
- ),
- 95 =>
- array (
- 0 => 0x31F0,
- 1 => 0x31FF,
- 2 => 'Katakana Phonetic Extensions',
- ),
- 96 =>
- array (
- 0 => 0x3200,
- 1 => 0x32FF,
- 2 => 'Enclosed CJK Letters and Months',
- ),
- 97 =>
- array (
- 0 => 0x3300,
- 1 => 0x33FF,
- 2 => 'CJK Compatibility',
- ),
- 98 =>
- array (
- 0 => 0x3400,
- 1 => 0x4DBF,
- 2 => 'CJK Unified Ideographs Extension A',
- ),
- 99 =>
- array (
- 0 => 0x4DC0,
- 1 => 0x4DFF,
- 2 => 'Yijing Hexagram Symbols',
- ),
- 100 =>
- array (
- 0 => 0x4E00,
- 1 => 0x9FFF,
- 2 => 'CJK Unified Ideographs',
- ),
- 101 =>
- array (
- 0 => 0xA000,
- 1 => 0xA48F,
- 2 => 'Yi Syllables',
- ),
- 102 =>
- array (
- 0 => 0xA490,
- 1 => 0xA4CF,
- 2 => 'Yi Radicals',
- ),
- 103 =>
- array (
- 0 => 0xA700,
- 1 => 0xA71F,
- 2 => 'Modifier Tone Letters',
- ),
- 104 =>
- array (
- 0 => 0xA800,
- 1 => 0xA82F,
- 2 => 'Syloti Nagri',
- ),
- 105 =>
- array (
- 0 => 0xAC00,
- 1 => 0xD7AF,
- 2 => 'Hangul Syllables',
- ),
- 106 =>
- array (
- 0 => 0xD800,
- 1 => 0xDB7F,
- 2 => 'High Surrogates',
- ),
- 107 =>
- array (
- 0 => 0xDB80,
- 1 => 0xDBFF,
- 2 => 'High Private Use Surrogates',
- ),
- 108 =>
- array (
- 0 => 0xDC00,
- 1 => 0xDFFF,
- 2 => 'Low Surrogates',
- ),
- 109 =>
- array (
- 0 => 0xE000,
- 1 => 0xF8FF,
- 2 => 'Private Use Area',
- ),
- 110 =>
- array (
- 0 => 0xF900,
- 1 => 0xFAFF,
- 2 => 'CJK Compatibility Ideographs',
- ),
- 111 =>
- array (
- 0 => 0xFB00,
- 1 => 0xFB4F,
- 2 => 'Alphabetic Presentation Forms',
- ),
- 112 =>
- array (
- 0 => 0xFB50,
- 1 => 0xFDFF,
- 2 => 'Arabic Presentation Forms-A',
- ),
- 113 =>
- array (
- 0 => 0xFE00,
- 1 => 0xFE0F,
- 2 => 'Variation Selectors',
- ),
- 114 =>
- array (
- 0 => 0xFE10,
- 1 => 0xFE1F,
- 2 => 'Vertical Forms',
- ),
- 115 =>
- array (
- 0 => 0xFE20,
- 1 => 0xFE2F,
- 2 => 'Combining Half Marks',
- ),
- 116 =>
- array (
- 0 => 0xFE30,
- 1 => 0xFE4F,
- 2 => 'CJK Compatibility Forms',
- ),
- 117 =>
- array (
- 0 => 0xFE50,
- 1 => 0xFE6F,
- 2 => 'Small Form Variants',
- ),
- 118 =>
- array (
- 0 => 0xFE70,
- 1 => 0xFEFF,
- 2 => 'Arabic Presentation Forms-B',
- ),
- 119 =>
- array (
- 0 => 0xFF00,
- 1 => 0xFFEF,
- 2 => 'Halfwidth and Fullwidth Forms',
- ),
- 120 =>
- array (
- 0 => 0xFFF0,
- 1 => 0xFFFF,
- 2 => 'Specials',
- ),
- 121 =>
- array (
- 0 => 0x10000,
- 1 => 0x1007F,
- 2 => 'Linear B Syllabary',
- ),
- 122 =>
- array (
- 0 => 0x10080,
- 1 => 0x100FF,
- 2 => 'Linear B Ideograms',
- ),
- 123 =>
- array (
- 0 => 0x10100,
- 1 => 0x1013F,
- 2 => 'Aegean Numbers',
- ),
- 124 =>
- array (
- 0 => 0x10140,
- 1 => 0x1018F,
- 2 => 'Ancient Greek Numbers',
- ),
- 125 =>
- array (
- 0 => 0x10300,
- 1 => 0x1032F,
- 2 => 'Old Italic',
- ),
- 126 =>
- array (
- 0 => 0x10330,
- 1 => 0x1034F,
- 2 => 'Gothic',
- ),
- 127 =>
- array (
- 0 => 0x10380,
- 1 => 0x1039F,
- 2 => 'Ugaritic',
- ),
- 128 =>
- array (
- 0 => 0x103A0,
- 1 => 0x103DF,
- 2 => 'Old Persian',
- ),
- 129 =>
- array (
- 0 => 0x10400,
- 1 => 0x1044F,
- 2 => 'Deseret',
- ),
- 130 =>
- array (
- 0 => 0x10450,
- 1 => 0x1047F,
- 2 => 'Shavian',
- ),
- 131 =>
- array (
- 0 => 0x10480,
- 1 => 0x104AF,
- 2 => 'Osmanya',
- ),
- 132 =>
- array (
- 0 => 0x10800,
- 1 => 0x1083F,
- 2 => 'Cypriot Syllabary',
- ),
- 133 =>
- array (
- 0 => 0x10A00,
- 1 => 0x10A5F,
- 2 => 'Kharoshthi',
- ),
- 134 =>
- array (
- 0 => 0x1D000,
- 1 => 0x1D0FF,
- 2 => 'Byzantine Musical Symbols',
- ),
- 135 =>
- array (
- 0 => 0x1D100,
- 1 => 0x1D1FF,
- 2 => 'Musical Symbols',
- ),
- 136 =>
- array (
- 0 => 0x1D200,
- 1 => 0x1D24F,
- 2 => 'Ancient Greek Musical Notation',
- ),
- 137 =>
- array (
- 0 => 0x1D300,
- 1 => 0x1D35F,
- 2 => 'Tai Xuan Jing Symbols',
- ),
- 138 =>
- array (
- 0 => 0x1D400,
- 1 => 0x1D7FF,
- 2 => 'Mathematical Alphanumeric Symbols',
- ),
- 139 =>
- array (
- 0 => 0x20000,
- 1 => 0x2A6DF,
- 2 => 'CJK Unified Ideographs Extension B',
- ),
- 140 =>
- array (
- 0 => 0x2F800,
- 1 => 0x2FA1F,
- 2 => 'CJK Compatibility Ideographs Supplement',
- ),
- 141 =>
- array (
- 0 => 0xE0000,
- 1 => 0xE007F,
- 2 => 'Tags',
- ),
- 142 =>
- array (
- 0 => 0xE0100,
- 1 => 0xE01EF,
- 2 => 'Variation Selectors Supplement',
- ),
- 143 =>
- array (
- 0 => 0xF0000,
- 1 => 0xFFFFF,
- 2 => 'Supplementary Private Use Area-A',
- ),
- 144 =>
- array (
- 0 => 0x100000,
- 1 => 0x10FFFF,
- 2 => 'Supplementary Private Use Area-B',
- ),
-);
-?>
diff --git a/library/langdet/docs/confidence.php b/library/langdet/docs/confidence.php
deleted file mode 100644
index 5be0fb9b68..0000000000
--- a/library/langdet/docs/confidence.php
+++ /dev/null
@@ -1,18 +0,0 @@
-detect($text, 3);
-
-foreach ($results as $language => $confidence) {
- echo $language . ': ' . number_format($confidence, 2) . "\n";
-}
-
-//output:
-//german: 0.35
-//dutch: 0.25
-//swedish: 0.20
-?>
\ No newline at end of file
diff --git a/library/langdet/docs/errorhandling.php b/library/langdet/docs/errorhandling.php
deleted file mode 100644
index b68e42476c..0000000000
--- a/library/langdet/docs/errorhandling.php
+++ /dev/null
@@ -1,15 +0,0 @@
-detectSimple('Das ist ein kleiner Text');
- echo "Language is: $lang\n";
-} catch (Text_LanguageDetect_Exception $e) {
- echo 'An error occured! Message: ' . $e . "\n";
-}
-?>
\ No newline at end of file
diff --git a/library/langdet/docs/example_clui.php b/library/langdet/docs/example_clui.php
deleted file mode 100644
index 210b0eec4d..0000000000
--- a/library/langdet/docs/example_clui.php
+++ /dev/null
@@ -1,35 +0,0 @@
-getLanguages();
-sort($langs);
-echo join(', ', $langs);
-
-echo "\ntotal ", count($langs), "\n\n";
-
-while ($line = fgets($stdin)) {
- $result = $l->detect($line, 4);
- print_r($result);
- $blocks = $l->detectUnicodeBlocks($line, true);
- print_r($blocks);
-}
-
-fclose($stdin);
-unset($l);
-
-/* vim: set expandtab tabstop=4 shiftwidth=4 softtabstop=4: */
-
-?>
diff --git a/library/langdet/docs/example_web.php b/library/langdet/docs/example_web.php
deleted file mode 100644
index bee8f51a44..0000000000
--- a/library/langdet/docs/example_web.php
+++ /dev/null
@@ -1,72 +0,0 @@
-
-
-
-Text_LanguageDetect demonstration
-
-
-Text_LanguageDetect
-
-echo "Supported languages:\n";
-$langs = $l->getLanguages();
-sort($langs);
-foreach ($langs as $lang) {
- echo ucfirst($lang), ', ';
- $i++;
-}
-
-echo "
total $i
";
-
-?>
-
-
-if (isset($q) && strlen($q)) {
- $len = $l->utf8strlen($q);
- if ($len < 20) { // this value picked somewhat arbitrarily
- echo "Warning: string not very long ($len chars)
\n";
- }
-
- $result = $l->detectConfidence($q);
-
- if ($result == null) {
- echo "Text_LanguageDetect cannot identify this piece of text.
\n";
- } else {
- echo "Text_LanguageDetect thinks this text is written in {$result['language']} ({$result['similarity']}, {$result['confidence']})
\n";
- }
-
- $result = $l->detectUnicodeBlocks($q, false);
- if (!empty($result)) {
- arsort($result);
- echo "Unicode blocks present: ", join(', ', array_keys($result)), "\n
";
- }
-}
-
-unset($l);
-
-/* vim: set expandtab tabstop=4 shiftwidth=4 softtabstop=4: */
-
-?>
-
diff --git a/library/langdet/docs/iso.php b/library/langdet/docs/iso.php
deleted file mode 100644
index 547316313f..0000000000
--- a/library/langdet/docs/iso.php
+++ /dev/null
@@ -1,19 +0,0 @@
-setNameMode(2);
-echo $ld->detectSimple('Das ist ein kleiner Text') . "\n";
-
-//will output the ISO 639-2 three-letter language code
-// "deu"
-$ld->setNameMode(3);
-echo $ld->detectSimple('Das ist ein kleiner Text') . "\n";
-?>
diff --git a/library/langdet/docs/languages.php b/library/langdet/docs/languages.php
deleted file mode 100644
index f6d022c227..0000000000
--- a/library/langdet/docs/languages.php
+++ /dev/null
@@ -1,11 +0,0 @@
-getLanguages() as $lang) {
- echo $lang . "\n";
-}
-?>
diff --git a/library/langdet/docs/simple.php b/library/langdet/docs/simple.php
deleted file mode 100644
index 0bfc11eb02..0000000000
--- a/library/langdet/docs/simple.php
+++ /dev/null
@@ -1,10 +0,0 @@
-detectSimple($text);
-var_dump($result);
-//output: german
-?>
diff --git a/library/langdet/tests/PrivProxy.php b/library/langdet/tests/PrivProxy.php
deleted file mode 100644
index 0f6af1d8cd..0000000000
--- a/library/langdet/tests/PrivProxy.php
+++ /dev/null
@@ -1,42 +0,0 @@
-obj = $obj;
- }
-
- public function __call($method, $arguments)
- {
- $rm = new ReflectionMethod($this->obj, $method);
- $rm->setAccessible(true);
- return $rm->invokeArgs($this->obj, $arguments);
- }
-
- public static function __callStatic($method, $arguments)
- {
- $rm = new ReflectionMethod($this->obj, $method);
- $rm->setAccessible(true);
- return $rm->invokeArgs($this->obj, $arguments);
- }
-
- public function __set($var, $value)
- {
- $rp = new ReflectionProperty($this->obj, $var);
- $rp->setAccessible(true);
- $rp->setValue($this->obj, $value);
- }
-
- public function __get($var)
- {
- $rp = new ReflectionProperty($this->obj, $var);
- $rp->setAccessible(true);
- return $rp->getValue($this->obj);
- }
-}
-?>
diff --git a/library/langdet/tests/Text_LanguageDetectTest.php b/library/langdet/tests/Text_LanguageDetectTest.php
deleted file mode 100644
index a5cf442201..0000000000
--- a/library/langdet/tests/Text_LanguageDetectTest.php
+++ /dev/null
@@ -1,2059 +0,0 @@
-x = new Text_LanguageDetect();
- $this->xproxy = new PrivProxy($this->x);
- }
-
- function tearDown ()
- {
- unset($this->x);
- }
-
- function test_get_data_locAbsolute()
- {
- $this->assertEquals(
- '/path/to/file',
- $this->xproxy->_get_data_loc('/path/to/file')
- );
- }
-
- function test_get_data_locPearPath()
- {
- $this->xproxy->_data_dir = '/path/to/pear/data';
- $this->assertEquals(
- '/path/to/pear/data/Text_LanguageDetect/file',
- $this->xproxy->_get_data_loc('file')
- );
- }
-
- /**
- * @expectedException Text_LanguageDetect_Exception
- * @expectedExceptionMessage Language database does not exist:
- */
- function test_readdbNonexistingFile()
- {
- $this->xproxy->_readdb('thisfiledoesnotexist');
- }
-
- /**
- * @expectedException Text_LanguageDetect_Exception
- * @expectedExceptionMessage Language database is not readable:
- */
- function test_readdbUnreadableFile()
- {
- $name = tempnam(sys_get_temp_dir(), 'unittest-Text_LanguageDetect-');
- chmod($name, 0000);
- $this->xproxy->_readdb($name);
- }
-
- /**
- * @expectedException Text_LanguageDetect_Exception
- * @expectedExceptionMessage Language database has no elements.
- */
- function test_checkTrigramEmpty()
- {
- $this->xproxy->_checkTrigram(array());
- }
-
- /**
- * @expectedException Text_LanguageDetect_Exception
- * @expectedExceptionMessage Language database is not an array
- */
- function test_checkTrigramNoArray()
- {
- $this->xproxy->_checkTrigram('foo');
- }
-
- /**
- * @expectedException Text_LanguageDetect_Exception
- * @expectedExceptionMessage Error loading database. Try turning magic_quotes_runtime off
- */
- function test_checkTrigramNoArrayMagicQuotes()
- {
- if (version_compare(PHP_VERSION, '5.4.0-dev') >= 0) {
- $this->markTestSkipped('5.4.0 has no magic quotes anymore');
- }
- ini_set('magic_quotes_runtime', 1);
- $this->xproxy->_checkTrigram('foo');
- }
-
- function test_splitter ()
- {
- $str = 'hello';
-
- $result = $this->xproxy->_trigram($str);
-
- $this->assertEquals(array(' he' => 1, 'hel' => 1, 'ell' => 1, 'llo' => 1, 'lo ' => 1), $result);
-
- $str = 'aa aa whatever';
-
- $result = $this->xproxy->_trigram($str);
- $this->assertEquals(2, $result[' aa']);
- $this->assertEquals(2, $result['aa ']);
- $this->assertEquals(1, $result['a a']);
-
- $str = 'aa aa';
- $result = $this->xproxy->_trigram($str);
- $this->assertArrayNotHasKey(' a', $result, ' a');
- $this->assertArrayNotHasKey('a ', $result, 'a ');
- }
-
- function test_splitter2 ()
- {
- $str = 'resumé';
-
- $result = $this->xproxy->_trigram($str);
-
- $this->assertTrue(isset($result['mé ']), 'mé ');
- $this->assertTrue(isset($result['umé']), 'umé');
- $this->assertTrue(!isset($result['é ']), 'é');
-
- // tests lower-casing accented characters
- $str = 'resumÉ';
-
- $result = $this->xproxy->_trigram($str);
-
- $this->assertTrue(isset($result['mé ']),'mé ');
- $this->assertTrue(isset($result['umé']),'umé');
- $this->assertTrue(!isset($result['é ']),'é');
- }
-
- function test_sort ()
- {
- $arr = array('a' => 1, 'b' => 2, 'c' => 2);
- $this->xproxy->__call('_bub_sort',[&$arr]);
-
- $final_arr = array('b' => 2, 'c' => 2, 'a' => 1);
-
- $this->assertEquals($final_arr, $arr);
- }
-
- function test_error ()
- {
- // this test passes the object a series of bad strings to see how it handles them
-
- $result = $this->x->detectSimple("");
-
- $this->assertTrue(!$result);
-
- $result = $this->x->detectSimple("\n");
-
- $this->assertTrue(!$result);
-
- // should fail on extremely short strings
- $result = $this->x->detectSimple("a");
-
- $this->assertTrue(!$result);
-
- $result = $this->x->detectSimple("aa");
-
- $this->assertTrue(!$result);
-
- $result = $this->x->detectSimple('xxxxxxxxxxxxxxxxxxx');
-
- $this->assertEquals(null, $result);
- }
-
- function testOmitLanguages()
- {
- $str = 'This function may return Boolean FALSE, but may also return a non-Boolean value which evaluates to FALSE, such as 0 or "". Please read the section on Booleans for more information. Use the === operator for testing the return value of this function.';
-
- $myobj = new Text_LanguageDetect;
- $myobjproxy = new PrivProxy($myobj);
-
- $myobjproxy->_use_unicode_narrowing = false;
-
- $count = $myobj->getLanguageCount();
- $returnval = $myobj->omitLanguages('english');
- $newcount = $myobj->getLanguageCount();
-
- $this->assertEquals(1, $returnval);
- $this->assertEquals(1, $count - $newcount);
-
- $result = strtolower($myobj->detectSimple($str));
-
- $this->assertTrue($result != 'english', $result);
-
- $myobj = new Text_LanguageDetect;
-
- $count = $myobj->getLanguageCount();
- $returnval = $myobj->omitLanguages(array('danish', 'italian'), true);
- $newcount = $myobj->getLanguageCount();
-
- $this->assertEquals($count - $newcount, $returnval);
- $this->assertEquals($count - $returnval, $newcount);
-
- $result = strtolower($myobj->detectSimple($str));
-
- $this->assertTrue($result == 'danish' || $result == 'italian', $result);
-
- $result = $myobj->detect($str);
-
- $this->assertEquals(2, count($result));
- $this->assertTrue(isset($result['danish']));
- $this->assertTrue(isset($result['italian']));
-
- unset($myobj);
- }
-
- function testOmitLanguagesNameMode2()
- {
- $this->x->setNameMode(2);
- $this->assertEquals(1, $this->x->omitLanguages('en'));
- }
-
- function testOmitLanguagesIncludeString()
- {
- $this->assertGreaterThan(1, $this->x->omitLanguages('english', true));
- $langs = $this->x->getLanguages();
- $this->assertEquals(1, count($langs));
- $this->assertContains('english', $langs);
- }
-
- function testOmitLanguagesClearsClusterCache()
- {
- $this->x->omitLanguages(array('english', 'german'), true);
- $this->assertNull($this->xproxy->_clusters);
- $this->x->clusterLanguages();
- $this->assertNotNull($this->xproxy->_clusters);
- $this->x->omitLanguages('german');
- $this->assertNull($this->xproxy->_clusters, 'cluster cache be empty now');
- }
-
- function test_perl_compatibility()
- {
- // if this test fails, then many of the others will
-
- $this->x->setPerlCompatible(true);
-
- $testtext = "hello";
-
- $result = $this->xproxy->_trigram($testtext);
-
- $this->assertTrue(!isset($result[' he']));
- }
-
- function test_french_db ()
- {
-
- $safe_model = array(
- "es " => 0, " de" => 1, "de " => 2, " le" => 3, "ent" => 4,
- "le " => 5, "nt " => 6, "la " => 7, "s d" => 8, " la" => 9,
- "ion" => 10, "on " => 11, "re " => 12, " pa" => 13, "e l" => 14,
- "e d" => 15, " l'" => 16, "e p" => 17, " co" => 18, " pr" => 19,
- "tio" => 20, "ns " => 21, " en" => 22, "ne " => 23, "que" => 24,
- "r l" => 25, "les" => 26, "ur " => 27, "en " => 28, "ati" => 29,
- "ue " => 30, " po" => 31, " d'" => 32, "par" => 33, " a " => 34,
- "et " => 35, "it " => 36, " qu" => 37, "men" => 38, "ons" => 39,
- "te " => 40, " et" => 41, "t d" => 42, " re" => 43, "des" => 44,
- " un" => 45, "ie " => 46, "s l" => 47, " su" => 48, "pou" => 49,
- " au" => 50, " à " => 51, "con" => 52, "er " => 53, " no" => 54,
- "ait" => 55, "e c" => 56, "se " => 57, "té " => 58, "du " => 59,
- " du" => 60, " dé" => 61, "ce " => 62, "e e" => 63, "is " => 64,
- "n d" => 65, "s a" => 66, " so" => 67, "e r" => 68, "e s" => 69,
- "our" => 70, "res" => 71, "ssi" => 72, "eur" => 73, " se" => 74,
- "eme" => 75, "est" => 76, "us " => 77, "sur" => 78, "ant" => 79,
- "iqu" => 80, "s p" => 81, "une" => 82, "uss" => 83, "l'a" => 84,
- "pro" => 85, "ter" => 86, "tre" => 87, "end" => 88, "rs " => 89,
- " ce" => 90, "e a" => 91, "t p" => 92, "un " => 93, " ma" => 94,
- " ru" => 95, " ré" => 96, "ous" => 97, "ris" => 98, "rus" => 99,
- "sse" => 100, "ans" => 101, "ar " => 102, "com" => 103, "e m" => 104,
- "ire" => 105, "nce" => 106, "nte" => 107, "t l" => 108, " av" => 109,
- " mo" => 110, " te" => 111, "il " => 112, "me " => 113, "ont" => 114,
- "ten" => 115, "a p" => 116, "dan" => 117, "pas" => 118, "qui" => 119,
- "s e" => 120, "s s" => 121, " in" => 122, "ist" => 123, "lle" => 124,
- "nou" => 125, "pré" => 126, "'un" => 127, "air" => 128, "d'a" => 129,
- "ir " => 130, "n e" => 131, "rop" => 132, "ts " => 133, " da" => 134,
- "a s" => 135, "as " => 136, "au " => 137, "den" => 138, "mai" => 139,
- "mis" => 140, "ori" => 141, "out" => 142, "rme" => 143, "sio" => 144,
- "tte" => 145, "ux " => 146, "a d" => 147, "ien" => 148, "n a" => 149,
- "ntr" => 150, "omm" => 151, "ort" => 152, "ouv" => 153, "s c" => 154,
- "son" => 155, "tes" => 156, "ver" => 157, "ère" => 158, " il" => 159,
- " m " => 160, " sa" => 161, " ve" => 162, "a r" => 163, "ais" => 164,
- "ava" => 165, "di " => 166, "n p" => 167, "sti" => 168, "ven" => 169,
- " mi" => 170, "ain" => 171, "enc" => 172, "for" => 173, "ité" => 174,
- "lar" => 175, "oir" => 176, "rem" => 177, "ren" => 178, "rro" => 179,
- "rés" => 180, "sie" => 181, "t a" => 182, "tur" => 183, " pe" => 184,
- " to" => 185, "d'u" => 186, "ell" => 187, "err" => 188, "ers" => 189,
- "ide" => 190, "ine" => 191, "iss" => 192, "mes" => 193, "por" => 194,
- "ran" => 195, "sit" => 196, "st " => 197, "t r" => 198, "uti" => 199,
- "vai" => 200, "é l" => 201, "ési" => 202, " di" => 203, " n'" => 204,
- " ét" => 205, "a c" => 206, "ass" => 207, "e t" => 208, "in " => 209,
- "nde" => 210, "pre" => 211, "rat" => 212, "s m" => 213, "ste" => 214,
- "tai" => 215, "tch" => 216, "ui " => 217, "uro" => 218, "ès " => 219,
- " es" => 220, " fo" => 221, " tr" => 222, "'ad" => 223, "app" => 224,
- "aux" => 225, "e à" => 226, "ett" => 227, "iti" => 228, "lit" => 229,
- "nal" => 230, "opé" => 231, "r d" => 232, "ra " => 233, "rai" => 234,
- "ror" => 235, "s r" => 236, "tat" => 237, "uté" => 238, "à l" => 239,
- " af" => 240, "anc" => 241, "ara" => 242, "art" => 243, "bre" => 244,
- "ché" => 245, "dre" => 246, "e f" => 247, "ens" => 248, "lem" => 249,
- "n r" => 250, "n t" => 251, "ndr" => 252, "nne" => 253, "onn" => 254,
- "pos" => 255, "s t" => 256, "tiq" => 257, "ure" => 258, " tu" => 259,
- "ale" => 260, "and" => 261, "ave" => 262, "cla" => 263, "cou" => 264,
- "e n" => 265, "emb" => 266, "ins" => 267, "jou" => 268, "mme" => 269,
- "rie" => 270, "rès" => 271, "sem" => 272, "str" => 273, "t i" => 274,
- "ues" => 275, "uni" => 276, "uve" => 277, "é d" => 278, "ée " => 279,
- " ch" => 280, " do" => 281, " eu" => 282, " fa" => 283, " lo" => 284,
- " ne" => 285, " ra" => 286, "arl" => 287, "att" => 288, "ec " => 289,
- "ica" => 290, "l a" => 291, "l'o" => 292, "l'é" => 293, "mmi" => 294,
- "nta" => 295, "orm" => 296, "ou " => 297, "r u" => 298, "rle" => 299
- );
-
-
- $my_arr = $this->xproxy->_lang_db['french'];
-
- foreach ($safe_model as $key => $value) {
- $this->assertTrue(isset($my_arr[$key]),$key);
- if (isset($my_arr[$key])) {
- $this->assertEquals($value, $my_arr[$key], $key);
- }
- }
- }
-
- function test_english_db ()
- {
-
- $realdb = array(
- " th" => 0, "the" => 1, "he " => 2, "ed " => 3, " to" => 4,
- " in" => 5, "er " => 6, "ing" => 7, "ng " => 8, " an" => 9,
- "nd " => 10, " of" => 11, "and" => 12, "to " => 13, "of " => 14,
- " co" => 15, "at " => 16, "on " => 17, "in " => 18, " a " => 19,
- "d t" => 20, " he" => 21, "e t" => 22, "ion" => 23, "es " => 24,
- " re" => 25, "re " => 26, "hat" => 27, " sa" => 28, " st" => 29,
- " ha" => 30, "her" => 31, "tha" => 32, "tio" => 33, "or " => 34,
- " ''" => 35, "en " => 36, " wh" => 37, "e s" => 38, "ent" => 39,
- "n t" => 40, "s a" => 41, "as " => 42, "for" => 43, "is " => 44,
- "t t" => 45, " be" => 46, "ld " => 47, "e a" => 48, "rs " => 49,
- " wa" => 50, "ut " => 51, "ve " => 52, "ll " => 53, "al " => 54,
- " ma" => 55, "e i" => 56, " fo" => 57, "'s " => 58, "an " => 59,
- "est" => 60, " hi" => 61, " mo" => 62, " se" => 63, " pr" => 64,
- "s t" => 65, "ate" => 66, "st " => 67, "ter" => 68, "ere" => 69,
- "ted" => 70, "nt " => 71, "ver" => 72, "d a" => 73, " wi" => 74,
- "se " => 75, "e c" => 76, "ect" => 77, "ns " => 78, " on" => 79,
- "ly " => 80, "tol" => 81, "ey " => 82, "r t" => 83, " ca" => 84,
- "ati" => 85, "ts " => 86, "all" => 87, " no" => 88, "his" => 89,
- "s o" => 90, "ers" => 91, "con" => 92, "e o" => 93, "ear" => 94,
- "f t" => 95, "e w" => 96, "was" => 97, "ons" => 98, "sta" => 99,
- "'' " => 100, "sti" => 101, "n a" => 102, "sto" => 103, "t h" => 104,
- " we" => 105, "id " => 106, "th " => 107, " it" => 108, "ce " => 109,
- " di" => 110, "ave" => 111, "d h" => 112, "cou" => 113, "pro" => 114,
- "ad " => 115, "oll" => 116, "ry " => 117, "d s" => 118, "e m" => 119,
- " so" => 120, "ill" => 121, "cti" => 122, "te " => 123, "tor" => 124,
- "eve" => 125, "g t" => 126, "it " => 127, " ch" => 128, " de" => 129,
- "hav" => 130, "oul" => 131, "ty " => 132, "uld" => 133, "use" => 134,
- " al" => 135, "are" => 136, "ch " => 137, "me " => 138, "out" => 139,
- "ove" => 140, "wit" => 141, "ys " => 142, "chi" => 143, "t a" => 144,
- "ith" => 145, "oth" => 146, " ab" => 147, " te" => 148, " wo" => 149,
- "s s" => 150, "res" => 151, "t w" => 152, "tin" => 153, "e b" => 154,
- "e h" => 155, "nce" => 156, "t s" => 157, "y t" => 158, "e p" => 159,
- "ele" => 160, "hin" => 161, "s i" => 162, "nte" => 163, " li" => 164,
- "le " => 165, " do" => 166, "aid" => 167, "hey" => 168, "ne " => 169,
- "s w" => 170, " as" => 171, " fr" => 172, " tr" => 173, "end" => 174,
- "sai" => 175, " el" => 176, " ne" => 177, " su" => 178, "'t " => 179,
- "ay " => 180, "hou" => 181, "ive" => 182, "lec" => 183, "n't" => 184,
- " ye" => 185, "but" => 186, "d o" => 187, "o t" => 188, "y o" => 189,
- " ho" => 190, " me" => 191, "be " => 192, "cal" => 193, "e e" => 194,
- "had" => 195, "ple" => 196, " at" => 197, " bu" => 198, " la" => 199,
- "d b" => 200, "s h" => 201, "say" => 202, "t i" => 203, " ar" => 204,
- "e f" => 205, "ght" => 206, "hil" => 207, "igh" => 208, "int" => 209,
- "not" => 210, "ren" => 211, " is" => 212, " pa" => 213, " sh" => 214,
- "ays" => 215, "com" => 216, "n s" => 217, "r a" => 218, "rin" => 219,
- "y a" => 220, " un" => 221, "n c" => 222, "om " => 223, "thi" => 224,
- " mi" => 225, "by " => 226, "d i" => 227, "e d" => 228, "e n" => 229,
- "t o" => 230, " by" => 231, "e r" => 232, "eri" => 233, "old" => 234,
- "ome" => 235, "whe" => 236, "yea" => 237, " gr" => 238, "ar " => 239,
- "ity" => 240, "mpl" => 241, "oun" => 242, "one" => 243, "ow " => 244,
- "r s" => 245, "s f" => 246, "tat" => 247, " ba" => 248, " vo" => 249,
- "bou" => 250, "sam" => 251, "tim" => 252, "vot" => 253, "abo" => 254,
- "ant" => 255, "ds " => 256, "ial" => 257, "ine" => 258, "man" => 259,
- "men" => 260, " or" => 261, " po" => 262, "amp" => 263, "can" => 264,
- "der" => 265, "e l" => 266, "les" => 267, "ny " => 268, "ot " => 269,
- "rec" => 270, "tes" => 271, "tho" => 272, "ica" => 273, "ild" => 274,
- "ir " => 275, "nde" => 276, "ose" => 277, "ous" => 278, "pre" => 279,
- "ste" => 280, "era" => 281, "per" => 282, "r o" => 283, "red" => 284,
- "rie" => 285, " bo" => 286, " le" => 287, "ali" => 288, "ars" => 289,
- "ore" => 290, "ric" => 291, "s m" => 292, "str" => 293, " fa" => 294,
- "ess" => 295, "ie " => 296, "ist" => 297, "lat" => 298, "uri" => 299,
- );
-
- $mod = $this->xproxy->_lang_db['english'];
-
- foreach ($realdb as $key => $value) {
- $this->assertTrue(isset($mod[$key]), $key);
- if (isset($mod[$key])) {
- $this->assertEquals($value, $mod[$key], $key);
- }
- }
-
- foreach ($mod as $key => $value) {
- $this->assertTrue(isset($realdb[$key]));
- if (isset($realdb[$key])) {
- $this->assertEquals($value, $realdb[$key], $key);
- }
- }
- }
-
- function test_confidence ()
- {
- $str = 'The next thing to notice is the Content-length header. The Content-length header notifies the server of the size of the data that you intend to send. This prevents unexpected end-of-data errors from the server when dealing with binary data, because the server will read the specified number of bytes from the data stream regardless of any spurious end-of-data characters.';
-
- $result = $this->x->detectConfidence($str);
-
- $this->assertEquals(3, count($result));
- $this->assertTrue(isset($result['language']), 'language');
- $this->assertTrue(isset($result['similarity']), 'similarity');
- $this->assertTrue(isset($result['confidence']), 'confidence');
- $this->assertEquals('english', $result['language']);
- $this->assertTrue($result['similarity'] <= 300 && $result['similarity'] >= 0, $result['similarity']);
- $this->assertTrue($result['confidence'] <= 1 && $result['confidence'] >= 0, $result['confidence']);
-
- // todo: tests for Danish and Norwegian should have lower confidence
- }
-
- function test_long_example ()
- {
- // an example that is more than 300 trigrams long
- $str = 'The Italian Renaissance began the opening phase of the Renaissance, a period of great cultural change and achievement from the 14th to the 16th century. The word renaissance means "rebirth," and the era is best known for the renewed interest in the culture of classical antiquity. The Italian Renaissance began in northern Italy, centering in Florence. It then spread south, having an especially significant impact on Rome, which was largely rebuilt by the Renaissance popes. The Italian Renaissance is best known for its cultural achievements. This includes works of literature by such figures as Petrarch, Castiglione, and Machiavelli; artists such as Michaelangelo and Leonardo da Vinci, and great works of architecture such as The Duomo in Florence and St. Peter\'s Basilica in Rome. At the same time, present-day historians also see the era as one of economic regression and of little progress in science. Furthermore, some historians argue that the lot of the peasants and urban poor, the majority of the population, worsened during this period.';
-
- $this->x->setPerlCompatible();
- $tri = $this->xproxy->_trigram($str);
-
- $exp_tri = array(
- ' th',
- 'the',
- 'he ',
- ' an',
- ' re',
- ' of',
- 'ce ',
- 'nce',
- 'of ',
- 'ren',
- ' in',
- 'and',
- 'nd ',
- 'an ',
- 'san',
- ' it',
- 'ais',
- 'anc',
- 'ena',
- 'in ',
- 'iss',
- 'nai',
- 'ssa',
- 'tur',
- ' pe',
- 'as ',
- 'ch ',
- 'ent',
- 'ian',
- 'me ',
- 'n r',
- 'res',
- ' as',
- ' be',
- ' wo',
- 'at ',
- 'chi',
- 'e i',
- 'e o',
- 'e p',
- 'gre',
- 'his',
- 'ing',
- 'is ',
- 'ita',
- 'n f',
- 'ng ',
- 're ',
- 's a',
- 'st ',
- 'tal',
- 'ter',
- 'th ',
- 'ts ',
- 'ure',
- 'wor',
- ' ar',
- ' cu',
- ' po',
- ' su',
- 'ach',
- 'al ',
- 'ali',
- 'ans',
- 'ant',
- 'cul',
- 'e b',
- 'e r',
- 'e t',
- 'enc',
- 'era',
- 'eri',
- 'es ',
- 'est',
- 'f t',
- 'ica',
- 'ion',
- 'ist',
- 'lia',
- 'ltu',
- 'ly ',
- 'ns ',
- 'nt ',
- 'ome',
- 'on ',
- 'or ',
- 'ore',
- 'ori',
- 'rea',
- 'rom',
- 'rth',
- 's b',
- 's o',
- 'suc',
- 't t',
- 'uch',
- 'ult',
- ' ac',
- ' by',
- ' ce',
- ' da',
- ' du',
- ' er',
- ' fl',
- ' fo',
- ' gr',
- ' hi',
- ' is',
- ' kn',
- ' li',
- ' ma',
- ' on',
- ' pr',
- ' ro',
- ' so',
- 'a i',
- 'ang',
- 'arc',
- 'arg',
- 'beg',
- 'bes',
- 'by ',
- 'cen',
- 'cha',
- 'd o',
- 'd s',
- 'e a',
- 'e e',
- 'e m',
- 'e s',
- 'eat',
- 'ed ',
- 'ega',
- 'eme',
- 'ene',
- 'ess',
- 'eve',
- 'f l',
- 'flo',
- 'for',
- 'gan',
- 'gel',
- 'h a',
- 'her',
- 'hie',
- 'ich',
- 'iev',
- 'inc',
- 'iod',
- 'ite',
- 'ity',
- 'kno',
- 'ks ',
- 'l a',
- 'lit',
- 'lor',
- 'men',
- 'mic',
- 'n i',
- 'n s',
- 'n t',
- 'ne ',
- 'nge',
- 'now',
- 'nte',
- 'nts',
- 'od ',
- 'one',
- 'ope',
- 'ork',
- 'own',
- 'per',
- 'pet',
- 'pop',
- 'pre',
- 'ra ',
- 'ral',
- 'rch',
- 'reb',
- 'ria',
- 'rin',
- 'rio',
- 'rks',
- 's i',
- 's p',
- 'sen',
- 'ssi',
- 'sto',
- 't i',
- 't k',
- 't o',
- 'thi',
- 'tor',
- 'ty ',
- 'ura',
- 'vem',
- 'vin',
- 'wn ',
- 'y s',
- ' a ',
- ' al',
- ' at',
- ' ba',
- ' ca',
- ' ch',
- ' cl',
- ' ec',
- ' es',
- ' fi',
- ' fr',
- ' fu',
- ' ha',
- ' im',
- ' la',
- ' le',
- ' lo',
- ' me',
- ' mi',
- ' no',
- ' op',
- ' ph',
- ' sa',
- ' sc',
- ' se',
- ' si',
- ' sp',
- ' st',
- ' ti',
- ' to',
- ' ur',
- ' vi',
- ' wa',
- ' wh',
- '\'s ',
- 'a a',
- 'a p',
- 'a v',
- 'act',
- 'ad ',
- 'ael',
- 'ajo',
- 'all',
- 'als',
- 'aly',
- 'ame',
- 'ard',
- 'art',
- 'asa',
- 'ase',
- 'asi',
- 'ass',
- 'ast',
- 'ati',
- 'atu',
- 'ave',
- 'avi',
- 'ay ',
- 'ban',
- 'bas',
- 'bir',
- 'bui',
- 'c r',
- 'ca ',
- 'cal',
- 'can',
- 'cas',
- 'ci ',
- 'cia',
- 'cie',
- 'cla',
- 'clu',
- 'con',
- 'ct ',
- 'ctu',
- 'd a',
- 'd d',
- 'd g',
- 'd i',
- 'd l',
- 'd m',
- 'd r',
- 'd t',
- 'd u',
- 'da ',
- 'day',
- 'des',
- 'do ',
- 'duo',
- 'dur',
- 'e c',
- 'e d',
- 'e h',
- 'e l',
- 'e w',
- 'ead',
- 'ean',
- 'eas',
- 'ebi',
- 'ebu',
- 'eci',
- 'eco',
- 'ect',
- 'ee ',
- 'egr',
- 'ela',
- 'ell',
- 'elo',
- 'ely',
- 'en ',
- 'eni',
- 'eon',
- 'er\'',
- 'ere',
- 'erm',
- 'ern',
- 'ese',
- 'esp',
- 'ete',
- 'etr',
- 'ewe',
- 'f a',
- 'f c',
- 'f e',
- 'f g',
- 'fic',
- 'fig',
- 'fro',
- 'fur',
- 'g a',
- 'g i',
- 'g p',
- 'g t',
- 'ge ',
- 'gli',
- 'gni',
- 'gue',
- 'gur',
- 'h c',
- 'h f',
- 'h t',
- 'h w',
- 'hae',
- 'han',
- 'has',
- 'hat',
- 'hav',
- 'hen',
- 'hia',
- 'hic',
- 'hit',
- 'ial',
- 'iav',
- 'ic ',
- 'ien',
- 'ifi',
- 'igl',
- 'ign',
- 'igu',
- 'ili',
- 'ilt',
- 'ime',
- 'imp',
- 'int',
- 'iqu',
- 'irt',
- 'it ',
- 'its',
- 'itt',
- 'jor',
- 'l c',
- 'lan',
- 'lar',
- 'las',
- 'lat',
- 'le ',
- 'leo',
- 'li ',
- 'lic',
- 'lio',
- 'lli',
- 'lly',
- 'lo ',
- 'lot',
- 'lso',
- 'lt ',
- 'lud',
- 'm t',
- 'mac',
- 'maj',
- 'mea',
- 'mo ',
- 'mor',
- 'mpa',
- 'n a',
- 'n e',
- 'n n',
- 'n p',
- 'nar',
- 'nci',
- 'ncl',
- 'ned',
- 'new',
- 'nif',
- 'nin',
- 'nom',
- 'nor',
- 'nti',
- 'ntu',
- 'o a',
- 'o d',
- 'o i',
- 'o s',
- 'o t',
- 'ogr',
- 'om ',
- 'omi',
- 'omo',
- 'ona',
- 'ono',
- 'oor',
- 'opu',
- 'ord',
- 'ors',
- 'ort',
- 'ot ',
- 'out',
- 'pac',
- 'pea',
- 'pec',
- 'pen',
- 'pes',
- 'pha',
- 'poo',
- 'pro',
- 'pul',
- 'qui',
- 'r i',
- 'r t',
- 'r\'s',
- 'rar',
- 'rat',
- 'rba',
- 'rd ',
- 'rdo',
- 'reg',
- 'rge',
- 'rgu',
- 'rit',
- 'rmo',
- 'rn ',
- 'rog',
- 'rse',
- 'rti',
- 'ry ',
- 's c',
- 's l',
- 's m',
- 's s',
- 's t',
- 's w',
- 'sam',
- 'sci',
- 'se ',
- 'see',
- 'sic',
- 'sig',
- 'sil',
- 'sio',
- 'so ',
- 'som',
- 'sou',
- 'spe',
- 'spr',
- 'ss ',
- 'sti',
- 'sts',
- 't b',
- 't c',
- 't d',
- 't f',
- 't w',
- 'tec',
- 'tha',
- 'tig',
- 'tim',
- 'tio',
- 'tiq',
- 'tis',
- 'tle',
- 'to ',
- 'tra',
- 'ttl',
- 'ude',
- 'ue ',
- 'uil',
- 'uit',
- 'ula',
- 'uom',
- 'urb',
- 'uri',
- 'urt',
- 'ury',
- 'uth',
- 'vel',
- 'was',
- 'wed',
- 'whi',
- 'y h',
- 'y o',
- 'y r',
- 'y t'
- );
-
- $differences = array_diff(array_keys($tri), $exp_tri);
- $this->assertEquals(0, count($differences));
- $this->assertEquals(0, count(array_diff($exp_tri, array_keys($tri))));
- $this->assertEquals(count($exp_tri), count($tri));
- //print_r(array_diff($exp_tri, array_keys($tri)));
- //print_r(array_diff(array_keys($tri), $exp_tri));
-
- // tests the bubble sort mechanism
- $this->xproxy->__call('_bub_sort', [&$tri]);
- $this->assertEquals($exp_tri, array_keys($tri));
-
- $true_differences = array(
- "cas" => array('change' => 300, 'baserank' => 265, 'refrank' => null), "s i" => array('change' => 21, 'baserank' => 183, 'refrank' => 162),
- "e b" => array('change' => 88, 'baserank' => 66, 'refrank' => 154), "ent" => array('change' => 12, 'baserank' => 27, 'refrank' => 39),
- "ome" => array('change' => 152, 'baserank' => 83, 'refrank' => 235), "ral" => array('change' => 300, 'baserank' => 176, 'refrank' => null),
- "ita" => array('change' => 300, 'baserank' => 44, 'refrank' => null), "bas" => array('change' => 300, 'baserank' => 258, 'refrank' => null),
- " ar" => array('change' => 148, 'baserank' => 56, 'refrank' => 204), " in" => array('change' => 5, 'baserank' => 10, 'refrank' => 5),
- " ti" => array('change' => 300, 'baserank' => 227, 'refrank' => null), "ty " => array('change' => 61, 'baserank' => 193, 'refrank' => 132),
- "tur" => array('change' => 300, 'baserank' => 23, 'refrank' => null), "iss" => array('change' => 300, 'baserank' => 20, 'refrank' => null),
- "ria" => array('change' => 300, 'baserank' => 179, 'refrank' => null), " me" => array('change' => 25, 'baserank' => 216, 'refrank' => 191),
- "t k" => array('change' => 300, 'baserank' => 189, 'refrank' => null), " es" => array('change' => 300, 'baserank' => 207, 'refrank' => null),
- "ren" => array('change' => 202, 'baserank' => 9, 'refrank' => 211), "in " => array('change' => 1, 'baserank' => 19, 'refrank' => 18),
- "ly " => array('change' => 0, 'baserank' => 80, 'refrank' => 80), "st " => array('change' => 18, 'baserank' => 49, 'refrank' => 67),
- "ne " => array('change' => 8, 'baserank' => 161, 'refrank' => 169), "all" => array('change' => 154, 'baserank' => 241, 'refrank' => 87),
- "vin" => array('change' => 300, 'baserank' => 196, 'refrank' => null), " op" => array('change' => 300, 'baserank' => 219, 'refrank' => null),
- "chi" => array('change' => 107, 'baserank' => 36, 'refrank' => 143), "e w" => array('change' => 197, 'baserank' => 293, 'refrank' => 96),
- " ro" => array('change' => 300, 'baserank' => 113, 'refrank' => null), "act" => array('change' => 300, 'baserank' => 237, 'refrank' => null),
- "d r" => array('change' => 300, 'baserank' => 280, 'refrank' => null), "nt " => array('change' => 11, 'baserank' => 82, 'refrank' => 71),
- "can" => array('change' => 0, 'baserank' => 264, 'refrank' => 264), "rea" => array('change' => 300, 'baserank' => 88, 'refrank' => null),
- "ssa" => array('change' => 300, 'baserank' => 22, 'refrank' => null), " fo" => array('change' => 47, 'baserank' => 104, 'refrank' => 57),
- "eas" => array('change' => 300, 'baserank' => 296, 'refrank' => null), "mic" => array('change' => 300, 'baserank' => 157, 'refrank' => null),
- "cul" => array('change' => 300, 'baserank' => 65, 'refrank' => null), " an" => array('change' => 6, 'baserank' => 3, 'refrank' => 9),
- "n t" => array('change' => 120, 'baserank' => 160, 'refrank' => 40), "arg" => array('change' => 300, 'baserank' => 118, 'refrank' => null),
- " it" => array('change' => 93, 'baserank' => 15, 'refrank' => 108), "ebi" => array('change' => 300, 'baserank' => 297, 'refrank' => null),
- " re" => array('change' => 21, 'baserank' => 4, 'refrank' => 25), "res" => array('change' => 120, 'baserank' => 31, 'refrank' => 151),
- " be" => array('change' => 13, 'baserank' => 33, 'refrank' => 46), "rom" => array('change' => 300, 'baserank' => 89, 'refrank' => null),
- "'s " => array('change' => 175, 'baserank' => 233, 'refrank' => 58), "arc" => array('change' => 300, 'baserank' => 117, 'refrank' => null),
- " su" => array('change' => 119, 'baserank' => 59, 'refrank' => 178), "s p" => array('change' => 300, 'baserank' => 184, 'refrank' => null),
- "ich" => array('change' => 300, 'baserank' => 145, 'refrank' => null), "d d" => array('change' => 300, 'baserank' => 275, 'refrank' => null),
- "cal" => array('change' => 70, 'baserank' => 263, 'refrank' => 193), "ci " => array('change' => 300, 'baserank' => 266, 'refrank' => null),
- "ssi" => array('change' => 300, 'baserank' => 186, 'refrank' => null), "bes" => array('change' => 300, 'baserank' => 120, 'refrank' => null),
- "des" => array('change' => 300, 'baserank' => 285, 'refrank' => null), "e s" => array('change' => 91, 'baserank' => 129, 'refrank' => 38),
- "ch " => array('change' => 111, 'baserank' => 26, 'refrank' => 137), "san" => array('change' => 300, 'baserank' => 14, 'refrank' => null),
- "asi" => array('change' => 300, 'baserank' => 249, 'refrank' => null), "ajo" => array('change' => 300, 'baserank' => 240, 'refrank' => null),
- "ase" => array('change' => 300, 'baserank' => 248, 'refrank' => null), " wa" => array('change' => 181, 'baserank' => 231, 'refrank' => 50),
- "vem" => array('change' => 300, 'baserank' => 195, 'refrank' => null), "ed " => array('change' => 128, 'baserank' => 131, 'refrank' => 3),
- "ant" => array('change' => 191, 'baserank' => 64, 'refrank' => 255), "a p" => array('change' => 300, 'baserank' => 235, 'refrank' => null),
- "lor" => array('change' => 300, 'baserank' => 155, 'refrank' => null), "kno" => array('change' => 300, 'baserank' => 151, 'refrank' => null),
- "ais" => array('change' => 300, 'baserank' => 16, 'refrank' => null), " pe" => array('change' => 300, 'baserank' => 24, 'refrank' => null),
- "or " => array('change' => 51, 'baserank' => 85, 'refrank' => 34), "e i" => array('change' => 19, 'baserank' => 37, 'refrank' => 56),
- " sp" => array('change' => 300, 'baserank' => 225, 'refrank' => null), "ad " => array('change' => 123, 'baserank' => 238, 'refrank' => 115),
- " kn" => array('change' => 300, 'baserank' => 108, 'refrank' => null), "ega" => array('change' => 300, 'baserank' => 132, 'refrank' => null),
- " ba" => array('change' => 46, 'baserank' => 202, 'refrank' => 248), "d t" => array('change' => 261, 'baserank' => 281, 'refrank' => 20),
- "ork" => array('change' => 300, 'baserank' => 169, 'refrank' => null), "lia" => array('change' => 300, 'baserank' => 78, 'refrank' => null),
- "ard" => array('change' => 300, 'baserank' => 245, 'refrank' => null), "iev" => array('change' => 300, 'baserank' => 146, 'refrank' => null),
- "of " => array('change' => 6, 'baserank' => 8, 'refrank' => 14), " cu" => array('change' => 300, 'baserank' => 57, 'refrank' => null),
- "day" => array('change' => 300, 'baserank' => 284, 'refrank' => null), "cen" => array('change' => 300, 'baserank' => 122, 'refrank' => null),
- "re " => array('change' => 21, 'baserank' => 47, 'refrank' => 26), "ist" => array('change' => 220, 'baserank' => 77, 'refrank' => 297),
- " fl" => array('change' => 300, 'baserank' => 103, 'refrank' => null), "anc" => array('change' => 300, 'baserank' => 17, 'refrank' => null),
- "at " => array('change' => 19, 'baserank' => 35, 'refrank' => 16), "rch" => array('change' => 300, 'baserank' => 177, 'refrank' => null),
- "ang" => array('change' => 300, 'baserank' => 116, 'refrank' => null), " mi" => array('change' => 8, 'baserank' => 217, 'refrank' => 225),
- "y s" => array('change' => 300, 'baserank' => 198, 'refrank' => null), "ca " => array('change' => 300, 'baserank' => 262, 'refrank' => null),
- " ma" => array('change' => 55, 'baserank' => 110, 'refrank' => 55), " lo" => array('change' => 300, 'baserank' => 215, 'refrank' => null),
- "rin" => array('change' => 39, 'baserank' => 180, 'refrank' => 219), " im" => array('change' => 300, 'baserank' => 212, 'refrank' => null),
- " er" => array('change' => 300, 'baserank' => 102, 'refrank' => null), "ce " => array('change' => 103, 'baserank' => 6, 'refrank' => 109),
- "bui" => array('change' => 300, 'baserank' => 260, 'refrank' => null), "lit" => array('change' => 300, 'baserank' => 154, 'refrank' => null),
- "iod" => array('change' => 300, 'baserank' => 148, 'refrank' => null), "ame" => array('change' => 300, 'baserank' => 244, 'refrank' => null),
- "ter" => array('change' => 17, 'baserank' => 51, 'refrank' => 68), "e a" => array('change' => 78, 'baserank' => 126, 'refrank' => 48),
- "f l" => array('change' => 300, 'baserank' => 137, 'refrank' => null), "eri" => array('change' => 162, 'baserank' => 71, 'refrank' => 233),
- "ra " => array('change' => 300, 'baserank' => 175, 'refrank' => null), "ng " => array('change' => 38, 'baserank' => 46, 'refrank' => 8),
- "d i" => array('change' => 50, 'baserank' => 277, 'refrank' => 227), "asa" => array('change' => 300, 'baserank' => 247, 'refrank' => null),
- "wn " => array('change' => 300, 'baserank' => 197, 'refrank' => null), " at" => array('change' => 4, 'baserank' => 201, 'refrank' => 197),
- "now" => array('change' => 300, 'baserank' => 163, 'refrank' => null), " by" => array('change' => 133, 'baserank' => 98, 'refrank' => 231),
- "n s" => array('change' => 58, 'baserank' => 159, 'refrank' => 217), " li" => array('change' => 55, 'baserank' => 109, 'refrank' => 164),
- "l a" => array('change' => 300, 'baserank' => 153, 'refrank' => null), "da " => array('change' => 300, 'baserank' => 283, 'refrank' => null),
- "ean" => array('change' => 300, 'baserank' => 295, 'refrank' => null), "tal" => array('change' => 300, 'baserank' => 50, 'refrank' => null),
- "d a" => array('change' => 201, 'baserank' => 274, 'refrank' => 73), "ct " => array('change' => 300, 'baserank' => 272, 'refrank' => null),
- "ali" => array('change' => 226, 'baserank' => 62, 'refrank' => 288), "ian" => array('change' => 300, 'baserank' => 28, 'refrank' => null),
- " sa" => array('change' => 193, 'baserank' => 221, 'refrank' => 28), "do " => array('change' => 300, 'baserank' => 286, 'refrank' => null),
- "t o" => array('change' => 40, 'baserank' => 190, 'refrank' => 230), "ure" => array('change' => 300, 'baserank' => 54, 'refrank' => null),
- "e c" => array('change' => 213, 'baserank' => 289, 'refrank' => 76), "ing" => array('change' => 35, 'baserank' => 42, 'refrank' => 7),
- "d o" => array('change' => 63, 'baserank' => 124, 'refrank' => 187), " ha" => array('change' => 181, 'baserank' => 211, 'refrank' => 30),
- "ts " => array('change' => 33, 'baserank' => 53, 'refrank' => 86), "rth" => array('change' => 300, 'baserank' => 90, 'refrank' => null),
- "cla" => array('change' => 300, 'baserank' => 269, 'refrank' => null), " ac" => array('change' => 300, 'baserank' => 97, 'refrank' => null),
- "th " => array('change' => 55, 'baserank' => 52, 'refrank' => 107), "rio" => array('change' => 300, 'baserank' => 181, 'refrank' => null),
- "al " => array('change' => 7, 'baserank' => 61, 'refrank' => 54), "sto" => array('change' => 84, 'baserank' => 187, 'refrank' => 103),
- "e o" => array('change' => 55, 'baserank' => 38, 'refrank' => 93), "bir" => array('change' => 300, 'baserank' => 259, 'refrank' => null),
- " pr" => array('change' => 48, 'baserank' => 112, 'refrank' => 64), " le" => array('change' => 73, 'baserank' => 214, 'refrank' => 287),
- "nai" => array('change' => 300, 'baserank' => 21, 'refrank' => null), "t i" => array('change' => 15, 'baserank' => 188, 'refrank' => 203),
- " po" => array('change' => 204, 'baserank' => 58, 'refrank' => 262), "f t" => array('change' => 21, 'baserank' => 74, 'refrank' => 95),
- "ban" => array('change' => 300, 'baserank' => 257, 'refrank' => null), "an " => array('change' => 46, 'baserank' => 13, 'refrank' => 59),
- "wor" => array('change' => 300, 'baserank' => 55, 'refrank' => null), "pet" => array('change' => 300, 'baserank' => 172, 'refrank' => null),
- "ael" => array('change' => 300, 'baserank' => 239, 'refrank' => null), "ura" => array('change' => 300, 'baserank' => 194, 'refrank' => null),
- "eve" => array('change' => 11, 'baserank' => 136, 'refrank' => 125), "ion" => array('change' => 53, 'baserank' => 76, 'refrank' => 23),
- "nge" => array('change' => 300, 'baserank' => 162, 'refrank' => null), "cha" => array('change' => 300, 'baserank' => 123, 'refrank' => null),
- "ity" => array('change' => 90, 'baserank' => 150, 'refrank' => 240), " se" => array('change' => 160, 'baserank' => 223, 'refrank' => 63),
- " on" => array('change' => 32, 'baserank' => 111, 'refrank' => 79), "s b" => array('change' => 300, 'baserank' => 91, 'refrank' => null),
- "ans" => array('change' => 300, 'baserank' => 63, 'refrank' => null), "own" => array('change' => 300, 'baserank' => 170, 'refrank' => null),
- " si" => array('change' => 300, 'baserank' => 224, 'refrank' => null), "e r" => array('change' => 165, 'baserank' => 67, 'refrank' => 232),
- "est" => array('change' => 13, 'baserank' => 73, 'refrank' => 60), "hie" => array('change' => 300, 'baserank' => 144, 'refrank' => null),
- "aly" => array('change' => 300, 'baserank' => 243, 'refrank' => null), "and" => array('change' => 1, 'baserank' => 11, 'refrank' => 12),
- "beg" => array('change' => 300, 'baserank' => 119, 'refrank' => null), "dur" => array('change' => 300, 'baserank' => 288, 'refrank' => null),
- "reb" => array('change' => 300, 'baserank' => 178, 'refrank' => null), "e e" => array('change' => 67, 'baserank' => 127, 'refrank' => 194),
- "men" => array('change' => 104, 'baserank' => 156, 'refrank' => 260), " la" => array('change' => 14, 'baserank' => 213, 'refrank' => 199),
- "con" => array('change' => 179, 'baserank' => 271, 'refrank' => 92), " fu" => array('change' => 300, 'baserank' => 210, 'refrank' => null),
- "e l" => array('change' => 26, 'baserank' => 292, 'refrank' => 266), "s a" => array('change' => 7, 'baserank' => 48, 'refrank' => 41),
- "art" => array('change' => 300, 'baserank' => 246, 'refrank' => null), "ltu" => array('change' => 300, 'baserank' => 79, 'refrank' => null),
- "a i" => array('change' => 300, 'baserank' => 115, 'refrank' => null), "ctu" => array('change' => 300, 'baserank' => 273, 'refrank' => null),
- "tor" => array('change' => 68, 'baserank' => 192, 'refrank' => 124), "ach" => array('change' => 300, 'baserank' => 60, 'refrank' => null),
- "d g" => array('change' => 300, 'baserank' => 276, 'refrank' => null), "od " => array('change' => 300, 'baserank' => 166, 'refrank' => null),
- "nte" => array('change' => 1, 'baserank' => 164, 'refrank' => 163), "ena" => array('change' => 300, 'baserank' => 18, 'refrank' => null),
- "d l" => array('change' => 300, 'baserank' => 278, 'refrank' => null), "ene" => array('change' => 300, 'baserank' => 134, 'refrank' => null),
- "e h" => array('change' => 136, 'baserank' => 291, 'refrank' => 155), "era" => array('change' => 211, 'baserank' => 70, 'refrank' => 281),
- "on " => array('change' => 67, 'baserank' => 84, 'refrank' => 17), " ce" => array('change' => 300, 'baserank' => 99, 'refrank' => null),
- "ay " => array('change' => 76, 'baserank' => 256, 'refrank' => 180), " da" => array('change' => 300, 'baserank' => 100, 'refrank' => null),
- "ori" => array('change' => 300, 'baserank' => 87, 'refrank' => null), "atu" => array('change' => 300, 'baserank' => 253, 'refrank' => null),
- "ave" => array('change' => 143, 'baserank' => 254, 'refrank' => 111), "rks" => array('change' => 300, 'baserank' => 182, 'refrank' => null),
- "e d" => array('change' => 62, 'baserank' => 290, 'refrank' => 228), "ns " => array('change' => 3, 'baserank' => 81, 'refrank' => 78),
- " ca" => array('change' => 119, 'baserank' => 203, 'refrank' => 84), "d s" => array('change' => 7, 'baserank' => 125, 'refrank' => 118),
- "uch" => array('change' => 300, 'baserank' => 95, 'refrank' => null), "a v" => array('change' => 300, 'baserank' => 236, 'refrank' => null),
- "nce" => array('change' => 149, 'baserank' => 7, 'refrank' => 156), "his" => array('change' => 48, 'baserank' => 41, 'refrank' => 89),
- "flo" => array('change' => 300, 'baserank' => 138, 'refrank' => null), "ead" => array('change' => 300, 'baserank' => 294, 'refrank' => null),
- " vi" => array('change' => 300, 'baserank' => 230, 'refrank' => null), "me " => array('change' => 109, 'baserank' => 29, 'refrank' => 138),
- "suc" => array('change' => 300, 'baserank' => 93, 'refrank' => null), "e p" => array('change' => 120, 'baserank' => 39, 'refrank' => 159),
- "eci" => array('change' => 300, 'baserank' => 299, 'refrank' => null), "eme" => array('change' => 300, 'baserank' => 133, 'refrank' => null),
- "sen" => array('change' => 300, 'baserank' => 185, 'refrank' => null), "ks " => array('change' => 300, 'baserank' => 152, 'refrank' => null),
- " to" => array('change' => 224, 'baserank' => 228, 'refrank' => 4), " gr" => array('change' => 133, 'baserank' => 105, 'refrank' => 238),
- " ch" => array('change' => 76, 'baserank' => 204, 'refrank' => 128), "ati" => array('change' => 167, 'baserank' => 252, 'refrank' => 85),
- " th" => array('change' => 0, 'baserank' => 0, 'refrank' => 0), " ec" => array('change' => 300, 'baserank' => 206, 'refrank' => null),
- " wo" => array('change' => 115, 'baserank' => 34, 'refrank' => 149), "ope" => array('change' => 300, 'baserank' => 168, 'refrank' => null),
- " a " => array('change' => 180, 'baserank' => 199, 'refrank' => 19), "one" => array('change' => 76, 'baserank' => 167, 'refrank' => 243),
- "n f" => array('change' => 300, 'baserank' => 45, 'refrank' => null), "eat" => array('change' => 300, 'baserank' => 130, 'refrank' => null),
- "ica" => array('change' => 198, 'baserank' => 75, 'refrank' => 273), "inc" => array('change' => 300, 'baserank' => 147, 'refrank' => null),
- "enc" => array('change' => 300, 'baserank' => 69, 'refrank' => null), "ore" => array('change' => 204, 'baserank' => 86, 'refrank' => 290),
- "is " => array('change' => 1, 'baserank' => 43, 'refrank' => 44), " as" => array('change' => 139, 'baserank' => 32, 'refrank' => 171),
- "nts" => array('change' => 300, 'baserank' => 165, 'refrank' => null), "d m" => array('change' => 300, 'baserank' => 279, 'refrank' => null),
- "her" => array('change' => 112, 'baserank' => 143, 'refrank' => 31), " al" => array('change' => 65, 'baserank' => 200, 'refrank' => 135),
- " is" => array('change' => 105, 'baserank' => 107, 'refrank' => 212), "e t" => array('change' => 46, 'baserank' => 68, 'refrank' => 22),
- "c r" => array('change' => 300, 'baserank' => 261, 'refrank' => null), " hi" => array('change' => 45, 'baserank' => 106, 'refrank' => 61),
- "cia" => array('change' => 300, 'baserank' => 267, 'refrank' => null), " fr" => array('change' => 37, 'baserank' => 209, 'refrank' => 172),
- "ult" => array('change' => 300, 'baserank' => 96, 'refrank' => null), "e m" => array('change' => 9, 'baserank' => 128, 'refrank' => 119),
- "ass" => array('change' => 300, 'baserank' => 250, 'refrank' => null), "s o" => array('change' => 2, 'baserank' => 92, 'refrank' => 90),
- "pop" => array('change' => 300, 'baserank' => 173, 'refrank' => null), "nd " => array('change' => 2, 'baserank' => 12, 'refrank' => 10),
- "the" => array('change' => 0, 'baserank' => 1, 'refrank' => 1), " st" => array('change' => 197, 'baserank' => 226, 'refrank' => 29),
- " no" => array('change' => 130, 'baserank' => 218, 'refrank' => 88), "ast" => array('change' => 300, 'baserank' => 251, 'refrank' => null),
- " fi" => array('change' => 300, 'baserank' => 208, 'refrank' => null), "ess" => array('change' => 160, 'baserank' => 135, 'refrank' => 295),
- "gre" => array('change' => 300, 'baserank' => 40, 'refrank' => null), "h a" => array('change' => 300, 'baserank' => 142, 'refrank' => null),
- "duo" => array('change' => 300, 'baserank' => 287, 'refrank' => null), " so" => array('change' => 6, 'baserank' => 114, 'refrank' => 120),
- "es " => array('change' => 48, 'baserank' => 72, 'refrank' => 24), "for" => array('change' => 96, 'baserank' => 139, 'refrank' => 43),
- "gan" => array('change' => 300, 'baserank' => 140, 'refrank' => null), "per" => array('change' => 111, 'baserank' => 171, 'refrank' => 282),
- "thi" => array('change' => 33, 'baserank' => 191, 'refrank' => 224), " of" => array('change' => 6, 'baserank' => 5, 'refrank' => 11),
- " cl" => array('change' => 300, 'baserank' => 205, 'refrank' => null), " sc" => array('change' => 300, 'baserank' => 222, 'refrank' => null),
- "t t" => array('change' => 49, 'baserank' => 94, 'refrank' => 45), "als" => array('change' => 300, 'baserank' => 242, 'refrank' => null),
- "avi" => array('change' => 300, 'baserank' => 255, 'refrank' => null), "cie" => array('change' => 300, 'baserank' => 268, 'refrank' => null),
- " du" => array('change' => 300, 'baserank' => 101, 'refrank' => null), "pre" => array('change' => 105, 'baserank' => 174, 'refrank' => 279),
- "as " => array('change' => 17, 'baserank' => 25, 'refrank' => 42), "a a" => array('change' => 300, 'baserank' => 234, 'refrank' => null),
- "gel" => array('change' => 300, 'baserank' => 141, 'refrank' => null), "ite" => array('change' => 300, 'baserank' => 149, 'refrank' => null),
- "n r" => array('change' => 300, 'baserank' => 30, 'refrank' => null), "by " => array('change' => 105, 'baserank' => 121, 'refrank' => 226),
- "d u" => array('change' => 300, 'baserank' => 282, 'refrank' => null), "clu" => array('change' => 300, 'baserank' => 270, 'refrank' => null),
- " ur" => array('change' => 300, 'baserank' => 229, 'refrank' => null), "ebu" => array('change' => 300, 'baserank' => 298, 'refrank' => null),
- "n i" => array('change' => 300, 'baserank' => 158, 'refrank' => null), "he " => array('change' => 0, 'baserank' => 2, 'refrank' => 2),
- " wh" => array('change' => 195, 'baserank' => 232, 'refrank' => 37), " ph" => array('change' => 300, 'baserank' => 220, 'refrank' => null),
- );
-
- $ranked = $this->xproxy->_arr_rank($this->xproxy->_trigram($str));
- $results = $this->x->detect($str);
-
- $count = count($ranked);
- $sum = 0;
-
- //foreach ($this->xproxy->_lang_db['english'] as $key => $value) {
- foreach ($ranked as $key => $value) {
- if (isset($ranked[$key]) && isset($this->xproxy->_lang_db['english'][$key])) {
- $difference = abs($this->xproxy->_lang_db['english'][$key] - $ranked[$key]);
- } else {
- $difference = 300;
- }
-
- $this->assertTrue(isset($true_differences[$key]), "'$key'");
- if (isset($true_differences[$key])) {
- $this->assertEquals($true_differences[$key]['change'], $difference, "'$key'");
- }
- $sum += $difference;
- }
-
- $this->assertEquals(300, $count);
- $this->assertEquals(59490, $sum);
-
- $this->assertEquals('english', key($results));
- $this->assertEquals(198, floor(current($results)));
- next($results);
- $this->assertEquals('italian', key($results));
- $this->assertEquals(228, floor(current($results)));
- }
-
- function test_french ()
- {
- $this->x->setPerlCompatible();
- $str = "Verifions que le détecteur de langues marche";
-
- $trigrams = $this->xproxy->_trigram($str);
- $this->assertEquals(42, count($trigrams));
- // verified in Language::Guess
-
- $ranked = $this->xproxy->_arr_rank($trigrams);
- $this->assertEquals(0, $ranked['e l']);
-
- $correct_ranks = array(
- ' de' => 1,
- "éte" => 41,
- "dét" => 12,
- 'fio' => 18,
- 'de ' => 11,
- 'ons' => 28,
- 'ect' => 14,
- 'le ' => 24,
- 'arc' => 8,
- 'lan' => 23,
- 'es ' => 16,
- 'mar' => 25,
- " dé" => 2,
- 'ifi' => 21,
- 'gue' => 19,
- 'ur ' => 39,
- 'rch' => 31,
- 'ang' => 7,
- 'que' => 29,
- 'ngu' => 26,
- 'e d' => 13,
- 'rif' => 32,
- ' ma' => 5,
- 'tec' => 35,
- 'ns ' => 27,
- ' la' => 3,
- ' le' => 4,
- 'r d' => 30,
- 'e l' => 0,
- 'che' => 9,
- 's m' => 33,
- 'ue ' => 37,
- 'ver' => 40,
- 'teu' => 36,
- 'eri' => 15,
- 'cte' => 10,
- 'ues' => 38,
- 's q' => 34,
- 'eur' => 17,
- ' qu' => 6,
- 'he ' => 20,
- 'ion' => 22
- );
-
-
- $this->assertEquals(count($correct_ranks), count($ranked), "different number of trigrams found");
-
- $distances = array(
- ' de' => array('change' => 0, 'baserank' => 1, 'refrank' => 1),
- 'éte' => array('change' => 300, 'baserank' => 41, 'refrank' => null),
- 'dét' => array('change' => 300, 'baserank' => 12, 'refrank' => null),
- 'fio' => array('change' => 300, 'baserank' => 18, 'refrank' => null),
- 'de ' => array('change' => 9, 'baserank' => 11, 'refrank' => 2),
- 'ons' => array('change' => 11, 'baserank' => 28, 'refrank' => 39),
- 'ect' => array('change' => 300, 'baserank' => 14, 'refrank' => null),
- 'le ' => array('change' => 19, 'baserank' => 24, 'refrank' => 5),
- 'arc' => array('change' => 300, 'baserank' => 8, 'refrank' => null),
- 'lan' => array('change' => 300, 'baserank' => 23, 'refrank' => null),
- 'es ' => array('change' => 16, 'baserank' => 16, 'refrank' => 0),
- 'mar' => array('change' => 300, 'baserank' => 25, 'refrank' => null),
- ' dé' => array('change' => 59, 'baserank' => 2, 'refrank' => 61),
- 'ifi' => array('change' => 300, 'baserank' => 21, 'refrank' => null),
- 'gue' => array('change' => 300, 'baserank' => 19, 'refrank' => null),
- 'ur ' => array('change' => 12, 'baserank' => 39, 'refrank' => 27),
- 'rch' => array('change' => 300, 'baserank' => 31, 'refrank' => null),
- 'ang' => array('change' => 300, 'baserank' => 7, 'refrank' => null),
- 'que' => array('change' => 5, 'baserank' => 29, 'refrank' => 24),
- 'ngu' => array('change' => 300, 'baserank' => 26, 'refrank' => null),
- 'e d' => array('change' => 2, 'baserank' => 13, 'refrank' => 15),
- 'rif' => array('change' => 300, 'baserank' => 32, 'refrank' => null),
- ' ma' => array('change' => 89, 'baserank' => 5, 'refrank' => 94),
- 'tec' => array('change' => 300, 'baserank' => 35, 'refrank' => null),
- 'ns ' => array('change' => 6, 'baserank' => 27, 'refrank' => 21),
- ' la' => array('change' => 6, 'baserank' => 3, 'refrank' => 9),
- ' le' => array('change' => 1, 'baserank' => 4, 'refrank' => 3),
- 'r d' => array('change' => 202, 'baserank' => 30, 'refrank' => 232),
- 'e l' => array('change' => 14, 'baserank' => 0, 'refrank' => 14),
- 'che' => array('change' => 300, 'baserank' => 9, 'refrank' => null),
- 's m' => array('change' => 180, 'baserank' => 33, 'refrank' => 213),
- 'ue ' => array('change' => 7, 'baserank' => 37, 'refrank' => 30),
- 'ver' => array('change' => 117, 'baserank' => 40, 'refrank' => 157),
- 'teu' => array('change' => 300, 'baserank' => 36, 'refrank' => null),
- 'eri' => array('change' => 300, 'baserank' => 15, 'refrank' => null),
- 'cte' => array('change' => 300, 'baserank' => 10, 'refrank' => null),
- 'ues' => array('change' => 237, 'baserank' => 38, 'refrank' => 275),
- 's q' => array('change' => 300, 'baserank' => 34, 'refrank' => null),
- 'eur' => array('change' => 56, 'baserank' => 17, 'refrank' => 73),
- ' qu' => array('change' => 31, 'baserank' => 6, 'refrank' => 37),
- 'he ' => array('change' => 300, 'baserank' => 20, 'refrank' => null),
- 'ion' => array('change' => 12, 'baserank' => 22, 'refrank' => 10),
- );
-
-
-
- $french_ranks = $this->xproxy->_lang_db['french'];
-
- $sumchange = 0;
- foreach ($ranked as $key => $value) {
- if (isset($french_ranks[$key])) {
- $difference = abs($french_ranks[$key] - $ranked[$key]);
- } else {
- $difference = 300;
- }
- $this->assertTrue(isset($distances[$key]), $key);
- if (isset($distances[$key])) {
- $this->assertEquals($distances[$key]['baserank'], $ranked[$key], "baserank for $key");
- if ($distances[$key]['refrank'] === null) {
- $this->assertArrayNotHasKey($key, $french_ranks);
- } else {
- $this->assertEquals($distances[$key]['refrank'], $french_ranks[$key], "refrank for $key");
- }
- $this->assertEquals($distances[$key]['change'], $difference, "difference for $key");
- }
-
- $sumchange += $difference;
- }
-
- $actual_result = $this->xproxy->_distance($french_ranks, $ranked);
- $this->assertEquals($sumchange, $actual_result);
- $this->assertEquals(7091, $actual_result);
- $this->assertEquals(168, floor($sumchange/count($trigrams)));
-
- $final_result = $this->x->detect($str);
- $this->assertEquals(168, floor($final_result['french']));
- $this->assertEquals(211, $final_result['spanish']);
- }
-
- function test_russian ()
- {
- $str = 'авай проверить узнает ли наш угадатель русски язык';
-
- $this->x->setPerlCompatible();
- $trigrams = $this->xproxy->_trigram($str);
- $ranked = $this->xproxy->_arr_rank($trigrams);
-
- $correct_ranks = array(
- ' ру' => array('change' => 300, 'baserank' => 3, 'refrank' => null),
- 'ай ' => array('change' => 300, 'baserank' => 10, 'refrank' => null),
- 'ада' => array('change' => 300, 'baserank' => 8, 'refrank' => null),
- ' пр' => array('change' => 1, 'baserank' => 2, 'refrank' => 1),
- ' яз' => array('change' => 300, 'baserank' => 6, 'refrank' => null),
- 'ить' => array('change' => 300, 'baserank' => 24, 'refrank' => null),
- ' на' => array('change' => 1, 'baserank' => 1, 'refrank' => 0),
- 'зна' => array('change' => 153, 'baserank' => 20, 'refrank' => 173),
- 'вай' => array('change' => 300, 'baserank' => 13, 'refrank' => null),
- 'ш у' => array('change' => 300, 'baserank' => 44, 'refrank' => null),
- 'ль ' => array('change' => 300, 'baserank' => 28, 'refrank' => null),
- ' ли' => array('change' => 300, 'baserank' => 0, 'refrank' => null),
- 'сск' => array('change' => 300, 'baserank' => 37, 'refrank' => null),
- 'ть ' => array('change' => 31, 'baserank' => 40, 'refrank' => 9),
- 'ава' => array('change' => 300, 'baserank' => 7, 'refrank' => null),
- 'про' => array('change' => 18, 'baserank' => 32, 'refrank' => 14),
- 'гад' => array('change' => 300, 'baserank' => 15, 'refrank' => null),
- 'усс' => array('change' => 300, 'baserank' => 43, 'refrank' => null),
- 'ык ' => array('change' => 300, 'baserank' => 45, 'refrank' => null),
- 'ель' => array('change' => 64, 'baserank' => 17, 'refrank' => 81),
- 'язы' => array('change' => 300, 'baserank' => 47, 'refrank' => null),
- ' уг' => array('change' => 300, 'baserank' => 4, 'refrank' => null),
- 'ате' => array('change' => 152, 'baserank' => 11, 'refrank' => 163),
- 'и н' => array('change' => 63, 'baserank' => 22, 'refrank' => 85),
- 'и я' => array('change' => 300, 'baserank' => 23, 'refrank' => null),
- 'ает' => array('change' => 152, 'baserank' => 9, 'refrank' => 161),
- 'узн' => array('change' => 300, 'baserank' => 42, 'refrank' => null),
- 'ери' => array('change' => 300, 'baserank' => 18, 'refrank' => null),
- 'ли ' => array('change' => 23, 'baserank' => 27, 'refrank' => 4),
- 'т л' => array('change' => 300, 'baserank' => 38, 'refrank' => null),
- ' уз' => array('change' => 300, 'baserank' => 5, 'refrank' => null),
- 'дат' => array('change' => 203, 'baserank' => 16, 'refrank' => 219),
- 'зык' => array('change' => 300, 'baserank' => 21, 'refrank' => null),
- 'ров' => array('change' => 59, 'baserank' => 34, 'refrank' => 93),
- 'рит' => array('change' => 300, 'baserank' => 33, 'refrank' => null),
- 'ь р' => array('change' => 300, 'baserank' => 46, 'refrank' => null),
- 'ет ' => array('change' => 19, 'baserank' => 19, 'refrank' => 38),
- 'ки ' => array('change' => 116, 'baserank' => 26, 'refrank' => 142),
- 'рус' => array('change' => 300, 'baserank' => 35, 'refrank' => null),
- 'тел' => array('change' => 16, 'baserank' => 39, 'refrank' => 23),
- 'нае' => array('change' => 300, 'baserank' => 29, 'refrank' => null),
- 'й п' => array('change' => 300, 'baserank' => 25, 'refrank' => null),
- 'наш' => array('change' => 300, 'baserank' => 30, 'refrank' => null),
- 'уга' => array('change' => 300, 'baserank' => 41, 'refrank' => null),
- 'ове' => array('change' => 214, 'baserank' => 31, 'refrank' => 245),
- 'ски' => array('change' => 112, 'baserank' => 36, 'refrank' => 148),
- 'вер' => array('change' => 31, 'baserank' => 14, 'refrank' => 45),
- 'аш ' => array('change' => 300, 'baserank' => 12, 'refrank' => null),
- );
-
- $this->assertEquals(48, count($ranked));
-
-
- $russian = $this->xproxy->_lang_db['russian'];
-
- $sumchange = 0;
- foreach ($ranked as $key => $value) {
- if (isset($russian[$key])) {
- $difference = abs($russian[$key] - $ranked[$key]);
- } else {
- $difference = 300;
- }
- $this->assertTrue(isset($correct_ranks[$key], $key));
- if (isset($correct_ranks[$key])) {
- $this->assertEquals($correct_ranks[$key]['baserank'], $ranked[$key], "baserank for $key");
- if ($correct_ranks[$key]['refrank'] === null) {
- $this->assertArrayNotHasKey($key, $russian);
- } else {
- $this->assertEquals($correct_ranks[$key]['refrank'], $russian[$key], "refrank for $key");
- }
- $this->assertEquals($correct_ranks[$key]['change'], $difference, "difference for $key");
- }
-
- $sumchange += $difference;
- }
-
- $actual_result = $this->xproxy->_distance($russian, $ranked);
- $this->assertEquals($sumchange, $actual_result);
- $this->assertEquals(10428, $actual_result);
- $this->assertEquals(217, floor($sumchange/count($trigrams)));
-
- $final_result = $this->x->detect($str);
- $this->assertEquals(217,floor($final_result['russian']));
- }
-
- function test_ranker ()
- {
- $str = 'is it s i';
-
- $result = $this->xproxy->_arr_rank($this->xproxy->_trigram($str));
-
- $this->assertEquals(0, $result['s i']);
- }
-
-
- function test_count ()
- {
- $langs = $this->x->getLanguages();
-
- $count = $this->x->getLanguageCount();
-
- $this->assertEquals(count($langs), $count);
-
- foreach ($langs as $lang) {
- $this->assertTrue($this->x->languageExists($lang), $lang);
- }
- }
-
- function testLanguageExistsNameMode2()
- {
- $this->x->setNameMode(2);
- $this->assertTrue($this->x->languageExists('en'));
- $this->assertFalse($this->x->languageExists('english'));
- }
-
- function testLanguageExistsArrayNameMode2()
- {
- $this->x->setNameMode(2);
- $this->assertTrue($this->x->languageExists(array('en', 'de')));
- $this->assertFalse($this->x->languageExists(array('en', 'doesnotexist')));
- }
-
- /**
- * @expectedException Text_LanguageDetect_Exception
- * @expectedExceptionMessage Unsupported parameter type passed to languageExists()
- */
- function testLanguageExistsUnsupportedType()
- {
- $this->x->languageExists(1.23);
- }
-
- function testGetLanguages()
- {
- $langs = $this->x->getLanguages();
- $this->assertContains('english', $langs);
- $this->assertContains('swedish', $langs);
- }
-
- function testGetLanguagesNameMode2()
- {
- $this->x->setNameMode(2);
- $langs = $this->x->getLanguages();
- $this->assertContains('en', $langs);
- $this->assertContains('sv', $langs);
- }
-
- function testDetect()
- {
- $scores = $this->x->detect('Das ist ein kleiner Text für euch alle');
- $this->assertInternalType('array', $scores);
- $this->assertGreaterThan(5, count($scores));
-
- list($key, $value) = each($scores);
- $this->assertEquals('german', $key, 'text is german');
- }
-
- function testDetectNameMode2()
- {
- $this->x->setNameMode(2);
- $scores = $this->x->detect('Das ist ein kleiner Text für euch alle');
- list($key, $value) = each($scores);
- $this->assertEquals('de', $key, 'text is german');
- }
-
- function testDetectNameMode2Limit()
- {
- $this->x->setNameMode(2);
- $scores = $this->x->detect('Das ist ein kleiner Text für euch alle', 1);
- list($key, $value) = each($scores);
- $this->assertEquals('de', $key, 'text is german');
- }
-
- function testDetectSimple()
- {
- $lang = $this->x->detectSimple('Das ist ein kleiner Text für euch alle');
- $this->assertInternalType('string', $lang);
- $this->assertEquals('german', $lang, 'text is german');
- }
-
- function testDetectSimpleNameMode2()
- {
- $this->x->setNameMode(2);
- $lang = $this->x->detectSimple('Das ist ein kleiner Text für euch alle');
- $this->assertInternalType('string', $lang);
- $this->assertEquals('de', $lang, 'text is german');
- }
-
- function testDetectSimpleNoLanguages()
- {
- $this->x->omitLanguages('english', true);
- $this->x->omitLanguages('english', false);
- $this->assertNull(
- $this->x->detectSimple('Das ist ein kleiner Text für euch alle')
- );
- }
-
- function testLanguageSimilarity()
- {
- $this->x->setPerlCompatible(true);
- $eng_dan = $this->x->languageSimilarity('english', 'danish');
- $nor_dan = $this->x->languageSimilarity('norwegian', 'danish');
- $swe_dan = $this->x->languageSimilarity('swedish', 'danish');
-
- // remember, lower means more similar
- $this->assertTrue($eng_dan > $nor_dan); // english is less similar to danish than norwegian is
- $this->assertTrue($eng_dan > $swe_dan); // english is less similar to danish than swedish is
- $this->assertTrue($nor_dan < $swe_dan); // norwegian is more similar to danish than swedish
-
- // test the range of the results
- $this->assertTrue($eng_dan <= 300, $eng_dan);
- $this->assertTrue($eng_dan >= 0, $eng_dan);
-
- // test it in perl compatible mode
- $this->x->setPerlCompatible(false);
-
- $eng_dan = $this->x->languageSimilarity('english', 'danish');
- $nor_dan = $this->x->languageSimilarity('norwegian', 'danish');
- $swe_dan = $this->x->languageSimilarity('swedish', 'danish');
-
- // now higher is more similar
- $this->assertTrue($eng_dan < $nor_dan);
- $this->assertTrue($eng_dan < $swe_dan);
- $this->assertTrue($nor_dan > $swe_dan);
-
- $this->assertTrue($eng_dan <= 1, $eng_dan);
- $this->assertTrue($eng_dan >= 0, $eng_dan);
-
- $this->x->setPerlCompatible(true);
-
- $eng_all = $this->x->languageSimilarity('english');
- $this->assertEquals($this->x->getLanguageCount() - 1, count($eng_all));
- $this->assertTrue(!isset($eng_all['english']));
-
- $this->assertTrue($eng_all['italian'] < $eng_all['turkish']);
- $this->assertTrue($eng_all['french'] < $eng_all['kyrgyz']);
-
- $all = $this->x->languageSimilarity();
- $this->assertTrue(!isset($all['english']['english']));
- $this->assertTrue($all['french']['spanish'] < $all['french']['mongolian']);
- $this->assertTrue($all['spanish']['latin'] < $all['hindi']['finnish']);
- $this->assertTrue($all['russian']['uzbek'] < $all['russian']['english']);
- }
-
-
- function testLanguageSimilarityNameMode2()
- {
- $this->x->setNameMode(2);
- $this->x->setPerlCompatible(true);
- $eng_dan = $this->x->languageSimilarity('en', 'dk');
- $nor_dan = $this->x->languageSimilarity('no', 'dk');
-
- // remember, lower means more similar
- $this->assertTrue($eng_dan > $nor_dan); // english is less similar to danish than norwegian is
- }
-
- function testLanguageSimilarityUnknownLanguage()
- {
- $this->assertNull($this->x->languageSimilarity('doesnotexist'));
- }
-
- function testLanguageSimilarityUnknownLanguage2()
- {
- $this->assertNull($this->x->languageSimilarity('english', 'doesnotexist'));
- }
-
- function test_compatibility ()
- {
- $str = "I am the very model of a modern major general.";
-
-
- $this->x->setPerlCompatible(false);
- $result = $this->x->detectConfidence($str);
-
- $this->assertTrue(!is_null($result));
- $this->assertTrue(is_array($result));
- extract($result);
- $this->assertEquals('english', $language);
- $this->assertTrue($similarity <= 1 && $similarity >= 0, $similarity);
- $this->assertTrue($confidence <= 1 && $confidence >= 0, $confidence);
-
- $this->x->setPerlCompatible(true);
- $result = $this->x->detectConfidence($str);
- extract($result, EXTR_OVERWRITE);
-
- $this->assertEquals('english', $language);
-
- // technically the lowest possible score is 0 but it's extremely unlikely to hit that
- $this->assertTrue($similarity <= 300 && $similarity >= 1, $similarity);
- $this->assertTrue($confidence <= 1 && $confidence >= 0, $confidence);
-
- }
-
- function testDetectConfidenceNoText()
- {
- $this->assertNull($this->x->detectConfidence(''));
- }
-
- function test_omit_error ()
- {
- $str = 'On January 29, 1737, Thomas Paine was born in Thetford, England. His father, a corseter, had grand visions for his son, but by the age of 12, Thomas had failed out of school. The young Paine began apprenticing for his father, but again, he failed.';
-
- $myobj = new Text_LanguageDetect;
-
- $result = $myobj->detectSimple($str);
- $this->assertEquals('english', $result);
-
- // omit all languages and you should get an error
- $myobj->omitLanguages($myobj->getLanguages());
-
- $result = $myobj->detectSimple($str);
-
- $this->assertNull($result, gettype($result));
- }
-
- function test_cyrillic ()
- {
- // tests whether the cyrillic lower-casing works
-
- $uppercased = 'А Б В Г Д Е Ж З И Й К Л М Н О П'
- . 'Р С Т У Ф Х Ц Ч Ш Щ Ъ Ы Ь Э Ю Я';
-
- $lowercased = 'а б в г д е ж з и й к л м н о п'
- . 'р с т у ф х ц ч ш щ ъ ы ь э ю я';
-
- $this->assertEquals(strlen($uppercased), strlen($lowercased));
-
- $i = 0;
- $j = 0;
- $new_u = '';
- $rm = new ReflectionMethod('Text_LanguageDetect', '_next_char');
- $rm->setAccessible(true);
- while ($i < strlen($uppercased)) {
- $u = $rm->invokeArgs($this->x, [$uppercased, &$i, true]);
- $l = $rm->invokeArgs($this->x, [$lowercased, &$j, true]);
- $this->assertEquals($u, $l);
-
- $new_u .= $u;
- }
-
- $this->assertEquals($i, $j);
- $this->assertEquals($i, strlen($lowercased));
- if (function_exists('mb_strtolower')) {
- $this->assertEquals($new_u, mb_strtolower($uppercased, 'UTF-8'));
- }
- }
-
- function test_block_detection()
- {
- $exp_output = << 37
- [CJK Unified Ideographs] => 2
- [Hiragana] => 1
- [Latin-1 Supplement] => 4
-)
-EOF;
- $teststr = 'lsdkfj あ 葉 叶 slskdfj s Åj;sdklf ÿjs;kdjåf î';
- $result = $this->x->detectUnicodeBlocks($teststr, false);
-
- ksort($result);
- ob_start();
- print_r($result);
- $str_result = ob_get_contents();
- ob_end_clean();
- $this->assertEquals(trim($exp_output), trim($str_result));
-
- // test whether skipping the spaces reduces the basic latin count
- $result2 = $this->x->detectUnicodeBlocks($teststr, true);
- $this->assertTrue($result2['Basic Latin'] < $result['Basic Latin']);
-
- $result3 = $this->x->unicodeBlockName('и');
- $this->assertEquals('Cyrillic', $result3);
-
- $this->assertEquals('Basic Latin', $this->x->unicodeBlockName('A'));
-
- // see what happens when you try an unassigned range
- $utf8 = $this->code2utf(0x0800);
-
- $this->assertEquals(false, $this->x->unicodeBlockName($utf8));
-
- // try unicode vals in several different ranges
- $unicode['Supplementary Private Use Area-A'] = 0xF0001;
- $unicode['Supplementary Private Use Area-B'] = 0x100001;
- $unicode['CJK Unified Ideographs Extension B'] = 0x20001;
- $unicode['Ugaritic'] = 0x10381;
- $unicode['Gothic'] = 0x10331;
- $unicode['Low Surrogates'] = 0xDC01;
- $unicode['CJK Unified Ideographs'] = 0x4E00;
- $unicode['Glagolitic'] = 0x2C00;
- $unicode['Latin Extended Additional'] = 0x1EFF;
- $unicode['Devanagari'] = 0x0900;
- $unicode['Hebrew'] = 0x0590;
- $unicode['Latin Extended-B'] = 0x024F;
- $unicode['Latin-1 Supplement'] = 0x00FF;
- $unicode['Basic Latin'] = 0x007F;
-
- foreach ($unicode as $range => $codepoint) {
- $result = $this->x->unicodeBlockName($this->code2utf($codepoint));
- $this->assertEquals($range, $result, $codepoint);
- }
- }
-
- /**
- * @expectedException Text_LanguageDetect_Exception
- * @expectedExceptionMessage Pass a single char only to this method
- */
- function testUnicodeBlockNameParamString()
- {
- $this->x->unicodeBlockName('foo bar baz');
- }
-
- /**
- * @expectedException Text_LanguageDetect_Exception
- * @expectedExceptionMessage Input must be of type string or int
- */
- function testUnicodeBlockNameUnsupportedParamType()
- {
- $this->x->unicodeBlockName(1.23);
- }
-
-
- // utility function
- // found in http://www.php.net/manual/en/function.utf8-encode.php#49336
- function code2utf($num)
- {
- if ($num < 128) {
- return chr($num);
-
- } elseif ($num < 2048) {
- return chr(($num >> 6) + 192) . chr(($num & 63) + 128);
-
- } elseif ($num < 65536) {
- return chr(($num >> 12) + 224) . chr((($num >> 6) & 63) + 128) . chr(($num & 63) + 128);
-
- } elseif ($num < 2097152) {
- return chr(($num >> 18) + 240) . chr((($num >> 12) & 63) + 128) . chr((($num >> 6) & 63) + 128) . chr(($num & 63) + 128);
- } else {
- return '';
- }
- }
-
- function test_utf8len()
- {
- $str = 'Iñtërnâtiônàlizætiøn';
- $this->assertEquals(20, $this->x->utf8strlen($str), utf8_decode($str));
-
- $str = '時期日';
- $this->assertEquals(3, $this->x->utf8strlen($str), utf8_decode($str));
- }
-
- function test_unicode()
- {
- // test whether it can get the right unicode values for utf8 chars
-
- $chars['ת'] = 0x5EA;
-
- $chars['ç'] = 0x00E7;
-
- $chars['a'] = 0x0061;
-
- $chars['Φ'] = 0x03A6;
-
- $chars['И'] = 0x0418;
-
- $chars['ڰ'] = 0x6B0;
-
- $chars['Ụ'] = 0x1EE4;
-
- $chars['놔'] = 0xB194;
-
- $chars['遮'] = 0x906E;
-
- $chars['怀'] = 0x6000;
-
- $chars['ฤ'] = 0x0E24;
-
- $chars['Я'] = 0x042F;
-
- $chars['ü'] = 0x00FC;
-
- $chars['Đ'] = 0x0110;
-
- $chars['א'] = 0x05D0;
-
-
- foreach ($chars as $utf8 => $unicode) {
- $this->assertEquals($unicode, $this->xproxy->_utf8char2unicode($utf8), $utf8);
- }
- }
-
- function test_unicode_off()
- {
-
- // see what happens when you turn the unicode setting off
-
- $myobj = new Text_LanguageDetect;
-
- $str = 'This is a delightful sample of English text';
-
- $myobj->useUnicodeBlocks(true);
- $result1 = $myobj->detectConfidence($str);
-
- $myobj->useUnicodeBlocks(false);
- $result2 = $myobj->detectConfidence($str);
-
- $this->assertEquals($result1, $result2);
-
- // note this test doesn't tell if unicode narrowing was actually used or not
- }
-
-
- function test_detection()
- {
-
- // WARNING: the below lines may make your terminal go ape! be warned
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- // test strings from the test module used by perl's Language::Guess
-
- $testarr = array(
- "english" => "This is a test of the language checker",
- "french" => "Verifions que le détecteur de langues marche",
- "polish" => "Sprawdźmy, czy odgadywacz języków pracuje",
- "russian" => "Давай проверим узнает ли нашь угадыватель русский язык",
- "spanish" => "La respuesta de los acreedores a la oferta argentina para salir del default no ha sido muy positiv",
- "romanian" => "în acest sens aparţinînd Adunării Generale a organizaţiei, în ciuda faptului că mai multe dintre solicitările organizaţiei privind organizarea scrutinului nu au fost soluţionate",
- "albanian" => "kaluan ditën e fundit të fushatës në shtetet kryesore për të siguruar sa më shumë votues.",
- "danish" => "På denne side bringer vi billeder fra de mange forskellige forberedelser til arrangementet, efterhånden som vi får dem ",
- "swedish" => "Vi säger att Frälsningen är en gåva till alla, fritt och för intet. Men som vi nämnt så finns det två villkor som måste",
- "norwegian" => "Nominasjonskomiteen i Akershus KrF har skviset ut Einar Holstad fra stortingslisten. Ytre Enebakk-mannen har plass p Stortinget s lenge Valgerd Svarstad Haugland sitter i",
- "finnish" => "on julkishallinnon verkkopalveluiden yhteinen osoite. Kansalaisten arkielämää helpottavaa tietoa on koottu eri aihealueisiin",
- "estonian" => "Ennetamaks reisil ebameeldivaid vahejuhtumeid vii end kurssi reisidokumentide ja viisade reeglitega ning muu praktilise informatsiooniga",
- "hungarian" => "Hiába jön létre az önkéntes magyar haderő, hiába nem lesz többé bevonulás, változatlanul fennmarad a hadkötelezettség intézménye",
- "uzbek" => "милиция ва уч солиқ идораси ходимлари яраланган. Шаҳарда хавфсизлик чоралари кучайтирилган.",
-
-
- "czech" => "Francouzský ministr financí zmírnil výhrady vůči nízkým firemním daním v nových členských státech EU",
- "dutch" => "Die kritiek was volgens hem bitter hard nodig, omdat Nederland binnen een paar jaar in een soort Belfast zou dreigen te nderen",
-
- "croatian" => "biće prilično izjednačena, sugerišu najnovije ankete. Oba kandidata tvrde da su sposobni da dobiju rat protiv terorizma",
-
- "romanian" => "în acest sens aparţinînd Adunării Generale a organizaţiei, în ciuda faptului că mai multe dintre solicitările organizaţiei ivind organizarea scrutinului nu au fost soluţionate",
-
- "turkish" => "yakın tarihin en çekişmeli başkanlık seçiminde oy verme işlemi sürerken, katılımda rekor bekleniyor.",
-
- "kyrgyz" => "көрбөгөндөй элдик толкундоо болуп, Кокон шаарынын көчөлөрүндө бир нече миң киши нааразылык билдирди.",
-
-
- "albanian" => "kaluan ditën e fundit të fushatës në shtetet kryesore për të siguruar sa më shumë votues.",
-
-
- "azeri" => "Daxil olan xəbərlərdə deyilir ki, 6 nəfər Bağdadın mərkəzində yerləşən Təhsil Nazirliyinin binası yaxınlığında baş vermiş partlayış zamanı həlak olub.",
-
-
- "macedonian" => "на јавното мислење покажуваат дека трката е толку тесна, што се очекува двајцата соперници да ја прекршат традицијата и да се појават и на самиот изборен ден.",
-
-
-
- "kazakh" => "Сайлау нәтижесінде дауыстардың басым бөлігін ел премьер министрі Виктор Янукович пен оның қарсыласы, оппозиция жетекшісі Виктор Ющенко алды.",
-
-
- "bulgarian" => " е готов да даде гаранции, че няма да прави ядрено оръжие, ако му се разреши мирна атомна програма",
-
-
- "arabic" => " ملايين الناخبين الأمريكيين يدلون بأصواتهم وسط إقبال قياسي على انتخابات هي الأشد تنافسا منذ عقود",
-
- );
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- // should be safe at this point
-
-
- $languages = $this->x->getLanguages();
- foreach (array_keys($testarr) as $key) {
- $this->assertTrue(in_array($key, $languages), "$key was not in known languages");
- }
-
- foreach ($testarr as $key=>$value) {
- $this->assertEquals($key, $this->x->detectSimple($value));
- }
- }
-
-
- public function test_convertFromNameMode0()
- {
- $this->assertEquals(
- 'english',
- $this->xproxy->_convertFromNameMode('english')
- );
- }
-
- public function test_convertFromNameMode2String()
- {
- $this->x->setNameMode(2);
- $this->assertEquals(
- 'english',
- $this->xproxy->_convertFromNameMode('en')
- );
- }
-
- public function test_convertFromNameMode3String()
- {
- $this->x->setNameMode(3);
- $this->assertEquals(
- 'english',
- $this->xproxy->_convertFromNameMode('eng')
- );
- }
-
- public function test_convertFromNameMode2ArrayVal()
- {
- $this->x->setNameMode(2);
- $this->assertEquals(
- array('english', 'german'),
- $this->xproxy->_convertFromNameMode(array('en', 'de'))
- );
- }
-
- public function test_convertFromNameMode2ArrayKey()
- {
- $this->x->setNameMode(2);
- $this->assertEquals(
- array('english' => 'foo', 'german' => 'test'),
- $this->xproxy->_convertFromNameMode(
- array('en' => 'foo', 'de' => 'test'),
- true
- )
- );
- }
-
- public function test_convertFromNameMode3ArrayVal()
- {
- $this->x->setNameMode(3);
- $this->assertEquals(
- array('english', 'german'),
- $this->xproxy->_convertFromNameMode(array('eng', 'deu'))
- );
- }
-
- public function test_convertFromNameMode3ArrayKey()
- {
- $this->x->setNameMode(3);
- $this->assertEquals(
- array('english' => 'foo', 'german' => 'test'),
- $this->xproxy->_convertFromNameMode(
- array('eng' => 'foo', 'deu' => 'test'),
- true
- )
- );
- }
-
- public function test_convertToNameMode0()
- {
- $this->assertEquals(
- 'english',
- $this->xproxy->_convertToNameMode('english')
- );
- }
-
- public function test_convertToNameMode2String()
- {
- $this->x->setNameMode(2);
- $this->assertEquals(
- 'en',
- $this->xproxy->_convertToNameMode('english')
- );
- }
-
- public function test_convertToNameMode3String()
- {
- $this->x->setNameMode(3);
- $this->assertEquals(
- 'eng',
- $this->xproxy->_convertToNameMode('english')
- );
- }
-
- public function test_convertToNameMode2ArrayVal()
- {
- $this->x->setNameMode(2);
- $this->assertEquals(
- array('en', 'de'),
- $this->xproxy->_convertToNameMode(array('english', 'german'))
- );
- }
-
- public function test_convertToNameMode2ArrayKey()
- {
- $this->x->setNameMode(2);
- $this->assertEquals(
- array('en' => 'foo', 'de' => 'test'),
- $this->xproxy->_convertToNameMode(
- array('english' => 'foo', 'german' => 'test'),
- true
- )
- );
- }
-
- public function test_convertToNameMode3ArrayVal()
- {
- $this->x->setNameMode(3);
- $this->assertEquals(
- array('eng', 'deu'),
- $this->xproxy->_convertToNameMode(array('english', 'german'))
- );
- }
-
- public function test_convertToNameMode3ArrayKey()
- {
- $this->x->setNameMode(3);
- $this->assertEquals(
- array('eng' => 'foo', 'deu' => 'test'),
- $this->xproxy->_convertToNameMode(
- array('english' => 'foo', 'german' => 'test'),
- true
- )
- );
- }
-}
diff --git a/library/langdet/tests/Text_LanguageDetect_ISO639Test.php b/library/langdet/tests/Text_LanguageDetect_ISO639Test.php
deleted file mode 100644
index e01d715e17..0000000000
--- a/library/langdet/tests/Text_LanguageDetect_ISO639Test.php
+++ /dev/null
@@ -1,72 +0,0 @@
-assertEquals(
- 'de',
- Text_LanguageDetect_ISO639::nameToCode2('german')
- );
- }
-
- public function testNameToCode2Fail()
- {
- $this->assertNull(
- Text_LanguageDetect_ISO639::nameToCode2('doesnotexist')
- );
- }
-
- public function testNameToCode3()
- {
- $this->assertEquals(
- 'fra',
- Text_LanguageDetect_ISO639::nameToCode3('french')
- );
- }
-
- public function testNameToCode3Fail()
- {
- $this->assertNull(
- Text_LanguageDetect_ISO639::nameToCode3('doesnotexist')
- );
- }
-
- public function testCode2ToName()
- {
- $this->assertEquals(
- 'english',
- Text_LanguageDetect_ISO639::code2ToName('en')
- );
- }
-
- public function testCode2ToNameFail()
- {
- $this->assertNull(
- Text_LanguageDetect_ISO639::code2ToName('nx')
- );
- }
-
- public function testCode3ToName()
- {
- $this->assertEquals(
- 'romanian',
- Text_LanguageDetect_ISO639::code3ToName('rom')
- );
- }
-
- public function testCode3ToNameFail()
- {
- $this->assertNull(
- Text_LanguageDetect_ISO639::code3ToName('nxx')
- );
- }
-
-}
-
-?>
\ No newline at end of file
diff --git a/src/App.php b/src/App.php
index 67dfacf7a3..936011a5af 100644
--- a/src/App.php
+++ b/src/App.php
@@ -211,7 +211,6 @@ class App {
get_include_path() . PATH_SEPARATOR
. $this->basepath . DIRECTORY_SEPARATOR . 'include' . PATH_SEPARATOR
. $this->basepath . DIRECTORY_SEPARATOR . 'library' . PATH_SEPARATOR
- . $this->basepath . DIRECTORY_SEPARATOR . 'library/langdet' . PATH_SEPARATOR
. $this->basepath);
diff --git a/vendor/composer/autoload_classmap.php b/vendor/composer/autoload_classmap.php
index a3f90a0f7f..4b3e1946bb 100644
--- a/vendor/composer/autoload_classmap.php
+++ b/vendor/composer/autoload_classmap.php
@@ -14,6 +14,7 @@ return array(
'Friendica\\Core\\PConfig' => $baseDir . '/src/Core/PConfig.php',
'Friendica\\Network\\Probe' => $baseDir . '/src/Network/Probe.php',
'Friendica\\ParseUrl' => $baseDir . '/src/ParseUrl.php',
+ 'Friendica\\Util\\Lock' => $baseDir . '/src/Util/Lock.php',
'HTMLPurifier' => $vendorDir . '/ezyang/htmlpurifier/library/HTMLPurifier.php',
'HTMLPurifier_Arborize' => $vendorDir . '/ezyang/htmlpurifier/library/HTMLPurifier/Arborize.php',
'HTMLPurifier_AttrCollections' => $vendorDir . '/ezyang/htmlpurifier/library/HTMLPurifier/AttrCollections.php',
@@ -371,6 +372,10 @@ return array(
'Text_Highlighter_SQL' => $vendorDir . '/pear-pear.php.net/Text_Highlighter/Text/Highlighter/SQL.php',
'Text_Highlighter_VBSCRIPT' => $vendorDir . '/pear-pear.php.net/Text_Highlighter/Text/Highlighter/VBSCRIPT.php',
'Text_Highlighter_XML' => $vendorDir . '/pear-pear.php.net/Text_Highlighter/Text/Highlighter/XML.php',
+ 'Text_LanguageDetect' => $vendorDir . '/pear-pear.php.net/Text_LanguageDetect/Text/LanguageDetect.php',
+ 'Text_LanguageDetect_Exception' => $vendorDir . '/pear-pear.php.net/Text_LanguageDetect/Text/LanguageDetect/Exception.php',
+ 'Text_LanguageDetect_ISO639' => $vendorDir . '/pear-pear.php.net/Text_LanguageDetect/Text/LanguageDetect/ISO639.php',
+ 'Text_LanguageDetect_Parser' => $vendorDir . '/pear-pear.php.net/Text_LanguageDetect/Text/LanguageDetect/Parser.php',
'XML_Parser' => $vendorDir . '/pear-pear.php.net/XML_Parser/XML/Parser.php',
'XML_Parser_Error' => $vendorDir . '/pear-pear.php.net/XML_Parser/XML/Parser.php',
'XML_Parser_Simple' => $vendorDir . '/pear-pear.php.net/XML_Parser/XML/Parser/Simple.php',
diff --git a/vendor/composer/autoload_static.php b/vendor/composer/autoload_static.php
index 2b6416c2ee..9e9d1c409d 100644
--- a/vendor/composer/autoload_static.php
+++ b/vendor/composer/autoload_static.php
@@ -58,6 +58,7 @@ class ComposerStaticInitFriendica
'Friendica\\Core\\PConfig' => __DIR__ . '/../..' . '/src/Core/PConfig.php',
'Friendica\\Network\\Probe' => __DIR__ . '/../..' . '/src/Network/Probe.php',
'Friendica\\ParseUrl' => __DIR__ . '/../..' . '/src/ParseUrl.php',
+ 'Friendica\\Util\\Lock' => __DIR__ . '/../..' . '/src/Util/Lock.php',
'HTMLPurifier' => __DIR__ . '/..' . '/ezyang/htmlpurifier/library/HTMLPurifier.php',
'HTMLPurifier_Arborize' => __DIR__ . '/..' . '/ezyang/htmlpurifier/library/HTMLPurifier/Arborize.php',
'HTMLPurifier_AttrCollections' => __DIR__ . '/..' . '/ezyang/htmlpurifier/library/HTMLPurifier/AttrCollections.php',
@@ -415,6 +416,10 @@ class ComposerStaticInitFriendica
'Text_Highlighter_SQL' => __DIR__ . '/..' . '/pear-pear.php.net/Text_Highlighter/Text/Highlighter/SQL.php',
'Text_Highlighter_VBSCRIPT' => __DIR__ . '/..' . '/pear-pear.php.net/Text_Highlighter/Text/Highlighter/VBSCRIPT.php',
'Text_Highlighter_XML' => __DIR__ . '/..' . '/pear-pear.php.net/Text_Highlighter/Text/Highlighter/XML.php',
+ 'Text_LanguageDetect' => __DIR__ . '/..' . '/pear-pear.php.net/Text_LanguageDetect/Text/LanguageDetect.php',
+ 'Text_LanguageDetect_Exception' => __DIR__ . '/..' . '/pear-pear.php.net/Text_LanguageDetect/Text/LanguageDetect/Exception.php',
+ 'Text_LanguageDetect_ISO639' => __DIR__ . '/..' . '/pear-pear.php.net/Text_LanguageDetect/Text/LanguageDetect/ISO639.php',
+ 'Text_LanguageDetect_Parser' => __DIR__ . '/..' . '/pear-pear.php.net/Text_LanguageDetect/Text/LanguageDetect/Parser.php',
'XML_Parser' => __DIR__ . '/..' . '/pear-pear.php.net/XML_Parser/XML/Parser.php',
'XML_Parser_Error' => __DIR__ . '/..' . '/pear-pear.php.net/XML_Parser/XML/Parser.php',
'XML_Parser_Simple' => __DIR__ . '/..' . '/pear-pear.php.net/XML_Parser/XML/Parser/Simple.php',
diff --git a/vendor/composer/include_paths.php b/vendor/composer/include_paths.php
index 1d4a52943a..e7997aaa38 100644
--- a/vendor/composer/include_paths.php
+++ b/vendor/composer/include_paths.php
@@ -7,10 +7,11 @@ $baseDir = dirname($vendorDir);
return array(
$vendorDir . '/pear-pear.php.net/Console_Getopt',
- $vendorDir . '/pear-pear.php.net/Archive_Tar',
$vendorDir . '/pear-pear.php.net/Structures_Graph',
- $vendorDir . '/pear-pear.php.net/XML_Util',
$vendorDir . '/pear-pear.php.net/XML_Parser',
$vendorDir . '/pear-pear.php.net/Text_Highlighter',
+ $vendorDir . '/pear-pear.php.net/XML_Util',
+ $vendorDir . '/pear-pear.php.net/Archive_Tar',
$vendorDir . '/pear-pear.php.net/PEAR',
+ $vendorDir . '/pear-pear.php.net/Text_LanguageDetect',
);
diff --git a/vendor/composer/installed.json b/vendor/composer/installed.json
index d6cca604f9..fe7dc510dd 100644
--- a/vendor/composer/installed.json
+++ b/vendor/composer/installed.json
@@ -45,60 +45,6 @@
"html"
]
},
- {
- "name": "mobiledetect/mobiledetectlib",
- "version": "2.8.25",
- "version_normalized": "2.8.25.0",
- "source": {
- "type": "git",
- "url": "https://github.com/serbanghita/Mobile-Detect.git",
- "reference": "f0896b5c7274d1450023b0b376240be902c3251c"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/serbanghita/Mobile-Detect/zipball/f0896b5c7274d1450023b0b376240be902c3251c",
- "reference": "f0896b5c7274d1450023b0b376240be902c3251c",
- "shasum": ""
- },
- "require": {
- "php": ">=5.0.0"
- },
- "require-dev": {
- "phpunit/phpunit": "*"
- },
- "time": "2017-03-29T13:59:30+00:00",
- "type": "library",
- "installation-source": "dist",
- "autoload": {
- "classmap": [
- "Mobile_Detect.php"
- ],
- "psr-0": {
- "Detection": "namespaced/"
- }
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "MIT"
- ],
- "authors": [
- {
- "name": "Serban Ghita",
- "email": "serbanghita@gmail.com",
- "homepage": "http://mobiledetect.net",
- "role": "Developer"
- }
- ],
- "description": "Mobile_Detect is a lightweight PHP class for detecting mobile devices. It uses the User-Agent string combined with specific HTTP headers to detect the mobile environment.",
- "homepage": "https://github.com/serbanghita/Mobile-Detect",
- "keywords": [
- "detect mobile devices",
- "mobile",
- "mobile detect",
- "mobile detector",
- "php mobile detect"
- ]
- },
{
"name": "pear-pear.php.net/Console_Getopt",
"version": "1.4.1",
@@ -130,37 +76,6 @@
],
"description": "This is a PHP implementation of \"getopt\" supporting both\nshort and long options."
},
- {
- "name": "pear-pear.php.net/Archive_Tar",
- "version": "1.4.2",
- "version_normalized": "1.4.2.0",
- "dist": {
- "type": "file",
- "url": "https://pear.php.net/get/Archive_Tar-1.4.2.tgz",
- "reference": null,
- "shasum": null
- },
- "require": {
- "php": ">=5.2.0.0"
- },
- "replace": {
- "pear-pear/archive_tar": "== 1.4.2.0"
- },
- "type": "pear-library",
- "installation-source": "dist",
- "autoload": {
- "classmap": [
- ""
- ]
- },
- "include-path": [
- "/"
- ],
- "license": [
- "New BSD License"
- ],
- "description": "This class provides handling of tar files in PHP.\nIt supports creating, listing, extracting and adding to tar files.\nGzip support is available if PHP has the zlib extension built-in or\nloaded. Bz2 compression is also supported with the bz2 extension loaded."
- },
{
"name": "pear-pear.php.net/Structures_Graph",
"version": "1.1.1",
@@ -192,38 +107,6 @@
],
"description": "Structures_Graph is a package for creating and manipulating graph datastructures. It allows building of directed\nand undirected graphs, with data and metadata stored in nodes. The library provides functions for graph traversing\nas well as for characteristic extraction from the graph topology."
},
- {
- "name": "pear-pear.php.net/XML_Util",
- "version": "1.4.2",
- "version_normalized": "1.4.2.0",
- "dist": {
- "type": "file",
- "url": "https://pear.php.net/get/XML_Util-1.4.2.tgz",
- "reference": null,
- "shasum": null
- },
- "require": {
- "ext-pcre": "*",
- "php": ">=5.4.0.0"
- },
- "replace": {
- "pear-pear/xml_util": "== 1.4.2.0"
- },
- "type": "pear-library",
- "installation-source": "dist",
- "autoload": {
- "classmap": [
- ""
- ]
- },
- "include-path": [
- "/"
- ],
- "license": [
- "BSD License"
- ],
- "description": "Selection of methods that are often needed when working with XML documents. Functionality includes creating of attribute lists from arrays, creation of tags, validation of XML names and more."
- },
{
"name": "pear-pear.php.net/XML_Parser",
"version": "1.3.7",
@@ -357,12 +240,129 @@
]
},
{
- "name": "pear-pear.php.net/PEAR",
- "version": "1.10.4",
- "version_normalized": "1.10.4.0",
+ "name": "mobiledetect/mobiledetectlib",
+ "version": "2.8.26",
+ "version_normalized": "2.8.26.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/serbanghita/Mobile-Detect.git",
+ "reference": "a0ed86c9d7c04ae27fa6418b55e3beb04dfe3297"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/serbanghita/Mobile-Detect/zipball/a0ed86c9d7c04ae27fa6418b55e3beb04dfe3297",
+ "reference": "a0ed86c9d7c04ae27fa6418b55e3beb04dfe3297",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=5.0.0"
+ },
+ "require-dev": {
+ "phpunit/phpunit": "*"
+ },
+ "time": "2017-08-29T18:23:54+00:00",
+ "type": "library",
+ "installation-source": "dist",
+ "autoload": {
+ "classmap": [
+ "Mobile_Detect.php"
+ ],
+ "psr-0": {
+ "Detection": "namespaced/"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Serban Ghita",
+ "email": "serbanghita@gmail.com",
+ "homepage": "http://mobiledetect.net",
+ "role": "Developer"
+ }
+ ],
+ "description": "Mobile_Detect is a lightweight PHP class for detecting mobile devices. It uses the User-Agent string combined with specific HTTP headers to detect the mobile environment.",
+ "homepage": "https://github.com/serbanghita/Mobile-Detect",
+ "keywords": [
+ "detect mobile devices",
+ "mobile",
+ "mobile detect",
+ "mobile detector",
+ "php mobile detect"
+ ]
+ },
+ {
+ "name": "pear-pear.php.net/XML_Util",
+ "version": "1.4.3",
+ "version_normalized": "1.4.3.0",
"dist": {
"type": "file",
- "url": "https://pear.php.net/get/PEAR-1.10.4.tgz",
+ "url": "https://pear.php.net/get/XML_Util-1.4.3.tgz",
+ "reference": null,
+ "shasum": null
+ },
+ "require": {
+ "ext-pcre": "*",
+ "php": ">=5.4.0.0"
+ },
+ "replace": {
+ "pear-pear/xml_util": "== 1.4.3.0"
+ },
+ "type": "pear-library",
+ "installation-source": "dist",
+ "autoload": {
+ "classmap": [
+ ""
+ ]
+ },
+ "include-path": [
+ "/"
+ ],
+ "license": [
+ "BSD License"
+ ],
+ "description": "Selection of methods that are often needed when working with XML documents. Functionality includes creating of attribute lists from arrays, creation of tags, validation of XML names and more."
+ },
+ {
+ "name": "pear-pear.php.net/Archive_Tar",
+ "version": "1.4.3",
+ "version_normalized": "1.4.3.0",
+ "dist": {
+ "type": "file",
+ "url": "https://pear.php.net/get/Archive_Tar-1.4.3.tgz",
+ "reference": null,
+ "shasum": null
+ },
+ "require": {
+ "php": ">=5.2.0.0"
+ },
+ "replace": {
+ "pear-pear/archive_tar": "== 1.4.3.0"
+ },
+ "type": "pear-library",
+ "installation-source": "dist",
+ "autoload": {
+ "classmap": [
+ ""
+ ]
+ },
+ "include-path": [
+ "/"
+ ],
+ "license": [
+ "New BSD License"
+ ],
+ "description": "This class provides handling of tar files in PHP.\nIt supports creating, listing, extracting and adding to tar files.\nGzip support is available if PHP has the zlib extension built-in or\nloaded. Bz2 compression is also supported with the bz2 extension loaded."
+ },
+ {
+ "name": "pear-pear.php.net/PEAR",
+ "version": "1.10.5",
+ "version_normalized": "1.10.5.0",
+ "dist": {
+ "type": "file",
+ "url": "https://pear.php.net/get/PEAR-1.10.5.tgz",
"reference": null,
"shasum": null
},
@@ -380,7 +380,7 @@
"pear-pear.php.net/pear_frontend_web": "<=0.4.0.0"
},
"replace": {
- "pear-pear/pear": "== 1.10.4.0"
+ "pear-pear/pear": "== 1.10.5.0"
},
"type": "pear-library",
"installation-source": "dist",
@@ -396,5 +396,37 @@
"New BSD License"
],
"description": "The PEAR package contains:\n * the PEAR installer, for creating, distributing\n and installing packages\n * the PEAR_Exception PHP5 error handling mechanism\n * the PEAR_ErrorStack advanced error handling mechanism\n * the PEAR_Error error handling mechanism\n * the OS_Guess class for retrieving info about the OS\n where PHP is running on\n * the System class for quick handling of common operations\n with files and directories\n * the PEAR base class\n Features in a nutshell:\n * full support for channels\n * pre-download dependency validation\n * new package.xml 2.0 format allows tremendous flexibility while maintaining BC\n * support for optional dependency groups and limited support for sub-packaging\n * robust dependency support\n * full dependency validation on uninstall\n * remote install for hosts with only ftp access - no more problems with\n restricted host installation\n * full support for mirroring\n * support for bundling several packages into a single tarball\n * support for static dependencies on a url-based package\n * support for custom file roles and installation tasks"
+ },
+ {
+ "name": "pear-pear.php.net/Text_LanguageDetect",
+ "version": "1.0.0",
+ "version_normalized": "1.0.0.0",
+ "dist": {
+ "type": "file",
+ "url": "https://pear.php.net/get/Text_LanguageDetect-1.0.0.tgz",
+ "reference": null,
+ "shasum": null
+ },
+ "require": {
+ "ext-pcre": "*",
+ "php": ">=5.4.0.0"
+ },
+ "replace": {
+ "pear-pear/text_languagedetect": "== 1.0.0.0"
+ },
+ "type": "pear-library",
+ "installation-source": "dist",
+ "autoload": {
+ "classmap": [
+ ""
+ ]
+ },
+ "include-path": [
+ "/"
+ ],
+ "license": [
+ "BSD"
+ ],
+ "description": "Text_LanguageDetect can identify 52 human languages from text samples and return confidence scores for each."
}
]
diff --git a/vendor/mobiledetect/mobiledetectlib/Mobile_Detect.json b/vendor/mobiledetect/mobiledetectlib/Mobile_Detect.json
index dc5420f309..63d2aa7ba8 100644
--- a/vendor/mobiledetect/mobiledetectlib/Mobile_Detect.json
+++ b/vendor/mobiledetect/mobiledetectlib/Mobile_Detect.json
@@ -1 +1 @@
-{"version":"2.8.25","headerMatch":{"HTTP_ACCEPT":{"matches":["application\/x-obml2d","application\/vnd.rim.html","text\/vnd.wap.wml","application\/vnd.wap.xhtml+xml"]},"HTTP_X_WAP_PROFILE":null,"HTTP_X_WAP_CLIENTID":null,"HTTP_WAP_CONNECTION":null,"HTTP_PROFILE":null,"HTTP_X_OPERAMINI_PHONE_UA":null,"HTTP_X_NOKIA_GATEWAY_ID":null,"HTTP_X_ORANGE_ID":null,"HTTP_X_VODAFONE_3GPDPCONTEXT":null,"HTTP_X_HUAWEI_USERID":null,"HTTP_UA_OS":null,"HTTP_X_MOBILE_GATEWAY":null,"HTTP_X_ATT_DEVICEID":null,"HTTP_UA_CPU":{"matches":["ARM"]}},"uaHttpHeaders":["HTTP_USER_AGENT","HTTP_X_OPERAMINI_PHONE_UA","HTTP_X_DEVICE_USER_AGENT","HTTP_X_ORIGINAL_USER_AGENT","HTTP_X_SKYFIRE_PHONE","HTTP_X_BOLT_PHONE_UA","HTTP_DEVICE_STOCK_UA","HTTP_X_UCBROWSER_DEVICE_UA"],"uaMatch":{"phones":{"iPhone":"\\biPhone\\b|\\biPod\\b","BlackBerry":"BlackBerry|\\bBB10\\b|rim[0-9]+","HTC":"HTC|HTC.*(Sensation|Evo|Vision|Explorer|6800|8100|8900|A7272|S510e|C110e|Legend|Desire|T8282)|APX515CKT|Qtek9090|APA9292KT|HD_mini|Sensation.*Z710e|PG86100|Z715e|Desire.*(A8181|HD)|ADR6200|ADR6400L|ADR6425|001HT|Inspire 4G|Android.*\\bEVO\\b|T-Mobile G1|Z520m","Nexus":"Nexus One|Nexus S|Galaxy.*Nexus|Android.*Nexus.*Mobile|Nexus 4|Nexus 5|Nexus 6","Dell":"Dell.*Streak|Dell.*Aero|Dell.*Venue|DELL.*Venue Pro|Dell Flash|Dell Smoke|Dell Mini 3iX|XCD28|XCD35|\\b001DL\\b|\\b101DL\\b|\\bGS01\\b","Motorola":"Motorola|DROIDX|DROID BIONIC|\\bDroid\\b.*Build|Android.*Xoom|HRI39|MOT-|A1260|A1680|A555|A853|A855|A953|A955|A956|Motorola.*ELECTRIFY|Motorola.*i1|i867|i940|MB200|MB300|MB501|MB502|MB508|MB511|MB520|MB525|MB526|MB611|MB612|MB632|MB810|MB855|MB860|MB861|MB865|MB870|ME501|ME502|ME511|ME525|ME600|ME632|ME722|ME811|ME860|ME863|ME865|MT620|MT710|MT716|MT720|MT810|MT870|MT917|Motorola.*TITANIUM|WX435|WX445|XT300|XT301|XT311|XT316|XT317|XT319|XT320|XT390|XT502|XT530|XT531|XT532|XT535|XT603|XT610|XT611|XT615|XT681|XT701|XT702|XT711|XT720|XT800|XT806|XT860|XT862|XT875|XT882|XT883|XT894|XT901|XT907|XT909|XT910|XT912|XT928|XT926|XT915|XT919|XT925|XT1021|\\bMoto E\\b","Samsung":"\\bSamsung\\b|SM-G9250|GT-19300|SGH-I337|BGT-S5230|GT-B2100|GT-B2700|GT-B2710|GT-B3210|GT-B3310|GT-B3410|GT-B3730|GT-B3740|GT-B5510|GT-B5512|GT-B5722|GT-B6520|GT-B7300|GT-B7320|GT-B7330|GT-B7350|GT-B7510|GT-B7722|GT-B7800|GT-C3010|GT-C3011|GT-C3060|GT-C3200|GT-C3212|GT-C3212I|GT-C3262|GT-C3222|GT-C3300|GT-C3300K|GT-C3303|GT-C3303K|GT-C3310|GT-C3322|GT-C3330|GT-C3350|GT-C3500|GT-C3510|GT-C3530|GT-C3630|GT-C3780|GT-C5010|GT-C5212|GT-C6620|GT-C6625|GT-C6712|GT-E1050|GT-E1070|GT-E1075|GT-E1080|GT-E1081|GT-E1085|GT-E1087|GT-E1100|GT-E1107|GT-E1110|GT-E1120|GT-E1125|GT-E1130|GT-E1160|GT-E1170|GT-E1175|GT-E1180|GT-E1182|GT-E1200|GT-E1210|GT-E1225|GT-E1230|GT-E1390|GT-E2100|GT-E2120|GT-E2121|GT-E2152|GT-E2220|GT-E2222|GT-E2230|GT-E2232|GT-E2250|GT-E2370|GT-E2550|GT-E2652|GT-E3210|GT-E3213|GT-I5500|GT-I5503|GT-I5700|GT-I5800|GT-I5801|GT-I6410|GT-I6420|GT-I7110|GT-I7410|GT-I7500|GT-I8000|GT-I8150|GT-I8160|GT-I8190|GT-I8320|GT-I8330|GT-I8350|GT-I8530|GT-I8700|GT-I8703|GT-I8910|GT-I9000|GT-I9001|GT-I9003|GT-I9010|GT-I9020|GT-I9023|GT-I9070|GT-I9082|GT-I9100|GT-I9103|GT-I9220|GT-I9250|GT-I9300|GT-I9305|GT-I9500|GT-I9505|GT-M3510|GT-M5650|GT-M7500|GT-M7600|GT-M7603|GT-M8800|GT-M8910|GT-N7000|GT-S3110|GT-S3310|GT-S3350|GT-S3353|GT-S3370|GT-S3650|GT-S3653|GT-S3770|GT-S3850|GT-S5210|GT-S5220|GT-S5229|GT-S5230|GT-S5233|GT-S5250|GT-S5253|GT-S5260|GT-S5263|GT-S5270|GT-S5300|GT-S5330|GT-S5350|GT-S5360|GT-S5363|GT-S5369|GT-S5380|GT-S5380D|GT-S5560|GT-S5570|GT-S5600|GT-S5603|GT-S5610|GT-S5620|GT-S5660|GT-S5670|GT-S5690|GT-S5750|GT-S5780|GT-S5830|GT-S5839|GT-S6102|GT-S6500|GT-S7070|GT-S7200|GT-S7220|GT-S7230|GT-S7233|GT-S7250|GT-S7500|GT-S7530|GT-S7550|GT-S7562|GT-S7710|GT-S8000|GT-S8003|GT-S8500|GT-S8530|GT-S8600|SCH-A310|SCH-A530|SCH-A570|SCH-A610|SCH-A630|SCH-A650|SCH-A790|SCH-A795|SCH-A850|SCH-A870|SCH-A890|SCH-A930|SCH-A950|SCH-A970|SCH-A990|SCH-I100|SCH-I110|SCH-I400|SCH-I405|SCH-I500|SCH-I510|SCH-I515|SCH-I600|SCH-I730|SCH-I760|SCH-I770|SCH-I830|SCH-I910|SCH-I920|SCH-I959|SCH-LC11|SCH-N150|SCH-N300|SCH-R100|SCH-R300|SCH-R351|SCH-R400|SCH-R410|SCH-T300|SCH-U310|SCH-U320|SCH-U350|SCH-U360|SCH-U365|SCH-U370|SCH-U380|SCH-U410|SCH-U430|SCH-U450|SCH-U460|SCH-U470|SCH-U490|SCH-U540|SCH-U550|SCH-U620|SCH-U640|SCH-U650|SCH-U660|SCH-U700|SCH-U740|SCH-U750|SCH-U810|SCH-U820|SCH-U900|SCH-U940|SCH-U960|SCS-26UC|SGH-A107|SGH-A117|SGH-A127|SGH-A137|SGH-A157|SGH-A167|SGH-A177|SGH-A187|SGH-A197|SGH-A227|SGH-A237|SGH-A257|SGH-A437|SGH-A517|SGH-A597|SGH-A637|SGH-A657|SGH-A667|SGH-A687|SGH-A697|SGH-A707|SGH-A717|SGH-A727|SGH-A737|SGH-A747|SGH-A767|SGH-A777|SGH-A797|SGH-A817|SGH-A827|SGH-A837|SGH-A847|SGH-A867|SGH-A877|SGH-A887|SGH-A897|SGH-A927|SGH-B100|SGH-B130|SGH-B200|SGH-B220|SGH-C100|SGH-C110|SGH-C120|SGH-C130|SGH-C140|SGH-C160|SGH-C170|SGH-C180|SGH-C200|SGH-C207|SGH-C210|SGH-C225|SGH-C230|SGH-C417|SGH-C450|SGH-D307|SGH-D347|SGH-D357|SGH-D407|SGH-D415|SGH-D780|SGH-D807|SGH-D980|SGH-E105|SGH-E200|SGH-E315|SGH-E316|SGH-E317|SGH-E335|SGH-E590|SGH-E635|SGH-E715|SGH-E890|SGH-F300|SGH-F480|SGH-I200|SGH-I300|SGH-I320|SGH-I550|SGH-I577|SGH-I600|SGH-I607|SGH-I617|SGH-I627|SGH-I637|SGH-I677|SGH-I700|SGH-I717|SGH-I727|SGH-i747M|SGH-I777|SGH-I780|SGH-I827|SGH-I847|SGH-I857|SGH-I896|SGH-I897|SGH-I900|SGH-I907|SGH-I917|SGH-I927|SGH-I937|SGH-I997|SGH-J150|SGH-J200|SGH-L170|SGH-L700|SGH-M110|SGH-M150|SGH-M200|SGH-N105|SGH-N500|SGH-N600|SGH-N620|SGH-N625|SGH-N700|SGH-N710|SGH-P107|SGH-P207|SGH-P300|SGH-P310|SGH-P520|SGH-P735|SGH-P777|SGH-Q105|SGH-R210|SGH-R220|SGH-R225|SGH-S105|SGH-S307|SGH-T109|SGH-T119|SGH-T139|SGH-T209|SGH-T219|SGH-T229|SGH-T239|SGH-T249|SGH-T259|SGH-T309|SGH-T319|SGH-T329|SGH-T339|SGH-T349|SGH-T359|SGH-T369|SGH-T379|SGH-T409|SGH-T429|SGH-T439|SGH-T459|SGH-T469|SGH-T479|SGH-T499|SGH-T509|SGH-T519|SGH-T539|SGH-T559|SGH-T589|SGH-T609|SGH-T619|SGH-T629|SGH-T639|SGH-T659|SGH-T669|SGH-T679|SGH-T709|SGH-T719|SGH-T729|SGH-T739|SGH-T746|SGH-T749|SGH-T759|SGH-T769|SGH-T809|SGH-T819|SGH-T839|SGH-T919|SGH-T929|SGH-T939|SGH-T959|SGH-T989|SGH-U100|SGH-U200|SGH-U800|SGH-V205|SGH-V206|SGH-X100|SGH-X105|SGH-X120|SGH-X140|SGH-X426|SGH-X427|SGH-X475|SGH-X495|SGH-X497|SGH-X507|SGH-X600|SGH-X610|SGH-X620|SGH-X630|SGH-X700|SGH-X820|SGH-X890|SGH-Z130|SGH-Z150|SGH-Z170|SGH-ZX10|SGH-ZX20|SHW-M110|SPH-A120|SPH-A400|SPH-A420|SPH-A460|SPH-A500|SPH-A560|SPH-A600|SPH-A620|SPH-A660|SPH-A700|SPH-A740|SPH-A760|SPH-A790|SPH-A800|SPH-A820|SPH-A840|SPH-A880|SPH-A900|SPH-A940|SPH-A960|SPH-D600|SPH-D700|SPH-D710|SPH-D720|SPH-I300|SPH-I325|SPH-I330|SPH-I350|SPH-I500|SPH-I600|SPH-I700|SPH-L700|SPH-M100|SPH-M220|SPH-M240|SPH-M300|SPH-M305|SPH-M320|SPH-M330|SPH-M350|SPH-M360|SPH-M370|SPH-M380|SPH-M510|SPH-M540|SPH-M550|SPH-M560|SPH-M570|SPH-M580|SPH-M610|SPH-M620|SPH-M630|SPH-M800|SPH-M810|SPH-M850|SPH-M900|SPH-M910|SPH-M920|SPH-M930|SPH-N100|SPH-N200|SPH-N240|SPH-N300|SPH-N400|SPH-Z400|SWC-E100|SCH-i909|GT-N7100|GT-N7105|SCH-I535|SM-N900A|SGH-I317|SGH-T999L|GT-S5360B|GT-I8262|GT-S6802|GT-S6312|GT-S6310|GT-S5312|GT-S5310|GT-I9105|GT-I8510|GT-S6790N|SM-G7105|SM-N9005|GT-S5301|GT-I9295|GT-I9195|SM-C101|GT-S7392|GT-S7560|GT-B7610|GT-I5510|GT-S7582|GT-S7530E|GT-I8750|SM-G9006V|SM-G9008V|SM-G9009D|SM-G900A|SM-G900D|SM-G900F|SM-G900H|SM-G900I|SM-G900J|SM-G900K|SM-G900L|SM-G900M|SM-G900P|SM-G900R4|SM-G900S|SM-G900T|SM-G900V|SM-G900W8|SHV-E160K|SCH-P709|SCH-P729|SM-T2558|GT-I9205|SM-G9350|SM-J120F|SM-G920F|SM-G920V|SM-G930F|SM-N910C","LG":"\\bLG\\b;|LG[- ]?(C800|C900|E400|E610|E900|E-900|F160|F180K|F180L|F180S|730|855|L160|LS740|LS840|LS970|LU6200|MS690|MS695|MS770|MS840|MS870|MS910|P500|P700|P705|VM696|AS680|AS695|AX840|C729|E970|GS505|272|C395|E739BK|E960|L55C|L75C|LS696|LS860|P769BK|P350|P500|P509|P870|UN272|US730|VS840|VS950|LN272|LN510|LS670|LS855|LW690|MN270|MN510|P509|P769|P930|UN200|UN270|UN510|UN610|US670|US740|US760|UX265|UX840|VN271|VN530|VS660|VS700|VS740|VS750|VS910|VS920|VS930|VX9200|VX11000|AX840A|LW770|P506|P925|P999|E612|D955|D802|MS323)","Sony":"SonyST|SonyLT|SonyEricsson|SonyEricssonLT15iv|LT18i|E10i|LT28h|LT26w|SonyEricssonMT27i|C5303|C6902|C6903|C6906|C6943|D2533","Asus":"Asus.*Galaxy|PadFone.*Mobile","NokiaLumia":"Lumia [0-9]{3,4}","Micromax":"Micromax.*\\b(A210|A92|A88|A72|A111|A110Q|A115|A116|A110|A90S|A26|A51|A35|A54|A25|A27|A89|A68|A65|A57|A90)\\b","Palm":"PalmSource|Palm","Vertu":"Vertu|Vertu.*Ltd|Vertu.*Ascent|Vertu.*Ayxta|Vertu.*Constellation(F|Quest)?|Vertu.*Monika|Vertu.*Signature","Pantech":"PANTECH|IM-A850S|IM-A840S|IM-A830L|IM-A830K|IM-A830S|IM-A820L|IM-A810K|IM-A810S|IM-A800S|IM-T100K|IM-A725L|IM-A780L|IM-A775C|IM-A770K|IM-A760S|IM-A750K|IM-A740S|IM-A730S|IM-A720L|IM-A710K|IM-A690L|IM-A690S|IM-A650S|IM-A630K|IM-A600S|VEGA PTL21|PT003|P8010|ADR910L|P6030|P6020|P9070|P4100|P9060|P5000|CDM8992|TXT8045|ADR8995|IS11PT|P2030|P6010|P8000|PT002|IS06|CDM8999|P9050|PT001|TXT8040|P2020|P9020|P2000|P7040|P7000|C790","Fly":"IQ230|IQ444|IQ450|IQ440|IQ442|IQ441|IQ245|IQ256|IQ236|IQ255|IQ235|IQ245|IQ275|IQ240|IQ285|IQ280|IQ270|IQ260|IQ250","Wiko":"KITE 4G|HIGHWAY|GETAWAY|STAIRWAY|DARKSIDE|DARKFULL|DARKNIGHT|DARKMOON|SLIDE|WAX 4G|RAINBOW|BLOOM|SUNSET|GOA(?!nna)|LENNY|BARRY|IGGY|OZZY|CINK FIVE|CINK PEAX|CINK PEAX 2|CINK SLIM|CINK SLIM 2|CINK +|CINK KING|CINK PEAX|CINK SLIM|SUBLIM","iMobile":"i-mobile (IQ|i-STYLE|idea|ZAA|Hitz)","SimValley":"\\b(SP-80|XT-930|SX-340|XT-930|SX-310|SP-360|SP60|SPT-800|SP-120|SPT-800|SP-140|SPX-5|SPX-8|SP-100|SPX-8|SPX-12)\\b","Wolfgang":"AT-B24D|AT-AS50HD|AT-AS40W|AT-AS55HD|AT-AS45q2|AT-B26D|AT-AS50Q","Alcatel":"Alcatel","Nintendo":"Nintendo 3DS","Amoi":"Amoi","INQ":"INQ","GenericPhone":"Tapatalk|PDA;|SAGEM|\\bmmp\\b|pocket|\\bpsp\\b|symbian|Smartphone|smartfon|treo|up.browser|up.link|vodafone|\\bwap\\b|nokia|Series40|Series60|S60|SonyEricsson|N900|MAUI.*WAP.*Browser"},"tablets":{"iPad":"iPad|iPad.*Mobile","NexusTablet":"Android.*Nexus[\\s]+(7|9|10)","SamsungTablet":"SAMSUNG.*Tablet|Galaxy.*Tab|SC-01C|GT-P1000|GT-P1003|GT-P1010|GT-P3105|GT-P6210|GT-P6800|GT-P6810|GT-P7100|GT-P7300|GT-P7310|GT-P7500|GT-P7510|SCH-I800|SCH-I815|SCH-I905|SGH-I957|SGH-I987|SGH-T849|SGH-T859|SGH-T869|SPH-P100|GT-P3100|GT-P3108|GT-P3110|GT-P5100|GT-P5110|GT-P6200|GT-P7320|GT-P7511|GT-N8000|GT-P8510|SGH-I497|SPH-P500|SGH-T779|SCH-I705|SCH-I915|GT-N8013|GT-P3113|GT-P5113|GT-P8110|GT-N8010|GT-N8005|GT-N8020|GT-P1013|GT-P6201|GT-P7501|GT-N5100|GT-N5105|GT-N5110|SHV-E140K|SHV-E140L|SHV-E140S|SHV-E150S|SHV-E230K|SHV-E230L|SHV-E230S|SHW-M180K|SHW-M180L|SHW-M180S|SHW-M180W|SHW-M300W|SHW-M305W|SHW-M380K|SHW-M380S|SHW-M380W|SHW-M430W|SHW-M480K|SHW-M480S|SHW-M480W|SHW-M485W|SHW-M486W|SHW-M500W|GT-I9228|SCH-P739|SCH-I925|GT-I9200|GT-P5200|GT-P5210|GT-P5210X|SM-T311|SM-T310|SM-T310X|SM-T210|SM-T210R|SM-T211|SM-P600|SM-P601|SM-P605|SM-P900|SM-P901|SM-T217|SM-T217A|SM-T217S|SM-P6000|SM-T3100|SGH-I467|XE500|SM-T110|GT-P5220|GT-I9200X|GT-N5110X|GT-N5120|SM-P905|SM-T111|SM-T2105|SM-T315|SM-T320|SM-T320X|SM-T321|SM-T520|SM-T525|SM-T530NU|SM-T230NU|SM-T330NU|SM-T900|XE500T1C|SM-P605V|SM-P905V|SM-T337V|SM-T537V|SM-T707V|SM-T807V|SM-P600X|SM-P900X|SM-T210X|SM-T230|SM-T230X|SM-T325|GT-P7503|SM-T531|SM-T330|SM-T530|SM-T705|SM-T705C|SM-T535|SM-T331|SM-T800|SM-T700|SM-T537|SM-T807|SM-P907A|SM-T337A|SM-T537A|SM-T707A|SM-T807A|SM-T237|SM-T807P|SM-P607T|SM-T217T|SM-T337T|SM-T807T|SM-T116NQ|SM-P550|SM-T350|SM-T550|SM-T9000|SM-P9000|SM-T705Y|SM-T805|GT-P3113|SM-T710|SM-T810|SM-T815|SM-T360|SM-T533|SM-T113|SM-T335|SM-T715|SM-T560|SM-T670|SM-T677|SM-T377|SM-T567|SM-T357T|SM-T555|SM-T561|SM-T713|SM-T719|SM-T813|SM-T819|SM-T580|SM-T355Y|SM-T280|SM-T817A|SM-T820|SM-W700|SM-P580|SM-T587","Kindle":"Kindle|Silk.*Accelerated|Android.*\\b(KFOT|KFTT|KFJWI|KFJWA|KFOTE|KFSOWI|KFTHWI|KFTHWA|KFAPWI|KFAPWA|WFJWAE|KFSAWA|KFSAWI|KFASWI|KFARWI|KFFOWI|KFGIWI|KFMEWI)\\b|Android.*Silk\/[0-9.]+ like Chrome\/[0-9.]+ (?!Mobile)","SurfaceTablet":"Windows NT [0-9.]+; ARM;.*(Tablet|ARMBJS)","HPTablet":"HP Slate (7|8|10)|HP ElitePad 900|hp-tablet|EliteBook.*Touch|HP 8|Slate 21|HP SlateBook 10","AsusTablet":"^.*PadFone((?!Mobile).)*$|Transformer|TF101|TF101G|TF300T|TF300TG|TF300TL|TF700T|TF700KL|TF701T|TF810C|ME171|ME301T|ME302C|ME371MG|ME370T|ME372MG|ME172V|ME173X|ME400C|Slider SL101|\\bK00F\\b|\\bK00C\\b|\\bK00E\\b|\\bK00L\\b|TX201LA|ME176C|ME102A|\\bM80TA\\b|ME372CL|ME560CG|ME372CG|ME302KL| K010 | K011 | K017 | K01E |ME572C|ME103K|ME170C|ME171C|\\bME70C\\b|ME581C|ME581CL|ME8510C|ME181C|P01Y|PO1MA|P01Z","BlackBerryTablet":"PlayBook|RIM Tablet","HTCtablet":"HTC_Flyer_P512|HTC Flyer|HTC Jetstream|HTC-P715a|HTC EVO View 4G|PG41200|PG09410","MotorolaTablet":"xoom|sholest|MZ615|MZ605|MZ505|MZ601|MZ602|MZ603|MZ604|MZ606|MZ607|MZ608|MZ609|MZ615|MZ616|MZ617","NookTablet":"Android.*Nook|NookColor|nook browser|BNRV200|BNRV200A|BNTV250|BNTV250A|BNTV400|BNTV600|LogicPD Zoom2","AcerTablet":"Android.*; \\b(A100|A101|A110|A200|A210|A211|A500|A501|A510|A511|A700|A701|W500|W500P|W501|W501P|W510|W511|W700|G100|G100W|B1-A71|B1-710|B1-711|A1-810|A1-811|A1-830)\\b|W3-810|\\bA3-A10\\b|\\bA3-A11\\b|\\bA3-A20\\b|\\bA3-A30","ToshibaTablet":"Android.*(AT100|AT105|AT200|AT205|AT270|AT275|AT300|AT305|AT1S5|AT500|AT570|AT700|AT830)|TOSHIBA.*FOLIO","LGTablet":"\\bL-06C|LG-V909|LG-V900|LG-V700|LG-V510|LG-V500|LG-V410|LG-V400|LG-VK810\\b","FujitsuTablet":"Android.*\\b(F-01D|F-02F|F-05E|F-10D|M532|Q572)\\b","PrestigioTablet":"PMP3170B|PMP3270B|PMP3470B|PMP7170B|PMP3370B|PMP3570C|PMP5870C|PMP3670B|PMP5570C|PMP5770D|PMP3970B|PMP3870C|PMP5580C|PMP5880D|PMP5780D|PMP5588C|PMP7280C|PMP7280C3G|PMP7280|PMP7880D|PMP5597D|PMP5597|PMP7100D|PER3464|PER3274|PER3574|PER3884|PER5274|PER5474|PMP5097CPRO|PMP5097|PMP7380D|PMP5297C|PMP5297C_QUAD|PMP812E|PMP812E3G|PMP812F|PMP810E|PMP880TD|PMT3017|PMT3037|PMT3047|PMT3057|PMT7008|PMT5887|PMT5001|PMT5002","LenovoTablet":"Lenovo TAB|Idea(Tab|Pad)( A1|A10| K1|)|ThinkPad([ ]+)?Tablet|YT3-X90L|YT3-X90F|YT3-X90X|Lenovo.*(S2109|S2110|S5000|S6000|K3011|A3000|A3500|A1000|A2107|A2109|A1107|A5500|A7600|B6000|B8000|B8080)(-|)(FL|F|HV|H|)","DellTablet":"Venue 11|Venue 8|Venue 7|Dell Streak 10|Dell Streak 7","YarvikTablet":"Android.*\\b(TAB210|TAB211|TAB224|TAB250|TAB260|TAB264|TAB310|TAB360|TAB364|TAB410|TAB411|TAB420|TAB424|TAB450|TAB460|TAB461|TAB464|TAB465|TAB467|TAB468|TAB07-100|TAB07-101|TAB07-150|TAB07-151|TAB07-152|TAB07-200|TAB07-201-3G|TAB07-210|TAB07-211|TAB07-212|TAB07-214|TAB07-220|TAB07-400|TAB07-485|TAB08-150|TAB08-200|TAB08-201-3G|TAB08-201-30|TAB09-100|TAB09-211|TAB09-410|TAB10-150|TAB10-201|TAB10-211|TAB10-400|TAB10-410|TAB13-201|TAB274EUK|TAB275EUK|TAB374EUK|TAB462EUK|TAB474EUK|TAB9-200)\\b","MedionTablet":"Android.*\\bOYO\\b|LIFE.*(P9212|P9514|P9516|S9512)|LIFETAB","ArnovaTablet":"97G4|AN10G2|AN7bG3|AN7fG3|AN8G3|AN8cG3|AN7G3|AN9G3|AN7dG3|AN7dG3ST|AN7dG3ChildPad|AN10bG3|AN10bG3DT|AN9G2","IntensoTablet":"INM8002KP|INM1010FP|INM805ND|Intenso Tab|TAB1004","IRUTablet":"M702pro","MegafonTablet":"MegaFon V9|\\bZTE V9\\b|Android.*\\bMT7A\\b","EbodaTablet":"E-Boda (Supreme|Impresspeed|Izzycomm|Essential)","AllViewTablet":"Allview.*(Viva|Alldro|City|Speed|All TV|Frenzy|Quasar|Shine|TX1|AX1|AX2)","ArchosTablet":"\\b(101G9|80G9|A101IT)\\b|Qilive 97R|Archos5|\\bARCHOS (70|79|80|90|97|101|FAMILYPAD|)(b|c|)(G10| Cobalt| TITANIUM(HD|)| Xenon| Neon|XSK| 2| XS 2| PLATINUM| CARBON|GAMEPAD)\\b","AinolTablet":"NOVO7|NOVO8|NOVO10|Novo7Aurora|Novo7Basic|NOVO7PALADIN|novo9-Spark","NokiaLumiaTablet":"Lumia 2520","SonyTablet":"Sony.*Tablet|Xperia Tablet|Sony Tablet S|SO-03E|SGPT12|SGPT13|SGPT114|SGPT121|SGPT122|SGPT123|SGPT111|SGPT112|SGPT113|SGPT131|SGPT132|SGPT133|SGPT211|SGPT212|SGPT213|SGP311|SGP312|SGP321|EBRD1101|EBRD1102|EBRD1201|SGP351|SGP341|SGP511|SGP512|SGP521|SGP541|SGP551|SGP621|SGP612|SOT31","PhilipsTablet":"\\b(PI2010|PI3000|PI3100|PI3105|PI3110|PI3205|PI3210|PI3900|PI4010|PI7000|PI7100)\\b","CubeTablet":"Android.*(K8GT|U9GT|U10GT|U16GT|U17GT|U18GT|U19GT|U20GT|U23GT|U30GT)|CUBE U8GT","CobyTablet":"MID1042|MID1045|MID1125|MID1126|MID7012|MID7014|MID7015|MID7034|MID7035|MID7036|MID7042|MID7048|MID7127|MID8042|MID8048|MID8127|MID9042|MID9740|MID9742|MID7022|MID7010","MIDTablet":"M9701|M9000|M9100|M806|M1052|M806|T703|MID701|MID713|MID710|MID727|MID760|MID830|MID728|MID933|MID125|MID810|MID732|MID120|MID930|MID800|MID731|MID900|MID100|MID820|MID735|MID980|MID130|MID833|MID737|MID960|MID135|MID860|MID736|MID140|MID930|MID835|MID733|MID4X10","MSITablet":"MSI \\b(Primo 73K|Primo 73L|Primo 81L|Primo 77|Primo 93|Primo 75|Primo 76|Primo 73|Primo 81|Primo 91|Primo 90|Enjoy 71|Enjoy 7|Enjoy 10)\\b","SMiTTablet":"Android.*(\\bMID\\b|MID-560|MTV-T1200|MTV-PND531|MTV-P1101|MTV-PND530)","RockChipTablet":"Android.*(RK2818|RK2808A|RK2918|RK3066)|RK2738|RK2808A","FlyTablet":"IQ310|Fly Vision","bqTablet":"Android.*(bq)?.*(Elcano|Curie|Edison|Maxwell|Kepler|Pascal|Tesla|Hypatia|Platon|Newton|Livingstone|Cervantes|Avant|Aquaris [E|M]10)|Maxwell.*Lite|Maxwell.*Plus","HuaweiTablet":"MediaPad|MediaPad 7 Youth|IDEOS S7|S7-201c|S7-202u|S7-101|S7-103|S7-104|S7-105|S7-106|S7-201|S7-Slim","NecTablet":"\\bN-06D|\\bN-08D","PantechTablet":"Pantech.*P4100","BronchoTablet":"Broncho.*(N701|N708|N802|a710)","VersusTablet":"TOUCHPAD.*[78910]|\\bTOUCHTAB\\b","ZyncTablet":"z1000|Z99 2G|z99|z930|z999|z990|z909|Z919|z900","PositivoTablet":"TB07STA|TB10STA|TB07FTA|TB10FTA","NabiTablet":"Android.*\\bNabi","KoboTablet":"Kobo Touch|\\bK080\\b|\\bVox\\b Build|\\bArc\\b Build","DanewTablet":"DSlide.*\\b(700|701R|702|703R|704|802|970|971|972|973|974|1010|1012)\\b","TexetTablet":"NaviPad|TB-772A|TM-7045|TM-7055|TM-9750|TM-7016|TM-7024|TM-7026|TM-7041|TM-7043|TM-7047|TM-8041|TM-9741|TM-9747|TM-9748|TM-9751|TM-7022|TM-7021|TM-7020|TM-7011|TM-7010|TM-7023|TM-7025|TM-7037W|TM-7038W|TM-7027W|TM-9720|TM-9725|TM-9737W|TM-1020|TM-9738W|TM-9740|TM-9743W|TB-807A|TB-771A|TB-727A|TB-725A|TB-719A|TB-823A|TB-805A|TB-723A|TB-715A|TB-707A|TB-705A|TB-709A|TB-711A|TB-890HD|TB-880HD|TB-790HD|TB-780HD|TB-770HD|TB-721HD|TB-710HD|TB-434HD|TB-860HD|TB-840HD|TB-760HD|TB-750HD|TB-740HD|TB-730HD|TB-722HD|TB-720HD|TB-700HD|TB-500HD|TB-470HD|TB-431HD|TB-430HD|TB-506|TB-504|TB-446|TB-436|TB-416|TB-146SE|TB-126SE","PlaystationTablet":"Playstation.*(Portable|Vita)","TrekstorTablet":"ST10416-1|VT10416-1|ST70408-1|ST702xx-1|ST702xx-2|ST80208|ST97216|ST70104-2|VT10416-2|ST10216-2A|SurfTab","PyleAudioTablet":"\\b(PTBL10CEU|PTBL10C|PTBL72BC|PTBL72BCEU|PTBL7CEU|PTBL7C|PTBL92BC|PTBL92BCEU|PTBL9CEU|PTBL9CUK|PTBL9C)\\b","AdvanTablet":"Android.* \\b(E3A|T3X|T5C|T5B|T3E|T3C|T3B|T1J|T1F|T2A|T1H|T1i|E1C|T1-E|T5-A|T4|E1-B|T2Ci|T1-B|T1-D|O1-A|E1-A|T1-A|T3A|T4i)\\b ","DanyTechTablet":"Genius Tab G3|Genius Tab S2|Genius Tab Q3|Genius Tab G4|Genius Tab Q4|Genius Tab G-II|Genius TAB GII|Genius TAB GIII|Genius Tab S1","GalapadTablet":"Android.*\\bG1\\b","MicromaxTablet":"Funbook|Micromax.*\\b(P250|P560|P360|P362|P600|P300|P350|P500|P275)\\b","KarbonnTablet":"Android.*\\b(A39|A37|A34|ST8|ST10|ST7|Smart Tab3|Smart Tab2)\\b","AllFineTablet":"Fine7 Genius|Fine7 Shine|Fine7 Air|Fine8 Style|Fine9 More|Fine10 Joy|Fine11 Wide","PROSCANTablet":"\\b(PEM63|PLT1023G|PLT1041|PLT1044|PLT1044G|PLT1091|PLT4311|PLT4311PL|PLT4315|PLT7030|PLT7033|PLT7033D|PLT7035|PLT7035D|PLT7044K|PLT7045K|PLT7045KB|PLT7071KG|PLT7072|PLT7223G|PLT7225G|PLT7777G|PLT7810K|PLT7849G|PLT7851G|PLT7852G|PLT8015|PLT8031|PLT8034|PLT8036|PLT8080K|PLT8082|PLT8088|PLT8223G|PLT8234G|PLT8235G|PLT8816K|PLT9011|PLT9045K|PLT9233G|PLT9735|PLT9760G|PLT9770G)\\b","YONESTablet":"BQ1078|BC1003|BC1077|RK9702|BC9730|BC9001|IT9001|BC7008|BC7010|BC708|BC728|BC7012|BC7030|BC7027|BC7026","ChangJiaTablet":"TPC7102|TPC7103|TPC7105|TPC7106|TPC7107|TPC7201|TPC7203|TPC7205|TPC7210|TPC7708|TPC7709|TPC7712|TPC7110|TPC8101|TPC8103|TPC8105|TPC8106|TPC8203|TPC8205|TPC8503|TPC9106|TPC9701|TPC97101|TPC97103|TPC97105|TPC97106|TPC97111|TPC97113|TPC97203|TPC97603|TPC97809|TPC97205|TPC10101|TPC10103|TPC10106|TPC10111|TPC10203|TPC10205|TPC10503","GUTablet":"TX-A1301|TX-M9002|Q702|kf026","PointOfViewTablet":"TAB-P506|TAB-navi-7-3G-M|TAB-P517|TAB-P-527|TAB-P701|TAB-P703|TAB-P721|TAB-P731N|TAB-P741|TAB-P825|TAB-P905|TAB-P925|TAB-PR945|TAB-PL1015|TAB-P1025|TAB-PI1045|TAB-P1325|TAB-PROTAB[0-9]+|TAB-PROTAB25|TAB-PROTAB26|TAB-PROTAB27|TAB-PROTAB26XL|TAB-PROTAB2-IPS9|TAB-PROTAB30-IPS9|TAB-PROTAB25XXL|TAB-PROTAB26-IPS10|TAB-PROTAB30-IPS10","OvermaxTablet":"OV-(SteelCore|NewBase|Basecore|Baseone|Exellen|Quattor|EduTab|Solution|ACTION|BasicTab|TeddyTab|MagicTab|Stream|TB-08|TB-09)","HCLTablet":"HCL.*Tablet|Connect-3G-2.0|Connect-2G-2.0|ME Tablet U1|ME Tablet U2|ME Tablet G1|ME Tablet X1|ME Tablet Y2|ME Tablet Sync","DPSTablet":"DPS Dream 9|DPS Dual 7","VistureTablet":"V97 HD|i75 3G|Visture V4( HD)?|Visture V5( HD)?|Visture V10","CrestaTablet":"CTP(-)?810|CTP(-)?818|CTP(-)?828|CTP(-)?838|CTP(-)?888|CTP(-)?978|CTP(-)?980|CTP(-)?987|CTP(-)?988|CTP(-)?989","MediatekTablet":"\\bMT8125|MT8389|MT8135|MT8377\\b","ConcordeTablet":"Concorde([ ]+)?Tab|ConCorde ReadMan","GoCleverTablet":"GOCLEVER TAB|A7GOCLEVER|M1042|M7841|M742|R1042BK|R1041|TAB A975|TAB A7842|TAB A741|TAB A741L|TAB M723G|TAB M721|TAB A1021|TAB I921|TAB R721|TAB I720|TAB T76|TAB R70|TAB R76.2|TAB R106|TAB R83.2|TAB M813G|TAB I721|GCTA722|TAB I70|TAB I71|TAB S73|TAB R73|TAB R74|TAB R93|TAB R75|TAB R76.1|TAB A73|TAB A93|TAB A93.2|TAB T72|TAB R83|TAB R974|TAB R973|TAB A101|TAB A103|TAB A104|TAB A104.2|R105BK|M713G|A972BK|TAB A971|TAB R974.2|TAB R104|TAB R83.3|TAB A1042","ModecomTablet":"FreeTAB 9000|FreeTAB 7.4|FreeTAB 7004|FreeTAB 7800|FreeTAB 2096|FreeTAB 7.5|FreeTAB 1014|FreeTAB 1001 |FreeTAB 8001|FreeTAB 9706|FreeTAB 9702|FreeTAB 7003|FreeTAB 7002|FreeTAB 1002|FreeTAB 7801|FreeTAB 1331|FreeTAB 1004|FreeTAB 8002|FreeTAB 8014|FreeTAB 9704|FreeTAB 1003","VoninoTablet":"\\b(Argus[ _]?S|Diamond[ _]?79HD|Emerald[ _]?78E|Luna[ _]?70C|Onyx[ _]?S|Onyx[ _]?Z|Orin[ _]?HD|Orin[ _]?S|Otis[ _]?S|SpeedStar[ _]?S|Magnet[ _]?M9|Primus[ _]?94[ _]?3G|Primus[ _]?94HD|Primus[ _]?QS|Android.*\\bQ8\\b|Sirius[ _]?EVO[ _]?QS|Sirius[ _]?QS|Spirit[ _]?S)\\b","ECSTablet":"V07OT2|TM105A|S10OT1|TR10CS1","StorexTablet":"eZee[_']?(Tab|Go)[0-9]+|TabLC7|Looney Tunes Tab","VodafoneTablet":"SmartTab([ ]+)?[0-9]+|SmartTabII10|SmartTabII7|VF-1497","EssentielBTablet":"Smart[ ']?TAB[ ]+?[0-9]+|Family[ ']?TAB2","RossMoorTablet":"RM-790|RM-997|RMD-878G|RMD-974R|RMT-705A|RMT-701|RME-601|RMT-501|RMT-711","iMobileTablet":"i-mobile i-note","TolinoTablet":"tolino tab [0-9.]+|tolino shine","AudioSonicTablet":"\\bC-22Q|T7-QC|T-17B|T-17P\\b","AMPETablet":"Android.* A78 ","SkkTablet":"Android.* (SKYPAD|PHOENIX|CYCLOPS)","TecnoTablet":"TECNO P9","JXDTablet":"Android.* \\b(F3000|A3300|JXD5000|JXD3000|JXD2000|JXD300B|JXD300|S5800|S7800|S602b|S5110b|S7300|S5300|S602|S603|S5100|S5110|S601|S7100a|P3000F|P3000s|P101|P200s|P1000m|P200m|P9100|P1000s|S6600b|S908|P1000|P300|S18|S6600|S9100)\\b","iJoyTablet":"Tablet (Spirit 7|Essentia|Galatea|Fusion|Onix 7|Landa|Titan|Scooby|Deox|Stella|Themis|Argon|Unique 7|Sygnus|Hexen|Finity 7|Cream|Cream X2|Jade|Neon 7|Neron 7|Kandy|Scape|Saphyr 7|Rebel|Biox|Rebel|Rebel 8GB|Myst|Draco 7|Myst|Tab7-004|Myst|Tadeo Jones|Tablet Boing|Arrow|Draco Dual Cam|Aurix|Mint|Amity|Revolution|Finity 9|Neon 9|T9w|Amity 4GB Dual Cam|Stone 4GB|Stone 8GB|Andromeda|Silken|X2|Andromeda II|Halley|Flame|Saphyr 9,7|Touch 8|Planet|Triton|Unique 10|Hexen 10|Memphis 4GB|Memphis 8GB|Onix 10)","FX2Tablet":"FX2 PAD7|FX2 PAD10","XoroTablet":"KidsPAD 701|PAD[ ]?712|PAD[ ]?714|PAD[ ]?716|PAD[ ]?717|PAD[ ]?718|PAD[ ]?720|PAD[ ]?721|PAD[ ]?722|PAD[ ]?790|PAD[ ]?792|PAD[ ]?900|PAD[ ]?9715D|PAD[ ]?9716DR|PAD[ ]?9718DR|PAD[ ]?9719QR|PAD[ ]?9720QR|TelePAD1030|Telepad1032|TelePAD730|TelePAD731|TelePAD732|TelePAD735Q|TelePAD830|TelePAD9730|TelePAD795|MegaPAD 1331|MegaPAD 1851|MegaPAD 2151","ViewsonicTablet":"ViewPad 10pi|ViewPad 10e|ViewPad 10s|ViewPad E72|ViewPad7|ViewPad E100|ViewPad 7e|ViewSonic VB733|VB100a","OdysTablet":"LOOX|XENO10|ODYS[ -](Space|EVO|Xpress|NOON)|\\bXELIO\\b|Xelio10Pro|XELIO7PHONETAB|XELIO10EXTREME|XELIOPT2|NEO_QUAD10","CaptivaTablet":"CAPTIVA PAD","IconbitTablet":"NetTAB|NT-3702|NT-3702S|NT-3702S|NT-3603P|NT-3603P|NT-0704S|NT-0704S|NT-3805C|NT-3805C|NT-0806C|NT-0806C|NT-0909T|NT-0909T|NT-0907S|NT-0907S|NT-0902S|NT-0902S","TeclastTablet":"T98 4G|\\bP80\\b|\\bX90HD\\b|X98 Air|X98 Air 3G|\\bX89\\b|P80 3G|\\bX80h\\b|P98 Air|\\bX89HD\\b|P98 3G|\\bP90HD\\b|P89 3G|X98 3G|\\bP70h\\b|P79HD 3G|G18d 3G|\\bP79HD\\b|\\bP89s\\b|\\bA88\\b|\\bP10HD\\b|\\bP19HD\\b|G18 3G|\\bP78HD\\b|\\bA78\\b|\\bP75\\b|G17s 3G|G17h 3G|\\bP85t\\b|\\bP90\\b|\\bP11\\b|\\bP98t\\b|\\bP98HD\\b|\\bG18d\\b|\\bP85s\\b|\\bP11HD\\b|\\bP88s\\b|\\bA80HD\\b|\\bA80se\\b|\\bA10h\\b|\\bP89\\b|\\bP78s\\b|\\bG18\\b|\\bP85\\b|\\bA70h\\b|\\bA70\\b|\\bG17\\b|\\bP18\\b|\\bA80s\\b|\\bA11s\\b|\\bP88HD\\b|\\bA80h\\b|\\bP76s\\b|\\bP76h\\b|\\bP98\\b|\\bA10HD\\b|\\bP78\\b|\\bP88\\b|\\bA11\\b|\\bA10t\\b|\\bP76a\\b|\\bP76t\\b|\\bP76e\\b|\\bP85HD\\b|\\bP85a\\b|\\bP86\\b|\\bP75HD\\b|\\bP76v\\b|\\bA12\\b|\\bP75a\\b|\\bA15\\b|\\bP76Ti\\b|\\bP81HD\\b|\\bA10\\b|\\bT760VE\\b|\\bT720HD\\b|\\bP76\\b|\\bP73\\b|\\bP71\\b|\\bP72\\b|\\bT720SE\\b|\\bC520Ti\\b|\\bT760\\b|\\bT720VE\\b|T720-3GE|T720-WiFi","OndaTablet":"\\b(V975i|Vi30|VX530|V701|Vi60|V701s|Vi50|V801s|V719|Vx610w|VX610W|V819i|Vi10|VX580W|Vi10|V711s|V813|V811|V820w|V820|Vi20|V711|VI30W|V712|V891w|V972|V819w|V820w|Vi60|V820w|V711|V813s|V801|V819|V975s|V801|V819|V819|V818|V811|V712|V975m|V101w|V961w|V812|V818|V971|V971s|V919|V989|V116w|V102w|V973|Vi40)\\b[\\s]+","JaytechTablet":"TPC-PA762","BlaupunktTablet":"Endeavour 800NG|Endeavour 1010","DigmaTablet":"\\b(iDx10|iDx9|iDx8|iDx7|iDxD7|iDxD8|iDsQ8|iDsQ7|iDsQ8|iDsD10|iDnD7|3TS804H|iDsQ11|iDj7|iDs10)\\b","EvolioTablet":"ARIA_Mini_wifi|Aria[ _]Mini|Evolio X10|Evolio X7|Evolio X8|\\bEvotab\\b|\\bNeura\\b","LavaTablet":"QPAD E704|\\bIvoryS\\b|E-TAB IVORY|\\bE-TAB\\b","AocTablet":"MW0811|MW0812|MW0922|MTK8382|MW1031|MW0831|MW0821|MW0931|MW0712","MpmanTablet":"MP11 OCTA|MP10 OCTA|MPQC1114|MPQC1004|MPQC994|MPQC974|MPQC973|MPQC804|MPQC784|MPQC780|\\bMPG7\\b|MPDCG75|MPDCG71|MPDC1006|MP101DC|MPDC9000|MPDC905|MPDC706HD|MPDC706|MPDC705|MPDC110|MPDC100|MPDC99|MPDC97|MPDC88|MPDC8|MPDC77|MP709|MID701|MID711|MID170|MPDC703|MPQC1010","CelkonTablet":"CT695|CT888|CT[\\s]?910|CT7 Tab|CT9 Tab|CT3 Tab|CT2 Tab|CT1 Tab|C820|C720|\\bCT-1\\b","WolderTablet":"miTab \\b(DIAMOND|SPACE|BROOKLYN|NEO|FLY|MANHATTAN|FUNK|EVOLUTION|SKY|GOCAR|IRON|GENIUS|POP|MINT|EPSILON|BROADWAY|JUMP|HOP|LEGEND|NEW AGE|LINE|ADVANCE|FEEL|FOLLOW|LIKE|LINK|LIVE|THINK|FREEDOM|CHICAGO|CLEVELAND|BALTIMORE-GH|IOWA|BOSTON|SEATTLE|PHOENIX|DALLAS|IN 101|MasterChef)\\b","MiTablet":"\\bMI PAD\\b|\\bHM NOTE 1W\\b","NibiruTablet":"Nibiru M1|Nibiru Jupiter One","NexoTablet":"NEXO NOVA|NEXO 10|NEXO AVIO|NEXO FREE|NEXO GO|NEXO EVO|NEXO 3G|NEXO SMART|NEXO KIDDO|NEXO MOBI","LeaderTablet":"TBLT10Q|TBLT10I|TBL-10WDKB|TBL-10WDKBO2013|TBL-W230V2|TBL-W450|TBL-W500|SV572|TBLT7I|TBA-AC7-8G|TBLT79|TBL-8W16|TBL-10W32|TBL-10WKB|TBL-W100","UbislateTablet":"UbiSlate[\\s]?7C","PocketBookTablet":"Pocketbook","KocasoTablet":"\\b(TB-1207)\\b","HisenseTablet":"\\b(F5281|E2371)\\b","Hudl":"Hudl HT7S3|Hudl 2","TelstraTablet":"T-Hub2","GenericTablet":"Android.*\\b97D\\b|Tablet(?!.*PC)|BNTV250A|MID-WCDMA|LogicPD Zoom2|\\bA7EB\\b|CatNova8|A1_07|CT704|CT1002|\\bM721\\b|rk30sdk|\\bEVOTAB\\b|M758A|ET904|ALUMIUM10|Smartfren Tab|Endeavour 1010|Tablet-PC-4|Tagi Tab|\\bM6pro\\b|CT1020W|arc 10HD|\\bTP750\\b"},"browsers":{"Chrome":"\\bCrMo\\b|CriOS|Android.*Chrome\/[.0-9]* (Mobile)?","Dolfin":"\\bDolfin\\b","Opera":"Opera.*Mini|Opera.*Mobi|Android.*Opera|Mobile.*OPR\/[0-9.]+|Coast\/[0-9.]+","Skyfire":"Skyfire","Edge":"Mobile Safari\/[.0-9]* Edge","IE":"IEMobile|MSIEMobile","Firefox":"fennec|firefox.*maemo|(Mobile|Tablet).*Firefox|Firefox.*Mobile|FxiOS","Bolt":"bolt","TeaShark":"teashark","Blazer":"Blazer","Safari":"Version.*Mobile.*Safari|Safari.*Mobile|MobileSafari","UCBrowser":"UC.*Browser|UCWEB","baiduboxapp":"baiduboxapp","baidubrowser":"baidubrowser","DiigoBrowser":"DiigoBrowser","Puffin":"Puffin","Mercury":"\\bMercury\\b","ObigoBrowser":"Obigo","NetFront":"NF-Browser","GenericBrowser":"NokiaBrowser|OviBrowser|OneBrowser|TwonkyBeamBrowser|SEMC.*Browser|FlyFlow|Minimo|NetFront|Novarra-Vision|MQQBrowser|MicroMessenger","PaleMoon":"Android.*PaleMoon|Mobile.*PaleMoon"},"os":{"AndroidOS":"Android","BlackBerryOS":"blackberry|\\bBB10\\b|rim tablet os","PalmOS":"PalmOS|avantgo|blazer|elaine|hiptop|palm|plucker|xiino","SymbianOS":"Symbian|SymbOS|Series60|Series40|SYB-[0-9]+|\\bS60\\b","WindowsMobileOS":"Windows CE.*(PPC|Smartphone|Mobile|[0-9]{3}x[0-9]{3})|Window Mobile|Windows Phone [0-9.]+|WCE;","WindowsPhoneOS":"Windows Phone 10.0|Windows Phone 8.1|Windows Phone 8.0|Windows Phone OS|XBLWP7|ZuneWP7|Windows NT 6.[23]; ARM;","iOS":"\\biPhone.*Mobile|\\biPod|\\biPad","MeeGoOS":"MeeGo","MaemoOS":"Maemo","JavaOS":"J2ME\/|\\bMIDP\\b|\\bCLDC\\b","webOS":"webOS|hpwOS","badaOS":"\\bBada\\b","BREWOS":"BREW"},"utilities":{"Bot":"Googlebot|facebookexternalhit|AdsBot-Google|Google Keyword Suggestion|Facebot|YandexBot|YandexMobileBot|bingbot|ia_archiver|AhrefsBot|Ezooms|GSLFbot|WBSearchBot|Twitterbot|TweetmemeBot|Twikle|PaperLiBot|Wotbox|UnwindFetchor|Exabot|MJ12bot|YandexImages|TurnitinBot|Pingdom","MobileBot":"Googlebot-Mobile|AdsBot-Google-Mobile|YahooSeeker\/M1A1-R2D2","DesktopMode":"WPDesktop","TV":"SonyDTV|HbbTV","WebKit":"(webkit)[ \/]([\\w.]+)","Console":"\\b(Nintendo|Nintendo WiiU|Nintendo 3DS|PLAYSTATION|Xbox)\\b","Watch":"SM-V700"}}}
\ No newline at end of file
+{"version":"2.8.26","headerMatch":{"HTTP_ACCEPT":{"matches":["application\/x-obml2d","application\/vnd.rim.html","text\/vnd.wap.wml","application\/vnd.wap.xhtml+xml"]},"HTTP_X_WAP_PROFILE":null,"HTTP_X_WAP_CLIENTID":null,"HTTP_WAP_CONNECTION":null,"HTTP_PROFILE":null,"HTTP_X_OPERAMINI_PHONE_UA":null,"HTTP_X_NOKIA_GATEWAY_ID":null,"HTTP_X_ORANGE_ID":null,"HTTP_X_VODAFONE_3GPDPCONTEXT":null,"HTTP_X_HUAWEI_USERID":null,"HTTP_UA_OS":null,"HTTP_X_MOBILE_GATEWAY":null,"HTTP_X_ATT_DEVICEID":null,"HTTP_UA_CPU":{"matches":["ARM"]}},"uaHttpHeaders":["HTTP_USER_AGENT","HTTP_X_OPERAMINI_PHONE_UA","HTTP_X_DEVICE_USER_AGENT","HTTP_X_ORIGINAL_USER_AGENT","HTTP_X_SKYFIRE_PHONE","HTTP_X_BOLT_PHONE_UA","HTTP_DEVICE_STOCK_UA","HTTP_X_UCBROWSER_DEVICE_UA"],"uaMatch":{"phones":{"iPhone":"\\biPhone\\b|\\biPod\\b","BlackBerry":"BlackBerry|\\bBB10\\b|rim[0-9]+","HTC":"HTC|HTC.*(Sensation|Evo|Vision|Explorer|6800|8100|8900|A7272|S510e|C110e|Legend|Desire|T8282)|APX515CKT|Qtek9090|APA9292KT|HD_mini|Sensation.*Z710e|PG86100|Z715e|Desire.*(A8181|HD)|ADR6200|ADR6400L|ADR6425|001HT|Inspire 4G|Android.*\\bEVO\\b|T-Mobile G1|Z520m","Nexus":"Nexus One|Nexus S|Galaxy.*Nexus|Android.*Nexus.*Mobile|Nexus 4|Nexus 5|Nexus 6","Dell":"Dell.*Streak|Dell.*Aero|Dell.*Venue|DELL.*Venue Pro|Dell Flash|Dell Smoke|Dell Mini 3iX|XCD28|XCD35|\\b001DL\\b|\\b101DL\\b|\\bGS01\\b","Motorola":"Motorola|DROIDX|DROID BIONIC|\\bDroid\\b.*Build|Android.*Xoom|HRI39|MOT-|A1260|A1680|A555|A853|A855|A953|A955|A956|Motorola.*ELECTRIFY|Motorola.*i1|i867|i940|MB200|MB300|MB501|MB502|MB508|MB511|MB520|MB525|MB526|MB611|MB612|MB632|MB810|MB855|MB860|MB861|MB865|MB870|ME501|ME502|ME511|ME525|ME600|ME632|ME722|ME811|ME860|ME863|ME865|MT620|MT710|MT716|MT720|MT810|MT870|MT917|Motorola.*TITANIUM|WX435|WX445|XT300|XT301|XT311|XT316|XT317|XT319|XT320|XT390|XT502|XT530|XT531|XT532|XT535|XT603|XT610|XT611|XT615|XT681|XT701|XT702|XT711|XT720|XT800|XT806|XT860|XT862|XT875|XT882|XT883|XT894|XT901|XT907|XT909|XT910|XT912|XT928|XT926|XT915|XT919|XT925|XT1021|\\bMoto E\\b","Samsung":"\\bSamsung\\b|SM-G9250|GT-19300|SGH-I337|BGT-S5230|GT-B2100|GT-B2700|GT-B2710|GT-B3210|GT-B3310|GT-B3410|GT-B3730|GT-B3740|GT-B5510|GT-B5512|GT-B5722|GT-B6520|GT-B7300|GT-B7320|GT-B7330|GT-B7350|GT-B7510|GT-B7722|GT-B7800|GT-C3010|GT-C3011|GT-C3060|GT-C3200|GT-C3212|GT-C3212I|GT-C3262|GT-C3222|GT-C3300|GT-C3300K|GT-C3303|GT-C3303K|GT-C3310|GT-C3322|GT-C3330|GT-C3350|GT-C3500|GT-C3510|GT-C3530|GT-C3630|GT-C3780|GT-C5010|GT-C5212|GT-C6620|GT-C6625|GT-C6712|GT-E1050|GT-E1070|GT-E1075|GT-E1080|GT-E1081|GT-E1085|GT-E1087|GT-E1100|GT-E1107|GT-E1110|GT-E1120|GT-E1125|GT-E1130|GT-E1160|GT-E1170|GT-E1175|GT-E1180|GT-E1182|GT-E1200|GT-E1210|GT-E1225|GT-E1230|GT-E1390|GT-E2100|GT-E2120|GT-E2121|GT-E2152|GT-E2220|GT-E2222|GT-E2230|GT-E2232|GT-E2250|GT-E2370|GT-E2550|GT-E2652|GT-E3210|GT-E3213|GT-I5500|GT-I5503|GT-I5700|GT-I5800|GT-I5801|GT-I6410|GT-I6420|GT-I7110|GT-I7410|GT-I7500|GT-I8000|GT-I8150|GT-I8160|GT-I8190|GT-I8320|GT-I8330|GT-I8350|GT-I8530|GT-I8700|GT-I8703|GT-I8910|GT-I9000|GT-I9001|GT-I9003|GT-I9010|GT-I9020|GT-I9023|GT-I9070|GT-I9082|GT-I9100|GT-I9103|GT-I9220|GT-I9250|GT-I9300|GT-I9305|GT-I9500|GT-I9505|GT-M3510|GT-M5650|GT-M7500|GT-M7600|GT-M7603|GT-M8800|GT-M8910|GT-N7000|GT-S3110|GT-S3310|GT-S3350|GT-S3353|GT-S3370|GT-S3650|GT-S3653|GT-S3770|GT-S3850|GT-S5210|GT-S5220|GT-S5229|GT-S5230|GT-S5233|GT-S5250|GT-S5253|GT-S5260|GT-S5263|GT-S5270|GT-S5300|GT-S5330|GT-S5350|GT-S5360|GT-S5363|GT-S5369|GT-S5380|GT-S5380D|GT-S5560|GT-S5570|GT-S5600|GT-S5603|GT-S5610|GT-S5620|GT-S5660|GT-S5670|GT-S5690|GT-S5750|GT-S5780|GT-S5830|GT-S5839|GT-S6102|GT-S6500|GT-S7070|GT-S7200|GT-S7220|GT-S7230|GT-S7233|GT-S7250|GT-S7500|GT-S7530|GT-S7550|GT-S7562|GT-S7710|GT-S8000|GT-S8003|GT-S8500|GT-S8530|GT-S8600|SCH-A310|SCH-A530|SCH-A570|SCH-A610|SCH-A630|SCH-A650|SCH-A790|SCH-A795|SCH-A850|SCH-A870|SCH-A890|SCH-A930|SCH-A950|SCH-A970|SCH-A990|SCH-I100|SCH-I110|SCH-I400|SCH-I405|SCH-I500|SCH-I510|SCH-I515|SCH-I600|SCH-I730|SCH-I760|SCH-I770|SCH-I830|SCH-I910|SCH-I920|SCH-I959|SCH-LC11|SCH-N150|SCH-N300|SCH-R100|SCH-R300|SCH-R351|SCH-R400|SCH-R410|SCH-T300|SCH-U310|SCH-U320|SCH-U350|SCH-U360|SCH-U365|SCH-U370|SCH-U380|SCH-U410|SCH-U430|SCH-U450|SCH-U460|SCH-U470|SCH-U490|SCH-U540|SCH-U550|SCH-U620|SCH-U640|SCH-U650|SCH-U660|SCH-U700|SCH-U740|SCH-U750|SCH-U810|SCH-U820|SCH-U900|SCH-U940|SCH-U960|SCS-26UC|SGH-A107|SGH-A117|SGH-A127|SGH-A137|SGH-A157|SGH-A167|SGH-A177|SGH-A187|SGH-A197|SGH-A227|SGH-A237|SGH-A257|SGH-A437|SGH-A517|SGH-A597|SGH-A637|SGH-A657|SGH-A667|SGH-A687|SGH-A697|SGH-A707|SGH-A717|SGH-A727|SGH-A737|SGH-A747|SGH-A767|SGH-A777|SGH-A797|SGH-A817|SGH-A827|SGH-A837|SGH-A847|SGH-A867|SGH-A877|SGH-A887|SGH-A897|SGH-A927|SGH-B100|SGH-B130|SGH-B200|SGH-B220|SGH-C100|SGH-C110|SGH-C120|SGH-C130|SGH-C140|SGH-C160|SGH-C170|SGH-C180|SGH-C200|SGH-C207|SGH-C210|SGH-C225|SGH-C230|SGH-C417|SGH-C450|SGH-D307|SGH-D347|SGH-D357|SGH-D407|SGH-D415|SGH-D780|SGH-D807|SGH-D980|SGH-E105|SGH-E200|SGH-E315|SGH-E316|SGH-E317|SGH-E335|SGH-E590|SGH-E635|SGH-E715|SGH-E890|SGH-F300|SGH-F480|SGH-I200|SGH-I300|SGH-I320|SGH-I550|SGH-I577|SGH-I600|SGH-I607|SGH-I617|SGH-I627|SGH-I637|SGH-I677|SGH-I700|SGH-I717|SGH-I727|SGH-i747M|SGH-I777|SGH-I780|SGH-I827|SGH-I847|SGH-I857|SGH-I896|SGH-I897|SGH-I900|SGH-I907|SGH-I917|SGH-I927|SGH-I937|SGH-I997|SGH-J150|SGH-J200|SGH-L170|SGH-L700|SGH-M110|SGH-M150|SGH-M200|SGH-N105|SGH-N500|SGH-N600|SGH-N620|SGH-N625|SGH-N700|SGH-N710|SGH-P107|SGH-P207|SGH-P300|SGH-P310|SGH-P520|SGH-P735|SGH-P777|SGH-Q105|SGH-R210|SGH-R220|SGH-R225|SGH-S105|SGH-S307|SGH-T109|SGH-T119|SGH-T139|SGH-T209|SGH-T219|SGH-T229|SGH-T239|SGH-T249|SGH-T259|SGH-T309|SGH-T319|SGH-T329|SGH-T339|SGH-T349|SGH-T359|SGH-T369|SGH-T379|SGH-T409|SGH-T429|SGH-T439|SGH-T459|SGH-T469|SGH-T479|SGH-T499|SGH-T509|SGH-T519|SGH-T539|SGH-T559|SGH-T589|SGH-T609|SGH-T619|SGH-T629|SGH-T639|SGH-T659|SGH-T669|SGH-T679|SGH-T709|SGH-T719|SGH-T729|SGH-T739|SGH-T746|SGH-T749|SGH-T759|SGH-T769|SGH-T809|SGH-T819|SGH-T839|SGH-T919|SGH-T929|SGH-T939|SGH-T959|SGH-T989|SGH-U100|SGH-U200|SGH-U800|SGH-V205|SGH-V206|SGH-X100|SGH-X105|SGH-X120|SGH-X140|SGH-X426|SGH-X427|SGH-X475|SGH-X495|SGH-X497|SGH-X507|SGH-X600|SGH-X610|SGH-X620|SGH-X630|SGH-X700|SGH-X820|SGH-X890|SGH-Z130|SGH-Z150|SGH-Z170|SGH-ZX10|SGH-ZX20|SHW-M110|SPH-A120|SPH-A400|SPH-A420|SPH-A460|SPH-A500|SPH-A560|SPH-A600|SPH-A620|SPH-A660|SPH-A700|SPH-A740|SPH-A760|SPH-A790|SPH-A800|SPH-A820|SPH-A840|SPH-A880|SPH-A900|SPH-A940|SPH-A960|SPH-D600|SPH-D700|SPH-D710|SPH-D720|SPH-I300|SPH-I325|SPH-I330|SPH-I350|SPH-I500|SPH-I600|SPH-I700|SPH-L700|SPH-M100|SPH-M220|SPH-M240|SPH-M300|SPH-M305|SPH-M320|SPH-M330|SPH-M350|SPH-M360|SPH-M370|SPH-M380|SPH-M510|SPH-M540|SPH-M550|SPH-M560|SPH-M570|SPH-M580|SPH-M610|SPH-M620|SPH-M630|SPH-M800|SPH-M810|SPH-M850|SPH-M900|SPH-M910|SPH-M920|SPH-M930|SPH-N100|SPH-N200|SPH-N240|SPH-N300|SPH-N400|SPH-Z400|SWC-E100|SCH-i909|GT-N7100|GT-N7105|SCH-I535|SM-N900A|SGH-I317|SGH-T999L|GT-S5360B|GT-I8262|GT-S6802|GT-S6312|GT-S6310|GT-S5312|GT-S5310|GT-I9105|GT-I8510|GT-S6790N|SM-G7105|SM-N9005|GT-S5301|GT-I9295|GT-I9195|SM-C101|GT-S7392|GT-S7560|GT-B7610|GT-I5510|GT-S7582|GT-S7530E|GT-I8750|SM-G9006V|SM-G9008V|SM-G9009D|SM-G900A|SM-G900D|SM-G900F|SM-G900H|SM-G900I|SM-G900J|SM-G900K|SM-G900L|SM-G900M|SM-G900P|SM-G900R4|SM-G900S|SM-G900T|SM-G900V|SM-G900W8|SHV-E160K|SCH-P709|SCH-P729|SM-T2558|GT-I9205|SM-G9350|SM-J120F|SM-G920F|SM-G920V|SM-G930F|SM-N910C","LG":"\\bLG\\b;|LG[- ]?(C800|C900|E400|E610|E900|E-900|F160|F180K|F180L|F180S|730|855|L160|LS740|LS840|LS970|LU6200|MS690|MS695|MS770|MS840|MS870|MS910|P500|P700|P705|VM696|AS680|AS695|AX840|C729|E970|GS505|272|C395|E739BK|E960|L55C|L75C|LS696|LS860|P769BK|P350|P500|P509|P870|UN272|US730|VS840|VS950|LN272|LN510|LS670|LS855|LW690|MN270|MN510|P509|P769|P930|UN200|UN270|UN510|UN610|US670|US740|US760|UX265|UX840|VN271|VN530|VS660|VS700|VS740|VS750|VS910|VS920|VS930|VX9200|VX11000|AX840A|LW770|P506|P925|P999|E612|D955|D802|MS323)","Sony":"SonyST|SonyLT|SonyEricsson|SonyEricssonLT15iv|LT18i|E10i|LT28h|LT26w|SonyEricssonMT27i|C5303|C6902|C6903|C6906|C6943|D2533","Asus":"Asus.*Galaxy|PadFone.*Mobile","NokiaLumia":"Lumia [0-9]{3,4}","Micromax":"Micromax.*\\b(A210|A92|A88|A72|A111|A110Q|A115|A116|A110|A90S|A26|A51|A35|A54|A25|A27|A89|A68|A65|A57|A90)\\b","Palm":"PalmSource|Palm","Vertu":"Vertu|Vertu.*Ltd|Vertu.*Ascent|Vertu.*Ayxta|Vertu.*Constellation(F|Quest)?|Vertu.*Monika|Vertu.*Signature","Pantech":"PANTECH|IM-A850S|IM-A840S|IM-A830L|IM-A830K|IM-A830S|IM-A820L|IM-A810K|IM-A810S|IM-A800S|IM-T100K|IM-A725L|IM-A780L|IM-A775C|IM-A770K|IM-A760S|IM-A750K|IM-A740S|IM-A730S|IM-A720L|IM-A710K|IM-A690L|IM-A690S|IM-A650S|IM-A630K|IM-A600S|VEGA PTL21|PT003|P8010|ADR910L|P6030|P6020|P9070|P4100|P9060|P5000|CDM8992|TXT8045|ADR8995|IS11PT|P2030|P6010|P8000|PT002|IS06|CDM8999|P9050|PT001|TXT8040|P2020|P9020|P2000|P7040|P7000|C790","Fly":"IQ230|IQ444|IQ450|IQ440|IQ442|IQ441|IQ245|IQ256|IQ236|IQ255|IQ235|IQ245|IQ275|IQ240|IQ285|IQ280|IQ270|IQ260|IQ250","Wiko":"KITE 4G|HIGHWAY|GETAWAY|STAIRWAY|DARKSIDE|DARKFULL|DARKNIGHT|DARKMOON|SLIDE|WAX 4G|RAINBOW|BLOOM|SUNSET|GOA(?!nna)|LENNY|BARRY|IGGY|OZZY|CINK FIVE|CINK PEAX|CINK PEAX 2|CINK SLIM|CINK SLIM 2|CINK +|CINK KING|CINK PEAX|CINK SLIM|SUBLIM","iMobile":"i-mobile (IQ|i-STYLE|idea|ZAA|Hitz)","SimValley":"\\b(SP-80|XT-930|SX-340|XT-930|SX-310|SP-360|SP60|SPT-800|SP-120|SPT-800|SP-140|SPX-5|SPX-8|SP-100|SPX-8|SPX-12)\\b","Wolfgang":"AT-B24D|AT-AS50HD|AT-AS40W|AT-AS55HD|AT-AS45q2|AT-B26D|AT-AS50Q","Alcatel":"Alcatel","Nintendo":"Nintendo 3DS","Amoi":"Amoi","INQ":"INQ","GenericPhone":"Tapatalk|PDA;|SAGEM|\\bmmp\\b|pocket|\\bpsp\\b|symbian|Smartphone|smartfon|treo|up.browser|up.link|vodafone|\\bwap\\b|nokia|Series40|Series60|S60|SonyEricsson|N900|MAUI.*WAP.*Browser"},"tablets":{"iPad":"iPad|iPad.*Mobile","NexusTablet":"Android.*Nexus[\\s]+(7|9|10)","SamsungTablet":"SAMSUNG.*Tablet|Galaxy.*Tab|SC-01C|GT-P1000|GT-P1003|GT-P1010|GT-P3105|GT-P6210|GT-P6800|GT-P6810|GT-P7100|GT-P7300|GT-P7310|GT-P7500|GT-P7510|SCH-I800|SCH-I815|SCH-I905|SGH-I957|SGH-I987|SGH-T849|SGH-T859|SGH-T869|SPH-P100|GT-P3100|GT-P3108|GT-P3110|GT-P5100|GT-P5110|GT-P6200|GT-P7320|GT-P7511|GT-N8000|GT-P8510|SGH-I497|SPH-P500|SGH-T779|SCH-I705|SCH-I915|GT-N8013|GT-P3113|GT-P5113|GT-P8110|GT-N8010|GT-N8005|GT-N8020|GT-P1013|GT-P6201|GT-P7501|GT-N5100|GT-N5105|GT-N5110|SHV-E140K|SHV-E140L|SHV-E140S|SHV-E150S|SHV-E230K|SHV-E230L|SHV-E230S|SHW-M180K|SHW-M180L|SHW-M180S|SHW-M180W|SHW-M300W|SHW-M305W|SHW-M380K|SHW-M380S|SHW-M380W|SHW-M430W|SHW-M480K|SHW-M480S|SHW-M480W|SHW-M485W|SHW-M486W|SHW-M500W|GT-I9228|SCH-P739|SCH-I925|GT-I9200|GT-P5200|GT-P5210|GT-P5210X|SM-T311|SM-T310|SM-T310X|SM-T210|SM-T210R|SM-T211|SM-P600|SM-P601|SM-P605|SM-P900|SM-P901|SM-T217|SM-T217A|SM-T217S|SM-P6000|SM-T3100|SGH-I467|XE500|SM-T110|GT-P5220|GT-I9200X|GT-N5110X|GT-N5120|SM-P905|SM-T111|SM-T2105|SM-T315|SM-T320|SM-T320X|SM-T321|SM-T520|SM-T525|SM-T530NU|SM-T230NU|SM-T330NU|SM-T900|XE500T1C|SM-P605V|SM-P905V|SM-T337V|SM-T537V|SM-T707V|SM-T807V|SM-P600X|SM-P900X|SM-T210X|SM-T230|SM-T230X|SM-T325|GT-P7503|SM-T531|SM-T330|SM-T530|SM-T705|SM-T705C|SM-T535|SM-T331|SM-T800|SM-T700|SM-T537|SM-T807|SM-P907A|SM-T337A|SM-T537A|SM-T707A|SM-T807A|SM-T237|SM-T807P|SM-P607T|SM-T217T|SM-T337T|SM-T807T|SM-T116NQ|SM-T116BU|SM-P550|SM-T350|SM-T550|SM-T9000|SM-P9000|SM-T705Y|SM-T805|GT-P3113|SM-T710|SM-T810|SM-T815|SM-T360|SM-T533|SM-T113|SM-T335|SM-T715|SM-T560|SM-T670|SM-T677|SM-T377|SM-T567|SM-T357T|SM-T555|SM-T561|SM-T713|SM-T719|SM-T813|SM-T819|SM-T580|SM-T355Y|SM-T280|SM-T817A|SM-T820|SM-W700|SM-P580|SM-T587|SM-P350|SM-P555M|SM-P355M|SM-T113NU|SM-T815Y","Kindle":"Kindle|Silk.*Accelerated|Android.*\\b(KFOT|KFTT|KFJWI|KFJWA|KFOTE|KFSOWI|KFTHWI|KFTHWA|KFAPWI|KFAPWA|WFJWAE|KFSAWA|KFSAWI|KFASWI|KFARWI|KFFOWI|KFGIWI|KFMEWI)\\b|Android.*Silk\/[0-9.]+ like Chrome\/[0-9.]+ (?!Mobile)","SurfaceTablet":"Windows NT [0-9.]+; ARM;.*(Tablet|ARMBJS)","HPTablet":"HP Slate (7|8|10)|HP ElitePad 900|hp-tablet|EliteBook.*Touch|HP 8|Slate 21|HP SlateBook 10","AsusTablet":"^.*PadFone((?!Mobile).)*$|Transformer|TF101|TF101G|TF300T|TF300TG|TF300TL|TF700T|TF700KL|TF701T|TF810C|ME171|ME301T|ME302C|ME371MG|ME370T|ME372MG|ME172V|ME173X|ME400C|Slider SL101|\\bK00F\\b|\\bK00C\\b|\\bK00E\\b|\\bK00L\\b|TX201LA|ME176C|ME102A|\\bM80TA\\b|ME372CL|ME560CG|ME372CG|ME302KL| K010 | K011 | K017 | K01E |ME572C|ME103K|ME170C|ME171C|\\bME70C\\b|ME581C|ME581CL|ME8510C|ME181C|P01Y|PO1MA|P01Z|\\bP027\\b","BlackBerryTablet":"PlayBook|RIM Tablet","HTCtablet":"HTC_Flyer_P512|HTC Flyer|HTC Jetstream|HTC-P715a|HTC EVO View 4G|PG41200|PG09410","MotorolaTablet":"xoom|sholest|MZ615|MZ605|MZ505|MZ601|MZ602|MZ603|MZ604|MZ606|MZ607|MZ608|MZ609|MZ615|MZ616|MZ617","NookTablet":"Android.*Nook|NookColor|nook browser|BNRV200|BNRV200A|BNTV250|BNTV250A|BNTV400|BNTV600|LogicPD Zoom2","AcerTablet":"Android.*; \\b(A100|A101|A110|A200|A210|A211|A500|A501|A510|A511|A700|A701|W500|W500P|W501|W501P|W510|W511|W700|G100|G100W|B1-A71|B1-710|B1-711|A1-810|A1-811|A1-830)\\b|W3-810|\\bA3-A10\\b|\\bA3-A11\\b|\\bA3-A20\\b|\\bA3-A30","ToshibaTablet":"Android.*(AT100|AT105|AT200|AT205|AT270|AT275|AT300|AT305|AT1S5|AT500|AT570|AT700|AT830)|TOSHIBA.*FOLIO","LGTablet":"\\bL-06C|LG-V909|LG-V900|LG-V700|LG-V510|LG-V500|LG-V410|LG-V400|LG-VK810\\b","FujitsuTablet":"Android.*\\b(F-01D|F-02F|F-05E|F-10D|M532|Q572)\\b","PrestigioTablet":"PMP3170B|PMP3270B|PMP3470B|PMP7170B|PMP3370B|PMP3570C|PMP5870C|PMP3670B|PMP5570C|PMP5770D|PMP3970B|PMP3870C|PMP5580C|PMP5880D|PMP5780D|PMP5588C|PMP7280C|PMP7280C3G|PMP7280|PMP7880D|PMP5597D|PMP5597|PMP7100D|PER3464|PER3274|PER3574|PER3884|PER5274|PER5474|PMP5097CPRO|PMP5097|PMP7380D|PMP5297C|PMP5297C_QUAD|PMP812E|PMP812E3G|PMP812F|PMP810E|PMP880TD|PMT3017|PMT3037|PMT3047|PMT3057|PMT7008|PMT5887|PMT5001|PMT5002","LenovoTablet":"Lenovo TAB|Idea(Tab|Pad)( A1|A10| K1|)|ThinkPad([ ]+)?Tablet|YT3-850M|YT3-X90L|YT3-X90F|YT3-X90X|Lenovo.*(S2109|S2110|S5000|S6000|K3011|A3000|A3500|A1000|A2107|A2109|A1107|A5500|A7600|B6000|B8000|B8080)(-|)(FL|F|HV|H|)","DellTablet":"Venue 11|Venue 8|Venue 7|Dell Streak 10|Dell Streak 7","YarvikTablet":"Android.*\\b(TAB210|TAB211|TAB224|TAB250|TAB260|TAB264|TAB310|TAB360|TAB364|TAB410|TAB411|TAB420|TAB424|TAB450|TAB460|TAB461|TAB464|TAB465|TAB467|TAB468|TAB07-100|TAB07-101|TAB07-150|TAB07-151|TAB07-152|TAB07-200|TAB07-201-3G|TAB07-210|TAB07-211|TAB07-212|TAB07-214|TAB07-220|TAB07-400|TAB07-485|TAB08-150|TAB08-200|TAB08-201-3G|TAB08-201-30|TAB09-100|TAB09-211|TAB09-410|TAB10-150|TAB10-201|TAB10-211|TAB10-400|TAB10-410|TAB13-201|TAB274EUK|TAB275EUK|TAB374EUK|TAB462EUK|TAB474EUK|TAB9-200)\\b","MedionTablet":"Android.*\\bOYO\\b|LIFE.*(P9212|P9514|P9516|S9512)|LIFETAB","ArnovaTablet":"97G4|AN10G2|AN7bG3|AN7fG3|AN8G3|AN8cG3|AN7G3|AN9G3|AN7dG3|AN7dG3ST|AN7dG3ChildPad|AN10bG3|AN10bG3DT|AN9G2","IntensoTablet":"INM8002KP|INM1010FP|INM805ND|Intenso Tab|TAB1004","IRUTablet":"M702pro","MegafonTablet":"MegaFon V9|\\bZTE V9\\b|Android.*\\bMT7A\\b","EbodaTablet":"E-Boda (Supreme|Impresspeed|Izzycomm|Essential)","AllViewTablet":"Allview.*(Viva|Alldro|City|Speed|All TV|Frenzy|Quasar|Shine|TX1|AX1|AX2)","ArchosTablet":"\\b(101G9|80G9|A101IT)\\b|Qilive 97R|Archos5|\\bARCHOS (70|79|80|90|97|101|FAMILYPAD|)(b|c|)(G10| Cobalt| TITANIUM(HD|)| Xenon| Neon|XSK| 2| XS 2| PLATINUM| CARBON|GAMEPAD)\\b","AinolTablet":"NOVO7|NOVO8|NOVO10|Novo7Aurora|Novo7Basic|NOVO7PALADIN|novo9-Spark","NokiaLumiaTablet":"Lumia 2520","SonyTablet":"Sony.*Tablet|Xperia Tablet|Sony Tablet S|SO-03E|SGPT12|SGPT13|SGPT114|SGPT121|SGPT122|SGPT123|SGPT111|SGPT112|SGPT113|SGPT131|SGPT132|SGPT133|SGPT211|SGPT212|SGPT213|SGP311|SGP312|SGP321|EBRD1101|EBRD1102|EBRD1201|SGP351|SGP341|SGP511|SGP512|SGP521|SGP541|SGP551|SGP621|SGP612|SOT31","PhilipsTablet":"\\b(PI2010|PI3000|PI3100|PI3105|PI3110|PI3205|PI3210|PI3900|PI4010|PI7000|PI7100)\\b","CubeTablet":"Android.*(K8GT|U9GT|U10GT|U16GT|U17GT|U18GT|U19GT|U20GT|U23GT|U30GT)|CUBE U8GT","CobyTablet":"MID1042|MID1045|MID1125|MID1126|MID7012|MID7014|MID7015|MID7034|MID7035|MID7036|MID7042|MID7048|MID7127|MID8042|MID8048|MID8127|MID9042|MID9740|MID9742|MID7022|MID7010","MIDTablet":"M9701|M9000|M9100|M806|M1052|M806|T703|MID701|MID713|MID710|MID727|MID760|MID830|MID728|MID933|MID125|MID810|MID732|MID120|MID930|MID800|MID731|MID900|MID100|MID820|MID735|MID980|MID130|MID833|MID737|MID960|MID135|MID860|MID736|MID140|MID930|MID835|MID733|MID4X10","MSITablet":"MSI \\b(Primo 73K|Primo 73L|Primo 81L|Primo 77|Primo 93|Primo 75|Primo 76|Primo 73|Primo 81|Primo 91|Primo 90|Enjoy 71|Enjoy 7|Enjoy 10)\\b","SMiTTablet":"Android.*(\\bMID\\b|MID-560|MTV-T1200|MTV-PND531|MTV-P1101|MTV-PND530)","RockChipTablet":"Android.*(RK2818|RK2808A|RK2918|RK3066)|RK2738|RK2808A","FlyTablet":"IQ310|Fly Vision","bqTablet":"Android.*(bq)?.*(Elcano|Curie|Edison|Maxwell|Kepler|Pascal|Tesla|Hypatia|Platon|Newton|Livingstone|Cervantes|Avant|Aquaris [E|M]10)|Maxwell.*Lite|Maxwell.*Plus","HuaweiTablet":"MediaPad|MediaPad 7 Youth|IDEOS S7|S7-201c|S7-202u|S7-101|S7-103|S7-104|S7-105|S7-106|S7-201|S7-Slim","NecTablet":"\\bN-06D|\\bN-08D","PantechTablet":"Pantech.*P4100","BronchoTablet":"Broncho.*(N701|N708|N802|a710)","VersusTablet":"TOUCHPAD.*[78910]|\\bTOUCHTAB\\b","ZyncTablet":"z1000|Z99 2G|z99|z930|z999|z990|z909|Z919|z900","PositivoTablet":"TB07STA|TB10STA|TB07FTA|TB10FTA","NabiTablet":"Android.*\\bNabi","KoboTablet":"Kobo Touch|\\bK080\\b|\\bVox\\b Build|\\bArc\\b Build","DanewTablet":"DSlide.*\\b(700|701R|702|703R|704|802|970|971|972|973|974|1010|1012)\\b","TexetTablet":"NaviPad|TB-772A|TM-7045|TM-7055|TM-9750|TM-7016|TM-7024|TM-7026|TM-7041|TM-7043|TM-7047|TM-8041|TM-9741|TM-9747|TM-9748|TM-9751|TM-7022|TM-7021|TM-7020|TM-7011|TM-7010|TM-7023|TM-7025|TM-7037W|TM-7038W|TM-7027W|TM-9720|TM-9725|TM-9737W|TM-1020|TM-9738W|TM-9740|TM-9743W|TB-807A|TB-771A|TB-727A|TB-725A|TB-719A|TB-823A|TB-805A|TB-723A|TB-715A|TB-707A|TB-705A|TB-709A|TB-711A|TB-890HD|TB-880HD|TB-790HD|TB-780HD|TB-770HD|TB-721HD|TB-710HD|TB-434HD|TB-860HD|TB-840HD|TB-760HD|TB-750HD|TB-740HD|TB-730HD|TB-722HD|TB-720HD|TB-700HD|TB-500HD|TB-470HD|TB-431HD|TB-430HD|TB-506|TB-504|TB-446|TB-436|TB-416|TB-146SE|TB-126SE","PlaystationTablet":"Playstation.*(Portable|Vita)","TrekstorTablet":"ST10416-1|VT10416-1|ST70408-1|ST702xx-1|ST702xx-2|ST80208|ST97216|ST70104-2|VT10416-2|ST10216-2A|SurfTab","PyleAudioTablet":"\\b(PTBL10CEU|PTBL10C|PTBL72BC|PTBL72BCEU|PTBL7CEU|PTBL7C|PTBL92BC|PTBL92BCEU|PTBL9CEU|PTBL9CUK|PTBL9C)\\b","AdvanTablet":"Android.* \\b(E3A|T3X|T5C|T5B|T3E|T3C|T3B|T1J|T1F|T2A|T1H|T1i|E1C|T1-E|T5-A|T4|E1-B|T2Ci|T1-B|T1-D|O1-A|E1-A|T1-A|T3A|T4i)\\b ","DanyTechTablet":"Genius Tab G3|Genius Tab S2|Genius Tab Q3|Genius Tab G4|Genius Tab Q4|Genius Tab G-II|Genius TAB GII|Genius TAB GIII|Genius Tab S1","GalapadTablet":"Android.*\\bG1\\b","MicromaxTablet":"Funbook|Micromax.*\\b(P250|P560|P360|P362|P600|P300|P350|P500|P275)\\b","KarbonnTablet":"Android.*\\b(A39|A37|A34|ST8|ST10|ST7|Smart Tab3|Smart Tab2)\\b","AllFineTablet":"Fine7 Genius|Fine7 Shine|Fine7 Air|Fine8 Style|Fine9 More|Fine10 Joy|Fine11 Wide","PROSCANTablet":"\\b(PEM63|PLT1023G|PLT1041|PLT1044|PLT1044G|PLT1091|PLT4311|PLT4311PL|PLT4315|PLT7030|PLT7033|PLT7033D|PLT7035|PLT7035D|PLT7044K|PLT7045K|PLT7045KB|PLT7071KG|PLT7072|PLT7223G|PLT7225G|PLT7777G|PLT7810K|PLT7849G|PLT7851G|PLT7852G|PLT8015|PLT8031|PLT8034|PLT8036|PLT8080K|PLT8082|PLT8088|PLT8223G|PLT8234G|PLT8235G|PLT8816K|PLT9011|PLT9045K|PLT9233G|PLT9735|PLT9760G|PLT9770G)\\b","YONESTablet":"BQ1078|BC1003|BC1077|RK9702|BC9730|BC9001|IT9001|BC7008|BC7010|BC708|BC728|BC7012|BC7030|BC7027|BC7026","ChangJiaTablet":"TPC7102|TPC7103|TPC7105|TPC7106|TPC7107|TPC7201|TPC7203|TPC7205|TPC7210|TPC7708|TPC7709|TPC7712|TPC7110|TPC8101|TPC8103|TPC8105|TPC8106|TPC8203|TPC8205|TPC8503|TPC9106|TPC9701|TPC97101|TPC97103|TPC97105|TPC97106|TPC97111|TPC97113|TPC97203|TPC97603|TPC97809|TPC97205|TPC10101|TPC10103|TPC10106|TPC10111|TPC10203|TPC10205|TPC10503","GUTablet":"TX-A1301|TX-M9002|Q702|kf026","PointOfViewTablet":"TAB-P506|TAB-navi-7-3G-M|TAB-P517|TAB-P-527|TAB-P701|TAB-P703|TAB-P721|TAB-P731N|TAB-P741|TAB-P825|TAB-P905|TAB-P925|TAB-PR945|TAB-PL1015|TAB-P1025|TAB-PI1045|TAB-P1325|TAB-PROTAB[0-9]+|TAB-PROTAB25|TAB-PROTAB26|TAB-PROTAB27|TAB-PROTAB26XL|TAB-PROTAB2-IPS9|TAB-PROTAB30-IPS9|TAB-PROTAB25XXL|TAB-PROTAB26-IPS10|TAB-PROTAB30-IPS10","OvermaxTablet":"OV-(SteelCore|NewBase|Basecore|Baseone|Exellen|Quattor|EduTab|Solution|ACTION|BasicTab|TeddyTab|MagicTab|Stream|TB-08|TB-09)","HCLTablet":"HCL.*Tablet|Connect-3G-2.0|Connect-2G-2.0|ME Tablet U1|ME Tablet U2|ME Tablet G1|ME Tablet X1|ME Tablet Y2|ME Tablet Sync","DPSTablet":"DPS Dream 9|DPS Dual 7","VistureTablet":"V97 HD|i75 3G|Visture V4( HD)?|Visture V5( HD)?|Visture V10","CrestaTablet":"CTP(-)?810|CTP(-)?818|CTP(-)?828|CTP(-)?838|CTP(-)?888|CTP(-)?978|CTP(-)?980|CTP(-)?987|CTP(-)?988|CTP(-)?989","MediatekTablet":"\\bMT8125|MT8389|MT8135|MT8377\\b","ConcordeTablet":"Concorde([ ]+)?Tab|ConCorde ReadMan","GoCleverTablet":"GOCLEVER TAB|A7GOCLEVER|M1042|M7841|M742|R1042BK|R1041|TAB A975|TAB A7842|TAB A741|TAB A741L|TAB M723G|TAB M721|TAB A1021|TAB I921|TAB R721|TAB I720|TAB T76|TAB R70|TAB R76.2|TAB R106|TAB R83.2|TAB M813G|TAB I721|GCTA722|TAB I70|TAB I71|TAB S73|TAB R73|TAB R74|TAB R93|TAB R75|TAB R76.1|TAB A73|TAB A93|TAB A93.2|TAB T72|TAB R83|TAB R974|TAB R973|TAB A101|TAB A103|TAB A104|TAB A104.2|R105BK|M713G|A972BK|TAB A971|TAB R974.2|TAB R104|TAB R83.3|TAB A1042","ModecomTablet":"FreeTAB 9000|FreeTAB 7.4|FreeTAB 7004|FreeTAB 7800|FreeTAB 2096|FreeTAB 7.5|FreeTAB 1014|FreeTAB 1001 |FreeTAB 8001|FreeTAB 9706|FreeTAB 9702|FreeTAB 7003|FreeTAB 7002|FreeTAB 1002|FreeTAB 7801|FreeTAB 1331|FreeTAB 1004|FreeTAB 8002|FreeTAB 8014|FreeTAB 9704|FreeTAB 1003","VoninoTablet":"\\b(Argus[ _]?S|Diamond[ _]?79HD|Emerald[ _]?78E|Luna[ _]?70C|Onyx[ _]?S|Onyx[ _]?Z|Orin[ _]?HD|Orin[ _]?S|Otis[ _]?S|SpeedStar[ _]?S|Magnet[ _]?M9|Primus[ _]?94[ _]?3G|Primus[ _]?94HD|Primus[ _]?QS|Android.*\\bQ8\\b|Sirius[ _]?EVO[ _]?QS|Sirius[ _]?QS|Spirit[ _]?S)\\b","ECSTablet":"V07OT2|TM105A|S10OT1|TR10CS1","StorexTablet":"eZee[_']?(Tab|Go)[0-9]+|TabLC7|Looney Tunes Tab","VodafoneTablet":"SmartTab([ ]+)?[0-9]+|SmartTabII10|SmartTabII7|VF-1497","EssentielBTablet":"Smart[ ']?TAB[ ]+?[0-9]+|Family[ ']?TAB2","RossMoorTablet":"RM-790|RM-997|RMD-878G|RMD-974R|RMT-705A|RMT-701|RME-601|RMT-501|RMT-711","iMobileTablet":"i-mobile i-note","TolinoTablet":"tolino tab [0-9.]+|tolino shine","AudioSonicTablet":"\\bC-22Q|T7-QC|T-17B|T-17P\\b","AMPETablet":"Android.* A78 ","SkkTablet":"Android.* (SKYPAD|PHOENIX|CYCLOPS)","TecnoTablet":"TECNO P9","JXDTablet":"Android.* \\b(F3000|A3300|JXD5000|JXD3000|JXD2000|JXD300B|JXD300|S5800|S7800|S602b|S5110b|S7300|S5300|S602|S603|S5100|S5110|S601|S7100a|P3000F|P3000s|P101|P200s|P1000m|P200m|P9100|P1000s|S6600b|S908|P1000|P300|S18|S6600|S9100)\\b","iJoyTablet":"Tablet (Spirit 7|Essentia|Galatea|Fusion|Onix 7|Landa|Titan|Scooby|Deox|Stella|Themis|Argon|Unique 7|Sygnus|Hexen|Finity 7|Cream|Cream X2|Jade|Neon 7|Neron 7|Kandy|Scape|Saphyr 7|Rebel|Biox|Rebel|Rebel 8GB|Myst|Draco 7|Myst|Tab7-004|Myst|Tadeo Jones|Tablet Boing|Arrow|Draco Dual Cam|Aurix|Mint|Amity|Revolution|Finity 9|Neon 9|T9w|Amity 4GB Dual Cam|Stone 4GB|Stone 8GB|Andromeda|Silken|X2|Andromeda II|Halley|Flame|Saphyr 9,7|Touch 8|Planet|Triton|Unique 10|Hexen 10|Memphis 4GB|Memphis 8GB|Onix 10)","FX2Tablet":"FX2 PAD7|FX2 PAD10","XoroTablet":"KidsPAD 701|PAD[ ]?712|PAD[ ]?714|PAD[ ]?716|PAD[ ]?717|PAD[ ]?718|PAD[ ]?720|PAD[ ]?721|PAD[ ]?722|PAD[ ]?790|PAD[ ]?792|PAD[ ]?900|PAD[ ]?9715D|PAD[ ]?9716DR|PAD[ ]?9718DR|PAD[ ]?9719QR|PAD[ ]?9720QR|TelePAD1030|Telepad1032|TelePAD730|TelePAD731|TelePAD732|TelePAD735Q|TelePAD830|TelePAD9730|TelePAD795|MegaPAD 1331|MegaPAD 1851|MegaPAD 2151","ViewsonicTablet":"ViewPad 10pi|ViewPad 10e|ViewPad 10s|ViewPad E72|ViewPad7|ViewPad E100|ViewPad 7e|ViewSonic VB733|VB100a","OdysTablet":"LOOX|XENO10|ODYS[ -](Space|EVO|Xpress|NOON)|\\bXELIO\\b|Xelio10Pro|XELIO7PHONETAB|XELIO10EXTREME|XELIOPT2|NEO_QUAD10","CaptivaTablet":"CAPTIVA PAD","IconbitTablet":"NetTAB|NT-3702|NT-3702S|NT-3702S|NT-3603P|NT-3603P|NT-0704S|NT-0704S|NT-3805C|NT-3805C|NT-0806C|NT-0806C|NT-0909T|NT-0909T|NT-0907S|NT-0907S|NT-0902S|NT-0902S","TeclastTablet":"T98 4G|\\bP80\\b|\\bX90HD\\b|X98 Air|X98 Air 3G|\\bX89\\b|P80 3G|\\bX80h\\b|P98 Air|\\bX89HD\\b|P98 3G|\\bP90HD\\b|P89 3G|X98 3G|\\bP70h\\b|P79HD 3G|G18d 3G|\\bP79HD\\b|\\bP89s\\b|\\bA88\\b|\\bP10HD\\b|\\bP19HD\\b|G18 3G|\\bP78HD\\b|\\bA78\\b|\\bP75\\b|G17s 3G|G17h 3G|\\bP85t\\b|\\bP90\\b|\\bP11\\b|\\bP98t\\b|\\bP98HD\\b|\\bG18d\\b|\\bP85s\\b|\\bP11HD\\b|\\bP88s\\b|\\bA80HD\\b|\\bA80se\\b|\\bA10h\\b|\\bP89\\b|\\bP78s\\b|\\bG18\\b|\\bP85\\b|\\bA70h\\b|\\bA70\\b|\\bG17\\b|\\bP18\\b|\\bA80s\\b|\\bA11s\\b|\\bP88HD\\b|\\bA80h\\b|\\bP76s\\b|\\bP76h\\b|\\bP98\\b|\\bA10HD\\b|\\bP78\\b|\\bP88\\b|\\bA11\\b|\\bA10t\\b|\\bP76a\\b|\\bP76t\\b|\\bP76e\\b|\\bP85HD\\b|\\bP85a\\b|\\bP86\\b|\\bP75HD\\b|\\bP76v\\b|\\bA12\\b|\\bP75a\\b|\\bA15\\b|\\bP76Ti\\b|\\bP81HD\\b|\\bA10\\b|\\bT760VE\\b|\\bT720HD\\b|\\bP76\\b|\\bP73\\b|\\bP71\\b|\\bP72\\b|\\bT720SE\\b|\\bC520Ti\\b|\\bT760\\b|\\bT720VE\\b|T720-3GE|T720-WiFi","OndaTablet":"\\b(V975i|Vi30|VX530|V701|Vi60|V701s|Vi50|V801s|V719|Vx610w|VX610W|V819i|Vi10|VX580W|Vi10|V711s|V813|V811|V820w|V820|Vi20|V711|VI30W|V712|V891w|V972|V819w|V820w|Vi60|V820w|V711|V813s|V801|V819|V975s|V801|V819|V819|V818|V811|V712|V975m|V101w|V961w|V812|V818|V971|V971s|V919|V989|V116w|V102w|V973|Vi40)\\b[\\s]+","JaytechTablet":"TPC-PA762","BlaupunktTablet":"Endeavour 800NG|Endeavour 1010","DigmaTablet":"\\b(iDx10|iDx9|iDx8|iDx7|iDxD7|iDxD8|iDsQ8|iDsQ7|iDsQ8|iDsD10|iDnD7|3TS804H|iDsQ11|iDj7|iDs10)\\b","EvolioTablet":"ARIA_Mini_wifi|Aria[ _]Mini|Evolio X10|Evolio X7|Evolio X8|\\bEvotab\\b|\\bNeura\\b","LavaTablet":"QPAD E704|\\bIvoryS\\b|E-TAB IVORY|\\bE-TAB\\b","AocTablet":"MW0811|MW0812|MW0922|MTK8382|MW1031|MW0831|MW0821|MW0931|MW0712","MpmanTablet":"MP11 OCTA|MP10 OCTA|MPQC1114|MPQC1004|MPQC994|MPQC974|MPQC973|MPQC804|MPQC784|MPQC780|\\bMPG7\\b|MPDCG75|MPDCG71|MPDC1006|MP101DC|MPDC9000|MPDC905|MPDC706HD|MPDC706|MPDC705|MPDC110|MPDC100|MPDC99|MPDC97|MPDC88|MPDC8|MPDC77|MP709|MID701|MID711|MID170|MPDC703|MPQC1010","CelkonTablet":"CT695|CT888|CT[\\s]?910|CT7 Tab|CT9 Tab|CT3 Tab|CT2 Tab|CT1 Tab|C820|C720|\\bCT-1\\b","WolderTablet":"miTab \\b(DIAMOND|SPACE|BROOKLYN|NEO|FLY|MANHATTAN|FUNK|EVOLUTION|SKY|GOCAR|IRON|GENIUS|POP|MINT|EPSILON|BROADWAY|JUMP|HOP|LEGEND|NEW AGE|LINE|ADVANCE|FEEL|FOLLOW|LIKE|LINK|LIVE|THINK|FREEDOM|CHICAGO|CLEVELAND|BALTIMORE-GH|IOWA|BOSTON|SEATTLE|PHOENIX|DALLAS|IN 101|MasterChef)\\b","MiTablet":"\\bMI PAD\\b|\\bHM NOTE 1W\\b","NibiruTablet":"Nibiru M1|Nibiru Jupiter One","NexoTablet":"NEXO NOVA|NEXO 10|NEXO AVIO|NEXO FREE|NEXO GO|NEXO EVO|NEXO 3G|NEXO SMART|NEXO KIDDO|NEXO MOBI","LeaderTablet":"TBLT10Q|TBLT10I|TBL-10WDKB|TBL-10WDKBO2013|TBL-W230V2|TBL-W450|TBL-W500|SV572|TBLT7I|TBA-AC7-8G|TBLT79|TBL-8W16|TBL-10W32|TBL-10WKB|TBL-W100","UbislateTablet":"UbiSlate[\\s]?7C","PocketBookTablet":"Pocketbook","KocasoTablet":"\\b(TB-1207)\\b","HisenseTablet":"\\b(F5281|E2371)\\b","Hudl":"Hudl HT7S3|Hudl 2","TelstraTablet":"T-Hub2","GenericTablet":"Android.*\\b97D\\b|Tablet(?!.*PC)|BNTV250A|MID-WCDMA|LogicPD Zoom2|\\bA7EB\\b|CatNova8|A1_07|CT704|CT1002|\\bM721\\b|rk30sdk|\\bEVOTAB\\b|M758A|ET904|ALUMIUM10|Smartfren Tab|Endeavour 1010|Tablet-PC-4|Tagi Tab|\\bM6pro\\b|CT1020W|arc 10HD|\\bTP750\\b|\\bQTAQZ3\\b"},"browsers":{"Chrome":"\\bCrMo\\b|CriOS|Android.*Chrome\/[.0-9]* (Mobile)?","Dolfin":"\\bDolfin\\b","Opera":"Opera.*Mini|Opera.*Mobi|Android.*Opera|Mobile.*OPR\/[0-9.]+|Coast\/[0-9.]+","Skyfire":"Skyfire","Edge":"Mobile Safari\/[.0-9]* Edge","IE":"IEMobile|MSIEMobile","Firefox":"fennec|firefox.*maemo|(Mobile|Tablet).*Firefox|Firefox.*Mobile|FxiOS","Bolt":"bolt","TeaShark":"teashark","Blazer":"Blazer","Safari":"Version.*Mobile.*Safari|Safari.*Mobile|MobileSafari","UCBrowser":"UC.*Browser|UCWEB","baiduboxapp":"baiduboxapp","baidubrowser":"baidubrowser","DiigoBrowser":"DiigoBrowser","Puffin":"Puffin","Mercury":"\\bMercury\\b","ObigoBrowser":"Obigo","NetFront":"NF-Browser","GenericBrowser":"NokiaBrowser|OviBrowser|OneBrowser|TwonkyBeamBrowser|SEMC.*Browser|FlyFlow|Minimo|NetFront|Novarra-Vision|MQQBrowser|MicroMessenger","PaleMoon":"Android.*PaleMoon|Mobile.*PaleMoon"},"os":{"AndroidOS":"Android","BlackBerryOS":"blackberry|\\bBB10\\b|rim tablet os","PalmOS":"PalmOS|avantgo|blazer|elaine|hiptop|palm|plucker|xiino","SymbianOS":"Symbian|SymbOS|Series60|Series40|SYB-[0-9]+|\\bS60\\b","WindowsMobileOS":"Windows CE.*(PPC|Smartphone|Mobile|[0-9]{3}x[0-9]{3})|Window Mobile|Windows Phone [0-9.]+|WCE;","WindowsPhoneOS":"Windows Phone 10.0|Windows Phone 8.1|Windows Phone 8.0|Windows Phone OS|XBLWP7|ZuneWP7|Windows NT 6.[23]; ARM;","iOS":"\\biPhone.*Mobile|\\biPod|\\biPad","MeeGoOS":"MeeGo","MaemoOS":"Maemo","JavaOS":"J2ME\/|\\bMIDP\\b|\\bCLDC\\b","webOS":"webOS|hpwOS","badaOS":"\\bBada\\b","BREWOS":"BREW"},"utilities":{"Bot":"Googlebot|facebookexternalhit|AdsBot-Google|Google Keyword Suggestion|Facebot|YandexBot|YandexMobileBot|bingbot|ia_archiver|AhrefsBot|Ezooms|GSLFbot|WBSearchBot|Twitterbot|TweetmemeBot|Twikle|PaperLiBot|Wotbox|UnwindFetchor|Exabot|MJ12bot|YandexImages|TurnitinBot|Pingdom","MobileBot":"Googlebot-Mobile|AdsBot-Google-Mobile|YahooSeeker\/M1A1-R2D2","DesktopMode":"WPDesktop","TV":"SonyDTV|HbbTV","WebKit":"(webkit)[ \/]([\\w.]+)","Console":"\\b(Nintendo|Nintendo WiiU|Nintendo 3DS|PLAYSTATION|Xbox)\\b","Watch":"SM-V700"}}}
\ No newline at end of file
diff --git a/vendor/mobiledetect/mobiledetectlib/Mobile_Detect.php b/vendor/mobiledetect/mobiledetectlib/Mobile_Detect.php
index 4e44ff3679..6d0a36d5d7 100644
--- a/vendor/mobiledetect/mobiledetectlib/Mobile_Detect.php
+++ b/vendor/mobiledetect/mobiledetectlib/Mobile_Detect.php
@@ -22,7 +22,7 @@
* README: https://github.com/serbanghita/Mobile-Detect/blob/master/README.md
* HOWTO: https://github.com/serbanghita/Mobile-Detect/wiki/Code-examples
*
- * @version 2.8.25
+ * @version 2.8.26
*/
class Mobile_Detect
@@ -66,7 +66,7 @@ class Mobile_Detect
/**
* Stores the version number of the current release.
*/
- const VERSION = '2.8.25';
+ const VERSION = '2.8.26';
/**
* A type for the version() method indicating a string return value.
@@ -220,7 +220,7 @@ class Mobile_Detect
// Removed |^.*Android.*Nexus(?!(?:Mobile).)*$
// @see #442
'NexusTablet' => 'Android.*Nexus[\s]+(7|9|10)',
- 'SamsungTablet' => 'SAMSUNG.*Tablet|Galaxy.*Tab|SC-01C|GT-P1000|GT-P1003|GT-P1010|GT-P3105|GT-P6210|GT-P6800|GT-P6810|GT-P7100|GT-P7300|GT-P7310|GT-P7500|GT-P7510|SCH-I800|SCH-I815|SCH-I905|SGH-I957|SGH-I987|SGH-T849|SGH-T859|SGH-T869|SPH-P100|GT-P3100|GT-P3108|GT-P3110|GT-P5100|GT-P5110|GT-P6200|GT-P7320|GT-P7511|GT-N8000|GT-P8510|SGH-I497|SPH-P500|SGH-T779|SCH-I705|SCH-I915|GT-N8013|GT-P3113|GT-P5113|GT-P8110|GT-N8010|GT-N8005|GT-N8020|GT-P1013|GT-P6201|GT-P7501|GT-N5100|GT-N5105|GT-N5110|SHV-E140K|SHV-E140L|SHV-E140S|SHV-E150S|SHV-E230K|SHV-E230L|SHV-E230S|SHW-M180K|SHW-M180L|SHW-M180S|SHW-M180W|SHW-M300W|SHW-M305W|SHW-M380K|SHW-M380S|SHW-M380W|SHW-M430W|SHW-M480K|SHW-M480S|SHW-M480W|SHW-M485W|SHW-M486W|SHW-M500W|GT-I9228|SCH-P739|SCH-I925|GT-I9200|GT-P5200|GT-P5210|GT-P5210X|SM-T311|SM-T310|SM-T310X|SM-T210|SM-T210R|SM-T211|SM-P600|SM-P601|SM-P605|SM-P900|SM-P901|SM-T217|SM-T217A|SM-T217S|SM-P6000|SM-T3100|SGH-I467|XE500|SM-T110|GT-P5220|GT-I9200X|GT-N5110X|GT-N5120|SM-P905|SM-T111|SM-T2105|SM-T315|SM-T320|SM-T320X|SM-T321|SM-T520|SM-T525|SM-T530NU|SM-T230NU|SM-T330NU|SM-T900|XE500T1C|SM-P605V|SM-P905V|SM-T337V|SM-T537V|SM-T707V|SM-T807V|SM-P600X|SM-P900X|SM-T210X|SM-T230|SM-T230X|SM-T325|GT-P7503|SM-T531|SM-T330|SM-T530|SM-T705|SM-T705C|SM-T535|SM-T331|SM-T800|SM-T700|SM-T537|SM-T807|SM-P907A|SM-T337A|SM-T537A|SM-T707A|SM-T807A|SM-T237|SM-T807P|SM-P607T|SM-T217T|SM-T337T|SM-T807T|SM-T116NQ|SM-P550|SM-T350|SM-T550|SM-T9000|SM-P9000|SM-T705Y|SM-T805|GT-P3113|SM-T710|SM-T810|SM-T815|SM-T360|SM-T533|SM-T113|SM-T335|SM-T715|SM-T560|SM-T670|SM-T677|SM-T377|SM-T567|SM-T357T|SM-T555|SM-T561|SM-T713|SM-T719|SM-T813|SM-T819|SM-T580|SM-T355Y|SM-T280|SM-T817A|SM-T820|SM-W700|SM-P580|SM-T587', // SCH-P709|SCH-P729|SM-T2558|GT-I9205 - Samsung Mega - treat them like a regular phone.
+ 'SamsungTablet' => 'SAMSUNG.*Tablet|Galaxy.*Tab|SC-01C|GT-P1000|GT-P1003|GT-P1010|GT-P3105|GT-P6210|GT-P6800|GT-P6810|GT-P7100|GT-P7300|GT-P7310|GT-P7500|GT-P7510|SCH-I800|SCH-I815|SCH-I905|SGH-I957|SGH-I987|SGH-T849|SGH-T859|SGH-T869|SPH-P100|GT-P3100|GT-P3108|GT-P3110|GT-P5100|GT-P5110|GT-P6200|GT-P7320|GT-P7511|GT-N8000|GT-P8510|SGH-I497|SPH-P500|SGH-T779|SCH-I705|SCH-I915|GT-N8013|GT-P3113|GT-P5113|GT-P8110|GT-N8010|GT-N8005|GT-N8020|GT-P1013|GT-P6201|GT-P7501|GT-N5100|GT-N5105|GT-N5110|SHV-E140K|SHV-E140L|SHV-E140S|SHV-E150S|SHV-E230K|SHV-E230L|SHV-E230S|SHW-M180K|SHW-M180L|SHW-M180S|SHW-M180W|SHW-M300W|SHW-M305W|SHW-M380K|SHW-M380S|SHW-M380W|SHW-M430W|SHW-M480K|SHW-M480S|SHW-M480W|SHW-M485W|SHW-M486W|SHW-M500W|GT-I9228|SCH-P739|SCH-I925|GT-I9200|GT-P5200|GT-P5210|GT-P5210X|SM-T311|SM-T310|SM-T310X|SM-T210|SM-T210R|SM-T211|SM-P600|SM-P601|SM-P605|SM-P900|SM-P901|SM-T217|SM-T217A|SM-T217S|SM-P6000|SM-T3100|SGH-I467|XE500|SM-T110|GT-P5220|GT-I9200X|GT-N5110X|GT-N5120|SM-P905|SM-T111|SM-T2105|SM-T315|SM-T320|SM-T320X|SM-T321|SM-T520|SM-T525|SM-T530NU|SM-T230NU|SM-T330NU|SM-T900|XE500T1C|SM-P605V|SM-P905V|SM-T337V|SM-T537V|SM-T707V|SM-T807V|SM-P600X|SM-P900X|SM-T210X|SM-T230|SM-T230X|SM-T325|GT-P7503|SM-T531|SM-T330|SM-T530|SM-T705|SM-T705C|SM-T535|SM-T331|SM-T800|SM-T700|SM-T537|SM-T807|SM-P907A|SM-T337A|SM-T537A|SM-T707A|SM-T807A|SM-T237|SM-T807P|SM-P607T|SM-T217T|SM-T337T|SM-T807T|SM-T116NQ|SM-T116BU|SM-P550|SM-T350|SM-T550|SM-T9000|SM-P9000|SM-T705Y|SM-T805|GT-P3113|SM-T710|SM-T810|SM-T815|SM-T360|SM-T533|SM-T113|SM-T335|SM-T715|SM-T560|SM-T670|SM-T677|SM-T377|SM-T567|SM-T357T|SM-T555|SM-T561|SM-T713|SM-T719|SM-T813|SM-T819|SM-T580|SM-T355Y|SM-T280|SM-T817A|SM-T820|SM-W700|SM-P580|SM-T587|SM-P350|SM-P555M|SM-P355M|SM-T113NU|SM-T815Y', // SCH-P709|SCH-P729|SM-T2558|GT-I9205 - Samsung Mega - treat them like a regular phone.
// http://docs.aws.amazon.com/silk/latest/developerguide/user-agent.html
'Kindle' => 'Kindle|Silk.*Accelerated|Android.*\b(KFOT|KFTT|KFJWI|KFJWA|KFOTE|KFSOWI|KFTHWI|KFTHWA|KFAPWI|KFAPWA|WFJWAE|KFSAWA|KFSAWI|KFASWI|KFARWI|KFFOWI|KFGIWI|KFMEWI)\b|Android.*Silk/[0-9.]+ like Chrome/[0-9.]+ (?!Mobile)',
// Only the Surface tablets with Windows RT are considered mobile.
@@ -230,7 +230,7 @@ class Mobile_Detect
'HPTablet' => 'HP Slate (7|8|10)|HP ElitePad 900|hp-tablet|EliteBook.*Touch|HP 8|Slate 21|HP SlateBook 10',
// Watch out for PadFone, see #132.
// http://www.asus.com/de/Tablets_Mobile/Memo_Pad_Products/
- 'AsusTablet' => '^.*PadFone((?!Mobile).)*$|Transformer|TF101|TF101G|TF300T|TF300TG|TF300TL|TF700T|TF700KL|TF701T|TF810C|ME171|ME301T|ME302C|ME371MG|ME370T|ME372MG|ME172V|ME173X|ME400C|Slider SL101|\bK00F\b|\bK00C\b|\bK00E\b|\bK00L\b|TX201LA|ME176C|ME102A|\bM80TA\b|ME372CL|ME560CG|ME372CG|ME302KL| K010 | K011 | K017 | K01E |ME572C|ME103K|ME170C|ME171C|\bME70C\b|ME581C|ME581CL|ME8510C|ME181C|P01Y|PO1MA|P01Z',
+ 'AsusTablet' => '^.*PadFone((?!Mobile).)*$|Transformer|TF101|TF101G|TF300T|TF300TG|TF300TL|TF700T|TF700KL|TF701T|TF810C|ME171|ME301T|ME302C|ME371MG|ME370T|ME372MG|ME172V|ME173X|ME400C|Slider SL101|\bK00F\b|\bK00C\b|\bK00E\b|\bK00L\b|TX201LA|ME176C|ME102A|\bM80TA\b|ME372CL|ME560CG|ME372CG|ME302KL| K010 | K011 | K017 | K01E |ME572C|ME103K|ME170C|ME171C|\bME70C\b|ME581C|ME581CL|ME8510C|ME181C|P01Y|PO1MA|P01Z|\bP027\b',
'BlackBerryTablet' => 'PlayBook|RIM Tablet',
'HTCtablet' => 'HTC_Flyer_P512|HTC Flyer|HTC Jetstream|HTC-P715a|HTC EVO View 4G|PG41200|PG09410',
'MotorolaTablet' => 'xoom|sholest|MZ615|MZ605|MZ505|MZ601|MZ602|MZ603|MZ604|MZ606|MZ607|MZ608|MZ609|MZ615|MZ616|MZ617',
@@ -252,7 +252,7 @@ class Mobile_Detect
// Prestigio Tablets http://www.prestigio.com/support
'PrestigioTablet' => 'PMP3170B|PMP3270B|PMP3470B|PMP7170B|PMP3370B|PMP3570C|PMP5870C|PMP3670B|PMP5570C|PMP5770D|PMP3970B|PMP3870C|PMP5580C|PMP5880D|PMP5780D|PMP5588C|PMP7280C|PMP7280C3G|PMP7280|PMP7880D|PMP5597D|PMP5597|PMP7100D|PER3464|PER3274|PER3574|PER3884|PER5274|PER5474|PMP5097CPRO|PMP5097|PMP7380D|PMP5297C|PMP5297C_QUAD|PMP812E|PMP812E3G|PMP812F|PMP810E|PMP880TD|PMT3017|PMT3037|PMT3047|PMT3057|PMT7008|PMT5887|PMT5001|PMT5002',
// http://support.lenovo.com/en_GB/downloads/default.page?#
- 'LenovoTablet' => 'Lenovo TAB|Idea(Tab|Pad)( A1|A10| K1|)|ThinkPad([ ]+)?Tablet|YT3-X90L|YT3-X90F|YT3-X90X|Lenovo.*(S2109|S2110|S5000|S6000|K3011|A3000|A3500|A1000|A2107|A2109|A1107|A5500|A7600|B6000|B8000|B8080)(-|)(FL|F|HV|H|)',
+ 'LenovoTablet' => 'Lenovo TAB|Idea(Tab|Pad)( A1|A10| K1|)|ThinkPad([ ]+)?Tablet|YT3-850M|YT3-X90L|YT3-X90F|YT3-X90X|Lenovo.*(S2109|S2110|S5000|S6000|K3011|A3000|A3500|A1000|A2107|A2109|A1107|A5500|A7600|B6000|B8000|B8080)(-|)(FL|F|HV|H|)',
// http://www.dell.com/support/home/us/en/04/Products/tab_mob/tablets
'DellTablet' => 'Venue 11|Venue 8|Venue 7|Dell Streak 10|Dell Streak 7',
// http://www.yarvik.com/en/matrix/tablets/
@@ -451,6 +451,7 @@ class Mobile_Detect
// http://www.nbru.cn/index.html
'NibiruTablet' => 'Nibiru M1|Nibiru Jupiter One',
// http://navroad.com/products/produkty/tablety/
+ // http://navroad.com/products/produkty/tablety/
'NexoTablet' => 'NEXO NOVA|NEXO 10|NEXO AVIO|NEXO FREE|NEXO GO|NEXO EVO|NEXO 3G|NEXO SMART|NEXO KIDDO|NEXO MOBI',
// http://leader-online.com/new_site/product-category/tablets/
// http://www.leader-online.net.au/List/Tablet
@@ -467,7 +468,7 @@ class Mobile_Detect
'Hudl' => 'Hudl HT7S3|Hudl 2',
// http://www.telstra.com.au/home-phone/thub-2/
'TelstraTablet' => 'T-Hub2',
- 'GenericTablet' => 'Android.*\b97D\b|Tablet(?!.*PC)|BNTV250A|MID-WCDMA|LogicPD Zoom2|\bA7EB\b|CatNova8|A1_07|CT704|CT1002|\bM721\b|rk30sdk|\bEVOTAB\b|M758A|ET904|ALUMIUM10|Smartfren Tab|Endeavour 1010|Tablet-PC-4|Tagi Tab|\bM6pro\b|CT1020W|arc 10HD|\bTP750\b'
+ 'GenericTablet' => 'Android.*\b97D\b|Tablet(?!.*PC)|BNTV250A|MID-WCDMA|LogicPD Zoom2|\bA7EB\b|CatNova8|A1_07|CT704|CT1002|\bM721\b|rk30sdk|\bEVOTAB\b|M758A|ET904|ALUMIUM10|Smartfren Tab|Endeavour 1010|Tablet-PC-4|Tagi Tab|\bM6pro\b|CT1020W|arc 10HD|\bTP750\b|\bQTAQZ3\b'
);
/**
diff --git a/vendor/mobiledetect/mobiledetectlib/README.md b/vendor/mobiledetect/mobiledetectlib/README.md
index 2bbcf05fc2..c33d70149f 100644
--- a/vendor/mobiledetect/mobiledetectlib/README.md
+++ b/vendor/mobiledetect/mobiledetectlib/README.md
@@ -120,7 +120,7 @@ Made by [Siegfried Neumann](https://www.drupal.org/user/45267).
which integrates Context and PHP Mobile Detect library.
Created by [Artem Shymko](https://www.drupal.org/user/432492).
-* [Drupal Mobile Detect](https://www.drupal.org/project/mobile_detect]) - Lightweight mobile detect module for Drupal
+* [Drupal Mobile Detect](https://www.drupal.org/project/mobile_detect) - Lightweight mobile detect module for Drupal
created by [Matthew Donadio](https://www.drupal.org/user/325244).
**Joomla**
diff --git a/vendor/pear-pear.php.net/Archive_Tar/Archive/Tar.php b/vendor/pear-pear.php.net/Archive_Tar/Archive/Tar.php
index 202fffb233..0bd1c6caae 100644
--- a/vendor/pear-pear.php.net/Archive_Tar/Archive/Tar.php
+++ b/vendor/pear-pear.php.net/Archive_Tar/Archive/Tar.php
@@ -659,7 +659,7 @@ class Archive_Tar extends PEAR
}
// ----- Get the arguments
- $v_att_list = & func_get_args();
+ $v_att_list = func_get_args();
// ----- Read the attributes
$i = 0;
diff --git a/vendor/pear-pear.php.net/PEAR/OS/Guess.php b/vendor/pear-pear.php.net/PEAR/OS/Guess.php
index ffa15355cf..ff2d28ec73 100644
--- a/vendor/pear-pear.php.net/PEAR/OS/Guess.php
+++ b/vendor/pear-pear.php.net/PEAR/OS/Guess.php
@@ -86,7 +86,7 @@
* @author Gregory Beaver
* @copyright 1997-2009 The Authors
* @license http://opensource.org/licenses/bsd-license.php New BSD License
- * @version Release: 1.10.4
+ * @version Release: 1.10.5
* @link http://pear.php.net/package/PEAR
* @since Class available since Release 0.1
*/
diff --git a/vendor/pear-pear.php.net/PEAR/PEAR.php b/vendor/pear-pear.php.net/PEAR/PEAR.php
index 5737f71b15..31f1f78d8b 100644
--- a/vendor/pear-pear.php.net/PEAR/PEAR.php
+++ b/vendor/pear-pear.php.net/PEAR/PEAR.php
@@ -75,7 +75,7 @@ $GLOBALS['_PEAR_error_handler_stack'] = array();
* @author Greg Beaver
* @copyright 1997-2006 The PHP Group
* @license http://opensource.org/licenses/bsd-license.php New BSD License
- * @version Release: 1.10.4
+ * @version Release: 1.10.5
* @link http://pear.php.net/package/PEAR
* @see PEAR_Error
* @since Class available since PHP 4.0.2
@@ -823,7 +823,7 @@ function _PEAR_call_destructors()
* @author Gregory Beaver
* @copyright 1997-2006 The PHP Group
* @license http://opensource.org/licenses/bsd-license.php New BSD License
- * @version Release: 1.10.4
+ * @version Release: 1.10.5
* @link http://pear.php.net/manual/en/core.pear.pear-error.php
* @see PEAR::raiseError(), PEAR::throwError()
* @since Class available since PHP 4.0.2
diff --git a/vendor/pear-pear.php.net/PEAR/PEAR/Builder.php b/vendor/pear-pear.php.net/PEAR/PEAR/Builder.php
index d69bc14f1c..acc9ea499b 100644
--- a/vendor/pear-pear.php.net/PEAR/PEAR/Builder.php
+++ b/vendor/pear-pear.php.net/PEAR/PEAR/Builder.php
@@ -33,7 +33,7 @@ require_once 'System.php';
* @author Greg Beaver
* @copyright 1997-2009 The Authors
* @license http://opensource.org/licenses/bsd-license.php New BSD License
- * @version Release: 1.10.4
+ * @version Release: 1.10.5
* @link http://pear.php.net/package/PEAR
* @since Class available since PHP 4.0.2
* @see http://pear.php.net/manual/en/core.ppm.pear-builder.php
@@ -385,7 +385,7 @@ class PEAR_Builder extends PEAR_Common
if (!file_exists($build_dir) || !is_dir($build_dir) || !chdir($build_dir)) {
return $this->raiseError("could not chdir to $build_dir");
}
- putenv('PHP_PEAR_VERSION=1.10.4');
+ putenv('PHP_PEAR_VERSION=1.10.5');
foreach ($to_run as $cmd) {
$err = $this->_runCommand($cmd, $callback);
if (PEAR::isError($err)) {
diff --git a/vendor/pear-pear.php.net/PEAR/PEAR/ChannelFile.php b/vendor/pear-pear.php.net/PEAR/PEAR/ChannelFile.php
index d81deb43a1..8af6ddcdff 100644
--- a/vendor/pear-pear.php.net/PEAR/PEAR/ChannelFile.php
+++ b/vendor/pear-pear.php.net/PEAR/PEAR/ChannelFile.php
@@ -145,7 +145,7 @@ $GLOBALS['_PEAR_CHANNELS_MIRROR_TYPES'] = array('server');
* @author Greg Beaver
* @copyright 1997-2009 The Authors
* @license http://opensource.org/licenses/bsd-license.php New BSD License
- * @version Release: 1.10.4
+ * @version Release: 1.10.5
* @link http://pear.php.net/package/PEAR
* @since Class available since Release 1.4.0a1
*/
diff --git a/vendor/pear-pear.php.net/PEAR/PEAR/ChannelFile/Parser.php b/vendor/pear-pear.php.net/PEAR/PEAR/ChannelFile/Parser.php
index 01bb7f3fbe..a1ef022169 100644
--- a/vendor/pear-pear.php.net/PEAR/PEAR/ChannelFile/Parser.php
+++ b/vendor/pear-pear.php.net/PEAR/PEAR/ChannelFile/Parser.php
@@ -25,7 +25,7 @@ require_once 'PEAR/ChannelFile.php';
* @author Greg Beaver
* @copyright 1997-2009 The Authors
* @license http://opensource.org/licenses/bsd-license.php New BSD License
- * @version Release: 1.10.4
+ * @version Release: 1.10.5
* @link http://pear.php.net/package/PEAR
* @since Class available since Release 1.4.0a1
*/
diff --git a/vendor/pear-pear.php.net/PEAR/PEAR/Command.php b/vendor/pear-pear.php.net/PEAR/PEAR/Command.php
index 411f7a49b2..2402acabab 100644
--- a/vendor/pear-pear.php.net/PEAR/PEAR/Command.php
+++ b/vendor/pear-pear.php.net/PEAR/PEAR/Command.php
@@ -93,7 +93,7 @@ $GLOBALS['_PEAR_Command_objects'] = array();
* @author Greg Beaver
* @copyright 1997-2009 The Authors
* @license http://opensource.org/licenses/bsd-license.php New BSD License
- * @version Release: 1.10.4
+ * @version Release: 1.10.5
* @link http://pear.php.net/package/PEAR
* @since Class available since Release 0.1
*/
diff --git a/vendor/pear-pear.php.net/PEAR/PEAR/Command/Auth.php b/vendor/pear-pear.php.net/PEAR/PEAR/Command/Auth.php
index fecfd875ef..bd1c2b1c9b 100644
--- a/vendor/pear-pear.php.net/PEAR/PEAR/Command/Auth.php
+++ b/vendor/pear-pear.php.net/PEAR/PEAR/Command/Auth.php
@@ -29,7 +29,7 @@ require_once 'PEAR/Command/Channels.php';
* @author Greg Beaver
* @copyright 1997-2009 The Authors
* @license http://opensource.org/licenses/bsd-license.php New BSD License
- * @version Release: 1.10.4
+ * @version Release: 1.10.5
* @link http://pear.php.net/package/PEAR
* @since Class available since Release 0.1
* @deprecated since 1.8.0alpha1
diff --git a/vendor/pear-pear.php.net/PEAR/PEAR/Command/Build.php b/vendor/pear-pear.php.net/PEAR/PEAR/Command/Build.php
index aecc90d8b2..95aaefb640 100644
--- a/vendor/pear-pear.php.net/PEAR/PEAR/Command/Build.php
+++ b/vendor/pear-pear.php.net/PEAR/PEAR/Command/Build.php
@@ -30,7 +30,7 @@ require_once 'PEAR/Command/Common.php';
* @author Greg Beaver
* @copyright 1997-2009 The Authors
* @license http://opensource.org/licenses/bsd-license.php New BSD License
- * @version Release: 1.10.4
+ * @version Release: 1.10.5
* @link http://pear.php.net/package/PEAR
* @since Class available since Release 0.1
*/
diff --git a/vendor/pear-pear.php.net/PEAR/PEAR/Command/Channels.php b/vendor/pear-pear.php.net/PEAR/PEAR/Command/Channels.php
index fa190d39c2..ee76a2e3cf 100644
--- a/vendor/pear-pear.php.net/PEAR/PEAR/Command/Channels.php
+++ b/vendor/pear-pear.php.net/PEAR/PEAR/Command/Channels.php
@@ -31,7 +31,7 @@ define('PEAR_COMMAND_CHANNELS_CHANNEL_EXISTS', -500);
* @author Greg Beaver
* @copyright 1997-2009 The Authors
* @license http://opensource.org/licenses/bsd-license.php New BSD License
- * @version Release: 1.10.4
+ * @version Release: 1.10.5
* @link http://pear.php.net/package/PEAR
* @since Class available since Release 1.4.0a1
*/
diff --git a/vendor/pear-pear.php.net/PEAR/PEAR/Command/Common.php b/vendor/pear-pear.php.net/PEAR/PEAR/Command/Common.php
index 8d972b6f1b..7890d7a515 100644
--- a/vendor/pear-pear.php.net/PEAR/PEAR/Command/Common.php
+++ b/vendor/pear-pear.php.net/PEAR/PEAR/Command/Common.php
@@ -28,7 +28,7 @@ require_once 'PEAR.php';
* @author Greg Beaver
* @copyright 1997-2009 The Authors
* @license http://opensource.org/licenses/bsd-license.php New BSD License
- * @version Release: 1.10.4
+ * @version Release: 1.10.5
* @link http://pear.php.net/package/PEAR
* @since Class available since Release 0.1
*/
diff --git a/vendor/pear-pear.php.net/PEAR/PEAR/Command/Config.php b/vendor/pear-pear.php.net/PEAR/PEAR/Command/Config.php
index 18dd61451a..eb6cfc8dcf 100644
--- a/vendor/pear-pear.php.net/PEAR/PEAR/Command/Config.php
+++ b/vendor/pear-pear.php.net/PEAR/PEAR/Command/Config.php
@@ -28,7 +28,7 @@ require_once 'PEAR/Command/Common.php';
* @author Greg Beaver
* @copyright 1997-2009 The Authors
* @license http://opensource.org/licenses/bsd-license.php New BSD License
- * @version Release: 1.10.4
+ * @version Release: 1.10.5
* @link http://pear.php.net/package/PEAR
* @since Class available since Release 0.1
*/
diff --git a/vendor/pear-pear.php.net/PEAR/PEAR/Command/Install.php b/vendor/pear-pear.php.net/PEAR/PEAR/Command/Install.php
index 42c1f55867..1595c8296c 100644
--- a/vendor/pear-pear.php.net/PEAR/PEAR/Command/Install.php
+++ b/vendor/pear-pear.php.net/PEAR/PEAR/Command/Install.php
@@ -29,7 +29,7 @@ require_once 'PEAR/Command/Common.php';
* @author Greg Beaver
* @copyright 1997-2009 The Authors
* @license http://opensource.org/licenses/bsd-license.php New BSD License
- * @version Release: 1.10.4
+ * @version Release: 1.10.5
* @link http://pear.php.net/package/PEAR
* @since Class available since Release 0.1
*/
diff --git a/vendor/pear-pear.php.net/PEAR/PEAR/Command/Mirror.php b/vendor/pear-pear.php.net/PEAR/PEAR/Command/Mirror.php
index 616417cb3a..0d80976f0a 100644
--- a/vendor/pear-pear.php.net/PEAR/PEAR/Command/Mirror.php
+++ b/vendor/pear-pear.php.net/PEAR/PEAR/Command/Mirror.php
@@ -26,7 +26,7 @@ require_once 'PEAR/Command/Common.php';
* @author Alexander Merz
* @copyright 1997-2009 The Authors
* @license http://opensource.org/licenses/bsd-license.php New BSD License
- * @version Release: 1.10.4
+ * @version Release: 1.10.5
* @link http://pear.php.net/package/PEAR
* @since Class available since Release 1.2.0
*/
diff --git a/vendor/pear-pear.php.net/PEAR/PEAR/Command/Package.php b/vendor/pear-pear.php.net/PEAR/PEAR/Command/Package.php
index 8847112e60..eac81ea9c2 100644
--- a/vendor/pear-pear.php.net/PEAR/PEAR/Command/Package.php
+++ b/vendor/pear-pear.php.net/PEAR/PEAR/Command/Package.php
@@ -31,7 +31,7 @@ require_once 'PEAR/Command/Common.php';
* @author Greg Beaver
* @copyright 1997-2009 The Authors
* @license http://opensource.org/licenses/bsd-license.php New BSD License
- * @version Release: 1.10.4
+ * @version Release: 1.10.5
* @link http://pear.php.net/package/PEAR
* @since Class available since Release 0.1
*/
diff --git a/vendor/pear-pear.php.net/PEAR/PEAR/Command/Pickle.php b/vendor/pear-pear.php.net/PEAR/PEAR/Command/Pickle.php
index 7a7bd81c0b..476a3f8958 100644
--- a/vendor/pear-pear.php.net/PEAR/PEAR/Command/Pickle.php
+++ b/vendor/pear-pear.php.net/PEAR/PEAR/Command/Pickle.php
@@ -26,7 +26,7 @@ require_once 'PEAR/Command/Common.php';
* @author Greg Beaver
* @copyright 2005-2009 The Authors
* @license http://opensource.org/licenses/bsd-license.php New BSD License
- * @version Release: 1.10.4
+ * @version Release: 1.10.5
* @link http://pear.php.net/package/PEAR
* @since Class available since Release 1.4.1
*/
diff --git a/vendor/pear-pear.php.net/PEAR/PEAR/Command/Registry.php b/vendor/pear-pear.php.net/PEAR/PEAR/Command/Registry.php
index b5423c762e..bff62b996d 100644
--- a/vendor/pear-pear.php.net/PEAR/PEAR/Command/Registry.php
+++ b/vendor/pear-pear.php.net/PEAR/PEAR/Command/Registry.php
@@ -28,7 +28,7 @@ require_once 'PEAR/Command/Common.php';
* @author Greg Beaver
* @copyright 1997-2009 The Authors
* @license http://opensource.org/licenses/bsd-license.php New BSD License
- * @version Release: 1.10.4
+ * @version Release: 1.10.5
* @link http://pear.php.net/package/PEAR
* @since Class available since Release 0.1
*/
diff --git a/vendor/pear-pear.php.net/PEAR/PEAR/Command/Remote.php b/vendor/pear-pear.php.net/PEAR/PEAR/Command/Remote.php
index 817b733285..47da2a3ade 100644
--- a/vendor/pear-pear.php.net/PEAR/PEAR/Command/Remote.php
+++ b/vendor/pear-pear.php.net/PEAR/PEAR/Command/Remote.php
@@ -30,7 +30,7 @@ require_once 'PEAR/REST.php';
* @author Greg Beaver
* @copyright 1997-2009 The Authors
* @license http://opensource.org/licenses/bsd-license.php New BSD License
- * @version Release: 1.10.4
+ * @version Release: 1.10.5
* @link http://pear.php.net/package/PEAR
* @since Class available since Release 0.1
*/
diff --git a/vendor/pear-pear.php.net/PEAR/PEAR/Command/Test.php b/vendor/pear-pear.php.net/PEAR/PEAR/Command/Test.php
index 0f6c8dc24e..f16057bbeb 100644
--- a/vendor/pear-pear.php.net/PEAR/PEAR/Command/Test.php
+++ b/vendor/pear-pear.php.net/PEAR/PEAR/Command/Test.php
@@ -30,7 +30,7 @@ require_once 'PEAR/Command/Common.php';
* @author Greg Beaver
* @copyright 1997-2009 The Authors
* @license http://opensource.org/licenses/bsd-license.php New BSD License
- * @version Release: 1.10.4
+ * @version Release: 1.10.5
* @link http://pear.php.net/package/PEAR
* @since Class available since Release 0.1
*/
diff --git a/vendor/pear-pear.php.net/PEAR/PEAR/Common.php b/vendor/pear-pear.php.net/PEAR/PEAR/Common.php
index 0b00b00bc5..8b6bc57fdb 100644
--- a/vendor/pear-pear.php.net/PEAR/PEAR/Common.php
+++ b/vendor/pear-pear.php.net/PEAR/PEAR/Common.php
@@ -117,7 +117,7 @@ $GLOBALS['_PEAR_Common_script_phases'] = array('pre-install', 'post-install', 'p
* @author Greg Beaver
* @copyright 1997-2009 The Authors
* @license http://opensource.org/licenses/bsd-license.php New BSD License
- * @version Release: 1.10.4
+ * @version Release: 1.10.5
* @link http://pear.php.net/package/PEAR
* @since Class available since Release 1.4.0a1
* @deprecated This class will disappear, and its components will be spread
diff --git a/vendor/pear-pear.php.net/PEAR/PEAR/Config.php b/vendor/pear-pear.php.net/PEAR/PEAR/Config.php
index e86c501341..84162fccc3 100644
--- a/vendor/pear-pear.php.net/PEAR/PEAR/Config.php
+++ b/vendor/pear-pear.php.net/PEAR/PEAR/Config.php
@@ -264,7 +264,7 @@ if (getenv('PHP_PEAR_SIG_KEYDIR')) {
* @author Greg Beaver
* @copyright 1997-2009 The Authors
* @license http://opensource.org/licenses/bsd-license.php New BSD License
- * @version Release: 1.10.4
+ * @version Release: 1.10.5
* @link http://pear.php.net/package/PEAR
* @since Class available since Release 0.1
*/
diff --git a/vendor/pear-pear.php.net/PEAR/PEAR/Dependency2.php b/vendor/pear-pear.php.net/PEAR/PEAR/Dependency2.php
index b142883b32..2eb0d00835 100644
--- a/vendor/pear-pear.php.net/PEAR/PEAR/Dependency2.php
+++ b/vendor/pear-pear.php.net/PEAR/PEAR/Dependency2.php
@@ -30,7 +30,7 @@ require_once 'PEAR/Validate.php';
* @author Greg Beaver
* @copyright 1997-2009 The Authors
* @license http://opensource.org/licenses/bsd-license.php New BSD License
- * @version Release: 1.10.4
+ * @version Release: 1.10.5
* @link http://pear.php.net/package/PEAR
* @since Class available since Release 1.4.0a1
*/
@@ -540,7 +540,7 @@ class PEAR_Dependency2
*/
function getPEARVersion()
{
- return '1.10.4';
+ return '1.10.5';
}
function validatePearinstallerDependency($dep)
diff --git a/vendor/pear-pear.php.net/PEAR/PEAR/DependencyDB.php b/vendor/pear-pear.php.net/PEAR/PEAR/DependencyDB.php
index 0d48613acd..8cc104300f 100644
--- a/vendor/pear-pear.php.net/PEAR/PEAR/DependencyDB.php
+++ b/vendor/pear-pear.php.net/PEAR/PEAR/DependencyDB.php
@@ -29,7 +29,7 @@ $GLOBALS['_PEAR_DEPENDENCYDB_INSTANCE'] = array();
* @author Tomas V.V.Cox
* @copyright 1997-2009 The Authors
* @license http://opensource.org/licenses/bsd-license.php New BSD License
- * @version Release: 1.10.4
+ * @version Release: 1.10.5
* @link http://pear.php.net/package/PEAR
* @since Class available since Release 1.4.0a1
*/
diff --git a/vendor/pear-pear.php.net/PEAR/PEAR/Downloader.php b/vendor/pear-pear.php.net/PEAR/PEAR/Downloader.php
index a498f134b9..9ba27a57ac 100644
--- a/vendor/pear-pear.php.net/PEAR/PEAR/Downloader.php
+++ b/vendor/pear-pear.php.net/PEAR/PEAR/Downloader.php
@@ -39,7 +39,7 @@ define('PEAR_INSTALLER_ERROR_NO_PREF_STATE', 2);
* @author Martin Jansen
* @copyright 1997-2009 The Authors
* @license http://opensource.org/licenses/bsd-license.php New BSD License
- * @version Release: 1.10.4
+ * @version Release: 1.10.5
* @link http://pear.php.net/package/PEAR
* @since Class available since Release 1.3.0
*/
@@ -1635,7 +1635,7 @@ class PEAR_Downloader extends PEAR_Common
}
$request .= $ifmodifiedsince .
- "User-Agent: PEAR/1.10.4/PHP/" . PHP_VERSION . "\r\n";
+ "User-Agent: PEAR/1.10.5/PHP/" . PHP_VERSION . "\r\n";
if ($object !== null) { // only pass in authentication for non-static calls
$username = $config->get('username', null, $channel);
diff --git a/vendor/pear-pear.php.net/PEAR/PEAR/Downloader/Package.php b/vendor/pear-pear.php.net/PEAR/PEAR/Downloader/Package.php
index 42b35b5b68..17dc4174e8 100644
--- a/vendor/pear-pear.php.net/PEAR/PEAR/Downloader/Package.php
+++ b/vendor/pear-pear.php.net/PEAR/PEAR/Downloader/Package.php
@@ -49,7 +49,7 @@ define('PEAR_DOWNLOADER_PACKAGE_PHPVERSION', -1004);
* @author Greg Beaver
* @copyright 1997-2009 The Authors
* @license http://opensource.org/licenses/bsd-license.php New BSD License
- * @version Release: 1.10.4
+ * @version Release: 1.10.5
* @link http://pear.php.net/package/PEAR
* @since Class available since Release 1.4.0a1
*/
diff --git a/vendor/pear-pear.php.net/PEAR/PEAR/ErrorStack.php b/vendor/pear-pear.php.net/PEAR/PEAR/ErrorStack.php
index 53eda7c3df..c03f41b4ba 100644
--- a/vendor/pear-pear.php.net/PEAR/PEAR/ErrorStack.php
+++ b/vendor/pear-pear.php.net/PEAR/PEAR/ErrorStack.php
@@ -131,7 +131,7 @@ define('PEAR_ERRORSTACK_ERR_OBJTOSTRING', 2);
* $local_stack = new PEAR_ErrorStack('MyPackage');
*
* @author Greg Beaver
- * @version 1.10.4
+ * @version 1.10.5
* @package PEAR_ErrorStack
* @category Debugging
* @copyright 2004-2008 Greg Beaver
diff --git a/vendor/pear-pear.php.net/PEAR/PEAR/Exception.php b/vendor/pear-pear.php.net/PEAR/PEAR/Exception.php
index d0e84dc1fa..9d8569c4db 100644
--- a/vendor/pear-pear.php.net/PEAR/PEAR/Exception.php
+++ b/vendor/pear-pear.php.net/PEAR/PEAR/Exception.php
@@ -88,7 +88,7 @@
* @author Greg Beaver
* @copyright 1997-2009 The Authors
* @license http://opensource.org/licenses/bsd-license.php New BSD License
- * @version Release: 1.10.4
+ * @version Release: 1.10.5
* @link http://pear.php.net/package/PEAR
* @since Class available since Release 1.3.3
*
diff --git a/vendor/pear-pear.php.net/PEAR/PEAR/Frontend.php b/vendor/pear-pear.php.net/PEAR/PEAR/Frontend.php
index a9d9b73cc3..d6f52043ea 100644
--- a/vendor/pear-pear.php.net/PEAR/PEAR/Frontend.php
+++ b/vendor/pear-pear.php.net/PEAR/PEAR/Frontend.php
@@ -38,7 +38,7 @@ $GLOBALS['_PEAR_FRONTEND_SINGLETON'] = null;
* @author Greg Beaver
* @copyright 1997-2009 The Authors
* @license http://opensource.org/licenses/bsd-license.php New BSD License
- * @version Release: 1.10.4
+ * @version Release: 1.10.5
* @link http://pear.php.net/package/PEAR
* @since Class available since Release 1.4.0a1
*/
diff --git a/vendor/pear-pear.php.net/PEAR/PEAR/Frontend/CLI.php b/vendor/pear-pear.php.net/PEAR/PEAR/Frontend/CLI.php
index 5e83216edb..79e06816f2 100644
--- a/vendor/pear-pear.php.net/PEAR/PEAR/Frontend/CLI.php
+++ b/vendor/pear-pear.php.net/PEAR/PEAR/Frontend/CLI.php
@@ -26,7 +26,7 @@ require_once 'PEAR/Frontend.php';
* @author Greg Beaver
* @copyright 1997-2009 The Authors
* @license http://opensource.org/licenses/bsd-license.php New BSD License
- * @version Release: 1.10.4
+ * @version Release: 1.10.5
* @link http://pear.php.net/package/PEAR
* @since Class available since Release 0.1
*/
diff --git a/vendor/pear-pear.php.net/PEAR/PEAR/Installer.php b/vendor/pear-pear.php.net/PEAR/PEAR/Installer.php
index b96b8e011a..8cc6887e85 100644
--- a/vendor/pear-pear.php.net/PEAR/PEAR/Installer.php
+++ b/vendor/pear-pear.php.net/PEAR/PEAR/Installer.php
@@ -35,7 +35,7 @@ define('PEAR_INSTALLER_NOBINARY', -240);
* @author Greg Beaver
* @copyright 1997-2009 The Authors
* @license http://opensource.org/licenses/bsd-license.php New BSD License
- * @version Release: 1.10.4
+ * @version Release: 1.10.5
* @link http://pear.php.net/package/PEAR
* @since Class available since Release 0.1
*/
diff --git a/vendor/pear-pear.php.net/PEAR/PEAR/Installer/Role.php b/vendor/pear-pear.php.net/PEAR/PEAR/Installer/Role.php
index 0ca3bac637..c87583fe0c 100644
--- a/vendor/pear-pear.php.net/PEAR/PEAR/Installer/Role.php
+++ b/vendor/pear-pear.php.net/PEAR/PEAR/Installer/Role.php
@@ -24,7 +24,7 @@ require_once 'PEAR/XMLParser.php';
* @author Greg Beaver
* @copyright 1997-2009 The Authors
* @license http://opensource.org/licenses/bsd-license.php New BSD License
- * @version Release: 1.10.4
+ * @version Release: 1.10.5
* @link http://pear.php.net/package/PEAR
* @since Class available since Release 1.4.0a1
*/
diff --git a/vendor/pear-pear.php.net/PEAR/PEAR/Installer/Role/Cfg.php b/vendor/pear-pear.php.net/PEAR/PEAR/Installer/Role/Cfg.php
index eb126b62df..a90cdcf89f 100644
--- a/vendor/pear-pear.php.net/PEAR/PEAR/Installer/Role/Cfg.php
+++ b/vendor/pear-pear.php.net/PEAR/PEAR/Installer/Role/Cfg.php
@@ -19,7 +19,7 @@
* @author Greg Beaver
* @copyright 2007-2009 The Authors
* @license http://opensource.org/licenses/bsd-license.php New BSD License
- * @version Release: 1.10.4
+ * @version Release: 1.10.5
* @link http://pear.php.net/package/PEAR
* @since Class available since Release 1.7.0
*/
diff --git a/vendor/pear-pear.php.net/PEAR/PEAR/Installer/Role/Common.php b/vendor/pear-pear.php.net/PEAR/PEAR/Installer/Role/Common.php
index 1bd8f78cc7..1e8230c104 100644
--- a/vendor/pear-pear.php.net/PEAR/PEAR/Installer/Role/Common.php
+++ b/vendor/pear-pear.php.net/PEAR/PEAR/Installer/Role/Common.php
@@ -23,7 +23,7 @@
* @author Greg Beaver
* @copyright 1997-2006 The PHP Group
* @license http://opensource.org/licenses/bsd-license.php New BSD License
- * @version Release: 1.10.4
+ * @version Release: 1.10.5
* @link http://pear.php.net/package/PEAR
* @since Class available since Release 1.4.0a1
*/
diff --git a/vendor/pear-pear.php.net/PEAR/PEAR/Installer/Role/Data.php b/vendor/pear-pear.php.net/PEAR/PEAR/Installer/Role/Data.php
index ad29577809..84df95a528 100644
--- a/vendor/pear-pear.php.net/PEAR/PEAR/Installer/Role/Data.php
+++ b/vendor/pear-pear.php.net/PEAR/PEAR/Installer/Role/Data.php
@@ -19,7 +19,7 @@
* @author Greg Beaver
* @copyright 1997-2009 The Authors
* @license http://opensource.org/licenses/bsd-license.php New BSD License
- * @version Release: 1.10.4
+ * @version Release: 1.10.5
* @link http://pear.php.net/package/PEAR
* @since Class available since Release 1.4.0a1
*/
diff --git a/vendor/pear-pear.php.net/PEAR/PEAR/Installer/Role/Doc.php b/vendor/pear-pear.php.net/PEAR/PEAR/Installer/Role/Doc.php
index 31c069fed6..4bb7887c05 100644
--- a/vendor/pear-pear.php.net/PEAR/PEAR/Installer/Role/Doc.php
+++ b/vendor/pear-pear.php.net/PEAR/PEAR/Installer/Role/Doc.php
@@ -19,7 +19,7 @@
* @author Greg Beaver
* @copyright 1997-2009 The Authors
* @license http://opensource.org/licenses/bsd-license.php New BSD License
- * @version Release: 1.10.4
+ * @version Release: 1.10.5
* @link http://pear.php.net/package/PEAR
* @since Class available since Release 1.4.0a1
*/
diff --git a/vendor/pear-pear.php.net/PEAR/PEAR/Installer/Role/Ext.php b/vendor/pear-pear.php.net/PEAR/PEAR/Installer/Role/Ext.php
index 71d07d4224..ee2c19e9c4 100644
--- a/vendor/pear-pear.php.net/PEAR/PEAR/Installer/Role/Ext.php
+++ b/vendor/pear-pear.php.net/PEAR/PEAR/Installer/Role/Ext.php
@@ -19,7 +19,7 @@
* @author Greg Beaver
* @copyright 1997-2009 The Authors
* @license http://opensource.org/licenses/bsd-license.php New BSD License
- * @version Release: 1.10.4
+ * @version Release: 1.10.5
* @link http://pear.php.net/package/PEAR
* @since Class available since Release 1.4.0a1
*/
diff --git a/vendor/pear-pear.php.net/PEAR/PEAR/Installer/Role/Man.php b/vendor/pear-pear.php.net/PEAR/PEAR/Installer/Role/Man.php
index 91a586b3a8..f739fd2f9b 100644
--- a/vendor/pear-pear.php.net/PEAR/PEAR/Installer/Role/Man.php
+++ b/vendor/pear-pear.php.net/PEAR/PEAR/Installer/Role/Man.php
@@ -20,7 +20,7 @@
* @author Hannes Magnusson
* @copyright 2011 The Authors
* @license http://opensource.org/licenses/bsd-license.php New BSD License
- * @version Release: 1.10.4
+ * @version Release: 1.10.5
* @link http://pear.php.net/package/PEAR
* @since Class available since Release 1.10.0
*/
diff --git a/vendor/pear-pear.php.net/PEAR/PEAR/Installer/Role/Php.php b/vendor/pear-pear.php.net/PEAR/PEAR/Installer/Role/Php.php
index e07743ab8f..13ac679f66 100644
--- a/vendor/pear-pear.php.net/PEAR/PEAR/Installer/Role/Php.php
+++ b/vendor/pear-pear.php.net/PEAR/PEAR/Installer/Role/Php.php
@@ -19,7 +19,7 @@
* @author Greg Beaver
* @copyright 1997-2009 The Authors
* @license http://opensource.org/licenses/bsd-license.php New BSD License
- * @version Release: 1.10.4
+ * @version Release: 1.10.5
* @link http://pear.php.net/package/PEAR
* @since Class available since Release 1.4.0a1
*/
diff --git a/vendor/pear-pear.php.net/PEAR/PEAR/Installer/Role/Script.php b/vendor/pear-pear.php.net/PEAR/PEAR/Installer/Role/Script.php
index 907b101145..cb35147646 100644
--- a/vendor/pear-pear.php.net/PEAR/PEAR/Installer/Role/Script.php
+++ b/vendor/pear-pear.php.net/PEAR/PEAR/Installer/Role/Script.php
@@ -19,7 +19,7 @@
* @author Greg Beaver
* @copyright 1997-2009 The Authors
* @license http://opensource.org/licenses/bsd-license.php New BSD License
- * @version Release: 1.10.4
+ * @version Release: 1.10.5
* @link http://pear.php.net/package/PEAR
* @since Class available since Release 1.4.0a1
*/
diff --git a/vendor/pear-pear.php.net/PEAR/PEAR/Installer/Role/Src.php b/vendor/pear-pear.php.net/PEAR/PEAR/Installer/Role/Src.php
index aaa9622e51..cf8dd5f775 100644
--- a/vendor/pear-pear.php.net/PEAR/PEAR/Installer/Role/Src.php
+++ b/vendor/pear-pear.php.net/PEAR/PEAR/Installer/Role/Src.php
@@ -19,7 +19,7 @@
* @author Greg Beaver
* @copyright 1997-2009 The Authors
* @license http://opensource.org/licenses/bsd-license.php New BSD License
- * @version Release: 1.10.4
+ * @version Release: 1.10.5
* @link http://pear.php.net/package/PEAR
* @since Class available since Release 1.4.0a1
*/
diff --git a/vendor/pear-pear.php.net/PEAR/PEAR/Installer/Role/Test.php b/vendor/pear-pear.php.net/PEAR/PEAR/Installer/Role/Test.php
index b21450fe53..56f4da8cdf 100644
--- a/vendor/pear-pear.php.net/PEAR/PEAR/Installer/Role/Test.php
+++ b/vendor/pear-pear.php.net/PEAR/PEAR/Installer/Role/Test.php
@@ -19,7 +19,7 @@
* @author Greg Beaver
* @copyright 1997-2009 The Authors
* @license http://opensource.org/licenses/bsd-license.php New BSD License
- * @version Release: 1.10.4
+ * @version Release: 1.10.5
* @link http://pear.php.net/package/PEAR
* @since Class available since Release 1.4.0a1
*/
diff --git a/vendor/pear-pear.php.net/PEAR/PEAR/Installer/Role/Www.php b/vendor/pear-pear.php.net/PEAR/PEAR/Installer/Role/Www.php
index 043cd360a3..61718daee9 100644
--- a/vendor/pear-pear.php.net/PEAR/PEAR/Installer/Role/Www.php
+++ b/vendor/pear-pear.php.net/PEAR/PEAR/Installer/Role/Www.php
@@ -19,7 +19,7 @@
* @author Greg Beaver
* @copyright 2007-2009 The Authors
* @license http://opensource.org/licenses/bsd-license.php New BSD License
- * @version Release: 1.10.4
+ * @version Release: 1.10.5
* @link http://pear.php.net/package/PEAR
* @since Class available since Release 1.7.0
*/
diff --git a/vendor/pear-pear.php.net/PEAR/PEAR/PackageFile.php b/vendor/pear-pear.php.net/PEAR/PEAR/PackageFile.php
index d73671dd50..e95dbd058c 100644
--- a/vendor/pear-pear.php.net/PEAR/PEAR/PackageFile.php
+++ b/vendor/pear-pear.php.net/PEAR/PEAR/PackageFile.php
@@ -34,7 +34,7 @@ define('PEAR_PACKAGEFILE_ERROR_INVALID_PACKAGEVERSION', 2);
* @author Greg Beaver
* @copyright 1997-2009 The Authors
* @license http://opensource.org/licenses/bsd-license.php New BSD License
- * @version Release: 1.10.4
+ * @version Release: 1.10.5
* @link http://pear.php.net/package/PEAR
* @since Class available since Release 1.4.0a1
*/
diff --git a/vendor/pear-pear.php.net/PEAR/PEAR/PackageFile/Generator/v1.php b/vendor/pear-pear.php.net/PEAR/PEAR/PackageFile/Generator/v1.php
index 5e379f85b7..4d1f7ca6ce 100644
--- a/vendor/pear-pear.php.net/PEAR/PEAR/PackageFile/Generator/v1.php
+++ b/vendor/pear-pear.php.net/PEAR/PEAR/PackageFile/Generator/v1.php
@@ -28,7 +28,7 @@ require_once 'PEAR/PackageFile/v2.php';
* @author Greg Beaver
* @copyright 1997-2009 The Authors
* @license http://opensource.org/licenses/bsd-license.php New BSD License
- * @version Release: 1.10.4
+ * @version Release: 1.10.5
* @link http://pear.php.net/package/PEAR
* @since Class available since Release 1.4.0a1
*/
@@ -45,7 +45,7 @@ class PEAR_PackageFile_Generator_v1
function getPackagerVersion()
{
- return '1.10.4';
+ return '1.10.5';
}
/**
@@ -196,7 +196,7 @@ class PEAR_PackageFile_Generator_v1
);
$ret = "\n";
$ret .= "\n";
- $ret .= "\n" .
+ $ret .= "\n" .
" $pkginfo[package]";
if (isset($pkginfo['extends'])) {
$ret .= "\n$pkginfo[extends]";
diff --git a/vendor/pear-pear.php.net/PEAR/PEAR/PackageFile/Generator/v2.php b/vendor/pear-pear.php.net/PEAR/PEAR/PackageFile/Generator/v2.php
index a44a9c5a5b..feb3530fc1 100644
--- a/vendor/pear-pear.php.net/PEAR/PEAR/PackageFile/Generator/v2.php
+++ b/vendor/pear-pear.php.net/PEAR/PEAR/PackageFile/Generator/v2.php
@@ -30,7 +30,7 @@ require_once 'XML/Util.php';
* @author Stephan Schmidt (original XML_Serializer code)
* @copyright 1997-2009 The Authors
* @license http://opensource.org/licenses/bsd-license.php New BSD License
- * @version Release: 1.10.4
+ * @version Release: 1.10.5
* @link http://pear.php.net/package/PEAR
* @since Class available since Release 1.4.0a1
*/
@@ -112,7 +112,7 @@ http://pear.php.net/dtd/package-2.0.xsd',
*/
function getPackagerVersion()
{
- return '1.10.4';
+ return '1.10.5';
}
/**
@@ -397,7 +397,7 @@ http://pear.php.net/dtd/package-2.0.xsd',
$this->options['beautifyFilelist'] = true;
}
- $arr['attribs']['packagerversion'] = '1.10.4';
+ $arr['attribs']['packagerversion'] = '1.10.5';
if ($this->serialize($arr, $options)) {
return $this->_serializedData . "\n";
}
diff --git a/vendor/pear-pear.php.net/PEAR/PEAR/PackageFile/v1.php b/vendor/pear-pear.php.net/PEAR/PEAR/PackageFile/v1.php
index d9d19f6549..35f4b98432 100644
--- a/vendor/pear-pear.php.net/PEAR/PEAR/PackageFile/v1.php
+++ b/vendor/pear-pear.php.net/PEAR/PEAR/PackageFile/v1.php
@@ -274,7 +274,7 @@ define('PEAR_PACKAGEFILE_ERROR_INVALID_FILENAME', 52);
* @author Greg Beaver
* @copyright 1997-2009 The Authors
* @license http://opensource.org/licenses/bsd-license.php New BSD License
- * @version Release: 1.10.4
+ * @version Release: 1.10.5
* @link http://pear.php.net/package/PEAR
* @since Class available since Release 1.4.0a1
*/
diff --git a/vendor/pear-pear.php.net/PEAR/PEAR/PackageFile/v2.php b/vendor/pear-pear.php.net/PEAR/PEAR/PackageFile/v2.php
index ab2f539b42..829b044ca9 100644
--- a/vendor/pear-pear.php.net/PEAR/PEAR/PackageFile/v2.php
+++ b/vendor/pear-pear.php.net/PEAR/PEAR/PackageFile/v2.php
@@ -22,7 +22,7 @@ require_once 'PEAR/ErrorStack.php';
* @author Greg Beaver
* @copyright 1997-2009 The Authors
* @license http://opensource.org/licenses/bsd-license.php New BSD License
- * @version Release: 1.10.4
+ * @version Release: 1.10.5
* @link http://pear.php.net/package/PEAR
* @since Class available since Release 1.4.0a1
*/
diff --git a/vendor/pear-pear.php.net/PEAR/PEAR/PackageFile/v2/Validator.php b/vendor/pear-pear.php.net/PEAR/PEAR/PackageFile/v2/Validator.php
index a6b01d57b8..ae10a43edd 100644
--- a/vendor/pear-pear.php.net/PEAR/PEAR/PackageFile/v2/Validator.php
+++ b/vendor/pear-pear.php.net/PEAR/PEAR/PackageFile/v2/Validator.php
@@ -20,7 +20,7 @@
* @author Greg Beaver
* @copyright 1997-2009 The Authors
* @license http://opensource.org/licenses/bsd-license.php New BSD License
- * @version Release: 1.10.4
+ * @version Release: 1.10.5
* @link http://pear.php.net/package/PEAR
* @since Class available since Release 1.4.0a8
* @access private
@@ -111,8 +111,8 @@ class PEAR_PackageFile_v2_Validator
isset($test['dependencies']['required']) &&
isset($test['dependencies']['required']['pearinstaller']) &&
isset($test['dependencies']['required']['pearinstaller']['min']) &&
- '1.10.4' != '@package' . '_version@' &&
- version_compare('1.10.4',
+ '1.10.5' != '@package' . '_version@' &&
+ version_compare('1.10.5',
$test['dependencies']['required']['pearinstaller']['min'], '<')
) {
$this->_pearVersionTooLow($test['dependencies']['required']['pearinstaller']['min']);
@@ -1350,7 +1350,7 @@ class PEAR_PackageFile_v2_Validator
$this->_stack->push(__FUNCTION__, 'error',
array('version' => $version),
'This package.xml requires PEAR version %version% to parse properly, we are ' .
- 'version 1.10.4');
+ 'version 1.10.5');
}
function _invalidTagOrder($oktags, $actual, $root)
diff --git a/vendor/pear-pear.php.net/PEAR/PEAR/PackageFile/v2/rw.php b/vendor/pear-pear.php.net/PEAR/PEAR/PackageFile/v2/rw.php
index 3346639b8b..2125ee309a 100644
--- a/vendor/pear-pear.php.net/PEAR/PEAR/PackageFile/v2/rw.php
+++ b/vendor/pear-pear.php.net/PEAR/PEAR/PackageFile/v2/rw.php
@@ -22,7 +22,7 @@ require_once 'PEAR/PackageFile/v2.php';
* @author Greg Beaver
* @copyright 1997-2009 The Authors
* @license http://opensource.org/licenses/bsd-license.php New BSD License
- * @version Release: 1.10.4
+ * @version Release: 1.10.5
* @link http://pear.php.net/package/PEAR
* @since Class available since Release 1.4.0a8
*/
diff --git a/vendor/pear-pear.php.net/PEAR/PEAR/Packager.php b/vendor/pear-pear.php.net/PEAR/PEAR/Packager.php
index f92565bd5f..776b57dd15 100644
--- a/vendor/pear-pear.php.net/PEAR/PEAR/Packager.php
+++ b/vendor/pear-pear.php.net/PEAR/PEAR/Packager.php
@@ -30,7 +30,7 @@ require_once 'System.php';
* @author Greg Beaver
* @copyright 1997-2009 The Authors
* @license http://opensource.org/licenses/bsd-license.php New BSD License
- * @version Release: 1.10.4
+ * @version Release: 1.10.5
* @link http://pear.php.net/package/PEAR
* @since Class available since Release 0.1
*/
diff --git a/vendor/pear-pear.php.net/PEAR/PEAR/REST.php b/vendor/pear-pear.php.net/PEAR/PEAR/REST.php
index 419b7fbfa9..ee71886489 100644
--- a/vendor/pear-pear.php.net/PEAR/PEAR/REST.php
+++ b/vendor/pear-pear.php.net/PEAR/PEAR/REST.php
@@ -28,7 +28,7 @@ require_once 'PEAR/Proxy.php';
* @author Greg Beaver
* @copyright 1997-2009 The Authors
* @license http://opensource.org/licenses/bsd-license.php New BSD License
- * @version Release: 1.10.4
+ * @version Release: 1.10.5
* @link http://pear.php.net/package/PEAR
* @since Class available since Release 1.4.0a1
*/
@@ -384,7 +384,7 @@ class PEAR_REST
}
$request .= $ifmodifiedsince .
- "User-Agent: PEAR/1.10.4/PHP/" . PHP_VERSION . "\r\n";
+ "User-Agent: PEAR/1.10.5/PHP/" . PHP_VERSION . "\r\n";
$username = $this->config->get('username', null, $channel);
$password = $this->config->get('password', null, $channel);
diff --git a/vendor/pear-pear.php.net/PEAR/PEAR/REST/10.php b/vendor/pear-pear.php.net/PEAR/PEAR/REST/10.php
index 040371cdba..ce394c2ffb 100644
--- a/vendor/pear-pear.php.net/PEAR/PEAR/REST/10.php
+++ b/vendor/pear-pear.php.net/PEAR/PEAR/REST/10.php
@@ -26,7 +26,7 @@ require_once 'PEAR/REST.php';
* @author Greg Beaver
* @copyright 1997-2009 The Authors
* @license http://opensource.org/licenses/bsd-license.php New BSD License
- * @version Release: 1.10.4
+ * @version Release: 1.10.5
* @link http://pear.php.net/package/PEAR
* @since Class available since Release 1.4.0a12
*/
diff --git a/vendor/pear-pear.php.net/PEAR/PEAR/REST/11.php b/vendor/pear-pear.php.net/PEAR/PEAR/REST/11.php
index e2d3875fd0..45179a6cbe 100644
--- a/vendor/pear-pear.php.net/PEAR/PEAR/REST/11.php
+++ b/vendor/pear-pear.php.net/PEAR/PEAR/REST/11.php
@@ -26,7 +26,7 @@ require_once 'PEAR/REST.php';
* @author Greg Beaver
* @copyright 1997-2009 The Authors
* @license http://opensource.org/licenses/bsd-license.php New BSD License
- * @version Release: 1.10.4
+ * @version Release: 1.10.5
* @link http://pear.php.net/package/PEAR
* @since Class available since Release 1.4.3
*/
diff --git a/vendor/pear-pear.php.net/PEAR/PEAR/REST/13.php b/vendor/pear-pear.php.net/PEAR/PEAR/REST/13.php
index 0509897b8d..4485c3d28b 100644
--- a/vendor/pear-pear.php.net/PEAR/PEAR/REST/13.php
+++ b/vendor/pear-pear.php.net/PEAR/PEAR/REST/13.php
@@ -27,7 +27,7 @@ require_once 'PEAR/REST/10.php';
* @author Greg Beaver
* @copyright 1997-2009 The Authors
* @license http://opensource.org/licenses/bsd-license.php New BSD License
- * @version Release: 1.10.4
+ * @version Release: 1.10.5
* @link http://pear.php.net/package/PEAR
* @since Class available since Release 1.4.0a12
*/
diff --git a/vendor/pear-pear.php.net/PEAR/PEAR/Registry.php b/vendor/pear-pear.php.net/PEAR/PEAR/Registry.php
index 5588f23f4d..6c5aed0c53 100644
--- a/vendor/pear-pear.php.net/PEAR/PEAR/Registry.php
+++ b/vendor/pear-pear.php.net/PEAR/PEAR/Registry.php
@@ -36,7 +36,7 @@ define('PEAR_REGISTRY_ERROR_CHANNEL_FILE', -6);
* @author Greg Beaver
* @copyright 1997-2009 The Authors
* @license http://opensource.org/licenses/bsd-license.php New BSD License
- * @version Release: 1.10.4
+ * @version Release: 1.10.5
* @link http://pear.php.net/package/PEAR
* @since Class available since Release 1.4.0a1
*/
diff --git a/vendor/pear-pear.php.net/PEAR/PEAR/RunTest.php b/vendor/pear-pear.php.net/PEAR/PEAR/RunTest.php
index 95797665e6..270cfc6ced 100644
--- a/vendor/pear-pear.php.net/PEAR/PEAR/RunTest.php
+++ b/vendor/pear-pear.php.net/PEAR/PEAR/RunTest.php
@@ -37,7 +37,7 @@ putenv("PHP_PEAR_RUNTESTS=1");
* @author Greg Beaver
* @copyright 1997-2009 The Authors
* @license http://opensource.org/licenses/bsd-license.php New BSD License
- * @version Release: 1.10.4
+ * @version Release: 1.10.5
* @link http://pear.php.net/package/PEAR
* @since Class available since Release 1.3.3
*/
diff --git a/vendor/pear-pear.php.net/PEAR/PEAR/Task/Common.php b/vendor/pear-pear.php.net/PEAR/PEAR/Task/Common.php
index 3ae59159bd..5a30e7b6bb 100644
--- a/vendor/pear-pear.php.net/PEAR/PEAR/Task/Common.php
+++ b/vendor/pear-pear.php.net/PEAR/PEAR/Task/Common.php
@@ -47,7 +47,7 @@ define('PEAR_TASK_PACKAGEANDINSTALL', 3);
* @author Greg Beaver
* @copyright 1997-2009 The Authors
* @license http://opensource.org/licenses/bsd-license.php New BSD License
- * @version Release: 1.10.4
+ * @version Release: 1.10.5
* @link http://pear.php.net/package/PEAR
* @since Class available since Release 1.4.0a1
* @abstract
diff --git a/vendor/pear-pear.php.net/PEAR/PEAR/Task/Postinstallscript.php b/vendor/pear-pear.php.net/PEAR/PEAR/Task/Postinstallscript.php
index 154952f4f0..347b2a41d3 100644
--- a/vendor/pear-pear.php.net/PEAR/PEAR/Task/Postinstallscript.php
+++ b/vendor/pear-pear.php.net/PEAR/PEAR/Task/Postinstallscript.php
@@ -27,7 +27,7 @@ require_once 'PEAR/Task/Common.php';
* @author Greg Beaver
* @copyright 1997-2009 The Authors
* @license http://opensource.org/licenses/bsd-license.php New BSD License
- * @version Release: 1.10.4
+ * @version Release: 1.10.5
* @link http://pear.php.net/package/PEAR
* @since Class available since Release 1.4.0a1
*/
diff --git a/vendor/pear-pear.php.net/PEAR/PEAR/Task/Postinstallscript/rw.php b/vendor/pear-pear.php.net/PEAR/PEAR/Task/Postinstallscript/rw.php
index 7aa699bb30..a2f480bc97 100644
--- a/vendor/pear-pear.php.net/PEAR/PEAR/Task/Postinstallscript/rw.php
+++ b/vendor/pear-pear.php.net/PEAR/PEAR/Task/Postinstallscript/rw.php
@@ -23,7 +23,7 @@ require_once 'PEAR/Task/Postinstallscript.php';
* @author Greg Beaver
* @copyright 1997-2009 The Authors
* @license http://opensource.org/licenses/bsd-license.php New BSD License
- * @version Release: 1.10.4
+ * @version Release: 1.10.5
* @link http://pear.php.net/package/PEAR
* @since Class available since Release 1.4.0a10
*/
diff --git a/vendor/pear-pear.php.net/PEAR/PEAR/Task/Replace.php b/vendor/pear-pear.php.net/PEAR/PEAR/Task/Replace.php
index a5fc779ef1..57208b432e 100644
--- a/vendor/pear-pear.php.net/PEAR/PEAR/Task/Replace.php
+++ b/vendor/pear-pear.php.net/PEAR/PEAR/Task/Replace.php
@@ -23,7 +23,7 @@ require_once 'PEAR/Task/Common.php';
* @author Greg Beaver
* @copyright 1997-2009 The Authors
* @license http://opensource.org/licenses/bsd-license.php New BSD License
- * @version Release: 1.10.4
+ * @version Release: 1.10.5
* @link http://pear.php.net/package/PEAR
* @since Class available since Release 1.4.0a1
*/
diff --git a/vendor/pear-pear.php.net/PEAR/PEAR/Task/Replace/rw.php b/vendor/pear-pear.php.net/PEAR/PEAR/Task/Replace/rw.php
index 6080146463..beaf48c515 100644
--- a/vendor/pear-pear.php.net/PEAR/PEAR/Task/Replace/rw.php
+++ b/vendor/pear-pear.php.net/PEAR/PEAR/Task/Replace/rw.php
@@ -23,7 +23,7 @@ require_once 'PEAR/Task/Replace.php';
* @author Greg Beaver
* @copyright 1997-2009 The Authors
* @license http://opensource.org/licenses/bsd-license.php New BSD License
- * @version Release: 1.10.4
+ * @version Release: 1.10.5
* @link http://pear.php.net/package/PEAR
* @since Class available since Release 1.4.0a10
*/
diff --git a/vendor/pear-pear.php.net/PEAR/PEAR/Task/Unixeol.php b/vendor/pear-pear.php.net/PEAR/PEAR/Task/Unixeol.php
index 5bf2ac0518..10530c307d 100644
--- a/vendor/pear-pear.php.net/PEAR/PEAR/Task/Unixeol.php
+++ b/vendor/pear-pear.php.net/PEAR/PEAR/Task/Unixeol.php
@@ -23,7 +23,7 @@ require_once 'PEAR/Task/Common.php';
* @author Greg Beaver
* @copyright 1997-2009 The Authors
* @license http://opensource.org/licenses/bsd-license.php New BSD License
- * @version Release: 1.10.4
+ * @version Release: 1.10.5
* @link http://pear.php.net/package/PEAR
* @since Class available since Release 1.4.0a1
*/
diff --git a/vendor/pear-pear.php.net/PEAR/PEAR/Task/Unixeol/rw.php b/vendor/pear-pear.php.net/PEAR/PEAR/Task/Unixeol/rw.php
index 7316ba05fb..92b079d543 100644
--- a/vendor/pear-pear.php.net/PEAR/PEAR/Task/Unixeol/rw.php
+++ b/vendor/pear-pear.php.net/PEAR/PEAR/Task/Unixeol/rw.php
@@ -23,7 +23,7 @@ require_once 'PEAR/Task/Unixeol.php';
* @author Greg Beaver
* @copyright 1997-2009 The Authors
* @license http://opensource.org/licenses/bsd-license.php New BSD License
- * @version Release: 1.10.4
+ * @version Release: 1.10.5
* @link http://pear.php.net/package/PEAR
* @since Class available since Release 1.4.0a10
*/
diff --git a/vendor/pear-pear.php.net/PEAR/PEAR/Task/Windowseol.php b/vendor/pear-pear.php.net/PEAR/PEAR/Task/Windowseol.php
index 190f21381c..097f260acb 100644
--- a/vendor/pear-pear.php.net/PEAR/PEAR/Task/Windowseol.php
+++ b/vendor/pear-pear.php.net/PEAR/PEAR/Task/Windowseol.php
@@ -24,7 +24,7 @@ require_once 'PEAR/Task/Common.php';
* @author Greg Beaver
* @copyright 1997-2009 The Authors
* @license http://opensource.org/licenses/bsd-license.php New BSD License
- * @version Release: 1.10.4
+ * @version Release: 1.10.5
* @link http://pear.php.net/package/PEAR
* @since Class available since Release 1.4.0a1
*/
diff --git a/vendor/pear-pear.php.net/PEAR/PEAR/Task/Windowseol/rw.php b/vendor/pear-pear.php.net/PEAR/PEAR/Task/Windowseol/rw.php
index 4ef537b7ca..ca8ee2c278 100644
--- a/vendor/pear-pear.php.net/PEAR/PEAR/Task/Windowseol/rw.php
+++ b/vendor/pear-pear.php.net/PEAR/PEAR/Task/Windowseol/rw.php
@@ -24,7 +24,7 @@ require_once 'PEAR/Task/Windowseol.php';
* @author Greg Beaver
* @copyright 1997-2009 The Authors
* @license http://opensource.org/licenses/bsd-license.php New BSD License
- * @version Release: 1.10.4
+ * @version Release: 1.10.5
* @link http://pear.php.net/package/PEAR
* @since Class available since Release 1.4.0a10
*/
diff --git a/vendor/pear-pear.php.net/PEAR/PEAR/Validate.php b/vendor/pear-pear.php.net/PEAR/PEAR/Validate.php
index 4b98b3ad52..5ee8bbaaeb 100644
--- a/vendor/pear-pear.php.net/PEAR/PEAR/Validate.php
+++ b/vendor/pear-pear.php.net/PEAR/PEAR/Validate.php
@@ -31,7 +31,7 @@ require_once 'PEAR/Validator/PECL.php';
* @author Greg Beaver
* @copyright 1997-2009 The Authors
* @license http://opensource.org/licenses/bsd-license.php New BSD License
- * @version Release: 1.10.4
+ * @version Release: 1.10.5
* @link http://pear.php.net/package/PEAR
* @since Class available since Release 1.4.0a1
*/
diff --git a/vendor/pear-pear.php.net/PEAR/PEAR/Validator/PECL.php b/vendor/pear-pear.php.net/PEAR/PEAR/Validator/PECL.php
index 44bfb4f48b..5117e9038c 100644
--- a/vendor/pear-pear.php.net/PEAR/PEAR/Validator/PECL.php
+++ b/vendor/pear-pear.php.net/PEAR/PEAR/Validator/PECL.php
@@ -23,7 +23,7 @@ require_once 'PEAR/Validate.php';
* @author Greg Beaver
* @copyright 1997-2009 The Authors
* @license http://opensource.org/licenses/bsd-license.php New BSD License
- * @version Release: 1.10.4
+ * @version Release: 1.10.5
* @link http://pear.php.net/package/PEAR
* @since Class available since Release 1.4.0a5
*/
diff --git a/vendor/pear-pear.php.net/PEAR/PEAR/XMLParser.php b/vendor/pear-pear.php.net/PEAR/PEAR/XMLParser.php
index f0fa553d3c..7c8cc52672 100644
--- a/vendor/pear-pear.php.net/PEAR/PEAR/XMLParser.php
+++ b/vendor/pear-pear.php.net/PEAR/PEAR/XMLParser.php
@@ -22,7 +22,7 @@
* @author Stephan Schmidt (original XML_Unserializer code)
* @copyright 1997-2009 The Authors
* @license http://opensource.org/licenses/bsd-license New BSD License
- * @version Release: 1.10.4
+ * @version Release: 1.10.5
* @link http://pear.php.net/package/PEAR
* @since Class available since Release 1.4.0a1
*/
diff --git a/vendor/pear-pear.php.net/PEAR/System.php b/vendor/pear-pear.php.net/PEAR/System.php
index 146346b57a..744bf7e7d6 100644
--- a/vendor/pear-pear.php.net/PEAR/System.php
+++ b/vendor/pear-pear.php.net/PEAR/System.php
@@ -50,7 +50,7 @@ $GLOBALS['_System_temp_files'] = array();
* @author Tomas V.V. Cox
* @copyright 1997-2006 The PHP Group
* @license http://opensource.org/licenses/bsd-license.php New BSD License
-* @version Release: 1.10.4
+* @version Release: 1.10.5
* @link http://pear.php.net/package/PEAR
* @since Class available since Release 0.1
* @static
diff --git a/vendor/pear-pear.php.net/PEAR/pearcmd.php b/vendor/pear-pear.php.net/PEAR/pearcmd.php
index 60cb9769bf..ab91d56f1d 100644
--- a/vendor/pear-pear.php.net/PEAR/pearcmd.php
+++ b/vendor/pear-pear.php.net/PEAR/pearcmd.php
@@ -41,7 +41,7 @@ ob_implicit_flush(true);
$_PEAR_PHPDIR = '#$%^&*';
set_error_handler('error_handler');
-$pear_package_version = "1.10.4";
+$pear_package_version = "1.10.5";
require_once 'PEAR.php';
require_once 'PEAR/Frontend.php';
diff --git a/library/langdet/Text/LanguageDetect.php b/vendor/pear-pear.php.net/Text_LanguageDetect/Text/LanguageDetect.php
similarity index 99%
rename from library/langdet/Text/LanguageDetect.php
rename to vendor/pear-pear.php.net/Text_LanguageDetect/Text/LanguageDetect.php
index 7f7d58a96b..cda74066b1 100644
--- a/library/langdet/Text/LanguageDetect.php
+++ b/vendor/pear-pear.php.net/Text_LanguageDetect/Text/LanguageDetect.php
@@ -58,7 +58,7 @@ require_once 'Text/LanguageDetect/ISO639.php';
* @author Nicholas Pisarro
* @copyright 2005 Nicholas Pisarro
* @license BSD http://www.opensource.org/licenses/bsd-license.php
- * @version Release: @package_version@
+ * @version Release: 1.0.0
* @link http://pear.php.net/package/Text_LanguageDetect/
*/
class Text_LanguageDetect
@@ -90,7 +90,7 @@ class Text_LanguageDetect
*
* @var string
*/
- protected $_data_dir = '@data_dir@';
+ protected $_data_dir = 'D:\Mes Projets\Friendica\friendica\vendor/pear-pear.php.net/Text_LanguageDetect/data';
/**
* The trigram data for comparison
@@ -196,7 +196,7 @@ class Text_LanguageDetect
} elseif ($this->_data_dir != '@' . 'data_dir' . '@') {
// if the data dir was set by the PEAR installer, use that
- return $this->_data_dir . '/Text_LanguageDetect/' . $fname;
+ return $this->_data_dir . '/' . $fname;
} else {
// assume this was just unpacked somewhere
diff --git a/library/langdet/Text/LanguageDetect/Exception.php b/vendor/pear-pear.php.net/Text_LanguageDetect/Text/LanguageDetect/Exception.php
similarity index 100%
rename from library/langdet/Text/LanguageDetect/Exception.php
rename to vendor/pear-pear.php.net/Text_LanguageDetect/Text/LanguageDetect/Exception.php
diff --git a/library/langdet/Text/LanguageDetect/ISO639.php b/vendor/pear-pear.php.net/Text_LanguageDetect/Text/LanguageDetect/ISO639.php
similarity index 100%
rename from library/langdet/Text/LanguageDetect/ISO639.php
rename to vendor/pear-pear.php.net/Text_LanguageDetect/Text/LanguageDetect/ISO639.php
diff --git a/library/langdet/Text/LanguageDetect/Parser.php b/vendor/pear-pear.php.net/Text_LanguageDetect/Text/LanguageDetect/Parser.php
similarity index 99%
rename from library/langdet/Text/LanguageDetect/Parser.php
rename to vendor/pear-pear.php.net/Text_LanguageDetect/Text/LanguageDetect/Parser.php
index 3ec1776401..b3e02a8fb7 100644
--- a/library/langdet/Text/LanguageDetect/Parser.php
+++ b/vendor/pear-pear.php.net/Text_LanguageDetect/Text/LanguageDetect/Parser.php
@@ -27,7 +27,7 @@
* @author Nicholas Pisarro
* @copyright 2006 Nicholas Pisarro
* @license BSD http://www.opensource.org/licenses/bsd-license.php
- * @version Release: @package_version@
+ * @version Release: 1.0.0
* @link http://pear.php.net/package/Text_LanguageDetect/
*/
class Text_LanguageDetect_Parser extends Text_LanguageDetect
diff --git a/library/langdet/data/lang.dat b/vendor/pear-pear.php.net/Text_LanguageDetect/data/lang.dat
similarity index 100%
rename from library/langdet/data/lang.dat
rename to vendor/pear-pear.php.net/Text_LanguageDetect/data/lang.dat
diff --git a/library/langdet/data/unicode_blocks.dat b/vendor/pear-pear.php.net/Text_LanguageDetect/data/unicode_blocks.dat
similarity index 100%
rename from library/langdet/data/unicode_blocks.dat
rename to vendor/pear-pear.php.net/Text_LanguageDetect/data/unicode_blocks.dat
diff --git a/vendor/pear-pear.php.net/XML_Util/XML/Util.php b/vendor/pear-pear.php.net/XML_Util/XML/Util.php
index 4dedf74d07..a354d27590 100644
--- a/vendor/pear-pear.php.net/XML_Util/XML/Util.php
+++ b/vendor/pear-pear.php.net/XML_Util/XML/Util.php
@@ -120,7 +120,7 @@ define('XML_UTIL_COLLAPSE_XHTML_ONLY', 2);
* @author Stephan Schmidt
* @copyright 2003-2008 Stephan Schmidt
* @license http://opensource.org/licenses/bsd-license New BSD License
- * @version Release: 1.4.2
+ * @version Release: 1.4.3
* @link http://pear.php.net/package/XML_Util
*/
class XML_Util