| line |
true |
false |
branch |
|
501
|
2 |
7299 |
unless (defined $user_agent)
|
|
505
|
7299 |
2 |
defined $user_agent ? :
|
|
530
|
5539 |
44821 |
unless $self->{'os_tests'}
|
|
554
|
5804 |
26192 |
unless $self->{'robot_tests'}
|
|
567
|
4848 |
19505 |
unless $self->{'version_tests'}
|
|
577
|
7301 |
13772 |
unless $self->{'device_tests'}
|
|
584
|
0 |
1 |
if (defined $user_agent) { }
|
|
656
|
30 |
7271 |
if ($ua =~ m[edge/([\d\.]+)]) { }
|
|
|
944 |
6327 |
elsif ($ua =~ m[trident/([\w\.\d]*)]) { }
|
|
|
732 |
5595 |
elsif (index($ua, 'gecko') != -1 and index($ua, 'like gecko') == -1) { }
|
|
|
2670 |
2925 |
elsif ($ua =~ m[applewebkit/([\d.\+]+)] and not $tests->{'edgehtml'}) { }
|
|
|
138 |
2787 |
elsif ($ua =~ m[presto/([\d.]+)]) { }
|
|
|
12 |
2775 |
elsif ($ua =~ m[khtml/([\d.]+)]) { }
|
|
667
|
660 |
72 |
if ($ua =~ /\([^)]*rv:([\w.\d]*)/)
|
|
679
|
1608 |
1062 |
if ($ua =~ m[(?:chrome|chromium|crios)/(\d+)])
|
|
681
|
582 |
1026 |
if ($chrome_version >= 38)
|
|
686
|
582 |
2088 |
if ($is_blink) { }
|
|
706
|
12 |
7289 |
if (index($ua, 'galeon') != -1) { }
|
|
|
6 |
7283 |
elsif (index($ua, 'epiphany') != -1) { }
|
|
|
24 |
7259 |
elsif ($ua =~ m[(?:edg|edga|edgios)/[\d.]+]) { }
|
|
|
30 |
7229 |
elsif ($ua =~ m[edge/[\d.]+]) { }
|
|
|
636 |
6593 |
elsif ($ua =~ m[
|
|
|
78 |
6515 |
elsif ($self->{'user_agent'} =~ / \[ FB (?: AN | _IAB ) /x) { }
|
|
|
264 |
6251 |
elsif ($ua =~ m[opera|opr\/]) { }
|
|
|
1730 |
4521 |
elsif ($tests->{'trident'} or index($ua, 'msie') != -1 or index($ua, 'microsoft internet explorer') != -1) { }
|
|
|
12 |
4509 |
elsif (0 < index($self->{'user_agent'}, ' Instagram ')) { }
|
|
|
12 |
4497 |
elsif (index($ua, 'brave') != -1) { }
|
|
|
72 |
4425 |
elsif (index($ua, 'silk') != -1) { }
|
|
|
6 |
4419 |
elsif (index($ua, 'samsungbrowser') != -1) { }
|
|
|
336 |
4083 |
elsif (index($ua, 'ucbrowser') != -1) { }
|
|
|
36 |
4047 |
elsif (0 < index($self->{'user_agent'}, ' YaBrowser/')) { }
|
|
|
1386 |
2661 |
elsif (index($ua, 'chrome/') != -1 or index($ua, 'crios') != -1) { }
|
|
|
42 |
2619 |
elsif (index($ua, 'blackberry') != -1 or index($ua, 'bb10') != -1 or index($ua, 'rim tablet os') != -1) { }
|
|
|
960 |
1659 |
elsif ((index($ua, 'safari') != -1) or (index($ua, 'applewebkit') != -1)) { }
|
|
|
0 |
1659 |
elsif (index($ua, 'neoplanet') != -1) { }
|
|
|
0 |
1659 |
elsif (index($ua, 'webtv') != -1) { }
|
|
|
6 |
1653 |
elsif (index($ua, 'nintendo 3ds') != -1) { }
|
|
|
0 |
1653 |
elsif (index($ua, 'nintendo dsi') != -1) { }
|
|
|
42 |
1611 |
elsif (index($ua, 'playstation 3') != -1 or index($ua, 'playstation portable') != -1 or index($ua, 'netfront') != -1) { }
|
|
|
6 |
1605 |
elsif (index($ua, 'browsex') != -1) { }
|
|
|
18 |
1587 |
elsif (index($ua, 'polaris') != -1) { }
|
|
|
168 |
1419 |
elsif (index($ua, 'mozilla') != -1 and index($ua, 'compatible') == -1) { }
|
|
|
12 |
1407 |
elsif (index($ua, 'staroffice') != -1) { }
|
|
|
6 |
1401 |
elsif (index($ua, 'icab') != -1) { }
|
|
|
6 |
1395 |
elsif (index($ua, 'lotus-notes') != -1) { }
|
|
|
24 |
1371 |
elsif (index($ua, 'konqueror') != -1) { }
|
|
|
6 |
1365 |
elsif (index($ua, 'lynx') != -1) { }
|
|
|
6 |
1359 |
elsif (index($ua, 'elinks') != -1) { }
|
|
|
12 |
1347 |
elsif (index($ua, 'links') != -1) { }
|
|
|
0 |
1347 |
elsif (index($ua, 'mosaic') != -1) { }
|
|
|
6 |
1341 |
elsif (index($ua, 'emacs') != -1) { }
|
|
|
30 |
1311 |
elsif (index($ua, 'obigo') != -1) { }
|
|
|
54 |
1257 |
elsif (index($ua, 'teleca') != -1) { }
|
|
|
36 |
1221 |
elsif (index($ua, 'libcurl') != -1 or $ua =~ /^curl/) { }
|
|
|
6 |
1215 |
elsif (index($ua, 'puf/') != -1) { }
|
|
|
6 |
1209 |
elsif (index($ua, 'applecoremedia/') != -1) { }
|
|
|
6 |
1203 |
elsif (index($ua, 'androiddownloadmanager') != -1) { }
|
|
|
12 |
1191 |
elsif (index($ua, 'dalvik') != -1) { }
|
|
|
6 |
1185 |
elsif (index($ua, 'apple-pubsub') != -1) { }
|
|
|
6 |
1179 |
elsif (index($ua, 'imagesearcherpro') != -1) { }
|
|
746
|
6 |
630 |
$1 eq 'fxios' ? :
|
|
784
|
42 |
1688 |
if (index($ua, "aol") != -1 or index($ua, "america online browser") != -1)
|
|
850
|
12 |
1374 |
if (index($ua, "chromium") != -1)
|
|
868
|
276 |
684 |
if (index($ua, " mobile safari/") != -1 or index($ua, "mobilesafari") != -1)
|
|
873
|
18 |
942 |
if (index($ua, "puffin") != -1)
|
|
884
|
0 |
0 |
if (index($ua, "2.") != -1)
|
|
923
|
108 |
60 |
if (index($ua, 'netscape') != -1 or not $tests->{'gecko'}) { }
|
|
|
6 |
54 |
elsif (index($ua, 'seamonkey') != -1) { }
|
|
1009
|
6122 |
1179 |
if defined $browser
|
|
1014
|
462 |
6839 |
if index($ua, "x11") != -1
|
|
1015
|
1086 |
6215 |
if index($ua, ".net clr") != -1
|
|
1017
|
18 |
7283 |
if (index($ua, "realplayer") != -1)
|
|
1034
|
12 |
6 |
if ($ua =~ m[realplayer/([\d+\.]+)]) { }
|
|
|
6 |
0 |
elsif ($ua =~ /realplayer\s(\w+)/) { }
|
|
1038
|
12 |
0 |
if defined $self->{'minor'}
|
|
1045
|
18 |
7283 |
if (index($ua, "(r1 ") != -1)
|
|
1055
|
42 |
7259 |
if ($self->android and index($ua, "; wv)") != -1)
|
|
1068
|
78 |
186 |
if not ref $m and 0 < index($self->{'user_agent'}, $m)
|
|
1069
|
0 |
186 |
if "Regexp" eq ref $m and $self->{'user_agent'} =~ /$m/
|
|
1125
|
18 |
8837 |
if (index($ua, 'libwww-perl') != -1 or index($ua, 'lwp-') != -1) { }
|
|
|
12 |
8825 |
elsif (index($ua, 'slurp') != -1) { }
|
|
|
6 |
8819 |
elsif (index($ua, 'yahoo') != -1 and index($ua, 'jp.co.yahoo') == -1) { }
|
|
|
6 |
8813 |
elsif (index($ua, 'msnbot-mobile') != -1) { }
|
|
|
0 |
8813 |
elsif (index($ua, 'bingbot-mobile') != -1) { }
|
|
|
6 |
8807 |
elsif (index($ua, 'msnbot') != -1) { }
|
|
|
30 |
8777 |
elsif (index($ua, 'binglocalsearch') != -1 or index($ua, 'bingbot') != -1 or index($ua, 'bingpreview') != -1) { }
|
|
|
6 |
8771 |
elsif (index($ua, 'microsoft office existence discovery') != -1) { }
|
|
|
6 |
8765 |
elsif (index($ua, 'ahrefsbot') != -1) { }
|
|
|
0 |
8765 |
elsif (index($ua, 'altavista') != -1) { }
|
|
|
12 |
8753 |
elsif (index($ua, 'apache-httpclient') != -1) { }
|
|
|
6 |
8747 |
elsif ($ua =~ /\( *\) *\{ *\: *\; */) { }
|
|
|
0 |
8747 |
elsif (index($ua, 'ask jeeves/teoma') != -1) { }
|
|
|
18 |
8729 |
elsif (index($ua, 'baiduspider') != -1) { }
|
|
|
36 |
8693 |
elsif (index($ua, 'libcurl') != -1 or $ua =~ /^curl/) { }
|
|
|
6 |
8687 |
elsif (index($ua, 'facebookexternalhit') != -1) { }
|
|
|
6 |
8681 |
elsif (index($ua, 'getright') != -1) { }
|
|
|
12 |
8669 |
elsif (index($ua, 'adsbot-google') != -1) { }
|
|
|
6 |
8663 |
elsif (index($ua, 'mediapartners-google') != -1) { }
|
|
|
6 |
8657 |
elsif (index($ua, 'google favicon') != -1) { }
|
|
|
6 |
8651 |
elsif (index($ua, 'googlebot-image') != -1) { }
|
|
|
6 |
8645 |
elsif (index($ua, 'googlebot-news') != -1) { }
|
|
|
6 |
8639 |
elsif (index($ua, 'googlebot-video') != -1) { }
|
|
|
18 |
8621 |
elsif (index($ua, 'googlebot-mobile') != -1) { }
|
|
|
42 |
8579 |
elsif (index($ua, 'googlebot') != -1) { }
|
|
|
6 |
8573 |
elsif ($ua =~ /go.*package http/) { }
|
|
|
6 |
8567 |
elsif ($ua =~ /^http_request/) { }
|
|
|
0 |
8567 |
elsif ($ua =~ /^http_request/) { }
|
|
|
6 |
8561 |
elsif (index($ua, 'indy library') != -1) { }
|
|
|
0 |
8561 |
elsif (index($ua, 'infoseek') != -1) { }
|
|
|
6 |
8555 |
elsif (index($ua, 'ips-agent') != -1) { }
|
|
|
0 |
8555 |
elsif (index($ua, 'lecodechecker') != -1) { }
|
|
|
12 |
8543 |
elsif (index($ua, 'linkchecker') != -1) { }
|
|
|
0 |
8543 |
elsif (index($ua, 'lycos') != -1) { }
|
|
|
12 |
8531 |
elsif (index($ua, 'mechanize') != -1) { }
|
|
|
6 |
8525 |
elsif (index($ua, 'mj12bot/') != -1) { }
|
|
|
18 |
8507 |
elsif (index($ua, 'nutch') != -1) { }
|
|
|
6 |
8501 |
elsif (index($ua, 'puf/') != -1) { }
|
|
|
0 |
8501 |
elsif (index($ua, 'scooter') != -1) { }
|
|
|
6 |
8495 |
elsif (index($ua, 'special_archiver') != -1) { }
|
|
|
12 |
8483 |
elsif (index($ua, 'wget') == 0) { }
|
|
|
6 |
8477 |
elsif (index($ua, 'yandexbot') != -1) { }
|
|
|
6 |
8471 |
elsif (index($ua, 'yandeximages') != -1) { }
|
|
|
6 |
8465 |
elsif (index($ua, 'headlesschrome') != -1) { }
|
|
|
42 |
8423 |
elsif ($ua =~ /^java/ and not $self->{'browser'}) { }
|
|
|
0 |
8423 |
elsif (index($ua, 'jdk') != -1) { }
|
|
|
6 |
8417 |
elsif (index($ua, 'jakarta commons-httpclient') != -1) { }
|
|
|
6 |
8411 |
elsif (index($ua, 'google-http-java-client') != -1) { }
|
|
|
12 |
8399 |
elsif (index($ua, 'python-urllib') != -1) { }
|
|
|
6 |
8393 |
elsif (index($ua, 'researchscan.comsys.rwth-aachen.de') != -1) { }
|
|
1128
|
18 |
0 |
(index($ua, 'libwww-perl') != -1) ? :
|
|
1339
|
54 |
259289 |
if (index($ua, lc $match) != -1)
|
|
1348
|
23 |
8825 |
if ($browser_tests->{'applecoremedia'} or $browser_tests->{'dalvik'} or $browser_tests->{'adm'})
|
|
1354
|
516 |
8339 |
if ($r) { }
|
|
|
0 |
8339 |
elsif ($ua =~ /seek (?! mo (?: toolbar )? \s+ \d+\.\d+ )/x) { }
|
|
|
42 |
8297 |
elsif ($ua =~ /search (?! [\w\s]* toolbar \b | bar \b | erpro \b )/x) { }
|
|
|
246 |
8051 |
elsif ($self->{'user_agent'} =~ m[([\w /\.\-]+)[ \;\(\)]*\+https?\:]i) { }
|
|
1358
|
462 |
54 |
unless ($id)
|
|
1362
|
516 |
0 |
unless (exists $robot_tests->{'robot_id'})
|
|
1369
|
276 |
240 |
unless defined $robot_fragment
|
|
1395
|
8009 |
204247 |
if ($ROBOT_FRAGMENT_EXCEPTIONS{$fragment})
|
|
1397
|
0 |
8009 |
unless $ROBOT_FRAGMENT_EXCEPTIONS{$fragment}
|
|
1398
|
8 |
8001 |
if (index($ua, $exception) != -1)
|
|
1404
|
311 |
211937 |
if (index($ua, $fragment) != -1)
|
|
1412
|
599 |
8256 |
if (exists $robot_tests->{'robot'} and $robot_tests->{'robot'} eq "unknown")
|
|
1417
|
1115 |
7740 |
if (defined $robot_fragment)
|
|
1422
|
1043 |
72 |
if ($self->{'user_agent'} =~ m[\s* # Beginning whitespace
|
|
1431
|
36 |
287 |
if ($self->{'user_agent'} eq $full_string and $self->{'user_agent'} =~ m[\/.*\/] and $self->{'user_agent'} =~ m[
|
|
1448
|
678 |
365 |
if ($full_string and $full_string =~ s[[/ \.v]*(\d+)(\.\d+)?([\.\w]*)$][]) { }
|
|
1458
|
353 |
690 |
unless (defined $self->{'robot_string'})
|
|
1464
|
6242 |
2613 |
if (not exists $self->{'robot_version'})
|
|
1484
|
0 |
7296 |
if (index($ua, "16bit") != -1)
|
|
1490
|
2964 |
4332 |
if (index($ua, "win") != -1)
|
|
1491
|
12 |
2952 |
if (index($ua, 'win16') != -1 or index($ua, 'windows 3') != -1 or index($ua, 'windows 16-bit') != -1) { }
|
|
|
72 |
2880 |
elsif (index($ua, 'win95') != -1 or index($ua, 'windows 95') != -1) { }
|
|
|
30 |
2850 |
elsif (index($ua, 'win 9x 4.90') != -1 or index($ua, 'windows me') != -1) { }
|
|
|
24 |
2826 |
elsif (index($ua, 'win98') != -1 or index($ua, 'windows 98') != -1) { }
|
|
|
12 |
2814 |
elsif (index($ua, 'windows 2000') != -1) { }
|
|
|
12 |
2802 |
elsif (index($ua, 'windows ce') != -1) { }
|
|
|
54 |
2748 |
elsif (index($ua, 'windows phone') != -1) { }
|
|
1497
|
6 |
6 |
if (index($ua, 'windows 3.1') != -1) { }
|
|
1539
|
6 |
48 |
if (index($ua, 'windows phone os 7.0') != -1) { }
|
|
|
12 |
36 |
elsif (index($ua, 'windows phone os 7.5') != -1) { }
|
|
|
12 |
24 |
elsif (index($ua, 'windows phone 8.0') != -1) { }
|
|
|
18 |
6 |
elsif (index($ua, 'windows phone 8.1') != -1) { }
|
|
|
6 |
0 |
elsif (index($ua, 'windows phone 10.0') != -1) { }
|
|
1557
|
3804 |
3492 |
if (index($ua, "nt") != -1)
|
|
1558
|
90 |
3714 |
if (index($ua, 'nt 5.0') != -1 or index($ua, 'nt5') != -1) { }
|
|
|
984 |
2730 |
elsif (index($ua, 'nt 5.1') != -1) { }
|
|
|
126 |
2604 |
elsif (index($ua, 'nt 5.2') != -1) { }
|
|
|
204 |
2400 |
elsif (index($ua, 'nt 6.0') != -1) { }
|
|
|
966 |
1434 |
elsif (index($ua, 'nt 6.1') != -1) { }
|
|
|
96 |
1338 |
elsif (index($ua, 'nt 6.2') != -1) { }
|
|
|
78 |
1260 |
elsif (index($ua, 'nt 6.3') != -1) { }
|
|
|
36 |
1224 |
elsif (index($ua, 'nt 10.0') != -1) { }
|
|
|
54 |
1170 |
elsif (index($ua, 'winnt') != -1 or index($ua, 'windows nt') != -1 or index($ua, 'nt4') != -1 or index($ua, 'nt3') != -1) { }
|
|
1613
|
2850 |
4446 |
if ($os) { }
|
|
|
462 |
3984 |
elsif (index($ua, 'macintosh') != -1 or index($ua, 'mac_') != -1) { }
|
|
|
420 |
3564 |
elsif ($ua =~ /\b(ipad|iphone|ipod)\b/) { }
|
|
|
1050 |
2514 |
elsif (index($ua, 'android') != -1) { }
|
|
|
498 |
2016 |
elsif (index($ua, 'inux') != -1) { }
|
|
|
42 |
1974 |
elsif ($tests->{'x11'} and index($ua, 'cros') != -1) { }
|
|
|
6 |
1968 |
elsif (index($ua, 'amiga') != -1) { }
|
|
|
6 |
1962 |
elsif (index($ua, 'os/2') != -1) { }
|
|
|
6 |
1956 |
elsif (index($ua, 'solaris') != -1) { }
|
|
|
0 |
1956 |
elsif (index($ua, 'samsung') == -1 and index($ua, 'sun') != -1) { }
|
|
|
0 |
1956 |
elsif (index($ua, 'irix') != -1) { }
|
|
|
0 |
1956 |
elsif (index($ua, 'hp-ux') != -1) { }
|
|
|
0 |
1956 |
elsif (index($ua, 'aix') != -1) { }
|
|
|
0 |
1956 |
elsif ($ua =~ /\bsco\b/ or index($ua, 'unix_sv') != -1) { }
|
|
|
0 |
1956 |
elsif (index($ua, 'unix_system_v') != -1) { }
|
|
|
0 |
1956 |
elsif ($ua =~ /\bncr\b/) { }
|
|
|
0 |
1956 |
elsif (index($ua, 'reliantunix') != -1) { }
|
|
|
0 |
1956 |
elsif (index($ua, 'dec') != -1 or index($ua, 'osf1') != -1 or index($ua, 'declpha') != -1 or index($ua, 'alphaserver') != -1 or index($ua, 'ultrix') != -1 or index($ua, 'alphastation') != -1) { }
|
|
|
0 |
1956 |
elsif (index($ua, 'sinix') != -1) { }
|
|
|
30 |
1926 |
elsif (index($ua, 'bsd') != -1) { }
|
|
|
12 |
1914 |
elsif ($tests->{'x11'}) { }
|
|
|
0 |
1914 |
elsif (index($ua, 'vax') != -1 or index($ua, 'openvms') != -1) { }
|
|
|
12 |
1902 |
elsif (index($ua, 'bb10') != -1) { }
|
|
|
6 |
1896 |
elsif (index($ua, 'rim tablet os') != -1) { }
|
|
|
6 |
1890 |
elsif (index($ua, 'playstation 3') != -1) { }
|
|
|
6 |
1884 |
elsif (index($ua, 'playstation portable') != -1) { }
|
|
|
54 |
1830 |
elsif (index($ua, 'windows') != -1) { }
|
|
|
18 |
1812 |
elsif (index($ua, 'win32') != -1) { }
|
|
|
144 |
1668 |
elsif ($self->{'user_agent'} =~ /(brew)|(\bbmp\b)/i) { }
|
|
1617
|
0 |
2850 |
if index($ua, "win32") != -1
|
|
1623
|
438 |
24 |
if (index($ua, 'mac os x') != -1) { }
|
|
1630
|
0 |
462 |
if (index($ua, '68k') != -1 or index($ua, '68000') != -1) { }
|
|
|
126 |
336 |
elsif (index($ua, 'ppc') != -1 or index($ua, 'powerpc') != -1) { }
|
|
1678
|
0 |
0 |
if index($ua, "i86") != -1
|
|
1679
|
0 |
0 |
if index($ua, "sunos 4") != -1
|
|
1680
|
0 |
0 |
if index($ua, "sunos 5") != -1
|
|
1686
|
0 |
0 |
if (index($ua, "irix5") != -1)
|
|
1687
|
0 |
0 |
if (index($ua, "irix6") != -1)
|
|
1693
|
0 |
0 |
if index($ua, "09.") != -1
|
|
1694
|
0 |
0 |
if index($ua, "10.") != -1
|
|
1700
|
0 |
0 |
if (index($ua, "aix 1") != -1)
|
|
1701
|
0 |
0 |
if (index($ua, "aix 2") != -1)
|
|
1702
|
0 |
0 |
if (index($ua, "aix 3") != -1)
|
|
1703
|
0 |
0 |
if (index($ua, "aix 4") != -1)
|
|
1740
|
30 |
0 |
if ($self->{'user_agent'} =~ /(\w*bsd\w*)/i)
|
|
1744
|
30 |
0 |
if index($ua, "freebsd") != -1
|
|
1783
|
102 |
42 |
if ($1) { }
|
|
1799
|
12 |
6 |
if (not $os and $browser_tests->{'firefox'} and index($ua, "fennec") == -1 and $self->mobile || $self->tablet)
|
|
1808
|
2592 |
4704 |
if ($os and not $os_string)
|
|
1823
|
526 |
2030 |
if (not defined $os) { }
|
|
|
26 |
2004 |
elsif ($os eq 'winphone') { }
|
|
|
194 |
1810 |
elsif ($os eq 'macosx') { }
|
|
|
174 |
1636 |
elsif ($os eq 'ios') { }
|
|
|
19 |
1617 |
elsif ($os eq 'chromeos') { }
|
|
|
491 |
1126 |
elsif ($os eq 'android') { }
|
|
|
6 |
1120 |
elsif ($os eq 'firefoxos') { }
|
|
|
71 |
1049 |
elsif ($os eq 'brew') { }
|
|
1828
|
26 |
0 |
if ($ua =~ /windows phone (?:os )?(\d+)(\.?\d*)([\.\d]*)/)
|
|
1833
|
157 |
37 |
if ($ua =~ /os x (\d+)[\._](\d+)[\._]?(\d*)/)
|
|
1834
|
136 |
21 |
length $3 ? :
|
|
1838
|
172 |
2 |
if ($ua =~ / os (\d+)[\._ ](\d+)[\._ ]?(\d*)/)
|
|
1839
|
115 |
57 |
length $3 ? :
|
|
1843
|
19 |
0 |
if ($ua =~ / cros \S* (\d+)(\.?\d*)([\.\d]*)/)
|
|
1848
|
473 |
18 |
if ($ua =~ /android (\d+)(\.?\d*)([\w\-\.]*)[\;\)]/)
|
|
1853
|
6 |
0 |
if ($ua =~ m[firefox/(\d+)(\.?\d*)([\.\d]*)])
|
|
1858
|
52 |
19 |
if ($ua =~ /(brew|\bbmp) (\d+)(\.?\d*)([\.\d]*)/)
|
|
1887
|
263 |
6984 |
if (defined $browser and $browser eq 'opera') { }
|
|
|
204 |
6780 |
elsif (not defined $browser and $ua =~ m[\b compatible; \s* [\w\-]* [/\s] ( [0-9]+ ) (?: .([0-9]+) (\S*) )? ;]x) { }
|
|
|
969 |
5811 |
elsif (not $browser) { }
|
|
|
24 |
5787 |
elsif ($browser_tests->{'edge'}) { }
|
|
|
956 |
4831 |
elsif ($browser_tests->{'safari'}) { }
|
|
|
6 |
4825 |
elsif ($browser_tests->{'fxios'}) { }
|
|
|
78 |
4747 |
elsif ($tests->{'meta_app'}) { }
|
|
|
12 |
4735 |
elsif ($browser_tests->{'instagram'}) { }
|
|
|
1708 |
3027 |
elsif ($browser_tests->{'ie'}) { }
|
|
|
6 |
3021 |
elsif ($browser eq 'n3ds') { }
|
|
|
6 |
3015 |
elsif ($browser eq 'browsex') { }
|
|
|
6 |
3009 |
elsif ($ua =~ m[netscape6/(\d+)\.(\d+)([\d.]*)]) { }
|
|
|
12 |
2997 |
elsif ($browser eq 'brave') { }
|
|
|
18 |
2979 |
elsif ($browser eq 'chrome' and $ua =~ m[crios/(\d+)\.(\d+)([\d.]*)]) { }
|
|
|
6 |
2973 |
elsif ($browser eq 'pubsub' and $ua =~ m[apple-pubsub/(\d+)\.?(\d+)?([\d.]*)]) { }
|
|
|
78 |
2895 |
elsif ($browser eq 'obigo' and $self->{'user_agent'} =~ m[(obigo[\w\-]*|teleca)[\/ ]\w(\d+)(\w*)]i) { }
|
|
|
18 |
2877 |
elsif ($browser eq 'polaris' and $ua =~ m[polaris[ \/](\d+)\.?(\d+)?([\d\.]*)]) { }
|
|
|
333 |
2544 |
elsif ($browser eq 'ucbrowser' and $ua =~ m[ucbrowser[\/ ]*(\d+)\.?(\d+)?([\d\.]*)]) { }
|
|
|
6 |
2538 |
elsif ($browser eq 'samsung' and $ua =~ m[samsungbrowser/(\d+)\.(\d+)\s]) { }
|
|
|
36 |
2502 |
elsif ($browser_tests->{'yandex_browser'}) { }
|
|
1897
|
90 |
173 |
if ($ua =~ m[\AOpera.*\sVersion/(\d*)\.(\d*)\z]i) { }
|
|
|
48 |
125 |
elsif ($ua =~ m[\bOPR/(\d+)\.(\d+)]i) { }
|
|
|
125 |
0 |
elsif ($ua =~ m[Opera[ /](\d+).(\d+)]i) { }
|
|
1926
|
24 |
0 |
unless defined $major
|
|
1934
|
890 |
66 |
if (do {
|
|
|
54 |
12 |
elsif ($ua =~ m[applewebkit\/([\d\.]{1,})]xi) { }
|
|
1947
|
890 |
0 |
if (my($safari_build, $safari_minor) = split(/\./, $1, 3))
|
|
1950
|
825 |
65 |
if defined $safari_minor
|
|
1954
|
54 |
0 |
if (my($safari_build, $safari_minor) = split(/\./, $1, 3))
|
|
1957
|
42 |
12 |
if $safari_minor
|
|
1970
|
60 |
18 |
if ($ua =~ m[ \b fbav/ ([^;]*) ]x)
|
|
1972
|
60 |
0 |
if ($beta)
|
|
1982
|
12 |
0 |
if ($self->{'user_agent'} =~ / \b Instagram [ ]+ ([0-9.]+) [ ] /x)
|
|
1984
|
12 |
0 |
if ($beta)
|
|
1993
|
1618 |
90 |
if ($ua =~ /\b msie \s ( [0-9\.]+ ) ( [a-z]+ [a-z0-9]* )? ;/x) { }
|
|
|
72 |
18 |
elsif ($ua =~ /\b rv: ( [0-9\.]+ ) \b/x) { }
|
|
|
6 |
12 |
elsif ($ua =~ m[\b compatible; \s* [\w\-]* [/\s] ( [0-9]+ ) (?: .([0-9]+) (\S*) )? ;]x) { }
|
|
1997
|
30 |
1588 |
if $2
|
|
2012
|
6 |
0 |
if ($ua =~ m[Nintendo 3DS;.*\sVersion/(\d*)\.(\d*)]i)
|
|
2018
|
6 |
0 |
if ($ua =~ /BrowseX \((\d+)\.(\d+)([\d.]*)/i)
|
|
2040
|
12 |
0 |
if ($ua =~ m[brave/(\d+)\.(\d+)([\d.]*)])
|
|
2084
|
36 |
0 |
if ($self->{'user_agent'} =~ m[ \b YaBrowser / ([0-9.]+) [ ] ]x)
|
|
2086
|
36 |
0 |
if ($beta)
|
|
2094
|
2520 |
4727 |
if (not defined $major and defined $self->{'browser_string'})
|
|
2096
|
2322 |
198 |
if ($version_index != -1)
|
|
2099
|
2310 |
12 |
if ($version_str =~ m[/(\d+)\.(\d+)([\w.]*)])
|
|
2108
|
1185 |
6062 |
unless (defined $major)
|
|
2109
|
24 |
1161 |
if ($ua =~ m[version/(\d+)\.(\d+)([\w.]*)])
|
|
2118
|
1161 |
6086 |
unless (defined $major)
|
|
2135
|
324 |
6923 |
unless (defined $major)
|
|
2137
|
0 |
324 |
if ($ua =~ m[[A-Za-z]+/(\d+)\;])
|
|
2144
|
509 |
6738 |
unless $major
|
|
2145
|
4720 |
2527 |
unless $minor
|
|
2146
|
1298 |
5949 |
if defined $beta and $beta eq ""
|
|
2150
|
166 |
7081 |
if ($browser_tests->{'netscape'})
|
|
2153
|
12 |
154 |
if $major == 2
|
|
2154
|
18 |
148 |
if $major == 3
|
|
2155
|
24 |
142 |
if $major == 4
|
|
2156
|
112 |
54 |
if $major >= 4
|
|
2157
|
6 |
160 |
if $major == 4 and $minor == 5
|
|
2158
|
94 |
72 |
if $major == 4 and ".$minor" >= "0.5" or $major >= 5
|
|
2161
|
6 |
160 |
if defined $beta and (index($beta, "gold") != -1)
|
|
2163
|
82 |
84 |
if $major == 5 or $major == 6
|
|
2165
|
88 |
78 |
if $major >= 5
|
|
2167
|
6 |
160 |
if ($browser eq "seamonkey")
|
|
2178
|
1708 |
5539 |
if ($browser_tests->{'ie'})
|
|
2179
|
23 |
1685 |
if $major == 3
|
|
2180
|
36 |
1672 |
if $major == 4
|
|
2181
|
1673 |
35 |
if $major >= 4
|
|
2182
|
71 |
1637 |
if $major == 5
|
|
2183
|
1637 |
71 |
if $major >= 5
|
|
2184
|
23 |
1685 |
if $major == 5 and $minor == 5
|
|
2185
|
1589 |
119 |
if ".$minor" >= "0.5" or $major >= 6
|
|
2186
|
386 |
1322 |
if $major == 6
|
|
2187
|
321 |
1387 |
if $major == 7
|
|
2188
|
603 |
1105 |
if $major == 8
|
|
2189
|
112 |
1596 |
if $major == 9
|
|
2190
|
66 |
1642 |
if $major == 10
|
|
2191
|
72 |
1636 |
if $major == 11
|
|
2200
|
41 |
7206 |
if ($browser_tests->{'aol'})
|
|
2203
|
6 |
35 |
if index($ua, "aol 3.0") != -1 or $version_tests->{'ie3'}
|
|
2206
|
0 |
41 |
if (index($ua, "aol 4.0") != -1) or $version_tests->{'ie4'}
|
|
2207
|
0 |
41 |
if index($ua, "aol 5.0") != -1
|
|
2208
|
6 |
35 |
if index($ua, "aol 6.0") != -1
|
|
2209
|
0 |
41 |
if index($ua, "navio") != -1
|
|
2212
|
263 |
6984 |
if ($browser_tests->{'opera'})
|
|
2213
|
6 |
257 |
if index($ua, "opera 3") != -1 or index($ua, "opera/3") != -1
|
|
2215
|
0 |
263 |
if (index($ua, "opera 4") != -1) or index($ua, "opera/4") != -1 and (index($ua, "nintendo dsi") == -1)
|
|
2219
|
0 |
263 |
if (index($ua, "opera 5") != -1) or (index($ua, "opera/5") != -1)
|
|
2222
|
12 |
251 |
if (index($ua, "opera 6") != -1) or (index($ua, "opera/6") != -1)
|
|
2225
|
30 |
233 |
if (index($ua, "opera 7") != -1) or (index($ua, "opera/7") != -1)
|
|
2250
|
55 |
8260 |
if (index($ua, 'windows phone') != -1) { }
|
|
|
1056 |
7204 |
elsif (index($ua, 'android') != -1 or index($ua, 'silk-accelerated') != -1) { }
|
|
|
42 |
7162 |
elsif (index($ua, 'blackberry') != -1 or index($ua, 'bb10') != -1 or index($ua, 'rim tablet os') != -1) { }
|
|
|
18 |
7144 |
elsif (index($ua, 'ipod') != -1) { }
|
|
|
162 |
6982 |
elsif (index($ua, 'ipad') != -1) { }
|
|
|
240 |
6742 |
elsif (index($ua, 'iphone') != -1) { }
|
|
|
6 |
6736 |
elsif (index($ua, 'webos') != -1) { }
|
|
|
12 |
6724 |
elsif (index($ua, 'kindle') != -1) { }
|
|
|
0 |
6724 |
elsif (index($ua, 'audrey') != -1) { }
|
|
|
0 |
6724 |
elsif (index($ua, 'i-opener') != -1) { }
|
|
|
0 |
6724 |
elsif (index($ua, 'avantgo') != -1) { }
|
|
|
0 |
6724 |
elsif (index($ua, 'palmos') != -1) { }
|
|
|
6 |
6718 |
elsif (index($ua, 'playstation 3') != -1) { }
|
|
|
6 |
6712 |
elsif (index($ua, 'playstation portable') != -1) { }
|
|
|
6 |
6706 |
elsif (index($ua, 'nintendo dsi') != -1) { }
|
|
|
6 |
6700 |
elsif (index($ua, 'nintendo 3ds') != -1) { }
|
|
|
582 |
6118 |
elsif ($browser_tests->{'obigo'} or $browser_tests->{'ucbrowser'} or index($ua, 'up.browser') != -1 or index($ua, 'nokia') != -1 and index($ua, 'windows phone') == -1 or index($ua, 'alcatel') != -1 or $ua =~ /\bbrew\b/ or $ua =~ /\bbmp\b/ or index($ua, 'ericsson') != -1 or index($ua, 'sie-') == 0 or index($ua, 'wmlib') != -1 or index($ua, ' wap') != -1 or index($ua, 'wap ') != -1 or index($ua, 'wap/') != -1 or index($ua, '-wap') != -1 or index($ua, 'wap-') != -1 or index($ua, 'wap') == 0 or index($ua, 'wapper') != -1 or index($ua, 'zetor') != -1) { }
|
|
2380
|
7977 |
338 |
unless ($device_tests->{'tablet'})
|
|
2434
|
276 |
8039 |
if ($browser_tests->{'ucbrowser'} and $self->{'user_agent'} =~ m[ucweb/2.0\s*\(([^\;\)]*\;){3,4}\s*([^\;\)]*?)\s*\)]i) { }
|
|
|
12 |
8027 |
elsif ($ua =~ m[^(\bmot-[^ /]+)]) { }
|
|
|
108 |
7919 |
elsif ($browser_tests->{'obigo'} || index($ua, 'brew') != -1 and $self->{'user_agent'} =~ m[\d+x\d+ ([\d\w\- ]+?)( \S+\/\S+)*$]i) { }
|
|
|
18 |
7901 |
elsif ($ua =~ m[windows phone os [^\)]+ iemobile/[^;]+; ([^;]+; [^;\)]+)]g) { }
|
|
|
12 |
7889 |
elsif ($ua =~ m[windows phone [^\)]+ iemobile/[^;]+; arm; touch; ([^;]+; [^;\)]+)]g) { }
|
|
|
18 |
7871 |
elsif ($ua =~ m[windows phone 8[^\)]+ iemobile/[^;]+; ([^;]+; [^;\)]+)]g) { }
|
|
|
12 |
7859 |
elsif ($ua =~ /bb10; ([^;\)]+)/g) { }
|
|
|
6 |
7853 |
elsif ($ua =~ /blackberry ([\w.]+)/) { }
|
|
|
18 |
7835 |
elsif ($ua =~ m[blackberry(\d+)/]) { }
|
|
|
12 |
7823 |
elsif ($ua =~ /silk-accelerated/) { }
|
|
|
978 |
6845 |
elsif ($self->{'user_agent'} =~ /android .*\; ([^;]*) build/i) { }
|
|
|
114 |
6731 |
elsif ($self->{'user_agent'} =~ m[\b((alcatel|huawei|lg|nokia|samsung|sonyericsson)[\w\-]*)/]i) { }
|
|
|
6 |
6725 |
elsif ($self->{'user_agent'} =~ /CrKey/) { }
|
|
|
613 |
6112 |
elsif ($device) { }
|
|
2490
|
54 |
924 |
if ($model =~ /^KF/ or $model =~ /kindle fire/i) { }
|
|
|
84 |
840 |
elsif ($device_tests->{'tablet'}) { }
|
|
2519
|
2203 |
6112 |
if ($device) { }
|
|
2527
|
2196 |
6119 |
if ($device_string)
|
|
2536
|
0 |
1733 |
unless defined $self->{'user_agent'}
|
|
2542
|
0 |
1702 |
unless defined $self->{'user_agent'}
|
|
2549
|
1899 |
371 |
unless exists $self->{'robot_string'}
|
|
2556
|
654 |
290 |
unless exists $self->{'robot_string'}
|
|
2569
|
0 |
0 |
$self->robot ? :
|
|
|
558 |
0 |
$self->{'robot_tests'}{'robot_id'} ? :
|
|
2575
|
0 |
425 |
unless exists $self->{'robot_string'}
|
|
2576
|
425 |
0 |
if ($self->{'robot_version'}) { }
|
|
2587
|
110 |
0 |
if (defined $major) { }
|
|
2588
|
109 |
1 |
if (defined $minor) { }
|
|
2621
|
0 |
4225 |
unless defined $self->{'user_agent'}
|
|
2622
|
1309 |
2916 |
unless $self->{'os_tests'}
|
|
2629
|
0 |
4206 |
unless defined $self->{'user_agent'}
|
|
2630
|
74 |
4132 |
unless $self->{'os_tests'}
|
|
2636
|
2556 |
1455 |
unless exists $self->{'os_version'}
|
|
2637
|
1975 |
2036 |
if ($self->{'os_version'}) { }
|
|
2648
|
478 |
521 |
defined $major ? :
|
|
2672
|
0 |
0 |
unless $self->{'version_tests'}
|
|
2684
|
68 |
628 |
if ($self->gecko) { }
|
|
2694
|
224 |
678 |
unless $self->{'version_tests'}
|
|
2696
|
902 |
0 |
defined $self->{'major'} ? :
|
|
2701
|
278 |
933 |
unless $self->{'version_tests'}
|
|
2709
|
170 |
771 |
unless $self->{'version_tests'}
|
|
2720
|
882 |
1 |
defined $major ? :
|
|
2749
|
21 |
1 |
defined $major ? :
|
|
2777
|
640 |
4196 |
if ($self->safari)
|
|
2781
|
467 |
173 |
if ($ua =~ m[
|
|
2794
|
140 |
33 |
if ($ua =~ m[ safari/ ( \d+ (?: \.\d+ )* ) ]x)
|
|
2797
|
95 |
45 |
unless ($version)
|
|
2806
|
85 |
393 |
if $self->_cmp_versions($build, $maybe_build) >= 0
|
|
2811
|
5 |
90 |
if $ua =~ m[safari/12x]
|
|
2814
|
5 |
130 |
unless defined $version
|
|
2817
|
1 |
129 |
if $minor =~ s/(\D.*)//
|
|
2819
|
1 |
129 |
$beta ? :
|
|
2823
|
1303 |
2926 |
unless $self->{'version_tests'}
|
|
2834
|
3878 |
5053 |
if @a == 0 or $a[0] < $b[0]
|
|
2835
|
3696 |
1357 |
if @b == 0 or $b[0] < $a[0]
|
|
2847
|
202 |
1211 |
$self->engine_string eq 'MSIE' ? :
|
|
|
193 |
1413 |
!$self->engine_string ? :
|
|
2855
|
720 |
5006 |
if ($self->gecko)
|
|
2859
|
1019 |
3987 |
if ($self->trident)
|
|
2863
|
595 |
3392 |
if ($self->ie)
|
|
2867
|
35 |
3357 |
if ($self->edgelegacy)
|
|
2871
|
583 |
2774 |
if ($self->blink)
|
|
2875
|
2187 |
587 |
if ($self->webkit)
|
|
2879
|
151 |
436 |
if ($self->presto)
|
|
2883
|
48 |
388 |
if ($self->netfront)
|
|
2887
|
16 |
372 |
if ($self->khtml)
|
|
2898
|
1307 |
276 |
$self->{'engine_version'} && $self->{'engine_version'} =~ /^(\d+(\.\d+)?)/ ? :
|
|
2905
|
1620 |
579 |
$self->{'engine_version'} && $self->{'engine_version'} =~ /^(\d+)/ ? :
|
|
2912
|
1520 |
583 |
$self->{'engine_version'} && $self->{'engine_version'} =~ /^\d+(\.\d+)/ ? :
|
|
2919
|
1126 |
306 |
$self->{'engine_version'} && $self->{'engine_version'} =~ /^\d+\.\d+([\.\d\+]*)/ ? :
|
|
2925
|
161 |
567 |
unless $self->{'version_tests'}
|
|
2948
|
0 |
4163 |
unless exists $self->{'device'}
|
|
2955
|
1014 |
797 |
unless exists $self->{'device_string'}
|
|
2967
|
268 |
1536 |
if ($self->safari)
|
|
2968
|
7 |
261 |
if ($self->major == 1 and $self->{'user_agent'} =~ /\s ( [a-z]{2} ) \)/msx)
|
|
2972
|
151 |
110 |
if ($self->{'user_agent'} =~ /\s ([a-z]{2})-([A-Za-z]{2})/msx)
|
|
2977
|
1 |
1645 |
if ($self->aol and $self->{'user_agent'} =~ /;([A-Z]{2})_([A-Z]{2})\)/)
|
|
2982
|
12 |
1633 |
if ($self->meta_app and $self->{'user_agent'} =~ m[ ;FBLC/ ([a-z]{2}) (?: [_-] ([A-Z]{2}) )? ]x)
|
|
2985
|
10 |
2 |
$2 ? :
|
|
2988
|
4 |
1629 |
if ($self->instagram and $self->{'user_agent'} =~ / (?: [(] | ;[ ] ) ([a-z]{2}) [_-] ([A-Z]{2}) [;)] /x)
|
|
2991
|
4 |
0 |
$2 ? :
|
|
2994
|
348 |
1281 |
if ($self->{'user_agent'} =~ /\b([a-z]{2})-([A-Za-z]{2})\b/msx)
|
|
2998
|
27 |
1254 |
if ($self->{'user_agent'} =~ /\[([a-z]{2})\]/msx)
|
|
3002
|
1119 |
135 |
if ($self->{'user_agent'} =~ /\(([^)]+)\)/msx)
|
|
3007
|
125 |
4584 |
if ($part =~ /^\s*([a-z]{2})\s*$/ and not $self->webview && $1 eq 'wv')
|
|
3025
|
1662 |
0 |
if $value
|
|
3028
|
1713 |
23 |
if $value
|
|
3031
|
0 |
1942 |
unless $self->{'device_tests'}
|
|
3032
|
374 |
1568 |
unless $self->{'os_tests'}
|
|
3033
|
497 |
1445 |
unless $self->{'robot_tests'}
|
|
3034
|
245 |
1697 |
unless $self->{'version_tests'}
|
|
3037
|
1177 |
3200 |
if $value
|
|
3040
|
3845 |
0 |
if $value
|
|
3043
|
785 |
0 |
if $value
|
|
3046
|
1953 |
440 |
if $value
|
|
3051
|
578 |
1364 |
if $self->device
|
|
3059
|
1 |
29 |
unless $self->{'robot_tests'}
|
|
3075
|
0 |
0 |
if $self->chrome and $self->browser_major and $self->browser_major >= 41
|
|
3081
|
0 |
0 |
if $self->opera and $self->browser_major and $self->browser_major == 40 || $self->browser_major >= 42
|