@hyperwatch/useragent 3.7.4 → 3.9.0

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.
@@ -13,31 +13,31 @@
13
13
  "os_v1_replacement": "2011"
14
14
  },
15
15
  {
16
- "regex": "HbbTV/\\d+\\.\\d+\\.\\d+ \\(;(Samsung);SmartTV([0-9]{4});.*FXPDEUC",
16
+ "regex": "HbbTV/\\d+\\.\\d+\\.\\d+ \\(;(Samsung);SmartTV([0-9]{4});.{0,200}FXPDEUC",
17
17
  "os_v2_replacement": "UE40F7000"
18
18
  },
19
19
  {
20
- "regex": "HbbTV/\\d+\\.\\d+\\.\\d+ \\(;(Samsung);SmartTV([0-9]{4});.*MST12DEUC",
20
+ "regex": "HbbTV/\\d+\\.\\d+\\.\\d+ \\(;(Samsung);SmartTV([0-9]{4});.{0,200}MST12DEUC",
21
21
  "os_v2_replacement": "UE32F4500"
22
22
  },
23
23
  {
24
- "regex": "HbbTV/1\\.1\\.1 \\(; (Philips);.*NETTV/4",
24
+ "regex": "HbbTV/1\\.1\\.1 \\(; (Philips);.{0,200}NETTV/4",
25
25
  "os_v1_replacement": "2013"
26
26
  },
27
27
  {
28
- "regex": "HbbTV/1\\.1\\.1 \\(; (Philips);.*NETTV/3",
28
+ "regex": "HbbTV/1\\.1\\.1 \\(; (Philips);.{0,200}NETTV/3",
29
29
  "os_v1_replacement": "2012"
30
30
  },
31
31
  {
32
- "regex": "HbbTV/1\\.1\\.1 \\(; (Philips);.*NETTV/2",
32
+ "regex": "HbbTV/1\\.1\\.1 \\(; (Philips);.{0,200}NETTV/2",
33
33
  "os_v1_replacement": "2011"
34
34
  },
35
35
  {
36
- "regex": "HbbTV/\\d+\\.\\d+\\.\\d+.*(firetv)-firefox-plugin (\\d+).(\\d+).(\\d+)",
36
+ "regex": "HbbTV/\\d+\\.\\d+\\.\\d+.{0,100}(firetv)-firefox-plugin (\\d+).(\\d+).(\\d+)",
37
37
  "os_replacement": "FireHbbTV"
38
38
  },
39
39
  {
40
- "regex": "HbbTV/\\d+\\.\\d+\\.\\d+ \\(.*; ?([a-zA-Z]+) ?;.*(201[1-9]).*\\)"
40
+ "regex": "HbbTV/\\d+\\.\\d+\\.\\d+ \\(.{0,30}; ?([a-zA-Z]+) ?;.{0,30}(201[1-9]).{0,30}\\)"
41
41
  },
42
42
  {
43
43
  "regex": "AspiegelBot",
@@ -47,11 +47,11 @@
47
47
  "regex": "(Windows Phone) (?:OS[ /])?(\\d+)\\.(\\d+)"
48
48
  },
49
49
  {
50
- "regex": "(CPU[ +]OS|iPhone[ +]OS|CPU[ +]iPhone)[ +]+(\\d+)[_\\.](\\d+)(?:[_\\.](\\d+)|).*Outlook-iOS-Android",
50
+ "regex": "(CPU[ +]OS|iPhone[ +]OS|CPU[ +]iPhone)[ +]+(\\d+)[_\\.](\\d+)(?:[_\\.](\\d+)|).{0,100}Outlook-iOS-Android",
51
51
  "os_replacement": "iOS"
52
52
  },
53
53
  {
54
- "regex": "ArcGIS\\.?(iOS|Android)-\\d+\\.\\d+(?:\\.\\d+|)(?:[^\\/]+|)\\/(\\d+)(?:\\.(\\d+)(?:\\.(\\d+)|)|)"
54
+ "regex": "ArcGIS\\.?(iOS|Android)-\\d+\\.\\d+(?:\\.\\d+|)(?:[^\\/]{1,50}|)\\/(\\d+)(?:\\.(\\d+)(?:\\.(\\d+)|)|)"
55
55
  },
56
56
  {
57
57
  "regex": "ArcGISRuntime-(?:Android|iOS)\\/\\d+\\.\\d+(?:\\.\\d+|) \\((Android|iOS) (\\d+)(?:\\.(\\d+)(?:\\.(\\d+)|)|);"
@@ -87,19 +87,22 @@
87
87
  "regex": "(Android) (\\d+);"
88
88
  },
89
89
  {
90
- "regex": "^UCWEB.*; (Adr) (\\d+)\\.(\\d+)(?:[.\\-]([a-z0-9]+)|);",
90
+ "regex": "(Android): (\\d+)(?:\\.(\\d+)(?:\\.(\\d+)|)|);"
91
+ },
92
+ {
93
+ "regex": "^UCWEB.{0,200}; (Adr) (\\d+)\\.(\\d+)(?:[.\\-]([a-z0-9]{1,100})|);",
91
94
  "os_replacement": "Android"
92
95
  },
93
96
  {
94
- "regex": "^UCWEB.*; (iPad|iPh|iPd) OS (\\d+)_(\\d+)(?:_(\\d+)|);",
97
+ "regex": "^UCWEB.{0,200}; (iPad|iPh|iPd) OS (\\d+)_(\\d+)(?:_(\\d+)|);",
95
98
  "os_replacement": "iOS"
96
99
  },
97
100
  {
98
- "regex": "^UCWEB.*; (wds) (\\d+)\\.(\\d+)(?:\\.(\\d+)|);",
101
+ "regex": "^UCWEB.{0,200}; (wds) (\\d+)\\.(\\d+)(?:\\.(\\d+)|);",
99
102
  "os_replacement": "Windows Phone"
100
103
  },
101
104
  {
102
- "regex": "^(JUC).*; ?U; ?(?:Android|)(\\d+)\\.(\\d+)(?:[\\.\\-]([a-z0-9]+)|)",
105
+ "regex": "^(JUC).{0,200}; ?U; ?(?:Android|)(\\d+)\\.(\\d+)(?:[\\.\\-]([a-z0-9]{1,100})|)",
103
106
  "os_replacement": "Android"
104
107
  },
105
108
  {
@@ -111,7 +114,7 @@
111
114
  "os_replacement": "Android"
112
115
  },
113
116
  {
114
- "regex": "(x86_64|aarch64)\\ (\\d+)\\.(\\d+)\\.(\\d+).*Chrome.*(?:CitrixChromeApp)$",
117
+ "regex": "(x86_64|aarch64)\\ (\\d+)\\.(\\d+)\\.(\\d+).{0,100}Chrome.{0,100}(?:CitrixChromeApp)$",
115
118
  "os_replacement": "Chrome OS"
116
119
  },
117
120
  {
@@ -210,7 +213,7 @@
210
213
  "os_v1_replacement": "95"
211
214
  },
212
215
  {
213
- "regex": "^Box.*Windows/([\\d.]+);",
216
+ "regex": "^Box.{0,200}Windows/([\\d.]+);",
214
217
  "os_replacement": "Windows",
215
218
  "os_v1_replacement": "$1"
216
219
  },
@@ -222,38 +225,38 @@
222
225
  "os_replacement": "Mac OS X"
223
226
  },
224
227
  {
225
- "regex": "\\w+\\s+Mac OS X\\s+\\w+\\s+(\\d+).(\\d+).(\\d+).*",
228
+ "regex": "Mac OS X\\s.{1,50}\\s(\\d+).(\\d+).(\\d+)",
226
229
  "os_replacement": "Mac OS X",
227
230
  "os_v1_replacement": "$1",
228
231
  "os_v2_replacement": "$2",
229
232
  "os_v3_replacement": "$3"
230
233
  },
231
234
  {
232
- "regex": " (Dar)(win)/(9).(\\d+).*\\((?:i386|x86_64|Power Macintosh)\\)",
235
+ "regex": " (Dar)(win)/(9).(\\d+).{0,100}\\((?:i386|x86_64|Power Macintosh)\\)",
233
236
  "os_replacement": "Mac OS X",
234
237
  "os_v1_replacement": "10",
235
238
  "os_v2_replacement": "5"
236
239
  },
237
240
  {
238
- "regex": " (Dar)(win)/(10).(\\d+).*\\((?:i386|x86_64)\\)",
241
+ "regex": " (Dar)(win)/(10).(\\d+).{0,100}\\((?:i386|x86_64)\\)",
239
242
  "os_replacement": "Mac OS X",
240
243
  "os_v1_replacement": "10",
241
244
  "os_v2_replacement": "6"
242
245
  },
243
246
  {
244
- "regex": " (Dar)(win)/(11).(\\d+).*\\((?:i386|x86_64)\\)",
247
+ "regex": " (Dar)(win)/(11).(\\d+).{0,100}\\((?:i386|x86_64)\\)",
245
248
  "os_replacement": "Mac OS X",
246
249
  "os_v1_replacement": "10",
247
250
  "os_v2_replacement": "7"
248
251
  },
249
252
  {
250
- "regex": " (Dar)(win)/(12).(\\d+).*\\((?:i386|x86_64)\\)",
253
+ "regex": " (Dar)(win)/(12).(\\d+).{0,100}\\((?:i386|x86_64)\\)",
251
254
  "os_replacement": "Mac OS X",
252
255
  "os_v1_replacement": "10",
253
256
  "os_v2_replacement": "8"
254
257
  },
255
258
  {
256
- "regex": " (Dar)(win)/(13).(\\d+).*\\((?:i386|x86_64)\\)",
259
+ "regex": " (Dar)(win)/(13).(\\d+).{0,100}\\((?:i386|x86_64)\\)",
257
260
  "os_replacement": "Mac OS X",
258
261
  "os_v1_replacement": "10",
259
262
  "os_v2_replacement": "9"
@@ -266,7 +269,7 @@
266
269
  "regex": "(?:PPC|Intel) (Mac OS X)"
267
270
  },
268
271
  {
269
- "regex": "^Box.*;(Darwin)/(10)\\.(1\\d)(?:\\.(\\d+)|)",
272
+ "regex": "^Box.{0,200};(Darwin)/(10)\\.(1\\d)(?:\\.(\\d+)|)",
270
273
  "os_replacement": "Mac OS X"
271
274
  },
272
275
  {
@@ -274,7 +277,7 @@
274
277
  "os_replacement": "ATV OS X"
275
278
  },
276
279
  {
277
- "regex": "(CPU[ +]OS|iPhone[ +]OS|CPU[ +]iPhone|CPU IPhone OS)[ +]+(\\d+)[_\\.](\\d+)(?:[_\\.](\\d+)|)",
280
+ "regex": "(CPU[ +]OS|iPhone[ +]OS|CPU[ +]iPhone|CPU IPhone OS|CPU iPad OS)[ +]+(\\d+)[_\\.](\\d+)(?:[_\\.](\\d+)|)",
278
281
  "os_replacement": "iOS"
279
282
  },
280
283
  {
@@ -282,15 +285,15 @@
282
285
  "os_replacement": "iOS"
283
286
  },
284
287
  {
285
- "regex": "(iPhone|iPad|iPod).*Mac OS X.*Version/(\\d+)\\.(\\d+)",
288
+ "regex": "(iPhone|iPad|iPod).{0,100}Mac OS X.{0,100}Version/(\\d+)\\.(\\d+)",
286
289
  "os_replacement": "iOS"
287
290
  },
288
291
  {
289
- "regex": "(CFNetwork)/(5)48\\.0\\.3.* Darwin/11\\.0\\.0",
292
+ "regex": "(CFNetwork)/(5)48\\.0\\.3.{0,100} Darwin/11\\.0\\.0",
290
293
  "os_replacement": "iOS"
291
294
  },
292
295
  {
293
- "regex": "(CFNetwork)/(5)48\\.(0)\\.4.* Darwin/(1)1\\.0\\.0",
296
+ "regex": "(CFNetwork)/(5)48\\.(0)\\.4.{0,100} Darwin/(1)1\\.0\\.0",
294
297
  "os_replacement": "iOS"
295
298
  },
296
299
  {
@@ -351,21 +354,21 @@
351
354
  "os_v2_replacement": "11"
352
355
  },
353
356
  {
354
- "regex": "CFNetwork/7.* Darwin/15\\.4\\.\\d+",
357
+ "regex": "CFNetwork/7.{0,100} Darwin/15\\.4\\.\\d+",
355
358
  "os_replacement": "iOS",
356
359
  "os_v1_replacement": "9",
357
360
  "os_v2_replacement": "3",
358
361
  "os_v3_replacement": "1"
359
362
  },
360
363
  {
361
- "regex": "CFNetwork/7.* Darwin/15\\.5\\.\\d+",
364
+ "regex": "CFNetwork/7.{0,100} Darwin/15\\.5\\.\\d+",
362
365
  "os_replacement": "iOS",
363
366
  "os_v1_replacement": "9",
364
367
  "os_v2_replacement": "3",
365
368
  "os_v3_replacement": "2"
366
369
  },
367
370
  {
368
- "regex": "CFNetwork/7.* Darwin/15\\.6\\.\\d+",
371
+ "regex": "CFNetwork/7.{0,100} Darwin/15\\.6\\.\\d+",
369
372
  "os_replacement": "iOS",
370
373
  "os_v1_replacement": "9",
371
374
  "os_v2_replacement": "3",
@@ -389,147 +392,295 @@
389
392
  "os_v1_replacement": "10"
390
393
  },
391
394
  {
392
- "regex": "CFNetwork/.* Darwin/17\\.\\d+.*\\(x86_64\\)",
395
+ "regex": "CFNetwork/.{0,100} Darwin/17\\.\\d+.{0,100}\\(x86_64\\)",
393
396
  "os_replacement": "Mac OS X",
394
397
  "os_v1_replacement": "10",
395
398
  "os_v2_replacement": "13"
396
399
  },
397
400
  {
398
- "regex": "CFNetwork/.* Darwin/16\\.\\d+.*\\(x86_64\\)",
401
+ "regex": "CFNetwork/.{0,100} Darwin/16\\.\\d+.{0,100}\\(x86_64\\)",
399
402
  "os_replacement": "Mac OS X",
400
403
  "os_v1_replacement": "10",
401
404
  "os_v2_replacement": "12"
402
405
  },
403
406
  {
404
- "regex": "CFNetwork/8.* Darwin/15\\.\\d+.*\\(x86_64\\)",
407
+ "regex": "CFNetwork/8.{0,100} Darwin/15\\.\\d+.{0,100}\\(x86_64\\)",
405
408
  "os_replacement": "Mac OS X",
406
409
  "os_v1_replacement": "10",
407
410
  "os_v2_replacement": "11"
408
411
  },
409
412
  {
410
- "regex": "CFNetwork/.* Darwin/(9)\\.\\d+",
413
+ "regex": "CFNetwork/.{0,100} Darwin/(9)\\.\\d+",
411
414
  "os_replacement": "iOS",
412
415
  "os_v1_replacement": "1"
413
416
  },
414
417
  {
415
- "regex": "CFNetwork/.* Darwin/(10)\\.\\d+",
418
+ "regex": "CFNetwork/.{0,100} Darwin/(10)\\.\\d+",
416
419
  "os_replacement": "iOS",
417
420
  "os_v1_replacement": "4"
418
421
  },
419
422
  {
420
- "regex": "CFNetwork/.* Darwin/(11)\\.\\d+",
423
+ "regex": "CFNetwork/.{0,100} Darwin/(11)\\.\\d+",
421
424
  "os_replacement": "iOS",
422
425
  "os_v1_replacement": "5"
423
426
  },
424
427
  {
425
- "regex": "CFNetwork/.* Darwin/(13)\\.\\d+",
428
+ "regex": "CFNetwork/.{0,100} Darwin/(13)\\.\\d+",
426
429
  "os_replacement": "iOS",
427
430
  "os_v1_replacement": "6"
428
431
  },
429
432
  {
430
- "regex": "CFNetwork/6.* Darwin/(14)\\.\\d+",
433
+ "regex": "CFNetwork/6.{0,100} Darwin/(14)\\.\\d+",
431
434
  "os_replacement": "iOS",
432
435
  "os_v1_replacement": "7"
433
436
  },
434
437
  {
435
- "regex": "CFNetwork/7.* Darwin/(14)\\.\\d+",
438
+ "regex": "CFNetwork/7.{0,100} Darwin/(14)\\.\\d+",
436
439
  "os_replacement": "iOS",
437
440
  "os_v1_replacement": "8",
438
441
  "os_v2_replacement": "0"
439
442
  },
440
443
  {
441
- "regex": "CFNetwork/7.* Darwin/(15)\\.\\d+",
444
+ "regex": "CFNetwork/7.{0,100} Darwin/(15)\\.\\d+",
442
445
  "os_replacement": "iOS",
443
446
  "os_v1_replacement": "9",
444
447
  "os_v2_replacement": "0"
445
448
  },
446
449
  {
447
- "regex": "CFNetwork/8.* Darwin/16\\.5\\.\\d+",
450
+ "regex": "CFNetwork/8.{0,100} Darwin/16\\.5\\.\\d+",
448
451
  "os_replacement": "iOS",
449
452
  "os_v1_replacement": "10",
450
453
  "os_v2_replacement": "3"
451
454
  },
452
455
  {
453
- "regex": "CFNetwork/8.* Darwin/16\\.6\\.\\d+",
456
+ "regex": "CFNetwork/8.{0,100} Darwin/16\\.6\\.\\d+",
454
457
  "os_replacement": "iOS",
455
458
  "os_v1_replacement": "10",
456
459
  "os_v2_replacement": "3",
457
460
  "os_v3_replacement": "2"
458
461
  },
459
462
  {
460
- "regex": "CFNetwork/8.* Darwin/16\\.7\\.\\d+",
463
+ "regex": "CFNetwork/8.{0,100} Darwin/16\\.7\\.\\d+",
461
464
  "os_replacement": "iOS",
462
465
  "os_v1_replacement": "10",
463
466
  "os_v2_replacement": "3",
464
467
  "os_v3_replacement": "3"
465
468
  },
466
469
  {
467
- "regex": "CFNetwork/8.* Darwin/(16)\\.\\d+",
470
+ "regex": "CFNetwork/8.{0,100} Darwin/(16)\\.\\d+",
468
471
  "os_replacement": "iOS",
469
472
  "os_v1_replacement": "10"
470
473
  },
471
474
  {
472
- "regex": "CFNetwork/8.* Darwin/17\\.0\\.\\d+",
475
+ "regex": "CFNetwork/8.{0,100} Darwin/17\\.0\\.\\d+",
473
476
  "os_replacement": "iOS",
474
477
  "os_v1_replacement": "11",
475
478
  "os_v2_replacement": "0"
476
479
  },
477
480
  {
478
- "regex": "CFNetwork/8.* Darwin/17\\.2\\.\\d+",
481
+ "regex": "CFNetwork/8.{0,100} Darwin/17\\.2\\.\\d+",
479
482
  "os_replacement": "iOS",
480
483
  "os_v1_replacement": "11",
481
484
  "os_v2_replacement": "1"
482
485
  },
483
486
  {
484
- "regex": "CFNetwork/8.* Darwin/17\\.3\\.\\d+",
487
+ "regex": "CFNetwork/8.{0,100} Darwin/17\\.3\\.\\d+",
485
488
  "os_replacement": "iOS",
486
489
  "os_v1_replacement": "11",
487
490
  "os_v2_replacement": "2"
488
491
  },
489
492
  {
490
- "regex": "CFNetwork/8.* Darwin/17\\.4\\.\\d+",
493
+ "regex": "CFNetwork/8.{0,100} Darwin/17\\.4\\.\\d+",
491
494
  "os_replacement": "iOS",
492
495
  "os_v1_replacement": "11",
493
496
  "os_v2_replacement": "2",
494
497
  "os_v3_replacement": "6"
495
498
  },
496
499
  {
497
- "regex": "CFNetwork/8.* Darwin/17\\.5\\.\\d+",
500
+ "regex": "CFNetwork/8.{0,100} Darwin/17\\.5\\.\\d+",
498
501
  "os_replacement": "iOS",
499
502
  "os_v1_replacement": "11",
500
503
  "os_v2_replacement": "3"
501
504
  },
502
505
  {
503
- "regex": "CFNetwork/9.* Darwin/17\\.6\\.\\d+",
506
+ "regex": "CFNetwork/9.{0,100} Darwin/17\\.6\\.\\d+",
504
507
  "os_replacement": "iOS",
505
508
  "os_v1_replacement": "11",
506
509
  "os_v2_replacement": "4"
507
510
  },
508
511
  {
509
- "regex": "CFNetwork/9.* Darwin/17\\.7\\.\\d+",
512
+ "regex": "CFNetwork/9.{0,100} Darwin/17\\.7\\.\\d+",
510
513
  "os_replacement": "iOS",
511
514
  "os_v1_replacement": "11",
512
515
  "os_v2_replacement": "4",
513
516
  "os_v3_replacement": "1"
514
517
  },
515
518
  {
516
- "regex": "CFNetwork/8.* Darwin/(17)\\.\\d+",
519
+ "regex": "CFNetwork/8.{0,100} Darwin/(17)\\.\\d+",
517
520
  "os_replacement": "iOS",
518
521
  "os_v1_replacement": "11"
519
522
  },
520
523
  {
521
- "regex": "CFNetwork/9.* Darwin/18\\.0\\.\\d+",
524
+ "regex": "CFNetwork/9.{0,100} Darwin/18\\.0\\.\\d+",
522
525
  "os_replacement": "iOS",
523
526
  "os_v1_replacement": "12",
524
527
  "os_v2_replacement": "0"
525
528
  },
526
529
  {
527
- "regex": "CFNetwork/9.* Darwin/(18)\\.\\d+",
530
+ "regex": "CFNetwork/9.{0,100} Darwin/18\\.2\\.\\d+",
531
+ "os_replacement": "iOS",
532
+ "os_v1_replacement": "12",
533
+ "os_v2_replacement": "1"
534
+ },
535
+ {
536
+ "regex": "CFNetwork/9.{0,100} Darwin/18\\.5\\.\\d+",
537
+ "os_replacement": "iOS",
538
+ "os_v1_replacement": "12",
539
+ "os_v2_replacement": "2"
540
+ },
541
+ {
542
+ "regex": "CFNetwork/9.{0,100} Darwin/18\\.6\\.\\d+",
543
+ "os_replacement": "iOS",
544
+ "os_v1_replacement": "12",
545
+ "os_v2_replacement": "3"
546
+ },
547
+ {
548
+ "regex": "CFNetwork/9.{0,100} Darwin/18\\.7\\.\\d+",
549
+ "os_replacement": "iOS",
550
+ "os_v1_replacement": "12",
551
+ "os_v2_replacement": "4"
552
+ },
553
+ {
554
+ "regex": "CFNetwork/9.{0,100} Darwin/(18)\\.\\d+",
528
555
  "os_replacement": "iOS",
529
556
  "os_v1_replacement": "12"
530
557
  },
531
558
  {
532
- "regex": "CFNetwork/.* Darwin/",
559
+ "regex": "CFNetwork/11.{0,100} Darwin/19\\.2\\.\\d+",
560
+ "os_replacement": "iOS",
561
+ "os_v1_replacement": "13",
562
+ "os_v2_replacement": "3"
563
+ },
564
+ {
565
+ "regex": "CFNetwork/11.{0,100} Darwin/19\\.3\\.\\d+",
566
+ "os_replacement": "iOS",
567
+ "os_v1_replacement": "13",
568
+ "os_v2_replacement": "3",
569
+ "os_v3_replacement": "1"
570
+ },
571
+ {
572
+ "regex": "CFNetwork/11.{0,100} Darwin/19\\.4\\.\\d+",
573
+ "os_replacement": "iOS",
574
+ "os_v1_replacement": "13",
575
+ "os_v2_replacement": "4"
576
+ },
577
+ {
578
+ "regex": "CFNetwork/11.{0,100} Darwin/19\\.5\\.\\d+",
579
+ "os_replacement": "iOS",
580
+ "os_v1_replacement": "13",
581
+ "os_v2_replacement": "5"
582
+ },
583
+ {
584
+ "regex": "CFNetwork/11.{0,100} Darwin/19\\.6\\.\\d+",
585
+ "os_replacement": "iOS",
586
+ "os_v1_replacement": "13",
587
+ "os_v2_replacement": "6"
588
+ },
589
+ {
590
+ "regex": "CFNetwork/1[01].{0,100} Darwin/19\\.\\d+",
591
+ "os_replacement": "iOS",
592
+ "os_v1_replacement": "13"
593
+ },
594
+ {
595
+ "regex": "CFNetwork/12.{0,100} Darwin/20\\.1\\.\\d+",
596
+ "os_replacement": "iOS",
597
+ "os_v1_replacement": "14",
598
+ "os_v2_replacement": "2"
599
+ },
600
+ {
601
+ "regex": "CFNetwork/12.{0,100} Darwin/20\\.2\\.\\d+",
602
+ "os_replacement": "iOS",
603
+ "os_v1_replacement": "14",
604
+ "os_v2_replacement": "3"
605
+ },
606
+ {
607
+ "regex": "CFNetwork/12.{0,100} Darwin/20\\.3\\.\\d+",
608
+ "os_replacement": "iOS",
609
+ "os_v1_replacement": "14",
610
+ "os_v2_replacement": "4"
611
+ },
612
+ {
613
+ "regex": "CFNetwork/12.{0,100} Darwin/20\\.4\\.\\d+",
614
+ "os_replacement": "iOS",
615
+ "os_v1_replacement": "14",
616
+ "os_v2_replacement": "5"
617
+ },
618
+ {
619
+ "regex": "CFNetwork/12.{0,100} Darwin/20\\.5\\.\\d+",
620
+ "os_replacement": "iOS",
621
+ "os_v1_replacement": "14",
622
+ "os_v2_replacement": "6"
623
+ },
624
+ {
625
+ "regex": "CFNetwork/12.{0,100} Darwin/20\\.6\\.\\d+",
626
+ "os_replacement": "iOS",
627
+ "os_v1_replacement": "14",
628
+ "os_v2_replacement": "8"
629
+ },
630
+ {
631
+ "regex": "CFNetwork/.{0,100} Darwin/(20)\\.\\d+",
632
+ "os_replacement": "iOS",
633
+ "os_v1_replacement": "14"
634
+ },
635
+ {
636
+ "regex": "CFNetwork/13.{0,100} Darwin/21\\.0\\.\\d+",
637
+ "os_replacement": "iOS",
638
+ "os_v1_replacement": "15",
639
+ "os_v2_replacement": "0"
640
+ },
641
+ {
642
+ "regex": "CFNetwork/13.{0,100} Darwin/21\\.1\\.\\d+",
643
+ "os_replacement": "iOS",
644
+ "os_v1_replacement": "15",
645
+ "os_v2_replacement": "1"
646
+ },
647
+ {
648
+ "regex": "CFNetwork/13.{0,100} Darwin/21\\.2\\.\\d+",
649
+ "os_replacement": "iOS",
650
+ "os_v1_replacement": "15",
651
+ "os_v2_replacement": "2"
652
+ },
653
+ {
654
+ "regex": "CFNetwork/13.{0,100} Darwin/21\\.3\\.\\d+",
655
+ "os_replacement": "iOS",
656
+ "os_v1_replacement": "15",
657
+ "os_v2_replacement": "3"
658
+ },
659
+ {
660
+ "regex": "CFNetwork/13.{0,100} Darwin/21\\.4\\.\\d+",
661
+ "os_replacement": "iOS",
662
+ "os_v1_replacement": "15",
663
+ "os_v2_replacement": "4"
664
+ },
665
+ {
666
+ "regex": "CFNetwork/13.{0,100} Darwin/21\\.5\\.\\d+",
667
+ "os_replacement": "iOS",
668
+ "os_v1_replacement": "15",
669
+ "os_v2_replacement": "5"
670
+ },
671
+ {
672
+ "regex": "CFNetwork/13.{0,100} Darwin/21\\.6\\.\\d+",
673
+ "os_replacement": "iOS",
674
+ "os_v1_replacement": "15",
675
+ "os_v2_replacement": "6"
676
+ },
677
+ {
678
+ "regex": "CFNetwork/.{0,100} Darwin/(21)\\.\\d+",
679
+ "os_replacement": "iOS",
680
+ "os_v1_replacement": "15"
681
+ },
682
+ {
683
+ "regex": "CFNetwork/.{0,100} Darwin/",
533
684
  "os_replacement": "iOS"
534
685
  },
535
686
  {
@@ -540,7 +691,7 @@
540
691
  "regex": "\\((iOS);"
541
692
  },
542
693
  {
543
- "regex": "(watchOS)/(\\d+)\\.(\\d+)(?:\\.(\\d+)|)",
694
+ "regex": "(watchOS)[/ ](\\d+)\\.(\\d+)(?:\\.(\\d+)|)",
544
695
  "os_replacement": "WatchOS"
545
696
  },
546
697
  {
@@ -573,11 +724,11 @@
573
724
  "os_replacement": "Symbian OS"
574
725
  },
575
726
  {
576
- "regex": "(Symbian/3).+NokiaBrowser/7\\.3",
727
+ "regex": "(Symbian/3).{1,200}NokiaBrowser/7\\.3",
577
728
  "os_replacement": "Symbian^3 Anna"
578
729
  },
579
730
  {
580
- "regex": "(Symbian/3).+NokiaBrowser/7\\.4",
731
+ "regex": "(Symbian/3).{1,200}NokiaBrowser/7\\.4",
581
732
  "os_replacement": "Symbian^3 Belle"
582
733
  },
583
734
  {
@@ -604,7 +755,7 @@
604
755
  "os_replacement": "Nokia Series 30 Plus"
605
756
  },
606
757
  {
607
- "regex": "(BB10);.+Version/(\\d+)\\.(\\d+)\\.(\\d+)",
758
+ "regex": "(BB10);.{1,200}Version/(\\d+)\\.(\\d+)\\.(\\d+)",
608
759
  "os_replacement": "BlackBerry OS"
609
760
  },
610
761
  {
@@ -612,7 +763,7 @@
612
763
  "os_replacement": "BlackBerry OS"
613
764
  },
614
765
  {
615
- "regex": "(Black[Bb]erry).+Version/(\\d+)\\.(\\d+)\\.(\\d+)(?:\\.(\\d+)|)",
766
+ "regex": "(Black[Bb]erry).{1,200}Version/(\\d+)\\.(\\d+)\\.(\\d+)(?:\\.(\\d+)|)",
616
767
  "os_replacement": "BlackBerry OS"
617
768
  },
618
769
  {
@@ -632,50 +783,50 @@
632
783
  "os_replacement": "KaiOS"
633
784
  },
634
785
  {
635
- "regex": "\\((?:Mobile|Tablet);.+Gecko/18.0 Firefox/\\d+\\.\\d+",
786
+ "regex": "\\((?:Mobile|Tablet);.{1,200}Gecko/18.0 Firefox/\\d+\\.\\d+",
636
787
  "os_replacement": "Firefox OS",
637
788
  "os_v1_replacement": "1",
638
789
  "os_v2_replacement": "0",
639
790
  "os_v3_replacement": "1"
640
791
  },
641
792
  {
642
- "regex": "\\((?:Mobile|Tablet);.+Gecko/18.1 Firefox/\\d+\\.\\d+",
793
+ "regex": "\\((?:Mobile|Tablet);.{1,200}Gecko/18.1 Firefox/\\d+\\.\\d+",
643
794
  "os_replacement": "Firefox OS",
644
795
  "os_v1_replacement": "1",
645
796
  "os_v2_replacement": "1"
646
797
  },
647
798
  {
648
- "regex": "\\((?:Mobile|Tablet);.+Gecko/26.0 Firefox/\\d+\\.\\d+",
799
+ "regex": "\\((?:Mobile|Tablet);.{1,200}Gecko/26.0 Firefox/\\d+\\.\\d+",
649
800
  "os_replacement": "Firefox OS",
650
801
  "os_v1_replacement": "1",
651
802
  "os_v2_replacement": "2"
652
803
  },
653
804
  {
654
- "regex": "\\((?:Mobile|Tablet);.+Gecko/28.0 Firefox/\\d+\\.\\d+",
805
+ "regex": "\\((?:Mobile|Tablet);.{1,200}Gecko/28.0 Firefox/\\d+\\.\\d+",
655
806
  "os_replacement": "Firefox OS",
656
807
  "os_v1_replacement": "1",
657
808
  "os_v2_replacement": "3"
658
809
  },
659
810
  {
660
- "regex": "\\((?:Mobile|Tablet);.+Gecko/30.0 Firefox/\\d+\\.\\d+",
811
+ "regex": "\\((?:Mobile|Tablet);.{1,200}Gecko/30.0 Firefox/\\d+\\.\\d+",
661
812
  "os_replacement": "Firefox OS",
662
813
  "os_v1_replacement": "1",
663
814
  "os_v2_replacement": "4"
664
815
  },
665
816
  {
666
- "regex": "\\((?:Mobile|Tablet);.+Gecko/32.0 Firefox/\\d+\\.\\d+",
817
+ "regex": "\\((?:Mobile|Tablet);.{1,200}Gecko/32.0 Firefox/\\d+\\.\\d+",
667
818
  "os_replacement": "Firefox OS",
668
819
  "os_v1_replacement": "2",
669
820
  "os_v2_replacement": "0"
670
821
  },
671
822
  {
672
- "regex": "\\((?:Mobile|Tablet);.+Gecko/34.0 Firefox/\\d+\\.\\d+",
823
+ "regex": "\\((?:Mobile|Tablet);.{1,200}Gecko/34.0 Firefox/\\d+\\.\\d+",
673
824
  "os_replacement": "Firefox OS",
674
825
  "os_v1_replacement": "2",
675
826
  "os_v2_replacement": "1"
676
827
  },
677
828
  {
678
- "regex": "\\((?:Mobile|Tablet);.+Firefox/\\d+\\.\\d+",
829
+ "regex": "\\((?:Mobile|Tablet);.{1,200}Firefox/\\d+\\.\\d+",
679
830
  "os_replacement": "Firefox OS"
680
831
  },
681
832
  {
@@ -713,7 +864,7 @@
713
864
  "regex": "(Fedora|Red Hat|PCLinuxOS|Puppy|Ubuntu|Kindle|Bada|Sailfish|Lubuntu|BackTrack|Slackware|(?:Free|Open|Net|\\b)BSD)[/ ](\\d+)\\.(\\d+)(?:\\.(\\d+)|)(?:\\.(\\d+)|)"
714
865
  },
715
866
  {
716
- "regex": "(Linux)[ /](\\d+)\\.(\\d+)(?:\\.(\\d+)|).*gentoo",
867
+ "regex": "(Linux)[ /](\\d+)\\.(\\d+)(?:\\.(\\d+)|).{0,100}gentoo",
717
868
  "os_replacement": "Gentoo"
718
869
  },
719
870
  {
@@ -723,7 +874,7 @@
723
874
  "regex": "(Windows|Android|WeTab|Maemo|Web0S)"
724
875
  },
725
876
  {
726
- "regex": "(Ubuntu|Kubuntu|Arch Linux|CentOS|Slackware|Gentoo|openSUSE|SUSE|Red Hat|Fedora|PCLinuxOS|Mageia|(?:Free|Open|Net|\\b)BSD)"
877
+ "regex": "(Ubuntu|Kubuntu|Arch Linux|CentOS|Slackware|Gentoo|openSUSE|SUSE|Red Hat|Fedora|PCLinuxOS|Mageia|SerenityOS|(?:Free|Open|Net|\\b)BSD)"
727
878
  },
728
879
  {
729
880
  "regex": "(Linux)(?:[ /](\\d+)\\.(\\d+)(?:\\.(\\d+)|)|)"