From 540f4b5cf665f1422a4b10af909a4ba5f3867c7d Mon Sep 17 00:00:00 2001 From: sskaje Date: Thu, 12 May 2016 19:13:21 +0800 Subject: [PATCH 01/41] pack()/unpack() for Big Endian float/double and Little Endian float/double --- ext/standard/pack.c | 144 +++++++++- ext/standard/tests/strings/pack_float.phpt | 312 +++++++++++++++++++++ 2 files changed, 447 insertions(+), 9 deletions(-) create mode 100644 ext/standard/tests/strings/pack_float.phpt diff --git a/ext/standard/pack.c b/ext/standard/pack.c index 1d353d1743d..53212387071 100644 --- a/ext/standard/pack.c +++ b/ext/standard/pack.c @@ -104,6 +104,45 @@ static void php_pack(zval *val, size_t size, int *map, char *output) } /* }}} */ + +/* {{{ php_pack_is_little_endian + */ +static int php_pack_is_little_endian() +{ + int machine_endian_check = 1; + + return ((char *)&machine_endian_check)[0]; +} +/* }}} */ + + +/* {{{ php_pack_memcpy + */ +static void php_pack_memcpy(int is_little_endian, void * dst, void * src, size_t size) +{ + int is_sys_little_endian = php_pack_is_little_endian(); + + if (is_little_endian == is_sys_little_endian) { + /* + System and input uses same endian, simply perform memcpy + */ + memcpy(dst, src, size); + } else { + /* + Copy to dst from last to first + */ + int i = 0; + src = src + size - 1; + do { + *(char *) dst = *(char *)src; + ++dst; + --src; + } while (-- size); + } + +} +/* }}} */ + /* pack() idea stolen from Perl (implemented formats behave the same as there except J and P) * Implemented formats are Z, A, a, h, H, c, C, s, S, i, I, l, L, n, N, q, Q, J, P, f, d, x, X, @. */ @@ -215,8 +254,12 @@ PHP_FUNCTION(pack) case 'N': case 'v': case 'V': - case 'f': - case 'd': + case 'f': /* float */ + case 'g': /* little endian float */ + case 'G': /* big endian float */ + case 'd': /* double */ + case 'e': /* little endian double */ + case 'E': /* big endian double */ if (arg < 0) { arg = num_args - currentarg; } @@ -294,11 +337,15 @@ PHP_FUNCTION(pack) break; #endif - case 'f': + case 'f': /* float */ + case 'g': /* little endian float */ + case 'G': /* big endian float */ INC_OUTPUTPOS(arg,sizeof(float)) break; - case 'd': + case 'd': /* double */ + case 'e': /* little endian float */ + case 'E': /* big endian float */ INC_OUTPUTPOS(arg,sizeof(double)) break; @@ -473,6 +520,30 @@ PHP_FUNCTION(pack) } break; } + + case 'g': { + /* pack little endian float */ + while (arg-- > 0) { + float v = (float) zval_get_double(&argv[currentarg++]); + char *buf = emalloc(sizeof(float)); + php_pack_memcpy(1, &buf, &v, sizeof(float)); + memcpy(&ZSTR_VAL(output)[outputpos], &buf, sizeof(float)); + outputpos += sizeof(v); + } + + break; + } + case 'G': { + /* pack big endian float */ + while (arg-- > 0) { + float v = (float) zval_get_double(&argv[currentarg++]); + char *buf = emalloc(sizeof(float)); + php_pack_memcpy(0, &buf, &v, sizeof(float)); + memcpy(&ZSTR_VAL(output)[outputpos], &buf, sizeof(float)); + outputpos += sizeof(v); + } + break; + } case 'd': { while (arg-- > 0) { @@ -482,6 +553,30 @@ PHP_FUNCTION(pack) } break; } + + case 'e': { + /* pack little endian double */ + while (arg-- > 0) { + double v = (double) zval_get_double(&argv[currentarg++]); + char *buf = emalloc(sizeof(double)); + php_pack_memcpy(1, &buf, &v, sizeof(double)); + memcpy(&ZSTR_VAL(output)[outputpos], &buf, sizeof(double)); + outputpos += sizeof(v); + } + break; + } + + case 'E': { + /* pack big endian double */ + while (arg-- > 0) { + double v = (double) zval_get_double(&argv[currentarg++]); + char *buf = emalloc(sizeof(double)); + php_pack_memcpy(0, &buf, &v, sizeof(double)); + memcpy(&ZSTR_VAL(output)[outputpos], &buf, sizeof(double)); + outputpos += sizeof(v); + } + break; + } case 'x': memset(&ZSTR_VAL(output)[outputpos], '\0', arg); @@ -682,11 +777,15 @@ PHP_FUNCTION(unpack) /* Use sizeof(float) bytes of input */ case 'f': + case 'g': + case 'G': size = sizeof(float); break; /* Use sizeof(double) bytes of input */ case 'd': + case 'e': + case 'E': size = sizeof(double); break; @@ -942,18 +1041,45 @@ PHP_FUNCTION(unpack) } #endif - case 'f': { + case 'f': /* float */ + case 'g': /* little endian float*/ + case 'G': /* big endian float*/ + { float v; - memcpy(&v, &input[inputpos], sizeof(float)); + if (type == 'g') { + char *buf = emalloc(sizeof(float)); + php_pack_memcpy(1, &buf, &input[inputpos], sizeof(float)); + memcpy(&v, &buf, sizeof(float)); + } else if (type == 'G') { + char *buf = emalloc(sizeof(float)); + php_pack_memcpy(0, &buf, &input[inputpos], sizeof(float)); + memcpy(&v, &buf, sizeof(float)); + } else { + memcpy(&v, &input[inputpos], sizeof(float)); + } + add_assoc_double(return_value, n, (double)v); break; } + - case 'd': { + case 'd': /* double */ + case 'e': /* little endian float */ + case 'E': /* big endian float */ + { double v; - - memcpy(&v, &input[inputpos], sizeof(double)); + if (type == 'e') { + char *buf = emalloc(sizeof(double)); + php_pack_memcpy(1, &buf, &input[inputpos], sizeof(double)); + memcpy(&v, &buf, sizeof(double)); + } else if (type == 'E') { + char *buf = emalloc(sizeof(double)); + php_pack_memcpy(0, &buf, &input[inputpos], sizeof(double)); + memcpy(&v, &buf, sizeof(double)); + } else { + memcpy(&v, &input[inputpos], sizeof(double)); + } add_assoc_double(return_value, n, v); break; } diff --git a/ext/standard/tests/strings/pack_float.phpt b/ext/standard/tests/strings/pack_float.phpt new file mode 100644 index 00000000000..088b508bc0b --- /dev/null +++ b/ext/standard/tests/strings/pack_float.phpt @@ -0,0 +1,312 @@ +--TEST-- +pack()/unpack(): float/double tests +--FILE-- + +--EXPECTF-- +string(6) "pack e" +string(16) "0000000000000000" +string(16) "0000000000000000" +string(16) "0000000000000000" +string(16) "0000000000000000" +string(16) "0000000000000000" +string(16) "000000000000f03f" +string(16) "000000000000f03f" +string(16) "0080e03779c34143" +string(16) "4a6ade0d65ebe23f" +string(16) "e1639d31956ae543" +string(16) "000000000000f0bf" +string(16) "000000000000f0bf" +string(16) "0080e03779c341c3" +string(16) "4a6ade0d65ebe2bf" +string(16) "e1639d31956ae5c3" +string(6) "pack E" +string(16) "0000000000000000" +string(16) "0000000000000000" +string(16) "0000000000000000" +string(16) "0000000000000000" +string(16) "0000000000000000" +string(16) "3ff0000000000000" +string(16) "3ff0000000000000" +string(16) "4341c37937e08000" +string(16) "3fe2eb650dde6a4a" +string(16) "43e56a95319d63e1" +string(16) "bff0000000000000" +string(16) "bff0000000000000" +string(16) "c341c37937e08000" +string(16) "bfe2eb650dde6a4a" +string(16) "c3e56a95319d63e1" +string(6) "pack g" +string(8) "00000000" +string(8) "00000000" +string(8) "00000000" +string(8) "00000000" +string(8) "00000000" +string(8) "0000803f" +string(8) "0000803f" +string(8) "ca1b0e5a" +string(8) "285b173f" +string(8) "aa542b5f" +string(8) "000080bf" +string(8) "000080bf" +string(8) "ca1b0eda" +string(8) "285b17bf" +string(8) "aa542bdf" +string(6) "pack G" +string(8) "00000000" +string(8) "00000000" +string(8) "00000000" +string(8) "00000000" +string(8) "00000000" +string(8) "3f800000" +string(8) "3f800000" +string(8) "5a0e1bca" +string(8) "3f175b28" +string(8) "5f2b54aa" +string(8) "bf800000" +string(8) "bf800000" +string(8) "da0e1bca" +string(8) "bf175b28" +string(8) "df2b54aa" +string(8) "unpack e" +array(1) { + [1]=> + float(0) +} +array(1) { + [1]=> + float(1) +} +array(1) { + [1]=> + float(1.0E+16) +} +array(1) { + [1]=> + float(0.59123470982315) +} +array(1) { + [1]=> + float(-1) +} +array(1) { + [1]=> + float(-1.0E+16) +} +array(1) { + [1]=> + float(-0.59123470982315) +} +array(1) { + [1]=> + float(-1.2345678901235E+19) +} +string(8) "unpack E" +array(1) { + [1]=> + float(1) +} +array(1) { + [1]=> + float(1.0E+16) +} +array(1) { + [1]=> + float(0.59123470982315) +} +array(1) { + [1]=> + float(1.2345678901235E+19) +} +array(1) { + [1]=> + float(-1) +} +array(1) { + [1]=> + float(-1.0E+16) +} +array(1) { + [1]=> + float(-0.59123470982315) +} +array(1) { + [1]=> + float(-1.2345678901235E+19) +} +string(8) "unpack g" +array(1) { + [1]=> + float(1) +} +array(1) { + [1]=> + float(1.0000000272564E+16) +} +array(1) { + [1]=> + float(0.59123468399048) +} +array(1) { + [1]=> + float(1.2345679395506E+19) +} +array(1) { + [1]=> + float(-1) +} +array(1) { + [1]=> + float(-1.0000000272564E+16) +} +array(1) { + [1]=> + float(-0.59123468399048) +} +array(1) { + [1]=> + float(-1.2345679395506E+19) +} +string(8) "unpack G" +array(1) { + [1]=> + float(1) +} +array(1) { + [1]=> + float(1.0000000272564E+16) +} +array(1) { + [1]=> + float(0.59123468399048) +} +array(1) { + [1]=> + float(1.2345679395506E+19) +} +array(1) { + [1]=> + float(-1) +} +array(1) { + [1]=> + float(-1.0000000272564E+16) +} +array(1) { + [1]=> + float(-0.59123468399048) +} +array(1) { + [1]=> + float(-1.2345679395506E+19) +} From 92bcc10e103bb03d29393e783d51a3ff589735bb Mon Sep 17 00:00:00 2001 From: sskaje Date: Thu, 12 May 2016 19:16:29 +0800 Subject: [PATCH 02/41] comments for e,E,g,G --- ext/standard/pack.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/ext/standard/pack.c b/ext/standard/pack.c index 53212387071..707c200570a 100644 --- a/ext/standard/pack.c +++ b/ext/standard/pack.c @@ -145,6 +145,7 @@ static void php_pack_memcpy(int is_little_endian, void * dst, void * src, size_t /* pack() idea stolen from Perl (implemented formats behave the same as there except J and P) * Implemented formats are Z, A, a, h, H, c, C, s, S, i, I, l, L, n, N, q, Q, J, P, f, d, x, X, @. + * Added g, G for little endian float and big endian float, added e, E for little endian double and big endian double. */ /* {{{ proto string pack(string format, mixed arg1 [, mixed arg2 [, mixed ...]]) Takes one or more arguments and packs them into a binary string according to the format argument */ @@ -637,6 +638,7 @@ static zend_long php_unpack(char *data, size_t size, int issigned, int *map) * Numeric pack types will return numbers, a and A will return strings, * f and d will return doubles. * Implemented formats are Z, A, a, h, H, c, C, s, S, i, I, l, L, n, N, q, Q, J, P, f, d, x, X, @. + * Added g, G for little endian float and big endian float, added e, E for little endian double and big endian double. */ /* {{{ proto array unpack(string format, string input) Unpack binary string into named array elements according to format argument */ From a273b7307d25a04bb7c37a16b8da73856d537e69 Mon Sep 17 00:00:00 2001 From: sskaje Date: Fri, 13 May 2016 15:02:57 +0800 Subject: [PATCH 03/41] Changed invalid pack format in unpack_error.phpt --- ext/standard/tests/strings/unpack_error.phpt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ext/standard/tests/strings/unpack_error.phpt b/ext/standard/tests/strings/unpack_error.phpt index 3a4f334c3b2..1566c0d0852 100644 --- a/ext/standard/tests/strings/unpack_error.phpt +++ b/ext/standard/tests/strings/unpack_error.phpt @@ -19,7 +19,7 @@ var_dump(unpack("I", pack("I", 65534), 0, $extra_arg)); echo "\n-- Testing unpack() function with invalid format character --\n"; $extra_arg = 10; -var_dump(unpack("G", pack("I", 65534))); +var_dump(unpack("B", pack("I", 65534))); ?> ===DONE=== --EXPECTF-- From aa850a533bd9c3d0222a17d56090a98239f24fe2 Mon Sep 17 00:00:00 2001 From: sskaje Date: Fri, 13 May 2016 15:11:17 +0800 Subject: [PATCH 04/41] Changed invalid pack format in unpack_error.phpt --- ext/standard/tests/strings/unpack_error.phpt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ext/standard/tests/strings/unpack_error.phpt b/ext/standard/tests/strings/unpack_error.phpt index 1566c0d0852..484366293b4 100644 --- a/ext/standard/tests/strings/unpack_error.phpt +++ b/ext/standard/tests/strings/unpack_error.phpt @@ -37,6 +37,6 @@ NULL -- Testing unpack() function with invalid format character -- -Warning: unpack(): Invalid format type G in %s on line %d +Warning: unpack(): Invalid format type B in %s on line %d bool(false) ===DONE=== From 267ddb3abd1354a28e8ab6302373afb4aec60f05 Mon Sep 17 00:00:00 2001 From: sskaje Date: Fri, 13 May 2016 15:55:41 +0800 Subject: [PATCH 05/41] missing efree() --- ext/standard/pack.c | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/ext/standard/pack.c b/ext/standard/pack.c index 707c200570a..8d0d7318ec4 100644 --- a/ext/standard/pack.c +++ b/ext/standard/pack.c @@ -1053,10 +1053,12 @@ PHP_FUNCTION(unpack) char *buf = emalloc(sizeof(float)); php_pack_memcpy(1, &buf, &input[inputpos], sizeof(float)); memcpy(&v, &buf, sizeof(float)); + efree(buf); } else if (type == 'G') { char *buf = emalloc(sizeof(float)); php_pack_memcpy(0, &buf, &input[inputpos], sizeof(float)); memcpy(&v, &buf, sizeof(float)); + efree(buf); } else { memcpy(&v, &input[inputpos], sizeof(float)); } @@ -1075,10 +1077,12 @@ PHP_FUNCTION(unpack) char *buf = emalloc(sizeof(double)); php_pack_memcpy(1, &buf, &input[inputpos], sizeof(double)); memcpy(&v, &buf, sizeof(double)); + efree(buf); } else if (type == 'E') { char *buf = emalloc(sizeof(double)); php_pack_memcpy(0, &buf, &input[inputpos], sizeof(double)); memcpy(&v, &buf, sizeof(double)); + efree(buf); } else { memcpy(&v, &input[inputpos], sizeof(double)); } From b56352aa1d8ba014f37fd5e345c751a8e613cc30 Mon Sep 17 00:00:00 2001 From: sskaje Date: Fri, 13 May 2016 17:41:59 +0800 Subject: [PATCH 06/41] PR#1905: directly copy to target memory --- ext/standard/pack.c | 43 +++++++++++-------------------------------- 1 file changed, 11 insertions(+), 32 deletions(-) diff --git a/ext/standard/pack.c b/ext/standard/pack.c index 8d0d7318ec4..f9a3938d776 100644 --- a/ext/standard/pack.c +++ b/ext/standard/pack.c @@ -131,7 +131,6 @@ static void php_pack_memcpy(int is_little_endian, void * dst, void * src, size_t /* Copy to dst from last to first */ - int i = 0; src = src + size - 1; do { *(char *) dst = *(char *)src; @@ -345,8 +344,8 @@ PHP_FUNCTION(pack) break; case 'd': /* double */ - case 'e': /* little endian float */ - case 'E': /* big endian float */ + case 'e': /* little endian double */ + case 'E': /* big endian double */ INC_OUTPUTPOS(arg,sizeof(double)) break; @@ -526,9 +525,7 @@ PHP_FUNCTION(pack) /* pack little endian float */ while (arg-- > 0) { float v = (float) zval_get_double(&argv[currentarg++]); - char *buf = emalloc(sizeof(float)); - php_pack_memcpy(1, &buf, &v, sizeof(float)); - memcpy(&ZSTR_VAL(output)[outputpos], &buf, sizeof(float)); + php_pack_memcpy(1, &ZSTR_VAL(output)[outputpos], &v, sizeof(float)); outputpos += sizeof(v); } @@ -538,9 +535,7 @@ PHP_FUNCTION(pack) /* pack big endian float */ while (arg-- > 0) { float v = (float) zval_get_double(&argv[currentarg++]); - char *buf = emalloc(sizeof(float)); - php_pack_memcpy(0, &buf, &v, sizeof(float)); - memcpy(&ZSTR_VAL(output)[outputpos], &buf, sizeof(float)); + php_pack_memcpy(0, &ZSTR_VAL(output)[outputpos], &v, sizeof(float)); outputpos += sizeof(v); } break; @@ -558,10 +553,8 @@ PHP_FUNCTION(pack) case 'e': { /* pack little endian double */ while (arg-- > 0) { - double v = (double) zval_get_double(&argv[currentarg++]); - char *buf = emalloc(sizeof(double)); - php_pack_memcpy(1, &buf, &v, sizeof(double)); - memcpy(&ZSTR_VAL(output)[outputpos], &buf, sizeof(double)); + double v = (double) zval_get_double(&argv[currentarg++]); + php_pack_memcpy(1, &ZSTR_VAL(output)[outputpos], &v, sizeof(double)); outputpos += sizeof(v); } break; @@ -571,9 +564,7 @@ PHP_FUNCTION(pack) /* pack big endian double */ while (arg-- > 0) { double v = (double) zval_get_double(&argv[currentarg++]); - char *buf = emalloc(sizeof(double)); - php_pack_memcpy(0, &buf, &v, sizeof(double)); - memcpy(&ZSTR_VAL(output)[outputpos], &buf, sizeof(double)); + php_pack_memcpy(0, &ZSTR_VAL(output)[outputpos], &v, sizeof(double)); outputpos += sizeof(v); } break; @@ -1050,15 +1041,9 @@ PHP_FUNCTION(unpack) float v; if (type == 'g') { - char *buf = emalloc(sizeof(float)); - php_pack_memcpy(1, &buf, &input[inputpos], sizeof(float)); - memcpy(&v, &buf, sizeof(float)); - efree(buf); + php_pack_memcpy(1, &v, &input[inputpos], sizeof(float)); } else if (type == 'G') { - char *buf = emalloc(sizeof(float)); - php_pack_memcpy(0, &buf, &input[inputpos], sizeof(float)); - memcpy(&v, &buf, sizeof(float)); - efree(buf); + php_pack_memcpy(0, &v, &input[inputpos], sizeof(float)); } else { memcpy(&v, &input[inputpos], sizeof(float)); } @@ -1074,15 +1059,9 @@ PHP_FUNCTION(unpack) { double v; if (type == 'e') { - char *buf = emalloc(sizeof(double)); - php_pack_memcpy(1, &buf, &input[inputpos], sizeof(double)); - memcpy(&v, &buf, sizeof(double)); - efree(buf); + php_pack_memcpy(1, &v, &input[inputpos], sizeof(double)); } else if (type == 'E') { - char *buf = emalloc(sizeof(double)); - php_pack_memcpy(0, &buf, &input[inputpos], sizeof(double)); - memcpy(&v, &buf, sizeof(double)); - efree(buf); + php_pack_memcpy(0, &v, &input[inputpos], sizeof(double)); } else { memcpy(&v, &input[inputpos], sizeof(double)); } From cb2bae018fba0fb3da6e80dd5a5a05e0e2f8dc88 Mon Sep 17 00:00:00 2001 From: sskaje Date: Tue, 31 May 2016 20:08:09 +0800 Subject: [PATCH 07/41] better but longer way processing float/double and memory --- ext/standard/pack.c | 155 ++++++++++++++++++++++++++++++++++---------- 1 file changed, 120 insertions(+), 35 deletions(-) diff --git a/ext/standard/pack.c b/ext/standard/pack.c index f9a3938d776..a450ec95252 100644 --- a/ext/standard/pack.c +++ b/ext/standard/pack.c @@ -104,41 +104,126 @@ static void php_pack(zval *val, size_t size, int *map, char *output) } /* }}} */ - -/* {{{ php_pack_is_little_endian +/* {{{ php_pack_reverse_int32 */ -static int php_pack_is_little_endian() +inline uint32_t php_pack_reverse_int32(uint32_t arg) { - int machine_endian_check = 1; - - return ((char *)&machine_endian_check)[0]; + uint32_t result; + result = ((arg & 0xFF) << 24) | ((arg & 0xFF00) << 8) | ((arg >> 8) & 0xFF00) | ((arg >> 24) & 0xFF); + + return result; } /* }}} */ - -/* {{{ php_pack_memcpy +/* {{{ php_pack */ -static void php_pack_memcpy(int is_little_endian, void * dst, void * src, size_t size) +inline uint64_t php_pack_reverse_int64(uint64_t arg) { - int is_sys_little_endian = php_pack_is_little_endian(); - - if (is_little_endian == is_sys_little_endian) { - /* - System and input uses same endian, simply perform memcpy - */ - memcpy(dst, src, size); - } else { - /* - Copy to dst from last to first - */ - src = src + size - 1; - do { - *(char *) dst = *(char *)src; - ++dst; - --src; - } while (-- size); + union Swap64 { + uint64_t i; + uint32_t ul[2]; + } tmp, result; + tmp.i = arg; + result.ul[0] = php_pack_reverse_int32(tmp.ul[1]); + result.ul[1] = php_pack_reverse_int32(tmp.ul[0]); + + return result.i; +} +/* }}} */ + +/* {{{ php_pack_copy_float + */ +static void php_pack_copy_float(int is_little_endian, void * dst, float f) +{ + union Copy32 { + float f; + uint32_t i; + } m; + m.f = f; + +#ifdef WORDS_BIGENDIAN + if (is_little_endian) { + m.i = php_pack_reverse_int32(m.i); } - +#else /* WORDS_BIGENDIAN */ + if (!is_little_endian) { + m.i = php_pack_reverse_int32(m.i); + } +#endif /* WORDS_BIGENDIAN */ + + memcpy(dst, &m.f, sizeof(float)); +} +/* }}} */ + +/* {{{ php_pack_copy_double + */ +static void php_pack_copy_double(int is_little_endian, void * dst, double d) +{ + union Copy64 { + double d; + uint64_t i; + } m; + m.d = d; + +#ifdef WORDS_BIGENDIAN + if (is_little_endian) { + m.i = php_pack_reverse_int64(m.i); + } +#else /* WORDS_BIGENDIAN */ + if (!is_little_endian) { + m.i = php_pack_reverse_int64(m.i); + } +#endif /* WORDS_BIGENDIAN */ + + memcpy(dst, &m.d, sizeof(double)); +} +/* }}} */ + +/* {{{ php_pack_parse_float + */ +static float php_pack_parse_float(int is_little_endian, void * src) +{ + union Copy32 { + float f; + uint32_t i; + } m; + memcpy(&m.i, src, sizeof(float)); + +#ifdef WORDS_BIGENDIAN + if (is_little_endian) { + m.i = php_pack_reverse_int32(m.i); + } +#else /* WORDS_BIGENDIAN */ + if (!is_little_endian) { + m.i = php_pack_reverse_int32(m.i); + } +#endif /* WORDS_BIGENDIAN */ + + return m.f; +} +/* }}} */ + +/* {{{ php_pack_parse_double + */ +static double php_pack_parse_double(int is_little_endian, void * src) +{ + union Copy64 { + double d; + uint64_t i; + } m; + memcpy(&m.i, src, sizeof(double)); + +#ifdef WORDS_BIGENDIAN + if (is_little_endian) { + m.i = php_pack_reverse_int64(m.i); + } +#else /* WORDS_BIGENDIAN */ + if (!is_little_endian) { + m.i = php_pack_reverse_int64(m.i); + } +#endif /* WORDS_BIGENDIAN */ + + return m.d; } /* }}} */ @@ -525,7 +610,7 @@ PHP_FUNCTION(pack) /* pack little endian float */ while (arg-- > 0) { float v = (float) zval_get_double(&argv[currentarg++]); - php_pack_memcpy(1, &ZSTR_VAL(output)[outputpos], &v, sizeof(float)); + php_pack_copy_float(1, &ZSTR_VAL(output)[outputpos], v); outputpos += sizeof(v); } @@ -535,7 +620,7 @@ PHP_FUNCTION(pack) /* pack big endian float */ while (arg-- > 0) { float v = (float) zval_get_double(&argv[currentarg++]); - php_pack_memcpy(0, &ZSTR_VAL(output)[outputpos], &v, sizeof(float)); + php_pack_copy_float(0, &ZSTR_VAL(output)[outputpos], v); outputpos += sizeof(v); } break; @@ -554,7 +639,7 @@ PHP_FUNCTION(pack) /* pack little endian double */ while (arg-- > 0) { double v = (double) zval_get_double(&argv[currentarg++]); - php_pack_memcpy(1, &ZSTR_VAL(output)[outputpos], &v, sizeof(double)); + php_pack_copy_double(1, &ZSTR_VAL(output)[outputpos], v); outputpos += sizeof(v); } break; @@ -564,7 +649,7 @@ PHP_FUNCTION(pack) /* pack big endian double */ while (arg-- > 0) { double v = (double) zval_get_double(&argv[currentarg++]); - php_pack_memcpy(0, &ZSTR_VAL(output)[outputpos], &v, sizeof(double)); + php_pack_copy_double(0, &ZSTR_VAL(output)[outputpos], v); outputpos += sizeof(v); } break; @@ -1041,9 +1126,9 @@ PHP_FUNCTION(unpack) float v; if (type == 'g') { - php_pack_memcpy(1, &v, &input[inputpos], sizeof(float)); + v = php_pack_parse_float(1, &input[inputpos]); } else if (type == 'G') { - php_pack_memcpy(0, &v, &input[inputpos], sizeof(float)); + v = php_pack_parse_float(0, &input[inputpos]); } else { memcpy(&v, &input[inputpos], sizeof(float)); } @@ -1059,9 +1144,9 @@ PHP_FUNCTION(unpack) { double v; if (type == 'e') { - php_pack_memcpy(1, &v, &input[inputpos], sizeof(double)); + v = php_pack_parse_double(1, &input[inputpos]); } else if (type == 'E') { - php_pack_memcpy(0, &v, &input[inputpos], sizeof(double)); + v = php_pack_parse_double(0, &input[inputpos]); } else { memcpy(&v, &input[inputpos], sizeof(double)); } From 788a2d0226f64b80142dd66f4731003ed4acb4f8 Mon Sep 17 00:00:00 2001 From: sskaje Date: Wed, 1 Jun 2016 09:28:20 +0800 Subject: [PATCH 08/41] Add entry to UPGRADING --- UPGRADING | 1 + 1 file changed, 1 insertion(+) diff --git a/UPGRADING b/UPGRADING index b000d54ea39..bc93640f793 100644 --- a/UPGRADING +++ b/UPGRADING @@ -103,6 +103,7 @@ PHP 7.1 UPGRADE NOTES - unpack() accepts an additional optional $offset argument. '@' format code (that specifes an absolute position) is applyed to input data after the $offset argument. +- pack() and unpack() now support float and double in both little and big endian. - strpos(), stripos(), substr_count(), grapheme_strpos(), grapheme_stripos(), grapheme_extract(), iconv_strpos(), mb_strimwidth(), mb_ereg_search_setpos(), mb_strpos() and mb_stripos() now accept negative string offsets. From 2464dbd5f3dda7ab69f9217d802d08af0334ec71 Mon Sep 17 00:00:00 2001 From: David Carlier Date: Sat, 15 Oct 2016 14:53:38 +0100 Subject: [PATCH 09/41] import explicit_bzero + strlc* functions update since 1999 algorithms have changed and register k/w not necessary anymore. --- Zend/zend_portability.h | 2 +- configure.in | 4 ++-- ext/standard/crypt.c | 8 +++---- ext/standard/php_crypt_r.c | 2 +- main/explicit_bzero.c | 43 ++++++++++++++++++++++++++++++++++++++ main/php.h | 8 +++++++ main/strlcat.c | 33 ++++++++++++++++------------- main/strlcpy.c | 24 ++++++++++++--------- 8 files changed, 92 insertions(+), 32 deletions(-) create mode 100644 main/explicit_bzero.c diff --git a/Zend/zend_portability.h b/Zend/zend_portability.h index 298dfb53fa1..74e7348bb29 100644 --- a/Zend/zend_portability.h +++ b/Zend/zend_portability.h @@ -435,7 +435,7 @@ char *alloca(); #ifdef ZEND_WIN32 #define ZEND_SECURE_ZERO(var, size) RtlSecureZeroMemory((var), (size)) #else -#define ZEND_SECURE_ZERO(var, size) memset((var), 0, (size)) +#define ZEND_SECURE_ZERO(var, size) explicit_bzero((var), (size)) #endif /* This check should only be used on network socket, not file descriptors */ diff --git a/configure.in b/configure.in index de68932ca1f..16ca2fe9e49 100644 --- a/configure.in +++ b/configure.in @@ -768,7 +768,7 @@ if test "$ac_cv_func_sync_fetch_and_add" = yes; then AC_DEFINE(HAVE_SYNC_FETCH_AND_ADD,1,[Define if you have the __sync_fetch_and_add function]) fi -AC_REPLACE_FUNCS(strlcat strlcpy getopt) +AC_REPLACE_FUNCS(strlcat strlcpy explicit_bzero getopt) AC_FUNC_UTIME_NULL AC_FUNC_ALLOCA dnl PHP_AC_BROKEN_SPRINTF @@ -1479,7 +1479,7 @@ PHP_ADD_SOURCES(TSRM, TSRM.c tsrm_strtok_r.c, -DZEND_ENABLE_STATIC_TSRMLS_CACHE= PHP_ADD_SOURCES(main, main.c snprintf.c spprintf.c php_sprintf.c \ fopen_wrappers.c alloca.c php_scandir.c \ php_ini.c SAPI.c rfc1867.c php_content_types.c strlcpy.c \ - strlcat.c mergesort.c reentrancy.c php_variables.c php_ticks.c \ + strlcat.c explicit_bzero.c mergesort.c reentrancy.c php_variables.c php_ticks.c \ network.c php_open_temporary_file.c \ output.c getopt.c, -DZEND_ENABLE_STATIC_TSRMLS_CACHE=1) diff --git a/ext/standard/crypt.c b/ext/standard/crypt.c index f2f778e764b..99af6fb006e 100644 --- a/ext/standard/crypt.c +++ b/ext/standard/crypt.c @@ -129,12 +129,12 @@ PHPAPI zend_string *php_crypt(const char *password, const int pass_len, const ch crypt_res = php_sha512_crypt_r(password, salt, output, PHP_MAX_SALT_LEN); if (!crypt_res) { - memset(output, 0, PHP_MAX_SALT_LEN); + explicit_bzero(output, PHP_MAX_SALT_LEN); efree(output); return NULL; } else { result = zend_string_init(output, strlen(output), 0); - memset(output, 0, PHP_MAX_SALT_LEN); + explicit_bzero(output, PHP_MAX_SALT_LEN); efree(output); return result; } @@ -144,12 +144,12 @@ PHPAPI zend_string *php_crypt(const char *password, const int pass_len, const ch crypt_res = php_sha256_crypt_r(password, salt, output, PHP_MAX_SALT_LEN); if (!crypt_res) { - memset(output, 0, PHP_MAX_SALT_LEN); + explicit_bzero(output, PHP_MAX_SALT_LEN); efree(output); return NULL; } else { result = zend_string_init(output, strlen(output), 0); - memset(output, 0, PHP_MAX_SALT_LEN); + explicit_bzero(output, PHP_MAX_SALT_LEN); efree(output); return result; } diff --git a/ext/standard/php_crypt_r.c b/ext/standard/php_crypt_r.c index 8b97d4a496e..27cc82af8b3 100644 --- a/ext/standard/php_crypt_r.c +++ b/ext/standard/php_crypt_r.c @@ -364,7 +364,7 @@ char * php_md5_crypt_r(const char *pw, const char *salt, char *out) PHP_MD5Update(&ctx, final, (unsigned int)(pl > 16 ? 16 : pl)); /* Don't leave anything around in vm they could use. */ - memset(final, 0, sizeof(final)); + explicit_bzero(final, sizeof(final)); /* Then something really weird... */ for (i = pwl; i != 0; i >>= 1) diff --git a/main/explicit_bzero.c b/main/explicit_bzero.c new file mode 100644 index 00000000000..ffe5bec9b3b --- /dev/null +++ b/main/explicit_bzero.c @@ -0,0 +1,43 @@ +/* + +----------------------------------------------------------------------+ + | PHP Version 7 | + +----------------------------------------------------------------------+ + | Copyright (c) 1997-2016 The PHP Group | + +----------------------------------------------------------------------+ + | This source file is subject to version 3.01 of the PHP license, | + | that is bundled with this package in the file LICENSE, and is | + | available through the world-wide-web at the following url: | + | http://www.php.net/license/3_01.txt | + | If you did not receive a copy of the PHP license and are unable to | + | obtain it through the world-wide-web, please send a note to | + | license@php.net so we can mail you a copy immediately. | + +----------------------------------------------------------------------+ + | Author: | + +----------------------------------------------------------------------+ +*/ + +/* $Id$ */ + +#include "php.h" + +#ifndef HAVE_EXPLICIT_BZERO + +/* $OpenBSD: explicit_bzero.c,v 1.4 2015/08/31 02:53:57 guenther Exp $ */ +/* + * Public domain. + * Written by Matthew Dempsky. + */ + +#include + +__attribute__((weak)) void +__explicit_bzero_hook(void *dst, size_t siz) +{ +} + +PHPAPI void php_explicit_bzero(void *dst, size_t siz) +{ + memset(dst, 0, siz); + __explicit_bzero_hook(dst, siz); +} +#endif diff --git a/main/php.h b/main/php.h index 32ab59386fb..b9b091d58e1 100644 --- a/main/php.h +++ b/main/php.h @@ -136,6 +136,14 @@ END_EXTERN_C() #define strlcat php_strlcat #endif +#ifndef HAVE_STRLCAT +BEGIN_EXTERN_C() +PHPAPI void php_explicit_bzero(void *dst, size_t siz); +END_EXTERN_C() +#undef explicit_bzero +#define explicit_bzero php_explicit_bzero +#endif + #ifndef HAVE_STRTOK_R BEGIN_EXTERN_C() char *strtok_r(char *s, const char *delim, char **last); diff --git a/main/strlcat.c b/main/strlcat.c index 242819ac6f2..a885ac304c3 100644 --- a/main/strlcat.c +++ b/main/strlcat.c @@ -69,29 +69,34 @@ PHPAPI size_t php_strlcat(dst, src, siz) const char *src; size_t siz; { - register char *d = dst; - register const char *s = src; - register size_t n = siz; + const char *d = dst; + const char *s = src; + size_t n = siz; size_t dlen; /* Find the end of dst and adjust bytes left but don't go past end */ - while (*d != '\0' && n-- != 0) - d++; - dlen = d - dst; + while (n-- != 0 && *dst != '\0') + dst++; + dlen = (uintptr_t)dst - (uintptr_t)d; n = siz - dlen; - if (n == 0) - return(dlen + strlen(s)); - while (*s != '\0') { - if (n != 1) { - *d++ = *s; + if (n-- == 0) + return(dlen + strlen(src)); + while (*src != '\0') { + if (n != 0) { + *dst++ = *src; n--; } - s++; + src++; } - *d = '\0'; + *dst = '\0'; - return(dlen + (s - src)); /* count does not include NUL */ + /* + * Cast pointers to unsigned type before calculation, to avoid signed + * overflow when the string ends where the MSB has changed. + * Return value does not include NUL. + */ + return(dlen + ((uintptr_t)src - (uintptr_t)s)); } #endif /* !HAVE_STRLCAT */ diff --git a/main/strlcpy.c b/main/strlcpy.c index 60d3e9906db..09008664f6d 100644 --- a/main/strlcpy.c +++ b/main/strlcpy.c @@ -68,27 +68,31 @@ PHPAPI size_t php_strlcpy(dst, src, siz) const char *src; size_t siz; { - register char *d = dst; - register const char *s = src; - register size_t n = siz; + const char *s = src; + size_t n = siz; /* Copy as many bytes as will fit */ - if (n != 0 && --n != 0) { - do { - if ((*d++ = *s++) == 0) + if (n != 0) { + while (--n != 0) { + if ((*dst++ = *src++) == 0) break; - } while (--n != 0); + } } /* Not enough room in dst, add NUL and traverse rest of src */ if (n == 0) { if (siz != 0) - *d = '\0'; /* NUL-terminate dst */ - while (*s++) + *dst = '\0'; /* NUL-terminate dst */ + while (*src++) ; } - return(s - src - 1); /* count does not include NUL */ + /* + * Cast pointers to unsigned type before calculation, to avoid signed + * overflow when the string ends where the MSB has changed. + * Return value does not include NUL. + */ + return((uintptr_t)src - (uintptr_t)s - 1); } #endif /* !HAVE_STRLCPY */ From 1ece76411499cecfefd55b59b934963a46ac488b Mon Sep 17 00:00:00 2001 From: David Carlier Date: Sat, 15 Oct 2016 17:55:44 +0100 Subject: [PATCH 10/41] let s use the macro instead --- ext/standard/crypt.c | 8 ++++---- ext/standard/php_crypt_r.c | 2 +- main/php.h | 2 +- 3 files changed, 6 insertions(+), 6 deletions(-) diff --git a/ext/standard/crypt.c b/ext/standard/crypt.c index 99af6fb006e..025887d6ee7 100644 --- a/ext/standard/crypt.c +++ b/ext/standard/crypt.c @@ -129,12 +129,12 @@ PHPAPI zend_string *php_crypt(const char *password, const int pass_len, const ch crypt_res = php_sha512_crypt_r(password, salt, output, PHP_MAX_SALT_LEN); if (!crypt_res) { - explicit_bzero(output, PHP_MAX_SALT_LEN); + ZEND_SECURE_ZERO(output, PHP_MAX_SALT_LEN); efree(output); return NULL; } else { result = zend_string_init(output, strlen(output), 0); - explicit_bzero(output, PHP_MAX_SALT_LEN); + ZEND_SECURE_ZERO(output, PHP_MAX_SALT_LEN); efree(output); return result; } @@ -144,12 +144,12 @@ PHPAPI zend_string *php_crypt(const char *password, const int pass_len, const ch crypt_res = php_sha256_crypt_r(password, salt, output, PHP_MAX_SALT_LEN); if (!crypt_res) { - explicit_bzero(output, PHP_MAX_SALT_LEN); + ZEND_SECURE_ZERO(output, PHP_MAX_SALT_LEN); efree(output); return NULL; } else { result = zend_string_init(output, strlen(output), 0); - explicit_bzero(output, PHP_MAX_SALT_LEN); + ZEND_SECURE_ZERO(output, PHP_MAX_SALT_LEN); efree(output); return result; } diff --git a/ext/standard/php_crypt_r.c b/ext/standard/php_crypt_r.c index 27cc82af8b3..582718b5eae 100644 --- a/ext/standard/php_crypt_r.c +++ b/ext/standard/php_crypt_r.c @@ -364,7 +364,7 @@ char * php_md5_crypt_r(const char *pw, const char *salt, char *out) PHP_MD5Update(&ctx, final, (unsigned int)(pl > 16 ? 16 : pl)); /* Don't leave anything around in vm they could use. */ - explicit_bzero(final, sizeof(final)); + ZEND_SECURE_ZERO(final, sizeof(final)); /* Then something really weird... */ for (i = pwl; i != 0; i >>= 1) diff --git a/main/php.h b/main/php.h index b9b091d58e1..e290d8e5db6 100644 --- a/main/php.h +++ b/main/php.h @@ -136,7 +136,7 @@ END_EXTERN_C() #define strlcat php_strlcat #endif -#ifndef HAVE_STRLCAT +#ifndef HAVE_EXPLICIT_BZERO BEGIN_EXTERN_C() PHPAPI void php_explicit_bzero(void *dst, size_t siz); END_EXTERN_C() From 81ce32a48fcb245f7a473bbd177686f52c09b854 Mon Sep 17 00:00:00 2001 From: David Carlier Date: Thu, 20 Oct 2016 14:12:14 +0100 Subject: [PATCH 11/41] updating cvs revisions of strlcat/cpy --- Zend/zend_language_scanner.c | 10311 ++++++++++++++-------------- Zend/zend_language_scanner_defs.h | 2 +- main/strlcat.c | 4 +- main/strlcpy.c | 4 +- 4 files changed, 5243 insertions(+), 5078 deletions(-) diff --git a/Zend/zend_language_scanner.c b/Zend/zend_language_scanner.c index a509accb97b..fcb14796bde 100644 --- a/Zend/zend_language_scanner.c +++ b/Zend/zend_language_scanner.c @@ -1,4 +1,4 @@ -/* Generated by re2c 0.13.5 */ +/* Generated by re2c 0.16 */ #line 1 "Zend/zend_language_scanner.l" /* +----------------------------------------------------------------------+ @@ -1151,16 +1151,14 @@ restart: } /* *********************************** */ yyc_INITIAL: - - YYDEBUG(0, *YYCURSOR); + YYDEBUG(1, *YYCURSOR); YYFILL(7); yych = *YYCURSOR; - if (yych != '<') goto yy4; - YYDEBUG(2, *YYCURSOR); - ++YYCURSOR; - if ((yych = *YYCURSOR) == '?') goto yy5; -yy3: + if (yych == '<') goto yy5; YYDEBUG(3, *YYCURSOR); + ++YYCURSOR; +yy4: + YYDEBUG(4, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); #line 1804 "Zend/zend_language_scanner.l" { @@ -1207,23 +1205,21 @@ inline_char_handler: HANDLE_NEWLINES(yytext, yyleng); RETURN_TOKEN(T_INLINE_HTML); } -#line 1211 "Zend/zend_language_scanner.c" -yy4: - YYDEBUG(4, *YYCURSOR); - yych = *++YYCURSOR; - goto yy3; +#line 1209 "Zend/zend_language_scanner.c" yy5: YYDEBUG(5, *YYCURSOR); - yyaccept = 0; + yych = *++YYCURSOR; + if (yych != '?') goto yy4; + YYDEBUG(6, *YYCURSOR); yych = *(YYMARKER = ++YYCURSOR); if (yych <= 'O') { - if (yych == '=') goto yy7; + if (yych == '=') goto yy8; } else { - if (yych <= 'P') goto yy9; - if (yych == 'p') goto yy9; + if (yych <= 'P') goto yy10; + if (yych == 'p') goto yy10; } -yy6: - YYDEBUG(6, *YYCURSOR); +yy7: + YYDEBUG(7, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); #line 1795 "Zend/zend_language_scanner.l" { @@ -1234,47 +1230,47 @@ yy6: goto inline_char_handler; } } -#line 1238 "Zend/zend_language_scanner.c" -yy7: - YYDEBUG(7, *YYCURSOR); - ++YYCURSOR; +#line 1234 "Zend/zend_language_scanner.c" +yy8: YYDEBUG(8, *YYCURSOR); + ++YYCURSOR; + YYDEBUG(9, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); #line 1782 "Zend/zend_language_scanner.l" { BEGIN(ST_IN_SCRIPTING); RETURN_TOKEN(T_OPEN_TAG_WITH_ECHO); } -#line 1249 "Zend/zend_language_scanner.c" -yy9: - YYDEBUG(9, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'H') goto yy11; - if (yych == 'h') goto yy11; +#line 1245 "Zend/zend_language_scanner.c" yy10: YYDEBUG(10, *YYCURSOR); - YYCURSOR = YYMARKER; - goto yy6; + yych = *++YYCURSOR; + if (yych == 'H') goto yy12; + if (yych == 'h') goto yy12; yy11: YYDEBUG(11, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'P') goto yy12; - if (yych != 'p') goto yy10; + YYCURSOR = YYMARKER; + goto yy7; yy12: YYDEBUG(12, *YYCURSOR); yych = *++YYCURSOR; - if (yych <= '\f') { - if (yych <= 0x08) goto yy10; - if (yych >= '\v') goto yy10; - } else { - if (yych <= '\r') goto yy15; - if (yych != ' ') goto yy10; - } + if (yych == 'P') goto yy13; + if (yych != 'p') goto yy11; yy13: YYDEBUG(13, *YYCURSOR); - ++YYCURSOR; + yych = *++YYCURSOR; + if (yych <= '\f') { + if (yych <= 0x08) goto yy11; + if (yych >= '\v') goto yy11; + } else { + if (yych <= '\r') goto yy16; + if (yych != ' ') goto yy11; + } yy14: YYDEBUG(14, *YYCURSOR); + ++YYCURSOR; +yy15: + YYDEBUG(15, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); #line 1788 "Zend/zend_language_scanner.l" { @@ -1282,12 +1278,12 @@ yy14: BEGIN(ST_IN_SCRIPTING); RETURN_TOKEN(T_OPEN_TAG); } -#line 1286 "Zend/zend_language_scanner.c" -yy15: - YYDEBUG(15, *YYCURSOR); +#line 1282 "Zend/zend_language_scanner.c" +yy16: + YYDEBUG(16, *YYCURSOR); ++YYCURSOR; - if ((yych = *YYCURSOR) == '\n') goto yy13; - goto yy14; + if ((yych = *YYCURSOR) == '\n') goto yy14; + goto yy15; /* *********************************** */ yyc_ST_BACKQUOTE: { @@ -1325,32 +1321,19 @@ yyc_ST_BACKQUOTE: 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, }; - YYDEBUG(16, *YYCURSOR); + YYDEBUG(17, *YYCURSOR); YYFILL(2); yych = *YYCURSOR; if (yych <= '_') { - if (yych != '$') goto yy23; + if (yych == '$') goto yy21; } else { - if (yych <= '`') goto yy21; - if (yych == '{') goto yy20; - goto yy23; + if (yych <= '`') goto yy22; + if (yych == '{') goto yy24; } - YYDEBUG(18, *YYCURSOR); - ++YYCURSOR; - if ((yych = *YYCURSOR) <= '_') { - if (yych <= '@') goto yy19; - if (yych <= 'Z') goto yy26; - if (yych >= '_') goto yy26; - } else { - if (yych <= 'z') { - if (yych >= 'a') goto yy26; - } else { - if (yych <= '{') goto yy29; - if (yych >= 0x80) goto yy26; - } - } -yy19: YYDEBUG(19, *YYCURSOR); + ++YYCURSOR; +yy20: + YYDEBUG(20, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); #line 2214 "Zend/zend_language_scanner.l" { @@ -1393,31 +1376,77 @@ yy19: zend_scan_escape_string(zendlval, yytext, yyleng, '`'); RETURN_TOKEN(T_ENCAPSED_AND_WHITESPACE); } -#line 1397 "Zend/zend_language_scanner.c" -yy20: - YYDEBUG(20, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == '$') goto yy24; - goto yy19; +#line 1380 "Zend/zend_language_scanner.c" yy21: YYDEBUG(21, *YYCURSOR); - ++YYCURSOR; + yych = *++YYCURSOR; + if (yych <= '_') { + if (yych <= '@') goto yy20; + if (yych <= 'Z') goto yy25; + if (yych <= '^') goto yy20; + goto yy25; + } else { + if (yych <= 'z') { + if (yych <= '`') goto yy20; + goto yy25; + } else { + if (yych <= '{') goto yy28; + if (yych <= 0x7F) goto yy20; + goto yy25; + } + } +yy22: YYDEBUG(22, *YYCURSOR); + ++YYCURSOR; + YYDEBUG(23, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); #line 2158 "Zend/zend_language_scanner.l" { BEGIN(ST_IN_SCRIPTING); RETURN_TOKEN('`'); } -#line 1413 "Zend/zend_language_scanner.c" -yy23: - YYDEBUG(23, *YYCURSOR); - yych = *++YYCURSOR; - goto yy19; +#line 1409 "Zend/zend_language_scanner.c" yy24: YYDEBUG(24, *YYCURSOR); - ++YYCURSOR; + yych = *++YYCURSOR; + if (yych == '$') goto yy30; + goto yy20; +yy25: YYDEBUG(25, *YYCURSOR); + YYMARKER = ++YYCURSOR; + YYFILL(3); + yych = *YYCURSOR; + YYDEBUG(26, *YYCURSOR); + if (yybm[0+yych] & 128) { + goto yy25; + } + if (yych == '-') goto yy32; + if (yych <= '@') goto yy27; + if (yych <= '[') goto yy34; +yy27: + YYDEBUG(27, *YYCURSOR); + yyleng = YYCURSOR - SCNG(yy_text); +#line 1869 "Zend/zend_language_scanner.l" + { + zend_copy_value(zendlval, (yytext+1), (yyleng-1)); + RETURN_TOKEN(T_VARIABLE); +} +#line 1435 "Zend/zend_language_scanner.c" +yy28: + YYDEBUG(28, *YYCURSOR); + ++YYCURSOR; + YYDEBUG(29, *YYCURSOR); + yyleng = YYCURSOR - SCNG(yy_text); +#line 1587 "Zend/zend_language_scanner.l" + { + yy_push_state(ST_LOOKING_FOR_VARNAME); + RETURN_TOKEN(T_DOLLAR_OPEN_CURLY_BRACES); +} +#line 1446 "Zend/zend_language_scanner.c" +yy30: + YYDEBUG(30, *YYCURSOR); + ++YYCURSOR; + YYDEBUG(31, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); #line 2145 "Zend/zend_language_scanner.l" { @@ -1426,51 +1455,19 @@ yy24: yyless(1); RETURN_TOKEN(T_CURLY_OPEN); } -#line 1430 "Zend/zend_language_scanner.c" -yy26: - YYDEBUG(26, *YYCURSOR); - yyaccept = 0; - YYMARKER = ++YYCURSOR; - YYFILL(3); - yych = *YYCURSOR; - YYDEBUG(27, *YYCURSOR); - if (yybm[0+yych] & 128) { - goto yy26; - } - if (yych == '-') goto yy31; - if (yych == '[') goto yy33; -yy28: - YYDEBUG(28, *YYCURSOR); - yyleng = YYCURSOR - SCNG(yy_text); -#line 1869 "Zend/zend_language_scanner.l" - { - zend_copy_value(zendlval, (yytext+1), (yyleng-1)); - RETURN_TOKEN(T_VARIABLE); -} -#line 1451 "Zend/zend_language_scanner.c" -yy29: - YYDEBUG(29, *YYCURSOR); - ++YYCURSOR; - YYDEBUG(30, *YYCURSOR); - yyleng = YYCURSOR - SCNG(yy_text); -#line 1587 "Zend/zend_language_scanner.l" - { - yy_push_state(ST_LOOKING_FOR_VARNAME); - RETURN_TOKEN(T_DOLLAR_OPEN_CURLY_BRACES); -} -#line 1462 "Zend/zend_language_scanner.c" -yy31: - YYDEBUG(31, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == '>') goto yy35; +#line 1459 "Zend/zend_language_scanner.c" yy32: YYDEBUG(32, *YYCURSOR); - YYCURSOR = YYMARKER; - goto yy28; + yych = *++YYCURSOR; + if (yych == '>') goto yy36; yy33: YYDEBUG(33, *YYCURSOR); - ++YYCURSOR; + YYCURSOR = YYMARKER; + goto yy27; +yy34: YYDEBUG(34, *YYCURSOR); + ++YYCURSOR; + YYDEBUG(35, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); #line 1862 "Zend/zend_language_scanner.l" { @@ -1479,23 +1476,23 @@ yy33: zend_copy_value(zendlval, (yytext+1), (yyleng-1)); RETURN_TOKEN(T_VARIABLE); } -#line 1483 "Zend/zend_language_scanner.c" -yy35: - YYDEBUG(35, *YYCURSOR); - yych = *++YYCURSOR; - if (yych <= '_') { - if (yych <= '@') goto yy32; - if (yych <= 'Z') goto yy36; - if (yych <= '^') goto yy32; - } else { - if (yych <= '`') goto yy32; - if (yych <= 'z') goto yy36; - if (yych <= 0x7F) goto yy32; - } +#line 1480 "Zend/zend_language_scanner.c" yy36: YYDEBUG(36, *YYCURSOR); - ++YYCURSOR; + yych = *++YYCURSOR; + if (yych <= '_') { + if (yych <= '@') goto yy33; + if (yych <= 'Z') goto yy37; + if (yych <= '^') goto yy33; + } else { + if (yych <= '`') goto yy33; + if (yych <= 'z') goto yy37; + if (yych <= 0x7F) goto yy33; + } +yy37: YYDEBUG(37, *YYCURSOR); + ++YYCURSOR; + YYDEBUG(38, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); #line 1853 "Zend/zend_language_scanner.l" { @@ -1504,7 +1501,7 @@ yy36: zend_copy_value(zendlval, (yytext+1), (yyleng-1)); RETURN_TOKEN(T_VARIABLE); } -#line 1508 "Zend/zend_language_scanner.c" +#line 1505 "Zend/zend_language_scanner.c" } /* *********************************** */ yyc_ST_DOUBLE_QUOTES: @@ -1543,34 +1540,19 @@ yyc_ST_DOUBLE_QUOTES: 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, }; - YYDEBUG(38, *YYCURSOR); + YYDEBUG(39, *YYCURSOR); YYFILL(2); yych = *YYCURSOR; if (yych <= '#') { if (yych == '"') goto yy43; - goto yy45; } else { - if (yych <= '$') goto yy40; - if (yych == '{') goto yy42; - goto yy45; + if (yych <= '$') goto yy45; + if (yych == '{') goto yy46; } -yy40: - YYDEBUG(40, *YYCURSOR); - ++YYCURSOR; - if ((yych = *YYCURSOR) <= '_') { - if (yych <= '@') goto yy41; - if (yych <= 'Z') goto yy48; - if (yych >= '_') goto yy48; - } else { - if (yych <= 'z') { - if (yych >= 'a') goto yy48; - } else { - if (yych <= '{') goto yy51; - if (yych >= 0x80) goto yy48; - } - } -yy41: YYDEBUG(41, *YYCURSOR); + ++YYCURSOR; +yy42: + YYDEBUG(42, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); #line 2164 "Zend/zend_language_scanner.l" { @@ -1621,12 +1603,7 @@ double_quotes_scan_done: zend_scan_escape_string(zendlval, yytext, yyleng, '"'); RETURN_TOKEN(T_ENCAPSED_AND_WHITESPACE); } -#line 1625 "Zend/zend_language_scanner.c" -yy42: - YYDEBUG(42, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == '$') goto yy46; - goto yy41; +#line 1607 "Zend/zend_language_scanner.c" yy43: YYDEBUG(43, *YYCURSOR); ++YYCURSOR; @@ -1637,15 +1614,66 @@ yy43: BEGIN(ST_IN_SCRIPTING); RETURN_TOKEN('"'); } -#line 1641 "Zend/zend_language_scanner.c" +#line 1618 "Zend/zend_language_scanner.c" yy45: YYDEBUG(45, *YYCURSOR); yych = *++YYCURSOR; - goto yy41; + if (yych <= '_') { + if (yych <= '@') goto yy42; + if (yych <= 'Z') goto yy47; + if (yych <= '^') goto yy42; + goto yy47; + } else { + if (yych <= 'z') { + if (yych <= '`') goto yy42; + goto yy47; + } else { + if (yych <= '{') goto yy50; + if (yych <= 0x7F) goto yy42; + goto yy47; + } + } yy46: YYDEBUG(46, *YYCURSOR); - ++YYCURSOR; + yych = *++YYCURSOR; + if (yych == '$') goto yy52; + goto yy42; +yy47: YYDEBUG(47, *YYCURSOR); + YYMARKER = ++YYCURSOR; + YYFILL(3); + yych = *YYCURSOR; + YYDEBUG(48, *YYCURSOR); + if (yybm[0+yych] & 128) { + goto yy47; + } + if (yych == '-') goto yy54; + if (yych <= '@') goto yy49; + if (yych <= '[') goto yy56; +yy49: + YYDEBUG(49, *YYCURSOR); + yyleng = YYCURSOR - SCNG(yy_text); +#line 1869 "Zend/zend_language_scanner.l" + { + zend_copy_value(zendlval, (yytext+1), (yyleng-1)); + RETURN_TOKEN(T_VARIABLE); +} +#line 1662 "Zend/zend_language_scanner.c" +yy50: + YYDEBUG(50, *YYCURSOR); + ++YYCURSOR; + YYDEBUG(51, *YYCURSOR); + yyleng = YYCURSOR - SCNG(yy_text); +#line 1587 "Zend/zend_language_scanner.l" + { + yy_push_state(ST_LOOKING_FOR_VARNAME); + RETURN_TOKEN(T_DOLLAR_OPEN_CURLY_BRACES); +} +#line 1673 "Zend/zend_language_scanner.c" +yy52: + YYDEBUG(52, *YYCURSOR); + ++YYCURSOR; + YYDEBUG(53, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); #line 2145 "Zend/zend_language_scanner.l" { @@ -1654,51 +1682,19 @@ yy46: yyless(1); RETURN_TOKEN(T_CURLY_OPEN); } -#line 1658 "Zend/zend_language_scanner.c" -yy48: - YYDEBUG(48, *YYCURSOR); - yyaccept = 0; - YYMARKER = ++YYCURSOR; - YYFILL(3); - yych = *YYCURSOR; - YYDEBUG(49, *YYCURSOR); - if (yybm[0+yych] & 128) { - goto yy48; - } - if (yych == '-') goto yy53; - if (yych == '[') goto yy55; -yy50: - YYDEBUG(50, *YYCURSOR); - yyleng = YYCURSOR - SCNG(yy_text); -#line 1869 "Zend/zend_language_scanner.l" - { - zend_copy_value(zendlval, (yytext+1), (yyleng-1)); - RETURN_TOKEN(T_VARIABLE); -} -#line 1679 "Zend/zend_language_scanner.c" -yy51: - YYDEBUG(51, *YYCURSOR); - ++YYCURSOR; - YYDEBUG(52, *YYCURSOR); - yyleng = YYCURSOR - SCNG(yy_text); -#line 1587 "Zend/zend_language_scanner.l" - { - yy_push_state(ST_LOOKING_FOR_VARNAME); - RETURN_TOKEN(T_DOLLAR_OPEN_CURLY_BRACES); -} -#line 1690 "Zend/zend_language_scanner.c" -yy53: - YYDEBUG(53, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == '>') goto yy57; +#line 1686 "Zend/zend_language_scanner.c" yy54: YYDEBUG(54, *YYCURSOR); - YYCURSOR = YYMARKER; - goto yy50; + yych = *++YYCURSOR; + if (yych == '>') goto yy58; yy55: YYDEBUG(55, *YYCURSOR); - ++YYCURSOR; + YYCURSOR = YYMARKER; + goto yy49; +yy56: YYDEBUG(56, *YYCURSOR); + ++YYCURSOR; + YYDEBUG(57, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); #line 1862 "Zend/zend_language_scanner.l" { @@ -1707,23 +1703,23 @@ yy55: zend_copy_value(zendlval, (yytext+1), (yyleng-1)); RETURN_TOKEN(T_VARIABLE); } -#line 1711 "Zend/zend_language_scanner.c" -yy57: - YYDEBUG(57, *YYCURSOR); - yych = *++YYCURSOR; - if (yych <= '_') { - if (yych <= '@') goto yy54; - if (yych <= 'Z') goto yy58; - if (yych <= '^') goto yy54; - } else { - if (yych <= '`') goto yy54; - if (yych <= 'z') goto yy58; - if (yych <= 0x7F) goto yy54; - } +#line 1707 "Zend/zend_language_scanner.c" yy58: YYDEBUG(58, *YYCURSOR); - ++YYCURSOR; + yych = *++YYCURSOR; + if (yych <= '_') { + if (yych <= '@') goto yy55; + if (yych <= 'Z') goto yy59; + if (yych <= '^') goto yy55; + } else { + if (yych <= '`') goto yy55; + if (yych <= 'z') goto yy59; + if (yych <= 0x7F) goto yy55; + } +yy59: YYDEBUG(59, *YYCURSOR); + ++YYCURSOR; + YYDEBUG(60, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); #line 1853 "Zend/zend_language_scanner.l" { @@ -1732,16 +1728,16 @@ yy58: zend_copy_value(zendlval, (yytext+1), (yyleng-1)); RETURN_TOKEN(T_VARIABLE); } -#line 1736 "Zend/zend_language_scanner.c" +#line 1732 "Zend/zend_language_scanner.c" } /* *********************************** */ yyc_ST_END_HEREDOC: - YYDEBUG(60, *YYCURSOR); + YYDEBUG(61, *YYCURSOR); YYFILL(1); yych = *YYCURSOR; - YYDEBUG(62, *YYCURSOR); - ++YYCURSOR; YYDEBUG(63, *YYCURSOR); + ++YYCURSOR; + YYDEBUG(64, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); #line 2131 "Zend/zend_language_scanner.l" { @@ -1756,7 +1752,7 @@ yyc_ST_END_HEREDOC: BEGIN(ST_IN_SCRIPTING); RETURN_TOKEN(T_END_HEREDOC); } -#line 1760 "Zend/zend_language_scanner.c" +#line 1756 "Zend/zend_language_scanner.c" /* *********************************** */ yyc_ST_HEREDOC: { @@ -1794,29 +1790,15 @@ yyc_ST_HEREDOC: 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, }; - YYDEBUG(64, *YYCURSOR); + YYDEBUG(65, *YYCURSOR); YYFILL(2); yych = *YYCURSOR; - if (yych == '$') goto yy66; - if (yych == '{') goto yy68; - goto yy69; -yy66: - YYDEBUG(66, *YYCURSOR); - ++YYCURSOR; - if ((yych = *YYCURSOR) <= '_') { - if (yych <= '@') goto yy67; - if (yych <= 'Z') goto yy72; - if (yych >= '_') goto yy72; - } else { - if (yych <= 'z') { - if (yych >= 'a') goto yy72; - } else { - if (yych <= '{') goto yy75; - if (yych >= 0x80) goto yy72; - } - } -yy67: + if (yych == '$') goto yy69; + if (yych == '{') goto yy70; YYDEBUG(67, *YYCURSOR); + ++YYCURSOR; +yy68: + YYDEBUG(68, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); #line 2256 "Zend/zend_language_scanner.l" { @@ -1891,20 +1873,66 @@ heredoc_scan_done: zend_scan_escape_string(zendlval, yytext, yyleng - newline, 0); RETURN_TOKEN(T_ENCAPSED_AND_WHITESPACE); } -#line 1895 "Zend/zend_language_scanner.c" -yy68: - YYDEBUG(68, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == '$') goto yy70; - goto yy67; +#line 1877 "Zend/zend_language_scanner.c" yy69: YYDEBUG(69, *YYCURSOR); yych = *++YYCURSOR; - goto yy67; + if (yych <= '_') { + if (yych <= '@') goto yy68; + if (yych <= 'Z') goto yy71; + if (yych <= '^') goto yy68; + goto yy71; + } else { + if (yych <= 'z') { + if (yych <= '`') goto yy68; + goto yy71; + } else { + if (yych <= '{') goto yy74; + if (yych <= 0x7F) goto yy68; + goto yy71; + } + } yy70: YYDEBUG(70, *YYCURSOR); - ++YYCURSOR; + yych = *++YYCURSOR; + if (yych == '$') goto yy76; + goto yy68; +yy71: YYDEBUG(71, *YYCURSOR); + YYMARKER = ++YYCURSOR; + YYFILL(3); + yych = *YYCURSOR; + YYDEBUG(72, *YYCURSOR); + if (yybm[0+yych] & 128) { + goto yy71; + } + if (yych == '-') goto yy78; + if (yych <= '@') goto yy73; + if (yych <= '[') goto yy80; +yy73: + YYDEBUG(73, *YYCURSOR); + yyleng = YYCURSOR - SCNG(yy_text); +#line 1869 "Zend/zend_language_scanner.l" + { + zend_copy_value(zendlval, (yytext+1), (yyleng-1)); + RETURN_TOKEN(T_VARIABLE); +} +#line 1921 "Zend/zend_language_scanner.c" +yy74: + YYDEBUG(74, *YYCURSOR); + ++YYCURSOR; + YYDEBUG(75, *YYCURSOR); + yyleng = YYCURSOR - SCNG(yy_text); +#line 1587 "Zend/zend_language_scanner.l" + { + yy_push_state(ST_LOOKING_FOR_VARNAME); + RETURN_TOKEN(T_DOLLAR_OPEN_CURLY_BRACES); +} +#line 1932 "Zend/zend_language_scanner.c" +yy76: + YYDEBUG(76, *YYCURSOR); + ++YYCURSOR; + YYDEBUG(77, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); #line 2145 "Zend/zend_language_scanner.l" { @@ -1913,51 +1941,19 @@ yy70: yyless(1); RETURN_TOKEN(T_CURLY_OPEN); } -#line 1917 "Zend/zend_language_scanner.c" -yy72: - YYDEBUG(72, *YYCURSOR); - yyaccept = 0; - YYMARKER = ++YYCURSOR; - YYFILL(3); - yych = *YYCURSOR; - YYDEBUG(73, *YYCURSOR); - if (yybm[0+yych] & 128) { - goto yy72; - } - if (yych == '-') goto yy77; - if (yych == '[') goto yy79; -yy74: - YYDEBUG(74, *YYCURSOR); - yyleng = YYCURSOR - SCNG(yy_text); -#line 1869 "Zend/zend_language_scanner.l" - { - zend_copy_value(zendlval, (yytext+1), (yyleng-1)); - RETURN_TOKEN(T_VARIABLE); -} -#line 1938 "Zend/zend_language_scanner.c" -yy75: - YYDEBUG(75, *YYCURSOR); - ++YYCURSOR; - YYDEBUG(76, *YYCURSOR); - yyleng = YYCURSOR - SCNG(yy_text); -#line 1587 "Zend/zend_language_scanner.l" - { - yy_push_state(ST_LOOKING_FOR_VARNAME); - RETURN_TOKEN(T_DOLLAR_OPEN_CURLY_BRACES); -} -#line 1949 "Zend/zend_language_scanner.c" -yy77: - YYDEBUG(77, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == '>') goto yy81; +#line 1945 "Zend/zend_language_scanner.c" yy78: YYDEBUG(78, *YYCURSOR); - YYCURSOR = YYMARKER; - goto yy74; + yych = *++YYCURSOR; + if (yych == '>') goto yy82; yy79: YYDEBUG(79, *YYCURSOR); - ++YYCURSOR; + YYCURSOR = YYMARKER; + goto yy73; +yy80: YYDEBUG(80, *YYCURSOR); + ++YYCURSOR; + YYDEBUG(81, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); #line 1862 "Zend/zend_language_scanner.l" { @@ -1966,23 +1962,23 @@ yy79: zend_copy_value(zendlval, (yytext+1), (yyleng-1)); RETURN_TOKEN(T_VARIABLE); } -#line 1970 "Zend/zend_language_scanner.c" -yy81: - YYDEBUG(81, *YYCURSOR); - yych = *++YYCURSOR; - if (yych <= '_') { - if (yych <= '@') goto yy78; - if (yych <= 'Z') goto yy82; - if (yych <= '^') goto yy78; - } else { - if (yych <= '`') goto yy78; - if (yych <= 'z') goto yy82; - if (yych <= 0x7F) goto yy78; - } +#line 1966 "Zend/zend_language_scanner.c" yy82: YYDEBUG(82, *YYCURSOR); - ++YYCURSOR; + yych = *++YYCURSOR; + if (yych <= '_') { + if (yych <= '@') goto yy79; + if (yych <= 'Z') goto yy83; + if (yych <= '^') goto yy79; + } else { + if (yych <= '`') goto yy79; + if (yych <= 'z') goto yy83; + if (yych <= 0x7F) goto yy79; + } +yy83: YYDEBUG(83, *YYCURSOR); + ++YYCURSOR; + YYDEBUG(84, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); #line 1853 "Zend/zend_language_scanner.l" { @@ -1991,49 +1987,51 @@ yy82: zend_copy_value(zendlval, (yytext+1), (yyleng-1)); RETURN_TOKEN(T_VARIABLE); } -#line 1995 "Zend/zend_language_scanner.c" +#line 1991 "Zend/zend_language_scanner.c" } /* *********************************** */ yyc_ST_IN_SCRIPTING: { static const unsigned char yybm[] = { 0, 0, 0, 0, 0, 0, 0, 0, - 0, 192, 64, 0, 0, 64, 0, 0, + 0, 36, 4, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 192, 0, 0, 0, 0, 0, 0, 0, + 36, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 60, 60, 44, 44, 44, 44, 44, 44, - 44, 44, 0, 0, 0, 0, 0, 0, - 0, 36, 36, 36, 36, 36, 36, 4, - 4, 4, 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 4, 4, 4, - 4, 4, 4, 0, 0, 0, 0, 4, - 0, 36, 36, 36, 36, 36, 36, 4, - 4, 4, 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 4, 4, 4, - 4, 4, 4, 0, 0, 0, 0, 0, - 4, 4, 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 4, 4, 4, + 216, 216, 152, 152, 152, 152, 152, 152, + 152, 152, 0, 0, 0, 0, 0, 0, + 0, 144, 144, 144, 144, 144, 144, 16, + 16, 16, 16, 16, 16, 16, 16, 16, + 16, 16, 16, 16, 16, 16, 16, 16, + 16, 16, 16, 0, 0, 0, 0, 16, + 0, 144, 144, 144, 144, 144, 144, 16, + 16, 16, 16, 16, 16, 16, 16, 16, + 16, 16, 16, 16, 16, 16, 16, 16, + 16, 16, 16, 0, 0, 0, 0, 0, + 16, 16, 16, 16, 16, 16, 16, 16, + 16, 16, 16, 16, 16, 16, 16, 16, + 16, 16, 16, 16, 16, 16, 16, 16, + 16, 16, 16, 16, 16, 16, 16, 16, + 16, 16, 16, 16, 16, 16, 16, 16, + 16, 16, 16, 16, 16, 16, 16, 16, + 16, 16, 16, 16, 16, 16, 16, 16, + 16, 16, 16, 16, 16, 16, 16, 16, + 16, 16, 16, 16, 16, 16, 16, 16, + 16, 16, 16, 16, 16, 16, 16, 16, + 16, 16, 16, 16, 16, 16, 16, 16, + 16, 16, 16, 16, 16, 16, 16, 16, + 16, 16, 16, 16, 16, 16, 16, 16, + 16, 16, 16, 16, 16, 16, 16, 16, + 16, 16, 16, 16, 16, 16, 16, 16, + 16, 16, 16, 16, 16, 16, 16, 16, }; - YYDEBUG(84, *YYCURSOR); + YYDEBUG(85, *YYCURSOR); YYFILL(16); yych = *YYCURSOR; - YYDEBUG(-1, yych); + if (yybm[0+yych] & 4) { + goto yy89; + } switch (yych) { case 0x00: case 0x01: @@ -2044,8 +2042,11 @@ yyc_ST_IN_SCRIPTING: case 0x06: case 0x07: case 0x08: + case '\t': + case '\n': case '\v': case '\f': + case '\r': case 0x0E: case 0x0F: case 0x10: @@ -2064,32 +2065,29 @@ yyc_ST_IN_SCRIPTING: case 0x1D: case 0x1E: case 0x1F: - case 0x7F: goto yy147; - case '\t': - case '\n': - case '\r': - case ' ': goto yy103; - case '!': goto yy118; - case '"': goto yy143; - case '#': goto yy139; - case '$': goto yy129; - case '%': goto yy123; - case '&': goto yy124; - case '\'': goto yy141; - case '(': goto yy112; + case 0x7F: goto yy87; + case ' ': + case '!': goto yy92; + case '"': goto yy94; + case '#': goto yy96; + case '$': goto yy98; + case '%': goto yy99; + case '&': goto yy100; + case '\'': goto yy101; + case '(': goto yy103; case ')': case ',': case ';': case '@': case '[': case ']': - case '~': goto yy130; - case '*': goto yy121; - case '+': goto yy117; - case '-': goto yy101; + case '~': goto yy104; + case '*': goto yy105; + case '+': goto yy106; + case '-': goto yy107; case '.': goto yy108; - case '/': goto yy122; - case '0': goto yy135; + case '/': goto yy109; + case '0': goto yy110; case '1': case '2': case '3': @@ -2098,701 +2096,156 @@ yyc_ST_IN_SCRIPTING: case '6': case '7': case '8': - case '9': goto yy137; - case ':': goto yy105; - case '<': goto yy119; - case '=': goto yy115; - case '>': goto yy120; - case '?': goto yy109; + case '9': goto yy112; + case ':': goto yy114; + case '<': goto yy115; + case '=': goto yy116; + case '>': goto yy117; + case '?': goto yy118; case 'A': - case 'a': goto yy96; + case 'a': goto yy119; case 'B': - case 'b': goto yy98; + case 'b': goto yy121; case 'C': - case 'c': goto yy90; + case 'c': goto yy122; case 'D': - case 'd': goto yy88; + case 'd': goto yy123; case 'E': - case 'e': goto yy86; + case 'e': goto yy124; case 'F': - case 'f': goto yy89; + case 'f': goto yy125; case 'G': - case 'g': goto yy99; + case 'g': goto yy126; case 'I': - case 'i': goto yy94; + case 'i': goto yy129; case 'L': - case 'l': goto yy116; + case 'l': goto yy130; case 'N': - case 'n': goto yy110; + case 'n': goto yy131; case 'O': - case 'o': goto yy127; + case 'o': goto yy132; case 'P': - case 'p': goto yy100; + case 'p': goto yy133; case 'R': - case 'r': goto yy91; + case 'r': goto yy134; case 'S': - case 's': goto yy97; + case 's': goto yy135; case 'T': - case 't': goto yy93; + case 't': goto yy136; case 'U': - case 'u': goto yy113; + case 'u': goto yy137; case 'V': - case 'v': goto yy111; + case 'v': goto yy138; case 'W': - case 'w': goto yy95; + case 'w': goto yy139; case 'X': - case 'x': goto yy128; + case 'x': goto yy140; case 'Y': - case 'y': goto yy92; - case '\\': goto yy106; - case '^': goto yy126; - case '_': goto yy114; - case '`': goto yy145; - case '{': goto yy131; - case '|': goto yy125; - case '}': goto yy133; - default: goto yy138; - } -yy86: - YYDEBUG(86, *YYCURSOR); - ++YYCURSOR; - YYDEBUG(-1, yych); - switch ((yych = *YYCURSOR)) { - case 'C': - case 'c': goto yy704; - case 'L': - case 'l': goto yy705; - case 'M': - case 'm': goto yy706; - case 'N': - case 'n': goto yy707; - case 'V': - case 'v': goto yy708; - case 'X': - case 'x': goto yy709; - default: goto yy150; + case 'y': goto yy141; + case '\\': goto yy142; + case '^': goto yy144; + case '_': goto yy145; + case '`': goto yy146; + case '{': goto yy148; + case '|': goto yy150; + case '}': goto yy151; + default: goto yy127; } yy87: YYDEBUG(87, *YYCURSOR); - yyleng = YYCURSOR - SCNG(yy_text); -#line 1892 "Zend/zend_language_scanner.l" - { - zend_copy_value(zendlval, yytext, yyleng); - RETURN_TOKEN(T_STRING); -} -#line 2184 "Zend/zend_language_scanner.c" -yy88: + ++YYCURSOR; YYDEBUG(88, *YYCURSOR); - yych = *++YYCURSOR; - if (yych <= 'O') { - if (yych <= 'H') { - if (yych == 'E') goto yy686; - goto yy150; - } else { - if (yych <= 'I') goto yy687; - if (yych <= 'N') goto yy150; - goto yy688; - } - } else { - if (yych <= 'h') { - if (yych == 'e') goto yy686; - goto yy150; - } else { - if (yych <= 'i') goto yy687; - if (yych == 'o') goto yy688; - goto yy150; - } - } + yyleng = YYCURSOR - SCNG(yy_text); +#line 2387 "Zend/zend_language_scanner.l" + { + if (YYCURSOR > YYLIMIT) { + RETURN_TOKEN(END); + } + + zend_error(E_COMPILE_WARNING,"Unexpected character in input: '%c' (ASCII=%d) state=%d", yytext[0], yytext[0], YYSTATE); + goto restart; +} +#line 2169 "Zend/zend_language_scanner.c" yy89: YYDEBUG(89, *YYCURSOR); - yych = *++YYCURSOR; - if (yych <= 'U') { - if (yych <= 'N') { - if (yych == 'I') goto yy662; - goto yy150; - } else { - if (yych <= 'O') goto yy663; - if (yych <= 'T') goto yy150; - goto yy664; - } - } else { - if (yych <= 'n') { - if (yych == 'i') goto yy662; - goto yy150; - } else { - if (yych <= 'o') goto yy663; - if (yych == 'u') goto yy664; - goto yy150; - } - } -yy90: - YYDEBUG(90, *YYCURSOR); - yych = *++YYCURSOR; - if (yych <= 'O') { - if (yych <= 'K') { - if (yych == 'A') goto yy627; - goto yy150; - } else { - if (yych <= 'L') goto yy628; - if (yych <= 'N') goto yy150; - goto yy629; - } - } else { - if (yych <= 'k') { - if (yych == 'a') goto yy627; - goto yy150; - } else { - if (yych <= 'l') goto yy628; - if (yych == 'o') goto yy629; - goto yy150; - } - } -yy91: - YYDEBUG(91, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'E') goto yy609; - if (yych == 'e') goto yy609; - goto yy150; -yy92: - YYDEBUG(92, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'I') goto yy597; - if (yych == 'i') goto yy597; - goto yy150; -yy93: - YYDEBUG(93, *YYCURSOR); - yych = *++YYCURSOR; - if (yych <= 'R') { - if (yych == 'H') goto yy585; - if (yych <= 'Q') goto yy150; - goto yy586; - } else { - if (yych <= 'h') { - if (yych <= 'g') goto yy150; - goto yy585; - } else { - if (yych == 'r') goto yy586; - goto yy150; - } - } -yy94: - YYDEBUG(94, *YYCURSOR); - yych = *++YYCURSOR; - if (yych <= 'S') { - if (yych <= 'L') { - if (yych == 'F') goto yy532; - goto yy150; - } else { - if (yych <= 'M') goto yy534; - if (yych <= 'N') goto yy535; - if (yych <= 'R') goto yy150; - goto yy536; - } - } else { - if (yych <= 'm') { - if (yych == 'f') goto yy532; - if (yych <= 'l') goto yy150; - goto yy534; - } else { - if (yych <= 'n') goto yy535; - if (yych == 's') goto yy536; - goto yy150; - } - } -yy95: - YYDEBUG(95, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'H') goto yy527; - if (yych == 'h') goto yy527; - goto yy150; -yy96: - YYDEBUG(96, *YYCURSOR); - yych = *++YYCURSOR; - if (yych <= 'S') { - if (yych <= 'M') { - if (yych == 'B') goto yy509; - goto yy150; - } else { - if (yych <= 'N') goto yy510; - if (yych <= 'Q') goto yy150; - if (yych <= 'R') goto yy511; - goto yy512; - } - } else { - if (yych <= 'n') { - if (yych == 'b') goto yy509; - if (yych <= 'm') goto yy150; - goto yy510; - } else { - if (yych <= 'q') goto yy150; - if (yych <= 'r') goto yy511; - if (yych <= 's') goto yy512; - goto yy150; - } - } -yy97: - YYDEBUG(97, *YYCURSOR); - yych = *++YYCURSOR; - if (yych <= 'W') { - if (yych == 'T') goto yy497; - if (yych <= 'V') goto yy150; - goto yy498; - } else { - if (yych <= 't') { - if (yych <= 's') goto yy150; - goto yy497; - } else { - if (yych == 'w') goto yy498; - goto yy150; - } - } -yy98: - YYDEBUG(98, *YYCURSOR); - yyaccept = 0; - yych = *(YYMARKER = ++YYCURSOR); - if (yych <= ';') { - if (yych <= '"') { - if (yych <= '!') goto yy150; - goto yy489; - } else { - if (yych == '\'') goto yy490; - goto yy150; - } - } else { - if (yych <= 'R') { - if (yych <= '<') goto yy488; - if (yych <= 'Q') goto yy150; - goto yy491; - } else { - if (yych == 'r') goto yy491; - goto yy150; - } - } -yy99: - YYDEBUG(99, *YYCURSOR); - yych = *++YYCURSOR; - if (yych <= 'O') { - if (yych == 'L') goto yy478; - if (yych <= 'N') goto yy150; - goto yy479; - } else { - if (yych <= 'l') { - if (yych <= 'k') goto yy150; - goto yy478; - } else { - if (yych == 'o') goto yy479; - goto yy150; - } - } -yy100: - YYDEBUG(100, *YYCURSOR); - yych = *++YYCURSOR; - if (yych <= 'U') { - if (yych == 'R') goto yy454; - if (yych <= 'T') goto yy150; - goto yy455; - } else { - if (yych <= 'r') { - if (yych <= 'q') goto yy150; - goto yy454; - } else { - if (yych == 'u') goto yy455; - goto yy150; - } - } -yy101: - YYDEBUG(101, *YYCURSOR); - ++YYCURSOR; - if ((yych = *YYCURSOR) <= '<') { - if (yych == '-') goto yy450; - } else { - if (yych <= '=') goto yy448; - if (yych <= '>') goto yy452; - } -yy102: - YYDEBUG(102, *YYCURSOR); - yyleng = YYCURSOR - SCNG(yy_text); -#line 1576 "Zend/zend_language_scanner.l" - { - RETURN_TOKEN(yytext[0]); -} -#line 2420 "Zend/zend_language_scanner.c" -yy103: - YYDEBUG(103, *YYCURSOR); ++YYCURSOR; + YYFILL(1); yych = *YYCURSOR; - goto yy447; -yy104: - YYDEBUG(104, *YYCURSOR); + YYDEBUG(90, *YYCURSOR); + if (yybm[0+yych] & 4) { + goto yy89; + } + YYDEBUG(91, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); #line 1291 "Zend/zend_language_scanner.l" { HANDLE_NEWLINES(yytext, yyleng); RETURN_TOKEN(T_WHITESPACE); } -#line 2434 "Zend/zend_language_scanner.c" -yy105: - YYDEBUG(105, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == ':') goto yy444; - goto yy102; -yy106: - YYDEBUG(106, *YYCURSOR); +#line 2186 "Zend/zend_language_scanner.c" +yy92: + YYDEBUG(92, *YYCURSOR); ++YYCURSOR; - YYDEBUG(107, *YYCURSOR); + if ((yych = *YYCURSOR) == '=') goto yy153; +yy93: + YYDEBUG(93, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1316 "Zend/zend_language_scanner.l" +#line 1576 "Zend/zend_language_scanner.l" { - RETURN_TOKEN(T_NS_SEPARATOR); + RETURN_TOKEN(yytext[0]); } -#line 2449 "Zend/zend_language_scanner.c" -yy108: - YYDEBUG(108, *YYCURSOR); - yyaccept = 1; - yych = *(YYMARKER = ++YYCURSOR); - if (yych <= '/') { - if (yych == '.') goto yy441; - goto yy102; - } else { - if (yych <= '9') goto yy437; - if (yych == '=') goto yy439; - goto yy102; - } -yy109: - YYDEBUG(109, *YYCURSOR); - yych = *++YYCURSOR; - if (yych <= '=') goto yy102; - if (yych <= '>') goto yy431; - if (yych <= '?') goto yy433; - goto yy102; -yy110: - YYDEBUG(110, *YYCURSOR); - yych = *++YYCURSOR; - if (yych <= 'E') { - if (yych == 'A') goto yy419; - if (yych <= 'D') goto yy150; - goto yy420; - } else { - if (yych <= 'a') { - if (yych <= '`') goto yy150; - goto yy419; - } else { - if (yych == 'e') goto yy420; - goto yy150; - } - } -yy111: - YYDEBUG(111, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'A') goto yy416; - if (yych == 'a') goto yy416; - goto yy150; -yy112: - YYDEBUG(112, *YYCURSOR); - yyaccept = 1; - yych = *(YYMARKER = ++YYCURSOR); - if (yych <= 'S') { - if (yych <= 'D') { - if (yych <= ' ') { - if (yych == '\t') goto yy341; - if (yych <= 0x1F) goto yy102; - goto yy341; - } else { - if (yych <= '@') goto yy102; - if (yych == 'C') goto yy102; - goto yy341; - } - } else { - if (yych <= 'I') { - if (yych == 'F') goto yy341; - if (yych <= 'H') goto yy102; - goto yy341; - } else { - if (yych == 'O') goto yy341; - if (yych <= 'Q') goto yy102; - goto yy341; - } - } - } else { - if (yych <= 'f') { - if (yych <= 'b') { - if (yych == 'U') goto yy341; - if (yych <= '`') goto yy102; - goto yy341; - } else { - if (yych == 'd') goto yy341; - if (yych <= 'e') goto yy102; - goto yy341; - } - } else { - if (yych <= 'o') { - if (yych == 'i') goto yy341; - if (yych <= 'n') goto yy102; - goto yy341; - } else { - if (yych <= 's') { - if (yych <= 'q') goto yy102; - goto yy341; - } else { - if (yych == 'u') goto yy341; - goto yy102; - } - } - } - } -yy113: - YYDEBUG(113, *YYCURSOR); - yych = *++YYCURSOR; - if (yych <= 'S') { - if (yych == 'N') goto yy332; - if (yych <= 'R') goto yy150; - goto yy333; - } else { - if (yych <= 'n') { - if (yych <= 'm') goto yy150; - goto yy332; - } else { - if (yych == 's') goto yy333; - goto yy150; - } - } -yy114: - YYDEBUG(114, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == '_') goto yy250; - goto yy150; -yy115: - YYDEBUG(115, *YYCURSOR); - yych = *++YYCURSOR; - if (yych <= '<') goto yy102; - if (yych <= '=') goto yy244; - if (yych <= '>') goto yy246; - goto yy102; -yy116: - YYDEBUG(116, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'I') goto yy240; - if (yych == 'i') goto yy240; - goto yy150; -yy117: - YYDEBUG(117, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == '+') goto yy238; - if (yych == '=') goto yy236; - goto yy102; -yy118: - YYDEBUG(118, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == '=') goto yy233; - goto yy102; -yy119: - YYDEBUG(119, *YYCURSOR); - yych = *++YYCURSOR; - if (yych <= ';') goto yy102; - if (yych <= '<') goto yy209; - if (yych <= '=') goto yy211; - if (yych <= '>') goto yy213; - goto yy102; -yy120: - YYDEBUG(120, *YYCURSOR); - yych = *++YYCURSOR; - if (yych <= '<') goto yy102; - if (yych <= '=') goto yy205; - if (yych <= '>') goto yy203; - goto yy102; -yy121: - YYDEBUG(121, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == '*') goto yy197; - if (yych == '=') goto yy199; - goto yy102; -yy122: - YYDEBUG(122, *YYCURSOR); - yych = *++YYCURSOR; - if (yych <= '.') { - if (yych == '*') goto yy189; - goto yy102; - } else { - if (yych <= '/') goto yy191; - if (yych == '=') goto yy192; - goto yy102; - } -yy123: - YYDEBUG(123, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == '=') goto yy187; - goto yy102; -yy124: - YYDEBUG(124, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == '&') goto yy183; - if (yych == '=') goto yy185; - goto yy102; -yy125: - YYDEBUG(125, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == '=') goto yy181; - if (yych == '|') goto yy179; - goto yy102; -yy126: - YYDEBUG(126, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == '=') goto yy177; - goto yy102; -yy127: - YYDEBUG(127, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'R') goto yy175; - if (yych == 'r') goto yy175; - goto yy150; -yy128: - YYDEBUG(128, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'O') goto yy172; - if (yych == 'o') goto yy172; - goto yy150; -yy129: - YYDEBUG(129, *YYCURSOR); - yych = *++YYCURSOR; - if (yych <= '_') { - if (yych <= '@') goto yy102; - if (yych <= 'Z') goto yy169; - if (yych <= '^') goto yy102; - goto yy169; - } else { - if (yych <= '`') goto yy102; - if (yych <= 'z') goto yy169; - if (yych <= 0x7F) goto yy102; - goto yy169; - } -yy130: - YYDEBUG(130, *YYCURSOR); - yych = *++YYCURSOR; - goto yy102; -yy131: - YYDEBUG(131, *YYCURSOR); +#line 2198 "Zend/zend_language_scanner.c" +yy94: + YYDEBUG(94, *YYCURSOR); ++YYCURSOR; - YYDEBUG(132, *YYCURSOR); + YYDEBUG(95, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1581 "Zend/zend_language_scanner.l" +#line 2035 "Zend/zend_language_scanner.l" { - yy_push_state(ST_IN_SCRIPTING); - RETURN_TOKEN('{'); -} -#line 2683 "Zend/zend_language_scanner.c" -yy133: - YYDEBUG(133, *YYCURSOR); - ++YYCURSOR; - YYDEBUG(134, *YYCURSOR); - yyleng = YYCURSOR - SCNG(yy_text); -#line 1593 "Zend/zend_language_scanner.l" - { - RESET_DOC_COMMENT(); - if (!zend_stack_is_empty(&SCNG(state_stack))) { - yy_pop_state(); + int bprefix = (yytext[0] != '"') ? 1 : 0; + + while (YYCURSOR < YYLIMIT) { + switch (*YYCURSOR++) { + case '"': + yyleng = YYCURSOR - SCNG(yy_text); + zend_scan_escape_string(zendlval, yytext+bprefix+1, yyleng-bprefix-2, '"'); + RETURN_TOKEN(T_CONSTANT_ENCAPSED_STRING); + case '$': + if (IS_LABEL_START(*YYCURSOR) || *YYCURSOR == '{') { + break; + } + continue; + case '{': + if (*YYCURSOR == '$') { + break; + } + continue; + case '\\': + if (YYCURSOR < YYLIMIT) { + YYCURSOR++; + } + /* fall through */ + default: + continue; + } + + YYCURSOR--; + break; } - RETURN_TOKEN('}'); + + /* Remember how much was scanned to save rescanning */ + SET_DOUBLE_QUOTES_SCANNED_LENGTH(YYCURSOR - SCNG(yy_text) - yyleng); + + YYCURSOR = SCNG(yy_text) + yyleng; + + BEGIN(ST_DOUBLE_QUOTES); + RETURN_TOKEN('"'); } -#line 2697 "Zend/zend_language_scanner.c" -yy135: - YYDEBUG(135, *YYCURSOR); - yyaccept = 2; - yych = *(YYMARKER = ++YYCURSOR); - if (yych <= 'E') { - if (yych <= '9') { - if (yych == '.') goto yy151; - if (yych >= '0') goto yy154; - } else { - if (yych == 'B') goto yy162; - if (yych >= 'E') goto yy156; - } - } else { - if (yych <= 'b') { - if (yych == 'X') goto yy161; - if (yych >= 'b') goto yy162; - } else { - if (yych <= 'e') { - if (yych >= 'e') goto yy156; - } else { - if (yych == 'x') goto yy161; - } - } - } -yy136: - YYDEBUG(136, *YYCURSOR); - yyleng = YYCURSOR - SCNG(yy_text); -#line 1646 "Zend/zend_language_scanner.l" - { - char *end; - if (yyleng < MAX_LENGTH_OF_LONG - 1) { /* Won't overflow */ - errno = 0; - ZVAL_LONG(zendlval, ZEND_STRTOL(yytext, &end, 0)); - /* This isn't an assert, we need to ensure 019 isn't valid octal - * Because the lexing itself doesn't do that for us - */ - if (end != yytext + yyleng) { - zend_throw_exception(zend_ce_parse_error, "Invalid numeric literal", 0); - ZVAL_UNDEF(zendlval); - RETURN_TOKEN(T_LNUMBER); - } - } else { - errno = 0; - ZVAL_LONG(zendlval, ZEND_STRTOL(yytext, &end, 0)); - if (errno == ERANGE) { /* Overflow */ - errno = 0; - if (yytext[0] == '0') { /* octal overflow */ - errno = 0; - ZVAL_DOUBLE(zendlval, zend_oct_strtod(yytext, (const char **)&end)); - } else { - ZVAL_DOUBLE(zendlval, zend_strtod(yytext, (const char **)&end)); - } - /* Also not an assert for the same reason */ - if (end != yytext + yyleng) { - zend_throw_exception(zend_ce_parse_error, - "Invalid numeric literal", 0); - ZVAL_UNDEF(zendlval); - RETURN_TOKEN(T_DNUMBER); - } - ZEND_ASSERT(!errno); - RETURN_TOKEN(T_DNUMBER); - } - /* Also not an assert for the same reason */ - if (end != yytext + yyleng) { - zend_throw_exception(zend_ce_parse_error, "Invalid numeric literal", 0); - ZVAL_UNDEF(zendlval); - RETURN_TOKEN(T_DNUMBER); - } - } - ZEND_ASSERT(!errno); - RETURN_TOKEN(T_LNUMBER); -} -#line 2770 "Zend/zend_language_scanner.c" -yy137: - YYDEBUG(137, *YYCURSOR); - yyaccept = 2; - yych = *(YYMARKER = ++YYCURSOR); - if (yych <= '9') { - if (yych == '.') goto yy151; - if (yych <= '/') goto yy136; - goto yy154; - } else { - if (yych <= 'E') { - if (yych <= 'D') goto yy136; - goto yy156; - } else { - if (yych == 'e') goto yy156; - goto yy136; - } - } -yy138: - YYDEBUG(138, *YYCURSOR); - yych = *++YYCURSOR; - goto yy150; -yy139: - YYDEBUG(139, *YYCURSOR); +#line 2245 "Zend/zend_language_scanner.c" +yy96: + YYDEBUG(96, *YYCURSOR); ++YYCURSOR; -yy140: - YYDEBUG(140, *YYCURSOR); + YYDEBUG(97, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); #line 1898 "Zend/zend_language_scanner.l" { @@ -2823,12 +2276,36 @@ yy140: RETURN_TOKEN(T_COMMENT); } -#line 2827 "Zend/zend_language_scanner.c" -yy141: - YYDEBUG(141, *YYCURSOR); +#line 2280 "Zend/zend_language_scanner.c" +yy98: + YYDEBUG(98, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= '_') { + if (yych <= '@') goto yy93; + if (yych <= 'Z') goto yy155; + if (yych <= '^') goto yy93; + goto yy155; + } else { + if (yych <= '`') goto yy93; + if (yych <= 'z') goto yy155; + if (yych <= 0x7F) goto yy93; + goto yy155; + } +yy99: + YYDEBUG(99, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == '=') goto yy158; + goto yy93; +yy100: + YYDEBUG(100, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == '&') goto yy160; + if (yych == '=') goto yy162; + goto yy93; +yy101: + YYDEBUG(101, *YYCURSOR); ++YYCURSOR; -yy142: - YYDEBUG(142, *YYCURSOR); + YYDEBUG(102, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); #line 1966 "Zend/zend_language_scanner.l" { @@ -2898,106 +2375,897 @@ yy142: } RETURN_TOKEN(T_CONSTANT_ENCAPSED_STRING); } -#line 2902 "Zend/zend_language_scanner.c" -yy143: - YYDEBUG(143, *YYCURSOR); +#line 2379 "Zend/zend_language_scanner.c" +yy103: + YYDEBUG(103, *YYCURSOR); + yyaccept = 0; + yych = *(YYMARKER = ++YYCURSOR); + if (yych <= 'S') { + if (yych <= 'D') { + if (yych <= ' ') { + if (yych == '\t') goto yy165; + if (yych <= 0x1F) goto yy93; + goto yy165; + } else { + if (yych <= '@') goto yy93; + if (yych == 'C') goto yy93; + goto yy165; + } + } else { + if (yych <= 'I') { + if (yych == 'F') goto yy165; + if (yych <= 'H') goto yy93; + goto yy165; + } else { + if (yych == 'O') goto yy165; + if (yych <= 'Q') goto yy93; + goto yy165; + } + } + } else { + if (yych <= 'f') { + if (yych <= 'b') { + if (yych == 'U') goto yy165; + if (yych <= '`') goto yy93; + goto yy165; + } else { + if (yych == 'd') goto yy165; + if (yych <= 'e') goto yy93; + goto yy165; + } + } else { + if (yych <= 'o') { + if (yych == 'i') goto yy165; + if (yych <= 'n') goto yy93; + goto yy165; + } else { + if (yych <= 's') { + if (yych <= 'q') goto yy93; + goto yy165; + } else { + if (yych == 'u') goto yy165; + goto yy93; + } + } + } + } +yy104: + YYDEBUG(104, *YYCURSOR); + yych = *++YYCURSOR; + goto yy93; +yy105: + YYDEBUG(105, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == '*') goto yy176; + if (yych == '=') goto yy178; + goto yy93; +yy106: + YYDEBUG(106, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == '+') goto yy180; + if (yych == '=') goto yy182; + goto yy93; +yy107: + YYDEBUG(107, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= '<') { + if (yych == '-') goto yy184; + goto yy93; + } else { + if (yych <= '=') goto yy186; + if (yych <= '>') goto yy188; + goto yy93; + } +yy108: + YYDEBUG(108, *YYCURSOR); + yyaccept = 0; + yych = *(YYMARKER = ++YYCURSOR); + if (yych <= '/') { + if (yych == '.') goto yy190; + goto yy93; + } else { + if (yych <= '9') goto yy191; + if (yych == '=') goto yy194; + goto yy93; + } +yy109: + YYDEBUG(109, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= '.') { + if (yych == '*') goto yy196; + goto yy93; + } else { + if (yych <= '/') goto yy96; + if (yych == '=') goto yy198; + goto yy93; + } +yy110: + YYDEBUG(110, *YYCURSOR); + yyaccept = 1; + yych = *(YYMARKER = ++YYCURSOR); + if (yybm[0+yych] & 8) { + goto yy112; + } + if (yych <= 'W') { + if (yych <= 'A') { + if (yych == '.') goto yy191; + } else { + if (yych <= 'B') goto yy200; + if (yych == 'E') goto yy201; + } + } else { + if (yych <= 'd') { + if (yych <= 'X') goto yy202; + if (yych == 'b') goto yy200; + } else { + if (yych <= 'e') goto yy201; + if (yych == 'x') goto yy202; + } + } +yy111: + YYDEBUG(111, *YYCURSOR); + yyleng = YYCURSOR - SCNG(yy_text); +#line 1646 "Zend/zend_language_scanner.l" + { + char *end; + if (yyleng < MAX_LENGTH_OF_LONG - 1) { /* Won't overflow */ + errno = 0; + ZVAL_LONG(zendlval, ZEND_STRTOL(yytext, &end, 0)); + /* This isn't an assert, we need to ensure 019 isn't valid octal + * Because the lexing itself doesn't do that for us + */ + if (end != yytext + yyleng) { + zend_throw_exception(zend_ce_parse_error, "Invalid numeric literal", 0); + ZVAL_UNDEF(zendlval); + RETURN_TOKEN(T_LNUMBER); + } + } else { + errno = 0; + ZVAL_LONG(zendlval, ZEND_STRTOL(yytext, &end, 0)); + if (errno == ERANGE) { /* Overflow */ + errno = 0; + if (yytext[0] == '0') { /* octal overflow */ + errno = 0; + ZVAL_DOUBLE(zendlval, zend_oct_strtod(yytext, (const char **)&end)); + } else { + ZVAL_DOUBLE(zendlval, zend_strtod(yytext, (const char **)&end)); + } + /* Also not an assert for the same reason */ + if (end != yytext + yyleng) { + zend_throw_exception(zend_ce_parse_error, + "Invalid numeric literal", 0); + ZVAL_UNDEF(zendlval); + RETURN_TOKEN(T_DNUMBER); + } + ZEND_ASSERT(!errno); + RETURN_TOKEN(T_DNUMBER); + } + /* Also not an assert for the same reason */ + if (end != yytext + yyleng) { + zend_throw_exception(zend_ce_parse_error, "Invalid numeric literal", 0); + ZVAL_UNDEF(zendlval); + RETURN_TOKEN(T_DNUMBER); + } + } + ZEND_ASSERT(!errno); + RETURN_TOKEN(T_LNUMBER); +} +#line 2554 "Zend/zend_language_scanner.c" +yy112: + YYDEBUG(112, *YYCURSOR); + yyaccept = 1; + YYMARKER = ++YYCURSOR; + YYFILL(3); + yych = *YYCURSOR; + YYDEBUG(113, *YYCURSOR); + if (yybm[0+yych] & 8) { + goto yy112; + } + if (yych <= 'D') { + if (yych == '.') goto yy191; + goto yy111; + } else { + if (yych <= 'E') goto yy201; + if (yych == 'e') goto yy201; + goto yy111; + } +yy114: + YYDEBUG(114, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == ':') goto yy203; + goto yy93; +yy115: + YYDEBUG(115, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= ';') goto yy93; + if (yych <= '<') goto yy205; + if (yych <= '=') goto yy207; + if (yych <= '>') goto yy209; + goto yy93; +yy116: + YYDEBUG(116, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= '<') goto yy93; + if (yych <= '=') goto yy210; + if (yych <= '>') goto yy212; + goto yy93; +yy117: + YYDEBUG(117, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= '<') goto yy93; + if (yych <= '=') goto yy214; + if (yych <= '>') goto yy216; + goto yy93; +yy118: + YYDEBUG(118, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= '=') goto yy93; + if (yych <= '>') goto yy218; + if (yych <= '?') goto yy220; + goto yy93; +yy119: + YYDEBUG(119, *YYCURSOR); ++YYCURSOR; + if ((yych = *YYCURSOR) <= 'S') { + if (yych <= 'M') { + if (yych == 'B') goto yy222; + goto yy128; + } else { + if (yych <= 'N') goto yy223; + if (yych <= 'Q') goto yy128; + if (yych <= 'R') goto yy224; + goto yy225; + } + } else { + if (yych <= 'n') { + if (yych == 'b') goto yy222; + if (yych <= 'm') goto yy128; + goto yy223; + } else { + if (yych <= 'q') goto yy128; + if (yych <= 'r') goto yy224; + if (yych <= 's') goto yy225; + goto yy128; + } + } +yy120: + YYDEBUG(120, *YYCURSOR); + yyleng = YYCURSOR - SCNG(yy_text); +#line 1892 "Zend/zend_language_scanner.l" + { + zend_copy_value(zendlval, yytext, yyleng); + RETURN_TOKEN(T_STRING); +} +#line 2640 "Zend/zend_language_scanner.c" +yy121: + YYDEBUG(121, *YYCURSOR); + yyaccept = 2; + yych = *(YYMARKER = ++YYCURSOR); + if (yych <= ';') { + if (yych <= '"') { + if (yych <= '!') goto yy128; + goto yy94; + } else { + if (yych == '\'') goto yy101; + goto yy128; + } + } else { + if (yych <= 'R') { + if (yych <= '<') goto yy227; + if (yych <= 'Q') goto yy128; + goto yy228; + } else { + if (yych == 'r') goto yy228; + goto yy128; + } + } +yy122: + YYDEBUG(122, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= 'O') { + if (yych <= 'K') { + if (yych == 'A') goto yy229; + goto yy128; + } else { + if (yych <= 'L') goto yy230; + if (yych <= 'N') goto yy128; + goto yy231; + } + } else { + if (yych <= 'k') { + if (yych == 'a') goto yy229; + goto yy128; + } else { + if (yych <= 'l') goto yy230; + if (yych == 'o') goto yy231; + goto yy128; + } + } +yy123: + YYDEBUG(123, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= 'O') { + if (yych <= 'H') { + if (yych == 'E') goto yy232; + goto yy128; + } else { + if (yych <= 'I') goto yy233; + if (yych <= 'N') goto yy128; + goto yy234; + } + } else { + if (yych <= 'h') { + if (yych == 'e') goto yy232; + goto yy128; + } else { + if (yych <= 'i') goto yy233; + if (yych == 'o') goto yy234; + goto yy128; + } + } +yy124: + YYDEBUG(124, *YYCURSOR); + yych = *++YYCURSOR; + switch (yych) { + case 'C': + case 'c': goto yy236; + case 'L': + case 'l': goto yy237; + case 'M': + case 'm': goto yy238; + case 'N': + case 'n': goto yy239; + case 'V': + case 'v': goto yy240; + case 'X': + case 'x': goto yy241; + default: goto yy128; + } +yy125: + YYDEBUG(125, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= 'U') { + if (yych <= 'N') { + if (yych == 'I') goto yy242; + goto yy128; + } else { + if (yych <= 'O') goto yy243; + if (yych <= 'T') goto yy128; + goto yy244; + } + } else { + if (yych <= 'n') { + if (yych == 'i') goto yy242; + goto yy128; + } else { + if (yych <= 'o') goto yy243; + if (yych == 'u') goto yy244; + goto yy128; + } + } +yy126: + YYDEBUG(126, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= 'O') { + if (yych == 'L') goto yy245; + if (yych <= 'N') goto yy128; + goto yy246; + } else { + if (yych <= 'l') { + if (yych <= 'k') goto yy128; + goto yy245; + } else { + if (yych == 'o') goto yy246; + goto yy128; + } + } +yy127: + YYDEBUG(127, *YYCURSOR); + ++YYCURSOR; + YYFILL(1); + yych = *YYCURSOR; +yy128: + YYDEBUG(128, *YYCURSOR); + if (yybm[0+yych] & 16) { + goto yy127; + } + goto yy120; +yy129: + YYDEBUG(129, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= 'S') { + if (yych <= 'L') { + if (yych == 'F') goto yy247; + goto yy128; + } else { + if (yych <= 'M') goto yy249; + if (yych <= 'N') goto yy250; + if (yych <= 'R') goto yy128; + goto yy251; + } + } else { + if (yych <= 'm') { + if (yych == 'f') goto yy247; + if (yych <= 'l') goto yy128; + goto yy249; + } else { + if (yych <= 'n') goto yy250; + if (yych == 's') goto yy251; + goto yy128; + } + } +yy130: + YYDEBUG(130, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'I') goto yy252; + if (yych == 'i') goto yy252; + goto yy128; +yy131: + YYDEBUG(131, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= 'E') { + if (yych == 'A') goto yy253; + if (yych <= 'D') goto yy128; + goto yy254; + } else { + if (yych <= 'a') { + if (yych <= '`') goto yy128; + goto yy253; + } else { + if (yych == 'e') goto yy254; + goto yy128; + } + } +yy132: + YYDEBUG(132, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'R') goto yy255; + if (yych == 'r') goto yy255; + goto yy128; +yy133: + YYDEBUG(133, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= 'U') { + if (yych == 'R') goto yy257; + if (yych <= 'T') goto yy128; + goto yy258; + } else { + if (yych <= 'r') { + if (yych <= 'q') goto yy128; + goto yy257; + } else { + if (yych == 'u') goto yy258; + goto yy128; + } + } +yy134: + YYDEBUG(134, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'E') goto yy259; + if (yych == 'e') goto yy259; + goto yy128; +yy135: + YYDEBUG(135, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= 'W') { + if (yych == 'T') goto yy260; + if (yych <= 'V') goto yy128; + goto yy261; + } else { + if (yych <= 't') { + if (yych <= 's') goto yy128; + goto yy260; + } else { + if (yych == 'w') goto yy261; + goto yy128; + } + } +yy136: + YYDEBUG(136, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= 'R') { + if (yych == 'H') goto yy262; + if (yych <= 'Q') goto yy128; + goto yy263; + } else { + if (yych <= 'h') { + if (yych <= 'g') goto yy128; + goto yy262; + } else { + if (yych == 'r') goto yy263; + goto yy128; + } + } +yy137: + YYDEBUG(137, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= 'S') { + if (yych == 'N') goto yy264; + if (yych <= 'R') goto yy128; + goto yy265; + } else { + if (yych <= 'n') { + if (yych <= 'm') goto yy128; + goto yy264; + } else { + if (yych == 's') goto yy265; + goto yy128; + } + } +yy138: + YYDEBUG(138, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'A') goto yy266; + if (yych == 'a') goto yy266; + goto yy128; +yy139: + YYDEBUG(139, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'H') goto yy267; + if (yych == 'h') goto yy267; + goto yy128; +yy140: + YYDEBUG(140, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'O') goto yy268; + if (yych == 'o') goto yy268; + goto yy128; +yy141: + YYDEBUG(141, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'I') goto yy269; + if (yych == 'i') goto yy269; + goto yy128; +yy142: + YYDEBUG(142, *YYCURSOR); + ++YYCURSOR; + YYDEBUG(143, *YYCURSOR); + yyleng = YYCURSOR - SCNG(yy_text); +#line 1316 "Zend/zend_language_scanner.l" + { + RETURN_TOKEN(T_NS_SEPARATOR); +} +#line 2929 "Zend/zend_language_scanner.c" yy144: YYDEBUG(144, *YYCURSOR); - yyleng = YYCURSOR - SCNG(yy_text); -#line 2035 "Zend/zend_language_scanner.l" - { - int bprefix = (yytext[0] != '"') ? 1 : 0; - - while (YYCURSOR < YYLIMIT) { - switch (*YYCURSOR++) { - case '"': - yyleng = YYCURSOR - SCNG(yy_text); - zend_scan_escape_string(zendlval, yytext+bprefix+1, yyleng-bprefix-2, '"'); - RETURN_TOKEN(T_CONSTANT_ENCAPSED_STRING); - case '$': - if (IS_LABEL_START(*YYCURSOR) || *YYCURSOR == '{') { - break; - } - continue; - case '{': - if (*YYCURSOR == '$') { - break; - } - continue; - case '\\': - if (YYCURSOR < YYLIMIT) { - YYCURSOR++; - } - /* fall through */ - default: - continue; - } - - YYCURSOR--; - break; - } - - /* Remember how much was scanned to save rescanning */ - SET_DOUBLE_QUOTES_SCANNED_LENGTH(YYCURSOR - SCNG(yy_text) - yyleng); - - YYCURSOR = SCNG(yy_text) + yyleng; - - BEGIN(ST_DOUBLE_QUOTES); - RETURN_TOKEN('"'); -} -#line 2950 "Zend/zend_language_scanner.c" + yych = *++YYCURSOR; + if (yych == '=') goto yy270; + goto yy93; yy145: YYDEBUG(145, *YYCURSOR); - ++YYCURSOR; + yych = *++YYCURSOR; + if (yych == '_') goto yy272; + goto yy128; +yy146: YYDEBUG(146, *YYCURSOR); + ++YYCURSOR; + YYDEBUG(147, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); #line 2125 "Zend/zend_language_scanner.l" { BEGIN(ST_BACKQUOTE); RETURN_TOKEN('`'); } -#line 2961 "Zend/zend_language_scanner.c" -yy147: - YYDEBUG(147, *YYCURSOR); - ++YYCURSOR; +#line 2950 "Zend/zend_language_scanner.c" +yy148: YYDEBUG(148, *YYCURSOR); - yyleng = YYCURSOR - SCNG(yy_text); -#line 2387 "Zend/zend_language_scanner.l" - { - if (YYCURSOR > YYLIMIT) { - RETURN_TOKEN(END); - } - - zend_error(E_COMPILE_WARNING,"Unexpected character in input: '%c' (ASCII=%d) state=%d", yytext[0], yytext[0], YYSTATE); - goto restart; -} -#line 2976 "Zend/zend_language_scanner.c" -yy149: + ++YYCURSOR; YYDEBUG(149, *YYCURSOR); + yyleng = YYCURSOR - SCNG(yy_text); +#line 1581 "Zend/zend_language_scanner.l" + { + yy_push_state(ST_IN_SCRIPTING); + RETURN_TOKEN('{'); +} +#line 2961 "Zend/zend_language_scanner.c" +yy150: + YYDEBUG(150, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == '=') goto yy273; + if (yych == '|') goto yy275; + goto yy93; +yy151: + YYDEBUG(151, *YYCURSOR); + ++YYCURSOR; + YYDEBUG(152, *YYCURSOR); + yyleng = YYCURSOR - SCNG(yy_text); +#line 1593 "Zend/zend_language_scanner.l" + { + RESET_DOC_COMMENT(); + if (!zend_stack_is_empty(&SCNG(state_stack))) { + yy_pop_state(); + } + RETURN_TOKEN('}'); +} +#line 2981 "Zend/zend_language_scanner.c" +yy153: + YYDEBUG(153, *YYCURSOR); + ++YYCURSOR; + if ((yych = *YYCURSOR) == '=') goto yy277; +yy154: + YYDEBUG(154, *YYCURSOR); + yyleng = YYCURSOR - SCNG(yy_text); +#line 1480 "Zend/zend_language_scanner.l" + { + RETURN_TOKEN(T_IS_NOT_EQUAL); +} +#line 2993 "Zend/zend_language_scanner.c" +yy155: + YYDEBUG(155, *YYCURSOR); ++YYCURSOR; YYFILL(1); yych = *YYCURSOR; -yy150: - YYDEBUG(150, *YYCURSOR); - if (yybm[0+yych] & 4) { - goto yy149; + YYDEBUG(156, *YYCURSOR); + if (yych <= '^') { + if (yych <= '9') { + if (yych >= '0') goto yy155; + } else { + if (yych <= '@') goto yy157; + if (yych <= 'Z') goto yy155; + } + } else { + if (yych <= '`') { + if (yych <= '_') goto yy155; + } else { + if (yych <= 'z') goto yy155; + if (yych >= 0x80) goto yy155; + } } - goto yy87; -yy151: - YYDEBUG(151, *YYCURSOR); +yy157: + YYDEBUG(157, *YYCURSOR); + yyleng = YYCURSOR - SCNG(yy_text); +#line 1869 "Zend/zend_language_scanner.l" + { + zend_copy_value(zendlval, (yytext+1), (yyleng-1)); + RETURN_TOKEN(T_VARIABLE); +} +#line 3023 "Zend/zend_language_scanner.c" +yy158: + YYDEBUG(158, *YYCURSOR); + ++YYCURSOR; + YYDEBUG(159, *YYCURSOR); + yyleng = YYCURSOR - SCNG(yy_text); +#line 1524 "Zend/zend_language_scanner.l" + { + RETURN_TOKEN(T_MOD_EQUAL); +} +#line 3033 "Zend/zend_language_scanner.c" +yy160: + YYDEBUG(160, *YYCURSOR); + ++YYCURSOR; + YYDEBUG(161, *YYCURSOR); + yyleng = YYCURSOR - SCNG(yy_text); +#line 1552 "Zend/zend_language_scanner.l" + { + RETURN_TOKEN(T_BOOLEAN_AND); +} +#line 3043 "Zend/zend_language_scanner.c" +yy162: + YYDEBUG(162, *YYCURSOR); + ++YYCURSOR; + YYDEBUG(163, *YYCURSOR); + yyleng = YYCURSOR - SCNG(yy_text); +#line 1536 "Zend/zend_language_scanner.l" + { + RETURN_TOKEN(T_AND_EQUAL); +} +#line 3053 "Zend/zend_language_scanner.c" +yy164: + YYDEBUG(164, *YYCURSOR); + ++YYCURSOR; + YYFILL(7); + yych = *YYCURSOR; +yy165: + YYDEBUG(165, *YYCURSOR); + if (yybm[0+yych] & 32) { + goto yy164; + } + switch (yych) { + case 'A': + case 'a': goto yy167; + case 'B': + case 'b': goto yy168; + case 'D': + case 'd': goto yy169; + case 'F': + case 'f': goto yy170; + case 'I': + case 'i': goto yy171; + case 'O': + case 'o': goto yy172; + case 'R': + case 'r': goto yy173; + case 'S': + case 's': goto yy174; + case 'U': + case 'u': goto yy175; + default: goto yy166; + } +yy166: + YYDEBUG(166, *YYCURSOR); + YYCURSOR = YYMARKER; + if (yyaccept <= 3) { + if (yyaccept <= 1) { + if (yyaccept == 0) { + goto yy93; + } else { + goto yy111; + } + } else { + if (yyaccept == 2) { + goto yy120; + } else { + goto yy193; + } + } + } else { + if (yyaccept <= 5) { + if (yyaccept == 4) { + goto yy197; + } else { + goto yy206; + } + } else { + goto yy541; + } + } +yy167: + YYDEBUG(167, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'R') goto yy279; + if (yych == 'r') goto yy279; + goto yy166; +yy168: + YYDEBUG(168, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= 'O') { + if (yych == 'I') goto yy280; + if (yych <= 'N') goto yy166; + goto yy281; + } else { + if (yych <= 'i') { + if (yych <= 'h') goto yy166; + goto yy280; + } else { + if (yych == 'o') goto yy281; + goto yy166; + } + } +yy169: + YYDEBUG(169, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'O') goto yy282; + if (yych == 'o') goto yy282; + goto yy166; +yy170: + YYDEBUG(170, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'L') goto yy283; + if (yych == 'l') goto yy283; + goto yy166; +yy171: + YYDEBUG(171, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'N') goto yy284; + if (yych == 'n') goto yy284; + goto yy166; +yy172: + YYDEBUG(172, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'B') goto yy285; + if (yych == 'b') goto yy285; + goto yy166; +yy173: + YYDEBUG(173, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'E') goto yy286; + if (yych == 'e') goto yy286; + goto yy166; +yy174: + YYDEBUG(174, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'T') goto yy287; + if (yych == 't') goto yy287; + goto yy166; +yy175: + YYDEBUG(175, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'N') goto yy288; + if (yych == 'n') goto yy288; + goto yy166; +yy176: + YYDEBUG(176, *YYCURSOR); + ++YYCURSOR; + if ((yych = *YYCURSOR) == '=') goto yy289; + YYDEBUG(177, *YYCURSOR); + yyleng = YYCURSOR - SCNG(yy_text); +#line 1508 "Zend/zend_language_scanner.l" + { + RETURN_TOKEN(T_POW); +} +#line 3187 "Zend/zend_language_scanner.c" +yy178: + YYDEBUG(178, *YYCURSOR); + ++YYCURSOR; + YYDEBUG(179, *YYCURSOR); + yyleng = YYCURSOR - SCNG(yy_text); +#line 1504 "Zend/zend_language_scanner.l" + { + RETURN_TOKEN(T_MUL_EQUAL); +} +#line 3197 "Zend/zend_language_scanner.c" +yy180: + YYDEBUG(180, *YYCURSOR); + ++YYCURSOR; + YYDEBUG(181, *YYCURSOR); + yyleng = YYCURSOR - SCNG(yy_text); +#line 1460 "Zend/zend_language_scanner.l" + { + RETURN_TOKEN(T_INC); +} +#line 3207 "Zend/zend_language_scanner.c" +yy182: + YYDEBUG(182, *YYCURSOR); + ++YYCURSOR; + YYDEBUG(183, *YYCURSOR); + yyleng = YYCURSOR - SCNG(yy_text); +#line 1496 "Zend/zend_language_scanner.l" + { + RETURN_TOKEN(T_PLUS_EQUAL); +} +#line 3217 "Zend/zend_language_scanner.c" +yy184: + YYDEBUG(184, *YYCURSOR); + ++YYCURSOR; + YYDEBUG(185, *YYCURSOR); + yyleng = YYCURSOR - SCNG(yy_text); +#line 1464 "Zend/zend_language_scanner.l" + { + RETURN_TOKEN(T_DEC); +} +#line 3227 "Zend/zend_language_scanner.c" +yy186: + YYDEBUG(186, *YYCURSOR); + ++YYCURSOR; + YYDEBUG(187, *YYCURSOR); + yyleng = YYCURSOR - SCNG(yy_text); +#line 1500 "Zend/zend_language_scanner.l" + { + RETURN_TOKEN(T_MINUS_EQUAL); +} +#line 3237 "Zend/zend_language_scanner.c" +yy188: + YYDEBUG(188, *YYCURSOR); + ++YYCURSOR; + YYDEBUG(189, *YYCURSOR); + yyleng = YYCURSOR - SCNG(yy_text); +#line 1286 "Zend/zend_language_scanner.l" + { + yy_push_state(ST_LOOKING_FOR_PROPERTY); + RETURN_TOKEN(T_OBJECT_OPERATOR); +} +#line 3248 "Zend/zend_language_scanner.c" +yy190: + YYDEBUG(190, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == '.') goto yy291; + goto yy166; +yy191: + YYDEBUG(191, *YYCURSOR); yyaccept = 3; YYMARKER = ++YYCURSOR; YYFILL(3); yych = *YYCURSOR; - YYDEBUG(152, *YYCURSOR); - if (yybm[0+yych] & 8) { - goto yy151; + YYDEBUG(192, *YYCURSOR); + if (yych <= 'D') { + if (yych <= '/') goto yy193; + if (yych <= '9') goto yy191; + } else { + if (yych <= 'E') goto yy201; + if (yych == 'e') goto yy201; } - if (yych == 'E') goto yy156; - if (yych == 'e') goto yy156; -yy153: - YYDEBUG(153, *YYCURSOR); +yy193: + YYDEBUG(193, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); #line 1740 "Zend/zend_language_scanner.l" { @@ -3008,299 +3276,24 @@ yy153: ZEND_ASSERT(end == yytext + yyleng); RETURN_TOKEN(T_DNUMBER); } -#line 3012 "Zend/zend_language_scanner.c" -yy154: - YYDEBUG(154, *YYCURSOR); - yyaccept = 2; - YYMARKER = ++YYCURSOR; - YYFILL(3); - yych = *YYCURSOR; - YYDEBUG(155, *YYCURSOR); - if (yych <= '9') { - if (yych == '.') goto yy151; - if (yych <= '/') goto yy136; - goto yy154; - } else { - if (yych <= 'E') { - if (yych <= 'D') goto yy136; - } else { - if (yych != 'e') goto yy136; - } - } -yy156: - YYDEBUG(156, *YYCURSOR); - yych = *++YYCURSOR; - if (yych <= ',') { - if (yych == '+') goto yy158; - } else { - if (yych <= '-') goto yy158; - if (yych <= '/') goto yy157; - if (yych <= '9') goto yy159; - } -yy157: - YYDEBUG(157, *YYCURSOR); - YYCURSOR = YYMARKER; - if (yyaccept <= 3) { - if (yyaccept <= 1) { - if (yyaccept <= 0) { - goto yy87; - } else { - goto yy102; - } - } else { - if (yyaccept <= 2) { - goto yy136; - } else { - goto yy153; - } - } - } else { - if (yyaccept <= 5) { - if (yyaccept <= 4) { - goto yy190; - } else { - goto yy210; - } - } else { - goto yy601; - } - } -yy158: - YYDEBUG(158, *YYCURSOR); - yych = *++YYCURSOR; - if (yych <= '/') goto yy157; - if (yych >= ':') goto yy157; -yy159: - YYDEBUG(159, *YYCURSOR); +#line 3280 "Zend/zend_language_scanner.c" +yy194: + YYDEBUG(194, *YYCURSOR); ++YYCURSOR; - YYFILL(1); - yych = *YYCURSOR; - YYDEBUG(160, *YYCURSOR); - if (yych <= '/') goto yy153; - if (yych <= '9') goto yy159; - goto yy153; -yy161: - YYDEBUG(161, *YYCURSOR); - yych = *++YYCURSOR; - if (yybm[0+yych] & 32) { - goto yy166; - } - goto yy157; -yy162: - YYDEBUG(162, *YYCURSOR); - yych = *++YYCURSOR; - if (yybm[0+yych] & 16) { - goto yy163; - } - goto yy157; -yy163: - YYDEBUG(163, *YYCURSOR); - ++YYCURSOR; - YYFILL(1); - yych = *YYCURSOR; - YYDEBUG(164, *YYCURSOR); - if (yybm[0+yych] & 16) { - goto yy163; - } - YYDEBUG(165, *YYCURSOR); + YYDEBUG(195, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1618 "Zend/zend_language_scanner.l" +#line 1520 "Zend/zend_language_scanner.l" { - char *bin = yytext + 2; /* Skip "0b" */ - int len = yyleng - 2; - char *end; - - /* Skip any leading 0s */ - while (*bin == '0') { - ++bin; - --len; - } - - if (len < SIZEOF_ZEND_LONG * 8) { - if (len == 0) { - ZVAL_LONG(zendlval, 0); - } else { - errno = 0; - ZVAL_LONG(zendlval, ZEND_STRTOL(bin, &end, 2)); - ZEND_ASSERT(!errno && end == yytext + yyleng); - } - RETURN_TOKEN(T_LNUMBER); - } else { - ZVAL_DOUBLE(zendlval, zend_bin_strtod(bin, (const char **)&end)); - /* errno isn't checked since we allow HUGE_VAL/INF overflow */ - ZEND_ASSERT(end == yytext + yyleng); - RETURN_TOKEN(T_DNUMBER); - } + RETURN_TOKEN(T_CONCAT_EQUAL); } -#line 3136 "Zend/zend_language_scanner.c" -yy166: - YYDEBUG(166, *YYCURSOR); - ++YYCURSOR; - YYFILL(1); - yych = *YYCURSOR; - YYDEBUG(167, *YYCURSOR); - if (yybm[0+yych] & 32) { - goto yy166; - } - YYDEBUG(168, *YYCURSOR); - yyleng = YYCURSOR - SCNG(yy_text); -#line 1691 "Zend/zend_language_scanner.l" - { - char *hex = yytext + 2; /* Skip "0x" */ - int len = yyleng - 2; - char *end; - - /* Skip any leading 0s */ - while (*hex == '0') { - hex++; - len--; - } - - if (len < SIZEOF_ZEND_LONG * 2 || (len == SIZEOF_ZEND_LONG * 2 && *hex <= '7')) { - if (len == 0) { - ZVAL_LONG(zendlval, 0); - } else { - errno = 0; - ZVAL_LONG(zendlval, ZEND_STRTOL(hex, &end, 16)); - ZEND_ASSERT(!errno && end == hex + len); - } - RETURN_TOKEN(T_LNUMBER); - } else { - ZVAL_DOUBLE(zendlval, zend_hex_strtod(hex, (const char **)&end)); - /* errno isn't checked since we allow HUGE_VAL/INF overflow */ - ZEND_ASSERT(end == hex + len); - RETURN_TOKEN(T_DNUMBER); - } -} -#line 3176 "Zend/zend_language_scanner.c" -yy169: - YYDEBUG(169, *YYCURSOR); - ++YYCURSOR; - YYFILL(1); - yych = *YYCURSOR; - YYDEBUG(170, *YYCURSOR); - if (yych <= '^') { - if (yych <= '9') { - if (yych >= '0') goto yy169; - } else { - if (yych <= '@') goto yy171; - if (yych <= 'Z') goto yy169; - } - } else { - if (yych <= '`') { - if (yych <= '_') goto yy169; - } else { - if (yych <= 'z') goto yy169; - if (yych >= 0x80) goto yy169; - } - } -yy171: - YYDEBUG(171, *YYCURSOR); - yyleng = YYCURSOR - SCNG(yy_text); -#line 1869 "Zend/zend_language_scanner.l" - { - zend_copy_value(zendlval, (yytext+1), (yyleng-1)); - RETURN_TOKEN(T_VARIABLE); -} -#line 3206 "Zend/zend_language_scanner.c" -yy172: - YYDEBUG(172, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'R') goto yy173; - if (yych != 'r') goto yy150; -yy173: - YYDEBUG(173, *YYCURSOR); - ++YYCURSOR; - if (yybm[0+(yych = *YYCURSOR)] & 4) { - goto yy149; - } - YYDEBUG(174, *YYCURSOR); - yyleng = YYCURSOR - SCNG(yy_text); -#line 1564 "Zend/zend_language_scanner.l" - { - RETURN_TOKEN(T_LOGICAL_XOR); -} -#line 3224 "Zend/zend_language_scanner.c" -yy175: - YYDEBUG(175, *YYCURSOR); - ++YYCURSOR; - if (yybm[0+(yych = *YYCURSOR)] & 4) { - goto yy149; - } - YYDEBUG(176, *YYCURSOR); - yyleng = YYCURSOR - SCNG(yy_text); -#line 1556 "Zend/zend_language_scanner.l" - { - RETURN_TOKEN(T_LOGICAL_OR); -} -#line 3237 "Zend/zend_language_scanner.c" -yy177: - YYDEBUG(177, *YYCURSOR); - ++YYCURSOR; - YYDEBUG(178, *YYCURSOR); - yyleng = YYCURSOR - SCNG(yy_text); -#line 1544 "Zend/zend_language_scanner.l" - { - RETURN_TOKEN(T_XOR_EQUAL); -} -#line 3247 "Zend/zend_language_scanner.c" -yy179: - YYDEBUG(179, *YYCURSOR); - ++YYCURSOR; - YYDEBUG(180, *YYCURSOR); - yyleng = YYCURSOR - SCNG(yy_text); -#line 1548 "Zend/zend_language_scanner.l" - { - RETURN_TOKEN(T_BOOLEAN_OR); -} -#line 3257 "Zend/zend_language_scanner.c" -yy181: - YYDEBUG(181, *YYCURSOR); - ++YYCURSOR; - YYDEBUG(182, *YYCURSOR); - yyleng = YYCURSOR - SCNG(yy_text); -#line 1540 "Zend/zend_language_scanner.l" - { - RETURN_TOKEN(T_OR_EQUAL); -} -#line 3267 "Zend/zend_language_scanner.c" -yy183: - YYDEBUG(183, *YYCURSOR); - ++YYCURSOR; - YYDEBUG(184, *YYCURSOR); - yyleng = YYCURSOR - SCNG(yy_text); -#line 1552 "Zend/zend_language_scanner.l" - { - RETURN_TOKEN(T_BOOLEAN_AND); -} -#line 3277 "Zend/zend_language_scanner.c" -yy185: - YYDEBUG(185, *YYCURSOR); - ++YYCURSOR; - YYDEBUG(186, *YYCURSOR); - yyleng = YYCURSOR - SCNG(yy_text); -#line 1536 "Zend/zend_language_scanner.l" - { - RETURN_TOKEN(T_AND_EQUAL); -} -#line 3287 "Zend/zend_language_scanner.c" -yy187: - YYDEBUG(187, *YYCURSOR); - ++YYCURSOR; - YYDEBUG(188, *YYCURSOR); - yyleng = YYCURSOR - SCNG(yy_text); -#line 1524 "Zend/zend_language_scanner.l" - { - RETURN_TOKEN(T_MOD_EQUAL); -} -#line 3297 "Zend/zend_language_scanner.c" -yy189: - YYDEBUG(189, *YYCURSOR); +#line 3290 "Zend/zend_language_scanner.c" +yy196: + YYDEBUG(196, *YYCURSOR); yyaccept = 4; yych = *(YYMARKER = ++YYCURSOR); - if (yych == '*') goto yy194; -yy190: - YYDEBUG(190, *YYCURSOR); + if (yych == '*') goto yy293; +yy197: + YYDEBUG(197, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); #line 1927 "Zend/zend_language_scanner.l" { @@ -3335,260 +3328,1994 @@ yy190: RETURN_TOKEN(T_COMMENT); } -#line 3339 "Zend/zend_language_scanner.c" -yy191: - YYDEBUG(191, *YYCURSOR); - yych = *++YYCURSOR; - goto yy140; -yy192: - YYDEBUG(192, *YYCURSOR); +#line 3332 "Zend/zend_language_scanner.c" +yy198: + YYDEBUG(198, *YYCURSOR); ++YYCURSOR; - YYDEBUG(193, *YYCURSOR); + YYDEBUG(199, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); #line 1516 "Zend/zend_language_scanner.l" { RETURN_TOKEN(T_DIV_EQUAL); } -#line 3353 "Zend/zend_language_scanner.c" -yy194: - YYDEBUG(194, *YYCURSOR); +#line 3342 "Zend/zend_language_scanner.c" +yy200: + YYDEBUG(200, *YYCURSOR); yych = *++YYCURSOR; if (yybm[0+yych] & 64) { - goto yy195; + goto yy294; } - goto yy157; -yy195: - YYDEBUG(195, *YYCURSOR); - ++YYCURSOR; - YYFILL(1); - yych = *YYCURSOR; - YYDEBUG(196, *YYCURSOR); - if (yybm[0+yych] & 64) { - goto yy195; - } - goto yy190; -yy197: - YYDEBUG(197, *YYCURSOR); - ++YYCURSOR; - if ((yych = *YYCURSOR) == '=') goto yy201; - YYDEBUG(198, *YYCURSOR); - yyleng = YYCURSOR - SCNG(yy_text); -#line 1508 "Zend/zend_language_scanner.l" - { - RETURN_TOKEN(T_POW); -} -#line 3381 "Zend/zend_language_scanner.c" -yy199: - YYDEBUG(199, *YYCURSOR); - ++YYCURSOR; - YYDEBUG(200, *YYCURSOR); - yyleng = YYCURSOR - SCNG(yy_text); -#line 1504 "Zend/zend_language_scanner.l" - { - RETURN_TOKEN(T_MUL_EQUAL); -} -#line 3391 "Zend/zend_language_scanner.c" + goto yy166; yy201: YYDEBUG(201, *YYCURSOR); - ++YYCURSOR; + yych = *++YYCURSOR; + if (yych <= ',') { + if (yych == '+') goto yy297; + goto yy166; + } else { + if (yych <= '-') goto yy297; + if (yych <= '/') goto yy166; + if (yych <= '9') goto yy298; + goto yy166; + } +yy202: YYDEBUG(202, *YYCURSOR); - yyleng = YYCURSOR - SCNG(yy_text); -#line 1512 "Zend/zend_language_scanner.l" - { - RETURN_TOKEN(T_POW_EQUAL); -} -#line 3401 "Zend/zend_language_scanner.c" + yych = *++YYCURSOR; + if (yybm[0+yych] & 128) { + goto yy300; + } + goto yy166; yy203: YYDEBUG(203, *YYCURSOR); ++YYCURSOR; - if ((yych = *YYCURSOR) == '=') goto yy207; YYDEBUG(204, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1572 "Zend/zend_language_scanner.l" +#line 1312 "Zend/zend_language_scanner.l" { - RETURN_TOKEN(T_SR); + RETURN_TOKEN(T_PAAMAYIM_NEKUDOTAYIM); } -#line 3412 "Zend/zend_language_scanner.c" +#line 3378 "Zend/zend_language_scanner.c" yy205: YYDEBUG(205, *YYCURSOR); - ++YYCURSOR; - YYDEBUG(206, *YYCURSOR); - yyleng = YYCURSOR - SCNG(yy_text); -#line 1492 "Zend/zend_language_scanner.l" - { - RETURN_TOKEN(T_IS_GREATER_OR_EQUAL); -} -#line 3422 "Zend/zend_language_scanner.c" -yy207: - YYDEBUG(207, *YYCURSOR); - ++YYCURSOR; - YYDEBUG(208, *YYCURSOR); - yyleng = YYCURSOR - SCNG(yy_text); -#line 1532 "Zend/zend_language_scanner.l" - { - RETURN_TOKEN(T_SR_EQUAL); -} -#line 3432 "Zend/zend_language_scanner.c" -yy209: - YYDEBUG(209, *YYCURSOR); yyaccept = 5; yych = *(YYMARKER = ++YYCURSOR); - if (yych <= ';') goto yy210; - if (yych <= '<') goto yy219; - if (yych <= '=') goto yy217; -yy210: - YYDEBUG(210, *YYCURSOR); + if (yych <= ';') goto yy206; + if (yych <= '<') goto yy303; + if (yych <= '=') goto yy305; +yy206: + YYDEBUG(206, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); #line 1568 "Zend/zend_language_scanner.l" { RETURN_TOKEN(T_SL); } -#line 3447 "Zend/zend_language_scanner.c" -yy211: - YYDEBUG(211, *YYCURSOR); +#line 3393 "Zend/zend_language_scanner.c" +yy207: + YYDEBUG(207, *YYCURSOR); ++YYCURSOR; - if ((yych = *YYCURSOR) == '>') goto yy215; - YYDEBUG(212, *YYCURSOR); + if ((yych = *YYCURSOR) == '>') goto yy307; + YYDEBUG(208, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); #line 1488 "Zend/zend_language_scanner.l" { RETURN_TOKEN(T_IS_SMALLER_OR_EQUAL); } -#line 3458 "Zend/zend_language_scanner.c" -yy213: - YYDEBUG(213, *YYCURSOR); +#line 3404 "Zend/zend_language_scanner.c" +yy209: + YYDEBUG(209, *YYCURSOR); + yych = *++YYCURSOR; + goto yy154; +yy210: + YYDEBUG(210, *YYCURSOR); ++YYCURSOR; + if ((yych = *YYCURSOR) == '=') goto yy309; + YYDEBUG(211, *YYCURSOR); + yyleng = YYCURSOR - SCNG(yy_text); +#line 1476 "Zend/zend_language_scanner.l" + { + RETURN_TOKEN(T_IS_EQUAL); +} +#line 3419 "Zend/zend_language_scanner.c" +yy212: + YYDEBUG(212, *YYCURSOR); + ++YYCURSOR; + YYDEBUG(213, *YYCURSOR); + yyleng = YYCURSOR - SCNG(yy_text); +#line 1444 "Zend/zend_language_scanner.l" + { + RETURN_TOKEN(T_DOUBLE_ARROW); +} +#line 3429 "Zend/zend_language_scanner.c" yy214: YYDEBUG(214, *YYCURSOR); - yyleng = YYCURSOR - SCNG(yy_text); -#line 1480 "Zend/zend_language_scanner.l" - { - RETURN_TOKEN(T_IS_NOT_EQUAL); -} -#line 3469 "Zend/zend_language_scanner.c" -yy215: + ++YYCURSOR; YYDEBUG(215, *YYCURSOR); - ++YYCURSOR; - YYDEBUG(216, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1484 "Zend/zend_language_scanner.l" +#line 1492 "Zend/zend_language_scanner.l" { - RETURN_TOKEN(T_SPACESHIP); + RETURN_TOKEN(T_IS_GREATER_OR_EQUAL); } -#line 3479 "Zend/zend_language_scanner.c" -yy217: - YYDEBUG(217, *YYCURSOR); +#line 3439 "Zend/zend_language_scanner.c" +yy216: + YYDEBUG(216, *YYCURSOR); ++YYCURSOR; + if ((yych = *YYCURSOR) == '=') goto yy311; + YYDEBUG(217, *YYCURSOR); + yyleng = YYCURSOR - SCNG(yy_text); +#line 1572 "Zend/zend_language_scanner.l" + { + RETURN_TOKEN(T_SR); +} +#line 3450 "Zend/zend_language_scanner.c" +yy218: YYDEBUG(218, *YYCURSOR); + ++YYCURSOR; + if ((yych = *YYCURSOR) == '\n') goto yy313; + if (yych == '\r') goto yy314; +yy219: + YYDEBUG(219, *YYCURSOR); + yyleng = YYCURSOR - SCNG(yy_text); +#line 1960 "Zend/zend_language_scanner.l" + { + BEGIN(INITIAL); + RETURN_TOKEN(T_CLOSE_TAG); /* implicit ';' at php-end tag */ +} +#line 3464 "Zend/zend_language_scanner.c" +yy220: + YYDEBUG(220, *YYCURSOR); + ++YYCURSOR; + YYDEBUG(221, *YYCURSOR); + yyleng = YYCURSOR - SCNG(yy_text); +#line 1324 "Zend/zend_language_scanner.l" + { + RETURN_TOKEN(T_COALESCE); +} +#line 3474 "Zend/zend_language_scanner.c" +yy222: + YYDEBUG(222, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'S') goto yy315; + if (yych == 's') goto yy315; + goto yy128; +yy223: + YYDEBUG(223, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'D') goto yy316; + if (yych == 'd') goto yy316; + goto yy128; +yy224: + YYDEBUG(224, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'R') goto yy318; + if (yych == 'r') goto yy318; + goto yy128; +yy225: + YYDEBUG(225, *YYCURSOR); + ++YYCURSOR; + if (yybm[0+(yych = *YYCURSOR)] & 16) { + goto yy127; + } + YYDEBUG(226, *YYCURSOR); + yyleng = YYCURSOR - SCNG(yy_text); +#line 1226 "Zend/zend_language_scanner.l" + { + RETURN_TOKEN(T_AS); +} +#line 3505 "Zend/zend_language_scanner.c" +yy227: + YYDEBUG(227, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == '<') goto yy319; + goto yy166; +yy228: + YYDEBUG(228, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'E') goto yy320; + if (yych == 'e') goto yy320; + goto yy128; +yy229: + YYDEBUG(229, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= 'T') { + if (yych <= 'L') { + if (yych <= 'K') goto yy128; + goto yy321; + } else { + if (yych <= 'R') goto yy128; + if (yych <= 'S') goto yy322; + goto yy323; + } + } else { + if (yych <= 'r') { + if (yych == 'l') goto yy321; + goto yy128; + } else { + if (yych <= 's') goto yy322; + if (yych <= 't') goto yy323; + goto yy128; + } + } +yy230: + YYDEBUG(230, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= 'O') { + if (yych == 'A') goto yy324; + if (yych <= 'N') goto yy128; + goto yy325; + } else { + if (yych <= 'a') { + if (yych <= '`') goto yy128; + goto yy324; + } else { + if (yych == 'o') goto yy325; + goto yy128; + } + } +yy231: + YYDEBUG(231, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'N') goto yy326; + if (yych == 'n') goto yy326; + goto yy128; +yy232: + YYDEBUG(232, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= 'F') { + if (yych == 'C') goto yy327; + if (yych <= 'E') goto yy128; + goto yy328; + } else { + if (yych <= 'c') { + if (yych <= 'b') goto yy128; + goto yy327; + } else { + if (yych == 'f') goto yy328; + goto yy128; + } + } +yy233: + YYDEBUG(233, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'E') goto yy329; + if (yych == 'e') goto yy329; + goto yy128; +yy234: + YYDEBUG(234, *YYCURSOR); + ++YYCURSOR; + if (yybm[0+(yych = *YYCURSOR)] & 16) { + goto yy127; + } + YYDEBUG(235, *YYCURSOR); + yyleng = YYCURSOR - SCNG(yy_text); +#line 1194 "Zend/zend_language_scanner.l" + { + RETURN_TOKEN(T_DO); +} +#line 3595 "Zend/zend_language_scanner.c" +yy236: + YYDEBUG(236, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'H') goto yy331; + if (yych == 'h') goto yy331; + goto yy128; +yy237: + YYDEBUG(237, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'S') goto yy332; + if (yych == 's') goto yy332; + goto yy128; +yy238: + YYDEBUG(238, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'P') goto yy333; + if (yych == 'p') goto yy333; + goto yy128; +yy239: + YYDEBUG(239, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'D') goto yy334; + if (yych == 'd') goto yy334; + goto yy128; +yy240: + YYDEBUG(240, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'A') goto yy335; + if (yych == 'a') goto yy335; + goto yy128; +yy241: + YYDEBUG(241, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= 'T') { + if (yych == 'I') goto yy336; + if (yych <= 'S') goto yy128; + goto yy337; + } else { + if (yych <= 'i') { + if (yych <= 'h') goto yy128; + goto yy336; + } else { + if (yych == 't') goto yy337; + goto yy128; + } + } +yy242: + YYDEBUG(242, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'N') goto yy338; + if (yych == 'n') goto yy338; + goto yy128; +yy243: + YYDEBUG(243, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'R') goto yy339; + if (yych == 'r') goto yy339; + goto yy128; +yy244: + YYDEBUG(244, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'N') goto yy341; + if (yych == 'n') goto yy341; + goto yy128; +yy245: + YYDEBUG(245, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'O') goto yy342; + if (yych == 'o') goto yy342; + goto yy128; +yy246: + YYDEBUG(246, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'T') goto yy343; + if (yych == 't') goto yy343; + goto yy128; +yy247: + YYDEBUG(247, *YYCURSOR); + ++YYCURSOR; + if (yybm[0+(yych = *YYCURSOR)] & 16) { + goto yy127; + } + YYDEBUG(248, *YYCURSOR); + yyleng = YYCURSOR - SCNG(yy_text); +#line 1170 "Zend/zend_language_scanner.l" + { + RETURN_TOKEN(T_IF); +} +#line 3684 "Zend/zend_language_scanner.c" +yy249: + YYDEBUG(249, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'P') goto yy344; + if (yych == 'p') goto yy344; + goto yy128; +yy250: + YYDEBUG(250, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= 'T') { + if (yych <= 'C') { + if (yych <= 'B') goto yy128; + goto yy345; + } else { + if (yych <= 'R') goto yy128; + if (yych <= 'S') goto yy346; + goto yy347; + } + } else { + if (yych <= 'r') { + if (yych == 'c') goto yy345; + goto yy128; + } else { + if (yych <= 's') goto yy346; + if (yych <= 't') goto yy347; + goto yy128; + } + } +yy251: + YYDEBUG(251, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'S') goto yy348; + if (yych == 's') goto yy348; + goto yy128; +yy252: + YYDEBUG(252, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'S') goto yy349; + if (yych == 's') goto yy349; + goto yy128; +yy253: + YYDEBUG(253, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'M') goto yy350; + if (yych == 'm') goto yy350; + goto yy128; +yy254: + YYDEBUG(254, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'W') goto yy351; + if (yych == 'w') goto yy351; + goto yy128; +yy255: + YYDEBUG(255, *YYCURSOR); + ++YYCURSOR; + if (yybm[0+(yych = *YYCURSOR)] & 16) { + goto yy127; + } + YYDEBUG(256, *YYCURSOR); + yyleng = YYCURSOR - SCNG(yy_text); +#line 1556 "Zend/zend_language_scanner.l" + { + RETURN_TOKEN(T_LOGICAL_OR); +} +#line 3749 "Zend/zend_language_scanner.c" +yy257: + YYDEBUG(257, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= 'O') { + if (yych == 'I') goto yy353; + if (yych <= 'N') goto yy128; + goto yy354; + } else { + if (yych <= 'i') { + if (yych <= 'h') goto yy128; + goto yy353; + } else { + if (yych == 'o') goto yy354; + goto yy128; + } + } +yy258: + YYDEBUG(258, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'B') goto yy355; + if (yych == 'b') goto yy355; + goto yy128; +yy259: + YYDEBUG(259, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= 'T') { + if (yych == 'Q') goto yy356; + if (yych <= 'S') goto yy128; + goto yy357; + } else { + if (yych <= 'q') { + if (yych <= 'p') goto yy128; + goto yy356; + } else { + if (yych == 't') goto yy357; + goto yy128; + } + } +yy260: + YYDEBUG(260, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'A') goto yy358; + if (yych == 'a') goto yy358; + goto yy128; +yy261: + YYDEBUG(261, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'I') goto yy359; + if (yych == 'i') goto yy359; + goto yy128; +yy262: + YYDEBUG(262, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'R') goto yy360; + if (yych == 'r') goto yy360; + goto yy128; +yy263: + YYDEBUG(263, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= 'Y') { + if (yych == 'A') goto yy361; + if (yych <= 'X') goto yy128; + goto yy362; + } else { + if (yych <= 'a') { + if (yych <= '`') goto yy128; + goto yy361; + } else { + if (yych == 'y') goto yy362; + goto yy128; + } + } +yy264: + YYDEBUG(264, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'S') goto yy364; + if (yych == 's') goto yy364; + goto yy128; +yy265: + YYDEBUG(265, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'E') goto yy365; + if (yych == 'e') goto yy365; + goto yy128; +yy266: + YYDEBUG(266, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'R') goto yy367; + if (yych == 'r') goto yy367; + goto yy128; +yy267: + YYDEBUG(267, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'I') goto yy369; + if (yych == 'i') goto yy369; + goto yy128; +yy268: + YYDEBUG(268, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'R') goto yy370; + if (yych == 'r') goto yy370; + goto yy128; +yy269: + YYDEBUG(269, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'E') goto yy372; + if (yych == 'e') goto yy372; + goto yy128; +yy270: + YYDEBUG(270, *YYCURSOR); + ++YYCURSOR; + YYDEBUG(271, *YYCURSOR); + yyleng = YYCURSOR - SCNG(yy_text); +#line 1544 "Zend/zend_language_scanner.l" + { + RETURN_TOKEN(T_XOR_EQUAL); +} +#line 3867 "Zend/zend_language_scanner.c" +yy272: + YYDEBUG(272, *YYCURSOR); + yych = *++YYCURSOR; + switch (yych) { + case 'C': + case 'c': goto yy373; + case 'D': + case 'd': goto yy374; + case 'F': + case 'f': goto yy375; + case 'H': + case 'h': goto yy376; + case 'L': + case 'l': goto yy377; + case 'M': + case 'm': goto yy378; + case 'N': + case 'n': goto yy379; + case 'T': + case 't': goto yy380; + default: goto yy128; + } +yy273: + YYDEBUG(273, *YYCURSOR); + ++YYCURSOR; + YYDEBUG(274, *YYCURSOR); + yyleng = YYCURSOR - SCNG(yy_text); +#line 1540 "Zend/zend_language_scanner.l" + { + RETURN_TOKEN(T_OR_EQUAL); +} +#line 3899 "Zend/zend_language_scanner.c" +yy275: + YYDEBUG(275, *YYCURSOR); + ++YYCURSOR; + YYDEBUG(276, *YYCURSOR); + yyleng = YYCURSOR - SCNG(yy_text); +#line 1548 "Zend/zend_language_scanner.l" + { + RETURN_TOKEN(T_BOOLEAN_OR); +} +#line 3909 "Zend/zend_language_scanner.c" +yy277: + YYDEBUG(277, *YYCURSOR); + ++YYCURSOR; + YYDEBUG(278, *YYCURSOR); + yyleng = YYCURSOR - SCNG(yy_text); +#line 1472 "Zend/zend_language_scanner.l" + { + RETURN_TOKEN(T_IS_NOT_IDENTICAL); +} +#line 3919 "Zend/zend_language_scanner.c" +yy279: + YYDEBUG(279, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'R') goto yy381; + if (yych == 'r') goto yy381; + goto yy166; +yy280: + YYDEBUG(280, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'N') goto yy382; + if (yych == 'n') goto yy382; + goto yy166; +yy281: + YYDEBUG(281, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'O') goto yy383; + if (yych == 'o') goto yy383; + goto yy166; +yy282: + YYDEBUG(282, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'U') goto yy384; + if (yych == 'u') goto yy384; + goto yy166; +yy283: + YYDEBUG(283, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'O') goto yy385; + if (yych == 'o') goto yy385; + goto yy166; +yy284: + YYDEBUG(284, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'T') goto yy386; + if (yych == 't') goto yy386; + goto yy166; +yy285: + YYDEBUG(285, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'J') goto yy387; + if (yych == 'j') goto yy387; + goto yy166; +yy286: + YYDEBUG(286, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'A') goto yy388; + if (yych == 'a') goto yy388; + goto yy166; +yy287: + YYDEBUG(287, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'R') goto yy389; + if (yych == 'r') goto yy389; + goto yy166; +yy288: + YYDEBUG(288, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'S') goto yy390; + if (yych == 's') goto yy390; + goto yy166; +yy289: + YYDEBUG(289, *YYCURSOR); + ++YYCURSOR; + YYDEBUG(290, *YYCURSOR); + yyleng = YYCURSOR - SCNG(yy_text); +#line 1512 "Zend/zend_language_scanner.l" + { + RETURN_TOKEN(T_POW_EQUAL); +} +#line 3989 "Zend/zend_language_scanner.c" +yy291: + YYDEBUG(291, *YYCURSOR); + ++YYCURSOR; + YYDEBUG(292, *YYCURSOR); + yyleng = YYCURSOR - SCNG(yy_text); +#line 1320 "Zend/zend_language_scanner.l" + { + RETURN_TOKEN(T_ELLIPSIS); +} +#line 3999 "Zend/zend_language_scanner.c" +yy293: + YYDEBUG(293, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= '\f') { + if (yych <= 0x08) goto yy166; + if (yych <= '\n') goto yy391; + goto yy166; + } else { + if (yych <= '\r') goto yy391; + if (yych == ' ') goto yy391; + goto yy166; + } +yy294: + YYDEBUG(294, *YYCURSOR); + ++YYCURSOR; + YYFILL(1); + yych = *YYCURSOR; + YYDEBUG(295, *YYCURSOR); + if (yybm[0+yych] & 64) { + goto yy294; + } + YYDEBUG(296, *YYCURSOR); + yyleng = YYCURSOR - SCNG(yy_text); +#line 1618 "Zend/zend_language_scanner.l" + { + char *bin = yytext + 2; /* Skip "0b" */ + int len = yyleng - 2; + char *end; + + /* Skip any leading 0s */ + while (*bin == '0') { + ++bin; + --len; + } + + if (len < SIZEOF_ZEND_LONG * 8) { + if (len == 0) { + ZVAL_LONG(zendlval, 0); + } else { + errno = 0; + ZVAL_LONG(zendlval, ZEND_STRTOL(bin, &end, 2)); + ZEND_ASSERT(!errno && end == yytext + yyleng); + } + RETURN_TOKEN(T_LNUMBER); + } else { + ZVAL_DOUBLE(zendlval, zend_bin_strtod(bin, (const char **)&end)); + /* errno isn't checked since we allow HUGE_VAL/INF overflow */ + ZEND_ASSERT(end == yytext + yyleng); + RETURN_TOKEN(T_DNUMBER); + } +} +#line 4051 "Zend/zend_language_scanner.c" +yy297: + YYDEBUG(297, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= '/') goto yy166; + if (yych >= ':') goto yy166; +yy298: + YYDEBUG(298, *YYCURSOR); + ++YYCURSOR; + YYFILL(1); + yych = *YYCURSOR; + YYDEBUG(299, *YYCURSOR); + if (yych <= '/') goto yy193; + if (yych <= '9') goto yy298; + goto yy193; +yy300: + YYDEBUG(300, *YYCURSOR); + ++YYCURSOR; + YYFILL(1); + yych = *YYCURSOR; + YYDEBUG(301, *YYCURSOR); + if (yybm[0+yych] & 128) { + goto yy300; + } + YYDEBUG(302, *YYCURSOR); + yyleng = YYCURSOR - SCNG(yy_text); +#line 1691 "Zend/zend_language_scanner.l" + { + char *hex = yytext + 2; /* Skip "0x" */ + int len = yyleng - 2; + char *end; + + /* Skip any leading 0s */ + while (*hex == '0') { + hex++; + len--; + } + + if (len < SIZEOF_ZEND_LONG * 2 || (len == SIZEOF_ZEND_LONG * 2 && *hex <= '7')) { + if (len == 0) { + ZVAL_LONG(zendlval, 0); + } else { + errno = 0; + ZVAL_LONG(zendlval, ZEND_STRTOL(hex, &end, 16)); + ZEND_ASSERT(!errno && end == hex + len); + } + RETURN_TOKEN(T_LNUMBER); + } else { + ZVAL_DOUBLE(zendlval, zend_hex_strtod(hex, (const char **)&end)); + /* errno isn't checked since we allow HUGE_VAL/INF overflow */ + ZEND_ASSERT(end == hex + len); + RETURN_TOKEN(T_DNUMBER); + } +} +#line 4105 "Zend/zend_language_scanner.c" +yy303: + YYDEBUG(303, *YYCURSOR); + ++YYCURSOR; + YYFILL(2); + yych = *YYCURSOR; + YYDEBUG(304, *YYCURSOR); + if (yych <= '\'') { + if (yych <= ' ') { + if (yych == '\t') goto yy303; + if (yych <= 0x1F) goto yy166; + goto yy303; + } else { + if (yych == '"') goto yy393; + if (yych <= '&') goto yy166; + goto yy394; + } + } else { + if (yych <= '_') { + if (yych <= '@') goto yy166; + if (yych <= 'Z') goto yy395; + if (yych <= '^') goto yy166; + goto yy395; + } else { + if (yych <= '`') goto yy166; + if (yych <= 'z') goto yy395; + if (yych <= 0x7F) goto yy166; + goto yy395; + } + } +yy305: + YYDEBUG(305, *YYCURSOR); + ++YYCURSOR; + YYDEBUG(306, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); #line 1528 "Zend/zend_language_scanner.l" { RETURN_TOKEN(T_SL_EQUAL); } -#line 3489 "Zend/zend_language_scanner.c" -yy219: - YYDEBUG(219, *YYCURSOR); +#line 4144 "Zend/zend_language_scanner.c" +yy307: + YYDEBUG(307, *YYCURSOR); ++YYCURSOR; - YYFILL(2); - yych = *YYCURSOR; - YYDEBUG(220, *YYCURSOR); - if (yybm[0+yych] & 128) { - goto yy219; + YYDEBUG(308, *YYCURSOR); + yyleng = YYCURSOR - SCNG(yy_text); +#line 1484 "Zend/zend_language_scanner.l" + { + RETURN_TOKEN(T_SPACESHIP); +} +#line 4154 "Zend/zend_language_scanner.c" +yy309: + YYDEBUG(309, *YYCURSOR); + ++YYCURSOR; + YYDEBUG(310, *YYCURSOR); + yyleng = YYCURSOR - SCNG(yy_text); +#line 1468 "Zend/zend_language_scanner.l" + { + RETURN_TOKEN(T_IS_IDENTICAL); +} +#line 4164 "Zend/zend_language_scanner.c" +yy311: + YYDEBUG(311, *YYCURSOR); + ++YYCURSOR; + YYDEBUG(312, *YYCURSOR); + yyleng = YYCURSOR - SCNG(yy_text); +#line 1532 "Zend/zend_language_scanner.l" + { + RETURN_TOKEN(T_SR_EQUAL); +} +#line 4174 "Zend/zend_language_scanner.c" +yy313: + YYDEBUG(313, *YYCURSOR); + yych = *++YYCURSOR; + goto yy219; +yy314: + YYDEBUG(314, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == '\n') goto yy313; + goto yy219; +yy315: + YYDEBUG(315, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'T') goto yy397; + if (yych == 't') goto yy397; + goto yy128; +yy316: + YYDEBUG(316, *YYCURSOR); + ++YYCURSOR; + if (yybm[0+(yych = *YYCURSOR)] & 16) { + goto yy127; } - if (yych <= 'Z') { - if (yych <= '&') { - if (yych == '"') goto yy224; - goto yy157; + YYDEBUG(317, *YYCURSOR); + yyleng = YYCURSOR - SCNG(yy_text); +#line 1560 "Zend/zend_language_scanner.l" + { + RETURN_TOKEN(T_LOGICAL_AND); +} +#line 4202 "Zend/zend_language_scanner.c" +yy318: + YYDEBUG(318, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'A') goto yy398; + if (yych == 'a') goto yy398; + goto yy128; +yy319: + YYDEBUG(319, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == '<') goto yy303; + goto yy166; +yy320: + YYDEBUG(320, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'A') goto yy399; + if (yych == 'a') goto yy399; + goto yy128; +yy321: + YYDEBUG(321, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'L') goto yy400; + if (yych == 'l') goto yy400; + goto yy128; +yy322: + YYDEBUG(322, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'E') goto yy401; + if (yych == 'e') goto yy401; + goto yy128; +yy323: + YYDEBUG(323, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'C') goto yy403; + if (yych == 'c') goto yy403; + goto yy128; +yy324: + YYDEBUG(324, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'S') goto yy404; + if (yych == 's') goto yy404; + goto yy128; +yy325: + YYDEBUG(325, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'N') goto yy405; + if (yych == 'n') goto yy405; + goto yy128; +yy326: + YYDEBUG(326, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= 'T') { + if (yych <= 'R') goto yy128; + if (yych <= 'S') goto yy406; + goto yy407; + } else { + if (yych <= 'r') goto yy128; + if (yych <= 's') goto yy406; + if (yych <= 't') goto yy407; + goto yy128; + } +yy327: + YYDEBUG(327, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'L') goto yy408; + if (yych == 'l') goto yy408; + goto yy128; +yy328: + YYDEBUG(328, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'A') goto yy409; + if (yych == 'a') goto yy409; + goto yy128; +yy329: + YYDEBUG(329, *YYCURSOR); + ++YYCURSOR; + if (yybm[0+(yych = *YYCURSOR)] & 16) { + goto yy127; + } + YYDEBUG(330, *YYCURSOR); + yyleng = YYCURSOR - SCNG(yy_text); +#line 1129 "Zend/zend_language_scanner.l" + { + RETURN_TOKEN(T_EXIT); +} +#line 4287 "Zend/zend_language_scanner.c" +yy331: + YYDEBUG(331, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'O') goto yy410; + if (yych == 'o') goto yy410; + goto yy128; +yy332: + YYDEBUG(332, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'E') goto yy412; + if (yych == 'e') goto yy412; + goto yy128; +yy333: + YYDEBUG(333, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'T') goto yy414; + if (yych == 't') goto yy414; + goto yy128; +yy334: + YYDEBUG(334, *YYCURSOR); + yych = *++YYCURSOR; + switch (yych) { + case 'D': + case 'd': goto yy415; + case 'F': + case 'f': goto yy416; + case 'I': + case 'i': goto yy417; + case 'S': + case 's': goto yy418; + case 'W': + case 'w': goto yy419; + default: goto yy128; + } +yy335: + YYDEBUG(335, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'L') goto yy420; + if (yych == 'l') goto yy420; + goto yy128; +yy336: + YYDEBUG(336, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'T') goto yy422; + if (yych == 't') goto yy422; + goto yy128; +yy337: + YYDEBUG(337, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'E') goto yy424; + if (yych == 'e') goto yy424; + goto yy128; +yy338: + YYDEBUG(338, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'A') goto yy425; + if (yych == 'a') goto yy425; + goto yy128; +yy339: + YYDEBUG(339, *YYCURSOR); + ++YYCURSOR; + if ((yych = *YYCURSOR) <= '^') { + if (yych <= '@') { + if (yych <= '/') goto yy340; + if (yych <= '9') goto yy127; } else { - if (yych <= '\'') goto yy223; - if (yych <= '@') goto yy157; + if (yych == 'E') goto yy426; + if (yych <= 'Z') goto yy127; } } else { - if (yych <= '`') { - if (yych != '_') goto yy157; + if (yych <= 'd') { + if (yych != '`') goto yy127; } else { - if (yych <= 'z') goto yy221; - if (yych <= 0x7F) goto yy157; + if (yych <= 'e') goto yy426; + if (yych <= 'z') goto yy127; + if (yych >= 0x80) goto yy127; } } -yy221: - YYDEBUG(221, *YYCURSOR); +yy340: + YYDEBUG(340, *YYCURSOR); + yyleng = YYCURSOR - SCNG(yy_text); +#line 1198 "Zend/zend_language_scanner.l" + { + RETURN_TOKEN(T_FOR); +} +#line 4373 "Zend/zend_language_scanner.c" +yy341: + YYDEBUG(341, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'C') goto yy427; + if (yych == 'c') goto yy427; + goto yy128; +yy342: + YYDEBUG(342, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'B') goto yy428; + if (yych == 'b') goto yy428; + goto yy128; +yy343: + YYDEBUG(343, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'O') goto yy429; + if (yych == 'o') goto yy429; + goto yy128; +yy344: + YYDEBUG(344, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'L') goto yy431; + if (yych == 'l') goto yy431; + goto yy128; +yy345: + YYDEBUG(345, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'L') goto yy432; + if (yych == 'l') goto yy432; + goto yy128; +yy346: + YYDEBUG(346, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'T') goto yy433; + if (yych == 't') goto yy433; + goto yy128; +yy347: + YYDEBUG(347, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'E') goto yy434; + if (yych == 'e') goto yy434; + goto yy128; +yy348: + YYDEBUG(348, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'E') goto yy435; + if (yych == 'e') goto yy435; + goto yy128; +yy349: + YYDEBUG(349, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'T') goto yy436; + if (yych == 't') goto yy436; + goto yy128; +yy350: + YYDEBUG(350, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'E') goto yy438; + if (yych == 'e') goto yy438; + goto yy128; +yy351: + YYDEBUG(351, *YYCURSOR); + ++YYCURSOR; + if (yybm[0+(yych = *YYCURSOR)] & 16) { + goto yy127; + } + YYDEBUG(352, *YYCURSOR); + yyleng = YYCURSOR - SCNG(yy_text); +#line 1328 "Zend/zend_language_scanner.l" + { + RETURN_TOKEN(T_NEW); +} +#line 4446 "Zend/zend_language_scanner.c" +yy353: + YYDEBUG(353, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= 'V') { + if (yych == 'N') goto yy439; + if (yych <= 'U') goto yy128; + goto yy440; + } else { + if (yych <= 'n') { + if (yych <= 'm') goto yy128; + goto yy439; + } else { + if (yych == 'v') goto yy440; + goto yy128; + } + } +yy354: + YYDEBUG(354, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'T') goto yy441; + if (yych == 't') goto yy441; + goto yy128; +yy355: + YYDEBUG(355, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'L') goto yy442; + if (yych == 'l') goto yy442; + goto yy128; +yy356: + YYDEBUG(356, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'U') goto yy443; + if (yych == 'u') goto yy443; + goto yy128; +yy357: + YYDEBUG(357, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'U') goto yy444; + if (yych == 'u') goto yy444; + goto yy128; +yy358: + YYDEBUG(358, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'T') goto yy445; + if (yych == 't') goto yy445; + goto yy128; +yy359: + YYDEBUG(359, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'T') goto yy446; + if (yych == 't') goto yy446; + goto yy128; +yy360: + YYDEBUG(360, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'O') goto yy447; + if (yych == 'o') goto yy447; + goto yy128; +yy361: + YYDEBUG(361, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'I') goto yy448; + if (yych == 'i') goto yy448; + goto yy128; +yy362: + YYDEBUG(362, *YYCURSOR); + ++YYCURSOR; + if (yybm[0+(yych = *YYCURSOR)] & 16) { + goto yy127; + } + YYDEBUG(363, *YYCURSOR); + yyleng = YYCURSOR - SCNG(yy_text); +#line 1154 "Zend/zend_language_scanner.l" + { + RETURN_TOKEN(T_TRY); +} +#line 4523 "Zend/zend_language_scanner.c" +yy364: + YYDEBUG(364, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'E') goto yy449; + if (yych == 'e') goto yy449; + goto yy128; +yy365: + YYDEBUG(365, *YYCURSOR); + ++YYCURSOR; + if (yybm[0+(yych = *YYCURSOR)] & 16) { + goto yy127; + } + YYDEBUG(366, *YYCURSOR); + yyleng = YYCURSOR - SCNG(yy_text); +#line 1392 "Zend/zend_language_scanner.l" + { + RETURN_TOKEN(T_USE); +} +#line 4542 "Zend/zend_language_scanner.c" +yy367: + YYDEBUG(367, *YYCURSOR); + ++YYCURSOR; + if (yybm[0+(yych = *YYCURSOR)] & 16) { + goto yy127; + } + YYDEBUG(368, *YYCURSOR); + yyleng = YYCURSOR - SCNG(yy_text); +#line 1336 "Zend/zend_language_scanner.l" + { + RETURN_TOKEN(T_VAR); +} +#line 4555 "Zend/zend_language_scanner.c" +yy369: + YYDEBUG(369, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'L') goto yy450; + if (yych == 'l') goto yy450; + goto yy128; +yy370: + YYDEBUG(370, *YYCURSOR); + ++YYCURSOR; + if (yybm[0+(yych = *YYCURSOR)] & 16) { + goto yy127; + } + YYDEBUG(371, *YYCURSOR); + yyleng = YYCURSOR - SCNG(yy_text); +#line 1564 "Zend/zend_language_scanner.l" + { + RETURN_TOKEN(T_LOGICAL_XOR); +} +#line 4574 "Zend/zend_language_scanner.c" +yy372: + YYDEBUG(372, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'L') goto yy451; + if (yych == 'l') goto yy451; + goto yy128; +yy373: + YYDEBUG(373, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'L') goto yy452; + if (yych == 'l') goto yy452; + goto yy128; +yy374: + YYDEBUG(374, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'I') goto yy453; + if (yych == 'i') goto yy453; + goto yy128; +yy375: + YYDEBUG(375, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= 'U') { + if (yych == 'I') goto yy454; + if (yych <= 'T') goto yy128; + goto yy455; + } else { + if (yych <= 'i') { + if (yych <= 'h') goto yy128; + goto yy454; + } else { + if (yych == 'u') goto yy455; + goto yy128; + } + } +yy376: + YYDEBUG(376, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'A') goto yy456; + if (yych == 'a') goto yy456; + goto yy128; +yy377: + YYDEBUG(377, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'I') goto yy457; + if (yych == 'i') goto yy457; + goto yy128; +yy378: + YYDEBUG(378, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'E') goto yy458; + if (yych == 'e') goto yy458; + goto yy128; +yy379: + YYDEBUG(379, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'A') goto yy459; + if (yych == 'a') goto yy459; + goto yy128; +yy380: + YYDEBUG(380, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'R') goto yy460; + if (yych == 'r') goto yy460; + goto yy128; +yy381: + YYDEBUG(381, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'A') goto yy461; + if (yych == 'a') goto yy461; + goto yy166; +yy382: + YYDEBUG(382, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'A') goto yy462; + if (yych == 'a') goto yy462; + goto yy166; +yy383: + YYDEBUG(383, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'L') goto yy463; + if (yych == 'l') goto yy463; + goto yy166; +yy384: + YYDEBUG(384, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'B') goto yy464; + if (yych == 'b') goto yy464; + goto yy166; +yy385: + YYDEBUG(385, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'A') goto yy465; + if (yych == 'a') goto yy465; + goto yy166; +yy386: + YYDEBUG(386, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'E') goto yy470; + if (yych == 'e') goto yy470; + goto yy467; +yy387: + YYDEBUG(387, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'E') goto yy471; + if (yych == 'e') goto yy471; + goto yy166; +yy388: + YYDEBUG(388, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'L') goto yy472; + if (yych == 'l') goto yy472; + goto yy166; +yy389: + YYDEBUG(389, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'I') goto yy474; + if (yych == 'i') goto yy474; + goto yy166; +yy390: + YYDEBUG(390, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'E') goto yy475; + if (yych == 'e') goto yy475; + goto yy166; +yy391: + YYDEBUG(391, *YYCURSOR); + ++YYCURSOR; + YYFILL(1); + yych = *YYCURSOR; + YYDEBUG(392, *YYCURSOR); + if (yych <= '\f') { + if (yych <= 0x08) goto yy197; + if (yych <= '\n') goto yy391; + goto yy197; + } else { + if (yych <= '\r') goto yy391; + if (yych == ' ') goto yy391; + goto yy197; + } +yy393: + YYDEBUG(393, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == '"') goto yy166; + if (yych <= '/') goto yy477; + if (yych <= '9') goto yy166; + goto yy477; +yy394: + YYDEBUG(394, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == '\'') goto yy166; + if (yych <= '/') goto yy479; + if (yych <= '9') goto yy166; + goto yy479; +yy395: + YYDEBUG(395, *YYCURSOR); ++YYCURSOR; YYFILL(2); yych = *YYCURSOR; - YYDEBUG(222, *YYCURSOR); + YYDEBUG(396, *YYCURSOR); if (yych <= '@') { if (yych <= '\f') { - if (yych == '\n') goto yy228; - goto yy157; + if (yych == '\n') goto yy480; + goto yy166; } else { - if (yych <= '\r') goto yy230; - if (yych <= '/') goto yy157; - if (yych <= '9') goto yy221; - goto yy157; + if (yych <= '\r') goto yy482; + if (yych <= '/') goto yy166; + if (yych <= '9') goto yy395; + goto yy166; } } else { if (yych <= '_') { - if (yych <= 'Z') goto yy221; - if (yych <= '^') goto yy157; - goto yy221; + if (yych <= 'Z') goto yy395; + if (yych <= '^') goto yy166; + goto yy395; } else { - if (yych <= '`') goto yy157; - if (yych <= 'z') goto yy221; - if (yych <= 0x7F) goto yy157; - goto yy221; + if (yych <= '`') goto yy166; + if (yych <= 'z') goto yy395; + if (yych <= 0x7F) goto yy166; + goto yy395; } } -yy223: - YYDEBUG(223, *YYCURSOR); +yy397: + YYDEBUG(397, *YYCURSOR); yych = *++YYCURSOR; - if (yych == '\'') goto yy157; - if (yych <= '/') goto yy232; - if (yych <= '9') goto yy157; - goto yy232; -yy224: - YYDEBUG(224, *YYCURSOR); + if (yych == 'R') goto yy483; + if (yych == 'r') goto yy483; + goto yy128; +yy398: + YYDEBUG(398, *YYCURSOR); yych = *++YYCURSOR; - if (yych == '"') goto yy157; - if (yych <= '/') goto yy226; - if (yych <= '9') goto yy157; - goto yy226; -yy225: - YYDEBUG(225, *YYCURSOR); + if (yych == 'Y') goto yy484; + if (yych == 'y') goto yy484; + goto yy128; +yy399: + YYDEBUG(399, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'K') goto yy486; + if (yych == 'k') goto yy486; + goto yy128; +yy400: + YYDEBUG(400, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'A') goto yy488; + if (yych == 'a') goto yy488; + goto yy128; +yy401: + YYDEBUG(401, *YYCURSOR); + ++YYCURSOR; + if (yybm[0+(yych = *YYCURSOR)] & 16) { + goto yy127; + } + YYDEBUG(402, *YYCURSOR); + yyleng = YYCURSOR - SCNG(yy_text); +#line 1238 "Zend/zend_language_scanner.l" + { + RETURN_TOKEN(T_CASE); +} +#line 4792 "Zend/zend_language_scanner.c" +yy403: + YYDEBUG(403, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'H') goto yy489; + if (yych == 'h') goto yy489; + goto yy128; +yy404: + YYDEBUG(404, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'S') goto yy491; + if (yych == 's') goto yy491; + goto yy128; +yy405: + YYDEBUG(405, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'E') goto yy493; + if (yych == 'e') goto yy493; + goto yy128; +yy406: + YYDEBUG(406, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'T') goto yy495; + if (yych == 't') goto yy495; + goto yy128; +yy407: + YYDEBUG(407, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'I') goto yy497; + if (yych == 'i') goto yy497; + goto yy128; +yy408: + YYDEBUG(408, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'A') goto yy498; + if (yych == 'a') goto yy498; + goto yy128; +yy409: + YYDEBUG(409, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'U') goto yy499; + if (yych == 'u') goto yy499; + goto yy128; +yy410: + YYDEBUG(410, *YYCURSOR); + ++YYCURSOR; + if (yybm[0+(yych = *YYCURSOR)] & 16) { + goto yy127; + } + YYDEBUG(411, *YYCURSOR); + yyleng = YYCURSOR - SCNG(yy_text); +#line 1258 "Zend/zend_language_scanner.l" + { + RETURN_TOKEN(T_ECHO); +} +#line 4847 "Zend/zend_language_scanner.c" +yy412: + YYDEBUG(412, *YYCURSOR); + ++YYCURSOR; + if ((yych = *YYCURSOR) <= '^') { + if (yych <= '@') { + if (yych <= '/') goto yy413; + if (yych <= '9') goto yy127; + } else { + if (yych == 'I') goto yy500; + if (yych <= 'Z') goto yy127; + } + } else { + if (yych <= 'h') { + if (yych != '`') goto yy127; + } else { + if (yych <= 'i') goto yy500; + if (yych <= 'z') goto yy127; + if (yych >= 0x80) goto yy127; + } + } +yy413: + YYDEBUG(413, *YYCURSOR); + yyleng = YYCURSOR - SCNG(yy_text); +#line 1182 "Zend/zend_language_scanner.l" + { + RETURN_TOKEN(T_ELSE); +} +#line 4875 "Zend/zend_language_scanner.c" +yy414: + YYDEBUG(414, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'Y') goto yy501; + if (yych == 'y') goto yy501; + goto yy128; +yy415: + YYDEBUG(415, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'E') goto yy503; + if (yych == 'e') goto yy503; + goto yy128; +yy416: + YYDEBUG(416, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'O') goto yy504; + if (yych == 'o') goto yy504; + goto yy128; +yy417: + YYDEBUG(417, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'F') goto yy505; + if (yych == 'f') goto yy505; + goto yy128; +yy418: + YYDEBUG(418, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'W') goto yy507; + if (yych == 'w') goto yy507; + goto yy128; +yy419: + YYDEBUG(419, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'H') goto yy508; + if (yych == 'h') goto yy508; + goto yy128; +yy420: + YYDEBUG(420, *YYCURSOR); + ++YYCURSOR; + if (yybm[0+(yych = *YYCURSOR)] & 16) { + goto yy127; + } + YYDEBUG(421, *YYCURSOR); + yyleng = YYCURSOR - SCNG(yy_text); +#line 1368 "Zend/zend_language_scanner.l" + { + RETURN_TOKEN(T_EVAL); +} +#line 4924 "Zend/zend_language_scanner.c" +yy422: + YYDEBUG(422, *YYCURSOR); + ++YYCURSOR; + if (yybm[0+(yych = *YYCURSOR)] & 16) { + goto yy127; + } + YYDEBUG(423, *YYCURSOR); + yyleng = YYCURSOR - SCNG(yy_text); +#line 1125 "Zend/zend_language_scanner.l" + { + RETURN_TOKEN(T_EXIT); +} +#line 4937 "Zend/zend_language_scanner.c" +yy424: + YYDEBUG(424, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'N') goto yy509; + if (yych == 'n') goto yy509; + goto yy128; +yy425: + YYDEBUG(425, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'L') goto yy510; + if (yych == 'l') goto yy510; + goto yy128; +yy426: + YYDEBUG(426, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'A') goto yy512; + if (yych == 'a') goto yy512; + goto yy128; +yy427: + YYDEBUG(427, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'T') goto yy513; + if (yych == 't') goto yy513; + goto yy128; +yy428: + YYDEBUG(428, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'A') goto yy514; + if (yych == 'a') goto yy514; + goto yy128; +yy429: + YYDEBUG(429, *YYCURSOR); + ++YYCURSOR; + if (yybm[0+(yych = *YYCURSOR)] & 16) { + goto yy127; + } + YYDEBUG(430, *YYCURSOR); + yyleng = YYCURSOR - SCNG(yy_text); +#line 1254 "Zend/zend_language_scanner.l" + { + RETURN_TOKEN(T_GOTO); +} +#line 4980 "Zend/zend_language_scanner.c" +yy431: + YYDEBUG(431, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'E') goto yy515; + if (yych == 'e') goto yy515; + goto yy128; +yy432: + YYDEBUG(432, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'U') goto yy516; + if (yych == 'u') goto yy516; + goto yy128; +yy433: + YYDEBUG(433, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= 'E') { + if (yych == 'A') goto yy517; + if (yych <= 'D') goto yy128; + goto yy518; + } else { + if (yych <= 'a') { + if (yych <= '`') goto yy128; + goto yy517; + } else { + if (yych == 'e') goto yy518; + goto yy128; + } + } +yy434: + YYDEBUG(434, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'R') goto yy519; + if (yych == 'r') goto yy519; + goto yy128; +yy435: + YYDEBUG(435, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'T') goto yy520; + if (yych == 't') goto yy520; + goto yy128; +yy436: + YYDEBUG(436, *YYCURSOR); + ++YYCURSOR; + if (yybm[0+(yych = *YYCURSOR)] & 16) { + goto yy127; + } + YYDEBUG(437, *YYCURSOR); + yyleng = YYCURSOR - SCNG(yy_text); +#line 1448 "Zend/zend_language_scanner.l" + { + RETURN_TOKEN(T_LIST); +} +#line 5033 "Zend/zend_language_scanner.c" +yy438: + YYDEBUG(438, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'S') goto yy522; + if (yych == 's') goto yy522; + goto yy128; +yy439: + YYDEBUG(439, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'T') goto yy523; + if (yych == 't') goto yy523; + goto yy128; +yy440: + YYDEBUG(440, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'A') goto yy525; + if (yych == 'a') goto yy525; + goto yy128; +yy441: + YYDEBUG(441, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'E') goto yy526; + if (yych == 'e') goto yy526; + goto yy128; +yy442: + YYDEBUG(442, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'I') goto yy527; + if (yych == 'i') goto yy527; + goto yy128; +yy443: + YYDEBUG(443, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'I') goto yy528; + if (yych == 'i') goto yy528; + goto yy128; +yy444: + YYDEBUG(444, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'R') goto yy529; + if (yych == 'r') goto yy529; + goto yy128; +yy445: + YYDEBUG(445, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'I') goto yy530; + if (yych == 'i') goto yy530; + goto yy128; +yy446: + YYDEBUG(446, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'C') goto yy531; + if (yych == 'c') goto yy531; + goto yy128; +yy447: + YYDEBUG(447, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'W') goto yy532; + if (yych == 'w') goto yy532; + goto yy128; +yy448: + YYDEBUG(448, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'T') goto yy534; + if (yych == 't') goto yy534; + goto yy128; +yy449: + YYDEBUG(449, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'T') goto yy536; + if (yych == 't') goto yy536; + goto yy128; +yy450: + YYDEBUG(450, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'E') goto yy538; + if (yych == 'e') goto yy538; + goto yy128; +yy451: + YYDEBUG(451, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'D') goto yy540; + if (yych == 'd') goto yy540; + goto yy128; +yy452: + YYDEBUG(452, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'A') goto yy542; + if (yych == 'a') goto yy542; + goto yy128; +yy453: + YYDEBUG(453, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'R') goto yy543; + if (yych == 'r') goto yy543; + goto yy128; +yy454: + YYDEBUG(454, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'L') goto yy544; + if (yych == 'l') goto yy544; + goto yy128; +yy455: + YYDEBUG(455, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'N') goto yy545; + if (yych == 'n') goto yy545; + goto yy128; +yy456: + YYDEBUG(456, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'L') goto yy546; + if (yych == 'l') goto yy546; + goto yy128; +yy457: + YYDEBUG(457, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'N') goto yy547; + if (yych == 'n') goto yy547; + goto yy128; +yy458: + YYDEBUG(458, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'T') goto yy548; + if (yych == 't') goto yy548; + goto yy128; +yy459: + YYDEBUG(459, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'M') goto yy549; + if (yych == 'm') goto yy549; + goto yy128; +yy460: + YYDEBUG(460, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'A') goto yy550; + if (yych == 'a') goto yy550; + goto yy128; +yy461: + YYDEBUG(461, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'Y') goto yy551; + if (yych == 'y') goto yy551; + goto yy166; +yy462: + YYDEBUG(462, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'R') goto yy553; + if (yych == 'r') goto yy553; + goto yy166; +yy463: + YYDEBUG(463, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'E') goto yy558; + if (yych == 'e') goto yy558; + goto yy555; +yy464: + YYDEBUG(464, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'L') goto yy559; + if (yych == 'l') goto yy559; + goto yy166; +yy465: + YYDEBUG(465, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'T') goto yy472; + if (yych == 't') goto yy472; + goto yy166; +yy466: + YYDEBUG(466, *YYCURSOR); + ++YYCURSOR; + YYFILL(1); + yych = *YYCURSOR; +yy467: + YYDEBUG(467, *YYCURSOR); + if (yych <= 0x1F) { + if (yych == '\t') goto yy466; + goto yy166; + } else { + if (yych <= ' ') goto yy466; + if (yych != ')') goto yy166; + } + YYDEBUG(468, *YYCURSOR); + ++YYCURSOR; + YYDEBUG(469, *YYCURSOR); + yyleng = YYCURSOR - SCNG(yy_text); +#line 1340 "Zend/zend_language_scanner.l" + { + RETURN_TOKEN(T_INT_CAST); +} +#line 5224 "Zend/zend_language_scanner.c" +yy470: + YYDEBUG(470, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'G') goto yy560; + if (yych == 'g') goto yy560; + goto yy166; +yy471: + YYDEBUG(471, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'C') goto yy561; + if (yych == 'c') goto yy561; + goto yy166; +yy472: + YYDEBUG(472, *YYCURSOR); + ++YYCURSOR; + YYFILL(1); + yych = *YYCURSOR; + YYDEBUG(473, *YYCURSOR); + if (yych <= 0x1F) { + if (yych == '\t') goto yy472; + goto yy166; + } else { + if (yych <= ' ') goto yy472; + if (yych == ')') goto yy562; + goto yy166; + } +yy474: + YYDEBUG(474, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'N') goto yy564; + if (yych == 'n') goto yy564; + goto yy166; +yy475: + YYDEBUG(475, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'T') goto yy565; + if (yych == 't') goto yy565; + goto yy166; +yy476: + YYDEBUG(476, *YYCURSOR); ++YYCURSOR; YYFILL(3); yych = *YYCURSOR; -yy226: - YYDEBUG(226, *YYCURSOR); +yy477: + YYDEBUG(477, *YYCURSOR); if (yych <= 'Z') { if (yych <= '/') { - if (yych != '"') goto yy157; + if (yych == '"') goto yy567; + goto yy166; } else { - if (yych <= '9') goto yy225; - if (yych <= '@') goto yy157; - goto yy225; + if (yych <= '9') goto yy476; + if (yych <= '@') goto yy166; + goto yy476; } } else { if (yych <= '`') { - if (yych == '_') goto yy225; - goto yy157; + if (yych == '_') goto yy476; + goto yy166; } else { - if (yych <= 'z') goto yy225; - if (yych <= 0x7F) goto yy157; - goto yy225; + if (yych <= 'z') goto yy476; + if (yych <= 0x7F) goto yy166; + goto yy476; } } -yy227: - YYDEBUG(227, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == '\n') goto yy228; - if (yych == '\r') goto yy230; - goto yy157; -yy228: - YYDEBUG(228, *YYCURSOR); +yy478: + YYDEBUG(478, *YYCURSOR); ++YYCURSOR; -yy229: - YYDEBUG(229, *YYCURSOR); + YYFILL(3); + yych = *YYCURSOR; +yy479: + YYDEBUG(479, *YYCURSOR); + if (yych <= 'Z') { + if (yych <= '/') { + if (yych == '\'') goto yy567; + goto yy166; + } else { + if (yych <= '9') goto yy478; + if (yych <= '@') goto yy166; + goto yy478; + } + } else { + if (yych <= '`') { + if (yych == '_') goto yy478; + goto yy166; + } else { + if (yych <= 'z') goto yy478; + if (yych <= 0x7F) goto yy166; + goto yy478; + } + } +yy480: + YYDEBUG(480, *YYCURSOR); + ++YYCURSOR; +yy481: + YYDEBUG(481, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); #line 2077 "Zend/zend_language_scanner.l" { @@ -3637,3412 +5364,1861 @@ yy229: RETURN_TOKEN(T_START_HEREDOC); } -#line 3641 "Zend/zend_language_scanner.c" -yy230: - YYDEBUG(230, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == '\n') goto yy228; - goto yy229; -yy231: - YYDEBUG(231, *YYCURSOR); - ++YYCURSOR; - YYFILL(3); - yych = *YYCURSOR; -yy232: - YYDEBUG(232, *YYCURSOR); - if (yych <= 'Z') { - if (yych <= '/') { - if (yych == '\'') goto yy227; - goto yy157; - } else { - if (yych <= '9') goto yy231; - if (yych <= '@') goto yy157; - goto yy231; - } - } else { - if (yych <= '`') { - if (yych == '_') goto yy231; - goto yy157; - } else { - if (yych <= 'z') goto yy231; - if (yych <= 0x7F) goto yy157; - goto yy231; - } - } -yy233: - YYDEBUG(233, *YYCURSOR); - yych = *++YYCURSOR; - if (yych != '=') goto yy214; - YYDEBUG(234, *YYCURSOR); - ++YYCURSOR; - YYDEBUG(235, *YYCURSOR); - yyleng = YYCURSOR - SCNG(yy_text); -#line 1472 "Zend/zend_language_scanner.l" - { - RETURN_TOKEN(T_IS_NOT_IDENTICAL); -} -#line 3685 "Zend/zend_language_scanner.c" -yy236: - YYDEBUG(236, *YYCURSOR); - ++YYCURSOR; - YYDEBUG(237, *YYCURSOR); - yyleng = YYCURSOR - SCNG(yy_text); -#line 1496 "Zend/zend_language_scanner.l" - { - RETURN_TOKEN(T_PLUS_EQUAL); -} -#line 3695 "Zend/zend_language_scanner.c" -yy238: - YYDEBUG(238, *YYCURSOR); - ++YYCURSOR; - YYDEBUG(239, *YYCURSOR); - yyleng = YYCURSOR - SCNG(yy_text); -#line 1460 "Zend/zend_language_scanner.l" - { - RETURN_TOKEN(T_INC); -} -#line 3705 "Zend/zend_language_scanner.c" -yy240: - YYDEBUG(240, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'S') goto yy241; - if (yych != 's') goto yy150; -yy241: - YYDEBUG(241, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'T') goto yy242; - if (yych != 't') goto yy150; -yy242: - YYDEBUG(242, *YYCURSOR); - ++YYCURSOR; - if (yybm[0+(yych = *YYCURSOR)] & 4) { - goto yy149; - } - YYDEBUG(243, *YYCURSOR); - yyleng = YYCURSOR - SCNG(yy_text); -#line 1448 "Zend/zend_language_scanner.l" - { - RETURN_TOKEN(T_LIST); -} -#line 3728 "Zend/zend_language_scanner.c" -yy244: - YYDEBUG(244, *YYCURSOR); - ++YYCURSOR; - if ((yych = *YYCURSOR) == '=') goto yy248; - YYDEBUG(245, *YYCURSOR); - yyleng = YYCURSOR - SCNG(yy_text); -#line 1476 "Zend/zend_language_scanner.l" - { - RETURN_TOKEN(T_IS_EQUAL); -} -#line 3739 "Zend/zend_language_scanner.c" -yy246: - YYDEBUG(246, *YYCURSOR); - ++YYCURSOR; - YYDEBUG(247, *YYCURSOR); - yyleng = YYCURSOR - SCNG(yy_text); -#line 1444 "Zend/zend_language_scanner.l" - { - RETURN_TOKEN(T_DOUBLE_ARROW); -} -#line 3749 "Zend/zend_language_scanner.c" -yy248: - YYDEBUG(248, *YYCURSOR); - ++YYCURSOR; - YYDEBUG(249, *YYCURSOR); - yyleng = YYCURSOR - SCNG(yy_text); -#line 1468 "Zend/zend_language_scanner.l" - { - RETURN_TOKEN(T_IS_IDENTICAL); -} -#line 3759 "Zend/zend_language_scanner.c" -yy250: - YYDEBUG(250, *YYCURSOR); - yych = *++YYCURSOR; - YYDEBUG(-1, yych); - switch (yych) { - case 'C': - case 'c': goto yy252; - case 'D': - case 'd': goto yy257; - case 'F': - case 'f': goto yy254; - case 'H': - case 'h': goto yy251; - case 'L': - case 'l': goto yy256; - case 'M': - case 'm': goto yy255; - case 'N': - case 'n': goto yy258; - case 'T': - case 't': goto yy253; - default: goto yy150; - } -yy251: - YYDEBUG(251, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'A') goto yy319; - if (yych == 'a') goto yy319; - goto yy150; -yy252: - YYDEBUG(252, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'L') goto yy312; - if (yych == 'l') goto yy312; - goto yy150; -yy253: - YYDEBUG(253, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'R') goto yy305; - if (yych == 'r') goto yy305; - goto yy150; -yy254: - YYDEBUG(254, *YYCURSOR); - yych = *++YYCURSOR; - if (yych <= 'U') { - if (yych == 'I') goto yy289; - if (yych <= 'T') goto yy150; - goto yy290; - } else { - if (yych <= 'i') { - if (yych <= 'h') goto yy150; - goto yy289; - } else { - if (yych == 'u') goto yy290; - goto yy150; - } - } -yy255: - YYDEBUG(255, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'E') goto yy281; - if (yych == 'e') goto yy281; - goto yy150; -yy256: - YYDEBUG(256, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'I') goto yy275; - if (yych == 'i') goto yy275; - goto yy150; -yy257: - YYDEBUG(257, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'I') goto yy270; - if (yych == 'i') goto yy270; - goto yy150; -yy258: - YYDEBUG(258, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'A') goto yy259; - if (yych != 'a') goto yy150; -yy259: - YYDEBUG(259, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'M') goto yy260; - if (yych != 'm') goto yy150; -yy260: - YYDEBUG(260, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'E') goto yy261; - if (yych != 'e') goto yy150; -yy261: - YYDEBUG(261, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'S') goto yy262; - if (yych != 's') goto yy150; -yy262: - YYDEBUG(262, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'P') goto yy263; - if (yych != 'p') goto yy150; -yy263: - YYDEBUG(263, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'A') goto yy264; - if (yych != 'a') goto yy150; -yy264: - YYDEBUG(264, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'C') goto yy265; - if (yych != 'c') goto yy150; -yy265: - YYDEBUG(265, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'E') goto yy266; - if (yych != 'e') goto yy150; -yy266: - YYDEBUG(266, *YYCURSOR); - yych = *++YYCURSOR; - if (yych != '_') goto yy150; - YYDEBUG(267, *YYCURSOR); - yych = *++YYCURSOR; - if (yych != '_') goto yy150; - YYDEBUG(268, *YYCURSOR); - ++YYCURSOR; - if (yybm[0+(yych = *YYCURSOR)] & 4) { - goto yy149; - } - YYDEBUG(269, *YYCURSOR); - yyleng = YYCURSOR - SCNG(yy_text); -#line 1777 "Zend/zend_language_scanner.l" - { - RETURN_TOKEN(T_NS_C); -} -#line 3893 "Zend/zend_language_scanner.c" -yy270: - YYDEBUG(270, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'R') goto yy271; - if (yych != 'r') goto yy150; -yy271: - YYDEBUG(271, *YYCURSOR); - yych = *++YYCURSOR; - if (yych != '_') goto yy150; - YYDEBUG(272, *YYCURSOR); - yych = *++YYCURSOR; - if (yych != '_') goto yy150; - YYDEBUG(273, *YYCURSOR); - ++YYCURSOR; - if (yybm[0+(yych = *YYCURSOR)] & 4) { - goto yy149; - } - YYDEBUG(274, *YYCURSOR); - yyleng = YYCURSOR - SCNG(yy_text); -#line 1773 "Zend/zend_language_scanner.l" - { - RETURN_TOKEN(T_DIR); -} -#line 3917 "Zend/zend_language_scanner.c" -yy275: - YYDEBUG(275, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'N') goto yy276; - if (yych != 'n') goto yy150; -yy276: - YYDEBUG(276, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'E') goto yy277; - if (yych != 'e') goto yy150; -yy277: - YYDEBUG(277, *YYCURSOR); - yych = *++YYCURSOR; - if (yych != '_') goto yy150; - YYDEBUG(278, *YYCURSOR); - yych = *++YYCURSOR; - if (yych != '_') goto yy150; - YYDEBUG(279, *YYCURSOR); - ++YYCURSOR; - if (yybm[0+(yych = *YYCURSOR)] & 4) { - goto yy149; - } - YYDEBUG(280, *YYCURSOR); - yyleng = YYCURSOR - SCNG(yy_text); -#line 1765 "Zend/zend_language_scanner.l" - { - RETURN_TOKEN(T_LINE); -} -#line 3946 "Zend/zend_language_scanner.c" -yy281: - YYDEBUG(281, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'T') goto yy282; - if (yych != 't') goto yy150; -yy282: - YYDEBUG(282, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'H') goto yy283; - if (yych != 'h') goto yy150; -yy283: - YYDEBUG(283, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'O') goto yy284; - if (yych != 'o') goto yy150; -yy284: - YYDEBUG(284, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'D') goto yy285; - if (yych != 'd') goto yy150; -yy285: - YYDEBUG(285, *YYCURSOR); - yych = *++YYCURSOR; - if (yych != '_') goto yy150; - YYDEBUG(286, *YYCURSOR); - yych = *++YYCURSOR; - if (yych != '_') goto yy150; - YYDEBUG(287, *YYCURSOR); - ++YYCURSOR; - if (yybm[0+(yych = *YYCURSOR)] & 4) { - goto yy149; - } - YYDEBUG(288, *YYCURSOR); - yyleng = YYCURSOR - SCNG(yy_text); -#line 1761 "Zend/zend_language_scanner.l" - { - RETURN_TOKEN(T_METHOD_C); -} -#line 3985 "Zend/zend_language_scanner.c" -yy289: - YYDEBUG(289, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'L') goto yy300; - if (yych == 'l') goto yy300; - goto yy150; -yy290: - YYDEBUG(290, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'N') goto yy291; - if (yych != 'n') goto yy150; -yy291: - YYDEBUG(291, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'C') goto yy292; - if (yych != 'c') goto yy150; -yy292: - YYDEBUG(292, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'T') goto yy293; - if (yych != 't') goto yy150; -yy293: - YYDEBUG(293, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'I') goto yy294; - if (yych != 'i') goto yy150; -yy294: - YYDEBUG(294, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'O') goto yy295; - if (yych != 'o') goto yy150; -yy295: - YYDEBUG(295, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'N') goto yy296; - if (yych != 'n') goto yy150; -yy296: - YYDEBUG(296, *YYCURSOR); - yych = *++YYCURSOR; - if (yych != '_') goto yy150; - YYDEBUG(297, *YYCURSOR); - yych = *++YYCURSOR; - if (yych != '_') goto yy150; - YYDEBUG(298, *YYCURSOR); - ++YYCURSOR; - if (yybm[0+(yych = *YYCURSOR)] & 4) { - goto yy149; - } - YYDEBUG(299, *YYCURSOR); - yyleng = YYCURSOR - SCNG(yy_text); -#line 1757 "Zend/zend_language_scanner.l" - { - RETURN_TOKEN(T_FUNC_C); -} -#line 4040 "Zend/zend_language_scanner.c" -yy300: - YYDEBUG(300, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'E') goto yy301; - if (yych != 'e') goto yy150; -yy301: - YYDEBUG(301, *YYCURSOR); - yych = *++YYCURSOR; - if (yych != '_') goto yy150; - YYDEBUG(302, *YYCURSOR); - yych = *++YYCURSOR; - if (yych != '_') goto yy150; - YYDEBUG(303, *YYCURSOR); - ++YYCURSOR; - if (yybm[0+(yych = *YYCURSOR)] & 4) { - goto yy149; - } - YYDEBUG(304, *YYCURSOR); - yyleng = YYCURSOR - SCNG(yy_text); -#line 1769 "Zend/zend_language_scanner.l" - { - RETURN_TOKEN(T_FILE); -} -#line 4064 "Zend/zend_language_scanner.c" -yy305: - YYDEBUG(305, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'A') goto yy306; - if (yych != 'a') goto yy150; -yy306: - YYDEBUG(306, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'I') goto yy307; - if (yych != 'i') goto yy150; -yy307: - YYDEBUG(307, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'T') goto yy308; - if (yych != 't') goto yy150; -yy308: - YYDEBUG(308, *YYCURSOR); - yych = *++YYCURSOR; - if (yych != '_') goto yy150; - YYDEBUG(309, *YYCURSOR); - yych = *++YYCURSOR; - if (yych != '_') goto yy150; - YYDEBUG(310, *YYCURSOR); - ++YYCURSOR; - if (yybm[0+(yych = *YYCURSOR)] & 4) { - goto yy149; - } - YYDEBUG(311, *YYCURSOR); - yyleng = YYCURSOR - SCNG(yy_text); -#line 1753 "Zend/zend_language_scanner.l" - { - RETURN_TOKEN(T_TRAIT_C); -} -#line 4098 "Zend/zend_language_scanner.c" -yy312: - YYDEBUG(312, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'A') goto yy313; - if (yych != 'a') goto yy150; -yy313: - YYDEBUG(313, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'S') goto yy314; - if (yych != 's') goto yy150; -yy314: - YYDEBUG(314, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'S') goto yy315; - if (yych != 's') goto yy150; -yy315: - YYDEBUG(315, *YYCURSOR); - yych = *++YYCURSOR; - if (yych != '_') goto yy150; - YYDEBUG(316, *YYCURSOR); - yych = *++YYCURSOR; - if (yych != '_') goto yy150; - YYDEBUG(317, *YYCURSOR); - ++YYCURSOR; - if (yybm[0+(yych = *YYCURSOR)] & 4) { - goto yy149; - } - YYDEBUG(318, *YYCURSOR); - yyleng = YYCURSOR - SCNG(yy_text); -#line 1749 "Zend/zend_language_scanner.l" - { - RETURN_TOKEN(T_CLASS_C); -} -#line 4132 "Zend/zend_language_scanner.c" -yy319: - YYDEBUG(319, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'L') goto yy320; - if (yych != 'l') goto yy150; -yy320: - YYDEBUG(320, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'T') goto yy321; - if (yych != 't') goto yy150; -yy321: - YYDEBUG(321, *YYCURSOR); - yych = *++YYCURSOR; - if (yych != '_') goto yy150; - YYDEBUG(322, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'C') goto yy323; - if (yych != 'c') goto yy150; -yy323: - YYDEBUG(323, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'O') goto yy324; - if (yych != 'o') goto yy150; -yy324: - YYDEBUG(324, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'M') goto yy325; - if (yych != 'm') goto yy150; -yy325: - YYDEBUG(325, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'P') goto yy326; - if (yych != 'p') goto yy150; -yy326: - YYDEBUG(326, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'I') goto yy327; - if (yych != 'i') goto yy150; -yy327: - YYDEBUG(327, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'L') goto yy328; - if (yych != 'l') goto yy150; -yy328: - YYDEBUG(328, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'E') goto yy329; - if (yych != 'e') goto yy150; -yy329: - YYDEBUG(329, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'R') goto yy330; - if (yych != 'r') goto yy150; -yy330: - YYDEBUG(330, *YYCURSOR); - ++YYCURSOR; - if (yybm[0+(yych = *YYCURSOR)] & 4) { - goto yy149; - } - YYDEBUG(331, *YYCURSOR); - yyleng = YYCURSOR - SCNG(yy_text); -#line 1412 "Zend/zend_language_scanner.l" - { - RETURN_TOKEN(T_HALT_COMPILER); -} -#line 4198 "Zend/zend_language_scanner.c" -yy332: - YYDEBUG(332, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'S') goto yy336; - if (yych == 's') goto yy336; - goto yy150; -yy333: - YYDEBUG(333, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'E') goto yy334; - if (yych != 'e') goto yy150; -yy334: - YYDEBUG(334, *YYCURSOR); - ++YYCURSOR; - if (yybm[0+(yych = *YYCURSOR)] & 4) { - goto yy149; - } - YYDEBUG(335, *YYCURSOR); - yyleng = YYCURSOR - SCNG(yy_text); -#line 1392 "Zend/zend_language_scanner.l" - { - RETURN_TOKEN(T_USE); -} -#line 4222 "Zend/zend_language_scanner.c" -yy336: - YYDEBUG(336, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'E') goto yy337; - if (yych != 'e') goto yy150; -yy337: - YYDEBUG(337, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'T') goto yy338; - if (yych != 't') goto yy150; -yy338: - YYDEBUG(338, *YYCURSOR); - ++YYCURSOR; - if (yybm[0+(yych = *YYCURSOR)] & 4) { - goto yy149; - } - YYDEBUG(339, *YYCURSOR); - yyleng = YYCURSOR - SCNG(yy_text); -#line 1440 "Zend/zend_language_scanner.l" - { - RETURN_TOKEN(T_UNSET); -} -#line 4245 "Zend/zend_language_scanner.c" -yy340: - YYDEBUG(340, *YYCURSOR); - ++YYCURSOR; - YYFILL(7); - yych = *YYCURSOR; -yy341: - YYDEBUG(341, *YYCURSOR); - if (yych <= 'S') { - if (yych <= 'D') { - if (yych <= ' ') { - if (yych == '\t') goto yy340; - if (yych <= 0x1F) goto yy157; - goto yy340; - } else { - if (yych <= 'A') { - if (yych <= '@') goto yy157; - goto yy345; - } else { - if (yych <= 'B') goto yy343; - if (yych <= 'C') goto yy157; - goto yy348; - } - } - } else { - if (yych <= 'I') { - if (yych == 'F') goto yy349; - if (yych <= 'H') goto yy157; - goto yy350; - } else { - if (yych <= 'O') { - if (yych <= 'N') goto yy157; - goto yy344; - } else { - if (yych <= 'Q') goto yy157; - if (yych <= 'R') goto yy347; - goto yy346; - } - } - } - } else { - if (yych <= 'f') { - if (yych <= 'a') { - if (yych == 'U') goto yy342; - if (yych <= '`') goto yy157; - goto yy345; - } else { - if (yych <= 'c') { - if (yych <= 'b') goto yy343; - goto yy157; - } else { - if (yych <= 'd') goto yy348; - if (yych <= 'e') goto yy157; - goto yy349; - } - } - } else { - if (yych <= 'q') { - if (yych <= 'i') { - if (yych <= 'h') goto yy157; - goto yy350; - } else { - if (yych == 'o') goto yy344; - goto yy157; - } - } else { - if (yych <= 's') { - if (yych <= 'r') goto yy347; - goto yy346; - } else { - if (yych != 'u') goto yy157; - } - } - } - } -yy342: - YYDEBUG(342, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'N') goto yy409; - if (yych == 'n') goto yy409; - goto yy157; -yy343: - YYDEBUG(343, *YYCURSOR); - yych = *++YYCURSOR; - if (yych <= 'O') { - if (yych == 'I') goto yy396; - if (yych <= 'N') goto yy157; - goto yy397; - } else { - if (yych <= 'i') { - if (yych <= 'h') goto yy157; - goto yy396; - } else { - if (yych == 'o') goto yy397; - goto yy157; - } - } -yy344: - YYDEBUG(344, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'B') goto yy388; - if (yych == 'b') goto yy388; - goto yy157; -yy345: - YYDEBUG(345, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'R') goto yy381; - if (yych == 'r') goto yy381; - goto yy157; -yy346: - YYDEBUG(346, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'T') goto yy373; - if (yych == 't') goto yy373; - goto yy157; -yy347: - YYDEBUG(347, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'E') goto yy371; - if (yych == 'e') goto yy371; - goto yy157; -yy348: - YYDEBUG(348, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'O') goto yy367; - if (yych == 'o') goto yy367; - goto yy157; -yy349: - YYDEBUG(349, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'L') goto yy360; - if (yych == 'l') goto yy360; - goto yy157; -yy350: - YYDEBUG(350, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'N') goto yy351; - if (yych != 'n') goto yy157; -yy351: - YYDEBUG(351, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'T') goto yy352; - if (yych != 't') goto yy157; -yy352: - YYDEBUG(352, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'E') goto yy353; - if (yych != 'e') goto yy355; -yy353: - YYDEBUG(353, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'G') goto yy358; - if (yych == 'g') goto yy358; - goto yy157; -yy354: - YYDEBUG(354, *YYCURSOR); - ++YYCURSOR; - YYFILL(1); - yych = *YYCURSOR; -yy355: - YYDEBUG(355, *YYCURSOR); - if (yych <= 0x1F) { - if (yych == '\t') goto yy354; - goto yy157; - } else { - if (yych <= ' ') goto yy354; - if (yych != ')') goto yy157; - } - YYDEBUG(356, *YYCURSOR); - ++YYCURSOR; - YYDEBUG(357, *YYCURSOR); - yyleng = YYCURSOR - SCNG(yy_text); -#line 1340 "Zend/zend_language_scanner.l" - { - RETURN_TOKEN(T_INT_CAST); -} -#line 4421 "Zend/zend_language_scanner.c" -yy358: - YYDEBUG(358, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'E') goto yy359; - if (yych != 'e') goto yy157; -yy359: - YYDEBUG(359, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'R') goto yy354; - if (yych == 'r') goto yy354; - goto yy157; -yy360: - YYDEBUG(360, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'O') goto yy361; - if (yych != 'o') goto yy157; -yy361: - YYDEBUG(361, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'A') goto yy362; - if (yych != 'a') goto yy157; -yy362: - YYDEBUG(362, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'T') goto yy363; - if (yych != 't') goto yy157; -yy363: - YYDEBUG(363, *YYCURSOR); - ++YYCURSOR; - YYFILL(1); - yych = *YYCURSOR; - YYDEBUG(364, *YYCURSOR); - if (yych <= 0x1F) { - if (yych == '\t') goto yy363; - goto yy157; - } else { - if (yych <= ' ') goto yy363; - if (yych != ')') goto yy157; - } - YYDEBUG(365, *YYCURSOR); - ++YYCURSOR; - YYDEBUG(366, *YYCURSOR); - yyleng = YYCURSOR - SCNG(yy_text); -#line 1344 "Zend/zend_language_scanner.l" - { - RETURN_TOKEN(T_DOUBLE_CAST); -} -#line 4469 "Zend/zend_language_scanner.c" -yy367: - YYDEBUG(367, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'U') goto yy368; - if (yych != 'u') goto yy157; -yy368: - YYDEBUG(368, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'B') goto yy369; - if (yych != 'b') goto yy157; -yy369: - YYDEBUG(369, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'L') goto yy370; - if (yych != 'l') goto yy157; -yy370: - YYDEBUG(370, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'E') goto yy363; - if (yych == 'e') goto yy363; - goto yy157; -yy371: - YYDEBUG(371, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'A') goto yy372; - if (yych != 'a') goto yy157; -yy372: - YYDEBUG(372, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'L') goto yy363; - if (yych == 'l') goto yy363; - goto yy157; -yy373: - YYDEBUG(373, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'R') goto yy374; - if (yych != 'r') goto yy157; -yy374: - YYDEBUG(374, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'I') goto yy375; - if (yych != 'i') goto yy157; -yy375: - YYDEBUG(375, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'N') goto yy376; - if (yych != 'n') goto yy157; -yy376: - YYDEBUG(376, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'G') goto yy377; - if (yych != 'g') goto yy157; -yy377: - YYDEBUG(377, *YYCURSOR); - ++YYCURSOR; - YYFILL(1); - yych = *YYCURSOR; - YYDEBUG(378, *YYCURSOR); - if (yych <= 0x1F) { - if (yych == '\t') goto yy377; - goto yy157; - } else { - if (yych <= ' ') goto yy377; - if (yych != ')') goto yy157; - } - YYDEBUG(379, *YYCURSOR); - ++YYCURSOR; - YYDEBUG(380, *YYCURSOR); - yyleng = YYCURSOR - SCNG(yy_text); -#line 1348 "Zend/zend_language_scanner.l" - { - RETURN_TOKEN(T_STRING_CAST); -} -#line 4543 "Zend/zend_language_scanner.c" -yy381: - YYDEBUG(381, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'R') goto yy382; - if (yych != 'r') goto yy157; -yy382: - YYDEBUG(382, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'A') goto yy383; - if (yych != 'a') goto yy157; -yy383: - YYDEBUG(383, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'Y') goto yy384; - if (yych != 'y') goto yy157; -yy384: - YYDEBUG(384, *YYCURSOR); - ++YYCURSOR; - YYFILL(1); - yych = *YYCURSOR; - YYDEBUG(385, *YYCURSOR); - if (yych <= 0x1F) { - if (yych == '\t') goto yy384; - goto yy157; - } else { - if (yych <= ' ') goto yy384; - if (yych != ')') goto yy157; - } - YYDEBUG(386, *YYCURSOR); - ++YYCURSOR; - YYDEBUG(387, *YYCURSOR); - yyleng = YYCURSOR - SCNG(yy_text); -#line 1352 "Zend/zend_language_scanner.l" - { - RETURN_TOKEN(T_ARRAY_CAST); -} -#line 4580 "Zend/zend_language_scanner.c" -yy388: - YYDEBUG(388, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'J') goto yy389; - if (yych != 'j') goto yy157; -yy389: - YYDEBUG(389, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'E') goto yy390; - if (yych != 'e') goto yy157; -yy390: - YYDEBUG(390, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'C') goto yy391; - if (yych != 'c') goto yy157; -yy391: - YYDEBUG(391, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'T') goto yy392; - if (yych != 't') goto yy157; -yy392: - YYDEBUG(392, *YYCURSOR); - ++YYCURSOR; - YYFILL(1); - yych = *YYCURSOR; - YYDEBUG(393, *YYCURSOR); - if (yych <= 0x1F) { - if (yych == '\t') goto yy392; - goto yy157; - } else { - if (yych <= ' ') goto yy392; - if (yych != ')') goto yy157; - } - YYDEBUG(394, *YYCURSOR); - ++YYCURSOR; - YYDEBUG(395, *YYCURSOR); - yyleng = YYCURSOR - SCNG(yy_text); -#line 1356 "Zend/zend_language_scanner.l" - { - RETURN_TOKEN(T_OBJECT_CAST); -} -#line 4622 "Zend/zend_language_scanner.c" -yy396: - YYDEBUG(396, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'N') goto yy406; - if (yych == 'n') goto yy406; - goto yy157; -yy397: - YYDEBUG(397, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'O') goto yy398; - if (yych != 'o') goto yy157; -yy398: - YYDEBUG(398, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'L') goto yy399; - if (yych != 'l') goto yy157; -yy399: - YYDEBUG(399, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'E') goto yy404; - if (yych == 'e') goto yy404; - goto yy401; -yy400: - YYDEBUG(400, *YYCURSOR); - ++YYCURSOR; - YYFILL(1); - yych = *YYCURSOR; -yy401: - YYDEBUG(401, *YYCURSOR); - if (yych <= 0x1F) { - if (yych == '\t') goto yy400; - goto yy157; - } else { - if (yych <= ' ') goto yy400; - if (yych != ')') goto yy157; - } - YYDEBUG(402, *YYCURSOR); - ++YYCURSOR; - YYDEBUG(403, *YYCURSOR); - yyleng = YYCURSOR - SCNG(yy_text); -#line 1360 "Zend/zend_language_scanner.l" - { - RETURN_TOKEN(T_BOOL_CAST); -} -#line 4667 "Zend/zend_language_scanner.c" -yy404: - YYDEBUG(404, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'A') goto yy405; - if (yych != 'a') goto yy157; -yy405: - YYDEBUG(405, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'N') goto yy400; - if (yych == 'n') goto yy400; - goto yy157; -yy406: - YYDEBUG(406, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'A') goto yy407; - if (yych != 'a') goto yy157; -yy407: - YYDEBUG(407, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'R') goto yy408; - if (yych != 'r') goto yy157; -yy408: - YYDEBUG(408, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'Y') goto yy377; - if (yych == 'y') goto yy377; - goto yy157; -yy409: - YYDEBUG(409, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'S') goto yy410; - if (yych != 's') goto yy157; -yy410: - YYDEBUG(410, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'E') goto yy411; - if (yych != 'e') goto yy157; -yy411: - YYDEBUG(411, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'T') goto yy412; - if (yych != 't') goto yy157; -yy412: - YYDEBUG(412, *YYCURSOR); - ++YYCURSOR; - YYFILL(1); - yych = *YYCURSOR; - YYDEBUG(413, *YYCURSOR); - if (yych <= 0x1F) { - if (yych == '\t') goto yy412; - goto yy157; - } else { - if (yych <= ' ') goto yy412; - if (yych != ')') goto yy157; - } - YYDEBUG(414, *YYCURSOR); - ++YYCURSOR; - YYDEBUG(415, *YYCURSOR); - yyleng = YYCURSOR - SCNG(yy_text); -#line 1364 "Zend/zend_language_scanner.l" - { - RETURN_TOKEN(T_UNSET_CAST); -} -#line 4731 "Zend/zend_language_scanner.c" -yy416: - YYDEBUG(416, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'R') goto yy417; - if (yych != 'r') goto yy150; -yy417: - YYDEBUG(417, *YYCURSOR); - ++YYCURSOR; - if (yybm[0+(yych = *YYCURSOR)] & 4) { - goto yy149; - } - YYDEBUG(418, *YYCURSOR); - yyleng = YYCURSOR - SCNG(yy_text); -#line 1336 "Zend/zend_language_scanner.l" - { - RETURN_TOKEN(T_VAR); -} -#line 4749 "Zend/zend_language_scanner.c" -yy419: - YYDEBUG(419, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'M') goto yy423; - if (yych == 'm') goto yy423; - goto yy150; -yy420: - YYDEBUG(420, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'W') goto yy421; - if (yych != 'w') goto yy150; -yy421: - YYDEBUG(421, *YYCURSOR); - ++YYCURSOR; - if (yybm[0+(yych = *YYCURSOR)] & 4) { - goto yy149; - } - YYDEBUG(422, *YYCURSOR); - yyleng = YYCURSOR - SCNG(yy_text); -#line 1328 "Zend/zend_language_scanner.l" - { - RETURN_TOKEN(T_NEW); -} -#line 4773 "Zend/zend_language_scanner.c" -yy423: - YYDEBUG(423, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'E') goto yy424; - if (yych != 'e') goto yy150; -yy424: - YYDEBUG(424, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'S') goto yy425; - if (yych != 's') goto yy150; -yy425: - YYDEBUG(425, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'P') goto yy426; - if (yych != 'p') goto yy150; -yy426: - YYDEBUG(426, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'A') goto yy427; - if (yych != 'a') goto yy150; -yy427: - YYDEBUG(427, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'C') goto yy428; - if (yych != 'c') goto yy150; -yy428: - YYDEBUG(428, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'E') goto yy429; - if (yych != 'e') goto yy150; -yy429: - YYDEBUG(429, *YYCURSOR); - ++YYCURSOR; - if (yybm[0+(yych = *YYCURSOR)] & 4) { - goto yy149; - } - YYDEBUG(430, *YYCURSOR); - yyleng = YYCURSOR - SCNG(yy_text); -#line 1388 "Zend/zend_language_scanner.l" - { - RETURN_TOKEN(T_NAMESPACE); -} -#line 4816 "Zend/zend_language_scanner.c" -yy431: - YYDEBUG(431, *YYCURSOR); - ++YYCURSOR; - if ((yych = *YYCURSOR) == '\n') goto yy435; - if (yych == '\r') goto yy436; -yy432: - YYDEBUG(432, *YYCURSOR); - yyleng = YYCURSOR - SCNG(yy_text); -#line 1960 "Zend/zend_language_scanner.l" - { - BEGIN(INITIAL); - RETURN_TOKEN(T_CLOSE_TAG); /* implicit ';' at php-end tag */ -} -#line 4830 "Zend/zend_language_scanner.c" -yy433: - YYDEBUG(433, *YYCURSOR); - ++YYCURSOR; - YYDEBUG(434, *YYCURSOR); - yyleng = YYCURSOR - SCNG(yy_text); -#line 1324 "Zend/zend_language_scanner.l" - { - RETURN_TOKEN(T_COALESCE); -} -#line 4840 "Zend/zend_language_scanner.c" -yy435: - YYDEBUG(435, *YYCURSOR); - yych = *++YYCURSOR; - goto yy432; -yy436: - YYDEBUG(436, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == '\n') goto yy435; - goto yy432; -yy437: - YYDEBUG(437, *YYCURSOR); - yyaccept = 3; - YYMARKER = ++YYCURSOR; - YYFILL(3); - yych = *YYCURSOR; - YYDEBUG(438, *YYCURSOR); - if (yych <= 'D') { - if (yych <= '/') goto yy153; - if (yych <= '9') goto yy437; - goto yy153; - } else { - if (yych <= 'E') goto yy156; - if (yych == 'e') goto yy156; - goto yy153; - } -yy439: - YYDEBUG(439, *YYCURSOR); - ++YYCURSOR; - YYDEBUG(440, *YYCURSOR); - yyleng = YYCURSOR - SCNG(yy_text); -#line 1520 "Zend/zend_language_scanner.l" - { - RETURN_TOKEN(T_CONCAT_EQUAL); -} -#line 4875 "Zend/zend_language_scanner.c" -yy441: - YYDEBUG(441, *YYCURSOR); - yych = *++YYCURSOR; - if (yych != '.') goto yy157; - YYDEBUG(442, *YYCURSOR); - ++YYCURSOR; - YYDEBUG(443, *YYCURSOR); - yyleng = YYCURSOR - SCNG(yy_text); -#line 1320 "Zend/zend_language_scanner.l" - { - RETURN_TOKEN(T_ELLIPSIS); -} -#line 4888 "Zend/zend_language_scanner.c" -yy444: - YYDEBUG(444, *YYCURSOR); - ++YYCURSOR; - YYDEBUG(445, *YYCURSOR); - yyleng = YYCURSOR - SCNG(yy_text); -#line 1312 "Zend/zend_language_scanner.l" - { - RETURN_TOKEN(T_PAAMAYIM_NEKUDOTAYIM); -} -#line 4898 "Zend/zend_language_scanner.c" -yy446: - YYDEBUG(446, *YYCURSOR); - ++YYCURSOR; - YYFILL(1); - yych = *YYCURSOR; -yy447: - YYDEBUG(447, *YYCURSOR); - if (yych <= '\f') { - if (yych <= 0x08) goto yy104; - if (yych <= '\n') goto yy446; - goto yy104; - } else { - if (yych <= '\r') goto yy446; - if (yych == ' ') goto yy446; - goto yy104; - } -yy448: - YYDEBUG(448, *YYCURSOR); - ++YYCURSOR; - YYDEBUG(449, *YYCURSOR); - yyleng = YYCURSOR - SCNG(yy_text); -#line 1500 "Zend/zend_language_scanner.l" - { - RETURN_TOKEN(T_MINUS_EQUAL); -} -#line 4924 "Zend/zend_language_scanner.c" -yy450: - YYDEBUG(450, *YYCURSOR); - ++YYCURSOR; - YYDEBUG(451, *YYCURSOR); - yyleng = YYCURSOR - SCNG(yy_text); -#line 1464 "Zend/zend_language_scanner.l" - { - RETURN_TOKEN(T_DEC); -} -#line 4934 "Zend/zend_language_scanner.c" -yy452: - YYDEBUG(452, *YYCURSOR); - ++YYCURSOR; - YYDEBUG(453, *YYCURSOR); - yyleng = YYCURSOR - SCNG(yy_text); -#line 1286 "Zend/zend_language_scanner.l" - { - yy_push_state(ST_LOOKING_FOR_PROPERTY); - RETURN_TOKEN(T_OBJECT_OPERATOR); -} -#line 4945 "Zend/zend_language_scanner.c" -yy454: - YYDEBUG(454, *YYCURSOR); - yych = *++YYCURSOR; - if (yych <= 'O') { - if (yych == 'I') goto yy461; - if (yych <= 'N') goto yy150; - goto yy462; - } else { - if (yych <= 'i') { - if (yych <= 'h') goto yy150; - goto yy461; - } else { - if (yych == 'o') goto yy462; - goto yy150; - } - } -yy455: - YYDEBUG(455, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'B') goto yy456; - if (yych != 'b') goto yy150; -yy456: - YYDEBUG(456, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'L') goto yy457; - if (yych != 'l') goto yy150; -yy457: - YYDEBUG(457, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'I') goto yy458; - if (yych != 'i') goto yy150; -yy458: - YYDEBUG(458, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'C') goto yy459; - if (yych != 'c') goto yy150; -yy459: - YYDEBUG(459, *YYCURSOR); - ++YYCURSOR; - if (yybm[0+(yych = *YYCURSOR)] & 4) { - goto yy149; - } - YYDEBUG(460, *YYCURSOR); - yyleng = YYCURSOR - SCNG(yy_text); -#line 1436 "Zend/zend_language_scanner.l" - { - RETURN_TOKEN(T_PUBLIC); -} -#line 4994 "Zend/zend_language_scanner.c" -yy461: - YYDEBUG(461, *YYCURSOR); - yych = *++YYCURSOR; - if (yych <= 'V') { - if (yych == 'N') goto yy470; - if (yych <= 'U') goto yy150; - goto yy471; - } else { - if (yych <= 'n') { - if (yych <= 'm') goto yy150; - goto yy470; - } else { - if (yych == 'v') goto yy471; - goto yy150; - } - } -yy462: - YYDEBUG(462, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'T') goto yy463; - if (yych != 't') goto yy150; -yy463: - YYDEBUG(463, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'E') goto yy464; - if (yych != 'e') goto yy150; -yy464: - YYDEBUG(464, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'C') goto yy465; - if (yych != 'c') goto yy150; -yy465: - YYDEBUG(465, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'T') goto yy466; - if (yych != 't') goto yy150; -yy466: - YYDEBUG(466, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'E') goto yy467; - if (yych != 'e') goto yy150; -yy467: - YYDEBUG(467, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'D') goto yy468; - if (yych != 'd') goto yy150; -yy468: - YYDEBUG(468, *YYCURSOR); - ++YYCURSOR; - if (yybm[0+(yych = *YYCURSOR)] & 4) { - goto yy149; - } - YYDEBUG(469, *YYCURSOR); - yyleng = YYCURSOR - SCNG(yy_text); -#line 1432 "Zend/zend_language_scanner.l" - { - RETURN_TOKEN(T_PROTECTED); -} -#line 5053 "Zend/zend_language_scanner.c" -yy470: - YYDEBUG(470, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'T') goto yy476; - if (yych == 't') goto yy476; - goto yy150; -yy471: - YYDEBUG(471, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'A') goto yy472; - if (yych != 'a') goto yy150; -yy472: - YYDEBUG(472, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'T') goto yy473; - if (yych != 't') goto yy150; -yy473: - YYDEBUG(473, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'E') goto yy474; - if (yych != 'e') goto yy150; -yy474: - YYDEBUG(474, *YYCURSOR); - ++YYCURSOR; - if (yybm[0+(yych = *YYCURSOR)] & 4) { - goto yy149; - } - YYDEBUG(475, *YYCURSOR); - yyleng = YYCURSOR - SCNG(yy_text); -#line 1428 "Zend/zend_language_scanner.l" - { - RETURN_TOKEN(T_PRIVATE); -} -#line 5087 "Zend/zend_language_scanner.c" -yy476: - YYDEBUG(476, *YYCURSOR); - ++YYCURSOR; - if (yybm[0+(yych = *YYCURSOR)] & 4) { - goto yy149; - } - YYDEBUG(477, *YYCURSOR); - yyleng = YYCURSOR - SCNG(yy_text); -#line 1262 "Zend/zend_language_scanner.l" - { - RETURN_TOKEN(T_PRINT); -} -#line 5100 "Zend/zend_language_scanner.c" -yy478: - YYDEBUG(478, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'O') goto yy483; - if (yych == 'o') goto yy483; - goto yy150; -yy479: - YYDEBUG(479, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'T') goto yy480; - if (yych != 't') goto yy150; -yy480: - YYDEBUG(480, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'O') goto yy481; - if (yych != 'o') goto yy150; -yy481: - YYDEBUG(481, *YYCURSOR); - ++YYCURSOR; - if (yybm[0+(yych = *YYCURSOR)] & 4) { - goto yy149; - } +#line 5368 "Zend/zend_language_scanner.c" +yy482: YYDEBUG(482, *YYCURSOR); - yyleng = YYCURSOR - SCNG(yy_text); -#line 1254 "Zend/zend_language_scanner.l" - { - RETURN_TOKEN(T_GOTO); -} -#line 5129 "Zend/zend_language_scanner.c" + yych = *++YYCURSOR; + if (yych == '\n') goto yy480; + goto yy481; yy483: YYDEBUG(483, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'B') goto yy484; - if (yych != 'b') goto yy150; + if (yych == 'A') goto yy568; + if (yych == 'a') goto yy568; + goto yy128; yy484: YYDEBUG(484, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'A') goto yy485; - if (yych != 'a') goto yy150; -yy485: + ++YYCURSOR; + if (yybm[0+(yych = *YYCURSOR)] & 16) { + goto yy127; + } YYDEBUG(485, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'L') goto yy486; - if (yych != 'l') goto yy150; -yy486: - YYDEBUG(486, *YYCURSOR); - ++YYCURSOR; - if (yybm[0+(yych = *YYCURSOR)] & 4) { - goto yy149; - } - YYDEBUG(487, *YYCURSOR); - yyleng = YYCURSOR - SCNG(yy_text); -#line 1400 "Zend/zend_language_scanner.l" - { - RETURN_TOKEN(T_GLOBAL); -} -#line 5157 "Zend/zend_language_scanner.c" -yy488: - YYDEBUG(488, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == '<') goto yy496; - goto yy157; -yy489: - YYDEBUG(489, *YYCURSOR); - yych = *++YYCURSOR; - goto yy144; -yy490: - YYDEBUG(490, *YYCURSOR); - yych = *++YYCURSOR; - goto yy142; -yy491: - YYDEBUG(491, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'E') goto yy492; - if (yych != 'e') goto yy150; -yy492: - YYDEBUG(492, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'A') goto yy493; - if (yych != 'a') goto yy150; -yy493: - YYDEBUG(493, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'K') goto yy494; - if (yych != 'k') goto yy150; -yy494: - YYDEBUG(494, *YYCURSOR); - ++YYCURSOR; - if (yybm[0+(yych = *YYCURSOR)] & 4) { - goto yy149; - } - YYDEBUG(495, *YYCURSOR); - yyleng = YYCURSOR - SCNG(yy_text); -#line 1246 "Zend/zend_language_scanner.l" - { - RETURN_TOKEN(T_BREAK); -} -#line 5198 "Zend/zend_language_scanner.c" -yy496: - YYDEBUG(496, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == '<') goto yy219; - goto yy157; -yy497: - YYDEBUG(497, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'A') goto yy504; - if (yych == 'a') goto yy504; - goto yy150; -yy498: - YYDEBUG(498, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'I') goto yy499; - if (yych != 'i') goto yy150; -yy499: - YYDEBUG(499, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'T') goto yy500; - if (yych != 't') goto yy150; -yy500: - YYDEBUG(500, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'C') goto yy501; - if (yych != 'c') goto yy150; -yy501: - YYDEBUG(501, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'H') goto yy502; - if (yych != 'h') goto yy150; -yy502: - YYDEBUG(502, *YYCURSOR); - ++YYCURSOR; - if (yybm[0+(yych = *YYCURSOR)] & 4) { - goto yy149; - } - YYDEBUG(503, *YYCURSOR); - yyleng = YYCURSOR - SCNG(yy_text); -#line 1230 "Zend/zend_language_scanner.l" - { - RETURN_TOKEN(T_SWITCH); -} -#line 5242 "Zend/zend_language_scanner.c" -yy504: - YYDEBUG(504, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'T') goto yy505; - if (yych != 't') goto yy150; -yy505: - YYDEBUG(505, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'I') goto yy506; - if (yych != 'i') goto yy150; -yy506: - YYDEBUG(506, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'C') goto yy507; - if (yych != 'c') goto yy150; -yy507: - YYDEBUG(507, *YYCURSOR); - ++YYCURSOR; - if (yybm[0+(yych = *YYCURSOR)] & 4) { - goto yy149; - } - YYDEBUG(508, *YYCURSOR); - yyleng = YYCURSOR - SCNG(yy_text); -#line 1416 "Zend/zend_language_scanner.l" - { - RETURN_TOKEN(T_STATIC); -} -#line 5270 "Zend/zend_language_scanner.c" -yy509: - YYDEBUG(509, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'S') goto yy520; - if (yych == 's') goto yy520; - goto yy150; -yy510: - YYDEBUG(510, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'D') goto yy518; - if (yych == 'd') goto yy518; - goto yy150; -yy511: - YYDEBUG(511, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'R') goto yy514; - if (yych == 'r') goto yy514; - goto yy150; -yy512: - YYDEBUG(512, *YYCURSOR); - ++YYCURSOR; - if (yybm[0+(yych = *YYCURSOR)] & 4) { - goto yy149; - } - YYDEBUG(513, *YYCURSOR); - yyleng = YYCURSOR - SCNG(yy_text); -#line 1226 "Zend/zend_language_scanner.l" - { - RETURN_TOKEN(T_AS); -} -#line 5301 "Zend/zend_language_scanner.c" -yy514: - YYDEBUG(514, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'A') goto yy515; - if (yych != 'a') goto yy150; -yy515: - YYDEBUG(515, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'Y') goto yy516; - if (yych != 'y') goto yy150; -yy516: - YYDEBUG(516, *YYCURSOR); - ++YYCURSOR; - if (yybm[0+(yych = *YYCURSOR)] & 4) { - goto yy149; - } - YYDEBUG(517, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); #line 1452 "Zend/zend_language_scanner.l" { RETURN_TOKEN(T_ARRAY); } -#line 5324 "Zend/zend_language_scanner.c" -yy518: - YYDEBUG(518, *YYCURSOR); +#line 5392 "Zend/zend_language_scanner.c" +yy486: + YYDEBUG(486, *YYCURSOR); ++YYCURSOR; - if (yybm[0+(yych = *YYCURSOR)] & 4) { - goto yy149; + if (yybm[0+(yych = *YYCURSOR)] & 16) { + goto yy127; } - YYDEBUG(519, *YYCURSOR); + YYDEBUG(487, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1560 "Zend/zend_language_scanner.l" +#line 1246 "Zend/zend_language_scanner.l" { - RETURN_TOKEN(T_LOGICAL_AND); + RETURN_TOKEN(T_BREAK); } -#line 5337 "Zend/zend_language_scanner.c" -yy520: - YYDEBUG(520, *YYCURSOR); +#line 5405 "Zend/zend_language_scanner.c" +yy488: + YYDEBUG(488, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'T') goto yy521; - if (yych != 't') goto yy150; -yy521: - YYDEBUG(521, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'R') goto yy522; - if (yych != 'r') goto yy150; -yy522: - YYDEBUG(522, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'A') goto yy523; - if (yych != 'a') goto yy150; -yy523: - YYDEBUG(523, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'C') goto yy524; - if (yych != 'c') goto yy150; -yy524: - YYDEBUG(524, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'T') goto yy525; - if (yych != 't') goto yy150; -yy525: - YYDEBUG(525, *YYCURSOR); + if (yych == 'B') goto yy569; + if (yych == 'b') goto yy569; + goto yy128; +yy489: + YYDEBUG(489, *YYCURSOR); ++YYCURSOR; - if (yybm[0+(yych = *YYCURSOR)] & 4) { - goto yy149; + if (yybm[0+(yych = *YYCURSOR)] & 16) { + goto yy127; } - YYDEBUG(526, *YYCURSOR); + YYDEBUG(490, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1420 "Zend/zend_language_scanner.l" +#line 1158 "Zend/zend_language_scanner.l" { - RETURN_TOKEN(T_ABSTRACT); + RETURN_TOKEN(T_CATCH); } -#line 5375 "Zend/zend_language_scanner.c" -yy527: - YYDEBUG(527, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'I') goto yy528; - if (yych != 'i') goto yy150; -yy528: - YYDEBUG(528, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'L') goto yy529; - if (yych != 'l') goto yy150; -yy529: - YYDEBUG(529, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'E') goto yy530; - if (yych != 'e') goto yy150; -yy530: - YYDEBUG(530, *YYCURSOR); +#line 5424 "Zend/zend_language_scanner.c" +yy491: + YYDEBUG(491, *YYCURSOR); ++YYCURSOR; - if (yybm[0+(yych = *YYCURSOR)] & 4) { - goto yy149; + if (yybm[0+(yych = *YYCURSOR)] & 16) { + goto yy127; } - YYDEBUG(531, *YYCURSOR); + YYDEBUG(492, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1186 "Zend/zend_language_scanner.l" +#line 1266 "Zend/zend_language_scanner.l" { - RETURN_TOKEN(T_WHILE); + RETURN_TOKEN(T_CLASS); } -#line 5403 "Zend/zend_language_scanner.c" -yy532: - YYDEBUG(532, *YYCURSOR); +#line 5437 "Zend/zend_language_scanner.c" +yy493: + YYDEBUG(493, *YYCURSOR); ++YYCURSOR; - if (yybm[0+(yych = *YYCURSOR)] & 4) { - goto yy149; + if (yybm[0+(yych = *YYCURSOR)] & 16) { + goto yy127; } - YYDEBUG(533, *YYCURSOR); + YYDEBUG(494, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1170 "Zend/zend_language_scanner.l" +#line 1332 "Zend/zend_language_scanner.l" { - RETURN_TOKEN(T_IF); + RETURN_TOKEN(T_CLONE); } -#line 5416 "Zend/zend_language_scanner.c" -yy534: - YYDEBUG(534, *YYCURSOR); +#line 5450 "Zend/zend_language_scanner.c" +yy495: + YYDEBUG(495, *YYCURSOR); + ++YYCURSOR; + if (yybm[0+(yych = *YYCURSOR)] & 16) { + goto yy127; + } + YYDEBUG(496, *YYCURSOR); + yyleng = YYCURSOR - SCNG(yy_text); +#line 1137 "Zend/zend_language_scanner.l" + { + RETURN_TOKEN(T_CONST); +} +#line 5463 "Zend/zend_language_scanner.c" +yy497: + YYDEBUG(497, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'P') goto yy576; - if (yych == 'p') goto yy576; - goto yy150; -yy535: - YYDEBUG(535, *YYCURSOR); + if (yych == 'N') goto yy570; + if (yych == 'n') goto yy570; + goto yy128; +yy498: + YYDEBUG(498, *YYCURSOR); yych = *++YYCURSOR; - if (yych <= 'T') { - if (yych <= 'C') { - if (yych <= 'B') goto yy150; - goto yy543; + if (yych == 'R') goto yy571; + if (yych == 'r') goto yy571; + goto yy128; +yy499: + YYDEBUG(499, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'L') goto yy572; + if (yych == 'l') goto yy572; + goto yy128; +yy500: + YYDEBUG(500, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'F') goto yy573; + if (yych == 'f') goto yy573; + goto yy128; +yy501: + YYDEBUG(501, *YYCURSOR); + ++YYCURSOR; + if (yybm[0+(yych = *YYCURSOR)] & 16) { + goto yy127; + } + YYDEBUG(502, *YYCURSOR); + yyleng = YYCURSOR - SCNG(yy_text); +#line 1408 "Zend/zend_language_scanner.l" + { + RETURN_TOKEN(T_EMPTY); +} +#line 5500 "Zend/zend_language_scanner.c" +yy503: + YYDEBUG(503, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'C') goto yy575; + if (yych == 'c') goto yy575; + goto yy128; +yy504: + YYDEBUG(504, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'R') goto yy576; + if (yych == 'r') goto yy576; + goto yy128; +yy505: + YYDEBUG(505, *YYCURSOR); + ++YYCURSOR; + if (yybm[0+(yych = *YYCURSOR)] & 16) { + goto yy127; + } + YYDEBUG(506, *YYCURSOR); + yyleng = YYCURSOR - SCNG(yy_text); +#line 1178 "Zend/zend_language_scanner.l" + { + RETURN_TOKEN(T_ENDIF); +} +#line 5525 "Zend/zend_language_scanner.c" +yy507: + YYDEBUG(507, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'I') goto yy578; + if (yych == 'i') goto yy578; + goto yy128; +yy508: + YYDEBUG(508, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'I') goto yy579; + if (yych == 'i') goto yy579; + goto yy128; +yy509: + YYDEBUG(509, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'D') goto yy580; + if (yych == 'd') goto yy580; + goto yy128; +yy510: + YYDEBUG(510, *YYCURSOR); + ++YYCURSOR; + if ((yych = *YYCURSOR) <= '^') { + if (yych <= '@') { + if (yych <= '/') goto yy511; + if (yych <= '9') goto yy127; } else { - if (yych <= 'R') goto yy150; - if (yych <= 'S') goto yy541; - goto yy542; + if (yych == 'L') goto yy581; + if (yych <= 'Z') goto yy127; } } else { - if (yych <= 'r') { - if (yych == 'c') goto yy543; - goto yy150; + if (yych <= 'k') { + if (yych != '`') goto yy127; } else { - if (yych <= 's') goto yy541; - if (yych <= 't') goto yy542; - goto yy150; + if (yych <= 'l') goto yy581; + if (yych <= 'z') goto yy127; + if (yych >= 0x80) goto yy127; } } -yy536: - YYDEBUG(536, *YYCURSOR); +yy511: + YYDEBUG(511, *YYCURSOR); + yyleng = YYCURSOR - SCNG(yy_text); +#line 1424 "Zend/zend_language_scanner.l" + { + RETURN_TOKEN(T_FINAL); +} +#line 5571 "Zend/zend_language_scanner.c" +yy512: + YYDEBUG(512, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'S') goto yy537; - if (yych != 's') goto yy150; -yy537: - YYDEBUG(537, *YYCURSOR); + if (yych == 'C') goto yy582; + if (yych == 'c') goto yy582; + goto yy128; +yy513: + YYDEBUG(513, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'E') goto yy538; - if (yych != 'e') goto yy150; -yy538: - YYDEBUG(538, *YYCURSOR); + if (yych == 'I') goto yy583; + if (yych == 'i') goto yy583; + goto yy128; +yy514: + YYDEBUG(514, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'T') goto yy539; - if (yych != 't') goto yy150; -yy539: - YYDEBUG(539, *YYCURSOR); + if (yych == 'L') goto yy584; + if (yych == 'l') goto yy584; + goto yy128; +yy515: + YYDEBUG(515, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'M') goto yy586; + if (yych == 'm') goto yy586; + goto yy128; +yy516: + YYDEBUG(516, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'D') goto yy587; + if (yych == 'd') goto yy587; + goto yy128; +yy517: + YYDEBUG(517, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'N') goto yy588; + if (yych == 'n') goto yy588; + goto yy128; +yy518: + YYDEBUG(518, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'A') goto yy589; + if (yych == 'a') goto yy589; + goto yy128; +yy519: + YYDEBUG(519, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'F') goto yy590; + if (yych == 'f') goto yy590; + goto yy128; +yy520: + YYDEBUG(520, *YYCURSOR); ++YYCURSOR; - if (yybm[0+(yych = *YYCURSOR)] & 4) { - goto yy149; + if (yybm[0+(yych = *YYCURSOR)] & 16) { + goto yy127; } - YYDEBUG(540, *YYCURSOR); + YYDEBUG(521, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); #line 1404 "Zend/zend_language_scanner.l" { RETURN_TOKEN(T_ISSET); } -#line 5472 "Zend/zend_language_scanner.c" -yy541: - YYDEBUG(541, *YYCURSOR); +#line 5632 "Zend/zend_language_scanner.c" +yy522: + YYDEBUG(522, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'T') goto yy562; - if (yych == 't') goto yy562; - goto yy150; -yy542: - YYDEBUG(542, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'E') goto yy555; - if (yych == 'e') goto yy555; - goto yy150; -yy543: - YYDEBUG(543, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'L') goto yy544; - if (yych != 'l') goto yy150; -yy544: - YYDEBUG(544, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'U') goto yy545; - if (yych != 'u') goto yy150; -yy545: - YYDEBUG(545, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'D') goto yy546; - if (yych != 'd') goto yy150; -yy546: - YYDEBUG(546, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'E') goto yy547; - if (yych != 'e') goto yy150; -yy547: - YYDEBUG(547, *YYCURSOR); + if (yych == 'P') goto yy591; + if (yych == 'p') goto yy591; + goto yy128; +yy523: + YYDEBUG(523, *YYCURSOR); ++YYCURSOR; - if ((yych = *YYCURSOR) <= '^') { - if (yych <= '9') { - if (yych >= '0') goto yy149; - } else { - if (yych <= '@') goto yy548; - if (yych <= 'Z') goto yy149; - } - } else { - if (yych <= '`') { - if (yych <= '_') goto yy549; - } else { - if (yych <= 'z') goto yy149; - if (yych >= 0x80) goto yy149; - } + if (yybm[0+(yych = *YYCURSOR)] & 16) { + goto yy127; } -yy548: - YYDEBUG(548, *YYCURSOR); + YYDEBUG(524, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1372 "Zend/zend_language_scanner.l" +#line 1262 "Zend/zend_language_scanner.l" { - RETURN_TOKEN(T_INCLUDE); + RETURN_TOKEN(T_PRINT); } -#line 5530 "Zend/zend_language_scanner.c" -yy549: - YYDEBUG(549, *YYCURSOR); +#line 5651 "Zend/zend_language_scanner.c" +yy525: + YYDEBUG(525, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'O') goto yy550; - if (yych != 'o') goto yy150; -yy550: - YYDEBUG(550, *YYCURSOR); + if (yych == 'T') goto yy592; + if (yych == 't') goto yy592; + goto yy128; +yy526: + YYDEBUG(526, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'N') goto yy551; - if (yych != 'n') goto yy150; -yy551: - YYDEBUG(551, *YYCURSOR); + if (yych == 'C') goto yy593; + if (yych == 'c') goto yy593; + goto yy128; +yy527: + YYDEBUG(527, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'C') goto yy552; - if (yych != 'c') goto yy150; -yy552: - YYDEBUG(552, *YYCURSOR); + if (yych == 'C') goto yy594; + if (yych == 'c') goto yy594; + goto yy128; +yy528: + YYDEBUG(528, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'E') goto yy553; - if (yych != 'e') goto yy150; -yy553: - YYDEBUG(553, *YYCURSOR); + if (yych == 'R') goto yy596; + if (yych == 'r') goto yy596; + goto yy128; +yy529: + YYDEBUG(529, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'N') goto yy597; + if (yych == 'n') goto yy597; + goto yy128; +yy530: + YYDEBUG(530, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'C') goto yy599; + if (yych == 'c') goto yy599; + goto yy128; +yy531: + YYDEBUG(531, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'H') goto yy601; + if (yych == 'h') goto yy601; + goto yy128; +yy532: + YYDEBUG(532, *YYCURSOR); ++YYCURSOR; - if (yybm[0+(yych = *YYCURSOR)] & 4) { - goto yy149; + if (yybm[0+(yych = *YYCURSOR)] & 16) { + goto yy127; } - YYDEBUG(554, *YYCURSOR); - yyleng = YYCURSOR - SCNG(yy_text); -#line 1376 "Zend/zend_language_scanner.l" - { - RETURN_TOKEN(T_INCLUDE_ONCE); -} -#line 5563 "Zend/zend_language_scanner.c" -yy555: - YYDEBUG(555, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'R') goto yy556; - if (yych != 'r') goto yy150; -yy556: - YYDEBUG(556, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'F') goto yy557; - if (yych != 'f') goto yy150; -yy557: - YYDEBUG(557, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'A') goto yy558; - if (yych != 'a') goto yy150; -yy558: - YYDEBUG(558, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'C') goto yy559; - if (yych != 'c') goto yy150; -yy559: - YYDEBUG(559, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'E') goto yy560; - if (yych != 'e') goto yy150; -yy560: - YYDEBUG(560, *YYCURSOR); - ++YYCURSOR; - if (yybm[0+(yych = *YYCURSOR)] & 4) { - goto yy149; - } - YYDEBUG(561, *YYCURSOR); - yyleng = YYCURSOR - SCNG(yy_text); -#line 1270 "Zend/zend_language_scanner.l" - { - RETURN_TOKEN(T_INTERFACE); -} -#line 5601 "Zend/zend_language_scanner.c" -yy562: - YYDEBUG(562, *YYCURSOR); - yych = *++YYCURSOR; - if (yych <= 'E') { - if (yych == 'A') goto yy563; - if (yych <= 'D') goto yy150; - goto yy564; - } else { - if (yych <= 'a') { - if (yych <= '`') goto yy150; - } else { - if (yych == 'e') goto yy564; - goto yy150; - } - } -yy563: - YYDEBUG(563, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'N') goto yy570; - if (yych == 'n') goto yy570; - goto yy150; -yy564: - YYDEBUG(564, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'A') goto yy565; - if (yych != 'a') goto yy150; -yy565: - YYDEBUG(565, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'D') goto yy566; - if (yych != 'd') goto yy150; -yy566: - YYDEBUG(566, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'O') goto yy567; - if (yych != 'o') goto yy150; -yy567: - YYDEBUG(567, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'F') goto yy568; - if (yych != 'f') goto yy150; -yy568: - YYDEBUG(568, *YYCURSOR); - ++YYCURSOR; - if (yybm[0+(yych = *YYCURSOR)] & 4) { - goto yy149; - } - YYDEBUG(569, *YYCURSOR); - yyleng = YYCURSOR - SCNG(yy_text); -#line 1396 "Zend/zend_language_scanner.l" - { - RETURN_TOKEN(T_INSTEADOF); -} -#line 5655 "Zend/zend_language_scanner.c" -yy570: - YYDEBUG(570, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'C') goto yy571; - if (yych != 'c') goto yy150; -yy571: - YYDEBUG(571, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'E') goto yy572; - if (yych != 'e') goto yy150; -yy572: - YYDEBUG(572, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'O') goto yy573; - if (yych != 'o') goto yy150; -yy573: - YYDEBUG(573, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'F') goto yy574; - if (yych != 'f') goto yy150; -yy574: - YYDEBUG(574, *YYCURSOR); - ++YYCURSOR; - if (yybm[0+(yych = *YYCURSOR)] & 4) { - goto yy149; - } - YYDEBUG(575, *YYCURSOR); - yyleng = YYCURSOR - SCNG(yy_text); -#line 1222 "Zend/zend_language_scanner.l" - { - RETURN_TOKEN(T_INSTANCEOF); -} -#line 5688 "Zend/zend_language_scanner.c" -yy576: - YYDEBUG(576, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'L') goto yy577; - if (yych != 'l') goto yy150; -yy577: - YYDEBUG(577, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'E') goto yy578; - if (yych != 'e') goto yy150; -yy578: - YYDEBUG(578, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'M') goto yy579; - if (yych != 'm') goto yy150; -yy579: - YYDEBUG(579, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'E') goto yy580; - if (yych != 'e') goto yy150; -yy580: - YYDEBUG(580, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'N') goto yy581; - if (yych != 'n') goto yy150; -yy581: - YYDEBUG(581, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'T') goto yy582; - if (yych != 't') goto yy150; -yy582: - YYDEBUG(582, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'S') goto yy583; - if (yych != 's') goto yy150; -yy583: - YYDEBUG(583, *YYCURSOR); - ++YYCURSOR; - if (yybm[0+(yych = *YYCURSOR)] & 4) { - goto yy149; - } - YYDEBUG(584, *YYCURSOR); - yyleng = YYCURSOR - SCNG(yy_text); -#line 1282 "Zend/zend_language_scanner.l" - { - RETURN_TOKEN(T_IMPLEMENTS); -} -#line 5736 "Zend/zend_language_scanner.c" -yy585: - YYDEBUG(585, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'R') goto yy593; - if (yych == 'r') goto yy593; - goto yy150; -yy586: - YYDEBUG(586, *YYCURSOR); - yych = *++YYCURSOR; - if (yych <= 'Y') { - if (yych == 'A') goto yy589; - if (yych <= 'X') goto yy150; - } else { - if (yych <= 'a') { - if (yych <= '`') goto yy150; - goto yy589; - } else { - if (yych != 'y') goto yy150; - } - } - YYDEBUG(587, *YYCURSOR); - ++YYCURSOR; - if (yybm[0+(yych = *YYCURSOR)] & 4) { - goto yy149; - } - YYDEBUG(588, *YYCURSOR); - yyleng = YYCURSOR - SCNG(yy_text); -#line 1154 "Zend/zend_language_scanner.l" - { - RETURN_TOKEN(T_TRY); -} -#line 5768 "Zend/zend_language_scanner.c" -yy589: - YYDEBUG(589, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'I') goto yy590; - if (yych != 'i') goto yy150; -yy590: - YYDEBUG(590, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'T') goto yy591; - if (yych != 't') goto yy150; -yy591: - YYDEBUG(591, *YYCURSOR); - ++YYCURSOR; - if (yybm[0+(yych = *YYCURSOR)] & 4) { - goto yy149; - } - YYDEBUG(592, *YYCURSOR); - yyleng = YYCURSOR - SCNG(yy_text); -#line 1274 "Zend/zend_language_scanner.l" - { - RETURN_TOKEN(T_TRAIT); -} -#line 5791 "Zend/zend_language_scanner.c" -yy593: - YYDEBUG(593, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'O') goto yy594; - if (yych != 'o') goto yy150; -yy594: - YYDEBUG(594, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'W') goto yy595; - if (yych != 'w') goto yy150; -yy595: - YYDEBUG(595, *YYCURSOR); - ++YYCURSOR; - if (yybm[0+(yych = *YYCURSOR)] & 4) { - goto yy149; - } - YYDEBUG(596, *YYCURSOR); + YYDEBUG(533, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); #line 1166 "Zend/zend_language_scanner.l" { RETURN_TOKEN(T_THROW); } -#line 5814 "Zend/zend_language_scanner.c" -yy597: - YYDEBUG(597, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'E') goto yy598; - if (yych != 'e') goto yy150; -yy598: - YYDEBUG(598, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'L') goto yy599; - if (yych != 'l') goto yy150; -yy599: - YYDEBUG(599, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'D') goto yy600; - if (yych != 'd') goto yy150; -yy600: - YYDEBUG(600, *YYCURSOR); +#line 5706 "Zend/zend_language_scanner.c" +yy534: + YYDEBUG(534, *YYCURSOR); + ++YYCURSOR; + if (yybm[0+(yych = *YYCURSOR)] & 16) { + goto yy127; + } + YYDEBUG(535, *YYCURSOR); + yyleng = YYCURSOR - SCNG(yy_text); +#line 1274 "Zend/zend_language_scanner.l" + { + RETURN_TOKEN(T_TRAIT); +} +#line 5719 "Zend/zend_language_scanner.c" +yy536: + YYDEBUG(536, *YYCURSOR); + ++YYCURSOR; + if (yybm[0+(yych = *YYCURSOR)] & 16) { + goto yy127; + } + YYDEBUG(537, *YYCURSOR); + yyleng = YYCURSOR - SCNG(yy_text); +#line 1440 "Zend/zend_language_scanner.l" + { + RETURN_TOKEN(T_UNSET); +} +#line 5732 "Zend/zend_language_scanner.c" +yy538: + YYDEBUG(538, *YYCURSOR); + ++YYCURSOR; + if (yybm[0+(yych = *YYCURSOR)] & 16) { + goto yy127; + } + YYDEBUG(539, *YYCURSOR); + yyleng = YYCURSOR - SCNG(yy_text); +#line 1186 "Zend/zend_language_scanner.l" + { + RETURN_TOKEN(T_WHILE); +} +#line 5745 "Zend/zend_language_scanner.c" +yy540: + YYDEBUG(540, *YYCURSOR); yyaccept = 6; yych = *(YYMARKER = ++YYCURSOR); - if (yybm[0+yych] & 4) { - goto yy149; + if (yybm[0+yych] & 16) { + goto yy127; } if (yych <= '\f') { - if (yych <= 0x08) goto yy601; - if (yych <= '\n') goto yy602; + if (yych <= 0x08) goto yy541; + if (yych <= '\n') goto yy603; } else { - if (yych <= '\r') goto yy602; - if (yych == ' ') goto yy602; + if (yych <= '\r') goto yy603; + if (yych == ' ') goto yy603; } -yy601: - YYDEBUG(601, *YYCURSOR); +yy541: + YYDEBUG(541, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); #line 1150 "Zend/zend_language_scanner.l" { RETURN_TOKEN(T_YIELD); } -#line 5851 "Zend/zend_language_scanner.c" -yy602: +#line 5767 "Zend/zend_language_scanner.c" +yy542: + YYDEBUG(542, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'S') goto yy605; + if (yych == 's') goto yy605; + goto yy128; +yy543: + YYDEBUG(543, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == '_') goto yy606; + goto yy128; +yy544: + YYDEBUG(544, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'E') goto yy607; + if (yych == 'e') goto yy607; + goto yy128; +yy545: + YYDEBUG(545, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'C') goto yy608; + if (yych == 'c') goto yy608; + goto yy128; +yy546: + YYDEBUG(546, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'T') goto yy609; + if (yych == 't') goto yy609; + goto yy128; +yy547: + YYDEBUG(547, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'E') goto yy610; + if (yych == 'e') goto yy610; + goto yy128; +yy548: + YYDEBUG(548, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'H') goto yy611; + if (yych == 'h') goto yy611; + goto yy128; +yy549: + YYDEBUG(549, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'E') goto yy612; + if (yych == 'e') goto yy612; + goto yy128; +yy550: + YYDEBUG(550, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'I') goto yy613; + if (yych == 'i') goto yy613; + goto yy128; +yy551: + YYDEBUG(551, *YYCURSOR); + ++YYCURSOR; + YYFILL(1); + yych = *YYCURSOR; + YYDEBUG(552, *YYCURSOR); + if (yych <= 0x1F) { + if (yych == '\t') goto yy551; + goto yy166; + } else { + if (yych <= ' ') goto yy551; + if (yych == ')') goto yy614; + goto yy166; + } +yy553: + YYDEBUG(553, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'Y') goto yy616; + if (yych == 'y') goto yy616; + goto yy166; +yy554: + YYDEBUG(554, *YYCURSOR); + ++YYCURSOR; + YYFILL(1); + yych = *YYCURSOR; +yy555: + YYDEBUG(555, *YYCURSOR); + if (yych <= 0x1F) { + if (yych == '\t') goto yy554; + goto yy166; + } else { + if (yych <= ' ') goto yy554; + if (yych != ')') goto yy166; + } + YYDEBUG(556, *YYCURSOR); + ++YYCURSOR; + YYDEBUG(557, *YYCURSOR); + yyleng = YYCURSOR - SCNG(yy_text); +#line 1360 "Zend/zend_language_scanner.l" + { + RETURN_TOKEN(T_BOOL_CAST); +} +#line 5863 "Zend/zend_language_scanner.c" +yy558: + YYDEBUG(558, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'A') goto yy618; + if (yych == 'a') goto yy618; + goto yy166; +yy559: + YYDEBUG(559, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'E') goto yy472; + if (yych == 'e') goto yy472; + goto yy166; +yy560: + YYDEBUG(560, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'E') goto yy619; + if (yych == 'e') goto yy619; + goto yy166; +yy561: + YYDEBUG(561, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'T') goto yy620; + if (yych == 't') goto yy620; + goto yy166; +yy562: + YYDEBUG(562, *YYCURSOR); + ++YYCURSOR; + YYDEBUG(563, *YYCURSOR); + yyleng = YYCURSOR - SCNG(yy_text); +#line 1344 "Zend/zend_language_scanner.l" + { + RETURN_TOKEN(T_DOUBLE_CAST); +} +#line 5897 "Zend/zend_language_scanner.c" +yy564: + YYDEBUG(564, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'G') goto yy616; + if (yych == 'g') goto yy616; + goto yy166; +yy565: + YYDEBUG(565, *YYCURSOR); + ++YYCURSOR; + YYFILL(1); + yych = *YYCURSOR; + YYDEBUG(566, *YYCURSOR); + if (yych <= 0x1F) { + if (yych == '\t') goto yy565; + goto yy166; + } else { + if (yych <= ' ') goto yy565; + if (yych == ')') goto yy622; + goto yy166; + } +yy567: + YYDEBUG(567, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == '\n') goto yy480; + if (yych == '\r') goto yy482; + goto yy166; +yy568: + YYDEBUG(568, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'C') goto yy624; + if (yych == 'c') goto yy624; + goto yy128; +yy569: + YYDEBUG(569, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'L') goto yy625; + if (yych == 'l') goto yy625; + goto yy128; +yy570: + YYDEBUG(570, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'U') goto yy626; + if (yych == 'u') goto yy626; + goto yy128; +yy571: + YYDEBUG(571, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'E') goto yy627; + if (yych == 'e') goto yy627; + goto yy128; +yy572: + YYDEBUG(572, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'T') goto yy629; + if (yych == 't') goto yy629; + goto yy128; +yy573: + YYDEBUG(573, *YYCURSOR); + ++YYCURSOR; + if (yybm[0+(yych = *YYCURSOR)] & 16) { + goto yy127; + } + YYDEBUG(574, *YYCURSOR); + yyleng = YYCURSOR - SCNG(yy_text); +#line 1174 "Zend/zend_language_scanner.l" + { + RETURN_TOKEN(T_ELSEIF); +} +#line 5966 "Zend/zend_language_scanner.c" +yy575: + YYDEBUG(575, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'L') goto yy631; + if (yych == 'l') goto yy631; + goto yy128; +yy576: + YYDEBUG(576, *YYCURSOR); + ++YYCURSOR; + if ((yych = *YYCURSOR) <= '^') { + if (yych <= '@') { + if (yych <= '/') goto yy577; + if (yych <= '9') goto yy127; + } else { + if (yych == 'E') goto yy632; + if (yych <= 'Z') goto yy127; + } + } else { + if (yych <= 'd') { + if (yych != '`') goto yy127; + } else { + if (yych <= 'e') goto yy632; + if (yych <= 'z') goto yy127; + if (yych >= 0x80) goto yy127; + } + } +yy577: + YYDEBUG(577, *YYCURSOR); + yyleng = YYCURSOR - SCNG(yy_text); +#line 1202 "Zend/zend_language_scanner.l" + { + RETURN_TOKEN(T_ENDFOR); +} +#line 6000 "Zend/zend_language_scanner.c" +yy578: + YYDEBUG(578, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'T') goto yy633; + if (yych == 't') goto yy633; + goto yy128; +yy579: + YYDEBUG(579, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'L') goto yy634; + if (yych == 'l') goto yy634; + goto yy128; +yy580: + YYDEBUG(580, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'S') goto yy635; + if (yych == 's') goto yy635; + goto yy128; +yy581: + YYDEBUG(581, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'Y') goto yy637; + if (yych == 'y') goto yy637; + goto yy128; +yy582: + YYDEBUG(582, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'H') goto yy639; + if (yych == 'h') goto yy639; + goto yy128; +yy583: + YYDEBUG(583, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'O') goto yy641; + if (yych == 'o') goto yy641; + goto yy128; +yy584: + YYDEBUG(584, *YYCURSOR); + ++YYCURSOR; + if (yybm[0+(yych = *YYCURSOR)] & 16) { + goto yy127; + } + YYDEBUG(585, *YYCURSOR); + yyleng = YYCURSOR - SCNG(yy_text); +#line 1400 "Zend/zend_language_scanner.l" + { + RETURN_TOKEN(T_GLOBAL); +} +#line 6049 "Zend/zend_language_scanner.c" +yy586: + YYDEBUG(586, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'E') goto yy642; + if (yych == 'e') goto yy642; + goto yy128; +yy587: + YYDEBUG(587, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'E') goto yy643; + if (yych == 'e') goto yy643; + goto yy128; +yy588: + YYDEBUG(588, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'C') goto yy645; + if (yych == 'c') goto yy645; + goto yy128; +yy589: + YYDEBUG(589, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'D') goto yy646; + if (yych == 'd') goto yy646; + goto yy128; +yy590: + YYDEBUG(590, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'A') goto yy647; + if (yych == 'a') goto yy647; + goto yy128; +yy591: + YYDEBUG(591, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'A') goto yy648; + if (yych == 'a') goto yy648; + goto yy128; +yy592: + YYDEBUG(592, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'E') goto yy649; + if (yych == 'e') goto yy649; + goto yy128; +yy593: + YYDEBUG(593, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'T') goto yy651; + if (yych == 't') goto yy651; + goto yy128; +yy594: + YYDEBUG(594, *YYCURSOR); + ++YYCURSOR; + if (yybm[0+(yych = *YYCURSOR)] & 16) { + goto yy127; + } + YYDEBUG(595, *YYCURSOR); + yyleng = YYCURSOR - SCNG(yy_text); +#line 1436 "Zend/zend_language_scanner.l" + { + RETURN_TOKEN(T_PUBLIC); +} +#line 6110 "Zend/zend_language_scanner.c" +yy596: + YYDEBUG(596, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'E') goto yy652; + if (yych == 'e') goto yy652; + goto yy128; +yy597: + YYDEBUG(597, *YYCURSOR); + ++YYCURSOR; + if (yybm[0+(yych = *YYCURSOR)] & 16) { + goto yy127; + } + YYDEBUG(598, *YYCURSOR); + yyleng = YYCURSOR - SCNG(yy_text); +#line 1141 "Zend/zend_language_scanner.l" + { + RETURN_TOKEN(T_RETURN); +} +#line 6129 "Zend/zend_language_scanner.c" +yy599: + YYDEBUG(599, *YYCURSOR); + ++YYCURSOR; + if (yybm[0+(yych = *YYCURSOR)] & 16) { + goto yy127; + } + YYDEBUG(600, *YYCURSOR); + yyleng = YYCURSOR - SCNG(yy_text); +#line 1416 "Zend/zend_language_scanner.l" + { + RETURN_TOKEN(T_STATIC); +} +#line 6142 "Zend/zend_language_scanner.c" +yy601: + YYDEBUG(601, *YYCURSOR); + ++YYCURSOR; + if (yybm[0+(yych = *YYCURSOR)] & 16) { + goto yy127; + } YYDEBUG(602, *YYCURSOR); + yyleng = YYCURSOR - SCNG(yy_text); +#line 1230 "Zend/zend_language_scanner.l" + { + RETURN_TOKEN(T_SWITCH); +} +#line 6155 "Zend/zend_language_scanner.c" +yy603: + YYDEBUG(603, *YYCURSOR); ++YYCURSOR; YYFILL(4); yych = *YYCURSOR; - YYDEBUG(603, *YYCURSOR); + YYDEBUG(604, *YYCURSOR); if (yych <= 0x1F) { if (yych <= '\n') { - if (yych <= 0x08) goto yy157; - goto yy602; + if (yych <= 0x08) goto yy166; + goto yy603; } else { - if (yych == '\r') goto yy602; - goto yy157; + if (yych == '\r') goto yy603; + goto yy166; } } else { if (yych <= 'F') { - if (yych <= ' ') goto yy602; - if (yych <= 'E') goto yy157; + if (yych <= ' ') goto yy603; + if (yych <= 'E') goto yy166; + goto yy654; } else { - if (yych != 'f') goto yy157; + if (yych == 'f') goto yy654; + goto yy166; } } - YYDEBUG(604, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'R') goto yy605; - if (yych != 'r') goto yy157; yy605: YYDEBUG(605, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'O') goto yy606; - if (yych != 'o') goto yy157; + if (yych == 'S') goto yy655; + if (yych == 's') goto yy655; + goto yy128; yy606: YYDEBUG(606, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'M') goto yy607; - if (yych != 'm') goto yy157; + if (yych == '_') goto yy656; + goto yy128; yy607: YYDEBUG(607, *YYCURSOR); - ++YYCURSOR; + yych = *++YYCURSOR; + if (yych == '_') goto yy658; + goto yy128; +yy608: YYDEBUG(608, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'T') goto yy659; + if (yych == 't') goto yy659; + goto yy128; +yy609: + YYDEBUG(609, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == '_') goto yy660; + goto yy128; +yy610: + YYDEBUG(610, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == '_') goto yy661; + goto yy128; +yy611: + YYDEBUG(611, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'O') goto yy662; + if (yych == 'o') goto yy662; + goto yy128; +yy612: + YYDEBUG(612, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'S') goto yy663; + if (yych == 's') goto yy663; + goto yy128; +yy613: + YYDEBUG(613, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'T') goto yy664; + if (yych == 't') goto yy664; + goto yy128; +yy614: + YYDEBUG(614, *YYCURSOR); + ++YYCURSOR; + YYDEBUG(615, *YYCURSOR); + yyleng = YYCURSOR - SCNG(yy_text); +#line 1352 "Zend/zend_language_scanner.l" + { + RETURN_TOKEN(T_ARRAY_CAST); +} +#line 6239 "Zend/zend_language_scanner.c" +yy616: + YYDEBUG(616, *YYCURSOR); + ++YYCURSOR; + YYFILL(1); + yych = *YYCURSOR; + YYDEBUG(617, *YYCURSOR); + if (yych <= 0x1F) { + if (yych == '\t') goto yy616; + goto yy166; + } else { + if (yych <= ' ') goto yy616; + if (yych == ')') goto yy665; + goto yy166; + } +yy618: + YYDEBUG(618, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'N') goto yy554; + if (yych == 'n') goto yy554; + goto yy166; +yy619: + YYDEBUG(619, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'R') goto yy466; + if (yych == 'r') goto yy466; + goto yy166; +yy620: + YYDEBUG(620, *YYCURSOR); + ++YYCURSOR; + YYFILL(1); + yych = *YYCURSOR; + YYDEBUG(621, *YYCURSOR); + if (yych <= 0x1F) { + if (yych == '\t') goto yy620; + goto yy166; + } else { + if (yych <= ' ') goto yy620; + if (yych == ')') goto yy667; + goto yy166; + } +yy622: + YYDEBUG(622, *YYCURSOR); + ++YYCURSOR; + YYDEBUG(623, *YYCURSOR); + yyleng = YYCURSOR - SCNG(yy_text); +#line 1364 "Zend/zend_language_scanner.l" + { + RETURN_TOKEN(T_UNSET_CAST); +} +#line 6289 "Zend/zend_language_scanner.c" +yy624: + YYDEBUG(624, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'T') goto yy669; + if (yych == 't') goto yy669; + goto yy128; +yy625: + YYDEBUG(625, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'E') goto yy671; + if (yych == 'e') goto yy671; + goto yy128; +yy626: + YYDEBUG(626, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'E') goto yy673; + if (yych == 'e') goto yy673; + goto yy128; +yy627: + YYDEBUG(627, *YYCURSOR); + ++YYCURSOR; + if (yybm[0+(yych = *YYCURSOR)] & 16) { + goto yy127; + } + YYDEBUG(628, *YYCURSOR); + yyleng = YYCURSOR - SCNG(yy_text); +#line 1214 "Zend/zend_language_scanner.l" + { + RETURN_TOKEN(T_DECLARE); +} +#line 6320 "Zend/zend_language_scanner.c" +yy629: + YYDEBUG(629, *YYCURSOR); + ++YYCURSOR; + if (yybm[0+(yych = *YYCURSOR)] & 16) { + goto yy127; + } + YYDEBUG(630, *YYCURSOR); + yyleng = YYCURSOR - SCNG(yy_text); +#line 1242 "Zend/zend_language_scanner.l" + { + RETURN_TOKEN(T_DEFAULT); +} +#line 6333 "Zend/zend_language_scanner.c" +yy631: + YYDEBUG(631, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'A') goto yy675; + if (yych == 'a') goto yy675; + goto yy128; +yy632: + YYDEBUG(632, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'A') goto yy676; + if (yych == 'a') goto yy676; + goto yy128; +yy633: + YYDEBUG(633, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'C') goto yy677; + if (yych == 'c') goto yy677; + goto yy128; +yy634: + YYDEBUG(634, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'E') goto yy678; + if (yych == 'e') goto yy678; + goto yy128; +yy635: + YYDEBUG(635, *YYCURSOR); + ++YYCURSOR; + if (yybm[0+(yych = *YYCURSOR)] & 16) { + goto yy127; + } + YYDEBUG(636, *YYCURSOR); + yyleng = YYCURSOR - SCNG(yy_text); +#line 1278 "Zend/zend_language_scanner.l" + { + RETURN_TOKEN(T_EXTENDS); +} +#line 6370 "Zend/zend_language_scanner.c" +yy637: + YYDEBUG(637, *YYCURSOR); + ++YYCURSOR; + if (yybm[0+(yych = *YYCURSOR)] & 16) { + goto yy127; + } + YYDEBUG(638, *YYCURSOR); + yyleng = YYCURSOR - SCNG(yy_text); +#line 1162 "Zend/zend_language_scanner.l" + { + RETURN_TOKEN(T_FINALLY); +} +#line 6383 "Zend/zend_language_scanner.c" +yy639: + YYDEBUG(639, *YYCURSOR); + ++YYCURSOR; + if (yybm[0+(yych = *YYCURSOR)] & 16) { + goto yy127; + } + YYDEBUG(640, *YYCURSOR); + yyleng = YYCURSOR - SCNG(yy_text); +#line 1206 "Zend/zend_language_scanner.l" + { + RETURN_TOKEN(T_FOREACH); +} +#line 6396 "Zend/zend_language_scanner.c" +yy641: + YYDEBUG(641, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'N') goto yy680; + if (yych == 'n') goto yy680; + goto yy128; +yy642: + YYDEBUG(642, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'N') goto yy682; + if (yych == 'n') goto yy682; + goto yy128; +yy643: + YYDEBUG(643, *YYCURSOR); + ++YYCURSOR; + if ((yych = *YYCURSOR) <= '^') { + if (yych <= '9') { + if (yych >= '0') goto yy127; + } else { + if (yych <= '@') goto yy644; + if (yych <= 'Z') goto yy127; + } + } else { + if (yych <= '`') { + if (yych <= '_') goto yy683; + } else { + if (yych <= 'z') goto yy127; + if (yych >= 0x80) goto yy127; + } + } +yy644: + YYDEBUG(644, *YYCURSOR); + yyleng = YYCURSOR - SCNG(yy_text); +#line 1372 "Zend/zend_language_scanner.l" + { + RETURN_TOKEN(T_INCLUDE); +} +#line 6434 "Zend/zend_language_scanner.c" +yy645: + YYDEBUG(645, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'E') goto yy684; + if (yych == 'e') goto yy684; + goto yy128; +yy646: + YYDEBUG(646, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'O') goto yy685; + if (yych == 'o') goto yy685; + goto yy128; +yy647: + YYDEBUG(647, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'C') goto yy686; + if (yych == 'c') goto yy686; + goto yy128; +yy648: + YYDEBUG(648, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'C') goto yy687; + if (yych == 'c') goto yy687; + goto yy128; +yy649: + YYDEBUG(649, *YYCURSOR); + ++YYCURSOR; + if (yybm[0+(yych = *YYCURSOR)] & 16) { + goto yy127; + } + YYDEBUG(650, *YYCURSOR); + yyleng = YYCURSOR - SCNG(yy_text); +#line 1428 "Zend/zend_language_scanner.l" + { + RETURN_TOKEN(T_PRIVATE); +} +#line 6471 "Zend/zend_language_scanner.c" +yy651: + YYDEBUG(651, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'E') goto yy688; + if (yych == 'e') goto yy688; + goto yy128; +yy652: + YYDEBUG(652, *YYCURSOR); + ++YYCURSOR; + if ((yych = *YYCURSOR) <= '^') { + if (yych <= '9') { + if (yych >= '0') goto yy127; + } else { + if (yych <= '@') goto yy653; + if (yych <= 'Z') goto yy127; + } + } else { + if (yych <= '`') { + if (yych <= '_') goto yy689; + } else { + if (yych <= 'z') goto yy127; + if (yych >= 0x80) goto yy127; + } + } +yy653: + YYDEBUG(653, *YYCURSOR); + yyleng = YYCURSOR - SCNG(yy_text); +#line 1380 "Zend/zend_language_scanner.l" + { + RETURN_TOKEN(T_REQUIRE); +} +#line 6503 "Zend/zend_language_scanner.c" +yy654: + YYDEBUG(654, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'R') goto yy690; + if (yych == 'r') goto yy690; + goto yy166; +yy655: + YYDEBUG(655, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == '_') goto yy691; + goto yy128; +yy656: + YYDEBUG(656, *YYCURSOR); + ++YYCURSOR; + if (yybm[0+(yych = *YYCURSOR)] & 16) { + goto yy127; + } + YYDEBUG(657, *YYCURSOR); + yyleng = YYCURSOR - SCNG(yy_text); +#line 1773 "Zend/zend_language_scanner.l" + { + RETURN_TOKEN(T_DIR); +} +#line 6527 "Zend/zend_language_scanner.c" +yy658: + YYDEBUG(658, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == '_') goto yy692; + goto yy128; +yy659: + YYDEBUG(659, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'I') goto yy694; + if (yych == 'i') goto yy694; + goto yy128; +yy660: + YYDEBUG(660, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'C') goto yy695; + if (yych == 'c') goto yy695; + goto yy128; +yy661: + YYDEBUG(661, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == '_') goto yy696; + goto yy128; +yy662: + YYDEBUG(662, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'D') goto yy698; + if (yych == 'd') goto yy698; + goto yy128; +yy663: + YYDEBUG(663, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'P') goto yy699; + if (yych == 'p') goto yy699; + goto yy128; +yy664: + YYDEBUG(664, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == '_') goto yy700; + goto yy128; +yy665: + YYDEBUG(665, *YYCURSOR); + ++YYCURSOR; + YYDEBUG(666, *YYCURSOR); + yyleng = YYCURSOR - SCNG(yy_text); +#line 1348 "Zend/zend_language_scanner.l" + { + RETURN_TOKEN(T_STRING_CAST); +} +#line 6576 "Zend/zend_language_scanner.c" +yy667: + YYDEBUG(667, *YYCURSOR); + ++YYCURSOR; + YYDEBUG(668, *YYCURSOR); + yyleng = YYCURSOR - SCNG(yy_text); +#line 1356 "Zend/zend_language_scanner.l" + { + RETURN_TOKEN(T_OBJECT_CAST); +} +#line 6586 "Zend/zend_language_scanner.c" +yy669: + YYDEBUG(669, *YYCURSOR); + ++YYCURSOR; + if (yybm[0+(yych = *YYCURSOR)] & 16) { + goto yy127; + } + YYDEBUG(670, *YYCURSOR); + yyleng = YYCURSOR - SCNG(yy_text); +#line 1420 "Zend/zend_language_scanner.l" + { + RETURN_TOKEN(T_ABSTRACT); +} +#line 6599 "Zend/zend_language_scanner.c" +yy671: + YYDEBUG(671, *YYCURSOR); + ++YYCURSOR; + if (yybm[0+(yych = *YYCURSOR)] & 16) { + goto yy127; + } + YYDEBUG(672, *YYCURSOR); + yyleng = YYCURSOR - SCNG(yy_text); +#line 1456 "Zend/zend_language_scanner.l" + { + RETURN_TOKEN(T_CALLABLE); +} +#line 6612 "Zend/zend_language_scanner.c" +yy673: + YYDEBUG(673, *YYCURSOR); + ++YYCURSOR; + if (yybm[0+(yych = *YYCURSOR)] & 16) { + goto yy127; + } + YYDEBUG(674, *YYCURSOR); + yyleng = YYCURSOR - SCNG(yy_text); +#line 1250 "Zend/zend_language_scanner.l" + { + RETURN_TOKEN(T_CONTINUE); +} +#line 6625 "Zend/zend_language_scanner.c" +yy675: + YYDEBUG(675, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'R') goto yy701; + if (yych == 'r') goto yy701; + goto yy128; +yy676: + YYDEBUG(676, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'C') goto yy702; + if (yych == 'c') goto yy702; + goto yy128; +yy677: + YYDEBUG(677, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'H') goto yy703; + if (yych == 'h') goto yy703; + goto yy128; +yy678: + YYDEBUG(678, *YYCURSOR); + ++YYCURSOR; + if (yybm[0+(yych = *YYCURSOR)] & 16) { + goto yy127; + } + YYDEBUG(679, *YYCURSOR); + yyleng = YYCURSOR - SCNG(yy_text); +#line 1190 "Zend/zend_language_scanner.l" + { + RETURN_TOKEN(T_ENDWHILE); +} +#line 6656 "Zend/zend_language_scanner.c" +yy680: + YYDEBUG(680, *YYCURSOR); + ++YYCURSOR; + if (yybm[0+(yych = *YYCURSOR)] & 16) { + goto yy127; + } + YYDEBUG(681, *YYCURSOR); + yyleng = YYCURSOR - SCNG(yy_text); +#line 1133 "Zend/zend_language_scanner.l" + { + RETURN_TOKEN(T_FUNCTION); +} +#line 6669 "Zend/zend_language_scanner.c" +yy682: + YYDEBUG(682, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'T') goto yy705; + if (yych == 't') goto yy705; + goto yy128; +yy683: + YYDEBUG(683, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'O') goto yy706; + if (yych == 'o') goto yy706; + goto yy128; +yy684: + YYDEBUG(684, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'O') goto yy707; + if (yych == 'o') goto yy707; + goto yy128; +yy685: + YYDEBUG(685, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'F') goto yy708; + if (yych == 'f') goto yy708; + goto yy128; +yy686: + YYDEBUG(686, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'E') goto yy710; + if (yych == 'e') goto yy710; + goto yy128; +yy687: + YYDEBUG(687, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'E') goto yy712; + if (yych == 'e') goto yy712; + goto yy128; +yy688: + YYDEBUG(688, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'D') goto yy714; + if (yych == 'd') goto yy714; + goto yy128; +yy689: + YYDEBUG(689, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'O') goto yy716; + if (yych == 'o') goto yy716; + goto yy128; +yy690: + YYDEBUG(690, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'O') goto yy717; + if (yych == 'o') goto yy717; + goto yy166; +yy691: + YYDEBUG(691, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == '_') goto yy718; + goto yy128; +yy692: + YYDEBUG(692, *YYCURSOR); + ++YYCURSOR; + if (yybm[0+(yych = *YYCURSOR)] & 16) { + goto yy127; + } + YYDEBUG(693, *YYCURSOR); + yyleng = YYCURSOR - SCNG(yy_text); +#line 1769 "Zend/zend_language_scanner.l" + { + RETURN_TOKEN(T_FILE); +} +#line 6741 "Zend/zend_language_scanner.c" +yy694: + YYDEBUG(694, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'O') goto yy720; + if (yych == 'o') goto yy720; + goto yy128; +yy695: + YYDEBUG(695, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'O') goto yy721; + if (yych == 'o') goto yy721; + goto yy128; +yy696: + YYDEBUG(696, *YYCURSOR); + ++YYCURSOR; + if (yybm[0+(yych = *YYCURSOR)] & 16) { + goto yy127; + } + YYDEBUG(697, *YYCURSOR); + yyleng = YYCURSOR - SCNG(yy_text); +#line 1765 "Zend/zend_language_scanner.l" + { + RETURN_TOKEN(T_LINE); +} +#line 6766 "Zend/zend_language_scanner.c" +yy698: + YYDEBUG(698, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == '_') goto yy722; + goto yy128; +yy699: + YYDEBUG(699, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'A') goto yy723; + if (yych == 'a') goto yy723; + goto yy128; +yy700: + YYDEBUG(700, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == '_') goto yy724; + goto yy128; +yy701: + YYDEBUG(701, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'E') goto yy726; + if (yych == 'e') goto yy726; + goto yy128; +yy702: + YYDEBUG(702, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'H') goto yy728; + if (yych == 'h') goto yy728; + goto yy128; +yy703: + YYDEBUG(703, *YYCURSOR); + ++YYCURSOR; + if (yybm[0+(yych = *YYCURSOR)] & 16) { + goto yy127; + } + YYDEBUG(704, *YYCURSOR); + yyleng = YYCURSOR - SCNG(yy_text); +#line 1234 "Zend/zend_language_scanner.l" + { + RETURN_TOKEN(T_ENDSWITCH); +} +#line 6807 "Zend/zend_language_scanner.c" +yy705: + YYDEBUG(705, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'S') goto yy730; + if (yych == 's') goto yy730; + goto yy128; +yy706: + YYDEBUG(706, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'N') goto yy732; + if (yych == 'n') goto yy732; + goto yy128; +yy707: + YYDEBUG(707, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'F') goto yy733; + if (yych == 'f') goto yy733; + goto yy128; +yy708: + YYDEBUG(708, *YYCURSOR); + ++YYCURSOR; + if (yybm[0+(yych = *YYCURSOR)] & 16) { + goto yy127; + } + YYDEBUG(709, *YYCURSOR); + yyleng = YYCURSOR - SCNG(yy_text); +#line 1396 "Zend/zend_language_scanner.l" + { + RETURN_TOKEN(T_INSTEADOF); +} +#line 6838 "Zend/zend_language_scanner.c" +yy710: + YYDEBUG(710, *YYCURSOR); + ++YYCURSOR; + if (yybm[0+(yych = *YYCURSOR)] & 16) { + goto yy127; + } + YYDEBUG(711, *YYCURSOR); + yyleng = YYCURSOR - SCNG(yy_text); +#line 1270 "Zend/zend_language_scanner.l" + { + RETURN_TOKEN(T_INTERFACE); +} +#line 6851 "Zend/zend_language_scanner.c" +yy712: + YYDEBUG(712, *YYCURSOR); + ++YYCURSOR; + if (yybm[0+(yych = *YYCURSOR)] & 16) { + goto yy127; + } + YYDEBUG(713, *YYCURSOR); + yyleng = YYCURSOR - SCNG(yy_text); +#line 1388 "Zend/zend_language_scanner.l" + { + RETURN_TOKEN(T_NAMESPACE); +} +#line 6864 "Zend/zend_language_scanner.c" +yy714: + YYDEBUG(714, *YYCURSOR); + ++YYCURSOR; + if (yybm[0+(yych = *YYCURSOR)] & 16) { + goto yy127; + } + YYDEBUG(715, *YYCURSOR); + yyleng = YYCURSOR - SCNG(yy_text); +#line 1432 "Zend/zend_language_scanner.l" + { + RETURN_TOKEN(T_PROTECTED); +} +#line 6877 "Zend/zend_language_scanner.c" +yy716: + YYDEBUG(716, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'N') goto yy735; + if (yych == 'n') goto yy735; + goto yy128; +yy717: + YYDEBUG(717, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'M') goto yy736; + if (yych == 'm') goto yy736; + goto yy166; +yy718: + YYDEBUG(718, *YYCURSOR); + ++YYCURSOR; + if (yybm[0+(yych = *YYCURSOR)] & 16) { + goto yy127; + } + YYDEBUG(719, *YYCURSOR); + yyleng = YYCURSOR - SCNG(yy_text); +#line 1749 "Zend/zend_language_scanner.l" + { + RETURN_TOKEN(T_CLASS_C); +} +#line 6902 "Zend/zend_language_scanner.c" +yy720: + YYDEBUG(720, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'N') goto yy738; + if (yych == 'n') goto yy738; + goto yy128; +yy721: + YYDEBUG(721, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'M') goto yy739; + if (yych == 'm') goto yy739; + goto yy128; +yy722: + YYDEBUG(722, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == '_') goto yy740; + goto yy128; +yy723: + YYDEBUG(723, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'C') goto yy742; + if (yych == 'c') goto yy742; + goto yy128; +yy724: + YYDEBUG(724, *YYCURSOR); + ++YYCURSOR; + if (yybm[0+(yych = *YYCURSOR)] & 16) { + goto yy127; + } + YYDEBUG(725, *YYCURSOR); + yyleng = YYCURSOR - SCNG(yy_text); +#line 1753 "Zend/zend_language_scanner.l" + { + RETURN_TOKEN(T_TRAIT_C); +} +#line 6938 "Zend/zend_language_scanner.c" +yy726: + YYDEBUG(726, *YYCURSOR); + ++YYCURSOR; + if (yybm[0+(yych = *YYCURSOR)] & 16) { + goto yy127; + } + YYDEBUG(727, *YYCURSOR); + yyleng = YYCURSOR - SCNG(yy_text); +#line 1218 "Zend/zend_language_scanner.l" + { + RETURN_TOKEN(T_ENDDECLARE); +} +#line 6951 "Zend/zend_language_scanner.c" +yy728: + YYDEBUG(728, *YYCURSOR); + ++YYCURSOR; + if (yybm[0+(yych = *YYCURSOR)] & 16) { + goto yy127; + } + YYDEBUG(729, *YYCURSOR); + yyleng = YYCURSOR - SCNG(yy_text); +#line 1210 "Zend/zend_language_scanner.l" + { + RETURN_TOKEN(T_ENDFOREACH); +} +#line 6964 "Zend/zend_language_scanner.c" +yy730: + YYDEBUG(730, *YYCURSOR); + ++YYCURSOR; + if (yybm[0+(yych = *YYCURSOR)] & 16) { + goto yy127; + } + YYDEBUG(731, *YYCURSOR); + yyleng = YYCURSOR - SCNG(yy_text); +#line 1282 "Zend/zend_language_scanner.l" + { + RETURN_TOKEN(T_IMPLEMENTS); +} +#line 6977 "Zend/zend_language_scanner.c" +yy732: + YYDEBUG(732, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'C') goto yy743; + if (yych == 'c') goto yy743; + goto yy128; +yy733: + YYDEBUG(733, *YYCURSOR); + ++YYCURSOR; + if (yybm[0+(yych = *YYCURSOR)] & 16) { + goto yy127; + } + YYDEBUG(734, *YYCURSOR); + yyleng = YYCURSOR - SCNG(yy_text); +#line 1222 "Zend/zend_language_scanner.l" + { + RETURN_TOKEN(T_INSTANCEOF); +} +#line 6996 "Zend/zend_language_scanner.c" +yy735: + YYDEBUG(735, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'C') goto yy744; + if (yych == 'c') goto yy744; + goto yy128; +yy736: + YYDEBUG(736, *YYCURSOR); + ++YYCURSOR; + YYDEBUG(737, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); #line 1145 "Zend/zend_language_scanner.l" { HANDLE_NEWLINES(yytext, yyleng); RETURN_TOKEN(T_YIELD_FROM); } -#line 5898 "Zend/zend_language_scanner.c" -yy609: - YYDEBUG(609, *YYCURSOR); +#line 7013 "Zend/zend_language_scanner.c" +yy738: + YYDEBUG(738, *YYCURSOR); yych = *++YYCURSOR; - if (yych <= 'T') { - if (yych == 'Q') goto yy611; - if (yych <= 'S') goto yy150; - } else { - if (yych <= 'q') { - if (yych <= 'p') goto yy150; - goto yy611; - } else { - if (yych != 't') goto yy150; - } - } - YYDEBUG(610, *YYCURSOR); + if (yych == '_') goto yy745; + goto yy128; +yy739: + YYDEBUG(739, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'U') goto yy623; - if (yych == 'u') goto yy623; - goto yy150; -yy611: - YYDEBUG(611, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'U') goto yy612; - if (yych != 'u') goto yy150; -yy612: - YYDEBUG(612, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'I') goto yy613; - if (yych != 'i') goto yy150; -yy613: - YYDEBUG(613, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'R') goto yy614; - if (yych != 'r') goto yy150; -yy614: - YYDEBUG(614, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'E') goto yy615; - if (yych != 'e') goto yy150; -yy615: - YYDEBUG(615, *YYCURSOR); + if (yych == 'P') goto yy746; + if (yych == 'p') goto yy746; + goto yy128; +yy740: + YYDEBUG(740, *YYCURSOR); ++YYCURSOR; - if ((yych = *YYCURSOR) <= '^') { - if (yych <= '9') { - if (yych >= '0') goto yy149; - } else { - if (yych <= '@') goto yy616; - if (yych <= 'Z') goto yy149; - } - } else { - if (yych <= '`') { - if (yych <= '_') goto yy617; - } else { - if (yych <= 'z') goto yy149; - if (yych >= 0x80) goto yy149; - } + if (yybm[0+(yych = *YYCURSOR)] & 16) { + goto yy127; } -yy616: - YYDEBUG(616, *YYCURSOR); + YYDEBUG(741, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1380 "Zend/zend_language_scanner.l" +#line 1761 "Zend/zend_language_scanner.l" { - RETURN_TOKEN(T_REQUIRE); + RETURN_TOKEN(T_METHOD_C); } -#line 5963 "Zend/zend_language_scanner.c" -yy617: - YYDEBUG(617, *YYCURSOR); +#line 7037 "Zend/zend_language_scanner.c" +yy742: + YYDEBUG(742, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'O') goto yy618; - if (yych != 'o') goto yy150; -yy618: - YYDEBUG(618, *YYCURSOR); + if (yych == 'E') goto yy747; + if (yych == 'e') goto yy747; + goto yy128; +yy743: + YYDEBUG(743, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'N') goto yy619; - if (yych != 'n') goto yy150; -yy619: - YYDEBUG(619, *YYCURSOR); + if (yych == 'E') goto yy748; + if (yych == 'e') goto yy748; + goto yy128; +yy744: + YYDEBUG(744, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'C') goto yy620; - if (yych != 'c') goto yy150; -yy620: - YYDEBUG(620, *YYCURSOR); + if (yych == 'E') goto yy750; + if (yych == 'e') goto yy750; + goto yy128; +yy745: + YYDEBUG(745, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'E') goto yy621; - if (yych != 'e') goto yy150; -yy621: - YYDEBUG(621, *YYCURSOR); + if (yych == '_') goto yy752; + goto yy128; +yy746: + YYDEBUG(746, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'I') goto yy754; + if (yych == 'i') goto yy754; + goto yy128; +yy747: + YYDEBUG(747, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == '_') goto yy755; + goto yy128; +yy748: + YYDEBUG(748, *YYCURSOR); ++YYCURSOR; - if (yybm[0+(yych = *YYCURSOR)] & 4) { - goto yy149; + if (yybm[0+(yych = *YYCURSOR)] & 16) { + goto yy127; } - YYDEBUG(622, *YYCURSOR); + YYDEBUG(749, *YYCURSOR); + yyleng = YYCURSOR - SCNG(yy_text); +#line 1376 "Zend/zend_language_scanner.l" + { + RETURN_TOKEN(T_INCLUDE_ONCE); +} +#line 7084 "Zend/zend_language_scanner.c" +yy750: + YYDEBUG(750, *YYCURSOR); + ++YYCURSOR; + if (yybm[0+(yych = *YYCURSOR)] & 16) { + goto yy127; + } + YYDEBUG(751, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); #line 1384 "Zend/zend_language_scanner.l" { RETURN_TOKEN(T_REQUIRE_ONCE); } -#line 5996 "Zend/zend_language_scanner.c" -yy623: - YYDEBUG(623, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'R') goto yy624; - if (yych != 'r') goto yy150; -yy624: - YYDEBUG(624, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'N') goto yy625; - if (yych != 'n') goto yy150; -yy625: - YYDEBUG(625, *YYCURSOR); - ++YYCURSOR; - if (yybm[0+(yych = *YYCURSOR)] & 4) { - goto yy149; - } - YYDEBUG(626, *YYCURSOR); - yyleng = YYCURSOR - SCNG(yy_text); -#line 1141 "Zend/zend_language_scanner.l" - { - RETURN_TOKEN(T_RETURN); -} -#line 6019 "Zend/zend_language_scanner.c" -yy627: - YYDEBUG(627, *YYCURSOR); - yych = *++YYCURSOR; - if (yych <= 'T') { - if (yych <= 'L') { - if (yych <= 'K') goto yy150; - goto yy650; - } else { - if (yych <= 'R') goto yy150; - if (yych <= 'S') goto yy649; - goto yy648; - } - } else { - if (yych <= 'r') { - if (yych == 'l') goto yy650; - goto yy150; - } else { - if (yych <= 's') goto yy649; - if (yych <= 't') goto yy648; - goto yy150; - } - } -yy628: - YYDEBUG(628, *YYCURSOR); - yych = *++YYCURSOR; - if (yych <= 'O') { - if (yych == 'A') goto yy640; - if (yych <= 'N') goto yy150; - goto yy641; - } else { - if (yych <= 'a') { - if (yych <= '`') goto yy150; - goto yy640; - } else { - if (yych == 'o') goto yy641; - goto yy150; - } - } -yy629: - YYDEBUG(629, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'N') goto yy630; - if (yych != 'n') goto yy150; -yy630: - YYDEBUG(630, *YYCURSOR); - yych = *++YYCURSOR; - if (yych <= 'T') { - if (yych <= 'R') goto yy150; - if (yych >= 'T') goto yy632; - } else { - if (yych <= 'r') goto yy150; - if (yych <= 's') goto yy631; - if (yych <= 't') goto yy632; - goto yy150; - } -yy631: - YYDEBUG(631, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'T') goto yy638; - if (yych == 't') goto yy638; - goto yy150; -yy632: - YYDEBUG(632, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'I') goto yy633; - if (yych != 'i') goto yy150; -yy633: - YYDEBUG(633, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'N') goto yy634; - if (yych != 'n') goto yy150; -yy634: - YYDEBUG(634, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'U') goto yy635; - if (yych != 'u') goto yy150; -yy635: - YYDEBUG(635, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'E') goto yy636; - if (yych != 'e') goto yy150; -yy636: - YYDEBUG(636, *YYCURSOR); - ++YYCURSOR; - if (yybm[0+(yych = *YYCURSOR)] & 4) { - goto yy149; - } - YYDEBUG(637, *YYCURSOR); - yyleng = YYCURSOR - SCNG(yy_text); -#line 1250 "Zend/zend_language_scanner.l" - { - RETURN_TOKEN(T_CONTINUE); -} -#line 6113 "Zend/zend_language_scanner.c" -yy638: - YYDEBUG(638, *YYCURSOR); - ++YYCURSOR; - if (yybm[0+(yych = *YYCURSOR)] & 4) { - goto yy149; - } - YYDEBUG(639, *YYCURSOR); - yyleng = YYCURSOR - SCNG(yy_text); -#line 1137 "Zend/zend_language_scanner.l" - { - RETURN_TOKEN(T_CONST); -} -#line 6126 "Zend/zend_language_scanner.c" -yy640: - YYDEBUG(640, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'S') goto yy645; - if (yych == 's') goto yy645; - goto yy150; -yy641: - YYDEBUG(641, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'N') goto yy642; - if (yych != 'n') goto yy150; -yy642: - YYDEBUG(642, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'E') goto yy643; - if (yych != 'e') goto yy150; -yy643: - YYDEBUG(643, *YYCURSOR); - ++YYCURSOR; - if (yybm[0+(yych = *YYCURSOR)] & 4) { - goto yy149; - } - YYDEBUG(644, *YYCURSOR); - yyleng = YYCURSOR - SCNG(yy_text); -#line 1332 "Zend/zend_language_scanner.l" - { - RETURN_TOKEN(T_CLONE); -} -#line 6155 "Zend/zend_language_scanner.c" -yy645: - YYDEBUG(645, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'S') goto yy646; - if (yych != 's') goto yy150; -yy646: - YYDEBUG(646, *YYCURSOR); - ++YYCURSOR; - if (yybm[0+(yych = *YYCURSOR)] & 4) { - goto yy149; - } - YYDEBUG(647, *YYCURSOR); - yyleng = YYCURSOR - SCNG(yy_text); -#line 1266 "Zend/zend_language_scanner.l" - { - RETURN_TOKEN(T_CLASS); -} -#line 6173 "Zend/zend_language_scanner.c" -yy648: - YYDEBUG(648, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'C') goto yy659; - if (yych == 'c') goto yy659; - goto yy150; -yy649: - YYDEBUG(649, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'E') goto yy657; - if (yych == 'e') goto yy657; - goto yy150; -yy650: - YYDEBUG(650, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'L') goto yy651; - if (yych != 'l') goto yy150; -yy651: - YYDEBUG(651, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'A') goto yy652; - if (yych != 'a') goto yy150; -yy652: - YYDEBUG(652, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'B') goto yy653; - if (yych != 'b') goto yy150; -yy653: - YYDEBUG(653, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'L') goto yy654; - if (yych != 'l') goto yy150; -yy654: - YYDEBUG(654, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'E') goto yy655; - if (yych != 'e') goto yy150; -yy655: - YYDEBUG(655, *YYCURSOR); - ++YYCURSOR; - if (yybm[0+(yych = *YYCURSOR)] & 4) { - goto yy149; - } - YYDEBUG(656, *YYCURSOR); - yyleng = YYCURSOR - SCNG(yy_text); -#line 1456 "Zend/zend_language_scanner.l" - { - RETURN_TOKEN(T_CALLABLE); -} -#line 6223 "Zend/zend_language_scanner.c" -yy657: - YYDEBUG(657, *YYCURSOR); - ++YYCURSOR; - if (yybm[0+(yych = *YYCURSOR)] & 4) { - goto yy149; - } - YYDEBUG(658, *YYCURSOR); - yyleng = YYCURSOR - SCNG(yy_text); -#line 1238 "Zend/zend_language_scanner.l" - { - RETURN_TOKEN(T_CASE); -} -#line 6236 "Zend/zend_language_scanner.c" -yy659: - YYDEBUG(659, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'H') goto yy660; - if (yych != 'h') goto yy150; -yy660: - YYDEBUG(660, *YYCURSOR); - ++YYCURSOR; - if (yybm[0+(yych = *YYCURSOR)] & 4) { - goto yy149; - } - YYDEBUG(661, *YYCURSOR); - yyleng = YYCURSOR - SCNG(yy_text); -#line 1158 "Zend/zend_language_scanner.l" - { - RETURN_TOKEN(T_CATCH); -} -#line 6254 "Zend/zend_language_scanner.c" -yy662: - YYDEBUG(662, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'N') goto yy679; - if (yych == 'n') goto yy679; - goto yy150; -yy663: - YYDEBUG(663, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'R') goto yy672; - if (yych == 'r') goto yy672; - goto yy150; -yy664: - YYDEBUG(664, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'N') goto yy665; - if (yych != 'n') goto yy150; -yy665: - YYDEBUG(665, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'C') goto yy666; - if (yych != 'c') goto yy150; -yy666: - YYDEBUG(666, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'T') goto yy667; - if (yych != 't') goto yy150; -yy667: - YYDEBUG(667, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'I') goto yy668; - if (yych != 'i') goto yy150; -yy668: - YYDEBUG(668, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'O') goto yy669; - if (yych != 'o') goto yy150; -yy669: - YYDEBUG(669, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'N') goto yy670; - if (yych != 'n') goto yy150; -yy670: - YYDEBUG(670, *YYCURSOR); - ++YYCURSOR; - if (yybm[0+(yych = *YYCURSOR)] & 4) { - goto yy149; - } - YYDEBUG(671, *YYCURSOR); - yyleng = YYCURSOR - SCNG(yy_text); -#line 1133 "Zend/zend_language_scanner.l" - { - RETURN_TOKEN(T_FUNCTION); -} -#line 6309 "Zend/zend_language_scanner.c" -yy672: - YYDEBUG(672, *YYCURSOR); - ++YYCURSOR; - if ((yych = *YYCURSOR) <= '^') { - if (yych <= '@') { - if (yych <= '/') goto yy673; - if (yych <= '9') goto yy149; - } else { - if (yych == 'E') goto yy674; - if (yych <= 'Z') goto yy149; - } - } else { - if (yych <= 'd') { - if (yych != '`') goto yy149; - } else { - if (yych <= 'e') goto yy674; - if (yych <= 'z') goto yy149; - if (yych >= 0x80) goto yy149; - } - } -yy673: - YYDEBUG(673, *YYCURSOR); - yyleng = YYCURSOR - SCNG(yy_text); -#line 1198 "Zend/zend_language_scanner.l" - { - RETURN_TOKEN(T_FOR); -} -#line 6337 "Zend/zend_language_scanner.c" -yy674: - YYDEBUG(674, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'A') goto yy675; - if (yych != 'a') goto yy150; -yy675: - YYDEBUG(675, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'C') goto yy676; - if (yych != 'c') goto yy150; -yy676: - YYDEBUG(676, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'H') goto yy677; - if (yych != 'h') goto yy150; -yy677: - YYDEBUG(677, *YYCURSOR); - ++YYCURSOR; - if (yybm[0+(yych = *YYCURSOR)] & 4) { - goto yy149; - } - YYDEBUG(678, *YYCURSOR); - yyleng = YYCURSOR - SCNG(yy_text); -#line 1206 "Zend/zend_language_scanner.l" - { - RETURN_TOKEN(T_FOREACH); -} -#line 6365 "Zend/zend_language_scanner.c" -yy679: - YYDEBUG(679, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'A') goto yy680; - if (yych != 'a') goto yy150; -yy680: - YYDEBUG(680, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'L') goto yy681; - if (yych != 'l') goto yy150; -yy681: - YYDEBUG(681, *YYCURSOR); - ++YYCURSOR; - if ((yych = *YYCURSOR) <= '^') { - if (yych <= '@') { - if (yych <= '/') goto yy682; - if (yych <= '9') goto yy149; - } else { - if (yych == 'L') goto yy683; - if (yych <= 'Z') goto yy149; - } - } else { - if (yych <= 'k') { - if (yych != '`') goto yy149; - } else { - if (yych <= 'l') goto yy683; - if (yych <= 'z') goto yy149; - if (yych >= 0x80) goto yy149; - } - } -yy682: - YYDEBUG(682, *YYCURSOR); - yyleng = YYCURSOR - SCNG(yy_text); -#line 1424 "Zend/zend_language_scanner.l" - { - RETURN_TOKEN(T_FINAL); -} -#line 6403 "Zend/zend_language_scanner.c" -yy683: - YYDEBUG(683, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'Y') goto yy684; - if (yych != 'y') goto yy150; -yy684: - YYDEBUG(684, *YYCURSOR); - ++YYCURSOR; - if (yybm[0+(yych = *YYCURSOR)] & 4) { - goto yy149; - } - YYDEBUG(685, *YYCURSOR); - yyleng = YYCURSOR - SCNG(yy_text); -#line 1162 "Zend/zend_language_scanner.l" - { - RETURN_TOKEN(T_FINALLY); -} -#line 6421 "Zend/zend_language_scanner.c" -yy686: - YYDEBUG(686, *YYCURSOR); - yych = *++YYCURSOR; - if (yych <= 'F') { - if (yych == 'C') goto yy692; - if (yych <= 'E') goto yy150; - goto yy693; - } else { - if (yych <= 'c') { - if (yych <= 'b') goto yy150; - goto yy692; - } else { - if (yych == 'f') goto yy693; - goto yy150; - } - } -yy687: - YYDEBUG(687, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'E') goto yy690; - if (yych == 'e') goto yy690; - goto yy150; -yy688: - YYDEBUG(688, *YYCURSOR); - ++YYCURSOR; - if (yybm[0+(yych = *YYCURSOR)] & 4) { - goto yy149; - } - YYDEBUG(689, *YYCURSOR); - yyleng = YYCURSOR - SCNG(yy_text); -#line 1194 "Zend/zend_language_scanner.l" - { - RETURN_TOKEN(T_DO); -} -#line 6456 "Zend/zend_language_scanner.c" -yy690: - YYDEBUG(690, *YYCURSOR); - ++YYCURSOR; - if (yybm[0+(yych = *YYCURSOR)] & 4) { - goto yy149; - } - YYDEBUG(691, *YYCURSOR); - yyleng = YYCURSOR - SCNG(yy_text); -#line 1129 "Zend/zend_language_scanner.l" - { - RETURN_TOKEN(T_EXIT); -} -#line 6469 "Zend/zend_language_scanner.c" -yy692: - YYDEBUG(692, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'L') goto yy699; - if (yych == 'l') goto yy699; - goto yy150; -yy693: - YYDEBUG(693, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'A') goto yy694; - if (yych != 'a') goto yy150; -yy694: - YYDEBUG(694, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'U') goto yy695; - if (yych != 'u') goto yy150; -yy695: - YYDEBUG(695, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'L') goto yy696; - if (yych != 'l') goto yy150; -yy696: - YYDEBUG(696, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'T') goto yy697; - if (yych != 't') goto yy150; -yy697: - YYDEBUG(697, *YYCURSOR); - ++YYCURSOR; - if (yybm[0+(yych = *YYCURSOR)] & 4) { - goto yy149; - } - YYDEBUG(698, *YYCURSOR); - yyleng = YYCURSOR - SCNG(yy_text); -#line 1242 "Zend/zend_language_scanner.l" - { - RETURN_TOKEN(T_DEFAULT); -} -#line 6508 "Zend/zend_language_scanner.c" -yy699: - YYDEBUG(699, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'A') goto yy700; - if (yych != 'a') goto yy150; -yy700: - YYDEBUG(700, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'R') goto yy701; - if (yych != 'r') goto yy150; -yy701: - YYDEBUG(701, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'E') goto yy702; - if (yych != 'e') goto yy150; -yy702: - YYDEBUG(702, *YYCURSOR); - ++YYCURSOR; - if (yybm[0+(yych = *YYCURSOR)] & 4) { - goto yy149; - } - YYDEBUG(703, *YYCURSOR); - yyleng = YYCURSOR - SCNG(yy_text); -#line 1214 "Zend/zend_language_scanner.l" - { - RETURN_TOKEN(T_DECLARE); -} -#line 6536 "Zend/zend_language_scanner.c" -yy704: - YYDEBUG(704, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'H') goto yy766; - if (yych == 'h') goto yy766; - goto yy150; -yy705: - YYDEBUG(705, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'S') goto yy760; - if (yych == 's') goto yy760; - goto yy150; -yy706: - YYDEBUG(706, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'P') goto yy756; - if (yych == 'p') goto yy756; - goto yy150; -yy707: - YYDEBUG(707, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'D') goto yy722; - if (yych == 'd') goto yy722; - goto yy150; -yy708: - YYDEBUG(708, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'A') goto yy719; - if (yych == 'a') goto yy719; - goto yy150; -yy709: - YYDEBUG(709, *YYCURSOR); - yych = *++YYCURSOR; - if (yych <= 'T') { - if (yych == 'I') goto yy710; - if (yych <= 'S') goto yy150; - goto yy711; - } else { - if (yych <= 'i') { - if (yych <= 'h') goto yy150; - } else { - if (yych == 't') goto yy711; - goto yy150; - } - } -yy710: - YYDEBUG(710, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'T') goto yy717; - if (yych == 't') goto yy717; - goto yy150; -yy711: - YYDEBUG(711, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'E') goto yy712; - if (yych != 'e') goto yy150; -yy712: - YYDEBUG(712, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'N') goto yy713; - if (yych != 'n') goto yy150; -yy713: - YYDEBUG(713, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'D') goto yy714; - if (yych != 'd') goto yy150; -yy714: - YYDEBUG(714, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'S') goto yy715; - if (yych != 's') goto yy150; -yy715: - YYDEBUG(715, *YYCURSOR); - ++YYCURSOR; - if (yybm[0+(yych = *YYCURSOR)] & 4) { - goto yy149; - } - YYDEBUG(716, *YYCURSOR); - yyleng = YYCURSOR - SCNG(yy_text); -#line 1278 "Zend/zend_language_scanner.l" - { - RETURN_TOKEN(T_EXTENDS); -} -#line 6620 "Zend/zend_language_scanner.c" -yy717: - YYDEBUG(717, *YYCURSOR); - ++YYCURSOR; - if (yybm[0+(yych = *YYCURSOR)] & 4) { - goto yy149; - } - YYDEBUG(718, *YYCURSOR); - yyleng = YYCURSOR - SCNG(yy_text); -#line 1125 "Zend/zend_language_scanner.l" - { - RETURN_TOKEN(T_EXIT); -} -#line 6633 "Zend/zend_language_scanner.c" -yy719: - YYDEBUG(719, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'L') goto yy720; - if (yych != 'l') goto yy150; -yy720: - YYDEBUG(720, *YYCURSOR); - ++YYCURSOR; - if (yybm[0+(yych = *YYCURSOR)] & 4) { - goto yy149; - } - YYDEBUG(721, *YYCURSOR); - yyleng = YYCURSOR - SCNG(yy_text); -#line 1368 "Zend/zend_language_scanner.l" - { - RETURN_TOKEN(T_EVAL); -} -#line 6651 "Zend/zend_language_scanner.c" -yy722: - YYDEBUG(722, *YYCURSOR); - yych = *++YYCURSOR; - YYDEBUG(-1, yych); - switch (yych) { - case 'D': - case 'd': goto yy723; - case 'F': - case 'f': goto yy724; - case 'I': - case 'i': goto yy725; - case 'S': - case 's': goto yy726; - case 'W': - case 'w': goto yy727; - default: goto yy150; - } -yy723: - YYDEBUG(723, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'E') goto yy749; - if (yych == 'e') goto yy749; - goto yy150; -yy724: - YYDEBUG(724, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'O') goto yy741; - if (yych == 'o') goto yy741; - goto yy150; -yy725: - YYDEBUG(725, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'F') goto yy739; - if (yych == 'f') goto yy739; - goto yy150; -yy726: - YYDEBUG(726, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'W') goto yy733; - if (yych == 'w') goto yy733; - goto yy150; -yy727: - YYDEBUG(727, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'H') goto yy728; - if (yych != 'h') goto yy150; -yy728: - YYDEBUG(728, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'I') goto yy729; - if (yych != 'i') goto yy150; -yy729: - YYDEBUG(729, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'L') goto yy730; - if (yych != 'l') goto yy150; -yy730: - YYDEBUG(730, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'E') goto yy731; - if (yych != 'e') goto yy150; -yy731: - YYDEBUG(731, *YYCURSOR); - ++YYCURSOR; - if (yybm[0+(yych = *YYCURSOR)] & 4) { - goto yy149; - } - YYDEBUG(732, *YYCURSOR); - yyleng = YYCURSOR - SCNG(yy_text); -#line 1190 "Zend/zend_language_scanner.l" - { - RETURN_TOKEN(T_ENDWHILE); -} -#line 6725 "Zend/zend_language_scanner.c" -yy733: - YYDEBUG(733, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'I') goto yy734; - if (yych != 'i') goto yy150; -yy734: - YYDEBUG(734, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'T') goto yy735; - if (yych != 't') goto yy150; -yy735: - YYDEBUG(735, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'C') goto yy736; - if (yych != 'c') goto yy150; -yy736: - YYDEBUG(736, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'H') goto yy737; - if (yych != 'h') goto yy150; -yy737: - YYDEBUG(737, *YYCURSOR); - ++YYCURSOR; - if (yybm[0+(yych = *YYCURSOR)] & 4) { - goto yy149; - } - YYDEBUG(738, *YYCURSOR); - yyleng = YYCURSOR - SCNG(yy_text); -#line 1234 "Zend/zend_language_scanner.l" - { - RETURN_TOKEN(T_ENDSWITCH); -} -#line 6758 "Zend/zend_language_scanner.c" -yy739: - YYDEBUG(739, *YYCURSOR); - ++YYCURSOR; - if (yybm[0+(yych = *YYCURSOR)] & 4) { - goto yy149; - } - YYDEBUG(740, *YYCURSOR); - yyleng = YYCURSOR - SCNG(yy_text); -#line 1178 "Zend/zend_language_scanner.l" - { - RETURN_TOKEN(T_ENDIF); -} -#line 6771 "Zend/zend_language_scanner.c" -yy741: - YYDEBUG(741, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'R') goto yy742; - if (yych != 'r') goto yy150; -yy742: - YYDEBUG(742, *YYCURSOR); - ++YYCURSOR; - if ((yych = *YYCURSOR) <= '^') { - if (yych <= '@') { - if (yych <= '/') goto yy743; - if (yych <= '9') goto yy149; - } else { - if (yych == 'E') goto yy744; - if (yych <= 'Z') goto yy149; - } - } else { - if (yych <= 'd') { - if (yych != '`') goto yy149; - } else { - if (yych <= 'e') goto yy744; - if (yych <= 'z') goto yy149; - if (yych >= 0x80) goto yy149; - } - } -yy743: - YYDEBUG(743, *YYCURSOR); - yyleng = YYCURSOR - SCNG(yy_text); -#line 1202 "Zend/zend_language_scanner.l" - { - RETURN_TOKEN(T_ENDFOR); -} -#line 6804 "Zend/zend_language_scanner.c" -yy744: - YYDEBUG(744, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'A') goto yy745; - if (yych != 'a') goto yy150; -yy745: - YYDEBUG(745, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'C') goto yy746; - if (yych != 'c') goto yy150; -yy746: - YYDEBUG(746, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'H') goto yy747; - if (yych != 'h') goto yy150; -yy747: - YYDEBUG(747, *YYCURSOR); - ++YYCURSOR; - if (yybm[0+(yych = *YYCURSOR)] & 4) { - goto yy149; - } - YYDEBUG(748, *YYCURSOR); - yyleng = YYCURSOR - SCNG(yy_text); -#line 1210 "Zend/zend_language_scanner.l" - { - RETURN_TOKEN(T_ENDFOREACH); -} -#line 6832 "Zend/zend_language_scanner.c" -yy749: - YYDEBUG(749, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'C') goto yy750; - if (yych != 'c') goto yy150; -yy750: - YYDEBUG(750, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'L') goto yy751; - if (yych != 'l') goto yy150; -yy751: - YYDEBUG(751, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'A') goto yy752; - if (yych != 'a') goto yy150; +#line 7097 "Zend/zend_language_scanner.c" yy752: YYDEBUG(752, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'R') goto yy753; - if (yych != 'r') goto yy150; -yy753: + ++YYCURSOR; + if (yybm[0+(yych = *YYCURSOR)] & 16) { + goto yy127; + } YYDEBUG(753, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'E') goto yy754; - if (yych != 'e') goto yy150; + yyleng = YYCURSOR - SCNG(yy_text); +#line 1757 "Zend/zend_language_scanner.l" + { + RETURN_TOKEN(T_FUNC_C); +} +#line 7110 "Zend/zend_language_scanner.c" yy754: YYDEBUG(754, *YYCURSOR); - ++YYCURSOR; - if (yybm[0+(yych = *YYCURSOR)] & 4) { - goto yy149; - } + yych = *++YYCURSOR; + if (yych == 'L') goto yy756; + if (yych == 'l') goto yy756; + goto yy128; +yy755: YYDEBUG(755, *YYCURSOR); - yyleng = YYCURSOR - SCNG(yy_text); -#line 1218 "Zend/zend_language_scanner.l" - { - RETURN_TOKEN(T_ENDDECLARE); -} -#line 6870 "Zend/zend_language_scanner.c" + yych = *++YYCURSOR; + if (yych == '_') goto yy757; + goto yy128; yy756: YYDEBUG(756, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'T') goto yy757; - if (yych != 't') goto yy150; + if (yych == 'E') goto yy759; + if (yych == 'e') goto yy759; + goto yy128; yy757: YYDEBUG(757, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'Y') goto yy758; - if (yych != 'y') goto yy150; -yy758: - YYDEBUG(758, *YYCURSOR); ++YYCURSOR; - if (yybm[0+(yych = *YYCURSOR)] & 4) { - goto yy149; + if (yybm[0+(yych = *YYCURSOR)] & 16) { + goto yy127; } - YYDEBUG(759, *YYCURSOR); + YYDEBUG(758, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1408 "Zend/zend_language_scanner.l" +#line 1777 "Zend/zend_language_scanner.l" { - RETURN_TOKEN(T_EMPTY); + RETURN_TOKEN(T_NS_C); } -#line 6893 "Zend/zend_language_scanner.c" +#line 7140 "Zend/zend_language_scanner.c" +yy759: + YYDEBUG(759, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'R') goto yy760; + if (yych != 'r') goto yy128; yy760: YYDEBUG(760, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'E') goto yy761; - if (yych != 'e') goto yy150; -yy761: + ++YYCURSOR; + if (yybm[0+(yych = *YYCURSOR)] & 16) { + goto yy127; + } YYDEBUG(761, *YYCURSOR); - ++YYCURSOR; - if ((yych = *YYCURSOR) <= '^') { - if (yych <= '@') { - if (yych <= '/') goto yy762; - if (yych <= '9') goto yy149; - } else { - if (yych == 'I') goto yy763; - if (yych <= 'Z') goto yy149; - } - } else { - if (yych <= 'h') { - if (yych != '`') goto yy149; - } else { - if (yych <= 'i') goto yy763; - if (yych <= 'z') goto yy149; - if (yych >= 0x80) goto yy149; - } - } -yy762: - YYDEBUG(762, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1182 "Zend/zend_language_scanner.l" +#line 1412 "Zend/zend_language_scanner.l" { - RETURN_TOKEN(T_ELSE); + RETURN_TOKEN(T_HALT_COMPILER); } -#line 6926 "Zend/zend_language_scanner.c" -yy763: - YYDEBUG(763, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'F') goto yy764; - if (yych != 'f') goto yy150; -yy764: - YYDEBUG(764, *YYCURSOR); - ++YYCURSOR; - if (yybm[0+(yych = *YYCURSOR)] & 4) { - goto yy149; - } - YYDEBUG(765, *YYCURSOR); - yyleng = YYCURSOR - SCNG(yy_text); -#line 1174 "Zend/zend_language_scanner.l" - { - RETURN_TOKEN(T_ELSEIF); -} -#line 6944 "Zend/zend_language_scanner.c" -yy766: - YYDEBUG(766, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'O') goto yy767; - if (yych != 'o') goto yy150; -yy767: - YYDEBUG(767, *YYCURSOR); - ++YYCURSOR; - if (yybm[0+(yych = *YYCURSOR)] & 4) { - goto yy149; - } - YYDEBUG(768, *YYCURSOR); - yyleng = YYCURSOR - SCNG(yy_text); -#line 1258 "Zend/zend_language_scanner.l" - { - RETURN_TOKEN(T_ECHO); -} -#line 6962 "Zend/zend_language_scanner.c" +#line 7158 "Zend/zend_language_scanner.c" } /* *********************************** */ yyc_ST_LOOKING_FOR_PROPERTY: { static const unsigned char yybm[] = { 0, 0, 0, 0, 0, 0, 0, 0, - 0, 128, 128, 0, 0, 128, 0, 0, + 0, 64, 64, 0, 0, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 128, 0, 0, 0, 0, 0, 0, 0, + 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 64, 64, 64, 64, 64, 64, 64, 64, - 64, 64, 0, 0, 0, 0, 0, 0, - 0, 64, 64, 64, 64, 64, 64, 64, - 64, 64, 64, 64, 64, 64, 64, 64, - 64, 64, 64, 64, 64, 64, 64, 64, - 64, 64, 64, 0, 0, 0, 0, 64, - 0, 64, 64, 64, 64, 64, 64, 64, - 64, 64, 64, 64, 64, 64, 64, 64, - 64, 64, 64, 64, 64, 64, 64, 64, - 64, 64, 64, 0, 0, 0, 0, 0, - 64, 64, 64, 64, 64, 64, 64, 64, - 64, 64, 64, 64, 64, 64, 64, 64, - 64, 64, 64, 64, 64, 64, 64, 64, - 64, 64, 64, 64, 64, 64, 64, 64, - 64, 64, 64, 64, 64, 64, 64, 64, - 64, 64, 64, 64, 64, 64, 64, 64, - 64, 64, 64, 64, 64, 64, 64, 64, - 64, 64, 64, 64, 64, 64, 64, 64, - 64, 64, 64, 64, 64, 64, 64, 64, - 64, 64, 64, 64, 64, 64, 64, 64, - 64, 64, 64, 64, 64, 64, 64, 64, - 64, 64, 64, 64, 64, 64, 64, 64, - 64, 64, 64, 64, 64, 64, 64, 64, - 64, 64, 64, 64, 64, 64, 64, 64, - 64, 64, 64, 64, 64, 64, 64, 64, - 64, 64, 64, 64, 64, 64, 64, 64, + 128, 128, 128, 128, 128, 128, 128, 128, + 128, 128, 0, 0, 0, 0, 0, 0, + 0, 128, 128, 128, 128, 128, 128, 128, + 128, 128, 128, 128, 128, 128, 128, 128, + 128, 128, 128, 128, 128, 128, 128, 128, + 128, 128, 128, 0, 0, 0, 0, 128, + 0, 128, 128, 128, 128, 128, 128, 128, + 128, 128, 128, 128, 128, 128, 128, 128, + 128, 128, 128, 128, 128, 128, 128, 128, + 128, 128, 128, 0, 0, 0, 0, 0, + 128, 128, 128, 128, 128, 128, 128, 128, + 128, 128, 128, 128, 128, 128, 128, 128, + 128, 128, 128, 128, 128, 128, 128, 128, + 128, 128, 128, 128, 128, 128, 128, 128, + 128, 128, 128, 128, 128, 128, 128, 128, + 128, 128, 128, 128, 128, 128, 128, 128, + 128, 128, 128, 128, 128, 128, 128, 128, + 128, 128, 128, 128, 128, 128, 128, 128, + 128, 128, 128, 128, 128, 128, 128, 128, + 128, 128, 128, 128, 128, 128, 128, 128, + 128, 128, 128, 128, 128, 128, 128, 128, + 128, 128, 128, 128, 128, 128, 128, 128, + 128, 128, 128, 128, 128, 128, 128, 128, + 128, 128, 128, 128, 128, 128, 128, 128, + 128, 128, 128, 128, 128, 128, 128, 128, + 128, 128, 128, 128, 128, 128, 128, 128, }; - YYDEBUG(769, *YYCURSOR); + YYDEBUG(762, *YYCURSOR); YYFILL(2); yych = *YYCURSOR; - if (yych <= '-') { - if (yych <= '\r') { - if (yych <= 0x08) goto yy777; - if (yych <= '\n') goto yy771; - if (yych <= '\f') goto yy777; + if (yybm[0+yych] & 64) { + goto yy766; + } + if (yych <= '^') { + if (yych <= '-') { + if (yych >= '-') goto yy769; } else { - if (yych == ' ') goto yy771; - if (yych <= ',') goto yy777; - goto yy773; + if (yych <= '@') goto yy764; + if (yych <= 'Z') goto yy770; } } else { - if (yych <= '_') { - if (yych <= '@') goto yy777; - if (yych <= 'Z') goto yy775; - if (yych <= '^') goto yy777; - goto yy775; + if (yych <= '`') { + if (yych <= '_') goto yy770; } else { - if (yych <= '`') goto yy777; - if (yych <= 'z') goto yy775; - if (yych <= 0x7F) goto yy777; - goto yy775; + if (yych <= 'z') goto yy770; + if (yych >= 0x80) goto yy770; } } -yy771: - YYDEBUG(771, *YYCURSOR); +yy764: + YYDEBUG(764, *YYCURSOR); ++YYCURSOR; - yych = *YYCURSOR; - goto yy783; -yy772: - YYDEBUG(772, *YYCURSOR); - yyleng = YYCURSOR - SCNG(yy_text); -#line 1291 "Zend/zend_language_scanner.l" - { - HANDLE_NEWLINES(yytext, yyleng); - RETURN_TOKEN(T_WHITESPACE); -} -#line 7040 "Zend/zend_language_scanner.c" -yy773: - YYDEBUG(773, *YYCURSOR); - ++YYCURSOR; - if ((yych = *YYCURSOR) == '>') goto yy780; -yy774: - YYDEBUG(774, *YYCURSOR); +yy765: + YYDEBUG(765, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); #line 1306 "Zend/zend_language_scanner.l" { @@ -7050,14 +7226,39 @@ yy774: yy_pop_state(); goto restart; } -#line 7054 "Zend/zend_language_scanner.c" -yy775: - YYDEBUG(775, *YYCURSOR); +#line 7230 "Zend/zend_language_scanner.c" +yy766: + YYDEBUG(766, *YYCURSOR); ++YYCURSOR; + YYFILL(1); yych = *YYCURSOR; - goto yy779; -yy776: - YYDEBUG(776, *YYCURSOR); + YYDEBUG(767, *YYCURSOR); + if (yybm[0+yych] & 64) { + goto yy766; + } + YYDEBUG(768, *YYCURSOR); + yyleng = YYCURSOR - SCNG(yy_text); +#line 1291 "Zend/zend_language_scanner.l" + { + HANDLE_NEWLINES(yytext, yyleng); + RETURN_TOKEN(T_WHITESPACE); +} +#line 7247 "Zend/zend_language_scanner.c" +yy769: + YYDEBUG(769, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == '>') goto yy773; + goto yy765; +yy770: + YYDEBUG(770, *YYCURSOR); + ++YYCURSOR; + YYFILL(1); + yych = *YYCURSOR; + YYDEBUG(771, *YYCURSOR); + if (yybm[0+yych] & 128) { + goto yy770; + } + YYDEBUG(772, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); #line 1300 "Zend/zend_language_scanner.l" { @@ -7065,43 +7266,17 @@ yy776: zend_copy_value(zendlval, yytext, yyleng); RETURN_TOKEN(T_STRING); } -#line 7069 "Zend/zend_language_scanner.c" -yy777: - YYDEBUG(777, *YYCURSOR); - yych = *++YYCURSOR; - goto yy774; -yy778: - YYDEBUG(778, *YYCURSOR); +#line 7270 "Zend/zend_language_scanner.c" +yy773: + YYDEBUG(773, *YYCURSOR); ++YYCURSOR; - YYFILL(1); - yych = *YYCURSOR; -yy779: - YYDEBUG(779, *YYCURSOR); - if (yybm[0+yych] & 64) { - goto yy778; - } - goto yy776; -yy780: - YYDEBUG(780, *YYCURSOR); - ++YYCURSOR; - YYDEBUG(781, *YYCURSOR); + YYDEBUG(774, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); #line 1296 "Zend/zend_language_scanner.l" { RETURN_TOKEN(T_OBJECT_OPERATOR); } -#line 7094 "Zend/zend_language_scanner.c" -yy782: - YYDEBUG(782, *YYCURSOR); - ++YYCURSOR; - YYFILL(1); - yych = *YYCURSOR; -yy783: - YYDEBUG(783, *YYCURSOR); - if (yybm[0+yych] & 128) { - goto yy782; - } - goto yy772; +#line 7280 "Zend/zend_language_scanner.c" } /* *********************************** */ yyc_ST_LOOKING_FOR_VARNAME: @@ -7140,41 +7315,23 @@ yyc_ST_LOOKING_FOR_VARNAME: 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, }; - YYDEBUG(784, *YYCURSOR); + YYDEBUG(775, *YYCURSOR); YYFILL(2); yych = *YYCURSOR; if (yych <= '_') { - if (yych <= '@') goto yy788; - if (yych <= 'Z') goto yy786; - if (yych <= '^') goto yy788; + if (yych <= '@') goto yy777; + if (yych <= 'Z') goto yy779; + if (yych >= '_') goto yy779; } else { - if (yych <= '`') goto yy788; - if (yych <= 'z') goto yy786; - if (yych <= 0x7F) goto yy788; + if (yych <= '`') goto yy777; + if (yych <= 'z') goto yy779; + if (yych >= 0x80) goto yy779; } -yy786: - YYDEBUG(786, *YYCURSOR); - yyaccept = 0; - yych = *(YYMARKER = ++YYCURSOR); - if (yych <= '_') { - if (yych <= '@') { - if (yych <= '/') goto yy787; - if (yych <= '9') goto yy790; - } else { - if (yych <= '[') goto yy790; - if (yych >= '_') goto yy790; - } - } else { - if (yych <= '|') { - if (yych <= '`') goto yy787; - if (yych <= 'z') goto yy790; - } else { - if (yych <= '}') goto yy790; - if (yych >= 0x80) goto yy790; - } - } -yy787: - YYDEBUG(787, *YYCURSOR); +yy777: + YYDEBUG(777, *YYCURSOR); + ++YYCURSOR; +yy778: + YYDEBUG(778, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); #line 1611 "Zend/zend_language_scanner.l" { @@ -7183,30 +7340,52 @@ yy787: yy_push_state(ST_IN_SCRIPTING); goto restart; } -#line 7187 "Zend/zend_language_scanner.c" -yy788: - YYDEBUG(788, *YYCURSOR); - yych = *++YYCURSOR; - goto yy787; -yy789: - YYDEBUG(789, *YYCURSOR); +#line 7344 "Zend/zend_language_scanner.c" +yy779: + YYDEBUG(779, *YYCURSOR); + yych = *(YYMARKER = ++YYCURSOR); + if (yych <= '_') { + if (yych <= '@') { + if (yych <= '/') goto yy778; + if (yych <= '9') goto yy781; + goto yy778; + } else { + if (yych <= '[') goto yy781; + if (yych <= '^') goto yy778; + goto yy781; + } + } else { + if (yych <= '|') { + if (yych <= '`') goto yy778; + if (yych <= 'z') goto yy781; + goto yy778; + } else { + if (yych <= '}') goto yy781; + if (yych <= 0x7F) goto yy778; + goto yy781; + } + } +yy780: + YYDEBUG(780, *YYCURSOR); ++YYCURSOR; YYFILL(1); yych = *YYCURSOR; -yy790: - YYDEBUG(790, *YYCURSOR); +yy781: + YYDEBUG(781, *YYCURSOR); if (yybm[0+yych] & 128) { - goto yy789; + goto yy780; } - if (yych == '[') goto yy792; - if (yych == '}') goto yy792; - YYDEBUG(791, *YYCURSOR); + if (yych <= '@') goto yy782; + if (yych <= '[') goto yy783; + if (yych == '}') goto yy783; +yy782: + YYDEBUG(782, *YYCURSOR); YYCURSOR = YYMARKER; - goto yy787; -yy792: - YYDEBUG(792, *YYCURSOR); + goto yy778; +yy783: + YYDEBUG(783, *YYCURSOR); ++YYCURSOR; - YYDEBUG(793, *YYCURSOR); + YYDEBUG(784, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); #line 1602 "Zend/zend_language_scanner.l" { @@ -7216,16 +7395,16 @@ yy792: yy_push_state(ST_IN_SCRIPTING); RETURN_TOKEN(T_STRING_VARNAME); } -#line 7220 "Zend/zend_language_scanner.c" +#line 7399 "Zend/zend_language_scanner.c" } /* *********************************** */ yyc_ST_NOWDOC: - YYDEBUG(794, *YYCURSOR); + YYDEBUG(785, *YYCURSOR); YYFILL(1); yych = *YYCURSOR; - YYDEBUG(796, *YYCURSOR); + YYDEBUG(787, *YYCURSOR); ++YYCURSOR; - YYDEBUG(797, *YYCURSOR); + YYDEBUG(788, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); #line 2330 "Zend/zend_language_scanner.l" { @@ -7283,7 +7462,7 @@ nowdoc_scan_done: HANDLE_NEWLINES(yytext, yyleng - newline); RETURN_TOKEN(T_ENCAPSED_AND_WHITESPACE); } -#line 7287 "Zend/zend_language_scanner.c" +#line 7466 "Zend/zend_language_scanner.c" /* *********************************** */ yyc_ST_VAR_OFFSET: { @@ -7294,99 +7473,152 @@ yyc_ST_VAR_OFFSET: 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 240, 240, 112, 112, 112, 112, 112, 112, - 112, 112, 0, 0, 0, 0, 0, 0, - 0, 80, 80, 80, 80, 80, 80, 16, - 16, 16, 16, 16, 16, 16, 16, 16, - 16, 16, 16, 16, 16, 16, 16, 16, - 16, 16, 16, 0, 0, 0, 0, 16, - 0, 80, 80, 80, 80, 80, 80, 16, - 16, 16, 16, 16, 16, 16, 16, 16, - 16, 16, 16, 16, 16, 16, 16, 16, - 16, 16, 16, 0, 0, 0, 0, 0, - 16, 16, 16, 16, 16, 16, 16, 16, - 16, 16, 16, 16, 16, 16, 16, 16, - 16, 16, 16, 16, 16, 16, 16, 16, - 16, 16, 16, 16, 16, 16, 16, 16, - 16, 16, 16, 16, 16, 16, 16, 16, - 16, 16, 16, 16, 16, 16, 16, 16, - 16, 16, 16, 16, 16, 16, 16, 16, - 16, 16, 16, 16, 16, 16, 16, 16, - 16, 16, 16, 16, 16, 16, 16, 16, - 16, 16, 16, 16, 16, 16, 16, 16, - 16, 16, 16, 16, 16, 16, 16, 16, - 16, 16, 16, 16, 16, 16, 16, 16, - 16, 16, 16, 16, 16, 16, 16, 16, - 16, 16, 16, 16, 16, 16, 16, 16, - 16, 16, 16, 16, 16, 16, 16, 16, - 16, 16, 16, 16, 16, 16, 16, 16, + 240, 240, 176, 176, 176, 176, 176, 176, + 176, 176, 0, 0, 0, 0, 0, 0, + 0, 160, 160, 160, 160, 160, 160, 32, + 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 0, 0, 0, 0, 32, + 0, 160, 160, 160, 160, 160, 160, 32, + 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 0, 0, 0, 0, 0, + 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, }; - YYDEBUG(798, *YYCURSOR); + YYDEBUG(789, *YYCURSOR); YYFILL(3); yych = *YYCURSOR; if (yych <= '0') { if (yych <= ' ') { if (yych <= '\f') { - if (yych <= 0x08) goto yy812; - if (yych <= '\n') goto yy808; - goto yy812; + if (yych <= 0x08) goto yy791; + if (yych <= '\n') goto yy793; } else { - if (yych <= '\r') goto yy808; - if (yych <= 0x1F) goto yy812; - goto yy808; + if (yych <= '\r') goto yy793; + if (yych >= ' ') goto yy793; } } else { if (yych <= '$') { - if (yych <= '"') goto yy807; - if (yych <= '#') goto yy808; - goto yy803; + if (yych <= '"') goto yy795; + if (yych <= '#') goto yy793; + goto yy797; } else { - if (yych == '\'') goto yy808; - if (yych <= '/') goto yy807; + if (yych == '\'') goto yy793; + if (yych <= '/') goto yy795; + goto yy798; } } } else { if (yych <= ']') { if (yych <= 'Z') { - if (yych <= '9') goto yy802; - if (yych <= '@') goto yy807; - goto yy810; + if (yych <= '9') goto yy800; + if (yych <= '@') goto yy795; + goto yy802; } else { - if (yych <= '[') goto yy807; - if (yych <= '\\') goto yy808; + if (yych <= '[') goto yy795; + if (yych <= '\\') goto yy793; goto yy805; } } else { if (yych <= '`') { - if (yych == '_') goto yy810; - goto yy807; + if (yych == '_') goto yy802; + goto yy795; } else { - if (yych <= 'z') goto yy810; - if (yych <= '~') goto yy807; - if (yych <= 0x7F) goto yy812; - goto yy810; + if (yych <= 'z') goto yy802; + if (yych <= '~') goto yy795; + if (yych >= 0x80) goto yy802; } } } - YYDEBUG(800, *YYCURSOR); - yyaccept = 0; +yy791: + YYDEBUG(791, *YYCURSOR); + ++YYCURSOR; + YYDEBUG(792, *YYCURSOR); + yyleng = YYCURSOR - SCNG(yy_text); +#line 2387 "Zend/zend_language_scanner.l" + { + if (YYCURSOR > YYLIMIT) { + RETURN_TOKEN(END); + } + + zend_error(E_COMPILE_WARNING,"Unexpected character in input: '%c' (ASCII=%d) state=%d", yytext[0], yytext[0], YYSTATE); + goto restart; +} +#line 7563 "Zend/zend_language_scanner.c" +yy793: + YYDEBUG(793, *YYCURSOR); + ++YYCURSOR; + YYDEBUG(794, *YYCURSOR); + yyleng = YYCURSOR - SCNG(yy_text); +#line 1884 "Zend/zend_language_scanner.l" + { + /* Invalid rule to return a more explicit parse error with proper line number */ + yyless(0); + yy_pop_state(); + ZVAL_NULL(zendlval); + RETURN_TOKEN(T_ENCAPSED_AND_WHITESPACE); +} +#line 7577 "Zend/zend_language_scanner.c" +yy795: + YYDEBUG(795, *YYCURSOR); + ++YYCURSOR; +yy796: + YYDEBUG(796, *YYCURSOR); + yyleng = YYCURSOR - SCNG(yy_text); +#line 1879 "Zend/zend_language_scanner.l" + { + /* Only '[' or '-' can be valid, but returning other tokens will allow a more explicit parse error */ + RETURN_TOKEN(yytext[0]); +} +#line 7589 "Zend/zend_language_scanner.c" +yy797: + YYDEBUG(797, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= '_') { + if (yych <= '@') goto yy796; + if (yych <= 'Z') goto yy807; + if (yych <= '^') goto yy796; + goto yy807; + } else { + if (yych <= '`') goto yy796; + if (yych <= 'z') goto yy807; + if (yych <= 0x7F) goto yy796; + goto yy807; + } +yy798: + YYDEBUG(798, *YYCURSOR); yych = *(YYMARKER = ++YYCURSOR); if (yych <= 'W') { if (yych <= '9') { - if (yych >= '0') goto yy824; + if (yych >= '0') goto yy810; } else { - if (yych == 'B') goto yy821; + if (yych == 'B') goto yy813; } } else { if (yych <= 'b') { - if (yych <= 'X') goto yy823; - if (yych >= 'b') goto yy821; + if (yych <= 'X') goto yy815; + if (yych >= 'b') goto yy813; } else { - if (yych == 'x') goto yy823; + if (yych == 'x') goto yy815; } } -yy801: - YYDEBUG(801, *YYCURSOR); +yy799: + YYDEBUG(799, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); #line 1719 "Zend/zend_language_scanner.l" { /* Offset could be treated as a long */ @@ -7404,32 +7636,34 @@ string: } RETURN_TOKEN(T_NUM_STRING); } -#line 7408 "Zend/zend_language_scanner.c" +#line 7640 "Zend/zend_language_scanner.c" +yy800: + YYDEBUG(800, *YYCURSOR); + ++YYCURSOR; + YYFILL(1); + yych = *YYCURSOR; + YYDEBUG(801, *YYCURSOR); + if (yybm[0+yych] & 16) { + goto yy800; + } + goto yy799; yy802: YYDEBUG(802, *YYCURSOR); - yych = *++YYCURSOR; - goto yy820; -yy803: - YYDEBUG(803, *YYCURSOR); ++YYCURSOR; - if ((yych = *YYCURSOR) <= '_') { - if (yych <= '@') goto yy804; - if (yych <= 'Z') goto yy816; - if (yych >= '_') goto yy816; - } else { - if (yych <= '`') goto yy804; - if (yych <= 'z') goto yy816; - if (yych >= 0x80) goto yy816; + YYFILL(1); + yych = *YYCURSOR; + YYDEBUG(803, *YYCURSOR); + if (yybm[0+yych] & 32) { + goto yy802; } -yy804: YYDEBUG(804, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1879 "Zend/zend_language_scanner.l" +#line 1892 "Zend/zend_language_scanner.l" { - /* Only '[' or '-' can be valid, but returning other tokens will allow a more explicit parse error */ - RETURN_TOKEN(yytext[0]); + zend_copy_value(zendlval, yytext, yyleng); + RETURN_TOKEN(T_STRING); } -#line 7433 "Zend/zend_language_scanner.c" +#line 7667 "Zend/zend_language_scanner.c" yy805: YYDEBUG(805, *YYCURSOR); ++YYCURSOR; @@ -7440,160 +7674,91 @@ yy805: yy_pop_state(); RETURN_TOKEN(']'); } -#line 7444 "Zend/zend_language_scanner.c" +#line 7678 "Zend/zend_language_scanner.c" yy807: YYDEBUG(807, *YYCURSOR); - yych = *++YYCURSOR; - goto yy804; -yy808: + ++YYCURSOR; + YYFILL(1); + yych = *YYCURSOR; YYDEBUG(808, *YYCURSOR); - ++YYCURSOR; - YYDEBUG(809, *YYCURSOR); - yyleng = YYCURSOR - SCNG(yy_text); -#line 1884 "Zend/zend_language_scanner.l" - { - /* Invalid rule to return a more explicit parse error with proper line number */ - yyless(0); - yy_pop_state(); - ZVAL_NULL(zendlval); - RETURN_TOKEN(T_ENCAPSED_AND_WHITESPACE); -} -#line 7462 "Zend/zend_language_scanner.c" -yy810: - YYDEBUG(810, *YYCURSOR); - ++YYCURSOR; - yych = *YYCURSOR; - goto yy815; -yy811: - YYDEBUG(811, *YYCURSOR); - yyleng = YYCURSOR - SCNG(yy_text); -#line 1892 "Zend/zend_language_scanner.l" - { - zend_copy_value(zendlval, yytext, yyleng); - RETURN_TOKEN(T_STRING); -} -#line 7476 "Zend/zend_language_scanner.c" -yy812: - YYDEBUG(812, *YYCURSOR); - ++YYCURSOR; - YYDEBUG(813, *YYCURSOR); - yyleng = YYCURSOR - SCNG(yy_text); -#line 2387 "Zend/zend_language_scanner.l" - { - if (YYCURSOR > YYLIMIT) { - RETURN_TOKEN(END); - } - - zend_error(E_COMPILE_WARNING,"Unexpected character in input: '%c' (ASCII=%d) state=%d", yytext[0], yytext[0], YYSTATE); - goto restart; -} -#line 7491 "Zend/zend_language_scanner.c" -yy814: - YYDEBUG(814, *YYCURSOR); - ++YYCURSOR; - YYFILL(1); - yych = *YYCURSOR; -yy815: - YYDEBUG(815, *YYCURSOR); - if (yybm[0+yych] & 16) { - goto yy814; - } - goto yy811; -yy816: - YYDEBUG(816, *YYCURSOR); - ++YYCURSOR; - YYFILL(1); - yych = *YYCURSOR; - YYDEBUG(817, *YYCURSOR); if (yych <= '^') { if (yych <= '9') { - if (yych >= '0') goto yy816; + if (yych >= '0') goto yy807; } else { - if (yych <= '@') goto yy818; - if (yych <= 'Z') goto yy816; + if (yych <= '@') goto yy809; + if (yych <= 'Z') goto yy807; } } else { if (yych <= '`') { - if (yych <= '_') goto yy816; + if (yych <= '_') goto yy807; } else { - if (yych <= 'z') goto yy816; - if (yych >= 0x80) goto yy816; + if (yych <= 'z') goto yy807; + if (yych >= 0x80) goto yy807; } } -yy818: - YYDEBUG(818, *YYCURSOR); +yy809: + YYDEBUG(809, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); #line 1869 "Zend/zend_language_scanner.l" { zend_copy_value(zendlval, (yytext+1), (yyleng-1)); RETURN_TOKEN(T_VARIABLE); } -#line 7532 "Zend/zend_language_scanner.c" -yy819: - YYDEBUG(819, *YYCURSOR); +#line 7708 "Zend/zend_language_scanner.c" +yy810: + YYDEBUG(810, *YYCURSOR); ++YYCURSOR; YYFILL(1); yych = *YYCURSOR; -yy820: - YYDEBUG(820, *YYCURSOR); - if (yybm[0+yych] & 32) { - goto yy819; - } - goto yy801; -yy821: - YYDEBUG(821, *YYCURSOR); - yych = *++YYCURSOR; - if (yybm[0+yych] & 128) { - goto yy829; - } -yy822: - YYDEBUG(822, *YYCURSOR); - YYCURSOR = YYMARKER; - goto yy801; -yy823: - YYDEBUG(823, *YYCURSOR); - yych = *++YYCURSOR; - if (yybm[0+yych] & 64) { - goto yy827; - } - goto yy822; -yy824: - YYDEBUG(824, *YYCURSOR); - ++YYCURSOR; - YYFILL(1); - yych = *YYCURSOR; - YYDEBUG(825, *YYCURSOR); - if (yych <= '/') goto yy826; - if (yych <= '9') goto yy824; -yy826: - YYDEBUG(826, *YYCURSOR); + YYDEBUG(811, *YYCURSOR); + if (yych <= '/') goto yy812; + if (yych <= '9') goto yy810; +yy812: + YYDEBUG(812, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); #line 1735 "Zend/zend_language_scanner.l" { /* Offset must be treated as a string */ ZVAL_STRINGL(zendlval, yytext, yyleng); RETURN_TOKEN(T_NUM_STRING); } -#line 7577 "Zend/zend_language_scanner.c" -yy827: - YYDEBUG(827, *YYCURSOR); - ++YYCURSOR; - YYFILL(1); - yych = *YYCURSOR; - YYDEBUG(828, *YYCURSOR); +#line 7725 "Zend/zend_language_scanner.c" +yy813: + YYDEBUG(813, *YYCURSOR); + yych = *++YYCURSOR; if (yybm[0+yych] & 64) { - goto yy827; + goto yy816; } - goto yy826; -yy829: - YYDEBUG(829, *YYCURSOR); +yy814: + YYDEBUG(814, *YYCURSOR); + YYCURSOR = YYMARKER; + goto yy799; +yy815: + YYDEBUG(815, *YYCURSOR); + yych = *++YYCURSOR; + if (yybm[0+yych] & 128) { + goto yy818; + } + goto yy814; +yy816: + YYDEBUG(816, *YYCURSOR); ++YYCURSOR; YYFILL(1); yych = *YYCURSOR; - YYDEBUG(830, *YYCURSOR); - if (yybm[0+yych] & 128) { - goto yy829; + YYDEBUG(817, *YYCURSOR); + if (yybm[0+yych] & 64) { + goto yy816; } - goto yy826; + goto yy812; +yy818: + YYDEBUG(818, *YYCURSOR); + ++YYCURSOR; + YYFILL(1); + yych = *YYCURSOR; + YYDEBUG(819, *YYCURSOR); + if (yybm[0+yych] & 128) { + goto yy818; + } + goto yy812; } } #line 2396 "Zend/zend_language_scanner.l" diff --git a/Zend/zend_language_scanner_defs.h b/Zend/zend_language_scanner_defs.h index 5926e3c61d9..c89b1bba457 100644 --- a/Zend/zend_language_scanner_defs.h +++ b/Zend/zend_language_scanner_defs.h @@ -1,4 +1,4 @@ -/* Generated by re2c 0.13.5 */ +/* Generated by re2c 0.16 */ #line 3 "Zend/zend_language_scanner_defs.h" enum YYCONDTYPE { diff --git a/main/strlcat.c b/main/strlcat.c index a885ac304c3..7c388fabc7c 100644 --- a/main/strlcat.c +++ b/main/strlcat.c @@ -22,7 +22,7 @@ #ifndef HAVE_STRLCAT -/* $OpenBSD: strlcat.c,v 1.2 1999/06/17 16:28:58 millert Exp $ */ +/* $OpenBSD: strlcat.c,v 1.17 2016/10/14 18:19:04 dtucker Exp $ */ /* * Copyright (c) 1998 Todd C. Miller @@ -52,7 +52,7 @@ */ #if defined(LIBC_SCCS) && !defined(lint) -static char *rcsid = "$OpenBSD: strlcat.c,v 1.2 1999/06/17 16:28:58 millert Exp $"; +static char *rcsid = "$OpenBSD: strlcat.c,v 1.17 2016/10/14 18:19:04 dtucker Exp $"; #endif /* LIBC_SCCS and not lint */ #include diff --git a/main/strlcpy.c b/main/strlcpy.c index 09008664f6d..1a6c98349dd 100644 --- a/main/strlcpy.c +++ b/main/strlcpy.c @@ -22,7 +22,7 @@ #ifndef HAVE_STRLCPY -/* $OpenBSD: strlcpy.c,v 1.4 1999/05/01 18:56:41 millert Exp $ */ +/* $OpenBSD: strlcpy.c,v 1.15 2016/10/16 17:37:39 dtucker Exp $ */ /* * Copyright (c) 1998 Todd C. Miller @@ -52,7 +52,7 @@ */ #if defined(LIBC_SCCS) && !defined(lint) -static char *rcsid = "$OpenBSD: strlcpy.c,v 1.4 1999/05/01 18:56:41 millert Exp $"; +static char *rcsid = "$OpenBSD: strlcpy.c,v 1.15 2016/10/16 17:37:39 dtucker Exp $"; #endif /* LIBC_SCCS and not lint */ #include From ca46d0acbce55019b970fcd4c1e8a10edfdded93 Mon Sep 17 00:00:00 2001 From: Stanislav Malyshev Date: Fri, 30 Dec 2016 15:34:46 -0800 Subject: [PATCH 12/41] Fix int overflows in phar (bug #73764) --- ext/phar/phar.c | 4 ++-- ext/phar/tests/bug73764.phar | Bin 0 -> 138 bytes ext/phar/tests/bug73764.phpt | 16 ++++++++++++++++ 3 files changed, 18 insertions(+), 2 deletions(-) create mode 100644 ext/phar/tests/bug73764.phar create mode 100644 ext/phar/tests/bug73764.phpt diff --git a/ext/phar/phar.c b/ext/phar/phar.c index 14b80e175ed..532b4c3169a 100644 --- a/ext/phar/phar.c +++ b/ext/phar/phar.c @@ -1055,7 +1055,7 @@ static int phar_parse_pharfile(php_stream *fp, char *fname, int fname_len, char entry.is_persistent = mydata->is_persistent; for (manifest_index = 0; manifest_index < manifest_count; ++manifest_index) { - if (buffer + 4 > endbuffer) { + if (buffer + 24 > endbuffer) { MAPPHAR_FAIL("internal corruption of phar \"%s\" (truncated manifest entry)") } @@ -1069,7 +1069,7 @@ static int phar_parse_pharfile(php_stream *fp, char *fname, int fname_len, char entry.manifest_pos = manifest_index; } - if (entry.filename_len + 20 > endbuffer - buffer) { + if (entry.filename_len > endbuffer - buffer - 20) { MAPPHAR_FAIL("internal corruption of phar \"%s\" (truncated manifest entry)"); } diff --git a/ext/phar/tests/bug73764.phar b/ext/phar/tests/bug73764.phar new file mode 100644 index 0000000000000000000000000000000000000000..89a5ff65426d1b64a7a114c2acf499d57adf0bf9 GIT binary patch literal 138 zcma!#_i*$HiFfw*4e<1F4bsrGR5D{{R1H8~?+K`A3OCnsN_JijO>B_>aa%ifMFopGvt X!v6%-oR_-~ZG09I3bMxC$=3-0z#k^& literal 0 HcmV?d00001 diff --git a/ext/phar/tests/bug73764.phpt b/ext/phar/tests/bug73764.phpt new file mode 100644 index 00000000000..cab314a7317 --- /dev/null +++ b/ext/phar/tests/bug73764.phpt @@ -0,0 +1,16 @@ +--TEST-- +Phar: PHP bug #73764: Crash while loading hostile phar archive +--SKIPIF-- + +--FILE-- +getMessage(); +} +?> +--EXPECTF-- +internal corruption of phar "%sbug73764.phar" (truncated manifest entry) \ No newline at end of file From b28b8b2fee6dfa6fcd13305c581bb835689ac3be Mon Sep 17 00:00:00 2001 From: Stanislav Malyshev Date: Fri, 30 Dec 2016 15:57:24 -0800 Subject: [PATCH 13/41] Fix bug #73768 - Memory corruption when loading hostile phar --- ext/phar/phar.c | 3 +-- ext/phar/tests/bug73768.phar | Bin 0 -> 219 bytes ext/phar/tests/bug73768.phpt | 16 ++++++++++++++++ 3 files changed, 17 insertions(+), 2 deletions(-) create mode 100644 ext/phar/tests/bug73768.phar create mode 100644 ext/phar/tests/bug73768.phpt diff --git a/ext/phar/phar.c b/ext/phar/phar.c index 532b4c3169a..158f41739dc 100644 --- a/ext/phar/phar.c +++ b/ext/phar/phar.c @@ -981,7 +981,6 @@ static int phar_parse_pharfile(php_stream *fp, char *fname, int fname_len, char /* if the alias is stored we enforce it (implicit overrides explicit) */ if (alias && alias_len && (alias_len != (int)tmp_len || strncmp(alias, buffer, tmp_len))) { - buffer[tmp_len] = '\0'; php_stream_close(fp); if (signature) { @@ -989,7 +988,7 @@ static int phar_parse_pharfile(php_stream *fp, char *fname, int fname_len, char } if (error) { - spprintf(error, 0, "cannot load phar \"%s\" with implicit alias \"%s\" under different alias \"%s\"", fname, buffer, alias); + spprintf(error, 0, "cannot load phar \"%s\" with implicit alias \"%.*s\" under different alias \"%s\"", fname, tmp_len, buffer, alias); } efree(savebuf); diff --git a/ext/phar/tests/bug73768.phar b/ext/phar/tests/bug73768.phar new file mode 100644 index 0000000000000000000000000000000000000000..3f429c2365058b70b8f5c8202a4e40982a7874ce GIT binary patch literal 219 zcma!#_i*$HiFfw*4e<1F4bsrGR0ULXuBv)#3M!telMruw@zCw9^QBF!so)VY69hU+eP>0DC bskFrMnm;Gk+K#BDNdh_RLGE^U@^u0LJAy2) literal 0 HcmV?d00001 diff --git a/ext/phar/tests/bug73768.phpt b/ext/phar/tests/bug73768.phpt new file mode 100644 index 00000000000..37a4da0253a --- /dev/null +++ b/ext/phar/tests/bug73768.phpt @@ -0,0 +1,16 @@ +--TEST-- +Phar: PHP bug #73768: Memory corruption when loading hostile phar +--SKIPIF-- + +--FILE-- +getMessage(); +} +?> +--EXPECTF-- +cannot load phar "%sbug73768.phar" with implicit alias "" under different alias "alias.phar" From 16b3003ffc6393e250f069aa28a78dc5a2c064b2 Mon Sep 17 00:00:00 2001 From: Stanislav Malyshev Date: Fri, 30 Dec 2016 16:59:46 -0800 Subject: [PATCH 14/41] Fix bug #73825 - Heap out of bounds read on unserialize in finish_nested_data() --- ext/standard/tests/serialize/bug73825.phpt | 12 ++++ ext/standard/var_unserializer.c | 80 +++++++++++++--------- ext/standard/var_unserializer.re | 20 +++++- 3 files changed, 76 insertions(+), 36 deletions(-) create mode 100644 ext/standard/tests/serialize/bug73825.phpt diff --git a/ext/standard/tests/serialize/bug73825.phpt b/ext/standard/tests/serialize/bug73825.phpt new file mode 100644 index 00000000000..adbfca1bbb1 --- /dev/null +++ b/ext/standard/tests/serialize/bug73825.phpt @@ -0,0 +1,12 @@ +--TEST-- +Bug #73825 Heap out of bounds read on unserialize in finish_nested_data() +--FILE-- + +--EXPECTF-- +Warning: Bad unserialize data in %sbug73825.php on line %d + +Notice: unserialize(): Error at offset 13 of 15 bytes in %sbug73825.php on line %d +bool(false) diff --git a/ext/standard/var_unserializer.c b/ext/standard/var_unserializer.c index 549149267eb..efb0942b05d 100644 --- a/ext/standard/var_unserializer.c +++ b/ext/standard/var_unserializer.c @@ -405,6 +405,11 @@ static inline long object_common1(UNSERIALIZE_PARAMETER, zend_class_entry *ce) { long elements; + if( *p >= max - 2) { + zend_error(E_WARNING, "Bad unserialize data"); + return -1; + } + elements = parse_iv2((*p) + 2, p); (*p) += 2; @@ -415,7 +420,7 @@ static inline long object_common1(UNSERIALIZE_PARAMETER, zend_class_entry *ce) /* If this class implements Serializable, it should not land here but in object_custom(). The passed string obviously doesn't descend from the regular serializer. */ zend_error(E_WARNING, "Erroneous data format for unserializing '%s'", ce->name); - return 0; + return -1; } return elements; @@ -492,7 +497,7 @@ PHPAPI int php_var_unserialize(UNSERIALIZE_PARAMETER) -#line 496 "ext/standard/var_unserializer.c" +#line 501 "ext/standard/var_unserializer.c" { YYCTYPE yych; static const unsigned char yybm[] = { @@ -552,9 +557,9 @@ yy2: yych = *(YYMARKER = ++YYCURSOR); if (yych == ':') goto yy95; yy3: -#line 861 "ext/standard/var_unserializer.re" +#line 875 "ext/standard/var_unserializer.re" { return 0; } -#line 558 "ext/standard/var_unserializer.c" +#line 563 "ext/standard/var_unserializer.c" yy4: yych = *(YYMARKER = ++YYCURSOR); if (yych == ':') goto yy89; @@ -597,13 +602,13 @@ yy13: goto yy3; yy14: ++YYCURSOR; -#line 855 "ext/standard/var_unserializer.re" +#line 869 "ext/standard/var_unserializer.re" { /* this is the case where we have less data than planned */ php_error_docref(NULL TSRMLS_CC, E_NOTICE, "Unexpected end of serialized data"); return 0; /* not sure if it should be 0 or 1 here? */ } -#line 607 "ext/standard/var_unserializer.c" +#line 612 "ext/standard/var_unserializer.c" yy16: yych = *++YYCURSOR; goto yy3; @@ -634,7 +639,7 @@ yy20: yych = *++YYCURSOR; if (yych != '"') goto yy18; ++YYCURSOR; -#line 708 "ext/standard/var_unserializer.re" +#line 717 "ext/standard/var_unserializer.re" { size_t len, len2, len3, maxlen; long elements; @@ -774,6 +779,11 @@ yy20: elements = object_common1(UNSERIALIZE_PASSTHRU, ce); + if (elements < 0) { + efree(class_name); + return 0; + } + if (incomplete_class) { php_store_class_name(*rval, class_name, len2); } @@ -781,7 +791,7 @@ yy20: return object_common2(UNSERIALIZE_PASSTHRU, elements); } -#line 785 "ext/standard/var_unserializer.c" +#line 795 "ext/standard/var_unserializer.c" yy25: yych = *++YYCURSOR; if (yych <= ',') { @@ -806,16 +816,20 @@ yy27: yych = *++YYCURSOR; if (yych != '"') goto yy18; ++YYCURSOR; -#line 699 "ext/standard/var_unserializer.re" +#line 704 "ext/standard/var_unserializer.re" { + long elements; if (!var_hash) return 0; INIT_PZVAL(*rval); - return object_common2(UNSERIALIZE_PASSTHRU, - object_common1(UNSERIALIZE_PASSTHRU, ZEND_STANDARD_CLASS_DEF_PTR)); + elements = object_common1(UNSERIALIZE_PASSTHRU, ZEND_STANDARD_CLASS_DEF_PTR); + if (elements < 0) { + return 0; + } + return object_common2(UNSERIALIZE_PASSTHRU, elements); } -#line 819 "ext/standard/var_unserializer.c" +#line 833 "ext/standard/var_unserializer.c" yy32: yych = *++YYCURSOR; if (yych == '+') goto yy33; @@ -836,7 +850,7 @@ yy34: yych = *++YYCURSOR; if (yych != '{') goto yy18; ++YYCURSOR; -#line 678 "ext/standard/var_unserializer.re" +#line 683 "ext/standard/var_unserializer.re" { long elements = parse_iv(start + 2); /* use iv() not uiv() in order to check data range */ @@ -857,7 +871,7 @@ yy34: return finish_nested_data(UNSERIALIZE_PASSTHRU); } -#line 861 "ext/standard/var_unserializer.c" +#line 875 "ext/standard/var_unserializer.c" yy39: yych = *++YYCURSOR; if (yych == '+') goto yy40; @@ -878,7 +892,7 @@ yy41: yych = *++YYCURSOR; if (yych != '"') goto yy18; ++YYCURSOR; -#line 643 "ext/standard/var_unserializer.re" +#line 648 "ext/standard/var_unserializer.re" { size_t len, maxlen; char *str; @@ -913,7 +927,7 @@ yy41: ZVAL_STRINGL(*rval, str, len, 0); return 1; } -#line 917 "ext/standard/var_unserializer.c" +#line 931 "ext/standard/var_unserializer.c" yy46: yych = *++YYCURSOR; if (yych == '+') goto yy47; @@ -934,7 +948,7 @@ yy48: yych = *++YYCURSOR; if (yych != '"') goto yy18; ++YYCURSOR; -#line 610 "ext/standard/var_unserializer.re" +#line 615 "ext/standard/var_unserializer.re" { size_t len, maxlen; char *str; @@ -967,7 +981,7 @@ yy48: ZVAL_STRINGL(*rval, str, len, 1); return 1; } -#line 971 "ext/standard/var_unserializer.c" +#line 985 "ext/standard/var_unserializer.c" yy53: yych = *++YYCURSOR; if (yych <= '/') { @@ -1055,7 +1069,7 @@ yy61: } yy63: ++YYCURSOR; -#line 600 "ext/standard/var_unserializer.re" +#line 605 "ext/standard/var_unserializer.re" { #if SIZEOF_LONG == 4 use_double: @@ -1065,7 +1079,7 @@ use_double: ZVAL_DOUBLE(*rval, zend_strtod((const char *)start + 2, NULL)); return 1; } -#line 1069 "ext/standard/var_unserializer.c" +#line 1083 "ext/standard/var_unserializer.c" yy65: yych = *++YYCURSOR; if (yych <= ',') { @@ -1124,7 +1138,7 @@ yy73: yych = *++YYCURSOR; if (yych != ';') goto yy18; ++YYCURSOR; -#line 585 "ext/standard/var_unserializer.re" +#line 590 "ext/standard/var_unserializer.re" { *p = YYCURSOR; INIT_PZVAL(*rval); @@ -1139,7 +1153,7 @@ yy73: return 1; } -#line 1143 "ext/standard/var_unserializer.c" +#line 1157 "ext/standard/var_unserializer.c" yy76: yych = *++YYCURSOR; if (yych == 'N') goto yy73; @@ -1166,7 +1180,7 @@ yy79: if (yych <= '9') goto yy79; if (yych != ';') goto yy18; ++YYCURSOR; -#line 558 "ext/standard/var_unserializer.re" +#line 563 "ext/standard/var_unserializer.re" { #if SIZEOF_LONG == 4 int digits = YYCURSOR - start - 3; @@ -1193,7 +1207,7 @@ yy79: ZVAL_LONG(*rval, parse_iv(start + 2)); return 1; } -#line 1197 "ext/standard/var_unserializer.c" +#line 1211 "ext/standard/var_unserializer.c" yy83: yych = *++YYCURSOR; if (yych <= '/') goto yy18; @@ -1201,24 +1215,24 @@ yy83: yych = *++YYCURSOR; if (yych != ';') goto yy18; ++YYCURSOR; -#line 551 "ext/standard/var_unserializer.re" +#line 556 "ext/standard/var_unserializer.re" { *p = YYCURSOR; INIT_PZVAL(*rval); ZVAL_BOOL(*rval, parse_iv(start + 2)); return 1; } -#line 1212 "ext/standard/var_unserializer.c" +#line 1226 "ext/standard/var_unserializer.c" yy87: ++YYCURSOR; -#line 544 "ext/standard/var_unserializer.re" +#line 549 "ext/standard/var_unserializer.re" { *p = YYCURSOR; INIT_PZVAL(*rval); ZVAL_NULL(*rval); return 1; } -#line 1222 "ext/standard/var_unserializer.c" +#line 1236 "ext/standard/var_unserializer.c" yy89: yych = *++YYCURSOR; if (yych <= ',') { @@ -1241,7 +1255,7 @@ yy91: if (yych <= '9') goto yy91; if (yych != ';') goto yy18; ++YYCURSOR; -#line 521 "ext/standard/var_unserializer.re" +#line 526 "ext/standard/var_unserializer.re" { long id; @@ -1264,7 +1278,7 @@ yy91: return 1; } -#line 1268 "ext/standard/var_unserializer.c" +#line 1282 "ext/standard/var_unserializer.c" yy95: yych = *++YYCURSOR; if (yych <= ',') { @@ -1287,7 +1301,7 @@ yy97: if (yych <= '9') goto yy97; if (yych != ';') goto yy18; ++YYCURSOR; -#line 500 "ext/standard/var_unserializer.re" +#line 505 "ext/standard/var_unserializer.re" { long id; @@ -1308,9 +1322,9 @@ yy97: return 1; } -#line 1312 "ext/standard/var_unserializer.c" +#line 1326 "ext/standard/var_unserializer.c" } -#line 863 "ext/standard/var_unserializer.re" +#line 877 "ext/standard/var_unserializer.re" return 0; diff --git a/ext/standard/var_unserializer.re b/ext/standard/var_unserializer.re index ce84bf5eb40..4cdf3137350 100644 --- a/ext/standard/var_unserializer.re +++ b/ext/standard/var_unserializer.re @@ -409,6 +409,11 @@ static inline long object_common1(UNSERIALIZE_PARAMETER, zend_class_entry *ce) { long elements; + if( *p >= max - 2) { + zend_error(E_WARNING, "Bad unserialize data"); + return -1; + } + elements = parse_iv2((*p) + 2, p); (*p) += 2; @@ -419,7 +424,7 @@ static inline long object_common1(UNSERIALIZE_PARAMETER, zend_class_entry *ce) /* If this class implements Serializable, it should not land here but in object_custom(). The passed string obviously doesn't descend from the regular serializer. */ zend_error(E_WARNING, "Erroneous data format for unserializing '%s'", ce->name); - return 0; + return -1; } return elements; @@ -697,12 +702,16 @@ use_double: } "o:" iv ":" ["] { + long elements; if (!var_hash) return 0; INIT_PZVAL(*rval); - return object_common2(UNSERIALIZE_PASSTHRU, - object_common1(UNSERIALIZE_PASSTHRU, ZEND_STANDARD_CLASS_DEF_PTR)); + elements = object_common1(UNSERIALIZE_PASSTHRU, ZEND_STANDARD_CLASS_DEF_PTR); + if (elements < 0) { + return 0; + } + return object_common2(UNSERIALIZE_PASSTHRU, elements); } object ":" uiv ":" ["] { @@ -844,6 +853,11 @@ object ":" uiv ":" ["] { elements = object_common1(UNSERIALIZE_PASSTHRU, ce); + if (elements < 0) { + efree(class_name); + return 0; + } + if (incomplete_class) { php_store_class_name(*rval, class_name, len2); } From e5246580a85f031e1a3b8064edbaa55c1643a451 Mon Sep 17 00:00:00 2001 From: Stanislav Malyshev Date: Sat, 31 Dec 2016 18:47:50 -0800 Subject: [PATCH 15/41] Fix bug #73773 - Seg fault when loading hostile phar --- ext/phar/phar.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/ext/phar/phar.c b/ext/phar/phar.c index 158f41739dc..780be432570 100644 --- a/ext/phar/phar.c +++ b/ext/phar/phar.c @@ -1054,7 +1054,7 @@ static int phar_parse_pharfile(php_stream *fp, char *fname, int fname_len, char entry.is_persistent = mydata->is_persistent; for (manifest_index = 0; manifest_index < manifest_count; ++manifest_index) { - if (buffer + 24 > endbuffer) { + if (buffer + 28 > endbuffer) { MAPPHAR_FAIL("internal corruption of phar \"%s\" (truncated manifest entry)") } @@ -1068,7 +1068,7 @@ static int phar_parse_pharfile(php_stream *fp, char *fname, int fname_len, char entry.manifest_pos = manifest_index; } - if (entry.filename_len > endbuffer - buffer - 20) { + if (entry.filename_len > endbuffer - buffer - 24) { MAPPHAR_FAIL("internal corruption of phar \"%s\" (truncated manifest entry)"); } From 1cda0d7c2ffb62d8331c64e703131d9cabdc03ea Mon Sep 17 00:00:00 2001 From: Stanislav Malyshev Date: Sat, 31 Dec 2016 19:31:49 -0800 Subject: [PATCH 16/41] Fix bug #73737 FPE when parsing a tag format --- ext/exif/exif.c | 2 +- ext/exif/tests/bug73737.phpt | 12 ++++++++++++ ext/exif/tests/bug73737.tiff | Bin 0 -> 48 bytes 3 files changed, 13 insertions(+), 1 deletion(-) create mode 100644 ext/exif/tests/bug73737.phpt create mode 100644 ext/exif/tests/bug73737.tiff diff --git a/ext/exif/exif.c b/ext/exif/exif.c index 8b0e34c10dc..83daee6f54f 100644 --- a/ext/exif/exif.c +++ b/ext/exif/exif.c @@ -1303,7 +1303,7 @@ static size_t exif_convert_any_to_int(void *value, int format, int motorola_inte if (s_den == 0) { return 0; } else { - return php_ifd_get32s(value, motorola_intel) / s_den; + return (size_t)((double)php_ifd_get32s(value, motorola_intel) / s_den); } case TAG_FMT_SSHORT: return php_ifd_get16u(value, motorola_intel); diff --git a/ext/exif/tests/bug73737.phpt b/ext/exif/tests/bug73737.phpt new file mode 100644 index 00000000000..21eaf80585b --- /dev/null +++ b/ext/exif/tests/bug73737.phpt @@ -0,0 +1,12 @@ +--TEST-- +Bug #73737 (Crash when parsing a tag format) +--SKIPIF-- + +--FILE-- + +--EXPECTF-- +Warning: exif_thumbnail(bug73737.tiff): Error in TIFF: filesize(x0030) less than start of IFD dir(x10102) in %s line %d +bool(false) diff --git a/ext/exif/tests/bug73737.tiff b/ext/exif/tests/bug73737.tiff new file mode 100644 index 0000000000000000000000000000000000000000..2cb036fc4730502a3e8041ab24ab12a2ad0b0327 GIT binary patch literal 48 ocmebEWzb?^VBlb2Wb|TS2C_gv49H_(-~urlfcQTUfY=}a0A>IMx&QzG literal 0 HcmV?d00001 From 8d2539fa0faf3f63e1d1e7635347c5b9e777d47b Mon Sep 17 00:00:00 2001 From: Stanislav Malyshev Date: Sat, 31 Dec 2016 20:14:20 -0800 Subject: [PATCH 17/41] Fix bug #73831 - NULL Pointer Dereference while unserialize php object --- ext/wddx/tests/bug73831.phpt | 23 +++++++++++++++++++++++ ext/wddx/wddx.c | 32 ++++++++++++++++++-------------- 2 files changed, 41 insertions(+), 14 deletions(-) create mode 100644 ext/wddx/tests/bug73831.phpt diff --git a/ext/wddx/tests/bug73831.phpt b/ext/wddx/tests/bug73831.phpt new file mode 100644 index 00000000000..0f8b8b12649 --- /dev/null +++ b/ext/wddx/tests/bug73831.phpt @@ -0,0 +1,23 @@ +--TEST-- +Bug #73831 (NULL Pointer Dereference while unserialize php object) +--SKIPIF-- + +--FILE-- + + + + + Throwable + + + +EOF; +try { + $wddx = wddx_deserialize($xml); +} catch(Error $e) { echo $e->getMessage(); } +?> +--EXPECTF-- +Warning: wddx_deserialize(): Class throwable can not be instantiated in %sbug73831.php on line %d +Cannot instantiate interface Throwable diff --git a/ext/wddx/wddx.c b/ext/wddx/wddx.c index d58a564593c..70c62134072 100644 --- a/ext/wddx/wddx.c +++ b/ext/wddx/wddx.c @@ -908,7 +908,7 @@ static void php_wddx_pop_element(void *user_data, const XML_Char *name) if (!strcmp((char *)name, EL_BINARY)) { zend_string *new_str = NULL; - + if (ZSTR_EMPTY_ALLOC() != Z_STR(ent1->data)) { new_str = php_base64_decode( (unsigned char *)Z_STRVAL(ent1->data), Z_STRLEN(ent1->data)); @@ -967,22 +967,26 @@ static void php_wddx_pop_element(void *user_data, const XML_Char *name) php_error_docref(NULL, E_WARNING, "Class %s can not be unserialized", Z_STRVAL(ent1->data)); } else { /* Initialize target object */ - object_init_ex(&obj, pce); + if (object_init_ex(&obj, pce) != SUCCESS || EG(exception)) { + zval_ptr_dtor(&ent2->data); + ZVAL_UNDEF(&ent2->data); + php_error_docref(NULL, E_WARNING, "Class %s can not be instantiated", Z_STRVAL(ent1->data)); + } else { + /* Merge current hashtable with object's default properties */ + zend_hash_merge(Z_OBJPROP(obj), + Z_ARRVAL(ent2->data), + zval_add_ref, 0); - /* Merge current hashtable with object's default properties */ - zend_hash_merge(Z_OBJPROP(obj), - Z_ARRVAL(ent2->data), - zval_add_ref, 0); + if (incomplete_class) { + php_store_class_name(&obj, Z_STRVAL(ent1->data), Z_STRLEN(ent1->data)); + } - if (incomplete_class) { - php_store_class_name(&obj, Z_STRVAL(ent1->data), Z_STRLEN(ent1->data)); + /* Clean up old array entry */ + zval_ptr_dtor(&ent2->data); + + /* Set stack entry to point to the newly created object */ + ZVAL_COPY_VALUE(&ent2->data, &obj); } - - /* Clean up old array entry */ - zval_ptr_dtor(&ent2->data); - - /* Set stack entry to point to the newly created object */ - ZVAL_COPY_VALUE(&ent2->data, &obj); } /* Clean up class name var entry */ From 732f67ee6ff608853a4c1a757e6746b44bb3b125 Mon Sep 17 00:00:00 2001 From: vanviegen Date: Wed, 21 Dec 2016 16:37:17 +0100 Subject: [PATCH 18/41] Fix for sporadic segfault with MYSQLI_OPT_INT_AND_FLOAT_NATIVE Fixes bug #73800 news entry for PR #2250 --- NEWS | 2 ++ ext/mysqlnd/mysqlnd_wireprotocol.c | 10 ++++++++-- 2 files changed, 10 insertions(+), 2 deletions(-) diff --git a/NEWS b/NEWS index 58440bc403d..11bcf54b5e9 100644 --- a/NEWS +++ b/NEWS @@ -20,6 +20,8 @@ PHP NEWS - Mysqlnd: . Fixed issue with decoding BIT columns when having more than one rows in the result set. 7.0+ problem. (Andrey) + . Fixed bug #73800 (sporadic segfault with MYSQLI_OPT_INT_AND_FLOAT_NATIVE). + (vanviegen) - PCRE: . Fixed bug #73612 (preg_*() may leak memory). (cmb) diff --git a/ext/mysqlnd/mysqlnd_wireprotocol.c b/ext/mysqlnd/mysqlnd_wireprotocol.c index 9f2aafab2e4..84f363b403b 100644 --- a/ext/mysqlnd/mysqlnd_wireprotocol.c +++ b/ext/mysqlnd/mysqlnd_wireprotocol.c @@ -1443,7 +1443,13 @@ php_mysqlnd_read_row_ex(MYSQLND_CONN_DATA * conn, MYSQLND_MEMORY_POOL * result_s zend_bool first_iteration = TRUE; DBG_ENTER("php_mysqlnd_read_row_ex"); - + + /* + * We're allocating 1 extra byte, as php_mysqlnd_rowp_read_text_protocol_aux + * needs to be able to add a terminating \0 for atoi/atof. + */ + prealloc_more_bytes++; + /* To ease the process the server splits everything in packets up to 2^24 - 1. Even in the case the payload is evenly divisible by this value, the last @@ -1451,7 +1457,7 @@ php_mysqlnd_read_row_ex(MYSQLND_CONN_DATA * conn, MYSQLND_MEMORY_POOL * result_s for next one if they have 2^24 - 1 sizes. But just read the header of a zero-length byte, don't read the body, there is no such. */ - + *data_size = prealloc_more_bytes; while (1) { if (FAIL == mysqlnd_read_header(conn->net, &header, conn->stats, conn->error_info)) { From c019d33267ef04959250e89856f1f0f57e9dcb3d Mon Sep 17 00:00:00 2001 From: Mitch Hagstrand Date: Mon, 2 Jan 2017 07:49:32 -0800 Subject: [PATCH 19/41] Fix for nowait.phpt failing intermittently The parent process was releasing the child semaphore after the child process continued execution. Now the child semaphore is released before the child process continues execution. --- ext/sysvsem/tests/nowait.phpt | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/ext/sysvsem/tests/nowait.phpt b/ext/sysvsem/tests/nowait.phpt index 8557ce33ee3..23f0dfc1659 100644 --- a/ext/sysvsem/tests/nowait.phpt +++ b/ext/sysvsem/tests/nowait.phpt @@ -67,12 +67,16 @@ if ($pid) { exit; } + /* Release the child semahpore before releasing + the releasing the parent semaphore and letting + the child continue execution */ + sem_release($c_sem_id); + echo "P: releasing semaphore $p_sem_id.\n"; if (!sem_release($p_sem_id)) { echo "P: failed to release semaphore\n"; } - sem_release($c_sem_id); $status = null; pcntl_waitpid($pid, $status); From 0acaa97a164e50916575ee510bc69689f59e2201 Mon Sep 17 00:00:00 2001 From: Mitch Hagstrand Date: Mon, 2 Jan 2017 07:49:32 -0800 Subject: [PATCH 20/41] Fix for nowait.phpt failing intermittently The parent process was releasing the child semaphore after the child process continued execution. Now the child semaphore is released before the child process continues execution. --- ext/sysvsem/tests/nowait.phpt | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/ext/sysvsem/tests/nowait.phpt b/ext/sysvsem/tests/nowait.phpt index 8557ce33ee3..23f0dfc1659 100644 --- a/ext/sysvsem/tests/nowait.phpt +++ b/ext/sysvsem/tests/nowait.phpt @@ -67,12 +67,16 @@ if ($pid) { exit; } + /* Release the child semahpore before releasing + the releasing the parent semaphore and letting + the child continue execution */ + sem_release($c_sem_id); + echo "P: releasing semaphore $p_sem_id.\n"; if (!sem_release($p_sem_id)) { echo "P: failed to release semaphore\n"; } - sem_release($c_sem_id); $status = null; pcntl_waitpid($pid, $status); From fa1f98f2a36b3775062936d6383b1cd639b6ac32 Mon Sep 17 00:00:00 2001 From: Mitch Hagstrand Date: Mon, 2 Jan 2017 07:49:32 -0800 Subject: [PATCH 21/41] Fix for nowait.phpt failing intermittently The parent process was releasing the child semaphore after the child process continued execution. Now the child semaphore is released before the child process continues execution. --- ext/sysvsem/tests/nowait.phpt | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/ext/sysvsem/tests/nowait.phpt b/ext/sysvsem/tests/nowait.phpt index 8557ce33ee3..23f0dfc1659 100644 --- a/ext/sysvsem/tests/nowait.phpt +++ b/ext/sysvsem/tests/nowait.phpt @@ -67,12 +67,16 @@ if ($pid) { exit; } + /* Release the child semahpore before releasing + the releasing the parent semaphore and letting + the child continue execution */ + sem_release($c_sem_id); + echo "P: releasing semaphore $p_sem_id.\n"; if (!sem_release($p_sem_id)) { echo "P: failed to release semaphore\n"; } - sem_release($c_sem_id); $status = null; pcntl_waitpid($pid, $status); From 76a1d3f153e6cc3b48305a85c6727e8c04a5f4ea Mon Sep 17 00:00:00 2001 From: Nikita Popov Date: Sun, 1 Jan 2017 22:19:01 +0100 Subject: [PATCH 22/41] Add get_browser() test against larger corpus Testing corpus provided by Anatol against current browscap.ini lite. About 30% of all agents are not recognized by this browscap.ini, but this should give us decent coverage. --- .../tests/misc/browscap_lite_2016_12_06.ini | 11018 ++++++++++++++++ .../tests/misc/get_browser_variation3.phpt | 2238 ++++ ext/standard/tests/misc/user_agents.txt | 1112 ++ 3 files changed, 14368 insertions(+) create mode 100644 ext/standard/tests/misc/browscap_lite_2016_12_06.ini create mode 100644 ext/standard/tests/misc/get_browser_variation3.phpt create mode 100644 ext/standard/tests/misc/user_agents.txt diff --git a/ext/standard/tests/misc/browscap_lite_2016_12_06.ini b/ext/standard/tests/misc/browscap_lite_2016_12_06.ini new file mode 100644 index 00000000000..8f911659778 --- /dev/null +++ b/ext/standard/tests/misc/browscap_lite_2016_12_06.ini @@ -0,0 +1,11018 @@ +;;; Provided courtesy of http://browscap.org/ +;;; Created on Tuesday, December 6, 2016 at 12:42 AM UTC +;;; Keep up with the latest goings-on with the project: +;;; Follow us on Twitter , or... +;;; Like us on Facebook , or... +;;; Collaborate on GitHub , or... +;;; Discuss on Google Groups . + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Browscap Version + +[GJK_Browscap_Version] +Version=6019 +Released=Tue, 06 Dec 2016 00:42:57 +0000 +Format=php +Type=LITE + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; DefaultProperties + +[DefaultProperties] +Comment="DefaultProperties" +Browser="DefaultProperties" +Version="0.0" +Platform="unknown" +isMobileDevice="false" +isTablet="false" +Device_Type="unknown" + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Chromium 55.0 + +[Chromium 55.0] +Parent="DefaultProperties" +Comment="Chromium 55.0" +Browser="Chromium" +Version="55.0" +Platform="Linux" +Device_Type="Desktop" + +[Mozilla/5.0 (SMART-TV; X11; Linux armv7l) AppleWebkit/* (KHTML* like Gecko) Chromium/55.*Chrome/*Safari/*] +Parent="Chromium 55.0" +Device_Type="TV Device" + +[Mozilla/5.0 (*Linux*) AppleWebKit/* (KHTML* like Gecko)*Chromium/55.*Chrome/*Safari/*] +Parent="Chromium 55.0" + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Chromium 54.0 + +[Chromium 54.0] +Parent="DefaultProperties" +Comment="Chromium 54.0" +Browser="Chromium" +Version="54.0" +Platform="Linux" +Device_Type="Desktop" + +[Mozilla/5.0 (SMART-TV; X11; Linux armv7l) AppleWebkit/* (KHTML* like Gecko) Chromium/54.*Chrome/*Safari/*] +Parent="Chromium 54.0" +Device_Type="TV Device" + +[Mozilla/5.0 (*Linux*) AppleWebKit/* (KHTML* like Gecko)*Chromium/54.*Chrome/*Safari/*] +Parent="Chromium 54.0" + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Chromium 53.0 + +[Chromium 53.0] +Parent="DefaultProperties" +Comment="Chromium 53.0" +Browser="Chromium" +Version="53.0" +Platform="Linux" +Device_Type="Desktop" + +[Mozilla/5.0 (SMART-TV; X11; Linux armv7l) AppleWebkit/* (KHTML* like Gecko) Chromium/53.*Chrome/*Safari/*] +Parent="Chromium 53.0" +Device_Type="TV Device" + +[Mozilla/5.0 (*Linux*) AppleWebKit/* (KHTML* like Gecko)*Chromium/53.*Chrome/*Safari/*] +Parent="Chromium 53.0" + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Chromium 52.0 + +[Chromium 52.0] +Parent="DefaultProperties" +Comment="Chromium 52.0" +Browser="Chromium" +Version="52.0" +Platform="Linux" +Device_Type="Desktop" + +[Mozilla/5.0 (SMART-TV; X11; Linux armv7l) AppleWebkit/* (KHTML* like Gecko) Chromium/52.*Chrome/*Safari/*] +Parent="Chromium 52.0" +Device_Type="TV Device" + +[Mozilla/5.0 (*Linux*) AppleWebKit/* (KHTML* like Gecko)*Chromium/52.*Chrome/*Safari/*] +Parent="Chromium 52.0" + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Chromium 51.0 + +[Chromium 51.0] +Parent="DefaultProperties" +Comment="Chromium 51.0" +Browser="Chromium" +Version="51.0" +Platform="Linux" +Device_Type="Desktop" + +[Mozilla/5.0 (SMART-TV; X11; Linux armv7l) AppleWebkit/* (KHTML* like Gecko) Chromium/51.*Chrome/*Safari/*] +Parent="Chromium 51.0" +Device_Type="TV Device" + +[Mozilla/5.0 (*Linux*) AppleWebKit/* (KHTML* like Gecko)*Chromium/51.*Chrome/*Safari/*] +Parent="Chromium 51.0" + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Chromium 50.0 + +[Chromium 50.0] +Parent="DefaultProperties" +Comment="Chromium 50.0" +Browser="Chromium" +Version="50.0" +Platform="Linux" +Device_Type="Desktop" + +[Mozilla/5.0 (SMART-TV; X11; Linux armv7l) AppleWebkit/* (KHTML* like Gecko) Chromium/50.*Chrome/*Safari/*] +Parent="Chromium 50.0" +Device_Type="TV Device" + +[Mozilla/5.0 (*Linux*) AppleWebKit/* (KHTML* like Gecko)*Chromium/50.*Chrome/*Safari/*] +Parent="Chromium 50.0" + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Chromium 49.0 + +[Chromium 49.0] +Parent="DefaultProperties" +Comment="Chromium 49.0" +Browser="Chromium" +Version="49.0" +Platform="Linux" +Device_Type="Desktop" + +[Mozilla/5.0 (SMART-TV; X11; Linux armv7l) AppleWebkit/* (KHTML* like Gecko) Chromium/49.*Chrome/*Safari/*] +Parent="Chromium 49.0" +Device_Type="TV Device" + +[Mozilla/5.0 (*Linux*) AppleWebKit/* (KHTML* like Gecko)*Chromium/49.*Chrome/*Safari/*] +Parent="Chromium 49.0" + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Chromium 48.0 + +[Chromium 48.0] +Parent="DefaultProperties" +Comment="Chromium 48.0" +Browser="Chromium" +Version="48.0" +Platform="Linux" +Device_Type="Desktop" + +[Mozilla/5.0 (SMART-TV; X11; Linux armv7l) AppleWebkit/* (KHTML* like Gecko) Chromium/48.*Chrome/*Safari/*] +Parent="Chromium 48.0" +Device_Type="TV Device" + +[Mozilla/5.0 (*Linux*) AppleWebKit/* (KHTML* like Gecko)*Chromium/48.*Chrome/*Safari/*] +Parent="Chromium 48.0" + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Chromium 47.0 + +[Chromium 47.0] +Parent="DefaultProperties" +Comment="Chromium 47.0" +Browser="Chromium" +Version="47.0" +Platform="Linux" +Device_Type="Desktop" + +[Mozilla/5.0 (SMART-TV; X11; Linux armv7l) AppleWebkit/* (KHTML* like Gecko) Chromium/47.*Chrome/*Safari/*] +Parent="Chromium 47.0" +Device_Type="TV Device" + +[Mozilla/5.0 (*Linux*) AppleWebKit/* (KHTML* like Gecko)*Chromium/47.*Chrome/*Safari/*] +Parent="Chromium 47.0" + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Chromium 46.0 + +[Chromium 46.0] +Parent="DefaultProperties" +Comment="Chromium 46.0" +Browser="Chromium" +Version="46.0" +Platform="Linux" +Device_Type="Desktop" + +[Mozilla/5.0 (SMART-TV; X11; Linux armv7l) AppleWebkit/* (KHTML* like Gecko) Chromium/46.*Chrome/*Safari/*] +Parent="Chromium 46.0" +Device_Type="TV Device" + +[Mozilla/5.0 (*Linux*) AppleWebKit/* (KHTML* like Gecko)*Chromium/46.*Chrome/*Safari/*] +Parent="Chromium 46.0" + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Chromium 45.0 + +[Chromium 45.0] +Parent="DefaultProperties" +Comment="Chromium 45.0" +Browser="Chromium" +Version="45.0" +Platform="Linux" +Device_Type="Desktop" + +[Mozilla/5.0 (SMART-TV; X11; Linux armv7l) AppleWebkit/* (KHTML* like Gecko) Chromium/45.*Chrome/*Safari/*] +Parent="Chromium 45.0" +Device_Type="TV Device" + +[Mozilla/5.0 (*Linux*) AppleWebKit/* (KHTML* like Gecko)*Chromium/45.*Chrome/*Safari/*] +Parent="Chromium 45.0" + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Android WebView 5.0 + +[Android WebView 5.0] +Parent="DefaultProperties" +Comment="Android WebView 5.0" +Browser="Android WebView" +Version="5.0" +Platform="Android" +isMobileDevice="true" +Device_Type="Mobile Phone" + +[*Mozilla/5.0 (*Linux*Android*) AppleWebKit/*KHTML* like Gecko) Version/5.0*Chrome*Safari*] +Parent="Android WebView 5.0" + +[Mozilla/5.0 (*Linux*Android* Build/*) AppleWebKit/* (KHTML,*like Gecko*) Version/5.0*Chrome*Safari*] +Parent="Android WebView 5.0" + +[Mozilla/5.0 (*Linux*Android*)*AppleWebKit/*(*KHTML* like Gecko*)*Version/5.0*Chrome*Safari*] +Parent="Android WebView 5.0" + +[Mozilla/5.0 (*Linux*Android*) AppleWebKit*(KTHML,like Gecko)*Version/5.0*Chrome*Safari*] +Parent="Android WebView 5.0" +isTablet="true" +Device_Type="Tablet" + +[Mozilla/5.0 (*Linux*Android*) AppleWebKit* (KHMTL,*like Gecko*)*Version/5.0*Chrome*Safari*] +Parent="Android WebView 5.0" + +[Mozilla/5.0 (*Linux*Android*)*AppleWebKit* (KHTML,*likeGecko*)*Version/5.0*Chrome*Safari*] +Parent="Android WebView 5.0" + +[Mozilla/5.0(*Linux*Android*)*AppleWebKit/*(KHTML,*like Gecko*)*Version/5.0*Chrome*Safari*] +Parent="Android WebView 5.0" + +[Mozilla/5.0 (*Linux*Android* Build/*) AppleWebKit/* (KHTML,*like Gecko*) Version/5.0*Safari*Chrome*] +Parent="Android WebView 5.0" + +[Mozilla/5.0 (*Linux*Android*)*AppleWebKit/*(*KHTML* like Gecko*)*Version/5.0*Safari*Chrome*] +Parent="Android WebView 5.0" + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Android WebView 4.4 + +[Android WebView 4.4] +Parent="DefaultProperties" +Comment="Android WebView 4.4" +Browser="Android WebView" +Version="4.4" +Platform="Android" +isMobileDevice="true" +Device_Type="Mobile Phone" + +[*Mozilla/5.0 (*Linux*Android*) AppleWebKit/*KHTML* like Gecko) Version/4.4*Chrome*Safari*] +Parent="Android WebView 4.4" + +[Mozilla/5.0 (*Linux*Android* Build/*) AppleWebKit/* (KHTML,*like Gecko*) Version/4.4*Chrome*Safari*] +Parent="Android WebView 4.4" + +[Mozilla/5.0 (*Linux*Android*)*AppleWebKit/*(*KHTML* like Gecko*)*Version/4.4*Chrome*Safari*] +Parent="Android WebView 4.4" + +[Mozilla/5.0 (*Linux*Android*) AppleWebKit*(KTHML,like Gecko)*Version/4.4*Chrome*Safari*] +Parent="Android WebView 4.4" +isTablet="true" +Device_Type="Tablet" + +[Mozilla/5.0 (*Linux*Android*) AppleWebKit* (KHMTL,*like Gecko*)*Version/4.4*Chrome*Safari*] +Parent="Android WebView 4.4" + +[Mozilla/5.0 (*Linux*Android*)*AppleWebKit* (KHTML,*likeGecko*)*Version/4.4*Chrome*Safari*] +Parent="Android WebView 4.4" + +[Mozilla/5.0(*Linux*Android*)*AppleWebKit/*(KHTML,*like Gecko*)*Version/4.4*Chrome*Safari*] +Parent="Android WebView 4.4" + +[Mozilla/5.0 (*Linux*Android* Build/*) AppleWebKit/* (KHTML,*like Gecko*) Version/4.4*Safari*Chrome*] +Parent="Android WebView 4.4" + +[Mozilla/5.0 (*Linux*Android*)*AppleWebKit/*(*KHTML* like Gecko*)*Version/4.4*Safari*Chrome*] +Parent="Android WebView 4.4" + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Android WebView 4.3 + +[Android WebView 4.3] +Parent="DefaultProperties" +Comment="Android WebView 4.3" +Browser="Android WebView" +Version="4.3" +Platform="Android" +isMobileDevice="true" +Device_Type="Mobile Phone" + +[*Mozilla/5.0 (*Linux*Android*) AppleWebKit/*KHTML* like Gecko) Version/4.3*Chrome*Safari*] +Parent="Android WebView 4.3" + +[Mozilla/5.0 (*Linux*Android* Build/*) AppleWebKit/* (KHTML,*like Gecko*) Version/4.3*Chrome*Safari*] +Parent="Android WebView 4.3" + +[Mozilla/5.0 (*Linux*Android*)*AppleWebKit/*(*KHTML* like Gecko*)*Version/4.3*Chrome*Safari*] +Parent="Android WebView 4.3" + +[Mozilla/5.0 (*Linux*Android*) AppleWebKit*(KTHML,like Gecko)*Version/4.3*Chrome*Safari*] +Parent="Android WebView 4.3" +isTablet="true" +Device_Type="Tablet" + +[Mozilla/5.0 (*Linux*Android*) AppleWebKit* (KHMTL,*like Gecko*)*Version/4.3*Chrome*Safari*] +Parent="Android WebView 4.3" + +[Mozilla/5.0 (*Linux*Android*)*AppleWebKit* (KHTML,*likeGecko*)*Version/4.3*Chrome*Safari*] +Parent="Android WebView 4.3" + +[Mozilla/5.0(*Linux*Android*)*AppleWebKit/*(KHTML,*like Gecko*)*Version/4.3*Chrome*Safari*] +Parent="Android WebView 4.3" + +[Mozilla/5.0 (*Linux*Android* Build/*) AppleWebKit/* (KHTML,*like Gecko*) Version/4.3*Safari*Chrome*] +Parent="Android WebView 4.3" + +[Mozilla/5.0 (*Linux*Android*)*AppleWebKit/*(*KHTML* like Gecko*)*Version/4.3*Safari*Chrome*] +Parent="Android WebView 4.3" + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Android WebView 4.2 + +[Android WebView 4.2] +Parent="DefaultProperties" +Comment="Android WebView 4.2" +Browser="Android WebView" +Version="4.2" +Platform="Android" +isMobileDevice="true" +Device_Type="Mobile Phone" + +[*Mozilla/5.0 (*Linux*Android*) AppleWebKit/*KHTML* like Gecko) Version/4.2*Chrome*Safari*] +Parent="Android WebView 4.2" + +[Mozilla/5.0 (*Linux*Android* Build/*) AppleWebKit/* (KHTML,*like Gecko*) Version/4.2*Chrome*Safari*] +Parent="Android WebView 4.2" + +[Mozilla/5.0 (*Linux*Android*)*AppleWebKit/*(*KHTML* like Gecko*)*Version/4.2*Chrome*Safari*] +Parent="Android WebView 4.2" + +[Mozilla/5.0 (*Linux*Android*) AppleWebKit*(KTHML,like Gecko)*Version/4.2*Chrome*Safari*] +Parent="Android WebView 4.2" +isTablet="true" +Device_Type="Tablet" + +[Mozilla/5.0 (*Linux*Android*) AppleWebKit* (KHMTL,*like Gecko*)*Version/4.2*Chrome*Safari*] +Parent="Android WebView 4.2" + +[Mozilla/5.0 (*Linux*Android*)*AppleWebKit* (KHTML,*likeGecko*)*Version/4.2*Chrome*Safari*] +Parent="Android WebView 4.2" + +[Mozilla/5.0(*Linux*Android*)*AppleWebKit/*(KHTML,*like Gecko*)*Version/4.2*Chrome*Safari*] +Parent="Android WebView 4.2" + +[Mozilla/5.0 (*Linux*Android* Build/*) AppleWebKit/* (KHTML,*like Gecko*) Version/4.2*Safari*Chrome*] +Parent="Android WebView 4.2" + +[Mozilla/5.0 (*Linux*Android*)*AppleWebKit/*(*KHTML* like Gecko*)*Version/4.2*Safari*Chrome*] +Parent="Android WebView 4.2" + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Android WebView 4.1 + +[Android WebView 4.1] +Parent="DefaultProperties" +Comment="Android WebView 4.1" +Browser="Android WebView" +Version="4.1" +Platform="Android" +isMobileDevice="true" +Device_Type="Mobile Phone" + +[*Mozilla/5.0 (*Linux*Android*) AppleWebKit/*KHTML* like Gecko) Version/4.1*Chrome*Safari*] +Parent="Android WebView 4.1" + +[Mozilla/5.0 (*Linux*Android* Build/*) AppleWebKit/* (KHTML,*like Gecko*) Version/4.1*Chrome*Safari*] +Parent="Android WebView 4.1" + +[Mozilla/5.0 (*Linux*Android*)*AppleWebKit/*(*KHTML* like Gecko*)*Version/4.1*Chrome*Safari*] +Parent="Android WebView 4.1" + +[Mozilla/5.0 (*Linux*Android*) AppleWebKit*(KTHML,like Gecko)*Version/4.1*Chrome*Safari*] +Parent="Android WebView 4.1" +isTablet="true" +Device_Type="Tablet" + +[Mozilla/5.0 (*Linux*Android*) AppleWebKit* (KHMTL,*like Gecko*)*Version/4.1*Chrome*Safari*] +Parent="Android WebView 4.1" + +[Mozilla/5.0 (*Linux*Android*)*AppleWebKit* (KHTML,*likeGecko*)*Version/4.1*Chrome*Safari*] +Parent="Android WebView 4.1" + +[Mozilla/5.0(*Linux*Android*)*AppleWebKit/*(KHTML,*like Gecko*)*Version/4.1*Chrome*Safari*] +Parent="Android WebView 4.1" + +[Mozilla/5.0 (*Linux*Android* Build/*) AppleWebKit/* (KHTML,*like Gecko*) Version/4.1*Safari*Chrome*] +Parent="Android WebView 4.1" + +[Mozilla/5.0 (*Linux*Android*)*AppleWebKit/*(*KHTML* like Gecko*)*Version/4.1*Safari*Chrome*] +Parent="Android WebView 4.1" + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Android WebView 4.0 + +[Android WebView 4.0] +Parent="DefaultProperties" +Comment="Android WebView 4.0" +Browser="Android WebView" +Version="4.0" +Platform="Android" +isMobileDevice="true" +Device_Type="Mobile Phone" + +[*Mozilla/5.0 (*Linux*Android*) AppleWebKit/*KHTML* like Gecko) Version/4.0*Chrome*Safari*] +Parent="Android WebView 4.0" + +[Mozilla/5.0 (*Linux*Android* Build/*) AppleWebKit/* (KHTML,*like Gecko*) Version/4.0*Chrome*Safari*] +Parent="Android WebView 4.0" + +[Mozilla/5.0 (*Linux*Android*)*AppleWebKit/*(*KHTML* like Gecko*)*Version/4.0*Chrome*Safari*] +Parent="Android WebView 4.0" + +[Mozilla/5.0 (*Linux*Android*) AppleWebKit*(KTHML,like Gecko)*Version/4.0*Chrome*Safari*] +Parent="Android WebView 4.0" +isTablet="true" +Device_Type="Tablet" + +[Mozilla/5.0 (*Linux*Android*) AppleWebKit* (KHMTL,*like Gecko*)*Version/4.0*Chrome*Safari*] +Parent="Android WebView 4.0" + +[Mozilla/5.0 (*Linux*Android*)*AppleWebKit* (KHTML,*likeGecko*)*Version/4.0*Chrome*Safari*] +Parent="Android WebView 4.0" + +[Mozilla/5.0(*Linux*Android*)*AppleWebKit/*(KHTML,*like Gecko*)*Version/4.0*Chrome*Safari*] +Parent="Android WebView 4.0" + +[Mozilla/5.0 (*Linux*Android* Build/*) AppleWebKit/* (KHTML,*like Gecko*) Version/4.0*Safari*Chrome*] +Parent="Android WebView 4.0" + +[Mozilla/5.0 (*Linux*Android*)*AppleWebKit/*(*KHTML* like Gecko*)*Version/4.0*Safari*Chrome*] +Parent="Android WebView 4.0" + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Android WebView 2.1 + +[Android WebView 2.1] +Parent="DefaultProperties" +Comment="Android WebView 2.1" +Browser="Android WebView" +Version="2.1" +Platform="Android" +isMobileDevice="true" +Device_Type="Mobile Phone" + +[*Mozilla/5.0 (*Linux*Android*) AppleWebKit/*KHTML* like Gecko) Version/2.1*Chrome*Safari*] +Parent="Android WebView 2.1" + +[Mozilla/5.0 (*Linux*Android* Build/*) AppleWebKit/* (KHTML,*like Gecko*) Version/2.1*Chrome*Safari*] +Parent="Android WebView 2.1" + +[Mozilla/5.0 (*Linux*Android*)*AppleWebKit/*(*KHTML* like Gecko*)*Version/2.1*Chrome*Safari*] +Parent="Android WebView 2.1" + +[Mozilla/5.0 (*Linux*Android*) AppleWebKit*(KTHML,like Gecko)*Version/2.1*Chrome*Safari*] +Parent="Android WebView 2.1" +isTablet="true" +Device_Type="Tablet" + +[Mozilla/5.0 (*Linux*Android*) AppleWebKit* (KHMTL,*like Gecko*)*Version/2.1*Chrome*Safari*] +Parent="Android WebView 2.1" + +[Mozilla/5.0 (*Linux*Android*)*AppleWebKit* (KHTML,*likeGecko*)*Version/2.1*Chrome*Safari*] +Parent="Android WebView 2.1" + +[Mozilla/5.0(*Linux*Android*)*AppleWebKit/*(KHTML,*like Gecko*)*Version/2.1*Chrome*Safari*] +Parent="Android WebView 2.1" + +[Mozilla/5.0 (*Linux*Android* Build/*) AppleWebKit/* (KHTML,*like Gecko*) Version/2.1*Safari*Chrome*] +Parent="Android WebView 2.1" + +[Mozilla/5.0 (*Linux*Android*)*AppleWebKit/*(*KHTML* like Gecko*)*Version/2.1*Safari*Chrome*] +Parent="Android WebView 2.1" + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Android WebView 2.0 + +[Android WebView 2.0] +Parent="DefaultProperties" +Comment="Android WebView 2.0" +Browser="Android WebView" +Version="2.0" +Platform="Android" +isMobileDevice="true" +Device_Type="Mobile Phone" + +[*Mozilla/5.0 (*Linux*Android*) AppleWebKit/*KHTML* like Gecko) Version/2.0*Chrome*Safari*] +Parent="Android WebView 2.0" + +[Mozilla/5.0 (*Linux*Android* Build/*) AppleWebKit/* (KHTML,*like Gecko*) Version/2.0*Chrome*Safari*] +Parent="Android WebView 2.0" + +[Mozilla/5.0 (*Linux*Android*)*AppleWebKit/*(*KHTML* like Gecko*)*Version/2.0*Chrome*Safari*] +Parent="Android WebView 2.0" + +[Mozilla/5.0 (*Linux*Android*) AppleWebKit*(KTHML,like Gecko)*Version/2.0*Chrome*Safari*] +Parent="Android WebView 2.0" +isTablet="true" +Device_Type="Tablet" + +[Mozilla/5.0 (*Linux*Android*) AppleWebKit* (KHMTL,*like Gecko*)*Version/2.0*Chrome*Safari*] +Parent="Android WebView 2.0" + +[Mozilla/5.0 (*Linux*Android*)*AppleWebKit* (KHTML,*likeGecko*)*Version/2.0*Chrome*Safari*] +Parent="Android WebView 2.0" + +[Mozilla/5.0(*Linux*Android*)*AppleWebKit/*(KHTML,*like Gecko*)*Version/2.0*Chrome*Safari*] +Parent="Android WebView 2.0" + +[Mozilla/5.0 (*Linux*Android* Build/*) AppleWebKit/* (KHTML,*like Gecko*) Version/2.0*Safari*Chrome*] +Parent="Android WebView 2.0" + +[Mozilla/5.0 (*Linux*Android*)*AppleWebKit/*(*KHTML* like Gecko*)*Version/2.0*Safari*Chrome*] +Parent="Android WebView 2.0" + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Android WebView 1.6 + +[Android WebView 1.6] +Parent="DefaultProperties" +Comment="Android WebView 1.6" +Browser="Android WebView" +Version="1.6" +Platform="Android" +isMobileDevice="true" +Device_Type="Mobile Phone" + +[*Mozilla/5.0 (*Linux*Android*) AppleWebKit/*KHTML* like Gecko) Version/1.6*Chrome*Safari*] +Parent="Android WebView 1.6" + +[Mozilla/5.0 (*Linux*Android* Build/*) AppleWebKit/* (KHTML,*like Gecko*) Version/1.6*Chrome*Safari*] +Parent="Android WebView 1.6" + +[Mozilla/5.0 (*Linux*Android*)*AppleWebKit/*(*KHTML* like Gecko*)*Version/1.6*Chrome*Safari*] +Parent="Android WebView 1.6" + +[Mozilla/5.0 (*Linux*Android*) AppleWebKit*(KTHML,like Gecko)*Version/1.6*Chrome*Safari*] +Parent="Android WebView 1.6" +isTablet="true" +Device_Type="Tablet" + +[Mozilla/5.0 (*Linux*Android*) AppleWebKit* (KHMTL,*like Gecko*)*Version/1.6*Chrome*Safari*] +Parent="Android WebView 1.6" + +[Mozilla/5.0 (*Linux*Android*)*AppleWebKit* (KHTML,*likeGecko*)*Version/1.6*Chrome*Safari*] +Parent="Android WebView 1.6" + +[Mozilla/5.0(*Linux*Android*)*AppleWebKit/*(KHTML,*like Gecko*)*Version/1.6*Chrome*Safari*] +Parent="Android WebView 1.6" + +[Mozilla/5.0 (*Linux*Android* Build/*) AppleWebKit/* (KHTML,*like Gecko*) Version/1.6*Safari*Chrome*] +Parent="Android WebView 1.6" + +[Mozilla/5.0 (*Linux*Android*)*AppleWebKit/*(*KHTML* like Gecko*)*Version/1.6*Safari*Chrome*] +Parent="Android WebView 1.6" + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Android WebView 1.5 + +[Android WebView 1.5] +Parent="DefaultProperties" +Comment="Android WebView 1.5" +Browser="Android WebView" +Version="1.5" +Platform="Android" +isMobileDevice="true" +Device_Type="Mobile Phone" + +[*Mozilla/5.0 (*Linux*Android*) AppleWebKit/*KHTML* like Gecko) Version/1.5*Chrome*Safari*] +Parent="Android WebView 1.5" + +[Mozilla/5.0 (*Linux*Android* Build/*) AppleWebKit/* (KHTML,*like Gecko*) Version/1.5*Chrome*Safari*] +Parent="Android WebView 1.5" + +[Mozilla/5.0 (*Linux*Android*)*AppleWebKit/*(*KHTML* like Gecko*)*Version/1.5*Chrome*Safari*] +Parent="Android WebView 1.5" + +[Mozilla/5.0 (*Linux*Android*) AppleWebKit*(KTHML,like Gecko)*Version/1.5*Chrome*Safari*] +Parent="Android WebView 1.5" +isTablet="true" +Device_Type="Tablet" + +[Mozilla/5.0 (*Linux*Android*) AppleWebKit* (KHMTL,*like Gecko*)*Version/1.5*Chrome*Safari*] +Parent="Android WebView 1.5" + +[Mozilla/5.0 (*Linux*Android*)*AppleWebKit* (KHTML,*likeGecko*)*Version/1.5*Chrome*Safari*] +Parent="Android WebView 1.5" + +[Mozilla/5.0(*Linux*Android*)*AppleWebKit/*(KHTML,*like Gecko*)*Version/1.5*Chrome*Safari*] +Parent="Android WebView 1.5" + +[Mozilla/5.0 (*Linux*Android* Build/*) AppleWebKit/* (KHTML,*like Gecko*) Version/1.5*Safari*Chrome*] +Parent="Android WebView 1.5" + +[Mozilla/5.0 (*Linux*Android*)*AppleWebKit/*(*KHTML* like Gecko*)*Version/1.5*Safari*Chrome*] +Parent="Android WebView 1.5" + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Android WebView 1.0 + +[Android WebView 1.0] +Parent="DefaultProperties" +Comment="Android WebView 1.0" +Browser="Android WebView" +Version="1.0" +Platform="Android" +isMobileDevice="true" +Device_Type="Mobile Phone" + +[Mozilla/5.0 (*Linux*Android* Build/*) AppleWebKit/* (KHTML,*like Gecko*)*Version/1.0*Chrome*Safari*] +Parent="Android WebView 1.0" + +[Mozilla/5.0 (*Linux*Android*)*AppleWebKit/*(*KHTML* like Gecko*)*Version/1.0*Chrome*Safari*] +Parent="Android WebView 1.0" + +[Mozilla/5.0 (*Linux*Android*) AppleWebKit*(KTHML,like Gecko)*Version/1.0*Chrome*Safari*] +Parent="Android WebView 1.0" +isTablet="true" +Device_Type="Tablet" + +[Mozilla/5.0 (*Linux*Android*) AppleWebKit* (KHMTL,*like Gecko*)*Version/1.0*Chrome*Safari*] +Parent="Android WebView 1.0" + +[Mozilla/5.0(*Linux*Android*) AppleWebKit/* (KHTML,*like Gecko*)*Version/1.0*Chrome*Safari*] +Parent="Android WebView 1.0" + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Android WebView Generic + +[Android WebView Generic] +Parent="DefaultProperties" +Comment="Android WebView Generic" +Browser="Android WebView" +Platform="Android" +isMobileDevice="true" +Device_Type="Mobile Phone" + +[*Mozilla/5.0 (*Linux*Android*) AppleWebKit/*KHTML* like Gecko) Version/*Chrome*Safari*] +Parent="Android WebView Generic" + +[Mozilla/5.0 (*Linux*Android* Build/*) AppleWebKit/* (KHTML,*like Gecko*) Version/*Chrome*Safari*] +Parent="Android WebView Generic" + +[Mozilla/5.0 (*Linux*Android*)*AppleWebKit/*(*KHTML* like Gecko*)*Version/*Chrome*Safari*] +Parent="Android WebView Generic" + +[Mozilla/5.0 (*Linux*Android*) AppleWebKit*(KTHML,like Gecko)*Version/*Chrome*Safari*] +Parent="Android WebView Generic" + +[Mozilla/5.0 (*Linux*Android*) AppleWebKit* (KHMTL,*like Gecko*)*Version/*Chrome*Safari*] +Parent="Android WebView Generic" + +[Mozilla/5.0 (*Linux*Android*)*AppleWebKit/*(*KHTML* like Gecko*)*Version/*Safari*Chrome*] +Parent="Android WebView Generic" + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Opera 42.0 + +[Opera 42.0] +Parent="DefaultProperties" +Comment="Opera 42.0" +Browser="Opera" +Version="42.0" +Device_Type="Desktop" + +[Mozilla/5.0 (*Linux*) AppleWebKit/* (KHTML, like Gecko)*Chrome/*Safari/*OPR/42.0*] +Parent="Opera 42.0" +Platform="Linux" + +[Mozilla/5.0 (*Windows NT 6.0*) AppleWebKit/* (KHTML, like Gecko)*Chrome/*Safari/*OPR/42.0*] +Parent="Opera 42.0" +Platform="WinVista" + +[Mozilla/5.0 (*Windows NT 6.1*) AppleWebKit/* (KHTML, like Gecko)*Chrome/*Safari/*OPR/42.0*] +Parent="Opera 42.0" +Platform="Win7" + +[Mozilla/5.0 (*Windows NT 6.2*) AppleWebKit/* (KHTML, like Gecko)*Chrome/*Safari/*OPR/42.0*] +Parent="Opera 42.0" +Platform="Win8" + +[Mozilla/5.0 (*Windows NT 6.3*) AppleWebKit/* (KHTML, like Gecko)*Chrome/*Safari/*OPR/42.0*] +Parent="Opera 42.0" +Platform="Win8.1" + +[Mozilla/5.0 (*Windows NT 6.4*) AppleWebKit/* (KHTML, like Gecko)*Chrome/*Safari/*OPR/42.0*] +Parent="Opera 42.0" +Platform="Win10" + +[Mozilla/5.0 (*Windows NT 10.0*) AppleWebKit/* (KHTML, like Gecko)*Chrome/*Safari/*OPR/42.0*] +Parent="Opera 42.0" +Platform="Win10" + +[Mozilla/5.0 (*Mac OS X*) AppleWebKit/* (KHTML, like Gecko)*Chrome/*Safari/*OPR/42.0*] +Parent="Opera 42.0" +Platform="MacOSX" + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Opera 41.0 + +[Opera 41.0] +Parent="DefaultProperties" +Comment="Opera 41.0" +Browser="Opera" +Version="41.0" +Device_Type="Desktop" + +[Mozilla/5.0 (*Linux*) AppleWebKit/* (KHTML, like Gecko)*Chrome/*Safari/*OPR/41.0*] +Parent="Opera 41.0" +Platform="Linux" + +[Mozilla/5.0 (*Windows NT 6.0*) AppleWebKit/* (KHTML, like Gecko)*Chrome/*Safari/*OPR/41.0*] +Parent="Opera 41.0" +Platform="WinVista" + +[Mozilla/5.0 (*Windows NT 6.1*) AppleWebKit/* (KHTML, like Gecko)*Chrome/*Safari/*OPR/41.0*] +Parent="Opera 41.0" +Platform="Win7" + +[Mozilla/5.0 (*Windows NT 6.2*) AppleWebKit/* (KHTML, like Gecko)*Chrome/*Safari/*OPR/41.0*] +Parent="Opera 41.0" +Platform="Win8" + +[Mozilla/5.0 (*Windows NT 6.3*) AppleWebKit/* (KHTML, like Gecko)*Chrome/*Safari/*OPR/41.0*] +Parent="Opera 41.0" +Platform="Win8.1" + +[Mozilla/5.0 (*Windows NT 6.4*) AppleWebKit/* (KHTML, like Gecko)*Chrome/*Safari/*OPR/41.0*] +Parent="Opera 41.0" +Platform="Win10" + +[Mozilla/5.0 (*Windows NT 10.0*) AppleWebKit/* (KHTML, like Gecko)*Chrome/*Safari/*OPR/41.0*] +Parent="Opera 41.0" +Platform="Win10" + +[Mozilla/5.0 (*Mac OS X*) AppleWebKit/* (KHTML, like Gecko)*Chrome/*Safari/*OPR/41.0*] +Parent="Opera 41.0" +Platform="MacOSX" + +[Opera 40.0] +Parent="DefaultProperties" +Comment="Opera 40.0" +Browser="Opera" +Version="40.0" +Device_Type="Desktop" + +[Mozilla/5.0 (*Linux*) AppleWebKit/* (KHTML, like Gecko)*Chrome/*Safari/*OPR/40.0*] +Parent="Opera 40.0" +Platform="Linux" + +[Mozilla/5.0 (*Windows NT 6.0*) AppleWebKit/* (KHTML, like Gecko)*Chrome/*Safari/*OPR/40.0*] +Parent="Opera 40.0" +Platform="WinVista" + +[Mozilla/5.0 (*Windows NT 6.1*) AppleWebKit/* (KHTML, like Gecko)*Chrome/*Safari/*OPR/40.0*] +Parent="Opera 40.0" +Platform="Win7" + +[Mozilla/5.0 (*Windows NT 6.2*) AppleWebKit/* (KHTML, like Gecko)*Chrome/*Safari/*OPR/40.0*] +Parent="Opera 40.0" +Platform="Win8" + +[Mozilla/5.0 (*Windows NT 6.3*) AppleWebKit/* (KHTML, like Gecko)*Chrome/*Safari/*OPR/40.0*] +Parent="Opera 40.0" +Platform="Win8.1" + +[Mozilla/5.0 (*Windows NT 6.4*) AppleWebKit/* (KHTML, like Gecko)*Chrome/*Safari/*OPR/40.0*] +Parent="Opera 40.0" +Platform="Win10" + +[Mozilla/5.0 (*Windows NT 10.0*) AppleWebKit/* (KHTML, like Gecko)*Chrome/*Safari/*OPR/40.0*] +Parent="Opera 40.0" +Platform="Win10" + +[Mozilla/5.0 (*Mac OS X*) AppleWebKit/* (KHTML, like Gecko)*Chrome/*Safari/*OPR/40.0*] +Parent="Opera 40.0" +Platform="MacOSX" + +[Opera 39.0] +Parent="DefaultProperties" +Comment="Opera 39.0" +Browser="Opera" +Version="39.0" +Device_Type="Desktop" + +[Mozilla/5.0 (*Linux*) AppleWebKit/* (KHTML, like Gecko)*Chrome/*Safari/*OPR/39.0*] +Parent="Opera 39.0" +Platform="Linux" + +[Mozilla/5.0 (*Windows NT 6.0*) AppleWebKit/* (KHTML, like Gecko)*Chrome/*Safari/*OPR/39.0*] +Parent="Opera 39.0" +Platform="WinVista" + +[Mozilla/5.0 (*Windows NT 6.1*) AppleWebKit/* (KHTML, like Gecko)*Chrome/*Safari/*OPR/39.0*] +Parent="Opera 39.0" +Platform="Win7" + +[Mozilla/5.0 (*Windows NT 6.2*) AppleWebKit/* (KHTML, like Gecko)*Chrome/*Safari/*OPR/39.0*] +Parent="Opera 39.0" +Platform="Win8" + +[Mozilla/5.0 (*Windows NT 6.3*) AppleWebKit/* (KHTML, like Gecko)*Chrome/*Safari/*OPR/39.0*] +Parent="Opera 39.0" +Platform="Win8.1" + +[Mozilla/5.0 (*Windows NT 6.4*) AppleWebKit/* (KHTML, like Gecko)*Chrome/*Safari/*OPR/39.0*] +Parent="Opera 39.0" +Platform="Win10" + +[Mozilla/5.0 (*Windows NT 10.0*) AppleWebKit/* (KHTML, like Gecko)*Chrome/*Safari/*OPR/39.0*] +Parent="Opera 39.0" +Platform="Win10" + +[Mozilla/5.0 (*Mac OS X*) AppleWebKit/* (KHTML, like Gecko)*Chrome/*Safari/*OPR/39.0*] +Parent="Opera 39.0" +Platform="MacOSX" + +[Opera 38.0] +Parent="DefaultProperties" +Comment="Opera 38.0" +Browser="Opera" +Version="38.0" +Device_Type="Desktop" + +[Mozilla/5.0 (*Linux*) AppleWebKit/* (KHTML, like Gecko)*Chrome/*Safari/*OPR/38.0*] +Parent="Opera 38.0" +Platform="Linux" + +[Mozilla/5.0 (*Windows NT 6.0*) AppleWebKit/* (KHTML, like Gecko)*Chrome/*Safari/*OPR/38.0*] +Parent="Opera 38.0" +Platform="WinVista" + +[Mozilla/5.0 (*Windows NT 6.1*) AppleWebKit/* (KHTML, like Gecko)*Chrome/*Safari/*OPR/38.0*] +Parent="Opera 38.0" +Platform="Win7" + +[Mozilla/5.0 (*Windows NT 6.2*) AppleWebKit/* (KHTML, like Gecko)*Chrome/*Safari/*OPR/38.0*] +Parent="Opera 38.0" +Platform="Win8" + +[Mozilla/5.0 (*Windows NT 6.3*) AppleWebKit/* (KHTML, like Gecko)*Chrome/*Safari/*OPR/38.0*] +Parent="Opera 38.0" +Platform="Win8.1" + +[Mozilla/5.0 (*Windows NT 6.4*) AppleWebKit/* (KHTML, like Gecko)*Chrome/*Safari/*OPR/38.0*] +Parent="Opera 38.0" +Platform="Win10" + +[Mozilla/5.0 (*Windows NT 10.0*) AppleWebKit/* (KHTML, like Gecko)*Chrome/*Safari/*OPR/38.0*] +Parent="Opera 38.0" +Platform="Win10" + +[Mozilla/5.0 (*Mac OS X*) AppleWebKit/* (KHTML, like Gecko)*Chrome/*Safari/*OPR/38.0*] +Parent="Opera 38.0" +Platform="MacOSX" + +[Opera 37.0] +Parent="DefaultProperties" +Comment="Opera 37.0" +Browser="Opera" +Version="37.0" +Device_Type="Desktop" + +[Mozilla/5.0 (*Linux*) AppleWebKit/* (KHTML, like Gecko)*Chrome/*Safari/*OPR/37.0*] +Parent="Opera 37.0" +Platform="Linux" + +[Mozilla/5.0 (*Windows NT 6.0*) AppleWebKit/* (KHTML, like Gecko)*Chrome/*Safari/*OPR/37.0*] +Parent="Opera 37.0" +Platform="WinVista" + +[Mozilla/5.0 (*Windows NT 6.1*) AppleWebKit/* (KHTML, like Gecko)*Chrome/*Safari/*OPR/37.0*] +Parent="Opera 37.0" +Platform="Win7" + +[Mozilla/5.0 (*Windows NT 6.2*) AppleWebKit/* (KHTML, like Gecko)*Chrome/*Safari/*OPR/37.0*] +Parent="Opera 37.0" +Platform="Win8" + +[Mozilla/5.0 (*Windows NT 6.3*) AppleWebKit/* (KHTML, like Gecko)*Chrome/*Safari/*OPR/37.0*] +Parent="Opera 37.0" +Platform="Win8.1" + +[Mozilla/5.0 (*Windows NT 6.4*) AppleWebKit/* (KHTML, like Gecko)*Chrome/*Safari/*OPR/37.0*] +Parent="Opera 37.0" +Platform="Win10" + +[Mozilla/5.0 (*Windows NT 10.0*) AppleWebKit/* (KHTML, like Gecko)*Chrome/*Safari/*OPR/37.0*] +Parent="Opera 37.0" +Platform="Win10" + +[Mozilla/5.0 (*Mac OS X*) AppleWebKit/* (KHTML, like Gecko)*Chrome/*Safari/*OPR/37.0*] +Parent="Opera 37.0" +Platform="MacOSX" + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Opera 36.0 + +[Opera 36.0] +Parent="DefaultProperties" +Comment="Opera 36.0" +Browser="Opera" +Version="36.0" +Device_Type="Desktop" + +[Mozilla/5.0 (*Linux*) AppleWebKit/* (KHTML* like Gecko)*Chrome/*Safari/*OPR/36.0*] +Parent="Opera 36.0" +Platform="Linux" + +[Mozilla/5.0 (*Windows NT 6.0*) AppleWebKit/* (KHTML* like Gecko)*Chrome/*Safari/*OPR/36.0*] +Parent="Opera 36.0" +Platform="WinVista" + +[Mozilla/5.0 (*Windows NT 6.1*) AppleWebKit/* (KHTML* like Gecko)*Chrome/*Safari/*OPR/36.0*] +Parent="Opera 36.0" +Platform="Win7" + +[Mozilla/5.0 (*Windows NT 6.2*) AppleWebKit/* (KHTML* like Gecko)*Chrome/*Safari/*OPR/36.0*] +Parent="Opera 36.0" +Platform="Win8" + +[Mozilla/5.0 (*Windows NT 6.3*) AppleWebKit/* (KHTML* like Gecko)*Chrome/*Safari/*OPR/36.0*] +Parent="Opera 36.0" +Platform="Win8.1" + +[Mozilla/5.0 (*Windows NT 6.4*) AppleWebKit/* (KHTML* like Gecko)*Chrome/*Safari/*OPR/36.0*] +Parent="Opera 36.0" +Platform="Win10" + +[Mozilla/5.0 (*Windows NT 10.0*) AppleWebKit/* (KHTML* like Gecko)*Chrome/*Safari/*OPR/36.0*] +Parent="Opera 36.0" +Platform="Win10" + +[Mozilla/5.0 (*Mac OS X*) AppleWebKit/* (KHTML* like Gecko)*Chrome/*Safari/*OPR/36.0*] +Parent="Opera 36.0" +Platform="MacOSX" + +[Opera 35.0] +Parent="DefaultProperties" +Comment="Opera 35.0" +Browser="Opera" +Version="35.0" +Device_Type="Desktop" + +[Mozilla/5.0 (*Linux*) AppleWebKit/* (KHTML* like Gecko)*Chrome/*Safari/*OPR/35.0*] +Parent="Opera 35.0" +Platform="Linux" + +[Mozilla/5.0 (*Windows NT 6.0*) AppleWebKit/* (KHTML* like Gecko)*Chrome/*Safari/*OPR/35.0*] +Parent="Opera 35.0" +Platform="WinVista" + +[Mozilla/5.0 (*Windows NT 6.1*) AppleWebKit/* (KHTML* like Gecko)*Chrome/*Safari/*OPR/35.0*] +Parent="Opera 35.0" +Platform="Win7" + +[Mozilla/5.0 (*Windows NT 6.2*) AppleWebKit/* (KHTML* like Gecko)*Chrome/*Safari/*OPR/35.0*] +Parent="Opera 35.0" +Platform="Win8" + +[Mozilla/5.0 (*Windows NT 6.3*) AppleWebKit/* (KHTML* like Gecko)*Chrome/*Safari/*OPR/35.0*] +Parent="Opera 35.0" +Platform="Win8.1" + +[Mozilla/5.0 (*Windows NT 6.4*) AppleWebKit/* (KHTML* like Gecko)*Chrome/*Safari/*OPR/35.0*] +Parent="Opera 35.0" +Platform="Win10" + +[Mozilla/5.0 (*Windows NT 10.0*) AppleWebKit/* (KHTML* like Gecko)*Chrome/*Safari/*OPR/35.0*] +Parent="Opera 35.0" +Platform="Win10" + +[Mozilla/5.0 (*Mac OS X*) AppleWebKit/* (KHTML* like Gecko)*Chrome/*Safari/*OPR/35.0*] +Parent="Opera 35.0" +Platform="MacOSX" + +[Opera 34.0] +Parent="DefaultProperties" +Comment="Opera 34.0" +Browser="Opera" +Version="34.0" +Device_Type="Desktop" + +[Mozilla/5.0 (*Linux*) AppleWebKit/* (KHTML* like Gecko)*Chrome/*Safari/*OPR/34.0*] +Parent="Opera 34.0" +Platform="Linux" + +[Mozilla/5.0 (*Windows NT 6.0*) AppleWebKit/* (KHTML* like Gecko)*Chrome/*Safari/*OPR/34.0*] +Parent="Opera 34.0" +Platform="WinVista" + +[Mozilla/5.0 (*Windows NT 6.1*) AppleWebKit/* (KHTML* like Gecko)*Chrome/*Safari/*OPR/34.0*] +Parent="Opera 34.0" +Platform="Win7" + +[Mozilla/5.0 (*Windows NT 6.2*) AppleWebKit/* (KHTML* like Gecko)*Chrome/*Safari/*OPR/34.0*] +Parent="Opera 34.0" +Platform="Win8" + +[Mozilla/5.0 (*Windows NT 6.3*) AppleWebKit/* (KHTML* like Gecko)*Chrome/*Safari/*OPR/34.0*] +Parent="Opera 34.0" +Platform="Win8.1" + +[Mozilla/5.0 (*Windows NT 6.4*) AppleWebKit/* (KHTML* like Gecko)*Chrome/*Safari/*OPR/34.0*] +Parent="Opera 34.0" +Platform="Win10" + +[Mozilla/5.0 (*Windows NT 10.0*) AppleWebKit/* (KHTML* like Gecko)*Chrome/*Safari/*OPR/34.0*] +Parent="Opera 34.0" +Platform="Win10" + +[Mozilla/5.0 (*Mac OS X*) AppleWebKit/* (KHTML* like Gecko)*Chrome/*Safari/*OPR/34.0*] +Parent="Opera 34.0" +Platform="MacOSX" + +[Opera 33.0] +Parent="DefaultProperties" +Comment="Opera 33.0" +Browser="Opera" +Version="33.0" +Device_Type="Desktop" + +[Mozilla/5.0 (*Linux*) AppleWebKit/* (KHTML* like Gecko)*Chrome/*Safari/*OPR/33.0*] +Parent="Opera 33.0" +Platform="Linux" + +[Mozilla/5.0 (*Windows NT 6.0*) AppleWebKit/* (KHTML* like Gecko)*Chrome/*Safari/*OPR/33.0*] +Parent="Opera 33.0" +Platform="WinVista" + +[Mozilla/5.0 (*Windows NT 6.1*) AppleWebKit/* (KHTML* like Gecko)*Chrome/*Safari/*OPR/33.0*] +Parent="Opera 33.0" +Platform="Win7" + +[Mozilla/5.0 (*Windows NT 6.2*) AppleWebKit/* (KHTML* like Gecko)*Chrome/*Safari/*OPR/33.0*] +Parent="Opera 33.0" +Platform="Win8" + +[Mozilla/5.0 (*Windows NT 6.3*) AppleWebKit/* (KHTML* like Gecko)*Chrome/*Safari/*OPR/33.0*] +Parent="Opera 33.0" +Platform="Win8.1" + +[Mozilla/5.0 (*Windows NT 6.4*) AppleWebKit/* (KHTML* like Gecko)*Chrome/*Safari/*OPR/33.0*] +Parent="Opera 33.0" +Platform="Win10" + +[Mozilla/5.0 (*Windows NT 10.0*) AppleWebKit/* (KHTML* like Gecko)*Chrome/*Safari/*OPR/33.0*] +Parent="Opera 33.0" +Platform="Win10" + +[Mozilla/5.0 (*Mac OS X*) AppleWebKit/* (KHTML* like Gecko)*Chrome/*Safari/*OPR/33.0*] +Parent="Opera 33.0" +Platform="MacOSX" + +[Opera 32.0] +Parent="DefaultProperties" +Comment="Opera 32.0" +Browser="Opera" +Version="32.0" +Device_Type="Desktop" + +[Mozilla/5.0 (*Linux*) AppleWebKit/* (KHTML* like Gecko)*Chrome/*Safari/*OPR/32.0*] +Parent="Opera 32.0" +Platform="Linux" + +[Mozilla/5.0 (*Windows NT 6.0*) AppleWebKit/* (KHTML* like Gecko)*Chrome/*Safari/*OPR/32.0*] +Parent="Opera 32.0" +Platform="WinVista" + +[Mozilla/5.0 (*Windows NT 6.1*) AppleWebKit/* (KHTML* like Gecko)*Chrome/*Safari/*OPR/32.0*] +Parent="Opera 32.0" +Platform="Win7" + +[Mozilla/5.0 (*Windows NT 6.2*) AppleWebKit/* (KHTML* like Gecko)*Chrome/*Safari/*OPR/32.0*] +Parent="Opera 32.0" +Platform="Win8" + +[Mozilla/5.0 (*Windows NT 6.3*) AppleWebKit/* (KHTML* like Gecko)*Chrome/*Safari/*OPR/32.0*] +Parent="Opera 32.0" +Platform="Win8.1" + +[Mozilla/5.0 (*Windows NT 6.4*) AppleWebKit/* (KHTML* like Gecko)*Chrome/*Safari/*OPR/32.0*] +Parent="Opera 32.0" +Platform="Win10" + +[Mozilla/5.0 (*Windows NT 10.0*) AppleWebKit/* (KHTML* like Gecko)*Chrome/*Safari/*OPR/32.0*] +Parent="Opera 32.0" +Platform="Win10" + +[Mozilla/5.0 (*Mac OS X*) AppleWebKit/* (KHTML* like Gecko)*Chrome/*Safari/*OPR/32.0*] +Parent="Opera 32.0" +Platform="MacOSX" + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Opera 31.0 + +[Opera 31.0] +Parent="DefaultProperties" +Comment="Opera 31.0" +Browser="Opera" +Version="31.0" +Device_Type="Desktop" + +[Mozilla/5.0 (*Linux*) AppleWebKit/* (KHTML* like Gecko)*Chrome/*Safari/*OPR/31.0*] +Parent="Opera 31.0" +Platform="Linux" + +[Mozilla/5.0 (*Windows NT 6.0*) AppleWebKit/* (KHTML* like Gecko)*Chrome/*Safari/*OPR/31.0*] +Parent="Opera 31.0" +Platform="WinVista" + +[Mozilla/5.0 (*Windows NT 6.1*) AppleWebKit/* (KHTML* like Gecko)*Chrome/*Safari/*OPR/31.0*] +Parent="Opera 31.0" +Platform="Win7" + +[Mozilla/5.0 (*Windows NT 6.2*) AppleWebKit/* (KHTML* like Gecko)*Chrome/*Safari/*OPR/31.0*] +Parent="Opera 31.0" +Platform="Win8" + +[Mozilla/5.0 (*Windows NT 6.3*) AppleWebKit/* (KHTML* like Gecko)*Chrome/*Safari/*OPR/31.0*] +Parent="Opera 31.0" +Platform="Win8.1" + +[Mozilla/5.0 (*Windows NT 6.4*) AppleWebKit/* (KHTML* like Gecko)*Chrome/*Safari/*OPR/31.0*] +Parent="Opera 31.0" +Platform="Win10" + +[Mozilla/5.0 (*Windows NT 10.0*) AppleWebKit/* (KHTML* like Gecko)*Chrome/*Safari/*OPR/31.0*] +Parent="Opera 31.0" +Platform="Win10" + +[Mozilla/5.0 (*Mac OS X*) AppleWebKit/* (KHTML* like Gecko)*Chrome/*Safari/*OPR/31.0*] +Parent="Opera 31.0" +Platform="MacOSX" + +[Opera 30.0] +Parent="DefaultProperties" +Comment="Opera 30.0" +Browser="Opera" +Version="30.0" +Device_Type="Desktop" + +[Mozilla/5.0 (*Linux*) AppleWebKit/* (KHTML* like Gecko)*Chrome/*Safari/*OPR/30.0*] +Parent="Opera 30.0" +Platform="Linux" + +[Mozilla/5.0 (*Windows NT 6.0*) AppleWebKit/* (KHTML* like Gecko)*Chrome/*Safari/*OPR/30.0*] +Parent="Opera 30.0" +Platform="WinVista" + +[Mozilla/5.0 (*Windows NT 6.1*) AppleWebKit/* (KHTML* like Gecko)*Chrome/*Safari/*OPR/30.0*] +Parent="Opera 30.0" +Platform="Win7" + +[Mozilla/5.0 (*Windows NT 6.2*) AppleWebKit/* (KHTML* like Gecko)*Chrome/*Safari/*OPR/30.0*] +Parent="Opera 30.0" +Platform="Win8" + +[Mozilla/5.0 (*Windows NT 6.3*) AppleWebKit/* (KHTML* like Gecko)*Chrome/*Safari/*OPR/30.0*] +Parent="Opera 30.0" +Platform="Win8.1" + +[Mozilla/5.0 (*Windows NT 6.4*) AppleWebKit/* (KHTML* like Gecko)*Chrome/*Safari/*OPR/30.0*] +Parent="Opera 30.0" +Platform="Win10" + +[Mozilla/5.0 (*Windows NT 10.0*) AppleWebKit/* (KHTML* like Gecko)*Chrome/*Safari/*OPR/30.0*] +Parent="Opera 30.0" +Platform="Win10" + +[Mozilla/5.0 (*Mac OS X*) AppleWebKit/* (KHTML* like Gecko)*Chrome/*Safari/*OPR/30.0*] +Parent="Opera 30.0" +Platform="MacOSX" + +[Opera 29.0] +Parent="DefaultProperties" +Comment="Opera 29.0" +Browser="Opera" +Version="29.0" +Device_Type="Desktop" + +[Mozilla/5.0 (*Linux*) AppleWebKit/* (KHTML* like Gecko)*Chrome/*Safari/*OPR/29.0*] +Parent="Opera 29.0" +Platform="Linux" + +[Mozilla/5.0 (*Windows NT 6.0*) AppleWebKit/* (KHTML* like Gecko)*Chrome/*Safari/*OPR/29.0*] +Parent="Opera 29.0" +Platform="WinVista" + +[Mozilla/5.0 (*Windows NT 6.1*) AppleWebKit/* (KHTML* like Gecko)*Chrome/*Safari/*OPR/29.0*] +Parent="Opera 29.0" +Platform="Win7" + +[Mozilla/5.0 (*Windows NT 6.2*) AppleWebKit/* (KHTML* like Gecko)*Chrome/*Safari/*OPR/29.0*] +Parent="Opera 29.0" +Platform="Win8" + +[Mozilla/5.0 (*Windows NT 6.3*) AppleWebKit/* (KHTML* like Gecko)*Chrome/*Safari/*OPR/29.0*] +Parent="Opera 29.0" +Platform="Win8.1" + +[Mozilla/5.0 (*Windows NT 6.4*) AppleWebKit/* (KHTML* like Gecko)*Chrome/*Safari/*OPR/29.0*] +Parent="Opera 29.0" +Platform="Win10" + +[Mozilla/5.0 (*Windows NT 10.0*) AppleWebKit/* (KHTML* like Gecko)*Chrome/*Safari/*OPR/29.0*] +Parent="Opera 29.0" +Platform="Win10" + +[Mozilla/5.0 (*Mac OS X*) AppleWebKit/* (KHTML* like Gecko)*Chrome/*Safari/*OPR/29.0*] +Parent="Opera 29.0" +Platform="MacOSX" + +[Opera 28.0] +Parent="DefaultProperties" +Comment="Opera 28.0" +Browser="Opera" +Version="28.0" +Device_Type="Desktop" + +[Mozilla/5.0 (*Linux*) AppleWebKit/* (KHTML* like Gecko)*Chrome/*Safari/*OPR/28.0*] +Parent="Opera 28.0" +Platform="Linux" + +[Mozilla/5.0 (*Windows NT 6.0*) AppleWebKit/* (KHTML* like Gecko)*Chrome/*Safari/*OPR/28.0*] +Parent="Opera 28.0" +Platform="WinVista" + +[Mozilla/5.0 (*Windows NT 6.1*) AppleWebKit/* (KHTML* like Gecko)*Chrome/*Safari/*OPR/28.0*] +Parent="Opera 28.0" +Platform="Win7" + +[Mozilla/5.0 (*Windows NT 6.2*) AppleWebKit/* (KHTML* like Gecko)*Chrome/*Safari/*OPR/28.0*] +Parent="Opera 28.0" +Platform="Win8" + +[Mozilla/5.0 (*Windows NT 6.3*) AppleWebKit/* (KHTML* like Gecko)*Chrome/*Safari/*OPR/28.0*] +Parent="Opera 28.0" +Platform="Win8.1" + +[Mozilla/5.0 (*Windows NT 6.4*) AppleWebKit/* (KHTML* like Gecko)*Chrome/*Safari/*OPR/28.0*] +Parent="Opera 28.0" +Platform="Win10" + +[Mozilla/5.0 (*Windows NT 10.0*) AppleWebKit/* (KHTML* like Gecko)*Chrome/*Safari/*OPR/28.0*] +Parent="Opera 28.0" +Platform="Win10" + +[Mozilla/5.0 (*Mac OS X*) AppleWebKit/* (KHTML* like Gecko)*Chrome/*Safari/*OPR/28.0*] +Parent="Opera 28.0" +Platform="MacOSX" + +[Opera 27.0] +Parent="DefaultProperties" +Comment="Opera 27.0" +Browser="Opera" +Version="27.0" +Device_Type="Desktop" + +[Mozilla/5.0 (*Linux*) AppleWebKit/* (KHTML* like Gecko)*Chrome/*Safari/*OPR/27.0*] +Parent="Opera 27.0" +Platform="Linux" + +[Mozilla/5.0 (*Windows NT 6.0*) AppleWebKit/* (KHTML* like Gecko)*Chrome/*Safari/*OPR/27.0*] +Parent="Opera 27.0" +Platform="WinVista" + +[Mozilla/5.0 (*Windows NT 6.1*) AppleWebKit/* (KHTML* like Gecko)*Chrome/*Safari/*OPR/27.0*] +Parent="Opera 27.0" +Platform="Win7" + +[Mozilla/5.0 (*Windows NT 6.2*) AppleWebKit/* (KHTML* like Gecko)*Chrome/*Safari/*OPR/27.0*] +Parent="Opera 27.0" +Platform="Win8" + +[Mozilla/5.0 (*Windows NT 6.3*) AppleWebKit/* (KHTML* like Gecko)*Chrome/*Safari/*OPR/27.0*] +Parent="Opera 27.0" +Platform="Win8.1" + +[Mozilla/5.0 (*Windows NT 6.4*) AppleWebKit/* (KHTML* like Gecko)*Chrome/*Safari/*OPR/27.0*] +Parent="Opera 27.0" +Platform="Win10" + +[Mozilla/5.0 (*Windows NT 10.0*) AppleWebKit/* (KHTML* like Gecko)*Chrome/*Safari/*OPR/27.0*] +Parent="Opera 27.0" +Platform="Win10" + +[Mozilla/5.0 (*Mac OS X*) AppleWebKit/* (KHTML* like Gecko)*Chrome/*Safari/*OPR/27.0*] +Parent="Opera 27.0" +Platform="MacOSX" + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Edge 17.0 + +[Edge 17.0] +Parent="DefaultProperties" +Comment="Edge 17.0" +Browser="Edge" +Version="17.0" +Device_Type="Desktop" + +[Mozilla/5.0 (*Windows NT 6.4*) AppleWebKit/* (KHTML* like Gecko) Chrome/* Safari/* Edge/17.*] +Parent="Edge 17.0" +Platform="Win10" + +[Mozilla/5.0 (*Windows NT 10.0*) AppleWebKit/* (KHTML* like Gecko) Chrome/* Safari/* Edge/17.*] +Parent="Edge 17.0" +Platform="Win10" + +[Edge Mobile 17.0] +Parent="DefaultProperties" +Comment="Edge Mobile 17.0" +Browser="Edge Mobile" +Version="17.0" +Platform="WinPhone10" +isMobileDevice="true" +Device_Type="Mobile Phone" + +[Mozilla/5.0 (*Windows Phone 10.0*NOKIA; Lumia 930) AppleWebKit/* (KHTML* like Gecko) Chrome/* Safari/* Edge/17.*] +Parent="Edge Mobile 17.0" + +[Mozilla/5.0 (*Windows Phone 10.0*Xbox; Xbox One) AppleWebKit/* (KHTML* like Gecko) Chrome/* Safari/* Edge/17.*] +Parent="Edge Mobile 17.0" +isMobileDevice="false" +Device_Type="TV Device" + +[Mozilla/5.0 (*Windows Phone 10.0*NOKIA; RM-1010) AppleWebKit/* (KHTML* like Gecko) Chrome/* Safari/* Edge/17.*] +Parent="Edge Mobile 17.0" + +[Mozilla/5.0 (*Windows Phone 10.0*) AppleWebKit/* (KHTML* like Gecko) Chrome/* Safari/* Edge/17.*] +Parent="Edge Mobile 17.0" + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Edge 16.0 + +[Edge 16.0] +Parent="DefaultProperties" +Comment="Edge 16.0" +Browser="Edge" +Version="16.0" +Device_Type="Desktop" + +[Mozilla/5.0 (*Windows NT 6.4*) AppleWebKit/* (KHTML* like Gecko) Chrome/* Safari/* Edge/16.*] +Parent="Edge 16.0" +Platform="Win10" + +[Mozilla/5.0 (*Windows NT 10.0*) AppleWebKit/* (KHTML* like Gecko) Chrome/* Safari/* Edge/16.*] +Parent="Edge 16.0" +Platform="Win10" + +[Edge Mobile 16.0] +Parent="DefaultProperties" +Comment="Edge Mobile 16.0" +Browser="Edge Mobile" +Version="16.0" +Platform="WinPhone10" +isMobileDevice="true" +Device_Type="Mobile Phone" + +[Mozilla/5.0 (*Windows Phone 10.0*NOKIA; Lumia 930) AppleWebKit/* (KHTML* like Gecko) Chrome/* Safari/* Edge/16.*] +Parent="Edge Mobile 16.0" + +[Mozilla/5.0 (*Windows Phone 10.0*Xbox; Xbox One) AppleWebKit/* (KHTML* like Gecko) Chrome/* Safari/* Edge/16.*] +Parent="Edge Mobile 16.0" +isMobileDevice="false" +Device_Type="TV Device" + +[Mozilla/5.0 (*Windows Phone 10.0*NOKIA; RM-1010) AppleWebKit/* (KHTML* like Gecko) Chrome/* Safari/* Edge/16.*] +Parent="Edge Mobile 16.0" + +[Mozilla/5.0 (*Windows Phone 10.0*) AppleWebKit/* (KHTML* like Gecko) Chrome/* Safari/* Edge/16.*] +Parent="Edge Mobile 16.0" + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Edge 15.0 + +[Edge 15.0] +Parent="DefaultProperties" +Comment="Edge 15.0" +Browser="Edge" +Version="15.0" +Device_Type="Desktop" + +[Mozilla/5.0 (*Windows NT 6.4*) AppleWebKit/* (KHTML* like Gecko) Chrome/* Safari/* Edge/15.*] +Parent="Edge 15.0" +Platform="Win10" + +[Mozilla/5.0 (*Windows NT 10.0*) AppleWebKit/* (KHTML* like Gecko) Chrome/* Safari/* Edge/15.*] +Parent="Edge 15.0" +Platform="Win10" + +[Edge Mobile 15.0] +Parent="DefaultProperties" +Comment="Edge Mobile 15.0" +Browser="Edge Mobile" +Version="15.0" +Platform="WinPhone10" +isMobileDevice="true" +Device_Type="Mobile Phone" + +[Mozilla/5.0 (*Windows Phone 10.0*NOKIA; Lumia 930) AppleWebKit/* (KHTML* like Gecko) Chrome/* Safari/* Edge/15.*] +Parent="Edge Mobile 15.0" + +[Mozilla/5.0 (*Windows Phone 10.0*Xbox; Xbox One) AppleWebKit/* (KHTML* like Gecko) Chrome/* Safari/* Edge/15.*] +Parent="Edge Mobile 15.0" +isMobileDevice="false" +Device_Type="TV Device" + +[Mozilla/5.0 (*Windows Phone 10.0*NOKIA; RM-1010) AppleWebKit/* (KHTML* like Gecko) Chrome/* Safari/* Edge/15.*] +Parent="Edge Mobile 15.0" + +[Mozilla/5.0 (*Windows Phone 10.0*) AppleWebKit/* (KHTML* like Gecko) Chrome/* Safari/* Edge/15.*] +Parent="Edge Mobile 15.0" + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Edge 14.0 + +[Edge 14.0] +Parent="DefaultProperties" +Comment="Edge 14.0" +Browser="Edge" +Version="14.0" +Device_Type="Desktop" + +[Mozilla/5.0 (*Windows NT 6.4*) AppleWebKit/* (KHTML* like Gecko) Chrome/* Safari/* Edge/14.*] +Parent="Edge 14.0" +Platform="Win10" + +[Mozilla/5.0 (*Windows NT 10.0*) AppleWebKit/* (KHTML* like Gecko) Chrome/* Safari/* Edge/14.*] +Parent="Edge 14.0" +Platform="Win10" + +[Edge Mobile 14.0] +Parent="DefaultProperties" +Comment="Edge Mobile 14.0" +Browser="Edge Mobile" +Version="14.0" +Platform="WinPhone10" +isMobileDevice="true" +Device_Type="Mobile Phone" + +[Mozilla/5.0 (*Windows Phone 10.0*NOKIA; Lumia 930) AppleWebKit/* (KHTML* like Gecko) Chrome/* Safari/* Edge/14.*] +Parent="Edge Mobile 14.0" + +[Mozilla/5.0 (*Windows Phone 10.0*Xbox; Xbox One) AppleWebKit/* (KHTML* like Gecko) Chrome/* Safari/* Edge/14.*] +Parent="Edge Mobile 14.0" +isMobileDevice="false" +Device_Type="TV Device" + +[Mozilla/5.0 (*Windows Phone 10.0*NOKIA; RM-1010) AppleWebKit/* (KHTML* like Gecko) Chrome/* Safari/* Edge/14.*] +Parent="Edge Mobile 14.0" + +[Mozilla/5.0 (*Windows Phone 10.0*) AppleWebKit/* (KHTML* like Gecko) Chrome/* Safari/* Edge/14.*] +Parent="Edge Mobile 14.0" + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Edge 13.0 + +[Edge 13.0] +Parent="DefaultProperties" +Comment="Edge 13.0" +Browser="Edge" +Version="13.0" +Device_Type="Desktop" + +[Mozilla/5.0 (*Windows NT 6.4*) AppleWebKit/* (KHTML* like Gecko) Chrome/* Safari/* Edge/13.*] +Parent="Edge 13.0" +Platform="Win10" + +[Mozilla/5.0 (*Windows NT 10.0*) AppleWebKit/* (KHTML* like Gecko) Chrome/* Safari/* Edge/13.*] +Parent="Edge 13.0" +Platform="Win10" + +[Edge Mobile 13.0] +Parent="DefaultProperties" +Comment="Edge Mobile 13.0" +Browser="Edge Mobile" +Version="13.0" +Platform="WinPhone10" +isMobileDevice="true" +Device_Type="Mobile Phone" + +[Mozilla/5.0 (*Windows Phone 10.0*NOKIA; Lumia 930) AppleWebKit/* (KHTML* like Gecko) Chrome/* Safari/* Edge/13.*] +Parent="Edge Mobile 13.0" + +[Mozilla/5.0 (*Windows Phone 10.0*Xbox; Xbox One) AppleWebKit/* (KHTML* like Gecko) Chrome/* Safari/* Edge/13.*] +Parent="Edge Mobile 13.0" +isMobileDevice="false" +Device_Type="TV Device" + +[Mozilla/5.0 (*Windows Phone 10.0*NOKIA; RM-1010) AppleWebKit/* (KHTML* like Gecko) Chrome/* Safari/* Edge/13.*] +Parent="Edge Mobile 13.0" + +[Mozilla/5.0 (*Windows Phone 10.0*) AppleWebKit/* (KHTML* like Gecko) Chrome/* Safari/* Edge/13.*] +Parent="Edge Mobile 13.0" + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Edge 12.0 + +[Edge 12.0] +Parent="DefaultProperties" +Comment="Edge 12.0" +Browser="Edge" +Version="12.0" +Device_Type="Desktop" + +[Mozilla/5.0 (*Windows NT 6.4*) AppleWebKit/* (KHTML* like Gecko) Chrome/* Safari/* Edge/12.*] +Parent="Edge 12.0" +Platform="Win10" + +[Mozilla/5.0 (*Windows NT 10.0*) AppleWebKit/* (KHTML* like Gecko) Chrome/* Safari/* Edge/12.*] +Parent="Edge 12.0" +Platform="Win10" + +[Edge Mobile 12.0] +Parent="DefaultProperties" +Comment="Edge Mobile 12.0" +Browser="Edge Mobile" +Version="12.0" +Platform="WinPhone10" +isMobileDevice="true" +Device_Type="Mobile Phone" + +[Mozilla/5.0 (*Windows Phone 10.0*NOKIA; Lumia 930) AppleWebKit/* (KHTML* like Gecko) Chrome/* Safari/* Edge/12.*] +Parent="Edge Mobile 12.0" + +[Mozilla/5.0 (*Windows Phone 10.0*Microsoft; id336*) AppleWebKit/* (KHTML* like Gecko) Chrome/* Safari/* Edge/12.*] +Parent="Edge Mobile 12.0" + +[Mozilla/5.0 (*Windows Phone 10.0*) AppleWebKit/* (KHTML* like Gecko) Chrome/* Safari/* Edge/12.*] +Parent="Edge Mobile 12.0" + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Chrome 55.0 + +[Chrome 55.0 for Android] +Parent="DefaultProperties" +Comment="Chrome 55.0" +Browser="Chrome" +Version="55.0" +Platform="Android" +isMobileDevice="true" +Device_Type="Mobile Phone" + +[Mozilla/5.0 (*Linux*Android*) AppleWebKit/* (KHTML* like Gecko) Chrome/55.*Safari/*] +Parent="Chrome 55.0 for Android" + +[Mozilla/5.0 (*Linux*Android*)*AppleWebKit/* (KHTML* like Gecko) Chrome/55.*Safari/*] +Parent="Chrome 55.0 for Android" + +[Mozilla/5.0 (*Linux*Android*) AppleWebKit/* (KHTML* like Gecko) 55.*Safari/*] +Parent="Chrome 55.0 for Android" + +[Mozilla/5.0 (*Linux*Android*) AppleWebKit/* (KHTML* like Gecko*) Chrome/55.*Safari/*] +Parent="Chrome 55.0 for Android" + +[Mozilla/5.0 (*Linux*Android*) AppleWebKit/*(KHTML,*like Gecko) Chrome/55.*Safari/*] +Parent="Chrome 55.0 for Android" + +[Mozilla/5.0 (*Linux*Android*) AppleWebKit/* (KHTML* like Gecko)*CrMo/55.*Safari/*] +Parent="Chrome 55.0 for Android" + +[Chrome 55.0 for iOS] +Parent="DefaultProperties" +Comment="Chrome 55.0" +Browser="Chrome" +Version="55.0" +Platform="iOS" +isMobileDevice="true" +Device_Type="Mobile Device" + +[Mozilla/5.0 (iPad*CPU*OS* like Mac OS X*) AppleWebKit/* (KHTML* like Gecko) *CriOS/55.*Safari/*] +Parent="Chrome 55.0 for iOS" +isTablet="true" +Device_Type="Tablet" + +[Mozilla/5.0 (iPhone*CPU*OS* like Mac OS X*) AppleWebKit/* (KHTML* like Gecko) *CriOS/55.*Safari/*] +Parent="Chrome 55.0 for iOS" +Device_Type="Mobile Phone" + +[Mozilla/5.0 (iPod*CPU*OS* like Mac OS X*) AppleWebKit/* (KHTML* like Gecko) *CriOS/55.*Safari/*] +Parent="Chrome 55.0 for iOS" + +[Mozilla/5.0 (*CPU*OS* like Mac OS X*) AppleWebKit/* (KHTML* like Gecko) *CriOS/55.*Safari/*] +Parent="Chrome 55.0 for iOS" + +[Chrome 55.0] +Parent="DefaultProperties" +Comment="Chrome 55.0" +Browser="Chrome" +Version="55.0" +Device_Type="Desktop" + +[Mozilla/5.0 (*Linux*) AppleWebKit/* (KHTML* like Gecko) Chrome/55.*Safari/*] +Parent="Chrome 55.0" +Platform="Linux" + +[Mozilla/5.0 (*Windows NT 6.0*) AppleWebKit/* (KHTML* like Gecko) Chrome/55.*Safari/*] +Parent="Chrome 55.0" +Platform="WinVista" + +[Mozilla/5.0 (*Windows NT 6.1*) AppleWebKit/* (KHTML* like Gecko) Chrome/55.*Safari/*] +Parent="Chrome 55.0" +Platform="Win7" + +[Mozilla/5.0 (*Windows NT 6.2*) AppleWebKit/* (KHTML* like Gecko) Chrome/55.*Safari/*] +Parent="Chrome 55.0" +Platform="Win8" + +[Mozilla/5.0 (*Windows NT 6.3*) AppleWebKit/* (KHTML* like Gecko) Chrome/55.*Safari/*] +Parent="Chrome 55.0" +Platform="Win8.1" + +[Mozilla/5.0 (*Windows NT 6.4*) AppleWebKit/* (KHTML* like Gecko) Chrome/55.*Safari/*] +Parent="Chrome 55.0" +Platform="Win10" + +[Mozilla/5.0 (*Windows NT 10.0*) AppleWebKit/* (KHTML* like Gecko) Chrome/55.*Safari/*] +Parent="Chrome 55.0" +Platform="Win10" + +[Mozilla/5.0 (*Windows*) AppleWebKit/* (KHTML* like Gecko) Chrome/55.*Safari/*] +Parent="Chrome 55.0" +Platform="Win32" + +[Mozilla/5.0 (*Mac OS X*) AppleWebKit/* (KHTML* like Gecko) Chrome/55.*Safari/*] +Parent="Chrome 55.0" +Platform="MacOSX" + +[Mozilla/5.0 (*Linux*) AppleWebKit/* (KHTML,*like Gecko) Chrome/55.*] +Parent="Chrome 55.0" +Platform="Linux" + +[Mozilla/5.0 (*Windows NT 6.0*) AppleWebKit/* (KHTML* like Gecko) Chrome/55.*] +Parent="Chrome 55.0" +Platform="WinVista" + +[Mozilla/5.0 (*Windows NT 6.1*) AppleWebKit/* (KHTML* like Gecko) Chrome/55.*] +Parent="Chrome 55.0" +Platform="Win7" + +[Mozilla/5.0 (*Windows NT 6.2*) AppleWebKit/* (KHTML* like Gecko) Chrome/55.*] +Parent="Chrome 55.0" +Platform="Win8" + +[Mozilla/5.0 (*Windows NT 6.3*) AppleWebKit/* (KHTML* like Gecko) Chrome/55.*] +Parent="Chrome 55.0" +Platform="Win8.1" + +[Mozilla/5.0 (*Windows NT 6.4*) AppleWebKit/* (KHTML* like Gecko) Chrome/55.*] +Parent="Chrome 55.0" +Platform="Win10" + +[Mozilla/5.0 (*Windows NT 10.0*) AppleWebKit/* (KHTML* like Gecko) Chrome/55.*] +Parent="Chrome 55.0" +Platform="Win10" + +[Mozilla/5.0 (*Windows*) AppleWebKit/* (KHTML* like Gecko) Chrome/55.*] +Parent="Chrome 55.0" +Platform="Win32" + +[Mozilla/5.0 (*Mac OS X*) AppleWebKit/* (KHTML* like Gecko) Chrome/55.*] +Parent="Chrome 55.0" +Platform="MacOSX" + +[Mozilla/5.0 (*Windows NT 6.0*) AppleWebKit/* (KHTML* like Gecko) Chrome/55.*Chrome anonymized by*] +Parent="Chrome 55.0" +Platform="WinVista" + +[Mozilla/5.0 (*Windows NT 6.1*) AppleWebKit/* (KHTML* like Gecko) Chrome/55.*Chrome anonymized by*] +Parent="Chrome 55.0" +Platform="Win7" + +[Mozilla/5.0 (*Windows NT 6.2*) AppleWebKit/* (KHTML* like Gecko) Chrome/55.*Chrome anonymized by*] +Parent="Chrome 55.0" +Platform="Win8" + +[Mozilla/5.0 (*Windows NT 6.3*) AppleWebKit/* (KHTML* like Gecko) Chrome/55.*Chrome anonymized by*] +Parent="Chrome 55.0" +Platform="Win8.1" + +[Mozilla/5.0 (*Windows NT 6.4*) AppleWebKit/* (KHTML* like Gecko) Chrome/55.*Chrome anonymized by*] +Parent="Chrome 55.0" +Platform="Win10" + +[Mozilla/5.0 (*Windows NT 10.0*) AppleWebKit/* (KHTML* like Gecko) Chrome/55.*Chrome anonymized by*] +Parent="Chrome 55.0" +Platform="Win10" + +[Mozilla/5.0 (*Windows*) AppleWebKit/* (KHTML* like Gecko) Chrome/55.*Chrome anonymized by*] +Parent="Chrome 55.0" +Platform="Win32" + +[Mozilla/5.0 (*Windows NT 6.0*) AppleWebKit/* (KHTML* like Gecko) Chrome/55.*Anonymisiert durch*] +Parent="Chrome 55.0" +Platform="WinVista" + +[Mozilla/5.0 (*Windows NT 6.1*) AppleWebKit/* (KHTML* like Gecko) Chrome/55.*Anonymisiert durch*] +Parent="Chrome 55.0" +Platform="Win7" + +[Mozilla/5.0 (*Windows NT 6.2*) AppleWebKit/* (KHTML* like Gecko) Chrome/55.*Anonymisiert durch*] +Parent="Chrome 55.0" +Platform="Win8" + +[Mozilla/5.0 (*Windows NT 6.3*) AppleWebKit/* (KHTML* like Gecko) Chrome/55.*Anonymisiert durch*] +Parent="Chrome 55.0" +Platform="Win8.1" + +[Mozilla/5.0 (*Windows NT 6.4*) AppleWebKit/* (KHTML* like Gecko) Chrome/55.*Anonymisiert durch*] +Parent="Chrome 55.0" +Platform="Win10" + +[Mozilla/5.0 (*Windows NT 10.0*) AppleWebKit/* (KHTML* like Gecko) Chrome/55.*Anonymisiert durch*] +Parent="Chrome 55.0" +Platform="Win10" + +[Mozilla/5.0 (*Windows*) AppleWebKit/* (KHTML* like Gecko) Chrome/55.*Anonymisiert durch*] +Parent="Chrome 55.0" +Platform="Win32" + +[Mozilla/5.0 (*Linux*) AppleWebKit/*(KHTML,like Gecko) Chrome/55.*] +Parent="Chrome 55.0" +Platform="Linux" + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Chrome 54.0 + +[Chrome 54.0 for Android] +Parent="DefaultProperties" +Comment="Chrome 54.0" +Browser="Chrome" +Version="54.0" +Platform="Android" +isMobileDevice="true" +Device_Type="Mobile Phone" + +[Mozilla/5.0 (*Linux*Android*) AppleWebKit/* (KHTML* like Gecko) Chrome/54.*Safari/*] +Parent="Chrome 54.0 for Android" + +[Mozilla/5.0 (*Linux*Android*)*AppleWebKit/* (KHTML* like Gecko) Chrome/54.*Safari/*] +Parent="Chrome 54.0 for Android" + +[Mozilla/5.0 (*Linux*Android*) AppleWebKit/* (KHTML* like Gecko) 54.*Safari/*] +Parent="Chrome 54.0 for Android" + +[Mozilla/5.0 (*Linux*Android*) AppleWebKit/* (KHTML* like Gecko*) Chrome/54.*Safari/*] +Parent="Chrome 54.0 for Android" + +[Mozilla/5.0 (*Linux*Android*) AppleWebKit/*(KHTML,*like Gecko) Chrome/54.*Safari/*] +Parent="Chrome 54.0 for Android" + +[Mozilla/5.0 (*Linux*Android*) AppleWebKit/* (KHTML* like Gecko)*CrMo/54.*Safari/*] +Parent="Chrome 54.0 for Android" + +[Chrome 54.0 for iOS] +Parent="DefaultProperties" +Comment="Chrome 54.0" +Browser="Chrome" +Version="54.0" +Platform="iOS" +isMobileDevice="true" +Device_Type="Mobile Device" + +[Mozilla/5.0 (iPad*CPU*OS* like Mac OS X*) AppleWebKit/* (KHTML* like Gecko) *CriOS/54.*Safari/*] +Parent="Chrome 54.0 for iOS" +isTablet="true" +Device_Type="Tablet" + +[Mozilla/5.0 (iPhone*CPU*OS* like Mac OS X*) AppleWebKit/* (KHTML* like Gecko) *CriOS/54.*Safari/*] +Parent="Chrome 54.0 for iOS" +Device_Type="Mobile Phone" + +[Mozilla/5.0 (iPod*CPU*OS* like Mac OS X*) AppleWebKit/* (KHTML* like Gecko) *CriOS/54.*Safari/*] +Parent="Chrome 54.0 for iOS" + +[Mozilla/5.0 (*CPU*OS* like Mac OS X*) AppleWebKit/* (KHTML* like Gecko) *CriOS/54.*Safari/*] +Parent="Chrome 54.0 for iOS" + +[Chrome 54.0] +Parent="DefaultProperties" +Comment="Chrome 54.0" +Browser="Chrome" +Version="54.0" +Device_Type="Desktop" + +[Mozilla/5.0 (*Linux*) AppleWebKit/* (KHTML* like Gecko) Chrome/54.*Safari/*] +Parent="Chrome 54.0" +Platform="Linux" + +[Mozilla/5.0 (*Windows NT 6.0*) AppleWebKit/* (KHTML* like Gecko) Chrome/54.*Safari/*] +Parent="Chrome 54.0" +Platform="WinVista" + +[Mozilla/5.0 (*Windows NT 6.1*) AppleWebKit/* (KHTML* like Gecko) Chrome/54.*Safari/*] +Parent="Chrome 54.0" +Platform="Win7" + +[Mozilla/5.0 (*Windows NT 6.2*) AppleWebKit/* (KHTML* like Gecko) Chrome/54.*Safari/*] +Parent="Chrome 54.0" +Platform="Win8" + +[Mozilla/5.0 (*Windows NT 6.3*) AppleWebKit/* (KHTML* like Gecko) Chrome/54.*Safari/*] +Parent="Chrome 54.0" +Platform="Win8.1" + +[Mozilla/5.0 (*Windows NT 6.4*) AppleWebKit/* (KHTML* like Gecko) Chrome/54.*Safari/*] +Parent="Chrome 54.0" +Platform="Win10" + +[Mozilla/5.0 (*Windows NT 10.0*) AppleWebKit/* (KHTML* like Gecko) Chrome/54.*Safari/*] +Parent="Chrome 54.0" +Platform="Win10" + +[Mozilla/5.0 (*Windows*) AppleWebKit/* (KHTML* like Gecko) Chrome/54.*Safari/*] +Parent="Chrome 54.0" +Platform="Win32" + +[Mozilla/5.0 (*Mac OS X*) AppleWebKit/* (KHTML* like Gecko) Chrome/54.*Safari/*] +Parent="Chrome 54.0" +Platform="MacOSX" + +[Mozilla/5.0 (*Linux*) AppleWebKit/* (KHTML,*like Gecko) Chrome/54.*] +Parent="Chrome 54.0" +Platform="Linux" + +[Mozilla/5.0 (*Windows NT 6.0*) AppleWebKit/* (KHTML* like Gecko) Chrome/54.*] +Parent="Chrome 54.0" +Platform="WinVista" + +[Mozilla/5.0 (*Windows NT 6.1*) AppleWebKit/* (KHTML* like Gecko) Chrome/54.*] +Parent="Chrome 54.0" +Platform="Win7" + +[Mozilla/5.0 (*Windows NT 6.2*) AppleWebKit/* (KHTML* like Gecko) Chrome/54.*] +Parent="Chrome 54.0" +Platform="Win8" + +[Mozilla/5.0 (*Windows NT 6.3*) AppleWebKit/* (KHTML* like Gecko) Chrome/54.*] +Parent="Chrome 54.0" +Platform="Win8.1" + +[Mozilla/5.0 (*Windows NT 6.4*) AppleWebKit/* (KHTML* like Gecko) Chrome/54.*] +Parent="Chrome 54.0" +Platform="Win10" + +[Mozilla/5.0 (*Windows NT 10.0*) AppleWebKit/* (KHTML* like Gecko) Chrome/54.*] +Parent="Chrome 54.0" +Platform="Win10" + +[Mozilla/5.0 (*Windows*) AppleWebKit/* (KHTML* like Gecko) Chrome/54.*] +Parent="Chrome 54.0" +Platform="Win32" + +[Mozilla/5.0 (*Mac OS X*) AppleWebKit/* (KHTML* like Gecko) Chrome/54.*] +Parent="Chrome 54.0" +Platform="MacOSX" + +[Mozilla/5.0 (*Windows NT 6.0*) AppleWebKit/* (KHTML* like Gecko) Chrome/54.*Chrome anonymized by*] +Parent="Chrome 54.0" +Platform="WinVista" + +[Mozilla/5.0 (*Windows NT 6.1*) AppleWebKit/* (KHTML* like Gecko) Chrome/54.*Chrome anonymized by*] +Parent="Chrome 54.0" +Platform="Win7" + +[Mozilla/5.0 (*Windows NT 6.2*) AppleWebKit/* (KHTML* like Gecko) Chrome/54.*Chrome anonymized by*] +Parent="Chrome 54.0" +Platform="Win8" + +[Mozilla/5.0 (*Windows NT 6.3*) AppleWebKit/* (KHTML* like Gecko) Chrome/54.*Chrome anonymized by*] +Parent="Chrome 54.0" +Platform="Win8.1" + +[Mozilla/5.0 (*Windows NT 6.4*) AppleWebKit/* (KHTML* like Gecko) Chrome/54.*Chrome anonymized by*] +Parent="Chrome 54.0" +Platform="Win10" + +[Mozilla/5.0 (*Windows NT 10.0*) AppleWebKit/* (KHTML* like Gecko) Chrome/54.*Chrome anonymized by*] +Parent="Chrome 54.0" +Platform="Win10" + +[Mozilla/5.0 (*Windows*) AppleWebKit/* (KHTML* like Gecko) Chrome/54.*Chrome anonymized by*] +Parent="Chrome 54.0" +Platform="Win32" + +[Mozilla/5.0 (*Windows NT 6.0*) AppleWebKit/* (KHTML* like Gecko) Chrome/54.*Anonymisiert durch*] +Parent="Chrome 54.0" +Platform="WinVista" + +[Mozilla/5.0 (*Windows NT 6.1*) AppleWebKit/* (KHTML* like Gecko) Chrome/54.*Anonymisiert durch*] +Parent="Chrome 54.0" +Platform="Win7" + +[Mozilla/5.0 (*Windows NT 6.2*) AppleWebKit/* (KHTML* like Gecko) Chrome/54.*Anonymisiert durch*] +Parent="Chrome 54.0" +Platform="Win8" + +[Mozilla/5.0 (*Windows NT 6.3*) AppleWebKit/* (KHTML* like Gecko) Chrome/54.*Anonymisiert durch*] +Parent="Chrome 54.0" +Platform="Win8.1" + +[Mozilla/5.0 (*Windows NT 6.4*) AppleWebKit/* (KHTML* like Gecko) Chrome/54.*Anonymisiert durch*] +Parent="Chrome 54.0" +Platform="Win10" + +[Mozilla/5.0 (*Windows NT 10.0*) AppleWebKit/* (KHTML* like Gecko) Chrome/54.*Anonymisiert durch*] +Parent="Chrome 54.0" +Platform="Win10" + +[Mozilla/5.0 (*Windows*) AppleWebKit/* (KHTML* like Gecko) Chrome/54.*Anonymisiert durch*] +Parent="Chrome 54.0" +Platform="Win32" + +[Mozilla/5.0 (*Linux*) AppleWebKit/*(KHTML,like Gecko) Chrome/54.*] +Parent="Chrome 54.0" +Platform="Linux" + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Chrome 53.0 + +[Chrome 53.0 for Android] +Parent="DefaultProperties" +Comment="Chrome 53.0" +Browser="Chrome" +Version="53.0" +Platform="Android" +isMobileDevice="true" +Device_Type="Mobile Phone" + +[Mozilla/5.0 (*Linux*Android*) AppleWebKit/* (KHTML* like Gecko) Chrome/53.*Safari/*] +Parent="Chrome 53.0 for Android" + +[Mozilla/5.0 (*Linux*Android*)*AppleWebKit/* (KHTML* like Gecko) Chrome/53.*Safari/*] +Parent="Chrome 53.0 for Android" + +[Mozilla/5.0 (*Linux*Android*) AppleWebKit/* (KHTML* like Gecko) 53.*Safari/*] +Parent="Chrome 53.0 for Android" + +[Mozilla/5.0 (*Linux*Android*) AppleWebKit/* (KHTML* like Gecko*) Chrome/53.*Safari/*] +Parent="Chrome 53.0 for Android" + +[Mozilla/5.0 (*Linux*Android*) AppleWebKit/*(KHTML,*like Gecko) Chrome/53.*Safari/*] +Parent="Chrome 53.0 for Android" + +[Mozilla/5.0 (*Linux*Android*) AppleWebKit/* (KHTML* like Gecko)*CrMo/53.*Safari/*] +Parent="Chrome 53.0 for Android" + +[Chrome 53.0 for iOS] +Parent="DefaultProperties" +Comment="Chrome 53.0" +Browser="Chrome" +Version="53.0" +Platform="iOS" +isMobileDevice="true" +Device_Type="Mobile Device" + +[Mozilla/5.0 (iPad*CPU*OS* like Mac OS X*) AppleWebKit/* (KHTML* like Gecko) *CriOS/53.*Safari/*] +Parent="Chrome 53.0 for iOS" +isTablet="true" +Device_Type="Tablet" + +[Mozilla/5.0 (iPhone*CPU*OS* like Mac OS X*) AppleWebKit/* (KHTML* like Gecko) *CriOS/53.*Safari/*] +Parent="Chrome 53.0 for iOS" +Device_Type="Mobile Phone" + +[Mozilla/5.0 (iPod*CPU*OS* like Mac OS X*) AppleWebKit/* (KHTML* like Gecko) *CriOS/53.*Safari/*] +Parent="Chrome 53.0 for iOS" + +[Mozilla/5.0 (*CPU*OS* like Mac OS X*) AppleWebKit/* (KHTML* like Gecko) *CriOS/53.*Safari/*] +Parent="Chrome 53.0 for iOS" + +[Chrome 53.0] +Parent="DefaultProperties" +Comment="Chrome 53.0" +Browser="Chrome" +Version="53.0" +Device_Type="Desktop" + +[Mozilla/5.0 (*Linux*) AppleWebKit/* (KHTML* like Gecko) Chrome/53.*Safari/*] +Parent="Chrome 53.0" +Platform="Linux" + +[Mozilla/5.0 (*Windows NT 6.0*) AppleWebKit/* (KHTML* like Gecko) Chrome/53.*Safari/*] +Parent="Chrome 53.0" +Platform="WinVista" + +[Mozilla/5.0 (*Windows NT 6.1*) AppleWebKit/* (KHTML* like Gecko) Chrome/53.*Safari/*] +Parent="Chrome 53.0" +Platform="Win7" + +[Mozilla/5.0 (*Windows NT 6.2*) AppleWebKit/* (KHTML* like Gecko) Chrome/53.*Safari/*] +Parent="Chrome 53.0" +Platform="Win8" + +[Mozilla/5.0 (*Windows NT 6.3*) AppleWebKit/* (KHTML* like Gecko) Chrome/53.*Safari/*] +Parent="Chrome 53.0" +Platform="Win8.1" + +[Mozilla/5.0 (*Windows NT 6.4*) AppleWebKit/* (KHTML* like Gecko) Chrome/53.*Safari/*] +Parent="Chrome 53.0" +Platform="Win10" + +[Mozilla/5.0 (*Windows NT 10.0*) AppleWebKit/* (KHTML* like Gecko) Chrome/53.*Safari/*] +Parent="Chrome 53.0" +Platform="Win10" + +[Mozilla/5.0 (*Windows*) AppleWebKit/* (KHTML* like Gecko) Chrome/53.*Safari/*] +Parent="Chrome 53.0" +Platform="Win32" + +[Mozilla/5.0 (*Mac OS X*) AppleWebKit/* (KHTML* like Gecko) Chrome/53.*Safari/*] +Parent="Chrome 53.0" +Platform="MacOSX" + +[Mozilla/5.0 (*Linux*) AppleWebKit/* (KHTML,*like Gecko) Chrome/53.*] +Parent="Chrome 53.0" +Platform="Linux" + +[Mozilla/5.0 (*Windows NT 6.0*) AppleWebKit/* (KHTML* like Gecko) Chrome/53.*] +Parent="Chrome 53.0" +Platform="WinVista" + +[Mozilla/5.0 (*Windows NT 6.1*) AppleWebKit/* (KHTML* like Gecko) Chrome/53.*] +Parent="Chrome 53.0" +Platform="Win7" + +[Mozilla/5.0 (*Windows NT 6.2*) AppleWebKit/* (KHTML* like Gecko) Chrome/53.*] +Parent="Chrome 53.0" +Platform="Win8" + +[Mozilla/5.0 (*Windows NT 6.3*) AppleWebKit/* (KHTML* like Gecko) Chrome/53.*] +Parent="Chrome 53.0" +Platform="Win8.1" + +[Mozilla/5.0 (*Windows NT 6.4*) AppleWebKit/* (KHTML* like Gecko) Chrome/53.*] +Parent="Chrome 53.0" +Platform="Win10" + +[Mozilla/5.0 (*Windows NT 10.0*) AppleWebKit/* (KHTML* like Gecko) Chrome/53.*] +Parent="Chrome 53.0" +Platform="Win10" + +[Mozilla/5.0 (*Windows*) AppleWebKit/* (KHTML* like Gecko) Chrome/53.*] +Parent="Chrome 53.0" +Platform="Win32" + +[Mozilla/5.0 (*Mac OS X*) AppleWebKit/* (KHTML* like Gecko) Chrome/53.*] +Parent="Chrome 53.0" +Platform="MacOSX" + +[Mozilla/5.0 (*Windows NT 6.0*) AppleWebKit/* (KHTML* like Gecko) Chrome/53.*Chrome anonymized by*] +Parent="Chrome 53.0" +Platform="WinVista" + +[Mozilla/5.0 (*Windows NT 6.1*) AppleWebKit/* (KHTML* like Gecko) Chrome/53.*Chrome anonymized by*] +Parent="Chrome 53.0" +Platform="Win7" + +[Mozilla/5.0 (*Windows NT 6.2*) AppleWebKit/* (KHTML* like Gecko) Chrome/53.*Chrome anonymized by*] +Parent="Chrome 53.0" +Platform="Win8" + +[Mozilla/5.0 (*Windows NT 6.3*) AppleWebKit/* (KHTML* like Gecko) Chrome/53.*Chrome anonymized by*] +Parent="Chrome 53.0" +Platform="Win8.1" + +[Mozilla/5.0 (*Windows NT 6.4*) AppleWebKit/* (KHTML* like Gecko) Chrome/53.*Chrome anonymized by*] +Parent="Chrome 53.0" +Platform="Win10" + +[Mozilla/5.0 (*Windows NT 10.0*) AppleWebKit/* (KHTML* like Gecko) Chrome/53.*Chrome anonymized by*] +Parent="Chrome 53.0" +Platform="Win10" + +[Mozilla/5.0 (*Windows*) AppleWebKit/* (KHTML* like Gecko) Chrome/53.*Chrome anonymized by*] +Parent="Chrome 53.0" +Platform="Win32" + +[Mozilla/5.0 (*Windows NT 6.0*) AppleWebKit/* (KHTML* like Gecko) Chrome/53.*Anonymisiert durch*] +Parent="Chrome 53.0" +Platform="WinVista" + +[Mozilla/5.0 (*Windows NT 6.1*) AppleWebKit/* (KHTML* like Gecko) Chrome/53.*Anonymisiert durch*] +Parent="Chrome 53.0" +Platform="Win7" + +[Mozilla/5.0 (*Windows NT 6.2*) AppleWebKit/* (KHTML* like Gecko) Chrome/53.*Anonymisiert durch*] +Parent="Chrome 53.0" +Platform="Win8" + +[Mozilla/5.0 (*Windows NT 6.3*) AppleWebKit/* (KHTML* like Gecko) Chrome/53.*Anonymisiert durch*] +Parent="Chrome 53.0" +Platform="Win8.1" + +[Mozilla/5.0 (*Windows NT 6.4*) AppleWebKit/* (KHTML* like Gecko) Chrome/53.*Anonymisiert durch*] +Parent="Chrome 53.0" +Platform="Win10" + +[Mozilla/5.0 (*Windows NT 10.0*) AppleWebKit/* (KHTML* like Gecko) Chrome/53.*Anonymisiert durch*] +Parent="Chrome 53.0" +Platform="Win10" + +[Mozilla/5.0 (*Windows*) AppleWebKit/* (KHTML* like Gecko) Chrome/53.*Anonymisiert durch*] +Parent="Chrome 53.0" +Platform="Win32" + +[Mozilla/5.0 (*Linux*) AppleWebKit/*(KHTML,like Gecko) Chrome/53.*] +Parent="Chrome 53.0" +Platform="Linux" + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Chrome 52.0 + +[Chrome 52.0 for Android] +Parent="DefaultProperties" +Comment="Chrome 52.0" +Browser="Chrome" +Version="52.0" +Platform="Android" +isMobileDevice="true" +Device_Type="Mobile Phone" + +[Mozilla/5.0 (*Linux*Android*) AppleWebKit/* (KHTML* like Gecko) Chrome/52.*Safari/*] +Parent="Chrome 52.0 for Android" + +[Mozilla/5.0 (*Linux*Android*)*AppleWebKit/* (KHTML* like Gecko) Chrome/52.*Safari/*] +Parent="Chrome 52.0 for Android" + +[Mozilla/5.0 (*Linux*Android*) AppleWebKit/* (KHTML* like Gecko) 52.*Safari/*] +Parent="Chrome 52.0 for Android" + +[Mozilla/5.0 (*Linux*Android*) AppleWebKit/* (KHTML* like Gecko*) Chrome/52.*Safari/*] +Parent="Chrome 52.0 for Android" + +[Mozilla/5.0 (*Linux*Android*) AppleWebKit/*(KHTML,*like Gecko) Chrome/52.*Safari/*] +Parent="Chrome 52.0 for Android" + +[Mozilla/5.0 (*Linux*Android*) AppleWebKit/* (KHTML* like Gecko)*CrMo/52.*Safari/*] +Parent="Chrome 52.0 for Android" + +[Chrome 52.0 for iOS] +Parent="DefaultProperties" +Comment="Chrome 52.0" +Browser="Chrome" +Version="52.0" +Platform="iOS" +isMobileDevice="true" +Device_Type="Mobile Device" + +[Mozilla/5.0 (iPad*CPU*OS* like Mac OS X*) AppleWebKit/* (KHTML* like Gecko) *CriOS/52.*Safari/*] +Parent="Chrome 52.0 for iOS" +isTablet="true" +Device_Type="Tablet" + +[Mozilla/5.0 (iPhone*CPU*OS* like Mac OS X*) AppleWebKit/* (KHTML* like Gecko) *CriOS/52.*Safari/*] +Parent="Chrome 52.0 for iOS" +Device_Type="Mobile Phone" + +[Mozilla/5.0 (iPod*CPU*OS* like Mac OS X*) AppleWebKit/* (KHTML* like Gecko) *CriOS/52.*Safari/*] +Parent="Chrome 52.0 for iOS" + +[Mozilla/5.0 (*CPU*OS* like Mac OS X*) AppleWebKit/* (KHTML* like Gecko) *CriOS/52.*Safari/*] +Parent="Chrome 52.0 for iOS" + +[Chrome 52.0] +Parent="DefaultProperties" +Comment="Chrome 52.0" +Browser="Chrome" +Version="52.0" +Device_Type="Desktop" + +[Mozilla/5.0 (*Linux*) AppleWebKit/* (KHTML* like Gecko) Chrome/52.*Safari/*] +Parent="Chrome 52.0" +Platform="Linux" + +[Mozilla/5.0 (*Windows NT 6.0*) AppleWebKit/* (KHTML* like Gecko) Chrome/52.*Safari/*] +Parent="Chrome 52.0" +Platform="WinVista" + +[Mozilla/5.0 (*Windows NT 6.1*) AppleWebKit/* (KHTML* like Gecko) Chrome/52.*Safari/*] +Parent="Chrome 52.0" +Platform="Win7" + +[Mozilla/5.0 (*Windows NT 6.2*) AppleWebKit/* (KHTML* like Gecko) Chrome/52.*Safari/*] +Parent="Chrome 52.0" +Platform="Win8" + +[Mozilla/5.0 (*Windows NT 6.3*) AppleWebKit/* (KHTML* like Gecko) Chrome/52.*Safari/*] +Parent="Chrome 52.0" +Platform="Win8.1" + +[Mozilla/5.0 (*Windows NT 6.4*) AppleWebKit/* (KHTML* like Gecko) Chrome/52.*Safari/*] +Parent="Chrome 52.0" +Platform="Win10" + +[Mozilla/5.0 (*Windows NT 10.0*) AppleWebKit/* (KHTML* like Gecko) Chrome/52.*Safari/*] +Parent="Chrome 52.0" +Platform="Win10" + +[Mozilla/5.0 (*Windows*) AppleWebKit/* (KHTML* like Gecko) Chrome/52.*Safari/*] +Parent="Chrome 52.0" +Platform="Win32" + +[Mozilla/5.0 (*Mac OS X*) AppleWebKit/* (KHTML* like Gecko) Chrome/52.*Safari/*] +Parent="Chrome 52.0" +Platform="MacOSX" + +[Mozilla/5.0 (*Linux*) AppleWebKit/* (KHTML,*like Gecko) Chrome/52.*] +Parent="Chrome 52.0" +Platform="Linux" + +[Mozilla/5.0 (*Windows NT 6.0*) AppleWebKit/* (KHTML* like Gecko) Chrome/52.*] +Parent="Chrome 52.0" +Platform="WinVista" + +[Mozilla/5.0 (*Windows NT 6.1*) AppleWebKit/* (KHTML* like Gecko) Chrome/52.*] +Parent="Chrome 52.0" +Platform="Win7" + +[Mozilla/5.0 (*Windows NT 6.2*) AppleWebKit/* (KHTML* like Gecko) Chrome/52.*] +Parent="Chrome 52.0" +Platform="Win8" + +[Mozilla/5.0 (*Windows NT 6.3*) AppleWebKit/* (KHTML* like Gecko) Chrome/52.*] +Parent="Chrome 52.0" +Platform="Win8.1" + +[Mozilla/5.0 (*Windows NT 6.4*) AppleWebKit/* (KHTML* like Gecko) Chrome/52.*] +Parent="Chrome 52.0" +Platform="Win10" + +[Mozilla/5.0 (*Windows NT 10.0*) AppleWebKit/* (KHTML* like Gecko) Chrome/52.*] +Parent="Chrome 52.0" +Platform="Win10" + +[Mozilla/5.0 (*Windows*) AppleWebKit/* (KHTML* like Gecko) Chrome/52.*] +Parent="Chrome 52.0" +Platform="Win32" + +[Mozilla/5.0 (*Mac OS X*) AppleWebKit/* (KHTML* like Gecko) Chrome/52.*] +Parent="Chrome 52.0" +Platform="MacOSX" + +[Mozilla/5.0 (*Windows NT 6.0*) AppleWebKit/* (KHTML* like Gecko) Chrome/52.*Chrome anonymized by*] +Parent="Chrome 52.0" +Platform="WinVista" + +[Mozilla/5.0 (*Windows NT 6.1*) AppleWebKit/* (KHTML* like Gecko) Chrome/52.*Chrome anonymized by*] +Parent="Chrome 52.0" +Platform="Win7" + +[Mozilla/5.0 (*Windows NT 6.2*) AppleWebKit/* (KHTML* like Gecko) Chrome/52.*Chrome anonymized by*] +Parent="Chrome 52.0" +Platform="Win8" + +[Mozilla/5.0 (*Windows NT 6.3*) AppleWebKit/* (KHTML* like Gecko) Chrome/52.*Chrome anonymized by*] +Parent="Chrome 52.0" +Platform="Win8.1" + +[Mozilla/5.0 (*Windows NT 6.4*) AppleWebKit/* (KHTML* like Gecko) Chrome/52.*Chrome anonymized by*] +Parent="Chrome 52.0" +Platform="Win10" + +[Mozilla/5.0 (*Windows NT 10.0*) AppleWebKit/* (KHTML* like Gecko) Chrome/52.*Chrome anonymized by*] +Parent="Chrome 52.0" +Platform="Win10" + +[Mozilla/5.0 (*Windows*) AppleWebKit/* (KHTML* like Gecko) Chrome/52.*Chrome anonymized by*] +Parent="Chrome 52.0" +Platform="Win32" + +[Mozilla/5.0 (*Windows NT 6.0*) AppleWebKit/* (KHTML* like Gecko) Chrome/52.*Anonymisiert durch*] +Parent="Chrome 52.0" +Platform="WinVista" + +[Mozilla/5.0 (*Windows NT 6.1*) AppleWebKit/* (KHTML* like Gecko) Chrome/52.*Anonymisiert durch*] +Parent="Chrome 52.0" +Platform="Win7" + +[Mozilla/5.0 (*Windows NT 6.2*) AppleWebKit/* (KHTML* like Gecko) Chrome/52.*Anonymisiert durch*] +Parent="Chrome 52.0" +Platform="Win8" + +[Mozilla/5.0 (*Windows NT 6.3*) AppleWebKit/* (KHTML* like Gecko) Chrome/52.*Anonymisiert durch*] +Parent="Chrome 52.0" +Platform="Win8.1" + +[Mozilla/5.0 (*Windows NT 6.4*) AppleWebKit/* (KHTML* like Gecko) Chrome/52.*Anonymisiert durch*] +Parent="Chrome 52.0" +Platform="Win10" + +[Mozilla/5.0 (*Windows NT 10.0*) AppleWebKit/* (KHTML* like Gecko) Chrome/52.*Anonymisiert durch*] +Parent="Chrome 52.0" +Platform="Win10" + +[Mozilla/5.0 (*Windows*) AppleWebKit/* (KHTML* like Gecko) Chrome/52.*Anonymisiert durch*] +Parent="Chrome 52.0" +Platform="Win32" + +[Mozilla/5.0 (*Linux*) AppleWebKit/*(KHTML,like Gecko) Chrome/52.*] +Parent="Chrome 52.0" +Platform="Linux" + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Chrome 51.0 + +[Chrome 51.0 for Android] +Parent="DefaultProperties" +Comment="Chrome 51.0" +Browser="Chrome" +Version="51.0" +Platform="Android" +isMobileDevice="true" +Device_Type="Mobile Phone" + +[Mozilla/5.0 (*Linux*Android*) AppleWebKit/* (KHTML* like Gecko) Chrome/51.*Safari/*] +Parent="Chrome 51.0 for Android" + +[Mozilla/5.0 (*Linux*Android*)*AppleWebKit/* (KHTML* like Gecko) Chrome/51.*Safari/*] +Parent="Chrome 51.0 for Android" + +[Mozilla/5.0 (*Linux*Android*) AppleWebKit/* (KHTML* like Gecko) 51.*Safari/*] +Parent="Chrome 51.0 for Android" + +[Mozilla/5.0 (*Linux*Android*) AppleWebKit/* (KHTML* like Gecko*) Chrome/51.*Safari/*] +Parent="Chrome 51.0 for Android" + +[Mozilla/5.0 (*Linux*Android*) AppleWebKit/*(KHTML,*like Gecko) Chrome/51.*Safari/*] +Parent="Chrome 51.0 for Android" + +[Mozilla/5.0 (*Linux*Android*) AppleWebKit/* (KHTML* like Gecko)*CrMo/51.*Safari/*] +Parent="Chrome 51.0 for Android" + +[Chrome 51.0 for iOS] +Parent="DefaultProperties" +Comment="Chrome 51.0" +Browser="Chrome" +Version="51.0" +Platform="iOS" +isMobileDevice="true" +Device_Type="Mobile Device" + +[Mozilla/5.0 (iPad*CPU*OS* like Mac OS X*) AppleWebKit/* (KHTML* like Gecko) *CriOS/51.*Safari/*] +Parent="Chrome 51.0 for iOS" +isTablet="true" +Device_Type="Tablet" + +[Mozilla/5.0 (iPhone*CPU*OS* like Mac OS X*) AppleWebKit/* (KHTML* like Gecko) *CriOS/51.*Safari/*] +Parent="Chrome 51.0 for iOS" +Device_Type="Mobile Phone" + +[Mozilla/5.0 (iPod*CPU*OS* like Mac OS X*) AppleWebKit/* (KHTML* like Gecko) *CriOS/51.*Safari/*] +Parent="Chrome 51.0 for iOS" + +[Mozilla/5.0 (*CPU*OS* like Mac OS X*) AppleWebKit/* (KHTML* like Gecko) *CriOS/51.*Safari/*] +Parent="Chrome 51.0 for iOS" + +[Chrome 51.0] +Parent="DefaultProperties" +Comment="Chrome 51.0" +Browser="Chrome" +Version="51.0" +Device_Type="Desktop" + +[Mozilla/5.0 (*Linux*) AppleWebKit/* (KHTML* like Gecko) Chrome/51.*Safari/*] +Parent="Chrome 51.0" +Platform="Linux" + +[Mozilla/5.0 (*Windows NT 6.0*) AppleWebKit/* (KHTML* like Gecko) Chrome/51.*Safari/*] +Parent="Chrome 51.0" +Platform="WinVista" + +[Mozilla/5.0 (*Windows NT 6.1*) AppleWebKit/* (KHTML* like Gecko) Chrome/51.*Safari/*] +Parent="Chrome 51.0" +Platform="Win7" + +[Mozilla/5.0 (*Windows NT 6.2*) AppleWebKit/* (KHTML* like Gecko) Chrome/51.*Safari/*] +Parent="Chrome 51.0" +Platform="Win8" + +[Mozilla/5.0 (*Windows NT 6.3*) AppleWebKit/* (KHTML* like Gecko) Chrome/51.*Safari/*] +Parent="Chrome 51.0" +Platform="Win8.1" + +[Mozilla/5.0 (*Windows NT 6.4*) AppleWebKit/* (KHTML* like Gecko) Chrome/51.*Safari/*] +Parent="Chrome 51.0" +Platform="Win10" + +[Mozilla/5.0 (*Windows NT 10.0*) AppleWebKit/* (KHTML* like Gecko) Chrome/51.*Safari/*] +Parent="Chrome 51.0" +Platform="Win10" + +[Mozilla/5.0 (*Windows*) AppleWebKit/* (KHTML* like Gecko) Chrome/51.*Safari/*] +Parent="Chrome 51.0" +Platform="Win32" + +[Mozilla/5.0 (*Mac OS X*) AppleWebKit/* (KHTML* like Gecko) Chrome/51.*Safari/*] +Parent="Chrome 51.0" +Platform="MacOSX" + +[Mozilla/5.0 (*Linux*) AppleWebKit/* (KHTML,*like Gecko) Chrome/51.*] +Parent="Chrome 51.0" +Platform="Linux" + +[Mozilla/5.0 (*Windows NT 6.0*) AppleWebKit/* (KHTML* like Gecko) Chrome/51.*] +Parent="Chrome 51.0" +Platform="WinVista" + +[Mozilla/5.0 (*Windows NT 6.1*) AppleWebKit/* (KHTML* like Gecko) Chrome/51.*] +Parent="Chrome 51.0" +Platform="Win7" + +[Mozilla/5.0 (*Windows NT 6.2*) AppleWebKit/* (KHTML* like Gecko) Chrome/51.*] +Parent="Chrome 51.0" +Platform="Win8" + +[Mozilla/5.0 (*Windows NT 6.3*) AppleWebKit/* (KHTML* like Gecko) Chrome/51.*] +Parent="Chrome 51.0" +Platform="Win8.1" + +[Mozilla/5.0 (*Windows NT 6.4*) AppleWebKit/* (KHTML* like Gecko) Chrome/51.*] +Parent="Chrome 51.0" +Platform="Win10" + +[Mozilla/5.0 (*Windows NT 10.0*) AppleWebKit/* (KHTML* like Gecko) Chrome/51.*] +Parent="Chrome 51.0" +Platform="Win10" + +[Mozilla/5.0 (*Windows*) AppleWebKit/* (KHTML* like Gecko) Chrome/51.*] +Parent="Chrome 51.0" +Platform="Win32" + +[Mozilla/5.0 (*Mac OS X*) AppleWebKit/* (KHTML* like Gecko) Chrome/51.*] +Parent="Chrome 51.0" +Platform="MacOSX" + +[Mozilla/5.0 (*Windows NT 6.0*) AppleWebKit/* (KHTML* like Gecko) Chrome/51.*Chrome anonymized by*] +Parent="Chrome 51.0" +Platform="WinVista" + +[Mozilla/5.0 (*Windows NT 6.1*) AppleWebKit/* (KHTML* like Gecko) Chrome/51.*Chrome anonymized by*] +Parent="Chrome 51.0" +Platform="Win7" + +[Mozilla/5.0 (*Windows NT 6.2*) AppleWebKit/* (KHTML* like Gecko) Chrome/51.*Chrome anonymized by*] +Parent="Chrome 51.0" +Platform="Win8" + +[Mozilla/5.0 (*Windows NT 6.3*) AppleWebKit/* (KHTML* like Gecko) Chrome/51.*Chrome anonymized by*] +Parent="Chrome 51.0" +Platform="Win8.1" + +[Mozilla/5.0 (*Windows NT 6.4*) AppleWebKit/* (KHTML* like Gecko) Chrome/51.*Chrome anonymized by*] +Parent="Chrome 51.0" +Platform="Win10" + +[Mozilla/5.0 (*Windows NT 10.0*) AppleWebKit/* (KHTML* like Gecko) Chrome/51.*Chrome anonymized by*] +Parent="Chrome 51.0" +Platform="Win10" + +[Mozilla/5.0 (*Windows*) AppleWebKit/* (KHTML* like Gecko) Chrome/51.*Chrome anonymized by*] +Parent="Chrome 51.0" +Platform="Win32" + +[Mozilla/5.0 (*Windows NT 6.0*) AppleWebKit/* (KHTML* like Gecko) Chrome/51.*Anonymisiert durch*] +Parent="Chrome 51.0" +Platform="WinVista" + +[Mozilla/5.0 (*Windows NT 6.1*) AppleWebKit/* (KHTML* like Gecko) Chrome/51.*Anonymisiert durch*] +Parent="Chrome 51.0" +Platform="Win7" + +[Mozilla/5.0 (*Windows NT 6.2*) AppleWebKit/* (KHTML* like Gecko) Chrome/51.*Anonymisiert durch*] +Parent="Chrome 51.0" +Platform="Win8" + +[Mozilla/5.0 (*Windows NT 6.3*) AppleWebKit/* (KHTML* like Gecko) Chrome/51.*Anonymisiert durch*] +Parent="Chrome 51.0" +Platform="Win8.1" + +[Mozilla/5.0 (*Windows NT 6.4*) AppleWebKit/* (KHTML* like Gecko) Chrome/51.*Anonymisiert durch*] +Parent="Chrome 51.0" +Platform="Win10" + +[Mozilla/5.0 (*Windows NT 10.0*) AppleWebKit/* (KHTML* like Gecko) Chrome/51.*Anonymisiert durch*] +Parent="Chrome 51.0" +Platform="Win10" + +[Mozilla/5.0 (*Windows*) AppleWebKit/* (KHTML* like Gecko) Chrome/51.*Anonymisiert durch*] +Parent="Chrome 51.0" +Platform="Win32" + +[Mozilla/5.0 (*Linux*) AppleWebKit/*(KHTML,like Gecko) Chrome/51.*] +Parent="Chrome 51.0" +Platform="Linux" + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Chrome 50.0 + +[Chrome 50.0 for Android] +Parent="DefaultProperties" +Comment="Chrome 50.0" +Browser="Chrome" +Version="50.0" +Platform="Android" +isMobileDevice="true" +Device_Type="Mobile Phone" + +[Mozilla/5.0 (*Linux*Android*) AppleWebKit/* (KHTML* like Gecko) Chrome/50.*Safari/*] +Parent="Chrome 50.0 for Android" + +[Mozilla/5.0 (*Linux*Android*)*AppleWebKit/* (KHTML* like Gecko) Chrome/50.*Safari/*] +Parent="Chrome 50.0 for Android" + +[Mozilla/5.0 (*Linux*Android*) AppleWebKit/* (KHTML* like Gecko) 50.*Safari/*] +Parent="Chrome 50.0 for Android" + +[Mozilla/5.0 (*Linux*Android*) AppleWebKit/* (KHTML* like Gecko*) Chrome/50.*Safari/*] +Parent="Chrome 50.0 for Android" + +[Mozilla/5.0 (*Linux*Android*) AppleWebKit/*(KHTML,*like Gecko) Chrome/50.*Safari/*] +Parent="Chrome 50.0 for Android" + +[Mozilla/5.0 (*Linux*Android*) AppleWebKit/* (KHTML* like Gecko)*CrMo/50.*Safari/*] +Parent="Chrome 50.0 for Android" + +[Chrome 50.0 for iOS] +Parent="DefaultProperties" +Comment="Chrome 50.0" +Browser="Chrome" +Version="50.0" +Platform="iOS" +isMobileDevice="true" +Device_Type="Mobile Device" + +[Mozilla/5.0 (iPad*CPU*OS* like Mac OS X*) AppleWebKit/* (KHTML* like Gecko) *CriOS/50.*Safari/*] +Parent="Chrome 50.0 for iOS" +isTablet="true" +Device_Type="Tablet" + +[Mozilla/5.0 (iPhone*CPU*OS* like Mac OS X*) AppleWebKit/* (KHTML* like Gecko) *CriOS/50.*Safari/*] +Parent="Chrome 50.0 for iOS" +Device_Type="Mobile Phone" + +[Mozilla/5.0 (iPod*CPU*OS* like Mac OS X*) AppleWebKit/* (KHTML* like Gecko) *CriOS/50.*Safari/*] +Parent="Chrome 50.0 for iOS" + +[Mozilla/5.0 (*CPU*OS* like Mac OS X*) AppleWebKit/* (KHTML* like Gecko) *CriOS/50.*Safari/*] +Parent="Chrome 50.0 for iOS" + +[Chrome 50.0] +Parent="DefaultProperties" +Comment="Chrome 50.0" +Browser="Chrome" +Version="50.0" +Device_Type="Desktop" + +[Mozilla/5.0 (*Linux*) AppleWebKit/* (KHTML* like Gecko) Chrome/50.*Safari/*] +Parent="Chrome 50.0" +Platform="Linux" + +[Mozilla/5.0 (*Windows NT 6.0*) AppleWebKit/* (KHTML* like Gecko) Chrome/50.*Safari/*] +Parent="Chrome 50.0" +Platform="WinVista" + +[Mozilla/5.0 (*Windows NT 6.1*) AppleWebKit/* (KHTML* like Gecko) Chrome/50.*Safari/*] +Parent="Chrome 50.0" +Platform="Win7" + +[Mozilla/5.0 (*Windows NT 6.2*) AppleWebKit/* (KHTML* like Gecko) Chrome/50.*Safari/*] +Parent="Chrome 50.0" +Platform="Win8" + +[Mozilla/5.0 (*Windows NT 6.3*) AppleWebKit/* (KHTML* like Gecko) Chrome/50.*Safari/*] +Parent="Chrome 50.0" +Platform="Win8.1" + +[Mozilla/5.0 (*Windows NT 6.4*) AppleWebKit/* (KHTML* like Gecko) Chrome/50.*Safari/*] +Parent="Chrome 50.0" +Platform="Win10" + +[Mozilla/5.0 (*Windows NT 10.0*) AppleWebKit/* (KHTML* like Gecko) Chrome/50.*Safari/*] +Parent="Chrome 50.0" +Platform="Win10" + +[Mozilla/5.0 (*Windows*) AppleWebKit/* (KHTML* like Gecko) Chrome/50.*Safari/*] +Parent="Chrome 50.0" +Platform="Win32" + +[Mozilla/5.0 (*Mac OS X*) AppleWebKit/* (KHTML* like Gecko) Chrome/50.*Safari/*] +Parent="Chrome 50.0" +Platform="MacOSX" + +[Mozilla/5.0 (*Linux*) AppleWebKit/* (KHTML,*like Gecko) Chrome/50.*] +Parent="Chrome 50.0" +Platform="Linux" + +[Mozilla/5.0 (*Windows NT 6.0*) AppleWebKit/* (KHTML* like Gecko) Chrome/50.*] +Parent="Chrome 50.0" +Platform="WinVista" + +[Mozilla/5.0 (*Windows NT 6.1*) AppleWebKit/* (KHTML* like Gecko) Chrome/50.*] +Parent="Chrome 50.0" +Platform="Win7" + +[Mozilla/5.0 (*Windows NT 6.2*) AppleWebKit/* (KHTML* like Gecko) Chrome/50.*] +Parent="Chrome 50.0" +Platform="Win8" + +[Mozilla/5.0 (*Windows NT 6.3*) AppleWebKit/* (KHTML* like Gecko) Chrome/50.*] +Parent="Chrome 50.0" +Platform="Win8.1" + +[Mozilla/5.0 (*Windows NT 6.4*) AppleWebKit/* (KHTML* like Gecko) Chrome/50.*] +Parent="Chrome 50.0" +Platform="Win10" + +[Mozilla/5.0 (*Windows NT 10.0*) AppleWebKit/* (KHTML* like Gecko) Chrome/50.*] +Parent="Chrome 50.0" +Platform="Win10" + +[Mozilla/5.0 (*Windows*) AppleWebKit/* (KHTML* like Gecko) Chrome/50.*] +Parent="Chrome 50.0" +Platform="Win32" + +[Mozilla/5.0 (*Mac OS X*) AppleWebKit/* (KHTML* like Gecko) Chrome/50.*] +Parent="Chrome 50.0" +Platform="MacOSX" + +[Mozilla/5.0 (*Windows NT 6.0*) AppleWebKit/* (KHTML* like Gecko) Chrome/50.*Chrome anonymized by*] +Parent="Chrome 50.0" +Platform="WinVista" + +[Mozilla/5.0 (*Windows NT 6.1*) AppleWebKit/* (KHTML* like Gecko) Chrome/50.*Chrome anonymized by*] +Parent="Chrome 50.0" +Platform="Win7" + +[Mozilla/5.0 (*Windows NT 6.2*) AppleWebKit/* (KHTML* like Gecko) Chrome/50.*Chrome anonymized by*] +Parent="Chrome 50.0" +Platform="Win8" + +[Mozilla/5.0 (*Windows NT 6.3*) AppleWebKit/* (KHTML* like Gecko) Chrome/50.*Chrome anonymized by*] +Parent="Chrome 50.0" +Platform="Win8.1" + +[Mozilla/5.0 (*Windows NT 6.4*) AppleWebKit/* (KHTML* like Gecko) Chrome/50.*Chrome anonymized by*] +Parent="Chrome 50.0" +Platform="Win10" + +[Mozilla/5.0 (*Windows NT 10.0*) AppleWebKit/* (KHTML* like Gecko) Chrome/50.*Chrome anonymized by*] +Parent="Chrome 50.0" +Platform="Win10" + +[Mozilla/5.0 (*Windows*) AppleWebKit/* (KHTML* like Gecko) Chrome/50.*Chrome anonymized by*] +Parent="Chrome 50.0" +Platform="Win32" + +[Mozilla/5.0 (*Windows NT 6.0*) AppleWebKit/* (KHTML* like Gecko) Chrome/50.*Anonymisiert durch*] +Parent="Chrome 50.0" +Platform="WinVista" + +[Mozilla/5.0 (*Windows NT 6.1*) AppleWebKit/* (KHTML* like Gecko) Chrome/50.*Anonymisiert durch*] +Parent="Chrome 50.0" +Platform="Win7" + +[Mozilla/5.0 (*Windows NT 6.2*) AppleWebKit/* (KHTML* like Gecko) Chrome/50.*Anonymisiert durch*] +Parent="Chrome 50.0" +Platform="Win8" + +[Mozilla/5.0 (*Windows NT 6.3*) AppleWebKit/* (KHTML* like Gecko) Chrome/50.*Anonymisiert durch*] +Parent="Chrome 50.0" +Platform="Win8.1" + +[Mozilla/5.0 (*Windows NT 6.4*) AppleWebKit/* (KHTML* like Gecko) Chrome/50.*Anonymisiert durch*] +Parent="Chrome 50.0" +Platform="Win10" + +[Mozilla/5.0 (*Windows NT 10.0*) AppleWebKit/* (KHTML* like Gecko) Chrome/50.*Anonymisiert durch*] +Parent="Chrome 50.0" +Platform="Win10" + +[Mozilla/5.0 (*Windows*) AppleWebKit/* (KHTML* like Gecko) Chrome/50.*Anonymisiert durch*] +Parent="Chrome 50.0" +Platform="Win32" + +[Mozilla/5.0 (*Linux*) AppleWebKit/*(KHTML,like Gecko) Chrome/50.*] +Parent="Chrome 50.0" +Platform="Linux" + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Chrome 49.0 + +[Chrome 49.0 for Android] +Parent="DefaultProperties" +Comment="Chrome 49.0" +Browser="Chrome" +Version="49.0" +Platform="Android" +isMobileDevice="true" +Device_Type="Mobile Phone" + +[Mozilla/5.0 (*Linux*Android*) AppleWebKit/* (KHTML* like Gecko) Chrome/49.*Safari/*] +Parent="Chrome 49.0 for Android" + +[Mozilla/5.0 (*Linux*Android*)*AppleWebKit/* (KHTML* like Gecko) Chrome/49.*Safari/*] +Parent="Chrome 49.0 for Android" + +[Mozilla/5.0 (*Linux*Android*) AppleWebKit/* (KHTML* like Gecko) 49.*Safari/*] +Parent="Chrome 49.0 for Android" + +[Mozilla/5.0 (*Linux*Android*) AppleWebKit/* (KHTML* like Gecko*) Chrome/49.*Safari/*] +Parent="Chrome 49.0 for Android" + +[Mozilla/5.0 (*Linux*Android*) AppleWebKit/* (KHTML* like Gecko)*CrMo/49.*Safari/*] +Parent="Chrome 49.0 for Android" + +[Chrome 49.0 for iOS] +Parent="DefaultProperties" +Comment="Chrome 49.0" +Browser="Chrome" +Version="49.0" +Platform="iOS" +isMobileDevice="true" +Device_Type="Mobile Device" + +[Mozilla/5.0 (iPad*CPU*OS* like Mac OS X*) AppleWebKit/* (KHTML* like Gecko) *CriOS/49.*Safari/*] +Parent="Chrome 49.0 for iOS" +isTablet="true" +Device_Type="Tablet" + +[Mozilla/5.0 (iPhone*CPU*OS* like Mac OS X*) AppleWebKit/* (KHTML* like Gecko) *CriOS/49.*Safari/*] +Parent="Chrome 49.0 for iOS" +Device_Type="Mobile Phone" + +[Mozilla/5.0 (iPod*CPU*OS* like Mac OS X*) AppleWebKit/* (KHTML* like Gecko) *CriOS/49.*Safari/*] +Parent="Chrome 49.0 for iOS" + +[Mozilla/5.0 (*CPU*OS* like Mac OS X*) AppleWebKit/* (KHTML* like Gecko) *CriOS/49.*Safari/*] +Parent="Chrome 49.0 for iOS" + +[Chrome 49.0] +Parent="DefaultProperties" +Comment="Chrome 49.0" +Browser="Chrome" +Version="49.0" +Device_Type="Desktop" + +[Mozilla/5.0 (*Linux*) AppleWebKit/* (KHTML* like Gecko) Chrome/49.*Safari/*] +Parent="Chrome 49.0" +Platform="Linux" + +[Mozilla/5.0 (*Windows NT 6.0*) AppleWebKit/* (KHTML* like Gecko) Chrome/49.*Safari/*] +Parent="Chrome 49.0" +Platform="WinVista" + +[Mozilla/5.0 (*Windows NT 6.1*) AppleWebKit/* (KHTML* like Gecko) Chrome/49.*Safari/*] +Parent="Chrome 49.0" +Platform="Win7" + +[Mozilla/5.0 (*Windows NT 6.2*) AppleWebKit/* (KHTML* like Gecko) Chrome/49.*Safari/*] +Parent="Chrome 49.0" +Platform="Win8" + +[Mozilla/5.0 (*Windows NT 6.3*) AppleWebKit/* (KHTML* like Gecko) Chrome/49.*Safari/*] +Parent="Chrome 49.0" +Platform="Win8.1" + +[Mozilla/5.0 (*Windows NT 6.4*) AppleWebKit/* (KHTML* like Gecko) Chrome/49.*Safari/*] +Parent="Chrome 49.0" +Platform="Win10" + +[Mozilla/5.0 (*Windows NT 10.0*) AppleWebKit/* (KHTML* like Gecko) Chrome/49.*Safari/*] +Parent="Chrome 49.0" +Platform="Win10" + +[Mozilla/5.0 (*Windows*) AppleWebKit/* (KHTML* like Gecko) Chrome/49.*Safari/*] +Parent="Chrome 49.0" +Platform="Win32" + +[Mozilla/5.0 (*Mac OS X*) AppleWebKit/* (KHTML* like Gecko) Chrome/49.*Safari/*] +Parent="Chrome 49.0" +Platform="MacOSX" + +[Mozilla/5.0 (*Linux*) AppleWebKit/* (KHTML,*like Gecko) Chrome/49.*] +Parent="Chrome 49.0" +Platform="Linux" + +[Mozilla/5.0 (*Windows NT 6.0*) AppleWebKit/* (KHTML* like Gecko) Chrome/49.*] +Parent="Chrome 49.0" +Platform="WinVista" + +[Mozilla/5.0 (*Windows NT 6.1*) AppleWebKit/* (KHTML* like Gecko) Chrome/49.*] +Parent="Chrome 49.0" +Platform="Win7" + +[Mozilla/5.0 (*Windows NT 6.2*) AppleWebKit/* (KHTML* like Gecko) Chrome/49.*] +Parent="Chrome 49.0" +Platform="Win8" + +[Mozilla/5.0 (*Windows NT 6.3*) AppleWebKit/* (KHTML* like Gecko) Chrome/49.*] +Parent="Chrome 49.0" +Platform="Win8.1" + +[Mozilla/5.0 (*Windows NT 6.4*) AppleWebKit/* (KHTML* like Gecko) Chrome/49.*] +Parent="Chrome 49.0" +Platform="Win10" + +[Mozilla/5.0 (*Windows NT 10.0*) AppleWebKit/* (KHTML* like Gecko) Chrome/49.*] +Parent="Chrome 49.0" +Platform="Win10" + +[Mozilla/5.0 (*Windows*) AppleWebKit/* (KHTML* like Gecko) Chrome/49.*] +Parent="Chrome 49.0" +Platform="Win32" + +[Mozilla/5.0 (*Mac OS X*) AppleWebKit/* (KHTML* like Gecko) Chrome/49.*] +Parent="Chrome 49.0" +Platform="MacOSX" + +[Mozilla/5.0 (*Windows NT 6.0*) AppleWebKit/* (KHTML* like Gecko) Chrome/49.*Chrome anonymized by*] +Parent="Chrome 49.0" +Platform="WinVista" + +[Mozilla/5.0 (*Windows NT 6.1*) AppleWebKit/* (KHTML* like Gecko) Chrome/49.*Chrome anonymized by*] +Parent="Chrome 49.0" +Platform="Win7" + +[Mozilla/5.0 (*Windows NT 6.2*) AppleWebKit/* (KHTML* like Gecko) Chrome/49.*Chrome anonymized by*] +Parent="Chrome 49.0" +Platform="Win8" + +[Mozilla/5.0 (*Windows NT 6.3*) AppleWebKit/* (KHTML* like Gecko) Chrome/49.*Chrome anonymized by*] +Parent="Chrome 49.0" +Platform="Win8.1" + +[Mozilla/5.0 (*Windows NT 6.4*) AppleWebKit/* (KHTML* like Gecko) Chrome/49.*Chrome anonymized by*] +Parent="Chrome 49.0" +Platform="Win10" + +[Mozilla/5.0 (*Windows NT 10.0*) AppleWebKit/* (KHTML* like Gecko) Chrome/49.*Chrome anonymized by*] +Parent="Chrome 49.0" +Platform="Win10" + +[Mozilla/5.0 (*Windows*) AppleWebKit/* (KHTML* like Gecko) Chrome/49.*Chrome anonymized by*] +Parent="Chrome 49.0" +Platform="Win32" + +[Mozilla/5.0 (*Windows NT 6.0*) AppleWebKit/* (KHTML* like Gecko) Chrome/49.*Anonymisiert durch*] +Parent="Chrome 49.0" +Platform="WinVista" + +[Mozilla/5.0 (*Windows NT 6.1*) AppleWebKit/* (KHTML* like Gecko) Chrome/49.*Anonymisiert durch*] +Parent="Chrome 49.0" +Platform="Win7" + +[Mozilla/5.0 (*Windows NT 6.2*) AppleWebKit/* (KHTML* like Gecko) Chrome/49.*Anonymisiert durch*] +Parent="Chrome 49.0" +Platform="Win8" + +[Mozilla/5.0 (*Windows NT 6.3*) AppleWebKit/* (KHTML* like Gecko) Chrome/49.*Anonymisiert durch*] +Parent="Chrome 49.0" +Platform="Win8.1" + +[Mozilla/5.0 (*Windows NT 6.4*) AppleWebKit/* (KHTML* like Gecko) Chrome/49.*Anonymisiert durch*] +Parent="Chrome 49.0" +Platform="Win10" + +[Mozilla/5.0 (*Windows NT 10.0*) AppleWebKit/* (KHTML* like Gecko) Chrome/49.*Anonymisiert durch*] +Parent="Chrome 49.0" +Platform="Win10" + +[Mozilla/5.0 (*Windows*) AppleWebKit/* (KHTML* like Gecko) Chrome/49.*Anonymisiert durch*] +Parent="Chrome 49.0" +Platform="Win32" + +[Mozilla/5.0 (*Linux*) AppleWebKit/*(KHTML,like Gecko) Chrome/49.*] +Parent="Chrome 49.0" +Platform="Linux" + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Chrome 48.0 + +[Chrome 48.0 for Android] +Parent="DefaultProperties" +Comment="Chrome 48.0" +Browser="Chrome" +Version="48.0" +Platform="Android" +isMobileDevice="true" +Device_Type="Mobile Phone" + +[Mozilla/5.0 (*Linux*Android*) AppleWebKit/* (KHTML* like Gecko) Chrome/48.*Safari/*] +Parent="Chrome 48.0 for Android" + +[Mozilla/5.0 (*Linux*Android*)*AppleWebKit/* (KHTML* like Gecko) Chrome/48.*Safari/*] +Parent="Chrome 48.0 for Android" + +[Mozilla/5.0 (*Linux*Android*) AppleWebKit/* (KHTML* like Gecko) 48.*Safari/*] +Parent="Chrome 48.0 for Android" + +[Mozilla/5.0 (*Linux*Android*) AppleWebKit/* (KHTML* like Gecko*) Chrome/48.*Safari/*] +Parent="Chrome 48.0 for Android" + +[Mozilla/5.0 (*Linux*Android*) AppleWebKit/* (KHTML* like Gecko)*CrMo/48.*Safari/*] +Parent="Chrome 48.0 for Android" + +[Chrome 48.0 for iOS] +Parent="DefaultProperties" +Comment="Chrome 48.0" +Browser="Chrome" +Version="48.0" +Platform="iOS" +isMobileDevice="true" +Device_Type="Mobile Device" + +[Mozilla/5.0 (iPad*CPU*OS* like Mac OS X*) AppleWebKit/* (KHTML* like Gecko) *CriOS/48.*Safari/*] +Parent="Chrome 48.0 for iOS" +isTablet="true" +Device_Type="Tablet" + +[Mozilla/5.0 (iPhone*CPU*OS* like Mac OS X*) AppleWebKit/* (KHTML* like Gecko) *CriOS/48.*Safari/*] +Parent="Chrome 48.0 for iOS" +Device_Type="Mobile Phone" + +[Mozilla/5.0 (iPod*CPU*OS* like Mac OS X*) AppleWebKit/* (KHTML* like Gecko) *CriOS/48.*Safari/*] +Parent="Chrome 48.0 for iOS" + +[Mozilla/5.0 (*CPU*OS* like Mac OS X*) AppleWebKit/* (KHTML* like Gecko) *CriOS/48.*Safari/*] +Parent="Chrome 48.0 for iOS" + +[Chrome 48.0] +Parent="DefaultProperties" +Comment="Chrome 48.0" +Browser="Chrome" +Version="48.0" +Device_Type="Desktop" + +[Mozilla/5.0 (*Linux*) AppleWebKit/* (KHTML* like Gecko) Chrome/48.*Safari/*] +Parent="Chrome 48.0" +Platform="Linux" + +[Mozilla/5.0 (*Windows NT 6.0*) AppleWebKit/* (KHTML* like Gecko) Chrome/48.*Safari/*] +Parent="Chrome 48.0" +Platform="WinVista" + +[Mozilla/5.0 (*Windows NT 6.1*) AppleWebKit/* (KHTML* like Gecko) Chrome/48.*Safari/*] +Parent="Chrome 48.0" +Platform="Win7" + +[Mozilla/5.0 (*Windows NT 6.2*) AppleWebKit/* (KHTML* like Gecko) Chrome/48.*Safari/*] +Parent="Chrome 48.0" +Platform="Win8" + +[Mozilla/5.0 (*Windows NT 6.3*) AppleWebKit/* (KHTML* like Gecko) Chrome/48.*Safari/*] +Parent="Chrome 48.0" +Platform="Win8.1" + +[Mozilla/5.0 (*Windows NT 6.4*) AppleWebKit/* (KHTML* like Gecko) Chrome/48.*Safari/*] +Parent="Chrome 48.0" +Platform="Win10" + +[Mozilla/5.0 (*Windows NT 10.0*) AppleWebKit/* (KHTML* like Gecko) Chrome/48.*Safari/*] +Parent="Chrome 48.0" +Platform="Win10" + +[Mozilla/5.0 (*Windows*) AppleWebKit/* (KHTML* like Gecko) Chrome/48.*Safari/*] +Parent="Chrome 48.0" +Platform="Win32" + +[Mozilla/5.0 (*Mac OS X*) AppleWebKit/* (KHTML* like Gecko) Chrome/48.*Safari/*] +Parent="Chrome 48.0" +Platform="MacOSX" + +[Mozilla/5.0 (*Linux*) AppleWebKit/* (KHTML,*like Gecko) Chrome/48.*] +Parent="Chrome 48.0" +Platform="Linux" + +[Mozilla/5.0 (*Windows NT 6.0*) AppleWebKit/* (KHTML* like Gecko) Chrome/48.*] +Parent="Chrome 48.0" +Platform="WinVista" + +[Mozilla/5.0 (*Windows NT 6.1*) AppleWebKit/* (KHTML* like Gecko) Chrome/48.*] +Parent="Chrome 48.0" +Platform="Win7" + +[Mozilla/5.0 (*Windows NT 6.2*) AppleWebKit/* (KHTML* like Gecko) Chrome/48.*] +Parent="Chrome 48.0" +Platform="Win8" + +[Mozilla/5.0 (*Windows NT 6.3*) AppleWebKit/* (KHTML* like Gecko) Chrome/48.*] +Parent="Chrome 48.0" +Platform="Win8.1" + +[Mozilla/5.0 (*Windows NT 6.4*) AppleWebKit/* (KHTML* like Gecko) Chrome/48.*] +Parent="Chrome 48.0" +Platform="Win10" + +[Mozilla/5.0 (*Windows NT 10.0*) AppleWebKit/* (KHTML* like Gecko) Chrome/48.*] +Parent="Chrome 48.0" +Platform="Win10" + +[Mozilla/5.0 (*Windows*) AppleWebKit/* (KHTML* like Gecko) Chrome/48.*] +Parent="Chrome 48.0" +Platform="Win32" + +[Mozilla/5.0 (*Mac OS X*) AppleWebKit/* (KHTML* like Gecko) Chrome/48.*] +Parent="Chrome 48.0" +Platform="MacOSX" + +[Mozilla/5.0 (*Windows NT 6.0*) AppleWebKit/* (KHTML* like Gecko) Chrome/48.*Chrome anonymized by*] +Parent="Chrome 48.0" +Platform="WinVista" + +[Mozilla/5.0 (*Windows NT 6.1*) AppleWebKit/* (KHTML* like Gecko) Chrome/48.*Chrome anonymized by*] +Parent="Chrome 48.0" +Platform="Win7" + +[Mozilla/5.0 (*Windows NT 6.2*) AppleWebKit/* (KHTML* like Gecko) Chrome/48.*Chrome anonymized by*] +Parent="Chrome 48.0" +Platform="Win8" + +[Mozilla/5.0 (*Windows NT 6.3*) AppleWebKit/* (KHTML* like Gecko) Chrome/48.*Chrome anonymized by*] +Parent="Chrome 48.0" +Platform="Win8.1" + +[Mozilla/5.0 (*Windows NT 6.4*) AppleWebKit/* (KHTML* like Gecko) Chrome/48.*Chrome anonymized by*] +Parent="Chrome 48.0" +Platform="Win10" + +[Mozilla/5.0 (*Windows NT 10.0*) AppleWebKit/* (KHTML* like Gecko) Chrome/48.*Chrome anonymized by*] +Parent="Chrome 48.0" +Platform="Win10" + +[Mozilla/5.0 (*Windows*) AppleWebKit/* (KHTML* like Gecko) Chrome/48.*Chrome anonymized by*] +Parent="Chrome 48.0" +Platform="Win32" + +[Mozilla/5.0 (*Windows NT 6.0*) AppleWebKit/* (KHTML* like Gecko) Chrome/48.*Anonymisiert durch*] +Parent="Chrome 48.0" +Platform="WinVista" + +[Mozilla/5.0 (*Windows NT 6.1*) AppleWebKit/* (KHTML* like Gecko) Chrome/48.*Anonymisiert durch*] +Parent="Chrome 48.0" +Platform="Win7" + +[Mozilla/5.0 (*Windows NT 6.2*) AppleWebKit/* (KHTML* like Gecko) Chrome/48.*Anonymisiert durch*] +Parent="Chrome 48.0" +Platform="Win8" + +[Mozilla/5.0 (*Windows NT 6.3*) AppleWebKit/* (KHTML* like Gecko) Chrome/48.*Anonymisiert durch*] +Parent="Chrome 48.0" +Platform="Win8.1" + +[Mozilla/5.0 (*Windows NT 6.4*) AppleWebKit/* (KHTML* like Gecko) Chrome/48.*Anonymisiert durch*] +Parent="Chrome 48.0" +Platform="Win10" + +[Mozilla/5.0 (*Windows NT 10.0*) AppleWebKit/* (KHTML* like Gecko) Chrome/48.*Anonymisiert durch*] +Parent="Chrome 48.0" +Platform="Win10" + +[Mozilla/5.0 (*Windows*) AppleWebKit/* (KHTML* like Gecko) Chrome/48.*Anonymisiert durch*] +Parent="Chrome 48.0" +Platform="Win32" + +[Mozilla/5.0 (*Linux*) AppleWebKit/*(KHTML,like Gecko) Chrome/48.*] +Parent="Chrome 48.0" +Platform="Linux" + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Chrome 47.0 + +[Chrome 47.0 for Android] +Parent="DefaultProperties" +Comment="Chrome 47.0" +Browser="Chrome" +Version="47.0" +Platform="Android" +isMobileDevice="true" +Device_Type="Mobile Phone" + +[Mozilla/5.0 (*Linux*Android*) AppleWebKit/* (KHTML* like Gecko) Chrome/47.*Safari/*] +Parent="Chrome 47.0 for Android" + +[Mozilla/5.0 (*Linux*Android*)*AppleWebKit/* (KHTML* like Gecko) Chrome/47.*Safari/*] +Parent="Chrome 47.0 for Android" + +[Mozilla/5.0 (*Linux*Android*) AppleWebKit/* (KHTML* like Gecko) 47.*Safari/*] +Parent="Chrome 47.0 for Android" + +[Mozilla/5.0 (*Linux*Android*) AppleWebKit/* (KHTML* like Gecko*) Chrome/47.*Safari/*] +Parent="Chrome 47.0 for Android" + +[Mozilla/5.0 (*Linux*Android*) AppleWebKit/* (KHTML* like Gecko)*CrMo/47.*Safari/*] +Parent="Chrome 47.0 for Android" + +[Chrome 47.0 for iOS] +Parent="DefaultProperties" +Comment="Chrome 47.0" +Browser="Chrome" +Version="47.0" +Platform="iOS" +isMobileDevice="true" +Device_Type="Mobile Device" + +[Mozilla/5.0 (iPad*CPU*OS* like Mac OS X*) AppleWebKit/* (KHTML* like Gecko) *CriOS/47.*Safari/*] +Parent="Chrome 47.0 for iOS" +isTablet="true" +Device_Type="Tablet" + +[Mozilla/5.0 (iPhone*CPU*OS* like Mac OS X*) AppleWebKit/* (KHTML* like Gecko) *CriOS/47.*Safari/*] +Parent="Chrome 47.0 for iOS" +Device_Type="Mobile Phone" + +[Mozilla/5.0 (iPod*CPU*OS* like Mac OS X*) AppleWebKit/* (KHTML* like Gecko) *CriOS/47.*Safari/*] +Parent="Chrome 47.0 for iOS" + +[Mozilla/5.0 (*CPU*OS* like Mac OS X*) AppleWebKit/* (KHTML* like Gecko) *CriOS/47.*Safari/*] +Parent="Chrome 47.0 for iOS" + +[Chrome 47.0] +Parent="DefaultProperties" +Comment="Chrome 47.0" +Browser="Chrome" +Version="47.0" +Device_Type="Desktop" + +[Mozilla/5.0 (*Linux*) AppleWebKit/* (KHTML* like Gecko) Chrome/47.*Safari/*] +Parent="Chrome 47.0" +Platform="Linux" + +[Mozilla/5.0 (*Windows NT 6.0*) AppleWebKit/* (KHTML* like Gecko) Chrome/47.*Safari/*] +Parent="Chrome 47.0" +Platform="WinVista" + +[Mozilla/5.0 (*Windows NT 6.1*) AppleWebKit/* (KHTML* like Gecko) Chrome/47.*Safari/*] +Parent="Chrome 47.0" +Platform="Win7" + +[Mozilla/5.0 (*Windows NT 6.2*) AppleWebKit/* (KHTML* like Gecko) Chrome/47.*Safari/*] +Parent="Chrome 47.0" +Platform="Win8" + +[Mozilla/5.0 (*Windows NT 6.3*) AppleWebKit/* (KHTML* like Gecko) Chrome/47.*Safari/*] +Parent="Chrome 47.0" +Platform="Win8.1" + +[Mozilla/5.0 (*Windows NT 6.4*) AppleWebKit/* (KHTML* like Gecko) Chrome/47.*Safari/*] +Parent="Chrome 47.0" +Platform="Win10" + +[Mozilla/5.0 (*Windows NT 10.0*) AppleWebKit/* (KHTML* like Gecko) Chrome/47.*Safari/*] +Parent="Chrome 47.0" +Platform="Win10" + +[Mozilla/5.0 (*Windows*) AppleWebKit/* (KHTML* like Gecko) Chrome/47.*Safari/*] +Parent="Chrome 47.0" +Platform="Win32" + +[Mozilla/5.0 (*Mac OS X*) AppleWebKit/* (KHTML* like Gecko) Chrome/47.*Safari/*] +Parent="Chrome 47.0" +Platform="MacOSX" + +[Mozilla/5.0 (*Linux*) AppleWebKit/* (KHTML,*like Gecko) Chrome/47.*] +Parent="Chrome 47.0" +Platform="Linux" + +[Mozilla/5.0 (*Windows NT 6.0*) AppleWebKit/* (KHTML* like Gecko) Chrome/47.*] +Parent="Chrome 47.0" +Platform="WinVista" + +[Mozilla/5.0 (*Windows NT 6.1*) AppleWebKit/* (KHTML* like Gecko) Chrome/47.*] +Parent="Chrome 47.0" +Platform="Win7" + +[Mozilla/5.0 (*Windows NT 6.2*) AppleWebKit/* (KHTML* like Gecko) Chrome/47.*] +Parent="Chrome 47.0" +Platform="Win8" + +[Mozilla/5.0 (*Windows NT 6.3*) AppleWebKit/* (KHTML* like Gecko) Chrome/47.*] +Parent="Chrome 47.0" +Platform="Win8.1" + +[Mozilla/5.0 (*Windows NT 6.4*) AppleWebKit/* (KHTML* like Gecko) Chrome/47.*] +Parent="Chrome 47.0" +Platform="Win10" + +[Mozilla/5.0 (*Windows NT 10.0*) AppleWebKit/* (KHTML* like Gecko) Chrome/47.*] +Parent="Chrome 47.0" +Platform="Win10" + +[Mozilla/5.0 (*Windows*) AppleWebKit/* (KHTML* like Gecko) Chrome/47.*] +Parent="Chrome 47.0" +Platform="Win32" + +[Mozilla/5.0 (*Mac OS X*) AppleWebKit/* (KHTML* like Gecko) Chrome/47.*] +Parent="Chrome 47.0" +Platform="MacOSX" + +[Mozilla/5.0 (*Windows NT 6.0*) AppleWebKit/* (KHTML* like Gecko) Chrome/47.*Chrome anonymized by*] +Parent="Chrome 47.0" +Platform="WinVista" + +[Mozilla/5.0 (*Windows NT 6.1*) AppleWebKit/* (KHTML* like Gecko) Chrome/47.*Chrome anonymized by*] +Parent="Chrome 47.0" +Platform="Win7" + +[Mozilla/5.0 (*Windows NT 6.2*) AppleWebKit/* (KHTML* like Gecko) Chrome/47.*Chrome anonymized by*] +Parent="Chrome 47.0" +Platform="Win8" + +[Mozilla/5.0 (*Windows NT 6.3*) AppleWebKit/* (KHTML* like Gecko) Chrome/47.*Chrome anonymized by*] +Parent="Chrome 47.0" +Platform="Win8.1" + +[Mozilla/5.0 (*Windows NT 6.4*) AppleWebKit/* (KHTML* like Gecko) Chrome/47.*Chrome anonymized by*] +Parent="Chrome 47.0" +Platform="Win10" + +[Mozilla/5.0 (*Windows NT 10.0*) AppleWebKit/* (KHTML* like Gecko) Chrome/47.*Chrome anonymized by*] +Parent="Chrome 47.0" +Platform="Win10" + +[Mozilla/5.0 (*Windows*) AppleWebKit/* (KHTML* like Gecko) Chrome/47.*Chrome anonymized by*] +Parent="Chrome 47.0" +Platform="Win32" + +[Mozilla/5.0 (*Windows NT 6.0*) AppleWebKit/* (KHTML* like Gecko) Chrome/47.*Anonymisiert durch*] +Parent="Chrome 47.0" +Platform="WinVista" + +[Mozilla/5.0 (*Windows NT 6.1*) AppleWebKit/* (KHTML* like Gecko) Chrome/47.*Anonymisiert durch*] +Parent="Chrome 47.0" +Platform="Win7" + +[Mozilla/5.0 (*Windows NT 6.2*) AppleWebKit/* (KHTML* like Gecko) Chrome/47.*Anonymisiert durch*] +Parent="Chrome 47.0" +Platform="Win8" + +[Mozilla/5.0 (*Windows NT 6.3*) AppleWebKit/* (KHTML* like Gecko) Chrome/47.*Anonymisiert durch*] +Parent="Chrome 47.0" +Platform="Win8.1" + +[Mozilla/5.0 (*Windows NT 6.4*) AppleWebKit/* (KHTML* like Gecko) Chrome/47.*Anonymisiert durch*] +Parent="Chrome 47.0" +Platform="Win10" + +[Mozilla/5.0 (*Windows NT 10.0*) AppleWebKit/* (KHTML* like Gecko) Chrome/47.*Anonymisiert durch*] +Parent="Chrome 47.0" +Platform="Win10" + +[Mozilla/5.0 (*Windows*) AppleWebKit/* (KHTML* like Gecko) Chrome/47.*Anonymisiert durch*] +Parent="Chrome 47.0" +Platform="Win32" + +[Mozilla/5.0 (*Linux*) AppleWebKit/*(KHTML,like Gecko) Chrome/47.*] +Parent="Chrome 47.0" +Platform="Linux" + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Chrome 46.0 + +[Chrome 46.0 for Android] +Parent="DefaultProperties" +Comment="Chrome 46.0" +Browser="Chrome" +Version="46.0" +Platform="Android" +isMobileDevice="true" +Device_Type="Mobile Phone" + +[Mozilla/5.0 (*Linux*Android*) AppleWebKit/* (KHTML* like Gecko) Chrome/46.*Safari/*] +Parent="Chrome 46.0 for Android" + +[Mozilla/5.0 (*Linux*Android*)*AppleWebKit/* (KHTML* like Gecko) Chrome/46.*Safari/*] +Parent="Chrome 46.0 for Android" + +[Mozilla/5.0 (*Linux*Android*) AppleWebKit/* (KHTML* like Gecko) 46.*Safari/*] +Parent="Chrome 46.0 for Android" + +[Mozilla/5.0 (*Linux*Android*) AppleWebKit/* (KHTML* like Gecko*) Chrome/46.*Safari/*] +Parent="Chrome 46.0 for Android" + +[Mozilla/5.0 (*Linux*Android*) AppleWebKit/* (KHTML* like Gecko)*CrMo/46.*Safari/*] +Parent="Chrome 46.0 for Android" + +[Chrome 46.0 for iOS] +Parent="DefaultProperties" +Comment="Chrome 46.0" +Browser="Chrome" +Version="46.0" +Platform="iOS" +isMobileDevice="true" +Device_Type="Mobile Device" + +[Mozilla/5.0 (iPad*CPU*OS* like Mac OS X*) AppleWebKit/* (KHTML* like Gecko) *CriOS/46.*Safari/*] +Parent="Chrome 46.0 for iOS" +isTablet="true" +Device_Type="Tablet" + +[Mozilla/5.0 (iPhone*CPU*OS* like Mac OS X*) AppleWebKit/* (KHTML* like Gecko) *CriOS/46.*Safari/*] +Parent="Chrome 46.0 for iOS" +Device_Type="Mobile Phone" + +[Mozilla/5.0 (iPod*CPU*OS* like Mac OS X*) AppleWebKit/* (KHTML* like Gecko) *CriOS/46.*Safari/*] +Parent="Chrome 46.0 for iOS" + +[Mozilla/5.0 (*CPU*OS* like Mac OS X*) AppleWebKit/* (KHTML* like Gecko) *CriOS/46.*Safari/*] +Parent="Chrome 46.0 for iOS" + +[Chrome 46.0] +Parent="DefaultProperties" +Comment="Chrome 46.0" +Browser="Chrome" +Version="46.0" +Device_Type="Desktop" + +[Mozilla/5.0 (*Linux*) AppleWebKit/* (KHTML* like Gecko) Chrome/46.*Safari/*] +Parent="Chrome 46.0" +Platform="Linux" + +[Mozilla/5.0 (*Windows NT 6.0*) AppleWebKit/* (KHTML* like Gecko) Chrome/46.*Safari/*] +Parent="Chrome 46.0" +Platform="WinVista" + +[Mozilla/5.0 (*Windows NT 6.1*) AppleWebKit/* (KHTML* like Gecko) Chrome/46.*Safari/*] +Parent="Chrome 46.0" +Platform="Win7" + +[Mozilla/5.0 (*Windows NT 6.2*) AppleWebKit/* (KHTML* like Gecko) Chrome/46.*Safari/*] +Parent="Chrome 46.0" +Platform="Win8" + +[Mozilla/5.0 (*Windows NT 6.3*) AppleWebKit/* (KHTML* like Gecko) Chrome/46.*Safari/*] +Parent="Chrome 46.0" +Platform="Win8.1" + +[Mozilla/5.0 (*Windows NT 6.4*) AppleWebKit/* (KHTML* like Gecko) Chrome/46.*Safari/*] +Parent="Chrome 46.0" +Platform="Win10" + +[Mozilla/5.0 (*Windows NT 10.0*) AppleWebKit/* (KHTML* like Gecko) Chrome/46.*Safari/*] +Parent="Chrome 46.0" +Platform="Win10" + +[Mozilla/5.0 (*Windows*) AppleWebKit/* (KHTML* like Gecko) Chrome/46.*Safari/*] +Parent="Chrome 46.0" +Platform="Win32" + +[Mozilla/5.0 (*Mac OS X*) AppleWebKit/* (KHTML* like Gecko) Chrome/46.*Safari/*] +Parent="Chrome 46.0" +Platform="MacOSX" + +[Mozilla/5.0 (*Linux*) AppleWebKit/* (KHTML,*like Gecko) Chrome/46.*] +Parent="Chrome 46.0" +Platform="Linux" + +[Mozilla/5.0 (*Windows NT 6.0*) AppleWebKit/* (KHTML* like Gecko) Chrome/46.*] +Parent="Chrome 46.0" +Platform="WinVista" + +[Mozilla/5.0 (*Windows NT 6.1*) AppleWebKit/* (KHTML* like Gecko) Chrome/46.*] +Parent="Chrome 46.0" +Platform="Win7" + +[Mozilla/5.0 (*Windows NT 6.2*) AppleWebKit/* (KHTML* like Gecko) Chrome/46.*] +Parent="Chrome 46.0" +Platform="Win8" + +[Mozilla/5.0 (*Windows NT 6.3*) AppleWebKit/* (KHTML* like Gecko) Chrome/46.*] +Parent="Chrome 46.0" +Platform="Win8.1" + +[Mozilla/5.0 (*Windows NT 6.4*) AppleWebKit/* (KHTML* like Gecko) Chrome/46.*] +Parent="Chrome 46.0" +Platform="Win10" + +[Mozilla/5.0 (*Windows NT 10.0*) AppleWebKit/* (KHTML* like Gecko) Chrome/46.*] +Parent="Chrome 46.0" +Platform="Win10" + +[Mozilla/5.0 (*Windows*) AppleWebKit/* (KHTML* like Gecko) Chrome/46.*] +Parent="Chrome 46.0" +Platform="Win32" + +[Mozilla/5.0 (*Mac OS X*) AppleWebKit/* (KHTML* like Gecko) Chrome/46.*] +Parent="Chrome 46.0" +Platform="MacOSX" + +[Mozilla/5.0 (*Windows NT 6.0*) AppleWebKit/* (KHTML* like Gecko) Chrome/46.*Chrome anonymized by*] +Parent="Chrome 46.0" +Platform="WinVista" + +[Mozilla/5.0 (*Windows NT 6.1*) AppleWebKit/* (KHTML* like Gecko) Chrome/46.*Chrome anonymized by*] +Parent="Chrome 46.0" +Platform="Win7" + +[Mozilla/5.0 (*Windows NT 6.2*) AppleWebKit/* (KHTML* like Gecko) Chrome/46.*Chrome anonymized by*] +Parent="Chrome 46.0" +Platform="Win8" + +[Mozilla/5.0 (*Windows NT 6.3*) AppleWebKit/* (KHTML* like Gecko) Chrome/46.*Chrome anonymized by*] +Parent="Chrome 46.0" +Platform="Win8.1" + +[Mozilla/5.0 (*Windows NT 6.4*) AppleWebKit/* (KHTML* like Gecko) Chrome/46.*Chrome anonymized by*] +Parent="Chrome 46.0" +Platform="Win10" + +[Mozilla/5.0 (*Windows NT 10.0*) AppleWebKit/* (KHTML* like Gecko) Chrome/46.*Chrome anonymized by*] +Parent="Chrome 46.0" +Platform="Win10" + +[Mozilla/5.0 (*Windows*) AppleWebKit/* (KHTML* like Gecko) Chrome/46.*Chrome anonymized by*] +Parent="Chrome 46.0" +Platform="Win32" + +[Mozilla/5.0 (*Windows NT 6.0*) AppleWebKit/* (KHTML* like Gecko) Chrome/46.*Anonymisiert durch*] +Parent="Chrome 46.0" +Platform="WinVista" + +[Mozilla/5.0 (*Windows NT 6.1*) AppleWebKit/* (KHTML* like Gecko) Chrome/46.*Anonymisiert durch*] +Parent="Chrome 46.0" +Platform="Win7" + +[Mozilla/5.0 (*Windows NT 6.2*) AppleWebKit/* (KHTML* like Gecko) Chrome/46.*Anonymisiert durch*] +Parent="Chrome 46.0" +Platform="Win8" + +[Mozilla/5.0 (*Windows NT 6.3*) AppleWebKit/* (KHTML* like Gecko) Chrome/46.*Anonymisiert durch*] +Parent="Chrome 46.0" +Platform="Win8.1" + +[Mozilla/5.0 (*Windows NT 6.4*) AppleWebKit/* (KHTML* like Gecko) Chrome/46.*Anonymisiert durch*] +Parent="Chrome 46.0" +Platform="Win10" + +[Mozilla/5.0 (*Windows NT 10.0*) AppleWebKit/* (KHTML* like Gecko) Chrome/46.*Anonymisiert durch*] +Parent="Chrome 46.0" +Platform="Win10" + +[Mozilla/5.0 (*Windows*) AppleWebKit/* (KHTML* like Gecko) Chrome/46.*Anonymisiert durch*] +Parent="Chrome 46.0" +Platform="Win32" + +[Mozilla/5.0 (*Linux*) AppleWebKit/*(KHTML,like Gecko) Chrome/46.*] +Parent="Chrome 46.0" +Platform="Linux" + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Chrome 45.0 + +[Chrome 45.0 for Android] +Parent="DefaultProperties" +Comment="Chrome 45.0" +Browser="Chrome" +Version="45.0" +Platform="Android" +isMobileDevice="true" +Device_Type="Mobile Phone" + +[Mozilla/5.0 (*Linux*Android*) AppleWebKit/* (KHTML* like Gecko) Chrome/45.*Safari/*] +Parent="Chrome 45.0 for Android" + +[Mozilla/5.0 (*Linux*Android*)*AppleWebKit/* (KHTML* like Gecko) Chrome/45.*Safari/*] +Parent="Chrome 45.0 for Android" + +[Mozilla/5.0 (*Linux*Android*) AppleWebKit/* (KHTML* like Gecko) 45.*Safari/*] +Parent="Chrome 45.0 for Android" + +[Mozilla/5.0 (*Linux*Android*) AppleWebKit/* (KHTML* like Gecko*) Chrome/45.*Safari/*] +Parent="Chrome 45.0 for Android" + +[Mozilla/5.0 (*Linux*Android*) AppleWebKit/* (KHTML* like Gecko)*CrMo/45.*Safari/*] +Parent="Chrome 45.0 for Android" + +[Chrome 45.0 for iOS] +Parent="DefaultProperties" +Comment="Chrome 45.0" +Browser="Chrome" +Version="45.0" +Platform="iOS" +isMobileDevice="true" +Device_Type="Mobile Device" + +[Mozilla/5.0 (iPad*CPU*OS* like Mac OS X*) AppleWebKit/* (KHTML* like Gecko) *CriOS/45.*Safari/*] +Parent="Chrome 45.0 for iOS" +isTablet="true" +Device_Type="Tablet" + +[Mozilla/5.0 (iPhone*CPU*OS* like Mac OS X*) AppleWebKit/* (KHTML* like Gecko) *CriOS/45.*Safari/*] +Parent="Chrome 45.0 for iOS" +Device_Type="Mobile Phone" + +[Mozilla/5.0 (iPod*CPU*OS* like Mac OS X*) AppleWebKit/* (KHTML* like Gecko) *CriOS/45.*Safari/*] +Parent="Chrome 45.0 for iOS" + +[Mozilla/5.0 (*CPU*OS* like Mac OS X*) AppleWebKit/* (KHTML* like Gecko) *CriOS/45.*Safari/*] +Parent="Chrome 45.0 for iOS" + +[Chrome 45.0] +Parent="DefaultProperties" +Comment="Chrome 45.0" +Browser="Chrome" +Version="45.0" +Device_Type="Desktop" + +[Mozilla/5.0 (*Linux*) AppleWebKit/* (KHTML* like Gecko) Chrome/45.*Safari/*] +Parent="Chrome 45.0" +Platform="Linux" + +[Mozilla/5.0 (*Windows NT 6.0*) AppleWebKit/* (KHTML* like Gecko) Chrome/45.*Safari/*] +Parent="Chrome 45.0" +Platform="WinVista" + +[Mozilla/5.0 (*Windows NT 6.1*) AppleWebKit/* (KHTML* like Gecko) Chrome/45.*Safari/*] +Parent="Chrome 45.0" +Platform="Win7" + +[Mozilla/5.0 (*Windows NT 6.2*) AppleWebKit/* (KHTML* like Gecko) Chrome/45.*Safari/*] +Parent="Chrome 45.0" +Platform="Win8" + +[Mozilla/5.0 (*Windows NT 6.3*) AppleWebKit/* (KHTML* like Gecko) Chrome/45.*Safari/*] +Parent="Chrome 45.0" +Platform="Win8.1" + +[Mozilla/5.0 (*Windows NT 6.4*) AppleWebKit/* (KHTML* like Gecko) Chrome/45.*Safari/*] +Parent="Chrome 45.0" +Platform="Win10" + +[Mozilla/5.0 (*Windows NT 10.0*) AppleWebKit/* (KHTML* like Gecko) Chrome/45.*Safari/*] +Parent="Chrome 45.0" +Platform="Win10" + +[Mozilla/5.0 (*Windows*) AppleWebKit/* (KHTML* like Gecko) Chrome/45.*Safari/*] +Parent="Chrome 45.0" +Platform="Win32" + +[Mozilla/5.0 (*Mac OS X*) AppleWebKit/* (KHTML* like Gecko) Chrome/45.*Safari/*] +Parent="Chrome 45.0" +Platform="MacOSX" + +[Mozilla/5.0 (*Linux*) AppleWebKit/* (KHTML,*like Gecko) Chrome/45.*] +Parent="Chrome 45.0" +Platform="Linux" + +[Mozilla/5.0 (*Windows NT 6.0*) AppleWebKit/* (KHTML* like Gecko) Chrome/45.*] +Parent="Chrome 45.0" +Platform="WinVista" + +[Mozilla/5.0 (*Windows NT 6.1*) AppleWebKit/* (KHTML* like Gecko) Chrome/45.*] +Parent="Chrome 45.0" +Platform="Win7" + +[Mozilla/5.0 (*Windows NT 6.2*) AppleWebKit/* (KHTML* like Gecko) Chrome/45.*] +Parent="Chrome 45.0" +Platform="Win8" + +[Mozilla/5.0 (*Windows NT 6.3*) AppleWebKit/* (KHTML* like Gecko) Chrome/45.*] +Parent="Chrome 45.0" +Platform="Win8.1" + +[Mozilla/5.0 (*Windows NT 6.4*) AppleWebKit/* (KHTML* like Gecko) Chrome/45.*] +Parent="Chrome 45.0" +Platform="Win10" + +[Mozilla/5.0 (*Windows NT 10.0*) AppleWebKit/* (KHTML* like Gecko) Chrome/45.*] +Parent="Chrome 45.0" +Platform="Win10" + +[Mozilla/5.0 (*Windows*) AppleWebKit/* (KHTML* like Gecko) Chrome/45.*] +Parent="Chrome 45.0" +Platform="Win32" + +[Mozilla/5.0 (*Mac OS X*) AppleWebKit/* (KHTML* like Gecko) Chrome/45.*] +Parent="Chrome 45.0" +Platform="MacOSX" + +[Mozilla/5.0 (*Windows NT 6.0*) AppleWebKit/* (KHTML* like Gecko) Chrome/45.*Chrome anonymized by*] +Parent="Chrome 45.0" +Platform="WinVista" + +[Mozilla/5.0 (*Windows NT 6.1*) AppleWebKit/* (KHTML* like Gecko) Chrome/45.*Chrome anonymized by*] +Parent="Chrome 45.0" +Platform="Win7" + +[Mozilla/5.0 (*Windows NT 6.2*) AppleWebKit/* (KHTML* like Gecko) Chrome/45.*Chrome anonymized by*] +Parent="Chrome 45.0" +Platform="Win8" + +[Mozilla/5.0 (*Windows NT 6.3*) AppleWebKit/* (KHTML* like Gecko) Chrome/45.*Chrome anonymized by*] +Parent="Chrome 45.0" +Platform="Win8.1" + +[Mozilla/5.0 (*Windows NT 6.4*) AppleWebKit/* (KHTML* like Gecko) Chrome/45.*Chrome anonymized by*] +Parent="Chrome 45.0" +Platform="Win10" + +[Mozilla/5.0 (*Windows NT 10.0*) AppleWebKit/* (KHTML* like Gecko) Chrome/45.*Chrome anonymized by*] +Parent="Chrome 45.0" +Platform="Win10" + +[Mozilla/5.0 (*Windows*) AppleWebKit/* (KHTML* like Gecko) Chrome/45.*Chrome anonymized by*] +Parent="Chrome 45.0" +Platform="Win32" + +[Mozilla/5.0 (*Windows NT 6.0*) AppleWebKit/* (KHTML* like Gecko) Chrome/45.*Anonymisiert durch*] +Parent="Chrome 45.0" +Platform="WinVista" + +[Mozilla/5.0 (*Windows NT 6.1*) AppleWebKit/* (KHTML* like Gecko) Chrome/45.*Anonymisiert durch*] +Parent="Chrome 45.0" +Platform="Win7" + +[Mozilla/5.0 (*Windows NT 6.2*) AppleWebKit/* (KHTML* like Gecko) Chrome/45.*Anonymisiert durch*] +Parent="Chrome 45.0" +Platform="Win8" + +[Mozilla/5.0 (*Windows NT 6.3*) AppleWebKit/* (KHTML* like Gecko) Chrome/45.*Anonymisiert durch*] +Parent="Chrome 45.0" +Platform="Win8.1" + +[Mozilla/5.0 (*Windows NT 6.4*) AppleWebKit/* (KHTML* like Gecko) Chrome/45.*Anonymisiert durch*] +Parent="Chrome 45.0" +Platform="Win10" + +[Mozilla/5.0 (*Windows NT 10.0*) AppleWebKit/* (KHTML* like Gecko) Chrome/45.*Anonymisiert durch*] +Parent="Chrome 45.0" +Platform="Win10" + +[Mozilla/5.0 (*Windows*) AppleWebKit/* (KHTML* like Gecko) Chrome/45.*Anonymisiert durch*] +Parent="Chrome 45.0" +Platform="Win32" + +[Mozilla/5.0 (*Linux*) AppleWebKit/*(KHTML,like Gecko) Chrome/45.*] +Parent="Chrome 45.0" +Platform="Linux" + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Chrome Generic + +[Chrome Generic for Android] +Parent="DefaultProperties" +Comment="Chrome Generic" +Browser="Chrome" +Platform="Android" +isMobileDevice="true" +Device_Type="Mobile Phone" + +[Mozilla/5.0 (*Linux*Android*) AppleWebKit/* (KHTML* like Gecko) Chrome/*Safari/*] +Parent="Chrome Generic for Android" + +[Mozilla/5.0 (*Linux*Android*) AppleWebKit/* (KHTML, like Gecko*) Chrome/*Safari/*] +Parent="Chrome Generic for Android" + +[Mozilla/5.0 (*Linux*Android*) AppleWebKit/*(KHTML,*like Gecko) Chrome/*Safari/*] +Parent="Chrome Generic for Android" + +[Mozilla/5.0 (*Linux*Android*) AppleWebKit/* (KHTML* like Gecko)*CrMo/*Safari/*] +Parent="Chrome Generic for Android" + +[Chrome Generic for iOS] +Parent="DefaultProperties" +Comment="Chrome Generic" +Browser="Chrome" +Platform="iOS" +isMobileDevice="true" +Device_Type="Mobile Device" + +[Mozilla/5.0 (iPad*CPU*OS* like Mac OS X*) AppleWebKit/* (KHTML* like Gecko) *CriOS/*Safari/*] +Parent="Chrome Generic for iOS" +isTablet="true" +Device_Type="Tablet" + +[Mozilla/5.0 (iPhone*CPU*OS* like Mac OS X*) AppleWebKit/* (KHTML* like Gecko) *CriOS/*Safari/*] +Parent="Chrome Generic for iOS" +Device_Type="Mobile Phone" + +[Mozilla/5.0 (*CPU*OS* like Mac OS X*) AppleWebKit/* (KHTML* like Gecko) *CriOS/*Safari/*] +Parent="Chrome Generic for iOS" + +[Chrome Generic] +Parent="DefaultProperties" +Comment="Chrome Generic" +Browser="Chrome" +Device_Type="Desktop" + +[Mozilla/5.0 (*Linux*) AppleWebKit/* (KHTML* like Gecko)*Chrome/* Large Screen Safari/* GoogleTV/*] +Parent="Chrome Generic" +Platform="Linux" +Device_Type="TV Device" + +[Mozilla/5.0 (*Linux*) AppleWebKit/* (KHTML* like Gecko) Chrome/*Safari/*] +Parent="Chrome Generic" +Platform="Linux" + +[Mozilla/5.0 (*Windows NT 6.0*) AppleWebKit/* (KHTML* like Gecko) Chrome/*Safari/*] +Parent="Chrome Generic" +Platform="WinVista" + +[Mozilla/5.0 (*Windows NT 6.1*) AppleWebKit/* (KHTML* like Gecko) Chrome/*Safari/*] +Parent="Chrome Generic" +Platform="Win7" + +[Mozilla/5.0 (*Windows NT 6.2*) AppleWebKit/* (KHTML* like Gecko) Chrome/*Safari/*] +Parent="Chrome Generic" +Platform="Win8" + +[Mozilla/5.0 (*Windows NT 6.3*) AppleWebKit/* (KHTML* like Gecko) Chrome/*Safari/*] +Parent="Chrome Generic" +Platform="Win8.1" + +[Mozilla/5.0 (*Windows NT 6.4*) AppleWebKit/* (KHTML* like Gecko) Chrome/*Safari/*] +Parent="Chrome Generic" +Platform="Win10" + +[Mozilla/5.0 (*Windows NT 10.0*) AppleWebKit/* (KHTML* like Gecko) Chrome/*Safari/*] +Parent="Chrome Generic" +Platform="Win10" + +[Mozilla/5.0 (*Windows*) AppleWebKit/* (KHTML* like Gecko) Chrome/*Safari/*] +Parent="Chrome Generic" +Platform="Win32" + +[Mozilla/5.0 (*Mac OS X*) AppleWebKit/* (KHTML* like Gecko) Chrome/*Safari/*] +Parent="Chrome Generic" +Platform="MacOSX" + +[Mozilla/5.0 (*Windows NT 6.0*) AppleWebKit/* (KHTML* like Gecko) Chrome/*Chrome anonymized by*] +Parent="Chrome Generic" +Platform="WinVista" + +[Mozilla/5.0 (*Windows NT 6.1*) AppleWebKit/* (KHTML* like Gecko) Chrome/*Chrome anonymized by*] +Parent="Chrome Generic" +Platform="Win7" + +[Mozilla/5.0 (*Windows NT 6.2*) AppleWebKit/* (KHTML* like Gecko) Chrome/*Chrome anonymized by*] +Parent="Chrome Generic" +Platform="Win8" + +[Mozilla/5.0 (*Windows NT 6.3*) AppleWebKit/* (KHTML* like Gecko) Chrome/*Chrome anonymized by*] +Parent="Chrome Generic" +Platform="Win8.1" + +[Mozilla/5.0 (*Windows NT 6.4*) AppleWebKit/* (KHTML* like Gecko) Chrome/*Chrome anonymized by*] +Parent="Chrome Generic" +Platform="Win10" + +[Mozilla/5.0 (*Windows NT 10.0*) AppleWebKit/* (KHTML* like Gecko) Chrome/*Chrome anonymized by*] +Parent="Chrome Generic" +Platform="Win10" + +[Mozilla/5.0 (*Windows*) AppleWebKit/* (KHTML* like Gecko) Chrome/*Chrome anonymized by*] +Parent="Chrome Generic" +Platform="Win32" + +[Mozilla/5.0 (*Windows NT 6.0*) AppleWebKit/* (KHTML* like Gecko) Chrome/*Anonymisiert durch*] +Parent="Chrome Generic" +Platform="WinVista" + +[Mozilla/5.0 (*Windows NT 6.1*) AppleWebKit/* (KHTML* like Gecko) Chrome/*Anonymisiert durch*] +Parent="Chrome Generic" +Platform="Win7" + +[Mozilla/5.0 (*Windows NT 6.2*) AppleWebKit/* (KHTML* like Gecko) Chrome/*Anonymisiert durch*] +Parent="Chrome Generic" +Platform="Win8" + +[Mozilla/5.0 (*Windows NT 6.3*) AppleWebKit/* (KHTML* like Gecko) Chrome/*Anonymisiert durch*] +Parent="Chrome Generic" +Platform="Win8.1" + +[Mozilla/5.0 (*Windows NT 6.4*) AppleWebKit/* (KHTML* like Gecko) Chrome/*Anonymisiert durch*] +Parent="Chrome Generic" +Platform="Win10" + +[Mozilla/5.0 (*Windows NT 10.0*) AppleWebKit/* (KHTML* like Gecko) Chrome/*Anonymisiert durch*] +Parent="Chrome Generic" +Platform="Win10" + +[Mozilla/5.0 (*Windows*) AppleWebKit/* (KHTML* like Gecko) Chrome/*Anonymisiert durch*] +Parent="Chrome Generic" +Platform="Win32" + +[Mozilla/5.0 (*Linux*) AppleWebKit/* (KHTML* like Gecko) Sabayon Chrome/*] +Parent="Chrome Generic" +Platform="Linux" + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; IEMobile 11.0 + +[IEMobile 11.0] +Parent="DefaultProperties" +Comment="IEMobile 11.0" +Browser="IEMobile" +Version="11.0" +Platform="WinPhone8.1" +isMobileDevice="true" +Device_Type="Mobile Phone" + +[Mozilla/5.0*(*Windows Phone 8.1*Trident/7.0*rv:11*IEMobile?11.0) like Android *; compatible) like iPhone OS * Mac OS X WebKit/537.36 (KHTML* like Gecko) Chrome*Safari*] +Parent="IEMobile 11.0" + +[Mozilla/5.0*(*Windows Phone 8.1*Trident/7.0*rv:11*IEMobile?11.0; NOKIA; Lumia 635*] +Parent="IEMobile 11.0" + +[Mozilla/5.0*(*Windows Phone 8.1*Trident/7.0*rv:11*IEMobile?11.0; NOKIA; Lumia 930*] +Parent="IEMobile 11.0" + +[Mozilla/5.0*(*Windows Phone 8.1*Trident/7.0*rv:11*IEMobile?11.0; NOKIA; Lumia 520*] +Parent="IEMobile 11.0" + +[Mozilla/5.0*(*Windows Phone 8.1*Trident/7.0*rv:11*IEMobile?11.0; NOKIA; Lumia 630*] +Parent="IEMobile 11.0" + +[Mozilla/5.0*(*Windows Phone 8.1*Trident/7.0*rv:11*IEMobile?11.0; NOKIA; Lumia 925*] +Parent="IEMobile 11.0" + +[Mozilla/5.0*(*Windows Phone 8.1*Trident/7.0*rv:11*IEMobile?11.0; NOKIA; Lumia 920*] +Parent="IEMobile 11.0" + +[Mozilla/5.0*(*Windows Phone 8.1*Trident/7.0*rv:11*IEMobile?11.0; NOKIA; Lumia 730*] +Parent="IEMobile 11.0" + +[Mozilla/5.0*(*Windows Phone 8.1*Trident/7.0*rv:11.0*; IEMobile?11.0; NOKIA; Lumia 920*] +Parent="IEMobile 11.0" + +[Mozilla/5.0*(*Windows Phone 8.1*Trident/7.0*rv:11.0*; IEMobile?11.0; NOKIA; RM-994*] +Parent="IEMobile 11.0" + +[Mozilla/5.0*(*Windows Phone 8.1*Trident/7.0*rv:11.0*; IEMobile?11.0; Microsoft; RM-1089*] +Parent="IEMobile 11.0" + +[Mozilla/5.0*(*Windows Phone 8.1*Trident/7.0*rv:11.0*; IEMobile?11.0; Microsoft; RM-1031*] +Parent="IEMobile 11.0" + +[Mozilla/5.0*(*Windows Phone 8.1*Trident/7.0*rv:11.0*; IEMobile?11.0; Microsoft; RM-1090*] +Parent="IEMobile 11.0" + +[Mozilla/5.0*(*Windows Phone 8.1*Trident/7.0*rv:11.0*; IEMobile?11.0; Microsoft; RM-1113*] +Parent="IEMobile 11.0" + +[Mozilla/5.0*(*Windows Phone 8.1*Trident/7.0*rv:11.0*; IEMobile?11.0; Microsoft; RM-1074*] +Parent="IEMobile 11.0" + +[Mozilla/5.0*(*Windows Phone 8.1*Trident/7.0*rv:11.0*; IEMobile?11.0; Microsoft;Lumia 535 Dual SIM*] +Parent="IEMobile 11.0" + +[Mozilla/5.0*(*Windows Phone 8.1*Trident/7.0*rv:11*IEMobile?11.0; NOKIA; Lumia 928*] +Parent="IEMobile 11.0" + +[Mozilla/5.0*(*Windows Phone 8.1*Trident/7.0*rv:11*IEMobile?11.0; NOKIA; Lumia 625*] +Parent="IEMobile 11.0" + +[Mozilla/5.0*(*Windows Phone 8.1*Trident/7.0*rv:11*IEMobile?11.0; NOKIA; 909*] +Parent="IEMobile 11.0" + +[Mozilla/5.0*(*Windows Phone 8.1*Trident/7.0*rv:11*IEMobile?11.0; NOKIA; Lumia 820*] +Parent="IEMobile 11.0" + +[Mozilla/5.0*(*Windows Phone 8.1*Trident/7.0*rv:11*IEMobile?11.0; NOKIA; Lumia 620*] +Parent="IEMobile 11.0" + +[Mozilla/5.0*(*Windows Phone 8.1*Trident/7.0*rv:11*IEMobile?11.0; NOKIA; Lumia 530*] +Parent="IEMobile 11.0" + +[Mozilla/5.0*(*Windows Phone 8.1*Trident/7.0*rv:11*IEMobile?11.0*] +Parent="IEMobile 11.0" + +[Mozilla/5.0 (Windows NT 6.2; ARM; Trident/7.0*rv:11.0; WPDesktop; NOKIA; Lumia 625*] +Parent="IEMobile 11.0" + +[Mozilla/5.0 (Windows NT 6.2; ARM; Trident/7.0*rv:11.0; WPDesktop; NOKIA; Lumia 1320*] +Parent="IEMobile 11.0" + +[Mozilla/5.0 (Windows NT 6.2; ARM; Trident/7.0*rv:11.0; WPDesktop; NOKIA; Lumia 820*] +Parent="IEMobile 11.0" + +[Mozilla/5.0 (Windows NT 6.2; ARM; Trident/7.0*rv:11.0; WPDesktop; NOKIA; Lumia 920*] +Parent="IEMobile 11.0" + +[Mozilla/5.0 (Windows NT 6.2; ARM; Trident/7.0*rv:11.0; WPDesktop; NOKIA; Lumia 630*] +Parent="IEMobile 11.0" + +[Mozilla/5.0 (Windows NT 6.2; ARM; Trident/7.0*rv:11.0; WPDesktop; NOKIA; Lumia 520*] +Parent="IEMobile 11.0" + +[Mozilla/5.0 (Windows NT 6.2; ARM; Trident/7.0*rv:11.0; WPDesktop; NOKIA; Lumia 1520*] +Parent="IEMobile 11.0" + +[Mozilla/5.0 (Windows NT 6.2; ARM; Trident/7.0*rv:11.0; WPDesktop; NOKIA; Lumia 925*] +Parent="IEMobile 11.0" + +[Mozilla/5.0 (Windows NT 6.2; ARM; Trident/7.0*rv:11.0; WPDesktop; NOKIA; Lumia 635*] +Parent="IEMobile 11.0" + +[Mozilla/5.0 (Windows NT 6.2; ARM; Trident/7.0*rv:11.0; WPDesktop; NOKIA; 909*] +Parent="IEMobile 11.0" + +[Mozilla/5.0 (Windows NT 6.2; ARM; Trident/7.0*rv:11.0; WPDesktop; NOKIA; Lumia 720*] +Parent="IEMobile 11.0" + +[Mozilla/5.0 (Windows NT 6.2; ARM; Trident/7.0*rv:11.0; WPDesktop; *] +Parent="IEMobile 11.0" + +[Mozilla/5.0*(*Windows Phone 8.1*Trident/8.0*rv:11*IEMobile?11.0) like Android *; compatible) like iPhone OS * Mac OS X WebKit/537.36 (KHTML* like Gecko) Chrome*Safari*] +Parent="IEMobile 11.0" + +[Mozilla/5.0*(*Windows Phone 8.1*Trident/8.0*rv:11*IEMobile?11.0; NOKIA; Lumia 635*] +Parent="IEMobile 11.0" + +[Mozilla/5.0*(*Windows Phone 8.1*Trident/8.0*rv:11*IEMobile?11.0; NOKIA; Lumia 930*] +Parent="IEMobile 11.0" + +[Mozilla/5.0*(*Windows Phone 8.1*Trident/8.0*rv:11*IEMobile?11.0; NOKIA; Lumia 520*] +Parent="IEMobile 11.0" + +[Mozilla/5.0*(*Windows Phone 8.1*Trident/8.0*rv:11*IEMobile?11.0; NOKIA; Lumia 630*] +Parent="IEMobile 11.0" + +[Mozilla/5.0*(*Windows Phone 8.1*Trident/8.0*rv:11*IEMobile?11.0; NOKIA; Lumia 925*] +Parent="IEMobile 11.0" + +[Mozilla/5.0*(*Windows Phone 8.1*Trident/8.0*rv:11*IEMobile?11.0; NOKIA; Lumia 920*] +Parent="IEMobile 11.0" + +[Mozilla/5.0*(*Windows Phone 8.1*Trident/8.0*rv:11*IEMobile?11.0; NOKIA; Lumia 730*] +Parent="IEMobile 11.0" + +[Mozilla/5.0*(*Windows Phone 8.1*Trident/8.0*rv:11.0*; IEMobile?11.0; NOKIA; Lumia 920*] +Parent="IEMobile 11.0" + +[Mozilla/5.0*(*Windows Phone 8.1*Trident/8.0*rv:11*IEMobile?11.0; NOKIA; Lumia 928*] +Parent="IEMobile 11.0" + +[Mozilla/5.0*(*Windows Phone 8.1*Trident/8.0*rv:11*IEMobile?11.0; NOKIA; Lumia 625*] +Parent="IEMobile 11.0" + +[Mozilla/5.0*(*Windows Phone 8.1*Trident/8.0*rv:11*IEMobile?11.0; NOKIA; 909*] +Parent="IEMobile 11.0" + +[Mozilla/5.0*(*Windows Phone 8.1*Trident/8.0*rv:11*IEMobile?11.0; NOKIA; Lumia 820*] +Parent="IEMobile 11.0" + +[Mozilla/5.0*(*Windows Phone 8.1*Trident/8.0*rv:11*IEMobile?11.0; NOKIA; Lumia 620*] +Parent="IEMobile 11.0" + +[Mozilla/5.0*(*Windows Phone 8.1*Trident/8.0*rv:11*IEMobile?11.0; NOKIA; Lumia 530*] +Parent="IEMobile 11.0" + +[Mozilla/5.0*(*Windows Phone 8.1*Trident/8.0*rv:11*IEMobile?11.0*] +Parent="IEMobile 11.0" + +[Mozilla/5.0 (Windows NT 6.2; ARM; Trident/8.0*rv:11.0; WPDesktop; NOKIA; Lumia 625*] +Parent="IEMobile 11.0" + +[Mozilla/5.0 (Windows NT 6.2; ARM; Trident/8.0*rv:11.0; WPDesktop; NOKIA; Lumia 1320*] +Parent="IEMobile 11.0" + +[Mozilla/5.0 (Windows NT 6.2; ARM; Trident/8.0*rv:11.0; WPDesktop; NOKIA; Lumia 820*] +Parent="IEMobile 11.0" + +[Mozilla/5.0 (Windows NT 6.2; ARM; Trident/8.0*rv:11.0; WPDesktop; NOKIA; Lumia 920*] +Parent="IEMobile 11.0" + +[Mozilla/5.0 (Windows NT 6.2; ARM; Trident/8.0*rv:11.0; WPDesktop; NOKIA; Lumia 630*] +Parent="IEMobile 11.0" + +[Mozilla/5.0 (Windows NT 6.2; ARM; Trident/8.0*rv:11.0; WPDesktop; NOKIA; Lumia 520*] +Parent="IEMobile 11.0" + +[Mozilla/5.0 (Windows NT 6.2; ARM; Trident/8.0*rv:11.0; WPDesktop; NOKIA; Lumia 1520*] +Parent="IEMobile 11.0" + +[Mozilla/5.0 (Windows NT 6.2; ARM; Trident/8.0*rv:11.0; WPDesktop; NOKIA; Lumia 925*] +Parent="IEMobile 11.0" + +[Mozilla/5.0 (Windows NT 6.2; ARM; Trident/8.0*rv:11.0; WPDesktop; NOKIA; Lumia 635*] +Parent="IEMobile 11.0" + +[Mozilla/5.0 (Windows NT 6.2; ARM; Trident/8.0*rv:11.0; WPDesktop; NOKIA; 909*] +Parent="IEMobile 11.0" + +[Mozilla/5.0 (Windows NT 6.2; ARM; Trident/8.0*rv:11.0; WPDesktop; NOKIA; Lumia 720*] +Parent="IEMobile 11.0" + +[Mozilla/5.0 (Windows NT 6.2; ARM; Trident/8.0*rv:11.0; WPDesktop; *] +Parent="IEMobile 11.0" + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Android Browser 5.1 + +[Android Browser 5.1] +Parent="DefaultProperties" +Comment="Android Browser 5.1" +Browser="Android" +Version="5.1" +Platform="Android" +isMobileDevice="true" +Device_Type="Mobile Phone" + +[Mozilla/5.0 (*Linux*Android* Build/* AppleWebKit/* (KHTML* like Gecko) Version/5.1* Mobile Safari*] +Parent="Android Browser 5.1" + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Android Browser 5.0 + +[Android Browser 5.0] +Parent="DefaultProperties" +Comment="Android Browser 5.0" +Browser="Android" +Version="5.0" +Platform="Android" +isMobileDevice="true" +Device_Type="Mobile Phone" + +['Mozilla/5.0 (*Linux*Android* Build/*AppleWebKit/* (KHTML* like Gecko) Version/5.0* Mobile Safari*] +Parent="Android Browser 5.0" + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Android Browser 4.4 + +[Android Browser 4.4] +Parent="DefaultProperties" +Comment="Android Browser 4.4" +Browser="Android" +Version="4.4" +Platform="Android" +isMobileDevice="true" +Device_Type="Mobile Phone" + +[Mozilla/5.0 (*Linux*Android*)*AppleWebKit/*(*KHTML* like Gecko*)*Version/4.4*Safari*] +Parent="Android Browser 4.4" + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Android Browser 4.3 + +[Android Browser 4.3] +Parent="DefaultProperties" +Comment="Android Browser 4.3" +Browser="Android" +Version="4.3" +Platform="Android" +isMobileDevice="true" +Device_Type="Mobile Phone" + +[Mozilla/5.0 (*Linux*Android*)*AppleWebKit/*(*KHTML* like Gecko*)*Version/4.3*Safari*] +Parent="Android Browser 4.3" + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Android Browser 4.2 + +[Android Browser 4.2] +Parent="DefaultProperties" +Comment="Android Browser 4.2" +Browser="Android" +Version="4.2" +Platform="Android" +isMobileDevice="true" +Device_Type="Mobile Phone" + +[Mozilla/5.0 (*Linux*Android*)*AppleWebKit/*(*KHTML* like Gecko*)*Version/4.2*Safari*] +Parent="Android Browser 4.2" + +[*Mozilla/5.0 (*Linux*Android*) AppleWebKit/* (KHTML* like Gecko) Version/4.2*Safari*] +Parent="Android Browser 4.2" + +[Mozilla/5.0 (*Linux*Android*) AppleWebKit* (KHTML,*like Gecko*) Version/4.2*Safari*] +Parent="Android Browser 4.2" + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Android Browser 4.1 + +[Android Browser 4.1] +Parent="DefaultProperties" +Comment="Android Browser 4.1" +Browser="Android" +Version="4.1" +Platform="Android" +isMobileDevice="true" +Device_Type="Mobile Phone" + +[*Mozilla/5.0 (*Linux*Android*) AppleWebKit/* (KHTML* like Gecko) Version/4.1*Safari*] +Parent="Android Browser 4.1" + +[Mozilla/5.0 (*Linux*Android*)*AppleWebKit/*(*KHTML* like Gecko*)*Version/4.1*Safari*] +Parent="Android Browser 4.1" + +[Mozilla/5.0 (*Linux*Android*) AppleWebKit* (KHTML,*like Gecko*) Version/4.1*Safari*] +Parent="Android Browser 4.1" + +[Mozilla/5.0 (*Linux*) AppleWebKit/* (KHTML* like Gecko) *Version/4.1* Safari/*] +Parent="Android Browser 4.1" + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Android Browser 4.0 + +[Android Browser 4.0] +Parent="DefaultProperties" +Comment="Android Browser 4.0" +Browser="Android" +Version="4.0" +Platform="Android" +isMobileDevice="true" +Device_Type="Mobile Phone" + +[Mozilla/5.0 (Macintosh; *Mac OS X*; HTC/DesireHD/*) AppleWebKit/* (KHTML,*like Gecko*) Version/4.0*Safari*] +Parent="Android Browser 4.0" + +[Mozilla/5.0 (Macintosh; *Mac OS X*; HTC/DesireS/*) AppleWebKit/* (KHTML,*like Gecko*) Version/4.0*Safari*] +Parent="Android Browser 4.0" + +[Mozilla/5.0 (Macintosh; *Mac OS X*; HTC/Sensation/*) AppleWebKit/* (KHTML,*like Gecko*) Version/5.0*Safari*] +Parent="Android Browser 4.0" + +[Mozilla/5.0 (Macintosh; *Mac OS X*; HTC/WildfireS/*) AppleWebKit/* (KHTML,*like Gecko*) Version/4.0*Safari*] +Parent="Android Browser 4.0" + +[Mozilla/5.0 (Macintosh; *Mac OS X*; HTC_DesireHD_A9191; *) AppleWebKit/* (KHTML,*like Gecko*) Version/5.0*Safari*] +Parent="Android Browser 4.0" + +[Mozilla/5.0 (Macintosh; *Mac OS X*; HTC_EVO3D_X515m; *) AppleWebKit/* (KHTML,*like Gecko*) Version/5.0*Safari*] +Parent="Android Browser 4.0" + +[Mozilla/5.0 (Macintosh; *Mac OS X*; HTC_EVO3D_X515m; *) AppleWebKit/* (KHTML,*like Gecko*) Version/5.1*Safari*] +Parent="Android Browser 4.0" + +[Mozilla/5.0 (Macintosh; *Mac OS X*; HTC_Flyer_P510e Build/*) AppleWebKit/* (KHTML,*like Gecko*) Version/4.0*Safari*] +Parent="Android Browser 4.0" +isTablet="true" +Device_Type="Tablet" + +[Mozilla/5.0 (Macintosh; *Mac OS X*; HTC_Flyer_P510e; *) AppleWebKit/* (KHTML,*like Gecko*) Version/5.0*Safari*] +Parent="Android Browser 4.0" +isTablet="true" +Device_Type="Tablet" + +[Mozilla/5.0 (Macintosh; *Mac OS X*; HTC_Flyer_P512; *) AppleWebKit/* (KHTML,*like Gecko*) Version/5.0*Safari*] +Parent="Android Browser 4.0" +isTablet="true" +Device_Type="Tablet" + +[Mozilla/5.0 (Macintosh; *Mac OS X*; HTC_IncredibleS_S710e; *) AppleWebKit/* (KHTML,*like Gecko*) Version/5.0*Safari*] +Parent="Android Browser 4.0" + +[Mozilla/5.0 (Macintosh; *Mac OS X*; HTC_Runnymede; *) AppleWebKit/* (KHTML,*like Gecko*) Version/5.0 Safari*] +Parent="Android Browser 4.0" + +[Mozilla/5.0 (Macintosh; *Mac OS X*; HTC_Sensation; *) AppleWebKit/* (KHTML,*like Gecko*) Version/5.0*Safari*] +Parent="Android Browser 4.0" + +[Mozilla/5.0 (Macintosh; *Mac OS X*; HTC_SensationXL_Beats_X315e; *) AppleWebKit/* (KHTML,*like Gecko*) Version/5.0 Safari*] +Parent="Android Browser 4.0" + +[Mozilla/5.0 (Macintosh; *Mac OS X*; HTC_Sensation_Z710e; *) AppleWebKit/* (KHTML,*like Gecko*) Version/5.0*Safari*] +Parent="Android Browser 4.0" + +[Mozilla/5.2 (Macintosh; *Mac OS X*; HTC_EVO3D_X515m; *) AppleWebKit/* (KHTML,*like Gecko*) Version/5.2*Safari*] +Parent="Android Browser 4.0" + +[Mozilla/5.0 (Linux*; Android Eclair*Build/*) AppleWebKit/* (KHTML,*like Gecko*) Version/*Safari*] +Parent="Android Browser 4.0" + +[Mozilla/5.0(*Linux*Android*) AppleWebKit/*(KHTML,*like Gecko*) Version/4.0*Safari*] +Parent="Android Browser 4.0" + +[Mozilla/5.0 (*Linux*Android*NookColor*)*AppleWebKit/*(*KHTML* like Gecko*)*Version/4.*Safari/*] +Parent="Android Browser 4.0" +isTablet="true" +Device_Type="Tablet" + +[Mozilla/5.0 (*Linux*Android*NOOK*)*AppleWebKit/*(*KHTML* like Gecko*)*Version/4.*Safari/*] +Parent="Android Browser 4.0" +isTablet="true" +Device_Type="Tablet" + +[Mozilla/5.0 (*Linux*Android*A5000 Build/*) AppleWebKit* (KHTML,*like Gecko*) Version/4.0*Safari*] +Parent="Android Browser 4.0" +Device_Type="Digital Camera" + +[Mozilla/5.0 (*Linux*Android* Build/*)*AppleWebKit/*(*KHTML,*like Gecko*)*Version/4.0*Safari*] +Parent="Android Browser 4.0" + +[Mozilla/5.0 (*Linux*Android*)*AppleWebKit/*(*KHTML,*like Gecko*)*Version/4.0*] +Parent="Android Browser 4.0" + +[Mozilla/5.0 (*Linux*Android*) AppleWebKit*(KTHML,like Gecko) Version/4.0*Safari*] +Parent="Android Browser 4.0" +isTablet="true" +Device_Type="Tablet" + +[Mozilla/5.0 (*Linux*Android*) AppleWebKit* (KHMTL,*like Gecko*) Version/4.0*Safari*] +Parent="Android Browser 4.0" + +[Mozilla/5.0(*Linux*Android*)AppleWebKit/*(KHTML,*like Gecko)Version/4.0*Safari*] +Parent="Android Browser 4.0" + +[Mozilla/5.0 (*Linux*Velocitymicro/T408*) AppleWebKit/*(KHTML* like Gecko) *Version/4.0*Safari/*] +Parent="Android Browser 4.0" +isTablet="true" +Device_Type="Tablet" + +[Mozilla/5.0 (*Linux*) AppleWebKit/*(KHTML* like Gecko) *Version/4.0*Safari/*] +Parent="Android Browser 4.0" + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Coast 4.0 + +[Coast 4.0] +Parent="DefaultProperties" +Comment="Coast 4.0" +Browser="Coast" +Version="4.0" +Platform="iOS" +isMobileDevice="true" +Device_Type="Mobile Device" + +[Opera%20Coast/4.0* CFNetwork/*] +Parent="Coast 4.0" + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Coast 3.1 + +[Coast 3.1] +Parent="DefaultProperties" +Comment="Coast 3.1" +Browser="Coast" +Version="3.1" +Platform="iOS" +isMobileDevice="true" +Device_Type="Mobile Device" + +[Opera%20Coast/3.1* CFNetwork/*] +Parent="Coast 3.1" + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Coast 3.0 + +[Coast 3.0] +Parent="DefaultProperties" +Comment="Coast 3.0" +Browser="Coast" +Version="3.0" +Platform="iOS" +isMobileDevice="true" +Device_Type="Mobile Device" + +[Opera%20Coast/3.0* CFNetwork/*] +Parent="Coast 3.0" + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Coast + +[Coast] +Parent="DefaultProperties" +Comment="Coast" +Browser="Coast" +Platform="iOS" +isMobileDevice="true" +Device_Type="Mobile Device" + +[Opera%20Coast/* CFNetwork/*] +Parent="Coast" + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Mobile Safari 9.2 + +[Mobile Safari 9.2] +Parent="DefaultProperties" +Comment="Mobile Safari 9.2" +Browser="Safari" +Version="9.2" +Platform="iOS" +isMobileDevice="true" +Device_Type="Mobile Device" + +[Mozilla/5.0 (iPad*CPU*OS* like Mac OS X*)*AppleWebKit/*(*KHTML* like Gecko*)*Version/9.2*Safari/*] +Parent="Mobile Safari 9.2" +isTablet="true" +Device_Type="Tablet" + +[Mozilla/5.0 (iPhone*CPU*OS* like Mac OS X*)*AppleWebKit/*(*KHTML* like Gecko*)*Version/9.2*Safari/*] +Parent="Mobile Safari 9.2" +Device_Type="Mobile Phone" + +[Mozilla/5.0 (iPod*CPU*OS* like Mac OS X*)*AppleWebKit/*(*KHTML* like Gecko*)*Version/9.2*Safari/*] +Parent="Mobile Safari 9.2" + +[Mozilla/5.0 (*CPU*OS* like Mac OS X*)*AppleWebKit/*(*KHTML* like Gecko*)*Version/9.2*Safari/*] +Parent="Mobile Safari 9.2" + +[Mozilla/6.0 (iPad*CPU*OS* like Mac OS X*)*AppleWebKit/*(*KHTML* like Gecko*)*Version/9.2*Safari/*] +Parent="Mobile Safari 9.2" +isTablet="true" +Device_Type="Tablet" + +[Mozilla/6.0 (iPhone*CPU*OS* like Mac OS X*)*AppleWebKit/*(*KHTML* like Gecko*)*Version/9.2*Safari/*] +Parent="Mobile Safari 9.2" +Device_Type="Mobile Phone" + +[Mozilla/6.0 (iPod*CPU*OS* like Mac OS X*)*AppleWebKit/*(*KHTML* like Gecko*)*Version/9.2*Safari/*] +Parent="Mobile Safari 9.2" + +[Mozilla/6.0 (*CPU*OS* like Mac OS X*)*AppleWebKit/*(*KHTML* like Gecko*)*Version/9.2*Safari/*] +Parent="Mobile Safari 9.2" + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Mobile Safari 9.1 + +[Mobile Safari 9.1] +Parent="DefaultProperties" +Comment="Mobile Safari 9.1" +Browser="Safari" +Version="9.1" +Platform="iOS" +isMobileDevice="true" +Device_Type="Mobile Device" + +[Mozilla/5.0 (iPad*CPU*OS* like Mac OS X*)*AppleWebKit/*(*KHTML* like Gecko*)*Version/9.1*Safari/*] +Parent="Mobile Safari 9.1" +isTablet="true" +Device_Type="Tablet" + +[Mozilla/5.0 (iPhone*CPU*OS* like Mac OS X*)*AppleWebKit/*(*KHTML* like Gecko*)*Version/9.1*Safari/*] +Parent="Mobile Safari 9.1" +Device_Type="Mobile Phone" + +[Mozilla/5.0 (iPod*CPU*OS* like Mac OS X*)*AppleWebKit/*(*KHTML* like Gecko*)*Version/9.1*Safari/*] +Parent="Mobile Safari 9.1" + +[Mozilla/5.0 (*CPU*OS* like Mac OS X*)*AppleWebKit/*(*KHTML* like Gecko*)*Version/9.1*Safari/*] +Parent="Mobile Safari 9.1" + +[Mozilla/6.0 (iPad*CPU*OS* like Mac OS X*)*AppleWebKit/*(*KHTML* like Gecko*)*Version/9.1*Safari/*] +Parent="Mobile Safari 9.1" +isTablet="true" +Device_Type="Tablet" + +[Mozilla/6.0 (iPhone*CPU*OS* like Mac OS X*)*AppleWebKit/*(*KHTML* like Gecko*)*Version/9.1*Safari/*] +Parent="Mobile Safari 9.1" +Device_Type="Mobile Phone" + +[Mozilla/6.0 (iPod*CPU*OS* like Mac OS X*)*AppleWebKit/*(*KHTML* like Gecko*)*Version/9.1*Safari/*] +Parent="Mobile Safari 9.1" + +[Mozilla/6.0 (*CPU*OS* like Mac OS X*)*AppleWebKit/*(*KHTML* like Gecko*)*Version/9.1*Safari/*] +Parent="Mobile Safari 9.1" + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Mobile Safari 9.0 + +[Mobile Safari 9.0] +Parent="DefaultProperties" +Comment="Mobile Safari 9.0" +Browser="Safari" +Version="9.0" +Platform="iOS" +isMobileDevice="true" +Device_Type="Mobile Device" + +[Mozilla/5.0 (iPad*CPU*OS* like Mac OS X*)*AppleWebKit/*(*KHTML* like Gecko*)*Version/9.0*Safari/*] +Parent="Mobile Safari 9.0" +isTablet="true" +Device_Type="Tablet" + +[Mozilla/5.0 (iPhone*CPU*OS* like Mac OS X*)*AppleWebKit/*(*KHTML* like Gecko*)*Version/9.0*Safari/*] +Parent="Mobile Safari 9.0" +Device_Type="Mobile Phone" + +[Mozilla/5.0 (iPod*CPU*OS* like Mac OS X*)*AppleWebKit/*(*KHTML* like Gecko*)*Version/9.0*Safari/*] +Parent="Mobile Safari 9.0" + +[Mozilla/5.0 (*CPU*OS* like Mac OS X*)*AppleWebKit/*(*KHTML* like Gecko*)*Version/9.0*Safari/*] +Parent="Mobile Safari 9.0" + +[Mozilla/6.0 (iPad*CPU*OS* like Mac OS X*)*AppleWebKit/*(*KHTML* like Gecko*)*Version/9.0*Safari/*] +Parent="Mobile Safari 9.0" +isTablet="true" +Device_Type="Tablet" + +[Mozilla/6.0 (iPhone*CPU*OS* like Mac OS X*)*AppleWebKit/*(*KHTML* like Gecko*)*Version/9.0*Safari/*] +Parent="Mobile Safari 9.0" +Device_Type="Mobile Phone" + +[Mozilla/6.0 (iPod*CPU*OS* like Mac OS X*)*AppleWebKit/*(*KHTML* like Gecko*)*Version/9.0*Safari/*] +Parent="Mobile Safari 9.0" + +[Mozilla/6.0 (*CPU*OS* like Mac OS X*)*AppleWebKit/*(*KHTML* like Gecko*)*Version/9.0*Safari/*] +Parent="Mobile Safari 9.0" + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Mobile Safari 8.1 + +[Mobile Safari 8.1] +Parent="DefaultProperties" +Comment="Mobile Safari 8.1" +Browser="Safari" +Version="8.1" +Platform="iOS" +isMobileDevice="true" +Device_Type="Mobile Device" + +[Mozilla/5.0 (iPad*CPU*OS* like Mac OS X*)*AppleWebKit/*(*KHTML* like Gecko*)*Version/8.1*Safari/*] +Parent="Mobile Safari 8.1" +isTablet="true" +Device_Type="Tablet" + +[Mozilla/5.0 (iPhone*CPU*OS* like Mac OS X*)*AppleWebKit/*(*KHTML* like Gecko*)*Version/8.1*Safari/*] +Parent="Mobile Safari 8.1" +Device_Type="Mobile Phone" + +[Mozilla/5.0 (iPod*CPU*OS* like Mac OS X*)*AppleWebKit/*(*KHTML* like Gecko*)*Version/8.1*Safari/*] +Parent="Mobile Safari 8.1" + +[Mozilla/5.0 (*CPU*OS* like Mac OS X*)*AppleWebKit/*(*KHTML* like Gecko*)*Version/8.1*Safari/*] +Parent="Mobile Safari 8.1" + +[Mozilla/6.0 (iPad*CPU*OS* like Mac OS X*)*AppleWebKit/*(*KHTML* like Gecko*)*Version/8.1*Safari/*] +Parent="Mobile Safari 8.1" +isTablet="true" +Device_Type="Tablet" + +[Mozilla/6.0 (iPhone*CPU*OS* like Mac OS X*)*AppleWebKit/*(*KHTML* like Gecko*)*Version/8.1*Safari/*] +Parent="Mobile Safari 8.1" +Device_Type="Mobile Phone" + +[Mozilla/6.0 (iPod*CPU*OS* like Mac OS X*)*AppleWebKit/*(*KHTML* like Gecko*)*Version/8.1*Safari/*] +Parent="Mobile Safari 8.1" + +[Mozilla/6.0 (*CPU*OS* like Mac OS X*)*AppleWebKit/*(*KHTML* like Gecko*)*Version/8.1*Safari/*] +Parent="Mobile Safari 8.1" + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Mobile Safari 8.0 + +[Mobile Safari 8.0] +Parent="DefaultProperties" +Comment="Mobile Safari 8.0" +Browser="Safari" +Version="8.0" +Platform="iOS" +isMobileDevice="true" +Device_Type="Mobile Device" + +[Mozilla/5.0 (iPad*CPU*OS* like Mac OS X*)*AppleWebKit/*(*KHTML* like Gecko*)*Version/8.0*Safari/*] +Parent="Mobile Safari 8.0" +isTablet="true" +Device_Type="Tablet" + +[Mozilla/5.0 (iPhone*CPU*OS* like Mac OS X*)*AppleWebKit/*(*KHTML* like Gecko*)*Version/8.0*Safari/*] +Parent="Mobile Safari 8.0" +Device_Type="Mobile Phone" + +[Mozilla/5.0 (iPod*CPU*OS* like Mac OS X*)*AppleWebKit/*(*KHTML* like Gecko*)*Version/8.0*Safari/*] +Parent="Mobile Safari 8.0" + +[Mozilla/5.0 (*CPU*OS* like Mac OS X*)*AppleWebKit/*(*KHTML* like Gecko*)*Version/8.0*Safari/*] +Parent="Mobile Safari 8.0" + +[Mozilla/6.0 (iPad*CPU*OS* like Mac OS X*)*AppleWebKit/*(*KHTML* like Gecko*)*Version/8.0*Safari/*] +Parent="Mobile Safari 8.0" +isTablet="true" +Device_Type="Tablet" + +[Mozilla/6.0 (iPhone*CPU*OS* like Mac OS X*)*AppleWebKit/*(*KHTML* like Gecko*)*Version/8.0*Safari/*] +Parent="Mobile Safari 8.0" +Device_Type="Mobile Phone" + +[Mozilla/6.0 (iPod*CPU*OS* like Mac OS X*)*AppleWebKit/*(*KHTML* like Gecko*)*Version/8.0*Safari/*] +Parent="Mobile Safari 8.0" + +[Mozilla/6.0 (*CPU*OS* like Mac OS X*)*AppleWebKit/*(*KHTML* like Gecko*)*Version/8.0*Safari/*] +Parent="Mobile Safari 8.0" + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Mobile Safari 7.1 + +[Mobile Safari 7.1] +Parent="DefaultProperties" +Comment="Mobile Safari 7.1" +Browser="Safari" +Version="7.1" +Platform="iOS" +isMobileDevice="true" +Device_Type="Mobile Device" + +[Mozilla/5.0 (iPad*CPU*OS* like Mac OS X*)*AppleWebKit/*(*KHTML* like Gecko*)*Version/7.1*Safari/*] +Parent="Mobile Safari 7.1" +isTablet="true" +Device_Type="Tablet" + +[Mozilla/5.0 (iPhone*CPU*OS* like Mac OS X*)*AppleWebKit/*(*KHTML* like Gecko*)*Version/7.1*Safari/*] +Parent="Mobile Safari 7.1" +Device_Type="Mobile Phone" + +[Mozilla/5.0 (iPod*CPU*OS* like Mac OS X*)*AppleWebKit/*(*KHTML* like Gecko*)*Version/7.1*Safari/*] +Parent="Mobile Safari 7.1" + +[Mozilla/5.0 (*CPU*OS* like Mac OS X*)*AppleWebKit/*(*KHTML* like Gecko*)*Version/7.1*Safari/*] +Parent="Mobile Safari 7.1" + +[Mozilla/6.0 (iPad*CPU*OS* like Mac OS X*)*AppleWebKit/*(*KHTML* like Gecko*)*Version/7.1*Safari/*] +Parent="Mobile Safari 7.1" +isTablet="true" +Device_Type="Tablet" + +[Mozilla/6.0 (iPhone*CPU*OS* like Mac OS X*)*AppleWebKit/*(*KHTML* like Gecko*)*Version/7.1*Safari/*] +Parent="Mobile Safari 7.1" +Device_Type="Mobile Phone" + +[Mozilla/6.0 (iPod*CPU*OS* like Mac OS X*)*AppleWebKit/*(*KHTML* like Gecko*)*Version/7.1*Safari/*] +Parent="Mobile Safari 7.1" + +[Mozilla/6.0 (*CPU*OS* like Mac OS X*)*AppleWebKit/*(*KHTML* like Gecko*)*Version/7.1*Safari/*] +Parent="Mobile Safari 7.1" + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Mobile Safari 7.0 + +[Mobile Safari 7.0] +Parent="DefaultProperties" +Comment="Mobile Safari 7.0" +Browser="Safari" +Version="7.0" +Platform="iOS" +isMobileDevice="true" +Device_Type="Mobile Device" + +[Mozilla/5.0 (iPad*CPU like Mac OS X*)*AppleWebKit/*(*KHTML* like Gecko*)*Version/7.0*Safari/*] +Parent="Mobile Safari 7.0" +isTablet="true" +Device_Type="Tablet" + +[Mozilla/5.0 (iPad*CPU*OS* like Mac OS X*)*AppleWebKit/*(*KHTML* like Gecko*)*Version/7.0*Safari/*] +Parent="Mobile Safari 7.0" +isTablet="true" +Device_Type="Tablet" + +[Mozilla/5.0 (iPhone*CPU like Mac OS X*)*AppleWebKit/*(*KHTML* like Gecko*)*Version/7.0*Safari/*] +Parent="Mobile Safari 7.0" +Device_Type="Mobile Phone" + +[Mozilla/5.0 (iPhone*CPU*OS* like Mac OS X*)*AppleWebKit/*(*KHTML* like Gecko*)*Version/7.0*Safari/*] +Parent="Mobile Safari 7.0" +Device_Type="Mobile Phone" + +[Mozilla/5.0 (iPod*CPU like Mac OS X*)*AppleWebKit/*(*KHTML* like Gecko*)*Version/7.0*Safari/*] +Parent="Mobile Safari 7.0" + +[Mozilla/5.0 (iPod*CPU*OS* like Mac OS X*)*AppleWebKit/*(*KHTML* like Gecko*)*Version/7.0*Safari/*] +Parent="Mobile Safari 7.0" + +[Mozilla/5.0 (*CPU like Mac OS X*)*AppleWebKit/*(*KHTML* like Gecko*)*Version/7.0*Safari/*] +Parent="Mobile Safari 7.0" + +[Mozilla/5.0 (*CPU*OS* like Mac OS X*)*AppleWebKit/*(*KHTML* like Gecko*)*Version/7.0*Safari/*] +Parent="Mobile Safari 7.0" + +[MobileSafari/95??.* CFNetwork/*] +Parent="Mobile Safari 7.0" + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Mobile Safari 6.1 + +[Mobile Safari 6.1] +Parent="DefaultProperties" +Comment="Mobile Safari 6.1" +Browser="Safari" +Version="6.1" +Platform="iOS" +isMobileDevice="true" +Device_Type="Mobile Device" + +[Mozilla/5.0 (iPad*CPU*OS* like Mac OS X*)*AppleWebKit/*(*KHTML* like Gecko*)*Version/6.1*Safari/*] +Parent="Mobile Safari 6.1" +isTablet="true" +Device_Type="Tablet" + +[Mozilla/5.0 (iPhone*CPU*OS* like Mac OS X*)*AppleWebKit/*(*KHTML* like Gecko*)*Version/6.1*Safari/*] +Parent="Mobile Safari 6.1" +Device_Type="Mobile Phone" + +[Mozilla/5.0 (iPod*CPU*OS* like Mac OS X*)*AppleWebKit/*(*KHTML* like Gecko*)*Version/6.1*Safari/*] +Parent="Mobile Safari 6.1" + +[Mozilla/5.0 (*CPU*OS* like Mac OS X*)*AppleWebKit/*(*KHTML* like Gecko*)*Version/6.1*Safari/*] +Parent="Mobile Safari 6.1" + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Mobile Safari 6.0 + +[Mobile Safari 6.0] +Parent="DefaultProperties" +Comment="Mobile Safari 6.0" +Browser="Safari" +Version="6.0" +Platform="iOS" +isMobileDevice="true" +Device_Type="Mobile Device" + +[Mozilla/5.0 (iPad*CPU*OS* like Mac OS X*)*AppleWebKit/*(*KHTML* like Gecko*)*Version/6.0*Safari/*] +Parent="Mobile Safari 6.0" +isTablet="true" +Device_Type="Tablet" + +[Mozilla/5.0 (iPhone*CPU*OS* like Mac OS X*)*AppleWebKit/*(*KHTML* like Gecko*)*Version/6.0*Safari/*] +Parent="Mobile Safari 6.0" +Device_Type="Mobile Phone" + +[Mozilla/5.0 (iPod*CPU*OS* like Mac OS X*)*AppleWebKit/*(*KHTML* like Gecko*)*Version/6.0*Safari/*] +Parent="Mobile Safari 6.0" + +[Mozilla/5.0 (*CPU*OS* like Mac OS X*)*AppleWebKit/*(*KHTML* like Gecko*)*Version/6.0*Safari/*] +Parent="Mobile Safari 6.0" + +[MobileSafari/85??.* CFNetwork/*] +Parent="Mobile Safari 6.0" + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Mobile Safari Generic + +[Mobile Safari Generic] +Parent="DefaultProperties" +Comment="Mobile Safari Generic" +Browser="Safari" +Platform="iOS" +isMobileDevice="true" +Device_Type="Mobile Device" + +[Mozilla/5.0 (iPad*CPU*OS* like Mac OS X*)*AppleWebKit/*(*KHTML* like Gecko*)*Version/*Safari/*] +Parent="Mobile Safari Generic" +isTablet="true" +Device_Type="Tablet" + +[Mozilla/5.0 (iPhone*CPU*OS* like Mac OS X*)*AppleWebKit/*(*KHTML* like Gecko*)*Version/*Safari/*] +Parent="Mobile Safari Generic" +Device_Type="Mobile Phone" + +[Mozilla/5.0 (iPod*CPU*OS* like Mac OS X*)*AppleWebKit/*(*KHTML* like Gecko*)*Version/*Safari/*] +Parent="Mobile Safari Generic" + +[Mozilla/5.0 (*CPU*OS* like Mac OS X*)*AppleWebKit/*(*KHTML* like Gecko*)*Version/*Safari/*] +Parent="Mobile Safari Generic" + +[Mozilla/6.0 (iPad*CPU*OS* like Mac OS X*)*AppleWebKit/*(*KHTML* like Gecko*)*Version/*Safari/*] +Parent="Mobile Safari Generic" +isTablet="true" +Device_Type="Tablet" + +[Mozilla/6.0 (*CPU*OS* like Mac OS X*)*AppleWebKit/*(*KHTML* like Gecko*)*Version/*Safari/*] +Parent="Mobile Safari Generic" + +[MobileSafari/* CFNetwork/*] +Parent="Mobile Safari Generic" + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Mobile Safari UIWebView + +[Mobile Safari UIWebView] +Parent="DefaultProperties" +Comment="Mobile Safari UIWebView" +Browser="Mobile Safari UIWebView" +Platform="iOS" +isMobileDevice="true" +Device_Type="Mobile Device" + +[Mozilla/5.0 (iPad*CPU*OS* like Mac OS X*)*AppleWebKit/*(*KHTML* like Gecko*)*Mobile*] +Parent="Mobile Safari UIWebView" +isTablet="true" +Device_Type="Tablet" + +[Mozilla/5.0*(iPhone*CPU*OS* like Mac OS X*)*AppleWebKit/*(*KHTML* like Gecko*)*Mobile*] +Parent="Mobile Safari UIWebView" +Device_Type="Mobile Phone" + +[Mozilla/5.0*(iPod*CPU*OS* like Mac OS X*)*AppleWebKit/*(*KHTML* like Gecko*)*Mobile*] +Parent="Mobile Safari UIWebView" + +[Mozilla/5.0*(*CPU*OS* like Mac OS X*)*AppleWebKit/*(*KHTML* like Gecko*)*Mobile*] +Parent="Mobile Safari UIWebView" + +[*iPad*] +Parent="Mobile Safari UIWebView" +isTablet="true" +Device_Type="Tablet" + +[*iPhone*] +Parent="Mobile Safari UIWebView" +Device_Type="Mobile Phone" + +[*iPod*] +Parent="Mobile Safari UIWebView" + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Safari 10.0 + +[Safari 10.0] +Parent="DefaultProperties" +Comment="Safari 10.0" +Browser="Safari" +Version="10.0" +Device_Type="Desktop" + +[Mozilla/5.0 (*Mac OS X*) AppleWebKit/* (KHTML* like Gecko) *Version/10.0* Safari/*] +Parent="Safari 10.0" +Platform="MacOSX" + +[Mozilla/5.0 (*Mac OS X*) AppleWebKit/* (KHTML* like Gecko) *Version/10.0*] +Parent="Safari 10.0" +Platform="MacOSX" + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Safari 9.1 + +[Safari 9.1] +Parent="DefaultProperties" +Comment="Safari 9.1" +Browser="Safari" +Version="9.1" +Device_Type="Desktop" + +[Mozilla/5.0 (*Linux*) AppleWebKit/* (KHTML* like Gecko) *Version/9.1* Safari/*] +Parent="Safari 9.1" +Platform="Linux" + +[Mozilla/5.0 (*Mac OS X*) AppleWebKit/* (KHTML* like Gecko) *Version/9.1* Safari/*] +Parent="Safari 9.1" +Platform="MacOSX" + +[Mozilla/5.0 (*Mac OS X*) AppleWebKit/* (KHTML* like Gecko) *Version/9.1*] +Parent="Safari 9.1" +Platform="MacOSX" + +[Safari 9.1 for SymbianOS] +Parent="DefaultProperties" +Comment="Safari 9.1" +Browser="Safari" +Version="9.1" +isMobileDevice="true" +Device_Type="Mobile Device" + +[Safari 9.0] +Parent="DefaultProperties" +Comment="Safari 9.0" +Browser="Safari" +Version="9.0" +Device_Type="Desktop" + +[Mozilla/5.0 (*Linux*) AppleWebKit/* (KHTML* like Gecko) *Version/9.0* Safari/*] +Parent="Safari 9.0" +Platform="Linux" + +[Mozilla/5.0 (*Mac OS X*) AppleWebKit/* (KHTML* like Gecko) *Version/9.0* Safari/*] +Parent="Safari 9.0" +Platform="MacOSX" + +[Mozilla/5.0 (*Mac OS X*) AppleWebKit/* (KHTML* like Gecko) *Version/9.0*] +Parent="Safari 9.0" +Platform="MacOSX" + +[Safari 9.0 for SymbianOS] +Parent="DefaultProperties" +Comment="Safari 9.0" +Browser="Safari" +Version="9.0" +isMobileDevice="true" +Device_Type="Mobile Device" + +[Safari 8.1] +Parent="DefaultProperties" +Comment="Safari 8.1" +Browser="Safari" +Version="8.1" +Device_Type="Desktop" + +[Mozilla/5.0 (*Linux*) AppleWebKit/* (KHTML* like Gecko) *Version/8.1* Safari/*] +Parent="Safari 8.1" +Platform="Linux" + +[Mozilla/5.0 (*Mac OS X*) AppleWebKit/* (KHTML* like Gecko) *Version/8.1* Safari/*] +Parent="Safari 8.1" +Platform="MacOSX" + +[Mozilla/5.0 (*Mac OS X*) AppleWebKit/* (KHTML* like Gecko) *Version/8.1*] +Parent="Safari 8.1" +Platform="MacOSX" + +[Safari 8.1 for SymbianOS] +Parent="DefaultProperties" +Comment="Safari 8.1" +Browser="Safari" +Version="8.1" +isMobileDevice="true" +Device_Type="Mobile Device" + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Safari 8.0 + +[Safari 8.0] +Parent="DefaultProperties" +Comment="Safari 8.0" +Browser="Safari" +Version="8.0" +Device_Type="Desktop" + +[Mozilla/5.0 (*Linux*) AppleWebKit/* (KHTML* like Gecko) *Version/8.0* Safari/*] +Parent="Safari 8.0" +Platform="Linux" + +[Mozilla/5.0 (*Mac OS X*) AppleWebKit/* (KHTML* like Gecko) *Version/8.0* Safari/*] +Parent="Safari 8.0" +Platform="MacOSX" + +[Mozilla/5.0 (*Mac OS X*) AppleWebKit/* (KHTML* like Gecko) *Version/8.0*] +Parent="Safari 8.0" +Platform="MacOSX" + +[Safari 8.0 for Darwin] +Parent="DefaultProperties" +Comment="Safari 8.0" +Browser="Safari" +Version="8.0" +Platform="MacOSX" +Device_Type="Desktop" + +[Safari/10???.* CFNetwork/*] +Parent="Safari 8.0 for Darwin" + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Safari 7.1 + +[Safari 7.1] +Parent="DefaultProperties" +Comment="Safari 7.1" +Browser="Safari" +Version="7.1" +Device_Type="Desktop" + +[Mozilla/5.0 (*Linux*) AppleWebKit/* (KHTML* like Gecko) *Version/7.1* Safari/*] +Parent="Safari 7.1" +Platform="Linux" + +[Mozilla/5.0 (*Mac OS X*) AppleWebKit/* (KHTML* like Gecko) *Version/7.1* Safari/*] +Parent="Safari 7.1" +Platform="MacOSX" + +[Mozilla/5.0 (*Mac OS X*) AppleWebKit/* (KHTML* like Gecko) *Version/7.1*] +Parent="Safari 7.1" +Platform="MacOSX" + +[Safari 7.1 for SymbianOS] +Parent="DefaultProperties" +Comment="Safari 7.1" +Browser="Safari" +Version="7.1" +isMobileDevice="true" +Device_Type="Mobile Device" + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Safari 7.0 + +[Safari 7.0] +Parent="DefaultProperties" +Comment="Safari 7.0" +Browser="Safari" +Version="7.0" +Device_Type="Desktop" + +[Mozilla/5.0 (*Linux*) AppleWebKit/* (KHTML* like Gecko) *Version/7.0* Safari/*] +Parent="Safari 7.0" +Platform="Linux" + +[Mozilla/5.0 (*Mac OS X*) AppleWebKit/* (KHTML* like Gecko) *Version/7.0* Safari/*] +Parent="Safari 7.0" +Platform="MacOSX" + +[Mozilla/5.0 (*Mac OS X*) AppleWebKit/* (KHTML* like Gecko) *Version/7.0*] +Parent="Safari 7.0" +Platform="MacOSX" + +[Safari 7.0 for SymbianOS] +Parent="DefaultProperties" +Comment="Safari 7.0" +Browser="Safari" +Version="7.0" +isMobileDevice="true" +Device_Type="Mobile Device" + +[Safari 7.0 for Darwin] +Parent="DefaultProperties" +Comment="Safari 7.0" +Browser="Safari" +Version="7.0" +Platform="MacOSX" +Device_Type="Desktop" + +[Safari/95??.* CFNetwork/*] +Parent="Safari 7.0 for Darwin" + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Safari 6.2 + +[Safari 6.2] +Parent="DefaultProperties" +Comment="Safari 6.2" +Browser="Safari" +Version="6.2" +Device_Type="Desktop" + +[Mozilla/5.0 (*Linux*) AppleWebKit/* (KHTML* like Gecko) *Version/6.2* Safari/*] +Parent="Safari 6.2" +Platform="Linux" + +[Mozilla/5.0 (*Mac OS X*) AppleWebKit/* (KHTML* like Gecko) *Version/6.2* Safari/*] +Parent="Safari 6.2" +Platform="MacOSX" + +[Mozilla/5.0 (*Mac OS X*) AppleWebKit/* (KHTML* like Gecko) *Version/6.2*] +Parent="Safari 6.2" +Platform="MacOSX" + +[Safari 6.2 for SymbianOS] +Parent="DefaultProperties" +Comment="Safari 6.2" +Browser="Safari" +Version="6.2" +isMobileDevice="true" +Device_Type="Mobile Device" + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Safari 6.1 + +[Safari 6.1] +Parent="DefaultProperties" +Comment="Safari 6.1" +Browser="Safari" +Version="6.1" +Device_Type="Desktop" + +[Mozilla/5.0 (*Linux*) AppleWebKit/* (KHTML* like Gecko) *Version/6.1* Safari/*] +Parent="Safari 6.1" +Platform="Linux" + +[Mozilla/5.0 (*Mac OS X*) AppleWebKit/* (KHTML* like Gecko) *Version/6.1* Safari/*] +Parent="Safari 6.1" +Platform="MacOSX" + +[Mozilla/5.0 (*Mac OS X*) AppleWebKit/* (KHTML* like Gecko) *Version/6.1*] +Parent="Safari 6.1" +Platform="MacOSX" + +[Safari 6.1 for SymbianOS] +Parent="DefaultProperties" +Comment="Safari 6.1" +Browser="Safari" +Version="6.1" +isMobileDevice="true" +Device_Type="Mobile Device" + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Safari 6.0 + +[Safari 6.0] +Parent="DefaultProperties" +Comment="Safari 6.0" +Browser="Safari" +Version="6.0" +Device_Type="Desktop" + +[Mozilla/5.0 (*Linux*) AppleWebKit/* (KHTML* like Gecko) *Version/6.0* Safari/*] +Parent="Safari 6.0" +Platform="Linux" + +[Mozilla/5.0 (*Mac OS X*) AppleWebKit/* (KHTML* like Gecko) *Version/6.0* Safari/*] +Parent="Safari 6.0" +Platform="MacOSX" + +[Mozilla/5.0 (*Mac OS X*) AppleWebKit/* (KHTML* like Gecko) *Version/6.0*] +Parent="Safari 6.0" +Platform="MacOSX" + +[Safari 6.0 for SymbianOS] +Parent="DefaultProperties" +Comment="Safari 6.0" +Browser="Safari" +Version="6.0" +isMobileDevice="true" +Device_Type="Mobile Device" + +[Safari 6.0 for Darwin] +Parent="DefaultProperties" +Comment="Safari 6.0" +Browser="Safari" +Version="6.0" +Platform="MacOSX" +Device_Type="Desktop" + +[Safari/85??.* CFNetwork/*] +Parent="Safari 6.0 for Darwin" + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Safari Generic + +[Safari Generic] +Parent="DefaultProperties" +Comment="Safari Generic" +Browser="Safari" +Device_Type="Desktop" + +[Mozilla/5.0 (*Linux*) AppleWebKit/* (KHTML* like Gecko) *Version/* Safari/*] +Parent="Safari Generic" +Platform="Linux" + +[Mozilla/5.0 (*Windows NT 6.3*) AppleWebKit/* (KHTML* like Gecko) *Version/* Safari/*] +Parent="Safari Generic" +Platform="Win8.1" + +[Mozilla/5.0 (*Windows NT 6.2*) AppleWebKit/* (KHTML* like Gecko) *Version/* Safari/*] +Parent="Safari Generic" +Platform="Win8" + +[Mozilla/5.0 (*Windows NT 6.1*) AppleWebKit/* (KHTML* like Gecko) *Version/* Safari/*] +Parent="Safari Generic" +Platform="Win7" + +[Mozilla/5.0 (*Windows NT 6.0*) AppleWebKit/* (KHTML* like Gecko) *Version/* Safari/*] +Parent="Safari Generic" +Platform="WinVista" + +[Mozilla/5.0 (*Mac OS X*) AppleWebKit/* (KHTML* like Gecko) *Version/* Safari/*] +Parent="Safari Generic" +Platform="MacOSX" + +[Mozilla/5.0 (*Mac OS X*) AppleWebKit/* (KHTML* like Gecko)*Safari*] +Parent="Safari Generic" +Platform="MacOSX" + +[Mozilla/5.0 (*Mac OS X*) AppleWebKit/* (KHTML* like Gecko) *Version/*] +Parent="Safari Generic" +Platform="MacOSX" + +[Safari Generic for SymbianOS] +Parent="DefaultProperties" +Comment="Safari Generic" +Browser="Safari" +isMobileDevice="true" +Device_Type="Mobile Device" + +[Safari Generic for Darwin] +Parent="DefaultProperties" +Comment="Safari Generic" +Browser="Safari" +Platform="MacOSX" +Device_Type="Desktop" + +[Safari/* CFNetwork/*] +Parent="Safari Generic for Darwin" + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; IE 11.0 + +[IE 11.0 for Win RT] +Parent="DefaultProperties" +Comment="IE 11.0" +Browser="IE" +Version="11.0" +isMobileDevice="true" +isTablet="true" +Device_Type="Tablet" + +[IE 11.0 for Tablet] +Parent="DefaultProperties" +Comment="IE 11.0" +Browser="IE" +Version="11.0" +isMobileDevice="true" +isTablet="true" +Device_Type="Tablet" + +[Mozilla/5.0 (*Windows NT 6.2*Trident/7.0*Touch*rv:11.0*)*] +Parent="IE 11.0 for Tablet" +Platform="Win8" + +[Mozilla/5.0 (*Windows NT 6.3*Trident/7.0*Touch*rv:11.0*)*] +Parent="IE 11.0 for Tablet" +Platform="Win8.1" + +[Mozilla/5.0 (*Windows NT 6.4*Trident/7.0*Touch*rv:11.0*)*] +Parent="IE 11.0 for Tablet" +Platform="Win10" + +[Mozilla/5.0 (*Windows NT 10.0*Trident/7.0*Touch*rv:11.0*)*] +Parent="IE 11.0 for Tablet" +Platform="Win10" + +[Mozilla/5.0 (*Windows*Trident/7.0*Touch*rv:11.0*)*] +Parent="IE 11.0 for Tablet" +Platform="Win32" + +[Mozilla/4.0 (compatible; MSIE 7.0; *Windows NT 6.2*Trident/7.0*Touch*)*] +Parent="IE 11.0 for Tablet" +Comment="IE 11.0 in IE 7.0 Compatibility Mode" +Platform="Win8" + +[Mozilla/4.0 (compatible; MSIE 7.0; *Windows NT 6.3*Trident/7.0*Touch*)*] +Parent="IE 11.0 for Tablet" +Comment="IE 11.0 in IE 7.0 Compatibility Mode" +Platform="Win8.1" + +[Mozilla/4.0 (compatible; MSIE 7.0; *Windows NT 6.4*Trident/7.0*Touch*)*] +Parent="IE 11.0 for Tablet" +Comment="IE 11.0 in IE 7.0 Compatibility Mode" +Platform="Win10" + +[Mozilla/4.0 (compatible; MSIE 7.0; *Windows NT 10.0*Trident/7.0*Touch*)*] +Parent="IE 11.0 for Tablet" +Comment="IE 11.0 in IE 7.0 Compatibility Mode" +Platform="Win10" + +[Mozilla/4.0 (compatible; MSIE 7.0; *Windows*Trident/7.0*Touch*)*] +Parent="IE 11.0 for Tablet" +Comment="IE 11.0 in IE 7.0 Compatibility Mode" +Platform="Win32" + +[Mozilla/5.0 (compatible; MSIE 7.0; *Windows NT 6.2*Trident/7.0*Touch*)*] +Parent="IE 11.0 for Tablet" +Comment="IE 11.0 in IE 7.0 Compatibility Mode" +Platform="Win8" + +[Mozilla/5.0 (compatible; MSIE 7.0; *Windows NT 6.3*Trident/7.0*Touch*)*] +Parent="IE 11.0 for Tablet" +Comment="IE 11.0 in IE 7.0 Compatibility Mode" +Platform="Win8.1" + +[Mozilla/5.0 (compatible; MSIE 7.0; *Windows NT 6.4*Trident/7.0*Touch*)*] +Parent="IE 11.0 for Tablet" +Comment="IE 11.0 in IE 7.0 Compatibility Mode" +Platform="Win10" + +[Mozilla/5.0 (compatible; MSIE 7.0; *Windows NT 10.0*Trident/7.0*Touch*)*] +Parent="IE 11.0 for Tablet" +Comment="IE 11.0 in IE 7.0 Compatibility Mode" +Platform="Win10" + +[Mozilla/5.0 (compatible; MSIE 7.0; *Windows*Trident/7.0*Touch*)*] +Parent="IE 11.0 for Tablet" +Comment="IE 11.0 in IE 7.0 Compatibility Mode" +Platform="Win32" + +[Mozilla/4.0 (compatible; MSIE 8.0; *Windows NT 6.2*Trident/7.0*Touch*)*] +Parent="IE 11.0 for Tablet" +Comment="IE 11.0 in IE 8.0 Compatibility Mode" +Platform="Win8" + +[Mozilla/4.0 (compatible; MSIE 8.0; *Windows NT 6.3*Trident/7.0*Touch*)*] +Parent="IE 11.0 for Tablet" +Comment="IE 11.0 in IE 8.0 Compatibility Mode" +Platform="Win8.1" + +[Mozilla/4.0 (compatible; MSIE 8.0; *Windows NT 6.4*Trident/7.0*Touch*)*] +Parent="IE 11.0 for Tablet" +Comment="IE 11.0 in IE 8.0 Compatibility Mode" +Platform="Win10" + +[Mozilla/4.0 (compatible; MSIE 8.0; *Windows NT 10.0*Trident/7.0*Touch*)*] +Parent="IE 11.0 for Tablet" +Comment="IE 11.0 in IE 8.0 Compatibility Mode" +Platform="Win10" + +[Mozilla/4.0 (compatible; MSIE 8.0; *Windows*Trident/7.0*Touch*)*] +Parent="IE 11.0 for Tablet" +Comment="IE 11.0 in IE 8.0 Compatibility Mode" +Platform="Win32" + +[Mozilla/5.0 (compatible; MSIE 8.0; *Windows NT 6.2*Trident/7.0*Touch*)*] +Parent="IE 11.0 for Tablet" +Comment="IE 11.0 in IE 8.0 Compatibility Mode" +Platform="Win8" + +[Mozilla/5.0 (compatible; MSIE 8.0; *Windows NT 6.3*Trident/7.0*Touch*)*] +Parent="IE 11.0 for Tablet" +Comment="IE 11.0 in IE 8.0 Compatibility Mode" +Platform="Win8.1" + +[Mozilla/5.0 (compatible; MSIE 8.0; *Windows NT 6.4*Trident/7.0*Touch*)*] +Parent="IE 11.0 for Tablet" +Comment="IE 11.0 in IE 8.0 Compatibility Mode" +Platform="Win10" + +[Mozilla/5.0 (compatible; MSIE 8.0; *Windows NT 10.0*Trident/7.0*Touch*)*] +Parent="IE 11.0 for Tablet" +Comment="IE 11.0 in IE 8.0 Compatibility Mode" +Platform="Win10" + +[Mozilla/5.0 (compatible; MSIE 8.0; *Windows*Trident/7.0*Touch*)*] +Parent="IE 11.0 for Tablet" +Comment="IE 11.0 in IE 8.0 Compatibility Mode" +Platform="Win32" + +[Mozilla/5.0 (compatible; MSIE 9.0; *Windows NT 6.2*Trident/7.0*Touch*)*] +Parent="IE 11.0 for Tablet" +Comment="IE 11.0 in IE 9.0 Compatibility Mode" +Platform="Win8" + +[Mozilla/5.0 (compatible; MSIE 9.0; *Windows NT 6.3*Trident/7.0*Touch*)*] +Parent="IE 11.0 for Tablet" +Comment="IE 11.0 in IE 9.0 Compatibility Mode" +Platform="Win8.1" + +[Mozilla/5.0 (compatible; MSIE 9.0; *Windows NT 6.4*Trident/7.0*Touch*)*] +Parent="IE 11.0 for Tablet" +Comment="IE 11.0 in IE 9.0 Compatibility Mode" +Platform="Win10" + +[Mozilla/5.0 (compatible; MSIE 9.0; *Windows NT 10.0*Trident/7.0*Touch*)*] +Parent="IE 11.0 for Tablet" +Comment="IE 11.0 in IE 9.0 Compatibility Mode" +Platform="Win10" + +[Mozilla/5.0 (compatible; MSIE 9.0; *Windows*Trident/7.0*Touch*)*] +Parent="IE 11.0 for Tablet" +Comment="IE 11.0 in IE 9.0 Compatibility Mode" +Platform="Win32" + +[Mozilla/4.0 (compatible; MSIE 9.0; *Windows NT 6.2*Trident/7.0*Touch*)*] +Parent="IE 11.0 for Tablet" +Comment="IE 11.0 in IE 9.0 Compatibility Mode" +Platform="Win8" + +[Mozilla/4.0 (compatible; MSIE 9.0; *Windows NT 6.3*Trident/7.0*Touch*)*] +Parent="IE 11.0 for Tablet" +Comment="IE 11.0 in IE 9.0 Compatibility Mode" +Platform="Win8.1" + +[Mozilla/4.0 (compatible; MSIE 9.0; *Windows NT 6.4*Trident/7.0*Touch*)*] +Parent="IE 11.0 for Tablet" +Comment="IE 11.0 in IE 9.0 Compatibility Mode" +Platform="Win10" + +[Mozilla/4.0 (compatible; MSIE 9.0; *Windows NT 10.0*Trident/7.0*Touch*)*] +Parent="IE 11.0 for Tablet" +Comment="IE 11.0 in IE 9.0 Compatibility Mode" +Platform="Win10" + +[Mozilla/4.0 (compatible; MSIE 9.0; *Windows*Trident/7.0*Touch*)*] +Parent="IE 11.0 for Tablet" +Comment="IE 11.0 in IE 9.0 Compatibility Mode" +Platform="Win32" + +[Mozilla/5.0 (compatible; MSIE 10.0; *Windows NT 6.2*Trident/7.0*Touch*)*] +Parent="IE 11.0 for Tablet" +Comment="IE 11.0 in IE 10.0 Compatibility Mode" +Platform="Win8" + +[Mozilla/5.0 (compatible; MSIE 10.0; *Windows NT 6.3*Trident/7.0*Touch*)*] +Parent="IE 11.0 for Tablet" +Comment="IE 11.0 in IE 10.0 Compatibility Mode" +Platform="Win8.1" + +[Mozilla/5.0 (compatible; MSIE 10.0; *Windows NT 6.4*Trident/7.0*Touch*)*] +Parent="IE 11.0 for Tablet" +Comment="IE 11.0 in IE 10.0 Compatibility Mode" +Platform="Win10" + +[Mozilla/5.0 (compatible; MSIE 10.0; *Windows NT 10.0*Trident/7.0*Touch*)*] +Parent="IE 11.0 for Tablet" +Comment="IE 11.0 in IE 10.0 Compatibility Mode" +Platform="Win10" + +[Mozilla/5.0 (compatible; MSIE 10.0; *Windows*Trident/7.0*Touch*)*] +Parent="IE 11.0 for Tablet" +Comment="IE 11.0 in IE 10.0 Compatibility Mode" +Platform="Win32" + +[Mozilla/5.0 (*Windows NT 6.2*Trident/8.0*Touch*rv:11.0*)*] +Parent="IE 11.0 for Tablet" +Platform="Win8" + +[Mozilla/5.0 (*Windows NT 6.3*Trident/8.0*Touch*rv:11.0*)*] +Parent="IE 11.0 for Tablet" +Platform="Win8.1" + +[Mozilla/5.0 (*Windows NT 6.4*Trident/8.0*Touch*rv:11.0*)*] +Parent="IE 11.0 for Tablet" +Platform="Win10" + +[Mozilla/5.0 (*Windows NT 10.0*Trident/8.0*Touch*rv:11.0*)*] +Parent="IE 11.0 for Tablet" +Platform="Win10" + +[Mozilla/5.0 (*Windows*Trident/8.0*Touch*rv:11.0*)*] +Parent="IE 11.0 for Tablet" +Platform="Win32" + +[Mozilla/4.0 (compatible; MSIE 7.0; *Windows NT 6.2*Trident/8.0*Touch*)*] +Parent="IE 11.0 for Tablet" +Comment="IE 11.0 in IE 7.0 Compatibility Mode" +Platform="Win8" + +[Mozilla/4.0 (compatible; MSIE 7.0; *Windows NT 6.3*Trident/8.0*Touch*)*] +Parent="IE 11.0 for Tablet" +Comment="IE 11.0 in IE 7.0 Compatibility Mode" +Platform="Win8.1" + +[Mozilla/4.0 (compatible; MSIE 7.0; *Windows NT 6.4*Trident/8.0*Touch*)*] +Parent="IE 11.0 for Tablet" +Comment="IE 11.0 in IE 7.0 Compatibility Mode" +Platform="Win10" + +[Mozilla/4.0 (compatible; MSIE 7.0; *Windows NT 10.0*Trident/8.0*Touch*)*] +Parent="IE 11.0 for Tablet" +Comment="IE 11.0 in IE 7.0 Compatibility Mode" +Platform="Win10" + +[Mozilla/4.0 (compatible; MSIE 7.0; *Windows*Trident/8.0*Touch*)*] +Parent="IE 11.0 for Tablet" +Comment="IE 11.0 in IE 7.0 Compatibility Mode" +Platform="Win32" + +[Mozilla/5.0 (compatible; MSIE 7.0; *Windows NT 6.2*Trident/8.0*Touch*)*] +Parent="IE 11.0 for Tablet" +Comment="IE 11.0 in IE 7.0 Compatibility Mode" +Platform="Win8" + +[Mozilla/5.0 (compatible; MSIE 7.0; *Windows NT 6.3*Trident/8.0*Touch*)*] +Parent="IE 11.0 for Tablet" +Comment="IE 11.0 in IE 7.0 Compatibility Mode" +Platform="Win8.1" + +[Mozilla/5.0 (compatible; MSIE 7.0; *Windows NT 6.4*Trident/8.0*Touch*)*] +Parent="IE 11.0 for Tablet" +Comment="IE 11.0 in IE 7.0 Compatibility Mode" +Platform="Win10" + +[Mozilla/5.0 (compatible; MSIE 7.0; *Windows NT 10.0*Trident/8.0*Touch*)*] +Parent="IE 11.0 for Tablet" +Comment="IE 11.0 in IE 7.0 Compatibility Mode" +Platform="Win10" + +[Mozilla/5.0 (compatible; MSIE 7.0; *Windows*Trident/8.0*Touch*)*] +Parent="IE 11.0 for Tablet" +Comment="IE 11.0 in IE 7.0 Compatibility Mode" +Platform="Win32" + +[Mozilla/4.0 (compatible; MSIE 8.0; *Windows NT 6.2*Trident/8.0*Touch*)*] +Parent="IE 11.0 for Tablet" +Comment="IE 11.0 in IE 8.0 Compatibility Mode" +Platform="Win8" + +[Mozilla/4.0 (compatible; MSIE 8.0; *Windows NT 6.3*Trident/8.0*Touch*)*] +Parent="IE 11.0 for Tablet" +Comment="IE 11.0 in IE 8.0 Compatibility Mode" +Platform="Win8.1" + +[Mozilla/4.0 (compatible; MSIE 8.0; *Windows NT 6.4*Trident/8.0*Touch*)*] +Parent="IE 11.0 for Tablet" +Comment="IE 11.0 in IE 8.0 Compatibility Mode" +Platform="Win10" + +[Mozilla/4.0 (compatible; MSIE 8.0; *Windows NT 10.0*Trident/8.0*Touch*)*] +Parent="IE 11.0 for Tablet" +Comment="IE 11.0 in IE 8.0 Compatibility Mode" +Platform="Win10" + +[Mozilla/4.0 (compatible; MSIE 8.0; *Windows*Trident/8.0*Touch*)*] +Parent="IE 11.0 for Tablet" +Comment="IE 11.0 in IE 8.0 Compatibility Mode" +Platform="Win32" + +[Mozilla/5.0 (compatible; MSIE 8.0; *Windows NT 6.2*Trident/8.0*Touch*)*] +Parent="IE 11.0 for Tablet" +Comment="IE 11.0 in IE 8.0 Compatibility Mode" +Platform="Win8" + +[Mozilla/5.0 (compatible; MSIE 8.0; *Windows NT 6.3*Trident/8.0*Touch*)*] +Parent="IE 11.0 for Tablet" +Comment="IE 11.0 in IE 8.0 Compatibility Mode" +Platform="Win8.1" + +[Mozilla/5.0 (compatible; MSIE 8.0; *Windows NT 6.4*Trident/8.0*Touch*)*] +Parent="IE 11.0 for Tablet" +Comment="IE 11.0 in IE 8.0 Compatibility Mode" +Platform="Win10" + +[Mozilla/5.0 (compatible; MSIE 8.0; *Windows NT 10.0*Trident/8.0*Touch*)*] +Parent="IE 11.0 for Tablet" +Comment="IE 11.0 in IE 8.0 Compatibility Mode" +Platform="Win10" + +[Mozilla/5.0 (compatible; MSIE 8.0; *Windows*Trident/8.0*Touch*)*] +Parent="IE 11.0 for Tablet" +Comment="IE 11.0 in IE 8.0 Compatibility Mode" +Platform="Win32" + +[Mozilla/5.0 (compatible; MSIE 9.0; *Windows NT 6.2*Trident/8.0*Touch*)*] +Parent="IE 11.0 for Tablet" +Comment="IE 11.0 in IE 9.0 Compatibility Mode" +Platform="Win8" + +[Mozilla/5.0 (compatible; MSIE 9.0; *Windows NT 6.3*Trident/8.0*Touch*)*] +Parent="IE 11.0 for Tablet" +Comment="IE 11.0 in IE 9.0 Compatibility Mode" +Platform="Win8.1" + +[Mozilla/5.0 (compatible; MSIE 9.0; *Windows NT 6.4*Trident/8.0*Touch*)*] +Parent="IE 11.0 for Tablet" +Comment="IE 11.0 in IE 9.0 Compatibility Mode" +Platform="Win10" + +[Mozilla/5.0 (compatible; MSIE 9.0; *Windows NT 10.0*Trident/8.0*Touch*)*] +Parent="IE 11.0 for Tablet" +Comment="IE 11.0 in IE 9.0 Compatibility Mode" +Platform="Win10" + +[Mozilla/5.0 (compatible; MSIE 9.0; *Windows*Trident/8.0*Touch*)*] +Parent="IE 11.0 for Tablet" +Comment="IE 11.0 in IE 9.0 Compatibility Mode" +Platform="Win32" + +[Mozilla/4.0 (compatible; MSIE 9.0; *Windows NT 6.2*Trident/8.0*Touch*)*] +Parent="IE 11.0 for Tablet" +Comment="IE 11.0 in IE 9.0 Compatibility Mode" +Platform="Win8" + +[Mozilla/4.0 (compatible; MSIE 9.0; *Windows NT 6.3*Trident/8.0*Touch*)*] +Parent="IE 11.0 for Tablet" +Comment="IE 11.0 in IE 9.0 Compatibility Mode" +Platform="Win8.1" + +[Mozilla/4.0 (compatible; MSIE 9.0; *Windows NT 6.4*Trident/8.0*Touch*)*] +Parent="IE 11.0 for Tablet" +Comment="IE 11.0 in IE 9.0 Compatibility Mode" +Platform="Win10" + +[Mozilla/4.0 (compatible; MSIE 9.0; *Windows NT 10.0*Trident/8.0*Touch*)*] +Parent="IE 11.0 for Tablet" +Comment="IE 11.0 in IE 9.0 Compatibility Mode" +Platform="Win10" + +[Mozilla/4.0 (compatible; MSIE 9.0; *Windows*Trident/8.0*Touch*)*] +Parent="IE 11.0 for Tablet" +Comment="IE 11.0 in IE 9.0 Compatibility Mode" +Platform="Win32" + +[Mozilla/5.0 (compatible; MSIE 10.0; *Windows NT 6.2*Trident/8.0*Touch*)*] +Parent="IE 11.0 for Tablet" +Comment="IE 11.0 in IE 10.0 Compatibility Mode" +Platform="Win8" + +[Mozilla/5.0 (compatible; MSIE 10.0; *Windows NT 6.3*Trident/8.0*Touch*)*] +Parent="IE 11.0 for Tablet" +Comment="IE 11.0 in IE 10.0 Compatibility Mode" +Platform="Win8.1" + +[Mozilla/5.0 (compatible; MSIE 10.0; *Windows NT 6.4*Trident/8.0*Touch*)*] +Parent="IE 11.0 for Tablet" +Comment="IE 11.0 in IE 10.0 Compatibility Mode" +Platform="Win10" + +[Mozilla/5.0 (compatible; MSIE 10.0; *Windows NT 10.0*Trident/8.0*Touch*)*] +Parent="IE 11.0 for Tablet" +Comment="IE 11.0 in IE 10.0 Compatibility Mode" +Platform="Win10" + +[Mozilla/5.0 (compatible; MSIE 10.0; *Windows*Trident/8.0*Touch*)*] +Parent="IE 11.0 for Tablet" +Comment="IE 11.0 in IE 10.0 Compatibility Mode" +Platform="Win32" + +[IE 11.0 for Desktop] +Parent="DefaultProperties" +Comment="IE 11.0" +Browser="IE" +Version="11.0" +Device_Type="Desktop" + +[Mozilla/5.0 (*Windows NT 6.0*Trident/7.0*rv:11.0*] +Parent="IE 11.0 for Desktop" +Platform="WinVista" + +[Mozilla/5.0 (*Windows NT 6.1*Trident/7.0*rv:11.0*] +Parent="IE 11.0 for Desktop" +Platform="Win7" + +[Mozilla/5.0 (*Windows NT 6.2*Trident/7.0*rv:11.0*] +Parent="IE 11.0 for Desktop" +Platform="Win8" + +[Mozilla/5.0 (*Windows NT 6.3*Trident/7.0*rv:11.0*] +Parent="IE 11.0 for Desktop" +Platform="Win8.1" + +[Mozilla/5.0 (*Windows NT 6.4*Trident/7.0*rv:11.0*] +Parent="IE 11.0 for Desktop" +Platform="Win10" + +[Mozilla/5.0 (*Windows NT 10.0*Trident/7.0*rv:11.0*] +Parent="IE 11.0 for Desktop" +Platform="Win10" + +[Mozilla/5.0 (*Windows*Trident/7.0*rv:11.0*] +Parent="IE 11.0 for Desktop" +Platform="Win32" + +[Mozilla/4.0 (compatible; MSIE 7.0; *Windows NT 6.0*Trident/7.0*] +Parent="IE 11.0 for Desktop" +Comment="IE 11.0 in IE 7.0 Compatibility Mode" +Platform="WinVista" + +[Mozilla/4.0 (compatible; MSIE 7.0; *Windows NT 6.1*Trident/7.0*] +Parent="IE 11.0 for Desktop" +Comment="IE 11.0 in IE 7.0 Compatibility Mode" +Platform="Win7" + +[Mozilla/4.0 (compatible; MSIE 7.0; *Windows NT 6.2*Trident/7.0*] +Parent="IE 11.0 for Desktop" +Comment="IE 11.0 in IE 7.0 Compatibility Mode" +Platform="Win8" + +[Mozilla/4.0 (compatible; MSIE 7.0; *Windows NT 6.3*Trident/7.0*] +Parent="IE 11.0 for Desktop" +Comment="IE 11.0 in IE 7.0 Compatibility Mode" +Platform="Win8.1" + +[Mozilla/4.0 (compatible; MSIE 7.0; *Windows NT 6.4*Trident/7.0*] +Parent="IE 11.0 for Desktop" +Comment="IE 11.0 in IE 7.0 Compatibility Mode" +Platform="Win10" + +[Mozilla/4.0 (compatible; MSIE 7.0; *Windows NT 10.0*Trident/7.0*] +Parent="IE 11.0 for Desktop" +Comment="IE 11.0 in IE 7.0 Compatibility Mode" +Platform="Win10" + +[Mozilla/4.0 (compatible; MSIE 7.0; *Windows*Trident/7.0*] +Parent="IE 11.0 for Desktop" +Comment="IE 11.0 in IE 7.0 Compatibility Mode" +Platform="Win32" + +[Mozilla/5.0 (compatible; MSIE 7.0; *Windows NT 6.0*Trident/7.0*] +Parent="IE 11.0 for Desktop" +Comment="IE 11.0 in IE 7.0 Compatibility Mode" +Platform="WinVista" + +[Mozilla/5.0 (compatible; MSIE 7.0; *Windows NT 6.1*Trident/7.0*] +Parent="IE 11.0 for Desktop" +Comment="IE 11.0 in IE 7.0 Compatibility Mode" +Platform="Win7" + +[Mozilla/5.0 (compatible; MSIE 7.0; *Windows NT 6.2*Trident/7.0*] +Parent="IE 11.0 for Desktop" +Comment="IE 11.0 in IE 7.0 Compatibility Mode" +Platform="Win8" + +[Mozilla/5.0 (compatible; MSIE 7.0; *Windows NT 6.3*Trident/7.0*] +Parent="IE 11.0 for Desktop" +Comment="IE 11.0 in IE 7.0 Compatibility Mode" +Platform="Win8.1" + +[Mozilla/5.0 (compatible; MSIE 7.0; *Windows NT 6.4*Trident/7.0*] +Parent="IE 11.0 for Desktop" +Comment="IE 11.0 in IE 7.0 Compatibility Mode" +Platform="Win10" + +[Mozilla/5.0 (compatible; MSIE 7.0; *Windows NT 10.0*Trident/7.0*] +Parent="IE 11.0 for Desktop" +Comment="IE 11.0 in IE 7.0 Compatibility Mode" +Platform="Win10" + +[Mozilla/5.0 (compatible; MSIE 7.0; *Windows*Trident/7.0*] +Parent="IE 11.0 for Desktop" +Comment="IE 11.0 in IE 7.0 Compatibility Mode" +Platform="Win32" + +[Mozilla/4.0 (compatible; MSIE 8.0; *Windows NT 6.0*Trident/7.0*] +Parent="IE 11.0 for Desktop" +Comment="IE 11.0 in IE 8.0 Compatibility Mode" +Platform="WinVista" + +[Mozilla/4.0 (compatible; MSIE 8.0; *Windows NT 6.1*Trident/7.0*] +Parent="IE 11.0 for Desktop" +Comment="IE 11.0 in IE 8.0 Compatibility Mode" +Platform="Win7" + +[Mozilla/4.0 (compatible; MSIE 8.0; *Windows NT 6.2*Trident/7.0*] +Parent="IE 11.0 for Desktop" +Comment="IE 11.0 in IE 8.0 Compatibility Mode" +Platform="Win8" + +[Mozilla/4.0 (compatible; MSIE 8.0; *Windows NT 6.3*Trident/7.0*] +Parent="IE 11.0 for Desktop" +Comment="IE 11.0 in IE 8.0 Compatibility Mode" +Platform="Win8.1" + +[Mozilla/4.0 (compatible; MSIE 8.0; *Windows NT 6.4*Trident/7.0*] +Parent="IE 11.0 for Desktop" +Comment="IE 11.0 in IE 8.0 Compatibility Mode" +Platform="Win10" + +[Mozilla/4.0 (compatible; MSIE 8.0; *Windows NT 10.0*Trident/7.0*] +Parent="IE 11.0 for Desktop" +Comment="IE 11.0 in IE 8.0 Compatibility Mode" +Platform="Win10" + +[Mozilla/4.0 (compatible; MSIE 8.0; *Windows*Trident/7.0*] +Parent="IE 11.0 for Desktop" +Comment="IE 11.0 in IE 8.0 Compatibility Mode" +Platform="Win32" + +[Mozilla/5.0 (compatible; MSIE 8.0; *Windows NT 6.0*Trident/7.0*] +Parent="IE 11.0 for Desktop" +Comment="IE 11.0 in IE 8.0 Compatibility Mode" +Platform="WinVista" + +[Mozilla/5.0 (compatible; MSIE 8.0; *Windows NT 6.1*Trident/7.0*] +Parent="IE 11.0 for Desktop" +Comment="IE 11.0 in IE 8.0 Compatibility Mode" +Platform="Win7" + +[Mozilla/5.0 (compatible; MSIE 8.0; *Windows NT 6.2*Trident/7.0*] +Parent="IE 11.0 for Desktop" +Comment="IE 11.0 in IE 8.0 Compatibility Mode" +Platform="Win8" + +[Mozilla/5.0 (compatible; MSIE 8.0; *Windows NT 6.3*Trident/7.0*] +Parent="IE 11.0 for Desktop" +Comment="IE 11.0 in IE 8.0 Compatibility Mode" +Platform="Win8.1" + +[Mozilla/5.0 (compatible; MSIE 8.0; *Windows NT 6.4*Trident/7.0*] +Parent="IE 11.0 for Desktop" +Comment="IE 11.0 in IE 8.0 Compatibility Mode" +Platform="Win10" + +[Mozilla/5.0 (compatible; MSIE 8.0; *Windows NT 10.0*Trident/7.0*] +Parent="IE 11.0 for Desktop" +Comment="IE 11.0 in IE 8.0 Compatibility Mode" +Platform="Win10" + +[Mozilla/5.0 (compatible; MSIE 8.0; *Windows*Trident/7.0*] +Parent="IE 11.0 for Desktop" +Comment="IE 11.0 in IE 8.0 Compatibility Mode" +Platform="Win32" + +[Mozilla/5.0 (compatible; MSIE 9.0; *Windows NT 6.0*Trident/7.0*] +Parent="IE 11.0 for Desktop" +Comment="IE 11.0 in IE 9.0 Compatibility Mode" +Platform="WinVista" + +[Mozilla/5.0 (compatible; MSIE 9.0; *Windows NT 6.1*Trident/7.0*] +Parent="IE 11.0 for Desktop" +Comment="IE 11.0 in IE 9.0 Compatibility Mode" +Platform="Win7" + +[Mozilla/5.0 (compatible; MSIE 9.0; *Windows NT 6.2*Trident/7.0*] +Parent="IE 11.0 for Desktop" +Comment="IE 11.0 in IE 9.0 Compatibility Mode" +Platform="Win8" + +[Mozilla/5.0 (compatible; MSIE 9.0; *Windows NT 6.3*Trident/7.0*] +Parent="IE 11.0 for Desktop" +Comment="IE 11.0 in IE 9.0 Compatibility Mode" +Platform="Win8.1" + +[Mozilla/5.0 (compatible; MSIE 9.0; *Windows NT 6.4*Trident/7.0*] +Parent="IE 11.0 for Desktop" +Comment="IE 11.0 in IE 9.0 Compatibility Mode" +Platform="Win10" + +[Mozilla/5.0 (compatible; MSIE 9.0; *Windows NT 10.0*Trident/7.0*] +Parent="IE 11.0 for Desktop" +Comment="IE 11.0 in IE 9.0 Compatibility Mode" +Platform="Win10" + +[Mozilla/5.0 (compatible; MSIE 9.0; *Windows*Trident/7.0*] +Parent="IE 11.0 for Desktop" +Comment="IE 11.0 in IE 9.0 Compatibility Mode" +Platform="Win32" + +[Mozilla/4.0 (compatible; MSIE 9.0; *Windows NT 6.0*Trident/7.0*] +Parent="IE 11.0 for Desktop" +Comment="IE 11.0 in IE 9.0 Compatibility Mode" +Platform="WinVista" + +[Mozilla/4.0 (compatible; MSIE 9.0; *Windows NT 6.1*Trident/7.0*] +Parent="IE 11.0 for Desktop" +Comment="IE 11.0 in IE 9.0 Compatibility Mode" +Platform="Win7" + +[Mozilla/4.0 (compatible; MSIE 9.0; *Windows NT 6.2*Trident/7.0*] +Parent="IE 11.0 for Desktop" +Comment="IE 11.0 in IE 9.0 Compatibility Mode" +Platform="Win8" + +[Mozilla/4.0 (compatible; MSIE 9.0; *Windows NT 6.3*Trident/7.0*] +Parent="IE 11.0 for Desktop" +Comment="IE 11.0 in IE 9.0 Compatibility Mode" +Platform="Win8.1" + +[Mozilla/4.0 (compatible; MSIE 9.0; *Windows NT 6.4*Trident/7.0*] +Parent="IE 11.0 for Desktop" +Comment="IE 11.0 in IE 9.0 Compatibility Mode" +Platform="Win10" + +[Mozilla/4.0 (compatible; MSIE 9.0; *Windows NT 10.0*Trident/7.0*] +Parent="IE 11.0 for Desktop" +Comment="IE 11.0 in IE 9.0 Compatibility Mode" +Platform="Win10" + +[Mozilla/4.0 (compatible; MSIE 9.0; *Windows*Trident/7.0*] +Parent="IE 11.0 for Desktop" +Comment="IE 11.0 in IE 9.0 Compatibility Mode" +Platform="Win32" + +[Mozilla/5.0 (compatible; MSIE 10.0; *Windows NT 6.0*Trident/7.0*] +Parent="IE 11.0 for Desktop" +Comment="IE 11.0 in IE 10.0 Compatibility Mode" +Platform="WinVista" + +[Mozilla/5.0 (compatible; MSIE 10.0; *Windows NT 6.1*Trident/7.0*] +Parent="IE 11.0 for Desktop" +Comment="IE 11.0 in IE 10.0 Compatibility Mode" +Platform="Win7" + +[Mozilla/5.0 (compatible; MSIE 10.0; *Windows NT 6.2*Trident/7.0*] +Parent="IE 11.0 for Desktop" +Comment="IE 11.0 in IE 10.0 Compatibility Mode" +Platform="Win8" + +[Mozilla/5.0 (compatible; MSIE 10.0; *Windows NT 6.3*Trident/7.0*] +Parent="IE 11.0 for Desktop" +Comment="IE 11.0 in IE 10.0 Compatibility Mode" +Platform="Win8.1" + +[Mozilla/5.0 (compatible; MSIE 10.0; *Windows NT 6.4*Trident/7.0*] +Parent="IE 11.0 for Desktop" +Comment="IE 11.0 in IE 10.0 Compatibility Mode" +Platform="Win10" + +[Mozilla/5.0 (compatible; MSIE 10.0; *Windows NT 10.0*Trident/7.0*] +Parent="IE 11.0 for Desktop" +Comment="IE 11.0 in IE 10.0 Compatibility Mode" +Platform="Win10" + +[Mozilla/5.0 (compatible; MSIE 10.0; *Windows*Trident/7.0*] +Parent="IE 11.0 for Desktop" +Comment="IE 11.0 in IE 10.0 Compatibility Mode" +Platform="Win32" + +[Mozilla/5.0 (*Windows NT 6.1*; Trident/7.0*] +Parent="IE 11.0 for Desktop" +Platform="Win7" + +[Mozilla/5.0 (*Windows NT 6.2*; Trident/7.0*] +Parent="IE 11.0 for Desktop" +Platform="Win8" + +[Mozilla/5.0 (*Windows NT 6.3*; Trident/7.0*] +Parent="IE 11.0 for Desktop" +Platform="Win8.1" + +[Mozilla/5.0 (*Windows*; Trident/7.0*] +Parent="IE 11.0 for Desktop" +Platform="Win32" + +[Mozilla/5.0 (Windows 95; Anonymisiert*; Trident/7.0*] +Parent="IE 11.0 for Desktop" +Platform="Win8.1" + +[Mozilla/5.0; TOB* (*Windows NT 6.0*Trident/7.0*rv:11.0*] +Parent="IE 11.0 for Desktop" +Platform="WinVista" + +[Mozilla/5.0; TOB* (*Windows NT 6.1*Trident/7.0*rv:11.0*] +Parent="IE 11.0 for Desktop" +Platform="Win7" + +[Mozilla/5.0; TOB* (*Windows NT 6.2*Trident/7.0*rv:11.0*] +Parent="IE 11.0 for Desktop" +Platform="Win8" + +[Mozilla/5.0; TOB* (*Windows NT 6.3*Trident/7.0*rv:11.0*] +Parent="IE 11.0 for Desktop" +Platform="Win8.1" + +[Mozilla/5.0; TOB* (*Windows NT 6.4*Trident/7.0*rv:11.0*] +Parent="IE 11.0 for Desktop" +Platform="Win10" + +[Mozilla/5.0; TOB* (*Windows NT 10.0*Trident/7.0*rv:11.0*] +Parent="IE 11.0 for Desktop" +Platform="Win10" + +[Mozilla/5.0; TOB* (*Windows*Trident/7.0*rv:11.0*] +Parent="IE 11.0 for Desktop" +Platform="Win32" + +[Mozilla/5.0 (*Windows NT 6.2*Trident/8.0; rv:550) AppleWebKit/* (KHTML* like Gecko) Version/7.0 Safari/*] +Parent="IE 11.0 for Desktop" +Platform="Win8" + +[Mozilla/5.0 (*Windows NT 6.3*Trident/8.0; rv:550) AppleWebKit/* (KHTML* like Gecko) Version/7.0 Safari/*] +Parent="IE 11.0 for Desktop" +Platform="Win8.1" + +[Mozilla/5.0 (*Windows NT 6.4*Trident/8.0; rv:550) AppleWebKit/* (KHTML* like Gecko) Version/7.0 Safari/*] +Parent="IE 11.0 for Desktop" +Platform="Win10" + +[Mozilla/5.0 (*Windows NT 10.0*Trident/8.0; rv:550) AppleWebKit/* (KHTML* like Gecko) Version/7.0 Safari/*] +Parent="IE 11.0 for Desktop" +Platform="Win10" + +[Mozilla/5.0 (*Windows*Trident/8.0; rv:550) AppleWebKit/* (KHTML* like Gecko) Version/7.0 Safari/*] +Parent="IE 11.0 for Desktop" +Platform="Win32" + +[Mozilla/5.0 (*Windows NT 6.2*Trident/8.0*rv:11.0*)*] +Parent="IE 11.0 for Desktop" +Platform="Win8" + +[Mozilla/5.0 (*Windows NT 6.3*Trident/8.0*rv:11.0*)*] +Parent="IE 11.0 for Desktop" +Platform="Win8.1" + +[Mozilla/5.0 (*Windows NT 6.4*Trident/8.0*rv:11.0*)*] +Parent="IE 11.0 for Desktop" +Platform="Win10" + +[Mozilla/5.0 (*Windows NT 10.0*Trident/8.0*rv:11.0*)*] +Parent="IE 11.0 for Desktop" +Platform="Win10" + +[Mozilla/5.0 (*Windows*Trident/8.0*rv:11.0*)*] +Parent="IE 11.0 for Desktop" +Platform="Win32" + +[Mozilla/4.0 (compatible; MSIE 7.0; *Windows NT 6.2*Trident/8.0*)*] +Parent="IE 11.0 for Desktop" +Comment="IE 11.0 in IE 7.0 Compatibility Mode" +Platform="Win8" + +[Mozilla/4.0 (compatible; MSIE 7.0; *Windows NT 6.3*Trident/8.0*)*] +Parent="IE 11.0 for Desktop" +Comment="IE 11.0 in IE 7.0 Compatibility Mode" +Platform="Win8.1" + +[Mozilla/4.0 (compatible; MSIE 7.0; *Windows NT 6.4*Trident/8.0*)*] +Parent="IE 11.0 for Desktop" +Comment="IE 11.0 in IE 7.0 Compatibility Mode" +Platform="Win10" + +[Mozilla/4.0 (compatible; MSIE 7.0; *Windows NT 10.0*Trident/8.0*)*] +Parent="IE 11.0 for Desktop" +Comment="IE 11.0 in IE 7.0 Compatibility Mode" +Platform="Win10" + +[Mozilla/4.0 (compatible; MSIE 7.0; *Windows*Trident/8.0*)*] +Parent="IE 11.0 for Desktop" +Comment="IE 11.0 in IE 7.0 Compatibility Mode" +Platform="Win32" + +[Mozilla/5.0 (compatible; MSIE 7.0; *Windows NT 6.2*Trident/8.0*)*] +Parent="IE 11.0 for Desktop" +Comment="IE 11.0 in IE 7.0 Compatibility Mode" +Platform="Win8" + +[Mozilla/5.0 (compatible; MSIE 7.0; *Windows NT 6.3*Trident/8.0*)*] +Parent="IE 11.0 for Desktop" +Comment="IE 11.0 in IE 7.0 Compatibility Mode" +Platform="Win8.1" + +[Mozilla/5.0 (compatible; MSIE 7.0; *Windows NT 6.4*Trident/8.0*)*] +Parent="IE 11.0 for Desktop" +Comment="IE 11.0 in IE 7.0 Compatibility Mode" +Platform="Win10" + +[Mozilla/5.0 (compatible; MSIE 7.0; *Windows NT 10.0*Trident/8.0*)*] +Parent="IE 11.0 for Desktop" +Comment="IE 11.0 in IE 7.0 Compatibility Mode" +Platform="Win10" + +[Mozilla/5.0 (compatible; MSIE 7.0; *Windows*Trident/8.0*)*] +Parent="IE 11.0 for Desktop" +Comment="IE 11.0 in IE 7.0 Compatibility Mode" +Platform="Win32" + +[Mozilla/4.0 (compatible; MSIE 8.0; *Windows NT 6.2*Trident/8.0*)*] +Parent="IE 11.0 for Desktop" +Comment="IE 11.0 in IE 8.0 Compatibility Mode" +Platform="Win8" + +[Mozilla/4.0 (compatible; MSIE 8.0; *Windows NT 6.3*Trident/8.0*)*] +Parent="IE 11.0 for Desktop" +Comment="IE 11.0 in IE 8.0 Compatibility Mode" +Platform="Win8.1" + +[Mozilla/4.0 (compatible; MSIE 8.0; *Windows NT 6.4*Trident/8.0*)*] +Parent="IE 11.0 for Desktop" +Comment="IE 11.0 in IE 8.0 Compatibility Mode" +Platform="Win10" + +[Mozilla/4.0 (compatible; MSIE 8.0; *Windows NT 10.0*Trident/8.0*)*] +Parent="IE 11.0 for Desktop" +Comment="IE 11.0 in IE 8.0 Compatibility Mode" +Platform="Win10" + +[Mozilla/4.0 (compatible; MSIE 8.0; *Windows*Trident/8.0*)*] +Parent="IE 11.0 for Desktop" +Comment="IE 11.0 in IE 8.0 Compatibility Mode" +Platform="Win32" + +[Mozilla/5.0 (compatible; MSIE 8.0; *Windows NT 6.2*Trident/8.0*)*] +Parent="IE 11.0 for Desktop" +Comment="IE 11.0 in IE 8.0 Compatibility Mode" +Platform="Win8" + +[Mozilla/5.0 (compatible; MSIE 8.0; *Windows NT 6.3*Trident/8.0*)*] +Parent="IE 11.0 for Desktop" +Comment="IE 11.0 in IE 8.0 Compatibility Mode" +Platform="Win8.1" + +[Mozilla/5.0 (compatible; MSIE 8.0; *Windows NT 6.4*Trident/8.0*)*] +Parent="IE 11.0 for Desktop" +Comment="IE 11.0 in IE 8.0 Compatibility Mode" +Platform="Win10" + +[Mozilla/5.0 (compatible; MSIE 8.0; *Windows NT 10.0*Trident/8.0*)*] +Parent="IE 11.0 for Desktop" +Comment="IE 11.0 in IE 8.0 Compatibility Mode" +Platform="Win10" + +[Mozilla/5.0 (compatible; MSIE 8.0; *Windows*Trident/8.0*)*] +Parent="IE 11.0 for Desktop" +Comment="IE 11.0 in IE 8.0 Compatibility Mode" +Platform="Win32" + +[Mozilla/5.0 (compatible; MSIE 9.0; *Windows NT 6.2*Trident/8.0*)*] +Parent="IE 11.0 for Desktop" +Comment="IE 11.0 in IE 9.0 Compatibility Mode" +Platform="Win8" + +[Mozilla/5.0 (compatible; MSIE 9.0; *Windows NT 6.3*Trident/8.0*)*] +Parent="IE 11.0 for Desktop" +Comment="IE 11.0 in IE 9.0 Compatibility Mode" +Platform="Win8.1" + +[Mozilla/5.0 (compatible; MSIE 9.0; *Windows NT 6.4*Trident/8.0*)*] +Parent="IE 11.0 for Desktop" +Comment="IE 11.0 in IE 9.0 Compatibility Mode" +Platform="Win10" + +[Mozilla/5.0 (compatible; MSIE 9.0; *Windows NT 10.0*Trident/8.0*)*] +Parent="IE 11.0 for Desktop" +Comment="IE 11.0 in IE 9.0 Compatibility Mode" +Platform="Win10" + +[Mozilla/5.0 (compatible; MSIE 9.0; *Windows*Trident/8.0*)*] +Parent="IE 11.0 for Desktop" +Comment="IE 11.0 in IE 9.0 Compatibility Mode" +Platform="Win32" + +[Mozilla/4.0 (compatible; MSIE 9.0; *Windows NT 6.2*Trident/8.0*)*] +Parent="IE 11.0 for Desktop" +Comment="IE 11.0 in IE 9.0 Compatibility Mode" +Platform="Win8" + +[Mozilla/4.0 (compatible; MSIE 9.0; *Windows NT 6.3*Trident/8.0*)*] +Parent="IE 11.0 for Desktop" +Comment="IE 11.0 in IE 9.0 Compatibility Mode" +Platform="Win8.1" + +[Mozilla/4.0 (compatible; MSIE 9.0; *Windows NT 6.4*Trident/8.0*)*] +Parent="IE 11.0 for Desktop" +Comment="IE 11.0 in IE 9.0 Compatibility Mode" +Platform="Win10" + +[Mozilla/4.0 (compatible; MSIE 9.0; *Windows NT 10.0*Trident/8.0*)*] +Parent="IE 11.0 for Desktop" +Comment="IE 11.0 in IE 9.0 Compatibility Mode" +Platform="Win10" + +[Mozilla/4.0 (compatible; MSIE 9.0; *Windows*Trident/8.0*)*] +Parent="IE 11.0 for Desktop" +Comment="IE 11.0 in IE 9.0 Compatibility Mode" +Platform="Win32" + +[Mozilla/5.0 (compatible; MSIE 10.0; *Windows NT 6.2*Trident/8.0*)*] +Parent="IE 11.0 for Desktop" +Comment="IE 11.0 in IE 10.0 Compatibility Mode" +Platform="Win8" + +[Mozilla/5.0 (compatible; MSIE 10.0; *Windows NT 6.3*Trident/8.0*)*] +Parent="IE 11.0 for Desktop" +Comment="IE 11.0 in IE 10.0 Compatibility Mode" +Platform="Win8.1" + +[Mozilla/5.0 (compatible; MSIE 10.0; *Windows NT 6.4*Trident/8.0*)*] +Parent="IE 11.0 for Desktop" +Comment="IE 11.0 in IE 10.0 Compatibility Mode" +Platform="Win10" + +[Mozilla/5.0 (compatible; MSIE 10.0; *Windows NT 10.0*Trident/8.0*)*] +Parent="IE 11.0 for Desktop" +Comment="IE 11.0 in IE 10.0 Compatibility Mode" +Platform="Win10" + +[Mozilla/5.0 (compatible; MSIE 10.0; *Windows*Trident/8.0*)*] +Parent="IE 11.0 for Desktop" +Comment="IE 11.0 in IE 10.0 Compatibility Mode" +Platform="Win32" + +[Mozilla/5.0 (*Windows NT 6.2*; Trident/8.0*)*] +Parent="IE 11.0 for Desktop" +Platform="Win8" + +[Mozilla/5.0 (*Windows NT 6.3*; Trident/8.0*)*] +Parent="IE 11.0 for Desktop" +Platform="Win8.1" + +[Mozilla/5.0 (*Windows NT 6.4*; Trident/8.0*)*] +Parent="IE 11.0 for Desktop" +Platform="Win10" + +[Mozilla/5.0 (*Windows NT 10.0*; Trident/8.0*)*] +Parent="IE 11.0 for Desktop" +Platform="Win10" + +[Mozilla/5.0 (*Windows*; Trident/8.0*)*] +Parent="IE 11.0 for Desktop" +Platform="Win32" + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; IE 10.0 + +[IE 10.0 for Win RT] +Parent="DefaultProperties" +Comment="IE 10.0" +Browser="IE" +Version="10.0" +isMobileDevice="true" +isTablet="true" +Device_Type="Tablet" + +[IE 10.0 for Tablet] +Parent="DefaultProperties" +Comment="IE 10.0" +Browser="IE" +Version="10.0" +isMobileDevice="true" +isTablet="true" +Device_Type="Tablet" + +[Mozilla/5.0 (compatible; MSIE 10.0*Windows NT 6.2*Trident/6.0*Touch*)*] +Parent="IE 10.0 for Tablet" +Platform="Win8" + +[Mozilla/5.0 (compatible; MSIE 10.0*Windows NT 6.3*Trident/6.0*Touch*)*] +Parent="IE 10.0 for Tablet" +Platform="Win8.1" + +[Mozilla/5.0 (compatible; MSIE 10.0*Windows NT 6.4*Trident/6.0*Touch*)*] +Parent="IE 10.0 for Tablet" +Platform="Win10" + +[Mozilla/5.0 (compatible; MSIE 10.0*Windows NT 10.0*Trident/6.0*Touch*)*] +Parent="IE 10.0 for Tablet" +Platform="Win10" + +[Mozilla/5.0 (compatible; MSIE 10.0*Windows*Trident/6.0*Touch*)*] +Parent="IE 10.0 for Tablet" +Platform="Win32" + +[IE 10.0 for Desktop] +Parent="DefaultProperties" +Comment="IE 10.0" +Browser="IE" +Version="10.0" +Device_Type="Desktop" + +[Mozilla/5.0 (compatible; MSIE 10.0*Windows NT 6.2*Trident/6.0*Xbox; Xbox One*)*] +Parent="IE 10.0 for Desktop" +Platform="Win8" +Device_Type="TV Device" + +[Mozilla/5.0 (compatible; MSIE 10.0*Windows NT 6.3*Trident/6.0*Xbox; Xbox One*)*] +Parent="IE 10.0 for Desktop" +Platform="Win8.1" +Device_Type="TV Device" + +[Mozilla/5.0 (compatible; MSIE 10.0*Windows*Trident/6.0*Xbox; Xbox One*)*] +Parent="IE 10.0 for Desktop" +Platform="Win32" +Device_Type="TV Device" + +[Mozilla/5.0 (compatible; MSIE 10.0*Windows NT 6.0*Trident/6.0*)*] +Parent="IE 10.0 for Desktop" +Platform="WinVista" + +[Mozilla/5.0 (compatible; MSIE 10.0*Windows NT 6.1*Trident/6.0*)*] +Parent="IE 10.0 for Desktop" +Platform="Win7" + +[Mozilla/5.0 (compatible; MSIE 10.0*Windows NT 6.2*Trident/6.0*)*] +Parent="IE 10.0 for Desktop" +Platform="Win8" + +[Mozilla/5.0 (compatible; MSIE 10.0*Windows NT 6.3*Trident/6.0*)*] +Parent="IE 10.0 for Desktop" +Platform="Win8.1" + +[Mozilla/5.0 (compatible; MSIE 10.0*Windows*Trident/6.0*)*] +Parent="IE 10.0 for Desktop" +Platform="Win32" + +[Mozilla/5.0 (compatible; MSIE 9.*Windows NT 6.0*Trident/6.0*)*] +Parent="IE 10.0 for Desktop" +Comment="IE 10.0 in IE 9.0 Compatibility Mode" +Platform="WinVista" + +[Mozilla/5.0 (compatible; MSIE 9.*Windows NT 6.1*Trident/6.0*)*] +Parent="IE 10.0 for Desktop" +Comment="IE 10.0 in IE 9.0 Compatibility Mode" +Platform="Win7" + +[Mozilla/5.0 (compatible; MSIE 9.*Windows NT 6.2*Trident/6.0*)*] +Parent="IE 10.0 for Desktop" +Comment="IE 10.0 in IE 9.0 Compatibility Mode" +Platform="Win8" + +[Mozilla/5.0 (compatible; MSIE 9.*Windows NT 6.3*Trident/6.0*)*] +Parent="IE 10.0 for Desktop" +Comment="IE 10.0 in IE 9.0 Compatibility Mode" +Platform="Win8.1" + +[Mozilla/5.0 (compatible; MSIE 9.*Windows*Trident/6.0*)*] +Parent="IE 10.0 for Desktop" +Comment="IE 10.0 in IE 9.0 Compatibility Mode" +Platform="Win32" + +[Mozilla/4.0 (compatible; MSIE 9.*Windows NT 6.0*Trident/6.0*)*] +Parent="IE 10.0 for Desktop" +Comment="IE 10.0 in IE 9.0 Compatibility Mode" +Platform="WinVista" + +[Mozilla/4.0 (compatible; MSIE 9.*Windows NT 6.1*Trident/6.0*)*] +Parent="IE 10.0 for Desktop" +Comment="IE 10.0 in IE 9.0 Compatibility Mode" +Platform="Win7" + +[Mozilla/4.0 (compatible; MSIE 9.*Windows NT 6.2*Trident/6.0*)*] +Parent="IE 10.0 for Desktop" +Comment="IE 10.0 in IE 9.0 Compatibility Mode" +Platform="Win8" + +[Mozilla/4.0 (compatible; MSIE 9.*Windows NT 6.3*Trident/6.0*)*] +Parent="IE 10.0 for Desktop" +Comment="IE 10.0 in IE 9.0 Compatibility Mode" +Platform="Win8.1" + +[Mozilla/4.0 (compatible; MSIE 9.*Windows*Trident/6.0*)*] +Parent="IE 10.0 for Desktop" +Comment="IE 10.0 in IE 9.0 Compatibility Mode" +Platform="Win32" + +[Mozilla/4.0 (compatible; MSIE 8.*Windows NT 6.0*Trident/6.0*)*] +Parent="IE 10.0 for Desktop" +Comment="IE 10.0 in IE 8.0 Compatibility Mode" +Platform="WinVista" + +[Mozilla/4.0 (compatible; MSIE 8.*Windows NT 6.1*Trident/6.0*)*] +Parent="IE 10.0 for Desktop" +Comment="IE 10.0 in IE 8.0 Compatibility Mode" +Platform="Win7" + +[Mozilla/4.0 (compatible; MSIE 8.*Windows NT 6.2*Trident/6.0*)*] +Parent="IE 10.0 for Desktop" +Comment="IE 10.0 in IE 8.0 Compatibility Mode" +Platform="Win8" + +[Mozilla/4.0 (compatible; MSIE 8.*Windows NT 6.3*Trident/6.0*)*] +Parent="IE 10.0 for Desktop" +Comment="IE 10.0 in IE 8.0 Compatibility Mode" +Platform="Win8.1" + +[Mozilla/4.0 (compatible; MSIE 8.*Windows*Trident/6.0*)*] +Parent="IE 10.0 for Desktop" +Comment="IE 10.0 in IE 8.0 Compatibility Mode" +Platform="Win32" + +[Mozilla/5.0 (compatible; MSIE 8.*Windows NT 6.0*Trident/6.0*)*] +Parent="IE 10.0 for Desktop" +Comment="IE 10.0 in IE 8.0 Compatibility Mode" +Platform="WinVista" + +[Mozilla/5.0 (compatible; MSIE 8.*Windows NT 6.1*Trident/6.0*)*] +Parent="IE 10.0 for Desktop" +Comment="IE 10.0 in IE 8.0 Compatibility Mode" +Platform="Win7" + +[Mozilla/5.0 (compatible; MSIE 8.*Windows NT 6.2*Trident/6.0*)*] +Parent="IE 10.0 for Desktop" +Comment="IE 10.0 in IE 8.0 Compatibility Mode" +Platform="Win8" + +[Mozilla/5.0 (compatible; MSIE 8.*Windows NT 6.3*Trident/6.0*)*] +Parent="IE 10.0 for Desktop" +Comment="IE 10.0 in IE 8.0 Compatibility Mode" +Platform="Win8.1" + +[Mozilla/5.0 (compatible; MSIE 8.*Windows*Trident/6.0*)*] +Parent="IE 10.0 for Desktop" +Comment="IE 10.0 in IE 8.0 Compatibility Mode" +Platform="Win32" + +[Mozilla/4.0 (compatible; MSIE 7.*Windows NT 6.0*Trident/6.0*)*] +Parent="IE 10.0 for Desktop" +Comment="IE 10.0 in IE 7.0 Compatibility Mode" +Platform="WinVista" + +[Mozilla/4.0 (compatible; MSIE 7.*Windows NT 6.1*Trident/6.0*)*] +Parent="IE 10.0 for Desktop" +Comment="IE 10.0 in IE 7.0 Compatibility Mode" +Platform="Win7" + +[Mozilla/4.0 (compatible; MSIE 7.*Windows NT 6.2*Trident/6.0*)*] +Parent="IE 10.0 for Desktop" +Comment="IE 10.0 in IE 7.0 Compatibility Mode" +Platform="Win8" + +[Mozilla/4.0 (compatible; MSIE 7.*Windows NT 6.3*Trident/6.0*)*] +Parent="IE 10.0 for Desktop" +Comment="IE 10.0 in IE 7.0 Compatibility Mode" +Platform="Win8.1" + +[Mozilla/4.0 (compatible; MSIE 7.*Windows*Trident/6.0*)*] +Parent="IE 10.0 for Desktop" +Comment="IE 10.0 in IE 7.0 Compatibility Mode" +Platform="Win32" + +[Mozilla/5.0 (compatible; MSIE 7.*Windows NT 6.0*Trident/6.0*)*] +Parent="IE 10.0 for Desktop" +Comment="IE 10.0 in IE 7.0 Compatibility Mode" +Platform="WinVista" + +[Mozilla/5.0 (compatible; MSIE 7.*Windows NT 6.1*Trident/6.0*)*] +Parent="IE 10.0 for Desktop" +Comment="IE 10.0 in IE 7.0 Compatibility Mode" +Platform="Win7" + +[Mozilla/5.0 (compatible; MSIE 7.*Windows NT 6.2*Trident/6.0*)*] +Parent="IE 10.0 for Desktop" +Comment="IE 10.0 in IE 7.0 Compatibility Mode" +Platform="Win8" + +[Mozilla/5.0 (compatible; MSIE 7.*Windows NT 6.3*Trident/6.0*)*] +Parent="IE 10.0 for Desktop" +Comment="IE 10.0 in IE 7.0 Compatibility Mode" +Platform="Win8.1" + +[Mozilla/5.0 (compatible; MSIE 7.*Windows*Trident/6.0*)*] +Parent="IE 10.0 for Desktop" +Comment="IE 10.0 in IE 7.0 Compatibility Mode" +Platform="Win32" + +[Mozilla/4.0 (*MSIE 7.*Trident/6.0*)*] +Parent="IE 10.0 for Desktop" +Comment="IE 10.0 in IE 7.0 Compatibility Mode" +Platform="Win32" + +[Mozilla/5.0 (*MSIE 7.*Trident/6.0*)*] +Parent="IE 10.0 for Desktop" +Comment="IE 10.0 in IE 7.0 Compatibility Mode" +Platform="Win32" + +[Mozilla/5.0 (compatible; MSIE 10.0; Windows 95; Anonymisiert*Trident/6.0*)*] +Parent="IE 10.0 for Desktop" +Platform="Win8" + +[Mozilla/5.0 (compatible; MSIE 10.0*; *Windows NT 6.2*Trident/6.0; Xbox; Xbox One*] +Parent="IE 10.0 for Desktop" +Platform="Win8" +Device_Type="TV Device" + +[Mozilla/5.0 (compatible; MSIE 10.0*; *Windows*Trident/6.0; Xbox; Xbox One*] +Parent="IE 10.0 for Desktop" +Platform="Win32" +Device_Type="TV Device" + +[Mozilla/5.0 (compatible; MSIE 10.0*; *Windows NT 6.2*Trident/8.0*] +Parent="IE 10.0 for Desktop" +Platform="Win8" + +[Mozilla/5.0 (compatible; MSIE 10.0*; *Windows NT 6.3*Trident/8.0*] +Parent="IE 10.0 for Desktop" +Platform="Win8.1" + +[Mozilla/5.0 (compatible; MSIE 10.0*; *Windows NT 6.4*Trident/8.0*] +Parent="IE 10.0 for Desktop" +Platform="Win10" + +[Mozilla/5.0 (compatible; MSIE 10.0*; *Windows NT 10.0*Trident/8.0*] +Parent="IE 10.0 for Desktop" +Platform="Win10" + +[Mozilla/5.0 (compatible; MSIE 10.0*; Trident/6.0; *Windows NT 6.1*] +Parent="IE 10.0 for Desktop" +Platform="Win7" + +[Mozilla/5.0 (compatible; MSIE 10.0*; Trident/6.0; *Windows*] +Parent="IE 10.0 for Desktop" +Platform="Win32" + +[Mozilla/5.0 (compatible; MSIE 10.0*; *Windows NT 6.0*] +Parent="IE 10.0 for Desktop" +Platform="WinVista" + +[Mozilla/5.0 (compatible; MSIE 10.0*; *Windows NT 6.1*] +Parent="IE 10.0 for Desktop" +Platform="Win7" + +[Mozilla/5.0 (compatible; MSIE 10.0*; *Windows NT 6.2*] +Parent="IE 10.0 for Desktop" +Platform="Win8" + +[Mozilla/5.0 (compatible; MSIE 10.0*; *Windows*] +Parent="IE 10.0 for Desktop" +Platform="Win32" + +[Mozilla/4.0 (compatible; MSIE 10.0*; *Windows NT 6.0*] +Parent="IE 10.0 for Desktop" +Platform="WinVista" + +[Mozilla/4.0 (compatible; MSIE 10.0*; *Windows NT 6.1*] +Parent="IE 10.0 for Desktop" +Platform="Win7" + +[Mozilla/4.0 (compatible; MSIE 10.0*; *Windows NT 6.2*] +Parent="IE 10.0 for Desktop" +Platform="Win8" + +[Mozilla/4.0 (compatible; MSIE 10.0*; *Windows*] +Parent="IE 10.0 for Desktop" +Platform="Win32" + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; IE 9.0 + +[IE 9.0] +Parent="DefaultProperties" +Comment="IE 9.0" +Browser="IE" +Version="9.0" +Device_Type="Desktop" + +[Mozilla/4.0 (compatible; MSIE 9.0*; *Windows NT 6.0*Trident/5.0*] +Parent="IE 9.0" +Platform="WinVista" + +[Mozilla/4.0 (compatible; MSIE 9.0*; *Windows NT 6.1*Trident/5.0*] +Parent="IE 9.0" +Platform="Win7" + +[Mozilla/4.0 (compatible; MSIE 9.0*; *Windows NT 6.2*Trident/5.0*] +Parent="IE 9.0" +Platform="Win8" + +[Mozilla/4.0 (compatible; MSIE 9.0*; *Windows*Trident/5.0*] +Parent="IE 9.0" +Platform="Win32" + +[Mozilla/5.0 (compatible; MSIE 9.0*; *Windows NT 6.0*Trident/5.0; Xbox*] +Parent="IE 9.0" +Platform="WinVista" +Device_Type="TV Device" + +[Mozilla/5.0 (compatible; MSIE 9.0*; *Windows NT 6.1*Trident/5.0; Xbox*] +Parent="IE 9.0" +Platform="Win7" +Device_Type="TV Device" + +[Mozilla/5.0 (compatible; MSIE 9.0*; *Windows NT 6.2*Trident/5.0; Xbox*] +Parent="IE 9.0" +Platform="Win8" +Device_Type="TV Device" + +[Mozilla/5.0 (compatible; MSIE 9.0*; *Windows*Trident/5.0; Xbox*] +Parent="IE 9.0" +Platform="Win32" +Device_Type="TV Device" + +[Mozilla/5.0 (compatible; MSIE 9.0*; *Windows NT 6.0*Trident/5.0*] +Parent="IE 9.0" +Platform="WinVista" + +[Mozilla/5.0 (compatible; MSIE 9.0*; *Windows NT 6.1*Trident/5.0*] +Parent="IE 9.0" +Platform="Win7" + +[Mozilla/5.0 (compatible; MSIE 9.0*; *Windows NT 6.2*Trident/5.0*] +Parent="IE 9.0" +Platform="Win8" + +[Mozilla/5.0 (compatible; MSIE 9.0*; *Windows*Trident/5.0*] +Parent="IE 9.0" +Platform="Win32" + +[Mozilla/4.0 (compatible; MSIE 7.0; *Windows NT 6.0*Trident/5.0*)*] +Parent="IE 9.0" +Comment="IE 9.0 in IE 7.0 Compatibility Mode" +Platform="WinVista" + +[Mozilla/4.0 (compatible; MSIE 7.0; *Windows NT 6.1*Trident/5.0*)*] +Parent="IE 9.0" +Comment="IE 9.0 in IE 7.0 Compatibility Mode" +Platform="Win7" + +[Mozilla/4.0 (compatible; MSIE 7.0; *Windows NT 6.2*Trident/5.0*)*] +Parent="IE 9.0" +Comment="IE 9.0 in IE 7.0 Compatibility Mode" +Platform="Win8" + +[Mozilla/4.0 (compatible; MSIE 7.0; *Windows*Trident/5.0*)*] +Parent="IE 9.0" +Comment="IE 9.0 in IE 7.0 Compatibility Mode" +Platform="Win32" + +[Mozilla/5.0 (compatible; MSIE 7.0; *Windows NT 6.0*Trident/5.0*)*] +Parent="IE 9.0" +Comment="IE 9.0 in IE 7.0 Compatibility Mode" +Platform="WinVista" + +[Mozilla/5.0 (compatible; MSIE 7.0; *Windows NT 6.1*Trident/5.0*)*] +Parent="IE 9.0" +Comment="IE 9.0 in IE 7.0 Compatibility Mode" +Platform="Win7" + +[Mozilla/5.0 (compatible; MSIE 7.0; *Windows NT 6.2*Trident/5.0*)*] +Parent="IE 9.0" +Comment="IE 9.0 in IE 7.0 Compatibility Mode" +Platform="Win8" + +[Mozilla/5.0 (compatible; MSIE 7.0; *Windows*Trident/5.0*)*] +Parent="IE 9.0" +Comment="IE 9.0 in IE 7.0 Compatibility Mode" +Platform="Win32" + +[Mozilla/4.0 (compatible; MSIE 8.0; *Windows NT 6.0*Trident/5.0*)*] +Parent="IE 9.0" +Comment="IE 9.0 in IE 8.0 Compatibility Mode" +Platform="WinVista" + +[Mozilla/4.0 (compatible; MSIE 8.0; *Windows NT 6.1*Trident/5.0*)*] +Parent="IE 9.0" +Comment="IE 9.0 in IE 8.0 Compatibility Mode" +Platform="Win7" + +[Mozilla/4.0 (compatible; MSIE 8.0; *Windows NT 6.2*Trident/5.0*)*] +Parent="IE 9.0" +Comment="IE 9.0 in IE 8.0 Compatibility Mode" +Platform="Win8" + +[Mozilla/4.0 (compatible; MSIE 8.0; *Windows*Trident/5.0*)*] +Parent="IE 9.0" +Comment="IE 9.0 in IE 8.0 Compatibility Mode" +Platform="Win32" + +[Mozilla/5.0 (compatible; MSIE 8.0; *Windows NT 6.0*Trident/5.0*)*] +Parent="IE 9.0" +Comment="IE 9.0 in IE 8.0 Compatibility Mode" +Platform="WinVista" + +[Mozilla/5.0 (compatible; MSIE 8.0; *Windows NT 6.1*Trident/5.0*)*] +Parent="IE 9.0" +Comment="IE 9.0 in IE 8.0 Compatibility Mode" +Platform="Win7" + +[Mozilla/5.0 (compatible; MSIE 8.0; *Windows NT 6.2*Trident/5.0*)*] +Parent="IE 9.0" +Comment="IE 9.0 in IE 8.0 Compatibility Mode" +Platform="Win8" + +[Mozilla/5.0 (compatible; MSIE 8.0; *Windows*Trident/5.0*)*] +Parent="IE 9.0" +Comment="IE 9.0 in IE 8.0 Compatibility Mode" +Platform="Win32" + +[Mozilla/4.0 (*MSIE 9.0*; *Windows NT 6.0*Trident/5.0*)*] +Parent="IE 9.0" +Platform="WinVista" + +[Mozilla/4.0 (*MSIE 9.0*; *Windows NT 6.1*Trident/5.0*)*] +Parent="IE 9.0" +Platform="Win7" + +[Mozilla/4.0 (*MSIE 9.0*; *Windows NT 6.2*Trident/5.0*)*] +Parent="IE 9.0" +Platform="Win8" + +[Mozilla/4.0 (*MSIE 9.0*; *Windows*Trident/5.0*)*] +Parent="IE 9.0" +Platform="Win32" + +[Mozilla/5.0 (*MSIE 9.0*; *Windows NT 6.0*Trident/5.0*)*] +Parent="IE 9.0" +Platform="WinVista" + +[Mozilla/5.0 (*MSIE 9.0*; *Windows NT 6.1*Trident/5.0*)*] +Parent="IE 9.0" +Platform="Win7" + +[Mozilla/5.0 (*MSIE 9.0*; *Windows NT 6.2*Trident/5.0*)*] +Parent="IE 9.0" +Platform="Win8" + +[Mozilla/5.0 (*MSIE 9.0*; *Windows*Trident/5.0*)*] +Parent="IE 9.0" +Platform="Win32" + +[Mozilla/5.0 (compatible; MSIE 9.0*; *Windows NT 6.0*] +Parent="IE 9.0" +Platform="WinVista" + +[Mozilla/5.0 (compatible; MSIE 9.0*; *Windows NT 6.1*] +Parent="IE 9.0" +Platform="Win7" + +[Mozilla/5.0 (compatible; MSIE 9.0*; *Windows NT 6.2*] +Parent="IE 9.0" +Platform="Win8" + +[Mozilla/5.0 (compatible; MSIE 9.0*; *Windows*] +Parent="IE 9.0" +Platform="Win32" + +[Mozilla/4.0 (compatible; MSIE 9.0*; *Windows NT 6.0*] +Parent="IE 9.0" +Platform="WinVista" + +[Mozilla/4.0 (compatible; MSIE 9.0*; *Windows NT 6.1*] +Parent="IE 9.0" +Platform="Win7" + +[Mozilla/4.0 (compatible; MSIE 9.0*; *Windows NT 6.2*] +Parent="IE 9.0" +Platform="Win8" + +[Mozilla/4.0 (compatible; MSIE 9.0*; *Windows*] +Parent="IE 9.0" +Platform="Win32" + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; IE 8.0 + +[IE 8.0] +Parent="DefaultProperties" +Comment="IE 8.0" +Browser="IE" +Version="8.0" +Device_Type="Desktop" + +[Mozilla/4.0 (compatible*; MSIE 7.0; *Windows NT 6.0*Trident/4.0*Mozilla/4.0 (compatible*; MSIE 6.0*] +Parent="IE 8.0" +Comment="IE 8.0 in IE 7.0 Compatibility Mode" +Platform="WinVista" + +[Mozilla/4.0 (compatible*; MSIE 7.0; *Windows NT 6.1*Trident/4.0*Mozilla/4.0 (compatible*; MSIE 6.0*] +Parent="IE 8.0" +Comment="IE 8.0 in IE 7.0 Compatibility Mode" +Platform="Win7" + +[Mozilla/4.0 (compatible*; MSIE 7.0; *Windows NT 6.2*Trident/4.0*Mozilla/4.0 (compatible*; MSIE 6.0*] +Parent="IE 8.0" +Comment="IE 8.0 in IE 7.0 Compatibility Mode" +Platform="Win8" + +[Mozilla/4.0 (compatible*; MSIE 7.0; *Windows*Trident/4.0*Mozilla/4.0 (compatible*; MSIE 6.0*] +Parent="IE 8.0" +Comment="IE 8.0 in IE 7.0 Compatibility Mode" +Platform="Win32" + +[Mozilla/5.0 (compatible; MSIE 7.0; *Windows NT 6.0*Trident/4.0*Mozilla/4.0 (compatible; MSIE 6.0*] +Parent="IE 8.0" +Comment="IE 8.0 in IE 7.0 Compatibility Mode" +Platform="WinVista" + +[Mozilla/5.0 (compatible; MSIE 7.0; *Windows NT 6.1*Trident/4.0*Mozilla/4.0 (compatible; MSIE 6.0*] +Parent="IE 8.0" +Comment="IE 8.0 in IE 7.0 Compatibility Mode" +Platform="Win7" + +[Mozilla/5.0 (compatible; MSIE 7.0; *Windows NT 6.2*Trident/4.0*Mozilla/4.0 (compatible; MSIE 6.0*] +Parent="IE 8.0" +Comment="IE 8.0 in IE 7.0 Compatibility Mode" +Platform="Win8" + +[Mozilla/5.0 (compatible; MSIE 7.0; *Windows*Trident/4.0*Mozilla/4.0 (compatible; MSIE 6.0*] +Parent="IE 8.0" +Comment="IE 8.0 in IE 7.0 Compatibility Mode" +Platform="Win32" + +[Mozilla/4.0 (compatible; MSIE 8.0*; *Windows NT 6.0*] +Parent="IE 8.0" +Platform="WinVista" + +[Mozilla/4.0 (compatible; MSIE 8.0*; *Windows NT 6.1*] +Parent="IE 8.0" +Platform="Win7" + +[Mozilla/4.0 (compatible; MSIE 8.0*; *Windows NT 6.2*] +Parent="IE 8.0" +Platform="Win8" + +[Mozilla/4.0 (compatible; MSIE 8.0*; *Windows*] +Parent="IE 8.0" +Platform="Win32" + +[Mozilla/5.0 (compatible; MSIE 8.0*; *Windows NT 6.0*] +Parent="IE 8.0" +Platform="WinVista" + +[Mozilla/5.0 (compatible; MSIE 8.0*; *Windows NT 6.1*] +Parent="IE 8.0" +Platform="Win7" + +[Mozilla/5.0 (compatible; MSIE 8.0*; *Windows NT 6.2*] +Parent="IE 8.0" +Platform="Win8" + +[Mozilla/5.0 (compatible; MSIE 8.0*; *Windows*] +Parent="IE 8.0" +Platform="Win32" + +[Mozilla/4.0 (compatible; MSIE 8.0*; *Windows NT 6.0*Trident/4.0*] +Parent="IE 8.0" +Platform="WinVista" + +[Mozilla/4.0 (compatible; MSIE 8.0*; *Windows NT 6.1*Trident/4.0*] +Parent="IE 8.0" +Platform="Win7" + +[Mozilla/4.0 (compatible; MSIE 8.0*; *Windows NT 6.2*Trident/4.0*] +Parent="IE 8.0" +Platform="Win8" + +[Mozilla/4.0 (compatible; MSIE 8.0*; *Windows*Trident/4.0*] +Parent="IE 8.0" +Platform="Win32" + +[Mozilla/5.0 (compatible; MSIE 8.0*; *Windows NT 6.0*Trident/4.0*] +Parent="IE 8.0" +Platform="WinVista" + +[Mozilla/5.0 (compatible; MSIE 8.0*; *Windows NT 6.1*Trident/4.0*] +Parent="IE 8.0" +Platform="Win7" + +[Mozilla/5.0 (compatible; MSIE 8.0*; *Windows NT 6.2*Trident/4.0*] +Parent="IE 8.0" +Platform="Win8" + +[Mozilla/5.0 (compatible; MSIE 8.0*; *Windows*Trident/4.0*] +Parent="IE 8.0" +Platform="Win32" + +[Mozilla/4.0 (compatible; MSIE 7.0; *Windows NT 6.0*Trident/4.0*] +Parent="IE 8.0" +Comment="IE 8.0 in IE 7.0 Compatibility Mode" +Platform="WinVista" + +[Mozilla/4.0 (compatible; MSIE 7.0; *Windows NT 6.1*Trident/4.0*] +Parent="IE 8.0" +Comment="IE 8.0 in IE 7.0 Compatibility Mode" +Platform="Win7" + +[Mozilla/4.0 (compatible; MSIE 7.0; *Windows NT 6.2*Trident/4.0*] +Parent="IE 8.0" +Comment="IE 8.0 in IE 7.0 Compatibility Mode" +Platform="Win8" + +[Mozilla/4.0 (compatible; MSIE 7.0; *Windows*Trident/4.0*] +Parent="IE 8.0" +Comment="IE 8.0 in IE 7.0 Compatibility Mode" +Platform="Win32" + +[Mozilla/5.0 (compatible; MSIE 7.0; *Windows NT 6.0*Trident/4.0*] +Parent="IE 8.0" +Comment="IE 8.0 in IE 7.0 Compatibility Mode" +Platform="WinVista" + +[Mozilla/5.0 (compatible; MSIE 7.0; *Windows NT 6.1*Trident/4.0*] +Parent="IE 8.0" +Comment="IE 8.0 in IE 7.0 Compatibility Mode" +Platform="Win7" + +[Mozilla/5.0 (compatible; MSIE 7.0; *Windows NT 6.2*Trident/4.0*] +Parent="IE 8.0" +Comment="IE 8.0 in IE 7.0 Compatibility Mode" +Platform="Win8" + +[Mozilla/5.0 (compatible; MSIE 7.0; *Windows*Trident/4.0*] +Parent="IE 8.0" +Comment="IE 8.0 in IE 7.0 Compatibility Mode" +Platform="Win32" + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; IE 7.0b + +[IE 7.0b] +Parent="DefaultProperties" +Comment="IE 7.0b" +Browser="IE" +Version="7.0b" +Device_Type="Desktop" + +[Mozilla/4.0 (compatible*; MSIE 7.0b*; *Windows NT 6.0*Mozilla/4.0 (compatible*; MSIE 6.0*] +Parent="IE 7.0b" +Platform="WinVista" + +[Mozilla/4.0 (compatible*; MSIE 7.0b*; *Windows NT 6.1*Mozilla/4.0 (compatible*; MSIE 6.0*] +Parent="IE 7.0b" +Platform="Win7" + +[Mozilla/4.0 (compatible*; MSIE 7.0b*; *Windows NT 6.2*Mozilla/4.0 (compatible*; MSIE 6.0*] +Parent="IE 7.0b" +Platform="Win8" + +[Mozilla/4.0 (compatible*; MSIE 7.0b*; *Windows*Mozilla/4.0 (compatible*; MSIE 6.0*] +Parent="IE 7.0b" +Platform="Win32" + +[Mozilla/5.0 (compatible; MSIE 7.0b*; *Windows NT 6.0*Mozilla/4.0 (compatible; MSIE 6.0*] +Parent="IE 7.0b" +Platform="WinVista" + +[Mozilla/5.0 (compatible; MSIE 7.0b*; *Windows NT 6.1*Mozilla/4.0 (compatible; MSIE 6.0*] +Parent="IE 7.0b" +Platform="Win7" + +[Mozilla/5.0 (compatible; MSIE 7.0b*; *Windows NT 6.2*Mozilla/4.0 (compatible; MSIE 6.0*] +Parent="IE 7.0b" +Platform="Win8" + +[Mozilla/5.0 (compatible; MSIE 7.0b*; *Windows*Mozilla/4.0 (compatible; MSIE 6.0*] +Parent="IE 7.0b" +Platform="Win32" + +[Mozilla/4.0 (compatible*; MSIE 7.0b*; *Windows NT 6.0*] +Parent="IE 7.0b" +Platform="WinVista" + +[Mozilla/4.0 (compatible*; MSIE 7.0b*; *Windows NT 6.1*] +Parent="IE 7.0b" +Platform="Win7" + +[Mozilla/4.0 (compatible*; MSIE 7.0b*; *Windows NT 6.2*] +Parent="IE 7.0b" +Platform="Win8" + +[Mozilla/4.0 (compatible*; MSIE 7.0b*; *Windows*] +Parent="IE 7.0b" +Platform="Win32" + +[Mozilla/5.0 (compatible; MSIE 7.0b*; *Windows NT 6.0*] +Parent="IE 7.0b" +Platform="WinVista" + +[Mozilla/5.0 (compatible; MSIE 7.0b*; *Windows NT 6.1*] +Parent="IE 7.0b" +Platform="Win7" + +[Mozilla/5.0 (compatible; MSIE 7.0b*; *Windows NT 6.2*] +Parent="IE 7.0b" +Platform="Win8" + +[Mozilla/5.0 (compatible; MSIE 7.0b*; *Windows*] +Parent="IE 7.0b" +Platform="Win32" + +[Mozilla/4.0 (*MSIE 7.0b*] +Parent="IE 7.0b" + +[Mozilla/5.0 (*MSIE 7.0b*] +Parent="IE 7.0b" + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; IE 7.0 + +[IE 7.0] +Parent="DefaultProperties" +Comment="IE 7.0" +Browser="IE" +Version="7.0" +Device_Type="Desktop" + +[Mozilla/4.0 (compatible*; MSIE 7.0*; *Windows NT 6.0*Mozilla/4.0 (compatible*; MSIE 6.0*] +Parent="IE 7.0" +Platform="WinVista" + +[Mozilla/4.0 (compatible*; MSIE 7.0*; *Windows NT 6.1*Mozilla/4.0 (compatible*; MSIE 6.0*] +Parent="IE 7.0" +Platform="Win7" + +[Mozilla/4.0 (compatible*; MSIE 7.0*; *Windows NT 6.2*Mozilla/4.0 (compatible*; MSIE 6.0*] +Parent="IE 7.0" +Platform="Win8" + +[Mozilla/4.0 (compatible*; MSIE 7.0*; *Windows*Mozilla/4.0 (compatible*; MSIE 6.0*] +Parent="IE 7.0" +Platform="Win32" + +[Mozilla/5.0 (compatible; MSIE 7.0*; *Windows NT 6.0*Mozilla/4.0 (compatible; MSIE 6.0*] +Parent="IE 7.0" +Platform="WinVista" + +[Mozilla/5.0 (compatible; MSIE 7.0*; *Windows NT 6.1*Mozilla/4.0 (compatible; MSIE 6.0*] +Parent="IE 7.0" +Platform="Win7" + +[Mozilla/5.0 (compatible; MSIE 7.0*; *Windows NT 6.2*Mozilla/4.0 (compatible; MSIE 6.0*] +Parent="IE 7.0" +Platform="Win8" + +[Mozilla/5.0 (compatible; MSIE 7.0*; *Windows*Mozilla/4.0 (compatible; MSIE 6.0*] +Parent="IE 7.0" +Platform="Win32" + +[Mozilla/4.0 (compatible*; MSIE 7.0*; *Windows NT 6.0*] +Parent="IE 7.0" +Platform="WinVista" + +[Mozilla/4.0 (compatible*; MSIE 7.0*; *Windows NT 6.1*] +Parent="IE 7.0" +Platform="Win7" + +[Mozilla/4.0 (compatible*; MSIE 7.0*; *Windows NT 6.2*] +Parent="IE 7.0" +Platform="Win8" + +[Mozilla/4.0 (compatible*; MSIE 7.0*; *Windows*] +Parent="IE 7.0" +Platform="Win32" + +[Mozilla/5.0 (compatible; MSIE 7.0*; *Windows NT 6.0*] +Parent="IE 7.0" +Platform="WinVista" + +[Mozilla/5.0 (compatible; MSIE 7.0*; *Windows NT 6.1*] +Parent="IE 7.0" +Platform="Win7" + +[Mozilla/5.0 (compatible; MSIE 7.0*; *Windows NT 6.2*] +Parent="IE 7.0" +Platform="Win8" + +[Mozilla/5.0 (compatible; MSIE 7.0*; *Windows*] +Parent="IE 7.0" +Platform="Win32" + +[Mozilla/4.0 (*MSIE 7.0*] +Parent="IE 7.0" + +[Mozilla/5.0 (*MSIE 7.0*] +Parent="IE 7.0" + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; IE 6.0 + +[IE 6.0 for Mobile] +Parent="DefaultProperties" +Comment="IE 6.0" +Browser="IE" +Version="6.0" +isMobileDevice="true" +Device_Type="Mobile Phone" + +[IE 6.0 for Desktop] +Parent="DefaultProperties" +Comment="IE 6.0" +Browser="IE" +Version="6.0" +Device_Type="Desktop" + +[Mozilla/4.0 (compatible; MSIE 6.0*; *Windows NT 6.0*] +Parent="IE 6.0 for Desktop" +Platform="WinVista" + +[Mozilla/4.0 (compatible; MSIE 6.0*; *Windows NT 6.1*] +Parent="IE 6.0 for Desktop" +Platform="Win7" + +[Mozilla/4.0 (compatible; MSIE 6.0*; *Windows NT 6.2*] +Parent="IE 6.0 for Desktop" +Platform="Win8" + +[Mozilla/4.0 (compatible; MSIE 6.0*; *Windows*] +Parent="IE 6.0 for Desktop" +Platform="Win32" + +[Mozilla/5.0 (compatible; MSIE 6.0*; *Windows NT 6.0*] +Parent="IE 6.0 for Desktop" +Platform="WinVista" + +[Mozilla/5.0 (compatible; MSIE 6.0*; *Windows NT 6.1*] +Parent="IE 6.0 for Desktop" +Platform="Win7" + +[Mozilla/5.0 (compatible; MSIE 6.0*; *Windows NT 6.2*] +Parent="IE 6.0 for Desktop" +Platform="Win8" + +[Mozilla/5.0 (compatible; MSIE 6.0*; *Windows*] +Parent="IE 6.0 for Desktop" +Platform="Win32" + +[Mozilla/4.0 (*MSIE 6.0*)*] +Parent="IE 6.0 for Desktop" + +[Mozilla/5.0 (*MSIE 6.0*)*] +Parent="IE 6.0 for Desktop" + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Firefox 50.0 + +[Firefox 50.0] +Parent="DefaultProperties" +Comment="Firefox 50.0" +Browser="Firefox" +Version="50.0" +Device_Type="Desktop" + +[Mozilla/5.0 (*Linux*) Gecko* Firefox/50.0*] +Parent="Firefox 50.0" +Platform="Linux" + +[Mozilla/5.0 (*Windows NT 6.0*) Gecko* Firefox/50.0*] +Parent="Firefox 50.0" +Platform="WinVista" + +[Mozilla/5.0 (*Windows NT 6.1*) Gecko* Firefox/50.0*] +Parent="Firefox 50.0" +Platform="Win7" + +[Mozilla/5.0 (*Windows NT 6.2*) Gecko* Firefox/50.0*] +Parent="Firefox 50.0" +Platform="Win8" + +[Mozilla/5.0 (*Windows NT 6.3*) Gecko* Firefox/50.0*] +Parent="Firefox 50.0" +Platform="Win8.1" + +[Mozilla/5.0 (*Windows NT 6.4*) Gecko* Firefox/50.0*] +Parent="Firefox 50.0" +Platform="Win10" + +[Mozilla/5.0 (*Windows NT 10.0*) Gecko* Firefox/50.0*] +Parent="Firefox 50.0" +Platform="Win10" + +[Mozilla/5.0 (*Mac OS X*) Gecko* Firefox/50.0*] +Parent="Firefox 50.0" +Platform="MacOSX" + +[Mozilla/4.0 (*Linux*) Gecko* Firefox/50.0*] +Parent="Firefox 50.0" +Platform="Linux" + +[Mozilla/4.0 (*Windows NT 6.0*) Gecko* Firefox/50.0*] +Parent="Firefox 50.0" +Platform="WinVista" + +[Mozilla/4.0 (*Windows NT 6.1*) Gecko* Firefox/50.0*] +Parent="Firefox 50.0" +Platform="Win7" + +[Mozilla/4.0 (*Windows NT 6.2*) Gecko* Firefox/50.0*] +Parent="Firefox 50.0" +Platform="Win8" + +[Mozilla/4.0 (*Windows NT 6.3*) Gecko* Firefox/50.0*] +Parent="Firefox 50.0" +Platform="Win8.1" + +[Mozilla/4.0 (*Windows NT 6.4*) Gecko* Firefox/50.0*] +Parent="Firefox 50.0" +Platform="Win10" + +[Mozilla/4.0 (*Windows NT 10.0*) Gecko* Firefox/50.0*] +Parent="Firefox 50.0" +Platform="Win10" + +[Mozilla/4.0 (*Mac OS X*) Gecko* Firefox/50.0*] +Parent="Firefox 50.0" +Platform="MacOSX" + +[Mozilla/5.0 (*Windows NT 6.0*; rv:50*) Gecko* Firefox/50*anonymized by *] +Parent="Firefox 50.0" +Platform="WinVista" + +[Mozilla/5.0 (*Windows NT 6.1*; rv:50*) Gecko* Firefox/50*anonymized by *] +Parent="Firefox 50.0" +Platform="Win7" + +[Mozilla/5.0 (*Windows*; rv:50*) Gecko* Firefox/50*anonymized by *] +Parent="Firefox 50.0" +Platform="Win32" + +[Mozilla/5.0 (*Windows NT 6.0*; rv:50*) Gecko* Firefox anonymized by *] +Parent="Firefox 50.0" +Platform="WinVista" + +[Mozilla/5.0 (*Windows*; rv:50*) Gecko* Firefox anonymized by *] +Parent="Firefox 50.0" +Platform="Win32" + +[Mozilla/5.0 (*Windows*) Gecko* Firefox/50.0* Anonymisiert*] +Parent="Firefox 50.0" +Platform="Win32" + +[Firefox/50.0*anonymized by Abelssoft*] +Parent="Firefox 50.0" +Platform="Win32" + +[Mozilla/5.0 (masking-agent; rv:*) Gecko* Firefox/50.0*] +Parent="Firefox 50.0" + +[Mozilla/5.0 (*Windows NT 6.0*) Gecko*/50.0*] +Parent="Firefox 50.0" +Platform="WinVista" + +[Mozilla/5.0 (*Windows NT 6.1*) Gecko*/50.0*] +Parent="Firefox 50.0" +Platform="Win7" + +[Mozilla/5.0 (*Windows NT 6.2*) Gecko*/50.0*] +Parent="Firefox 50.0" +Platform="Win8" + +[Mozilla/5.0 (*Windows NT 6.3*) Gecko*/50.0*] +Parent="Firefox 50.0" +Platform="Win8.1" + +[Mozilla/5.0 (*Windows NT 6.4*) Gecko*/50.0*] +Parent="Firefox 50.0" +Platform="Win10" + +[Mozilla/5.0 (*Windows NT 10.0*) Gecko*/50.0*] +Parent="Firefox 50.0" +Platform="Win10" + +[Mozilla/5.0 (*Windows NT 6.0*rv:50.0*) Gecko*/] +Parent="Firefox 50.0" +Platform="WinVista" + +[Mozilla/5.0 (*Windows NT 6.1*rv:50.0*) Gecko*/] +Parent="Firefox 50.0" +Platform="Win7" + +[Mozilla/5.0 (*Windows NT 6.2*rv:50.0*) Gecko*/] +Parent="Firefox 50.0" +Platform="Win8" + +[Mozilla/5.0 (*Windows NT 6.3*rv:50.0*) Gecko*/] +Parent="Firefox 50.0" +Platform="Win8.1" + +[Mozilla/5.0 (*Windows NT 6.4*rv:50.0*) Gecko*/] +Parent="Firefox 50.0" +Platform="Win10" + +[Mozilla/5.0 (*Windows NT 10.0*rv:50.0*) Gecko*/] +Parent="Firefox 50.0" +Platform="Win10" + +[Mozilla/5.0 (*Mac OS X*) Gecko*/50.0*] +Parent="Firefox 50.0" +Platform="MacOSX" + +[Mozilla/5.0 (*Windows NT 6.4*rv:50.0*) Gecko* Firefox*] +Parent="Firefox 50.0" +Platform="Win10" + +[Mozilla/5.0 (*Windows NT 10.0*rv:50.0*) Gecko* Firefox*] +Parent="Firefox 50.0" +Platform="Win10" + +[Firefox 50.0 for Android] +Parent="DefaultProperties" +Comment="Firefox 50.0" +Browser="Firefox" +Version="50.0" +Platform="Android" +isMobileDevice="true" +Device_Type="Mobile Phone" + +[Mozilla/5.0 (*Android*Mobile*) Gecko* Firefox/50.*] +Parent="Firefox 50.0 for Android" + +[Mozilla/5.0 (*Android*Tablet*) Gecko* Firefox/50.*] +Parent="Firefox 50.0 for Android" +isTablet="true" +Device_Type="Tablet" + +[Firefox 49.0] +Parent="DefaultProperties" +Comment="Firefox 49.0" +Browser="Firefox" +Version="49.0" +Device_Type="Desktop" + +[Mozilla/5.0 (*Linux*) Gecko* Firefox/49.0*] +Parent="Firefox 49.0" +Platform="Linux" + +[Mozilla/5.0 (*Windows NT 6.0*) Gecko* Firefox/49.0*] +Parent="Firefox 49.0" +Platform="WinVista" + +[Mozilla/5.0 (*Windows NT 6.1*) Gecko* Firefox/49.0*] +Parent="Firefox 49.0" +Platform="Win7" + +[Mozilla/5.0 (*Windows NT 6.2*) Gecko* Firefox/49.0*] +Parent="Firefox 49.0" +Platform="Win8" + +[Mozilla/5.0 (*Windows NT 6.3*) Gecko* Firefox/49.0*] +Parent="Firefox 49.0" +Platform="Win8.1" + +[Mozilla/5.0 (*Windows NT 6.4*) Gecko* Firefox/49.0*] +Parent="Firefox 49.0" +Platform="Win10" + +[Mozilla/5.0 (*Windows NT 10.0*) Gecko* Firefox/49.0*] +Parent="Firefox 49.0" +Platform="Win10" + +[Mozilla/5.0 (*Mac OS X*) Gecko* Firefox/49.0*] +Parent="Firefox 49.0" +Platform="MacOSX" + +[Mozilla/4.0 (*Linux*) Gecko* Firefox/49.0*] +Parent="Firefox 49.0" +Platform="Linux" + +[Mozilla/4.0 (*Windows NT 6.0*) Gecko* Firefox/49.0*] +Parent="Firefox 49.0" +Platform="WinVista" + +[Mozilla/4.0 (*Windows NT 6.1*) Gecko* Firefox/49.0*] +Parent="Firefox 49.0" +Platform="Win7" + +[Mozilla/4.0 (*Windows NT 6.2*) Gecko* Firefox/49.0*] +Parent="Firefox 49.0" +Platform="Win8" + +[Mozilla/4.0 (*Windows NT 6.3*) Gecko* Firefox/49.0*] +Parent="Firefox 49.0" +Platform="Win8.1" + +[Mozilla/4.0 (*Windows NT 6.4*) Gecko* Firefox/49.0*] +Parent="Firefox 49.0" +Platform="Win10" + +[Mozilla/4.0 (*Windows NT 10.0*) Gecko* Firefox/49.0*] +Parent="Firefox 49.0" +Platform="Win10" + +[Mozilla/4.0 (*Mac OS X*) Gecko* Firefox/49.0*] +Parent="Firefox 49.0" +Platform="MacOSX" + +[Mozilla/5.0 (*Windows NT 6.0*; rv:49*) Gecko* Firefox/49*anonymized by *] +Parent="Firefox 49.0" +Platform="WinVista" + +[Mozilla/5.0 (*Windows NT 6.1*; rv:49*) Gecko* Firefox/49*anonymized by *] +Parent="Firefox 49.0" +Platform="Win7" + +[Mozilla/5.0 (*Windows*; rv:49*) Gecko* Firefox/49*anonymized by *] +Parent="Firefox 49.0" +Platform="Win32" + +[Mozilla/5.0 (*Windows NT 6.0*; rv:49*) Gecko* Firefox anonymized by *] +Parent="Firefox 49.0" +Platform="WinVista" + +[Mozilla/5.0 (*Windows*; rv:49*) Gecko* Firefox anonymized by *] +Parent="Firefox 49.0" +Platform="Win32" + +[Mozilla/5.0 (*Windows*) Gecko* Firefox/49.0* Anonymisiert*] +Parent="Firefox 49.0" +Platform="Win32" + +[Firefox/49.0*anonymized by Abelssoft*] +Parent="Firefox 49.0" +Platform="Win32" + +[Mozilla/5.0 (masking-agent; rv:*) Gecko* Firefox/49.0*] +Parent="Firefox 49.0" + +[Mozilla/5.0 (*Windows NT 6.0*) Gecko*/49.0*] +Parent="Firefox 49.0" +Platform="WinVista" + +[Mozilla/5.0 (*Windows NT 6.1*) Gecko*/49.0*] +Parent="Firefox 49.0" +Platform="Win7" + +[Mozilla/5.0 (*Windows NT 6.2*) Gecko*/49.0*] +Parent="Firefox 49.0" +Platform="Win8" + +[Mozilla/5.0 (*Windows NT 6.3*) Gecko*/49.0*] +Parent="Firefox 49.0" +Platform="Win8.1" + +[Mozilla/5.0 (*Windows NT 6.4*) Gecko*/49.0*] +Parent="Firefox 49.0" +Platform="Win10" + +[Mozilla/5.0 (*Windows NT 10.0*) Gecko*/49.0*] +Parent="Firefox 49.0" +Platform="Win10" + +[Mozilla/5.0 (*Windows NT 6.0*rv:49.0*) Gecko*/] +Parent="Firefox 49.0" +Platform="WinVista" + +[Mozilla/5.0 (*Windows NT 6.1*rv:49.0*) Gecko*/] +Parent="Firefox 49.0" +Platform="Win7" + +[Mozilla/5.0 (*Windows NT 6.2*rv:49.0*) Gecko*/] +Parent="Firefox 49.0" +Platform="Win8" + +[Mozilla/5.0 (*Windows NT 6.3*rv:49.0*) Gecko*/] +Parent="Firefox 49.0" +Platform="Win8.1" + +[Mozilla/5.0 (*Windows NT 6.4*rv:49.0*) Gecko*/] +Parent="Firefox 49.0" +Platform="Win10" + +[Mozilla/5.0 (*Windows NT 10.0*rv:49.0*) Gecko*/] +Parent="Firefox 49.0" +Platform="Win10" + +[Mozilla/5.0 (*Mac OS X*) Gecko*/49.0*] +Parent="Firefox 49.0" +Platform="MacOSX" + +[Mozilla/5.0 (*Windows NT 6.4*rv:49.0*) Gecko* Firefox*] +Parent="Firefox 49.0" +Platform="Win10" + +[Mozilla/5.0 (*Windows NT 10.0*rv:49.0*) Gecko* Firefox*] +Parent="Firefox 49.0" +Platform="Win10" + +[Firefox 49.0 for Android] +Parent="DefaultProperties" +Comment="Firefox 49.0" +Browser="Firefox" +Version="49.0" +Platform="Android" +isMobileDevice="true" +Device_Type="Mobile Phone" + +[Mozilla/5.0 (*Android*Mobile*) Gecko* Firefox/49.*] +Parent="Firefox 49.0 for Android" + +[Mozilla/5.0 (*Android*Tablet*) Gecko* Firefox/49.*] +Parent="Firefox 49.0 for Android" +isTablet="true" +Device_Type="Tablet" + +[Firefox 48.0] +Parent="DefaultProperties" +Comment="Firefox 48.0" +Browser="Firefox" +Version="48.0" +Device_Type="Desktop" + +[Mozilla/5.0 (*Linux*) Gecko* Firefox/48.0*] +Parent="Firefox 48.0" +Platform="Linux" + +[Mozilla/5.0 (*Windows NT 6.0*) Gecko* Firefox/48.0*] +Parent="Firefox 48.0" +Platform="WinVista" + +[Mozilla/5.0 (*Windows NT 6.1*) Gecko* Firefox/48.0*] +Parent="Firefox 48.0" +Platform="Win7" + +[Mozilla/5.0 (*Windows NT 6.2*) Gecko* Firefox/48.0*] +Parent="Firefox 48.0" +Platform="Win8" + +[Mozilla/5.0 (*Windows NT 6.3*) Gecko* Firefox/48.0*] +Parent="Firefox 48.0" +Platform="Win8.1" + +[Mozilla/5.0 (*Windows NT 6.4*) Gecko* Firefox/48.0*] +Parent="Firefox 48.0" +Platform="Win10" + +[Mozilla/5.0 (*Windows NT 10.0*) Gecko* Firefox/48.0*] +Parent="Firefox 48.0" +Platform="Win10" + +[Mozilla/5.0 (*Mac OS X*) Gecko* Firefox/48.0*] +Parent="Firefox 48.0" +Platform="MacOSX" + +[Mozilla/4.0 (*Linux*) Gecko* Firefox/48.0*] +Parent="Firefox 48.0" +Platform="Linux" + +[Mozilla/4.0 (*Windows NT 6.0*) Gecko* Firefox/48.0*] +Parent="Firefox 48.0" +Platform="WinVista" + +[Mozilla/4.0 (*Windows NT 6.1*) Gecko* Firefox/48.0*] +Parent="Firefox 48.0" +Platform="Win7" + +[Mozilla/4.0 (*Windows NT 6.2*) Gecko* Firefox/48.0*] +Parent="Firefox 48.0" +Platform="Win8" + +[Mozilla/4.0 (*Windows NT 6.3*) Gecko* Firefox/48.0*] +Parent="Firefox 48.0" +Platform="Win8.1" + +[Mozilla/4.0 (*Windows NT 6.4*) Gecko* Firefox/48.0*] +Parent="Firefox 48.0" +Platform="Win10" + +[Mozilla/4.0 (*Windows NT 10.0*) Gecko* Firefox/48.0*] +Parent="Firefox 48.0" +Platform="Win10" + +[Mozilla/4.0 (*Mac OS X*) Gecko* Firefox/48.0*] +Parent="Firefox 48.0" +Platform="MacOSX" + +[Mozilla/5.0 (*Windows NT 6.0*; rv:48*) Gecko* Firefox/48*anonymized by *] +Parent="Firefox 48.0" +Platform="WinVista" + +[Mozilla/5.0 (*Windows NT 6.1*; rv:48*) Gecko* Firefox/48*anonymized by *] +Parent="Firefox 48.0" +Platform="Win7" + +[Mozilla/5.0 (*Windows*; rv:48*) Gecko* Firefox/48*anonymized by *] +Parent="Firefox 48.0" +Platform="Win32" + +[Mozilla/5.0 (*Windows NT 6.0*; rv:48*) Gecko* Firefox anonymized by *] +Parent="Firefox 48.0" +Platform="WinVista" + +[Mozilla/5.0 (*Windows*; rv:48*) Gecko* Firefox anonymized by *] +Parent="Firefox 48.0" +Platform="Win32" + +[Mozilla/5.0 (*Windows*) Gecko* Firefox/48.0* Anonymisiert*] +Parent="Firefox 48.0" +Platform="Win32" + +[Firefox/48.0*anonymized by Abelssoft*] +Parent="Firefox 48.0" +Platform="Win32" + +[Mozilla/5.0 (masking-agent; rv:*) Gecko* Firefox/48.0*] +Parent="Firefox 48.0" + +[Mozilla/5.0 (*Windows NT 6.0*) Gecko*/48.0*] +Parent="Firefox 48.0" +Platform="WinVista" + +[Mozilla/5.0 (*Windows NT 6.1*) Gecko*/48.0*] +Parent="Firefox 48.0" +Platform="Win7" + +[Mozilla/5.0 (*Windows NT 6.2*) Gecko*/48.0*] +Parent="Firefox 48.0" +Platform="Win8" + +[Mozilla/5.0 (*Windows NT 6.3*) Gecko*/48.0*] +Parent="Firefox 48.0" +Platform="Win8.1" + +[Mozilla/5.0 (*Windows NT 6.4*) Gecko*/48.0*] +Parent="Firefox 48.0" +Platform="Win10" + +[Mozilla/5.0 (*Windows NT 10.0*) Gecko*/48.0*] +Parent="Firefox 48.0" +Platform="Win10" + +[Mozilla/5.0 (*Windows NT 6.0*rv:48.0*) Gecko*/] +Parent="Firefox 48.0" +Platform="WinVista" + +[Mozilla/5.0 (*Windows NT 6.1*rv:48.0*) Gecko*/] +Parent="Firefox 48.0" +Platform="Win7" + +[Mozilla/5.0 (*Windows NT 6.2*rv:48.0*) Gecko*/] +Parent="Firefox 48.0" +Platform="Win8" + +[Mozilla/5.0 (*Windows NT 6.3*rv:48.0*) Gecko*/] +Parent="Firefox 48.0" +Platform="Win8.1" + +[Mozilla/5.0 (*Windows NT 6.4*rv:48.0*) Gecko*/] +Parent="Firefox 48.0" +Platform="Win10" + +[Mozilla/5.0 (*Windows NT 10.0*rv:48.0*) Gecko*/] +Parent="Firefox 48.0" +Platform="Win10" + +[Mozilla/5.0 (*Mac OS X*) Gecko*/48.0*] +Parent="Firefox 48.0" +Platform="MacOSX" + +[Mozilla/5.0 (*Windows NT 6.4*rv:48.0*) Gecko* Firefox*] +Parent="Firefox 48.0" +Platform="Win10" + +[Mozilla/5.0 (*Windows NT 10.0*rv:48.0*) Gecko* Firefox*] +Parent="Firefox 48.0" +Platform="Win10" + +[Firefox 48.0 for Android] +Parent="DefaultProperties" +Comment="Firefox 48.0" +Browser="Firefox" +Version="48.0" +Platform="Android" +isMobileDevice="true" +Device_Type="Mobile Phone" + +[Mozilla/5.0 (*Android*Mobile*) Gecko* Firefox/48.*] +Parent="Firefox 48.0 for Android" + +[Mozilla/5.0 (*Android*Tablet*) Gecko* Firefox/48.*] +Parent="Firefox 48.0 for Android" +isTablet="true" +Device_Type="Tablet" + +[Firefox 47.0] +Parent="DefaultProperties" +Comment="Firefox 47.0" +Browser="Firefox" +Version="47.0" +Device_Type="Desktop" + +[Mozilla/5.0 (*Linux*) Gecko* Firefox/47.0*] +Parent="Firefox 47.0" +Platform="Linux" + +[Mozilla/5.0 (*Windows NT 6.0*) Gecko* Firefox/47.0*] +Parent="Firefox 47.0" +Platform="WinVista" + +[Mozilla/5.0 (*Windows NT 6.1*) Gecko* Firefox/47.0*] +Parent="Firefox 47.0" +Platform="Win7" + +[Mozilla/5.0 (*Windows NT 6.2*) Gecko* Firefox/47.0*] +Parent="Firefox 47.0" +Platform="Win8" + +[Mozilla/5.0 (*Windows NT 6.3*) Gecko* Firefox/47.0*] +Parent="Firefox 47.0" +Platform="Win8.1" + +[Mozilla/5.0 (*Windows NT 6.4*) Gecko* Firefox/47.0*] +Parent="Firefox 47.0" +Platform="Win10" + +[Mozilla/5.0 (*Windows NT 10.0*) Gecko* Firefox/47.0*] +Parent="Firefox 47.0" +Platform="Win10" + +[Mozilla/5.0 (*Mac OS X*) Gecko* Firefox/47.0*] +Parent="Firefox 47.0" +Platform="MacOSX" + +[Mozilla/4.0 (*Linux*) Gecko* Firefox/47.0*] +Parent="Firefox 47.0" +Platform="Linux" + +[Mozilla/4.0 (*Windows NT 6.0*) Gecko* Firefox/47.0*] +Parent="Firefox 47.0" +Platform="WinVista" + +[Mozilla/4.0 (*Windows NT 6.1*) Gecko* Firefox/47.0*] +Parent="Firefox 47.0" +Platform="Win7" + +[Mozilla/4.0 (*Windows NT 6.2*) Gecko* Firefox/47.0*] +Parent="Firefox 47.0" +Platform="Win8" + +[Mozilla/4.0 (*Windows NT 6.3*) Gecko* Firefox/47.0*] +Parent="Firefox 47.0" +Platform="Win8.1" + +[Mozilla/4.0 (*Windows NT 6.4*) Gecko* Firefox/47.0*] +Parent="Firefox 47.0" +Platform="Win10" + +[Mozilla/4.0 (*Windows NT 10.0*) Gecko* Firefox/47.0*] +Parent="Firefox 47.0" +Platform="Win10" + +[Mozilla/4.0 (*Mac OS X*) Gecko* Firefox/47.0*] +Parent="Firefox 47.0" +Platform="MacOSX" + +[Mozilla/5.0 (*Windows NT 6.0*; rv:47*) Gecko* Firefox/47*anonymized by *] +Parent="Firefox 47.0" +Platform="WinVista" + +[Mozilla/5.0 (*Windows NT 6.1*; rv:47*) Gecko* Firefox/47*anonymized by *] +Parent="Firefox 47.0" +Platform="Win7" + +[Mozilla/5.0 (*Windows*; rv:47*) Gecko* Firefox/47*anonymized by *] +Parent="Firefox 47.0" +Platform="Win32" + +[Mozilla/5.0 (*Windows NT 6.0*; rv:47*) Gecko* Firefox anonymized by *] +Parent="Firefox 47.0" +Platform="WinVista" + +[Mozilla/5.0 (*Windows*; rv:47*) Gecko* Firefox anonymized by *] +Parent="Firefox 47.0" +Platform="Win32" + +[Mozilla/5.0 (*Windows*) Gecko* Firefox/47.0* Anonymisiert*] +Parent="Firefox 47.0" +Platform="Win32" + +[Firefox/47.0*anonymized by Abelssoft*] +Parent="Firefox 47.0" +Platform="Win32" + +[Mozilla/5.0 (masking-agent; rv:*) Gecko* Firefox/47.0*] +Parent="Firefox 47.0" + +[Mozilla/5.0 (*Windows NT 6.0*) Gecko*/47.0*] +Parent="Firefox 47.0" +Platform="WinVista" + +[Mozilla/5.0 (*Windows NT 6.1*) Gecko*/47.0*] +Parent="Firefox 47.0" +Platform="Win7" + +[Mozilla/5.0 (*Windows NT 6.2*) Gecko*/47.0*] +Parent="Firefox 47.0" +Platform="Win8" + +[Mozilla/5.0 (*Windows NT 6.3*) Gecko*/47.0*] +Parent="Firefox 47.0" +Platform="Win8.1" + +[Mozilla/5.0 (*Windows NT 6.4*) Gecko*/47.0*] +Parent="Firefox 47.0" +Platform="Win10" + +[Mozilla/5.0 (*Windows NT 10.0*) Gecko*/47.0*] +Parent="Firefox 47.0" +Platform="Win10" + +[Mozilla/5.0 (*Windows NT 6.0*rv:47.0*) Gecko*/] +Parent="Firefox 47.0" +Platform="WinVista" + +[Mozilla/5.0 (*Windows NT 6.1*rv:47.0*) Gecko*/] +Parent="Firefox 47.0" +Platform="Win7" + +[Mozilla/5.0 (*Windows NT 6.2*rv:47.0*) Gecko*/] +Parent="Firefox 47.0" +Platform="Win8" + +[Mozilla/5.0 (*Windows NT 6.3*rv:47.0*) Gecko*/] +Parent="Firefox 47.0" +Platform="Win8.1" + +[Mozilla/5.0 (*Windows NT 6.4*rv:47.0*) Gecko*/] +Parent="Firefox 47.0" +Platform="Win10" + +[Mozilla/5.0 (*Windows NT 10.0*rv:47.0*) Gecko*/] +Parent="Firefox 47.0" +Platform="Win10" + +[Mozilla/5.0 (*Mac OS X*) Gecko*/47.0*] +Parent="Firefox 47.0" +Platform="MacOSX" + +[Mozilla/5.0 (*Windows NT 6.4*rv:47.0*) Gecko* Firefox*] +Parent="Firefox 47.0" +Platform="Win10" + +[Mozilla/5.0 (*Windows NT 10.0*rv:47.0*) Gecko* Firefox*] +Parent="Firefox 47.0" +Platform="Win10" + +[Firefox 47.0 for Android] +Parent="DefaultProperties" +Comment="Firefox 47.0" +Browser="Firefox" +Version="47.0" +Platform="Android" +isMobileDevice="true" +Device_Type="Mobile Phone" + +[Mozilla/5.0 (*Android*Mobile*) Gecko* Firefox/47.*] +Parent="Firefox 47.0 for Android" + +[Mozilla/5.0 (*Android*Tablet*) Gecko* Firefox/47.*] +Parent="Firefox 47.0 for Android" +isTablet="true" +Device_Type="Tablet" + +[Firefox 46.0] +Parent="DefaultProperties" +Comment="Firefox 46.0" +Browser="Firefox" +Version="46.0" +Device_Type="Desktop" + +[Mozilla/5.0 (*Linux*) Gecko* Firefox/46.0*] +Parent="Firefox 46.0" +Platform="Linux" + +[Mozilla/5.0 (*Windows NT 6.0*) Gecko* Firefox/46.0*] +Parent="Firefox 46.0" +Platform="WinVista" + +[Mozilla/5.0 (*Windows NT 6.1*) Gecko* Firefox/46.0*] +Parent="Firefox 46.0" +Platform="Win7" + +[Mozilla/5.0 (*Windows NT 6.2*) Gecko* Firefox/46.0*] +Parent="Firefox 46.0" +Platform="Win8" + +[Mozilla/5.0 (*Windows NT 6.3*) Gecko* Firefox/46.0*] +Parent="Firefox 46.0" +Platform="Win8.1" + +[Mozilla/5.0 (*Windows NT 6.4*) Gecko* Firefox/46.0*] +Parent="Firefox 46.0" +Platform="Win10" + +[Mozilla/5.0 (*Windows NT 10.0*) Gecko* Firefox/46.0*] +Parent="Firefox 46.0" +Platform="Win10" + +[Mozilla/5.0 (*Mac OS X*) Gecko* Firefox/46.0*] +Parent="Firefox 46.0" +Platform="MacOSX" + +[Mozilla/4.0 (*Linux*) Gecko* Firefox/46.0*] +Parent="Firefox 46.0" +Platform="Linux" + +[Mozilla/4.0 (*Windows NT 6.0*) Gecko* Firefox/46.0*] +Parent="Firefox 46.0" +Platform="WinVista" + +[Mozilla/4.0 (*Windows NT 6.1*) Gecko* Firefox/46.0*] +Parent="Firefox 46.0" +Platform="Win7" + +[Mozilla/4.0 (*Windows NT 6.2*) Gecko* Firefox/46.0*] +Parent="Firefox 46.0" +Platform="Win8" + +[Mozilla/4.0 (*Windows NT 6.3*) Gecko* Firefox/46.0*] +Parent="Firefox 46.0" +Platform="Win8.1" + +[Mozilla/4.0 (*Windows NT 6.4*) Gecko* Firefox/46.0*] +Parent="Firefox 46.0" +Platform="Win10" + +[Mozilla/4.0 (*Windows NT 10.0*) Gecko* Firefox/46.0*] +Parent="Firefox 46.0" +Platform="Win10" + +[Mozilla/4.0 (*Mac OS X*) Gecko* Firefox/46.0*] +Parent="Firefox 46.0" +Platform="MacOSX" + +[Mozilla/5.0 (*Windows NT 6.0*; rv:46*) Gecko* Firefox/46*anonymized by *] +Parent="Firefox 46.0" +Platform="WinVista" + +[Mozilla/5.0 (*Windows NT 6.1*; rv:46*) Gecko* Firefox/46*anonymized by *] +Parent="Firefox 46.0" +Platform="Win7" + +[Mozilla/5.0 (*Windows*; rv:46*) Gecko* Firefox/46*anonymized by *] +Parent="Firefox 46.0" +Platform="Win32" + +[Mozilla/5.0 (*Windows NT 6.0*; rv:46*) Gecko* Firefox anonymized by *] +Parent="Firefox 46.0" +Platform="WinVista" + +[Mozilla/5.0 (*Windows*; rv:46*) Gecko* Firefox anonymized by *] +Parent="Firefox 46.0" +Platform="Win32" + +[Mozilla/5.0 (*Windows*) Gecko* Firefox/46.0* Anonymisiert*] +Parent="Firefox 46.0" +Platform="Win32" + +[Firefox/46.0*anonymized by Abelssoft*] +Parent="Firefox 46.0" +Platform="Win32" + +[Mozilla/5.0 (masking-agent; rv:*) Gecko* Firefox/46.0*] +Parent="Firefox 46.0" + +[Mozilla/5.0 (*Windows NT 6.0*) Gecko*/46.0*] +Parent="Firefox 46.0" +Platform="WinVista" + +[Mozilla/5.0 (*Windows NT 6.1*) Gecko*/46.0*] +Parent="Firefox 46.0" +Platform="Win7" + +[Mozilla/5.0 (*Windows NT 6.2*) Gecko*/46.0*] +Parent="Firefox 46.0" +Platform="Win8" + +[Mozilla/5.0 (*Windows NT 6.3*) Gecko*/46.0*] +Parent="Firefox 46.0" +Platform="Win8.1" + +[Mozilla/5.0 (*Windows NT 6.4*) Gecko*/46.0*] +Parent="Firefox 46.0" +Platform="Win10" + +[Mozilla/5.0 (*Windows NT 10.0*) Gecko*/46.0*] +Parent="Firefox 46.0" +Platform="Win10" + +[Mozilla/5.0 (*Windows NT 6.0*rv:46.0*) Gecko*/] +Parent="Firefox 46.0" +Platform="WinVista" + +[Mozilla/5.0 (*Windows NT 6.1*rv:46.0*) Gecko*/] +Parent="Firefox 46.0" +Platform="Win7" + +[Mozilla/5.0 (*Windows NT 6.2*rv:46.0*) Gecko*/] +Parent="Firefox 46.0" +Platform="Win8" + +[Mozilla/5.0 (*Windows NT 6.3*rv:46.0*) Gecko*/] +Parent="Firefox 46.0" +Platform="Win8.1" + +[Mozilla/5.0 (*Windows NT 6.4*rv:46.0*) Gecko*/] +Parent="Firefox 46.0" +Platform="Win10" + +[Mozilla/5.0 (*Windows NT 10.0*rv:46.0*) Gecko*/] +Parent="Firefox 46.0" +Platform="Win10" + +[Mozilla/5.0 (*Mac OS X*) Gecko*/46.0*] +Parent="Firefox 46.0" +Platform="MacOSX" + +[Mozilla/5.0 (*Windows NT 6.4*rv:46.0*) Gecko* Firefox*] +Parent="Firefox 46.0" +Platform="Win10" + +[Mozilla/5.0 (*Windows NT 10.0*rv:46.0*) Gecko* Firefox*] +Parent="Firefox 46.0" +Platform="Win10" + +[Firefox 46.0 for Android] +Parent="DefaultProperties" +Comment="Firefox 46.0" +Browser="Firefox" +Version="46.0" +Platform="Android" +isMobileDevice="true" +Device_Type="Mobile Phone" + +[Mozilla/5.0 (*Android*Mobile*) Gecko* Firefox/46.*] +Parent="Firefox 46.0 for Android" + +[Mozilla/5.0 (*Android*Tablet*) Gecko* Firefox/46.*] +Parent="Firefox 46.0 for Android" +isTablet="true" +Device_Type="Tablet" + +[Firefox 45.0] +Parent="DefaultProperties" +Comment="Firefox 45.0" +Browser="Firefox" +Version="45.0" +Device_Type="Desktop" + +[Mozilla/5.0 (*Linux*) Gecko* Firefox/45.0*] +Parent="Firefox 45.0" +Platform="Linux" + +[Mozilla/5.0 (*Windows NT 6.0*) Gecko* Firefox/45.0*] +Parent="Firefox 45.0" +Platform="WinVista" + +[Mozilla/5.0 (*Windows NT 6.1*) Gecko* Firefox/45.0*] +Parent="Firefox 45.0" +Platform="Win7" + +[Mozilla/5.0 (*Windows NT 6.2*) Gecko* Firefox/45.0*] +Parent="Firefox 45.0" +Platform="Win8" + +[Mozilla/5.0 (*Windows NT 6.3*) Gecko* Firefox/45.0*] +Parent="Firefox 45.0" +Platform="Win8.1" + +[Mozilla/5.0 (*Windows NT 6.4*) Gecko* Firefox/45.0*] +Parent="Firefox 45.0" +Platform="Win10" + +[Mozilla/5.0 (*Windows NT 10.0*) Gecko* Firefox/45.0*] +Parent="Firefox 45.0" +Platform="Win10" + +[Mozilla/5.0 (*Mac OS X*) Gecko* Firefox/45.0*] +Parent="Firefox 45.0" +Platform="MacOSX" + +[Mozilla/4.0 (*Linux*) Gecko* Firefox/45.0*] +Parent="Firefox 45.0" +Platform="Linux" + +[Mozilla/4.0 (*Windows NT 6.0*) Gecko* Firefox/45.0*] +Parent="Firefox 45.0" +Platform="WinVista" + +[Mozilla/4.0 (*Windows NT 6.1*) Gecko* Firefox/45.0*] +Parent="Firefox 45.0" +Platform="Win7" + +[Mozilla/4.0 (*Windows NT 6.2*) Gecko* Firefox/45.0*] +Parent="Firefox 45.0" +Platform="Win8" + +[Mozilla/4.0 (*Windows NT 6.3*) Gecko* Firefox/45.0*] +Parent="Firefox 45.0" +Platform="Win8.1" + +[Mozilla/4.0 (*Windows NT 6.4*) Gecko* Firefox/45.0*] +Parent="Firefox 45.0" +Platform="Win10" + +[Mozilla/4.0 (*Windows NT 10.0*) Gecko* Firefox/45.0*] +Parent="Firefox 45.0" +Platform="Win10" + +[Mozilla/4.0 (*Mac OS X*) Gecko* Firefox/45.0*] +Parent="Firefox 45.0" +Platform="MacOSX" + +[Mozilla/5.0 (*Windows NT 6.0*; rv:45*) Gecko* Firefox/45*anonymized by *] +Parent="Firefox 45.0" +Platform="WinVista" + +[Mozilla/5.0 (*Windows NT 6.1*; rv:45*) Gecko* Firefox/45*anonymized by *] +Parent="Firefox 45.0" +Platform="Win7" + +[Mozilla/5.0 (*Windows*; rv:45*) Gecko* Firefox/45*anonymized by *] +Parent="Firefox 45.0" +Platform="Win32" + +[Mozilla/5.0 (*Windows NT 6.0*; rv:45*) Gecko* Firefox anonymized by *] +Parent="Firefox 45.0" +Platform="WinVista" + +[Mozilla/5.0 (*Windows*; rv:45*) Gecko* Firefox anonymized by *] +Parent="Firefox 45.0" +Platform="Win32" + +[Mozilla/5.0 (*Windows*) Gecko* Firefox/45.0* Anonymisiert*] +Parent="Firefox 45.0" +Platform="Win32" + +[Firefox/45.0*anonymized by Abelssoft*] +Parent="Firefox 45.0" +Platform="Win32" + +[Mozilla/5.0 (masking-agent; rv:*) Gecko* Firefox/45.0*] +Parent="Firefox 45.0" + +[Mozilla/5.0 (*Windows NT 6.0*) Gecko*/45.0*] +Parent="Firefox 45.0" +Platform="WinVista" + +[Mozilla/5.0 (*Windows NT 6.1*) Gecko*/45.0*] +Parent="Firefox 45.0" +Platform="Win7" + +[Mozilla/5.0 (*Windows NT 6.2*) Gecko*/45.0*] +Parent="Firefox 45.0" +Platform="Win8" + +[Mozilla/5.0 (*Windows NT 6.3*) Gecko*/45.0*] +Parent="Firefox 45.0" +Platform="Win8.1" + +[Mozilla/5.0 (*Windows NT 6.4*) Gecko*/45.0*] +Parent="Firefox 45.0" +Platform="Win10" + +[Mozilla/5.0 (*Windows NT 10.0*) Gecko*/45.0*] +Parent="Firefox 45.0" +Platform="Win10" + +[Mozilla/5.0 (*Windows NT 6.0*rv:45.0*) Gecko*/] +Parent="Firefox 45.0" +Platform="WinVista" + +[Mozilla/5.0 (*Windows NT 6.1*rv:45.0*) Gecko*/] +Parent="Firefox 45.0" +Platform="Win7" + +[Mozilla/5.0 (*Windows NT 6.2*rv:45.0*) Gecko*/] +Parent="Firefox 45.0" +Platform="Win8" + +[Mozilla/5.0 (*Windows NT 6.3*rv:45.0*) Gecko*/] +Parent="Firefox 45.0" +Platform="Win8.1" + +[Mozilla/5.0 (*Windows NT 6.4*rv:45.0*) Gecko*/] +Parent="Firefox 45.0" +Platform="Win10" + +[Mozilla/5.0 (*Windows NT 10.0*rv:45.0*) Gecko*/] +Parent="Firefox 45.0" +Platform="Win10" + +[Mozilla/5.0 (*Mac OS X*) Gecko*/45.0*] +Parent="Firefox 45.0" +Platform="MacOSX" + +[Mozilla/5.0 (*Windows NT 6.4*rv:45.0*) Gecko* Firefox*] +Parent="Firefox 45.0" +Platform="Win10" + +[Mozilla/5.0 (*Windows NT 10.0*rv:45.0*) Gecko* Firefox*] +Parent="Firefox 45.0" +Platform="Win10" + +[Firefox 45.0 for Android] +Parent="DefaultProperties" +Comment="Firefox 45.0" +Browser="Firefox" +Version="45.0" +Platform="Android" +isMobileDevice="true" +Device_Type="Mobile Phone" + +[Mozilla/5.0 (*Android*Mobile*) Gecko* Firefox/45.*] +Parent="Firefox 45.0 for Android" + +[Mozilla/5.0 (*Android*Tablet*) Gecko* Firefox/45.*] +Parent="Firefox 45.0 for Android" +isTablet="true" +Device_Type="Tablet" + +[Firefox 44.0] +Parent="DefaultProperties" +Comment="Firefox 44.0" +Browser="Firefox" +Version="44.0" +Device_Type="Desktop" + +[Mozilla/5.0 (*Linux*) Gecko* Firefox/44.0*] +Parent="Firefox 44.0" +Platform="Linux" + +[Mozilla/5.0 (*Windows NT 6.0*) Gecko* Firefox/44.0*] +Parent="Firefox 44.0" +Platform="WinVista" + +[Mozilla/5.0 (*Windows NT 6.1*) Gecko* Firefox/44.0*] +Parent="Firefox 44.0" +Platform="Win7" + +[Mozilla/5.0 (*Windows NT 6.2*) Gecko* Firefox/44.0*] +Parent="Firefox 44.0" +Platform="Win8" + +[Mozilla/5.0 (*Windows NT 6.3*) Gecko* Firefox/44.0*] +Parent="Firefox 44.0" +Platform="Win8.1" + +[Mozilla/5.0 (*Windows NT 6.4*) Gecko* Firefox/44.0*] +Parent="Firefox 44.0" +Platform="Win10" + +[Mozilla/5.0 (*Windows NT 10.0*) Gecko* Firefox/44.0*] +Parent="Firefox 44.0" +Platform="Win10" + +[Mozilla/5.0 (*Mac OS X*) Gecko* Firefox/44.0*] +Parent="Firefox 44.0" +Platform="MacOSX" + +[Mozilla/4.0 (*Linux*) Gecko* Firefox/44.0*] +Parent="Firefox 44.0" +Platform="Linux" + +[Mozilla/4.0 (*Windows NT 6.0*) Gecko* Firefox/44.0*] +Parent="Firefox 44.0" +Platform="WinVista" + +[Mozilla/4.0 (*Windows NT 6.1*) Gecko* Firefox/44.0*] +Parent="Firefox 44.0" +Platform="Win7" + +[Mozilla/4.0 (*Windows NT 6.2*) Gecko* Firefox/44.0*] +Parent="Firefox 44.0" +Platform="Win8" + +[Mozilla/4.0 (*Windows NT 6.3*) Gecko* Firefox/44.0*] +Parent="Firefox 44.0" +Platform="Win8.1" + +[Mozilla/4.0 (*Windows NT 6.4*) Gecko* Firefox/44.0*] +Parent="Firefox 44.0" +Platform="Win10" + +[Mozilla/4.0 (*Windows NT 10.0*) Gecko* Firefox/44.0*] +Parent="Firefox 44.0" +Platform="Win10" + +[Mozilla/4.0 (*Mac OS X*) Gecko* Firefox/44.0*] +Parent="Firefox 44.0" +Platform="MacOSX" + +[Mozilla/5.0 (*Windows NT 6.0*; rv:44*) Gecko* Firefox/44*anonymized by *] +Parent="Firefox 44.0" +Platform="WinVista" + +[Mozilla/5.0 (*Windows NT 6.1*; rv:44*) Gecko* Firefox/44*anonymized by *] +Parent="Firefox 44.0" +Platform="Win7" + +[Mozilla/5.0 (*Windows*; rv:44*) Gecko* Firefox/44*anonymized by *] +Parent="Firefox 44.0" +Platform="Win32" + +[Mozilla/5.0 (*Windows NT 6.0*; rv:44*) Gecko* Firefox anonymized by *] +Parent="Firefox 44.0" +Platform="WinVista" + +[Mozilla/5.0 (*Windows*; rv:44*) Gecko* Firefox anonymized by *] +Parent="Firefox 44.0" +Platform="Win32" + +[Mozilla/5.0 (*Windows*) Gecko* Firefox/44.0* Anonymisiert*] +Parent="Firefox 44.0" +Platform="Win32" + +[Firefox/44.0*anonymized by Abelssoft*] +Parent="Firefox 44.0" +Platform="Win32" + +[Mozilla/5.0 (masking-agent; rv:*) Gecko* Firefox/44.0*] +Parent="Firefox 44.0" + +[Mozilla/5.0 (*Windows NT 6.0*) Gecko*/44.0*] +Parent="Firefox 44.0" +Platform="WinVista" + +[Mozilla/5.0 (*Windows NT 6.1*) Gecko*/44.0*] +Parent="Firefox 44.0" +Platform="Win7" + +[Mozilla/5.0 (*Windows NT 6.2*) Gecko*/44.0*] +Parent="Firefox 44.0" +Platform="Win8" + +[Mozilla/5.0 (*Windows NT 6.3*) Gecko*/44.0*] +Parent="Firefox 44.0" +Platform="Win8.1" + +[Mozilla/5.0 (*Windows NT 6.4*) Gecko*/44.0*] +Parent="Firefox 44.0" +Platform="Win10" + +[Mozilla/5.0 (*Windows NT 10.0*) Gecko*/44.0*] +Parent="Firefox 44.0" +Platform="Win10" + +[Mozilla/5.0 (*Windows NT 6.0*rv:44.0*) Gecko*/] +Parent="Firefox 44.0" +Platform="WinVista" + +[Mozilla/5.0 (*Windows NT 6.1*rv:44.0*) Gecko*/] +Parent="Firefox 44.0" +Platform="Win7" + +[Mozilla/5.0 (*Windows NT 6.2*rv:44.0*) Gecko*/] +Parent="Firefox 44.0" +Platform="Win8" + +[Mozilla/5.0 (*Windows NT 6.3*rv:44.0*) Gecko*/] +Parent="Firefox 44.0" +Platform="Win8.1" + +[Mozilla/5.0 (*Windows NT 6.4*rv:44.0*) Gecko*/] +Parent="Firefox 44.0" +Platform="Win10" + +[Mozilla/5.0 (*Windows NT 10.0*rv:44.0*) Gecko*/] +Parent="Firefox 44.0" +Platform="Win10" + +[Mozilla/5.0 (*Mac OS X*) Gecko*/44.0*] +Parent="Firefox 44.0" +Platform="MacOSX" + +[Mozilla/5.0 (*Windows NT 6.4*rv:44.0*) Gecko* Firefox*] +Parent="Firefox 44.0" +Platform="Win10" + +[Mozilla/5.0 (*Windows NT 10.0*rv:44.0*) Gecko* Firefox*] +Parent="Firefox 44.0" +Platform="Win10" + +[Firefox 44.0 for Android] +Parent="DefaultProperties" +Comment="Firefox 44.0" +Browser="Firefox" +Version="44.0" +Platform="Android" +isMobileDevice="true" +Device_Type="Mobile Phone" + +[Mozilla/5.0 (*Android*Mobile*) Gecko* Firefox/44.*] +Parent="Firefox 44.0 for Android" + +[Mozilla/5.0 (*Android*Tablet*) Gecko* Firefox/44.*] +Parent="Firefox 44.0 for Android" +isTablet="true" +Device_Type="Tablet" + +[Firefox 43.0] +Parent="DefaultProperties" +Comment="Firefox 43.0" +Browser="Firefox" +Version="43.0" +Device_Type="Desktop" + +[Mozilla/5.0 (*Linux*) Gecko* Firefox/43.0*] +Parent="Firefox 43.0" +Platform="Linux" + +[Mozilla/5.0 (*Windows NT 6.0*) Gecko* Firefox/43.0*] +Parent="Firefox 43.0" +Platform="WinVista" + +[Mozilla/5.0 (*Windows NT 6.1*) Gecko* Firefox/43.0*] +Parent="Firefox 43.0" +Platform="Win7" + +[Mozilla/5.0 (*Windows NT 6.2*) Gecko* Firefox/43.0*] +Parent="Firefox 43.0" +Platform="Win8" + +[Mozilla/5.0 (*Windows NT 6.3*) Gecko* Firefox/43.0*] +Parent="Firefox 43.0" +Platform="Win8.1" + +[Mozilla/5.0 (*Windows NT 6.4*) Gecko* Firefox/43.0*] +Parent="Firefox 43.0" +Platform="Win10" + +[Mozilla/5.0 (*Windows NT 10.0*) Gecko* Firefox/43.0*] +Parent="Firefox 43.0" +Platform="Win10" + +[Mozilla/5.0 (*Mac OS X*) Gecko* Firefox/43.0*] +Parent="Firefox 43.0" +Platform="MacOSX" + +[Mozilla/4.0 (*Linux*) Gecko* Firefox/43.0*] +Parent="Firefox 43.0" +Platform="Linux" + +[Mozilla/4.0 (*Windows NT 6.0*) Gecko* Firefox/43.0*] +Parent="Firefox 43.0" +Platform="WinVista" + +[Mozilla/4.0 (*Windows NT 6.1*) Gecko* Firefox/43.0*] +Parent="Firefox 43.0" +Platform="Win7" + +[Mozilla/4.0 (*Windows NT 6.2*) Gecko* Firefox/43.0*] +Parent="Firefox 43.0" +Platform="Win8" + +[Mozilla/4.0 (*Windows NT 6.3*) Gecko* Firefox/43.0*] +Parent="Firefox 43.0" +Platform="Win8.1" + +[Mozilla/4.0 (*Windows NT 6.4*) Gecko* Firefox/43.0*] +Parent="Firefox 43.0" +Platform="Win10" + +[Mozilla/4.0 (*Windows NT 10.0*) Gecko* Firefox/43.0*] +Parent="Firefox 43.0" +Platform="Win10" + +[Mozilla/4.0 (*Mac OS X*) Gecko* Firefox/43.0*] +Parent="Firefox 43.0" +Platform="MacOSX" + +[Mozilla/5.0 (*Windows NT 6.0*; rv:43*) Gecko* Firefox/43*anonymized by *] +Parent="Firefox 43.0" +Platform="WinVista" + +[Mozilla/5.0 (*Windows NT 6.1*; rv:43*) Gecko* Firefox/43*anonymized by *] +Parent="Firefox 43.0" +Platform="Win7" + +[Mozilla/5.0 (*Windows*; rv:43*) Gecko* Firefox/43*anonymized by *] +Parent="Firefox 43.0" +Platform="Win32" + +[Mozilla/5.0 (*Windows NT 6.0*; rv:43*) Gecko* Firefox anonymized by *] +Parent="Firefox 43.0" +Platform="WinVista" + +[Mozilla/5.0 (*Windows*; rv:43*) Gecko* Firefox anonymized by *] +Parent="Firefox 43.0" +Platform="Win32" + +[Mozilla/5.0 (*Windows*) Gecko* Firefox/43.0* Anonymisiert*] +Parent="Firefox 43.0" +Platform="Win32" + +[Firefox/43.0*anonymized by Abelssoft*] +Parent="Firefox 43.0" +Platform="Win32" + +[Mozilla/5.0 (masking-agent; rv:*) Gecko* Firefox/43.0*] +Parent="Firefox 43.0" + +[Mozilla/5.0 (*Windows NT 6.0*) Gecko*/43.0*] +Parent="Firefox 43.0" +Platform="WinVista" + +[Mozilla/5.0 (*Windows NT 6.1*) Gecko*/43.0*] +Parent="Firefox 43.0" +Platform="Win7" + +[Mozilla/5.0 (*Windows NT 6.2*) Gecko*/43.0*] +Parent="Firefox 43.0" +Platform="Win8" + +[Mozilla/5.0 (*Windows NT 6.3*) Gecko*/43.0*] +Parent="Firefox 43.0" +Platform="Win8.1" + +[Mozilla/5.0 (*Windows NT 6.4*) Gecko*/43.0*] +Parent="Firefox 43.0" +Platform="Win10" + +[Mozilla/5.0 (*Windows NT 10.0*) Gecko*/43.0*] +Parent="Firefox 43.0" +Platform="Win10" + +[Mozilla/5.0 (*Windows NT 6.0*rv:43.0*) Gecko*/] +Parent="Firefox 43.0" +Platform="WinVista" + +[Mozilla/5.0 (*Windows NT 6.1*rv:43.0*) Gecko*/] +Parent="Firefox 43.0" +Platform="Win7" + +[Mozilla/5.0 (*Windows NT 6.2*rv:43.0*) Gecko*/] +Parent="Firefox 43.0" +Platform="Win8" + +[Mozilla/5.0 (*Windows NT 6.3*rv:43.0*) Gecko*/] +Parent="Firefox 43.0" +Platform="Win8.1" + +[Mozilla/5.0 (*Windows NT 6.4*rv:43.0*) Gecko*/] +Parent="Firefox 43.0" +Platform="Win10" + +[Mozilla/5.0 (*Windows NT 10.0*rv:43.0*) Gecko*/] +Parent="Firefox 43.0" +Platform="Win10" + +[Mozilla/5.0 (*Mac OS X*) Gecko*/43.0*] +Parent="Firefox 43.0" +Platform="MacOSX" + +[Mozilla/5.0 (*Windows NT 6.4*rv:43.0*) Gecko* Firefox*] +Parent="Firefox 43.0" +Platform="Win10" + +[Mozilla/5.0 (*Windows NT 10.0*rv:43.0*) Gecko* Firefox*] +Parent="Firefox 43.0" +Platform="Win10" + +[Firefox 43.0 for Android] +Parent="DefaultProperties" +Comment="Firefox 43.0" +Browser="Firefox" +Version="43.0" +Platform="Android" +isMobileDevice="true" +Device_Type="Mobile Phone" + +[Mozilla/5.0 (*Android*Mobile*) Gecko* Firefox/43.*] +Parent="Firefox 43.0 for Android" + +[Mozilla/5.0 (*Android*Tablet*) Gecko* Firefox/43.*] +Parent="Firefox 43.0 for Android" +isTablet="true" +Device_Type="Tablet" + +[Firefox 42.0] +Parent="DefaultProperties" +Comment="Firefox 42.0" +Browser="Firefox" +Version="42.0" +Device_Type="Desktop" + +[Mozilla/5.0 (*Linux*) Gecko* Firefox/42.0*] +Parent="Firefox 42.0" +Platform="Linux" + +[Mozilla/5.0 (*Windows NT 6.0*) Gecko* Firefox/42.0*] +Parent="Firefox 42.0" +Platform="WinVista" + +[Mozilla/5.0 (*Windows NT 6.1*) Gecko* Firefox/42.0*] +Parent="Firefox 42.0" +Platform="Win7" + +[Mozilla/5.0 (*Windows NT 6.2*) Gecko* Firefox/42.0*] +Parent="Firefox 42.0" +Platform="Win8" + +[Mozilla/5.0 (*Windows NT 6.3*) Gecko* Firefox/42.0*] +Parent="Firefox 42.0" +Platform="Win8.1" + +[Mozilla/5.0 (*Windows NT 6.4*) Gecko* Firefox/42.0*] +Parent="Firefox 42.0" +Platform="Win10" + +[Mozilla/5.0 (*Windows NT 10.0*) Gecko* Firefox/42.0*] +Parent="Firefox 42.0" +Platform="Win10" + +[Mozilla/5.0 (*Mac OS X*) Gecko* Firefox/42.0*] +Parent="Firefox 42.0" +Platform="MacOSX" + +[Mozilla/4.0 (*Linux*) Gecko* Firefox/42.0*] +Parent="Firefox 42.0" +Platform="Linux" + +[Mozilla/4.0 (*Windows NT 6.0*) Gecko* Firefox/42.0*] +Parent="Firefox 42.0" +Platform="WinVista" + +[Mozilla/4.0 (*Windows NT 6.1*) Gecko* Firefox/42.0*] +Parent="Firefox 42.0" +Platform="Win7" + +[Mozilla/4.0 (*Windows NT 6.2*) Gecko* Firefox/42.0*] +Parent="Firefox 42.0" +Platform="Win8" + +[Mozilla/4.0 (*Windows NT 6.3*) Gecko* Firefox/42.0*] +Parent="Firefox 42.0" +Platform="Win8.1" + +[Mozilla/4.0 (*Windows NT 6.4*) Gecko* Firefox/42.0*] +Parent="Firefox 42.0" +Platform="Win10" + +[Mozilla/4.0 (*Windows NT 10.0*) Gecko* Firefox/42.0*] +Parent="Firefox 42.0" +Platform="Win10" + +[Mozilla/4.0 (*Mac OS X*) Gecko* Firefox/42.0*] +Parent="Firefox 42.0" +Platform="MacOSX" + +[Mozilla/5.0 (*Windows NT 6.0*; rv:42*) Gecko* Firefox/42*anonymized by *] +Parent="Firefox 42.0" +Platform="WinVista" + +[Mozilla/5.0 (*Windows NT 6.1*; rv:42*) Gecko* Firefox/42*anonymized by *] +Parent="Firefox 42.0" +Platform="Win7" + +[Mozilla/5.0 (*Windows*; rv:42*) Gecko* Firefox/42*anonymized by *] +Parent="Firefox 42.0" +Platform="Win32" + +[Mozilla/5.0 (*Windows NT 6.0*; rv:42*) Gecko* Firefox anonymized by *] +Parent="Firefox 42.0" +Platform="WinVista" + +[Mozilla/5.0 (*Windows*; rv:42*) Gecko* Firefox anonymized by *] +Parent="Firefox 42.0" +Platform="Win32" + +[Mozilla/5.0 (*Windows*) Gecko* Firefox/42.0* Anonymisiert*] +Parent="Firefox 42.0" +Platform="Win32" + +[Firefox/42.0*anonymized by Abelssoft*] +Parent="Firefox 42.0" +Platform="Win32" + +[Mozilla/5.0 (masking-agent; rv:*) Gecko* Firefox/42.0*] +Parent="Firefox 42.0" + +[Mozilla/5.0 (*Windows NT 6.0*) Gecko*/42.0*] +Parent="Firefox 42.0" +Platform="WinVista" + +[Mozilla/5.0 (*Windows NT 6.1*) Gecko*/42.0*] +Parent="Firefox 42.0" +Platform="Win7" + +[Mozilla/5.0 (*Windows NT 6.2*) Gecko*/42.0*] +Parent="Firefox 42.0" +Platform="Win8" + +[Mozilla/5.0 (*Windows NT 6.3*) Gecko*/42.0*] +Parent="Firefox 42.0" +Platform="Win8.1" + +[Mozilla/5.0 (*Windows NT 6.4*) Gecko*/42.0*] +Parent="Firefox 42.0" +Platform="Win10" + +[Mozilla/5.0 (*Windows NT 10.0*) Gecko*/42.0*] +Parent="Firefox 42.0" +Platform="Win10" + +[Mozilla/5.0 (*Windows NT 6.0*rv:42.0*) Gecko*/] +Parent="Firefox 42.0" +Platform="WinVista" + +[Mozilla/5.0 (*Windows NT 6.1*rv:42.0*) Gecko*/] +Parent="Firefox 42.0" +Platform="Win7" + +[Mozilla/5.0 (*Windows NT 6.2*rv:42.0*) Gecko*/] +Parent="Firefox 42.0" +Platform="Win8" + +[Mozilla/5.0 (*Windows NT 6.3*rv:42.0*) Gecko*/] +Parent="Firefox 42.0" +Platform="Win8.1" + +[Mozilla/5.0 (*Windows NT 6.4*rv:42.0*) Gecko*/] +Parent="Firefox 42.0" +Platform="Win10" + +[Mozilla/5.0 (*Windows NT 10.0*rv:42.0*) Gecko*/] +Parent="Firefox 42.0" +Platform="Win10" + +[Mozilla/5.0 (*Mac OS X*) Gecko*/42.0*] +Parent="Firefox 42.0" +Platform="MacOSX" + +[Mozilla/5.0 (*Windows NT 6.4*rv:42.0*) Gecko* Firefox*] +Parent="Firefox 42.0" +Platform="Win10" + +[Mozilla/5.0 (*Windows NT 10.0*rv:42.0*) Gecko* Firefox*] +Parent="Firefox 42.0" +Platform="Win10" + +[Firefox 42.0 for Android] +Parent="DefaultProperties" +Comment="Firefox 42.0" +Browser="Firefox" +Version="42.0" +Platform="Android" +isMobileDevice="true" +Device_Type="Mobile Phone" + +[Mozilla/5.0 (*Android*Mobile*) Gecko* Firefox/42.*] +Parent="Firefox 42.0 for Android" + +[Mozilla/5.0 (*Android*Tablet*) Gecko* Firefox/42.*] +Parent="Firefox 42.0 for Android" +isTablet="true" +Device_Type="Tablet" + +[Firefox 41.0] +Parent="DefaultProperties" +Comment="Firefox 41.0" +Browser="Firefox" +Version="41.0" +Device_Type="Desktop" + +[Mozilla/5.0 (*Linux*) Gecko* Firefox/41.0*] +Parent="Firefox 41.0" +Platform="Linux" + +[Mozilla/5.0 (*Windows NT 6.0*) Gecko* Firefox/41.0*] +Parent="Firefox 41.0" +Platform="WinVista" + +[Mozilla/5.0 (*Windows NT 6.1*) Gecko* Firefox/41.0*] +Parent="Firefox 41.0" +Platform="Win7" + +[Mozilla/5.0 (*Windows NT 6.2*) Gecko* Firefox/41.0*] +Parent="Firefox 41.0" +Platform="Win8" + +[Mozilla/5.0 (*Windows NT 6.3*) Gecko* Firefox/41.0*] +Parent="Firefox 41.0" +Platform="Win8.1" + +[Mozilla/5.0 (*Windows NT 6.4*) Gecko* Firefox/41.0*] +Parent="Firefox 41.0" +Platform="Win10" + +[Mozilla/5.0 (*Windows NT 10.0*) Gecko* Firefox/41.0*] +Parent="Firefox 41.0" +Platform="Win10" + +[Mozilla/5.0 (*Mac OS X*) Gecko* Firefox/41.0*] +Parent="Firefox 41.0" +Platform="MacOSX" + +[Mozilla/4.0 (*Linux*) Gecko* Firefox/41.0*] +Parent="Firefox 41.0" +Platform="Linux" + +[Mozilla/4.0 (*Windows NT 6.0*) Gecko* Firefox/41.0*] +Parent="Firefox 41.0" +Platform="WinVista" + +[Mozilla/4.0 (*Windows NT 6.1*) Gecko* Firefox/41.0*] +Parent="Firefox 41.0" +Platform="Win7" + +[Mozilla/4.0 (*Windows NT 6.2*) Gecko* Firefox/41.0*] +Parent="Firefox 41.0" +Platform="Win8" + +[Mozilla/4.0 (*Windows NT 6.3*) Gecko* Firefox/41.0*] +Parent="Firefox 41.0" +Platform="Win8.1" + +[Mozilla/4.0 (*Windows NT 6.4*) Gecko* Firefox/41.0*] +Parent="Firefox 41.0" +Platform="Win10" + +[Mozilla/4.0 (*Windows NT 10.0*) Gecko* Firefox/41.0*] +Parent="Firefox 41.0" +Platform="Win10" + +[Mozilla/4.0 (*Mac OS X*) Gecko* Firefox/41.0*] +Parent="Firefox 41.0" +Platform="MacOSX" + +[Mozilla/5.0 (*Windows NT 6.0*; rv:41*) Gecko* Firefox/41*anonymized by *] +Parent="Firefox 41.0" +Platform="WinVista" + +[Mozilla/5.0 (*Windows NT 6.1*; rv:41*) Gecko* Firefox/41*anonymized by *] +Parent="Firefox 41.0" +Platform="Win7" + +[Mozilla/5.0 (*Windows*; rv:41*) Gecko* Firefox/41*anonymized by *] +Parent="Firefox 41.0" +Platform="Win32" + +[Mozilla/5.0 (*Windows NT 6.0*; rv:41*) Gecko* Firefox anonymized by *] +Parent="Firefox 41.0" +Platform="WinVista" + +[Mozilla/5.0 (*Windows*; rv:41*) Gecko* Firefox anonymized by *] +Parent="Firefox 41.0" +Platform="Win32" + +[Mozilla/5.0 (*Windows*) Gecko* Firefox/41.0* Anonymisiert*] +Parent="Firefox 41.0" +Platform="Win32" + +[Firefox/41.0*anonymized by Abelssoft*] +Parent="Firefox 41.0" +Platform="Win32" + +[Mozilla/5.0 (masking-agent; rv:*) Gecko* Firefox/41.0*] +Parent="Firefox 41.0" + +[Mozilla/5.0 (*Windows NT 6.0*) Gecko*/41.0*] +Parent="Firefox 41.0" +Platform="WinVista" + +[Mozilla/5.0 (*Windows NT 6.1*) Gecko*/41.0*] +Parent="Firefox 41.0" +Platform="Win7" + +[Mozilla/5.0 (*Windows NT 6.2*) Gecko*/41.0*] +Parent="Firefox 41.0" +Platform="Win8" + +[Mozilla/5.0 (*Windows NT 6.3*) Gecko*/41.0*] +Parent="Firefox 41.0" +Platform="Win8.1" + +[Mozilla/5.0 (*Windows NT 6.4*) Gecko*/41.0*] +Parent="Firefox 41.0" +Platform="Win10" + +[Mozilla/5.0 (*Windows NT 10.0*) Gecko*/41.0*] +Parent="Firefox 41.0" +Platform="Win10" + +[Mozilla/5.0 (*Windows NT 6.0*rv:41.0*) Gecko*/] +Parent="Firefox 41.0" +Platform="WinVista" + +[Mozilla/5.0 (*Windows NT 6.1*rv:41.0*) Gecko*/] +Parent="Firefox 41.0" +Platform="Win7" + +[Mozilla/5.0 (*Windows NT 6.2*rv:41.0*) Gecko*/] +Parent="Firefox 41.0" +Platform="Win8" + +[Mozilla/5.0 (*Windows NT 6.3*rv:41.0*) Gecko*/] +Parent="Firefox 41.0" +Platform="Win8.1" + +[Mozilla/5.0 (*Windows NT 6.4*rv:41.0*) Gecko*/] +Parent="Firefox 41.0" +Platform="Win10" + +[Mozilla/5.0 (*Windows NT 10.0*rv:41.0*) Gecko*/] +Parent="Firefox 41.0" +Platform="Win10" + +[Mozilla/5.0 (*Mac OS X*) Gecko*/41.0*] +Parent="Firefox 41.0" +Platform="MacOSX" + +[Mozilla/5.0 (*Windows NT 6.4*rv:41.0*) Gecko* Firefox*] +Parent="Firefox 41.0" +Platform="Win10" + +[Mozilla/5.0 (*Windows NT 10.0*rv:41.0*) Gecko* Firefox*] +Parent="Firefox 41.0" +Platform="Win10" + +[Firefox 41.0 for Android] +Parent="DefaultProperties" +Comment="Firefox 41.0" +Browser="Firefox" +Version="41.0" +Platform="Android" +isMobileDevice="true" +Device_Type="Mobile Phone" + +[Mozilla/5.0 (*Android*Mobile*) Gecko* Firefox/41.*] +Parent="Firefox 41.0 for Android" + +[Mozilla/5.0 (*Android*Tablet*) Gecko* Firefox/41.*] +Parent="Firefox 41.0 for Android" +isTablet="true" +Device_Type="Tablet" + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Firefox 40.0 + +[Firefox 40.0] +Parent="DefaultProperties" +Comment="Firefox 40.0" +Browser="Firefox" +Version="40.0" +Device_Type="Desktop" + +[Mozilla/5.0 (*Linux*) Gecko* Firefox/40.0*] +Parent="Firefox 40.0" +Platform="Linux" + +[Mozilla/5.0 (*Windows NT 6.0*) Gecko* Firefox/40.0*] +Parent="Firefox 40.0" +Platform="WinVista" + +[Mozilla/5.0 (*Windows NT 10.0*) Gecko* Firefox/40.0*] +Parent="Firefox 40.0" +Platform="Win10" + +[Mozilla/5.0 (*Windows NT 6.4*) Gecko* Firefox/40.0*] +Parent="Firefox 40.0" +Platform="Win10" + +[Mozilla/5.0 (*Windows NT 6.3*) Gecko* Firefox/40.0*] +Parent="Firefox 40.0" +Platform="Win8.1" + +[Mozilla/5.0 (*Windows NT 6.2*) Gecko* Firefox/40.0*] +Parent="Firefox 40.0" +Platform="Win8" + +[Mozilla/5.0 (*Windows NT 6.1*) Gecko* Firefox/40.0*] +Parent="Firefox 40.0" +Platform="Win7" + +[Mozilla/5.0 (*Mac OS X*) Gecko* Firefox/40.0*] +Parent="Firefox 40.0" +Platform="MacOSX" + +[Mozilla/4.0 (*Linux*) Gecko* Firefox/40.0*] +Parent="Firefox 40.0" +Platform="Linux" + +[Mozilla/4.0 (*Windows NT 6.0*) Gecko* Firefox/40.0*] +Parent="Firefox 40.0" +Platform="WinVista" + +[Mozilla/4.0 (*Windows NT 10.0*) Gecko* Firefox/40.0*] +Parent="Firefox 40.0" +Platform="Win10" + +[Mozilla/4.0 (*Windows NT 6.4*) Gecko* Firefox/40.0*] +Parent="Firefox 40.0" +Platform="Win10" + +[Mozilla/4.0 (*Windows NT 6.3*) Gecko* Firefox/40.0*] +Parent="Firefox 40.0" +Platform="Win8.1" + +[Mozilla/4.0 (*Windows NT 6.2*) Gecko* Firefox/40.0*] +Parent="Firefox 40.0" +Platform="Win8" + +[Mozilla/4.0 (*Windows NT 6.1*) Gecko* Firefox/40.0*] +Parent="Firefox 40.0" +Platform="Win7" + +[Mozilla/4.0 (*Mac OS X*) Gecko* Firefox/40.0*] +Parent="Firefox 40.0" +Platform="MacOSX" + +[Mozilla/5.0 (*Windows NT 6.0*; rv:40*) Gecko* Firefox/40*anonymized by *] +Parent="Firefox 40.0" +Platform="WinVista" + +[Mozilla/5.0 (*Windows NT 6.1*; rv:40*) Gecko* Firefox/40*anonymized by *] +Parent="Firefox 40.0" +Platform="Win7" + +[Mozilla/5.0 (*Windows*; rv:40*) Gecko* Firefox/40*anonymized by *] +Parent="Firefox 40.0" +Platform="Win32" + +[Mozilla/5.0 (*Windows NT 6.0*; rv:40*) Gecko* Firefox anonymized by *] +Parent="Firefox 40.0" +Platform="WinVista" + +[Mozilla/5.0 (*Windows*; rv:40*) Gecko* Firefox anonymized by *] +Parent="Firefox 40.0" +Platform="Win32" + +[Mozilla/5.0 (*Windows*) Gecko* Firefox/40.0* Anonymisiert*] +Parent="Firefox 40.0" +Platform="Win32" + +[Firefox/40.0*anonymized by Abelssoft*] +Parent="Firefox 40.0" +Platform="Win32" + +[Mozilla/5.0 (masking-agent; rv:*) Gecko* Firefox/40.0*] +Parent="Firefox 40.0" + +[Mozilla/5.0 (*Windows NT 6.0*) Gecko*/40.0*] +Parent="Firefox 40.0" +Platform="WinVista" + +[Mozilla/5.0 (*Windows NT 10.0*) Gecko*/40.0*] +Parent="Firefox 40.0" +Platform="Win10" + +[Mozilla/5.0 (*Windows NT 6.4*) Gecko*/40.0*] +Parent="Firefox 40.0" +Platform="Win10" + +[Mozilla/5.0 (*Windows NT 6.3*) Gecko*/40.0*] +Parent="Firefox 40.0" +Platform="Win8.1" + +[Mozilla/5.0 (*Windows NT 6.2*) Gecko*/40.0*] +Parent="Firefox 40.0" +Platform="Win8" + +[Mozilla/5.0 (*Windows NT 6.1*) Gecko*/40.0*] +Parent="Firefox 40.0" +Platform="Win7" + +[Mozilla/5.0 (*Windows NT 6.0*rv:40.0*) Gecko*/] +Parent="Firefox 40.0" +Platform="WinVista" + +[Mozilla/5.0 (*Windows NT 10.0*rv:40.0*) Gecko*/] +Parent="Firefox 40.0" +Platform="Win10" + +[Mozilla/5.0 (*Windows NT 6.4*rv:40.0*) Gecko*/] +Parent="Firefox 40.0" +Platform="Win10" + +[Mozilla/5.0 (*Windows NT 6.3*rv:40.0*) Gecko*/] +Parent="Firefox 40.0" +Platform="Win8.1" + +[Mozilla/5.0 (*Windows NT 6.2*rv:40.0*) Gecko*/] +Parent="Firefox 40.0" +Platform="Win8" + +[Mozilla/5.0 (*Windows NT 6.1*rv:40.0*) Gecko*/] +Parent="Firefox 40.0" +Platform="Win7" + +[Mozilla/5.0 (*Mac OS X*) Gecko*/40.0*] +Parent="Firefox 40.0" +Platform="MacOSX" + +[Mozilla/5.0 (*Windows NT 6.0*rv:40.0*) Gecko* Firefox] +Parent="Firefox 40.0" +Platform="WinVista" + +[Mozilla/5.0 (*Windows NT 6.1*rv:40.0*) Gecko* Firefox] +Parent="Firefox 40.0" +Platform="Win7" + +[Mozilla/5.0 (*Windows NT 6.2*rv:40.0*) Gecko* Firefox] +Parent="Firefox 40.0" +Platform="Win8" + +[Mozilla/5.0 (*Windows NT 6.3*rv:40.0*) Gecko* Firefox] +Parent="Firefox 40.0" +Platform="Win8.1" + +[Mozilla/5.0 (*Windows NT 6.4*rv:40.0*) Gecko* Firefox] +Parent="Firefox 40.0" +Platform="Win10" + +[Mozilla/5.0 (*Windows NT 10.0*rv:40.0*) Gecko* Firefox] +Parent="Firefox 40.0" +Platform="Win10" + +[Firefox 40.0 for Android] +Parent="DefaultProperties" +Comment="Firefox 40.0" +Browser="Firefox" +Version="40.0" +Platform="Android" +isMobileDevice="true" +Device_Type="Mobile Phone" + +[Mozilla/5.0 (*Android*Mobile*) Gecko* Firefox/40.*] +Parent="Firefox 40.0 for Android" + +[Mozilla/5.0 (*Android*Tablet*) Gecko* Firefox/40.*] +Parent="Firefox 40.0 for Android" +isTablet="true" +Device_Type="Tablet" + +[Firefox 39.0] +Parent="DefaultProperties" +Comment="Firefox 39.0" +Browser="Firefox" +Version="39.0" +Device_Type="Desktop" + +[Mozilla/5.0 (*Linux*) Gecko* Firefox/39.0*] +Parent="Firefox 39.0" +Platform="Linux" + +[Mozilla/5.0 (*Windows NT 6.0*) Gecko* Firefox/39.0*] +Parent="Firefox 39.0" +Platform="WinVista" + +[Mozilla/5.0 (*Windows NT 10.0*) Gecko* Firefox/39.0*] +Parent="Firefox 39.0" +Platform="Win10" + +[Mozilla/5.0 (*Windows NT 6.4*) Gecko* Firefox/39.0*] +Parent="Firefox 39.0" +Platform="Win10" + +[Mozilla/5.0 (*Windows NT 6.3*) Gecko* Firefox/39.0*] +Parent="Firefox 39.0" +Platform="Win8.1" + +[Mozilla/5.0 (*Windows NT 6.2*) Gecko* Firefox/39.0*] +Parent="Firefox 39.0" +Platform="Win8" + +[Mozilla/5.0 (*Windows NT 6.1*) Gecko* Firefox/39.0*] +Parent="Firefox 39.0" +Platform="Win7" + +[Mozilla/5.0 (*Mac OS X*) Gecko* Firefox/39.0*] +Parent="Firefox 39.0" +Platform="MacOSX" + +[Mozilla/4.0 (*Linux*) Gecko* Firefox/39.0*] +Parent="Firefox 39.0" +Platform="Linux" + +[Mozilla/4.0 (*Windows NT 6.0*) Gecko* Firefox/39.0*] +Parent="Firefox 39.0" +Platform="WinVista" + +[Mozilla/4.0 (*Windows NT 10.0*) Gecko* Firefox/39.0*] +Parent="Firefox 39.0" +Platform="Win10" + +[Mozilla/4.0 (*Windows NT 6.4*) Gecko* Firefox/39.0*] +Parent="Firefox 39.0" +Platform="Win10" + +[Mozilla/4.0 (*Windows NT 6.3*) Gecko* Firefox/39.0*] +Parent="Firefox 39.0" +Platform="Win8.1" + +[Mozilla/4.0 (*Windows NT 6.2*) Gecko* Firefox/39.0*] +Parent="Firefox 39.0" +Platform="Win8" + +[Mozilla/4.0 (*Windows NT 6.1*) Gecko* Firefox/39.0*] +Parent="Firefox 39.0" +Platform="Win7" + +[Mozilla/4.0 (*Mac OS X*) Gecko* Firefox/39.0*] +Parent="Firefox 39.0" +Platform="MacOSX" + +[Mozilla/5.0 (*Windows NT 6.0*; rv:39*) Gecko* Firefox/39*anonymized by *] +Parent="Firefox 39.0" +Platform="WinVista" + +[Mozilla/5.0 (*Windows NT 6.1*; rv:39*) Gecko* Firefox/39*anonymized by *] +Parent="Firefox 39.0" +Platform="Win7" + +[Mozilla/5.0 (*Windows*; rv:39*) Gecko* Firefox/39*anonymized by *] +Parent="Firefox 39.0" +Platform="Win32" + +[Mozilla/5.0 (*Windows NT 6.0*; rv:39*) Gecko* Firefox anonymized by *] +Parent="Firefox 39.0" +Platform="WinVista" + +[Mozilla/5.0 (*Windows*; rv:39*) Gecko* Firefox anonymized by *] +Parent="Firefox 39.0" +Platform="Win32" + +[Mozilla/5.0 (*Windows*) Gecko* Firefox/39.0* Anonymisiert*] +Parent="Firefox 39.0" +Platform="Win32" + +[Firefox/39.0*anonymized by Abelssoft*] +Parent="Firefox 39.0" +Platform="Win32" + +[Mozilla/5.0 (masking-agent; rv:*) Gecko* Firefox/39.0*] +Parent="Firefox 39.0" + +[Mozilla/5.0 (*Windows NT 6.0*) Gecko*/39.0*] +Parent="Firefox 39.0" +Platform="WinVista" + +[Mozilla/5.0 (*Windows NT 10.0*) Gecko*/39.0*] +Parent="Firefox 39.0" +Platform="Win10" + +[Mozilla/5.0 (*Windows NT 6.4*) Gecko*/39.0*] +Parent="Firefox 39.0" +Platform="Win10" + +[Mozilla/5.0 (*Windows NT 6.3*) Gecko*/39.0*] +Parent="Firefox 39.0" +Platform="Win8.1" + +[Mozilla/5.0 (*Windows NT 6.2*) Gecko*/39.0*] +Parent="Firefox 39.0" +Platform="Win8" + +[Mozilla/5.0 (*Windows NT 6.1*) Gecko*/39.0*] +Parent="Firefox 39.0" +Platform="Win7" + +[Mozilla/5.0 (*Windows NT 6.0*rv:39.0*) Gecko*/] +Parent="Firefox 39.0" +Platform="WinVista" + +[Mozilla/5.0 (*Windows NT 10.0*rv:39.0*) Gecko*/] +Parent="Firefox 39.0" +Platform="Win10" + +[Mozilla/5.0 (*Windows NT 6.4*rv:39.0*) Gecko*/] +Parent="Firefox 39.0" +Platform="Win10" + +[Mozilla/5.0 (*Windows NT 6.3*rv:39.0*) Gecko*/] +Parent="Firefox 39.0" +Platform="Win8.1" + +[Mozilla/5.0 (*Windows NT 6.2*rv:39.0*) Gecko*/] +Parent="Firefox 39.0" +Platform="Win8" + +[Mozilla/5.0 (*Windows NT 6.1*rv:39.0*) Gecko*/] +Parent="Firefox 39.0" +Platform="Win7" + +[Mozilla/5.0 (*Mac OS X*) Gecko*/39.0*] +Parent="Firefox 39.0" +Platform="MacOSX" + +[Mozilla/5.0 (*Windows NT 6.0*rv:39.0*) Gecko* Firefox] +Parent="Firefox 39.0" +Platform="WinVista" + +[Mozilla/5.0 (*Windows NT 6.1*rv:39.0*) Gecko* Firefox] +Parent="Firefox 39.0" +Platform="Win7" + +[Mozilla/5.0 (*Windows NT 6.2*rv:39.0*) Gecko* Firefox] +Parent="Firefox 39.0" +Platform="Win8" + +[Mozilla/5.0 (*Windows NT 6.3*rv:39.0*) Gecko* Firefox] +Parent="Firefox 39.0" +Platform="Win8.1" + +[Mozilla/5.0 (*Windows NT 6.4*rv:39.0*) Gecko* Firefox] +Parent="Firefox 39.0" +Platform="Win10" + +[Mozilla/5.0 (*Windows NT 10.0*rv:39.0*) Gecko* Firefox] +Parent="Firefox 39.0" +Platform="Win10" + +[Firefox 39.0 for Android] +Parent="DefaultProperties" +Comment="Firefox 39.0" +Browser="Firefox" +Version="39.0" +Platform="Android" +isMobileDevice="true" +Device_Type="Mobile Phone" + +[Mozilla/5.0 (*Android*Mobile*) Gecko* Firefox/39.*] +Parent="Firefox 39.0 for Android" + +[Mozilla/5.0 (*Android*Tablet*) Gecko* Firefox/39.*] +Parent="Firefox 39.0 for Android" +isTablet="true" +Device_Type="Tablet" + +[Firefox 38.0] +Parent="DefaultProperties" +Comment="Firefox 38.0" +Browser="Firefox" +Version="38.0" +Device_Type="Desktop" + +[Mozilla/5.0 (*Linux*) Gecko* Firefox/38.0*] +Parent="Firefox 38.0" +Platform="Linux" + +[Mozilla/5.0 (*Windows NT 6.0*) Gecko* Firefox/38.0*] +Parent="Firefox 38.0" +Platform="WinVista" + +[Mozilla/5.0 (*Windows NT 10.0*) Gecko* Firefox/38.0*] +Parent="Firefox 38.0" +Platform="Win10" + +[Mozilla/5.0 (*Windows NT 6.4*) Gecko* Firefox/38.0*] +Parent="Firefox 38.0" +Platform="Win10" + +[Mozilla/5.0 (*Windows NT 6.3*) Gecko* Firefox/38.0*] +Parent="Firefox 38.0" +Platform="Win8.1" + +[Mozilla/5.0 (*Windows NT 6.2*) Gecko* Firefox/38.0*] +Parent="Firefox 38.0" +Platform="Win8" + +[Mozilla/5.0 (*Windows NT 6.1*) Gecko* Firefox/38.0*] +Parent="Firefox 38.0" +Platform="Win7" + +[Mozilla/5.0 (*Mac OS X*) Gecko* Firefox/38.0*] +Parent="Firefox 38.0" +Platform="MacOSX" + +[Mozilla/4.0 (*Linux*) Gecko* Firefox/38.0*] +Parent="Firefox 38.0" +Platform="Linux" + +[Mozilla/4.0 (*Windows NT 6.0*) Gecko* Firefox/38.0*] +Parent="Firefox 38.0" +Platform="WinVista" + +[Mozilla/4.0 (*Windows NT 10.0*) Gecko* Firefox/38.0*] +Parent="Firefox 38.0" +Platform="Win10" + +[Mozilla/4.0 (*Windows NT 6.4*) Gecko* Firefox/38.0*] +Parent="Firefox 38.0" +Platform="Win10" + +[Mozilla/4.0 (*Windows NT 6.3*) Gecko* Firefox/38.0*] +Parent="Firefox 38.0" +Platform="Win8.1" + +[Mozilla/4.0 (*Windows NT 6.2*) Gecko* Firefox/38.0*] +Parent="Firefox 38.0" +Platform="Win8" + +[Mozilla/4.0 (*Windows NT 6.1*) Gecko* Firefox/38.0*] +Parent="Firefox 38.0" +Platform="Win7" + +[Mozilla/4.0 (*Mac OS X*) Gecko* Firefox/38.0*] +Parent="Firefox 38.0" +Platform="MacOSX" + +[Mozilla/5.0 (*Windows NT 6.0*; rv:38*) Gecko* Firefox/38*anonymized by *] +Parent="Firefox 38.0" +Platform="WinVista" + +[Mozilla/5.0 (*Windows NT 6.1*; rv:38*) Gecko* Firefox/38*anonymized by *] +Parent="Firefox 38.0" +Platform="Win7" + +[Mozilla/5.0 (*Windows*; rv:38*) Gecko* Firefox/38*anonymized by *] +Parent="Firefox 38.0" +Platform="Win32" + +[Mozilla/5.0 (*Windows NT 6.0*; rv:38*) Gecko* Firefox anonymized by *] +Parent="Firefox 38.0" +Platform="WinVista" + +[Mozilla/5.0 (*Windows*; rv:38*) Gecko* Firefox anonymized by *] +Parent="Firefox 38.0" +Platform="Win32" + +[Mozilla/5.0 (*Windows*) Gecko* Firefox/38.0* Anonymisiert*] +Parent="Firefox 38.0" +Platform="Win32" + +[Firefox/38.0*anonymized by Abelssoft*] +Parent="Firefox 38.0" +Platform="Win32" + +[Mozilla/5.0 (masking-agent; rv:*) Gecko* Firefox/38.0*] +Parent="Firefox 38.0" + +[Mozilla/5.0 (*Windows NT 6.0*) Gecko*/38.0*] +Parent="Firefox 38.0" +Platform="WinVista" + +[Mozilla/5.0 (*Windows NT 10.0*) Gecko*/38.0*] +Parent="Firefox 38.0" +Platform="Win10" + +[Mozilla/5.0 (*Windows NT 6.4*) Gecko*/38.0*] +Parent="Firefox 38.0" +Platform="Win10" + +[Mozilla/5.0 (*Windows NT 6.3*) Gecko*/38.0*] +Parent="Firefox 38.0" +Platform="Win8.1" + +[Mozilla/5.0 (*Windows NT 6.2*) Gecko*/38.0*] +Parent="Firefox 38.0" +Platform="Win8" + +[Mozilla/5.0 (*Windows NT 6.1*) Gecko*/38.0*] +Parent="Firefox 38.0" +Platform="Win7" + +[Mozilla/5.0 (*Windows NT 6.0*rv:38.0*) Gecko*/] +Parent="Firefox 38.0" +Platform="WinVista" + +[Mozilla/5.0 (*Windows NT 10.0*rv:38.0*) Gecko*/] +Parent="Firefox 38.0" +Platform="Win10" + +[Mozilla/5.0 (*Windows NT 6.4*rv:38.0*) Gecko*/] +Parent="Firefox 38.0" +Platform="Win10" + +[Mozilla/5.0 (*Windows NT 6.3*rv:38.0*) Gecko*/] +Parent="Firefox 38.0" +Platform="Win8.1" + +[Mozilla/5.0 (*Windows NT 6.2*rv:38.0*) Gecko*/] +Parent="Firefox 38.0" +Platform="Win8" + +[Mozilla/5.0 (*Windows NT 6.1*rv:38.0*) Gecko*/] +Parent="Firefox 38.0" +Platform="Win7" + +[Mozilla/5.0 (*Mac OS X*) Gecko*/38.0*] +Parent="Firefox 38.0" +Platform="MacOSX" + +[Mozilla/5.0 (*Windows NT 6.0*rv:38.0*) Gecko* Firefox] +Parent="Firefox 38.0" +Platform="WinVista" + +[Mozilla/5.0 (*Windows NT 6.1*rv:38.0*) Gecko* Firefox] +Parent="Firefox 38.0" +Platform="Win7" + +[Mozilla/5.0 (*Windows NT 6.2*rv:38.0*) Gecko* Firefox] +Parent="Firefox 38.0" +Platform="Win8" + +[Mozilla/5.0 (*Windows NT 6.3*rv:38.0*) Gecko* Firefox] +Parent="Firefox 38.0" +Platform="Win8.1" + +[Mozilla/5.0 (*Windows NT 6.4*rv:38.0*) Gecko* Firefox] +Parent="Firefox 38.0" +Platform="Win10" + +[Mozilla/5.0 (*Windows NT 10.0*rv:38.0*) Gecko* Firefox] +Parent="Firefox 38.0" +Platform="Win10" + +[Firefox 38.0 for Android] +Parent="DefaultProperties" +Comment="Firefox 38.0" +Browser="Firefox" +Version="38.0" +Platform="Android" +isMobileDevice="true" +Device_Type="Mobile Phone" + +[Mozilla/5.0 (*Android*Mobile*) Gecko* Firefox/38.*] +Parent="Firefox 38.0 for Android" + +[Mozilla/5.0 (*Android*Tablet*) Gecko* Firefox/38.*] +Parent="Firefox 38.0 for Android" +isTablet="true" +Device_Type="Tablet" + +[Firefox 37.0] +Parent="DefaultProperties" +Comment="Firefox 37.0" +Browser="Firefox" +Version="37.0" +Device_Type="Desktop" + +[Mozilla/5.0 (*Linux*) Gecko* Firefox/37.0*] +Parent="Firefox 37.0" +Platform="Linux" + +[Mozilla/5.0 (*Windows NT 6.0*) Gecko* Firefox/37.0*] +Parent="Firefox 37.0" +Platform="WinVista" + +[Mozilla/5.0 (*Windows NT 10.0*) Gecko* Firefox/37.0*] +Parent="Firefox 37.0" +Platform="Win10" + +[Mozilla/5.0 (*Windows NT 6.4*) Gecko* Firefox/37.0*] +Parent="Firefox 37.0" +Platform="Win10" + +[Mozilla/5.0 (*Windows NT 6.3*) Gecko* Firefox/37.0*] +Parent="Firefox 37.0" +Platform="Win8.1" + +[Mozilla/5.0 (*Windows NT 6.2*) Gecko* Firefox/37.0*] +Parent="Firefox 37.0" +Platform="Win8" + +[Mozilla/5.0 (*Windows NT 6.1*) Gecko* Firefox/37.0*] +Parent="Firefox 37.0" +Platform="Win7" + +[Mozilla/5.0 (*Mac OS X*) Gecko* Firefox/37.0*] +Parent="Firefox 37.0" +Platform="MacOSX" + +[Mozilla/4.0 (*Linux*) Gecko* Firefox/37.0*] +Parent="Firefox 37.0" +Platform="Linux" + +[Mozilla/4.0 (*Windows NT 6.0*) Gecko* Firefox/37.0*] +Parent="Firefox 37.0" +Platform="WinVista" + +[Mozilla/4.0 (*Windows NT 10.0*) Gecko* Firefox/37.0*] +Parent="Firefox 37.0" +Platform="Win10" + +[Mozilla/4.0 (*Windows NT 6.4*) Gecko* Firefox/37.0*] +Parent="Firefox 37.0" +Platform="Win10" + +[Mozilla/4.0 (*Windows NT 6.3*) Gecko* Firefox/37.0*] +Parent="Firefox 37.0" +Platform="Win8.1" + +[Mozilla/4.0 (*Windows NT 6.2*) Gecko* Firefox/37.0*] +Parent="Firefox 37.0" +Platform="Win8" + +[Mozilla/4.0 (*Windows NT 6.1*) Gecko* Firefox/37.0*] +Parent="Firefox 37.0" +Platform="Win7" + +[Mozilla/4.0 (*Mac OS X*) Gecko* Firefox/37.0*] +Parent="Firefox 37.0" +Platform="MacOSX" + +[Mozilla/5.0 (*Windows NT 6.0*; rv:37*) Gecko* Firefox/37*anonymized by *] +Parent="Firefox 37.0" +Platform="WinVista" + +[Mozilla/5.0 (*Windows NT 6.1*; rv:37*) Gecko* Firefox/37*anonymized by *] +Parent="Firefox 37.0" +Platform="Win7" + +[Mozilla/5.0 (*Windows*; rv:37*) Gecko* Firefox/37*anonymized by *] +Parent="Firefox 37.0" +Platform="Win32" + +[Mozilla/5.0 (*Windows NT 6.0*; rv:37*) Gecko* Firefox anonymized by *] +Parent="Firefox 37.0" +Platform="WinVista" + +[Mozilla/5.0 (*Windows*; rv:37*) Gecko* Firefox anonymized by *] +Parent="Firefox 37.0" +Platform="Win32" + +[Mozilla/5.0 (*Windows*) Gecko* Firefox/37.0* Anonymisiert*] +Parent="Firefox 37.0" +Platform="Win32" + +[Firefox/37.0*anonymized by Abelssoft*] +Parent="Firefox 37.0" +Platform="Win32" + +[Mozilla/5.0 (masking-agent; rv:*) Gecko* Firefox/37.0*] +Parent="Firefox 37.0" + +[Mozilla/5.0 (*Windows NT 6.0*) Gecko*/37.0*] +Parent="Firefox 37.0" +Platform="WinVista" + +[Mozilla/5.0 (*Windows NT 10.0*) Gecko*/37.0*] +Parent="Firefox 37.0" +Platform="Win10" + +[Mozilla/5.0 (*Windows NT 6.4*) Gecko*/37.0*] +Parent="Firefox 37.0" +Platform="Win10" + +[Mozilla/5.0 (*Windows NT 6.3*) Gecko*/37.0*] +Parent="Firefox 37.0" +Platform="Win8.1" + +[Mozilla/5.0 (*Windows NT 6.2*) Gecko*/37.0*] +Parent="Firefox 37.0" +Platform="Win8" + +[Mozilla/5.0 (*Windows NT 6.1*) Gecko*/37.0*] +Parent="Firefox 37.0" +Platform="Win7" + +[Mozilla/5.0 (*Windows NT 6.0*rv:37.0*) Gecko*/] +Parent="Firefox 37.0" +Platform="WinVista" + +[Mozilla/5.0 (*Windows NT 10.0*rv:37.0*) Gecko*/] +Parent="Firefox 37.0" +Platform="Win10" + +[Mozilla/5.0 (*Windows NT 6.4*rv:37.0*) Gecko*/] +Parent="Firefox 37.0" +Platform="Win10" + +[Mozilla/5.0 (*Windows NT 6.3*rv:37.0*) Gecko*/] +Parent="Firefox 37.0" +Platform="Win8.1" + +[Mozilla/5.0 (*Windows NT 6.2*rv:37.0*) Gecko*/] +Parent="Firefox 37.0" +Platform="Win8" + +[Mozilla/5.0 (*Windows NT 6.1*rv:37.0*) Gecko*/] +Parent="Firefox 37.0" +Platform="Win7" + +[Mozilla/5.0 (*Mac OS X*) Gecko*/37.0*] +Parent="Firefox 37.0" +Platform="MacOSX" + +[Mozilla/5.0 (*Windows NT 6.0*rv:37.0*) Gecko* Firefox] +Parent="Firefox 37.0" +Platform="WinVista" + +[Mozilla/5.0 (*Windows NT 6.1*rv:37.0*) Gecko* Firefox] +Parent="Firefox 37.0" +Platform="Win7" + +[Mozilla/5.0 (*Windows NT 6.2*rv:37.0*) Gecko* Firefox] +Parent="Firefox 37.0" +Platform="Win8" + +[Mozilla/5.0 (*Windows NT 6.3*rv:37.0*) Gecko* Firefox] +Parent="Firefox 37.0" +Platform="Win8.1" + +[Mozilla/5.0 (*Windows NT 6.4*rv:37.0*) Gecko* Firefox] +Parent="Firefox 37.0" +Platform="Win10" + +[Mozilla/5.0 (*Windows NT 10.0*rv:37.0*) Gecko* Firefox] +Parent="Firefox 37.0" +Platform="Win10" + +[Firefox 37.0 for Android] +Parent="DefaultProperties" +Comment="Firefox 37.0" +Browser="Firefox" +Version="37.0" +Platform="Android" +isMobileDevice="true" +Device_Type="Mobile Phone" + +[Mozilla/5.0 (*Android*Mobile*) Gecko* Firefox/37.*] +Parent="Firefox 37.0 for Android" + +[Mozilla/5.0 (*Android*Tablet*) Gecko* Firefox/37.*] +Parent="Firefox 37.0 for Android" +isTablet="true" +Device_Type="Tablet" + +[Firefox 36.0] +Parent="DefaultProperties" +Comment="Firefox 36.0" +Browser="Firefox" +Version="36.0" +Device_Type="Desktop" + +[Mozilla/5.0 (*Linux*) Gecko* Firefox/36.0*] +Parent="Firefox 36.0" +Platform="Linux" + +[Mozilla/5.0 (*Windows NT 6.0*) Gecko* Firefox/36.0*] +Parent="Firefox 36.0" +Platform="WinVista" + +[Mozilla/5.0 (*Windows NT 10.0*) Gecko* Firefox/36.0*] +Parent="Firefox 36.0" +Platform="Win10" + +[Mozilla/5.0 (*Windows NT 6.4*) Gecko* Firefox/36.0*] +Parent="Firefox 36.0" +Platform="Win10" + +[Mozilla/5.0 (*Windows NT 6.3*) Gecko* Firefox/36.0*] +Parent="Firefox 36.0" +Platform="Win8.1" + +[Mozilla/5.0 (*Windows NT 6.2*) Gecko* Firefox/36.0*] +Parent="Firefox 36.0" +Platform="Win8" + +[Mozilla/5.0 (*Windows NT 6.1*) Gecko* Firefox/36.0*] +Parent="Firefox 36.0" +Platform="Win7" + +[Mozilla/5.0 (*Mac OS X*) Gecko* Firefox/36.0*] +Parent="Firefox 36.0" +Platform="MacOSX" + +[Mozilla/4.0 (*Linux*) Gecko* Firefox/36.0*] +Parent="Firefox 36.0" +Platform="Linux" + +[Mozilla/4.0 (*Windows NT 6.0*) Gecko* Firefox/36.0*] +Parent="Firefox 36.0" +Platform="WinVista" + +[Mozilla/4.0 (*Windows NT 10.0*) Gecko* Firefox/36.0*] +Parent="Firefox 36.0" +Platform="Win10" + +[Mozilla/4.0 (*Windows NT 6.4*) Gecko* Firefox/36.0*] +Parent="Firefox 36.0" +Platform="Win10" + +[Mozilla/4.0 (*Windows NT 6.3*) Gecko* Firefox/36.0*] +Parent="Firefox 36.0" +Platform="Win8.1" + +[Mozilla/4.0 (*Windows NT 6.2*) Gecko* Firefox/36.0*] +Parent="Firefox 36.0" +Platform="Win8" + +[Mozilla/4.0 (*Windows NT 6.1*) Gecko* Firefox/36.0*] +Parent="Firefox 36.0" +Platform="Win7" + +[Mozilla/4.0 (*Mac OS X*) Gecko* Firefox/36.0*] +Parent="Firefox 36.0" +Platform="MacOSX" + +[Mozilla/5.0 (*Windows NT 6.0*; rv:36*) Gecko* Firefox/36*anonymized by *] +Parent="Firefox 36.0" +Platform="WinVista" + +[Mozilla/5.0 (*Windows NT 6.1*; rv:36*) Gecko* Firefox/36*anonymized by *] +Parent="Firefox 36.0" +Platform="Win7" + +[Mozilla/5.0 (*Windows*; rv:36*) Gecko* Firefox/36*anonymized by *] +Parent="Firefox 36.0" +Platform="Win32" + +[Mozilla/5.0 (*Windows NT 6.0*; rv:36*) Gecko* Firefox anonymized by *] +Parent="Firefox 36.0" +Platform="WinVista" + +[Mozilla/5.0 (*Windows*; rv:36*) Gecko* Firefox anonymized by *] +Parent="Firefox 36.0" +Platform="Win32" + +[Mozilla/5.0 (*Windows*) Gecko* Firefox/36.0* Anonymisiert*] +Parent="Firefox 36.0" +Platform="Win32" + +[Firefox/36.0*anonymized by Abelssoft*] +Parent="Firefox 36.0" +Platform="Win32" + +[Mozilla/5.0 (masking-agent; rv:*) Gecko* Firefox/36.0*] +Parent="Firefox 36.0" + +[Mozilla/5.0 (*Windows NT 6.0*) Gecko*/36.0*] +Parent="Firefox 36.0" +Platform="WinVista" + +[Mozilla/5.0 (*Windows NT 10.0*) Gecko*/36.0*] +Parent="Firefox 36.0" +Platform="Win10" + +[Mozilla/5.0 (*Windows NT 6.4*) Gecko*/36.0*] +Parent="Firefox 36.0" +Platform="Win10" + +[Mozilla/5.0 (*Windows NT 6.3*) Gecko*/36.0*] +Parent="Firefox 36.0" +Platform="Win8.1" + +[Mozilla/5.0 (*Windows NT 6.2*) Gecko*/36.0*] +Parent="Firefox 36.0" +Platform="Win8" + +[Mozilla/5.0 (*Windows NT 6.1*) Gecko*/36.0*] +Parent="Firefox 36.0" +Platform="Win7" + +[Mozilla/5.0 (*Windows NT 6.0*rv:36.0*) Gecko*/] +Parent="Firefox 36.0" +Platform="WinVista" + +[Mozilla/5.0 (*Windows NT 10.0*rv:36.0*) Gecko*/] +Parent="Firefox 36.0" +Platform="Win10" + +[Mozilla/5.0 (*Windows NT 6.4*rv:36.0*) Gecko*/] +Parent="Firefox 36.0" +Platform="Win10" + +[Mozilla/5.0 (*Windows NT 6.3*rv:36.0*) Gecko*/] +Parent="Firefox 36.0" +Platform="Win8.1" + +[Mozilla/5.0 (*Windows NT 6.2*rv:36.0*) Gecko*/] +Parent="Firefox 36.0" +Platform="Win8" + +[Mozilla/5.0 (*Windows NT 6.1*rv:36.0*) Gecko*/] +Parent="Firefox 36.0" +Platform="Win7" + +[Mozilla/5.0 (*Mac OS X*) Gecko*/36.0*] +Parent="Firefox 36.0" +Platform="MacOSX" + +[Mozilla/5.0 (*Windows NT 6.0*rv:36.0*) Gecko* Firefox] +Parent="Firefox 36.0" +Platform="WinVista" + +[Mozilla/5.0 (*Windows NT 6.1*rv:36.0*) Gecko* Firefox] +Parent="Firefox 36.0" +Platform="Win7" + +[Mozilla/5.0 (*Windows NT 6.2*rv:36.0*) Gecko* Firefox] +Parent="Firefox 36.0" +Platform="Win8" + +[Mozilla/5.0 (*Windows NT 6.3*rv:36.0*) Gecko* Firefox] +Parent="Firefox 36.0" +Platform="Win8.1" + +[Mozilla/5.0 (*Windows NT 6.4*rv:36.0*) Gecko* Firefox] +Parent="Firefox 36.0" +Platform="Win10" + +[Mozilla/5.0 (*Windows NT 10.0*rv:36.0*) Gecko* Firefox] +Parent="Firefox 36.0" +Platform="Win10" + +[Firefox 36.0 for Android] +Parent="DefaultProperties" +Comment="Firefox 36.0" +Browser="Firefox" +Version="36.0" +Platform="Android" +isMobileDevice="true" +Device_Type="Mobile Phone" + +[Mozilla/5.0 (*Android*Mobile*) Gecko* Firefox/36.*] +Parent="Firefox 36.0 for Android" + +[Mozilla/5.0 (*Android*Tablet*) Gecko* Firefox/36.*] +Parent="Firefox 36.0 for Android" +isTablet="true" +Device_Type="Tablet" + +[Firefox 35.0] +Parent="DefaultProperties" +Comment="Firefox 35.0" +Browser="Firefox" +Version="35.0" +Device_Type="Desktop" + +[Mozilla/5.0 (*Linux*) Gecko* Firefox/35.0*] +Parent="Firefox 35.0" +Platform="Linux" + +[Mozilla/5.0 (*Windows NT 6.0*) Gecko* Firefox/35.0*] +Parent="Firefox 35.0" +Platform="WinVista" + +[Mozilla/5.0 (*Windows NT 10.0*) Gecko* Firefox/35.0*] +Parent="Firefox 35.0" +Platform="Win10" + +[Mozilla/5.0 (*Windows NT 6.4*) Gecko* Firefox/35.0*] +Parent="Firefox 35.0" +Platform="Win10" + +[Mozilla/5.0 (*Windows NT 6.3*) Gecko* Firefox/35.0*] +Parent="Firefox 35.0" +Platform="Win8.1" + +[Mozilla/5.0 (*Windows NT 6.2*) Gecko* Firefox/35.0*] +Parent="Firefox 35.0" +Platform="Win8" + +[Mozilla/5.0 (*Windows NT 6.1*) Gecko* Firefox/35.0*] +Parent="Firefox 35.0" +Platform="Win7" + +[Mozilla/5.0 (*Mac OS X*) Gecko* Firefox/35.0*] +Parent="Firefox 35.0" +Platform="MacOSX" + +[Mozilla/4.0 (*Linux*) Gecko* Firefox/35.0*] +Parent="Firefox 35.0" +Platform="Linux" + +[Mozilla/4.0 (*Windows NT 6.0*) Gecko* Firefox/35.0*] +Parent="Firefox 35.0" +Platform="WinVista" + +[Mozilla/4.0 (*Windows NT 10.0*) Gecko* Firefox/35.0*] +Parent="Firefox 35.0" +Platform="Win10" + +[Mozilla/4.0 (*Windows NT 6.4*) Gecko* Firefox/35.0*] +Parent="Firefox 35.0" +Platform="Win10" + +[Mozilla/4.0 (*Windows NT 6.3*) Gecko* Firefox/35.0*] +Parent="Firefox 35.0" +Platform="Win8.1" + +[Mozilla/4.0 (*Windows NT 6.2*) Gecko* Firefox/35.0*] +Parent="Firefox 35.0" +Platform="Win8" + +[Mozilla/4.0 (*Windows NT 6.1*) Gecko* Firefox/35.0*] +Parent="Firefox 35.0" +Platform="Win7" + +[Mozilla/4.0 (*Mac OS X*) Gecko* Firefox/35.0*] +Parent="Firefox 35.0" +Platform="MacOSX" + +[Mozilla/5.0 (*Windows NT 6.0*; rv:35*) Gecko* Firefox/35*anonymized by *] +Parent="Firefox 35.0" +Platform="WinVista" + +[Mozilla/5.0 (*Windows NT 6.1*; rv:35*) Gecko* Firefox/35*anonymized by *] +Parent="Firefox 35.0" +Platform="Win7" + +[Mozilla/5.0 (*Windows*; rv:35*) Gecko* Firefox/35*anonymized by *] +Parent="Firefox 35.0" +Platform="Win32" + +[Mozilla/5.0 (*Windows NT 6.0*; rv:35*) Gecko* Firefox anonymized by *] +Parent="Firefox 35.0" +Platform="WinVista" + +[Mozilla/5.0 (*Windows*; rv:35*) Gecko* Firefox anonymized by *] +Parent="Firefox 35.0" +Platform="Win32" + +[Mozilla/5.0 (*Windows*) Gecko* Firefox/35.0* Anonymisiert*] +Parent="Firefox 35.0" +Platform="Win32" + +[Firefox/35.0*anonymized by Abelssoft*] +Parent="Firefox 35.0" +Platform="Win32" + +[Mozilla/5.0 (masking-agent; rv:*) Gecko* Firefox/35.0*] +Parent="Firefox 35.0" + +[Mozilla/5.0 (*Windows NT 6.0*) Gecko*/35.0*] +Parent="Firefox 35.0" +Platform="WinVista" + +[Mozilla/5.0 (*Windows NT 10.0*) Gecko*/35.0*] +Parent="Firefox 35.0" +Platform="Win10" + +[Mozilla/5.0 (*Windows NT 6.4*) Gecko*/35.0*] +Parent="Firefox 35.0" +Platform="Win10" + +[Mozilla/5.0 (*Windows NT 6.3*) Gecko*/35.0*] +Parent="Firefox 35.0" +Platform="Win8.1" + +[Mozilla/5.0 (*Windows NT 6.2*) Gecko*/35.0*] +Parent="Firefox 35.0" +Platform="Win8" + +[Mozilla/5.0 (*Windows NT 6.1*) Gecko*/35.0*] +Parent="Firefox 35.0" +Platform="Win7" + +[Mozilla/5.0 (*Windows NT 6.0*rv:35.0*) Gecko*/] +Parent="Firefox 35.0" +Platform="WinVista" + +[Mozilla/5.0 (*Windows NT 10.0*rv:35.0*) Gecko*/] +Parent="Firefox 35.0" +Platform="Win10" + +[Mozilla/5.0 (*Windows NT 6.4*rv:35.0*) Gecko*/] +Parent="Firefox 35.0" +Platform="Win10" + +[Mozilla/5.0 (*Windows NT 6.3*rv:35.0*) Gecko*/] +Parent="Firefox 35.0" +Platform="Win8.1" + +[Mozilla/5.0 (*Windows NT 6.2*rv:35.0*) Gecko*/] +Parent="Firefox 35.0" +Platform="Win8" + +[Mozilla/5.0 (*Windows NT 6.1*rv:35.0*) Gecko*/] +Parent="Firefox 35.0" +Platform="Win7" + +[Mozilla/5.0 (*Mac OS X*) Gecko*/35.0*] +Parent="Firefox 35.0" +Platform="MacOSX" + +[Mozilla/5.0 (*Windows NT 6.0*rv:35.0*) Gecko* Firefox] +Parent="Firefox 35.0" +Platform="WinVista" + +[Mozilla/5.0 (*Windows NT 6.1*rv:35.0*) Gecko* Firefox] +Parent="Firefox 35.0" +Platform="Win7" + +[Mozilla/5.0 (*Windows NT 6.2*rv:35.0*) Gecko* Firefox] +Parent="Firefox 35.0" +Platform="Win8" + +[Mozilla/5.0 (*Windows NT 6.3*rv:35.0*) Gecko* Firefox] +Parent="Firefox 35.0" +Platform="Win8.1" + +[Mozilla/5.0 (*Windows NT 6.4*rv:35.0*) Gecko* Firefox] +Parent="Firefox 35.0" +Platform="Win10" + +[Mozilla/5.0 (*Windows NT 10.0*rv:35.0*) Gecko* Firefox] +Parent="Firefox 35.0" +Platform="Win10" + +[Firefox 35.0 for Android] +Parent="DefaultProperties" +Comment="Firefox 35.0" +Browser="Firefox" +Version="35.0" +Platform="Android" +isMobileDevice="true" +Device_Type="Mobile Phone" + +[Mozilla/5.0 (*Android*Mobile*) Gecko* Firefox/35.*] +Parent="Firefox 35.0 for Android" + +[Mozilla/5.0 (*Android*Tablet*) Gecko* Firefox/35.*] +Parent="Firefox 35.0 for Android" +isTablet="true" +Device_Type="Tablet" + +[Firefox 34.0] +Parent="DefaultProperties" +Comment="Firefox 34.0" +Browser="Firefox" +Version="34.0" +Device_Type="Desktop" + +[Mozilla/5.0 (*Linux*) Gecko* Firefox/34.0*] +Parent="Firefox 34.0" +Platform="Linux" + +[Mozilla/5.0 (*Windows NT 6.0*) Gecko* Firefox/34.0*] +Parent="Firefox 34.0" +Platform="WinVista" + +[Mozilla/5.0 (*Windows NT 10.0*) Gecko* Firefox/34.0*] +Parent="Firefox 34.0" +Platform="Win10" + +[Mozilla/5.0 (*Windows NT 6.4*) Gecko* Firefox/34.0*] +Parent="Firefox 34.0" +Platform="Win10" + +[Mozilla/5.0 (*Windows NT 6.3*) Gecko* Firefox/34.0*] +Parent="Firefox 34.0" +Platform="Win8.1" + +[Mozilla/5.0 (*Windows NT 6.2*) Gecko* Firefox/34.0*] +Parent="Firefox 34.0" +Platform="Win8" + +[Mozilla/5.0 (*Windows NT 6.1*) Gecko* Firefox/34.0*] +Parent="Firefox 34.0" +Platform="Win7" + +[Mozilla/5.0 (*Mac OS X*) Gecko* Firefox/34.0*] +Parent="Firefox 34.0" +Platform="MacOSX" + +[Mozilla/4.0 (*Linux*) Gecko* Firefox/34.0*] +Parent="Firefox 34.0" +Platform="Linux" + +[Mozilla/4.0 (*Windows NT 6.0*) Gecko* Firefox/34.0*] +Parent="Firefox 34.0" +Platform="WinVista" + +[Mozilla/4.0 (*Windows NT 10.0*) Gecko* Firefox/34.0*] +Parent="Firefox 34.0" +Platform="Win10" + +[Mozilla/4.0 (*Windows NT 6.4*) Gecko* Firefox/34.0*] +Parent="Firefox 34.0" +Platform="Win10" + +[Mozilla/4.0 (*Windows NT 6.3*) Gecko* Firefox/34.0*] +Parent="Firefox 34.0" +Platform="Win8.1" + +[Mozilla/4.0 (*Windows NT 6.2*) Gecko* Firefox/34.0*] +Parent="Firefox 34.0" +Platform="Win8" + +[Mozilla/4.0 (*Windows NT 6.1*) Gecko* Firefox/34.0*] +Parent="Firefox 34.0" +Platform="Win7" + +[Mozilla/4.0 (*Mac OS X*) Gecko* Firefox/34.0*] +Parent="Firefox 34.0" +Platform="MacOSX" + +[Mozilla/5.0 (*Windows NT 6.0*; rv:34*) Gecko* Firefox/34*anonymized by *] +Parent="Firefox 34.0" +Platform="WinVista" + +[Mozilla/5.0 (*Windows NT 6.1*; rv:34*) Gecko* Firefox/34*anonymized by *] +Parent="Firefox 34.0" +Platform="Win7" + +[Mozilla/5.0 (*Windows*; rv:34*) Gecko* Firefox/34*anonymized by *] +Parent="Firefox 34.0" +Platform="Win32" + +[Mozilla/5.0 (*Windows NT 6.0*; rv:34*) Gecko* Firefox anonymized by *] +Parent="Firefox 34.0" +Platform="WinVista" + +[Mozilla/5.0 (*Windows*; rv:34*) Gecko* Firefox anonymized by *] +Parent="Firefox 34.0" +Platform="Win32" + +[Mozilla/5.0 (*Windows*) Gecko* Firefox/34.0* Anonymisiert*] +Parent="Firefox 34.0" +Platform="Win32" + +[Firefox/34.0*anonymized by Abelssoft*] +Parent="Firefox 34.0" +Platform="Win32" + +[Mozilla/5.0 (masking-agent; rv:*) Gecko* Firefox/34.0*] +Parent="Firefox 34.0" + +[Mozilla/5.0 (*Windows NT 6.0*) Gecko*/34.0*] +Parent="Firefox 34.0" +Platform="WinVista" + +[Mozilla/5.0 (*Windows NT 10.0*) Gecko*/34.0*] +Parent="Firefox 34.0" +Platform="Win10" + +[Mozilla/5.0 (*Windows NT 6.4*) Gecko*/34.0*] +Parent="Firefox 34.0" +Platform="Win10" + +[Mozilla/5.0 (*Windows NT 6.3*) Gecko*/34.0*] +Parent="Firefox 34.0" +Platform="Win8.1" + +[Mozilla/5.0 (*Windows NT 6.2*) Gecko*/34.0*] +Parent="Firefox 34.0" +Platform="Win8" + +[Mozilla/5.0 (*Windows NT 6.1*) Gecko*/34.0*] +Parent="Firefox 34.0" +Platform="Win7" + +[Mozilla/5.0 (*Windows NT 6.0*rv:34.0*) Gecko*/] +Parent="Firefox 34.0" +Platform="WinVista" + +[Mozilla/5.0 (*Windows NT 10.0*rv:34.0*) Gecko*/] +Parent="Firefox 34.0" +Platform="Win10" + +[Mozilla/5.0 (*Windows NT 6.4*rv:34.0*) Gecko*/] +Parent="Firefox 34.0" +Platform="Win10" + +[Mozilla/5.0 (*Windows NT 6.3*rv:34.0*) Gecko*/] +Parent="Firefox 34.0" +Platform="Win8.1" + +[Mozilla/5.0 (*Windows NT 6.2*rv:34.0*) Gecko*/] +Parent="Firefox 34.0" +Platform="Win8" + +[Mozilla/5.0 (*Windows NT 6.1*rv:34.0*) Gecko*/] +Parent="Firefox 34.0" +Platform="Win7" + +[Mozilla/5.0 (*Mac OS X*) Gecko*/34.0*] +Parent="Firefox 34.0" +Platform="MacOSX" + +[Mozilla/5.0 (*Windows NT 6.0*rv:34.0*) Gecko* Firefox] +Parent="Firefox 34.0" +Platform="WinVista" + +[Mozilla/5.0 (*Windows NT 6.1*rv:34.0*) Gecko* Firefox] +Parent="Firefox 34.0" +Platform="Win7" + +[Mozilla/5.0 (*Windows NT 6.2*rv:34.0*) Gecko* Firefox] +Parent="Firefox 34.0" +Platform="Win8" + +[Mozilla/5.0 (*Windows NT 6.3*rv:34.0*) Gecko* Firefox] +Parent="Firefox 34.0" +Platform="Win8.1" + +[Mozilla/5.0 (*Windows NT 6.4*rv:34.0*) Gecko* Firefox] +Parent="Firefox 34.0" +Platform="Win10" + +[Mozilla/5.0 (*Windows NT 10.0*rv:34.0*) Gecko* Firefox] +Parent="Firefox 34.0" +Platform="Win10" + +[Firefox 34.0 for Android] +Parent="DefaultProperties" +Comment="Firefox 34.0" +Browser="Firefox" +Version="34.0" +Platform="Android" +isMobileDevice="true" +Device_Type="Mobile Phone" + +[Mozilla/5.0 (*Android*Mobile*) Gecko* Firefox/34.*] +Parent="Firefox 34.0 for Android" + +[Mozilla/5.0 (*Android*Tablet*) Gecko* Firefox/34.*] +Parent="Firefox 34.0 for Android" +isTablet="true" +Device_Type="Tablet" + +[Firefox 33.0] +Parent="DefaultProperties" +Comment="Firefox 33.0" +Browser="Firefox" +Version="33.0" +Device_Type="Desktop" + +[Mozilla/5.0 (*Linux*) Gecko* Firefox/33.0*] +Parent="Firefox 33.0" +Platform="Linux" + +[Mozilla/5.0 (*Windows NT 6.0*) Gecko* Firefox/33.0*] +Parent="Firefox 33.0" +Platform="WinVista" + +[Mozilla/5.0 (*Windows NT 10.0*) Gecko* Firefox/33.0*] +Parent="Firefox 33.0" +Platform="Win10" + +[Mozilla/5.0 (*Windows NT 6.4*) Gecko* Firefox/33.0*] +Parent="Firefox 33.0" +Platform="Win10" + +[Mozilla/5.0 (*Windows NT 6.3*) Gecko* Firefox/33.0*] +Parent="Firefox 33.0" +Platform="Win8.1" + +[Mozilla/5.0 (*Windows NT 6.2*) Gecko* Firefox/33.0*] +Parent="Firefox 33.0" +Platform="Win8" + +[Mozilla/5.0 (*Windows NT 6.1*) Gecko* Firefox/33.0*] +Parent="Firefox 33.0" +Platform="Win7" + +[Mozilla/5.0 (*Mac OS X*) Gecko* Firefox/33.0*] +Parent="Firefox 33.0" +Platform="MacOSX" + +[Mozilla/4.0 (*Linux*) Gecko* Firefox/33.0*] +Parent="Firefox 33.0" +Platform="Linux" + +[Mozilla/4.0 (*Windows NT 6.0*) Gecko* Firefox/33.0*] +Parent="Firefox 33.0" +Platform="WinVista" + +[Mozilla/4.0 (*Windows NT 10.0*) Gecko* Firefox/33.0*] +Parent="Firefox 33.0" +Platform="Win10" + +[Mozilla/4.0 (*Windows NT 6.4*) Gecko* Firefox/33.0*] +Parent="Firefox 33.0" +Platform="Win10" + +[Mozilla/4.0 (*Windows NT 6.3*) Gecko* Firefox/33.0*] +Parent="Firefox 33.0" +Platform="Win8.1" + +[Mozilla/4.0 (*Windows NT 6.2*) Gecko* Firefox/33.0*] +Parent="Firefox 33.0" +Platform="Win8" + +[Mozilla/4.0 (*Windows NT 6.1*) Gecko* Firefox/33.0*] +Parent="Firefox 33.0" +Platform="Win7" + +[Mozilla/4.0 (*Mac OS X*) Gecko* Firefox/33.0*] +Parent="Firefox 33.0" +Platform="MacOSX" + +[Mozilla/5.0 (*Windows NT 6.0*; rv:33*) Gecko* Firefox/33*anonymized by *] +Parent="Firefox 33.0" +Platform="WinVista" + +[Mozilla/5.0 (*Windows NT 6.1*; rv:33*) Gecko* Firefox/33*anonymized by *] +Parent="Firefox 33.0" +Platform="Win7" + +[Mozilla/5.0 (*Windows*; rv:33*) Gecko* Firefox/33*anonymized by *] +Parent="Firefox 33.0" +Platform="Win32" + +[Mozilla/5.0 (*Windows NT 6.0*; rv:33*) Gecko* Firefox anonymized by *] +Parent="Firefox 33.0" +Platform="WinVista" + +[Mozilla/5.0 (*Windows*; rv:33*) Gecko* Firefox anonymized by *] +Parent="Firefox 33.0" +Platform="Win32" + +[Mozilla/5.0 (*Windows*) Gecko* Firefox/33.0* Anonymisiert*] +Parent="Firefox 33.0" +Platform="Win32" + +[Firefox/33.0*anonymized by Abelssoft*] +Parent="Firefox 33.0" +Platform="Win32" + +[Mozilla/5.0 (masking-agent; rv:*) Gecko* Firefox/33.0*] +Parent="Firefox 33.0" + +[Mozilla/5.0 (*Windows NT 6.0*) Gecko*/33.0*] +Parent="Firefox 33.0" +Platform="WinVista" + +[Mozilla/5.0 (*Windows NT 10.0*) Gecko*/33.0*] +Parent="Firefox 33.0" +Platform="Win10" + +[Mozilla/5.0 (*Windows NT 6.4*) Gecko*/33.0*] +Parent="Firefox 33.0" +Platform="Win10" + +[Mozilla/5.0 (*Windows NT 6.3*) Gecko*/33.0*] +Parent="Firefox 33.0" +Platform="Win8.1" + +[Mozilla/5.0 (*Windows NT 6.2*) Gecko*/33.0*] +Parent="Firefox 33.0" +Platform="Win8" + +[Mozilla/5.0 (*Windows NT 6.1*) Gecko*/33.0*] +Parent="Firefox 33.0" +Platform="Win7" + +[Mozilla/5.0 (*Windows NT 6.0*rv:33.0*) Gecko*/] +Parent="Firefox 33.0" +Platform="WinVista" + +[Mozilla/5.0 (*Windows NT 10.0*rv:33.0*) Gecko*/] +Parent="Firefox 33.0" +Platform="Win10" + +[Mozilla/5.0 (*Windows NT 6.4*rv:33.0*) Gecko*/] +Parent="Firefox 33.0" +Platform="Win10" + +[Mozilla/5.0 (*Windows NT 6.3*rv:33.0*) Gecko*/] +Parent="Firefox 33.0" +Platform="Win8.1" + +[Mozilla/5.0 (*Windows NT 6.2*rv:33.0*) Gecko*/] +Parent="Firefox 33.0" +Platform="Win8" + +[Mozilla/5.0 (*Windows NT 6.1*rv:33.0*) Gecko*/] +Parent="Firefox 33.0" +Platform="Win7" + +[Mozilla/5.0 (*Mac OS X*) Gecko*/33.0*] +Parent="Firefox 33.0" +Platform="MacOSX" + +[Mozilla/5.0 (*Windows NT 6.0*rv:33.0*) Gecko* Firefox] +Parent="Firefox 33.0" +Platform="WinVista" + +[Mozilla/5.0 (*Windows NT 6.1*rv:33.0*) Gecko* Firefox] +Parent="Firefox 33.0" +Platform="Win7" + +[Mozilla/5.0 (*Windows NT 6.2*rv:33.0*) Gecko* Firefox] +Parent="Firefox 33.0" +Platform="Win8" + +[Mozilla/5.0 (*Windows NT 6.3*rv:33.0*) Gecko* Firefox] +Parent="Firefox 33.0" +Platform="Win8.1" + +[Mozilla/5.0 (*Windows NT 6.4*rv:33.0*) Gecko* Firefox] +Parent="Firefox 33.0" +Platform="Win10" + +[Mozilla/5.0 (*Windows NT 10.0*rv:33.0*) Gecko* Firefox] +Parent="Firefox 33.0" +Platform="Win10" + +[Firefox 33.0 for Android] +Parent="DefaultProperties" +Comment="Firefox 33.0" +Browser="Firefox" +Version="33.0" +Platform="Android" +isMobileDevice="true" +Device_Type="Mobile Phone" + +[Mozilla/5.0 (*Android*Mobile*) Gecko* Firefox/33.*] +Parent="Firefox 33.0 for Android" + +[Mozilla/5.0 (*Android*Tablet*) Gecko* Firefox/33.*] +Parent="Firefox 33.0 for Android" +isTablet="true" +Device_Type="Tablet" + +[Firefox 32.0] +Parent="DefaultProperties" +Comment="Firefox 32.0" +Browser="Firefox" +Version="32.0" +Device_Type="Desktop" + +[Mozilla/5.0 (*Linux*) Gecko* Firefox/32.0*] +Parent="Firefox 32.0" +Platform="Linux" + +[Mozilla/5.0 (*Windows NT 6.0*) Gecko* Firefox/32.0*] +Parent="Firefox 32.0" +Platform="WinVista" + +[Mozilla/5.0 (*Windows NT 10.0*) Gecko* Firefox/32.0*] +Parent="Firefox 32.0" +Platform="Win10" + +[Mozilla/5.0 (*Windows NT 6.4*) Gecko* Firefox/32.0*] +Parent="Firefox 32.0" +Platform="Win10" + +[Mozilla/5.0 (*Windows NT 6.3*) Gecko* Firefox/32.0*] +Parent="Firefox 32.0" +Platform="Win8.1" + +[Mozilla/5.0 (*Windows NT 6.2*) Gecko* Firefox/32.0*] +Parent="Firefox 32.0" +Platform="Win8" + +[Mozilla/5.0 (*Windows NT 6.1*) Gecko* Firefox/32.0*] +Parent="Firefox 32.0" +Platform="Win7" + +[Mozilla/5.0 (*Mac OS X*) Gecko* Firefox/32.0*] +Parent="Firefox 32.0" +Platform="MacOSX" + +[Mozilla/4.0 (*Linux*) Gecko* Firefox/32.0*] +Parent="Firefox 32.0" +Platform="Linux" + +[Mozilla/4.0 (*Windows NT 6.0*) Gecko* Firefox/32.0*] +Parent="Firefox 32.0" +Platform="WinVista" + +[Mozilla/4.0 (*Windows NT 10.0*) Gecko* Firefox/32.0*] +Parent="Firefox 32.0" +Platform="Win10" + +[Mozilla/4.0 (*Windows NT 6.4*) Gecko* Firefox/32.0*] +Parent="Firefox 32.0" +Platform="Win10" + +[Mozilla/4.0 (*Windows NT 6.3*) Gecko* Firefox/32.0*] +Parent="Firefox 32.0" +Platform="Win8.1" + +[Mozilla/4.0 (*Windows NT 6.2*) Gecko* Firefox/32.0*] +Parent="Firefox 32.0" +Platform="Win8" + +[Mozilla/4.0 (*Windows NT 6.1*) Gecko* Firefox/32.0*] +Parent="Firefox 32.0" +Platform="Win7" + +[Mozilla/4.0 (*Mac OS X*) Gecko* Firefox/32.0*] +Parent="Firefox 32.0" +Platform="MacOSX" + +[Mozilla/5.0 (*Windows NT 6.0*; rv:32*) Gecko* Firefox/32*anonymized by *] +Parent="Firefox 32.0" +Platform="WinVista" + +[Mozilla/5.0 (*Windows NT 6.1*; rv:32*) Gecko* Firefox/32*anonymized by *] +Parent="Firefox 32.0" +Platform="Win7" + +[Mozilla/5.0 (*Windows*; rv:32*) Gecko* Firefox/32*anonymized by *] +Parent="Firefox 32.0" +Platform="Win32" + +[Mozilla/5.0 (*Windows NT 6.0*; rv:32*) Gecko* Firefox anonymized by *] +Parent="Firefox 32.0" +Platform="WinVista" + +[Mozilla/5.0 (*Windows*; rv:32*) Gecko* Firefox anonymized by *] +Parent="Firefox 32.0" +Platform="Win32" + +[Mozilla/5.0 (*Windows*) Gecko* Firefox/32.0* Anonymisiert*] +Parent="Firefox 32.0" +Platform="Win32" + +[Firefox/32.0*anonymized by Abelssoft*] +Parent="Firefox 32.0" +Platform="Win32" + +[Mozilla/5.0 (masking-agent; rv:*) Gecko* Firefox/32.0*] +Parent="Firefox 32.0" + +[Mozilla/5.0 (*Windows NT 6.0*) Gecko*/32.0*] +Parent="Firefox 32.0" +Platform="WinVista" + +[Mozilla/5.0 (*Windows NT 10.0*) Gecko*/32.0*] +Parent="Firefox 32.0" +Platform="Win10" + +[Mozilla/5.0 (*Windows NT 6.4*) Gecko*/32.0*] +Parent="Firefox 32.0" +Platform="Win10" + +[Mozilla/5.0 (*Windows NT 6.3*) Gecko*/32.0*] +Parent="Firefox 32.0" +Platform="Win8.1" + +[Mozilla/5.0 (*Windows NT 6.2*) Gecko*/32.0*] +Parent="Firefox 32.0" +Platform="Win8" + +[Mozilla/5.0 (*Windows NT 6.1*) Gecko*/32.0*] +Parent="Firefox 32.0" +Platform="Win7" + +[Mozilla/5.0 (*Windows NT 6.0*rv:32.0*) Gecko*/] +Parent="Firefox 32.0" +Platform="WinVista" + +[Mozilla/5.0 (*Windows NT 10.0*rv:32.0*) Gecko*/] +Parent="Firefox 32.0" +Platform="Win10" + +[Mozilla/5.0 (*Windows NT 6.4*rv:32.0*) Gecko*/] +Parent="Firefox 32.0" +Platform="Win10" + +[Mozilla/5.0 (*Windows NT 6.3*rv:32.0*) Gecko*/] +Parent="Firefox 32.0" +Platform="Win8.1" + +[Mozilla/5.0 (*Windows NT 6.2*rv:32.0*) Gecko*/] +Parent="Firefox 32.0" +Platform="Win8" + +[Mozilla/5.0 (*Windows NT 6.1*rv:32.0*) Gecko*/] +Parent="Firefox 32.0" +Platform="Win7" + +[Mozilla/5.0 (*Mac OS X*) Gecko*/32.0*] +Parent="Firefox 32.0" +Platform="MacOSX" + +[Mozilla/5.0 (*Windows NT 6.0*rv:32.0*) Gecko* Firefox] +Parent="Firefox 32.0" +Platform="WinVista" + +[Mozilla/5.0 (*Windows NT 6.1*rv:32.0*) Gecko* Firefox] +Parent="Firefox 32.0" +Platform="Win7" + +[Mozilla/5.0 (*Windows NT 6.2*rv:32.0*) Gecko* Firefox] +Parent="Firefox 32.0" +Platform="Win8" + +[Mozilla/5.0 (*Windows NT 6.3*rv:32.0*) Gecko* Firefox] +Parent="Firefox 32.0" +Platform="Win8.1" + +[Mozilla/5.0 (*Windows NT 6.4*rv:32.0*) Gecko* Firefox] +Parent="Firefox 32.0" +Platform="Win10" + +[Mozilla/5.0 (*Windows NT 10.0*rv:32.0*) Gecko* Firefox] +Parent="Firefox 32.0" +Platform="Win10" + +[Firefox 32.0 for Android] +Parent="DefaultProperties" +Comment="Firefox 32.0" +Browser="Firefox" +Version="32.0" +Platform="Android" +isMobileDevice="true" +Device_Type="Mobile Phone" + +[Mozilla/5.0 (*Android*Mobile*) Gecko* Firefox/32.*] +Parent="Firefox 32.0 for Android" + +[Mozilla/5.0 (*Android*Tablet*) Gecko* Firefox/32.*] +Parent="Firefox 32.0 for Android" +isTablet="true" +Device_Type="Tablet" + +[Firefox 31.0] +Parent="DefaultProperties" +Comment="Firefox 31.0" +Browser="Firefox" +Version="31.0" +Device_Type="Desktop" + +[Mozilla/5.0 (*Linux*) Gecko* Firefox/31.0*] +Parent="Firefox 31.0" +Platform="Linux" + +[Mozilla/5.0 (*Windows NT 6.0*) Gecko* Firefox/31.0*] +Parent="Firefox 31.0" +Platform="WinVista" + +[Mozilla/5.0 (*Windows NT 10.0*) Gecko* Firefox/31.0*] +Parent="Firefox 31.0" +Platform="Win10" + +[Mozilla/5.0 (*Windows NT 6.4*) Gecko* Firefox/31.0*] +Parent="Firefox 31.0" +Platform="Win10" + +[Mozilla/5.0 (*Windows NT 6.3*) Gecko* Firefox/31.0*] +Parent="Firefox 31.0" +Platform="Win8.1" + +[Mozilla/5.0 (*Windows NT 6.2*) Gecko* Firefox/31.0*] +Parent="Firefox 31.0" +Platform="Win8" + +[Mozilla/5.0 (*Windows NT 6.1*) Gecko* Firefox/31.0*] +Parent="Firefox 31.0" +Platform="Win7" + +[Mozilla/5.0 (*Mac OS X*) Gecko* Firefox/31.0*] +Parent="Firefox 31.0" +Platform="MacOSX" + +[Mozilla/4.0 (*Linux*) Gecko* Firefox/31.0*] +Parent="Firefox 31.0" +Platform="Linux" + +[Mozilla/4.0 (*Windows NT 6.0*) Gecko* Firefox/31.0*] +Parent="Firefox 31.0" +Platform="WinVista" + +[Mozilla/4.0 (*Windows NT 10.0*) Gecko* Firefox/31.0*] +Parent="Firefox 31.0" +Platform="Win10" + +[Mozilla/4.0 (*Windows NT 6.4*) Gecko* Firefox/31.0*] +Parent="Firefox 31.0" +Platform="Win10" + +[Mozilla/4.0 (*Windows NT 6.3*) Gecko* Firefox/31.0*] +Parent="Firefox 31.0" +Platform="Win8.1" + +[Mozilla/4.0 (*Windows NT 6.2*) Gecko* Firefox/31.0*] +Parent="Firefox 31.0" +Platform="Win8" + +[Mozilla/4.0 (*Windows NT 6.1*) Gecko* Firefox/31.0*] +Parent="Firefox 31.0" +Platform="Win7" + +[Mozilla/4.0 (*Mac OS X*) Gecko* Firefox/31.0*] +Parent="Firefox 31.0" +Platform="MacOSX" + +[Mozilla/5.0 (*Windows NT 6.0*; rv:31*) Gecko* Firefox/31*anonymized by *] +Parent="Firefox 31.0" +Platform="WinVista" + +[Mozilla/5.0 (*Windows NT 6.1*; rv:31*) Gecko* Firefox/31*anonymized by *] +Parent="Firefox 31.0" +Platform="Win7" + +[Mozilla/5.0 (*Windows*; rv:31*) Gecko* Firefox/31*anonymized by *] +Parent="Firefox 31.0" +Platform="Win32" + +[Mozilla/5.0 (*Windows NT 6.0*; rv:31*) Gecko* Firefox anonymized by *] +Parent="Firefox 31.0" +Platform="WinVista" + +[Mozilla/5.0 (*Windows*; rv:31*) Gecko* Firefox anonymized by *] +Parent="Firefox 31.0" +Platform="Win32" + +[Mozilla/5.0 (*Windows*) Gecko* Firefox/31.0* Anonymisiert*] +Parent="Firefox 31.0" +Platform="Win32" + +[Firefox/31.0*anonymized by Abelssoft*] +Parent="Firefox 31.0" +Platform="Win32" + +[Mozilla/5.0 (masking-agent; rv:*) Gecko* Firefox/31.0*] +Parent="Firefox 31.0" + +[Mozilla/5.0 (*Windows NT 6.0*) Gecko*/31.0*] +Parent="Firefox 31.0" +Platform="WinVista" + +[Mozilla/5.0 (*Windows NT 10.0*) Gecko*/31.0*] +Parent="Firefox 31.0" +Platform="Win10" + +[Mozilla/5.0 (*Windows NT 6.4*) Gecko*/31.0*] +Parent="Firefox 31.0" +Platform="Win10" + +[Mozilla/5.0 (*Windows NT 6.3*) Gecko*/31.0*] +Parent="Firefox 31.0" +Platform="Win8.1" + +[Mozilla/5.0 (*Windows NT 6.2*) Gecko*/31.0*] +Parent="Firefox 31.0" +Platform="Win8" + +[Mozilla/5.0 (*Windows NT 6.1*) Gecko*/31.0*] +Parent="Firefox 31.0" +Platform="Win7" + +[Mozilla/5.0 (*Windows NT 6.0*rv:31.0*) Gecko*/] +Parent="Firefox 31.0" +Platform="WinVista" + +[Mozilla/5.0 (*Windows NT 10.0*rv:31.0*) Gecko*/] +Parent="Firefox 31.0" +Platform="Win10" + +[Mozilla/5.0 (*Windows NT 6.4*rv:31.0*) Gecko*/] +Parent="Firefox 31.0" +Platform="Win10" + +[Mozilla/5.0 (*Windows NT 6.3*rv:31.0*) Gecko*/] +Parent="Firefox 31.0" +Platform="Win8.1" + +[Mozilla/5.0 (*Windows NT 6.2*rv:31.0*) Gecko*/] +Parent="Firefox 31.0" +Platform="Win8" + +[Mozilla/5.0 (*Windows NT 6.1*rv:31.0*) Gecko*/] +Parent="Firefox 31.0" +Platform="Win7" + +[Mozilla/5.0 (*Mac OS X*) Gecko*/31.0*] +Parent="Firefox 31.0" +Platform="MacOSX" + +[Mozilla/5.0 (*Windows NT 6.0*rv:31.0*) Gecko* Firefox] +Parent="Firefox 31.0" +Platform="WinVista" + +[Mozilla/5.0 (*Windows NT 6.1*rv:31.0*) Gecko* Firefox] +Parent="Firefox 31.0" +Platform="Win7" + +[Mozilla/5.0 (*Windows NT 6.2*rv:31.0*) Gecko* Firefox] +Parent="Firefox 31.0" +Platform="Win8" + +[Mozilla/5.0 (*Windows NT 6.3*rv:31.0*) Gecko* Firefox] +Parent="Firefox 31.0" +Platform="Win8.1" + +[Mozilla/5.0 (*Windows NT 6.4*rv:31.0*) Gecko* Firefox] +Parent="Firefox 31.0" +Platform="Win10" + +[Mozilla/5.0 (*Windows NT 10.0*rv:31.0*) Gecko* Firefox] +Parent="Firefox 31.0" +Platform="Win10" + +[Firefox 31.0 for Android] +Parent="DefaultProperties" +Comment="Firefox 31.0" +Browser="Firefox" +Version="31.0" +Platform="Android" +isMobileDevice="true" +Device_Type="Mobile Phone" + +[Mozilla/5.0 (*Android*Mobile*) Gecko* Firefox/31.*] +Parent="Firefox 31.0 for Android" + +[Mozilla/5.0 (*Android*Tablet*) Gecko* Firefox/31.*] +Parent="Firefox 31.0 for Android" +isTablet="true" +Device_Type="Tablet" + +[Firefox 30.0] +Parent="DefaultProperties" +Comment="Firefox 30.0" +Browser="Firefox" +Version="30.0" +Device_Type="Desktop" + +[Mozilla/5.0 (*Linux*) Gecko* Firefox/30.0*] +Parent="Firefox 30.0" +Platform="Linux" + +[Mozilla/5.0 (*Windows NT 6.0*) Gecko* Firefox/30.0*] +Parent="Firefox 30.0" +Platform="WinVista" + +[Mozilla/5.0 (*Windows NT 10.0*) Gecko* Firefox/30.0*] +Parent="Firefox 30.0" +Platform="Win10" + +[Mozilla/5.0 (*Windows NT 6.4*) Gecko* Firefox/30.0*] +Parent="Firefox 30.0" +Platform="Win10" + +[Mozilla/5.0 (*Windows NT 6.3*) Gecko* Firefox/30.0*] +Parent="Firefox 30.0" +Platform="Win8.1" + +[Mozilla/5.0 (*Windows NT 6.2*) Gecko* Firefox/30.0*] +Parent="Firefox 30.0" +Platform="Win8" + +[Mozilla/5.0 (*Windows NT 6.1*) Gecko* Firefox/30.0*] +Parent="Firefox 30.0" +Platform="Win7" + +[Mozilla/5.0 (*Mac OS X*) Gecko* Firefox/30.0*] +Parent="Firefox 30.0" +Platform="MacOSX" + +[Mozilla/4.0 (*Linux*) Gecko* Firefox/30.0*] +Parent="Firefox 30.0" +Platform="Linux" + +[Mozilla/4.0 (*Windows NT 6.0*) Gecko* Firefox/30.0*] +Parent="Firefox 30.0" +Platform="WinVista" + +[Mozilla/4.0 (*Windows NT 10.0*) Gecko* Firefox/30.0*] +Parent="Firefox 30.0" +Platform="Win10" + +[Mozilla/4.0 (*Windows NT 6.4*) Gecko* Firefox/30.0*] +Parent="Firefox 30.0" +Platform="Win10" + +[Mozilla/4.0 (*Windows NT 6.3*) Gecko* Firefox/30.0*] +Parent="Firefox 30.0" +Platform="Win8.1" + +[Mozilla/4.0 (*Windows NT 6.2*) Gecko* Firefox/30.0*] +Parent="Firefox 30.0" +Platform="Win8" + +[Mozilla/4.0 (*Windows NT 6.1*) Gecko* Firefox/30.0*] +Parent="Firefox 30.0" +Platform="Win7" + +[Mozilla/4.0 (*Mac OS X*) Gecko* Firefox/30.0*] +Parent="Firefox 30.0" +Platform="MacOSX" + +[Mozilla/5.0 (*Windows NT 6.0*; rv:30*) Gecko* Firefox/30*anonymized by *] +Parent="Firefox 30.0" +Platform="WinVista" + +[Mozilla/5.0 (*Windows NT 6.1*; rv:30*) Gecko* Firefox/30*anonymized by *] +Parent="Firefox 30.0" +Platform="Win7" + +[Mozilla/5.0 (*Windows*; rv:30*) Gecko* Firefox/30*anonymized by *] +Parent="Firefox 30.0" +Platform="Win32" + +[Mozilla/5.0 (*Windows NT 6.0*; rv:30*) Gecko* Firefox anonymized by *] +Parent="Firefox 30.0" +Platform="WinVista" + +[Mozilla/5.0 (*Windows*; rv:30*) Gecko* Firefox anonymized by *] +Parent="Firefox 30.0" +Platform="Win32" + +[Mozilla/5.0 (*Windows*) Gecko* Firefox/30.0* Anonymisiert*] +Parent="Firefox 30.0" +Platform="Win32" + +[Firefox/30.0*anonymized by Abelssoft*] +Parent="Firefox 30.0" +Platform="Win32" + +[Mozilla/5.0 (masking-agent; rv:*) Gecko* Firefox/30.0*] +Parent="Firefox 30.0" + +[Mozilla/5.0 (*Windows NT 6.0*) Gecko*/30.0*] +Parent="Firefox 30.0" +Platform="WinVista" + +[Mozilla/5.0 (*Windows NT 10.0*) Gecko*/30.0*] +Parent="Firefox 30.0" +Platform="Win10" + +[Mozilla/5.0 (*Windows NT 6.4*) Gecko*/30.0*] +Parent="Firefox 30.0" +Platform="Win10" + +[Mozilla/5.0 (*Windows NT 6.3*) Gecko*/30.0*] +Parent="Firefox 30.0" +Platform="Win8.1" + +[Mozilla/5.0 (*Windows NT 6.2*) Gecko*/30.0*] +Parent="Firefox 30.0" +Platform="Win8" + +[Mozilla/5.0 (*Windows NT 6.1*) Gecko*/30.0*] +Parent="Firefox 30.0" +Platform="Win7" + +[Mozilla/5.0 (*Windows NT 6.0*rv:30.0*) Gecko*/] +Parent="Firefox 30.0" +Platform="WinVista" + +[Mozilla/5.0 (*Windows NT 10.0*rv:30.0*) Gecko*/] +Parent="Firefox 30.0" +Platform="Win10" + +[Mozilla/5.0 (*Windows NT 6.4*rv:30.0*) Gecko*/] +Parent="Firefox 30.0" +Platform="Win10" + +[Mozilla/5.0 (*Windows NT 6.3*rv:30.0*) Gecko*/] +Parent="Firefox 30.0" +Platform="Win8.1" + +[Mozilla/5.0 (*Windows NT 6.2*rv:30.0*) Gecko*/] +Parent="Firefox 30.0" +Platform="Win8" + +[Mozilla/5.0 (*Windows NT 6.1*rv:30.0*) Gecko*/] +Parent="Firefox 30.0" +Platform="Win7" + +[Mozilla/5.0 (*Mac OS X*) Gecko*/30.0*] +Parent="Firefox 30.0" +Platform="MacOSX" + +[Mozilla/5.0 (*Windows NT 6.0*rv:30.0*) Gecko* Firefox] +Parent="Firefox 30.0" +Platform="WinVista" + +[Mozilla/5.0 (*Windows NT 6.1*rv:30.0*) Gecko* Firefox] +Parent="Firefox 30.0" +Platform="Win7" + +[Mozilla/5.0 (*Windows NT 6.2*rv:30.0*) Gecko* Firefox] +Parent="Firefox 30.0" +Platform="Win8" + +[Mozilla/5.0 (*Windows NT 6.3*rv:30.0*) Gecko* Firefox] +Parent="Firefox 30.0" +Platform="Win8.1" + +[Mozilla/5.0 (*Windows NT 6.4*rv:30.0*) Gecko* Firefox] +Parent="Firefox 30.0" +Platform="Win10" + +[Mozilla/5.0 (*Windows NT 10.0*rv:30.0*) Gecko* Firefox] +Parent="Firefox 30.0" +Platform="Win10" + +[Firefox 30.0 for Android] +Parent="DefaultProperties" +Comment="Firefox 30.0" +Browser="Firefox" +Version="30.0" +Platform="Android" +isMobileDevice="true" +Device_Type="Mobile Phone" + +[Mozilla/5.0 (*Android*Mobile*) Gecko* Firefox/30.*] +Parent="Firefox 30.0 for Android" + +[Mozilla/5.0 (*Android*Tablet*) Gecko* Firefox/30.*] +Parent="Firefox 30.0 for Android" +isTablet="true" +Device_Type="Tablet" + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Firefox Generic + +[Firefox Generic] +Parent="DefaultProperties" +Comment="Firefox Generic" +Browser="Firefox" +Device_Type="Desktop" + +[Mozilla/5.0 (*Linux*) Gecko* Firefox/*] +Parent="Firefox Generic" +Platform="Linux" + +[Mozilla/5.0 (*Windows NT 6.0*) Gecko* Firefox/*] +Parent="Firefox Generic" +Platform="WinVista" + +[Mozilla/5.0 (*Windows NT 6.1*) Gecko* Firefox/*] +Parent="Firefox Generic" +Platform="Win7" + +[Mozilla/5.0 (*Windows NT 6.2*) Gecko* Firefox/*] +Parent="Firefox Generic" +Platform="Win8" + +[Mozilla/5.0 (*Windows NT 6.3*) Gecko* Firefox/*] +Parent="Firefox Generic" +Platform="Win8.1" + +[Mozilla/5.0 (*Windows NT 6.4*) Gecko* Firefox/*] +Parent="Firefox Generic" +Platform="Win10" + +[Mozilla/5.0 (*Windows NT 10.0*) Gecko* Firefox/*] +Parent="Firefox Generic" +Platform="Win10" + +[Mozilla/5.0 (*Mac OS X*) Gecko* Firefox/*] +Parent="Firefox Generic" +Platform="MacOSX" + +[Mozilla/4.0 (*Linux*) Gecko* Firefox/*] +Parent="Firefox Generic" +Platform="Linux" + +[Mozilla/4.0 (*Windows NT 6.0*) Gecko* Firefox/*] +Parent="Firefox Generic" +Platform="WinVista" + +[Mozilla/4.0 (*Windows NT 6.1*) Gecko* Firefox/*] +Parent="Firefox Generic" +Platform="Win7" + +[Mozilla/4.0 (*Windows NT 6.2*) Gecko* Firefox/*] +Parent="Firefox Generic" +Platform="Win8" + +[Mozilla/4.0 (*Windows NT 6.3*) Gecko* Firefox/*] +Parent="Firefox Generic" +Platform="Win8.1" + +[Mozilla/4.0 (*Windows NT 6.4*) Gecko* Firefox/*] +Parent="Firefox Generic" +Platform="Win10" + +[Mozilla/4.0 (*Windows NT 10.0*) Gecko* Firefox/*] +Parent="Firefox Generic" +Platform="Win10" + +[Mozilla/4.0 (*Mac OS X*) Gecko* Firefox/*] +Parent="Firefox Generic" +Platform="MacOSX" + +[Mozilla/5.0 (*Windows NT 6.0*; rv:*) Gecko* Firefox/*anonymized by *] +Parent="Firefox Generic" +Platform="WinVista" + +[Mozilla/5.0 (*Windows NT 6.1*; rv:*) Gecko* Firefox/*anonymized by *] +Parent="Firefox Generic" +Platform="Win7" + +[Mozilla/5.0 (*Windows*; rv:*) Gecko* Firefox/*anonymized by *] +Parent="Firefox Generic" +Platform="Win32" + +[Mozilla/5.0 (*Windows NT 6.0*; rv:*) Gecko* Firefox anonymized by *] +Parent="Firefox Generic" +Platform="WinVista" + +[Mozilla/5.0 (*Windows*; rv:*) Gecko* Firefox anonymized by *] +Parent="Firefox Generic" +Platform="Win32" + +[Mozilla/5.0 (*Windows*) Gecko* Firefox/* Anonymisiert*] +Parent="Firefox Generic" +Platform="Win32" + +[Firefox/*anonymized by Abelssoft*] +Parent="Firefox Generic" +Platform="Win32" + +[Mozilla/5.0 (masking-agent; rv:*) Gecko* Firefox/*] +Parent="Firefox Generic" + +[Mozilla/5.0 (*Windows NT 6.0*) Gecko*/*] +Parent="Firefox Generic" +Platform="WinVista" + +[Mozilla/5.0 (*Windows NT 6.1*) Gecko*/*] +Parent="Firefox Generic" +Platform="Win7" + +[Mozilla/5.0 (*Windows NT 6.2*) Gecko*/*] +Parent="Firefox Generic" +Platform="Win8" + +[Mozilla/5.0 (*Windows NT 6.3*) Gecko*/*] +Parent="Firefox Generic" +Platform="Win8.1" + +[Mozilla/5.0 (*Windows NT 6.4*) Gecko*/*] +Parent="Firefox Generic" +Platform="Win10" + +[Mozilla/5.0 (*Windows NT 10.0*) Gecko*/*] +Parent="Firefox Generic" +Platform="Win10" + +[Mozilla/5.0 (*Windows NT 6.0*rv:*) Gecko*/] +Parent="Firefox Generic" +Platform="WinVista" + +[Mozilla/5.0 (*Windows NT 6.1*rv:*) Gecko*/] +Parent="Firefox Generic" +Platform="Win7" + +[Mozilla/5.0 (*Windows NT 6.2*rv:*) Gecko*/] +Parent="Firefox Generic" +Platform="Win8" + +[Mozilla/5.0 (*Windows NT 6.3*rv:*) Gecko*/] +Parent="Firefox Generic" +Platform="Win8.1" + +[Mozilla/5.0 (*Windows NT 6.4*rv:*) Gecko*/] +Parent="Firefox Generic" +Platform="Win10" + +[Mozilla/5.0 (*Windows NT 10.0*rv:*) Gecko*/] +Parent="Firefox Generic" +Platform="Win10" + +[Mozilla/5.0 (*Mac OS X*) Gecko*/*] +Parent="Firefox Generic" +Platform="MacOSX" + +[Mozilla/5.0 (*Windows NT 6.4*rv:*) Gecko* Firefox*] +Parent="Firefox Generic" +Platform="Win10" + +[Mozilla/5.0 (*Windows NT 10.0*rv:*) Gecko* Firefox*] +Parent="Firefox Generic" +Platform="Win10" + +[Firefox Generic for Android] +Parent="DefaultProperties" +Comment="Firefox Generic" +Browser="Firefox" +Platform="Android" +isMobileDevice="true" +Device_Type="Mobile Phone" + +[Mozilla/5.0 (*Android*Mobile*) Gecko* Firefox/*] +Parent="Firefox Generic for Android" + +[Mozilla/5.0 (*Android*Tablet*) Gecko* Firefox/*] +Parent="Firefox Generic for Android" +isTablet="true" +Device_Type="Tablet" + +[Mozilla/5.0 (*Android*Mobile*)*Gecko*Firefox/*] +Parent="Firefox Generic for Android" + +[Mozilla/5.0 (*Android*Mobile*)*Gecko*Firefox/ anonymized by Abelssoft*] +Parent="Firefox Generic for Android" + +[Mozilla/5.0 (*Android*Tablet*)*Gecko*Firefox/*] +Parent="Firefox Generic for Android" +isTablet="true" +Device_Type="Tablet" + +[Mozilla/5.0 (*Android*Tablet*)*Gecko*Firefox/ anonymized by Abelssoft*] +Parent="Firefox Generic for Android" +isTablet="true" +Device_Type="Tablet" + +[*] +Parent="DefaultProperties" +Comment="Default Browser" +Browser="Default Browser" +isMobileDevice="false" +isTablet="false" + diff --git a/ext/standard/tests/misc/get_browser_variation3.phpt b/ext/standard/tests/misc/get_browser_variation3.phpt new file mode 100644 index 00000000000..d6367f6d41a --- /dev/null +++ b/ext/standard/tests/misc/get_browser_variation3.phpt @@ -0,0 +1,2238 @@ +--TEST-- +Test get_browser() against a larger corpus +--INI-- +browscap={PWD}/browscap_lite_2016_12_06.ini +--FILE-- + +--EXPECT-- +Agent - + Matched by: * +Agent AHC/1.0 + Matched by: * +Agent Airmail 1.4.1 rv:249 (Macintosh; Mac OS X 10.11.6; de_DE) + Matched by: * +Agent Apache/2.4.10 (Debian) OpenSSL/1.0.1k (internal dummy connection) + Matched by: * +Agent BaiduSpider + Matched by: * +Agent Baiduspider+(+http://www.baidu.com/search/spider.htm) + Matched by: * +Agent Baiduspider-image+(+http://www.baidu.com/search/spider.htm) + Matched by: * +Agent BigDataCloud + Matched by: * +Agent BlackBerry9000/4.6.0.167 Profile/MIDP-2.0 Configuration/CLDC-1.1 VendorID/102 ips-agent + Matched by: * +Agent BPImageWalker/2.0 (www.bdbrandprotect.com) + Matched by: * +Agent BUFF library user agent + Matched by: * +Agent CCBot/2.0 (http://commoncrawl.org/faq/) + Matched by: * +Agent censys.io internet census + Matched by: * +Agent compatible;Baiduspider/2.0; +http://www.baidu.com/search/spider.html + Matched by: * +Agent core-project/1.0 + Matched by: * +Agent Crawler powered by contentDetection (www.mindup.de) + Matched by: * +Agent CRAZYWEBCRAWLER 0.9.10, http://www.crazywebcrawler.com + Matched by: * +Agent curl/7.19.7 (x86_64-redhat-linux-gnu) libcurl/7.19.7 NSS/3.15.3 zlib/1.2.3 libidn/1.18 libssh2/1.4.2 + Matched by: * +Agent curl/7.19.7 (x86_64-redhat-linux-gnu) libcurl/7.19.7 NSS/3.21 Basic ECC zlib/1.2.3 libidn/1.18 libssh2/1.4.2 + Matched by: * +Agent curl/7.19.7 (x86_64-unknown-linux-gnu) libcurl/7.19.7 NSS/3.12.6.2 zlib/1.2.3 libidn/1.18 libssh2/1.2.2 + Matched by: * +Agent curl/7.26.0 + Matched by: * +Agent curl/7.29.0 + Matched by: * +Agent curl/7.38.0 + Matched by: * +Agent Dalvik/1.6.0 (Linux; U; Android 4.3; C5303 Build/12.1.A.1.205) + Matched by: * +Agent Dalvik/2.1.0 (Linux; U; Android 5.0; SM-N9005 Build/LRX21V) + Matched by: * +Agent Dalvik/2.1.0 (Linux; U; Android 6.0.1; SM-A510F Build/MMB29K) + Matched by: * +Agent Digg Feed Fetcher 1.0 (Mozilla/5.0 (Macintosh; Intel Mac OS X 10_7_1) AppleWebKit/534.48.3 (KHTML, like Gecko) Version/5.1 Safari/534.48.3) + Matched by: * +Agent facebookexternalhit/1.1 (+http://www.facebook.com/externalhit_uatext.php) + Matched by: * +Agent Feedbin feed-id:156831 - 1 subscribers + Matched by: * +Agent Feedly/1.0 (+http://www.feedly.com/fetcher.html; like FeedFetcher-Google) + Matched by: * +Agent GarlikCrawler/1.2 (http://garlik.com/, crawler@garlik.com) + Matched by: * +Agent Go-http-client/1.1 + Matched by: * +Agent Googlebot/2.1 (+http://www.google.com/bot.html) + Matched by: * +Agent Googlebot-Image/1.0 + Matched by: * +Agent Googlebot/Nutch-1.7 + Matched by: * +Agent Goose/1.0.25 + Matched by: * +Agent GridBot/1.0 crawler@sysomos.com + Matched by: * +Agent http://tools.geek-tools.org/link-counter/ + Matched by: * +Agent ia_archiver + Matched by: * +Agent Java/1.6.0_04 + Matched by: * +Agent Java/1.7.0_75 + Matched by: * +Agent libwww-perl/5.833 + Matched by: * +Agent libwww-perl/6.08 + Matched by: * +Agent libwww-perl/6.13 + Matched by: * +Agent libwww-perl/6.15 + Matched by: * +Agent LinkWalker/3.0 (http://www.brandprotect.com) + Matched by: * +Agent lr_http_client + Matched by: * +Agent ltx71 - (http://ltx71.com/) + Matched by: * +Agent LWP::Simple/6.00 libwww-perl/6.05 + Matched by: * +Agent LWP::Simple/6.00 libwww-perl/6.08 + Matched by: * +Agent Lynx/2.8.5rel.1 libwww-FM/2.15FC SSL-MM/1.4.1c OpenSSL/0.9.7e-dev + Matched by: * +Agent Lynx/2.8.8pre.4 libwww-FM/2.14 SSL-MM/1.4.1 GNUTLS/2.12.23 + Matched by: * +Agent masscan/1.0 (https://github.com/robertdavidgraham/masscan) + Matched by: * +Agent Mediapartners-Google + Matched by: * +Agent mindUpBot (datenbutler.de) + Matched by: * +Agent mj12bot + Matched by: * +Agent MobileSafari/601.1 CFNetwork/758.5.3 Darwin/15.6.0 + Matched by: MobileSafari/* CFNetwork/* +Agent MobileSafari/602.1 CFNetwork/808.0.2 Darwin/16.0.0 + Matched by: MobileSafari/* CFNetwork/* +Agent MobileSafari/602.1 CFNetwork/808.1.4 Darwin/16.1.0 + Matched by: MobileSafari/* CFNetwork/* +Agent Morfeus Fucking Scanner + Matched by: * +Agent Mozilla + Matched by: * +Agent Mozilla/0.6 Beta (Windows) + Matched by: * +Agent Mozilla/0.91 Beta (Windows) + Matched by: * +Agent Mozilla/10.0 (Windows NT 7.100) Gecko/20112301 Firefox/17.0 + Matched by: * +Agent Mozilla/1.22 (compatible; MSIE 2.0d; Windows NT) + Matched by: * +Agent Mozilla/1.22 (compatible; MSIE 2.0; Windows 95) + Matched by: * +Agent Mozilla/2.0 (compatible; MSIE 3.02; Windows CE; 240x320) + Matched by: * +Agent Mozilla/3.0 (compatible; Indy Library) + Matched by: * +Agent Mozilla/3.0 (compatible; WebCapture 2.0; Auto; Windows) + Matched by: * +Agent mozilla/3.0 (Windows NT 6.1; rv:2.0.1) Gecko/20100101 Firefox/5.0.1 + Matched by: * +Agent Mozilla/3.0 (x86 [en] Windows NT 5.1; Sun) + Matched by: * +Agent Mozilla/37.0.2 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 1.1.4322) + Matched by: * +Agent Mozilla 4.0 + Matched by: * +Agent Mozilla/4.0 + Matched by: * +Agent Mozilla/4.0 (CMS Crawler: http://www.cmscrawler.com) + Matched by: * +Agent Mozilla/4.0 (compatible; MSIE 4.01; Digital AlphaServer 1000A 4/233; Windows NT; Powered By 64-Bit Alpha Processor) + Matched by: * +Agent Mozilla/4.0 (compatible; MSIE 5.01; Windows 95; MSIECrawler) + Matched by: * +Agent Mozilla/4.0 (compatible; MSIE 5.01; Windows NT) + Matched by: * +Agent Mozilla/4.0 (compatible; MSIE 5.01; Windows NT 5.0) + Matched by: * +Agent Mozilla/4.0 (compatible; MSIE 5.0; Windows 2000) Opera 6.0 [en] + Matched by: * +Agent Mozilla/4.0 (compatible; MSIE 5.0; Windows 3.1) + Matched by: * +Agent Mozilla/4.0 (compatible; MSIE 5.0; Windows 95) Opera 6.01 [en] + Matched by: * +Agent Mozilla/4.0 (compatible; MSIE 5.0; Windows NT; DigExt) + Matched by: * +Agent Mozilla/4.0 (compatible; MSIE 5.5; Windows 95) + Matched by: * +Agent Mozilla/4.0 (compatible; MSIE 5.5; Windows 95; BCD2000) + Matched by: * +Agent Mozilla/4.0 (compatible; MSIE 5.5; Windows NT 4.0) + Matched by: * +Agent Mozilla/4.0 (compatible; MSIE 5.5; Windows NT 4.0; .NET CLR 1.0.2914) + Matched by: * +Agent Mozilla/4.0 (compatible; MSIE 5.5; Windows NT 5.0; .NET CLR 1.1.4322) + Matched by: * +Agent Mozilla/4.0 (compatible; MSIE 5.5; Windows NT 5.0; T312461) + Matched by: * +Agent Mozilla/4.0 (compatible; MSIE 6.0) + Matched by: Mozilla/4.0 (*MSIE 6.0*)* +Agent Mozilla/4.0 (compatible; MSIE 6.0; America Online Browser 1.1; rev1.2; Windows NT 5.1; SV1; .NET CLR 1.1.4322) + Matched by: Mozilla/4.0 (compatible; MSIE 6.0*; *Windows* +Agent Mozilla/4.0 (compatible; MSIE 6.0; AOL 9.0; Windows NT 5.1) + Matched by: Mozilla/4.0 (compatible; MSIE 6.0*; *Windows* +Agent Mozilla/4.0 (compatible; MSIE 6.0; MSIE 5.5; Windows NT 4.0) Opera 7.0 [en] + Matched by: Mozilla/4.0 (compatible; MSIE 6.0*; *Windows* +Agent Mozilla/4.0 (compatible; MSIE 6.0; MSIE 5.5; Windows NT 5.0) Opera 7.02 Bork-edition [en] + Matched by: Mozilla/4.0 (compatible; MSIE 6.0*; *Windows* +Agent Mozilla/4.0 (compatible; MSIE 6.0; MSIE 5.5; Windows NT 5.1) Opera 7.01 [en] + Matched by: Mozilla/4.0 (compatible; MSIE 6.0*; *Windows* +Agent Mozilla/4.0 (compatible; MSIE 6.0; Update a; AOL 6.0; Windows 98) + Matched by: Mozilla/4.0 (compatible; MSIE 6.0*; *Windows* +Agent Mozilla/4.0 (compatible; MSIE 6.0; Windows 98) + Matched by: Mozilla/4.0 (compatible; MSIE 6.0*; *Windows* +Agent Mozilla/4.0 (compatible; MSIE 6.0; Windows 98; Win 9x 4.90) + Matched by: Mozilla/4.0 (compatible; MSIE 6.0*; *Windows* +Agent Mozilla/4.0 (compatible; MSIE 6.0; Windows 98; Win 9x 4.90; Creative) + Matched by: Mozilla/4.0 (compatible; MSIE 6.0*; *Windows* +Agent Mozilla/4.0 (compatible; MSIE 6.0; Windows ME) Opera 7.11 [en] + Matched by: Mozilla/4.0 (compatible; MSIE 6.0*; *Windows* +Agent Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0) + Matched by: Mozilla/4.0 (compatible; MSIE 6.0*; *Windows* +Agent Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0; APC; .NET CLR 1.0.3705; .NET CLR 1.1.4322; .NET CLR 2.0.50215; InfoPath.1) + Matched by: Mozilla/4.0 (compatible; MSIE 6.0*; *Windows* +Agent Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0; Avant Browser [avantbrowser.com]; Hotbar 4.4.5.0) + Matched by: Mozilla/4.0 (compatible; MSIE 6.0*; *Windows* +Agent Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0; KTXN) + Matched by: Mozilla/4.0 (compatible; MSIE 6.0*; *Windows* +Agent Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0; .NET CLR 1.0.3705; .NET CLR 1.1.4322) + Matched by: Mozilla/4.0 (compatible; MSIE 6.0*; *Windows* +Agent Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0; T312461) + Matched by: Mozilla/4.0 (compatible; MSIE 6.0*; *Windows* +Agent Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1) + Matched by: Mozilla/4.0 (compatible; MSIE 6.0*; *Windows* +Agent Mozilla/4.0+(compatible;+MSIE+6.0;+Windows+NT+5.1) + Matched by: * +Agent Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; Crazy Browser 1.0.5) + Matched by: Mozilla/4.0 (compatible; MSIE 6.0*; *Windows* +Agent Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; Deepnet Explorer 1.5.0; .NET CLR 1.0.3705) + Matched by: Mozilla/4.0 (compatible; MSIE 6.0*; *Windows* +Agent Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; en) Opera 8.00 + Matched by: Mozilla/4.0 (compatible; MSIE 6.0*; *Windows* +Agent Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; en) Opera 8.50 + Matched by: Mozilla/4.0 (compatible; MSIE 6.0*; *Windows* +Agent Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; en) Opera 9.0 + Matched by: Mozilla/4.0 (compatible; MSIE 6.0*; *Windows* +Agent Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; FREE; .NET CLR 1.1.4322) + Matched by: Mozilla/4.0 (compatible; MSIE 6.0*; *Windows* +Agent Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; KKman2.0) + Matched by: Mozilla/4.0 (compatible; MSIE 6.0*; *Windows* +Agent Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; Maxthon; .NET CLR 1.1.4322) + Matched by: Mozilla/4.0 (compatible; MSIE 6.0*; *Windows* +Agent Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; MRA 4.3 (build 01218); .NET CLR 1.1.4322) + Matched by: Mozilla/4.0 (compatible; MSIE 6.0*; *Windows* +Agent Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; MRA 4.6 (build 01425)) + Matched by: Mozilla/4.0 (compatible; MSIE 6.0*; *Windows* +Agent Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; MyIE2; Deepnet Explorer) + Matched by: Mozilla/4.0 (compatible; MSIE 6.0*; *Windows* +Agent Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; .NET CLR 1.0.3705) + Matched by: Mozilla/4.0 (compatible; MSIE 6.0*; *Windows* +Agent Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; .NET CLR 1.1.4322) + Matched by: Mozilla/4.0 (compatible; MSIE 6.0*; *Windows* +Agent Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; .NET CLR 1.1.4322; Alexa Toolbar; (R1 1.5)) + Matched by: Mozilla/4.0 (compatible; MSIE 6.0*; *Windows* +Agent Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; .NET CLR 1.1.4322; FDM) + Matched by: Mozilla/4.0 (compatible; MSIE 6.0*; *Windows* +Agent Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1) Netscape/8.0.4 + Matched by: Mozilla/4.0 (compatible; MSIE 6.0*; *Windows* +Agent Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1) Opera 7.54 [en] + Matched by: Mozilla/4.0 (compatible; MSIE 6.0*; *Windows* +Agent Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; Q312461) + Matched by: Mozilla/4.0 (compatible; MSIE 6.0*; *Windows* +Agent Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; ru) Opera 8.01 + Matched by: Mozilla/4.0 (compatible; MSIE 6.0*; *Windows* +Agent Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; ru) Opera 8.50 + Matched by: Mozilla/4.0 (compatible; MSIE 6.0*; *Windows* +Agent Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1;) + Matched by: Mozilla/4.0 (compatible; MSIE 6.0*; *Windows* +Agent Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1) + Matched by: Mozilla/4.0 (compatible; MSIE 6.0*; *Windows* +Agent Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; Crazy Browser 2.0.0 Beta 1; .NET CLR 1.0.3705; .NET CLR 1.1.4322) + Matched by: Mozilla/4.0 (compatible; MSIE 6.0*; *Windows* +Agent Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; FunWebProducts) + Matched by: Mozilla/4.0 (compatible; MSIE 6.0*; *Windows* +Agent Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; FunWebProducts; MRA 4.6 (build 01425); .NET CLR 1.1.4322; .NET CLR 2.0.50727) + Matched by: Mozilla/4.0 (compatible; MSIE 6.0*; *Windows* +Agent Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; FunWebProducts; .NET CLR 1.1.4322; PeoplePal 6.2) + Matched by: Mozilla/4.0 (compatible; MSIE 6.0*; *Windows* +Agent Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; InfoPath.1 + Matched by: Mozilla/4.0 (compatible; MSIE 6.0*; *Windows* +Agent Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; InfoPath.1) + Matched by: Mozilla/4.0 (compatible; MSIE 6.0*; *Windows* +Agent Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; Media Center PC + Matched by: Mozilla/4.0 (compatible; MSIE 6.0*; *Windows* +Agent Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1) ) + Matched by: Mozilla/4.0 (compatible; MSIE 6.0*; *Windows* +Agent Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1) ; .NET CLR 1.0.3705) + Matched by: Mozilla/4.0 (compatible; MSIE 6.0*; *Windows* +Agent Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1) ; .NET CLR 2.0.50727 ; .NET CLR 4.0.30319) + Matched by: Mozilla/4.0 (compatible; MSIE 6.0*; *Windows* +Agent Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; MRA 4.6 (build 01425); MRSPUTNIK 1, 5, 0, 19 SW) + Matched by: Mozilla/4.0 (compatible; MSIE 6.0*; *Windows* +Agent Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 1.0.3705) + Matched by: Mozilla/4.0 (compatible; MSIE 6.0*; *Windows* +Agent Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 1.0.3705; .NET CLR 1.1.4322; .NET CLR 2.0.40607) + Matched by: Mozilla/4.0 (compatible; MSIE 6.0*; *Windows* +Agent Mozilla/4.0 (compatible- MSIE 6.0- Windows NT 5.1- SV1- .NET CLR 1.1.4322 + Matched by: * +Agent Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 1.1.4322) + Matched by: Mozilla/4.0 (compatible; MSIE 6.0*; *Windows* +Agent Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 1.1.4322) Babya Discoverer 8.0: + Matched by: Mozilla/4.0 (compatible; MSIE 6.0*; *Windows* +Agent Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 1.1.4322; .NET CLR 2.0.50727) + Matched by: Mozilla/4.0 (compatible; MSIE 6.0*; *Windows* +Agent Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 1.1.4322) NS8/0.9.6 + Matched by: Mozilla/4.0 (compatible; MSIE 6.0*; *Windows* +Agent Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 1.1.4322; XMPP Tiscali Communicator v.10.0.2; .NET CLR 2.0.50727) + Matched by: Mozilla/4.0 (compatible; MSIE 6.0*; *Windows* +Agent Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 2.0.50727) + Matched by: Mozilla/4.0 (compatible; MSIE 6.0*; *Windows* +Agent Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 2.0.50727; .NET CLR 1.1.4322) + Matched by: Mozilla/4.0 (compatible; MSIE 6.0*; *Windows* +Agent Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; TencentTraveler ; Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1) ; .NET CLR 2.0.50727) + Matched by: Mozilla/4.0 (compatible; MSIE 6.0*; *Windows* +Agent Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; YPC 3.0.2; .NET CLR 1.1.4322; yplus 4.4.02b) + Matched by: Mozilla/4.0 (compatible; MSIE 6.0*; *Windows* +Agent Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; TheFreeDictionary.com; .NET CLR 1.1.4322; .NET CLR 1.0.3705; .NET CLR 2.0.50727) + Matched by: Mozilla/4.0 (compatible; MSIE 6.0*; *Windows* +Agent Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.2; .NET CLR 1.0.3705;) + Matched by: Mozilla/4.0 (compatible; MSIE 6.0*; *Windows* +Agent Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.2; SV1; .NET CLR 1.1.4322; .NET CLR 2.0.50727) + Matched by: Mozilla/4.0 (compatible; MSIE 6.0*; *Windows* +Agent Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.2; Win64; AMD64) + Matched by: Mozilla/4.0 (compatible; MSIE 6.0*; *Windows* +Agent Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.2; Win64; x64; SV1; .NET CLR 2.0.50727) + Matched by: Mozilla/4.0 (compatible; MSIE 6.0*; *Windows* +Agent Mozilla/4.0 (compatible; MSIE 6.0; Windows NT) ::ELNSB50::000061100320025802a00111000000000507000900000000 + Matched by: Mozilla/4.0 (compatible; MSIE 6.0*; *Windows* +Agent Mozilla/4.0 (compatible; MSIE 6.0; Windows XP) + Matched by: Mozilla/4.0 (compatible; MSIE 6.0*; *Windows* +Agent Mozilla/4.0 (compatible; MSIE 7.0b; Windows NT 6.0) + Matched by: Mozilla/4.0 (compatible*; MSIE 7.0b*; *Windows NT 6.0* +Agent Mozilla/4.0 (compatible; MSIE 7.0b; Windows NT 6.0 ; .NET CLR 2.0.50215; SL Commerce Client v1.0; Tablet PC 2.0 + Matched by: Mozilla/4.0 (compatible*; MSIE 7.0b*; *Windows NT 6.0* +Agent Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; MRSPUTNIK 2, 4, 0, 270; MRA 5.8 (build 4598); GTB7.2; AskTbFF/5.11.3.15590; .NET CLR 1.1.4322) + Matched by: Mozilla/4.0 (compatible*; MSIE 7.0*; *Windows* +Agent Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; .NET CLR 1.0.3705; .NET CLR 1.1.4322; Media Center PC 4.0) + Matched by: Mozilla/4.0 (compatible*; MSIE 7.0*; *Windows* +Agent Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; .NET CLR 2.0.50727) + Matched by: Mozilla/4.0 (compatible*; MSIE 7.0*; *Windows* +Agent Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; SV1; .NET CLR 2.0.50727) + Matched by: Mozilla/4.0 (compatible*; MSIE 7.0*; *Windows* +Agent Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; Trident/4.0; .NET CLR 1.1.4322; .NET CLR 1.0.3705; .NET CLR 2.0.50727; .NET CLR 3.0.04506.648; .NET CLR 3.5.21022; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729) + Matched by: Mozilla/4.0 (compatible; MSIE 7.0; *Windows*Trident/4.0* +Agent Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.2) + Matched by: Mozilla/4.0 (compatible*; MSIE 7.0*; *Windows* +Agent Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.0; WOW64; Trident/5.0; SLCC1; .NET CLR 2.0.50727; .NET CLR 3.0.30729; .NET CLR 3.5.30729; .NET4.0C; .NET4.0E) + Matched by: Mozilla/4.0 (compatible; MSIE 7.0; *Windows NT 6.0*Trident/5.0*)* +Agent Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.1; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; .NET4.0C; .NET4.0E) + Matched by: Mozilla/4.0 (compatible*; MSIE 7.0*; *Windows NT 6.1* +Agent Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.1; Trident/7.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; .NET4.0C; .NET4.0E; ms-office) + Matched by: Mozilla/4.0 (compatible; MSIE 7.0; *Windows NT 6.1*Trident/7.0* +Agent Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.2; WOW64; Trident/7.0; .NET4.0E; .NET4.0C; .NET CLR 3.5.30729; .NET CLR 2.0.50727; .NET CLR 3.0.30729) + Matched by: Mozilla/4.0 (compatible; MSIE 7.0; *Windows NT 6.2*Trident/7.0* +Agent Mozilla/4.0 (compatible; MSIE 8.0; ; Trident/4.0; .NET CLR 1.1.4322; .NET CLR 2.0.50727; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729) + Matched by: * +Agent Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.1; Trident/4.0) + Matched by: Mozilla/4.0 (compatible; MSIE 8.0*; *Windows*Trident/4.0* +Agent Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.1; Trident/4.0; GTB6.5; .NET CLR 1.1.4322; .NET CLR 2.0.50727; .NET CLR 3.0.04506.648; .NET CLR 3.5.21022; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729; InfoPath.3) + Matched by: Mozilla/4.0 (compatible; MSIE 8.0*; *Windows*Trident/4.0* +Agent Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.1; Trident/4.0; GTB6.5; .NET CLR 2.0.50727; InfoPath.2) + Matched by: Mozilla/4.0 (compatible; MSIE 8.0*; *Windows*Trident/4.0* +Agent Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.1; Trident/4.0; GTB6; InfoPath.1; .NET CLR 2.0.50727; Dealio Toolbar 3.4; .NET CLR 3.0.04506.30; .NET CLR 3.0.04506.648; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729) + Matched by: Mozilla/4.0 (compatible; MSIE 8.0*; *Windows*Trident/4.0* +Agent Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.1; Trident/4.0; GTB7.5; .NET CLR 2.0.50727; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729) + Matched by: Mozilla/4.0 (compatible; MSIE 8.0*; *Windows*Trident/4.0* +Agent Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.1; Trident/4.0; .NET CLR 1.1.4322; .NET CLR 2.0.50727; .NET CLR 3.0.04506.30; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729; InfoPath.3; .NET4.0C; .NET4.0E) + Matched by: Mozilla/4.0 (compatible; MSIE 8.0*; *Windows*Trident/4.0* +Agent Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.1; Trident/4.0; .NET CLR 1.1.4322; .NET CLR 2.0.50727; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729) + Matched by: Mozilla/4.0 (compatible; MSIE 8.0*; *Windows*Trident/4.0* +Agent Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.1; Trident/4.0; .NET CLR 2.0.50727) + Matched by: Mozilla/4.0 (compatible; MSIE 8.0*; *Windows*Trident/4.0* +Agent Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.1; Trident/4.0; .NET CLR 2.0.50727; .NET4.0C) + Matched by: Mozilla/4.0 (compatible; MSIE 8.0*; *Windows*Trident/4.0* +Agent Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.1; Trident/4.0; .NET CLR 2.0.50727; .NET CLR 3.0.04506.648; .NET CLR 3.5.21022; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729; InfoPath.2) + Matched by: Mozilla/4.0 (compatible; MSIE 8.0*; *Windows*Trident/4.0* +Agent Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.1; Trident/4.0; .NET CLR 2.0.50727; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729; InfoPath.2) + Matched by: Mozilla/4.0 (compatible; MSIE 8.0*; *Windows*Trident/4.0* +Agent Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.0; Trident/4.0; Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1) ; SLCC1; .NET CLR 2.0.50727; Media Center PC 5.0; .NET CLR 3.0.30729; .NET CLR 3.5.30729) + Matched by: Mozilla/4.0 (compatible; MSIE 8.0*; *Windows NT 6.0*Trident/4.0* +Agent Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.0; Trident/4.0; SLCC1; .NET CLR 2.0.50727; OfficeLiveConnector.1.3; OfficeLivePatch.0.0; .NET CLR 3.5.30729; .NET CLR 3.0.30618; MS-RTC LM 8; yie8) + Matched by: Mozilla/4.0 (compatible; MSIE 8.0*; *Windows NT 6.0*Trident/4.0* +Agent Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1; Trident/4.0) + Matched by: Mozilla/4.0 (compatible; MSIE 8.0*; *Windows NT 6.1*Trident/4.0* +Agent Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1; Trident/4.0; Avant Browser; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0) + Matched by: Mozilla/4.0 (compatible; MSIE 8.0*; *Windows NT 6.1*Trident/4.0* +Agent Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1; Trident/4.0; GTB7.2; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; .NET4.0C) + Matched by: Mozilla/4.0 (compatible; MSIE 8.0*; *Windows NT 6.1*Trident/4.0* +Agent Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1; Trident/4.0; InfoPath.2; SV1; .NET CLR 3.8.36926; WOW64; en-US) + Matched by: Mozilla/4.0 (compatible; MSIE 8.0*; *Windows NT 6.1*Trident/4.0* +Agent Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1; Trident/4.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729) + Matched by: Mozilla/4.0 (compatible; MSIE 8.0*; *Windows NT 6.1*Trident/4.0* +Agent Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1; Trident/4.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0) + Matched by: Mozilla/4.0 (compatible; MSIE 8.0*; *Windows NT 6.1*Trident/4.0* +Agent Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1; Trident/4.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; .NET4.0C; .NET4.0E) + Matched by: Mozilla/4.0 (compatible; MSIE 8.0*; *Windows NT 6.1*Trident/4.0* +Agent Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1; Trident/4.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; Tablet PC 2.0) + Matched by: Mozilla/4.0 (compatible; MSIE 8.0*; *Windows NT 6.1*Trident/4.0* +Agent Mozilla/4.0 (compatible; MSIE 9.0; Windows NT 6.1) + Matched by: Mozilla/4.0 (compatible; MSIE 9.0*; *Windows NT 6.1* +Agent Mozilla/4.0 (compatible; MSIE 9.0; Windows NT 6.1; 125LA; .NET CLR 2.0.50727; .NET CLR 3.0.04506.648; .NET CLR 3.5.21022) + Matched by: Mozilla/4.0 (compatible; MSIE 9.0*; *Windows NT 6.1* +Agent Mozilla/4.0 (compatible; MSIE 9.0; Windows NT 6.1; Trident/5.0) + Matched by: Mozilla/4.0 (compatible; MSIE 9.0*; *Windows NT 6.1*Trident/5.0* +Agent Mozilla/4.0 (compatible; Netcraft Web Server Survey) + Matched by: * +Agent Mozilla/4.0 (compatible; Powermarks/3.5; Windows 95/98/2000/NT) + Matched by: * +Agent Mozilla/4.0 (compatible; Synapse) + Matched by: * +Agent Mozilla/4.0 (compatible; Win32; WinHttp.WinHttpRequest.5) + Matched by: * +Agent Mozilla/4.0 (compatible; Windows;) + Matched by: * +Agent Mozilla/4.0 (Windows NT 6.2) AppleWebKit/537.17 (KHTML, like Gecko) Chrome/24.0.1312.70 Safari/537.17 + Matched by: * +Agent Mozilla/4.0 (X11; MSIE 6.0; i686; .NET CLR 1.1.4322; .NET CLR 2.0.50727; FDM) + Matched by: Mozilla/4.0 (*MSIE 6.0*)* +Agent Mozilla/4.61 [en] (X11; U; ) - BrowseX (2.0.0 Windows) + Matched by: * +Agent Mozilla/4.76 [en] (Windows NT 5.0; U) + Matched by: * +Agent Mozilla/4.79 [en] (Windows NT 5.0; U) + Matched by: * +Agent Mozilla/4.7 (compatible; OffByOne; Windows 2000) Webster Pro V3.4 + Matched by: * +Agent Mozilla 5.0 + Matched by: * +Agent Mozilla/5.0 + Matched by: * +Agent Mozilla/5.0 (Android 2.2; Windows; U; Windows NT 6.1; en-US) AppleWebKit/533.19.4 (KHTML, like Gecko) Version/5.0.3 Safari/533.19.4 + Matched by: Mozilla/5.0 (*Windows NT 6.1*) AppleWebKit/* (KHTML* like Gecko) *Version/* Safari/* +Agent Mozilla/5.0 (Android 5.1.1; Tablet; rv:50.0.1) Gecko/50.0.1 Firefox/50.0.1 + Matched by: Mozilla/5.0 (*Android*Tablet*) Gecko* Firefox/50.* +Agent Mozilla/5.0 (Android 5.1.1; Tablet; rv:50.0) Gecko/50.0 Firefox/50.0 + Matched by: Mozilla/5.0 (*Android*Tablet*) Gecko* Firefox/50.* +Agent Mozilla/5.0 (Android 5.1; Mobile; rv:49.0.2) Gecko/49.0.2 Firefox/49.0.2 + Matched by: Mozilla/5.0 (*Android*Mobile*) Gecko* Firefox/49.* +Agent Mozilla/5.0 (Android 5.1; Mobile; rv:49.0) Gecko/49.0 Firefox/49.0 + Matched by: Mozilla/5.0 (*Android*Mobile*) Gecko* Firefox/49.* +Agent Mozilla/5.0 (Android 6.0.1; Mobile; rv:50.0) Gecko/50.0 Firefox/50.0 + Matched by: Mozilla/5.0 (*Android*Mobile*) Gecko* Firefox/50.* +Agent Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; Google Web Preview Analytics) Chrome/27.0.1453 Safari/537.36 (compatible; Googlebot/2.1; +http://www.google.com/bot.html) + Matched by: * +Agent Mozilla/5.0 (BlackBerry; U; BlackBerry 9900; en) AppleWebKit/534.11+ (KHTML, like Gecko) Version/7.1.0.346 Mobile Safari/534.11+ + Matched by: * +Agent Mozilla/5.0 (compatible) + Matched by: * +Agent Mozilla/5.0 (compatible; AhrefsBot/5.1; +http://ahrefs.com/robot/) + Matched by: * +Agent Mozilla/5.0 (compatible; archive.org_bot +http://www.archive.org/details/archive.org_bot) + Matched by: * +Agent Mozilla/5.0 (compatible; archive.org_bot; Wayback Machine Live Record; +http://archive.org/details/archive.org_bot) + Matched by: * +Agent Mozilla/5.0 (compatible; Baiduspider/2.0; +http://www.baidu.com/search/spider.html) + Matched by: * +Agent Mozilla/5.0 (compatible; bingbot/2.0; +http://www.bing.com/bingbot.htm) + Matched by: * +Agent Mozilla/5.0 (compatible; BLEXBot/1.0; +http://webmeup-crawler.com/) + Matched by: * +Agent Mozilla/5.0 (compatible; Cliqzbot/1.0 +http://cliqz.com/company/cliqzbot) + Matched by: * +Agent Mozilla/5.0 (compatible; coccocbot-image/1.0; +http://help.coccoc.com/searchengine) + Matched by: * +Agent Mozilla/5.0 (compatible; coccocbot-web/1.0; +http://help.coccoc.com/searchengine) + Matched by: * +Agent Mozilla/5.0+(compatible;+CukBot;+Not+a+spammer;+++https://www.companiesintheuk.co.uk/bot.html) + Matched by: * +Agent Mozilla/5.0 (compatible; Dataprovider/6.101; +https://www.dataprovider.com/) + Matched by: * +Agent Mozilla/5.0 (compatible; Dataprovider; https://www.dataprovider.com/spider/) + Matched by: * +Agent Mozilla/5.0 (compatible; DeuSu/5.0.2; +https://deusu.de/robot.html) + Matched by: * +Agent Mozilla/5.0 (compatible; DotBot/1.1; http://www.opensiteexplorer.org/dotbot, help@moz.com) + Matched by: * +Agent Mozilla/5.0 (compatible; DuckDuckGo-Favicons-Bot/1.0; +http://duckduckgo.com) + Matched by: * +Agent Mozilla/5.0 (compatible; Exabot/3.0; +http://www.exabot.com/go/robot) + Matched by: * +Agent Mozilla/5.0 (compatible; Gluten Free Crawler/1.0; +http://glutenfreepleasure.com/) + Matched by: * +Agent Mozilla/5.0 (compatible; Googlebot/2.1; +http://www.google.com/bot.html) + Matched by: * +Agent Mozilla/5.0 (compatible; Google-Site-Verification/1.0) + Matched by: * +Agent Mozilla/5.0 (compatible; GrapeshotCrawler/2.0; +http://www.grapeshot.co.uk/crawler.php) + Matched by: * +Agent Mozilla/5.0 (compatible; inoreader.com-like FeedFetcher-Google) + Matched by: * +Agent Mozilla/5.0 (compatible; Linux x86_64; Mail.RU_Bot/2.0; +http://go.mail.ru/help/robots) + Matched by: * +Agent Mozilla/5.0 (compatible; MegaIndex.ru/2.0; +http://megaindex.com/crawler) + Matched by: * +Agent Mozilla/5.0 (compatible; MJ12bot/v1.4.5; http://www.majestic12.co.uk/bot.php?+) + Matched by: * +Agent Mozilla/5.0 (compatible; MJ12bot/v1.4.6; http://mj12bot.com/) + Matched by: * +Agent Mozilla/5.0 (compatible; MJ12bot/v1.4.7; http://mj12bot.com/) + Matched by: * +Agent Mozilla/5.0 (compatible; MojeekBot/0.6; +https://www.mojeek.com/bot.html) + Matched by: * +Agent Mozilla/5.0 (compatible; MSIE 10.0; Windows NT 6.1; Trident/6.0) + Matched by: Mozilla/5.0 (compatible; MSIE 10.0*Windows NT 6.1*Trident/6.0*)* +Agent Mozilla/5.0 (compatible; MSIE 10.0; Windows NT 6.1; Trident/6.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; InfoPath.2; .NET4.0C; .NET4.0E; AskTbORJ/5.14.1.20007; BOIE9;NLNL) + Matched by: Mozilla/5.0 (compatible; MSIE 10.0*Windows NT 6.1*Trident/6.0*)* +Agent Mozilla/5.0 (compatible; MSIE 10.0; Windows NT 6.1; WOW64; Trident/6.0) + Matched by: Mozilla/5.0 (compatible; MSIE 10.0*Windows NT 6.1*Trident/6.0*)* +Agent Mozilla/5.0 (compatible; MSIE 10.0; Windows NT 6.1; WOW64; Trident/6.0; SLCC2; .NET CLR 2.0.50727; Media Center PC 6.0; InfoPath.2; .NET4.0C; .NET4.0E; AskTbORJ/5.15.14.29495; .NET CLR 3.5.30729; .NET CLR 3.0.30729; .NET CLR 1.1.4322; EIE10;ENAUMSN) + Matched by: Mozilla/5.0 (compatible; MSIE 10.0*Windows NT 6.1*Trident/6.0*)* +Agent Mozilla/5.0 (compatible; MSIE 10.0; Windows NT 6.1; WOW64; Trident/6.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; .NET4.0C; .NET4.0E; AskTbFXTV5/5.15.2.23037) + Matched by: Mozilla/5.0 (compatible; MSIE 10.0*Windows NT 6.1*Trident/6.0*)* +Agent Mozilla/5.0 (compatible; MSIE 10.0; Windows NT 6.2; WOW64; Trident/6.0) + Matched by: Mozilla/5.0 (compatible; MSIE 10.0*Windows NT 6.2*Trident/6.0*)* +Agent Mozilla/5.0 (compatible; MSIE 10.0; Windows NT 6.2; WOW64; Trident/6.0; .NET4.0E; .NET4.0C; InfoPath.3; .NET CLR 3.5.30729; .NET CLR 2.0.50727; .NET CLR 3.0.30729; MS-RTC LM 8) + Matched by: Mozilla/5.0 (compatible; MSIE 10.0*Windows NT 6.2*Trident/6.0*)* +Agent Mozilla/5.0 (compatible, MSIE 11, Windows NT 6.3; Trident/7.0; rv:11.0) like Gecko + Matched by: Mozilla/5.0 (*Windows NT 6.3*Trident/7.0*rv:11.0* +Agent Mozilla/5.0 (compatible; MSIE 6.0; Windows NT 5.1) + Matched by: Mozilla/5.0 (compatible; MSIE 6.0*; *Windows* +Agent Mozilla/5.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 2.0.50727) + Matched by: Mozilla/5.0 (compatible; MSIE 6.0*; *Windows* +Agent Mozilla/5.0 (compatible; MSIE 8.0; Windows NT 6.1; Trident/4.0; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; .NET CLR 1.0.3705; .NET CLR 1.1.4322) + Matched by: Mozilla/5.0 (compatible; MSIE 8.0*; *Windows NT 6.1*Trident/4.0* +Agent Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.0; Trident/5.0; NP06) + Matched by: Mozilla/5.0 (compatible; MSIE 9.0*; *Windows NT 6.0*Trident/5.0* +Agent Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.0; Trident/5.0; SLCC1; .NET CLR 2.0.50727; Media Center PC 5.0; InfoPath.2; .NET CLR 3.5.30729; .NET CLR 3.0.30729; .NET4.0C; .NET4.0E) + Matched by: Mozilla/5.0 (compatible; MSIE 9.0*; *Windows NT 6.0*Trident/5.0* +Agent Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.0; Trident/5.0; SLCC1; .NET CLR 2.0.50727; Media Center PC 5.0; MDDC; .NET CLR 3.5.30729; .NET CLR 3.0.30729; .NET4.0C; .NET4.0E) + Matched by: Mozilla/5.0 (compatible; MSIE 9.0*; *Windows NT 6.0*Trident/5.0* +Agent 'Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Trident/5.0)' + Matched by: * +Agent Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Trident/5.0) + Matched by: Mozilla/5.0 (compatible; MSIE 9.0*; *Windows NT 6.1*Trident/5.0* +Agent Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Trident/5.0); 360Spider + Matched by: Mozilla/5.0 (compatible; MSIE 9.0*; *Windows NT 6.1*Trident/5.0* +Agent Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Trident/5.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; .NET4.0C; .NET4.0E; MS-RTC LM 8; SFIEAUTH1) + Matched by: Mozilla/5.0 (compatible; MSIE 9.0*; *Windows NT 6.1*Trident/5.0* +Agent Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Trident/5.0; Trident/5.0) + Matched by: Mozilla/5.0 (compatible; MSIE 9.0*; *Windows NT 6.1*Trident/5.0* +Agent Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; WOW64; Trident/5.0) + Matched by: Mozilla/5.0 (compatible; MSIE 9.0*; *Windows NT 6.1*Trident/5.0* +Agent Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; WOW64; Trident/5.0) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.172 Safari/537.22 + Matched by: Mozilla/5.0 (*Windows NT 6.1*) AppleWebKit/* (KHTML* like Gecko) Chrome/*Safari/* +Agent Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; WOW64; Trident/5.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; InfoPath.3; .NET4.0C; .NET4.0E; .NET CLR 1.1.4322; MS-RTC LM 8) + Matched by: Mozilla/5.0 (compatible; MSIE 9.0*; *Windows NT 6.1*Trident/5.0* +Agent Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; WOW64; Trident/5.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; .NET4.0C; AlexaToolbar/amzni-3.0; .NET4.0E) + Matched by: Mozilla/5.0 (compatible; MSIE 9.0*; *Windows NT 6.1*Trident/5.0* +Agent Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; WOW64; Trident/5.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; .NET4.0C; .NET4.0E; HPDTDF; InfoPath.3) + Matched by: Mozilla/5.0 (compatible; MSIE 9.0*; *Windows NT 6.1*Trident/5.0* +Agent Mozilla/5.0 (compatible; MSIE or Firefox mutant;) Daum 4.1 + Matched by: * +Agent Mozilla/5.0 (compatible; NetcraftSurveyAgent/1.0; +info@netcraft.com) + Matched by: * +Agent Mozilla/5.0 (compatible; Nmap Scripting Engine; http://nmap.org/book/nse.html) + Matched by: * +Agent Mozilla/5.0 (compatible; oBot/2.3.1; http://filterdb.iss.net/crawler/) + Matched by: * +Agent Mozilla/5.0 (compatible; Qwantify/2.3w; +https://www.qwant.com/)/2.3w + Matched by: * +Agent Mozilla/5.0 (compatible; SemrushBot/1.1~bl; +http://www.semrush.com/bot.html) + Matched by: * +Agent Mozilla/5.0 (compatible; SEOkicks-Robot; +http://www.seokicks.de/robot.html) + Matched by: * +Agent Mozilla/5.0 (compatible; SeznamBot/3.2; +http://napoveda.seznam.cz/en/seznambot-intro/) + Matched by: * +Agent Mozilla/5.0 (compatible; SiteExplorer/1.1b; +http://siteexplorer.info/Backlink-Checker-Spider/) + Matched by: * +Agent Mozilla/5.0 (compatible; Sonic/1.0; http://www.yama.info.waseda.ac.jp/~crawler/info.html) + Matched by: * +Agent Mozilla/5.0 (compatible; spbot/5.0.3; +http://OpenLinkProfiler.org/bot ) + Matched by: * +Agent Mozilla/5.0 (compatible; SurdotlyBot/1.0; +http://sur.ly/bot.html) + Matched by: * +Agent Mozilla/5.0 (compatible; Uptimebot/1.0; +http://www.uptime.com/uptimebot) + Matched by: * +Agent Mozilla/5.0 (compatible; Wappalyzer; +https://github.com/AliasIO/Wappalyzer) + Matched by: * +Agent Mozilla/5.0 (compatible; XoviBot/2.0; +http://www.xovibot.net/) + Matched by: * +Agent Mozilla/5.0 (compatible; Yahoo! Slurp; http://help.yahoo.com/help/us/ysearch/slurp) + Matched by: * +Agent Mozilla/5.0 (compatible; YandexBot/3.0; +http://yandex.com/bots) + Matched by: * +Agent Mozilla/5.0 (compatible;YoudaoFeedFetcher/1.0;http://www.youdao.com/help/reader/faq/topic006/;1 subscribers;) + Matched by: * +Agent Mozilla/5.0 (iPad; CPU OS 10_1_1 like Mac OS X) AppleWebKit/602.2.14 (KHTML, like Gecko) Version/10.0 Mobile/14B100 Safari/602.1 + Matched by: Mozilla/5.0 (iPad*CPU*OS* like Mac OS X*)*AppleWebKit/*(*KHTML* like Gecko*)*Version/*Safari/* +Agent Mozilla/5.0 (iPad; CPU OS 10_1_1 like Mac OS X) AppleWebKit/602.2.14 (KHTML, like Gecko) Version/10.0 Mobile/14B150 Safari/602.1 + Matched by: Mozilla/5.0 (iPad*CPU*OS* like Mac OS X*)*AppleWebKit/*(*KHTML* like Gecko*)*Version/*Safari/* +Agent Mozilla/5.0 (iPad; CPU OS 10_1 like Mac OS X) AppleWebKit/602.2.14 (KHTML, like Gecko) Version/10.0 Mobile/14B72 Safari/602.1 + Matched by: Mozilla/5.0 (iPad*CPU*OS* like Mac OS X*)*AppleWebKit/*(*KHTML* like Gecko*)*Version/*Safari/* +Agent Mozilla/5.0 (iPad; CPU OS 10_2 like Mac OS X) AppleWebKit/602.3.12 (KHTML, like Gecko) OPiOS/14.0.0.104835 Mobile/14C92 Safari/9537.53 + Matched by: Mozilla/5.0 (iPad*CPU*OS* like Mac OS X*)*AppleWebKit/*(*KHTML* like Gecko*)*Mobile* +Agent Mozilla/5.0 (iPad; CPU OS 9_3_5 like Mac OS X) AppleWebKit/601.1.46 (KHTML, like Gecko) Version/9.0 Mobile/13G36 Safari/601.1 + Matched by: Mozilla/5.0 (iPad*CPU*OS* like Mac OS X*)*AppleWebKit/*(*KHTML* like Gecko*)*Version/9.0*Safari/* +Agent Mozilla/5.0 (iPhone; CPU iPhone OS 10_0_2 like Mac OS X) AppleWebKit/602.1.50 (KHTML, like Gecko) Version/10.0 Mobile/14A456 Safari/602.1 + Matched by: Mozilla/5.0 (iPhone*CPU*OS* like Mac OS X*)*AppleWebKit/*(*KHTML* like Gecko*)*Version/*Safari/* +Agent Mozilla/5.0 (iPhone; CPU iPhone OS 10_0 like Mac OS X) AppleWebKit/602.1.38 (KHTML, like Gecko) Version/10.0 Mobile/14A300 Safari/602.1 + Matched by: Mozilla/5.0 (iPhone*CPU*OS* like Mac OS X*)*AppleWebKit/*(*KHTML* like Gecko*)*Version/*Safari/* +Agent Mozilla/5.0 (iPhone; CPU iPhone OS 10_1_1 like Mac OS X) AppleWebKit/602.2.14 (KHTML, like Gecko) Version/10.0 Mobile/14B100 Safari/602.1 + Matched by: Mozilla/5.0 (iPhone*CPU*OS* like Mac OS X*)*AppleWebKit/*(*KHTML* like Gecko*)*Version/*Safari/* +Agent Mozilla/5.0 (iPhone; CPU iPhone OS 10_1_1 like Mac OS X) AppleWebKit/602.2.14 (KHTML, like Gecko) Version/10.0 Mobile/14B150 Safari/602.1 + Matched by: Mozilla/5.0 (iPhone*CPU*OS* like Mac OS X*)*AppleWebKit/*(*KHTML* like Gecko*)*Version/*Safari/* +Agent Mozilla/5.0 (iPhone; CPU iPhone OS 10_1 like Mac OS X) AppleWebKit/602.2.8 (KHTML, like Gecko) OPiOS/15.00.00000 Mobile/14B55c Safari/7534.48.3 + Matched by: Mozilla/5.0*(iPhone*CPU*OS* like Mac OS X*)*AppleWebKit/*(*KHTML* like Gecko*)*Mobile* +Agent Mozilla/5.0 (iPhone; CPU iPhone OS 10_2 like Mac OS X) AppleWebKit/602.3.12 (KHTML, like Gecko) Version/10.0 Mobile/14C92 Safari/602.1 + Matched by: Mozilla/5.0 (iPhone*CPU*OS* like Mac OS X*)*AppleWebKit/*(*KHTML* like Gecko*)*Version/*Safari/* +Agent Mozilla/5.0 (iPhone; CPU iPhone OS 5_0 like Mac OS X) AppleWebKit/534.46 (KHTML, like Gecko) Version/5.1 Mobile/9A334 Safari/7534.48.3 + Matched by: Mozilla/5.0 (iPhone*CPU*OS* like Mac OS X*)*AppleWebKit/*(*KHTML* like Gecko*)*Version/*Safari/* +Agent Mozilla/5.0 (iPhone; CPU iPhone OS 6_0 like Mac OS X) AppleWebKit/536.26 (KHTML, like Gecko) Version/6.0 Mobile/10A5376e Safari/8536.25 + Matched by: Mozilla/5.0 (iPhone*CPU*OS* like Mac OS X*)*AppleWebKit/*(*KHTML* like Gecko*)*Version/6.0*Safari/* +Agent Mozilla/5.0 (iPhone; CPU iPhone OS 7_0 like Mac OS X) AppleWebKit/537.51.1 (KHTML, like Gecko) Version/7.0 Mobile/11A465 Safari/9537.53 BingPreview/1.0b + Matched by: Mozilla/5.0 (iPhone*CPU*OS* like Mac OS X*)*AppleWebKit/*(*KHTML* like Gecko*)*Version/7.0*Safari/* +Agent Mozilla/5.0 (iPhone; CPU iPhone OS 7_0 like Mac OS X) AppleWebKit/537.51.1 (KHTML, like Gecko) Version/7.0 Mobile/11A465 Safari/9537.53 (compatible; bingbot/2.0; +http://www.bing.com/bingbot.htm) + Matched by: Mozilla/5.0 (iPhone*CPU*OS* like Mac OS X*)*AppleWebKit/*(*KHTML* like Gecko*)*Version/7.0*Safari/* +Agent Mozilla/5.0 (iPhone; CPU iPhone OS 8_0 like Mac OS X) AppleWebKit/600.1.3 (KHTML, like Gecko) Version/8.0 Mobile/12A4345d Safari/600.1.4 + Matched by: Mozilla/5.0 (iPhone*CPU*OS* like Mac OS X*)*AppleWebKit/*(*KHTML* like Gecko*)*Version/8.0*Safari/* +Agent Mozilla/5.0 (iPhone; CPU iPhone OS 8_1_3 like Mac OS X) AppleWebKit/600.1.4 (KHTML, like Gecko) Version/8.0 Mobile/12B466 Safari/600.1.4 + Matched by: Mozilla/5.0 (iPhone*CPU*OS* like Mac OS X*)*AppleWebKit/*(*KHTML* like Gecko*)*Version/8.0*Safari/* +Agent Mozilla/5.0 (iPhone; CPU iPhone OS 8_3 like Mac OS X) AppleWebKit/600.1.4 (KHTML, like Gecko) Version/8.0 Mobile/12F70 Safari/600.1.4 + Matched by: Mozilla/5.0 (iPhone*CPU*OS* like Mac OS X*)*AppleWebKit/*(*KHTML* like Gecko*)*Version/8.0*Safari/* +Agent Mozilla/5.0 (iPhone; CPU iPhone OS 9_3_3 like Mac OS X) AppleWebKit/601.1.46 (KHTML, like Gecko) Version/9.0 Mobile/13G34 Safari/601.1 + Matched by: Mozilla/5.0 (iPhone*CPU*OS* like Mac OS X*)*AppleWebKit/*(*KHTML* like Gecko*)*Version/9.0*Safari/* +Agent Mozilla/5.0 (iPhone; CPU iPhone OS 9_3_3 like Mac OS X) AppleWebKit/601.1.46 (KHTML, like Gecko) Version/9.0 Mobile/13G34 Safari/601.1 BMID/E679DA49AC + Matched by: Mozilla/5.0 (iPhone*CPU*OS* like Mac OS X*)*AppleWebKit/*(*KHTML* like Gecko*)*Version/9.0*Safari/* +Agent Mozilla/5.0 (iPhone; U; CPU iPhone OS 3_0 like Mac OS X; en-us) AppleWebKit/528.18 (KHTML, like Gecko) Version/4.0 Mobile/7A341 Safari/528.161481015402482 + Matched by: Mozilla/5.0 (iPhone*CPU*OS* like Mac OS X*)*AppleWebKit/*(*KHTML* like Gecko*)*Version/*Safari/* +Agent Mozilla/5.0 (Linux; Android 4.05; Galaxy Nexus Build/IMM76B) AppleWebKit/535.25 (KHTML, like Gecko) Chrome/17.0.1025.133 Mobile Safari/536.19 + Matched by: Mozilla/5.0 (*Linux*Android*) AppleWebKit/* (KHTML, like Gecko*) Chrome/*Safari/* +Agent Mozilla/5.0 (Linux; Android 4.1.2; GT-S5310B Build/JZO54K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/53.0.2785.124 Mobile Safari/537.36 + Matched by: Mozilla/5.0 (*Linux*Android*) AppleWebKit/* (KHTML* like Gecko) Chrome/53.*Safari/* +Agent Mozilla/5.0 (Linux; Android 4.2.2; GT-S7580 Build/JDQ39) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/34.0.1847.114 Mobile Safari/537.36 + Matched by: Mozilla/5.0 (*Linux*Android*) AppleWebKit/* (KHTML, like Gecko*) Chrome/*Safari/* +Agent Mozilla/5.0 (Linux; Android 4.3; C5303 Build/12.1.A.1.205) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/54.0.2840.85 Mobile Safari/537.36 + Matched by: Mozilla/5.0 (*Linux*Android*) AppleWebKit/* (KHTML* like Gecko) Chrome/54.*Safari/* +Agent Mozilla/5.0 (Linux; Android 4.4.2; de-de; SAMSUNG GT-I9205 Build/KOT49H) AppleWebKit/537.36 (KHTML, like Gecko) Version/1.5 Chrome/28.0.1500.94 Mobile Safari/537.36 + Matched by: Mozilla/5.0 (*Linux*Android* Build/*) AppleWebKit/* (KHTML,*like Gecko*) Version/1.5*Chrome*Safari* +Agent Mozilla/5.0 (Linux; Android 4.4.2; GT-I9195 Build/KOT49H) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/52.0.2743.98 Mobile Safari/537.36 + Matched by: Mozilla/5.0 (*Linux*Android*) AppleWebKit/* (KHTML* like Gecko) Chrome/52.*Safari/* +Agent Mozilla/5.0 (Linux; Android 4.4.2; GT-P5210 Build/KOT49H) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/54.0.2840.68 Safari/537.36 + Matched by: Mozilla/5.0 (*Linux*Android*) AppleWebKit/* (KHTML* like Gecko) Chrome/54.*Safari/* +Agent Mozilla/5.0 (Linux; Android 4.4.2; HP 7 VoiceTab Build/KOT49H) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/49.0.2623.105 Safari/537.36 + Matched by: Mozilla/5.0 (*Linux*Android*) AppleWebKit/* (KHTML* like Gecko) Chrome/49.*Safari/* +Agent Mozilla/5.0 (Linux; Android 4.4.2; LENNY Build/KOT49H) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/30.0.0.0 Mobile Safari/537.36 + Matched by: Mozilla/5.0 (*Linux*Android* Build/*) AppleWebKit/* (KHTML,*like Gecko*) Version/4.0*Chrome*Safari* +Agent Mozilla/5.0 (Linux; Android 4.4.2; LG-V500 Build/KOT49I.V50020f) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/54.0.2840.85 Safari/537.36 + Matched by: Mozilla/5.0 (*Linux*Android*) AppleWebKit/* (KHTML* like Gecko) Chrome/54.*Safari/* +Agent Mozilla/5.0 (Linux; Android 4.4.2; Panasonic ELUGA Z Build/KOT49H) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/54.0.2840.85 Mobile Safari/537.36 + Matched by: Mozilla/5.0 (*Linux*Android*) AppleWebKit/* (KHTML* like Gecko) Chrome/54.*Safari/* +Agent Mozilla/5.0 (Linux; Android 4.4.2; RAINBOW Build/KOT49H) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/30.0.0.0 Mobile Safari/537.36 + Matched by: Mozilla/5.0 (*Linux*Android* Build/*) AppleWebKit/* (KHTML,*like Gecko*) Version/4.0*Chrome*Safari* +Agent Mozilla/5.0 (Linux; Android 4.4.2; SM-T230 Build/KOT49H) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/54.0.2840.85 Safari/537.36 + Matched by: Mozilla/5.0 (*Linux*Android*) AppleWebKit/* (KHTML* like Gecko) Chrome/54.*Safari/* +Agent Mozilla/5.0 (Linux; Android 4.4.2; SUNSET2 Build/KOT49H) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/55.0.2883.91 Mobile Safari/537.36 + Matched by: Mozilla/5.0 (*Linux*Android*) AppleWebKit/* (KHTML* like Gecko) Chrome/55.*Safari/* +Agent Mozilla/5.0 (Linux; Android 5.0.1; ALE-L02 Build/HuaweiALE-L02) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/54.0.2840.85 Mobile Safari/537.36 + Matched by: Mozilla/5.0 (*Linux*Android*) AppleWebKit/* (KHTML* like Gecko) Chrome/54.*Safari/* +Agent Mozilla/5.0 (Linux; Android 5.0.1; GT-I9295 Build/LRX22C) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/54.0.2840.85 Mobile Safari/537.36 + Matched by: Mozilla/5.0 (*Linux*Android*) AppleWebKit/* (KHTML* like Gecko) Chrome/54.*Safari/* +Agent Mozilla/5.0 (Linux; Android 5.0.1; GT-I9515 Build/LRX22C) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/54.0.2840.85 Mobile Safari/537.36 + Matched by: Mozilla/5.0 (*Linux*Android*) AppleWebKit/* (KHTML* like Gecko) Chrome/54.*Safari/* +Agent Mozilla/5.0 (Linux; Android 5.0.1; SAMSUNG GT-I9505 Build/LRX22C) AppleWebKit/537.36 (KHTML, like Gecko) SamsungBrowser/4.0 Chrome/44.0.2403.133 Mobile Safari/537.36 + Matched by: * +Agent Mozilla/5.0 (Linux; Android 5.0.2; Lenovo TAB 2 A8-50LC Build/LRX22G) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/39.0.2171.93 Safari/537.36 + Matched by: Mozilla/5.0 (*Linux*Android*) AppleWebKit/* (KHTML, like Gecko*) Chrome/*Safari/* +Agent Mozilla/5.0 (Linux; Android 5.0.2; LG-D693TR Build/LRX22G) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/34.0.1847.118 Mobile Safari/537.36 + Matched by: Mozilla/5.0 (*Linux*Android* Build/*) AppleWebKit/* (KHTML,*like Gecko*) Version/4.0*Chrome*Safari* +Agent Mozilla/5.0 (Linux; Android 5.0; Lenovo K50-t5 Build/LRX21M) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/54.0.2840.85 Mobile Safari/537.36 + Matched by: Mozilla/5.0 (*Linux*Android*) AppleWebKit/* (KHTML* like Gecko) Chrome/54.*Safari/* +Agent Mozilla/5.0 (Linux; Android 5.0; SAMSUNG SM-N9005 Build/LRX21V) AppleWebKit/537.36 (KHTML, like Gecko) SamsungBrowser/4.0 Chrome/44.0.2403.133 Mobile Safari/537.36 + Matched by: * +Agent Mozilla/5.0 (Linux; Android 5.0; SM-N900V Build/LRX21V) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/54.0.2840.85 Mobile Safari/537.36 + Matched by: Mozilla/5.0 (*Linux*Android*) AppleWebKit/* (KHTML* like Gecko) Chrome/54.*Safari/* +Agent Mozilla/5.0 (Linux; Android 5.0; VOYAGER2_DG310 Build/LRX21M) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/37.0.0.0 Mobile Safari/537.36 + Matched by: Mozilla/5.0 (*Linux*Android* Build/*) AppleWebKit/* (KHTML,*like Gecko*) Version/4.0*Chrome*Safari* +Agent Mozilla/5.0 (Linux; Android 5.1.1; Redmi 3 Build/LMY47V; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/54.0.2840.68 Mobile Safari/537.36 + Matched by: Mozilla/5.0 (*Linux*Android* Build/*) AppleWebKit/* (KHTML,*like Gecko*) Version/4.0*Chrome*Safari* +Agent Mozilla/5.0 (Linux; Android 5.1; Lenovo P70-A Build/LMY47D) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/55.0.2883.91 Mobile Safari/537.36 + Matched by: Mozilla/5.0 (*Linux*Android*) AppleWebKit/* (KHTML* like Gecko) Chrome/55.*Safari/* +Agent Mozilla/5.0 (Linux; Android 5.1; LG-X210 Build/LMY47I) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/54.0.2840.68 Mobile Safari/537.36 + Matched by: Mozilla/5.0 (*Linux*Android*) AppleWebKit/* (KHTML* like Gecko) Chrome/54.*Safari/* +Agent Mozilla/5.0 (Linux; Android 6.0.1; Nexus 5X Build/MMB29P) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/41.0.2272.96 Mobile Safari/537.36 (compatible; Googlebot/2.1; +http://www.google.com/bot.html) + Matched by: Mozilla/5.0 (*Linux*Android*) AppleWebKit/* (KHTML, like Gecko*) Chrome/*Safari/* +Agent Mozilla/5.0 (Linux; Android 6.0.1; SAMSUNG SM-A510F/A510FXXS3BPI9 Build/MMB29K) AppleWebKit/537.36 (KHTML, like Gecko) SamsungBrowser/4.0 Chrome/44.0.2403.133 Mobile Safari/537.36 + Matched by: * +Agent Mozilla/5.0 (Linux; Android 6.0.1; SAMSUNG SM-G900F Build/MMB29M) AppleWebKit/537.36 (KHTML, like Gecko) SamsungBrowser/4.0 Chrome/44.0.2403.133 Mobile Safari/537.36 + Matched by: * +Agent Mozilla/5.0 (Linux; Android 6.0.1; SAMSUNG SM-J700T1 Build/MMB29K) AppleWebKit/537.36 (KHTML, like Gecko) SamsungBrowser/4.0 Chrome/44.0.2403.133 Mobile Safari/537.36 + Matched by: * +Agent Mozilla/5.0 (Linux; Android 6.0.1; SM-G920F Build/MMB29K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/54.0.2840.85 Mobile Safari/537.36 + Matched by: Mozilla/5.0 (*Linux*Android*) AppleWebKit/* (KHTML* like Gecko) Chrome/54.*Safari/* +Agent Mozilla/5.0 (Linux; Android 6.0.1; SM-G920F Build/MMB29K; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/54.0.2840.85 Mobile Safari/537.36 [FB_IAB/MESSENGER;FBAV/99.0.0.20.136;] + Matched by: Mozilla/5.0 (*Linux*Android* Build/*) AppleWebKit/* (KHTML,*like Gecko*) Version/4.0*Chrome*Safari* +Agent Mozilla/5.0 (Linux; Android 6.0.1; SM-N920I Build/MMB29K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/54.0.2840.85 Mobile Safari/537.36 + Matched by: Mozilla/5.0 (*Linux*Android*) AppleWebKit/* (KHTML* like Gecko) Chrome/54.*Safari/* +Agent Mozilla/5.0 (Linux; Android 6.0.1; SM-N920P Build/MMB29K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/51.0.2704.81 Mobile Safari/537.36 + Matched by: Mozilla/5.0 (*Linux*Android*) AppleWebKit/* (KHTML* like Gecko) Chrome/51.*Safari/* +Agent Mozilla/5.0 (Linux; Android 6.0; LG-H961N Build/MRA58K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/54.0.2840.85 Mobile Safari/537.36 + Matched by: Mozilla/5.0 (*Linux*Android*) AppleWebKit/* (KHTML* like Gecko) Chrome/54.*Safari/* +Agent Mozilla/5.0 (Linux; U; Android 2.2.1; en-us; Nexus One Build/FRG83) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1 + Matched by: Mozilla/5.0 (*Linux*Android* Build/*)*AppleWebKit/*(*KHTML,*like Gecko*)*Version/4.0*Safari* +Agent Mozilla/5.0 (Linux; U; Android 2.2.2; ru-ru; HTC Desire Build/FRG83G) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1 + Matched by: Mozilla/5.0 (*Linux*Android* Build/*)*AppleWebKit/*(*KHTML,*like Gecko*)*Version/4.0*Safari* +Agent Mozilla/5.0 (Linux; U; Android 4.2.2; de-de; Cynus F4 Build/JDQ39) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Mobile Safari/534.30 + Matched by: Mozilla/5.0 (*Linux*Android* Build/*)*AppleWebKit/*(*KHTML,*like Gecko*)*Version/4.0*Safari* +Agent Mozilla/5.0 (Linux; U; Android 4.3; de-de; HUAWEI Y530-U00 Build/HuaweiY530-U00) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Mobile Safari/534.30 + Matched by: Mozilla/5.0 (*Linux*Android* Build/*)*AppleWebKit/*(*KHTML,*like Gecko*)*Version/4.0*Safari* +Agent Mozilla/5.0 (Linux; U; Android 4.4.4; en-US; Coolpad 8297L-I00 Build/KTU84P) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 UCBrowser/11.0.5.850 U3/0.8.0 Mobile Safari/534.30 + Matched by: Mozilla/5.0 (*Linux*Android* Build/*)*AppleWebKit/*(*KHTML,*like Gecko*)*Version/4.0*Safari* +Agent Mozilla/5.0 (Linux; U; Android 5.0.2; zh-CN; Redmi Note 3 Build/LRX22G) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 OPR/11.2.3.102637 Mobile Safari/537.36 + Matched by: Mozilla/5.0 (*Linux*Android* Build/*)*AppleWebKit/*(*KHTML,*like Gecko*)*Version/4.0*Safari* +Agent Mozilla/5.0 (Linux; U; Linux Ventana; ru-ru; Transformer TF101 Build/HTK75) AppleWebKit/534.13 (KHTML, like Gecko) Chrome/8.0 Safari/534.13 + Matched by: Mozilla/5.0 (*Linux*) AppleWebKit/* (KHTML* like Gecko) Chrome/*Safari/* +Agent Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/39.0.2171.95 Safari/537.36 + Matched by: Mozilla/5.0 (*Mac OS X*) AppleWebKit/* (KHTML* like Gecko) Chrome/*Safari/* +Agent Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/39.0.2171.95 Safari/412982 + Matched by: Mozilla/5.0 (*Mac OS X*) AppleWebKit/* (KHTML* like Gecko) Chrome/*Safari/* +Agent Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/39.0.2171.95 Safari/537.36 + Matched by: Mozilla/5.0 (*Mac OS X*) AppleWebKit/* (KHTML* like Gecko) Chrome/*Safari/* +Agent Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/39.0.2171.99 Safari/537.36 + Matched by: Mozilla/5.0 (*Mac OS X*) AppleWebKit/* (KHTML* like Gecko) Chrome/*Safari/* +Agent Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/40.0.2214.93 Safari/537.36 + Matched by: Mozilla/5.0 (*Mac OS X*) AppleWebKit/* (KHTML* like Gecko) Chrome/*Safari/* +Agent Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/48.0.2564.116 Safari/537.36 + Matched by: Mozilla/5.0 (*Mac OS X*) AppleWebKit/* (KHTML* like Gecko) Chrome/48.*Safari/* +Agent Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_1) AppleWebKit/600.2.5 (KHTML, like Gecko) Version/8.0.2 Safari/600.2.5 + Matched by: Mozilla/5.0 (*Mac OS X*) AppleWebKit/* (KHTML* like Gecko) *Version/8.0* Safari/* +Agent Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/42.0.2311.135 Safari/537.36 + Matched by: Mozilla/5.0 (*Mac OS X*) AppleWebKit/* (KHTML* like Gecko) Chrome/*Safari/* +Agent Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/41.0.2272.89 Safari/537.36 + Matched by: Mozilla/5.0 (*Mac OS X*) AppleWebKit/* (KHTML* like Gecko) Chrome/*Safari/* +Agent Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/42.0.2311.135 Safari/537.36 + Matched by: Mozilla/5.0 (*Mac OS X*) AppleWebKit/* (KHTML* like Gecko) Chrome/*Safari/* +Agent Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/42.0.2311.152 Safari/537.36 + Matched by: Mozilla/5.0 (*Mac OS X*) AppleWebKit/* (KHTML* like Gecko) Chrome/*Safari/* +Agent Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/42.0.2311.90 Safari/537.36 + Matched by: Mozilla/5.0 (*Mac OS X*) AppleWebKit/* (KHTML* like Gecko) Chrome/*Safari/* +Agent Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/43.0.2357.65 Safari/537.36 + Matched by: Mozilla/5.0 (*Mac OS X*) AppleWebKit/* (KHTML* like Gecko) Chrome/*Safari/* +Agent Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/43.0.2357.81 Safari/537.36 + Matched by: Mozilla/5.0 (*Mac OS X*) AppleWebKit/* (KHTML* like Gecko) Chrome/*Safari/* +Agent Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/44.0.2403.89 Safari/537.36 + Matched by: Mozilla/5.0 (*Mac OS X*) AppleWebKit/* (KHTML* like Gecko) Chrome/*Safari/* +Agent Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/54.0.2840.71 Safari/537.36 + Matched by: Mozilla/5.0 (*Mac OS X*) AppleWebKit/* (KHTML* like Gecko) Chrome/54.*Safari/* +Agent Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_3) AppleWebKit/600.5.17 (KHTML, like Gecko) Version/8.0.5 Safari/600.5.17 + Matched by: Mozilla/5.0 (*Mac OS X*) AppleWebKit/* (KHTML* like Gecko) *Version/8.0* Safari/* +Agent Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_3) AppleWebKit/600.6.3 (KHTML, like Gecko) Version/8.0.6 Safari/600.6.3 + Matched by: Mozilla/5.0 (*Mac OS X*) AppleWebKit/* (KHTML* like Gecko) *Version/8.0* Safari/* +Agent Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/54.0.2840.71 Safari/537.36 + Matched by: Mozilla/5.0 (*Mac OS X*) AppleWebKit/* (KHTML* like Gecko) Chrome/54.*Safari/* +Agent Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/54.0.2840.98 Safari/537.36 + Matched by: Mozilla/5.0 (*Mac OS X*) AppleWebKit/* (KHTML* like Gecko) Chrome/54.*Safari/* +Agent Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/55.0.2883.75 Safari/537.36 + Matched by: Mozilla/5.0 (*Mac OS X*) AppleWebKit/* (KHTML* like Gecko) Chrome/55.*Safari/* +Agent Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_5) AppleWebKit/602.2.14 (KHTML, like Gecko) + Matched by: * +Agent Mozilla/5.0 (Macintosh; Intel Mac OS X 10.10; rv:27.0) Gecko/20100101 Firefox/27.0 + Matched by: Mozilla/5.0 (*Mac OS X*) Gecko* Firefox/* +Agent Mozilla/5.0 (Macintosh; Intel Mac OS X 10.10; rv:29.0) Gecko/20100101 Firefox/29.0 + Matched by: Mozilla/5.0 (*Mac OS X*) Gecko* Firefox/* +Agent Mozilla/5.0 (Macintosh; Intel Mac OS X 10.10; rv:31.0) Gecko/20100101 Firefox/31.0 + Matched by: Mozilla/5.0 (*Mac OS X*) Gecko* Firefox/31.0* +Agent Mozilla/5.0 (Macintosh; Intel Mac OS X 10.10; rv:34.0) Gecko/20100101 Firefox/34.0 + Matched by: Mozilla/5.0 (*Mac OS X*) Gecko* Firefox/34.0* +Agent Mozilla/5.0 (Macintosh; Intel Mac OS X 10.10; rv:37.0) Gecko/20100101 Firefox/37.0 + Matched by: Mozilla/5.0 (*Mac OS X*) Gecko* Firefox/37.0* +Agent Mozilla/5.0 (Macintosh; Intel Mac OS X 10.10; rv:38.0) Gecko/20100101 Firefox/38.0 + Matched by: Mozilla/5.0 (*Mac OS X*) Gecko* Firefox/38.0* +Agent Mozilla/5.0 (Macintosh; Intel Mac OS X 10.10; rv:43.0) Gecko/20100101 Firefox/43.0 + Matched by: Mozilla/5.0 (*Mac OS X*) Gecko* Firefox/43.0* +Agent Mozilla/5.0 (Macintosh; Intel Mac OS X 10.10; rv:47.0) Gecko/20100101 Firefox/47.0 + Matched by: Mozilla/5.0 (*Mac OS X*) Gecko* Firefox/47.0* +Agent Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/43.0.2386.61 Safari/537.36 + Matched by: Mozilla/5.0 (*Mac OS X*) AppleWebKit/* (KHTML* like Gecko) Chrome/*Safari/* +Agent Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/48.0.2564.109 Safari/537.36 + Matched by: Mozilla/5.0 (*Mac OS X*) AppleWebKit/* (KHTML* like Gecko) Chrome/48.*Safari/* +Agent Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/48.0.2564.116 Safari/537.36 + Matched by: Mozilla/5.0 (*Mac OS X*) AppleWebKit/* (KHTML* like Gecko) Chrome/48.*Safari/* +Agent Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_3) AppleWebKit/601.4.4 (KHTML, like Gecko) Version/9.0.3 Safari/601.4.4 + Matched by: Mozilla/5.0 (*Mac OS X*) AppleWebKit/* (KHTML* like Gecko) *Version/9.0* Safari/* +Agent Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_4) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/50.0.2661.102 Safari/537.36 + Matched by: Mozilla/5.0 (*Mac OS X*) AppleWebKit/* (KHTML* like Gecko) Chrome/50.*Safari/* +Agent Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_4) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/54.0.2840.71 Safari/537.36 + Matched by: Mozilla/5.0 (*Mac OS X*) AppleWebKit/* (KHTML* like Gecko) Chrome/54.*Safari/* +Agent Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_4) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/54.0.2840.98 Safari/537.36 + Matched by: Mozilla/5.0 (*Mac OS X*) AppleWebKit/* (KHTML* like Gecko) Chrome/54.*Safari/* +Agent Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_4) AppleWebKit/601.5.17 (KHTML, like Gecko) Version/9.1 Safari/601.5.17 + Matched by: Mozilla/5.0 (*Mac OS X*) AppleWebKit/* (KHTML* like Gecko) *Version/9.1* Safari/* +Agent Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/50.0.2661.102 Safari/537.36 + Matched by: Mozilla/5.0 (*Mac OS X*) AppleWebKit/* (KHTML* like Gecko) Chrome/50.*Safari/* +Agent Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/54.0.2840.71 Safari/537.36 + Matched by: Mozilla/5.0 (*Mac OS X*) AppleWebKit/* (KHTML* like Gecko) Chrome/54.*Safari/* +Agent Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/52.0.2743.116 Safari/537.36 + Matched by: Mozilla/5.0 (*Mac OS X*) AppleWebKit/* (KHTML* like Gecko) Chrome/52.*Safari/* +Agent Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/52.0.2743.82 Safari/537.36 + Matched by: Mozilla/5.0 (*Mac OS X*) AppleWebKit/* (KHTML* like Gecko) Chrome/52.*Safari/* +Agent Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/54.0.2840.71 Safari/537.36 + Matched by: Mozilla/5.0 (*Mac OS X*) AppleWebKit/* (KHTML* like Gecko) Chrome/54.*Safari/* +Agent Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/54.0.2840.98 Safari/537.36 + Matched by: Mozilla/5.0 (*Mac OS X*) AppleWebKit/* (KHTML* like Gecko) Chrome/54.*Safari/* +Agent Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/56.0.2907.0 Safari/537.36 + Matched by: Mozilla/5.0 (*Mac OS X*) AppleWebKit/* (KHTML* like Gecko) Chrome/*Safari/* +Agent Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_6) AppleWebKit/601.7.7 (KHTML, like Gecko) Version/9.1.2 Safari/601.7.7 + Matched by: Mozilla/5.0 (*Mac OS X*) AppleWebKit/* (KHTML* like Gecko) *Version/9.1* Safari/* +Agent Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_6) AppleWebKit/602.1.43 (KHTML, like Gecko) Version/10.0 Safari/602.1.43 + Matched by: Mozilla/5.0 (*Mac OS X*) AppleWebKit/* (KHTML* like Gecko) *Version/10.0* Safari/* +Agent Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_6) AppleWebKit/602.1.50 (KHTML, like Gecko) + Matched by: * +Agent Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_6) AppleWebKit/602.2.14 (KHTML, like Gecko) + Matched by: * +Agent Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_6) AppleWebKit/602.2.14 (KHTML, like Gecko) Version/10.0.1 Safari/602.2.14 + Matched by: Mozilla/5.0 (*Mac OS X*) AppleWebKit/* (KHTML* like Gecko) *Version/10.0* Safari/* +Agent Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_6) AppleWebKit/602.3.12 (KHTML, like Gecko) Version/10.0.2 Safari/602.3.12 + Matched by: Mozilla/5.0 (*Mac OS X*) AppleWebKit/* (KHTML* like Gecko) *Version/10.0* Safari/* +Agent Mozilla/5.0 (Macintosh; Intel Mac OS X 10.11; rv:33.0) Gecko/20100101 Firefox/33.0 + Matched by: Mozilla/5.0 (*Mac OS X*) Gecko* Firefox/33.0* +Agent Mozilla/5.0 (Macintosh; Intel Mac OS X 10.11; rv:45.0) Gecko/20100101 Firefox/45.0 + Matched by: Mozilla/5.0 (*Mac OS X*) Gecko* Firefox/45.0* +Agent Mozilla/5.0 (Macintosh; Intel Mac OS X 10.11; rv:47.0) Gecko/20100101 Firefox/47.0 + Matched by: Mozilla/5.0 (*Mac OS X*) Gecko* Firefox/47.0* +Agent Mozilla/5.0 (Macintosh; Intel Mac OS X 10.11; rv:51.0) Gecko/20100101 Firefox/51.0 + Matched by: Mozilla/5.0 (*Mac OS X*) Gecko* Firefox/* +Agent Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/54.0.2840.71 Safari/537.36 + Matched by: Mozilla/5.0 (*Mac OS X*) AppleWebKit/* (KHTML* like Gecko) Chrome/54.*Safari/* +Agent Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/54.0.2840.98 Safari/537.36 + Matched by: Mozilla/5.0 (*Mac OS X*) AppleWebKit/* (KHTML* like Gecko) Chrome/54.*Safari/* +Agent Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/54.0.2840.59 Safari/537.36 + Matched by: Mozilla/5.0 (*Mac OS X*) AppleWebKit/* (KHTML* like Gecko) Chrome/54.*Safari/* +Agent Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/54.0.2840.71 Safari/537.36 + Matched by: Mozilla/5.0 (*Mac OS X*) AppleWebKit/* (KHTML* like Gecko) Chrome/54.*Safari/* +Agent Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/54.0.2840.87 Safari/537.36 + Matched by: Mozilla/5.0 (*Mac OS X*) AppleWebKit/* (KHTML* like Gecko) Chrome/54.*Safari/* +Agent Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/54.0.2840.98 Safari/537.36 + Matched by: Mozilla/5.0 (*Mac OS X*) AppleWebKit/* (KHTML* like Gecko) Chrome/54.*Safari/* +Agent Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/55.0.2883.44 Safari/537.36 + Matched by: Mozilla/5.0 (*Mac OS X*) AppleWebKit/* (KHTML* like Gecko) Chrome/55.*Safari/* +Agent Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/55.0.2883.75 Safari/537.36 + Matched by: Mozilla/5.0 (*Mac OS X*) AppleWebKit/* (KHTML* like Gecko) Chrome/55.*Safari/* +Agent Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/55.0.2883.87 Safari/537.36 + Matched by: Mozilla/5.0 (*Mac OS X*) AppleWebKit/* (KHTML* like Gecko) Chrome/55.*Safari/* +Agent Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_1) AppleWebKit/602.2.14 (KHTML, like Gecko) + Matched by: * +Agent Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_1) AppleWebKit/602.2.14 (KHTML, like Gecko) Version/10.0.1 Safari/602.2.14 + Matched by: Mozilla/5.0 (*Mac OS X*) AppleWebKit/* (KHTML* like Gecko) *Version/10.0* Safari/* +Agent Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_1) AppleWebKit/603.1.10 (KHTML, like Gecko) + Matched by: * +Agent Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_2) AppleWebKit/602.3.12 (KHTML, like Gecko) Version/10.0.2 Safari/602.3.12 + Matched by: Mozilla/5.0 (*Mac OS X*) AppleWebKit/* (KHTML* like Gecko) *Version/10.0* Safari/* +Agent Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12) AppleWebKit/602.1.50 (KHTML, like Gecko) + Matched by: * +Agent Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12) AppleWebKit/602.1.50 (KHTML, like Gecko) Version/10.0 Safari/602.1.50 + Matched by: Mozilla/5.0 (*Mac OS X*) AppleWebKit/* (KHTML* like Gecko) *Version/10.0* Safari/* +Agent Mozilla/5.0 (Macintosh; Intel Mac OS X 10.12; rv:49.0) Gecko/20100101 Firefox/49.0 + Matched by: Mozilla/5.0 (*Mac OS X*) Gecko* Firefox/49.0* +Agent Mozilla/5.0 (Macintosh; Intel Mac OS X 10.12; rv:50.0) Gecko/20100101 Firefox/50.0 + Matched by: Mozilla/5.0 (*Mac OS X*) Gecko* Firefox/50.0* +Agent Mozilla/5.0 (Macintosh; Intel Mac OS X 10_6_8) AppleWebKit/534.59.10 (KHTML, like Gecko) Version/5.1.9 Safari/534.59.10 + Matched by: Mozilla/5.0 (*Mac OS X*) AppleWebKit/* (KHTML* like Gecko) *Version/* Safari/* +Agent Mozilla/5.0 (Macintosh; Intel Mac OS X 10_6_8) AppleWebKit/534.59.8 (KHTML, like Gecko) Version/5.1.9 Safari/534.59.8 + Matched by: Mozilla/5.0 (*Mac OS X*) AppleWebKit/* (KHTML* like Gecko) *Version/* Safari/* +Agent Mozilla/5.0 (Macintosh; Intel Mac OS X 10_6_8) AppleWebKit/535.1 (KHTML, like Gecko) Chrome/13.0.782.24 Safari/535.1 + Matched by: Mozilla/5.0 (*Mac OS X*) AppleWebKit/* (KHTML* like Gecko) Chrome/*Safari/* +Agent Mozilla/5.0 (Macintosh; Intel Mac OS X 10_6_8) AppleWebKit/537.13+ (KHTML, like Gecko) Version/5.1.7 Safari/534.57.2 + Matched by: Mozilla/5.0 (*Mac OS X*) AppleWebKit/* (KHTML* like Gecko) *Version/* Safari/* +Agent Mozilla/5.0 (Macintosh; Intel Mac OS X 10_6_8) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/31.0.1650.63 Safari/537.36 + Matched by: Mozilla/5.0 (*Mac OS X*) AppleWebKit/* (KHTML* like Gecko) Chrome/*Safari/* +Agent Mozilla/5.0 (Macintosh; Intel Mac OS X 10.6; rv:26.0) Gecko/20100101 Firefox/26.0 + Matched by: Mozilla/5.0 (*Mac OS X*) Gecko* Firefox/* +Agent Mozilla/5.0 (Macintosh; Intel Mac OS X 10.6; rv:30.0) Gecko/20100101 Firefox/30.0 + Matched by: Mozilla/5.0 (*Mac OS X*) Gecko* Firefox/30.0* +Agent Mozilla/5.0 (Macintosh; Intel Mac OS X 10_7_2) AppleWebKit/534.51.22 (KHTML, like Gecko) Version/5.1.1 Safari/534.51.22 + Matched by: Mozilla/5.0 (*Mac OS X*) AppleWebKit/* (KHTML* like Gecko) *Version/* Safari/* +Agent Mozilla/5.0 (Macintosh; Intel Mac OS X 10_7_2) AppleWebKit/535.1 (KHTML, like Gecko) Chrome/14.0.835.186 Safari/535.1 + Matched by: Mozilla/5.0 (*Mac OS X*) AppleWebKit/* (KHTML* like Gecko) Chrome/*Safari/* +Agent Mozilla/5.0 (Macintosh; Intel Mac OS X 10_7_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/27.0.1453.93 Safari/537.36 + Matched by: Mozilla/5.0 (*Mac OS X*) AppleWebKit/* (KHTML* like Gecko) Chrome/*Safari/* +Agent Mozilla/5.0 (Macintosh; Intel Mac OS X 10_7_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/31.0.1650.63 Safari/537.36 + Matched by: Mozilla/5.0 (*Mac OS X*) AppleWebKit/* (KHTML* like Gecko) Chrome/*Safari/* +Agent Mozilla/5.0 (Macintosh; Intel Mac OS X 10_7_5) AppleWebKit/537.71 (KHTML, like Gecko) Version/6.1 Safari/537.71 + Matched by: Mozilla/5.0 (*Mac OS X*) AppleWebKit/* (KHTML* like Gecko) *Version/6.1* Safari/* +Agent Mozilla/5.0 (Macintosh; Intel Mac OS X 10_7_5) AppleWebKit/537.73.11 (KHTML, like Gecko) Version/6.1.1 Safari/537.73.11 + Matched by: Mozilla/5.0 (*Mac OS X*) AppleWebKit/* (KHTML* like Gecko) *Version/6.1* Safari/* +Agent Mozilla/5.0 (Macintosh; Intel Mac OS X 10.7; rv:26.0) Gecko/20100101 Firefox/26.0 + Matched by: Mozilla/5.0 (*Mac OS X*) Gecko* Firefox/* +Agent Mozilla/5.0 (Macintosh; Intel Mac OS X 10.7; rv:34.0) Gecko/20100101 Firefox/34.0 + Matched by: Mozilla/5.0 (*Mac OS X*) Gecko* Firefox/34.0* +Agent Mozilla/5.0 (Macintosh; Intel Mac OS X 10_8_3) AppleWebKit/537.31 (KHTML, like Gecko) Chrome/26.0.1410.65 Safari/537.31 + Matched by: Mozilla/5.0 (*Mac OS X*) AppleWebKit/* (KHTML* like Gecko) Chrome/*Safari/* +Agent Mozilla/5.0 (Macintosh; Intel Mac OS X 1084) AppleWebKit/536.29.13 (KHTML like Gecko) Version/6.0.4 Safari/536.29.13 + Matched by: Mozilla/5.0 (*Mac OS X*) AppleWebKit/* (KHTML* like Gecko) *Version/6.0* Safari/* +Agent Mozilla/5.0 (Macintosh; Intel Mac OS X 10_8_4) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/27.0.1453.110 Safari/537.36 + Matched by: Mozilla/5.0 (*Mac OS X*) AppleWebKit/* (KHTML* like Gecko) Chrome/*Safari/* +Agent Mozilla/5.0 (Macintosh; Intel Mac OS X 10_8_4) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/31.0.1650.63 Safari/537.36 + Matched by: Mozilla/5.0 (*Mac OS X*) AppleWebKit/* (KHTML* like Gecko) Chrome/*Safari/* +Agent Mozilla/5.0 (Macintosh; Intel Mac OS X 10_8_4) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/39.0.2171.95 Safari/537.36 + Matched by: Mozilla/5.0 (*Mac OS X*) AppleWebKit/* (KHTML* like Gecko) Chrome/*Safari/* +Agent Mozilla/5.0 (Macintosh; Intel Mac OS X 10_8_5) AppleWebKit/536.30.1 (KHTML, like Gecko) Version/6.0.5 Safari/536.30.1 + Matched by: Mozilla/5.0 (*Mac OS X*) AppleWebKit/* (KHTML* like Gecko) *Version/6.0* Safari/* +Agent Mozilla/5.0 (Macintosh; Intel Mac OS X 10_8_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/31.0.1650.63 Safari/537.36 + Matched by: Mozilla/5.0 (*Mac OS X*) AppleWebKit/* (KHTML* like Gecko) Chrome/*Safari/* +Agent Mozilla/5.0 (Macintosh; Intel Mac OS X 10_8_5) AppleWebKit/537.71 (KHTML, like Gecko) Version/6.1 Safari/537.71 + Matched by: Mozilla/5.0 (*Mac OS X*) AppleWebKit/* (KHTML* like Gecko) *Version/6.1* Safari/* +Agent Mozilla/5.0 (Macintosh; Intel Mac OS X 10_8_5) AppleWebKit/537.73.11 (KHTML, like Gecko) Version/6.1.1 Safari/537.73.11 + Matched by: Mozilla/5.0 (*Mac OS X*) AppleWebKit/* (KHTML* like Gecko) *Version/6.1* Safari/* +Agent Mozilla/5.0 (Macintosh; Intel Mac OS X 10.8; rv:26.0) Gecko/20100101 Firefox/26.0 + Matched by: Mozilla/5.0 (*Mac OS X*) Gecko* Firefox/* +Agent Mozilla/5.0 (Macintosh; Intel Mac OS X 10.8; rv:43.0) Gecko/20100101 Firefox/43.0 + Matched by: Mozilla/5.0 (*Mac OS X*) Gecko* Firefox/43.0* +Agent Mozilla/5.0 (Macintosh; Intel Mac OS X 10_9_0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/31.0.1650.57 Safari/537.36 + Matched by: Mozilla/5.0 (*Mac OS X*) AppleWebKit/* (KHTML* like Gecko) Chrome/*Safari/* +Agent Mozilla/5.0 (Macintosh; Intel Mac OS X 10_9_0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/31.0.1650.63 Safari/537.36 + Matched by: Mozilla/5.0 (*Mac OS X*) AppleWebKit/* (KHTML* like Gecko) Chrome/*Safari/* +Agent Mozilla/5.0 (Macintosh; Intel Mac OS X 10_9_1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/31.0.1650.57 Safari/537.36 + Matched by: Mozilla/5.0 (*Mac OS X*) AppleWebKit/* (KHTML* like Gecko) Chrome/*Safari/* +Agent Mozilla/5.0 (Macintosh; Intel Mac OS X 10_9_1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/31.0.1650.63 Safari/537.36 + Matched by: Mozilla/5.0 (*Mac OS X*) AppleWebKit/* (KHTML* like Gecko) Chrome/*Safari/* +Agent Mozilla/5.0 (Macintosh; Intel Mac OS X 10_9_1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/32.0.1700.68 Safari/537.36 + Matched by: Mozilla/5.0 (*Mac OS X*) AppleWebKit/* (KHTML* like Gecko) Chrome/*Safari/* +Agent Mozilla/5.0 (Macintosh; Intel Mac OS X 10_9_1) AppleWebKit/537.73.11 (KHTML, like Gecko) Version/7.0.1 Safari/537.73.11 + Matched by: Mozilla/5.0 (*Mac OS X*) AppleWebKit/* (KHTML* like Gecko) *Version/7.0* Safari/* +Agent Mozilla/5.0 (Macintosh; Intel Mac OS X 10_9_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/34.0.1847.131 Safari/537.36 + Matched by: Mozilla/5.0 (*Mac OS X*) AppleWebKit/* (KHTML* like Gecko) Chrome/*Safari/* +Agent Mozilla/5.0 (Macintosh; Intel Mac OS X 10_9_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/38.0.2125.111 Safari/537.36 + Matched by: Mozilla/5.0 (*Mac OS X*) AppleWebKit/* (KHTML* like Gecko) Chrome/*Safari/* +Agent Mozilla/5.0 (Macintosh; Intel Mac OS X 10_9_2) AppleWebKit/537.75.14 (KHTML, like Gecko) Version/7.0.3 Safari/537.75.14 + Matched by: Mozilla/5.0 (*Mac OS X*) AppleWebKit/* (KHTML* like Gecko) *Version/7.0* Safari/* +Agent Mozilla/5.0 (Macintosh; Intel Mac OS X 10_9_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/35.0.1916.114 Safari/537.36 + Matched by: Mozilla/5.0 (*Mac OS X*) AppleWebKit/* (KHTML* like Gecko) Chrome/*Safari/* +Agent Mozilla/5.0 (Macintosh; Intel Mac OS X 10_9_4) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/43.0.2357.124 Safari/537.36 + Matched by: Mozilla/5.0 (*Mac OS X*) AppleWebKit/* (KHTML* like Gecko) Chrome/*Safari/* +Agent Mozilla/5.0 (Macintosh; Intel Mac OS X 10_9_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/38.0.2125.122 Safari/537.36 + Matched by: Mozilla/5.0 (*Mac OS X*) AppleWebKit/* (KHTML* like Gecko) Chrome/*Safari/* +Agent Mozilla/5.0 (Macintosh; Intel Mac OS X 10_9_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/39.0.2183.55 Safari/537.36 + Matched by: Mozilla/5.0 (*Mac OS X*) AppleWebKit/* (KHTML* like Gecko) Chrome/*Safari/* +Agent Mozilla/5.0 (Macintosh; Intel Mac OS X 10_9_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/42.0.2311.135 Safari/537.36 + Matched by: Mozilla/5.0 (*Mac OS X*) AppleWebKit/* (KHTML* like Gecko) Chrome/*Safari/* +Agent Mozilla/5.0 (Macintosh; Intel Mac OS X 10_9) AppleWebKit/537.71 (KHTML, like Gecko) Version/7.0 Safari/537.71 + Matched by: Mozilla/5.0 (*Mac OS X*) AppleWebKit/* (KHTML* like Gecko) *Version/7.0* Safari/* +Agent Mozilla/5.0 (Macintosh; Intel Mac OS X 10.9; rv:25.0) Gecko/20100101 Firefox/25.0 + Matched by: Mozilla/5.0 (*Mac OS X*) Gecko* Firefox/* +Agent Mozilla/5.0 (Macintosh; Intel Mac OS X 10.9; rv:26.0) Gecko/20100101 Firefox/26.0 + Matched by: Mozilla/5.0 (*Mac OS X*) Gecko* Firefox/* +Agent Mozilla/5.0 (Macintosh; Intel Mac OS X 10.9; rv:29.0) Gecko/20100101 Firefox/29.0 + Matched by: Mozilla/5.0 (*Mac OS X*) Gecko* Firefox/* +Agent Mozilla/5.0 (Macintosh; Intel Mac OS X 10.9; rv:35.0) Gecko/20100101 Firefox/35.0 + Matched by: Mozilla/5.0 (*Mac OS X*) Gecko* Firefox/35.0* +Agent Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10_5_8; zh-cn) AppleWebKit/533.18.1 (KHTML, like Gecko) Version/5.0.2 Safari/533.18.5 + Matched by: Mozilla/5.0 (*Mac OS X*) AppleWebKit/* (KHTML* like Gecko) *Version/* Safari/* +Agent Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10.6; fr; rv:1.9.2.8) Gecko/20100722 Firefox/3.6.8 + Matched by: Mozilla/5.0 (*Mac OS X*) Gecko* Firefox/* +Agent Mozilla/5.0 (Mobile; Windows Phone 8.1; Android 4.0; ARM; Trident/7.0; Touch; rv:11.0; IEMobile/11.0; NOKIA; Lumia 930; Vodafone) like iPhone OS 7_0_3 Mac OS X AppleWebKit/537 (KHTML, like Gecko) Mobile Safari/537 + Matched by: Mozilla/5.0*(*Windows Phone 8.1*Trident/7.0*rv:11*IEMobile?11.0; NOKIA; Lumia 930* +Agent Mozilla/5.0 Moreover/5.1 (+http://www.moreover.com; webmaster@moreover.com) + Matched by: * +Agent Mozilla/5.0 Project 25499 (project25499.com) + Matched by: * +Agent Mozilla/5.0 (SymbianOS/9.2; U; Series60/3.1 NokiaN95/31.0.017; Profile/MIDP-2.0 Configuration/CLDC-1.1 ) AppleWebKit/413 (KHTML, like Gecko) Safari/413 + Matched by: * +Agent Mozilla/5.0 (Unknown; Linux x86_64) AppleWebKit/538.1 (KHTML, like Gecko) PhantomJS/2.1.1 Safari/538.1 + Matched by: * +Agent Mozilla/5.0 (Windows NT 10.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/46.0.2486.0 Safari/537.36 Edge/13.10586 + Matched by: Mozilla/5.0 (*Windows NT 10.0*) AppleWebKit/* (KHTML* like Gecko) Chrome/* Safari/* Edge/13.* +Agent Mozilla/5.0 (Windows NT 10.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/50.0.2661.102 Safari/537.36 + Matched by: Mozilla/5.0 (*Windows NT 10.0*) AppleWebKit/* (KHTML* like Gecko) Chrome/50.*Safari/* +Agent Mozilla/5.0 (Windows NT 10.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/54.0.2840.99 Safari/537.36 + Matched by: Mozilla/5.0 (*Windows NT 10.0*) AppleWebKit/* (KHTML* like Gecko) Chrome/54.*Safari/* +Agent Mozilla/5.0 (Windows NT 10.0; rv:46.0) Gecko/20100101 Firefox/46.0 + Matched by: Mozilla/5.0 (*Windows NT 10.0*rv:46.0*) Gecko* Firefox* +Agent Mozilla/5.0 (Windows NT 10.0; rv:50.0) Gecko/20100101 Firefox/50.0 + Matched by: Mozilla/5.0 (*Windows NT 10.0*rv:50.0*) Gecko* Firefox* +Agent Mozilla/5.0 (Windows NT 10.0; rv:52.0) Gecko/20100101 Firefox/52.0 + Matched by: Mozilla/5.0 (*Windows NT 10.0*rv:*) Gecko* Firefox* +Agent Mozilla/5.0 (Windows NT 10.0; Trident/7.0; rv:11.0) like Gecko + Matched by: Mozilla/5.0 (*Windows NT 10.0*Trident/7.0*rv:11.0* +Agent Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/41.0.2301.96 Safari/537.36 + Matched by: Mozilla/5.0 (*Windows NT 10.0*) AppleWebKit/* (KHTML* like Gecko) Chrome/*Safari/* +Agent Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/42.0.2311.135 Safari/537.36 Edge/12.10240 + Matched by: Mozilla/5.0 (*Windows NT 10.0*) AppleWebKit/* (KHTML* like Gecko) Chrome/* Safari/* Edge/12.* +Agent Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/51.0.2704.79 Safari/537.36 Edge/14.14393 + Matched by: Mozilla/5.0 (*Windows NT 10.0*) AppleWebKit/* (KHTML* like Gecko) Chrome/* Safari/* Edge/14.* +Agent Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/52.0.2743.116 Safari/537.36 Edge/15.14970 + Matched by: Mozilla/5.0 (*Windows NT 10.0*) AppleWebKit/* (KHTML* like Gecko) Chrome/* Safari/* Edge/15.* +Agent Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/54.0.2840.71 Safari/537.36 + Matched by: Mozilla/5.0 (*Windows NT 10.0*) AppleWebKit/* (KHTML* like Gecko) Chrome/54.*Safari/* +Agent Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/54.0.2840.87 Safari/537.36 + Matched by: Mozilla/5.0 (*Windows NT 10.0*) AppleWebKit/* (KHTML* like Gecko) Chrome/54.*Safari/* +Agent Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/54.0.2840.99 Safari/537.36 + Matched by: Mozilla/5.0 (*Windows NT 10.0*) AppleWebKit/* (KHTML* like Gecko) Chrome/54.*Safari/* +Agent Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/54.0.2840.99 Safari/537.36 FirePHP/4Chrome + Matched by: Mozilla/5.0 (*Windows NT 10.0*) AppleWebKit/* (KHTML* like Gecko) Chrome/54.*Safari/* +Agent Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/55.0.2883.75 Safari/537.36 + Matched by: Mozilla/5.0 (*Windows NT 10.0*) AppleWebKit/* (KHTML* like Gecko) Chrome/55.*Safari/* +Agent Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/55.0.2883.87 Safari/537.36 + Matched by: Mozilla/5.0 (*Windows NT 10.0*) AppleWebKit/* (KHTML* like Gecko) Chrome/55.*Safari/* +Agent Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/56.0.2922.0 Safari/537.36 + Matched by: Mozilla/5.0 (*Windows NT 10.0*) AppleWebKit/* (KHTML* like Gecko) Chrome/*Safari/* +Agent Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/56.0.2922.1 Safari/537.36 + Matched by: Mozilla/5.0 (*Windows NT 10.0*) AppleWebKit/* (KHTML* like Gecko) Chrome/*Safari/* +Agent Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/56.0.2924.14 Safari/537.36 + Matched by: Mozilla/5.0 (*Windows NT 10.0*) AppleWebKit/* (KHTML* like Gecko) Chrome/*Safari/* +Agent Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:40.0) Gecko/20100101 Firefox/40.0 + Matched by: Mozilla/5.0 (*Windows NT 10.0*) Gecko* Firefox/40.0* +Agent Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:48.0) Gecko/20100101 Firefox/48.0 + Matched by: Mozilla/5.0 (*Windows NT 10.0*rv:48.0*) Gecko* Firefox* +Agent Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:49.0) Gecko/20100101 Firefox/49.0 + Matched by: Mozilla/5.0 (*Windows NT 10.0*rv:49.0*) Gecko* Firefox* +Agent Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:50.0) Gecko/20100101 Firefox/50.0 + Matched by: Mozilla/5.0 (*Windows NT 10.0*rv:50.0*) Gecko* Firefox* +Agent Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:51.0) Gecko/20100101 Firefox/51.0 + Matched by: Mozilla/5.0 (*Windows NT 10.0*rv:*) Gecko* Firefox* +Agent Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:52.0) Gecko/20100101 Firefox/52.0 + Matched by: Mozilla/5.0 (*Windows NT 10.0*rv:*) Gecko* Firefox* +Agent Mozilla/5.0 (Windows NT 10.0; Win64; x64; Trident/7.0; rv:11.0) like Gecko + Matched by: Mozilla/5.0 (*Windows NT 10.0*Trident/7.0*rv:11.0* +Agent Mozilla/5.0 (Windows NT 10.0; WOW64) + Matched by: * +Agent Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/38.0.2125.122 Safari/537.36 SE 2.X MetaSr 1.0 + Matched by: Mozilla/5.0 (*Windows NT 10.0*) AppleWebKit/* (KHTML* like Gecko) Chrome/*Safari/* +Agent Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/43.0.2357.81 Safari/537.36 OPR/30.0.1835.59 (Edition Rambler) + Matched by: Mozilla/5.0 (*Windows NT 10.0*) AppleWebKit/* (KHTML* like Gecko)*Chrome/*Safari/*OPR/30.0* +Agent Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.101 Safari/537.36 + Matched by: Mozilla/5.0 (*Windows NT 10.0*) AppleWebKit/* (KHTML* like Gecko) Chrome/45.*Safari/* +Agent Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.93 Safari/537.36 + Matched by: Mozilla/5.0 (*Windows NT 10.0*) AppleWebKit/* (KHTML* like Gecko) Chrome/45.*Safari/* +Agent Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/46.0.2490.80 Safari/537.36 + Matched by: Mozilla/5.0 (*Windows NT 10.0*) AppleWebKit/* (KHTML* like Gecko) Chrome/46.*Safari/* +Agent Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/47.0.2526.111 Safari/537.36 + Matched by: Mozilla/5.0 (*Windows NT 10.0*) AppleWebKit/* (KHTML* like Gecko) Chrome/47.*Safari/* +Agent Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/48.0.2564.103 Safari/537.36 + Matched by: Mozilla/5.0 (*Windows NT 10.0*) AppleWebKit/* (KHTML* like Gecko) Chrome/48.*Safari/* +Agent Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/48.0.2564.109 Safari/537.36 + Matched by: Mozilla/5.0 (*Windows NT 10.0*) AppleWebKit/* (KHTML* like Gecko) Chrome/48.*Safari/* +Agent Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/48.0.2564.116 Safari/537.36 + Matched by: Mozilla/5.0 (*Windows NT 10.0*) AppleWebKit/* (KHTML* like Gecko) Chrome/48.*Safari/* +Agent Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/48.0.2564.97 Safari/537.36 + Matched by: Mozilla/5.0 (*Windows NT 10.0*) AppleWebKit/* (KHTML* like Gecko) Chrome/48.*Safari/* +Agent Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/49.0.2623.75 Safari/537.36 OPR/36.0.2130.32 + Matched by: Mozilla/5.0 (*Windows NT 10.0*) AppleWebKit/* (KHTML* like Gecko)*Chrome/*Safari/*OPR/36.0* +Agent Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/49.0.2623.87 Safari/537.36 + Matched by: Mozilla/5.0 (*Windows NT 10.0*) AppleWebKit/* (KHTML* like Gecko) Chrome/49.*Safari/* +Agent Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/50.0.2661.102 Safari/537.36 + Matched by: Mozilla/5.0 (*Windows NT 10.0*) AppleWebKit/* (KHTML* like Gecko) Chrome/50.*Safari/* +Agent Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/51.0.2704.103 Safari/537.36 + Matched by: Mozilla/5.0 (*Windows NT 10.0*) AppleWebKit/* (KHTML* like Gecko) Chrome/51.*Safari/* +Agent Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/52.0.2743.116 Safari/537.36 + Matched by: Mozilla/5.0 (*Windows NT 10.0*) AppleWebKit/* (KHTML* like Gecko) Chrome/52.*Safari/* +Agent Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/53.0.2785.116 YaBrowser/16.10.0.2564 Yowser/2.5 Safari/537.36 + Matched by: Mozilla/5.0 (*Windows NT 10.0*) AppleWebKit/* (KHTML* like Gecko) Chrome/53.*Safari/* +Agent Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/53.0.2785.143 Safari/537.36 + Matched by: Mozilla/5.0 (*Windows NT 10.0*) AppleWebKit/* (KHTML* like Gecko) Chrome/53.*Safari/* +Agent Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/53.0.2785.143 YaBrowser/16.10.1.1114 Yowser/2.5 Safari/537.36 + Matched by: Mozilla/5.0 (*Windows NT 10.0*) AppleWebKit/* (KHTML* like Gecko) Chrome/53.*Safari/* +Agent Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/54.0.2840.71 Safari/537.36 + Matched by: Mozilla/5.0 (*Windows NT 10.0*) AppleWebKit/* (KHTML* like Gecko) Chrome/54.*Safari/* +Agent Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/54.0.2840.87 Safari/537.36 + Matched by: Mozilla/5.0 (*Windows NT 10.0*) AppleWebKit/* (KHTML* like Gecko) Chrome/54.*Safari/* +Agent Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/54.0.2840.99 Safari/537.36 + Matched by: Mozilla/5.0 (*Windows NT 10.0*) AppleWebKit/* (KHTML* like Gecko) Chrome/54.*Safari/* +Agent Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/54.0.2840.99 Safari/537.36 OPR/41.0.2353.69 + Matched by: Mozilla/5.0 (*Windows NT 10.0*) AppleWebKit/* (KHTML, like Gecko)*Chrome/*Safari/*OPR/41.0* +Agent Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/55.0.2883.75 Safari/537.36 OPR/42.0.2393.85 + Matched by: Mozilla/5.0 (*Windows NT 10.0*) AppleWebKit/* (KHTML, like Gecko)*Chrome/*Safari/*OPR/42.0* +Agent Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/55.0.2883.87 Safari/537.36 + Matched by: Mozilla/5.0 (*Windows NT 10.0*) AppleWebKit/* (KHTML* like Gecko) Chrome/55.*Safari/* +Agent Mozilla/5.0 (Windows NT 10.0; WOW64; rv:38.0) Gecko/20100101 Firefox/38.0 + Matched by: Mozilla/5.0 (*Windows NT 10.0*) Gecko* Firefox/38.0* +Agent Mozilla/5.0 (Windows NT 10.0; WOW64; rv:39.0) Gecko/20100101 Firefox/39.0 + Matched by: Mozilla/5.0 (*Windows NT 10.0*) Gecko* Firefox/39.0* +Agent Mozilla/5.0 (Windows NT 10.0; WOW64; rv:40.0) Gecko/20100101 Firefox/40.0 + Matched by: Mozilla/5.0 (*Windows NT 10.0*) Gecko* Firefox/40.0* +Agent Mozilla/5.0 (Windows NT 10.0; WOW64; rv:41.0) Gecko/20100101 Firefox/41.0 + Matched by: Mozilla/5.0 (*Windows NT 10.0*rv:41.0*) Gecko* Firefox* +Agent Mozilla/5.0 (Windows NT 10.0; WOW64; rv:43.0) Gecko/20100101 Firefox/43.0 + Matched by: Mozilla/5.0 (*Windows NT 10.0*rv:43.0*) Gecko* Firefox* +Agent Mozilla/5.0 (Windows NT 10.0; WOW64; rv:44.0) Gecko/20100101 Firefox/44.0 + Matched by: Mozilla/5.0 (*Windows NT 10.0*rv:44.0*) Gecko* Firefox* +Agent Mozilla/5.0 (Windows NT 10.0; WOW64; rv:46.0) Gecko/20100101 Firefox/46.0 + Matched by: Mozilla/5.0 (*Windows NT 10.0*rv:46.0*) Gecko* Firefox* +Agent Mozilla/5.0 (Windows NT 10.0; WOW64; rv:49.0) Gecko/20100101 Firefox/49.0 + Matched by: Mozilla/5.0 (*Windows NT 10.0*rv:49.0*) Gecko* Firefox* +Agent Mozilla/5.0 (Windows NT 10.0; WOW64; rv:50.0) Gecko/20100101 Firefox/50.0 + Matched by: Mozilla/5.0 (*Windows NT 10.0*rv:50.0*) Gecko* Firefox* +Agent Mozilla/5.0 (Windows NT 10.0; WOW64; Trident/7.0; rv:11.0) like Gecko + Matched by: Mozilla/5.0 (*Windows NT 10.0*Trident/7.0*rv:11.0* +Agent Mozilla/5.0 (Windows NT 5.1) AppleWebKit/535.11 (KHTML, like Gecko) Chrome/17.0.963.46 Safari/535.11 MRCHROME + Matched by: Mozilla/5.0 (*Windows*) AppleWebKit/* (KHTML* like Gecko) Chrome/*Safari/* +Agent Mozilla/5.0 (Windows NT 5.1) AppleWebKit/535.1 (KHTML, like Gecko) Chrome/14.0.810.0 Safari/535.1 + Matched by: Mozilla/5.0 (*Windows*) AppleWebKit/* (KHTML* like Gecko) Chrome/*Safari/* +Agent Mozilla/5.0 (Windows NT 5.1) AppleWebKit/537.1 (KHTML, like Gecko) Chrome/24.0.1290.1 Safari/537.13 + Matched by: Mozilla/5.0 (*Windows*) AppleWebKit/* (KHTML* like Gecko) Chrome/*Safari/* +Agent Mozilla/5.0 (Windows NT 5.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/28.0.1468.0 Safari/537.36 + Matched by: Mozilla/5.0 (*Windows*) AppleWebKit/* (KHTML* like Gecko) Chrome/*Safari/* +Agent Mozilla/5.0 (Windows NT 5.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/31.0.1650.63 Safari/537.36 + Matched by: Mozilla/5.0 (*Windows*) AppleWebKit/* (KHTML* like Gecko) Chrome/*Safari/* +Agent Mozilla/5.0 (Windows NT 5.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/34.0.1847.116 Safari/537.36 + Matched by: Mozilla/5.0 (*Windows*) AppleWebKit/* (KHTML* like Gecko) Chrome/*Safari/* +Agent Mozilla/5.0 (Windows NT 5.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/39.0.2171.95 Safari/537.36 + Matched by: Mozilla/5.0 (*Windows*) AppleWebKit/* (KHTML* like Gecko) Chrome/*Safari/* +Agent Mozilla/5.0 (Windows NT 5.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/39.0.2171.95 Safari/537.36 OPR/26.0.1656.60 + Matched by: Mozilla/5.0 (*Windows*) AppleWebKit/* (KHTML* like Gecko) Chrome/*Safari/* +Agent Mozilla/5.0 (Windows NT 5.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/39.0.2171.99 Safari/537.36 + Matched by: Mozilla/5.0 (*Windows*) AppleWebKit/* (KHTML* like Gecko) Chrome/*Safari/* +Agent Mozilla/5.0 (Windows NT 5.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/42.0.2311.90 Safari/537.36 + Matched by: Mozilla/5.0 (*Windows*) AppleWebKit/* (KHTML* like Gecko) Chrome/*Safari/* +Agent Mozilla/5.0 (Windows NT 5.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.101 Safari/537.36 + Matched by: Mozilla/5.0 (*Windows*) AppleWebKit/* (KHTML* like Gecko) Chrome/45.*Safari/* +Agent Mozilla/5.0 (Windows NT 5.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/49.0.2623.112 Safari/537.36 + Matched by: Mozilla/5.0 (*Windows*) AppleWebKit/* (KHTML* like Gecko) Chrome/49.*Safari/* +Agent Mozilla/5.0 (Windows NT 5.1; ru-RU; rv:26.0) Gecko/20100101 Firefox/26.0 + Matched by: * +Agent Mozilla/5.0 (Windows NT 5.1; rv:2.0b13pre) Gecko/20110223 Firefox/4.0b13pre + Matched by: * +Agent Mozilla/5.0 (Windows NT 5.1; rv:24.0) Gecko/20100101 Firefox/24.0 + Matched by: * +Agent Mozilla/5.0 (Windows NT 5.1; rv:25.0) Gecko/20100101 Firefox/25.0 + Matched by: * +Agent Mozilla/5.0 (Windows NT 5.1; rv:26.0) Gecko/20100101 Firefox/26.0 + Matched by: * +Agent Mozilla/5.0 (Windows NT 5.1; rv:32.0) Gecko/20100101 Firefox/31.0 + Matched by: * +Agent Mozilla/5.0 (Windows NT 5.1; rv:34.0) Gecko/20100101 Firefox/34.0 + Matched by: * +Agent Mozilla/5.0 (Windows NT 5.1; rv:35.0) Gecko/20100101 Firefox/35.0 + Matched by: * +Agent Mozilla/5.0 (Windows NT 5.1; rv:38.0) Gecko/20100101 Firefox/38.0 K-Meleon/76.0 + Matched by: * +Agent Mozilla/5.0 (Windows NT 5.1; rv:43.0) Gecko/20100101 Firefox/43.0 + Matched by: * +Agent Mozilla/5.0 (Windows NT 5.1; rv:47.0) Gecko/20100101 Firefox/47.0 + Matched by: * +Agent Mozilla/5.0 (Windows NT 5.1; rv:48.0) Gecko/20100101 Firefox/48.0 + Matched by: * +Agent Mozilla/5.0 (Windows NT 5.1; rv:49.0) Gecko/20100101 Firefox/49.0 + Matched by: * +Agent Mozilla/5.0 (Windows NT 5.1; rv:50.0) Gecko/20100101 Firefox/50.0 + Matched by: * +Agent Mozilla/5.0 (Windows NT 5.1; rv:6.0.2) Gecko/20100101 Firefox/6.0.2 + Matched by: * +Agent Mozilla/5.0 (Windows NT 5.1; rv:7.0.1) Gecko/20100101 Firefox/7.0.1 + Matched by: * +Agent Mozilla/5.0 (Windows NT 5.1; rv:9.0.1) Gecko/20100101 Firefox/9.0.1 + Matched by: * +Agent Mozilla/5.0 (Windows NT 5.1; U; en) Opera 8.00 + Matched by: * +Agent Mozilla/5.0 (Windows NT 5.1; U; en) Opera 8.01 + Matched by: * +Agent Mozilla/5.0 (Windows NT 5.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/36.0.1996.45 Safari/537.36 + Matched by: Mozilla/5.0 (*Windows*) AppleWebKit/* (KHTML* like Gecko) Chrome/*Safari/* +Agent Mozilla/5.0 (Windows NT 5.2; rv:43.0) Gecko/20100101 Firefox/43.0 + Matched by: * +Agent Mozilla/5.0 (Windows NT 5.2; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/49.0.2623.112 Safari/537.36 + Matched by: Mozilla/5.0 (*Windows*) AppleWebKit/* (KHTML* like Gecko) Chrome/49.*Safari/* +Agent Mozilla/5.0 (Windows NT 6.0) AppleWebKit/535.1 (KHTML, like Gecko) Chrome/14.0.792.0 Safari/535.1 + Matched by: Mozilla/5.0 (*Windows NT 6.0*) AppleWebKit/* (KHTML* like Gecko) Chrome/*Safari/* +Agent Mozilla/5.0 (Windows NT 6.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/30.0.1599.17 Safari/537.36 + Matched by: Mozilla/5.0 (*Windows NT 6.0*) AppleWebKit/* (KHTML* like Gecko) Chrome/*Safari/* +Agent Mozilla/5.0 (Windows NT 6.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/31.0.1650.63 Safari/537.36 + Matched by: Mozilla/5.0 (*Windows NT 6.0*) AppleWebKit/* (KHTML* like Gecko) Chrome/*Safari/* +Agent Mozilla/5.0 (Windows NT 6.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/34.0.1847.116 Safari/537.36 + Matched by: Mozilla/5.0 (*Windows NT 6.0*) AppleWebKit/* (KHTML* like Gecko) Chrome/*Safari/* +Agent Mozilla/5.0 (Windows NT 6.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/39.0.2171.71 Safari/537.36 + Matched by: Mozilla/5.0 (*Windows NT 6.0*) AppleWebKit/* (KHTML* like Gecko) Chrome/*Safari/* +Agent Mozilla/5.0 (Windows NT 6.0; rv:26.0) Gecko/20100101 Firefox/26.0 + Matched by: Mozilla/5.0 (*Windows NT 6.0*) Gecko* Firefox/* +Agent Mozilla/5.0 (Windows NT 6.0; rv:34.0) Gecko/20100101 Firefox/34.0 + Matched by: Mozilla/5.0 (*Windows NT 6.0*) Gecko* Firefox/34.0* +Agent Mozilla/5.0 (Windows NT 6.0; rv:49.0) Gecko/20100101 Firefox/49.0 + Matched by: Mozilla/5.0 (*Windows NT 6.0*) Gecko* Firefox/49.0* +Agent Mozilla/5.0 (Windows NT 6.0; rv:50.0) Gecko/20100101 Firefox/50.0 + Matched by: Mozilla/5.0 (*Windows NT 6.0*) Gecko* Firefox/50.0* +Agent Mozilla/5.0 (Windows NT 6.0; WOW64) AppleWebKit/534.24 (KHTML, like Gecko) Chrome/11.0.696.34 Safari/534.24 + Matched by: Mozilla/5.0 (*Windows NT 6.0*) AppleWebKit/* (KHTML* like Gecko) Chrome/*Safari/* +Agent Mozilla/5.0 (Windows NT 6.0; WOW64) AppleWebKit/534.30 (KHTML, like Gecko) Chrome/12.0.742.91 Safari/534.30 + Matched by: Mozilla/5.0 (*Windows NT 6.0*) AppleWebKit/* (KHTML* like Gecko) Chrome/*Safari/* +Agent Mozilla/5.0 (Windows NT 6.0; WOW64) AppleWebKit/537.17 (KHTML, like Gecko) Chrome/24.0.1312.57 Safari/537.17 + Matched by: Mozilla/5.0 (*Windows NT 6.0*) AppleWebKit/* (KHTML* like Gecko) Chrome/*Safari/* +Agent Mozilla/5.0 (Windows NT 6.0; WOW64; rv:40.0) Gecko/20100101 Firefox/40.0 + Matched by: Mozilla/5.0 (*Windows NT 6.0*) Gecko* Firefox/40.0* +Agent Mozilla/5.0 (Windows NT 6.1) AppleWebKit/536.5 (KHTML like Gecko) Chrome/19.0.1084.56 Safari/536.5 + Matched by: Mozilla/5.0 (*Windows NT 6.1*) AppleWebKit/* (KHTML* like Gecko) Chrome/*Safari/* +Agent Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.1 (KHTML, like Gecko) Chrome/21.0.1180.89 Safari/537.1 + Matched by: Mozilla/5.0 (*Windows NT 6.1*) AppleWebKit/* (KHTML* like Gecko) Chrome/*Safari/* +Agent Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/27.0.1453.90 Safari/537.36 + Matched by: Mozilla/5.0 (*Windows NT 6.1*) AppleWebKit/* (KHTML* like Gecko) Chrome/*Safari/* +Agent Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/31.0.1650.63 Safari/537.36 + Matched by: Mozilla/5.0 (*Windows NT 6.1*) AppleWebKit/* (KHTML* like Gecko) Chrome/*Safari/* +Agent Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/32.0.1700.72 Safari/537.36 + Matched by: Mozilla/5.0 (*Windows NT 6.1*) AppleWebKit/* (KHTML* like Gecko) Chrome/*Safari/* +Agent Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/33.0.1750.154 Safari/537.36 + Matched by: Mozilla/5.0 (*Windows NT 6.1*) AppleWebKit/* (KHTML* like Gecko) Chrome/*Safari/* +Agent Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/33.0.1750.154 Safari/537.36 OPR/20.0.1387.91 + Matched by: Mozilla/5.0 (*Windows NT 6.1*) AppleWebKit/* (KHTML* like Gecko) Chrome/*Safari/* +Agent Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/37.0.2062.124 YaBrowser/14.10.2062.12521 Safari/537.36 + Matched by: Mozilla/5.0 (*Windows NT 6.1*) AppleWebKit/* (KHTML* like Gecko) Chrome/*Safari/* +Agent Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/39.0.2171.95 Safari/537.36 + Matched by: Mozilla/5.0 (*Windows NT 6.1*) AppleWebKit/* (KHTML* like Gecko) Chrome/*Safari/* +Agent Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/39.0.2171.95 Safari/537.36 OPR/26.0.1656.60 + Matched by: Mozilla/5.0 (*Windows NT 6.1*) AppleWebKit/* (KHTML* like Gecko) Chrome/*Safari/* +Agent Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/41.0.2228.0 Safari/537.36 + Matched by: Mozilla/5.0 (*Windows NT 6.1*) AppleWebKit/* (KHTML* like Gecko) Chrome/*Safari/* +Agent Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/47.0.2526.111 Safari/537.36 + Matched by: Mozilla/5.0 (*Windows NT 6.1*) AppleWebKit/* (KHTML* like Gecko) Chrome/47.*Safari/* +Agent Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/48.0.2564.109 Safari/537.36 + Matched by: Mozilla/5.0 (*Windows NT 6.1*) AppleWebKit/* (KHTML* like Gecko) Chrome/48.*Safari/* +Agent Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/53.0.2785.116 Safari/537.36 + Matched by: Mozilla/5.0 (*Windows NT 6.1*) AppleWebKit/* (KHTML* like Gecko) Chrome/53.*Safari/* +Agent Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/53.0.2785.143 Safari/537.36 + Matched by: Mozilla/5.0 (*Windows NT 6.1*) AppleWebKit/* (KHTML* like Gecko) Chrome/53.*Safari/* +Agent Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/53.0.2785.21 Safari/537.36 + Matched by: Mozilla/5.0 (*Windows NT 6.1*) AppleWebKit/* (KHTML* like Gecko) Chrome/53.*Safari/* +Agent Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/54.0.2840.71 Safari/537.36 + Matched by: Mozilla/5.0 (*Windows NT 6.1*) AppleWebKit/* (KHTML* like Gecko) Chrome/54.*Safari/* +Agent Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/54.0.2840.99 Safari/537.36 + Matched by: Mozilla/5.0 (*Windows NT 6.1*) AppleWebKit/* (KHTML* like Gecko) Chrome/54.*Safari/* +Agent Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/54.0.2840.99 Safari/537.36 OPR/41.0.2353.69 + Matched by: Mozilla/5.0 (*Windows NT 6.1*) AppleWebKit/* (KHTML, like Gecko)*Chrome/*Safari/*OPR/41.0* +Agent Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/55.0.2883.75 Safari/537.36 + Matched by: Mozilla/5.0 (*Windows NT 6.1*) AppleWebKit/* (KHTML* like Gecko) Chrome/55.*Safari/* +Agent Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Dragon/36.1.1.21 Chrome/36.0.1985.97 Safari/537.36 + Matched by: * +Agent Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Iron/32.0.1750.1 Chrome/32.0.1750.1 Safari/537.36 + Matched by: * +Agent Mozilla/5.0 (Windows NT 6.1; rv:12.0) Gecko/ 20120405 Firefox/14.0.1 + Matched by: Mozilla/5.0 (*Windows NT 6.1*) Gecko* Firefox/* +Agent Mozilla/5.0 (Windows NT 6.1; rv:18.0) Gecko/20100101 Firefox/18.0 + Matched by: Mozilla/5.0 (*Windows NT 6.1*) Gecko* Firefox/* +Agent Mozilla/5.0 (Windows NT 6.1; rv:19.0) Gecko/20100101 Firefox/19.0 + Matched by: Mozilla/5.0 (*Windows NT 6.1*) Gecko* Firefox/* +Agent Mozilla/5.0 (Windows NT 6.1; rv:1.9) Gecko/20100101 Firefox/4.0 + Matched by: Mozilla/5.0 (*Windows NT 6.1*) Gecko* Firefox/* +Agent Mozilla/5.0 (Windows NT 6.1; rv:2.0b10pre) Gecko/20110113 Firefox/4.0b10pre + Matched by: Mozilla/5.0 (*Windows NT 6.1*) Gecko* Firefox/* +Agent Mozilla/5.0 (Windows NT 6.1; rv:2.0b6pre) Gecko/20100903 Firefox/4.0b6pre Firefox/4.0b6pre + Matched by: Mozilla/5.0 (*Windows NT 6.1*) Gecko* Firefox/* +Agent Mozilla/5.0 (Windows NT 6.1; rv:21.0) Gecko/20100101 Firefox/21.0 + Matched by: Mozilla/5.0 (*Windows NT 6.1*) Gecko* Firefox/* +Agent Mozilla/5.0 (Windows NT 6.1; rv:24.0) Gecko/20100101 Firefox/24.0 + Matched by: Mozilla/5.0 (*Windows NT 6.1*) Gecko* Firefox/* +Agent Mozilla/5.0 (Windows NT 6.1; rv:24.0) Gecko/20140329 Firefox/24.0 PaleMoon/24.4.2 + Matched by: Mozilla/5.0 (*Windows NT 6.1*) Gecko* Firefox/* +Agent Mozilla/5.0 (Windows NT 6.1; rv:25.0) Gecko/20100101 Firefox/25.0 + Matched by: Mozilla/5.0 (*Windows NT 6.1*) Gecko* Firefox/* +Agent Mozilla/5.0 (Windows NT 6.1; rv:26.0) Gecko/20100101 Firefox/26.0 + Matched by: Mozilla/5.0 (*Windows NT 6.1*) Gecko* Firefox/* +Agent Mozilla/5.0 (Windows NT 6.1; rv:28.0) Gecko/20100101 Firefox/28.0 + Matched by: Mozilla/5.0 (*Windows NT 6.1*) Gecko* Firefox/* +Agent Mozilla/5.0 (Windows NT 6.1; rv:31.0) Gecko/20100101 Firefox/31.0 + Matched by: Mozilla/5.0 (*Windows NT 6.1*) Gecko* Firefox/31.0* +Agent Mozilla/5.0 (Windows NT 6.1; rv:32.0) Gecko/20100101 Firefox/32.0 + Matched by: Mozilla/5.0 (*Windows NT 6.1*) Gecko* Firefox/32.0* +Agent Mozilla/5.0 (Windows NT 6.1; rv:34.0) Gecko/20100101 Firefox/34.0 + Matched by: Mozilla/5.0 (*Windows NT 6.1*) Gecko* Firefox/34.0* +Agent Mozilla/5.0 (Windows NT 6.1; rv:35.0) Gecko/20100101 Firefox/35.0 + Matched by: Mozilla/5.0 (*Windows NT 6.1*) Gecko* Firefox/35.0* +Agent Mozilla/5.0 (Windows NT 6.1; rv:38.0) Gecko/20100101 Firefox/38.0 K-Meleon/76.0 + Matched by: Mozilla/5.0 (*Windows NT 6.1*) Gecko* Firefox/38.0* +Agent Mozilla/5.0 (Windows NT 6.1; rv:39.0) Gecko/20100101 Firefox/39.0 + Matched by: Mozilla/5.0 (*Windows NT 6.1*) Gecko* Firefox/39.0* +Agent Mozilla/5.0 (Windows NT 6.1; rv:43.0) Gecko/20100101 Firefox/43.0 + Matched by: Mozilla/5.0 (*Windows NT 6.1*) Gecko* Firefox/43.0* +Agent Mozilla/5.0 (Windows NT 6.1; rv:44.0) Gecko/20100101 Firefox/44.0 + Matched by: Mozilla/5.0 (*Windows NT 6.1*) Gecko* Firefox/44.0* +Agent Mozilla/5.0 (Windows NT 6.1; rv:45.0) Gecko/20100101 Firefox/45.0 + Matched by: Mozilla/5.0 (*Windows NT 6.1*) Gecko* Firefox/45.0* +Agent Mozilla/5.0 (Windows NT 6.1; rv:49.0) Gecko/20100101 Firefox/49.0 + Matched by: Mozilla/5.0 (*Windows NT 6.1*) Gecko* Firefox/49.0* +Agent Mozilla/5.0 (Windows NT 6.1; rv:50.0) Gecko/20100101 Firefox/50.0 + Matched by: Mozilla/5.0 (*Windows NT 6.1*) Gecko* Firefox/50.0* +Agent Mozilla/5.0 (Windows NT 6.1; rv:5.0) Gecko/20100101 Firefox/5.0 + Matched by: Mozilla/5.0 (*Windows NT 6.1*) Gecko* Firefox/* +Agent Mozilla/5.0 (Windows NT 6.1; rv:6.0) Gecko/20100101 Firefox/19.0 + Matched by: Mozilla/5.0 (*Windows NT 6.1*) Gecko* Firefox/* +Agent Mozilla/5.0 (Windows NT 6.1; rv:9.0.1) Gecko/20100101 Firefox/9.0.1 + Matched by: Mozilla/5.0 (*Windows NT 6.1*) Gecko* Firefox/* +Agent Mozilla/5.0 (Windows NT 6.1; Trident/7.0; rv:11.0) like C9CF7 + Matched by: Mozilla/5.0 (*Windows NT 6.1*Trident/7.0*rv:11.0* +Agent Mozilla/5.0 (Windows NT 6.1; Trident/7.0; rv:11.0) like Gecko + Matched by: Mozilla/5.0 (*Windows NT 6.1*Trident/7.0*rv:11.0* +Agent Mozilla/5.0 (Windows NT 6.1; U;WOW64; de;rv:11.0) Gecko Firefox/11.0 + Matched by: Mozilla/5.0 (*Windows NT 6.1*) Gecko* Firefox/* +Agent Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/39.0.2171.95 Safari/537.36 + Matched by: Mozilla/5.0 (*Windows NT 6.1*) AppleWebKit/* (KHTML* like Gecko) Chrome/*Safari/* +Agent Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/40.0.2214.85 Safari/537.36 + Matched by: Mozilla/5.0 (*Windows NT 6.1*) AppleWebKit/* (KHTML* like Gecko) Chrome/*Safari/* +Agent Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/52.0.2743.82 Safari/537.36 + Matched by: Mozilla/5.0 (*Windows NT 6.1*) AppleWebKit/* (KHTML* like Gecko) Chrome/52.*Safari/* +Agent Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/54.0.2840.71 Safari/537.36 + Matched by: Mozilla/5.0 (*Windows NT 6.1*) AppleWebKit/* (KHTML* like Gecko) Chrome/54.*Safari/* +Agent Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/54.0.2840.87 Safari/537.36 + Matched by: Mozilla/5.0 (*Windows NT 6.1*) AppleWebKit/* (KHTML* like Gecko) Chrome/54.*Safari/* +Agent Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/54.0.2840.99 Safari/537.36 + Matched by: Mozilla/5.0 (*Windows NT 6.1*) AppleWebKit/* (KHTML* like Gecko) Chrome/54.*Safari/* +Agent Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/55.0.2883.59 Safari/537.36 + Matched by: Mozilla/5.0 (*Windows NT 6.1*) AppleWebKit/* (KHTML* like Gecko) Chrome/55.*Safari/* +Agent Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:2.0b11pre) Gecko/20110128 Firefox/4.0b11pre + Matched by: Mozilla/5.0 (*Windows NT 6.1*) Gecko* Firefox/* +Agent Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:2.2a1pre) Gecko/20110324 Firefox/4.2a1pre + Matched by: Mozilla/5.0 (*Windows NT 6.1*) Gecko* Firefox/* +Agent Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:24.0) Gecko/20100101 Firefox/24.0 Waterfox/24.0 + Matched by: Mozilla/5.0 (*Windows NT 6.1*) Gecko* Firefox/* +Agent Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:44.0) Gecko/20100101 Firefox/44.0 + Matched by: Mozilla/5.0 (*Windows NT 6.1*) Gecko* Firefox/44.0* +Agent Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:5.0) Gecko/20110619 Firefox/5.0 + Matched by: Mozilla/5.0 (*Windows NT 6.1*) Gecko* Firefox/* +Agent Mozilla/5.0 (Windows NT 6.1; Win64; x64; Trident/7.0; CTL_IE11; rv:11.0) like Gecko + Matched by: Mozilla/5.0 (*Windows NT 6.1*Trident/7.0*rv:11.0* +Agent Mozilla/5.0 (Windows NT 6.1; Win64; x64; Trident/7.0; rv:11.0) like Gecko + Matched by: Mozilla/5.0 (*Windows NT 6.1*Trident/7.0*rv:11.0* +Agent Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/534.24 (KHTML, like Gecko) Chrome/11.0.696.12 Safari/534.24 + Matched by: Mozilla/5.0 (*Windows NT 6.1*) AppleWebKit/* (KHTML* like Gecko) Chrome/*Safari/* +Agent Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/534+ (KHTML, like Gecko) BingPreview/1.0b + Matched by: * +Agent Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/535.2 (KHTML, like Gecko) Chrome/15.0.874.121 Safari/535.2 + Matched by: Mozilla/5.0 (*Windows NT 6.1*) AppleWebKit/* (KHTML* like Gecko) Chrome/*Safari/* +Agent Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.17 (KHTML, like Gecko) Chrome/24.0.1312.52 Safari/537.17 + Matched by: Mozilla/5.0 (*Windows NT 6.1*) AppleWebKit/* (KHTML* like Gecko) Chrome/*Safari/* +Agent Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/28.0.1468.0 Safari/537.36 + Matched by: Mozilla/5.0 (*Windows NT 6.1*) AppleWebKit/* (KHTML* like Gecko) Chrome/*Safari/* +Agent Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/28.0.1500.72 Safari/537.36 + Matched by: Mozilla/5.0 (*Windows NT 6.1*) AppleWebKit/* (KHTML* like Gecko) Chrome/*Safari/* +Agent Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/28.0.1500.95 YaBrowser/13.10.1500.9323 Safari/537.36 + Matched by: Mozilla/5.0 (*Windows NT 6.1*) AppleWebKit/* (KHTML* like Gecko) Chrome/*Safari/* +Agent Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/29.0.1547.57 Safari/537.36 OPR/16.0.1196.73 + Matched by: Mozilla/5.0 (*Windows NT 6.1*) AppleWebKit/* (KHTML* like Gecko) Chrome/*Safari/* +Agent Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/31.0.1650.57 Safari/537.36 + Matched by: Mozilla/5.0 (*Windows NT 6.1*) AppleWebKit/* (KHTML* like Gecko) Chrome/*Safari/* +Agent Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/31.0.1650.63 Safari/537.36 + Matched by: Mozilla/5.0 (*Windows NT 6.1*) AppleWebKit/* (KHTML* like Gecko) Chrome/*Safari/* +Agent Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/32.0.1700.107 Safari/537.36 + Matched by: Mozilla/5.0 (*Windows NT 6.1*) AppleWebKit/* (KHTML* like Gecko) Chrome/*Safari/* +Agent Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/32.0.1700.41 Safari/537.36 + Matched by: Mozilla/5.0 (*Windows NT 6.1*) AppleWebKit/* (KHTML* like Gecko) Chrome/*Safari/* +Agent Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/34.0.1847.116 Safari/537.36 + Matched by: Mozilla/5.0 (*Windows NT 6.1*) AppleWebKit/* (KHTML* like Gecko) Chrome/*Safari/* +Agent Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/34.0.1847.131 Safari/537.36 + Matched by: Mozilla/5.0 (*Windows NT 6.1*) AppleWebKit/* (KHTML* like Gecko) Chrome/*Safari/* +Agent Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/34.0.1847.137 Safari/537.36 + Matched by: Mozilla/5.0 (*Windows NT 6.1*) AppleWebKit/* (KHTML* like Gecko) Chrome/*Safari/* +Agent Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML like Gecko) Chrome/35.0.1916.114 Safari/537.36 + Matched by: Mozilla/5.0 (*Windows NT 6.1*) AppleWebKit/* (KHTML* like Gecko) Chrome/*Safari/* +Agent Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/35.0.1916.153 Safari/537.36 + Matched by: Mozilla/5.0 (*Windows NT 6.1*) AppleWebKit/* (KHTML* like Gecko) Chrome/*Safari/* +Agent Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/36.0.1985.125 Safari/537.36 + Matched by: Mozilla/5.0 (*Windows NT 6.1*) AppleWebKit/* (KHTML* like Gecko) Chrome/*Safari/* +Agent Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/36.0.1985.143 Safari/537.36 + Matched by: Mozilla/5.0 (*Windows NT 6.1*) AppleWebKit/* (KHTML* like Gecko) Chrome/*Safari/* +Agent Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/37.0.2062.120 Safari/537.36 + Matched by: Mozilla/5.0 (*Windows NT 6.1*) AppleWebKit/* (KHTML* like Gecko) Chrome/*Safari/* +Agent Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/39.0.2171.95 Safari/537.36 + Matched by: Mozilla/5.0 (*Windows NT 6.1*) AppleWebKit/* (KHTML* like Gecko) Chrome/*Safari/* +Agent Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/39.0.2171.95 Safari/537.36 OPR/26.0.1656.60 + Matched by: Mozilla/5.0 (*Windows NT 6.1*) AppleWebKit/* (KHTML* like Gecko) Chrome/*Safari/* +Agent Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/39.0.2171.99 Safari/537.36 + Matched by: Mozilla/5.0 (*Windows NT 6.1*) AppleWebKit/* (KHTML* like Gecko) Chrome/*Safari/* +Agent Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/40.0.2214.111 Safari/537.36 + Matched by: Mozilla/5.0 (*Windows NT 6.1*) AppleWebKit/* (KHTML* like Gecko) Chrome/*Safari/* +Agent Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/40.0.2214.115 Safari/537.36 + Matched by: Mozilla/5.0 (*Windows NT 6.1*) AppleWebKit/* (KHTML* like Gecko) Chrome/*Safari/* +Agent Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/41.0.2227.0 Safari/537.36 + Matched by: Mozilla/5.0 (*Windows NT 6.1*) AppleWebKit/* (KHTML* like Gecko) Chrome/*Safari/* +Agent Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/42.0.2311.135 Safari/537.36 + Matched by: Mozilla/5.0 (*Windows NT 6.1*) AppleWebKit/* (KHTML* like Gecko) Chrome/*Safari/* +Agent Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/42.0.2311.152 Safari/537.36 + Matched by: Mozilla/5.0 (*Windows NT 6.1*) AppleWebKit/* (KHTML* like Gecko) Chrome/*Safari/* +Agent Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/43.0.2357.65 Safari/537.36 + Matched by: Mozilla/5.0 (*Windows NT 6.1*) AppleWebKit/* (KHTML* like Gecko) Chrome/*Safari/* +Agent Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/43.0.2357.81 Safari/537.36 + Matched by: Mozilla/5.0 (*Windows NT 6.1*) AppleWebKit/* (KHTML* like Gecko) Chrome/*Safari/* +Agent Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/44.0.2403.125 Safari/537.36 + Matched by: Mozilla/5.0 (*Windows NT 6.1*) AppleWebKit/* (KHTML* like Gecko) Chrome/*Safari/* +Agent Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/44.0.2403.89 Safari/537.36 + Matched by: Mozilla/5.0 (*Windows NT 6.1*) AppleWebKit/* (KHTML* like Gecko) Chrome/*Safari/* +Agent Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/46.0.2490.86 YaBrowser/15.12.1.6475 Safari/537.36 + Matched by: Mozilla/5.0 (*Windows NT 6.1*) AppleWebKit/* (KHTML* like Gecko) Chrome/46.*Safari/* +Agent Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/47.0.2526.106 Safari/537.36 + Matched by: Mozilla/5.0 (*Windows NT 6.1*) AppleWebKit/* (KHTML* like Gecko) Chrome/47.*Safari/* +Agent Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/47.0.2526.111 Safari/537.36 + Matched by: Mozilla/5.0 (*Windows NT 6.1*) AppleWebKit/* (KHTML* like Gecko) Chrome/47.*Safari/* +Agent Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/47.0.2526.111 Safari/537.36 OPR/34.0.2036.50 + Matched by: Mozilla/5.0 (*Windows NT 6.1*) AppleWebKit/* (KHTML* like Gecko)*Chrome/*Safari/*OPR/34.0* +Agent Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/47.0.2526.111 YaBrowser/16.2.0.3539 Safari/537.36 + Matched by: Mozilla/5.0 (*Windows NT 6.1*) AppleWebKit/* (KHTML* like Gecko) Chrome/47.*Safari/* +Agent Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/48.0.2564.103 Safari/537.36 + Matched by: Mozilla/5.0 (*Windows NT 6.1*) AppleWebKit/* (KHTML* like Gecko) Chrome/48.*Safari/* +Agent Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/48.0.2564.109 Safari/537.36 + Matched by: Mozilla/5.0 (*Windows NT 6.1*) AppleWebKit/* (KHTML* like Gecko) Chrome/48.*Safari/* +Agent Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/48.0.2564.116 Safari/537.36 + Matched by: Mozilla/5.0 (*Windows NT 6.1*) AppleWebKit/* (KHTML* like Gecko) Chrome/48.*Safari/* +Agent Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/48.0.2564.82 Safari/537.36 OPR/35.0.2066.37 + Matched by: Mozilla/5.0 (*Windows NT 6.1*) AppleWebKit/* (KHTML* like Gecko)*Chrome/*Safari/*OPR/35.0* +Agent Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/48.0.2564.97 Safari/537.36 + Matched by: Mozilla/5.0 (*Windows NT 6.1*) AppleWebKit/* (KHTML* like Gecko) Chrome/48.*Safari/* +Agent Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/51.0.2704.103 Safari/537.36 + Matched by: Mozilla/5.0 (*Windows NT 6.1*) AppleWebKit/* (KHTML* like Gecko) Chrome/51.*Safari/* +Agent Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/53.0.2785.143 Safari/537.36 + Matched by: Mozilla/5.0 (*Windows NT 6.1*) AppleWebKit/* (KHTML* like Gecko) Chrome/53.*Safari/* +Agent Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/53.0.2785.143 YaBrowser/16.10.1.1114 Yowser/2.5 Safari/537.36 + Matched by: Mozilla/5.0 (*Windows NT 6.1*) AppleWebKit/* (KHTML* like Gecko) Chrome/53.*Safari/* +Agent Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/54.0.2840.71 Safari/537.36 + Matched by: Mozilla/5.0 (*Windows NT 6.1*) AppleWebKit/* (KHTML* like Gecko) Chrome/54.*Safari/* +Agent Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/54.0.2840.87 Safari/537.36 + Matched by: Mozilla/5.0 (*Windows NT 6.1*) AppleWebKit/* (KHTML* like Gecko) Chrome/54.*Safari/* +Agent Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/54.0.2840.99 Safari/537.36 + Matched by: Mozilla/5.0 (*Windows NT 6.1*) AppleWebKit/* (KHTML* like Gecko) Chrome/54.*Safari/* +Agent Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/54.0.2840.99 Safari/537.36 OPR/41.0.2353.69 + Matched by: Mozilla/5.0 (*Windows NT 6.1*) AppleWebKit/* (KHTML, like Gecko)*Chrome/*Safari/*OPR/41.0* +Agent Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/55.0.2883.75 Safari/537.36 + Matched by: Mozilla/5.0 (*Windows NT 6.1*) AppleWebKit/* (KHTML* like Gecko) Chrome/55.*Safari/* +Agent Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/55.0.2883.87 Safari/537.36 + Matched by: Mozilla/5.0 (*Windows NT 6.1*) AppleWebKit/* (KHTML* like Gecko) Chrome/55.*Safari/* +Agent Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Dragon/36.1.1.21 Chrome/36.0.1985.97 Safari/537.36 + Matched by: * +Agent Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Iron/29.0.1600.1 Chrome/29.0.1600.1 Safari/537.36 + Matched by: * +Agent Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Maxthon/4.4.3.4000 Chrome/30.0.1599.101 Safari/537.36 + Matched by: * +Agent Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Maxthon/4.4.4.600 Chrome/30.0.1599.101 Safari/537.36 + Matched by: * +Agent Mozilla/5.0 (Windows NT 6.1; WOW64; rv:16.0) Gecko/20100101 Firefox/36.0 + Matched by: Mozilla/5.0 (*Windows NT 6.1*) Gecko* Firefox/36.0* +Agent Mozilla/5.0 (Windows NT 6.1; WOW64; rv:19.0) Gecko/20100101 Firefox/19.0 + Matched by: Mozilla/5.0 (*Windows NT 6.1*) Gecko* Firefox/* +Agent Mozilla/5.0 (Windows NT 6.1; WOW64; rv:2.0b11pre) Gecko/20110128 Firefox/4.0b11pre + Matched by: Mozilla/5.0 (*Windows NT 6.1*) Gecko* Firefox/* +Agent Mozilla/5.0 (Windows NT 6.1; WOW64; rv:2.0b7) Gecko/20100101 Firefox/4.0b7 + Matched by: Mozilla/5.0 (*Windows NT 6.1*) Gecko* Firefox/* +Agent Mozilla/5.0 (Windows NT 6.1; WOW64; rv:21.0) Gecko/20100101 Firefox/21.0 + Matched by: Mozilla/5.0 (*Windows NT 6.1*) Gecko* Firefox/* +Agent Mozilla/5.0 (Windows NT 6.1; WOW64; rv:22.0) Gecko/20100101 Firefox/22.0 + Matched by: Mozilla/5.0 (*Windows NT 6.1*) Gecko* Firefox/* +Agent Mozilla/5.0 (Windows NT 6.1; WOW64; rv:24.0) Gecko/20100101 Firefox/24.0 + Matched by: Mozilla/5.0 (*Windows NT 6.1*) Gecko* Firefox/* +Agent Mozilla/5.0 (Windows NT 6.1; WOW64; rv:25.0) Gecko/20100101 Firefox/25.0 + Matched by: Mozilla/5.0 (*Windows NT 6.1*) Gecko* Firefox/* +Agent Mozilla/5.0 (Windows NT 6.1; WOW64; rv:26.0) Gecko/20100101 Firefox/26.0 + Matched by: Mozilla/5.0 (*Windows NT 6.1*) Gecko* Firefox/* +Agent Mozilla/5.0 (Windows NT 6.1; WOW64; rv:27.0) Gecko/20100101 Firefox/27.0 + Matched by: Mozilla/5.0 (*Windows NT 6.1*) Gecko* Firefox/* +Agent Mozilla/5.0 (Windows NT 6.1; WOW64; rv:27.3) Gecko/20100101 Firefox/27.3 + Matched by: Mozilla/5.0 (*Windows NT 6.1*) Gecko* Firefox/* +Agent Mozilla/5.0 (Windows NT 6.1; WOW64; rv:28.0) Gecko/20100101 Firefox/28.0 + Matched by: Mozilla/5.0 (*Windows NT 6.1*) Gecko* Firefox/* +Agent Mozilla/5.0 (Windows NT 6.1; WOW64; rv:29.0) Gecko/20100101 Firefox/29.0 + Matched by: Mozilla/5.0 (*Windows NT 6.1*) Gecko* Firefox/* +Agent Mozilla/5.0 (Windows NT 6.1; WOW64; rv:31.0) Gecko/20100101 Firefox/31.0 + Matched by: Mozilla/5.0 (*Windows NT 6.1*) Gecko* Firefox/31.0* +Agent Mozilla/5.0 (Windows NT 6.1; WOW64; rv:31.0) Gecko/20130401 Firefox/31.0 + Matched by: Mozilla/5.0 (*Windows NT 6.1*) Gecko* Firefox/31.0* +Agent Mozilla/5.0 (Windows NT 6.1; WOW64; rv:33.0) Gecko/20100101 Firefox/33.0 + Matched by: Mozilla/5.0 (*Windows NT 6.1*) Gecko* Firefox/33.0* +Agent Mozilla/5.0 (Windows NT 6.1; WOW64; rv:34.0) Gecko/20100101 Firefox/34.0 + Matched by: Mozilla/5.0 (*Windows NT 6.1*) Gecko* Firefox/34.0* +Agent Mozilla/5.0 (Windows NT 6.1; WOW64; rv:35.0) Gecko/20100101 Firefox/35.0 + Matched by: Mozilla/5.0 (*Windows NT 6.1*) Gecko* Firefox/35.0* +Agent Mozilla/5.0 (Windows NT 6.1; WOW64; rv:36.0) Gecko/20100101 Firefox/36.0 + Matched by: Mozilla/5.0 (*Windows NT 6.1*) Gecko* Firefox/36.0* +Agent Mozilla/5.0 (Windows NT 6.1; WOW64; rv:37.0) Gecko/20100101 Firefox/37.0 + Matched by: Mozilla/5.0 (*Windows NT 6.1*) Gecko* Firefox/37.0* +Agent Mozilla/5.0 (Windows NT 6.1; WOW64; rv:38.0) Gecko/20100101 Firefox/38.0 + Matched by: Mozilla/5.0 (*Windows NT 6.1*) Gecko* Firefox/38.0* +Agent Mozilla/5.0 (Windows NT 6.1; WOW64; rv:40.0) Gecko/20100101 Firefox/40.1 + Matched by: Mozilla/5.0 (*Windows NT 6.1*) Gecko* Firefox/* +Agent Mozilla/5.0 (Windows NT 6.1; WOW64; rv:43.0) Gecko/20100101 Firefox/43.0 + Matched by: Mozilla/5.0 (*Windows NT 6.1*) Gecko* Firefox/43.0* +Agent Mozilla/5.0 (Windows NT 6.1; WOW64; rv:44.0) Gecko/20100101 Firefox/44.0 + Matched by: Mozilla/5.0 (*Windows NT 6.1*) Gecko* Firefox/44.0* +Agent Mozilla/5.0 (Windows NT 6.1; WOW64; rv:45.0) Gecko/20100101 Firefox/45.0 + Matched by: Mozilla/5.0 (*Windows NT 6.1*) Gecko* Firefox/45.0* +Agent Mozilla/5.0 (Windows NT 6.1; WOW64; rv:46.0) Gecko/20100101 Firefox/46.0 + Matched by: Mozilla/5.0 (*Windows NT 6.1*) Gecko* Firefox/46.0* +Agent Mozilla/5.0 (Windows NT 6.1; WOW64; rv:47.0) Gecko/20100101 Firefox/47.0 + Matched by: Mozilla/5.0 (*Windows NT 6.1*) Gecko* Firefox/47.0* +Agent Mozilla/5.0 (Windows NT 6.1; WOW64; rv:49.0) Gecko/20100101 Firefox/49.0 + Matched by: Mozilla/5.0 (*Windows NT 6.1*) Gecko* Firefox/49.0* +Agent Mozilla/5.0 (Windows NT 6.1; WOW64; rv:50.0) Gecko/20100101 Firefox/50.0 + Matched by: Mozilla/5.0 (*Windows NT 6.1*) Gecko* Firefox/50.0* +Agent Mozilla/5.0 (Windows NT 6.1; WOW64; Trident/7.0; AS; rv:11.0) like Gecko + Matched by: Mozilla/5.0 (*Windows NT 6.1*Trident/7.0*rv:11.0* +Agent Mozilla/5.0 (Windows NT 6.1; WOW64; Trident/7.0; CTL_IE11; rv:11.0) like Gecko + Matched by: Mozilla/5.0 (*Windows NT 6.1*Trident/7.0*rv:11.0* +Agent Mozilla/5.0 (Windows NT 6.1; WOW64; Trident/7.0; rv:11.0) like Gecko + Matched by: Mozilla/5.0 (*Windows NT 6.1*Trident/7.0*rv:11.0* +Agent Mozilla/5.0 (Windows NT 6.2) AppleWebKit/537.36 (KHTML like Gecko) Chrome/27.0.1453.116 Safari/537.36 + Matched by: Mozilla/5.0 (*Windows NT 6.2*) AppleWebKit/* (KHTML* like Gecko) Chrome/*Safari/* +Agent Mozilla/5.0 (Windows NT 6.2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/31.0.1650.63 Safari/537.36 QIHU 360SE; 360Spider + Matched by: Mozilla/5.0 (*Windows NT 6.2*) AppleWebKit/* (KHTML* like Gecko) Chrome/*Safari/* +Agent Mozilla/5.0 (Windows NT 6.2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/39.0.2171.99 Safari/537.36 + Matched by: Mozilla/5.0 (*Windows NT 6.2*) AppleWebKit/* (KHTML* like Gecko) Chrome/*Safari/* +Agent Mozilla/5.0 (Windows NT 6.2;en-US) AppleWebKit/537.36 (KHTML, live Gecko) Chrome/39.0.2206.79 Safari/537 + Matched by: * +Agent Mozilla/5.0 (Windows NT 6.2; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2477.75 Safari/537.36 + Matched by: Mozilla/5.0 (*Windows NT 6.2*) AppleWebKit/* (KHTML* like Gecko) Chrome/45.*Safari/* +Agent Mozilla/5.0 (Windows NT 6.2; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/54.0.2840.99 Safari/537.36 + Matched by: Mozilla/5.0 (*Windows NT 6.2*) AppleWebKit/* (KHTML* like Gecko) Chrome/54.*Safari/* +Agent Mozilla/5.0 (Windows NT 6.2; Win64; x64; rv:27.0) Gecko/20100101 Firefox/27.0 + Matched by: Mozilla/5.0 (*Windows NT 6.2*) Gecko* Firefox/* +Agent Mozilla/5.0 (Windows NT 6.2; Win64; x64; rv:36.0) Gecko/20100101 Firefox/36.0 + Matched by: Mozilla/5.0 (*Windows NT 6.2*) Gecko* Firefox/36.0* +Agent Mozilla/5.0 (Windows NT 6.2; WOW64) AppleWebKit/537.31 (KHTML, like Gecko) Chrome/26.0.1410.58 Safari/537.31 + Matched by: Mozilla/5.0 (*Windows NT 6.2*) AppleWebKit/* (KHTML* like Gecko) Chrome/*Safari/* +Agent Mozilla/5.0 (Windows NT 6.2; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/27.0.1453.94 Safari/537.36 + Matched by: Mozilla/5.0 (*Windows NT 6.2*) AppleWebKit/* (KHTML* like Gecko) Chrome/*Safari/* +Agent Mozilla/5.0 (Windows NT 6.2; WOW64) AppleWebKit/537.36 (KHTML like Gecko) Chrome/28.0.1469.0 Safari/537.36 + Matched by: Mozilla/5.0 (*Windows NT 6.2*) AppleWebKit/* (KHTML* like Gecko) Chrome/*Safari/* +Agent Mozilla/5.0 (Windows NT 6.2; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/29.0.1547.0 Safari/537.36 + Matched by: Mozilla/5.0 (*Windows NT 6.2*) AppleWebKit/* (KHTML* like Gecko) Chrome/*Safari/* +Agent Mozilla/5.0 (Windows NT 6.2; WOW64) AppleWebKit/537.36 (KHTML like Gecko) Chrome/30.0.1599.69 Safari/537.36 + Matched by: Mozilla/5.0 (*Windows NT 6.2*) AppleWebKit/* (KHTML* like Gecko) Chrome/*Safari/* +Agent Mozilla/5.0 (Windows NT 6.2; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/31.0.1650.63 Safari/537.36 + Matched by: Mozilla/5.0 (*Windows NT 6.2*) AppleWebKit/* (KHTML* like Gecko) Chrome/*Safari/* +Agent Mozilla/5.0 (Windows NT 6.2; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/32.0.1700.107 Safari/537.36 OPR/19.0.1326.63 (Edition Campaign 21) + Matched by: Mozilla/5.0 (*Windows NT 6.2*) AppleWebKit/* (KHTML* like Gecko) Chrome/*Safari/* +Agent Mozilla/5.0 (Windows NT 6.2; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/33.0.1750.5 Safari/537.36 + Matched by: Mozilla/5.0 (*Windows NT 6.2*) AppleWebKit/* (KHTML* like Gecko) Chrome/*Safari/* +Agent Mozilla/5.0 (Windows NT 6.2; WOW64) AppleWebKit/537.36 (KHTML like Gecko) Chrome/34.0.1847.116 Safari/537.36 + Matched by: Mozilla/5.0 (*Windows NT 6.2*) AppleWebKit/* (KHTML* like Gecko) Chrome/*Safari/* +Agent Mozilla/5.0 (Windows NT 6.2; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/39.0.2171.95 Safari/537.36 + Matched by: Mozilla/5.0 (*Windows NT 6.2*) AppleWebKit/* (KHTML* like Gecko) Chrome/*Safari/* +Agent Mozilla/5.0 (Windows NT 6.2; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/41.0.2227.1 Safari/537.36 + Matched by: Mozilla/5.0 (*Windows NT 6.2*) AppleWebKit/* (KHTML* like Gecko) Chrome/*Safari/* +Agent Mozilla/5.0 (Windows NT 6.2; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/46.0.2490.80 Safari/537.36 + Matched by: Mozilla/5.0 (*Windows NT 6.2*) AppleWebKit/* (KHTML* like Gecko) Chrome/46.*Safari/* +Agent Mozilla/5.0 (Windows NT 6.2; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/54.0.2840.99 Safari/537.36 + Matched by: Mozilla/5.0 (*Windows NT 6.2*) AppleWebKit/* (KHTML* like Gecko) Chrome/54.*Safari/* +Agent Mozilla/5.0 (Windows NT 6.2; WOW64; rv:19.0) Gecko/20100101 Firefox/19.0 + Matched by: Mozilla/5.0 (*Windows NT 6.2*) Gecko* Firefox/* +Agent Mozilla/5.0 (Windows NT 6.2; WOW64; rv:26.0) Gecko/20100101 Firefox/26.0 + Matched by: Mozilla/5.0 (*Windows NT 6.2*) Gecko* Firefox/* +Agent Mozilla/5.0 (Windows NT 6.2; WOW64; rv:29.0) Gecko/20100101 Firefox/29.0 + Matched by: Mozilla/5.0 (*Windows NT 6.2*) Gecko* Firefox/* +Agent Mozilla/5.0 (Windows NT 6.2; WOW64; rv:34.0) Gecko/20100101 Firefox/34.0 + Matched by: Mozilla/5.0 (*Windows NT 6.2*) Gecko* Firefox/34.0* +Agent Mozilla/5.0 (Windows NT 6.2; WOW64; rv:35.0) Gecko/20100101 Firefox/35.0 + Matched by: Mozilla/5.0 (*Windows NT 6.2*) Gecko* Firefox/35.0* +Agent Mozilla/5.0 (Windows NT 6.2; WOW64; rv:36.0) Gecko/20100101 Firefox/36.0 + Matched by: Mozilla/5.0 (*Windows NT 6.2*) Gecko* Firefox/36.0* +Agent Mozilla/5.0 (Windows NT 6.2; WOW64; rv:44.0) Gecko/20100101 Firefox/44.0 + Matched by: Mozilla/5.0 (*Windows NT 6.2*) Gecko* Firefox/44.0* +Agent Mozilla/5.0 (Windows NT 6.2; WOW64; rv:49.0) Gecko/20100101 Firefox/49.0 + Matched by: Mozilla/5.0 (*Windows NT 6.2*) Gecko* Firefox/49.0* +Agent Mozilla/5.0 (Windows NT 6.2; WOW64; rv:50.0) Gecko/20100101 Firefox/50.0 + Matched by: Mozilla/5.0 (*Windows NT 6.2*) Gecko* Firefox/50.0* +Agent Mozilla/5.0 (Windows NT 6.2; WOW64; Trident/7.0; rv:11.0) like Gecko + Matched by: Mozilla/5.0 (*Windows NT 6.2*Trident/7.0*rv:11.0* +Agent Mozilla/5.0 (Windows NT 6.3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/39.0.2171.95 Safari/537.36 + Matched by: Mozilla/5.0 (*Windows NT 6.3*) AppleWebKit/* (KHTML* like Gecko) Chrome/*Safari/* +Agent Mozilla/5.0 (Windows NT 6.3; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/37.0.2049.0 Safari/537.36 + Matched by: Mozilla/5.0 (*Windows NT 6.3*) AppleWebKit/* (KHTML* like Gecko) Chrome/*Safari/* +Agent Mozilla/5.0 (Windows NT 6.3; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/41.0.2220.0 Safari/537.36 + Matched by: Mozilla/5.0 (*Windows NT 6.3*) AppleWebKit/* (KHTML* like Gecko) Chrome/*Safari/* +Agent Mozilla/5.0 (Windows NT 6.3; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/54.0.2840.71 Safari/537.36 + Matched by: Mozilla/5.0 (*Windows NT 6.3*) AppleWebKit/* (KHTML* like Gecko) Chrome/54.*Safari/* +Agent Mozilla/5.0 (Windows NT 6.3; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/54.0.2840.87 Safari/537.36 + Matched by: Mozilla/5.0 (*Windows NT 6.3*) AppleWebKit/* (KHTML* like Gecko) Chrome/54.*Safari/* +Agent Mozilla/5.0 (Windows NT 6.3; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/54.0.2840.99 Safari/537.36 + Matched by: Mozilla/5.0 (*Windows NT 6.3*) AppleWebKit/* (KHTML* like Gecko) Chrome/54.*Safari/* +Agent Mozilla/5.0 (Windows NT 6.3; Win64; x64; rv:49.0) Gecko/20100101 Firefox/49.0 + Matched by: Mozilla/5.0 (*Windows NT 6.3*) Gecko* Firefox/49.0* +Agent Mozilla/5.0 (Windows NT 6.3; Win64; x64; Trident/7.0; rv:11.0) like Gecko + Matched by: Mozilla/5.0 (*Windows NT 6.3*Trident/7.0*rv:11.0* +Agent Mozilla/5.0 (Windows NT 6.3; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/31.0.1650.63 Safari/537.36 + Matched by: Mozilla/5.0 (*Windows NT 6.3*) AppleWebKit/* (KHTML* like Gecko) Chrome/*Safari/* +Agent Mozilla/5.0 (Windows NT 6.3; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/32.0.1700.72 Safari/537.36 + Matched by: Mozilla/5.0 (*Windows NT 6.3*) AppleWebKit/* (KHTML* like Gecko) Chrome/*Safari/* +Agent Mozilla/5.0 (Windows NT 6.3; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/32.0.1700.76 Safari/537.36 + Matched by: Mozilla/5.0 (*Windows NT 6.3*) AppleWebKit/* (KHTML* like Gecko) Chrome/*Safari/* +Agent Mozilla/5.0 (Windows NT 6.3; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/34.0.1788.0 Safari/537.36 + Matched by: Mozilla/5.0 (*Windows NT 6.3*) AppleWebKit/* (KHTML* like Gecko) Chrome/*Safari/* +Agent Mozilla/5.0 (Windows NT 6.3; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/34.0.1847.131 Safari/537.36 + Matched by: Mozilla/5.0 (*Windows NT 6.3*) AppleWebKit/* (KHTML* like Gecko) Chrome/*Safari/* +Agent Mozilla/5.0 (Windows NT 6.3; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/34.0.1847.137 Safari/537.36 + Matched by: Mozilla/5.0 (*Windows NT 6.3*) AppleWebKit/* (KHTML* like Gecko) Chrome/*Safari/* +Agent Mozilla/5.0 (Windows NT 6.3; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/36.0.1985.143 Safari/537.36 + Matched by: Mozilla/5.0 (*Windows NT 6.3*) AppleWebKit/* (KHTML* like Gecko) Chrome/*Safari/* +Agent Mozilla/5.0 (Windows NT 6.3; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/39.0.2171.71 Safari/537.36 + Matched by: Mozilla/5.0 (*Windows NT 6.3*) AppleWebKit/* (KHTML* like Gecko) Chrome/*Safari/* +Agent Mozilla/5.0 (Windows NT 6.3; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/39.0.2171.95 Safari/537.36 + Matched by: Mozilla/5.0 (*Windows NT 6.3*) AppleWebKit/* (KHTML* like Gecko) Chrome/*Safari/* +Agent Mozilla/5.0 (Windows NT 6.3; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/40.0.2214.115 Safari/537.36 + Matched by: Mozilla/5.0 (*Windows NT 6.3*) AppleWebKit/* (KHTML* like Gecko) Chrome/*Safari/* +Agent Mozilla/5.0 (Windows NT 6.3; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/41.0.2272.118 Safari/537.36 + Matched by: Mozilla/5.0 (*Windows NT 6.3*) AppleWebKit/* (KHTML* like Gecko) Chrome/*Safari/* +Agent Mozilla/5.0 (Windows NT 6.3; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/42.0.2311.152 Safari/537.36 + Matched by: Mozilla/5.0 (*Windows NT 6.3*) AppleWebKit/* (KHTML* like Gecko) Chrome/*Safari/* +Agent Mozilla/5.0 (Windows NT 6.3; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/43.0.2357.65 Safari/537.36 + Matched by: Mozilla/5.0 (*Windows NT 6.3*) AppleWebKit/* (KHTML* like Gecko) Chrome/*Safari/* +Agent Mozilla/5.0 (Windows NT 6.3; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.101 Safari/537.36 + Matched by: Mozilla/5.0 (*Windows NT 6.3*) AppleWebKit/* (KHTML* like Gecko) Chrome/45.*Safari/* +Agent Mozilla/5.0 (Windows NT 6.3; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/47.0.2526.111 Safari/537.36 + Matched by: Mozilla/5.0 (*Windows NT 6.3*) AppleWebKit/* (KHTML* like Gecko) Chrome/47.*Safari/* +Agent Mozilla/5.0 (Windows NT 6.3; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/48.0.2564.109 Safari/537.36 + Matched by: Mozilla/5.0 (*Windows NT 6.3*) AppleWebKit/* (KHTML* like Gecko) Chrome/48.*Safari/* +Agent Mozilla/5.0 (Windows NT 6.3; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/48.0.2564.116 Safari/537.36 + Matched by: Mozilla/5.0 (*Windows NT 6.3*) AppleWebKit/* (KHTML* like Gecko) Chrome/48.*Safari/* +Agent Mozilla/5.0 (Windows NT 6.3; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/48.0.2564.97 Safari/537.36 + Matched by: Mozilla/5.0 (*Windows NT 6.3*) AppleWebKit/* (KHTML* like Gecko) Chrome/48.*Safari/* +Agent Mozilla/5.0 (Windows NT 6.3; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/54.0.2840.71 Safari/537.36 + Matched by: Mozilla/5.0 (*Windows NT 6.3*) AppleWebKit/* (KHTML* like Gecko) Chrome/54.*Safari/* +Agent Mozilla/5.0 (Windows NT 6.3; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/54.0.2840.99 Safari/537.36 + Matched by: Mozilla/5.0 (*Windows NT 6.3*) AppleWebKit/* (KHTML* like Gecko) Chrome/54.*Safari/* +Agent Mozilla/5.0 (Windows NT 6.3; WOW64; rv:26.0) Gecko/20100101 Firefox/26.0 + Matched by: Mozilla/5.0 (*Windows NT 6.3*) Gecko* Firefox/* +Agent Mozilla/5.0 (Windows NT 6.3; WOW64; rv:28.0) Gecko/20100101 Firefox/28.0 + Matched by: Mozilla/5.0 (*Windows NT 6.3*) Gecko* Firefox/* +Agent Mozilla/5.0 (Windows NT 6.3; WOW64; rv:29.0) Gecko/20100101 Firefox/29.0 + Matched by: Mozilla/5.0 (*Windows NT 6.3*) Gecko* Firefox/* +Agent Mozilla/5.0 (Windows NT 6.3; WOW64; rv:31.0) Gecko/20100101 Firefox/31.0 + Matched by: Mozilla/5.0 (*Windows NT 6.3*) Gecko* Firefox/31.0* +Agent Mozilla/5.0 (Windows NT 6.3; WOW64; rv:32.0) Gecko/20100101 Firefox/32.0 + Matched by: Mozilla/5.0 (*Windows NT 6.3*) Gecko* Firefox/32.0* +Agent Mozilla/5.0 (Windows NT 6.3; WOW64; rv:34.0) Gecko/20100101 Firefox/34.0 + Matched by: Mozilla/5.0 (*Windows NT 6.3*) Gecko* Firefox/34.0* +Agent Mozilla/5.0 (Windows NT 6.3; WOW64; rv:35.0) Gecko/20100101 Firefox/35.0 + Matched by: Mozilla/5.0 (*Windows NT 6.3*) Gecko* Firefox/35.0* +Agent Mozilla/5.0 (Windows NT 6.3; WOW64; rv:37.0) Gecko/20100101 Firefox/37.0 + Matched by: Mozilla/5.0 (*Windows NT 6.3*) Gecko* Firefox/37.0* +Agent Mozilla/5.0 (Windows NT 6.3; WOW64; rv:43.0) Gecko/20100101 Firefox/43.0 + Matched by: Mozilla/5.0 (*Windows NT 6.3*) Gecko* Firefox/43.0* +Agent Mozilla/5.0 (Windows NT 6.3; WOW64; rv:44.0) Gecko/20100101 Firefox/44.0 + Matched by: Mozilla/5.0 (*Windows NT 6.3*) Gecko* Firefox/44.0* +Agent Mozilla/5.0 (Windows NT 6.3; WOW64; rv:45.0) Gecko/20100101 Firefox/45.0 + Matched by: Mozilla/5.0 (*Windows NT 6.3*) Gecko* Firefox/45.0* +Agent Mozilla/5.0 (Windows NT 6.3; WOW64; rv:49.0) Gecko/20100101 Firefox/49.0 + Matched by: Mozilla/5.0 (*Windows NT 6.3*) Gecko* Firefox/49.0* +Agent Mozilla/5.0 (Windows NT 6.3; WOW64; rv:50.0) Gecko/20100101 Firefox/50.0 + Matched by: Mozilla/5.0 (*Windows NT 6.3*) Gecko* Firefox/50.0* +Agent Mozilla/5.0 (Windows NT 6.3; WOW64; Trident/7.0; rv:11.0) like Gecko + Matched by: Mozilla/5.0 (*Windows NT 6.3*Trident/7.0*rv:11.0* +Agent Mozilla/5.0 (Windows NT 6.3; WOW64; Trident/7.0; Touch; rv:11.0) like Gecko + Matched by: Mozilla/5.0 (*Windows NT 6.3*Trident/7.0*Touch*rv:11.0*)* +Agent Mozilla/5.0 (Windows NT 8.1; WOW64; rv:48.0) Gecko/20100101 Firefox/48.0 + Matched by: * +Agent Mozilla/5.0 (Windows; U; MSIE 7.0; Windows NT 6.0; en-US) + Matched by: Mozilla/5.0 (*MSIE 7.0* +Agent Mozilla/5.0 (Windows; U; MSIE 9.0; Windows NT 9.0; en-US) + Matched by: * +Agent Mozilla/5.0 (Windows; U; MSIE 9.0; WIndows NT 9.0; en-US) + Matched by: * +Agent Mozilla/5.0 (Windows; U; Windows NT 5.0; en-US; rv:1.7.12) Gecko/20050915 Firefox/1.0.7 + Matched by: * +Agent Mozilla/5.0 (Windows; U; Windows NT 5.1; en; rv:1.9.0.13) Gecko/2009073022 Firefox/3.5.2 (.NET CLR 3.5.30729) SurveyBot/2.3 (DomainTools) + Matched by: * +Agent Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US) AppleWebKit/532.1 (KHTML, like Gecko)Chrome/4.0.219.6 Safari/532.1 + Matched by: * +Agent Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US) AppleWebKit/533.4 (KHTML, like Gecko) Chrome/5.0.375.99 Safari/533.4 + Matched by: Mozilla/5.0 (*Windows*) AppleWebKit/* (KHTML* like Gecko) Chrome/*Safari/* +Agent Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US) AppleWebKit/534.16 (KHTML, like Gecko) Chrome/10.0.634.0 Safari/534.16 + Matched by: Mozilla/5.0 (*Windows*) AppleWebKit/* (KHTML* like Gecko) Chrome/*Safari/* +Agent Mozilla/5.0 (Windows; U; Windows NT 5.1; en-us; rv:1.7.12) Gecko/20050919 Firefox/1.0.7 + Matched by: * +Agent Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9.0.1) Gecko/2008070208 Firefox/3.0.1 + Matched by: * +Agent Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9.1.6) Gecko/20091201 Firefox/3.5.6 (.NET CLR 2.0.50727; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729) + Matched by: * +Agent Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9.2.12) Gecko/20101026 Firefox/3.6.12 + Matched by: * +Agent Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9.2.8) Gecko/20100721 Firefox/3.6.8 + Matched by: * +Agent Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9.2) Gecko/20100115 Firefox/3.6 + Matched by: * +Agent Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:2.0.1) Gecko/20110606 Firefox/4.0.1 + Matched by: * +Agent Mozilla/5.0 (Windows; U; Windows NT 5.1; it; rv:1.8.1.11) Gecko/20071127 Firefox/2.0.0.11 + Matched by: * +Agent Mozilla/5.0 (Windows; U; Windows NT 5.1; pt-PT; rv:1.9.1.2) Gecko/20090729 Firefox/3.5.2 (.NET CLR 3.5.30729) + Matched by: * +Agent Mozilla/5.0 (Windows; U; Windows NT 5.1; ru; rv:1.9.0.7) Gecko/2009021910 Firefox/3.0.7 (.NET CLR 3.5.30729) + Matched by: * +Agent Mozilla/5.0 (Windows; U; Windows NT 5.1; ru; rv:1.9.2.26) Gecko/20120128 Firefox/3.6.26 GTB7.1 ( .NET CLR 3.5.30729) + Matched by: * +Agent Mozilla/5.0 (Windows; U; Windows NT 5.1; rv:1.7.3) Gecko/20041001 Firefox/0.10.1 + Matched by: * +Agent Mozilla/5.0 (Windows; U; Windows NT 5.1; zh-CN; rv:1.9.2.2) Gecko/20100316 Firefox/3.6.2 (.NET CLR 3.5.30729) + Matched by: * +Agent Mozilla/5.0 (Windows; U; Windows NT 5.2; en-US) AppleWebKit/530.5 (KHTML, like Gecko) Chrome/2.0.172.30 Safari/530.5 + Matched by: Mozilla/5.0 (*Windows*) AppleWebKit/* (KHTML* like Gecko) Chrome/*Safari/* +Agent Mozilla/5.0 (Windows; U; Windows NT 5.2; en-US) AppleWebKit/534.17 (KHTML, like Gecko) Chrome/11.0.652.0 Safari/534.17 + Matched by: Mozilla/5.0 (*Windows*) AppleWebKit/* (KHTML* like Gecko) Chrome/*Safari/* +Agent Mozilla/5.0 (Windows; U; Windows NT 5.2; en-US; rv:1.9.1.3) Gecko/20090824 Firefox/3.5.3(.NET CLR 3.5.30729) + Matched by: * +Agent Mozilla/5.0 (Windows; U; Windows NT 6.0; en-US; rv:1.9.0.3) Gecko/2008092417 Firefox/3.0.4 + Matched by: Mozilla/5.0 (*Windows NT 6.0*) Gecko* Firefox/* +Agent Mozilla/5.0 (Windows; U; Windows NT 6.0; en-US; rv:1.9.2.3) Gecko/20100401 Firefox/3.6.3 GTB6 (.NET CLR 3.5.30729) + Matched by: Mozilla/5.0 (*Windows NT 6.0*) Gecko* Firefox/* +Agent Mozilla/5.0 (Windows; U; Windows NT 6.1; en; rv:1.9.1.3) Gecko/20090824 Firefox/3.5.3(.NET CLR 3.5.30729) + Matched by: Mozilla/5.0 (*Windows NT 6.1*) Gecko* Firefox/* +Agent Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US) AppleWebKit/533.19.4 (KHTML, like Gecko) Version/5.0.2 Safari/533.18.5 + Matched by: Mozilla/5.0 (*Windows NT 6.1*) AppleWebKit/* (KHTML* like Gecko) *Version/* Safari/* +Agent Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US) AppleWebKit/534.13 (KHTML, like Gecko) Chrome/9.0.597.107 Safari/534.13 BuiltWith/1.2 + Matched by: Mozilla/5.0 (*Windows NT 6.1*) AppleWebKit/* (KHTML* like Gecko) Chrome/*Safari/* +Agent =Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US) AppleWebKit/534.16 (KHTML, like Gecko) Chrome/10.0.648.204 Safari/534.16 + Matched by: * +Agent Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US; rv:1.9.1.1) Gecko/20090718 Firefox/3.5.1 + Matched by: Mozilla/5.0 (*Windows NT 6.1*) Gecko* Firefox/* +Agent Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US; rv:1.9.2.23) Gecko/20110920 Firefox/3.6.23 + Matched by: Mozilla/5.0 (*Windows NT 6.1*) Gecko* Firefox/* +Agent Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US; rv:1.9.2.28) + Matched by: * +Agent Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US; rv:1.9.2.28) Gecko/20120306 Firefox/3.6.28 + Matched by: Mozilla/5.0 (*Windows NT 6.1*) Gecko* Firefox/* +Agent Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US; rv:1.9.2b1) Gecko/20091014 Firefox/3.6b1 GTB5 + Matched by: Mozilla/5.0 (*Windows NT 6.1*) Gecko* Firefox/* +Agent Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US; rv:1.9.2b5) Gecko/20091204 Firefox/3.6b5 + Matched by: Mozilla/5.0 (*Windows NT 6.1*) Gecko* Firefox/* +Agent Mozilla/5.0 (Windows; U; Windows NT 6.1; ru; rv:1.9.2.2) Gecko/20100316 Firefox/3.6.2 WebMoney Advisor + Matched by: Mozilla/5.0 (*Windows NT 6.1*) Gecko* Firefox/* +Agent Mozilla/5.0 (Windows; U; Windows NT 6.1; ru; rv:1.9.2.8) Gecko/20100722 Firefox/3.6.8 + Matched by: Mozilla/5.0 (*Windows NT 6.1*) Gecko* Firefox/* +Agent Mozilla/5.0 (Windows; U; Windows NT 6.1; rv:2.2) Gecko/20110201 + Matched by: Mozilla/5.0 (*Windows NT 6.1*) Gecko*/* +Agent Mozilla/5.0 (Windows; Windows NT 5.1; en-US) Firefox/3.5.0 + Matched by: * +Agent Mozilla/5.0 (X11; CrOS i686 1660.57.0) AppleWebKit/535.19 (KHTML, like Gecko) Chrome/18.0.1025.46 Safari/535.19 + Matched by: * +Agent Mozilla/5.0 (X11; CrOS x86_64 6310.68.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/39.0.2171.96 Safari/537.36 + Matched by: * +Agent Mozilla/5.0 (X11; Fedora; Linux x86_64; rv:49.0) Gecko/20100101 Firefox/49.0 + Matched by: Mozilla/5.0 (*Linux*) Gecko* Firefox/49.0* +Agent Mozilla/5.0 (X11; Fedora; Linux x86_64; rv:50.0) Gecko/20100101 Firefox/50.0 + Matched by: Mozilla/5.0 (*Linux*) Gecko* Firefox/50.0* +Agent Mozilla/5.0 (X11; FreeBSD amd64; rv:45.0) Gecko/20100101 Firefox/45.0 + Matched by: * +Agent Mozilla/5.0 (X11; Linux i686) AppleWebKit/534.30 (KHTML, like Gecko) Ubuntu/10.10 Chromium/12.0.742.112 Chrome/12.0.742.112 Safari/534.30 + Matched by: * +Agent Mozilla/5.0 (X11; Linux i686) AppleWebKit/534.34 (KHTML, like Gecko) Qt/4.8.4 Safari/534.34 + Matched by: * +Agent Mozilla/5.0 (X11; Linux i686) AppleWebKit/535.11 (KHTML, like Gecko) Ubuntu/11.10 Chromium/17.0.963.65 Chrome/17.0.963.65 Safari/535.11 + Matched by: * +Agent Mozilla/5.0 (X11; Linux i686) AppleWebKit/535.1 (KHTML, like Gecko) Ubuntu/10.04 Chromium/14.0.813.0 Chrome/14.0.813.0 Safari/535.1 + Matched by: * +Agent Mozilla/5.0 (X11; Linux i686) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/30.0.1599.66 Safari/537.36 + Matched by: Mozilla/5.0 (*Linux*) AppleWebKit/* (KHTML* like Gecko) Chrome/*Safari/* +Agent Mozilla/5.0 (X11; Linux i686) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/31.0.1650.63 Safari/537.36 + Matched by: Mozilla/5.0 (*Linux*) AppleWebKit/* (KHTML* like Gecko) Chrome/*Safari/* +Agent Mozilla/5.0 (X11; Linux i686) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/41.0.2303.22 Safari/537.36 + Matched by: Mozilla/5.0 (*Linux*) AppleWebKit/* (KHTML* like Gecko) Chrome/*Safari/* +Agent Mozilla/5.0 (X11; Linux i686) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/42.0.2315.18 Safari/537.36 + Matched by: Mozilla/5.0 (*Linux*) AppleWebKit/* (KHTML* like Gecko) Chrome/*Safari/* +Agent Mozilla/5.0 (X11; Linux i686) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/48.0.2564.116 Safari/537.36 + Matched by: Mozilla/5.0 (*Linux*) AppleWebKit/* (KHTML* like Gecko) Chrome/48.*Safari/* +Agent Mozilla/5.0 (X11; Linux i686) AppleWebKit/537.36 (KHTML, like Gecko) Ubuntu Chromium/31.0.1650.63 Chrome/31.0.1650.63 Safari/537.36 + Matched by: * +Agent Mozilla/5.0 (X11; Linux i686 on x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/34.0.1870.93 Safari/537.36 + Matched by: Mozilla/5.0 (*Linux*) AppleWebKit/* (KHTML* like Gecko) Chrome/*Safari/* +Agent Mozilla/5.0 (X11; Linux i686 on x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/44.0.2447.81 Safari/537.36 + Matched by: Mozilla/5.0 (*Linux*) AppleWebKit/* (KHTML* like Gecko) Chrome/*Safari/* +Agent Mozilla/5.0 (X11; Linux i686 on x86_64; rv:28.0) Gecko/20100101 Firefox/28.0 + Matched by: Mozilla/5.0 (*Linux*) Gecko* Firefox/* +Agent Mozilla/5.0 (X11; Linux i686; rv:17.0) Gecko/20100101 Firefox/17.0 + Matched by: Mozilla/5.0 (*Linux*) Gecko* Firefox/* +Agent Mozilla/5.0 (X11; Linux i686; rv:21.0) Gecko/20100101 Firefox/21.0 + Matched by: Mozilla/5.0 (*Linux*) Gecko* Firefox/* +Agent Mozilla/5.0 (X11; Linux i686; rv:3.0) Gecko/20100101 Goanna/20161003 PaleMoon/27.0.0b1 + Matched by: * +Agent Mozilla/5.0 (X11; Linux i686; rv:45.0) Gecko/20100101 Firefox/45.0 + Matched by: Mozilla/5.0 (*Linux*) Gecko* Firefox/45.0* +Agent Mozilla/5.0 (X11; Linux ppc; rv:5.0) Gecko/20100101 Firefox/5.0 + Matched by: Mozilla/5.0 (*Linux*) Gecko* Firefox/* +Agent Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/534.24 (KHTML, like Gecko) Chrome/11.0.696.34 Safari/534.24 + Matched by: Mozilla/5.0 (*Linux*) AppleWebKit/* (KHTML* like Gecko) Chrome/*Safari/* +Agent Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/534.24 (KHTML, like Gecko) Chrome/11.0.696.3 Safari/534.24 + Matched by: Mozilla/5.0 (*Linux*) AppleWebKit/* (KHTML* like Gecko) Chrome/*Safari/* +Agent Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/534.30 (KHTML, like Gecko) Ubuntu/10.10 Chromium/12.0.742.112 Chrome/12.0.742.112 Safari/534.30 + Matched by: * +Agent Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/534.34 (KHTML, like Gecko) Qt/4.8.2 + Matched by: * +Agent Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/534.34 (KHTML, like Gecko) Qt/4.8.2 Safari/534.34 + Matched by: * +Agent Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/535.11 (KHTML, like Gecko) Ubuntu/11.04 Chromium/17.0.963.65 Chrome/17.0.963.65 Safari/535.11 + Matched by: * +Agent Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/535.19 (KHTML, like Gecko) Ubuntu/11.10 Chromium/18.0.1025.142 Chrome/18.0.1025.142 Safari/535.19 + Matched by: * +Agent Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/535.1 (KHTML, like Gecko) Chrome/14.0.803.0 Safari/535.1 + Matched by: Mozilla/5.0 (*Linux*) AppleWebKit/* (KHTML* like Gecko) Chrome/*Safari/* +Agent Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/536.5 (KHTML, like Gecko) Chrome/19.0.1084.9 Safari/536.5 + Matched by: Mozilla/5.0 (*Linux*) AppleWebKit/* (KHTML* like Gecko) Chrome/*Safari/* +Agent Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/28.0.1500.71 Safari/537.36 + Matched by: Mozilla/5.0 (*Linux*) AppleWebKit/* (KHTML* like Gecko) Chrome/*Safari/* +Agent Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/30.0.1599.114 Safari/537.36 + Matched by: Mozilla/5.0 (*Linux*) AppleWebKit/* (KHTML* like Gecko) Chrome/*Safari/* +Agent Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/31.0.1650.57 Safari/537.36 + Matched by: Mozilla/5.0 (*Linux*) AppleWebKit/* (KHTML* like Gecko) Chrome/*Safari/* +Agent Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/31.0.1650.63 Safari/537.36 + Matched by: Mozilla/5.0 (*Linux*) AppleWebKit/* (KHTML* like Gecko) Chrome/*Safari/* +Agent Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/33.0.1787.44 Safari/537.36 + Matched by: Mozilla/5.0 (*Linux*) AppleWebKit/* (KHTML* like Gecko) Chrome/*Safari/* +Agent Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/36.0.1985.125 Safari/537.36 + Matched by: Mozilla/5.0 (*Linux*) AppleWebKit/* (KHTML* like Gecko) Chrome/*Safari/* +Agent Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/37.0.2062.120 Safari/537.36 + Matched by: Mozilla/5.0 (*Linux*) AppleWebKit/* (KHTML* like Gecko) Chrome/*Safari/* +Agent Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/39.0.2171.71 Safari/537.36 + Matched by: Mozilla/5.0 (*Linux*) AppleWebKit/* (KHTML* like Gecko) Chrome/*Safari/* +Agent Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/39.0.2171.99 Safari/537.36 + Matched by: Mozilla/5.0 (*Linux*) AppleWebKit/* (KHTML* like Gecko) Chrome/*Safari/* +Agent Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/43.0.2357.130 Safari/537.36 + Matched by: Mozilla/5.0 (*Linux*) AppleWebKit/* (KHTML* like Gecko) Chrome/*Safari/* +Agent Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/47.0.2526.111 Safari/537.36 + Matched by: Mozilla/5.0 (*Linux*) AppleWebKit/* (KHTML* like Gecko) Chrome/47.*Safari/* +Agent Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/48.0.2564.97 Safari/537.36 + Matched by: Mozilla/5.0 (*Linux*) AppleWebKit/* (KHTML* like Gecko) Chrome/48.*Safari/* +Agent Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/49.0.2623.75 Safari/537.36 Google Favicon + Matched by: Mozilla/5.0 (*Linux*) AppleWebKit/* (KHTML* like Gecko) Chrome/49.*Safari/* +Agent Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/50.0.2661.75 Safari/537.36 + Matched by: Mozilla/5.0 (*Linux*) AppleWebKit/* (KHTML* like Gecko) Chrome/50.*Safari/* +Agent Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/50.0.2661.86 Safari/537.36 + Matched by: Mozilla/5.0 (*Linux*) AppleWebKit/* (KHTML* like Gecko) Chrome/50.*Safari/* +Agent Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/53.0.2785.116 Safari/537.36 + Matched by: Mozilla/5.0 (*Linux*) AppleWebKit/* (KHTML* like Gecko) Chrome/53.*Safari/* +Agent Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/53.0.2785.143 Safari/537.36 + Matched by: Mozilla/5.0 (*Linux*) AppleWebKit/* (KHTML* like Gecko) Chrome/53.*Safari/* +Agent Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/53.0.2785.89 Safari/537.36 + Matched by: Mozilla/5.0 (*Linux*) AppleWebKit/* (KHTML* like Gecko) Chrome/53.*Safari/* +Agent Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/54.0.2840.100 Safari/537.36 + Matched by: Mozilla/5.0 (*Linux*) AppleWebKit/* (KHTML* like Gecko) Chrome/54.*Safari/* +Agent Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/54.0.2840.59 Safari/537.36 + Matched by: Mozilla/5.0 (*Linux*) AppleWebKit/* (KHTML* like Gecko) Chrome/54.*Safari/* +Agent Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/54.0.2840.71 Safari/537.36 + Matched by: Mozilla/5.0 (*Linux*) AppleWebKit/* (KHTML* like Gecko) Chrome/54.*Safari/* +Agent Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/54.0.2840.90 Safari/537.36 + Matched by: Mozilla/5.0 (*Linux*) AppleWebKit/* (KHTML* like Gecko) Chrome/54.*Safari/* +Agent Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/55.0.2883.75 Safari/537.36 + Matched by: Mozilla/5.0 (*Linux*) AppleWebKit/* (KHTML* like Gecko) Chrome/55.*Safari/* +Agent Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/55.0.2883.87 Safari/537.36 + Matched by: Mozilla/5.0 (*Linux*) AppleWebKit/* (KHTML* like Gecko) Chrome/55.*Safari/* +Agent Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko; Google Web Preview) Chrome/27.0.1453 Safari/537.36 + Matched by: * +Agent Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Ubuntu Chromium/31.0.1650.63 Chrome/31.0.1650.63 Safari/537.36 + Matched by: * +Agent Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Ubuntu Chromium/53.0.2785.143 Chrome/53.0.2785.143 Safari/537.36 + Matched by: Mozilla/5.0 (*Linux*) AppleWebKit/* (KHTML* like Gecko)*Chromium/53.*Chrome/*Safari/* +Agent Mozilla/5.0 (X11; Linux x86_64) Gecko Firefox/5.0 + Matched by: Mozilla/5.0 (*Linux*) Gecko* Firefox/* +Agent Mozilla/5.0 (X11; Linux x86_64; rv:18.0) Gecko/20100101 Firefox/18.0 + Matched by: Mozilla/5.0 (*Linux*) Gecko* Firefox/* +Agent Mozilla/5.0 (X11; Linux x86_64; rv:26.0) Gecko/20100101 Firefox/26.0 + Matched by: Mozilla/5.0 (*Linux*) Gecko* Firefox/* +Agent Mozilla/5.0 (X11; Linux x86_64; rv:29.0) Gecko/20100101 Firefox/29.0 Iceweasel/29.0a2 + Matched by: Mozilla/5.0 (*Linux*) Gecko* Firefox/* +Agent Mozilla/5.0 (X11; Linux x86_64; rv:45.0) Gecko/20100101 Firefox/45.0 + Matched by: Mozilla/5.0 (*Linux*) Gecko* Firefox/45.0* +Agent Mozilla/5.0 (X11; Linux x86_64; rv:49.0) Gecko/20100101 Firefox/49.0 + Matched by: Mozilla/5.0 (*Linux*) Gecko* Firefox/49.0* +Agent Mozilla/5.0 (X11; Linux x86_64; rv:50.0) Gecko/20100101 Firefox/50.0 + Matched by: Mozilla/5.0 (*Linux*) Gecko* Firefox/50.0* +Agent Mozilla/5.0 (X11; Linux x86_64; rv:51.0) Gecko/20100101 Firefox/51.0 + Matched by: Mozilla/5.0 (*Linux*) Gecko* Firefox/* +Agent Mozilla/5.0 (X11; Linux x86_64; rv:52.0) Gecko/20100101 Firefox/52.0 + Matched by: Mozilla/5.0 (*Linux*) Gecko* Firefox/* +Agent Mozilla/5.0 (X11; Ubuntu; Linux i686) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/44.0.2446.66 Safari/537.36 + Matched by: Mozilla/5.0 (*Linux*) AppleWebKit/* (KHTML* like Gecko) Chrome/*Safari/* +Agent Mozilla/5.0 (X11; Ubuntu; Linux i686 on x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/34.0.1907.88 Safari/537.36 + Matched by: Mozilla/5.0 (*Linux*) AppleWebKit/* (KHTML* like Gecko) Chrome/*Safari/* +Agent Mozilla/5.0 (X11; Ubuntu; Linux i686; rv:14.0) Gecko/20100101 Firefox/14.0.1 + Matched by: Mozilla/5.0 (*Linux*) Gecko* Firefox/* +Agent Mozilla/5.0 (X11; Ubuntu; Linux i686; rv:14.0; ips-agent) Gecko/20100101 Firefox/14.0.1 + Matched by: Mozilla/5.0 (*Linux*) Gecko* Firefox/* +Agent Mozilla/5.0 (X11; Ubuntu; Linux i686; rv:26.0) Gecko/20100101 Firefox/26.0 + Matched by: Mozilla/5.0 (*Linux*) Gecko* Firefox/* +Agent Mozilla/5.0 (X11; Ubuntu; Linux i686; rv:34.0) Gecko/20100101 Firefox/34.0 + Matched by: Mozilla/5.0 (*Linux*) Gecko* Firefox/34.0* +Agent Mozilla/5.0 (X11; Ubuntu; Linux i686; rv:42.0) Gecko/20100101 Firefox/42.0 + Matched by: Mozilla/5.0 (*Linux*) Gecko* Firefox/42.0* +Agent Mozilla/5.0 (X11; Ubuntu; Linux i686; rv:49.0) Gecko/20100101 Firefox/49.0 + Matched by: Mozilla/5.0 (*Linux*) Gecko* Firefox/49.0* +Agent Mozilla/5.0 (X11; Ubuntu; Linux i686; rv:50.0) Gecko/20100101 Firefox/50.0 + Matched by: Mozilla/5.0 (*Linux*) Gecko* Firefox/50.0* +Agent Mozilla/5.0 (X11; Ubuntu; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/36.0.1992.77 Safari/537.36 + Matched by: Mozilla/5.0 (*Linux*) AppleWebKit/* (KHTML* like Gecko) Chrome/*Safari/* +Agent Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:21.0) Gecko/20100101 Firefox/21.0 + Matched by: Mozilla/5.0 (*Linux*) Gecko* Firefox/* +Agent Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:25.0) Gecko/20100101 Firefox/25.0 + Matched by: Mozilla/5.0 (*Linux*) Gecko* Firefox/* +Agent Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:26.0) Gecko/20100101 Firefox/26.0 + Matched by: Mozilla/5.0 (*Linux*) Gecko* Firefox/* +Agent Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:47.0) Gecko/20100101 Firefox/47.0 + Matched by: Mozilla/5.0 (*Linux*) Gecko* Firefox/47.0* +Agent Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:49.0) Gecko/20100101 Firefox/49.0 + Matched by: Mozilla/5.0 (*Linux*) Gecko* Firefox/49.0* +Agent Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:50.0) Gecko/20100101 Firefox/50.0 + Matched by: Mozilla/5.0 (*Linux*) Gecko* Firefox/50.0* +Agent Mozilla/5.0 (X11; U; Linux Core i7-4980HQ; de; rv:32.0; compatible; JobboerseBot; http://www.jobboerse.com/bot.htm) Gecko/20100101 Firefox/38.0 + Matched by: Mozilla/5.0 (*Linux*) Gecko* Firefox/38.0* +Agent Mozilla/5.0 (X11; U; Linux i586; en-US) AppleWebKit/533.2 (KHTML, like Gecko) Chrome/5.0.342.1 Safari/533.2 + Matched by: Mozilla/5.0 (*Linux*) AppleWebKit/* (KHTML* like Gecko) Chrome/*Safari/* +Agent Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.7.8) Gecko/20050511 + Matched by: * +Agent Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.1.16) Gecko/20120421 Firefox/11.0 + Matched by: Mozilla/5.0 (*Linux*) Gecko* Firefox/* +Agent Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.2.4) Gecko/20100625 Gentoo Firefox/3.6.4 + Matched by: Mozilla/5.0 (*Linux*) Gecko* Firefox/* +Agent Mozilla/5.0 (X11; U; Linux i686; pt-BR; rv:1.9.0.15) Gecko/2009102815 Ubuntu/9.04 (jaunty) Firefox/3.0.15 + Matched by: Mozilla/5.0 (*Linux*) Gecko* Firefox/* +Agent Mozilla/5.0 (X11; U; Linux x86_64; en-US) AppleWebKit/533.2 (KHTML, like Gecko) Chrome/5.0.342.1 Safari/533.2 + Matched by: Mozilla/5.0 (*Linux*) AppleWebKit/* (KHTML* like Gecko) Chrome/*Safari/* +Agent Mozilla/5.0 (X11; U; Linux x86_64; en-US) AppleWebKit/534.16 (KHTML, like Gecko) Chrome/10.0.648.11 Safari/534.16 + Matched by: Mozilla/5.0 (*Linux*) AppleWebKit/* (KHTML* like Gecko) Chrome/*Safari/* +Agent Mozilla/5.0 (X11; U; Linux x86_64; en-US; rv:1.9.1.3) Gecko/20090913 Firefox/3.5.3 + Matched by: Mozilla/5.0 (*Linux*) Gecko* Firefox/* +Agent Mozilla/5.0 (X11; U; Linux x86_64; en-US; rv:1.9.2.4) Gecko/20100614 Ubuntu/10.04 (lucid) Firefox/3.6.4 + Matched by: Mozilla/5.0 (*Linux*) Gecko* Firefox/* +Agent Mozilla/5.0 (X11; U; Linux x86_64; en-US; rv:1.9.2a1pre) Gecko/20090405 Firefox/3.6a1pre + Matched by: Mozilla/5.0 (*Linux*) Gecko* Firefox/* +Agent Mozilla/5.0 zgrab/0.x + Matched by: * +Agent Mozilla/6.0 (compatible) + Matched by: * +Agent Mozilla/6.0 (compatible; MSIE 7.0a1; Windows NT 5.2; SV1) + Matched by: * +Agent node-fetch/1.0 (+https://github.com/bitinn/node-fetch) + Matched by: * +Agent nutch-1.4/Nutch-1.4 + Matched by: * +Agent Opera/7.11 (Windows NT 5.1; U) [en] + Matched by: * +Agent Opera/7.54 (Windows NT 5.1; U) [pl] + Matched by: * +Agent Opera/7.60 (Windows NT 5.2; U) [en] (IBM EVV/3.0/EAK01AG9/LE) + Matched by: * +Agent Opera/8.00 (Windows NT 5.1; U; en) + Matched by: * +Agent Opera/8.01 (Windows NT 5.1) + Matched by: * +Agent Opera/9.00 (Windows NT 4.0; U; en) + Matched by: * +Agent Opera/9.00 (Windows NT 5.1; U; en) + Matched by: * +Agent Opera/9.00 (Windows NT 5.1; U; ru) + Matched by: * +Agent Opera/9.01 (Windows NT 5.1; U; en) + Matched by: * +Agent Opera/9.0 (Windows NT 5.1; U; en) + Matched by: * +Agent Opera/9.80 (Android; Opera Mini/13.0.2036/37.9093; U; az) Presto/2.12.423 Version/12.16 + Matched by: * +Agent Opera/9.80 (Android; Opera Mini/7.5.33725/37.9154; U; en) Presto/2.12.423 Version/12.16 + Matched by: * +Agent Opera/9.80 (SpreadTrum; Opera Mini/4.4.31492/37.9178; U; en) Presto/2.12.423 Version/12.16 + Matched by: * +Agent Opera/9.80 (Windows NT 5.1; U; en) Presto/2.10.229 Version/11.60 + Matched by: * +Agent Opera/9.80 (Windows NT 5.1; U; en) Presto/2.2.15 Version/10.10 + Matched by: * +Agent Opera/9.80 (Windows NT 5.1; U; ru) Presto/2.9.168 Version/11.50 + Matched by: * +Agent Opera/9.80 (Windows NT 5.1; U; sk) Presto/2.10.229 Version/11.64 + Matched by: * +Agent Opera/9.80 (Windows NT 6.1; MRA 8.4 (build 7786)) Presto/2.12.388 Version/12.17 + Matched by: * +Agent Opera/9.80 (Windows NT 6.1; WOW64) Presto/2.12.388 Version/12.16 + Matched by: * +Agent Opera/9.80 (Windows NT 6.2; Win64; x64) Presto/2.12.388 Version/12.17 + Matched by: * +Agent Opera/9.80 (X11; Linux x86_64) Presto/2.12.388 Version/12.16 + Matched by: * +Agent panscient.com + Matched by: * +Agent Pcore-HTTP/v0.24.5 + Matched by: * +Agent peopleman/1.6 + Matched by: * +Agent perl post + Matched by: * +Agent Phantom.js bot + Matched by: * +Agent PHP/5.2.00 + Matched by: * +Agent PHP/5.2.03 + Matched by: * +Agent PHP/5.2.04 + Matched by: * +Agent PHP/5.2.06 + Matched by: * +Agent PHP/5.2.07 + Matched by: * +Agent PHP/5.2.10 + Matched by: * +Agent PHP/5.2.12 + Matched by: * +Agent PHP/5.2.14 + Matched by: * +Agent PHP/5.2.15 + Matched by: * +Agent PHP/5.2.20 + Matched by: * +Agent PHP/5.2.21 + Matched by: * +Agent PHP/5.2.22 + Matched by: * +Agent PHP/5.2.26 + Matched by: * +Agent PHP/5.2.30 + Matched by: * +Agent PHP/5.2.32 + Matched by: * +Agent PHP/5.2.37 + Matched by: * +Agent PHP/5.2.38 + Matched by: * +Agent PHP/5.2.39 + Matched by: * +Agent PHP/5.2.42 + Matched by: * +Agent PHP/5.2.45 + Matched by: * +Agent PHP/5.2.47 + Matched by: * +Agent PHP/5.2.48 + Matched by: * +Agent PHP/5.2.49 + Matched by: * +Agent PHP/5.2.50 + Matched by: * +Agent PHP/5.2.52 + Matched by: * +Agent PHP/5.2.54 + Matched by: * +Agent PHP/5.2.55 + Matched by: * +Agent PHP/5.2.56 + Matched by: * +Agent PHP/5.2.61 + Matched by: * +Agent PHP/5.2.64 + Matched by: * +Agent PHP/5.2.67 + Matched by: * +Agent PHP/5.2.68 + Matched by: * +Agent PHP/5.2.71 + Matched by: * +Agent PHP/5.2.72 + Matched by: * +Agent PHP/5.2.73 + Matched by: * +Agent PHP/5.2.74 + Matched by: * +Agent PHP/5.2.76 + Matched by: * +Agent PHP/5.2.77 + Matched by: * +Agent PHP/5.2.79 + Matched by: * +Agent PHP/5.2.80 + Matched by: * +Agent PHP/5.2.82 + Matched by: * +Agent PHP/5.2.86 + Matched by: * +Agent PHP/5.2.89 + Matched by: * +Agent PHP/5.2.90 + Matched by: * +Agent PHP/5.2.91 + Matched by: * +Agent PHP/5.2.92 + Matched by: * +Agent PHP/5.2.95 + Matched by: * +Agent PHP/5.2.96 + Matched by: * +Agent PHP/5.3.02 + Matched by: * +Agent PHP/5.3.04 + Matched by: * +Agent PHP/5.3.10 + Matched by: * +Agent PHP/5.3.11 + Matched by: * +Agent PHP/5.3.14 + Matched by: * +Agent PHP/5.3.15 + Matched by: * +Agent PHP/5.{3|2}.{1|2|3|4|5|6|7|8|9|0}{1|2|3|4|5|6|7|8|9|0} + Matched by: * +Agent PHP/5.3.22 + Matched by: * +Agent PHP/5.3.23 + Matched by: * +Agent PHP/5.3.25 + Matched by: * +Agent PHP/5.3.26 + Matched by: * +Agent PHP/5.3.30 + Matched by: * +Agent PHP/5.3.32 + Matched by: * +Agent PHP/5.3.34 + Matched by: * +Agent PHP/5.3.39 + Matched by: * +Agent PHP/5.3.41 + Matched by: * +Agent PHP/5.3.48 + Matched by: * +Agent PHP/5.3.49 + Matched by: * +Agent PHP/5.3.51 + Matched by: * +Agent PHP/5.3.53 + Matched by: * +Agent PHP/5.3.57 + Matched by: * +Agent PHP/5.3.58 + Matched by: * +Agent PHP/5.3.59 + Matched by: * +Agent PHP/5.3.61 + Matched by: * +Agent PHP/5.3.64 + Matched by: * +Agent PHP/5.3.65 + Matched by: * +Agent PHP/5.3.66 + Matched by: * +Agent PHP/5.3.67 + Matched by: * +Agent PHP/5.3.69 + Matched by: * +Agent PHP/5.3.73 + Matched by: * +Agent PHP/5.3.78 + Matched by: * +Agent PHP/5.3.79 + Matched by: * +Agent PHP/5.3.80 + Matched by: * +Agent PHP/5.3.81 + Matched by: * +Agent PHP/5.3.82 + Matched by: * +Agent PHP/5.3.86 + Matched by: * +Agent PHP/5.3.88 + Matched by: * +Agent PHP/5.3.89 + Matched by: * +Agent PHP/5.3.90 + Matched by: * +Agent PHP/5.3.91 + Matched by: * +Agent PHP/5.3.92 + Matched by: * +Agent PHP/5.3.97 + Matched by: * +Agent PHP/5.3.98 + Matched by: * +Agent PHPCrawl + Matched by: * +Agent python-requests/2.11.1 + Matched by: * +Agent python-requests/2.12.3 + Matched by: * +Agent python-requests/2.2.1 CPython/2.7.6 Linux/3.13.0-24-generic + Matched by: * +Agent python-requests/2.2.1 CPython/3.4.3 Linux/3.13.0-96-generic + Matched by: * +Agent python-requests/2.4.3 CPython/3.4.2 Linux/3.16.0-4-amd64 + Matched by: * +Agent Python-urllib/1.17 + Matched by: * +Agent Python-urllib/2.6 + Matched by: * +Agent Python-urllib/2.7 + Matched by: * +Agent Qwantify/1.0 + Matched by: * +Agent redback/v0-570-g26f8c96 + Matched by: * +Agent RedesScrapy/0.24.1 (+http://g2pi.tsc.uc3m.es/es) + Matched by: * +Agent rogerbot + Matched by: * +Agent Ruby + Matched by: * +Agent Safari/10602.2.14.0.7 CFNetwork/720.5.7 Darwin/14.5.0 (x86_64) + Matched by: Safari/10???.* CFNetwork/* +Agent Safari/11602.1.50.0.10 CFNetwork/760.6.3 Darwin/15.6.0 (x86_64) + Matched by: Safari/* CFNetwork/* +Agent Safari/11602.2.14.0.7 CFNetwork/760.6.3 Darwin/15.6.0 (x86_64) + Matched by: Safari/* CFNetwork/* +Agent Safari/12602.1.50.0.10 CFNetwork/807.0.4 Darwin/16.0.0 (x86_64) + Matched by: Safari/* CFNetwork/* +Agent Safari/12602.2.14.0.7 CFNetwork/807.1.3 Darwin/16.1.0 (x86_64) + Matched by: Safari/* CFNetwork/* +Agent Safari%20Technology%20Preview/12603.1.10 CFNetwork/807.1.3 Darwin/16.1.0 (x86_64) + Matched by: * +Agent SafeDNSBot (https://www.safedns.com/searchbot) + Matched by: * +Agent SalesIntelligent (+https://www.salesintelligent.com) + Matched by: * +Agent Scanbot + Matched by: * +Agent Searchie/1.0 (a Storm-based crawler; https://www.searchie.org; admin@searchie.org) + Matched by: * +Agent Sogou web spider/4.0(+http://www.sogou.com/docs/help/webmasters.htm#07) + Matched by: * +Agent spiderman + Matched by: * +Agent ; success; BB-code not working; message must go through moderation; + Matched by: * +Agent Telesphoreo + Matched by: * +Agent }__test|O:21: + Matched by: * +Agent Tiny Tiny RSS/16.3 (638fdf7) (http://tt-rss.org/) + Matched by: * +Agent Twitterbot/1.0 + Matched by: * +Agent User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.31 (KHTML, like Gecko) Chrome/26.0.1410.64 Safari/537.31 + Matched by: * +Agent vebidoobot + Matched by: * +Agent W3C_Validator/1.3 http://validator.w3.org/services + Matched by: * +Agent WEBDAV Client + Matched by: * +Agent Wget/1.15 (linux-gnu) + Matched by: * +Agent Wget(linux) + Matched by: * +Agent Windows-Media-Player/11.0.5721.5145 + Matched by: * +Agent Wotbox/2.01 (+http://www.wotbox.com/bot/) + Matched by: * +Agent www.matthowlett.com + Matched by: * +Agent WWW-Mechanize/1.73 + Matched by: * +Agent www.probethenet.com scanner + Matched by: * +Agent ZmEu + Matched by: * diff --git a/ext/standard/tests/misc/user_agents.txt b/ext/standard/tests/misc/user_agents.txt new file mode 100644 index 00000000000..9a7e1531e3e --- /dev/null +++ b/ext/standard/tests/misc/user_agents.txt @@ -0,0 +1,1112 @@ +- +AHC/1.0 +Airmail 1.4.1 rv:249 (Macintosh; Mac OS X 10.11.6; de_DE) +Apache/2.4.10 (Debian) OpenSSL/1.0.1k (internal dummy connection) +BaiduSpider +Baiduspider+(+http://www.baidu.com/search/spider.htm) +Baiduspider-image+(+http://www.baidu.com/search/spider.htm) +BigDataCloud +BlackBerry9000/4.6.0.167 Profile/MIDP-2.0 Configuration/CLDC-1.1 VendorID/102 ips-agent +BPImageWalker/2.0 (www.bdbrandprotect.com) +BUFF library user agent +CCBot/2.0 (http://commoncrawl.org/faq/) +censys.io internet census +compatible;Baiduspider/2.0; +http://www.baidu.com/search/spider.html +core-project/1.0 +Crawler powered by contentDetection (www.mindup.de) +CRAZYWEBCRAWLER 0.9.10, http://www.crazywebcrawler.com +curl/7.19.7 (x86_64-redhat-linux-gnu) libcurl/7.19.7 NSS/3.15.3 zlib/1.2.3 libidn/1.18 libssh2/1.4.2 +curl/7.19.7 (x86_64-redhat-linux-gnu) libcurl/7.19.7 NSS/3.21 Basic ECC zlib/1.2.3 libidn/1.18 libssh2/1.4.2 +curl/7.19.7 (x86_64-unknown-linux-gnu) libcurl/7.19.7 NSS/3.12.6.2 zlib/1.2.3 libidn/1.18 libssh2/1.2.2 +curl/7.26.0 +curl/7.29.0 +curl/7.38.0 +Dalvik/1.6.0 (Linux; U; Android 4.3; C5303 Build/12.1.A.1.205) +Dalvik/2.1.0 (Linux; U; Android 5.0; SM-N9005 Build/LRX21V) +Dalvik/2.1.0 (Linux; U; Android 6.0.1; SM-A510F Build/MMB29K) +Digg Feed Fetcher 1.0 (Mozilla/5.0 (Macintosh; Intel Mac OS X 10_7_1) AppleWebKit/534.48.3 (KHTML, like Gecko) Version/5.1 Safari/534.48.3) +facebookexternalhit/1.1 (+http://www.facebook.com/externalhit_uatext.php) +Feedbin feed-id:156831 - 1 subscribers +Feedly/1.0 (+http://www.feedly.com/fetcher.html; like FeedFetcher-Google) +GarlikCrawler/1.2 (http://garlik.com/, crawler@garlik.com) +Go-http-client/1.1 +Googlebot/2.1 (+http://www.google.com/bot.html) +Googlebot-Image/1.0 +Googlebot/Nutch-1.7 +Goose/1.0.25 +GridBot/1.0 crawler@sysomos.com +http://tools.geek-tools.org/link-counter/ +ia_archiver +Java/1.6.0_04 +Java/1.7.0_75 +libwww-perl/5.833 +libwww-perl/6.08 +libwww-perl/6.13 +libwww-perl/6.15 +LinkWalker/3.0 (http://www.brandprotect.com) +lr_http_client +ltx71 - (http://ltx71.com/) +LWP::Simple/6.00 libwww-perl/6.05 +LWP::Simple/6.00 libwww-perl/6.08 +Lynx/2.8.5rel.1 libwww-FM/2.15FC SSL-MM/1.4.1c OpenSSL/0.9.7e-dev +Lynx/2.8.8pre.4 libwww-FM/2.14 SSL-MM/1.4.1 GNUTLS/2.12.23 +masscan/1.0 (https://github.com/robertdavidgraham/masscan) +Mediapartners-Google +mindUpBot (datenbutler.de) +mj12bot +MobileSafari/601.1 CFNetwork/758.5.3 Darwin/15.6.0 +MobileSafari/602.1 CFNetwork/808.0.2 Darwin/16.0.0 +MobileSafari/602.1 CFNetwork/808.1.4 Darwin/16.1.0 +Morfeus Fucking Scanner +Mozilla +Mozilla/0.6 Beta (Windows) +Mozilla/0.91 Beta (Windows) +Mozilla/10.0 (Windows NT 7.100) Gecko/20112301 Firefox/17.0 +Mozilla/1.22 (compatible; MSIE 2.0d; Windows NT) +Mozilla/1.22 (compatible; MSIE 2.0; Windows 95) +Mozilla/2.0 (compatible; MSIE 3.02; Windows CE; 240x320) +Mozilla/3.0 (compatible; Indy Library) +Mozilla/3.0 (compatible; WebCapture 2.0; Auto; Windows) +mozilla/3.0 (Windows NT 6.1; rv:2.0.1) Gecko/20100101 Firefox/5.0.1 +Mozilla/3.0 (x86 [en] Windows NT 5.1; Sun) +Mozilla/37.0.2 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 1.1.4322) +Mozilla 4.0 +Mozilla/4.0 +Mozilla/4.0 (CMS Crawler: http://www.cmscrawler.com) +Mozilla/4.0 (compatible; MSIE 4.01; Digital AlphaServer 1000A 4/233; Windows NT; Powered By 64-Bit Alpha Processor) +Mozilla/4.0 (compatible; MSIE 5.01; Windows 95; MSIECrawler) +Mozilla/4.0 (compatible; MSIE 5.01; Windows NT) +Mozilla/4.0 (compatible; MSIE 5.01; Windows NT 5.0) +Mozilla/4.0 (compatible; MSIE 5.0; Windows 2000) Opera 6.0 [en] +Mozilla/4.0 (compatible; MSIE 5.0; Windows 3.1) +Mozilla/4.0 (compatible; MSIE 5.0; Windows 95) Opera 6.01 [en] +Mozilla/4.0 (compatible; MSIE 5.0; Windows NT; DigExt) +Mozilla/4.0 (compatible; MSIE 5.5; Windows 95) +Mozilla/4.0 (compatible; MSIE 5.5; Windows 95; BCD2000) +Mozilla/4.0 (compatible; MSIE 5.5; Windows NT 4.0) +Mozilla/4.0 (compatible; MSIE 5.5; Windows NT 4.0; .NET CLR 1.0.2914) +Mozilla/4.0 (compatible; MSIE 5.5; Windows NT 5.0; .NET CLR 1.1.4322) +Mozilla/4.0 (compatible; MSIE 5.5; Windows NT 5.0; T312461) +Mozilla/4.0 (compatible; MSIE 6.0) +Mozilla/4.0 (compatible; MSIE 6.0; America Online Browser 1.1; rev1.2; Windows NT 5.1; SV1; .NET CLR 1.1.4322) +Mozilla/4.0 (compatible; MSIE 6.0; AOL 9.0; Windows NT 5.1) +Mozilla/4.0 (compatible; MSIE 6.0; MSIE 5.5; Windows NT 4.0) Opera 7.0 [en] +Mozilla/4.0 (compatible; MSIE 6.0; MSIE 5.5; Windows NT 5.0) Opera 7.02 Bork-edition [en] +Mozilla/4.0 (compatible; MSIE 6.0; MSIE 5.5; Windows NT 5.1) Opera 7.01 [en] +Mozilla/4.0 (compatible; MSIE 6.0; Update a; AOL 6.0; Windows 98) +Mozilla/4.0 (compatible; MSIE 6.0; Windows 98) +Mozilla/4.0 (compatible; MSIE 6.0; Windows 98; Win 9x 4.90) +Mozilla/4.0 (compatible; MSIE 6.0; Windows 98; Win 9x 4.90; Creative) +Mozilla/4.0 (compatible; MSIE 6.0; Windows ME) Opera 7.11 [en] +Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0) +Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0; APC; .NET CLR 1.0.3705; .NET CLR 1.1.4322; .NET CLR 2.0.50215; InfoPath.1) +Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0; Avant Browser [avantbrowser.com]; Hotbar 4.4.5.0) +Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0; KTXN) +Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0; .NET CLR 1.0.3705; .NET CLR 1.1.4322) +Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0; T312461) +Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1) +Mozilla/4.0+(compatible;+MSIE+6.0;+Windows+NT+5.1) +Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; Crazy Browser 1.0.5) +Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; Deepnet Explorer 1.5.0; .NET CLR 1.0.3705) +Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; en) Opera 8.00 +Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; en) Opera 8.50 +Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; en) Opera 9.0 +Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; FREE; .NET CLR 1.1.4322) +Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; KKman2.0) +Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; Maxthon; .NET CLR 1.1.4322) +Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; MRA 4.3 (build 01218); .NET CLR 1.1.4322) +Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; MRA 4.6 (build 01425)) +Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; MyIE2; Deepnet Explorer) +Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; .NET CLR 1.0.3705) +Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; .NET CLR 1.1.4322) +Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; .NET CLR 1.1.4322; Alexa Toolbar; (R1 1.5)) +Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; .NET CLR 1.1.4322; FDM) +Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1) Netscape/8.0.4 +Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1) Opera 7.54 [en] +Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; Q312461) +Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; ru) Opera 8.01 +Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; ru) Opera 8.50 +Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1;) +Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1) +Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; Crazy Browser 2.0.0 Beta 1; .NET CLR 1.0.3705; .NET CLR 1.1.4322) +Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; FunWebProducts) +Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; FunWebProducts; MRA 4.6 (build 01425); .NET CLR 1.1.4322; .NET CLR 2.0.50727) +Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; FunWebProducts; .NET CLR 1.1.4322; PeoplePal 6.2) +Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; InfoPath.1 +Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; InfoPath.1) +Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; Media Center PC +Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1) ) +Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1) ; .NET CLR 1.0.3705) +Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1) ; .NET CLR 2.0.50727 ; .NET CLR 4.0.30319) +Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; MRA 4.6 (build 01425); MRSPUTNIK 1, 5, 0, 19 SW) +Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 1.0.3705) +Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 1.0.3705; .NET CLR 1.1.4322; .NET CLR 2.0.40607) +Mozilla/4.0 (compatible- MSIE 6.0- Windows NT 5.1- SV1- .NET CLR 1.1.4322 +Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 1.1.4322) +Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 1.1.4322) Babya Discoverer 8.0: +Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 1.1.4322; .NET CLR 2.0.50727) +Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 1.1.4322) NS8/0.9.6 +Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 1.1.4322; XMPP Tiscali Communicator v.10.0.2; .NET CLR 2.0.50727) +Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 2.0.50727) +Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 2.0.50727; .NET CLR 1.1.4322) +Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; TencentTraveler ; Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1) ; .NET CLR 2.0.50727) +Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; YPC 3.0.2; .NET CLR 1.1.4322; yplus 4.4.02b) +Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; TheFreeDictionary.com; .NET CLR 1.1.4322; .NET CLR 1.0.3705; .NET CLR 2.0.50727) +Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.2; .NET CLR 1.0.3705;) +Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.2; SV1; .NET CLR 1.1.4322; .NET CLR 2.0.50727) +Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.2; Win64; AMD64) +Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.2; Win64; x64; SV1; .NET CLR 2.0.50727) +Mozilla/4.0 (compatible; MSIE 6.0; Windows NT) ::ELNSB50::000061100320025802a00111000000000507000900000000 +Mozilla/4.0 (compatible; MSIE 6.0; Windows XP) +Mozilla/4.0 (compatible; MSIE 7.0b; Windows NT 6.0) +Mozilla/4.0 (compatible; MSIE 7.0b; Windows NT 6.0 ; .NET CLR 2.0.50215; SL Commerce Client v1.0; Tablet PC 2.0 +Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; MRSPUTNIK 2, 4, 0, 270; MRA 5.8 (build 4598); GTB7.2; AskTbFF/5.11.3.15590; .NET CLR 1.1.4322) +Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; .NET CLR 1.0.3705; .NET CLR 1.1.4322; Media Center PC 4.0) +Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; .NET CLR 2.0.50727) +Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; SV1; .NET CLR 2.0.50727) +Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; Trident/4.0; .NET CLR 1.1.4322; .NET CLR 1.0.3705; .NET CLR 2.0.50727; .NET CLR 3.0.04506.648; .NET CLR 3.5.21022; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729) +Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.2) +Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.0; WOW64; Trident/5.0; SLCC1; .NET CLR 2.0.50727; .NET CLR 3.0.30729; .NET CLR 3.5.30729; .NET4.0C; .NET4.0E) +Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.1; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; .NET4.0C; .NET4.0E) +Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.1; Trident/7.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; .NET4.0C; .NET4.0E; ms-office) +Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.2; WOW64; Trident/7.0; .NET4.0E; .NET4.0C; .NET CLR 3.5.30729; .NET CLR 2.0.50727; .NET CLR 3.0.30729) +Mozilla/4.0 (compatible; MSIE 8.0; ; Trident/4.0; .NET CLR 1.1.4322; .NET CLR 2.0.50727; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729) +Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.1; Trident/4.0) +Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.1; Trident/4.0; GTB6.5; .NET CLR 1.1.4322; .NET CLR 2.0.50727; .NET CLR 3.0.04506.648; .NET CLR 3.5.21022; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729; InfoPath.3) +Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.1; Trident/4.0; GTB6.5; .NET CLR 2.0.50727; InfoPath.2) +Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.1; Trident/4.0; GTB6; InfoPath.1; .NET CLR 2.0.50727; Dealio Toolbar 3.4; .NET CLR 3.0.04506.30; .NET CLR 3.0.04506.648; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729) +Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.1; Trident/4.0; GTB7.5; .NET CLR 2.0.50727; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729) +Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.1; Trident/4.0; .NET CLR 1.1.4322; .NET CLR 2.0.50727; .NET CLR 3.0.04506.30; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729; InfoPath.3; .NET4.0C; .NET4.0E) +Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.1; Trident/4.0; .NET CLR 1.1.4322; .NET CLR 2.0.50727; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729) +Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.1; Trident/4.0; .NET CLR 2.0.50727) +Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.1; Trident/4.0; .NET CLR 2.0.50727; .NET4.0C) +Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.1; Trident/4.0; .NET CLR 2.0.50727; .NET CLR 3.0.04506.648; .NET CLR 3.5.21022; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729; InfoPath.2) +Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.1; Trident/4.0; .NET CLR 2.0.50727; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729; InfoPath.2) +Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.0; Trident/4.0; Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1) ; SLCC1; .NET CLR 2.0.50727; Media Center PC 5.0; .NET CLR 3.0.30729; .NET CLR 3.5.30729) +Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.0; Trident/4.0; SLCC1; .NET CLR 2.0.50727; OfficeLiveConnector.1.3; OfficeLivePatch.0.0; .NET CLR 3.5.30729; .NET CLR 3.0.30618; MS-RTC LM 8; yie8) +Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1; Trident/4.0) +Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1; Trident/4.0; Avant Browser; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0) +Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1; Trident/4.0; GTB7.2; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; .NET4.0C) +Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1; Trident/4.0; InfoPath.2; SV1; .NET CLR 3.8.36926; WOW64; en-US) +Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1; Trident/4.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729) +Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1; Trident/4.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0) +Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1; Trident/4.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; .NET4.0C; .NET4.0E) +Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1; Trident/4.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; Tablet PC 2.0) +Mozilla/4.0 (compatible; MSIE 9.0; Windows NT 6.1) +Mozilla/4.0 (compatible; MSIE 9.0; Windows NT 6.1; 125LA; .NET CLR 2.0.50727; .NET CLR 3.0.04506.648; .NET CLR 3.5.21022) +Mozilla/4.0 (compatible; MSIE 9.0; Windows NT 6.1; Trident/5.0) +Mozilla/4.0 (compatible; Netcraft Web Server Survey) +Mozilla/4.0 (compatible; Powermarks/3.5; Windows 95/98/2000/NT) +Mozilla/4.0 (compatible; Synapse) +Mozilla/4.0 (compatible; Win32; WinHttp.WinHttpRequest.5) +Mozilla/4.0 (compatible; Windows;) +Mozilla/4.0 (Windows NT 6.2) AppleWebKit/537.17 (KHTML, like Gecko) Chrome/24.0.1312.70 Safari/537.17 +Mozilla/4.0 (X11; MSIE 6.0; i686; .NET CLR 1.1.4322; .NET CLR 2.0.50727; FDM) +Mozilla/4.61 [en] (X11; U; ) - BrowseX (2.0.0 Windows) +Mozilla/4.76 [en] (Windows NT 5.0; U) +Mozilla/4.79 [en] (Windows NT 5.0; U) +Mozilla/4.7 (compatible; OffByOne; Windows 2000) Webster Pro V3.4 +Mozilla 5.0 +Mozilla/5.0 +Mozilla/5.0 (Android 2.2; Windows; U; Windows NT 6.1; en-US) AppleWebKit/533.19.4 (KHTML, like Gecko) Version/5.0.3 Safari/533.19.4 +Mozilla/5.0 (Android 5.1.1; Tablet; rv:50.0.1) Gecko/50.0.1 Firefox/50.0.1 +Mozilla/5.0 (Android 5.1.1; Tablet; rv:50.0) Gecko/50.0 Firefox/50.0 +Mozilla/5.0 (Android 5.1; Mobile; rv:49.0.2) Gecko/49.0.2 Firefox/49.0.2 +Mozilla/5.0 (Android 5.1; Mobile; rv:49.0) Gecko/49.0 Firefox/49.0 +Mozilla/5.0 (Android 6.0.1; Mobile; rv:50.0) Gecko/50.0 Firefox/50.0 +Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; Google Web Preview Analytics) Chrome/27.0.1453 Safari/537.36 (compatible; Googlebot/2.1; +http://www.google.com/bot.html) +Mozilla/5.0 (BlackBerry; U; BlackBerry 9900; en) AppleWebKit/534.11+ (KHTML, like Gecko) Version/7.1.0.346 Mobile Safari/534.11+ +Mozilla/5.0 (compatible) +Mozilla/5.0 (compatible; AhrefsBot/5.1; +http://ahrefs.com/robot/) +Mozilla/5.0 (compatible; archive.org_bot +http://www.archive.org/details/archive.org_bot) +Mozilla/5.0 (compatible; archive.org_bot; Wayback Machine Live Record; +http://archive.org/details/archive.org_bot) +Mozilla/5.0 (compatible; Baiduspider/2.0; +http://www.baidu.com/search/spider.html) +Mozilla/5.0 (compatible; bingbot/2.0; +http://www.bing.com/bingbot.htm) +Mozilla/5.0 (compatible; BLEXBot/1.0; +http://webmeup-crawler.com/) +Mozilla/5.0 (compatible; Cliqzbot/1.0 +http://cliqz.com/company/cliqzbot) +Mozilla/5.0 (compatible; coccocbot-image/1.0; +http://help.coccoc.com/searchengine) +Mozilla/5.0 (compatible; coccocbot-web/1.0; +http://help.coccoc.com/searchengine) +Mozilla/5.0+(compatible;+CukBot;+Not+a+spammer;+++https://www.companiesintheuk.co.uk/bot.html) +Mozilla/5.0 (compatible; Dataprovider/6.101; +https://www.dataprovider.com/) +Mozilla/5.0 (compatible; Dataprovider; https://www.dataprovider.com/spider/) +Mozilla/5.0 (compatible; DeuSu/5.0.2; +https://deusu.de/robot.html) +Mozilla/5.0 (compatible; DotBot/1.1; http://www.opensiteexplorer.org/dotbot, help@moz.com) +Mozilla/5.0 (compatible; DuckDuckGo-Favicons-Bot/1.0; +http://duckduckgo.com) +Mozilla/5.0 (compatible; Exabot/3.0; +http://www.exabot.com/go/robot) +Mozilla/5.0 (compatible; Gluten Free Crawler/1.0; +http://glutenfreepleasure.com/) +Mozilla/5.0 (compatible; Googlebot/2.1; +http://www.google.com/bot.html) +Mozilla/5.0 (compatible; Google-Site-Verification/1.0) +Mozilla/5.0 (compatible; GrapeshotCrawler/2.0; +http://www.grapeshot.co.uk/crawler.php) +Mozilla/5.0 (compatible; inoreader.com-like FeedFetcher-Google) +Mozilla/5.0 (compatible; Linux x86_64; Mail.RU_Bot/2.0; +http://go.mail.ru/help/robots) +Mozilla/5.0 (compatible; MegaIndex.ru/2.0; +http://megaindex.com/crawler) +Mozilla/5.0 (compatible; MJ12bot/v1.4.5; http://www.majestic12.co.uk/bot.php?+) +Mozilla/5.0 (compatible; MJ12bot/v1.4.6; http://mj12bot.com/) +Mozilla/5.0 (compatible; MJ12bot/v1.4.7; http://mj12bot.com/) +Mozilla/5.0 (compatible; MojeekBot/0.6; +https://www.mojeek.com/bot.html) +Mozilla/5.0 (compatible; MSIE 10.0; Windows NT 6.1; Trident/6.0) +Mozilla/5.0 (compatible; MSIE 10.0; Windows NT 6.1; Trident/6.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; InfoPath.2; .NET4.0C; .NET4.0E; AskTbORJ/5.14.1.20007; BOIE9;NLNL) +Mozilla/5.0 (compatible; MSIE 10.0; Windows NT 6.1; WOW64; Trident/6.0) +Mozilla/5.0 (compatible; MSIE 10.0; Windows NT 6.1; WOW64; Trident/6.0; SLCC2; .NET CLR 2.0.50727; Media Center PC 6.0; InfoPath.2; .NET4.0C; .NET4.0E; AskTbORJ/5.15.14.29495; .NET CLR 3.5.30729; .NET CLR 3.0.30729; .NET CLR 1.1.4322; EIE10;ENAUMSN) +Mozilla/5.0 (compatible; MSIE 10.0; Windows NT 6.1; WOW64; Trident/6.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; .NET4.0C; .NET4.0E; AskTbFXTV5/5.15.2.23037) +Mozilla/5.0 (compatible; MSIE 10.0; Windows NT 6.2; WOW64; Trident/6.0) +Mozilla/5.0 (compatible; MSIE 10.0; Windows NT 6.2; WOW64; Trident/6.0; .NET4.0E; .NET4.0C; InfoPath.3; .NET CLR 3.5.30729; .NET CLR 2.0.50727; .NET CLR 3.0.30729; MS-RTC LM 8) +Mozilla/5.0 (compatible, MSIE 11, Windows NT 6.3; Trident/7.0; rv:11.0) like Gecko +Mozilla/5.0 (compatible; MSIE 6.0; Windows NT 5.1) +Mozilla/5.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 2.0.50727) +Mozilla/5.0 (compatible; MSIE 8.0; Windows NT 6.1; Trident/4.0; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; .NET CLR 1.0.3705; .NET CLR 1.1.4322) +Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.0; Trident/5.0; NP06) +Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.0; Trident/5.0; SLCC1; .NET CLR 2.0.50727; Media Center PC 5.0; InfoPath.2; .NET CLR 3.5.30729; .NET CLR 3.0.30729; .NET4.0C; .NET4.0E) +Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.0; Trident/5.0; SLCC1; .NET CLR 2.0.50727; Media Center PC 5.0; MDDC; .NET CLR 3.5.30729; .NET CLR 3.0.30729; .NET4.0C; .NET4.0E) +'Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Trident/5.0)' +Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Trident/5.0) +Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Trident/5.0); 360Spider +Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Trident/5.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; .NET4.0C; .NET4.0E; MS-RTC LM 8; SFIEAUTH1) +Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Trident/5.0; Trident/5.0) +Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; WOW64; Trident/5.0) +Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; WOW64; Trident/5.0) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.172 Safari/537.22 +Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; WOW64; Trident/5.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; InfoPath.3; .NET4.0C; .NET4.0E; .NET CLR 1.1.4322; MS-RTC LM 8) +Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; WOW64; Trident/5.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; .NET4.0C; AlexaToolbar/amzni-3.0; .NET4.0E) +Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; WOW64; Trident/5.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; .NET4.0C; .NET4.0E; HPDTDF; InfoPath.3) +Mozilla/5.0 (compatible; MSIE or Firefox mutant;) Daum 4.1 +Mozilla/5.0 (compatible; NetcraftSurveyAgent/1.0; +info@netcraft.com) +Mozilla/5.0 (compatible; Nmap Scripting Engine; http://nmap.org/book/nse.html) +Mozilla/5.0 (compatible; oBot/2.3.1; http://filterdb.iss.net/crawler/) +Mozilla/5.0 (compatible; Qwantify/2.3w; +https://www.qwant.com/)/2.3w +Mozilla/5.0 (compatible; SemrushBot/1.1~bl; +http://www.semrush.com/bot.html) +Mozilla/5.0 (compatible; SEOkicks-Robot; +http://www.seokicks.de/robot.html) +Mozilla/5.0 (compatible; SeznamBot/3.2; +http://napoveda.seznam.cz/en/seznambot-intro/) +Mozilla/5.0 (compatible; SiteExplorer/1.1b; +http://siteexplorer.info/Backlink-Checker-Spider/) +Mozilla/5.0 (compatible; Sonic/1.0; http://www.yama.info.waseda.ac.jp/~crawler/info.html) +Mozilla/5.0 (compatible; spbot/5.0.3; +http://OpenLinkProfiler.org/bot ) +Mozilla/5.0 (compatible; SurdotlyBot/1.0; +http://sur.ly/bot.html) +Mozilla/5.0 (compatible; Uptimebot/1.0; +http://www.uptime.com/uptimebot) +Mozilla/5.0 (compatible; Wappalyzer; +https://github.com/AliasIO/Wappalyzer) +Mozilla/5.0 (compatible; XoviBot/2.0; +http://www.xovibot.net/) +Mozilla/5.0 (compatible; Yahoo! Slurp; http://help.yahoo.com/help/us/ysearch/slurp) +Mozilla/5.0 (compatible; YandexBot/3.0; +http://yandex.com/bots) +Mozilla/5.0 (compatible;YoudaoFeedFetcher/1.0;http://www.youdao.com/help/reader/faq/topic006/;1 subscribers;) +Mozilla/5.0 (iPad; CPU OS 10_1_1 like Mac OS X) AppleWebKit/602.2.14 (KHTML, like Gecko) Version/10.0 Mobile/14B100 Safari/602.1 +Mozilla/5.0 (iPad; CPU OS 10_1_1 like Mac OS X) AppleWebKit/602.2.14 (KHTML, like Gecko) Version/10.0 Mobile/14B150 Safari/602.1 +Mozilla/5.0 (iPad; CPU OS 10_1 like Mac OS X) AppleWebKit/602.2.14 (KHTML, like Gecko) Version/10.0 Mobile/14B72 Safari/602.1 +Mozilla/5.0 (iPad; CPU OS 10_2 like Mac OS X) AppleWebKit/602.3.12 (KHTML, like Gecko) OPiOS/14.0.0.104835 Mobile/14C92 Safari/9537.53 +Mozilla/5.0 (iPad; CPU OS 9_3_5 like Mac OS X) AppleWebKit/601.1.46 (KHTML, like Gecko) Version/9.0 Mobile/13G36 Safari/601.1 +Mozilla/5.0 (iPhone; CPU iPhone OS 10_0_2 like Mac OS X) AppleWebKit/602.1.50 (KHTML, like Gecko) Version/10.0 Mobile/14A456 Safari/602.1 +Mozilla/5.0 (iPhone; CPU iPhone OS 10_0 like Mac OS X) AppleWebKit/602.1.38 (KHTML, like Gecko) Version/10.0 Mobile/14A300 Safari/602.1 +Mozilla/5.0 (iPhone; CPU iPhone OS 10_1_1 like Mac OS X) AppleWebKit/602.2.14 (KHTML, like Gecko) Version/10.0 Mobile/14B100 Safari/602.1 +Mozilla/5.0 (iPhone; CPU iPhone OS 10_1_1 like Mac OS X) AppleWebKit/602.2.14 (KHTML, like Gecko) Version/10.0 Mobile/14B150 Safari/602.1 +Mozilla/5.0 (iPhone; CPU iPhone OS 10_1 like Mac OS X) AppleWebKit/602.2.8 (KHTML, like Gecko) OPiOS/15.00.00000 Mobile/14B55c Safari/7534.48.3 +Mozilla/5.0 (iPhone; CPU iPhone OS 10_2 like Mac OS X) AppleWebKit/602.3.12 (KHTML, like Gecko) Version/10.0 Mobile/14C92 Safari/602.1 +Mozilla/5.0 (iPhone; CPU iPhone OS 5_0 like Mac OS X) AppleWebKit/534.46 (KHTML, like Gecko) Version/5.1 Mobile/9A334 Safari/7534.48.3 +Mozilla/5.0 (iPhone; CPU iPhone OS 6_0 like Mac OS X) AppleWebKit/536.26 (KHTML, like Gecko) Version/6.0 Mobile/10A5376e Safari/8536.25 +Mozilla/5.0 (iPhone; CPU iPhone OS 7_0 like Mac OS X) AppleWebKit/537.51.1 (KHTML, like Gecko) Version/7.0 Mobile/11A465 Safari/9537.53 BingPreview/1.0b +Mozilla/5.0 (iPhone; CPU iPhone OS 7_0 like Mac OS X) AppleWebKit/537.51.1 (KHTML, like Gecko) Version/7.0 Mobile/11A465 Safari/9537.53 (compatible; bingbot/2.0; +http://www.bing.com/bingbot.htm) +Mozilla/5.0 (iPhone; CPU iPhone OS 8_0 like Mac OS X) AppleWebKit/600.1.3 (KHTML, like Gecko) Version/8.0 Mobile/12A4345d Safari/600.1.4 +Mozilla/5.0 (iPhone; CPU iPhone OS 8_1_3 like Mac OS X) AppleWebKit/600.1.4 (KHTML, like Gecko) Version/8.0 Mobile/12B466 Safari/600.1.4 +Mozilla/5.0 (iPhone; CPU iPhone OS 8_3 like Mac OS X) AppleWebKit/600.1.4 (KHTML, like Gecko) Version/8.0 Mobile/12F70 Safari/600.1.4 +Mozilla/5.0 (iPhone; CPU iPhone OS 9_3_3 like Mac OS X) AppleWebKit/601.1.46 (KHTML, like Gecko) Version/9.0 Mobile/13G34 Safari/601.1 +Mozilla/5.0 (iPhone; CPU iPhone OS 9_3_3 like Mac OS X) AppleWebKit/601.1.46 (KHTML, like Gecko) Version/9.0 Mobile/13G34 Safari/601.1 BMID/E679DA49AC +Mozilla/5.0 (iPhone; U; CPU iPhone OS 3_0 like Mac OS X; en-us) AppleWebKit/528.18 (KHTML, like Gecko) Version/4.0 Mobile/7A341 Safari/528.161481015402482 +Mozilla/5.0 (Linux; Android 4.05; Galaxy Nexus Build/IMM76B) AppleWebKit/535.25 (KHTML, like Gecko) Chrome/17.0.1025.133 Mobile Safari/536.19 +Mozilla/5.0 (Linux; Android 4.1.2; GT-S5310B Build/JZO54K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/53.0.2785.124 Mobile Safari/537.36 +Mozilla/5.0 (Linux; Android 4.2.2; GT-S7580 Build/JDQ39) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/34.0.1847.114 Mobile Safari/537.36 +Mozilla/5.0 (Linux; Android 4.3; C5303 Build/12.1.A.1.205) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/54.0.2840.85 Mobile Safari/537.36 +Mozilla/5.0 (Linux; Android 4.4.2; de-de; SAMSUNG GT-I9205 Build/KOT49H) AppleWebKit/537.36 (KHTML, like Gecko) Version/1.5 Chrome/28.0.1500.94 Mobile Safari/537.36 +Mozilla/5.0 (Linux; Android 4.4.2; GT-I9195 Build/KOT49H) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/52.0.2743.98 Mobile Safari/537.36 +Mozilla/5.0 (Linux; Android 4.4.2; GT-P5210 Build/KOT49H) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/54.0.2840.68 Safari/537.36 +Mozilla/5.0 (Linux; Android 4.4.2; HP 7 VoiceTab Build/KOT49H) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/49.0.2623.105 Safari/537.36 +Mozilla/5.0 (Linux; Android 4.4.2; LENNY Build/KOT49H) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/30.0.0.0 Mobile Safari/537.36 +Mozilla/5.0 (Linux; Android 4.4.2; LG-V500 Build/KOT49I.V50020f) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/54.0.2840.85 Safari/537.36 +Mozilla/5.0 (Linux; Android 4.4.2; Panasonic ELUGA Z Build/KOT49H) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/54.0.2840.85 Mobile Safari/537.36 +Mozilla/5.0 (Linux; Android 4.4.2; RAINBOW Build/KOT49H) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/30.0.0.0 Mobile Safari/537.36 +Mozilla/5.0 (Linux; Android 4.4.2; SM-T230 Build/KOT49H) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/54.0.2840.85 Safari/537.36 +Mozilla/5.0 (Linux; Android 4.4.2; SUNSET2 Build/KOT49H) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/55.0.2883.91 Mobile Safari/537.36 +Mozilla/5.0 (Linux; Android 5.0.1; ALE-L02 Build/HuaweiALE-L02) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/54.0.2840.85 Mobile Safari/537.36 +Mozilla/5.0 (Linux; Android 5.0.1; GT-I9295 Build/LRX22C) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/54.0.2840.85 Mobile Safari/537.36 +Mozilla/5.0 (Linux; Android 5.0.1; GT-I9515 Build/LRX22C) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/54.0.2840.85 Mobile Safari/537.36 +Mozilla/5.0 (Linux; Android 5.0.1; SAMSUNG GT-I9505 Build/LRX22C) AppleWebKit/537.36 (KHTML, like Gecko) SamsungBrowser/4.0 Chrome/44.0.2403.133 Mobile Safari/537.36 +Mozilla/5.0 (Linux; Android 5.0.2; Lenovo TAB 2 A8-50LC Build/LRX22G) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/39.0.2171.93 Safari/537.36 +Mozilla/5.0 (Linux; Android 5.0.2; LG-D693TR Build/LRX22G) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/34.0.1847.118 Mobile Safari/537.36 +Mozilla/5.0 (Linux; Android 5.0; Lenovo K50-t5 Build/LRX21M) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/54.0.2840.85 Mobile Safari/537.36 +Mozilla/5.0 (Linux; Android 5.0; SAMSUNG SM-N9005 Build/LRX21V) AppleWebKit/537.36 (KHTML, like Gecko) SamsungBrowser/4.0 Chrome/44.0.2403.133 Mobile Safari/537.36 +Mozilla/5.0 (Linux; Android 5.0; SM-N900V Build/LRX21V) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/54.0.2840.85 Mobile Safari/537.36 +Mozilla/5.0 (Linux; Android 5.0; VOYAGER2_DG310 Build/LRX21M) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/37.0.0.0 Mobile Safari/537.36 +Mozilla/5.0 (Linux; Android 5.1.1; Redmi 3 Build/LMY47V; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/54.0.2840.68 Mobile Safari/537.36 +Mozilla/5.0 (Linux; Android 5.1; Lenovo P70-A Build/LMY47D) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/55.0.2883.91 Mobile Safari/537.36 +Mozilla/5.0 (Linux; Android 5.1; LG-X210 Build/LMY47I) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/54.0.2840.68 Mobile Safari/537.36 +Mozilla/5.0 (Linux; Android 6.0.1; Nexus 5X Build/MMB29P) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/41.0.2272.96 Mobile Safari/537.36 (compatible; Googlebot/2.1; +http://www.google.com/bot.html) +Mozilla/5.0 (Linux; Android 6.0.1; SAMSUNG SM-A510F/A510FXXS3BPI9 Build/MMB29K) AppleWebKit/537.36 (KHTML, like Gecko) SamsungBrowser/4.0 Chrome/44.0.2403.133 Mobile Safari/537.36 +Mozilla/5.0 (Linux; Android 6.0.1; SAMSUNG SM-G900F Build/MMB29M) AppleWebKit/537.36 (KHTML, like Gecko) SamsungBrowser/4.0 Chrome/44.0.2403.133 Mobile Safari/537.36 +Mozilla/5.0 (Linux; Android 6.0.1; SAMSUNG SM-J700T1 Build/MMB29K) AppleWebKit/537.36 (KHTML, like Gecko) SamsungBrowser/4.0 Chrome/44.0.2403.133 Mobile Safari/537.36 +Mozilla/5.0 (Linux; Android 6.0.1; SM-G920F Build/MMB29K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/54.0.2840.85 Mobile Safari/537.36 +Mozilla/5.0 (Linux; Android 6.0.1; SM-G920F Build/MMB29K; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/54.0.2840.85 Mobile Safari/537.36 [FB_IAB/MESSENGER;FBAV/99.0.0.20.136;] +Mozilla/5.0 (Linux; Android 6.0.1; SM-N920I Build/MMB29K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/54.0.2840.85 Mobile Safari/537.36 +Mozilla/5.0 (Linux; Android 6.0.1; SM-N920P Build/MMB29K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/51.0.2704.81 Mobile Safari/537.36 +Mozilla/5.0 (Linux; Android 6.0; LG-H961N Build/MRA58K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/54.0.2840.85 Mobile Safari/537.36 +Mozilla/5.0 (Linux; U; Android 2.2.1; en-us; Nexus One Build/FRG83) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1 +Mozilla/5.0 (Linux; U; Android 2.2.2; ru-ru; HTC Desire Build/FRG83G) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1 +Mozilla/5.0 (Linux; U; Android 4.2.2; de-de; Cynus F4 Build/JDQ39) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Mobile Safari/534.30 +Mozilla/5.0 (Linux; U; Android 4.3; de-de; HUAWEI Y530-U00 Build/HuaweiY530-U00) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Mobile Safari/534.30 +Mozilla/5.0 (Linux; U; Android 4.4.4; en-US; Coolpad 8297L-I00 Build/KTU84P) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 UCBrowser/11.0.5.850 U3/0.8.0 Mobile Safari/534.30 +Mozilla/5.0 (Linux; U; Android 5.0.2; zh-CN; Redmi Note 3 Build/LRX22G) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 OPR/11.2.3.102637 Mobile Safari/537.36 +Mozilla/5.0 (Linux; U; Linux Ventana; ru-ru; Transformer TF101 Build/HTK75) AppleWebKit/534.13 (KHTML, like Gecko) Chrome/8.0 Safari/534.13 +Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/39.0.2171.95 Safari/537.36 +Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/39.0.2171.95 Safari/412982 +Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/39.0.2171.95 Safari/537.36 +Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/39.0.2171.99 Safari/537.36 +Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/40.0.2214.93 Safari/537.36 +Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/48.0.2564.116 Safari/537.36 +Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_1) AppleWebKit/600.2.5 (KHTML, like Gecko) Version/8.0.2 Safari/600.2.5 +Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/42.0.2311.135 Safari/537.36 +Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/41.0.2272.89 Safari/537.36 +Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/42.0.2311.135 Safari/537.36 +Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/42.0.2311.152 Safari/537.36 +Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/42.0.2311.90 Safari/537.36 +Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/43.0.2357.65 Safari/537.36 +Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/43.0.2357.81 Safari/537.36 +Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/44.0.2403.89 Safari/537.36 +Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/54.0.2840.71 Safari/537.36 +Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_3) AppleWebKit/600.5.17 (KHTML, like Gecko) Version/8.0.5 Safari/600.5.17 +Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_3) AppleWebKit/600.6.3 (KHTML, like Gecko) Version/8.0.6 Safari/600.6.3 +Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/54.0.2840.71 Safari/537.36 +Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/54.0.2840.98 Safari/537.36 +Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/55.0.2883.75 Safari/537.36 +Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_5) AppleWebKit/602.2.14 (KHTML, like Gecko) +Mozilla/5.0 (Macintosh; Intel Mac OS X 10.10; rv:27.0) Gecko/20100101 Firefox/27.0 +Mozilla/5.0 (Macintosh; Intel Mac OS X 10.10; rv:29.0) Gecko/20100101 Firefox/29.0 +Mozilla/5.0 (Macintosh; Intel Mac OS X 10.10; rv:31.0) Gecko/20100101 Firefox/31.0 +Mozilla/5.0 (Macintosh; Intel Mac OS X 10.10; rv:34.0) Gecko/20100101 Firefox/34.0 +Mozilla/5.0 (Macintosh; Intel Mac OS X 10.10; rv:37.0) Gecko/20100101 Firefox/37.0 +Mozilla/5.0 (Macintosh; Intel Mac OS X 10.10; rv:38.0) Gecko/20100101 Firefox/38.0 +Mozilla/5.0 (Macintosh; Intel Mac OS X 10.10; rv:43.0) Gecko/20100101 Firefox/43.0 +Mozilla/5.0 (Macintosh; Intel Mac OS X 10.10; rv:47.0) Gecko/20100101 Firefox/47.0 +Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/43.0.2386.61 Safari/537.36 +Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/48.0.2564.109 Safari/537.36 +Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/48.0.2564.116 Safari/537.36 +Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_3) AppleWebKit/601.4.4 (KHTML, like Gecko) Version/9.0.3 Safari/601.4.4 +Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_4) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/50.0.2661.102 Safari/537.36 +Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_4) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/54.0.2840.71 Safari/537.36 +Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_4) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/54.0.2840.98 Safari/537.36 +Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_4) AppleWebKit/601.5.17 (KHTML, like Gecko) Version/9.1 Safari/601.5.17 +Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/50.0.2661.102 Safari/537.36 +Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/54.0.2840.71 Safari/537.36 +Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/52.0.2743.116 Safari/537.36 +Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/52.0.2743.82 Safari/537.36 +Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/54.0.2840.71 Safari/537.36 +Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/54.0.2840.98 Safari/537.36 +Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/56.0.2907.0 Safari/537.36 +Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_6) AppleWebKit/601.7.7 (KHTML, like Gecko) Version/9.1.2 Safari/601.7.7 +Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_6) AppleWebKit/602.1.43 (KHTML, like Gecko) Version/10.0 Safari/602.1.43 +Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_6) AppleWebKit/602.1.50 (KHTML, like Gecko) +Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_6) AppleWebKit/602.2.14 (KHTML, like Gecko) +Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_6) AppleWebKit/602.2.14 (KHTML, like Gecko) Version/10.0.1 Safari/602.2.14 +Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_6) AppleWebKit/602.3.12 (KHTML, like Gecko) Version/10.0.2 Safari/602.3.12 +Mozilla/5.0 (Macintosh; Intel Mac OS X 10.11; rv:33.0) Gecko/20100101 Firefox/33.0 +Mozilla/5.0 (Macintosh; Intel Mac OS X 10.11; rv:45.0) Gecko/20100101 Firefox/45.0 +Mozilla/5.0 (Macintosh; Intel Mac OS X 10.11; rv:47.0) Gecko/20100101 Firefox/47.0 +Mozilla/5.0 (Macintosh; Intel Mac OS X 10.11; rv:51.0) Gecko/20100101 Firefox/51.0 +Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/54.0.2840.71 Safari/537.36 +Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/54.0.2840.98 Safari/537.36 +Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/54.0.2840.59 Safari/537.36 +Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/54.0.2840.71 Safari/537.36 +Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/54.0.2840.87 Safari/537.36 +Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/54.0.2840.98 Safari/537.36 +Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/55.0.2883.44 Safari/537.36 +Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/55.0.2883.75 Safari/537.36 +Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/55.0.2883.87 Safari/537.36 +Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_1) AppleWebKit/602.2.14 (KHTML, like Gecko) +Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_1) AppleWebKit/602.2.14 (KHTML, like Gecko) Version/10.0.1 Safari/602.2.14 +Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_1) AppleWebKit/603.1.10 (KHTML, like Gecko) +Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_2) AppleWebKit/602.3.12 (KHTML, like Gecko) Version/10.0.2 Safari/602.3.12 +Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12) AppleWebKit/602.1.50 (KHTML, like Gecko) +Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12) AppleWebKit/602.1.50 (KHTML, like Gecko) Version/10.0 Safari/602.1.50 +Mozilla/5.0 (Macintosh; Intel Mac OS X 10.12; rv:49.0) Gecko/20100101 Firefox/49.0 +Mozilla/5.0 (Macintosh; Intel Mac OS X 10.12; rv:50.0) Gecko/20100101 Firefox/50.0 +Mozilla/5.0 (Macintosh; Intel Mac OS X 10_6_8) AppleWebKit/534.59.10 (KHTML, like Gecko) Version/5.1.9 Safari/534.59.10 +Mozilla/5.0 (Macintosh; Intel Mac OS X 10_6_8) AppleWebKit/534.59.8 (KHTML, like Gecko) Version/5.1.9 Safari/534.59.8 +Mozilla/5.0 (Macintosh; Intel Mac OS X 10_6_8) AppleWebKit/535.1 (KHTML, like Gecko) Chrome/13.0.782.24 Safari/535.1 +Mozilla/5.0 (Macintosh; Intel Mac OS X 10_6_8) AppleWebKit/537.13+ (KHTML, like Gecko) Version/5.1.7 Safari/534.57.2 +Mozilla/5.0 (Macintosh; Intel Mac OS X 10_6_8) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/31.0.1650.63 Safari/537.36 +Mozilla/5.0 (Macintosh; Intel Mac OS X 10.6; rv:26.0) Gecko/20100101 Firefox/26.0 +Mozilla/5.0 (Macintosh; Intel Mac OS X 10.6; rv:30.0) Gecko/20100101 Firefox/30.0 +Mozilla/5.0 (Macintosh; Intel Mac OS X 10_7_2) AppleWebKit/534.51.22 (KHTML, like Gecko) Version/5.1.1 Safari/534.51.22 +Mozilla/5.0 (Macintosh; Intel Mac OS X 10_7_2) AppleWebKit/535.1 (KHTML, like Gecko) Chrome/14.0.835.186 Safari/535.1 +Mozilla/5.0 (Macintosh; Intel Mac OS X 10_7_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/27.0.1453.93 Safari/537.36 +Mozilla/5.0 (Macintosh; Intel Mac OS X 10_7_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/31.0.1650.63 Safari/537.36 +Mozilla/5.0 (Macintosh; Intel Mac OS X 10_7_5) AppleWebKit/537.71 (KHTML, like Gecko) Version/6.1 Safari/537.71 +Mozilla/5.0 (Macintosh; Intel Mac OS X 10_7_5) AppleWebKit/537.73.11 (KHTML, like Gecko) Version/6.1.1 Safari/537.73.11 +Mozilla/5.0 (Macintosh; Intel Mac OS X 10.7; rv:26.0) Gecko/20100101 Firefox/26.0 +Mozilla/5.0 (Macintosh; Intel Mac OS X 10.7; rv:34.0) Gecko/20100101 Firefox/34.0 +Mozilla/5.0 (Macintosh; Intel Mac OS X 10_8_3) AppleWebKit/537.31 (KHTML, like Gecko) Chrome/26.0.1410.65 Safari/537.31 +Mozilla/5.0 (Macintosh; Intel Mac OS X 1084) AppleWebKit/536.29.13 (KHTML like Gecko) Version/6.0.4 Safari/536.29.13 +Mozilla/5.0 (Macintosh; Intel Mac OS X 10_8_4) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/27.0.1453.110 Safari/537.36 +Mozilla/5.0 (Macintosh; Intel Mac OS X 10_8_4) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/31.0.1650.63 Safari/537.36 +Mozilla/5.0 (Macintosh; Intel Mac OS X 10_8_4) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/39.0.2171.95 Safari/537.36 +Mozilla/5.0 (Macintosh; Intel Mac OS X 10_8_5) AppleWebKit/536.30.1 (KHTML, like Gecko) Version/6.0.5 Safari/536.30.1 +Mozilla/5.0 (Macintosh; Intel Mac OS X 10_8_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/31.0.1650.63 Safari/537.36 +Mozilla/5.0 (Macintosh; Intel Mac OS X 10_8_5) AppleWebKit/537.71 (KHTML, like Gecko) Version/6.1 Safari/537.71 +Mozilla/5.0 (Macintosh; Intel Mac OS X 10_8_5) AppleWebKit/537.73.11 (KHTML, like Gecko) Version/6.1.1 Safari/537.73.11 +Mozilla/5.0 (Macintosh; Intel Mac OS X 10.8; rv:26.0) Gecko/20100101 Firefox/26.0 +Mozilla/5.0 (Macintosh; Intel Mac OS X 10.8; rv:43.0) Gecko/20100101 Firefox/43.0 +Mozilla/5.0 (Macintosh; Intel Mac OS X 10_9_0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/31.0.1650.57 Safari/537.36 +Mozilla/5.0 (Macintosh; Intel Mac OS X 10_9_0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/31.0.1650.63 Safari/537.36 +Mozilla/5.0 (Macintosh; Intel Mac OS X 10_9_1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/31.0.1650.57 Safari/537.36 +Mozilla/5.0 (Macintosh; Intel Mac OS X 10_9_1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/31.0.1650.63 Safari/537.36 +Mozilla/5.0 (Macintosh; Intel Mac OS X 10_9_1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/32.0.1700.68 Safari/537.36 +Mozilla/5.0 (Macintosh; Intel Mac OS X 10_9_1) AppleWebKit/537.73.11 (KHTML, like Gecko) Version/7.0.1 Safari/537.73.11 +Mozilla/5.0 (Macintosh; Intel Mac OS X 10_9_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/34.0.1847.131 Safari/537.36 +Mozilla/5.0 (Macintosh; Intel Mac OS X 10_9_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/38.0.2125.111 Safari/537.36 +Mozilla/5.0 (Macintosh; Intel Mac OS X 10_9_2) AppleWebKit/537.75.14 (KHTML, like Gecko) Version/7.0.3 Safari/537.75.14 +Mozilla/5.0 (Macintosh; Intel Mac OS X 10_9_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/35.0.1916.114 Safari/537.36 +Mozilla/5.0 (Macintosh; Intel Mac OS X 10_9_4) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/43.0.2357.124 Safari/537.36 +Mozilla/5.0 (Macintosh; Intel Mac OS X 10_9_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/38.0.2125.122 Safari/537.36 +Mozilla/5.0 (Macintosh; Intel Mac OS X 10_9_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/39.0.2183.55 Safari/537.36 +Mozilla/5.0 (Macintosh; Intel Mac OS X 10_9_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/42.0.2311.135 Safari/537.36 +Mozilla/5.0 (Macintosh; Intel Mac OS X 10_9) AppleWebKit/537.71 (KHTML, like Gecko) Version/7.0 Safari/537.71 +Mozilla/5.0 (Macintosh; Intel Mac OS X 10.9; rv:25.0) Gecko/20100101 Firefox/25.0 +Mozilla/5.0 (Macintosh; Intel Mac OS X 10.9; rv:26.0) Gecko/20100101 Firefox/26.0 +Mozilla/5.0 (Macintosh; Intel Mac OS X 10.9; rv:29.0) Gecko/20100101 Firefox/29.0 +Mozilla/5.0 (Macintosh; Intel Mac OS X 10.9; rv:35.0) Gecko/20100101 Firefox/35.0 +Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10_5_8; zh-cn) AppleWebKit/533.18.1 (KHTML, like Gecko) Version/5.0.2 Safari/533.18.5 +Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10.6; fr; rv:1.9.2.8) Gecko/20100722 Firefox/3.6.8 +Mozilla/5.0 (Mobile; Windows Phone 8.1; Android 4.0; ARM; Trident/7.0; Touch; rv:11.0; IEMobile/11.0; NOKIA; Lumia 930; Vodafone) like iPhone OS 7_0_3 Mac OS X AppleWebKit/537 (KHTML, like Gecko) Mobile Safari/537 +Mozilla/5.0 Moreover/5.1 (+http://www.moreover.com; webmaster@moreover.com) +Mozilla/5.0 Project 25499 (project25499.com) +Mozilla/5.0 (SymbianOS/9.2; U; Series60/3.1 NokiaN95/31.0.017; Profile/MIDP-2.0 Configuration/CLDC-1.1 ) AppleWebKit/413 (KHTML, like Gecko) Safari/413 +Mozilla/5.0 (Unknown; Linux x86_64) AppleWebKit/538.1 (KHTML, like Gecko) PhantomJS/2.1.1 Safari/538.1 +Mozilla/5.0 (Windows NT 10.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/46.0.2486.0 Safari/537.36 Edge/13.10586 +Mozilla/5.0 (Windows NT 10.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/50.0.2661.102 Safari/537.36 +Mozilla/5.0 (Windows NT 10.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/54.0.2840.99 Safari/537.36 +Mozilla/5.0 (Windows NT 10.0; rv:46.0) Gecko/20100101 Firefox/46.0 +Mozilla/5.0 (Windows NT 10.0; rv:50.0) Gecko/20100101 Firefox/50.0 +Mozilla/5.0 (Windows NT 10.0; rv:52.0) Gecko/20100101 Firefox/52.0 +Mozilla/5.0 (Windows NT 10.0; Trident/7.0; rv:11.0) like Gecko +Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/41.0.2301.96 Safari/537.36 +Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/42.0.2311.135 Safari/537.36 Edge/12.10240 +Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/51.0.2704.79 Safari/537.36 Edge/14.14393 +Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/52.0.2743.116 Safari/537.36 Edge/15.14970 +Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/54.0.2840.71 Safari/537.36 +Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/54.0.2840.87 Safari/537.36 +Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/54.0.2840.99 Safari/537.36 +Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/54.0.2840.99 Safari/537.36 FirePHP/4Chrome +Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/55.0.2883.75 Safari/537.36 +Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/55.0.2883.87 Safari/537.36 +Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/56.0.2922.0 Safari/537.36 +Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/56.0.2922.1 Safari/537.36 +Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/56.0.2924.14 Safari/537.36 +Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:40.0) Gecko/20100101 Firefox/40.0 +Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:48.0) Gecko/20100101 Firefox/48.0 +Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:49.0) Gecko/20100101 Firefox/49.0 +Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:50.0) Gecko/20100101 Firefox/50.0 +Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:51.0) Gecko/20100101 Firefox/51.0 +Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:52.0) Gecko/20100101 Firefox/52.0 +Mozilla/5.0 (Windows NT 10.0; Win64; x64; Trident/7.0; rv:11.0) like Gecko +Mozilla/5.0 (Windows NT 10.0; WOW64) +Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/38.0.2125.122 Safari/537.36 SE 2.X MetaSr 1.0 +Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/43.0.2357.81 Safari/537.36 OPR/30.0.1835.59 (Edition Rambler) +Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.101 Safari/537.36 +Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.93 Safari/537.36 +Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/46.0.2490.80 Safari/537.36 +Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/47.0.2526.111 Safari/537.36 +Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/48.0.2564.103 Safari/537.36 +Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/48.0.2564.109 Safari/537.36 +Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/48.0.2564.116 Safari/537.36 +Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/48.0.2564.97 Safari/537.36 +Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/49.0.2623.75 Safari/537.36 OPR/36.0.2130.32 +Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/49.0.2623.87 Safari/537.36 +Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/50.0.2661.102 Safari/537.36 +Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/51.0.2704.103 Safari/537.36 +Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/52.0.2743.116 Safari/537.36 +Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/53.0.2785.116 YaBrowser/16.10.0.2564 Yowser/2.5 Safari/537.36 +Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/53.0.2785.143 Safari/537.36 +Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/53.0.2785.143 YaBrowser/16.10.1.1114 Yowser/2.5 Safari/537.36 +Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/54.0.2840.71 Safari/537.36 +Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/54.0.2840.87 Safari/537.36 +Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/54.0.2840.99 Safari/537.36 +Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/54.0.2840.99 Safari/537.36 OPR/41.0.2353.69 +Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/55.0.2883.75 Safari/537.36 OPR/42.0.2393.85 +Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/55.0.2883.87 Safari/537.36 +Mozilla/5.0 (Windows NT 10.0; WOW64; rv:38.0) Gecko/20100101 Firefox/38.0 +Mozilla/5.0 (Windows NT 10.0; WOW64; rv:39.0) Gecko/20100101 Firefox/39.0 +Mozilla/5.0 (Windows NT 10.0; WOW64; rv:40.0) Gecko/20100101 Firefox/40.0 +Mozilla/5.0 (Windows NT 10.0; WOW64; rv:41.0) Gecko/20100101 Firefox/41.0 +Mozilla/5.0 (Windows NT 10.0; WOW64; rv:43.0) Gecko/20100101 Firefox/43.0 +Mozilla/5.0 (Windows NT 10.0; WOW64; rv:44.0) Gecko/20100101 Firefox/44.0 +Mozilla/5.0 (Windows NT 10.0; WOW64; rv:46.0) Gecko/20100101 Firefox/46.0 +Mozilla/5.0 (Windows NT 10.0; WOW64; rv:49.0) Gecko/20100101 Firefox/49.0 +Mozilla/5.0 (Windows NT 10.0; WOW64; rv:50.0) Gecko/20100101 Firefox/50.0 +Mozilla/5.0 (Windows NT 10.0; WOW64; Trident/7.0; rv:11.0) like Gecko +Mozilla/5.0 (Windows NT 5.1) AppleWebKit/535.11 (KHTML, like Gecko) Chrome/17.0.963.46 Safari/535.11 MRCHROME +Mozilla/5.0 (Windows NT 5.1) AppleWebKit/535.1 (KHTML, like Gecko) Chrome/14.0.810.0 Safari/535.1 +Mozilla/5.0 (Windows NT 5.1) AppleWebKit/537.1 (KHTML, like Gecko) Chrome/24.0.1290.1 Safari/537.13 +Mozilla/5.0 (Windows NT 5.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/28.0.1468.0 Safari/537.36 +Mozilla/5.0 (Windows NT 5.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/31.0.1650.63 Safari/537.36 +Mozilla/5.0 (Windows NT 5.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/34.0.1847.116 Safari/537.36 +Mozilla/5.0 (Windows NT 5.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/39.0.2171.95 Safari/537.36 +Mozilla/5.0 (Windows NT 5.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/39.0.2171.95 Safari/537.36 OPR/26.0.1656.60 +Mozilla/5.0 (Windows NT 5.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/39.0.2171.99 Safari/537.36 +Mozilla/5.0 (Windows NT 5.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/42.0.2311.90 Safari/537.36 +Mozilla/5.0 (Windows NT 5.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.101 Safari/537.36 +Mozilla/5.0 (Windows NT 5.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/49.0.2623.112 Safari/537.36 +Mozilla/5.0 (Windows NT 5.1; ru-RU; rv:26.0) Gecko/20100101 Firefox/26.0 +Mozilla/5.0 (Windows NT 5.1; rv:2.0b13pre) Gecko/20110223 Firefox/4.0b13pre +Mozilla/5.0 (Windows NT 5.1; rv:24.0) Gecko/20100101 Firefox/24.0 +Mozilla/5.0 (Windows NT 5.1; rv:25.0) Gecko/20100101 Firefox/25.0 +Mozilla/5.0 (Windows NT 5.1; rv:26.0) Gecko/20100101 Firefox/26.0 +Mozilla/5.0 (Windows NT 5.1; rv:32.0) Gecko/20100101 Firefox/31.0 +Mozilla/5.0 (Windows NT 5.1; rv:34.0) Gecko/20100101 Firefox/34.0 +Mozilla/5.0 (Windows NT 5.1; rv:35.0) Gecko/20100101 Firefox/35.0 +Mozilla/5.0 (Windows NT 5.1; rv:38.0) Gecko/20100101 Firefox/38.0 K-Meleon/76.0 +Mozilla/5.0 (Windows NT 5.1; rv:43.0) Gecko/20100101 Firefox/43.0 +Mozilla/5.0 (Windows NT 5.1; rv:47.0) Gecko/20100101 Firefox/47.0 +Mozilla/5.0 (Windows NT 5.1; rv:48.0) Gecko/20100101 Firefox/48.0 +Mozilla/5.0 (Windows NT 5.1; rv:49.0) Gecko/20100101 Firefox/49.0 +Mozilla/5.0 (Windows NT 5.1; rv:50.0) Gecko/20100101 Firefox/50.0 +Mozilla/5.0 (Windows NT 5.1; rv:6.0.2) Gecko/20100101 Firefox/6.0.2 +Mozilla/5.0 (Windows NT 5.1; rv:7.0.1) Gecko/20100101 Firefox/7.0.1 +Mozilla/5.0 (Windows NT 5.1; rv:9.0.1) Gecko/20100101 Firefox/9.0.1 +Mozilla/5.0 (Windows NT 5.1; U; en) Opera 8.00 +Mozilla/5.0 (Windows NT 5.1; U; en) Opera 8.01 +Mozilla/5.0 (Windows NT 5.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/36.0.1996.45 Safari/537.36 +Mozilla/5.0 (Windows NT 5.2; rv:43.0) Gecko/20100101 Firefox/43.0 +Mozilla/5.0 (Windows NT 5.2; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/49.0.2623.112 Safari/537.36 +Mozilla/5.0 (Windows NT 6.0) AppleWebKit/535.1 (KHTML, like Gecko) Chrome/14.0.792.0 Safari/535.1 +Mozilla/5.0 (Windows NT 6.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/30.0.1599.17 Safari/537.36 +Mozilla/5.0 (Windows NT 6.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/31.0.1650.63 Safari/537.36 +Mozilla/5.0 (Windows NT 6.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/34.0.1847.116 Safari/537.36 +Mozilla/5.0 (Windows NT 6.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/39.0.2171.71 Safari/537.36 +Mozilla/5.0 (Windows NT 6.0; rv:26.0) Gecko/20100101 Firefox/26.0 +Mozilla/5.0 (Windows NT 6.0; rv:34.0) Gecko/20100101 Firefox/34.0 +Mozilla/5.0 (Windows NT 6.0; rv:49.0) Gecko/20100101 Firefox/49.0 +Mozilla/5.0 (Windows NT 6.0; rv:50.0) Gecko/20100101 Firefox/50.0 +Mozilla/5.0 (Windows NT 6.0; WOW64) AppleWebKit/534.24 (KHTML, like Gecko) Chrome/11.0.696.34 Safari/534.24 +Mozilla/5.0 (Windows NT 6.0; WOW64) AppleWebKit/534.30 (KHTML, like Gecko) Chrome/12.0.742.91 Safari/534.30 +Mozilla/5.0 (Windows NT 6.0; WOW64) AppleWebKit/537.17 (KHTML, like Gecko) Chrome/24.0.1312.57 Safari/537.17 +Mozilla/5.0 (Windows NT 6.0; WOW64; rv:40.0) Gecko/20100101 Firefox/40.0 +Mozilla/5.0 (Windows NT 6.1) AppleWebKit/536.5 (KHTML like Gecko) Chrome/19.0.1084.56 Safari/536.5 +Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.1 (KHTML, like Gecko) Chrome/21.0.1180.89 Safari/537.1 +Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/27.0.1453.90 Safari/537.36 +Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/31.0.1650.63 Safari/537.36 +Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/32.0.1700.72 Safari/537.36 +Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/33.0.1750.154 Safari/537.36 +Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/33.0.1750.154 Safari/537.36 OPR/20.0.1387.91 +Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/37.0.2062.124 YaBrowser/14.10.2062.12521 Safari/537.36 +Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/39.0.2171.95 Safari/537.36 +Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/39.0.2171.95 Safari/537.36 OPR/26.0.1656.60 +Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/41.0.2228.0 Safari/537.36 +Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/47.0.2526.111 Safari/537.36 +Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/48.0.2564.109 Safari/537.36 +Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/53.0.2785.116 Safari/537.36 +Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/53.0.2785.143 Safari/537.36 +Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/53.0.2785.21 Safari/537.36 +Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/54.0.2840.71 Safari/537.36 +Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/54.0.2840.99 Safari/537.36 +Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/54.0.2840.99 Safari/537.36 OPR/41.0.2353.69 +Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/55.0.2883.75 Safari/537.36 +Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Dragon/36.1.1.21 Chrome/36.0.1985.97 Safari/537.36 +Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Iron/32.0.1750.1 Chrome/32.0.1750.1 Safari/537.36 +Mozilla/5.0 (Windows NT 6.1; rv:12.0) Gecko/ 20120405 Firefox/14.0.1 +Mozilla/5.0 (Windows NT 6.1; rv:18.0) Gecko/20100101 Firefox/18.0 +Mozilla/5.0 (Windows NT 6.1; rv:19.0) Gecko/20100101 Firefox/19.0 +Mozilla/5.0 (Windows NT 6.1; rv:1.9) Gecko/20100101 Firefox/4.0 +Mozilla/5.0 (Windows NT 6.1; rv:2.0b10pre) Gecko/20110113 Firefox/4.0b10pre +Mozilla/5.0 (Windows NT 6.1; rv:2.0b6pre) Gecko/20100903 Firefox/4.0b6pre Firefox/4.0b6pre +Mozilla/5.0 (Windows NT 6.1; rv:21.0) Gecko/20100101 Firefox/21.0 +Mozilla/5.0 (Windows NT 6.1; rv:24.0) Gecko/20100101 Firefox/24.0 +Mozilla/5.0 (Windows NT 6.1; rv:24.0) Gecko/20140329 Firefox/24.0 PaleMoon/24.4.2 +Mozilla/5.0 (Windows NT 6.1; rv:25.0) Gecko/20100101 Firefox/25.0 +Mozilla/5.0 (Windows NT 6.1; rv:26.0) Gecko/20100101 Firefox/26.0 +Mozilla/5.0 (Windows NT 6.1; rv:28.0) Gecko/20100101 Firefox/28.0 +Mozilla/5.0 (Windows NT 6.1; rv:31.0) Gecko/20100101 Firefox/31.0 +Mozilla/5.0 (Windows NT 6.1; rv:32.0) Gecko/20100101 Firefox/32.0 +Mozilla/5.0 (Windows NT 6.1; rv:34.0) Gecko/20100101 Firefox/34.0 +Mozilla/5.0 (Windows NT 6.1; rv:35.0) Gecko/20100101 Firefox/35.0 +Mozilla/5.0 (Windows NT 6.1; rv:38.0) Gecko/20100101 Firefox/38.0 K-Meleon/76.0 +Mozilla/5.0 (Windows NT 6.1; rv:39.0) Gecko/20100101 Firefox/39.0 +Mozilla/5.0 (Windows NT 6.1; rv:43.0) Gecko/20100101 Firefox/43.0 +Mozilla/5.0 (Windows NT 6.1; rv:44.0) Gecko/20100101 Firefox/44.0 +Mozilla/5.0 (Windows NT 6.1; rv:45.0) Gecko/20100101 Firefox/45.0 +Mozilla/5.0 (Windows NT 6.1; rv:49.0) Gecko/20100101 Firefox/49.0 +Mozilla/5.0 (Windows NT 6.1; rv:50.0) Gecko/20100101 Firefox/50.0 +Mozilla/5.0 (Windows NT 6.1; rv:5.0) Gecko/20100101 Firefox/5.0 +Mozilla/5.0 (Windows NT 6.1; rv:6.0) Gecko/20100101 Firefox/19.0 +Mozilla/5.0 (Windows NT 6.1; rv:9.0.1) Gecko/20100101 Firefox/9.0.1 +Mozilla/5.0 (Windows NT 6.1; Trident/7.0; rv:11.0) like C9CF7 +Mozilla/5.0 (Windows NT 6.1; Trident/7.0; rv:11.0) like Gecko +Mozilla/5.0 (Windows NT 6.1; U;WOW64; de;rv:11.0) Gecko Firefox/11.0 +Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/39.0.2171.95 Safari/537.36 +Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/40.0.2214.85 Safari/537.36 +Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/52.0.2743.82 Safari/537.36 +Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/54.0.2840.71 Safari/537.36 +Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/54.0.2840.87 Safari/537.36 +Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/54.0.2840.99 Safari/537.36 +Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/55.0.2883.59 Safari/537.36 +Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:2.0b11pre) Gecko/20110128 Firefox/4.0b11pre +Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:2.2a1pre) Gecko/20110324 Firefox/4.2a1pre +Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:24.0) Gecko/20100101 Firefox/24.0 Waterfox/24.0 +Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:44.0) Gecko/20100101 Firefox/44.0 +Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:5.0) Gecko/20110619 Firefox/5.0 +Mozilla/5.0 (Windows NT 6.1; Win64; x64; Trident/7.0; CTL_IE11; rv:11.0) like Gecko +Mozilla/5.0 (Windows NT 6.1; Win64; x64; Trident/7.0; rv:11.0) like Gecko +Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/534.24 (KHTML, like Gecko) Chrome/11.0.696.12 Safari/534.24 +Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/534+ (KHTML, like Gecko) BingPreview/1.0b +Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/535.2 (KHTML, like Gecko) Chrome/15.0.874.121 Safari/535.2 +Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.17 (KHTML, like Gecko) Chrome/24.0.1312.52 Safari/537.17 +Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/28.0.1468.0 Safari/537.36 +Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/28.0.1500.72 Safari/537.36 +Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/28.0.1500.95 YaBrowser/13.10.1500.9323 Safari/537.36 +Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/29.0.1547.57 Safari/537.36 OPR/16.0.1196.73 +Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/31.0.1650.57 Safari/537.36 +Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/31.0.1650.63 Safari/537.36 +Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/32.0.1700.107 Safari/537.36 +Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/32.0.1700.41 Safari/537.36 +Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/34.0.1847.116 Safari/537.36 +Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/34.0.1847.131 Safari/537.36 +Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/34.0.1847.137 Safari/537.36 +Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML like Gecko) Chrome/35.0.1916.114 Safari/537.36 +Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/35.0.1916.153 Safari/537.36 +Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/36.0.1985.125 Safari/537.36 +Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/36.0.1985.143 Safari/537.36 +Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/37.0.2062.120 Safari/537.36 +Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/39.0.2171.95 Safari/537.36 +Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/39.0.2171.95 Safari/537.36 OPR/26.0.1656.60 +Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/39.0.2171.99 Safari/537.36 +Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/40.0.2214.111 Safari/537.36 +Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/40.0.2214.115 Safari/537.36 +Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/41.0.2227.0 Safari/537.36 +Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/42.0.2311.135 Safari/537.36 +Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/42.0.2311.152 Safari/537.36 +Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/43.0.2357.65 Safari/537.36 +Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/43.0.2357.81 Safari/537.36 +Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/44.0.2403.125 Safari/537.36 +Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/44.0.2403.89 Safari/537.36 +Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/46.0.2490.86 YaBrowser/15.12.1.6475 Safari/537.36 +Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/47.0.2526.106 Safari/537.36 +Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/47.0.2526.111 Safari/537.36 +Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/47.0.2526.111 Safari/537.36 OPR/34.0.2036.50 +Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/47.0.2526.111 YaBrowser/16.2.0.3539 Safari/537.36 +Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/48.0.2564.103 Safari/537.36 +Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/48.0.2564.109 Safari/537.36 +Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/48.0.2564.116 Safari/537.36 +Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/48.0.2564.82 Safari/537.36 OPR/35.0.2066.37 +Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/48.0.2564.97 Safari/537.36 +Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/51.0.2704.103 Safari/537.36 +Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/53.0.2785.143 Safari/537.36 +Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/53.0.2785.143 YaBrowser/16.10.1.1114 Yowser/2.5 Safari/537.36 +Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/54.0.2840.71 Safari/537.36 +Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/54.0.2840.87 Safari/537.36 +Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/54.0.2840.99 Safari/537.36 +Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/54.0.2840.99 Safari/537.36 OPR/41.0.2353.69 +Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/55.0.2883.75 Safari/537.36 +Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/55.0.2883.87 Safari/537.36 +Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Dragon/36.1.1.21 Chrome/36.0.1985.97 Safari/537.36 +Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Iron/29.0.1600.1 Chrome/29.0.1600.1 Safari/537.36 +Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Maxthon/4.4.3.4000 Chrome/30.0.1599.101 Safari/537.36 +Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Maxthon/4.4.4.600 Chrome/30.0.1599.101 Safari/537.36 +Mozilla/5.0 (Windows NT 6.1; WOW64; rv:16.0) Gecko/20100101 Firefox/36.0 +Mozilla/5.0 (Windows NT 6.1; WOW64; rv:19.0) Gecko/20100101 Firefox/19.0 +Mozilla/5.0 (Windows NT 6.1; WOW64; rv:2.0b11pre) Gecko/20110128 Firefox/4.0b11pre +Mozilla/5.0 (Windows NT 6.1; WOW64; rv:2.0b7) Gecko/20100101 Firefox/4.0b7 +Mozilla/5.0 (Windows NT 6.1; WOW64; rv:21.0) Gecko/20100101 Firefox/21.0 +Mozilla/5.0 (Windows NT 6.1; WOW64; rv:22.0) Gecko/20100101 Firefox/22.0 +Mozilla/5.0 (Windows NT 6.1; WOW64; rv:24.0) Gecko/20100101 Firefox/24.0 +Mozilla/5.0 (Windows NT 6.1; WOW64; rv:25.0) Gecko/20100101 Firefox/25.0 +Mozilla/5.0 (Windows NT 6.1; WOW64; rv:26.0) Gecko/20100101 Firefox/26.0 +Mozilla/5.0 (Windows NT 6.1; WOW64; rv:27.0) Gecko/20100101 Firefox/27.0 +Mozilla/5.0 (Windows NT 6.1; WOW64; rv:27.3) Gecko/20100101 Firefox/27.3 +Mozilla/5.0 (Windows NT 6.1; WOW64; rv:28.0) Gecko/20100101 Firefox/28.0 +Mozilla/5.0 (Windows NT 6.1; WOW64; rv:29.0) Gecko/20100101 Firefox/29.0 +Mozilla/5.0 (Windows NT 6.1; WOW64; rv:31.0) Gecko/20100101 Firefox/31.0 +Mozilla/5.0 (Windows NT 6.1; WOW64; rv:31.0) Gecko/20130401 Firefox/31.0 +Mozilla/5.0 (Windows NT 6.1; WOW64; rv:33.0) Gecko/20100101 Firefox/33.0 +Mozilla/5.0 (Windows NT 6.1; WOW64; rv:34.0) Gecko/20100101 Firefox/34.0 +Mozilla/5.0 (Windows NT 6.1; WOW64; rv:35.0) Gecko/20100101 Firefox/35.0 +Mozilla/5.0 (Windows NT 6.1; WOW64; rv:36.0) Gecko/20100101 Firefox/36.0 +Mozilla/5.0 (Windows NT 6.1; WOW64; rv:37.0) Gecko/20100101 Firefox/37.0 +Mozilla/5.0 (Windows NT 6.1; WOW64; rv:38.0) Gecko/20100101 Firefox/38.0 +Mozilla/5.0 (Windows NT 6.1; WOW64; rv:40.0) Gecko/20100101 Firefox/40.1 +Mozilla/5.0 (Windows NT 6.1; WOW64; rv:43.0) Gecko/20100101 Firefox/43.0 +Mozilla/5.0 (Windows NT 6.1; WOW64; rv:44.0) Gecko/20100101 Firefox/44.0 +Mozilla/5.0 (Windows NT 6.1; WOW64; rv:45.0) Gecko/20100101 Firefox/45.0 +Mozilla/5.0 (Windows NT 6.1; WOW64; rv:46.0) Gecko/20100101 Firefox/46.0 +Mozilla/5.0 (Windows NT 6.1; WOW64; rv:47.0) Gecko/20100101 Firefox/47.0 +Mozilla/5.0 (Windows NT 6.1; WOW64; rv:49.0) Gecko/20100101 Firefox/49.0 +Mozilla/5.0 (Windows NT 6.1; WOW64; rv:50.0) Gecko/20100101 Firefox/50.0 +Mozilla/5.0 (Windows NT 6.1; WOW64; Trident/7.0; AS; rv:11.0) like Gecko +Mozilla/5.0 (Windows NT 6.1; WOW64; Trident/7.0; CTL_IE11; rv:11.0) like Gecko +Mozilla/5.0 (Windows NT 6.1; WOW64; Trident/7.0; rv:11.0) like Gecko +Mozilla/5.0 (Windows NT 6.2) AppleWebKit/537.36 (KHTML like Gecko) Chrome/27.0.1453.116 Safari/537.36 +Mozilla/5.0 (Windows NT 6.2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/31.0.1650.63 Safari/537.36 QIHU 360SE; 360Spider +Mozilla/5.0 (Windows NT 6.2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/39.0.2171.99 Safari/537.36 +Mozilla/5.0 (Windows NT 6.2;en-US) AppleWebKit/537.36 (KHTML, live Gecko) Chrome/39.0.2206.79 Safari/537 +Mozilla/5.0 (Windows NT 6.2; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2477.75 Safari/537.36 +Mozilla/5.0 (Windows NT 6.2; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/54.0.2840.99 Safari/537.36 +Mozilla/5.0 (Windows NT 6.2; Win64; x64; rv:27.0) Gecko/20100101 Firefox/27.0 +Mozilla/5.0 (Windows NT 6.2; Win64; x64; rv:36.0) Gecko/20100101 Firefox/36.0 +Mozilla/5.0 (Windows NT 6.2; WOW64) AppleWebKit/537.31 (KHTML, like Gecko) Chrome/26.0.1410.58 Safari/537.31 +Mozilla/5.0 (Windows NT 6.2; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/27.0.1453.94 Safari/537.36 +Mozilla/5.0 (Windows NT 6.2; WOW64) AppleWebKit/537.36 (KHTML like Gecko) Chrome/28.0.1469.0 Safari/537.36 +Mozilla/5.0 (Windows NT 6.2; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/29.0.1547.0 Safari/537.36 +Mozilla/5.0 (Windows NT 6.2; WOW64) AppleWebKit/537.36 (KHTML like Gecko) Chrome/30.0.1599.69 Safari/537.36 +Mozilla/5.0 (Windows NT 6.2; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/31.0.1650.63 Safari/537.36 +Mozilla/5.0 (Windows NT 6.2; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/32.0.1700.107 Safari/537.36 OPR/19.0.1326.63 (Edition Campaign 21) +Mozilla/5.0 (Windows NT 6.2; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/33.0.1750.5 Safari/537.36 +Mozilla/5.0 (Windows NT 6.2; WOW64) AppleWebKit/537.36 (KHTML like Gecko) Chrome/34.0.1847.116 Safari/537.36 +Mozilla/5.0 (Windows NT 6.2; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/39.0.2171.95 Safari/537.36 +Mozilla/5.0 (Windows NT 6.2; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/41.0.2227.1 Safari/537.36 +Mozilla/5.0 (Windows NT 6.2; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/46.0.2490.80 Safari/537.36 +Mozilla/5.0 (Windows NT 6.2; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/54.0.2840.99 Safari/537.36 +Mozilla/5.0 (Windows NT 6.2; WOW64; rv:19.0) Gecko/20100101 Firefox/19.0 +Mozilla/5.0 (Windows NT 6.2; WOW64; rv:26.0) Gecko/20100101 Firefox/26.0 +Mozilla/5.0 (Windows NT 6.2; WOW64; rv:29.0) Gecko/20100101 Firefox/29.0 +Mozilla/5.0 (Windows NT 6.2; WOW64; rv:34.0) Gecko/20100101 Firefox/34.0 +Mozilla/5.0 (Windows NT 6.2; WOW64; rv:35.0) Gecko/20100101 Firefox/35.0 +Mozilla/5.0 (Windows NT 6.2; WOW64; rv:36.0) Gecko/20100101 Firefox/36.0 +Mozilla/5.0 (Windows NT 6.2; WOW64; rv:44.0) Gecko/20100101 Firefox/44.0 +Mozilla/5.0 (Windows NT 6.2; WOW64; rv:49.0) Gecko/20100101 Firefox/49.0 +Mozilla/5.0 (Windows NT 6.2; WOW64; rv:50.0) Gecko/20100101 Firefox/50.0 +Mozilla/5.0 (Windows NT 6.2; WOW64; Trident/7.0; rv:11.0) like Gecko +Mozilla/5.0 (Windows NT 6.3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/39.0.2171.95 Safari/537.36 +Mozilla/5.0 (Windows NT 6.3; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/37.0.2049.0 Safari/537.36 +Mozilla/5.0 (Windows NT 6.3; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/41.0.2220.0 Safari/537.36 +Mozilla/5.0 (Windows NT 6.3; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/54.0.2840.71 Safari/537.36 +Mozilla/5.0 (Windows NT 6.3; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/54.0.2840.87 Safari/537.36 +Mozilla/5.0 (Windows NT 6.3; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/54.0.2840.99 Safari/537.36 +Mozilla/5.0 (Windows NT 6.3; Win64; x64; rv:49.0) Gecko/20100101 Firefox/49.0 +Mozilla/5.0 (Windows NT 6.3; Win64; x64; Trident/7.0; rv:11.0) like Gecko +Mozilla/5.0 (Windows NT 6.3; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/31.0.1650.63 Safari/537.36 +Mozilla/5.0 (Windows NT 6.3; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/32.0.1700.72 Safari/537.36 +Mozilla/5.0 (Windows NT 6.3; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/32.0.1700.76 Safari/537.36 +Mozilla/5.0 (Windows NT 6.3; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/34.0.1788.0 Safari/537.36 +Mozilla/5.0 (Windows NT 6.3; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/34.0.1847.131 Safari/537.36 +Mozilla/5.0 (Windows NT 6.3; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/34.0.1847.137 Safari/537.36 +Mozilla/5.0 (Windows NT 6.3; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/36.0.1985.143 Safari/537.36 +Mozilla/5.0 (Windows NT 6.3; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/39.0.2171.71 Safari/537.36 +Mozilla/5.0 (Windows NT 6.3; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/39.0.2171.95 Safari/537.36 +Mozilla/5.0 (Windows NT 6.3; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/40.0.2214.115 Safari/537.36 +Mozilla/5.0 (Windows NT 6.3; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/41.0.2272.118 Safari/537.36 +Mozilla/5.0 (Windows NT 6.3; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/42.0.2311.152 Safari/537.36 +Mozilla/5.0 (Windows NT 6.3; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/43.0.2357.65 Safari/537.36 +Mozilla/5.0 (Windows NT 6.3; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.101 Safari/537.36 +Mozilla/5.0 (Windows NT 6.3; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/47.0.2526.111 Safari/537.36 +Mozilla/5.0 (Windows NT 6.3; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/48.0.2564.109 Safari/537.36 +Mozilla/5.0 (Windows NT 6.3; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/48.0.2564.116 Safari/537.36 +Mozilla/5.0 (Windows NT 6.3; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/48.0.2564.97 Safari/537.36 +Mozilla/5.0 (Windows NT 6.3; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/54.0.2840.71 Safari/537.36 +Mozilla/5.0 (Windows NT 6.3; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/54.0.2840.99 Safari/537.36 +Mozilla/5.0 (Windows NT 6.3; WOW64; rv:26.0) Gecko/20100101 Firefox/26.0 +Mozilla/5.0 (Windows NT 6.3; WOW64; rv:28.0) Gecko/20100101 Firefox/28.0 +Mozilla/5.0 (Windows NT 6.3; WOW64; rv:29.0) Gecko/20100101 Firefox/29.0 +Mozilla/5.0 (Windows NT 6.3; WOW64; rv:31.0) Gecko/20100101 Firefox/31.0 +Mozilla/5.0 (Windows NT 6.3; WOW64; rv:32.0) Gecko/20100101 Firefox/32.0 +Mozilla/5.0 (Windows NT 6.3; WOW64; rv:34.0) Gecko/20100101 Firefox/34.0 +Mozilla/5.0 (Windows NT 6.3; WOW64; rv:35.0) Gecko/20100101 Firefox/35.0 +Mozilla/5.0 (Windows NT 6.3; WOW64; rv:37.0) Gecko/20100101 Firefox/37.0 +Mozilla/5.0 (Windows NT 6.3; WOW64; rv:43.0) Gecko/20100101 Firefox/43.0 +Mozilla/5.0 (Windows NT 6.3; WOW64; rv:44.0) Gecko/20100101 Firefox/44.0 +Mozilla/5.0 (Windows NT 6.3; WOW64; rv:45.0) Gecko/20100101 Firefox/45.0 +Mozilla/5.0 (Windows NT 6.3; WOW64; rv:49.0) Gecko/20100101 Firefox/49.0 +Mozilla/5.0 (Windows NT 6.3; WOW64; rv:50.0) Gecko/20100101 Firefox/50.0 +Mozilla/5.0 (Windows NT 6.3; WOW64; Trident/7.0; rv:11.0) like Gecko +Mozilla/5.0 (Windows NT 6.3; WOW64; Trident/7.0; Touch; rv:11.0) like Gecko +Mozilla/5.0 (Windows NT 8.1; WOW64; rv:48.0) Gecko/20100101 Firefox/48.0 +Mozilla/5.0 (Windows; U; MSIE 7.0; Windows NT 6.0; en-US) +Mozilla/5.0 (Windows; U; MSIE 9.0; Windows NT 9.0; en-US) +Mozilla/5.0 (Windows; U; MSIE 9.0; WIndows NT 9.0; en-US) +Mozilla/5.0 (Windows; U; Windows NT 5.0; en-US; rv:1.7.12) Gecko/20050915 Firefox/1.0.7 +Mozilla/5.0 (Windows; U; Windows NT 5.1; en; rv:1.9.0.13) Gecko/2009073022 Firefox/3.5.2 (.NET CLR 3.5.30729) SurveyBot/2.3 (DomainTools) +Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US) AppleWebKit/532.1 (KHTML, like Gecko)Chrome/4.0.219.6 Safari/532.1 +Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US) AppleWebKit/533.4 (KHTML, like Gecko) Chrome/5.0.375.99 Safari/533.4 +Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US) AppleWebKit/534.16 (KHTML, like Gecko) Chrome/10.0.634.0 Safari/534.16 +Mozilla/5.0 (Windows; U; Windows NT 5.1; en-us; rv:1.7.12) Gecko/20050919 Firefox/1.0.7 +Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9.0.1) Gecko/2008070208 Firefox/3.0.1 +Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9.1.6) Gecko/20091201 Firefox/3.5.6 (.NET CLR 2.0.50727; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729) +Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9.2.12) Gecko/20101026 Firefox/3.6.12 +Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9.2.8) Gecko/20100721 Firefox/3.6.8 +Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9.2) Gecko/20100115 Firefox/3.6 +Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:2.0.1) Gecko/20110606 Firefox/4.0.1 +Mozilla/5.0 (Windows; U; Windows NT 5.1; it; rv:1.8.1.11) Gecko/20071127 Firefox/2.0.0.11 +Mozilla/5.0 (Windows; U; Windows NT 5.1; pt-PT; rv:1.9.1.2) Gecko/20090729 Firefox/3.5.2 (.NET CLR 3.5.30729) +Mozilla/5.0 (Windows; U; Windows NT 5.1; ru; rv:1.9.0.7) Gecko/2009021910 Firefox/3.0.7 (.NET CLR 3.5.30729) +Mozilla/5.0 (Windows; U; Windows NT 5.1; ru; rv:1.9.2.26) Gecko/20120128 Firefox/3.6.26 GTB7.1 ( .NET CLR 3.5.30729) +Mozilla/5.0 (Windows; U; Windows NT 5.1; rv:1.7.3) Gecko/20041001 Firefox/0.10.1 +Mozilla/5.0 (Windows; U; Windows NT 5.1; zh-CN; rv:1.9.2.2) Gecko/20100316 Firefox/3.6.2 (.NET CLR 3.5.30729) +Mozilla/5.0 (Windows; U; Windows NT 5.2; en-US) AppleWebKit/530.5 (KHTML, like Gecko) Chrome/2.0.172.30 Safari/530.5 +Mozilla/5.0 (Windows; U; Windows NT 5.2; en-US) AppleWebKit/534.17 (KHTML, like Gecko) Chrome/11.0.652.0 Safari/534.17 +Mozilla/5.0 (Windows; U; Windows NT 5.2; en-US; rv:1.9.1.3) Gecko/20090824 Firefox/3.5.3(.NET CLR 3.5.30729) +Mozilla/5.0 (Windows; U; Windows NT 6.0; en-US; rv:1.9.0.3) Gecko/2008092417 Firefox/3.0.4 +Mozilla/5.0 (Windows; U; Windows NT 6.0; en-US; rv:1.9.2.3) Gecko/20100401 Firefox/3.6.3 GTB6 (.NET CLR 3.5.30729) +Mozilla/5.0 (Windows; U; Windows NT 6.1; en; rv:1.9.1.3) Gecko/20090824 Firefox/3.5.3(.NET CLR 3.5.30729) +Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US) AppleWebKit/533.19.4 (KHTML, like Gecko) Version/5.0.2 Safari/533.18.5 +Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US) AppleWebKit/534.13 (KHTML, like Gecko) Chrome/9.0.597.107 Safari/534.13 BuiltWith/1.2 +=Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US) AppleWebKit/534.16 (KHTML, like Gecko) Chrome/10.0.648.204 Safari/534.16 +Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US; rv:1.9.1.1) Gecko/20090718 Firefox/3.5.1 +Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US; rv:1.9.2.23) Gecko/20110920 Firefox/3.6.23 +Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US; rv:1.9.2.28) +Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US; rv:1.9.2.28) Gecko/20120306 Firefox/3.6.28 +Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US; rv:1.9.2b1) Gecko/20091014 Firefox/3.6b1 GTB5 +Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US; rv:1.9.2b5) Gecko/20091204 Firefox/3.6b5 +Mozilla/5.0 (Windows; U; Windows NT 6.1; ru; rv:1.9.2.2) Gecko/20100316 Firefox/3.6.2 WebMoney Advisor +Mozilla/5.0 (Windows; U; Windows NT 6.1; ru; rv:1.9.2.8) Gecko/20100722 Firefox/3.6.8 +Mozilla/5.0 (Windows; U; Windows NT 6.1; rv:2.2) Gecko/20110201 +Mozilla/5.0 (Windows; Windows NT 5.1; en-US) Firefox/3.5.0 +Mozilla/5.0 (X11; CrOS i686 1660.57.0) AppleWebKit/535.19 (KHTML, like Gecko) Chrome/18.0.1025.46 Safari/535.19 +Mozilla/5.0 (X11; CrOS x86_64 6310.68.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/39.0.2171.96 Safari/537.36 +Mozilla/5.0 (X11; Fedora; Linux x86_64; rv:49.0) Gecko/20100101 Firefox/49.0 +Mozilla/5.0 (X11; Fedora; Linux x86_64; rv:50.0) Gecko/20100101 Firefox/50.0 +Mozilla/5.0 (X11; FreeBSD amd64; rv:45.0) Gecko/20100101 Firefox/45.0 +Mozilla/5.0 (X11; Linux i686) AppleWebKit/534.30 (KHTML, like Gecko) Ubuntu/10.10 Chromium/12.0.742.112 Chrome/12.0.742.112 Safari/534.30 +Mozilla/5.0 (X11; Linux i686) AppleWebKit/534.34 (KHTML, like Gecko) Qt/4.8.4 Safari/534.34 +Mozilla/5.0 (X11; Linux i686) AppleWebKit/535.11 (KHTML, like Gecko) Ubuntu/11.10 Chromium/17.0.963.65 Chrome/17.0.963.65 Safari/535.11 +Mozilla/5.0 (X11; Linux i686) AppleWebKit/535.1 (KHTML, like Gecko) Ubuntu/10.04 Chromium/14.0.813.0 Chrome/14.0.813.0 Safari/535.1 +Mozilla/5.0 (X11; Linux i686) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/30.0.1599.66 Safari/537.36 +Mozilla/5.0 (X11; Linux i686) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/31.0.1650.63 Safari/537.36 +Mozilla/5.0 (X11; Linux i686) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/41.0.2303.22 Safari/537.36 +Mozilla/5.0 (X11; Linux i686) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/42.0.2315.18 Safari/537.36 +Mozilla/5.0 (X11; Linux i686) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/48.0.2564.116 Safari/537.36 +Mozilla/5.0 (X11; Linux i686) AppleWebKit/537.36 (KHTML, like Gecko) Ubuntu Chromium/31.0.1650.63 Chrome/31.0.1650.63 Safari/537.36 +Mozilla/5.0 (X11; Linux i686 on x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/34.0.1870.93 Safari/537.36 +Mozilla/5.0 (X11; Linux i686 on x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/44.0.2447.81 Safari/537.36 +Mozilla/5.0 (X11; Linux i686 on x86_64; rv:28.0) Gecko/20100101 Firefox/28.0 +Mozilla/5.0 (X11; Linux i686; rv:17.0) Gecko/20100101 Firefox/17.0 +Mozilla/5.0 (X11; Linux i686; rv:21.0) Gecko/20100101 Firefox/21.0 +Mozilla/5.0 (X11; Linux i686; rv:3.0) Gecko/20100101 Goanna/20161003 PaleMoon/27.0.0b1 +Mozilla/5.0 (X11; Linux i686; rv:45.0) Gecko/20100101 Firefox/45.0 +Mozilla/5.0 (X11; Linux ppc; rv:5.0) Gecko/20100101 Firefox/5.0 +Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/534.24 (KHTML, like Gecko) Chrome/11.0.696.34 Safari/534.24 +Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/534.24 (KHTML, like Gecko) Chrome/11.0.696.3 Safari/534.24 +Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/534.30 (KHTML, like Gecko) Ubuntu/10.10 Chromium/12.0.742.112 Chrome/12.0.742.112 Safari/534.30 +Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/534.34 (KHTML, like Gecko) Qt/4.8.2 +Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/534.34 (KHTML, like Gecko) Qt/4.8.2 Safari/534.34 +Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/535.11 (KHTML, like Gecko) Ubuntu/11.04 Chromium/17.0.963.65 Chrome/17.0.963.65 Safari/535.11 +Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/535.19 (KHTML, like Gecko) Ubuntu/11.10 Chromium/18.0.1025.142 Chrome/18.0.1025.142 Safari/535.19 +Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/535.1 (KHTML, like Gecko) Chrome/14.0.803.0 Safari/535.1 +Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/536.5 (KHTML, like Gecko) Chrome/19.0.1084.9 Safari/536.5 +Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/28.0.1500.71 Safari/537.36 +Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/30.0.1599.114 Safari/537.36 +Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/31.0.1650.57 Safari/537.36 +Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/31.0.1650.63 Safari/537.36 +Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/33.0.1787.44 Safari/537.36 +Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/36.0.1985.125 Safari/537.36 +Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/37.0.2062.120 Safari/537.36 +Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/39.0.2171.71 Safari/537.36 +Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/39.0.2171.99 Safari/537.36 +Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/43.0.2357.130 Safari/537.36 +Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/47.0.2526.111 Safari/537.36 +Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/48.0.2564.97 Safari/537.36 +Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/49.0.2623.75 Safari/537.36 Google Favicon +Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/50.0.2661.75 Safari/537.36 +Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/50.0.2661.86 Safari/537.36 +Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/53.0.2785.116 Safari/537.36 +Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/53.0.2785.143 Safari/537.36 +Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/53.0.2785.89 Safari/537.36 +Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/54.0.2840.100 Safari/537.36 +Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/54.0.2840.59 Safari/537.36 +Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/54.0.2840.71 Safari/537.36 +Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/54.0.2840.90 Safari/537.36 +Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/55.0.2883.75 Safari/537.36 +Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/55.0.2883.87 Safari/537.36 +Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko; Google Web Preview) Chrome/27.0.1453 Safari/537.36 +Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Ubuntu Chromium/31.0.1650.63 Chrome/31.0.1650.63 Safari/537.36 +Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Ubuntu Chromium/53.0.2785.143 Chrome/53.0.2785.143 Safari/537.36 +Mozilla/5.0 (X11; Linux x86_64) Gecko Firefox/5.0 +Mozilla/5.0 (X11; Linux x86_64; rv:18.0) Gecko/20100101 Firefox/18.0 +Mozilla/5.0 (X11; Linux x86_64; rv:26.0) Gecko/20100101 Firefox/26.0 +Mozilla/5.0 (X11; Linux x86_64; rv:29.0) Gecko/20100101 Firefox/29.0 Iceweasel/29.0a2 +Mozilla/5.0 (X11; Linux x86_64; rv:45.0) Gecko/20100101 Firefox/45.0 +Mozilla/5.0 (X11; Linux x86_64; rv:49.0) Gecko/20100101 Firefox/49.0 +Mozilla/5.0 (X11; Linux x86_64; rv:50.0) Gecko/20100101 Firefox/50.0 +Mozilla/5.0 (X11; Linux x86_64; rv:51.0) Gecko/20100101 Firefox/51.0 +Mozilla/5.0 (X11; Linux x86_64; rv:52.0) Gecko/20100101 Firefox/52.0 +Mozilla/5.0 (X11; Ubuntu; Linux i686) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/44.0.2446.66 Safari/537.36 +Mozilla/5.0 (X11; Ubuntu; Linux i686 on x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/34.0.1907.88 Safari/537.36 +Mozilla/5.0 (X11; Ubuntu; Linux i686; rv:14.0) Gecko/20100101 Firefox/14.0.1 +Mozilla/5.0 (X11; Ubuntu; Linux i686; rv:14.0; ips-agent) Gecko/20100101 Firefox/14.0.1 +Mozilla/5.0 (X11; Ubuntu; Linux i686; rv:26.0) Gecko/20100101 Firefox/26.0 +Mozilla/5.0 (X11; Ubuntu; Linux i686; rv:34.0) Gecko/20100101 Firefox/34.0 +Mozilla/5.0 (X11; Ubuntu; Linux i686; rv:42.0) Gecko/20100101 Firefox/42.0 +Mozilla/5.0 (X11; Ubuntu; Linux i686; rv:49.0) Gecko/20100101 Firefox/49.0 +Mozilla/5.0 (X11; Ubuntu; Linux i686; rv:50.0) Gecko/20100101 Firefox/50.0 +Mozilla/5.0 (X11; Ubuntu; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/36.0.1992.77 Safari/537.36 +Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:21.0) Gecko/20100101 Firefox/21.0 +Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:25.0) Gecko/20100101 Firefox/25.0 +Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:26.0) Gecko/20100101 Firefox/26.0 +Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:47.0) Gecko/20100101 Firefox/47.0 +Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:49.0) Gecko/20100101 Firefox/49.0 +Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:50.0) Gecko/20100101 Firefox/50.0 +Mozilla/5.0 (X11; U; Linux Core i7-4980HQ; de; rv:32.0; compatible; JobboerseBot; http://www.jobboerse.com/bot.htm) Gecko/20100101 Firefox/38.0 +Mozilla/5.0 (X11; U; Linux i586; en-US) AppleWebKit/533.2 (KHTML, like Gecko) Chrome/5.0.342.1 Safari/533.2 +Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.7.8) Gecko/20050511 +Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.1.16) Gecko/20120421 Firefox/11.0 +Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.2.4) Gecko/20100625 Gentoo Firefox/3.6.4 +Mozilla/5.0 (X11; U; Linux i686; pt-BR; rv:1.9.0.15) Gecko/2009102815 Ubuntu/9.04 (jaunty) Firefox/3.0.15 +Mozilla/5.0 (X11; U; Linux x86_64; en-US) AppleWebKit/533.2 (KHTML, like Gecko) Chrome/5.0.342.1 Safari/533.2 +Mozilla/5.0 (X11; U; Linux x86_64; en-US) AppleWebKit/534.16 (KHTML, like Gecko) Chrome/10.0.648.11 Safari/534.16 +Mozilla/5.0 (X11; U; Linux x86_64; en-US; rv:1.9.1.3) Gecko/20090913 Firefox/3.5.3 +Mozilla/5.0 (X11; U; Linux x86_64; en-US; rv:1.9.2.4) Gecko/20100614 Ubuntu/10.04 (lucid) Firefox/3.6.4 +Mozilla/5.0 (X11; U; Linux x86_64; en-US; rv:1.9.2a1pre) Gecko/20090405 Firefox/3.6a1pre +Mozilla/5.0 zgrab/0.x +Mozilla/6.0 (compatible) +Mozilla/6.0 (compatible; MSIE 7.0a1; Windows NT 5.2; SV1) +node-fetch/1.0 (+https://github.com/bitinn/node-fetch) +nutch-1.4/Nutch-1.4 +Opera/7.11 (Windows NT 5.1; U) [en] +Opera/7.54 (Windows NT 5.1; U) [pl] +Opera/7.60 (Windows NT 5.2; U) [en] (IBM EVV/3.0/EAK01AG9/LE) +Opera/8.00 (Windows NT 5.1; U; en) +Opera/8.01 (Windows NT 5.1) +Opera/9.00 (Windows NT 4.0; U; en) +Opera/9.00 (Windows NT 5.1; U; en) +Opera/9.00 (Windows NT 5.1; U; ru) +Opera/9.01 (Windows NT 5.1; U; en) +Opera/9.0 (Windows NT 5.1; U; en) +Opera/9.80 (Android; Opera Mini/13.0.2036/37.9093; U; az) Presto/2.12.423 Version/12.16 +Opera/9.80 (Android; Opera Mini/7.5.33725/37.9154; U; en) Presto/2.12.423 Version/12.16 +Opera/9.80 (SpreadTrum; Opera Mini/4.4.31492/37.9178; U; en) Presto/2.12.423 Version/12.16 +Opera/9.80 (Windows NT 5.1; U; en) Presto/2.10.229 Version/11.60 +Opera/9.80 (Windows NT 5.1; U; en) Presto/2.2.15 Version/10.10 +Opera/9.80 (Windows NT 5.1; U; ru) Presto/2.9.168 Version/11.50 +Opera/9.80 (Windows NT 5.1; U; sk) Presto/2.10.229 Version/11.64 +Opera/9.80 (Windows NT 6.1; MRA 8.4 (build 7786)) Presto/2.12.388 Version/12.17 +Opera/9.80 (Windows NT 6.1; WOW64) Presto/2.12.388 Version/12.16 +Opera/9.80 (Windows NT 6.2; Win64; x64) Presto/2.12.388 Version/12.17 +Opera/9.80 (X11; Linux x86_64) Presto/2.12.388 Version/12.16 +panscient.com +Pcore-HTTP/v0.24.5 +peopleman/1.6 +perl post +Phantom.js bot +PHP/5.2.00 +PHP/5.2.03 +PHP/5.2.04 +PHP/5.2.06 +PHP/5.2.07 +PHP/5.2.10 +PHP/5.2.12 +PHP/5.2.14 +PHP/5.2.15 +PHP/5.2.20 +PHP/5.2.21 +PHP/5.2.22 +PHP/5.2.26 +PHP/5.2.30 +PHP/5.2.32 +PHP/5.2.37 +PHP/5.2.38 +PHP/5.2.39 +PHP/5.2.42 +PHP/5.2.45 +PHP/5.2.47 +PHP/5.2.48 +PHP/5.2.49 +PHP/5.2.50 +PHP/5.2.52 +PHP/5.2.54 +PHP/5.2.55 +PHP/5.2.56 +PHP/5.2.61 +PHP/5.2.64 +PHP/5.2.67 +PHP/5.2.68 +PHP/5.2.71 +PHP/5.2.72 +PHP/5.2.73 +PHP/5.2.74 +PHP/5.2.76 +PHP/5.2.77 +PHP/5.2.79 +PHP/5.2.80 +PHP/5.2.82 +PHP/5.2.86 +PHP/5.2.89 +PHP/5.2.90 +PHP/5.2.91 +PHP/5.2.92 +PHP/5.2.95 +PHP/5.2.96 +PHP/5.3.02 +PHP/5.3.04 +PHP/5.3.10 +PHP/5.3.11 +PHP/5.3.14 +PHP/5.3.15 +PHP/5.{3|2}.{1|2|3|4|5|6|7|8|9|0}{1|2|3|4|5|6|7|8|9|0} +PHP/5.3.22 +PHP/5.3.23 +PHP/5.3.25 +PHP/5.3.26 +PHP/5.3.30 +PHP/5.3.32 +PHP/5.3.34 +PHP/5.3.39 +PHP/5.3.41 +PHP/5.3.48 +PHP/5.3.49 +PHP/5.3.51 +PHP/5.3.53 +PHP/5.3.57 +PHP/5.3.58 +PHP/5.3.59 +PHP/5.3.61 +PHP/5.3.64 +PHP/5.3.65 +PHP/5.3.66 +PHP/5.3.67 +PHP/5.3.69 +PHP/5.3.73 +PHP/5.3.78 +PHP/5.3.79 +PHP/5.3.80 +PHP/5.3.81 +PHP/5.3.82 +PHP/5.3.86 +PHP/5.3.88 +PHP/5.3.89 +PHP/5.3.90 +PHP/5.3.91 +PHP/5.3.92 +PHP/5.3.97 +PHP/5.3.98 +PHPCrawl +python-requests/2.11.1 +python-requests/2.12.3 +python-requests/2.2.1 CPython/2.7.6 Linux/3.13.0-24-generic +python-requests/2.2.1 CPython/3.4.3 Linux/3.13.0-96-generic +python-requests/2.4.3 CPython/3.4.2 Linux/3.16.0-4-amd64 +Python-urllib/1.17 +Python-urllib/2.6 +Python-urllib/2.7 +Qwantify/1.0 +redback/v0-570-g26f8c96 +RedesScrapy/0.24.1 (+http://g2pi.tsc.uc3m.es/es) +rogerbot +Ruby +Safari/10602.2.14.0.7 CFNetwork/720.5.7 Darwin/14.5.0 (x86_64) +Safari/11602.1.50.0.10 CFNetwork/760.6.3 Darwin/15.6.0 (x86_64) +Safari/11602.2.14.0.7 CFNetwork/760.6.3 Darwin/15.6.0 (x86_64) +Safari/12602.1.50.0.10 CFNetwork/807.0.4 Darwin/16.0.0 (x86_64) +Safari/12602.2.14.0.7 CFNetwork/807.1.3 Darwin/16.1.0 (x86_64) +Safari%20Technology%20Preview/12603.1.10 CFNetwork/807.1.3 Darwin/16.1.0 (x86_64) +SafeDNSBot (https://www.safedns.com/searchbot) +SalesIntelligent (+https://www.salesintelligent.com) +Scanbot +Searchie/1.0 (a Storm-based crawler; https://www.searchie.org; admin@searchie.org) +Sogou web spider/4.0(+http://www.sogou.com/docs/help/webmasters.htm#07) +spiderman +; success; BB-code not working; message must go through moderation; +Telesphoreo +}__test|O:21: +Tiny Tiny RSS/16.3 (638fdf7) (http://tt-rss.org/) +Twitterbot/1.0 +User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.31 (KHTML, like Gecko) Chrome/26.0.1410.64 Safari/537.31 +vebidoobot +W3C_Validator/1.3 http://validator.w3.org/services +WEBDAV Client +Wget/1.15 (linux-gnu) +Wget(linux) +Windows-Media-Player/11.0.5721.5145 +Wotbox/2.01 (+http://www.wotbox.com/bot/) +www.matthowlett.com +WWW-Mechanize/1.73 +www.probethenet.com scanner +ZmEu From b06fb88cf9bcaea72dd87dd4273228243c5a5b0b Mon Sep 17 00:00:00 2001 From: Nikita Popov Date: Thu, 15 Dec 2016 15:12:48 +0100 Subject: [PATCH 23/41] Optimize browscap loading and representation Avoid many string duplications, use interning (browscap-local, of course), reduce pattern size, use more compact key-value representation, build result array only on demand. --- ext/standard/browscap.c | 389 ++++++++++++++++++++++++++-------------- 1 file changed, 253 insertions(+), 136 deletions(-) diff --git a/ext/standard/browscap.c b/ext/standard/browscap.c index 8ad55829c8a..14ca27a95e5 100644 --- a/ext/standard/browscap.c +++ b/ext/standard/browscap.c @@ -27,10 +27,23 @@ #include "zend_ini_scanner.h" #include "zend_globals.h" +typedef struct { + zend_string *key; + zend_string *value; +} browscap_kv; + +typedef struct { + zend_string *pattern; + zend_string *regex; + uint32_t kv_start; + uint32_t kv_end; +} browscap_entry; + typedef struct { HashTable *htab; - zval current_section; - char *current_section_name; + browscap_kv *kv; + uint32_t kv_used; + uint32_t kv_size; char filename[MAXPATHLEN]; } browser_data; @@ -50,43 +63,59 @@ ZEND_DECLARE_MODULE_GLOBALS(browscap) /* OBJECTS_FIXME: This whole extension needs going through. The use of objects looks pretty broken here */ -static void browscap_entry_dtor_request(zval *zvalue) /* {{{ */ +static void browscap_entry_dtor(zval *zvalue) { - if (Z_TYPE_P(zvalue) == IS_ARRAY) { - zend_hash_destroy(Z_ARRVAL_P(zvalue)); - efree(Z_ARR_P(zvalue)); - } else if (Z_TYPE_P(zvalue) == IS_STRING) { - zend_string_release(Z_STR_P(zvalue)); - } + browscap_entry *entry = Z_PTR_P(zvalue); + zend_string_release(entry->pattern); + zend_string_release(entry->regex); + efree(entry); } -/* }}} */ -static void browscap_entry_dtor_persistent(zval *zvalue) /* {{{ */ { - if (Z_TYPE_P(zvalue) == IS_ARRAY) { - zend_hash_destroy(Z_ARRVAL_P(zvalue)); - free(Z_ARR_P(zvalue)); - } else if (Z_TYPE_P(zvalue) == IS_STRING) { - zend_string_release(Z_STR_P(zvalue)); - } +static void browscap_entry_dtor_persistent(zval *zvalue) +{ + browscap_entry *entry = Z_PTR_P(zvalue); + zend_string_release(entry->pattern); + zend_string_release(entry->regex); + pefree(entry, 1); } -/* }}} */ -static void convert_browscap_pattern(zval *pattern, int persistent) /* {{{ */ +static size_t browscap_compute_regex_len(zend_string *pattern) { + size_t i, len = ZSTR_LEN(pattern); + for (i = 0; i < ZSTR_LEN(pattern); i++) { + switch (ZSTR_VAL(pattern)[i]) { + case '*': + case '.': + case '\\': + case '(': + case ')': + case '~': + case '+': + len++; + break; + } + } + + return len + sizeof("~^$~")-1; +} + +static zend_string *browscap_convert_pattern(zend_string *pattern, int persistent) /* {{{ */ { int i, j=0; char *t; zend_string *res; char *lc_pattern; + ALLOCA_FLAG(use_heap); - res = zend_string_safe_alloc(Z_STRLEN_P(pattern), 2, 4, persistent); + res = zend_string_alloc(browscap_compute_regex_len(pattern), persistent); t = ZSTR_VAL(res); - lc_pattern = zend_str_tolower_dup(Z_STRVAL_P(pattern), Z_STRLEN_P(pattern)); + lc_pattern = do_alloca(ZSTR_LEN(pattern) + 1, use_heap); + zend_str_tolower_copy(lc_pattern, ZSTR_VAL(pattern), ZSTR_LEN(pattern)); t[j++] = '~'; t[j++] = '^'; - for (i=0; istr_interned, str); + if (interned) { + zend_string_addref(interned); + } else { + interned = zend_string_copy(str); + zend_hash_add_new_ptr(&ctx->str_interned, interned, interned); + } + + return interned; +} + +static zend_string *browscap_intern_str_ci( + browscap_parser_ctx *ctx, zend_string *str, zend_bool persistent) { + zend_string *lcname; + zend_string *interned; + ALLOCA_FLAG(use_heap); + + ZSTR_ALLOCA_ALLOC(lcname, ZSTR_LEN(str), use_heap); + zend_str_tolower_copy(ZSTR_VAL(lcname), ZSTR_VAL(str), ZSTR_LEN(str)); + interned = zend_hash_find_ptr(&ctx->str_interned, lcname); + ZSTR_ALLOCA_FREE(lcname, use_heap); + + if (interned) { + zend_string_addref(interned); + } else { + interned = zend_string_dup(lcname, persistent); + zend_hash_add_new_ptr(&ctx->str_interned, interned, interned); + } + + return interned; +} + +static void browscap_add_kv( + browser_data *bdata, zend_string *key, zend_string *value, zend_bool persistent) { + if (bdata->kv_used == bdata->kv_size) { + bdata->kv_size *= 2; + bdata->kv = safe_perealloc(bdata->kv, sizeof(browscap_kv), bdata->kv_size, 0, persistent); + } + + bdata->kv[bdata->kv_used].key = key; + bdata->kv[bdata->kv_used].value = value; + bdata->kv_used++; +} + +static HashTable *browscap_entry_to_array(browser_data *bdata, browscap_entry *entry) { + zval tmp; + uint32_t i; + + HashTable *ht; + ALLOC_HASHTABLE(ht); + zend_hash_init(ht, 8, NULL, ZVAL_PTR_DTOR, 0); + + ZVAL_STR_COPY(&tmp, entry->regex); + zend_hash_str_add(ht, "browser_name_regex", sizeof("browser_name_regex")-1, &tmp); + + ZVAL_STR_COPY(&tmp, entry->pattern); + zend_hash_str_add(ht, "browser_name_pattern", sizeof("browser_name_pattern")-1, &tmp); + + for (i = entry->kv_start; i < entry->kv_end; i++) { + ZVAL_STR_COPY(&tmp, bdata->kv[i].value); + zend_hash_add(ht, bdata->kv[i].key, &tmp); + } + + return ht; +} + static void php_browscap_parser_cb(zval *arg1, zval *arg2, zval *arg3, int callback_type, void *arg) /* {{{ */ { - browser_data *bdata = arg; + browscap_parser_ctx *ctx = arg; + browser_data *bdata = ctx->bdata; int persistent = bdata->htab->u.flags & HASH_FLAG_PERSISTENT; if (!arg1) { @@ -146,18 +253,17 @@ static void php_browscap_parser_cb(zval *arg1, zval *arg2, zval *arg3, int callb switch (callback_type) { case ZEND_INI_PARSER_ENTRY: - if (Z_TYPE(bdata->current_section) != IS_UNDEF && arg2) { - zval new_property; - zend_string *new_key; + if (ctx->current_entry != NULL && arg2) { + zend_string *new_key, *new_value; /* parent entry can not be same as current section -> causes infinite loop! */ if (!strcasecmp(Z_STRVAL_P(arg1), "parent") && - bdata->current_section_name != NULL && - !strcasecmp(bdata->current_section_name, Z_STRVAL_P(arg2)) + ctx->current_section_name != NULL && + !strcasecmp(ZSTR_VAL(ctx->current_section_name), Z_STRVAL_P(arg2)) ) { zend_error(E_CORE_ERROR, "Invalid browscap ini file: " "'Parent' value cannot be same as the section name: %s " - "(in file %s)", bdata->current_section_name, INI_STR("browscap")); + "(in file %s)", ZSTR_VAL(ctx->current_section_name), INI_STR("browscap")); return; } @@ -166,52 +272,38 @@ static void php_browscap_parser_cb(zval *arg1, zval *arg2, zval *arg3, int callb (Z_STRLEN_P(arg2) == 3 && !strncasecmp(Z_STRVAL_P(arg2), "yes", sizeof("yes") - 1)) || (Z_STRLEN_P(arg2) == 4 && !strncasecmp(Z_STRVAL_P(arg2), "true", sizeof("true") - 1)) ) { - ZVAL_NEW_STR(&new_property, zend_string_init("1", sizeof("1")-1, persistent)); + new_value = zend_string_copy(ctx->str_one); } else if ( (Z_STRLEN_P(arg2) == 2 && !strncasecmp(Z_STRVAL_P(arg2), "no", sizeof("no") - 1)) || (Z_STRLEN_P(arg2) == 3 && !strncasecmp(Z_STRVAL_P(arg2), "off", sizeof("off") - 1)) || (Z_STRLEN_P(arg2) == 4 && !strncasecmp(Z_STRVAL_P(arg2), "none", sizeof("none") - 1)) || (Z_STRLEN_P(arg2) == 5 && !strncasecmp(Z_STRVAL_P(arg2), "false", sizeof("false") - 1)) ) { - // TODO: USE ZSTR_EMPTY_ALLOC()? - ZVAL_NEW_STR(&new_property, zend_string_init("", sizeof("")-1, persistent)); + new_value = zend_string_copy(ctx->str_empty); } else { /* Other than true/false setting */ - ZVAL_STR(&new_property, zend_string_dup(Z_STR_P(arg2), persistent)); + new_value = browscap_intern_str(ctx, Z_STR_P(arg2)); } - new_key = zend_string_dup(Z_STR_P(arg1), persistent); - zend_str_tolower(ZSTR_VAL(new_key), ZSTR_LEN(new_key)); - zend_hash_update(Z_ARRVAL(bdata->current_section), new_key, &new_property); - zend_string_release(new_key); + + new_key = browscap_intern_str_ci(ctx, Z_STR_P(arg1), persistent); + browscap_add_kv(bdata, new_key, new_value, persistent); + ctx->current_entry->kv_end = bdata->kv_used; } break; case ZEND_INI_PARSER_SECTION: { zval processed; zval unprocessed; - /*printf("'%s' (%d)\n",$1.value.str.val,$1.value.str.len + 1);*/ - if (persistent) { - ZVAL_NEW_PERSISTENT_ARR(&bdata->current_section); - } else { - ZVAL_NEW_ARR(&bdata->current_section); + ctx->current_entry = pemalloc(sizeof(browscap_entry), persistent); + zend_hash_update_ptr(bdata->htab, Z_STR_P(arg1), ctx->current_entry); + + if (ctx->current_section_name) { + zend_string_release(ctx->current_section_name); } - zend_hash_init(Z_ARRVAL(bdata->current_section), 0, NULL, - (dtor_func_t) (persistent?browscap_entry_dtor_persistent - :browscap_entry_dtor_request), - persistent); - if (bdata->current_section_name) { - pefree(bdata->current_section_name, persistent); - } - bdata->current_section_name = pestrndup(Z_STRVAL_P(arg1), - Z_STRLEN_P(arg1), persistent); + ctx->current_section_name = zend_string_copy(Z_STR_P(arg1)); - zend_hash_update(bdata->htab, Z_STR_P(arg1), &bdata->current_section); - - ZVAL_STR(&processed, Z_STR_P(arg1)); - ZVAL_STR(&unprocessed, zend_string_dup(Z_STR_P(arg1), persistent)); - - convert_browscap_pattern(&processed, persistent); - zend_hash_str_update(Z_ARRVAL(bdata->current_section), "browser_name_regex", sizeof("browser_name_regex")-1, &processed); - zend_hash_str_update(Z_ARRVAL(bdata->current_section), "browser_name_pattern", sizeof("browser_name_pattern")-1, &unprocessed); + ctx->current_entry->regex = browscap_convert_pattern(Z_STR_P(arg1), persistent); + ctx->current_entry->pattern = zend_string_copy(Z_STR_P(arg1)); + ctx->current_entry->kv_end = ctx->current_entry->kv_start = bdata->kv_used; } break; } @@ -221,40 +313,53 @@ static void php_browscap_parser_cb(zval *arg1, zval *arg2, zval *arg3, int callb static int browscap_read_file(char *filename, browser_data *browdata, int persistent) /* {{{ */ { zend_file_handle fh = {{0}}; + browscap_parser_ctx ctx = {0}; if (filename == NULL || filename[0] == '\0') { return FAILURE; } + fh.handle.fp = VCWD_FOPEN(filename, "r"); + fh.opened_path = NULL; + fh.free_filename = 0; + if (!fh.handle.fp) { + zend_error(E_CORE_WARNING, "Cannot open '%s' for reading", filename); + return FAILURE; + } + + fh.filename = filename; + fh.type = ZEND_HANDLE_FP; + browdata->htab = pemalloc(sizeof *browdata->htab, persistent); if (browdata->htab == NULL) { return FAILURE; } - zend_hash_init_ex(browdata->htab, 0, NULL, - (dtor_func_t) (persistent?browscap_entry_dtor_persistent - :browscap_entry_dtor_request), - persistent, 0); + zend_hash_init_ex(browdata->htab, 0, NULL, + persistent ? browscap_entry_dtor_persistent : browscap_entry_dtor, persistent, 0); + + browdata->kv_size = 16 * 1024; + browdata->kv_used = 0; + browdata->kv = pemalloc(sizeof(browscap_kv) * browdata->kv_size, persistent); + + /* Create parser context */ + ctx.bdata = browdata; + ctx.current_entry = NULL; + ctx.current_section_name = NULL; + ctx.str_empty = zend_string_init("", sizeof("")-1, persistent); + ctx.str_one = zend_string_init("1", sizeof("1")-1, persistent); + zend_hash_init(&ctx.str_interned, 8, NULL, NULL, persistent); - fh.handle.fp = VCWD_FOPEN(filename, "r"); - fh.opened_path = NULL; - fh.free_filename = 0; - if (!fh.handle.fp) { - zend_hash_destroy(browdata->htab); - pefree(browdata->htab, persistent); - browdata->htab = NULL; - zend_error(E_CORE_WARNING, "Cannot open '%s' for reading", filename); - return FAILURE; - } - fh.filename = filename; - fh.type = ZEND_HANDLE_FP; - browdata->current_section_name = NULL; zend_parse_ini_file(&fh, 1, ZEND_INI_SCANNER_RAW, - (zend_ini_parser_cb_t) php_browscap_parser_cb, browdata); - if (browdata->current_section_name != NULL) { - pefree(browdata->current_section_name, persistent); - browdata->current_section_name = NULL; + (zend_ini_parser_cb_t) php_browscap_parser_cb, &ctx); + + /* Destroy parser context */ + if (ctx.current_section_name) { + zend_string_release(ctx.current_section_name); } + zend_string_release(ctx.str_one); + zend_string_release(ctx.str_empty); + zend_hash_destroy(&ctx.str_interned); return SUCCESS; } @@ -264,8 +369,7 @@ static int browscap_read_file(char *filename, browser_data *browdata, int persis static void browscap_globals_ctor(zend_browscap_globals *browscap_globals) /* {{{ */ { browscap_globals->activation_bdata.htab = NULL; - ZVAL_UNDEF(&browscap_globals->activation_bdata.current_section); - browscap_globals->activation_bdata.current_section_name = NULL; + browscap_globals->activation_bdata.kv = NULL; browscap_globals->activation_bdata.filename[0] = '\0'; } /* }}} */ @@ -274,12 +378,20 @@ static void browscap_globals_ctor(zend_browscap_globals *browscap_globals) /* {{ static void browscap_bdata_dtor(browser_data *bdata, int persistent) /* {{{ */ { if (bdata->htab != NULL) { + uint32_t i; + zend_hash_destroy(bdata->htab); pefree(bdata->htab, persistent); bdata->htab = NULL; + + for (i = 0; i < bdata->kv_used; i++) { + zend_string_release(bdata->kv[i].key); + zend_string_release(bdata->kv[i].value); + } + pefree(bdata->kv, persistent); + bdata->kv = NULL; } bdata->filename[0] = '\0'; - /* current_section_* are only used during parsing */ } /* }}} */ @@ -343,31 +455,27 @@ PHP_MSHUTDOWN_FUNCTION(browscap) /* {{{ */ } /* }}} */ -static int browser_reg_compare(zval *browser, int num_args, va_list args, zend_hash_key *key) /* {{{ */ +static int browser_reg_compare( + zval *entry_zv, int num_args, va_list args, zend_hash_key *key) /* {{{ */ { - zval *browser_regex, *previous_match; + browscap_entry *entry = Z_PTR_P(entry_zv); + char *lookup_browser_name = va_arg(args, char *); + int lookup_browser_length = va_arg(args, int); + browscap_entry **found_entry_ptr = va_arg(args, browscap_entry **); + browscap_entry *found_entry = *found_entry_ptr; + pcre *re; int re_options; pcre_extra *re_extra; - char *lookup_browser_name = va_arg(args, char *); - int lookup_browser_length = va_arg(args, int); - zval *found_browser_entry = va_arg(args, zval *); /* See if we have an exact match, if so, we're done... */ - if (Z_TYPE_P(found_browser_entry) == IS_ARRAY) { - if ((previous_match = zend_hash_str_find(Z_ARRVAL_P(found_browser_entry), "browser_name_pattern", sizeof("browser_name_pattern")-1)) == NULL) { - return 0; - } - else if (!strcasecmp(Z_STRVAL_P(previous_match), lookup_browser_name)) { + if (found_entry) { + if (!strcasecmp(ZSTR_VAL(found_entry->pattern), lookup_browser_name)) { return 0; } } - if ((browser_regex = zend_hash_str_find(Z_ARRVAL_P(browser), "browser_name_regex", sizeof("browser_name_regex")-1)) == NULL) { - return 0; - } - - re = pcre_get_compiled_regex(Z_STR_P(browser_regex), &re_extra, &re_options); + re = pcre_get_compiled_regex(entry->regex, &re_extra, &re_options); if (re == NULL) { return 0; } @@ -376,16 +484,13 @@ static int browser_reg_compare(zval *browser, int num_args, va_list args, zend_h /* If we've found a possible browser, we need to do a comparison of the number of characters changed in the user agent being checked versus the previous match found and the current match. */ - if (Z_TYPE_P(found_browser_entry) == IS_ARRAY) { + if (found_entry) { size_t i, prev_len = 0, curr_len = 0; - zval *current_match = zend_hash_str_find(Z_ARRVAL_P(browser), "browser_name_pattern", sizeof("browser_name_pattern")-1); + zend_string *previous_match = found_entry->pattern; + zend_string *current_match = entry->pattern; - if (!current_match) { - return 0; - } - - for (i = 0; i < Z_STRLEN_P(previous_match); i++) { - switch (Z_STRVAL_P(previous_match)[i]) { + for (i = 0; i < ZSTR_LEN(previous_match); i++) { + switch (ZSTR_VAL(previous_match)[i]) { case '?': case '*': /* do nothing, ignore these characters in the count */ @@ -396,8 +501,8 @@ static int browser_reg_compare(zval *browser, int num_args, va_list args, zend_h } } - for (i = 0; i < Z_STRLEN_P(current_match); i++) { - switch (Z_STRVAL_P(current_match)[i]) { + for (i = 0; i < ZSTR_LEN(current_match); i++) { + switch (ZSTR_VAL(current_match)[i]) { case '?': case '*': /* do nothing, ignore these characters in the count */ @@ -411,11 +516,10 @@ static int browser_reg_compare(zval *browser, int num_args, va_list args, zend_h /* Pick which browser pattern replaces the least amount of characters when compared to the original user agent string... */ if (prev_len < curr_len) { - ZVAL_COPY_VALUE(found_browser_entry, browser); + *found_entry_ptr = entry; } - } - else { - ZVAL_COPY_VALUE(found_browser_entry, browser); + } else { + *found_entry_ptr = entry; } } @@ -436,10 +540,12 @@ PHP_FUNCTION(get_browser) char *agent_name = NULL; size_t agent_name_len = 0; zend_bool return_array = 0; - zval *agent, *z_agent_name, *http_user_agent; - zval found_browser_entry; + zval *agent, *parent_agent_name_zv, *http_user_agent; + zend_string *parent_agent_name; char *lookup_browser_name; browser_data *bdata; + browscap_entry *found_entry = NULL; + HashTable *agent_ht; if (BROWSCAP_G(activation_bdata).filename[0] != '\0') { bdata = &BROWSCAP_G(activation_bdata); @@ -474,37 +580,48 @@ PHP_FUNCTION(get_browser) lookup_browser_name = estrndup(agent_name, agent_name_len); php_strtolower(lookup_browser_name, agent_name_len); - if ((agent = zend_hash_str_find(bdata->htab, lookup_browser_name, agent_name_len)) == NULL) { - ZVAL_UNDEF(&found_browser_entry); - zend_hash_apply_with_arguments(bdata->htab, browser_reg_compare, 3, lookup_browser_name, agent_name_len, &found_browser_entry); + found_entry = zend_hash_str_find_ptr(bdata->htab, lookup_browser_name, agent_name_len); + if (found_entry == NULL) { + zend_hash_apply_with_arguments(bdata->htab, browser_reg_compare, 3, lookup_browser_name, agent_name_len, &found_entry); - if (Z_TYPE(found_browser_entry) != IS_UNDEF) { - agent = &found_browser_entry; - } else if ((agent = zend_hash_str_find(bdata->htab, DEFAULT_SECTION_NAME, sizeof(DEFAULT_SECTION_NAME)-1)) == NULL) { - efree(lookup_browser_name); - RETURN_FALSE; + if (found_entry == NULL) { + found_entry = zend_hash_str_find_ptr(bdata->htab, + DEFAULT_SECTION_NAME, sizeof(DEFAULT_SECTION_NAME)-1); + if (found_entry == NULL) { + efree(lookup_browser_name); + RETURN_FALSE; + } } } + agent_ht = browscap_entry_to_array(bdata, found_entry); + if (return_array) { - RETVAL_ARR(zend_array_dup(Z_ARRVAL_P(agent))); - } - else { - object_init(return_value); - zend_hash_copy(Z_OBJPROP_P(return_value), Z_ARRVAL_P(agent), (copy_ctor_func_t) browscap_zval_copy_ctor); + RETVAL_ARR(agent_ht); + } else { + object_and_properties_init(return_value, zend_standard_class_def, agent_ht); } - while ((z_agent_name = zend_hash_str_find(Z_ARRVAL_P(agent), "parent", sizeof("parent")-1)) != NULL) { - if ((agent = zend_hash_find(bdata->htab, Z_STR_P(z_agent_name))) == NULL) { + parent_agent_name_zv = zend_hash_str_find(agent_ht, "parent", sizeof("parent")-1); + parent_agent_name = parent_agent_name_zv ? Z_STR_P(parent_agent_name_zv) : NULL; + + while (parent_agent_name) { + if ((found_entry = zend_hash_find_ptr(bdata->htab, parent_agent_name)) == NULL) { break; } + agent_ht = browscap_entry_to_array(bdata, found_entry); if (return_array) { - zend_hash_merge(Z_ARRVAL_P(return_value), Z_ARRVAL_P(agent), (copy_ctor_func_t) browscap_zval_copy_ctor, 0); - } - else { - zend_hash_merge(Z_OBJPROP_P(return_value), Z_ARRVAL_P(agent), (copy_ctor_func_t) browscap_zval_copy_ctor, 0); + zend_hash_merge(Z_ARRVAL_P(return_value), agent_ht, (copy_ctor_func_t) browscap_zval_copy_ctor, 0); + } else { + zend_hash_merge(Z_OBJPROP_P(return_value), agent_ht, (copy_ctor_func_t) browscap_zval_copy_ctor, 0); } + + parent_agent_name_zv = zend_hash_str_find(agent_ht, "parent", sizeof("parent")-1); + parent_agent_name = parent_agent_name_zv ? Z_STR_P(parent_agent_name_zv) : NULL; + + zend_hash_destroy(agent_ht); + efree(agent_ht); } efree(lookup_browser_name); From 593b6cd0a87401d72aedfcbad8bf9b1b149d94f4 Mon Sep 17 00:00:00 2001 From: Nikita Popov Date: Thu, 15 Dec 2016 17:22:08 +0100 Subject: [PATCH 24/41] Optimize get_browser() using prefix and contains checks Avoid expensive regex compilations by checking for prefix and contained segments beforehand. --- ext/standard/browscap.c | 262 +++++++++++++++++++++++++++++----------- 1 file changed, 192 insertions(+), 70 deletions(-) diff --git a/ext/standard/browscap.c b/ext/standard/browscap.c index 14ca27a95e5..71491bcb459 100644 --- a/ext/standard/browscap.c +++ b/ext/standard/browscap.c @@ -27,6 +27,8 @@ #include "zend_ini_scanner.h" #include "zend_globals.h" +#define BROWSCAP_NUM_CONTAINS 5 + typedef struct { zend_string *key; zend_string *value; @@ -34,9 +36,13 @@ typedef struct { typedef struct { zend_string *pattern; - zend_string *regex; + zend_string *parent; uint32_t kv_start; uint32_t kv_end; + /* We ensure that the length fits in 16 bits, so this is fine */ + uint16_t contains_start[BROWSCAP_NUM_CONTAINS]; + uint8_t contains_len[BROWSCAP_NUM_CONTAINS]; + uint8_t prefix_len; } browscap_entry; typedef struct { @@ -67,7 +73,9 @@ static void browscap_entry_dtor(zval *zvalue) { browscap_entry *entry = Z_PTR_P(zvalue); zend_string_release(entry->pattern); - zend_string_release(entry->regex); + if (entry->parent) { + zend_string_release(entry->parent); + } efree(entry); } @@ -75,10 +83,55 @@ static void browscap_entry_dtor_persistent(zval *zvalue) { browscap_entry *entry = Z_PTR_P(zvalue); zend_string_release(entry->pattern); - zend_string_release(entry->regex); + if (entry->parent) { + zend_string_release(entry->parent); + } pefree(entry, 1); } +static inline zend_bool is_placeholder(char c) { + return c == '?' || c == '*'; +} + +/* Length of prefix not containing any wildcards */ +static uint8_t browscap_compute_prefix_len(zend_string *pattern) { + size_t i; + for (i = 0; i < ZSTR_LEN(pattern); i++) { + if (is_placeholder(ZSTR_VAL(pattern)[i])) { + break; + } + } + return MIN(i, UINT8_MAX); +} + +static size_t browscap_compute_contains( + zend_string *pattern, size_t start_pos, + uint16_t *contains_start, uint8_t *contains_len) { + size_t i = start_pos; + /* Find first non-placeholder character after prefix */ + for (; i < ZSTR_LEN(pattern); i++) { + if (!is_placeholder(ZSTR_VAL(pattern)[i])) { + /* Skip the case of a single non-placeholder character. + * Let's try to find something longer instead. */ + if (i + 1 < ZSTR_LEN(pattern) && + !is_placeholder(ZSTR_VAL(pattern)[i + 1])) { + break; + } + } + } + *contains_start = i; + + /* Find first placeholder character after that */ + for (; i < ZSTR_LEN(pattern); i++) { + if (is_placeholder(ZSTR_VAL(pattern)[i])) { + break; + } + } + *contains_len = MIN(i - *contains_start, UINT8_MAX); + return i; +} + +/* Length of regex, including escapes, anchors, etc. */ static size_t browscap_compute_regex_len(zend_string *pattern) { size_t i, len = ZSTR_LEN(pattern); for (i = 0; i < ZSTR_LEN(pattern); i++) { @@ -227,12 +280,17 @@ static HashTable *browscap_entry_to_array(browser_data *bdata, browscap_entry *e ALLOC_HASHTABLE(ht); zend_hash_init(ht, 8, NULL, ZVAL_PTR_DTOR, 0); - ZVAL_STR_COPY(&tmp, entry->regex); + ZVAL_STR(&tmp, browscap_convert_pattern(entry->pattern, 0)); zend_hash_str_add(ht, "browser_name_regex", sizeof("browser_name_regex")-1, &tmp); ZVAL_STR_COPY(&tmp, entry->pattern); zend_hash_str_add(ht, "browser_name_pattern", sizeof("browser_name_pattern")-1, &tmp); + if (entry->parent) { + ZVAL_STR_COPY(&tmp, entry->parent); + zend_hash_str_add(ht, "parent", sizeof("parent")-1, &tmp); + } + for (i = entry->kv_start; i < entry->kv_end; i++) { ZVAL_STR_COPY(&tmp, bdata->kv[i].value); zend_hash_add(ht, bdata->kv[i].key, &tmp); @@ -256,17 +314,6 @@ static void php_browscap_parser_cb(zval *arg1, zval *arg2, zval *arg3, int callb if (ctx->current_entry != NULL && arg2) { zend_string *new_key, *new_value; - /* parent entry can not be same as current section -> causes infinite loop! */ - if (!strcasecmp(Z_STRVAL_P(arg1), "parent") && - ctx->current_section_name != NULL && - !strcasecmp(ZSTR_VAL(ctx->current_section_name), Z_STRVAL_P(arg2)) - ) { - zend_error(E_CORE_ERROR, "Invalid browscap ini file: " - "'Parent' value cannot be same as the section name: %s " - "(in file %s)", ZSTR_VAL(ctx->current_section_name), INI_STR("browscap")); - return; - } - /* Set proper value for true/false settings */ if ((Z_STRLEN_P(arg2) == 2 && !strncasecmp(Z_STRVAL_P(arg2), "on", sizeof("on") - 1)) || (Z_STRLEN_P(arg2) == 3 && !strncasecmp(Z_STRVAL_P(arg2), "yes", sizeof("yes") - 1)) || @@ -284,28 +331,61 @@ static void php_browscap_parser_cb(zval *arg1, zval *arg2, zval *arg3, int callb new_value = browscap_intern_str(ctx, Z_STR_P(arg2)); } - new_key = browscap_intern_str_ci(ctx, Z_STR_P(arg1), persistent); - browscap_add_kv(bdata, new_key, new_value, persistent); - ctx->current_entry->kv_end = bdata->kv_used; - } - break; - case ZEND_INI_PARSER_SECTION: { - zval processed; - zval unprocessed; + if (!strcasecmp(Z_STRVAL_P(arg1), "parent")) { + /* parent entry can not be same as current section -> causes infinite loop! */ + if (ctx->current_section_name != NULL && + !strcasecmp(ZSTR_VAL(ctx->current_section_name), Z_STRVAL_P(arg2)) + ) { + zend_error(E_CORE_ERROR, "Invalid browscap ini file: " + "'Parent' value cannot be same as the section name: %s " + "(in file %s)", ZSTR_VAL(ctx->current_section_name), INI_STR("browscap")); + return; + } - ctx->current_entry = pemalloc(sizeof(browscap_entry), persistent); - zend_hash_update_ptr(bdata->htab, Z_STR_P(arg1), ctx->current_entry); - - if (ctx->current_section_name) { - zend_string_release(ctx->current_section_name); + if (ctx->current_entry->parent) { + zend_string_release(ctx->current_entry->parent); + } + ctx->current_entry->parent = new_value; + } else { + new_key = browscap_intern_str_ci(ctx, Z_STR_P(arg1), persistent); + browscap_add_kv(bdata, new_key, new_value, persistent); + ctx->current_entry->kv_end = bdata->kv_used; } - ctx->current_section_name = zend_string_copy(Z_STR_P(arg1)); - - ctx->current_entry->regex = browscap_convert_pattern(Z_STR_P(arg1), persistent); - ctx->current_entry->pattern = zend_string_copy(Z_STR_P(arg1)); - ctx->current_entry->kv_end = ctx->current_entry->kv_start = bdata->kv_used; } break; + case ZEND_INI_PARSER_SECTION: + { + browscap_entry *entry; + zend_string *pattern = Z_STR_P(arg1); + size_t pos; + int i; + + if (ZSTR_LEN(pattern) > UINT16_MAX) { + php_error_docref(NULL, E_WARNING, + "Skipping excessively long pattern of length %zd", ZSTR_LEN(pattern)); + break; + } + + entry = ctx->current_entry + = pemalloc(sizeof(browscap_entry), persistent); + zend_hash_update_ptr(bdata->htab, pattern, entry); + + if (ctx->current_section_name) { + zend_string_release(ctx->current_section_name); + } + ctx->current_section_name = zend_string_copy(pattern); + + entry->pattern = zend_string_copy(pattern); + entry->kv_end = entry->kv_start = bdata->kv_used; + entry->parent = NULL; + + pos = entry->prefix_len = browscap_compute_prefix_len(pattern); + for (i = 0; i < BROWSCAP_NUM_CONTAINS; i++) { + pos = browscap_compute_contains(pattern, pos, + &entry->contains_start[i], &entry->contains_len[i]); + } + break; + } } } /* }}} */ @@ -455,32 +535,79 @@ PHP_MSHUTDOWN_FUNCTION(browscap) /* {{{ */ } /* }}} */ +static inline size_t browscap_get_minimum_length(browscap_entry *entry) { + size_t len = entry->prefix_len; + int i; + for (i = 0; i < BROWSCAP_NUM_CONTAINS; i++) { + len += entry->contains_len[i]; + } + return len; +} + static int browser_reg_compare( zval *entry_zv, int num_args, va_list args, zend_hash_key *key) /* {{{ */ { browscap_entry *entry = Z_PTR_P(entry_zv); - char *lookup_browser_name = va_arg(args, char *); - int lookup_browser_length = va_arg(args, int); + zend_string *agent_name = va_arg(args, zend_string *); browscap_entry **found_entry_ptr = va_arg(args, browscap_entry **); browscap_entry *found_entry = *found_entry_ptr; + ALLOCA_FLAG(use_heap); + zend_string *pattern_lc, *regex; + const char *cur; + int i; pcre *re; int re_options; pcre_extra *re_extra; - /* See if we have an exact match, if so, we're done... */ - if (found_entry) { - if (!strcasecmp(ZSTR_VAL(found_entry->pattern), lookup_browser_name)) { - return 0; - } - } - - re = pcre_get_compiled_regex(entry->regex, &re_extra, &re_options); - if (re == NULL) { + /* Agent name too short */ + if (ZSTR_LEN(agent_name) < browscap_get_minimum_length(entry)) { return 0; } - if (pcre_exec(re, re_extra, lookup_browser_name, lookup_browser_length, 0, re_options, NULL, 0) == 0) { + /* Quickly discard patterns where the prefix doesn't match. */ + if (zend_binary_strcasecmp( + ZSTR_VAL(agent_name), entry->prefix_len, + ZSTR_VAL(entry->pattern), entry->prefix_len) != 0) { + return 0; + } + + /* Lowercase the pattern, the agent name is already lowercase */ + ZSTR_ALLOCA_ALLOC(pattern_lc, ZSTR_LEN(entry->pattern), use_heap); + zend_str_tolower_copy(ZSTR_VAL(pattern_lc), ZSTR_VAL(entry->pattern), ZSTR_LEN(entry->pattern)); + + /* Check if the agent contains the "contains" portions */ + cur = ZSTR_VAL(agent_name) + entry->prefix_len; + for (i = 0; i < BROWSCAP_NUM_CONTAINS; i++) { + if (entry->contains_len[i] != 0) { + cur = zend_memnstr(cur, + ZSTR_VAL(pattern_lc) + entry->contains_start[i], + entry->contains_len[i], + ZSTR_VAL(agent_name) + ZSTR_LEN(agent_name)); + if (!cur) { + ZSTR_ALLOCA_FREE(pattern_lc, use_heap); + return 0; + } + cur += entry->contains_len[i]; + } + } + + /* See if we have an exact match, if so, we're done... */ + if (zend_string_equals(agent_name, pattern_lc)) { + *found_entry_ptr = entry; + ZSTR_ALLOCA_FREE(pattern_lc, use_heap); + return ZEND_HASH_APPLY_STOP; + } + + regex = browscap_convert_pattern(entry->pattern, 0); + re = pcre_get_compiled_regex(regex, &re_extra, &re_options); + if (re == NULL) { + ZSTR_ALLOCA_FREE(pattern_lc, use_heap); + zend_string_release(regex); + return 0; + } + + if (pcre_exec(re, re_extra, ZSTR_VAL(agent_name), ZSTR_LEN(agent_name), 0, re_options, NULL, 0) == 0) { /* If we've found a possible browser, we need to do a comparison of the number of characters changed in the user agent being checked versus the previous match found and the current match. */ @@ -523,6 +650,8 @@ static int browser_reg_compare( } } + ZSTR_ALLOCA_FREE(pattern_lc, use_heap); + zend_string_release(regex); return 0; } /* }}} */ @@ -537,12 +666,8 @@ static void browscap_zval_copy_ctor(zval *p) /* {{{ */ Get information about the capabilities of a browser. If browser_name is omitted or null, HTTP_USER_AGENT is used. Returns an object by default; if return_array is true, returns an array. */ PHP_FUNCTION(get_browser) { - char *agent_name = NULL; - size_t agent_name_len = 0; + zend_string *agent_name = NULL, *lookup_browser_name; zend_bool return_array = 0; - zval *agent, *parent_agent_name_zv, *http_user_agent; - zend_string *parent_agent_name; - char *lookup_browser_name; browser_data *bdata; browscap_entry *found_entry = NULL; HashTable *agent_ht; @@ -562,27 +687,29 @@ PHP_FUNCTION(get_browser) bdata = &global_bdata; } - if (zend_parse_parameters(ZEND_NUM_ARGS(), "|s!b", &agent_name, &agent_name_len, &return_array) == FAILURE) { + if (zend_parse_parameters(ZEND_NUM_ARGS(), "|S!b", &agent_name, &return_array) == FAILURE) { return; } if (agent_name == NULL) { - if ((Z_TYPE(PG(http_globals)[TRACK_VARS_SERVER]) == IS_ARRAY || zend_is_auto_global_str(ZEND_STRL("_SERVER"))) && - (http_user_agent = zend_hash_str_find(Z_ARRVAL_P(&PG(http_globals)[TRACK_VARS_SERVER]), "HTTP_USER_AGENT", sizeof("HTTP_USER_AGENT")-1)) == NULL - ) { + zval *http_user_agent = NULL; + if (Z_TYPE(PG(http_globals)[TRACK_VARS_SERVER]) == IS_ARRAY + || zend_is_auto_global_str(ZEND_STRL("_SERVER"))) { + http_user_agent = zend_hash_str_find( + Z_ARRVAL_P(&PG(http_globals)[TRACK_VARS_SERVER]), + "HTTP_USER_AGENT", sizeof("HTTP_USER_AGENT")-1); + } + if (http_user_agent == NULL) { php_error_docref(NULL, E_WARNING, "HTTP_USER_AGENT variable is not set, cannot determine user agent name"); RETURN_FALSE; } - agent_name = Z_STRVAL_P(http_user_agent); - agent_name_len = Z_STRLEN_P(http_user_agent); + agent_name = Z_STR_P(http_user_agent); } - lookup_browser_name = estrndup(agent_name, agent_name_len); - php_strtolower(lookup_browser_name, agent_name_len); - - found_entry = zend_hash_str_find_ptr(bdata->htab, lookup_browser_name, agent_name_len); + lookup_browser_name = zend_string_tolower(agent_name); + found_entry = zend_hash_find_ptr(bdata->htab, lookup_browser_name); if (found_entry == NULL) { - zend_hash_apply_with_arguments(bdata->htab, browser_reg_compare, 3, lookup_browser_name, agent_name_len, &found_entry); + zend_hash_apply_with_arguments(bdata->htab, browser_reg_compare, 2, lookup_browser_name, &found_entry); if (found_entry == NULL) { found_entry = zend_hash_str_find_ptr(bdata->htab, @@ -602,11 +729,9 @@ PHP_FUNCTION(get_browser) object_and_properties_init(return_value, zend_standard_class_def, agent_ht); } - parent_agent_name_zv = zend_hash_str_find(agent_ht, "parent", sizeof("parent")-1); - parent_agent_name = parent_agent_name_zv ? Z_STR_P(parent_agent_name_zv) : NULL; - - while (parent_agent_name) { - if ((found_entry = zend_hash_find_ptr(bdata->htab, parent_agent_name)) == NULL) { + while (found_entry->parent) { + found_entry = zend_hash_find_ptr(bdata->htab, found_entry->parent); + if (found_entry == NULL) { break; } @@ -617,14 +742,11 @@ PHP_FUNCTION(get_browser) zend_hash_merge(Z_OBJPROP_P(return_value), agent_ht, (copy_ctor_func_t) browscap_zval_copy_ctor, 0); } - parent_agent_name_zv = zend_hash_str_find(agent_ht, "parent", sizeof("parent")-1); - parent_agent_name = parent_agent_name_zv ? Z_STR_P(parent_agent_name_zv) : NULL; - zend_hash_destroy(agent_ht); efree(agent_ht); } - efree(lookup_browser_name); + zend_string_release(lookup_browser_name); } /* }}} */ From 20c172d45937db7e1a8f86cab3b742ec44e44d61 Mon Sep 17 00:00:00 2001 From: Nikita Popov Date: Mon, 2 Jan 2017 23:35:27 +0100 Subject: [PATCH 25/41] Add NEWS entries --- NEWS | 3 +++ 1 file changed, 3 insertions(+) diff --git a/NEWS b/NEWS index 11bcf54b5e9..87111583872 100644 --- a/NEWS +++ b/NEWS @@ -53,6 +53,9 @@ PHP NEWS . Fixed bug #70213 (Unserialize context shared on double class lookup). (Taoguang Chen) . Fixed bug #73154 (serialize object with __sleep function crash). (Nikita) + . Fixed bug #70490 (get_browser function is very slow). (Nikita) + . Fixed bug #73265 (Loading browscap.ini at startup causes high memory usage). + (Nikita) - Zlib: . Fixed bug #73373 (deflate_add does not verify that output was not truncated). From 43ed89ea3185cedcdacef2683d4154cab8884654 Mon Sep 17 00:00:00 2001 From: Nikita Popov Date: Mon, 2 Jan 2017 23:47:30 +0100 Subject: [PATCH 26/41] Fix data_size decrement We don't want to decrement the pointer... --- ext/mysqlnd/mysqlnd_wireprotocol.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ext/mysqlnd/mysqlnd_wireprotocol.c b/ext/mysqlnd/mysqlnd_wireprotocol.c index d6fa9017bdd..322f187ef5b 100644 --- a/ext/mysqlnd/mysqlnd_wireprotocol.c +++ b/ext/mysqlnd/mysqlnd_wireprotocol.c @@ -1531,7 +1531,7 @@ php_mysqlnd_read_row_ex(MYSQLND_PFC * pfc, pool->free_chunk(pool, *buffer); *buffer = NULL; } - *data_size--; + (*data_size)--; DBG_RETURN(ret); } /* }}} */ From f12f0b2bc2d7755cfa56183088f16ee7f8598cba Mon Sep 17 00:00:00 2001 From: Anatol Belski Date: Tue, 3 Jan 2017 01:07:55 +0100 Subject: [PATCH 27/41] Disable pdb generation for AppVeyor It is not needed for the test runs and would speedup the compilation phase. --- appveyor/build_task.bat | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/appveyor/build_task.bat b/appveyor/build_task.bat index cf5187738c5..397e486022f 100644 --- a/appveyor/build_task.bat +++ b/appveyor/build_task.bat @@ -33,7 +33,7 @@ if "%OPCACHE%" equ "0" set EXT_EXCLUDE_FROM_TEST=%EXT_EXCLUDE_FROM_TEST%,opcache call configure.bat ^ --enable-snapshot-build ^ - --enable-debug-pack ^ + --disable-debug-pack ^ --with-mcrypt=shared ^ --enable-com-dotnet=shared ^ --without-analyzer ^ From e1e5caf9d42e8ff28a18b1369810415e3fef162c Mon Sep 17 00:00:00 2001 From: Nikita Popov Date: Tue, 3 Jan 2017 02:12:28 +0100 Subject: [PATCH 28/41] Fix early free --- ext/standard/browscap.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ext/standard/browscap.c b/ext/standard/browscap.c index 71491bcb459..b927068950a 100644 --- a/ext/standard/browscap.c +++ b/ext/standard/browscap.c @@ -248,7 +248,6 @@ static zend_string *browscap_intern_str_ci( ZSTR_ALLOCA_ALLOC(lcname, ZSTR_LEN(str), use_heap); zend_str_tolower_copy(ZSTR_VAL(lcname), ZSTR_VAL(str), ZSTR_LEN(str)); interned = zend_hash_find_ptr(&ctx->str_interned, lcname); - ZSTR_ALLOCA_FREE(lcname, use_heap); if (interned) { zend_string_addref(interned); @@ -257,6 +256,7 @@ static zend_string *browscap_intern_str_ci( zend_hash_add_new_ptr(&ctx->str_interned, interned, interned); } + ZSTR_ALLOCA_FREE(lcname, use_heap); return interned; } From d2298c3cecd1cc4a4c48173b3cce9aa9b6f409bd Mon Sep 17 00:00:00 2001 From: Anatol Belski Date: Tue, 3 Jan 2017 01:56:27 +0100 Subject: [PATCH 29/41] set exclude AppVeyor branches and ignore builds on NEWS updates --- .appveyor.yml | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/.appveyor.yml b/.appveyor.yml index ba0d1c132d7..5dae3970ef6 100644 --- a/.appveyor.yml +++ b/.appveyor.yml @@ -3,6 +3,15 @@ version: "{branch}.build.{build}" image: Visual Studio 2015 +branches: + except: + - PHP-5.6 + - PHP-7.0 + +skip_commits: + message: /.*(NEWS|UPGRADING).*/ + + clone_depth: 64 cache: From 2a4d0a7a0f25e41563a0fd61768c0835bc4c3dff Mon Sep 17 00:00:00 2001 From: Nikita Popov Date: Tue, 3 Jan 2017 02:18:00 +0100 Subject: [PATCH 30/41] Fix test after mail.log change --- ext/standard/tests/mail/mail_log.phpt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ext/standard/tests/mail/mail_log.phpt b/ext/standard/tests/mail/mail_log.phpt index 86346ec307e..8f385d490d5 100644 --- a/ext/standard/tests/mail/mail_log.phpt +++ b/ext/standard/tests/mail/mail_log.phpt @@ -44,5 +44,5 @@ unlink("/tmp/mail.out"); bool(true) bool(true) bool(true) -[%d-%s-%d %d:%d:%d UTC] mail() on [%smail_log.php:%d]: To: test@example.com -- Headers: X-Test: 1 +[%d-%s-%d %d:%d:%d UTC] mail() on [%smail_log.php:%d]: To: test@example.com -- Headers: X-Test: 1 -- Subject: mail.log test Done From 4cc0286f2f3780abc6084bcdae5dce595daa3c12 Mon Sep 17 00:00:00 2001 From: Stanislav Malyshev Date: Mon, 2 Jan 2017 20:14:05 -0800 Subject: [PATCH 31/41] Fix #73832 - leave the table in a safe state if the size is too big. --- Zend/zend_hash.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Zend/zend_hash.c b/Zend/zend_hash.c index 322422da155..8b54a3932d0 100644 --- a/Zend/zend_hash.c +++ b/Zend/zend_hash.c @@ -175,7 +175,6 @@ ZEND_API void ZEND_FASTCALL _zend_hash_init(HashTable *ht, uint32_t nSize, dtor_ GC_REFCOUNT(ht) = 1; GC_TYPE_INFO(ht) = IS_ARRAY; ht->u.flags = (persistent ? HASH_FLAG_PERSISTENT : 0) | HASH_FLAG_APPLY_PROTECTION | HASH_FLAG_STATIC_KEYS; - ht->nTableSize = zend_hash_check_size(nSize); ht->nTableMask = HT_MIN_MASK; HT_SET_DATA_ADDR(ht, &uninitialized_bucket); ht->nNumUsed = 0; @@ -183,6 +182,7 @@ ZEND_API void ZEND_FASTCALL _zend_hash_init(HashTable *ht, uint32_t nSize, dtor_ ht->nInternalPointer = HT_INVALID_IDX; ht->nNextFreeElement = 0; ht->pDestructor = pDestructor; + ht->nTableSize = zend_hash_check_size(nSize); } static void ZEND_FASTCALL zend_hash_packed_grow(HashTable *ht) From ea6e54aff376926fb9ef83411f732b9477cf9b11 Mon Sep 17 00:00:00 2001 From: Stanislav Malyshev Date: Mon, 2 Jan 2017 21:59:44 -0800 Subject: [PATCH 32/41] Fix error reporting --- ext/standard/var_unserializer.c | 4 ++-- ext/standard/var_unserializer.re | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/ext/standard/var_unserializer.c b/ext/standard/var_unserializer.c index cb5d8662d6b..6f6f0e75d98 100644 --- a/ext/standard/var_unserializer.c +++ b/ext/standard/var_unserializer.c @@ -447,7 +447,7 @@ static inline zend_long object_common1(UNSERIALIZE_PARAMETER, zend_class_entry * } else { /* If this class implements Serializable, it should not land here but in object_custom(). The passed string obviously doesn't descend from the regular serializer. */ - zend_error(E_WARNING, "Erroneous data format for unserializing '%s'", ce->name); + zend_error(E_WARNING, "Erroneous data format for unserializing '%s'", ZSTR_VAL(ce->name)); return -1; } @@ -514,7 +514,7 @@ PHPAPI int php_var_unserialize_ex(UNSERIALIZE_PARAMETER) var_entries *orig_var_entries = (*var_hash)->last; zend_long orig_used_slots = orig_var_entries ? orig_var_entries->used_slots : 0; int result; - + result = php_var_unserialize_internal(UNSERIALIZE_PASSTHRU); if (!result) { diff --git a/ext/standard/var_unserializer.re b/ext/standard/var_unserializer.re index c5fe25d7274..b560479c03a 100644 --- a/ext/standard/var_unserializer.re +++ b/ext/standard/var_unserializer.re @@ -451,7 +451,7 @@ static inline zend_long object_common1(UNSERIALIZE_PARAMETER, zend_class_entry * } else { /* If this class implements Serializable, it should not land here but in object_custom(). The passed string obviously doesn't descend from the regular serializer. */ - zend_error(E_WARNING, "Erroneous data format for unserializing '%s'", ce->name); + zend_error(E_WARNING, "Erroneous data format for unserializing '%s'", ZSTR_VAL(ce->name)); return -1; } @@ -518,7 +518,7 @@ PHPAPI int php_var_unserialize_ex(UNSERIALIZE_PARAMETER) var_entries *orig_var_entries = (*var_hash)->last; zend_long orig_used_slots = orig_var_entries ? orig_var_entries->used_slots : 0; int result; - + result = php_var_unserialize_internal(UNSERIALIZE_PASSTHRU); if (!result) { From 68ac602b283f54d81bc846692c5d52767d5f7378 Mon Sep 17 00:00:00 2001 From: Stanislav Malyshev Date: Mon, 2 Jan 2017 22:08:25 -0800 Subject: [PATCH 33/41] Use correct string release function --- ext/standard/var_unserializer.c | 2 +- ext/standard/var_unserializer.re | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/ext/standard/var_unserializer.c b/ext/standard/var_unserializer.c index 6f6f0e75d98..3279665cd72 100644 --- a/ext/standard/var_unserializer.c +++ b/ext/standard/var_unserializer.c @@ -838,7 +838,7 @@ yy20: elements = object_common1(UNSERIALIZE_PASSTHRU, ce); if (elements < 0) { - efree(class_name); + zend_string_release(class_name); return 0; } diff --git a/ext/standard/var_unserializer.re b/ext/standard/var_unserializer.re index b560479c03a..fe82977e9c4 100644 --- a/ext/standard/var_unserializer.re +++ b/ext/standard/var_unserializer.re @@ -915,7 +915,7 @@ object ":" uiv ":" ["] { elements = object_common1(UNSERIALIZE_PASSTHRU, ce); if (elements < 0) { - efree(class_name); + zend_string_release(class_name); return 0; } From 6b985c71d4c748868f4959124639747fc748cf5a Mon Sep 17 00:00:00 2001 From: Rasmus Lerdorf Date: Mon, 2 Jan 2017 22:20:08 -0800 Subject: [PATCH 34/41] Fix opcache test dependencies --- ext/opcache/tests/basic_logging.phpt | 1 + ext/opcache/tests/issue0115.phpt | 16 ++++++++-------- ext/opcache/tests/issue0149.phpt | 4 ++-- ext/opcache/tests/log_verbosity_bug.phpt | 1 + 4 files changed, 12 insertions(+), 10 deletions(-) diff --git a/ext/opcache/tests/basic_logging.phpt b/ext/opcache/tests/basic_logging.phpt index c62ea039a52..4a571b5b93c 100644 --- a/ext/opcache/tests/basic_logging.phpt +++ b/ext/opcache/tests/basic_logging.phpt @@ -7,6 +7,7 @@ outputs the correct logging at the highest log_verbosity_level --INI-- opcache.enable=1 opcache.enable_cli=1 +opcache.file_cache_only=0 opcache.log_verbosity_level=4 --SKIPIF-- diff --git a/ext/opcache/tests/issue0115.phpt b/ext/opcache/tests/issue0115.phpt index 0dfdd9f0eb4..26d99080ebe 100644 --- a/ext/opcache/tests/issue0115.phpt +++ b/ext/opcache/tests/issue0115.phpt @@ -16,28 +16,28 @@ require "phar://this/index.php"; __HALT_COMPILER(); ?>'; $p = new Phar(__DIR__ . '/issue0115_1.phar.php', 0, 'this'); $p['index.php'] = 'setStub($stub); unset($p); $p = new Phar(__DIR__ . '/issue0115_2.phar.php', 0, 'this'); $p['index.php'] = 'setStub($stub); unset($p); include "php_cli_server.inc"; -php_cli_server_start('-d opcache.enable=1 -d opcache.enable_cli=1'); +php_cli_server_start('-d opcache.enable=1 -d opcache.enable_cli=1 -d extension=phar.'.PHP_SHLIB_SUFFIX); echo file_get_contents('http://' . PHP_CLI_SERVER_ADDRESS . '/issue0115_1.phar.php'); echo file_get_contents('http://' . PHP_CLI_SERVER_ADDRESS . '/issue0115_2.phar.php'); ?> --CLEAN-- - diff --git a/ext/opcache/tests/issue0149.phpt b/ext/opcache/tests/issue0149.phpt index 8c7f1bb7e08..ba57623fcee 100644 --- a/ext/opcache/tests/issue0149.phpt +++ b/ext/opcache/tests/issue0149.phpt @@ -20,13 +20,13 @@ $p->setStub($stub); unset($p); include "php_cli_server.inc"; -php_cli_server_start('-d opcache.enable=1 -d opcache.enable_cli=1'); +php_cli_server_start('-d opcache.enable=1 -d opcache.enable_cli=1 -d extension=phar.'.PHP_SHLIB_SUFFIX); echo file_get_contents('http://' . PHP_CLI_SERVER_ADDRESS . '/issue0149.phar.php'); echo file_get_contents('http://' . PHP_CLI_SERVER_ADDRESS . '/issue0149.phar.php'); echo file_get_contents('http://' . PHP_CLI_SERVER_ADDRESS . '/issue0149.phar.php'); ?> --CLEAN-- - --EXPECT-- diff --git a/ext/opcache/tests/log_verbosity_bug.phpt b/ext/opcache/tests/log_verbosity_bug.phpt index 725b8889f4f..2e5d7a9adda 100644 --- a/ext/opcache/tests/log_verbosity_bug.phpt +++ b/ext/opcache/tests/log_verbosity_bug.phpt @@ -7,6 +7,7 @@ The process should die regardless of the log_verbosity_level. --INI-- opcache.enable=1 opcache.enable_cli=1 +opcache.file_cache_only=0 opcache.memory_consumption=999999999 opcache.log_verbosity_level=-1 --SKIPIF-- From 608724bfe19510e2f218cf1714530ae68c3cc196 Mon Sep 17 00:00:00 2001 From: Rasmus Lerdorf Date: Mon, 2 Jan 2017 22:21:12 -0800 Subject: [PATCH 35/41] Fix opcache test dependencies --- ext/opcache/tests/basic_logging.phpt | 1 + ext/opcache/tests/issue0115.phpt | 16 ++++++++-------- ext/opcache/tests/issue0149.phpt | 4 ++-- ext/opcache/tests/log_verbosity_bug.phpt | 1 + 4 files changed, 12 insertions(+), 10 deletions(-) diff --git a/ext/opcache/tests/basic_logging.phpt b/ext/opcache/tests/basic_logging.phpt index c62ea039a52..4a571b5b93c 100644 --- a/ext/opcache/tests/basic_logging.phpt +++ b/ext/opcache/tests/basic_logging.phpt @@ -7,6 +7,7 @@ outputs the correct logging at the highest log_verbosity_level --INI-- opcache.enable=1 opcache.enable_cli=1 +opcache.file_cache_only=0 opcache.log_verbosity_level=4 --SKIPIF-- diff --git a/ext/opcache/tests/issue0115.phpt b/ext/opcache/tests/issue0115.phpt index 0dfdd9f0eb4..26d99080ebe 100644 --- a/ext/opcache/tests/issue0115.phpt +++ b/ext/opcache/tests/issue0115.phpt @@ -16,28 +16,28 @@ require "phar://this/index.php"; __HALT_COMPILER(); ?>'; $p = new Phar(__DIR__ . '/issue0115_1.phar.php', 0, 'this'); $p['index.php'] = 'setStub($stub); unset($p); $p = new Phar(__DIR__ . '/issue0115_2.phar.php', 0, 'this'); $p['index.php'] = 'setStub($stub); unset($p); include "php_cli_server.inc"; -php_cli_server_start('-d opcache.enable=1 -d opcache.enable_cli=1'); +php_cli_server_start('-d opcache.enable=1 -d opcache.enable_cli=1 -d extension=phar.'.PHP_SHLIB_SUFFIX); echo file_get_contents('http://' . PHP_CLI_SERVER_ADDRESS . '/issue0115_1.phar.php'); echo file_get_contents('http://' . PHP_CLI_SERVER_ADDRESS . '/issue0115_2.phar.php'); ?> --CLEAN-- - diff --git a/ext/opcache/tests/issue0149.phpt b/ext/opcache/tests/issue0149.phpt index 8c7f1bb7e08..ba57623fcee 100644 --- a/ext/opcache/tests/issue0149.phpt +++ b/ext/opcache/tests/issue0149.phpt @@ -20,13 +20,13 @@ $p->setStub($stub); unset($p); include "php_cli_server.inc"; -php_cli_server_start('-d opcache.enable=1 -d opcache.enable_cli=1'); +php_cli_server_start('-d opcache.enable=1 -d opcache.enable_cli=1 -d extension=phar.'.PHP_SHLIB_SUFFIX); echo file_get_contents('http://' . PHP_CLI_SERVER_ADDRESS . '/issue0149.phar.php'); echo file_get_contents('http://' . PHP_CLI_SERVER_ADDRESS . '/issue0149.phar.php'); echo file_get_contents('http://' . PHP_CLI_SERVER_ADDRESS . '/issue0149.phar.php'); ?> --CLEAN-- - --EXPECT-- diff --git a/ext/opcache/tests/log_verbosity_bug.phpt b/ext/opcache/tests/log_verbosity_bug.phpt index 725b8889f4f..2e5d7a9adda 100644 --- a/ext/opcache/tests/log_verbosity_bug.phpt +++ b/ext/opcache/tests/log_verbosity_bug.phpt @@ -7,6 +7,7 @@ The process should die regardless of the log_verbosity_level. --INI-- opcache.enable=1 opcache.enable_cli=1 +opcache.file_cache_only=0 opcache.memory_consumption=999999999 opcache.log_verbosity_level=-1 --SKIPIF-- From 19b757dacd224c1e70ad3452c5f9d9b69141ddf1 Mon Sep 17 00:00:00 2001 From: Rasmus Lerdorf Date: Mon, 2 Jan 2017 22:30:28 -0800 Subject: [PATCH 36/41] Fix opcache test dependencies --- ext/opcache/tests/basic_logging.phpt | 1 + ext/opcache/tests/issue0115.phpt | 16 ++++++++-------- ext/opcache/tests/issue0149.phpt | 4 ++-- ext/opcache/tests/log_verbosity_bug.phpt | 1 + 4 files changed, 12 insertions(+), 10 deletions(-) diff --git a/ext/opcache/tests/basic_logging.phpt b/ext/opcache/tests/basic_logging.phpt index c62ea039a52..4a571b5b93c 100644 --- a/ext/opcache/tests/basic_logging.phpt +++ b/ext/opcache/tests/basic_logging.phpt @@ -7,6 +7,7 @@ outputs the correct logging at the highest log_verbosity_level --INI-- opcache.enable=1 opcache.enable_cli=1 +opcache.file_cache_only=0 opcache.log_verbosity_level=4 --SKIPIF-- diff --git a/ext/opcache/tests/issue0115.phpt b/ext/opcache/tests/issue0115.phpt index 0dfdd9f0eb4..26d99080ebe 100644 --- a/ext/opcache/tests/issue0115.phpt +++ b/ext/opcache/tests/issue0115.phpt @@ -16,28 +16,28 @@ require "phar://this/index.php"; __HALT_COMPILER(); ?>'; $p = new Phar(__DIR__ . '/issue0115_1.phar.php', 0, 'this'); $p['index.php'] = 'setStub($stub); unset($p); $p = new Phar(__DIR__ . '/issue0115_2.phar.php', 0, 'this'); $p['index.php'] = 'setStub($stub); unset($p); include "php_cli_server.inc"; -php_cli_server_start('-d opcache.enable=1 -d opcache.enable_cli=1'); +php_cli_server_start('-d opcache.enable=1 -d opcache.enable_cli=1 -d extension=phar.'.PHP_SHLIB_SUFFIX); echo file_get_contents('http://' . PHP_CLI_SERVER_ADDRESS . '/issue0115_1.phar.php'); echo file_get_contents('http://' . PHP_CLI_SERVER_ADDRESS . '/issue0115_2.phar.php'); ?> --CLEAN-- - diff --git a/ext/opcache/tests/issue0149.phpt b/ext/opcache/tests/issue0149.phpt index 8c7f1bb7e08..ba57623fcee 100644 --- a/ext/opcache/tests/issue0149.phpt +++ b/ext/opcache/tests/issue0149.phpt @@ -20,13 +20,13 @@ $p->setStub($stub); unset($p); include "php_cli_server.inc"; -php_cli_server_start('-d opcache.enable=1 -d opcache.enable_cli=1'); +php_cli_server_start('-d opcache.enable=1 -d opcache.enable_cli=1 -d extension=phar.'.PHP_SHLIB_SUFFIX); echo file_get_contents('http://' . PHP_CLI_SERVER_ADDRESS . '/issue0149.phar.php'); echo file_get_contents('http://' . PHP_CLI_SERVER_ADDRESS . '/issue0149.phar.php'); echo file_get_contents('http://' . PHP_CLI_SERVER_ADDRESS . '/issue0149.phar.php'); ?> --CLEAN-- - --EXPECT-- diff --git a/ext/opcache/tests/log_verbosity_bug.phpt b/ext/opcache/tests/log_verbosity_bug.phpt index 725b8889f4f..2e5d7a9adda 100644 --- a/ext/opcache/tests/log_verbosity_bug.phpt +++ b/ext/opcache/tests/log_verbosity_bug.phpt @@ -7,6 +7,7 @@ The process should die regardless of the log_verbosity_level. --INI-- opcache.enable=1 opcache.enable_cli=1 +opcache.file_cache_only=0 opcache.memory_consumption=999999999 opcache.log_verbosity_level=-1 --SKIPIF-- From e42a01bcd54eaaa62e18a648a4a310063bd0abf1 Mon Sep 17 00:00:00 2001 From: Joe Watkins Date: Tue, 3 Jan 2017 10:48:42 +0000 Subject: [PATCH 37/41] Merge branch 'pull-request/1905' * pull-request/1905: pack()/unpack() for Big Endian float/double and Little Endian float/double --- ext/standard/pack.c | 214 ++++++++++++- ext/standard/tests/strings/pack_float.phpt | 312 +++++++++++++++++++ ext/standard/tests/strings/unpack_error.phpt | 4 +- 3 files changed, 519 insertions(+), 11 deletions(-) create mode 100644 ext/standard/tests/strings/pack_float.phpt diff --git a/ext/standard/pack.c b/ext/standard/pack.c index 1252f4286f8..261e97ce8b7 100644 --- a/ext/standard/pack.c +++ b/ext/standard/pack.c @@ -104,8 +104,132 @@ static void php_pack(zval *val, size_t size, int *map, char *output) } /* }}} */ +/* {{{ php_pack_reverse_int32 + */ +inline uint32_t php_pack_reverse_int32(uint32_t arg) +{ + uint32_t result; + result = ((arg & 0xFF) << 24) | ((arg & 0xFF00) << 8) | ((arg >> 8) & 0xFF00) | ((arg >> 24) & 0xFF); + + return result; +} +/* }}} */ + +/* {{{ php_pack + */ +inline uint64_t php_pack_reverse_int64(uint64_t arg) +{ + union Swap64 { + uint64_t i; + uint32_t ul[2]; + } tmp, result; + tmp.i = arg; + result.ul[0] = php_pack_reverse_int32(tmp.ul[1]); + result.ul[1] = php_pack_reverse_int32(tmp.ul[0]); + + return result.i; +} +/* }}} */ + +/* {{{ php_pack_copy_float + */ +static void php_pack_copy_float(int is_little_endian, void * dst, float f) +{ + union Copy32 { + float f; + uint32_t i; + } m; + m.f = f; + +#ifdef WORDS_BIGENDIAN + if (is_little_endian) { + m.i = php_pack_reverse_int32(m.i); + } +#else /* WORDS_BIGENDIAN */ + if (!is_little_endian) { + m.i = php_pack_reverse_int32(m.i); + } +#endif /* WORDS_BIGENDIAN */ + + memcpy(dst, &m.f, sizeof(float)); +} +/* }}} */ + +/* {{{ php_pack_copy_double + */ +static void php_pack_copy_double(int is_little_endian, void * dst, double d) +{ + union Copy64 { + double d; + uint64_t i; + } m; + m.d = d; + +#ifdef WORDS_BIGENDIAN + if (is_little_endian) { + m.i = php_pack_reverse_int64(m.i); + } +#else /* WORDS_BIGENDIAN */ + if (!is_little_endian) { + m.i = php_pack_reverse_int64(m.i); + } +#endif /* WORDS_BIGENDIAN */ + + memcpy(dst, &m.d, sizeof(double)); +} +/* }}} */ + +/* {{{ php_pack_parse_float + */ +static float php_pack_parse_float(int is_little_endian, void * src) +{ + union Copy32 { + float f; + uint32_t i; + } m; + memcpy(&m.i, src, sizeof(float)); + +#ifdef WORDS_BIGENDIAN + if (is_little_endian) { + m.i = php_pack_reverse_int32(m.i); + } +#else /* WORDS_BIGENDIAN */ + if (!is_little_endian) { + m.i = php_pack_reverse_int32(m.i); + } +#endif /* WORDS_BIGENDIAN */ + + return m.f; +} +/* }}} */ + +/* {{{ php_pack_parse_double + */ +static double php_pack_parse_double(int is_little_endian, void * src) +{ + union Copy64 { + double d; + uint64_t i; + } m; + memcpy(&m.i, src, sizeof(double)); + +#ifdef WORDS_BIGENDIAN + if (is_little_endian) { + m.i = php_pack_reverse_int64(m.i); + } +#else /* WORDS_BIGENDIAN */ + if (!is_little_endian) { + m.i = php_pack_reverse_int64(m.i); + } +#endif /* WORDS_BIGENDIAN */ + + return m.d; +} +/* }}} */ + /* pack() idea stolen from Perl (implemented formats behave the same as there except J and P) * Implemented formats are Z, A, a, h, H, c, C, s, S, i, I, l, L, n, N, q, Q, J, P, f, d, x, X, @. + * Added g, G for little endian float and big endian float, added e, E for little endian double and big endian double. */ /* {{{ proto string pack(string format, mixed arg1 [, mixed arg2 [, mixed ...]]) Takes one or more arguments and packs them into a binary string according to the format argument */ @@ -216,8 +340,12 @@ PHP_FUNCTION(pack) case 'N': case 'v': case 'V': - case 'f': - case 'd': + case 'f': /* float */ + case 'g': /* little endian float */ + case 'G': /* big endian float */ + case 'd': /* double */ + case 'e': /* little endian double */ + case 'E': /* big endian double */ if (arg < 0) { arg = num_args - currentarg; } @@ -295,11 +423,15 @@ PHP_FUNCTION(pack) break; #endif - case 'f': + case 'f': /* float */ + case 'g': /* little endian float */ + case 'G': /* big endian float */ INC_OUTPUTPOS(arg,sizeof(float)) break; - case 'd': + case 'd': /* double */ + case 'e': /* little endian double */ + case 'E': /* big endian double */ INC_OUTPUTPOS(arg,sizeof(double)) break; @@ -474,6 +606,26 @@ PHP_FUNCTION(pack) } break; } + + case 'g': { + /* pack little endian float */ + while (arg-- > 0) { + float v = (float) zval_get_double(&argv[currentarg++]); + php_pack_copy_float(1, &ZSTR_VAL(output)[outputpos], v); + outputpos += sizeof(v); + } + + break; + } + case 'G': { + /* pack big endian float */ + while (arg-- > 0) { + float v = (float) zval_get_double(&argv[currentarg++]); + php_pack_copy_float(0, &ZSTR_VAL(output)[outputpos], v); + outputpos += sizeof(v); + } + break; + } case 'd': { while (arg-- > 0) { @@ -483,6 +635,26 @@ PHP_FUNCTION(pack) } break; } + + case 'e': { + /* pack little endian double */ + while (arg-- > 0) { + double v = (double) zval_get_double(&argv[currentarg++]); + php_pack_copy_double(1, &ZSTR_VAL(output)[outputpos], v); + outputpos += sizeof(v); + } + break; + } + + case 'E': { + /* pack big endian double */ + while (arg-- > 0) { + double v = (double) zval_get_double(&argv[currentarg++]); + php_pack_copy_double(0, &ZSTR_VAL(output)[outputpos], v); + outputpos += sizeof(v); + } + break; + } case 'x': memset(&ZSTR_VAL(output)[outputpos], '\0', arg); @@ -543,6 +715,7 @@ static zend_long php_unpack(char *data, size_t size, int issigned, int *map) * Numeric pack types will return numbers, a and A will return strings, * f and d will return doubles. * Implemented formats are Z, A, a, h, H, c, C, s, S, i, I, l, L, n, N, q, Q, J, P, f, d, x, X, @. + * Added g, G for little endian float and big endian float, added e, E for little endian double and big endian double. */ /* {{{ proto array unpack(string format, string input) Unpack binary string into named array elements according to format argument */ @@ -683,11 +856,15 @@ PHP_FUNCTION(unpack) /* Use sizeof(float) bytes of input */ case 'f': + case 'g': + case 'G': size = sizeof(float); break; /* Use sizeof(double) bytes of input */ case 'd': + case 'e': + case 'E': size = sizeof(double); break; @@ -943,18 +1120,37 @@ PHP_FUNCTION(unpack) } #endif - case 'f': { + case 'f': /* float */ + case 'g': /* little endian float*/ + case 'G': /* big endian float*/ + { float v; - memcpy(&v, &input[inputpos], sizeof(float)); + if (type == 'g') { + v = php_pack_parse_float(1, &input[inputpos]); + } else if (type == 'G') { + v = php_pack_parse_float(0, &input[inputpos]); + } else { + memcpy(&v, &input[inputpos], sizeof(float)); + } + add_assoc_double(return_value, n, (double)v); break; } + - case 'd': { + case 'd': /* double */ + case 'e': /* little endian float */ + case 'E': /* big endian float */ + { double v; - - memcpy(&v, &input[inputpos], sizeof(double)); + if (type == 'e') { + v = php_pack_parse_double(1, &input[inputpos]); + } else if (type == 'E') { + v = php_pack_parse_double(0, &input[inputpos]); + } else { + memcpy(&v, &input[inputpos], sizeof(double)); + } add_assoc_double(return_value, n, v); break; } diff --git a/ext/standard/tests/strings/pack_float.phpt b/ext/standard/tests/strings/pack_float.phpt new file mode 100644 index 00000000000..088b508bc0b --- /dev/null +++ b/ext/standard/tests/strings/pack_float.phpt @@ -0,0 +1,312 @@ +--TEST-- +pack()/unpack(): float/double tests +--FILE-- + +--EXPECTF-- +string(6) "pack e" +string(16) "0000000000000000" +string(16) "0000000000000000" +string(16) "0000000000000000" +string(16) "0000000000000000" +string(16) "0000000000000000" +string(16) "000000000000f03f" +string(16) "000000000000f03f" +string(16) "0080e03779c34143" +string(16) "4a6ade0d65ebe23f" +string(16) "e1639d31956ae543" +string(16) "000000000000f0bf" +string(16) "000000000000f0bf" +string(16) "0080e03779c341c3" +string(16) "4a6ade0d65ebe2bf" +string(16) "e1639d31956ae5c3" +string(6) "pack E" +string(16) "0000000000000000" +string(16) "0000000000000000" +string(16) "0000000000000000" +string(16) "0000000000000000" +string(16) "0000000000000000" +string(16) "3ff0000000000000" +string(16) "3ff0000000000000" +string(16) "4341c37937e08000" +string(16) "3fe2eb650dde6a4a" +string(16) "43e56a95319d63e1" +string(16) "bff0000000000000" +string(16) "bff0000000000000" +string(16) "c341c37937e08000" +string(16) "bfe2eb650dde6a4a" +string(16) "c3e56a95319d63e1" +string(6) "pack g" +string(8) "00000000" +string(8) "00000000" +string(8) "00000000" +string(8) "00000000" +string(8) "00000000" +string(8) "0000803f" +string(8) "0000803f" +string(8) "ca1b0e5a" +string(8) "285b173f" +string(8) "aa542b5f" +string(8) "000080bf" +string(8) "000080bf" +string(8) "ca1b0eda" +string(8) "285b17bf" +string(8) "aa542bdf" +string(6) "pack G" +string(8) "00000000" +string(8) "00000000" +string(8) "00000000" +string(8) "00000000" +string(8) "00000000" +string(8) "3f800000" +string(8) "3f800000" +string(8) "5a0e1bca" +string(8) "3f175b28" +string(8) "5f2b54aa" +string(8) "bf800000" +string(8) "bf800000" +string(8) "da0e1bca" +string(8) "bf175b28" +string(8) "df2b54aa" +string(8) "unpack e" +array(1) { + [1]=> + float(0) +} +array(1) { + [1]=> + float(1) +} +array(1) { + [1]=> + float(1.0E+16) +} +array(1) { + [1]=> + float(0.59123470982315) +} +array(1) { + [1]=> + float(-1) +} +array(1) { + [1]=> + float(-1.0E+16) +} +array(1) { + [1]=> + float(-0.59123470982315) +} +array(1) { + [1]=> + float(-1.2345678901235E+19) +} +string(8) "unpack E" +array(1) { + [1]=> + float(1) +} +array(1) { + [1]=> + float(1.0E+16) +} +array(1) { + [1]=> + float(0.59123470982315) +} +array(1) { + [1]=> + float(1.2345678901235E+19) +} +array(1) { + [1]=> + float(-1) +} +array(1) { + [1]=> + float(-1.0E+16) +} +array(1) { + [1]=> + float(-0.59123470982315) +} +array(1) { + [1]=> + float(-1.2345678901235E+19) +} +string(8) "unpack g" +array(1) { + [1]=> + float(1) +} +array(1) { + [1]=> + float(1.0000000272564E+16) +} +array(1) { + [1]=> + float(0.59123468399048) +} +array(1) { + [1]=> + float(1.2345679395506E+19) +} +array(1) { + [1]=> + float(-1) +} +array(1) { + [1]=> + float(-1.0000000272564E+16) +} +array(1) { + [1]=> + float(-0.59123468399048) +} +array(1) { + [1]=> + float(-1.2345679395506E+19) +} +string(8) "unpack G" +array(1) { + [1]=> + float(1) +} +array(1) { + [1]=> + float(1.0000000272564E+16) +} +array(1) { + [1]=> + float(0.59123468399048) +} +array(1) { + [1]=> + float(1.2345679395506E+19) +} +array(1) { + [1]=> + float(-1) +} +array(1) { + [1]=> + float(-1.0000000272564E+16) +} +array(1) { + [1]=> + float(-0.59123468399048) +} +array(1) { + [1]=> + float(-1.2345679395506E+19) +} diff --git a/ext/standard/tests/strings/unpack_error.phpt b/ext/standard/tests/strings/unpack_error.phpt index 3a4f334c3b2..484366293b4 100644 --- a/ext/standard/tests/strings/unpack_error.phpt +++ b/ext/standard/tests/strings/unpack_error.phpt @@ -19,7 +19,7 @@ var_dump(unpack("I", pack("I", 65534), 0, $extra_arg)); echo "\n-- Testing unpack() function with invalid format character --\n"; $extra_arg = 10; -var_dump(unpack("G", pack("I", 65534))); +var_dump(unpack("B", pack("I", 65534))); ?> ===DONE=== --EXPECTF-- @@ -37,6 +37,6 @@ NULL -- Testing unpack() function with invalid format character -- -Warning: unpack(): Invalid format type G in %s on line %d +Warning: unpack(): Invalid format type B in %s on line %d bool(false) ===DONE=== From ff4e330eae7aa2550c483d480cb98054e251da55 Mon Sep 17 00:00:00 2001 From: Joe Watkins Date: Tue, 3 Jan 2017 10:48:42 +0000 Subject: [PATCH 38/41] Merge branch 'pull-request/1905' * pull-request/1905: pack()/unpack() for Big Endian float/double and Little Endian float/double --- ext/standard/pack.c | 214 ++++++++++++- ext/standard/tests/strings/pack_float.phpt | 312 +++++++++++++++++++ ext/standard/tests/strings/unpack_error.phpt | 4 +- 3 files changed, 519 insertions(+), 11 deletions(-) create mode 100644 ext/standard/tests/strings/pack_float.phpt diff --git a/ext/standard/pack.c b/ext/standard/pack.c index a24ee69ad29..11847179937 100644 --- a/ext/standard/pack.c +++ b/ext/standard/pack.c @@ -104,8 +104,132 @@ static void php_pack(zval *val, size_t size, int *map, char *output) } /* }}} */ +/* {{{ php_pack_reverse_int32 + */ +inline uint32_t php_pack_reverse_int32(uint32_t arg) +{ + uint32_t result; + result = ((arg & 0xFF) << 24) | ((arg & 0xFF00) << 8) | ((arg >> 8) & 0xFF00) | ((arg >> 24) & 0xFF); + + return result; +} +/* }}} */ + +/* {{{ php_pack + */ +inline uint64_t php_pack_reverse_int64(uint64_t arg) +{ + union Swap64 { + uint64_t i; + uint32_t ul[2]; + } tmp, result; + tmp.i = arg; + result.ul[0] = php_pack_reverse_int32(tmp.ul[1]); + result.ul[1] = php_pack_reverse_int32(tmp.ul[0]); + + return result.i; +} +/* }}} */ + +/* {{{ php_pack_copy_float + */ +static void php_pack_copy_float(int is_little_endian, void * dst, float f) +{ + union Copy32 { + float f; + uint32_t i; + } m; + m.f = f; + +#ifdef WORDS_BIGENDIAN + if (is_little_endian) { + m.i = php_pack_reverse_int32(m.i); + } +#else /* WORDS_BIGENDIAN */ + if (!is_little_endian) { + m.i = php_pack_reverse_int32(m.i); + } +#endif /* WORDS_BIGENDIAN */ + + memcpy(dst, &m.f, sizeof(float)); +} +/* }}} */ + +/* {{{ php_pack_copy_double + */ +static void php_pack_copy_double(int is_little_endian, void * dst, double d) +{ + union Copy64 { + double d; + uint64_t i; + } m; + m.d = d; + +#ifdef WORDS_BIGENDIAN + if (is_little_endian) { + m.i = php_pack_reverse_int64(m.i); + } +#else /* WORDS_BIGENDIAN */ + if (!is_little_endian) { + m.i = php_pack_reverse_int64(m.i); + } +#endif /* WORDS_BIGENDIAN */ + + memcpy(dst, &m.d, sizeof(double)); +} +/* }}} */ + +/* {{{ php_pack_parse_float + */ +static float php_pack_parse_float(int is_little_endian, void * src) +{ + union Copy32 { + float f; + uint32_t i; + } m; + memcpy(&m.i, src, sizeof(float)); + +#ifdef WORDS_BIGENDIAN + if (is_little_endian) { + m.i = php_pack_reverse_int32(m.i); + } +#else /* WORDS_BIGENDIAN */ + if (!is_little_endian) { + m.i = php_pack_reverse_int32(m.i); + } +#endif /* WORDS_BIGENDIAN */ + + return m.f; +} +/* }}} */ + +/* {{{ php_pack_parse_double + */ +static double php_pack_parse_double(int is_little_endian, void * src) +{ + union Copy64 { + double d; + uint64_t i; + } m; + memcpy(&m.i, src, sizeof(double)); + +#ifdef WORDS_BIGENDIAN + if (is_little_endian) { + m.i = php_pack_reverse_int64(m.i); + } +#else /* WORDS_BIGENDIAN */ + if (!is_little_endian) { + m.i = php_pack_reverse_int64(m.i); + } +#endif /* WORDS_BIGENDIAN */ + + return m.d; +} +/* }}} */ + /* pack() idea stolen from Perl (implemented formats behave the same as there except J and P) * Implemented formats are Z, A, a, h, H, c, C, s, S, i, I, l, L, n, N, q, Q, J, P, f, d, x, X, @. + * Added g, G for little endian float and big endian float, added e, E for little endian double and big endian double. */ /* {{{ proto string pack(string format, mixed arg1 [, mixed arg2 [, mixed ...]]) Takes one or more arguments and packs them into a binary string according to the format argument */ @@ -215,8 +339,12 @@ PHP_FUNCTION(pack) case 'N': case 'v': case 'V': - case 'f': - case 'd': + case 'f': /* float */ + case 'g': /* little endian float */ + case 'G': /* big endian float */ + case 'd': /* double */ + case 'e': /* little endian double */ + case 'E': /* big endian double */ if (arg < 0) { arg = num_args - currentarg; } @@ -294,11 +422,15 @@ PHP_FUNCTION(pack) break; #endif - case 'f': + case 'f': /* float */ + case 'g': /* little endian float */ + case 'G': /* big endian float */ INC_OUTPUTPOS(arg,sizeof(float)) break; - case 'd': + case 'd': /* double */ + case 'e': /* little endian double */ + case 'E': /* big endian double */ INC_OUTPUTPOS(arg,sizeof(double)) break; @@ -473,6 +605,26 @@ PHP_FUNCTION(pack) } break; } + + case 'g': { + /* pack little endian float */ + while (arg-- > 0) { + float v = (float) zval_get_double(&argv[currentarg++]); + php_pack_copy_float(1, &ZSTR_VAL(output)[outputpos], v); + outputpos += sizeof(v); + } + + break; + } + case 'G': { + /* pack big endian float */ + while (arg-- > 0) { + float v = (float) zval_get_double(&argv[currentarg++]); + php_pack_copy_float(0, &ZSTR_VAL(output)[outputpos], v); + outputpos += sizeof(v); + } + break; + } case 'd': { while (arg-- > 0) { @@ -482,6 +634,26 @@ PHP_FUNCTION(pack) } break; } + + case 'e': { + /* pack little endian double */ + while (arg-- > 0) { + double v = (double) zval_get_double(&argv[currentarg++]); + php_pack_copy_double(1, &ZSTR_VAL(output)[outputpos], v); + outputpos += sizeof(v); + } + break; + } + + case 'E': { + /* pack big endian double */ + while (arg-- > 0) { + double v = (double) zval_get_double(&argv[currentarg++]); + php_pack_copy_double(0, &ZSTR_VAL(output)[outputpos], v); + outputpos += sizeof(v); + } + break; + } case 'x': memset(&ZSTR_VAL(output)[outputpos], '\0', arg); @@ -542,6 +714,7 @@ static zend_long php_unpack(char *data, size_t size, int issigned, int *map) * Numeric pack types will return numbers, a and A will return strings, * f and d will return doubles. * Implemented formats are Z, A, a, h, H, c, C, s, S, i, I, l, L, n, N, q, Q, J, P, f, d, x, X, @. + * Added g, G for little endian float and big endian float, added e, E for little endian double and big endian double. */ /* {{{ proto array unpack(string format, string input) Unpack binary string into named array elements according to format argument */ @@ -673,11 +846,15 @@ PHP_FUNCTION(unpack) /* Use sizeof(float) bytes of input */ case 'f': + case 'g': + case 'G': size = sizeof(float); break; /* Use sizeof(double) bytes of input */ case 'd': + case 'e': + case 'E': size = sizeof(double); break; @@ -933,18 +1110,37 @@ PHP_FUNCTION(unpack) } #endif - case 'f': { + case 'f': /* float */ + case 'g': /* little endian float*/ + case 'G': /* big endian float*/ + { float v; - memcpy(&v, &input[inputpos], sizeof(float)); + if (type == 'g') { + v = php_pack_parse_float(1, &input[inputpos]); + } else if (type == 'G') { + v = php_pack_parse_float(0, &input[inputpos]); + } else { + memcpy(&v, &input[inputpos], sizeof(float)); + } + add_assoc_double(return_value, n, (double)v); break; } + - case 'd': { + case 'd': /* double */ + case 'e': /* little endian float */ + case 'E': /* big endian float */ + { double v; - - memcpy(&v, &input[inputpos], sizeof(double)); + if (type == 'e') { + v = php_pack_parse_double(1, &input[inputpos]); + } else if (type == 'E') { + v = php_pack_parse_double(0, &input[inputpos]); + } else { + memcpy(&v, &input[inputpos], sizeof(double)); + } add_assoc_double(return_value, n, v); break; } diff --git a/ext/standard/tests/strings/pack_float.phpt b/ext/standard/tests/strings/pack_float.phpt new file mode 100644 index 00000000000..088b508bc0b --- /dev/null +++ b/ext/standard/tests/strings/pack_float.phpt @@ -0,0 +1,312 @@ +--TEST-- +pack()/unpack(): float/double tests +--FILE-- + +--EXPECTF-- +string(6) "pack e" +string(16) "0000000000000000" +string(16) "0000000000000000" +string(16) "0000000000000000" +string(16) "0000000000000000" +string(16) "0000000000000000" +string(16) "000000000000f03f" +string(16) "000000000000f03f" +string(16) "0080e03779c34143" +string(16) "4a6ade0d65ebe23f" +string(16) "e1639d31956ae543" +string(16) "000000000000f0bf" +string(16) "000000000000f0bf" +string(16) "0080e03779c341c3" +string(16) "4a6ade0d65ebe2bf" +string(16) "e1639d31956ae5c3" +string(6) "pack E" +string(16) "0000000000000000" +string(16) "0000000000000000" +string(16) "0000000000000000" +string(16) "0000000000000000" +string(16) "0000000000000000" +string(16) "3ff0000000000000" +string(16) "3ff0000000000000" +string(16) "4341c37937e08000" +string(16) "3fe2eb650dde6a4a" +string(16) "43e56a95319d63e1" +string(16) "bff0000000000000" +string(16) "bff0000000000000" +string(16) "c341c37937e08000" +string(16) "bfe2eb650dde6a4a" +string(16) "c3e56a95319d63e1" +string(6) "pack g" +string(8) "00000000" +string(8) "00000000" +string(8) "00000000" +string(8) "00000000" +string(8) "00000000" +string(8) "0000803f" +string(8) "0000803f" +string(8) "ca1b0e5a" +string(8) "285b173f" +string(8) "aa542b5f" +string(8) "000080bf" +string(8) "000080bf" +string(8) "ca1b0eda" +string(8) "285b17bf" +string(8) "aa542bdf" +string(6) "pack G" +string(8) "00000000" +string(8) "00000000" +string(8) "00000000" +string(8) "00000000" +string(8) "00000000" +string(8) "3f800000" +string(8) "3f800000" +string(8) "5a0e1bca" +string(8) "3f175b28" +string(8) "5f2b54aa" +string(8) "bf800000" +string(8) "bf800000" +string(8) "da0e1bca" +string(8) "bf175b28" +string(8) "df2b54aa" +string(8) "unpack e" +array(1) { + [1]=> + float(0) +} +array(1) { + [1]=> + float(1) +} +array(1) { + [1]=> + float(1.0E+16) +} +array(1) { + [1]=> + float(0.59123470982315) +} +array(1) { + [1]=> + float(-1) +} +array(1) { + [1]=> + float(-1.0E+16) +} +array(1) { + [1]=> + float(-0.59123470982315) +} +array(1) { + [1]=> + float(-1.2345678901235E+19) +} +string(8) "unpack E" +array(1) { + [1]=> + float(1) +} +array(1) { + [1]=> + float(1.0E+16) +} +array(1) { + [1]=> + float(0.59123470982315) +} +array(1) { + [1]=> + float(1.2345678901235E+19) +} +array(1) { + [1]=> + float(-1) +} +array(1) { + [1]=> + float(-1.0E+16) +} +array(1) { + [1]=> + float(-0.59123470982315) +} +array(1) { + [1]=> + float(-1.2345678901235E+19) +} +string(8) "unpack g" +array(1) { + [1]=> + float(1) +} +array(1) { + [1]=> + float(1.0000000272564E+16) +} +array(1) { + [1]=> + float(0.59123468399048) +} +array(1) { + [1]=> + float(1.2345679395506E+19) +} +array(1) { + [1]=> + float(-1) +} +array(1) { + [1]=> + float(-1.0000000272564E+16) +} +array(1) { + [1]=> + float(-0.59123468399048) +} +array(1) { + [1]=> + float(-1.2345679395506E+19) +} +string(8) "unpack G" +array(1) { + [1]=> + float(1) +} +array(1) { + [1]=> + float(1.0000000272564E+16) +} +array(1) { + [1]=> + float(0.59123468399048) +} +array(1) { + [1]=> + float(1.2345679395506E+19) +} +array(1) { + [1]=> + float(-1) +} +array(1) { + [1]=> + float(-1.0000000272564E+16) +} +array(1) { + [1]=> + float(-0.59123468399048) +} +array(1) { + [1]=> + float(-1.2345679395506E+19) +} diff --git a/ext/standard/tests/strings/unpack_error.phpt b/ext/standard/tests/strings/unpack_error.phpt index 1ef97ccbaf8..75496512b7e 100644 --- a/ext/standard/tests/strings/unpack_error.phpt +++ b/ext/standard/tests/strings/unpack_error.phpt @@ -19,7 +19,7 @@ var_dump(unpack("I", pack("I", 65534), $extra_arg)); echo "\n-- Testing unpack() function with invalid format character --\n"; $extra_arg = 10; -var_dump(unpack("G", pack("I", 65534))); +var_dump(unpack("B", pack("I", 65534))); ?> ===DONE=== --EXPECTF-- @@ -37,6 +37,6 @@ NULL -- Testing unpack() function with invalid format character -- -Warning: unpack(): Invalid format type G in %s on line %d +Warning: unpack(): Invalid format type B in %s on line %d bool(false) ===DONE=== From cfd6e1484283f9d693e457320e6a0d82422b9b33 Mon Sep 17 00:00:00 2001 From: Vince Date: Tue, 8 Nov 2016 14:23:04 -0800 Subject: [PATCH 39/41] Fix Bug #73462 - Persistent connections don't set $connect_errno Persistent connections skipped resetting $connect_error and $connect_errno values This adds the "clear error" line to persistent connections for consistency --- NEWS | 4 ++++ ext/mysqli/mysqli_nonapi.c | 4 ++++ ext/mysqli/tests/bug73462.phpt | 41 ++++++++++++++++++++++++++++++++++ 3 files changed, 49 insertions(+) create mode 100644 ext/mysqli/tests/bug73462.phpt diff --git a/NEWS b/NEWS index 87111583872..26376b694dc 100644 --- a/NEWS +++ b/NEWS @@ -17,6 +17,10 @@ PHP NEWS - DOM: . Fixed bug #67474 (getElementsByTagNameNS filter on default ns). (aboks) +- Mysqli: + . Fixed bug #73462 (Persistent connections don't set $connect_errno). + (darkain) + - Mysqlnd: . Fixed issue with decoding BIT columns when having more than one rows in the result set. 7.0+ problem. (Andrey) diff --git a/ext/mysqli/mysqli_nonapi.c b/ext/mysqli/mysqli_nonapi.c index 49db7bbfe60..1c25fafba34 100644 --- a/ext/mysqli/mysqli_nonapi.c +++ b/ext/mysqli/mysqli_nonapi.c @@ -183,6 +183,10 @@ void mysqli_common_connect(INTERNAL_FUNCTION_PARAMETERS, zend_bool is_real_conne mysqlnd_restart_psession(mysql->mysql); #endif MyG(num_active_persistent)++; + + /* clear error */ + php_mysqli_set_error(mysql_errno(mysql->mysql), (char *) mysql_error(mysql->mysql)); + goto end; } else { mysqli_close(mysql->mysql, MYSQLI_CLOSE_IMPLICIT); diff --git a/ext/mysqli/tests/bug73462.phpt b/ext/mysqli/tests/bug73462.phpt new file mode 100644 index 00000000000..6de73761f41 --- /dev/null +++ b/ext/mysqli/tests/bug73462.phpt @@ -0,0 +1,41 @@ +--TEST-- +Bug #73462 (Persistent connections don't set $connect_errno) +--SKIPIF-- + +--FILE-- +query("SHOW STATUS LIKE 'Connections'"); + $c1 = $result->fetch_row(); + $result->free(); + $mysql_1->close(); + + /* Failed connection to invalid host */ + $mysql_2 = @new mysqli(' !!! invalid !!! ', $user, $passwd, $db); + @$mysql_2->close(); + + /* Re-use persistent connection */ + $mysql_3 = new mysqli('p:'.$host, $user, $passwd, $db); + $error = mysqli_connect_errno(); + $result = $mysql_3->query("SHOW STATUS LIKE 'Connections'"); + $c3 = $result->fetch_row(); + $result->free(); + $mysql_3->close(); + + if (end($c1) !== end($c3)) + printf("[001] Expected '%d' got '%d'.\n", end($c1), end($c3)); + + if ($error !== 0) + printf("[002] Expected '0' got '%d'.\n", $error); + + print "done!"; +?> +--EXPECTF-- +done! From b3889d4b20aaec16ceb89fe64e42de7c464e20e1 Mon Sep 17 00:00:00 2001 From: Nikita Popov Date: Tue, 3 Jan 2017 12:16:35 +0100 Subject: [PATCH 40/41] Fix build --- ext/standard/pack.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/ext/standard/pack.c b/ext/standard/pack.c index 11847179937..34d31398635 100644 --- a/ext/standard/pack.c +++ b/ext/standard/pack.c @@ -106,7 +106,7 @@ static void php_pack(zval *val, size_t size, int *map, char *output) /* {{{ php_pack_reverse_int32 */ -inline uint32_t php_pack_reverse_int32(uint32_t arg) +static inline uint32_t php_pack_reverse_int32(uint32_t arg) { uint32_t result; result = ((arg & 0xFF) << 24) | ((arg & 0xFF00) << 8) | ((arg >> 8) & 0xFF00) | ((arg >> 24) & 0xFF); @@ -117,7 +117,7 @@ inline uint32_t php_pack_reverse_int32(uint32_t arg) /* {{{ php_pack */ -inline uint64_t php_pack_reverse_int64(uint64_t arg) +static inline uint64_t php_pack_reverse_int64(uint64_t arg) { union Swap64 { uint64_t i; From 3a1ae7bb9b11a7c011c921242bffa2baa9713487 Mon Sep 17 00:00:00 2001 From: Anatol Belski Date: Tue, 3 Jan 2017 13:25:16 +0100 Subject: [PATCH 41/41] better skip on files some more could be added --- .appveyor.yml | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/.appveyor.yml b/.appveyor.yml index 5dae3970ef6..2c5b13239fb 100644 --- a/.appveyor.yml +++ b/.appveyor.yml @@ -9,8 +9,10 @@ branches: - PHP-7.0 skip_commits: - message: /.*(NEWS|UPGRADING).*/ - + files: + - NEWS + - UPGRADING* + - README.* clone_depth: 64