device_detector 1.1.2 → 1.1.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/CHANGELOG.md +21 -1
- data/README.md +19 -5
- data/lib/device_detector/browser.rb +141 -7
- data/lib/device_detector/client_hint.rb +100 -32
- data/lib/device_detector/device.rb +188 -1
- data/lib/device_detector/os.rb +109 -7
- data/lib/device_detector/parser.rb +6 -5
- data/lib/device_detector/version.rb +1 -1
- data/lib/device_detector.rb +56 -23
- data/regexes/bots.yml +1242 -213
- data/regexes/client/browser_engine.yml +11 -2
- data/regexes/client/browsers.yml +543 -102
- data/regexes/client/feed_readers.yml +1 -1
- data/regexes/client/hints/apps.yml +29 -3
- data/regexes/client/hints/browsers.yml +87 -5
- data/regexes/client/libraries.yml +107 -1
- data/regexes/client/mediaplayers.yml +15 -1
- data/regexes/client/mobile_apps.yml +413 -117
- data/regexes/client/pim.yml +36 -2
- data/regexes/device/car_browsers.yml +16 -0
- data/regexes/device/consoles.yml +18 -5
- data/regexes/device/mobiles.yml +4180 -1210
- data/regexes/device/notebooks.yml +14 -1
- data/regexes/device/portable_media_player.yml +7 -1
- data/regexes/device/shell_tv.yml +12 -0
- data/regexes/device/televisions.yml +409 -47
- data/regexes/oss.yml +661 -238
- metadata +3 -3
data/regexes/oss.yml
CHANGED
@@ -5,6 +5,263 @@
|
|
5
5
|
# @license http://www.gnu.org/licenses/lgpl.html LGPL v3 or later
|
6
6
|
###############
|
7
7
|
|
8
|
+
##########
|
9
|
+
# WoPhone
|
10
|
+
##########
|
11
|
+
- regex: 'WoPhone(?:/(\d+[\.\d]+))?'
|
12
|
+
name: 'WoPhone'
|
13
|
+
version: '$1'
|
14
|
+
|
15
|
+
##########
|
16
|
+
# KIN OS (https://en.wikipedia.org/wiki/Microsoft_Kin)
|
17
|
+
##########
|
18
|
+
- regex: 'KIN\.(?:One|Two) (\d+[\.\d]+)'
|
19
|
+
name: 'KIN OS'
|
20
|
+
version: '$1'
|
21
|
+
|
22
|
+
##########
|
23
|
+
# Star-Blade OS
|
24
|
+
##########
|
25
|
+
- regex: 'Star-Blade OS'
|
26
|
+
name: 'Star-Blade OS'
|
27
|
+
version: ''
|
28
|
+
|
29
|
+
##########
|
30
|
+
# Qtopia (https://en.wikipedia.org/wiki/Qt_Extended)
|
31
|
+
##########
|
32
|
+
- regex: 'Qtopia/(\d+[\.\d]+)'
|
33
|
+
name: 'Qtopia'
|
34
|
+
version: '$1'
|
35
|
+
|
36
|
+
##########
|
37
|
+
# OpenVMS (https://vmssoftware.com/)
|
38
|
+
##########
|
39
|
+
- regex: 'OpenVMS V(\d+[\.\d]+)'
|
40
|
+
name: 'OpenVMS'
|
41
|
+
version: '$1'
|
42
|
+
|
43
|
+
##########
|
44
|
+
# AROS (https://aros.sourceforge.io/)
|
45
|
+
##########
|
46
|
+
- regex: 'AROS'
|
47
|
+
name: 'AROS'
|
48
|
+
version: ''
|
49
|
+
|
50
|
+
##########
|
51
|
+
# NeXTSTEP
|
52
|
+
##########
|
53
|
+
- regex: '\(NEXT\)'
|
54
|
+
name: 'NeXTSTEP'
|
55
|
+
version: ''
|
56
|
+
|
57
|
+
##########
|
58
|
+
# NEWS-OS (https://en.wikipedia.org/wiki/Sony_NEWS)
|
59
|
+
##########
|
60
|
+
- regex: 'NEWS-OS (\d+[\.\d]+)'
|
61
|
+
name: 'NEWS-OS'
|
62
|
+
version: '$1'
|
63
|
+
|
64
|
+
##########
|
65
|
+
# ULTRIX (https://en.wikipedia.org/wiki/Ultrix)
|
66
|
+
##########
|
67
|
+
- regex: 'ULTRIX (\d+[\.\d]+)'
|
68
|
+
name: 'ULTRIX'
|
69
|
+
version: '$1'
|
70
|
+
|
71
|
+
##########
|
72
|
+
# Turbolinux (http://www.turbolinux.com/)
|
73
|
+
##########
|
74
|
+
- regex: 'Turbolinux/(\d+[\.\d]+)'
|
75
|
+
name: 'Turbolinux'
|
76
|
+
version: '$1'
|
77
|
+
|
78
|
+
##########
|
79
|
+
# Joli OS (https://www.jolicloud.com/products/)
|
80
|
+
##########
|
81
|
+
- regex: 'Joli OS/(\d+[\.\d]+)'
|
82
|
+
name: 'Joli OS'
|
83
|
+
version: '$1'
|
84
|
+
|
85
|
+
##########
|
86
|
+
# GENIX
|
87
|
+
##########
|
88
|
+
- regex: 'GENIX (\d+[\.\d]+)'
|
89
|
+
name: 'GENIX'
|
90
|
+
version: '$1'
|
91
|
+
|
92
|
+
##########
|
93
|
+
# gNewSense (http://www.gnewsense.org)
|
94
|
+
##########
|
95
|
+
- regex: 'gNewSense/.*\((\d+[\.\d]+)'
|
96
|
+
name: 'gNewSense'
|
97
|
+
version: '$1'
|
98
|
+
|
99
|
+
##########
|
100
|
+
# GEOS
|
101
|
+
##########
|
102
|
+
- regex: 'Geos (\d+[\.\d]+)'
|
103
|
+
name: 'GEOS'
|
104
|
+
version: '$1'
|
105
|
+
|
106
|
+
##########
|
107
|
+
# Motorola EZX
|
108
|
+
##########
|
109
|
+
- regex: 'MOT-.*LinuxOS/'
|
110
|
+
name: 'Motorola EZX'
|
111
|
+
version: ''
|
112
|
+
|
113
|
+
##########
|
114
|
+
# Baidu Yi (https://en.wikipedia.org/wiki/Baidu_Yi)
|
115
|
+
##########
|
116
|
+
- regex: 'Baidu Yi'
|
117
|
+
name: 'Baidu Yi'
|
118
|
+
version: ''
|
119
|
+
|
120
|
+
##########
|
121
|
+
# Red Star (https://en.wikipedia.org/wiki/Red_Star_OS)
|
122
|
+
##########
|
123
|
+
- regex: '붉은별|Fedora/(?:\d+\.[\d.-]+)\.rs(\d+(?:[_.]\d+)*)'
|
124
|
+
name: 'Red Star'
|
125
|
+
version: '$1'
|
126
|
+
|
127
|
+
##########
|
128
|
+
# Proxmox VE (https://pve.proxmox.com/wiki/Main_Page)
|
129
|
+
##########
|
130
|
+
- regex: 'Linux/(?:\d+\.[\d.-]+)-(?:pve|v(\d)\+)'
|
131
|
+
name: 'Proxmox VE'
|
132
|
+
version: '$1'
|
133
|
+
|
134
|
+
##########
|
135
|
+
# OpenVZ (https://openvz.org/)
|
136
|
+
##########
|
137
|
+
- regex: 'Linux/(?:\d+\.[\d.-]+)-(?:\d+[\.\d]+)stab(?:\d+[\.\d]+)'
|
138
|
+
name: 'OpenVZ'
|
139
|
+
version: ''
|
140
|
+
|
141
|
+
# Rocky Linux (https://rockylinux.org/)
|
142
|
+
##########
|
143
|
+
- regex: 'rocky/(\d+[\.\d]+)'
|
144
|
+
name: 'Rocky Linux'
|
145
|
+
version: '$1'
|
146
|
+
|
147
|
+
##########
|
148
|
+
# Clear Linux OS (https://www.clearlinux.org/)
|
149
|
+
##########
|
150
|
+
- regex: 'clear-linux-os/(\d+[\.\d]+)'
|
151
|
+
name: 'Clear Linux OS'
|
152
|
+
version: '$1'
|
153
|
+
|
154
|
+
##########
|
155
|
+
# Alpine Linux (https://www.alpinelinux.org/)
|
156
|
+
##########
|
157
|
+
- regex: 'alpine/(\d+[\.\d]+)'
|
158
|
+
name: 'Alpine Linux'
|
159
|
+
version: '$1'
|
160
|
+
|
161
|
+
##########
|
162
|
+
# Scientific Linux (https://scientificlinux.org/)
|
163
|
+
##########
|
164
|
+
- regex: 'scientific/(\d+[\.\d]+)'
|
165
|
+
name: 'Scientific Linux'
|
166
|
+
version: '$1'
|
167
|
+
|
168
|
+
##########
|
169
|
+
# EulerOS (https://developer.huaweicloud.com/intl/en-us/euleros/index.html)
|
170
|
+
##########
|
171
|
+
- regex: 'eulerosv(\d)r(\d+)'
|
172
|
+
name: 'EulerOS'
|
173
|
+
version: '$1.$2'
|
174
|
+
|
175
|
+
##########
|
176
|
+
# Loongnix (https://www.loongson.cn/EN/system/loongnix)
|
177
|
+
##########
|
178
|
+
- regex: 'loongnix-server/(\d+[\.\d]+)'
|
179
|
+
name: 'Loongnix'
|
180
|
+
version: '$1'
|
181
|
+
|
182
|
+
- regex: 'Linux/(?:\d+\.[\d.-]+)\.lns(\d+(?:[_.]\d+)*)\.loongarch64'
|
183
|
+
name: 'Loongnix'
|
184
|
+
version: '$1'
|
185
|
+
|
186
|
+
##########
|
187
|
+
# AOSC OS (https://aosc.io/)
|
188
|
+
##########
|
189
|
+
- regex: 'AOSC OS'
|
190
|
+
name: 'AOSC OS'
|
191
|
+
version: ''
|
192
|
+
|
193
|
+
##########
|
194
|
+
# SerenityOS (https://github.com/SerenityOS/serenity)
|
195
|
+
##########
|
196
|
+
- regex: 'SerenityOS|Ladybird/'
|
197
|
+
name: 'SerenityOS'
|
198
|
+
version: ''
|
199
|
+
|
200
|
+
##########
|
201
|
+
# HELIX OS (https://www.pegasusintelligence.com/communication-security/)
|
202
|
+
##########
|
203
|
+
- regex: 'Helix Phone'
|
204
|
+
name: 'HELIX OS'
|
205
|
+
version: ''
|
206
|
+
|
207
|
+
##########
|
208
|
+
# Armadillo OS (https://github.com/pacificresearchalliance/kernel_google_crosshatch)
|
209
|
+
##########
|
210
|
+
- regex: 'Armadillo'
|
211
|
+
name: 'Armadillo OS'
|
212
|
+
version: ''
|
213
|
+
|
214
|
+
# Webian (https://www.webian.org/)
|
215
|
+
##########
|
216
|
+
- regex: 'Webian'
|
217
|
+
name: 'Webian'
|
218
|
+
version: ''
|
219
|
+
|
220
|
+
##########
|
221
|
+
# Liri OS (https://liri.io/ | https://github.com/lirios)
|
222
|
+
##########
|
223
|
+
- regex: 'Linux.*Liri/'
|
224
|
+
name: 'Liri OS'
|
225
|
+
version: ''
|
226
|
+
|
227
|
+
##########
|
228
|
+
# FRITZ!OS (https://en.avm.de/products/fritzos/)
|
229
|
+
##########
|
230
|
+
- regex: 'FRITZ!OS(?:/0(\d+[\.\d]+))?'
|
231
|
+
name: 'FRITZ!OS'
|
232
|
+
version: '$1'
|
233
|
+
|
234
|
+
##########
|
235
|
+
# UOS (https://www.chinauos.com/)
|
236
|
+
##########
|
237
|
+
- regex: 'UOS$'
|
238
|
+
name: 'UOS'
|
239
|
+
version: ''
|
240
|
+
|
241
|
+
##########
|
242
|
+
# Raspbian (https://www.raspbian.org/)
|
243
|
+
##########
|
244
|
+
- regex: 'Raspbian/(\d+[\.\d]+)'
|
245
|
+
name: 'Raspbian'
|
246
|
+
version: '$1'
|
247
|
+
|
248
|
+
##########
|
249
|
+
# Raspberry Pi OS (https://www.raspberrypi.com/software/)
|
250
|
+
##########
|
251
|
+
- regex: 'Raspbian'
|
252
|
+
name: 'Raspberry Pi OS'
|
253
|
+
version: ''
|
254
|
+
|
255
|
+
##########
|
256
|
+
# BrightSignOS (https://www.brightsign.biz/ecosystem/brightsign-os/)
|
257
|
+
##########
|
258
|
+
- regex: 'BrightSign/(?:[A-Z0-9]+)/(\d+[\.\d]+)'
|
259
|
+
name: 'BrightSignOS'
|
260
|
+
version: '$1'
|
261
|
+
- regex: 'BrightSign/(\d+[\.\d]+)'
|
262
|
+
name: 'BrightSignOS'
|
263
|
+
version: '$1'
|
264
|
+
|
8
265
|
##########
|
9
266
|
# LuneOS (https://www.webos-ports.org/)
|
10
267
|
##########
|
@@ -56,7 +313,7 @@
|
|
56
313
|
##########
|
57
314
|
# RouterOS (https://help.mikrotik.com/docs/display/ROS/RouterOS)
|
58
315
|
##########
|
59
|
-
- regex: 'Mikrotik/(\d)
|
316
|
+
- regex: 'Mikrotik/(\d)\.x'
|
60
317
|
name: 'RouterOS'
|
61
318
|
version: '$1'
|
62
319
|
|
@@ -91,7 +348,7 @@
|
|
91
348
|
##########
|
92
349
|
# Amazon Linux (https://docs.aws.amazon.com/AL2/latest/relnotes/relnotes-al2.html)
|
93
350
|
##########
|
94
|
-
- regex: '.+.amzn(\d)
|
351
|
+
- regex: '.+.amzn(\d)(?:int)?.x86_64'
|
95
352
|
name: 'Amazon Linux'
|
96
353
|
version: '$1'
|
97
354
|
|
@@ -119,7 +376,7 @@
|
|
119
376
|
##########
|
120
377
|
# KreaTV
|
121
378
|
##########
|
122
|
-
- regex: 'KreaTV/0
|
379
|
+
- regex: 'KreaTV/0\.0\.0\.0'
|
123
380
|
name: 'KreaTV'
|
124
381
|
version: ''
|
125
382
|
|
@@ -165,6 +422,14 @@
|
|
165
422
|
name: 'Whale OS'
|
166
423
|
version: '$1'
|
167
424
|
|
425
|
+
- regex: 'Zeasn/.*TBrowser/2\.0' # https://partner.zeasn.com/partnerportal/WhaleVersion1/index.jhtml
|
426
|
+
name: 'Whale OS'
|
427
|
+
version: '1'
|
428
|
+
|
429
|
+
- regex: 'Zeasn/'
|
430
|
+
name: 'Whale OS'
|
431
|
+
version: ''
|
432
|
+
|
168
433
|
##########
|
169
434
|
# Tizen
|
170
435
|
##########
|
@@ -202,18 +467,18 @@
|
|
202
467
|
name: 'Windows Mobile'
|
203
468
|
version: '$1'
|
204
469
|
|
205
|
-
- regex: 'Windows NT 6
|
470
|
+
- regex: 'Windows NT 6\.2; ARM;'
|
206
471
|
name: 'Windows RT'
|
207
472
|
version: ''
|
208
473
|
|
209
|
-
- regex: 'Windows NT 6
|
474
|
+
- regex: 'Windows NT 6\.3; ARM;'
|
210
475
|
name: 'Windows RT'
|
211
476
|
version: '8.1'
|
212
477
|
|
213
478
|
##########
|
214
479
|
# Windows IoT
|
215
480
|
##########
|
216
|
-
- regex: 'Windows IoT 10
|
481
|
+
- regex: 'Windows IoT 10\.0'
|
217
482
|
name: 'Windows IoT'
|
218
483
|
version: '10'
|
219
484
|
|
@@ -250,24 +515,43 @@
|
|
250
515
|
name: 'MocorDroid'
|
251
516
|
version: '$1'
|
252
517
|
|
518
|
+
- regex: 'FydeOS'
|
519
|
+
name: 'FydeOS'
|
520
|
+
version: ''
|
521
|
+
|
522
|
+
##########
|
523
|
+
# Fire OS (https://developer.amazon.com/docs/fire-tv/fire-os-overview.html)
|
524
|
+
##########
|
253
525
|
- regex: 'Fire OS(?:/(\d+[\.\d]*))?'
|
254
526
|
name: 'Fire OS'
|
255
527
|
version: '$1'
|
256
528
|
|
257
|
-
- regex: '
|
529
|
+
- regex: '(?:Andr[o0]id (\d([\d.])*);? |Amazon;|smarttv_)AFT|AEO[ACBHKT]|KF[ADFGJKMORSTQ]|.*FIRETVSTICK2018'
|
258
530
|
name: 'Fire OS'
|
259
|
-
|
260
|
-
|
261
|
-
|
262
|
-
|
263
|
-
|
531
|
+
versions:
|
532
|
+
- regex: 'Andr[o0]id 1[01].+ (?:AFT|KF[ADFGJKMORSTQ])'
|
533
|
+
version: '8'
|
534
|
+
- regex: 'Andr[o0]id 9.+ (?:AEO[AHT]|AFT|KF[ADFGJKMORSTQ])|AFTSO001'
|
535
|
+
version: '7'
|
536
|
+
- regex: 'Andr[o0]id 7|.+FIRETVSTICK2018'
|
537
|
+
version: '6'
|
538
|
+
- regex: 'Andr[o0]id 5\.1'
|
539
|
+
version: '5'
|
540
|
+
- regex: 'Andr[o0]id 4\.4\.3'
|
541
|
+
version: '4.5.1'
|
542
|
+
- regex: 'Andr[o0]id 4\.4\.2'
|
543
|
+
version: '4'
|
544
|
+
- regex: 'Andr[o0]id 4\.2\.2'
|
545
|
+
version: '3'
|
546
|
+
- regex: 'Andr[o0]id 4\.0\.[34]'
|
547
|
+
version: '3'
|
548
|
+
- regex: 'Andr[o0]id 4\.0'
|
549
|
+
version: '2'
|
550
|
+
- regex: 'Andr[o0]id 2\.3\.3'
|
551
|
+
version: '1'
|
264
552
|
|
265
|
-
- regex: '
|
553
|
+
- regex: 'cordova-amazon-fireos'
|
266
554
|
name: 'Fire OS'
|
267
|
-
version: '7'
|
268
|
-
|
269
|
-
- regex: 'FydeOS'
|
270
|
-
name: 'FydeOS'
|
271
555
|
version: ''
|
272
556
|
|
273
557
|
##########
|
@@ -280,9 +564,49 @@
|
|
280
564
|
##########
|
281
565
|
# Lineage OS
|
282
566
|
##########
|
283
|
-
- regex: '
|
567
|
+
- regex: 'Lineage_(\d+[\.\d]*)'
|
284
568
|
name: 'Lineage OS'
|
285
|
-
version: ''
|
569
|
+
version: '$1'
|
570
|
+
|
571
|
+
- regex: '(?:Android (\d([\d.])*);? )?lineage_\w+'
|
572
|
+
name: 'Lineage OS'
|
573
|
+
versions:
|
574
|
+
- regex: 'Android 14'
|
575
|
+
version: '21'
|
576
|
+
- regex: 'Android 13'
|
577
|
+
version: '20.0'
|
578
|
+
- regex: 'Android 12\.1'
|
579
|
+
version: '19.1'
|
580
|
+
- regex: 'Android 12'
|
581
|
+
version: '19.0'
|
582
|
+
- regex: 'Android 11'
|
583
|
+
version: '18.0'
|
584
|
+
- regex: 'Android 10'
|
585
|
+
version: '17.0'
|
586
|
+
- regex: 'Android 9'
|
587
|
+
version: '16.0'
|
588
|
+
- regex: 'Android 8\.1'
|
589
|
+
version: '15.1'
|
590
|
+
- regex: 'Android 8'
|
591
|
+
version: '15.0'
|
592
|
+
- regex: 'Android 7\.1'
|
593
|
+
version: '14.1'
|
594
|
+
- regex: 'Android 7'
|
595
|
+
version: '14.0'
|
596
|
+
- regex: 'Android 6'
|
597
|
+
version: '13.0'
|
598
|
+
- regex: 'Android 5\.1'
|
599
|
+
version: '12.1'
|
600
|
+
- regex: 'Android 5'
|
601
|
+
version: '12.0'
|
602
|
+
- regex: 'Android 4\.4'
|
603
|
+
version: '11.0'
|
604
|
+
- regex: 'Android 4\.3'
|
605
|
+
version: '10.2'
|
606
|
+
- regex: 'Android 4\.2'
|
607
|
+
version: '10.1'
|
608
|
+
- regex: 'Android 4'
|
609
|
+
version: '9.1.0'
|
286
610
|
|
287
611
|
#########
|
288
612
|
# Resurrection Remix OS (https://resurrectionremix.com/)
|
@@ -314,10 +638,24 @@
|
|
314
638
|
##########
|
315
639
|
# Wear OS (https://wearos.google.com/)
|
316
640
|
##########
|
317
|
-
- regex: 'Chrome/(\d+\.[.\d]+) Odd/|SM-R(?:8[6-9]|9)'
|
641
|
+
- regex: 'Chrome/(\d+\.[.\d]+) Odd/|SM-R(?:8[6-9]|9)|LEM14'
|
318
642
|
name: 'Wear OS'
|
319
643
|
version: ''
|
320
644
|
|
645
|
+
##########
|
646
|
+
# SeewoOS
|
647
|
+
##########
|
648
|
+
- regex: 'SeewoOS x86_64 (\d+[\.\d]+)'
|
649
|
+
name: 'SeewoOS'
|
650
|
+
version: '$1'
|
651
|
+
|
652
|
+
##########
|
653
|
+
# ChromeOS
|
654
|
+
##########
|
655
|
+
- regex: 'CrOS [a-z0-9_]+ (\d+[\.\d]+)|Chromebook'
|
656
|
+
name: 'Chrome OS'
|
657
|
+
version: '$1'
|
658
|
+
|
321
659
|
##########
|
322
660
|
# Android TV (https://android.com/tv/)
|
323
661
|
##########
|
@@ -325,60 +663,66 @@
|
|
325
663
|
name: 'Android TV'
|
326
664
|
version: '$1'
|
327
665
|
|
328
|
-
- regex: 'Android[; ](\d+[\.\d]*).+(?:(?:Android( UHD)?|AT&T|Google) TV|AOSP on r33a0|BRAVIA)'
|
666
|
+
- regex: 'Android[; ](\d+[\.\d]*).+(?:(?:Android(?: UHD)?|AT&T|Google|Smart)[ _]?TV|AOSP on r33a0|BRAVIA|wv-atv)'
|
329
667
|
name: 'Android TV'
|
330
668
|
version: '$1'
|
331
669
|
|
332
|
-
- regex: 'Windows.+Andr0id TV|.+K_?Android_?TV_'
|
670
|
+
- regex: 'Windows.+Andr0id TV|.+(?:K_?Android_?TV_|AndroidTV|GoogleTV_)'
|
333
671
|
name: 'Android TV'
|
334
672
|
version: ''
|
335
673
|
|
336
674
|
##########
|
337
675
|
# Android SDK Level Api
|
338
676
|
##########
|
339
|
-
- regex: '(?:Android API \d+|\d+/tclwebkit(?:\d+[\.\d]*))'
|
677
|
+
- regex: '(?:Android API \d+|\d+/tclwebkit(?:\d+[\.\d]*)|(?:(?<!\d )Android/\d{2}|(?<!; |\d{4}/)Android (?!1[0-5])\d{2})(?![^ ]))'
|
340
678
|
name: 'Android'
|
341
679
|
versions:
|
342
|
-
- regex: '(?:Android API
|
680
|
+
- regex: '(?:Android API 35|35/tclwebkit|Android[ /]35)'
|
681
|
+
version: '15'
|
682
|
+
- regex: '(?:Android API 34|34/tclwebkit|Android[ /]34)'
|
343
683
|
version: '14'
|
344
|
-
- regex: '(?:Android API 33|33/tclwebkit)'
|
684
|
+
- regex: '(?:Android API 33|33/tclwebkit|Android[ /]33)'
|
345
685
|
version: '13'
|
346
|
-
- regex: '(?:Android API 32|32/tclwebkit)'
|
686
|
+
- regex: '(?:Android API 32|32/tclwebkit|Android[ /]32)'
|
347
687
|
version: '12.1'
|
348
|
-
- regex: '(?:Android API 31|31/tclwebkit)'
|
688
|
+
- regex: '(?:Android API 31|31/tclwebkit|Android[ /]31)'
|
349
689
|
version: '12'
|
350
|
-
- regex: '(?:Android API 30|30/tclwebkit)'
|
690
|
+
- regex: '(?:Android API 30|30/tclwebkit|Android[ /]30)'
|
351
691
|
version: '11'
|
352
|
-
- regex: '(?:Android API 29|29/tclwebkit)'
|
692
|
+
- regex: '(?:Android API 29|29/tclwebkit|Android[ /]29)'
|
353
693
|
version: '10'
|
354
|
-
- regex: '(?:Android API 28|28/tclwebkit)'
|
694
|
+
- regex: '(?:Android API 28|28/tclwebkit|Android[ /]28)'
|
355
695
|
version: '9'
|
356
|
-
- regex: '(?:Android API 27|27/tclwebkit)'
|
696
|
+
- regex: '(?:Android API 27|27/tclwebkit|Android[ /]27)'
|
357
697
|
version: '8.1'
|
358
|
-
- regex: '(?:Android API 26|26/tclwebkit)'
|
698
|
+
- regex: '(?:Android API 26|26/tclwebkit|Android[ /]26)'
|
359
699
|
version: '8'
|
360
|
-
- regex: '(?:Android API 25|25/tclwebkit)'
|
700
|
+
- regex: '(?:Android API 25|25/tclwebkit|Android[ /]25)'
|
361
701
|
version: '7.1'
|
362
|
-
- regex: '(?:Android API 24|24/tclwebkit)'
|
702
|
+
- regex: '(?:Android API 24|24/tclwebkit|Android[ /]24)'
|
363
703
|
version: '7'
|
364
|
-
- regex: '(?:Android API 23|23/tclwebkit)'
|
704
|
+
- regex: '(?:Android API 23|23/tclwebkit|Android[ /]23)'
|
365
705
|
version: '6'
|
366
|
-
- regex: '(?:Android API 22|22/tclwebkit)'
|
706
|
+
- regex: '(?:Android API 22|22/tclwebkit|Android[ /]22)'
|
367
707
|
version: '5.1'
|
368
|
-
- regex: '21/tclwebkit'
|
708
|
+
- regex: '(?:21/tclwebkit|Android[ /]21)'
|
369
709
|
version: '5'
|
370
710
|
- regex: '(?:20|19)/tclwebkit'
|
371
711
|
version: '4.4'
|
372
|
-
- regex: '
|
712
|
+
- regex: 'Android[ /](?:20|19)'
|
713
|
+
version: '4.4'
|
714
|
+
- regex: '(?:18/tclwebkit|Android[ /]18)'
|
373
715
|
version: '4.3'
|
374
|
-
- regex: '17/tclwebkit'
|
716
|
+
- regex: '(?:17/tclwebkit|Android[ /]17)'
|
375
717
|
version: '4.2'
|
376
|
-
- regex: '16/tclwebkit'
|
718
|
+
- regex: '(?:16/tclwebkit|Android[ /]16)'
|
377
719
|
version: '4.2'
|
378
720
|
- regex: '15/tclwebkit'
|
379
721
|
version: '4.0.3'
|
380
722
|
- regex: '15/tclwebkit'
|
381
723
|
version: '4.0.1'
|
724
|
+
- regex: 'Android[ /]15'
|
725
|
+
version: '4'
|
382
726
|
|
383
727
|
##########
|
384
728
|
# Android
|
@@ -391,11 +735,11 @@
|
|
391
735
|
name: 'Android'
|
392
736
|
version: ''
|
393
737
|
|
394
|
-
- regex: '(?:Android OS|OMDroid)[ /](\d+[\.\d]*)'
|
738
|
+
- regex: '(?:Android OS|OMDroid|sdk_gphone64_arm64-userdebug)[ /](\d+[\.\d]*)'
|
395
739
|
name: 'Android'
|
396
740
|
version: '$1'
|
397
741
|
|
398
|
-
- regex: 'Pinterest for Android
|
742
|
+
- regex: 'Pinterest for Android(?: Tablet)?/.*; (\d(?:[\d\.]*))\)$'
|
399
743
|
name: 'Android'
|
400
744
|
version: '$1'
|
401
745
|
|
@@ -407,7 +751,7 @@
|
|
407
751
|
name: 'Android'
|
408
752
|
version: '$1'
|
409
753
|
|
410
|
-
- regex: '(?:(?:Orca-)?(?<!like |/|RadioPublic |Anghami )Android|Adr|AOSP)[ /]?(?:[a-z]+ )?(\d+[\.\d]*)'
|
754
|
+
- regex: '(?:(?:Orca-)?(?<!like |/|RadioPublic |Anghami |Callpod Keeper for )Android|Adr|AOSP)[ /]?(?:[a-z]+ )?(\d+[\.\d]*)'
|
411
755
|
name: 'Android'
|
412
756
|
version: '$1'
|
413
757
|
|
@@ -415,7 +759,7 @@
|
|
415
759
|
name: 'Android'
|
416
760
|
version: '$1'
|
417
761
|
|
418
|
-
- regex: 'Android ?(?:jelly bean|Kit Kat|S
|
762
|
+
- regex: 'Android ?(?:jelly bean|Kit Kat|S\.O\. Ginger Bread|The FireCyano|:) (\d+[\.\d]*)'
|
419
763
|
name: 'Android'
|
420
764
|
version: '$1'
|
421
765
|
|
@@ -423,15 +767,19 @@
|
|
423
767
|
name: 'Android'
|
424
768
|
version: '$1'
|
425
769
|
|
426
|
-
- regex: '
|
770
|
+
- regex: '(?:TwitterAndroid).*[ /](?:[a-z]+ )?(\d+[\.\d]*)'
|
427
771
|
name: 'Android'
|
428
|
-
version: ''
|
772
|
+
version: '$1'
|
429
773
|
|
430
|
-
- regex: '(
|
774
|
+
- regex: '\(Android:.*\); API (\d+[\.\d]*)'
|
431
775
|
name: 'Android'
|
432
776
|
version: '$1'
|
433
777
|
|
434
|
-
- regex: '
|
778
|
+
- regex: ' Adr |.*(?<!like |/ )Android|Silk-Accelerated=[a-z]{4,5}'
|
779
|
+
name: 'Android'
|
780
|
+
version: ''
|
781
|
+
|
782
|
+
- regex: 'BeyondPod|AntennaPod|Podkicker|DoggCatcher|okhttp|Podcatcher Deluxe|Sonos/.+\(ACR_|Linux x86_64; Quest|.*WhatsApp/.*A$'
|
435
783
|
name: 'Android'
|
436
784
|
version: ''
|
437
785
|
|
@@ -465,7 +813,7 @@
|
|
465
813
|
##########
|
466
814
|
# ThreadX
|
467
815
|
##########
|
468
|
-
- regex: 'ThreadX(?:/(\d+[\.\d]*))?'
|
816
|
+
- regex: 'ThreadX(?:_OS)?(?:/(\d+[\.\d]*))?'
|
469
817
|
name: 'ThreadX'
|
470
818
|
version: '$1'
|
471
819
|
|
@@ -596,10 +944,26 @@
|
|
596
944
|
name: 'VectorLinux'
|
597
945
|
version: '$1'
|
598
946
|
|
947
|
+
- regex: 'sles/(\d+[\.\d]+)'
|
948
|
+
name: 'SUSE'
|
949
|
+
version: '$1'
|
950
|
+
|
951
|
+
- regex: '(?:rhel|Red Hat Enterprise Linux Server)/(\d+[\.\d]+)'
|
952
|
+
name: 'Red Hat'
|
953
|
+
version: '$1'
|
954
|
+
|
955
|
+
- regex: '.+redhat-linux-gnu|rhel|Red Hat Enterprise Linux Server'
|
956
|
+
name: 'Red Hat'
|
957
|
+
version: ''
|
958
|
+
|
599
959
|
- regex: 'CentOS Stream (\d)'
|
600
960
|
name: 'CentOS Stream'
|
601
961
|
version: '$1'
|
602
962
|
|
963
|
+
- regex: 'centos(?: Linux)?/(\d+[\.\d]+) '
|
964
|
+
name: 'CentOS'
|
965
|
+
version: '$1'
|
966
|
+
|
603
967
|
- regex: '.+.el(\d+(?:[_\.]\d+)*).(?:centos|x86_64)'
|
604
968
|
name: 'CentOS'
|
605
969
|
version: '$1'
|
@@ -624,6 +988,34 @@
|
|
624
988
|
name: 'ZorinOS'
|
625
989
|
version: '$1'
|
626
990
|
|
991
|
+
- regex: 'Ubuntu[-/]hardy'
|
992
|
+
name: 'Ubuntu'
|
993
|
+
version: '8.04'
|
994
|
+
|
995
|
+
- regex: 'debian/stretch'
|
996
|
+
name: 'Debian'
|
997
|
+
version: '9.13'
|
998
|
+
|
999
|
+
- regex: 'Ubuntu[-/]feisty'
|
1000
|
+
name: 'Ubuntu'
|
1001
|
+
version: '7.04'
|
1002
|
+
|
1003
|
+
- regex: 'Ubuntu[-/]edgy'
|
1004
|
+
name: 'Ubuntu'
|
1005
|
+
version: '6.10'
|
1006
|
+
|
1007
|
+
- regex: 'Ubuntu[-/]dapper'
|
1008
|
+
name: 'Ubuntu'
|
1009
|
+
version: '6.06'
|
1010
|
+
|
1011
|
+
- regex: 'Ubuntu[-/]breezy'
|
1012
|
+
name: 'Ubuntu'
|
1013
|
+
version: '5.10'
|
1014
|
+
|
1015
|
+
- regex: 'Ubuntu[ /](\d+[\.\d]+)'
|
1016
|
+
name: 'Ubuntu'
|
1017
|
+
version: '$1'
|
1018
|
+
|
627
1019
|
- regex: 'Linux; .*((?:Debian|Knoppix|Mint|Ubuntu|Kubuntu|Xubuntu|Lubuntu|Fedora|Red Hat|Mandriva|Gentoo|Sabayon|Slackware|SUSE|CentOS|BackTrack))[ /](\d+[\.\d]+)'
|
628
1020
|
name: '$1'
|
629
1021
|
version: '$2'
|
@@ -632,14 +1024,10 @@
|
|
632
1024
|
name: 'Deepin'
|
633
1025
|
version: '$1'
|
634
1026
|
|
635
|
-
- regex: '(Debian|Knoppix|Mint(?! Browser)|Ubuntu|Kubuntu|Xubuntu|Lubuntu|Fedora|Red Hat|Mandriva|Gentoo|Sabayon|Slackware|SUSE|CentOS|BackTrack|Freebox)(?:(?: Enterprise)? Linux)?(?:[ /\-](\d+[\.\d]+))?'
|
1027
|
+
- regex: '(Debian|Knoppix|Mint(?! Browser)|Ubuntu|Kubuntu|Xubuntu|Lubuntu|Fedora|Red Hat|Mandriva|Gentoo|Sabayon|Slackware|SUSE|CentOS|BackTrack|Freebox|ASPLinux)(?:(?: Enterprise)? Linux)?(?:[ /\-](\d+[\.\d]+))?'
|
636
1028
|
name: '$1'
|
637
1029
|
version: '$2'
|
638
1030
|
|
639
|
-
- regex: '.+redhat-linux-gnu'
|
640
|
-
name: 'Red Hat'
|
641
|
-
version: ''
|
642
|
-
|
643
1031
|
- regex: 'OS ROSA; Linux'
|
644
1032
|
name: 'Rosa'
|
645
1033
|
version: ''
|
@@ -695,7 +1083,7 @@
|
|
695
1083
|
name: 'Windows'
|
696
1084
|
version: '$1'
|
697
1085
|
|
698
|
-
- regex: 'mingw32|winhttp'
|
1086
|
+
- regex: 'mingw32|winhttp|WhatsApp/.*W$'
|
699
1087
|
name: 'Windows'
|
700
1088
|
version: ''
|
701
1089
|
|
@@ -703,59 +1091,71 @@
|
|
703
1091
|
name: 'Windows'
|
704
1092
|
version: '$1'
|
705
1093
|
|
706
|
-
- regex: 'CYGWIN_NT-10
|
1094
|
+
- regex: 'CYGWIN_NT-10\.0|Windows NT 10\.0|Windows[ /]10'
|
707
1095
|
name: 'Windows'
|
708
1096
|
version: '10'
|
709
1097
|
|
710
|
-
- regex: 'CYGWIN_NT-6
|
1098
|
+
- regex: 'CYGWIN_NT-6\.4|Windows NT 6\.4|Windows 10|win10'
|
711
1099
|
name: 'Windows'
|
712
1100
|
version: '10'
|
713
1101
|
|
714
|
-
- regex: '
|
1102
|
+
- regex: 'Windows/2012ServerR2'
|
1103
|
+
name: 'Windows'
|
1104
|
+
version: 'Server 2012 R2'
|
1105
|
+
|
1106
|
+
- regex: 'CYGWIN_NT-6\.3|Windows NT 6\.3|Windows[ /]8\.1'
|
715
1107
|
name: 'Windows'
|
716
1108
|
version: '8.1'
|
717
1109
|
|
718
|
-
- regex: '
|
1110
|
+
- regex: 'Windows/2012Server'
|
1111
|
+
name: 'Windows'
|
1112
|
+
version: 'Server 2012'
|
1113
|
+
|
1114
|
+
- regex: 'CYGWIN_NT-6\.2|Windows NT 6\.2|Windows 8|post2008Server'
|
719
1115
|
name: 'Windows'
|
720
1116
|
version: '8'
|
721
1117
|
|
722
|
-
- regex: '
|
1118
|
+
- regex: 'Windows/2008ServerR2'
|
1119
|
+
name: 'Windows'
|
1120
|
+
version: 'Server 2008 R2'
|
1121
|
+
|
1122
|
+
- regex: 'CYGWIN_NT-6\.1|Windows NT 6\.1|Windows[ /]7|win7|Windows \(6\.1'
|
723
1123
|
name: 'Windows'
|
724
1124
|
version: '7'
|
725
1125
|
|
726
|
-
- regex: 'CYGWIN_NT-6
|
1126
|
+
- regex: 'CYGWIN_NT-6\.0|Windows NT 6\.0|Windows Vista'
|
727
1127
|
name: 'Windows'
|
728
1128
|
version: 'Vista'
|
729
1129
|
|
730
|
-
- regex: 'CYGWIN_NT-5
|
1130
|
+
- regex: 'CYGWIN_NT-5\.2|Windows NT 5\.2|Windows Server 2003 / XP x64|Windows/2003Server'
|
731
1131
|
name: 'Windows'
|
732
1132
|
version: 'Server 2003'
|
733
1133
|
|
734
|
-
- regex: 'CYGWIN_NT-5
|
1134
|
+
- regex: 'CYGWIN_NT-5\.1|Windows NT 5\.1|Windows XP'
|
735
1135
|
name: 'Windows'
|
736
1136
|
version: 'XP'
|
737
1137
|
|
738
|
-
- regex: 'CYGWIN_NT-5
|
1138
|
+
- regex: 'CYGWIN_NT-5\.0|Windows NT 5\.0|Windows 2000'
|
739
1139
|
name: 'Windows'
|
740
1140
|
version: '2000'
|
741
1141
|
|
742
|
-
- regex: 'CYGWIN_NT-4
|
1142
|
+
- regex: 'CYGWIN_NT-4\.0|Windows NT 4\.0|WinNT|Windows NT'
|
743
1143
|
name: 'Windows'
|
744
1144
|
version: 'NT'
|
745
1145
|
|
746
|
-
- regex: 'CYGWIN_ME-4
|
1146
|
+
- regex: 'CYGWIN_ME-4\.90|Win 9x 4\.90|Windows ME'
|
747
1147
|
name: 'Windows'
|
748
1148
|
version: 'ME'
|
749
1149
|
|
750
|
-
- regex: 'CYGWIN_98-4
|
1150
|
+
- regex: 'CYGWIN_98-4\.10|Win98|Windows 98'
|
751
1151
|
name: 'Windows'
|
752
1152
|
version: '98'
|
753
1153
|
|
754
|
-
- regex: 'CYGWIN_95-4
|
1154
|
+
- regex: 'CYGWIN_95-4\.0|Win32|Win95|Windows 95|Windows_95'
|
755
1155
|
name: 'Windows'
|
756
1156
|
version: '95'
|
757
1157
|
|
758
|
-
- regex: 'Windows 3
|
1158
|
+
- regex: 'Windows 3\.1'
|
759
1159
|
name: 'Windows'
|
760
1160
|
version: '3.1'
|
761
1161
|
|
@@ -777,15 +1177,23 @@
|
|
777
1177
|
##########
|
778
1178
|
# tvOS (https://developer.apple.com/tvos/)
|
779
1179
|
##########
|
780
|
-
- regex: 'Apple ?TV.*CPU (?:iPhone )?OS ((?:9|1[0-
|
1180
|
+
- regex: 'Apple ?TV.*CPU (?:iPhone )?OS ((?:9|1[0-8])[_\.]\d+(?:[_.]\d+)*)'
|
781
1181
|
name: 'tvOS'
|
782
1182
|
version: '$1'
|
783
1183
|
|
784
|
-
- regex: 'iOS
|
1184
|
+
- regex: 'Apple TV; iOS ((?:9|1[0-8])[_\.]\d+(?:[_.]\d+)*)'
|
785
1185
|
name: 'tvOS'
|
786
1186
|
version: '$1'
|
787
1187
|
|
788
|
-
- regex: '
|
1188
|
+
- regex: 'iOS(?:; |/)((?:9|1[0-8])\.\d+(?:[_\.]\d+)*) (?:model/)?AppleTV'
|
1189
|
+
name: 'tvOS'
|
1190
|
+
version: '$1'
|
1191
|
+
|
1192
|
+
- regex: 'tvOS[ /]?((?:9|1[0-8])\.\d+(?:[_\.]\d+)*);?'
|
1193
|
+
name: 'tvOS'
|
1194
|
+
version: '$1'
|
1195
|
+
|
1196
|
+
- regex: 'AppleTV(?:/?(\d+[\.\d]+))?'
|
789
1197
|
name: 'tvOS'
|
790
1198
|
version: '$1'
|
791
1199
|
|
@@ -802,34 +1210,38 @@
|
|
802
1210
|
##########
|
803
1211
|
# iPadOS (https://www.apple.com/ipados/)
|
804
1212
|
##########
|
805
|
-
- regex: 'FBMD/iPad;.*FBSV/ ?(1[3-
|
1213
|
+
- regex: 'FBMD/iPad;.*FBSV/ ?(1[3-8]).(\d+[\.\d]*);'
|
806
1214
|
name: 'iPadOS'
|
807
1215
|
version: '$1.$2'
|
808
1216
|
|
809
|
-
- regex: 'iPad(?:OS)
|
1217
|
+
- regex: 'iPad(?:OS)?[ /](1[3-8])\.(\d+[\.\d]*)'
|
810
1218
|
name: 'iPadOS'
|
811
1219
|
version: '$1.$2'
|
812
1220
|
|
813
|
-
- regex: '^iPad(?:\d+[\,\d]*)/(1[3-
|
1221
|
+
- regex: '^iPad(?:\d+[\,\d]*)/(1[3-8])\.(\d+[\.\d]*)'
|
814
1222
|
name: 'iPadOS'
|
815
1223
|
version: '$1.$2'
|
816
1224
|
|
817
|
-
- regex: 'iPad(?:; (?:iOS|iPadOS|iPhone OS)|.+CPU OS) ((1[3-
|
1225
|
+
- regex: 'iPad(?:; (?:iOS|iPadOS|iPhone OS)|.+CPU (?:iPad |iPhone )?OS) ((1[3-8])+(?:[_\.]\d+)*)'
|
818
1226
|
name: 'iPadOS'
|
819
1227
|
version: '$1'
|
820
1228
|
|
821
|
-
- regex: 'iOS/(1[3-
|
1229
|
+
- regex: 'iOS/(1[3-8])\.(\d+[\.\d]*).+Apple/iPad'
|
822
1230
|
name: 'iPadOS'
|
823
1231
|
version: '$1.$2'
|
824
1232
|
|
825
|
-
- regex: 'iPhone OS,(1[3-
|
1233
|
+
- regex: 'iPhone OS,(1[3-8])\.(\d+[\.\d]*).+iPad'
|
826
1234
|
name: 'iPadOS'
|
827
1235
|
version: '$1.$2'
|
828
1236
|
|
1237
|
+
- regex: 'Pinterest for iOS/.*iPad.*; (\d(?:[\d\.]*))[)]$'
|
1238
|
+
name: 'iPadOS'
|
1239
|
+
version: '$1'
|
1240
|
+
|
829
1241
|
##########
|
830
1242
|
# iOS
|
831
1243
|
##########
|
832
|
-
- regex: 'iPad/([89]|1[012])
|
1244
|
+
- regex: 'iPad/([89]|1[012])\.(\d+[\.\d]*)'
|
833
1245
|
name: 'iOS'
|
834
1246
|
version: '$1.$2'
|
835
1247
|
|
@@ -837,7 +1249,7 @@
|
|
837
1249
|
name: 'iOS'
|
838
1250
|
version: '$1'
|
839
1251
|
|
840
|
-
- regex: 'Pinterest for iOS
|
1252
|
+
- regex: 'Pinterest for iOS/.*iPhone.*; (\d(?:[\d\.]*))[)]$'
|
841
1253
|
name: 'iOS'
|
842
1254
|
version: '$1'
|
843
1255
|
|
@@ -845,92 +1257,108 @@
|
|
845
1257
|
name: 'iOS'
|
846
1258
|
version: '$1'
|
847
1259
|
|
1260
|
+
- regex: 'iPhone OS ([0-9]{1})([0-9]{1})([0-9]{1})'
|
1261
|
+
name: 'iOS'
|
1262
|
+
version: '$1.$2.$3'
|
1263
|
+
|
1264
|
+
- regex: '(?:CPU OS|iPh(?:one)?[ _]OS|iPhone.+ OS|PodMN.+iPhone|iOS)[ _/](\d+(?:[_\.]\d+)*)'
|
1265
|
+
name: 'iOS'
|
1266
|
+
version: '$1'
|
1267
|
+
|
848
1268
|
- regex: '(?:iPhone ?OS|iOS(?: Version)?)(?:/|; |,)(\d+[\.\d]+)'
|
849
1269
|
name: 'iOS'
|
850
1270
|
version: '$1'
|
851
1271
|
|
852
|
-
- regex: '^(?!com
|
1272
|
+
- regex: '^(?!com\.apple\.Safari\.SearchHelper|Safari).*(?:CFNetwork|Mana)/.+ Darwin/(\d+[\.\d]+)(?!.*(?:x86_64|i386|PowerMac|Power%20Macintosh))'
|
853
1273
|
name: 'iOS'
|
854
1274
|
versions:
|
855
|
-
- regex: 'Darwin/
|
1275
|
+
- regex: 'Darwin/24\.0\.0'
|
1276
|
+
version: '18.0'
|
1277
|
+
- regex: 'Darwin/23\.5\.0'
|
1278
|
+
version: '17.5'
|
1279
|
+
- regex: 'Darwin/23\.4\.0'
|
1280
|
+
version: '17.4'
|
1281
|
+
- regex: 'Darwin/23\.3\.0'
|
1282
|
+
version: '17.3'
|
1283
|
+
- regex: 'Darwin/23\.2\.0'
|
856
1284
|
version: '17.2'
|
857
|
-
- regex: 'Darwin/23
|
1285
|
+
- regex: 'Darwin/23\.1\.0'
|
858
1286
|
version: '17.1'
|
859
|
-
- regex: 'Darwin/23
|
1287
|
+
- regex: 'Darwin/23\.0\.0'
|
860
1288
|
version: '17.0'
|
861
|
-
- regex: 'Darwin/22
|
1289
|
+
- regex: 'Darwin/22\.6\.0'
|
862
1290
|
version: '16.6'
|
863
|
-
- regex: 'Darwin/22
|
1291
|
+
- regex: 'Darwin/22\.5\.0'
|
864
1292
|
version: '16.5'
|
865
|
-
- regex: 'Darwin/22
|
1293
|
+
- regex: 'Darwin/22\.4\.0'
|
866
1294
|
version: '16.4'
|
867
|
-
- regex: 'Darwin/22
|
1295
|
+
- regex: 'Darwin/22\.3\.0'
|
868
1296
|
version: '16.3'
|
869
|
-
- regex: 'Darwin/22
|
1297
|
+
- regex: 'Darwin/22\.2\.0'
|
870
1298
|
version: '16.2'
|
871
|
-
- regex: 'Darwin/22
|
1299
|
+
- regex: 'Darwin/22\.1\.0'
|
872
1300
|
version: '16.1'
|
873
|
-
- regex: 'Darwin/22
|
1301
|
+
- regex: 'Darwin/22\.0\.0'
|
874
1302
|
version: '16.0'
|
875
|
-
- regex: 'Darwin/21
|
1303
|
+
- regex: 'Darwin/21\.6\.0'
|
876
1304
|
version: '15.6'
|
877
|
-
- regex: 'Darwin/21
|
1305
|
+
- regex: 'Darwin/21\.5\.0'
|
878
1306
|
version: '15.5'
|
879
|
-
- regex: 'Darwin/21
|
1307
|
+
- regex: 'Darwin/21\.4\.0'
|
880
1308
|
version: '15.4'
|
881
|
-
- regex: 'Darwin/21
|
1309
|
+
- regex: 'Darwin/21\.3\.0'
|
882
1310
|
version: '15.3'
|
883
|
-
- regex: 'Darwin/21
|
1311
|
+
- regex: 'Darwin/21\.2\.0'
|
884
1312
|
version: '15.2'
|
885
|
-
- regex: 'Darwin/21
|
1313
|
+
- regex: 'Darwin/21\.1\.0'
|
886
1314
|
version: '15.1'
|
887
|
-
- regex: 'Darwin/21
|
1315
|
+
- regex: 'Darwin/21\.0\.0'
|
888
1316
|
version: '15.0'
|
889
|
-
- regex: 'Darwin/20
|
1317
|
+
- regex: 'Darwin/20\.6\.0'
|
890
1318
|
version: '14.7'
|
891
|
-
- regex: 'Darwin/20
|
1319
|
+
- regex: 'Darwin/20\.5\.0'
|
892
1320
|
version: '14.6'
|
893
|
-
- regex: 'Darwin/20
|
1321
|
+
- regex: 'Darwin/20\.4\.0'
|
894
1322
|
version: '14.5'
|
895
|
-
- regex: 'Darwin/20
|
1323
|
+
- regex: 'Darwin/20\.3\.0'
|
896
1324
|
version: '14.4'
|
897
|
-
- regex: 'Darwin/20
|
1325
|
+
- regex: 'Darwin/20\.2\.0'
|
898
1326
|
version: '14.3'
|
899
|
-
- regex: 'Darwin/20
|
1327
|
+
- regex: 'Darwin/20\.1\.0'
|
900
1328
|
version: '14.2'
|
901
|
-
- regex: 'Darwin/20
|
1329
|
+
- regex: 'Darwin/20\.0\.0'
|
902
1330
|
version: '14.0'
|
903
|
-
- regex: 'Darwin/19
|
1331
|
+
- regex: 'Darwin/19\.6\.0'
|
904
1332
|
version: '13.6'
|
905
|
-
- regex: 'Darwin/19
|
1333
|
+
- regex: 'Darwin/19\.5\.0'
|
906
1334
|
version: '13.5'
|
907
|
-
- regex: 'Darwin/19
|
1335
|
+
- regex: 'Darwin/19\.4\.0'
|
908
1336
|
version: '13.4'
|
909
|
-
- regex: 'Darwin/19
|
1337
|
+
- regex: 'Darwin/19\.3\.0'
|
910
1338
|
version: '13.3.1'
|
911
|
-
- regex: 'Darwin/19
|
1339
|
+
- regex: 'Darwin/19\.2\.0'
|
912
1340
|
version: '13.3'
|
913
|
-
- regex: 'Darwin/19
|
1341
|
+
- regex: 'Darwin/19\.0\.0'
|
914
1342
|
version: '13.0'
|
915
|
-
- regex: 'Darwin/18
|
1343
|
+
- regex: 'Darwin/18\.7\.0'
|
916
1344
|
version: '12.4'
|
917
|
-
- regex: 'Darwin/18
|
1345
|
+
- regex: 'Darwin/18\.6\.0'
|
918
1346
|
version: '12.3'
|
919
|
-
- regex: 'Darwin/18
|
1347
|
+
- regex: 'Darwin/18\.5\.0'
|
920
1348
|
version: '12.2'
|
921
|
-
- regex: 'Darwin/18
|
1349
|
+
- regex: 'Darwin/18\.2\.0'
|
922
1350
|
version: '12.1'
|
923
|
-
- regex: 'Darwin/18
|
1351
|
+
- regex: 'Darwin/18\.0\.0'
|
924
1352
|
version: '12.0'
|
925
|
-
- regex: 'Darwin/17
|
1353
|
+
- regex: 'Darwin/17\.7\.0'
|
926
1354
|
version: '11.4.1'
|
927
|
-
- regex: 'Darwin/17
|
1355
|
+
- regex: 'Darwin/17\.6\.0'
|
928
1356
|
version: '11.4'
|
929
|
-
- regex: 'Darwin/17
|
1357
|
+
- regex: 'Darwin/17\.5\.0'
|
930
1358
|
version: '11.3'
|
931
|
-
- regex: 'Darwin/17
|
1359
|
+
- regex: 'Darwin/17\.4\.0'
|
932
1360
|
version: '11.2.6'
|
933
|
-
- regex: 'Darwin/17
|
1361
|
+
- regex: 'Darwin/17\.3\.0'
|
934
1362
|
version: '11.2'
|
935
1363
|
- regex: 'CFNetwork/889'
|
936
1364
|
version: '11.1'
|
@@ -1009,14 +1437,6 @@
|
|
1009
1437
|
name: 'iOS'
|
1010
1438
|
version: '$1.$2'
|
1011
1439
|
|
1012
|
-
- regex: 'iPhone OS ([0-9]{1})([0-9]{1})([0-9]{1})'
|
1013
|
-
name: 'iOS'
|
1014
|
-
version: '$1.$2.$3'
|
1015
|
-
|
1016
|
-
- regex: '(?:CPU OS|iPh(?:one)?[ _]OS|iPhone.+ OS|PodMN.+iPhone|iOS)[ _/](\d+(?:[_\.]\d+)*)'
|
1017
|
-
name: 'iOS'
|
1018
|
-
version: '$1'
|
1019
|
-
|
1020
1440
|
- regex: 'FBMD/iPhone;.*FBSV/ ?(\d+[\.\d]+);'
|
1021
1441
|
name: 'iOS'
|
1022
1442
|
version: '$1'
|
@@ -1053,7 +1473,7 @@
|
|
1053
1473
|
name: 'iOS'
|
1054
1474
|
version: '$1'
|
1055
1475
|
|
1056
|
-
- regex: '(?:Podcasts/(?:[\d\.]+)|Instacast(?:HD)?/(?:\d\.[\d\.abc]+)|Pocket Casts, iOS|\(iOS\)|iOS; Opera|Overcast|Castro|Podcat|iCatcher|RSSRadio/|MobileSafari
|
1476
|
+
- regex: '(?:Podcasts/(?:[\d\.]+)|Instacast(?:HD)?/(?:\d\.[\d\.abc]+)|Pocket Casts, iOS|\(iOS\)|iOS; Opera|Overcast|Castro|Podcat|iCatcher|RSSRadio/|MobileSafari/|WhatsApp/.*i$)(?!.*x86_64)'
|
1057
1477
|
name: 'iOS'
|
1058
1478
|
version: ''
|
1059
1479
|
|
@@ -1061,7 +1481,7 @@
|
|
1061
1481
|
name: 'iOS'
|
1062
1482
|
version: ''
|
1063
1483
|
|
1064
|
-
- regex: 'iOS/Version ([\d\.]+)'
|
1484
|
+
- regex: 'iOS[ /]Version ([\d\.]+)'
|
1065
1485
|
name: 'iOS'
|
1066
1486
|
version: '$1'
|
1067
1487
|
|
@@ -1069,185 +1489,193 @@
|
|
1069
1489
|
name: 'iOS'
|
1070
1490
|
version: ''
|
1071
1491
|
|
1072
|
-
- regex: 'CaptiveNetworkSupport|AirPlay'
|
1492
|
+
- regex: 'CaptiveNetworkSupport|AirPlay|.*[ \.\-/]iOS'
|
1073
1493
|
name: 'iOS'
|
1074
1494
|
version: ''
|
1075
1495
|
|
1076
1496
|
##########
|
1077
1497
|
# Mac
|
1078
1498
|
##########
|
1079
|
-
- regex: '(?:CFNetwork|StudioDisplay)/.+Darwin(?:/|; )(?:[\d\.]+).+(?:x86_64|i386|Power%20Macintosh)|(?:x86_64-apple-)?darwin(?:[\d\.]+)|PowerMac|com
|
1499
|
+
- regex: '(?:CFNetwork|Mana|StudioDisplay)/.+Darwin(?:/|; )(?:[\d\.]+).+(?:x86_64|i386|Power%20Macintosh)|(?:x86_64-apple-)?darwin(?:[\d\.]+)|C?Python.*Darwin|PowerMac|com\.apple\.Safari\.SearchHelper|^Safari'
|
1080
1500
|
name: 'Mac'
|
1081
1501
|
versions:
|
1082
|
-
- regex: '(?:x86_64-apple-)?Darwin(?:/|; )?
|
1502
|
+
- regex: '(?:x86_64-apple-)?Darwin(?:/|; )?24\.0\.0'
|
1503
|
+
version: '15.0'
|
1504
|
+
- regex: '(?:x86_64-apple-)?Darwin(?:/|; )?23\.5\.0'
|
1505
|
+
version: '14.5'
|
1506
|
+
- regex: '(?:x86_64-apple-)?Darwin(?:/|; )?23\.4\.0'
|
1507
|
+
version: '14.4'
|
1508
|
+
- regex: '(?:x86_64-apple-)?Darwin(?:/|; )?23\.3\.0'
|
1509
|
+
version: '14.3'
|
1510
|
+
- regex: '(?:x86_64-apple-)?Darwin(?:/|; )?23\.2\.0'
|
1083
1511
|
version: '14.2'
|
1084
|
-
- regex: '(?:x86_64-apple-)?Darwin(?:/|; )?23
|
1512
|
+
- regex: '(?:x86_64-apple-)?Darwin(?:/|; )?23\.1\.0'
|
1085
1513
|
version: '14.1'
|
1086
|
-
- regex: '(?:x86_64-apple-)?Darwin(?:/|; )?23
|
1514
|
+
- regex: '(?:x86_64-apple-)?Darwin(?:/|; )?23\.0\.0'
|
1087
1515
|
version: '14.0'
|
1088
|
-
- regex: '(?:x86_64-apple-)?Darwin(?:/|; )?22
|
1516
|
+
- regex: '(?:x86_64-apple-)?Darwin(?:/|; )?22\.6\.0'
|
1089
1517
|
version: '13.5'
|
1090
|
-
- regex: '(?:x86_64-apple-)?Darwin(?:/|; )?22
|
1518
|
+
- regex: '(?:x86_64-apple-)?Darwin(?:/|; )?22\.5\.0'
|
1091
1519
|
version: '13.4'
|
1092
|
-
- regex: '(?:x86_64-apple-)?Darwin(?:/|; )?22
|
1520
|
+
- regex: '(?:x86_64-apple-)?Darwin(?:/|; )?22\.4\.0'
|
1093
1521
|
version: '13.3'
|
1094
|
-
- regex: '(?:x86_64-apple-)?Darwin(?:/|; )?22
|
1522
|
+
- regex: '(?:x86_64-apple-)?Darwin(?:/|; )?22\.3\.0'
|
1095
1523
|
version: '13.2'
|
1096
|
-
- regex: '(?:x86_64-apple-)?Darwin(?:/|; )?22
|
1524
|
+
- regex: '(?:x86_64-apple-)?Darwin(?:/|; )?22\.2\.0'
|
1097
1525
|
version: '13.1'
|
1098
|
-
- regex: '(?:x86_64-apple-)?Darwin(?:/|; )?22
|
1526
|
+
- regex: '(?:x86_64-apple-)?Darwin(?:/|; )?22\.1\.0'
|
1099
1527
|
version: '13.0.1'
|
1100
|
-
- regex: '(?:x86_64-apple-)?Darwin(?:/|; )?22
|
1528
|
+
- regex: '(?:x86_64-apple-)?Darwin(?:/|; )?22\.0\.0'
|
1101
1529
|
version: '13.0'
|
1102
|
-
- regex: '(?:x86_64-apple-)?Darwin(?:/|; )?21
|
1530
|
+
- regex: '(?:x86_64-apple-)?Darwin(?:/|; )?21\.6\.0'
|
1103
1531
|
version: '12.5'
|
1104
|
-
- regex: '(?:x86_64-apple-)?Darwin(?:/|; )?21
|
1532
|
+
- regex: '(?:x86_64-apple-)?Darwin(?:/|; )?21\.5\.0'
|
1105
1533
|
version: '12.4'
|
1106
|
-
- regex: '(?:x86_64-apple-)?Darwin(?:/|; )?21
|
1534
|
+
- regex: '(?:x86_64-apple-)?Darwin(?:/|; )?21\.4\.0'
|
1107
1535
|
version: '12.3'
|
1108
|
-
- regex: '(?:x86_64-apple-)?Darwin(?:/|; )?21
|
1536
|
+
- regex: '(?:x86_64-apple-)?Darwin(?:/|; )?21\.3\.0'
|
1109
1537
|
version: '12.2'
|
1110
|
-
- regex: '(?:x86_64-apple-)?Darwin(?:/|; )?21
|
1538
|
+
- regex: '(?:x86_64-apple-)?Darwin(?:/|; )?21\.2\.0'
|
1111
1539
|
version: '12.1'
|
1112
|
-
- regex: '(?:x86_64-apple-)?Darwin(?:/|; )?21
|
1540
|
+
- regex: '(?:x86_64-apple-)?Darwin(?:/|; )?21\.1\.0'
|
1113
1541
|
version: '12.0.1'
|
1114
|
-
- regex: '(?:x86_64-apple-)?Darwin(?:/|; )?21
|
1542
|
+
- regex: '(?:x86_64-apple-)?Darwin(?:/|; )?21\.0\.0'
|
1115
1543
|
version: '12.0'
|
1116
|
-
- regex: '(?:x86_64-apple-)?Darwin(?:/|; )?20
|
1544
|
+
- regex: '(?:x86_64-apple-)?Darwin(?:/|; )?20\.6\.0'
|
1117
1545
|
version: '11.5'
|
1118
|
-
- regex: '(?:x86_64-apple-)?Darwin(?:/|; )?20
|
1546
|
+
- regex: '(?:x86_64-apple-)?Darwin(?:/|; )?20\.5\.0'
|
1119
1547
|
version: '11.4'
|
1120
|
-
- regex: '(?:x86_64-apple-)?Darwin(?:/|; )?20
|
1548
|
+
- regex: '(?:x86_64-apple-)?Darwin(?:/|; )?20\.4\.0'
|
1121
1549
|
version: '11.3'
|
1122
|
-
- regex: '(?:x86_64-apple-)?Darwin(?:/|; )?20
|
1550
|
+
- regex: '(?:x86_64-apple-)?Darwin(?:/|; )?20\.3\.0'
|
1123
1551
|
version: '11.2'
|
1124
|
-
- regex: '(?:x86_64-apple-)?Darwin(?:/|; )?20
|
1552
|
+
- regex: '(?:x86_64-apple-)?Darwin(?:/|; )?20\.2\.0.*'
|
1125
1553
|
version: '11.1'
|
1126
|
-
- regex: '(?:x86_64-apple-)?Darwin(?:/|; )?20
|
1554
|
+
- regex: '(?:x86_64-apple-)?Darwin(?:/|; )?20\.[01]\.0'
|
1127
1555
|
version: '11.0'
|
1128
|
-
- regex: '(?:x86_64-apple-)?Darwin(?:/|; )?19
|
1556
|
+
- regex: '(?:x86_64-apple-)?Darwin(?:/|; )?19\.6\.0'
|
1129
1557
|
version: '10.15.6'
|
1130
|
-
- regex: '(?:x86_64-apple-)?Darwin(?:/|; )?19
|
1558
|
+
- regex: '(?:x86_64-apple-)?Darwin(?:/|; )?19\.5\.0'
|
1131
1559
|
version: '10.15.5'
|
1132
|
-
- regex: '(?:x86_64-apple-)?Darwin(?:/|; )?19
|
1560
|
+
- regex: '(?:x86_64-apple-)?Darwin(?:/|; )?19\.4\.0'
|
1133
1561
|
version: '10.15.4'
|
1134
|
-
- regex: '(?:x86_64-apple-)?Darwin(?:/|; )?19
|
1562
|
+
- regex: '(?:x86_64-apple-)?Darwin(?:/|; )?19\.3\.0'
|
1135
1563
|
version: '10.15.3'
|
1136
|
-
- regex: '(?:x86_64-apple-)?Darwin(?:/|; )?19
|
1564
|
+
- regex: '(?:x86_64-apple-)?Darwin(?:/|; )?19\.2\.0'
|
1137
1565
|
version: '10.15.2'
|
1138
|
-
- regex: '(?:x86_64-apple-)?Darwin(?:/|; )?19
|
1566
|
+
- regex: '(?:x86_64-apple-)?Darwin(?:/|; )?19\.0\.0'
|
1139
1567
|
version: '10.15'
|
1140
|
-
- regex: '(?:x86_64-apple-)?Darwin(?:/|; )?18
|
1568
|
+
- regex: '(?:x86_64-apple-)?Darwin(?:/|; )?18\.7\.0'
|
1141
1569
|
version: '10.14'
|
1142
|
-
- regex: '(?:x86_64-apple-)?Darwin(?:/|; )?18
|
1570
|
+
- regex: '(?:x86_64-apple-)?Darwin(?:/|; )?18\.6\.0'
|
1143
1571
|
version: '10.14.5'
|
1144
|
-
- regex: '(?:x86_64-apple-)?Darwin(?:/|; )?18
|
1572
|
+
- regex: '(?:x86_64-apple-)?Darwin(?:/|; )?18\.5\.0'
|
1145
1573
|
version: '10.14.4'
|
1146
|
-
- regex: '(?:x86_64-apple-)?Darwin(?:/|; )?18
|
1574
|
+
- regex: '(?:x86_64-apple-)?Darwin(?:/|; )?18\.2\.0'
|
1147
1575
|
version: '10.14.1'
|
1148
|
-
- regex: '(?:x86_64-apple-)?Darwin(?:/|; )?18
|
1576
|
+
- regex: '(?:x86_64-apple-)?Darwin(?:/|; )?18\.0\.0'
|
1149
1577
|
version: '10.14'
|
1150
|
-
- regex: '(?:x86_64-apple-)?Darwin(?:/|; )?17
|
1578
|
+
- regex: '(?:x86_64-apple-)?Darwin(?:/|; )?17\.7\.0'
|
1151
1579
|
version: '10.13.6'
|
1152
|
-
- regex: '(?:x86_64-apple-)?Darwin(?:/|; )?17
|
1580
|
+
- regex: '(?:x86_64-apple-)?Darwin(?:/|; )?17\.6\.0'
|
1153
1581
|
version: '10.13.5'
|
1154
|
-
- regex: '(?:x86_64-apple-)?Darwin(?:/|; )?17
|
1582
|
+
- regex: '(?:x86_64-apple-)?Darwin(?:/|; )?17\.5\.0'
|
1155
1583
|
version: '10.13.4'
|
1156
|
-
- regex: '(?:x86_64-apple-)?Darwin(?:/|; )?17
|
1584
|
+
- regex: '(?:x86_64-apple-)?Darwin(?:/|; )?17\.4\.0'
|
1157
1585
|
version: '10.13.3'
|
1158
|
-
- regex: '(?:x86_64-apple-)?Darwin(?:/|; )?17
|
1586
|
+
- regex: '(?:x86_64-apple-)?Darwin(?:/|; )?17\.3\.0'
|
1159
1587
|
version: '10.13.2'
|
1160
|
-
- regex: '(?:x86_64-apple-)?Darwin(?:/|; )?17
|
1588
|
+
- regex: '(?:x86_64-apple-)?Darwin(?:/|; )?17\.2\.0'
|
1161
1589
|
version: '10.13.1'
|
1162
|
-
- regex: '(?:x86_64-apple-)?Darwin(?:/|; )?17
|
1590
|
+
- regex: '(?:x86_64-apple-)?Darwin(?:/|; )?17\.0\.0'
|
1163
1591
|
version: '10.13'
|
1164
|
-
- regex: '(?:x86_64-apple-)?Darwin(?:/|; )?16
|
1592
|
+
- regex: '(?:x86_64-apple-)?Darwin(?:/|; )?16\.7\.0'
|
1165
1593
|
version: '10.12.6'
|
1166
|
-
- regex: '(?:x86_64-apple-)?Darwin(?:/|; )?16
|
1594
|
+
- regex: '(?:x86_64-apple-)?Darwin(?:/|; )?16\.6\.0'
|
1167
1595
|
version: '10.12.5'
|
1168
|
-
- regex: '(?:x86_64-apple-)?Darwin(?:/|; )?16
|
1596
|
+
- regex: '(?:x86_64-apple-)?Darwin(?:/|; )?16\.5\.0'
|
1169
1597
|
version: '10.12.4'
|
1170
|
-
- regex: '(?:x86_64-apple-)?Darwin(?:/|; )?16
|
1598
|
+
- regex: '(?:x86_64-apple-)?Darwin(?:/|; )?16\.4\.0'
|
1171
1599
|
version: '10.12.3'
|
1172
|
-
- regex: '(?:x86_64-apple-)?Darwin(?:/|; )?16
|
1600
|
+
- regex: '(?:x86_64-apple-)?Darwin(?:/|; )?16\.3\.0'
|
1173
1601
|
version: '10.12.2'
|
1174
|
-
- regex: '(?:x86_64-apple-)?Darwin(?:/|; )?16
|
1602
|
+
- regex: '(?:x86_64-apple-)?Darwin(?:/|; )?16\.2\.0'
|
1175
1603
|
version: '10.12.2'
|
1176
|
-
- regex: '(?:x86_64-apple-)?Darwin(?:/|; )?16
|
1604
|
+
- regex: '(?:x86_64-apple-)?Darwin(?:/|; )?16\.1\.0'
|
1177
1605
|
version: '10.12.1'
|
1178
|
-
- regex: '(?:x86_64-apple-)?Darwin(?:/|; )?16
|
1606
|
+
- regex: '(?:x86_64-apple-)?Darwin(?:/|; )?16\.0\.0'
|
1179
1607
|
version: '10.12'
|
1180
|
-
- regex: '(?:x86_64-apple-)?Darwin(?:/|; )?15
|
1608
|
+
- regex: '(?:x86_64-apple-)?Darwin(?:/|; )?15\.6\.0'
|
1181
1609
|
version: '10.11.6'
|
1182
|
-
- regex: '(?:x86_64-apple-)?Darwin(?:/|; )?15
|
1610
|
+
- regex: '(?:x86_64-apple-)?Darwin(?:/|; )?15\.5\.0'
|
1183
1611
|
version: '10.11.5'
|
1184
|
-
- regex: '(?:x86_64-apple-)?Darwin(?:/|; )?15
|
1612
|
+
- regex: '(?:x86_64-apple-)?Darwin(?:/|; )?15\.4\.0'
|
1185
1613
|
version: '10.11.4'
|
1186
|
-
- regex: '(?:x86_64-apple-)?Darwin(?:/|; )?15
|
1614
|
+
- regex: '(?:x86_64-apple-)?Darwin(?:/|; )?15\.3\.0'
|
1187
1615
|
version: '10.11.3'
|
1188
|
-
- regex: '(?:x86_64-apple-)?Darwin(?:/|; )?15
|
1616
|
+
- regex: '(?:x86_64-apple-)?Darwin(?:/|; )?15\.2\.0'
|
1189
1617
|
version: '10.11.2'
|
1190
1618
|
- regex: 'CFNetwork/760'
|
1191
1619
|
version: '10.11'
|
1192
|
-
- regex: '(?:x86_64-apple-)?Darwin(?:/|; )?14
|
1620
|
+
- regex: '(?:x86_64-apple-)?Darwin(?:/|; )?14\.5\.0'
|
1193
1621
|
version: '10.10.5'
|
1194
|
-
- regex: '(?:x86_64-apple-)?Darwin(?:/|; )?14
|
1622
|
+
- regex: '(?:x86_64-apple-)?Darwin(?:/|; )?14\.4\.0'
|
1195
1623
|
version: '10.10.4'
|
1196
|
-
- regex: '(?:x86_64-apple-)?Darwin(?:/|; )?14
|
1624
|
+
- regex: '(?:x86_64-apple-)?Darwin(?:/|; )?14\.3\.0'
|
1197
1625
|
version: '10.10.3'
|
1198
|
-
- regex: '(?:x86_64-apple-)?Darwin(?:/|; )?14
|
1626
|
+
- regex: '(?:x86_64-apple-)?Darwin(?:/|; )?14\.1\.0'
|
1199
1627
|
version: '10.10.2'
|
1200
|
-
- regex: '(?:x86_64-apple-)?Darwin(?:/|; )?14
|
1628
|
+
- regex: '(?:x86_64-apple-)?Darwin(?:/|; )?14\.0\.0'
|
1201
1629
|
version: '10.10'
|
1202
|
-
- regex: '(?:x86_64-apple-)?Darwin(?:/|; )?13
|
1630
|
+
- regex: '(?:x86_64-apple-)?Darwin(?:/|; )?13\.4\.0'
|
1203
1631
|
version: '10.9.5'
|
1204
|
-
- regex: '(?:x86_64-apple-)?Darwin(?:/|; )?13
|
1632
|
+
- regex: '(?:x86_64-apple-)?Darwin(?:/|; )?13\.3\.0'
|
1205
1633
|
version: '10.9.4'
|
1206
|
-
- regex: '(?:x86_64-apple-)?Darwin(?:/|; )?13
|
1634
|
+
- regex: '(?:x86_64-apple-)?Darwin(?:/|; )?13\.2\.0'
|
1207
1635
|
version: '10.9.3'
|
1208
|
-
- regex: '(?:x86_64-apple-)?Darwin(?:/|; )?13
|
1636
|
+
- regex: '(?:x86_64-apple-)?Darwin(?:/|; )?13\.1\.0'
|
1209
1637
|
version: '10.9.2'
|
1210
|
-
- regex: '(?:x86_64-apple-)?Darwin(?:/|; )?13
|
1638
|
+
- regex: '(?:x86_64-apple-)?Darwin(?:/|; )?13\.0\.0'
|
1211
1639
|
version: '10.9.0'
|
1212
|
-
- regex: '(?:x86_64-apple-)?Darwin(?:/|; )?12
|
1640
|
+
- regex: '(?:x86_64-apple-)?Darwin(?:/|; )?12\.6\.0'
|
1213
1641
|
version: '10.8.5'
|
1214
|
-
- regex: '(?:x86_64-apple-)?Darwin(?:/|; )?12
|
1642
|
+
- regex: '(?:x86_64-apple-)?Darwin(?:/|; )?12\.5\.0'
|
1215
1643
|
version: '10.8.5'
|
1216
|
-
- regex: '(?:x86_64-apple-)?Darwin(?:/|; )?12
|
1644
|
+
- regex: '(?:x86_64-apple-)?Darwin(?:/|; )?12\.4\.0'
|
1217
1645
|
version: '10.8.4'
|
1218
|
-
- regex: '(?:x86_64-apple-)?Darwin(?:/|; )?12
|
1646
|
+
- regex: '(?:x86_64-apple-)?Darwin(?:/|; )?12\.3\.0'
|
1219
1647
|
version: '10.8.3'
|
1220
|
-
- regex: '(?:x86_64-apple-)?Darwin(?:/|; )?12
|
1648
|
+
- regex: '(?:x86_64-apple-)?Darwin(?:/|; )?12\.2\.0'
|
1221
1649
|
version: '10.8.2'
|
1222
|
-
- regex: '(?:x86_64-apple-)?Darwin(?:/|; )?12
|
1650
|
+
- regex: '(?:x86_64-apple-)?Darwin(?:/|; )?12\.1\.0'
|
1223
1651
|
version: '10.8.1'
|
1224
|
-
- regex: '(?:x86_64-apple-)?Darwin(?:/|; )?11
|
1652
|
+
- regex: '(?:x86_64-apple-)?Darwin(?:/|; )?11\.5\.0'
|
1225
1653
|
version: '10.7.5'
|
1226
|
-
- regex: '(?:x86_64-apple-)?Darwin(?:/|; )?11
|
1654
|
+
- regex: '(?:x86_64-apple-)?Darwin(?:/|; )?11\.4\.2'
|
1227
1655
|
version: '10.7.5'
|
1228
|
-
- regex: '(?:x86_64-apple-)?Darwin(?:/|; )?11
|
1656
|
+
- regex: '(?:x86_64-apple-)?Darwin(?:/|; )?11\.4\.0'
|
1229
1657
|
version: '10.7.4'
|
1230
|
-
- regex: '(?:x86_64-apple-)?Darwin(?:/|; )?11
|
1658
|
+
- regex: '(?:x86_64-apple-)?Darwin(?:/|; )?11\.3\.0'
|
1231
1659
|
version: '10.7.3'
|
1232
|
-
- regex: '(?:x86_64-apple-)?Darwin(?:/|; )?11
|
1660
|
+
- regex: '(?:x86_64-apple-)?Darwin(?:/|; )?11\.2\.0'
|
1233
1661
|
version: '10.7.2'
|
1234
|
-
- regex: '(?:x86_64-apple-)?Darwin(?:/|; )?11
|
1662
|
+
- regex: '(?:x86_64-apple-)?Darwin(?:/|; )?11\.1\.0'
|
1235
1663
|
version: '10.7.1'
|
1236
|
-
- regex: '(?:x86_64-apple-)?Darwin(?:/|; )?10
|
1664
|
+
- regex: '(?:x86_64-apple-)?Darwin(?:/|; )?10\.8\.0'
|
1237
1665
|
version: '10.6.8'
|
1238
|
-
- regex: '(?:x86_64-apple-)?Darwin(?:/|; )?10
|
1666
|
+
- regex: '(?:x86_64-apple-)?Darwin(?:/|; )?10\.7\.[34]'
|
1239
1667
|
version: '10.6.7'
|
1240
|
-
- regex: '(?:x86_64-apple-)?Darwin(?:/|; )?10
|
1668
|
+
- regex: '(?:x86_64-apple-)?Darwin(?:/|; )?10\.3\.0'
|
1241
1669
|
version: '10.6.3'
|
1242
|
-
- regex: '(?:x86_64-apple-)?Darwin(?:/|; )?10
|
1670
|
+
- regex: '(?:x86_64-apple-)?Darwin(?:/|; )?10\.0\.0'
|
1243
1671
|
version: '10.6'
|
1244
|
-
- regex: '(?:x86_64-apple-)?Darwin(?:/|; )?9
|
1672
|
+
- regex: '(?:x86_64-apple-)?Darwin(?:/|; )?9\.8\.0'
|
1245
1673
|
version: '10.5.8'
|
1246
|
-
- regex: '(?:x86_64-apple-)?Darwin(?:/|; )?9
|
1674
|
+
- regex: '(?:x86_64-apple-)?Darwin(?:/|; )?9\.7\.1'
|
1247
1675
|
version: '10.5.7'
|
1248
|
-
- regex: '(?:x86_64-apple-)?Darwin(?:/|; )?9
|
1676
|
+
- regex: '(?:x86_64-apple-)?Darwin(?:/|; )?9\.6\.2'
|
1249
1677
|
version: '10.5.6'
|
1250
|
-
- regex: '(?:x86_64-apple-)?Darwin(?:/|; )?9
|
1678
|
+
- regex: '(?:x86_64-apple-)?Darwin(?:/|; )?9\.5\.[05]'
|
1251
1679
|
version: '10.5.5'
|
1252
1680
|
|
1253
1681
|
- regex: 'Macintosh;Mac OS X \((\d+[\.\d]+)\);'
|
@@ -1262,7 +1690,7 @@
|
|
1262
1690
|
name: 'Mac'
|
1263
1691
|
version: '$1'
|
1264
1692
|
|
1265
|
-
- regex: '(?:macOS[ /,]|Mac-)(\d+[\.\d]+)'
|
1693
|
+
- regex: '(?:macOS(?:\(Catalyst\))?[ /,]|Mac-)(\d+[\.\d]+)'
|
1266
1694
|
name: 'Mac'
|
1267
1695
|
version: '$1'
|
1268
1696
|
|
@@ -1270,23 +1698,13 @@
|
|
1270
1698
|
name: 'Mac'
|
1271
1699
|
version: '$1'
|
1272
1700
|
|
1273
|
-
- regex: '
|
1701
|
+
- regex: 'OSX/(\d+[\.\d]+)'
|
1274
1702
|
name: 'Mac'
|
1275
|
-
version: ''
|
1276
|
-
|
1277
|
-
##########
|
1278
|
-
# SeewoOS
|
1279
|
-
##########
|
1280
|
-
- regex: 'SeewoOS x86_64 (\d+[\.\d]+)'
|
1281
|
-
name: 'SeewoOS'
|
1282
1703
|
version: '$1'
|
1283
1704
|
|
1284
|
-
|
1285
|
-
|
1286
|
-
|
1287
|
-
- regex: 'CrOS [a-z0-9_]+ (\d+[\.\d]+)'
|
1288
|
-
name: 'Chrome OS'
|
1289
|
-
version: '$1'
|
1705
|
+
- regex: 'Darwin|Macintosh|Mac[ _]PowerPC|PPC|iMac|MacBook|.*macOS|AppleExchangeWebServices|com\.apple\.trustd|Sonos/.+\(MDCR_|WhatsApp/.*N$'
|
1706
|
+
name: 'Mac'
|
1707
|
+
version: ''
|
1290
1708
|
|
1291
1709
|
##########
|
1292
1710
|
# Fuchsia
|
@@ -1413,10 +1831,6 @@
|
|
1413
1831
|
name: 'Google TV'
|
1414
1832
|
version: '$1'
|
1415
1833
|
|
1416
|
-
- regex: 'AppleTV(?:/?(\d+[\.\d]+))?'
|
1417
|
-
name: 'tvOS'
|
1418
|
-
version: '$1'
|
1419
|
-
|
1420
1834
|
- regex: 'WebTV/(\d+[\.\d]+)'
|
1421
1835
|
name: 'WebTV'
|
1422
1836
|
version: '$1'
|
@@ -1436,6 +1850,11 @@
|
|
1436
1850
|
name: 'HP-UX'
|
1437
1851
|
version: '$1'
|
1438
1852
|
|
1853
|
+
# ElectroBSD (https://www.fabiankeil.de/gehacktes/electrobsd/)
|
1854
|
+
- regex: 'ElectroBSD(?:[/ ]?(\d+[\.\d]+))?'
|
1855
|
+
name: 'ElectroBSD'
|
1856
|
+
version: '$1'
|
1857
|
+
|
1439
1858
|
- regex: 'FreeBSD(?:[/ ]?(\d+[\.\d]+))?'
|
1440
1859
|
name: 'FreeBSD'
|
1441
1860
|
version: '$1'
|
@@ -1497,6 +1916,10 @@
|
|
1497
1916
|
##########
|
1498
1917
|
# IBM
|
1499
1918
|
##########
|
1919
|
+
- regex: 'OS/2; Warp (\d+[\.\d]+)'
|
1920
|
+
name: 'OS/2'
|
1921
|
+
version: '$1'
|
1922
|
+
|
1500
1923
|
- regex: 'OS/2'
|
1501
1924
|
name: 'OS/2'
|
1502
1925
|
version: ''
|
@@ -1508,13 +1931,13 @@
|
|
1508
1931
|
name: 'GNU/Linux'
|
1509
1932
|
version: '$1'
|
1510
1933
|
|
1511
|
-
- regex: 'Linux
|
1934
|
+
- regex: 'Linux[^a-z]|Cinnamon/(?:\d+[\.\d]+)|.+(?:pc|unknown)-linux-gnu|X11'
|
1512
1935
|
name: 'GNU/Linux'
|
1513
1936
|
version: ''
|
1514
1937
|
|
1515
1938
|
##########
|
1516
1939
|
# Java ME (Java Platform, Micro Edition)
|
1517
1940
|
##########
|
1518
|
-
- regex: 'Java ME|(J2ME|Profile)/MIDP|MIDP-(?:\d+[\.\d]+)/CLDC|Configuration/CLDC|Java; U; MIDP|MMP/\d
|
1941
|
+
- regex: 'Java ME|(J2ME|Profile)/MIDP|MIDP-(?:\d+[\.\d]+)/CLDC|Configuration/CLDC|Java; U; MIDP|MMP/\d\.\d'
|
1519
1942
|
name: 'Java ME'
|
1520
1943
|
version: ''
|