All Downloads are FREE. Search and download functionalities are using the official Maven repository.

UserAgents.GoogleChromeFrozen.yaml Maven / Gradle / Ivy

Go to download

A parsing an analyzing library to get information from a useragent string.

There is a newer version: 7.29.0
Show newest version
#
# Yet Another UserAgent Analyzer
# Copyright (C) 2013-2024 Niels Basjes
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# https://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an AS IS BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
#

config:

# Chrome is working on freezing the User Agent string
# https://www.chromestatus.com/feature/5704553745874944
# https://wicg.github.io/ua-client-hints/
# https://github.com/WICG/ua-client-hints

# This commit shows what it will probably look like
# https://chromium.googlesource.com/chromium/src.git/+/ac24e578a3694c8f4c6c35ee3b7a8d046d686e67%5E%21/

- test:
    input:
      user_agent_string: 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/75.0.3764.0 Safari/537.36'
    expected:
      DeviceClass                          : 'Desktop'
      DeviceName                           : 'Desktop'
      DeviceBrand                          : 'Unknown'
      DeviceCpu                            : 'Intel x86_64'
      DeviceCpuBits                        : '64'
      OperatingSystemClass                 : 'Desktop'
      OperatingSystemName                  : 'Windows NT'
      OperatingSystemVersion               : '10.0'
      OperatingSystemVersionMajor          : '10'
      OperatingSystemNameVersion           : 'Windows 10.0'
      OperatingSystemNameVersionMajor      : 'Windows 10'
      LayoutEngineClass                    : 'Browser'
      LayoutEngineName                     : 'Blink'
      LayoutEngineVersion                  : '75.0'
      LayoutEngineVersionMajor             : '75'
      LayoutEngineNameVersion              : 'Blink 75.0'
      LayoutEngineNameVersionMajor         : 'Blink 75'
      AgentClass                           : 'Browser'
      AgentName                            : 'Chrome'
      AgentVersion                         : '75.0.3764.0'
      AgentVersionMajor                    : '75'
      AgentNameVersion                     : 'Chrome 75.0.3764.0'
      AgentNameVersionMajor                : 'Chrome 75'


- test:
    input:
      user_agent_string: 'Mozilla/5.0 (Linux; Android 9; Unspecified Device) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/75.0.3764.0 Safari/537.36'
    expected:
      DeviceClass                          : 'Tablet'
      DeviceName                           : 'Android Mobile'
      DeviceBrand                          : 'Unknown'
      OperatingSystemClass                 : 'Mobile'
      OperatingSystemName                  : 'Android'
      OperatingSystemVersion               : '??'
      OperatingSystemVersionMajor          : '??'
      OperatingSystemNameVersion           : 'Android ??'
      OperatingSystemNameVersionMajor      : 'Android ??'
      LayoutEngineClass                    : 'Browser'
      LayoutEngineName                     : 'Blink'
      LayoutEngineVersion                  : '75.0'
      LayoutEngineVersionMajor             : '75'
      LayoutEngineNameVersion              : 'Blink 75.0'
      LayoutEngineNameVersionMajor         : 'Blink 75'
      AgentClass                           : 'Browser'
      AgentName                            : 'Chrome'
      AgentVersion                         : '75.0.3764.0'
      AgentVersionMajor                    : '75'
      AgentNameVersion                     : 'Chrome 75.0.3764.0'
      AgentNameVersionMajor                : 'Chrome 75'


- test:
    input:
      user_agent_string: 'Mozilla/5.0 (Linux; Android 9; Unspecified Device) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/75.0.3764.0 Mobile Safari/537.36'
    expected:
      DeviceClass                          : 'Phone'
      DeviceName                           : 'Android Mobile'
      DeviceBrand                          : 'Unknown'
      OperatingSystemClass                 : 'Mobile'
      OperatingSystemName                  : 'Android'
      OperatingSystemVersion               : '??'
      OperatingSystemVersionMajor          : '??'
      OperatingSystemNameVersion           : 'Android ??'
      OperatingSystemNameVersionMajor      : 'Android ??'
      LayoutEngineClass                    : 'Browser'
      LayoutEngineName                     : 'Blink'
      LayoutEngineVersion                  : '75.0'
      LayoutEngineVersionMajor             : '75'
      LayoutEngineNameVersion              : 'Blink 75.0'
      LayoutEngineNameVersionMajor         : 'Blink 75'
      AgentClass                           : 'Browser'
      AgentName                            : 'Chrome'
      AgentVersion                         : '75.0.3764.0'
      AgentVersionMajor                    : '75'
      AgentNameVersion                     : 'Chrome 75.0.3764.0'
      AgentNameVersionMajor                : 'Chrome 75'



# Starting with Chrome 83 a special feature can be enabled
#  chrome://flags/#freeze-user-agent   ( Edge has the same under edge://flags/#freeze-user-agent )
#  Freeze User-Agent request header
#    Set the User-Agent request header to a static string that conforms to
#    the current User-Agent string format but only reveals desktop vs Android
#    and if the 'mobile' flag is set
#    – Mac, Windows, Linux, Chrome OS, Android

# The actual code was found here:
# https://github.com/chromium/chromium/blob/master/content/public/common/user_agent.h#L17

# namespace frozen_user_agent_strings {
#
#   const char kDesktop[] =
#   "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, "
#   "like Gecko) Chrome/%s.0.0.0 Safari/537.36";
#   const char kAndroid[] =
#   "Mozilla/5.0 (Linux; Android 9; Unspecified Device) "
#   "AppleWebKit/537.36 (KHTML, like Gecko) Chrome/%s.0.0.0 "
#   "Safari/537.36";
#   const char kAndroidMobile[] =
#   "Mozilla/5.0 (Linux; Android 9; Unspecified Device) "
#   "AppleWebKit/537.36 (KHTML, like Gecko) Chrome/%s.0.0.0 Mobile "
#   "Safari/537.36";
#
# }  // namespace frozen_user_agent_strings

# The list of major Chrome versions where "Windows" in the frozen context really meant "Desktop".
# Based upon the Chromium sources and related tags
# https://github.com/chromium/chromium/blob/master/content/public/common/user_agent.h

# Introduced:
#  commit ac24e578a3694c8f4c6c35ee3b7a8d046d686e67
#  CommitDate: Tue Apr 30 19:47:02 2019 +0000
#     Add feature to freeze user agent string
#  $ git name-rev --tags --name-only ac24e578a3694c8f4c6c35ee3b7a8d046d686e67
#  76.0.3783.0~468

# Removed:
#  commit cf2393773c33440f01f45693944aa18c1510c2e7
#  CommitDate: Tue May 25 16:35:41 2021 +0000
#    Update frozen UA strings.
#  $ git name-rev --tags --name-only cf2393773c33440f01f45693944aa18c1510c2e7
#  93.0.4523.0~207

- set:
    name: 'ChromeFrozenMajorVersionsToWindows'
    values:
    - '76'
    - '77'
    - '78'
    - '79'
    - '80'
    - '81'
    - '82'
    - '83'
    - '84'
    - '85'
    - '86'
    - '87'
    - '88'
    - '89'
    - '90'
    - '91'
    - '92'
    # The first few tags of Chrome 93 still had the bad one, but most did not.
    # Between the first '93' and the fix was 1 day difference.

# Desktop Chrome/Edge: If the frozen agent is detected the Operating system is nonsense
- matcher:
    variable:
    - 'ChromeVersion                       :agent.(3)product.version'
    - 'ChromeMajorVersion                  :@ChromeVersion[1]'
    require:
    - 'agent.(3)product.name="Chrome"'
    - '@ChromeMajorVersion?ChromeFrozenMajorVersionsToWindows'
    - 'IsNull[agent.product.name="Version"]' # Ignore WebViews which can contain Chrome/??.0.0.0
    - '@ChromeVersion[2-]="0.0.0"'
    extract:
    - 'OperatingSystemName                 :      200 : "<<>>"'
    - 'OperatingSystemVersion              :      200 : "<<>>"'
    - 'LayoutEngineClass                   :     3000 : "Browser"'
    - 'LayoutEngineName                    :     3000 : "Blink"'
    - 'LayoutEngineVersion                 :     3000 : @ChromeMajorVersion' # No decimals here as it is useless.
    - 'AgentVersion                        :     2050 : @ChromeMajorVersion'

- matcher:
    variable:
    - 'ChromeVersion                       :agent.(3)product.version'
    - 'ChromeMajorVersion                  :@ChromeVersion[1]'
    require:
    - 'agent.(3)product.name="Chrome"'
    - '@ChromeMajorVersion!?ChromeFrozenMajorVersionsToWindows'
    - 'IsNull[agent.product.name="Version"]' # Ignore WebViews which can contain Chrome/??.0.0.0
    - '@ChromeVersion[2-]="0.0.0"'
    extract:
    # IF NOT A MIX VERSION, WE DO NOT OVERRIDE THE OS NAME
    - 'LayoutEngineClass                   :     3000 : "Browser"'
    - 'LayoutEngineName                    :     3000 : "Blink"'
    - 'LayoutEngineVersion                 :     3000 : @ChromeMajorVersion' # No decimals here as it is useless.
    - 'AgentVersion                        :     2050 : @ChromeMajorVersion'


# Android: If the frozen agent is detected the Operating system Version is nonsense
- matcher:
    require:
    - 'agent.(1)product="Mozilla/5.0 (Linux; Android 9; Unspecified Device)"'
    extract:
    - 'OperatingSystemVersion              :     1000 : "<<>>"'

# https://www.chromium.org/updates/ua-reduction
# Quote: Also note that the macOS platform version was already capped to 10_15_7 in Chrome 90 for site compatibility reasons.
# https://bugs.chromium.org/p/chromium/issues/detail?id=1175225
# So between 90 and the completion of the rollout we must override the MacOs version with 'Unknown'.
# So that starts with 90 and the rollout to desktop is now indicated for 107, so we do 90 - 119.
- set:
    name: 'ChromeFrozenMacOsVersion'
    values:
    - '90'
    - '91'
    - '92'
    - '93'
    - '94'
    - '95'
    - '96'
    - '97'
    - '98'
    - '99'
    - '100'
    - '101'
    - '102'
    - '103'
    - '104'
    - '105'
    - '106'
    - '107'
    - '108'
    - '109'
    - '110'
    - '111'
    - '112'
    - '113'
    - '114'
    - '115'
    - '116'
    - '117'
    - '118'
    - '119'

- matcher:
    require:
    - 'agent.(1)product.(1)comments="(Macintosh; Intel Mac OS X 10_15_7)"'
    - 'agent.(3)product.name="Chrome"'
    - 'agent.(3)product.version[1]?ChromeFrozenMacOsVersion'
    extract:
    - 'OperatingSystemName                 :      500 : "Mac OS"'
    - 'OperatingSystemVersion              :      500 : ">=10.15.7"'
    - 'OperatingSystemVersionMajor         :      500 : ">=10.15"'

# ======================================
# Chrome 83 on Windows 10
- test:
    input:
      user_agent_string: 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.97 Safari/537.36'
    expected:
      DeviceClass                          : 'Desktop'
      DeviceName                           : 'Desktop'
      DeviceBrand                          : 'Unknown'
      DeviceCpu                            : 'Intel x86_64'
      DeviceCpuBits                        : '64'
      OperatingSystemClass                 : 'Desktop'
      OperatingSystemName                  : 'Windows NT'
      OperatingSystemVersion               : '10.0'
      OperatingSystemVersionMajor          : '10'
      OperatingSystemNameVersion           : 'Windows 10.0'
      OperatingSystemNameVersionMajor      : 'Windows 10'
      LayoutEngineClass                    : 'Browser'
      LayoutEngineName                     : 'Blink'
      LayoutEngineVersion                  : '83.0'
      LayoutEngineVersionMajor             : '83'
      LayoutEngineNameVersion              : 'Blink 83.0'
      LayoutEngineNameVersionMajor         : 'Blink 83'
      AgentClass                           : 'Browser'
      AgentName                            : 'Chrome'
      AgentVersion                         : '83.0.4103.97'
      AgentVersionMajor                    : '83'
      AgentNameVersion                     : 'Chrome 83.0.4103.97'
      AgentNameVersionMajor                : 'Chrome 83'


  # ======================================
# Chrome 83 on Ubuntu Linux
- test:
    input:
      user_agent_string: 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.97 Safari/537.36'
    expected:
      DeviceClass                          : 'Desktop'
      DeviceName                           : 'Linux Desktop'
      DeviceBrand                          : 'Unknown'
      DeviceCpu                            : 'Intel x86_64'
      DeviceCpuBits                        : '64'
      OperatingSystemClass                 : 'Desktop'
      OperatingSystemName                  : 'Linux'
      OperatingSystemVersion               : '??'
      OperatingSystemVersionMajor          : '??'
      OperatingSystemNameVersion           : 'Linux ??'
      OperatingSystemNameVersionMajor      : 'Linux ??'
      LayoutEngineClass                    : 'Browser'
      LayoutEngineName                     : 'Blink'
      LayoutEngineVersion                  : '83.0'
      LayoutEngineVersionMajor             : '83'
      LayoutEngineNameVersion              : 'Blink 83.0'
      LayoutEngineNameVersionMajor         : 'Blink 83'
      AgentClass                           : 'Browser'
      AgentName                            : 'Chrome'
      AgentVersion                         : '83.0.4103.97'
      AgentVersionMajor                    : '83'
      AgentNameVersion                     : 'Chrome 83.0.4103.97'
      AgentNameVersionMajor                : 'Chrome 83'


# ======================================
# Chrome 83 on Mac OS X
- test:
    input:
      user_agent_string: 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.97 Safari/537.36'
    expected:
      DeviceClass                          : 'Desktop'
      DeviceName                           : 'Apple Macintosh'
      DeviceBrand                          : 'Apple'
      DeviceCpu                            : 'Intel'
      DeviceCpuBits                        : '64'
      OperatingSystemClass                 : 'Desktop'
      OperatingSystemName                  : 'Mac OS'
      OperatingSystemVersion               : '10.15.5'
      OperatingSystemVersionMajor          : '10.15'
      OperatingSystemNameVersion           : 'Mac OS 10.15.5'
      OperatingSystemNameVersionMajor      : 'Mac OS 10.15'
      LayoutEngineClass                    : 'Browser'
      LayoutEngineName                     : 'Blink'
      LayoutEngineVersion                  : '83.0'
      LayoutEngineVersionMajor             : '83'
      LayoutEngineNameVersion              : 'Blink 83.0'
      LayoutEngineNameVersionMajor         : 'Blink 83'
      AgentClass                           : 'Browser'
      AgentName                            : 'Chrome'
      AgentVersion                         : '83.0.4103.97'
      AgentVersionMajor                    : '83'
      AgentNameVersion                     : 'Chrome 83.0.4103.97'
      AgentNameVersionMajor                : 'Chrome 83'


# ======================================
# On Windows 10, Ubuntu Linux and Mac the FROZEN UserAgent is on all those systems identical
- test:
    input:
      user_agent_string: 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.0.0 Safari/537.36'
    expected:
      DeviceClass                          : 'Desktop'
      DeviceName                           : 'Desktop'
      DeviceBrand                          : 'Unknown'
      DeviceCpu                            : 'Intel x86_64'
      DeviceCpuBits                        : '64'
      OperatingSystemClass                 : 'Desktop'
      OperatingSystemName                  : 'Unknown'     # We do NOT know it is Windows 10!
      OperatingSystemVersion               : '??'          # We do NOT know it is Windows 10!
      OperatingSystemVersionMajor          : '??'          # We do NOT know it is Windows 10!
      OperatingSystemNameVersion           : 'Unknown ??'  # We do NOT know it is Windows 10!
      OperatingSystemNameVersionMajor      : 'Unknown ??'  # We do NOT know it is Windows 10!
      LayoutEngineClass                    : 'Browser'
      LayoutEngineName                     : 'Blink'
      LayoutEngineVersion                  : '83'
      LayoutEngineVersionMajor             : '83'
      LayoutEngineNameVersion              : 'Blink 83'
      LayoutEngineNameVersionMajor         : 'Blink 83'
      AgentClass                           : 'Browser'
      AgentName                            : 'Chrome'
      AgentVersion                         : '83'
      AgentVersionMajor                    : '83'
      AgentNameVersion                     : 'Chrome 83'
      AgentNameVersionMajor                : 'Chrome 83'


# Same but now on Chrome 84.0.4147.89
- test:
    input:
      user_agent_string: 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/84.0.0.0 Safari/537.36'
    expected:
      DeviceClass                          : 'Desktop'
      DeviceName                           : 'Desktop'
      DeviceBrand                          : 'Unknown'
      DeviceCpu                            : 'Intel x86_64'
      DeviceCpuBits                        : '64'
      OperatingSystemClass                 : 'Desktop'
      OperatingSystemName                  : 'Unknown'
      OperatingSystemVersion               : '??'
      OperatingSystemVersionMajor          : '??'
      OperatingSystemNameVersion           : 'Unknown ??'
      OperatingSystemNameVersionMajor      : 'Unknown ??'
      LayoutEngineClass                    : 'Browser'
      LayoutEngineName                     : 'Blink'
      LayoutEngineVersion                  : '84'
      LayoutEngineVersionMajor             : '84'
      LayoutEngineNameVersion              : 'Blink 84'
      LayoutEngineNameVersionMajor         : 'Blink 84'
      AgentClass                           : 'Browser'
      AgentName                            : 'Chrome'
      AgentVersion                         : '84'
      AgentVersionMajor                    : '84'
      AgentNameVersion                     : 'Chrome 84'
      AgentNameVersionMajor                : 'Chrome 84'

# ======================================
# Chrome 83 on Motorola/Google Nexus 6, Android 7.1.1

# Phone, Android 7.1.1, Chrome 83, Default UserAgent
- test:
    input:
      user_agent_string: 'Mozilla/5.0 (Linux; Android 7.1.1; Nexus 6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.106 Mobile Safari/537.36'
    expected:
      DeviceClass                          : 'Phone'
      DeviceName                           : 'Google Nexus 6'
      DeviceBrand                          : 'Google'
      OperatingSystemClass                 : 'Mobile'
      OperatingSystemName                  : 'Android'
      OperatingSystemVersion               : '7.1.1'
      OperatingSystemVersionMajor          : '7'
      OperatingSystemNameVersion           : 'Android 7.1.1'
      OperatingSystemNameVersionMajor      : 'Android 7'
      LayoutEngineClass                    : 'Browser'
      LayoutEngineName                     : 'Blink'
      LayoutEngineVersion                  : '83.0'
      LayoutEngineVersionMajor             : '83'
      LayoutEngineNameVersion              : 'Blink 83.0'
      LayoutEngineNameVersionMajor         : 'Blink 83'
      AgentClass                           : 'Browser'
      AgentName                            : 'Chrome'
      AgentVersion                         : '83.0.4103.106'
      AgentVersionMajor                    : '83'
      AgentNameVersion                     : 'Chrome 83.0.4103.106'
      AgentNameVersionMajor                : 'Chrome 83'

# ======================================
# Chrome 83 on Samsung Galaxy S8 Android 9

# Phone, Android 9, Chrome 83, Default UserAgent
- test:
    input:
      user_agent_string: 'Mozilla/5.0 (Linux; Android 9; SM-G950F) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.101 Mobile Safari/537.36'
    expected:
      DeviceClass                          : 'Phone'
      DeviceName                           : 'Samsung SM-G950F'
      DeviceBrand                          : 'Samsung'
      OperatingSystemClass                 : 'Mobile'
      OperatingSystemName                  : 'Android'
      OperatingSystemVersion               : '9'
      OperatingSystemVersionMajor          : '9'
      OperatingSystemNameVersion           : 'Android 9'
      OperatingSystemNameVersionMajor      : 'Android 9'
      LayoutEngineClass                    : 'Browser'
      LayoutEngineName                     : 'Blink'
      LayoutEngineVersion                  : '83.0'
      LayoutEngineVersionMajor             : '83'
      LayoutEngineNameVersion              : 'Blink 83.0'
      LayoutEngineNameVersionMajor         : 'Blink 83'
      AgentClass                           : 'Browser'
      AgentName                            : 'Chrome'
      AgentVersion                         : '83.0.4103.101'
      AgentVersionMajor                    : '83'
      AgentNameVersion                     : 'Chrome 83.0.4103.101'
      AgentNameVersionMajor                : 'Chrome 83'

# ======================================
# Chrome 83 on Nokia 7.2 Android 10

# Phone, Android 10, Chrome 83, Default UserAgent
- test:
    input:
      user_agent_string: 'Mozilla/5.0 (Linux; Android 10; Nokia 7.2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.106 Mobile Safari/537.36'
    expected:
      DeviceClass                          : 'Phone'
      DeviceName                           : 'Nokia 7.2'
      DeviceBrand                          : 'Nokia'
      OperatingSystemClass                 : 'Mobile'
      OperatingSystemName                  : 'Android'
      OperatingSystemVersion               : '10'
      OperatingSystemVersionMajor          : '10'
      OperatingSystemNameVersion           : 'Android 10'
      OperatingSystemNameVersionMajor      : 'Android 10'
      LayoutEngineClass                    : 'Browser'
      LayoutEngineName                     : 'Blink'
      LayoutEngineVersion                  : '83.0'
      LayoutEngineVersionMajor             : '83'
      LayoutEngineNameVersion              : 'Blink 83.0'
      LayoutEngineNameVersionMajor         : 'Blink 83'
      AgentClass                           : 'Browser'
      AgentName                            : 'Chrome'
      AgentVersion                         : '83.0.4103.106'
      AgentVersionMajor                    : '83'
      AgentNameVersion                     : 'Chrome 83.0.4103.106'
      AgentNameVersionMajor                : 'Chrome 83'

# Phone, Android 7.1.1, Chrome 83, FROZEN UserAgent
# Phone, Android 9, Chrome 83, FROZEN UserAgent
# Phone, Android 10, Chrome 83, FROZEN UserAgent
# --
# Notable changes
# - Chrome version loses minor versions
# - Device: Unspecified Device
- test:
    input:
      user_agent_string: 'Mozilla/5.0 (Linux; Android 9; Unspecified Device) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.0.0 Mobile Safari/537.36'
    expected:
      DeviceClass                          : 'Phone'
      DeviceName                           : 'Android Mobile'
      DeviceBrand                          : 'Unknown'
      OperatingSystemClass                 : 'Mobile'
      OperatingSystemName                  : 'Android'
      OperatingSystemVersion               : '??'
      OperatingSystemVersionMajor          : '??'
      OperatingSystemNameVersion           : 'Android ??'
      OperatingSystemNameVersionMajor      : 'Android ??'
      LayoutEngineClass                    : 'Browser'
      LayoutEngineName                     : 'Blink'
      LayoutEngineVersion                  : '83'
      LayoutEngineVersionMajor             : '83'
      LayoutEngineNameVersion              : 'Blink 83'
      LayoutEngineNameVersionMajor         : 'Blink 83'
      AgentClass                           : 'Browser'
      AgentName                            : 'Chrome'
      AgentVersion                         : '83'
      AgentVersionMajor                    : '83'
      AgentNameVersion                     : 'Chrome 83'
      AgentNameVersionMajor                : 'Chrome 83'


# ======================================
# Chrome 83 on Samsung Galaxy Tab S2 Tablet, Android 7.0

# Tablet, Android 7.0, Chrome 83, Default UserAgent
- test:
    input:
      user_agent_string: 'Mozilla/5.0 (Linux; Android 7.0; SM-T710) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.101 Safari/537.36'
    expected:
      DeviceClass                          : 'Tablet'
      DeviceName                           : 'Samsung SM-T710'
      DeviceBrand                          : 'Samsung'
      OperatingSystemClass                 : 'Mobile'
      OperatingSystemName                  : 'Android'
      OperatingSystemVersion               : '7.0'
      OperatingSystemVersionMajor          : '7'
      OperatingSystemNameVersion           : 'Android 7.0'
      OperatingSystemNameVersionMajor      : 'Android 7'
      LayoutEngineClass                    : 'Browser'
      LayoutEngineName                     : 'Blink'
      LayoutEngineVersion                  : '83.0'
      LayoutEngineVersionMajor             : '83'
      LayoutEngineNameVersion              : 'Blink 83.0'
      LayoutEngineNameVersionMajor         : 'Blink 83'
      AgentClass                           : 'Browser'
      AgentName                            : 'Chrome'
      AgentVersion                         : '83.0.4103.101'
      AgentVersionMajor                    : '83'
      AgentNameVersion                     : 'Chrome 83.0.4103.101'
      AgentNameVersionMajor                : 'Chrome 83'


# Tablet, Android 7.0, Chrome 83, FROZEN UserAgent
# Tablet, Android 11, Chrome 83, FROZEN UserAgent (Android Studio Emulator)
# Notable changes
# - Chrome version loses minor versions
# - Incorrect Android version
# - Device: Unspecified Device
- test:
    input:
      user_agent_string: 'Mozilla/5.0 (Linux; Android 9; Unspecified Device) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.0.0 Safari/537.36'
    expected:
      DeviceClass                          : 'Tablet'
      DeviceName                           : 'Android Mobile'
      DeviceBrand                          : 'Unknown'
      OperatingSystemClass                 : 'Mobile'
      OperatingSystemName                  : 'Android'
      OperatingSystemVersion               : '??'
      OperatingSystemVersionMajor          : '??'
      OperatingSystemNameVersion           : 'Android ??'
      OperatingSystemNameVersionMajor      : 'Android ??'
      LayoutEngineClass                    : 'Browser'
      LayoutEngineName                     : 'Blink'
      LayoutEngineVersion                  : '83'
      LayoutEngineVersionMajor             : '83'
      LayoutEngineNameVersion              : 'Blink 83'
      LayoutEngineNameVersionMajor         : 'Blink 83'
      AgentClass                           : 'Browser'
      AgentName                            : 'Chrome'
      AgentVersion                         : '83'
      AgentVersionMajor                    : '83'
      AgentNameVersion                     : 'Chrome 83'
      AgentNameVersionMajor                : 'Chrome 83'


# ======================================
# Edge 83 on Windows 10

# Desktop, Windows 10, Edge 83, Default UserAgent
- test:
    input:
      user_agent_string: 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.97 Safari/537.36 Edg/83.0.478.45'
    expected:
      DeviceClass                          : 'Desktop'
      DeviceName                           : 'Desktop'
      DeviceBrand                          : 'Unknown'
      DeviceCpu                            : 'Intel x86_64'
      DeviceCpuBits                        : '64'
      OperatingSystemClass                 : 'Desktop'
      OperatingSystemName                  : 'Windows NT'
      OperatingSystemVersion               : '10.0'
      OperatingSystemVersionMajor          : '10'
      OperatingSystemNameVersion           : 'Windows 10.0'
      OperatingSystemNameVersionMajor      : 'Windows 10'
      LayoutEngineClass                    : 'Browser'
      LayoutEngineName                     : 'Blink'
      LayoutEngineVersion                  : '83.0'
      LayoutEngineVersionMajor             : '83'
      LayoutEngineNameVersion              : 'Blink 83.0'
      LayoutEngineNameVersionMajor         : 'Blink 83'
      AgentClass                           : 'Browser'
      AgentName                            : 'Edge'
      AgentVersion                         : '83.0.478.45'
      AgentVersionMajor                    : '83'
      AgentNameVersion                     : 'Edge 83.0.478.45'
      AgentNameVersionMajor                : 'Edge 83'


# Desktop, Windows 10, Edge 83, FROZEN UserAgent
# --
# Notable changes
# - Chrome version loses minor versions
# - Edge 83 --> 75 -- Actually the version in the Chrome part becomes more reliable
- test:
    input:
      user_agent_string: 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.0.0 Safari/537.36 Edg/75.0.131.0'
    expected:
      DeviceClass                          : 'Desktop'
      DeviceName                           : 'Desktop'
      DeviceBrand                          : 'Unknown'
      DeviceCpu                            : 'Intel x86_64'
      DeviceCpuBits                        : '64'
      OperatingSystemClass                 : 'Desktop'
      OperatingSystemName                  : 'Unknown'       # We do NOT know it is Windows 10!
      OperatingSystemVersion               : '??'            # We do NOT know it is Windows 10!
      OperatingSystemVersionMajor          : '??'            # We do NOT know it is Windows 10!
      OperatingSystemNameVersion           : 'Unknown ??'    # We do NOT know it is Windows 10!
      OperatingSystemNameVersionMajor      : 'Unknown ??'    # We do NOT know it is Windows 10!
      LayoutEngineClass                    : 'Browser'
      LayoutEngineName                     : 'Blink'
      LayoutEngineVersion                  : '83'
      LayoutEngineVersionMajor             : '83'
      LayoutEngineNameVersion              : 'Blink 83'
      LayoutEngineNameVersionMajor         : 'Blink 83'
      AgentClass                           : 'Browser'
      AgentName                            : 'Edge'
      AgentVersion                         : '83'
      AgentVersionMajor                    : '83'
      AgentNameVersion                     : 'Edge 83'
      AgentNameVersionMajor                : 'Edge 83'


# Desktop, Linux, Edge 88, FROZEN UserAgent
- test:
    input:
      user_agent_string: 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.0.0 Safari/537.36 Edg/75.0.131.0'
    expected:
      DeviceClass                          : 'Desktop'
      DeviceName                           : 'Desktop'
      DeviceBrand                          : 'Unknown'
      DeviceCpu                            : 'Intel x86_64'
      DeviceCpuBits                        : '64'
      OperatingSystemClass                 : 'Desktop'
      OperatingSystemName                  : 'Unknown'     # We do NOT know it is Windows 10!
      OperatingSystemVersion               : '??'          # We do NOT know it is Windows 10!
      OperatingSystemVersionMajor          : '??'          # We do NOT know it is Windows 10!
      OperatingSystemNameVersion           : 'Unknown ??'  # We do NOT know it is Windows 10!
      OperatingSystemNameVersionMajor      : 'Unknown ??'  # We do NOT know it is Windows 10!
      LayoutEngineClass                    : 'Browser'
      LayoutEngineName                     : 'Blink'
      LayoutEngineVersion                  : '88'
      LayoutEngineVersionMajor             : '88'
      LayoutEngineNameVersion              : 'Blink 88'
      LayoutEngineNameVersionMajor         : 'Blink 88'
      AgentClass                           : 'Browser'
      AgentName                            : 'Edge'
      AgentVersion                         : '88'
      AgentVersionMajor                    : '88'
      AgentNameVersion                     : 'Edge 88'
      AgentNameVersionMajor                : 'Edge 88'


# Tablet, Android 11, Chrome 83, Default UserAgent (Android Studio Emulator)
- test:
    input:
      user_agent_string: 'Mozilla/5.0 (Linux; Android 11; sdk_gphone_x86_arm) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.44 Safari/537.36'
    expected:
      DeviceClass                          : 'Tablet'
      DeviceName                           : 'Google SDK Gphone X86 ARM'
      DeviceBrand                          : 'Google'
      DeviceCpu                            : 'x86'
      DeviceCpuBits                        : '32'
      OperatingSystemClass                 : 'Mobile'
      OperatingSystemName                  : 'Android'
      OperatingSystemVersion               : '11'
      OperatingSystemVersionMajor          : '11'
      OperatingSystemNameVersion           : 'Android 11'
      OperatingSystemNameVersionMajor      : 'Android 11'
      LayoutEngineClass                    : 'Browser'
      LayoutEngineName                     : 'Blink'
      LayoutEngineVersion                  : '83.0'
      LayoutEngineVersionMajor             : '83'
      LayoutEngineNameVersion              : 'Blink 83.0'
      LayoutEngineNameVersionMajor         : 'Blink 83'
      AgentClass                           : 'Browser'
      AgentName                            : 'Chrome'
      AgentVersion                         : '83.0.4103.44'
      AgentVersionMajor                    : '83'
      AgentNameVersion                     : 'Chrome 83.0.4103.44'
      AgentNameVersionMajor                : 'Chrome 83'


# Tablet, Android 9, Chrome 83, Default UserAgent (Samsung Galaxy Tab S5e)
- test:
    input:
      user_agent_string: 'Mozilla/5.0 (Linux; Android 9; SM-T720) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.101 Safari/537.36'
    expected:
      DeviceClass                          : 'Tablet'
      DeviceName                           : 'Samsung SM-T720'
      DeviceBrand                          : 'Samsung'
      OperatingSystemClass                 : 'Mobile'
      OperatingSystemName                  : 'Android'
      OperatingSystemVersion               : '9'
      OperatingSystemVersionMajor          : '9'
      OperatingSystemNameVersion           : 'Android 9'
      OperatingSystemNameVersionMajor      : 'Android 9'
      LayoutEngineClass                    : 'Browser'
      LayoutEngineName                     : 'Blink'
      LayoutEngineVersion                  : '83.0'
      LayoutEngineVersionMajor             : '83'
      LayoutEngineNameVersion              : 'Blink 83.0'
      LayoutEngineNameVersionMajor         : 'Blink 83'
      AgentClass                           : 'Browser'
      AgentName                            : 'Chrome'
      AgentVersion                         : '83.0.4103.101'
      AgentVersionMajor                    : '83'
      AgentNameVersion                     : 'Chrome 83.0.4103.101'
      AgentNameVersionMajor                : 'Chrome 83'

# ===============================================================
# 2021-10-21 https://www.chromium.org/updates/ua-reduction
# Reduced User Agent String Reference
# ---------------------------------------------------------------

# Unified Format
# The unified format that covers all platforms post-UA Reduction looks like so:
#  Mozilla/5.0 () AppleWebKit/537.36 (KHTML, like Gecko) Chrome/.0.0.0  Safari/537.36

# Desktop
#  Mozilla/5.0 () AppleWebKit/537.36 (KHTML, like Gecko) Chrome/.0.0.0 Safari/537.36

# Mobile and Tablet
#  Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/.0.0.0  Safari/537.36

#  -> “Mobile” / “” (empty string, used by Tablets and Desktop)
# 
#The possible desktop values* are:
#       Windows NT 10.0; Win64; x64
#       Macintosh; Intel Mac OS X 10_15_7
#       X11; Linux x86_64
#       X11; CrOS x86_64
#
#The possible mobile values* are:
#       Linux; Android 10; K
#
#
#*Note that these strings are literal values; they will not update even if a user is on an updated operating system or device.

# ---------------------------------------------------------------------
# From: https://github.com/chromium/chromium/blob/117.0.5911.1/content/common/user_agent.cc#L63

#  const char kFrozenUserAgentTemplate[] =
#  "Mozilla/5.0 (%s) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/%s.0.0.0 "
##if BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_IOS)
#  "%s"
##endif
#  "Safari/537.36";
#


#  std::string GetUnifiedPlatform() {
#  #if BUILDFLAG(IS_ANDROID)
#    return "Linux; Android 10; K";
#  #elif BUILDFLAG(IS_CHROMEOS)
#    return "X11; CrOS x86_64 14541.0.0";
#  #elif BUILDFLAG(IS_MAC)
#    return "Macintosh; Intel Mac OS X 10_15_7";
#  #elif BUILDFLAG(IS_WIN)
#    return "Windows NT 10.0; Win64; x64";
#  #elif BUILDFLAG(IS_FUCHSIA)
#    return "Fuchsia";
#  #elif BUILDFLAG(IS_LINUX)
#    return "X11; Linux x86_64";
#  #elif BUILDFLAG(IS_IOS)
#  if (ui::GetDeviceFormFactor() == ui::DEVICE_FORM_FACTOR_TABLET) {
#    return "iPad; CPU iPad OS 14_0 like Mac OS X";
#  }
#    return "iPhone; CPU iPhone OS 14_0 like Mac OS X";
#  #else
#  #error Unsupported platform
#  #endif
#  }

# ---------------------------------------------------------------------


# In Phase 4 we change the  token to “0.0.0”.
# In Phase 5 we change the  and  tokens from their platform-defined values to the relevant  token value (which will never change).
# In Phase 6, we change the  token to “K” and change the  token to a static “10” string.

- lookup:
    name: 'ChromeReducedUnifiedPlatform'
    map:
      # https://chromium.googlesource.com/chromium/src/+/refs/heads/main/content/public/common/user_agent.h#18
      #   namespace frozen_user_agent_strings {
      #      const char kDesktop[] =
      #         "Mozilla/5.0 (%s) AppleWebKit/537.36 (KHTML, "
      #         "like Gecko) Chrome/%s.0.0.0 Safari/537.36";
      #      const char kAndroid[] =
      #         "Mozilla/5.0 (%s) "
      #         "AppleWebKit/537.36 (KHTML, like Gecko) Chrome/%s.0.0.0 %s"
      #         "Safari/537.36";
      #      const char kUnifiedPlatformAndroid[] = "Linux; Android 10; K";
      #      const char kUnifiedPlatformCrOS[] = "X11; CrOS x86_64 14541.0.0";
      #      const char kUnifiedPlatformLinux[] = "X11; Linux x86_64";
      #      const char kUnifiedPlatformMacOS[] = "Macintosh; Intel Mac OS X 10_15_7";
      #      const char kUnifiedPlatformWindows[] = "Windows NT 10.0; Win64; x64";
      #   }  // namespace frozen_user_agent_strings

      # Output = DeviceClass | DeviceName | DeviceBrand | OperatingSystemClass | OperatingSystemName | OSVersion | OSMajorVersion| OSNameVersion | OSNameMajorVersion
      'Mozilla/5.0 (Linux; Android 10; K)'                      : 'Mobile|Android Mobile|<<>>|Mobile|Android|<<>>|<<>>|Android ??|Android ??'
#      'Mozilla/5.0 (X11; CrOS x86_64 14541.0.0)'                : 'Desktop|Chromebook|<<>>|Desktop|Chrome OS|<<>>|<<>>|Chrome OS ??|Chrome OS ??'
      'Mozilla/5.0 (Windows NT 10.0; Win64; x64)'               : 'Desktop|Desktop|<<>>|Desktop|Windows NT|<<>>|<<>>|Windows NT ??|Windows NT ??'
      'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7)'         : 'Desktop|Macintosh|Apple|Desktop|Mac OS|>=10.15.7|>=10.15|Mac OS >=10.15.7|Mac OS >=10.15'
      'Mozilla/5.0 (Fuchsia)'                                    : 'Mobile|Fuchsia Mobile|<<>>|Mobile|Fuchsia|<<>>|<<>>|Fuchsia ??|Fuchsia ??'
      'Mozilla/5.0 (X11; Linux x86_64)'                         : 'Desktop|Linux Desktop|<<>>|Desktop|Linux|<<>>|<<>>|Linux ??|Linux ??'
      'Mozilla/5.0 (iPad; CPU iPad OS 14_0 like Mac OS X)'      : 'Tablet|iPad|Apple|Mobile|iOS|<<>>|<<>>|iOS ??|iOS ??'
      'Mozilla/5.0 (iPhone; CPU iPhone OS 14_0 like Mac OS X)'  : 'Phone|iPhone|Apple|Mobile|iOS|<<>>|<<>>|iOS ??|iOS ??'


- set:
    name: 'ChromeReducedDeviceCompat'
    values:
    - 'Safari'
    - 'Mobile Safari'

- matcher:
    variable:
    - 'UnifiedPlatform                     :LookUp[ChromeReducedUnifiedPlatform;agent.(1)product]'
    - 'ChromeProduct                       :agent.(3-4)product.name="Chrome"^'
    - 'ChromeVersion                       :@ChromeProduct.version'
    - 'ChromeMajorVersion                  :@ChromeVersion[1]'
    require:
    - 'agent.(2)product="AppleWebKit/537.36 (KHTML, like Gecko)"'
    - '@ChromeVersion[2-]="0.0.0"'
    - '@ChromeMajorVersion!?ChromeFrozenMajorVersionsToWindows'
    - '@ChromeProduct>.name?ChromeReducedDeviceCompat' # -> Safari or Mobile Safari
    - 'IsNull[agent.product.name="Version"]' # Ignore WebViews which can contain Chrome/??.0.0.0
    - 'IsNull[agent.product.name="Edg"]' # Edge still used 6.1 on Windows 7
    extract:
    - 'DeviceClass                         :      500 :@UnifiedPlatform[[1]]'
    - 'DeviceName                          :   400001 :@UnifiedPlatform[[2]]'
    - 'DeviceBrand                         :       50 :@UnifiedPlatform[[3]]'
    - 'OperatingSystemClass                :   400001 :@UnifiedPlatform[[4]]'
    - 'OperatingSystemName                 :   400001 :@UnifiedPlatform[[5]]'
    - 'OperatingSystemVersion              :   400001 :@UnifiedPlatform[[6]]'
    - 'OperatingSystemVersionMajor         :   400001 :@UnifiedPlatform[[7]]'
    - 'OperatingSystemNameVersion          :   400001 :@UnifiedPlatform[[8]]'
    - 'OperatingSystemNameVersionMajor     :   400001 :@UnifiedPlatform[[9]]'
    - 'OperatingSystemVersionBuild         :   400001 :"<<>>"'

# Chrome OS specific:
- matcher:
    variable:
    - 'ChromeVersion                       :agent.(3)product.version'
    - 'ChromeMajorVersion                  :@ChromeVersion[1]'
    require:
    - 'agent.(1)product="Mozilla/5.0 (X11; CrOS x86_64 14541.0.0)"'
    - 'agent.(2)product="AppleWebKit/537.36 (KHTML, like Gecko)"'
    - 'agent.(3)product.name="Chrome"'
    - '@ChromeVersion[2-]="0.0.0"'
    - '@ChromeMajorVersion!?ChromeFrozenMajorVersionsToWindows'
    - 'agent.(4)product.name?ChromeReducedDeviceCompat' # -> Safari or Mobile Safari
    - 'IsNull[agent.product.name="Version"]' # Ignore WebViews which can contain Chrome/??.0.0.0
    - 'IsNull[agent.product.name="Edg"]' # Edge still used 6.1 on Windows 7
    extract:
    - 'DeviceClass                         :      500 :"Desktop"'
    - 'DeviceName                          :   400002 :"Chromebook"'
    - 'DeviceBrand                         :   400002 :"<<>>"'
    - 'OperatingSystemClass                :   400002 :"Desktop"'
    - 'OperatingSystemName                 :   400002 :"Chrome OS"'
    - 'OperatingSystemVersion              :   400002 :@ChromeMajorVersion' # Only the major version is valid
    - 'OperatingSystemVersionBuild         :   400002 :"<<>>"'
    - 'OperatingSystemVersionMajor         :   400002 :@ChromeMajorVersion'
    - 'OperatingSystemNameVersion          :   400002 :Concat["Chrome OS ";@ChromeMajorVersion]'
    - 'OperatingSystemNameVersionMajor     :   400002 :Concat["Chrome OS ";@ChromeMajorVersion]'

- matcher:
    variable:
    - 'ChromeVersion                       :agent.(3)product.version'
    - 'ChromeMajorVersion                  :@ChromeVersion[1]'
    require:
    - 'agent.(1)product="Mozilla/5.0 (X11; CrOS x86_64)"'
    - 'agent.(2)product="AppleWebKit/537.36 (KHTML, like Gecko)"'
    - 'agent.(3)product.name="Chrome"'
    - '@ChromeVersion[2-]="0.0.0"'
    - '@ChromeMajorVersion!?ChromeFrozenMajorVersionsToWindows'
    - 'agent.(4)product.name?ChromeReducedDeviceCompat' # -> Safari or Mobile Safari
    - 'IsNull[agent.product.name="Version"]' # Ignore WebViews which can contain Chrome/??.0.0.0
    - 'IsNull[agent.product.name="Edg"]' # Edge still used 6.1 on Windows 7
    extract:
    - 'DeviceClass                         :      500 :"Desktop"'
    - 'DeviceName                          :   400002 :"Chromebook"'
    - 'DeviceBrand                         :   400002 :"<<>>"'
    - 'OperatingSystemClass                :   400002 :"Desktop"'
    - 'OperatingSystemName                 :   400002 :"Chrome OS"'
    - 'OperatingSystemVersion              :   400002 :@ChromeMajorVersion' # Only the major version is valid
    - 'OperatingSystemVersionBuild         :   400002 :"<<>>"'
    - 'OperatingSystemVersionMajor         :   400002 :@ChromeMajorVersion'
    - 'OperatingSystemNameVersion          :   400002 :Concat["Chrome OS ";@ChromeMajorVersion]'
    - 'OperatingSystemNameVersionMajor     :   400002 :Concat["Chrome OS ";@ChromeMajorVersion]'


  # ============================================
# Desktop (user on Windows 8.1, for example)

# Phase 3 UA
- test:
    input:
      user_agent_string: 'Mozilla/5.0 (Windows NT 6.3; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/93.0.1234.56 Safari/537.36'
    expected:
      DeviceClass                          : 'Desktop'
      DeviceName                           : 'Desktop'
      DeviceBrand                          : 'Unknown'
      DeviceCpu                            : 'Intel x86_64'
      DeviceCpuBits                        : '64'
      OperatingSystemClass                 : 'Desktop'
      OperatingSystemName                  : 'Windows NT'
      OperatingSystemVersion               : '8.1'
      OperatingSystemVersionMajor          : '8'
      OperatingSystemNameVersion           : 'Windows 8.1'
      OperatingSystemNameVersionMajor      : 'Windows 8'
      LayoutEngineClass                    : 'Browser'
      LayoutEngineName                     : 'Blink'
      LayoutEngineVersion                  : '93.0'
      LayoutEngineVersionMajor             : '93'
      LayoutEngineNameVersion              : 'Blink 93.0'
      LayoutEngineNameVersionMajor         : 'Blink 93'
      AgentClass                           : 'Browser'
      AgentName                            : 'Chrome'
      AgentVersion                         : '93.0.1234.56'
      AgentVersionMajor                    : '93'
      AgentNameVersion                     : 'Chrome 93.0.1234.56'
      AgentNameVersionMajor                : 'Chrome 93'


# Phase 4 UA
- test:
    input:
      user_agent_string: 'Mozilla/5.0 (Windows NT 6.3; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/93.0.0.0 Safari/537.36'
    expected:
      DeviceClass                          : 'Desktop'
      DeviceName                           : 'Desktop'
      DeviceBrand                          : 'Unknown'
      DeviceCpu                            : 'Intel x86_64'
      DeviceCpuBits                        : '64'
      OperatingSystemClass                 : 'Desktop'
      OperatingSystemName                  : 'Windows NT'
      OperatingSystemVersion               : '8.1'
      OperatingSystemVersionMajor          : '8'
      OperatingSystemNameVersion           : 'Windows 8.1'
      OperatingSystemNameVersionMajor      : 'Windows 8'
      LayoutEngineClass                    : 'Browser'
      LayoutEngineName                     : 'Blink'
      LayoutEngineVersion                  : '93'
      LayoutEngineVersionMajor             : '93'
      LayoutEngineNameVersion              : 'Blink 93'
      LayoutEngineNameVersionMajor         : 'Blink 93'
      AgentClass                           : 'Browser'
      AgentName                            : 'Chrome'
      AgentVersion                         : '93'
      AgentVersionMajor                    : '93'
      AgentNameVersion                     : 'Chrome 93'
      AgentNameVersionMajor                : 'Chrome 93'

# Phase 5 UA
- test:
    input:
      user_agent_string: 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/93.0.0.0 Safari/537.36'
    expected:
      DeviceClass                          : 'Desktop'
      DeviceName                           : 'Desktop'
      DeviceBrand                          : 'Unknown'
      DeviceCpu                            : 'Intel x86_64'
      DeviceCpuBits                        : '64'
      OperatingSystemClass                 : 'Desktop'
      OperatingSystemName                  : 'Windows NT'
      OperatingSystemVersion               : '??'
      OperatingSystemVersionMajor          : '??'
      OperatingSystemNameVersion           : 'Windows NT ??'
      OperatingSystemNameVersionMajor      : 'Windows NT ??'
      LayoutEngineClass                    : 'Browser'
      LayoutEngineName                     : 'Blink'
      LayoutEngineVersion                  : '93'
      LayoutEngineVersionMajor             : '93'
      LayoutEngineNameVersion              : 'Blink 93'
      LayoutEngineNameVersionMajor         : 'Blink 93'
      AgentClass                           : 'Browser'
      AgentName                            : 'Chrome'
      AgentVersion                         : '93'
      AgentVersionMajor                    : '93'
      AgentNameVersion                     : 'Chrome 93'
      AgentNameVersionMajor                : 'Chrome 93'

# Phase 6 UA
# (No changes for Desktop UAs from Phase 5)

# ============================================
# Mobile (user on Samsung Galaxy, for example)

# Phase 3 UA
- test:
    input:
      user_agent_string: 'Mozilla/5.0 (Linux; Android 9; SM-A205U) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/93.0.1234.56 Mobile Safari/537.36'
    expected:
      DeviceClass                          : 'Phone'
      DeviceName                           : 'Samsung SM-A205U'
      DeviceBrand                          : 'Samsung'
      OperatingSystemClass                 : 'Mobile'
      OperatingSystemName                  : 'Android'
      OperatingSystemVersion               : '9'
      OperatingSystemVersionMajor          : '9'
      OperatingSystemNameVersion           : 'Android 9'
      OperatingSystemNameVersionMajor      : 'Android 9'
      LayoutEngineClass                    : 'Browser'
      LayoutEngineName                     : 'Blink'
      LayoutEngineVersion                  : '93.0'
      LayoutEngineVersionMajor             : '93'
      LayoutEngineNameVersion              : 'Blink 93.0'
      LayoutEngineNameVersionMajor         : 'Blink 93'
      AgentClass                           : 'Browser'
      AgentName                            : 'Chrome'
      AgentVersion                         : '93.0.1234.56'
      AgentVersionMajor                    : '93'
      AgentNameVersion                     : 'Chrome 93.0.1234.56'
      AgentNameVersionMajor                : 'Chrome 93'

# Phase 4 UA
- test:
    input:
      user_agent_string: 'Mozilla/5.0 (Linux; Android 9; SM-A205U) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/93.0.0.0 Mobile Safari/537.36'
    expected:
      DeviceClass                          : 'Phone'
      DeviceName                           : 'Samsung SM-A205U'
      DeviceBrand                          : 'Samsung'
      OperatingSystemClass                 : 'Mobile'
      OperatingSystemName                  : 'Android'
      OperatingSystemVersion               : '9'
      OperatingSystemVersionMajor          : '9'
      OperatingSystemNameVersion           : 'Android 9'
      OperatingSystemNameVersionMajor      : 'Android 9'
      LayoutEngineClass                    : 'Browser'
      LayoutEngineName                     : 'Blink'
      LayoutEngineVersion                  : '93'
      LayoutEngineVersionMajor             : '93'
      LayoutEngineNameVersion              : 'Blink 93'
      LayoutEngineNameVersionMajor         : 'Blink 93'
      AgentClass                           : 'Browser'
      AgentName                            : 'Chrome'
      AgentVersion                         : '93'
      AgentVersionMajor                    : '93'
      AgentNameVersion                     : 'Chrome 93'
      AgentNameVersionMajor                : 'Chrome 93'

# Phase 5 UA
# (No changes for Mobile UAs in Phase 5)

# Phase 6 UA
- test:
    input:
      user_agent_string: 'Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/93.0.0.0 Mobile Safari/537.36'
    expected:
      DeviceClass                          : 'Phone'
      DeviceName                           : 'Android Mobile'
      DeviceBrand                          : 'Unknown'
      OperatingSystemClass                 : 'Mobile'
      OperatingSystemName                  : 'Android'
      OperatingSystemVersion               : '??'
      OperatingSystemVersionMajor          : '??'
      OperatingSystemNameVersion           : 'Android ??'
      OperatingSystemNameVersionMajor      : 'Android ??'
      LayoutEngineClass                    : 'Browser'
      LayoutEngineName                     : 'Blink'
      LayoutEngineVersion                  : '93'
      LayoutEngineVersionMajor             : '93'
      LayoutEngineNameVersion              : 'Blink 93'
      LayoutEngineNameVersionMajor         : 'Blink 93'
      AgentClass                           : 'Browser'
      AgentName                            : 'Chrome'
      AgentVersion                         : '93'
      AgentVersionMajor                    : '93'
      AgentNameVersion                     : 'Chrome 93'
      AgentNameVersionMajor                : 'Chrome 93'

# ============================================
# Tablet (user on Samsung Galaxy, for example)

# Phase 3 UA
- test:
    input:
      user_agent_string: 'Mozilla/5.0 (Linux; Android 9; SM-T810) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/93.0.1234.56 Safari/537.36'
    expected:
      DeviceClass                          : 'Tablet'
      DeviceName                           : 'Samsung SM-T810'
      DeviceBrand                          : 'Samsung'
      OperatingSystemClass                 : 'Mobile'
      OperatingSystemName                  : 'Android'
      OperatingSystemVersion               : '9'
      OperatingSystemVersionMajor          : '9'
      OperatingSystemNameVersion           : 'Android 9'
      OperatingSystemNameVersionMajor      : 'Android 9'
      LayoutEngineClass                    : 'Browser'
      LayoutEngineName                     : 'Blink'
      LayoutEngineVersion                  : '93.0'
      LayoutEngineVersionMajor             : '93'
      LayoutEngineNameVersion              : 'Blink 93.0'
      LayoutEngineNameVersionMajor         : 'Blink 93'
      AgentClass                           : 'Browser'
      AgentName                            : 'Chrome'
      AgentVersion                         : '93.0.1234.56'
      AgentVersionMajor                    : '93'
      AgentNameVersion                     : 'Chrome 93.0.1234.56'
      AgentNameVersionMajor                : 'Chrome 93'

# Phase 4 UA
- test:
    input:
      user_agent_string: 'Mozilla/5.0 (Linux; Android 9; SM-T810) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/93.0.0.0 Safari/537.36'
    expected:
      DeviceClass                          : 'Tablet'
      DeviceName                           : 'Samsung SM-T810'
      DeviceBrand                          : 'Samsung'
      OperatingSystemClass                 : 'Mobile'
      OperatingSystemName                  : 'Android'
      OperatingSystemVersion               : '9'
      OperatingSystemVersionMajor          : '9'
      OperatingSystemNameVersion           : 'Android 9'
      OperatingSystemNameVersionMajor      : 'Android 9'
      LayoutEngineClass                    : 'Browser'
      LayoutEngineName                     : 'Blink'
      LayoutEngineVersion                  : '93'
      LayoutEngineVersionMajor             : '93'
      LayoutEngineNameVersion              : 'Blink 93'
      LayoutEngineNameVersionMajor         : 'Blink 93'
      AgentClass                           : 'Browser'
      AgentName                            : 'Chrome'
      AgentVersion                         : '93'
      AgentVersionMajor                    : '93'
      AgentNameVersion                     : 'Chrome 93'
      AgentNameVersionMajor                : 'Chrome 93'

# Phase 5 UA
# (No changes for Tablet UAs in Phase 5)

# Phase 6 UA
- test:
    input:
      user_agent_string: 'Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/93.0.0.0 Safari/537.36'
    expected:
      DeviceClass                          : 'Tablet'
      DeviceName                           : 'Android Mobile'
      DeviceBrand                          : 'Unknown'
      OperatingSystemClass                 : 'Mobile'
      OperatingSystemName                  : 'Android'
      OperatingSystemVersion               : '??'
      OperatingSystemVersionMajor          : '??'
      OperatingSystemNameVersion           : 'Android ??'
      OperatingSystemNameVersionMajor      : 'Android ??'
      LayoutEngineClass                    : 'Browser'
      LayoutEngineName                     : 'Blink'
      LayoutEngineVersion                  : '93'
      LayoutEngineVersionMajor             : '93'
      LayoutEngineNameVersion              : 'Blink 93'
      LayoutEngineNameVersionMajor         : 'Blink 93'
      AgentClass                           : 'Browser'
      AgentName                            : 'Chrome'
      AgentVersion                         : '93'
      AgentVersionMajor                    : '93'
      AgentNameVersion                     : 'Chrome 93'
      AgentNameVersionMajor                : 'Chrome 93'

# =============================================================================
# Ubuntu, Chrome 94, Normal
- test:
    input:
      user_agent_string: 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/94.0.4606.81 Safari/537.36'
    expected:
      DeviceClass                          : 'Desktop'
      DeviceName                           : 'Linux Desktop'
      DeviceBrand                          : 'Unknown'
      DeviceCpu                            : 'Intel x86_64'
      DeviceCpuBits                        : '64'
      OperatingSystemClass                 : 'Desktop'
      OperatingSystemName                  : 'Linux'
      OperatingSystemVersion               : '??'
      OperatingSystemVersionMajor          : '??'
      OperatingSystemNameVersion           : 'Linux ??'
      OperatingSystemNameVersionMajor      : 'Linux ??'
      LayoutEngineClass                    : 'Browser'
      LayoutEngineName                     : 'Blink'
      LayoutEngineVersion                  : '94.0'
      LayoutEngineVersionMajor             : '94'
      LayoutEngineNameVersion              : 'Blink 94.0'
      LayoutEngineNameVersionMajor         : 'Blink 94'
      AgentClass                           : 'Browser'
      AgentName                            : 'Chrome'
      AgentVersion                         : '94.0.4606.81'
      AgentVersionMajor                    : '94'
      AgentNameVersion                     : 'Chrome 94.0.4606.81'
      AgentNameVersionMajor                : 'Chrome 94'


# Ubuntu, Chrome 94, FROZEN
- test:
    input:
      user_agent_string: 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/94.0.0.0 Safari/537.36'
    expected:
      DeviceClass                          : 'Desktop'
      DeviceName                           : 'Linux Desktop'
      DeviceBrand                          : 'Unknown'
      DeviceCpu                            : 'Intel x86_64'
      DeviceCpuBits                        : '64'
      OperatingSystemClass                 : 'Desktop'
      OperatingSystemName                  : 'Linux'
      OperatingSystemVersion               : '??'
      OperatingSystemVersionMajor          : '??'
      OperatingSystemNameVersion           : 'Linux ??'
      OperatingSystemNameVersionMajor      : 'Linux ??'
      LayoutEngineClass                    : 'Browser'
      LayoutEngineName                     : 'Blink'
      LayoutEngineVersion                  : '94'
      LayoutEngineVersionMajor             : '94'
      LayoutEngineNameVersion              : 'Blink 94'
      LayoutEngineNameVersionMajor         : 'Blink 94'
      AgentClass                           : 'Browser'
      AgentName                            : 'Chrome'
      AgentVersion                         : '94'
      AgentVersionMajor                    : '94'
      AgentNameVersion                     : 'Chrome 94'
      AgentNameVersionMajor                : 'Chrome 94'

# Linux (Ubuntu), Edge 95, Normal
- test:
    input:
      user_agent_string: 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/95.0.4638.54 Safari/537.36 Edg/95.0.1020.30'
    expected:
      DeviceClass                          : 'Desktop'
      DeviceName                           : 'Linux Desktop'
      DeviceBrand                          : 'Unknown'
      DeviceCpu                            : 'Intel x86_64'
      DeviceCpuBits                        : '64'
      OperatingSystemClass                 : 'Desktop'
      OperatingSystemName                  : 'Linux'
      OperatingSystemVersion               : '??'
      OperatingSystemVersionMajor          : '??'
      OperatingSystemNameVersion           : 'Linux ??'
      OperatingSystemNameVersionMajor      : 'Linux ??'
      LayoutEngineClass                    : 'Browser'
      LayoutEngineName                     : 'Blink'
      LayoutEngineVersion                  : '95.0'
      LayoutEngineVersionMajor             : '95'
      LayoutEngineNameVersion              : 'Blink 95.0'
      LayoutEngineNameVersionMajor         : 'Blink 95'
      AgentClass                           : 'Browser'
      AgentName                            : 'Edge'
      AgentVersion                         : '95.0.1020.30'
      AgentVersionMajor                    : '95'
      AgentNameVersion                     : 'Edge 95.0.1020.30'
      AgentNameVersionMajor                : 'Edge 95'

# NOTE: TODO: Apparently Edge 94 and 95 (tried one Windows, Linux and Android) does NOT have this Freeze/Reduce option anymore ?!?!
# This next one is an educated guess.
# __GUESSED__ Windows 10, Edge FROZEN
- test:
    input:
      user_agent_string: 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/93.0.0.0 Safari/537.36 Edg/93.0.0.0'
    expected:
      DeviceClass                          : 'Desktop'
      DeviceName                           : 'Desktop'
      DeviceBrand                          : 'Unknown'
      DeviceCpu                            : 'Intel x86_64'
      DeviceCpuBits                        : '64'
      OperatingSystemClass                 : 'Desktop'
      OperatingSystemName                  : 'Windows NT'
      OperatingSystemVersion               : '>=10'
      OperatingSystemVersionMajor          : '>=10'
      OperatingSystemNameVersion           : 'Windows >=10'
      OperatingSystemNameVersionMajor      : 'Windows >=10'
      LayoutEngineClass                    : 'Browser'
      LayoutEngineName                     : 'Blink'
      LayoutEngineVersion                  : '93'
      LayoutEngineVersionMajor             : '93'
      LayoutEngineNameVersion              : 'Blink 93'
      LayoutEngineNameVersionMajor         : 'Blink 93'
      AgentClass                           : 'Browser'
      AgentName                            : 'Edge'
      AgentVersion                         : '93'
      AgentVersionMajor                    : '93'
      AgentNameVersion                     : 'Edge 93'
      AgentNameVersionMajor                : 'Edge 93'


# Test case 10_15_7 before 90: should report version 10.15.7.
- test:
    input:
      user_agent_string: 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.111 Safari/537.36'
    expected:
      DeviceClass                          : 'Desktop'
      DeviceName                           : 'Apple Macintosh'
      DeviceBrand                          : 'Apple'
      DeviceCpu                            : 'Intel'
      DeviceCpuBits                        : '64'
      OperatingSystemClass                 : 'Desktop'
      OperatingSystemName                  : 'Mac OS'
      OperatingSystemVersion               : '10.15.7'
      OperatingSystemVersionMajor          : '10.15'
      OperatingSystemNameVersion           : 'Mac OS 10.15.7'
      OperatingSystemNameVersionMajor      : 'Mac OS 10.15'
      LayoutEngineClass                    : 'Browser'
      LayoutEngineName                     : 'Blink'
      LayoutEngineVersion                  : '86.0'
      LayoutEngineVersionMajor             : '86'
      LayoutEngineNameVersion              : 'Blink 86.0'
      LayoutEngineNameVersionMajor         : 'Blink 86'
      AgentClass                           : 'Browser'
      AgentName                            : 'Chrome'
      AgentVersion                         : '86.0.4240.111'
      AgentVersionMajor                    : '86'
      AgentNameVersion                     : 'Chrome 86.0.4240.111'
      AgentNameVersionMajor                : 'Chrome 86'

# Normal MacOs Chrome 95 --> MacOS version is frozen : should report unknown version
- test:
    input:
      user_agent_string: 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/95.0.4638.69 Safari/537.36'
    expected:
      DeviceClass                          : 'Desktop'
      DeviceName                           : 'Apple Macintosh'
      DeviceBrand                          : 'Apple'
      DeviceCpu                            : 'Intel'
      DeviceCpuBits                        : '64'
      OperatingSystemClass                 : 'Desktop'
      OperatingSystemName                  : 'Mac OS'
      OperatingSystemVersion               : '>=10.15.7'
      OperatingSystemVersionMajor          : '>=10.15'
      OperatingSystemNameVersion           : 'Mac OS >=10.15.7'
      OperatingSystemNameVersionMajor      : 'Mac OS >=10.15'
      LayoutEngineClass                    : 'Browser'
      LayoutEngineName                     : 'Blink'
      LayoutEngineVersion                  : '95.0'
      LayoutEngineVersionMajor             : '95'
      LayoutEngineNameVersion              : 'Blink 95.0'
      LayoutEngineNameVersionMajor         : 'Blink 95'
      AgentClass                           : 'Browser'
      AgentName                            : 'Chrome'
      AgentVersion                         : '95.0.4638.69'
      AgentVersionMajor                    : '95'
      AgentNameVersion                     : 'Chrome 95.0.4638.69'
      AgentNameVersionMajor                : 'Chrome 95'

# Reduced MacOs Chrome 95
- test:
    input:
      user_agent_string: 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/95.0.0.0 Safari/537.36'
    expected:
      DeviceClass                          : 'Desktop'
      DeviceName                           : 'Apple Macintosh'
      DeviceBrand                          : 'Apple'
      DeviceCpu                            : 'Intel'
      DeviceCpuBits                        : '64'
      OperatingSystemClass                 : 'Desktop'
      OperatingSystemName                  : 'Mac OS'
      OperatingSystemVersion               : '>=10.15.7'
      OperatingSystemVersionMajor          : '>=10.15'
      OperatingSystemNameVersion           : 'Mac OS >=10.15.7'
      OperatingSystemNameVersionMajor      : 'Mac OS >=10.15'
      LayoutEngineClass                    : 'Browser'
      LayoutEngineName                     : 'Blink'
      LayoutEngineVersion                  : '95'
      LayoutEngineVersionMajor             : '95'
      LayoutEngineNameVersion              : 'Blink 95'
      LayoutEngineNameVersionMajor         : 'Blink 95'
      AgentClass                           : 'Browser'
      AgentName                            : 'Chrome'
      AgentVersion                         : '95'
      AgentVersionMajor                    : '95'
      AgentNameVersion                     : 'Chrome 95'
      AgentNameVersionMajor                : 'Chrome 95'


# Real example: A Nokia 7.2 phone running Android 11
# Full:
- test:
    input:
      user_agent_string: 'Mozilla/5.0 (Linux; Android 11; Nokia 7.2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/97.0.4692.98 Mobile Safari/537.36'
    expected:
      DeviceClass                          : 'Phone'
      DeviceName                           : 'Nokia 7.2'
      DeviceBrand                          : 'Nokia'
      OperatingSystemClass                 : 'Mobile'
      OperatingSystemName                  : 'Android'
      OperatingSystemVersion               : '11'
      OperatingSystemVersionMajor          : '11'
      OperatingSystemNameVersion           : 'Android 11'
      OperatingSystemNameVersionMajor      : 'Android 11'
      LayoutEngineClass                    : 'Browser'
      LayoutEngineName                     : 'Blink'
      LayoutEngineVersion                  : '97.0'
      LayoutEngineVersionMajor             : '97'
      LayoutEngineNameVersion              : 'Blink 97.0'
      LayoutEngineNameVersionMajor         : 'Blink 97'
      AgentClass                           : 'Browser'
      AgentName                            : 'Chrome'
      AgentVersion                         : '97.0.4692.98'
      AgentVersionMajor                    : '97'
      AgentNameVersion                     : 'Chrome 97.0.4692.98'
      AgentNameVersionMajor                : 'Chrome 97'

# Reduced:
- test:
    input:
      user_agent_string: 'Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/97.0.0.0 Mobile Safari/537.36'
    expected:
      DeviceClass                          : 'Phone'
      DeviceName                           : 'Android Mobile'
      DeviceBrand                          : 'Unknown'
      OperatingSystemClass                 : 'Mobile'
      OperatingSystemName                  : 'Android'
      OperatingSystemVersion               : '??'
      OperatingSystemVersionMajor          : '??'
      OperatingSystemNameVersion           : 'Android ??'
      OperatingSystemNameVersionMajor      : 'Android ??'
      LayoutEngineClass                    : 'Browser'
      LayoutEngineName                     : 'Blink'
      LayoutEngineVersion                  : '97'
      LayoutEngineVersionMajor             : '97'
      LayoutEngineNameVersion              : 'Blink 97'
      LayoutEngineNameVersionMajor         : 'Blink 97'
      AgentClass                           : 'Browser'
      AgentName                            : 'Chrome'
      AgentVersion                         : '97'
      AgentVersionMajor                    : '97'
      AgentNameVersion                     : 'Chrome 97'
      AgentNameVersionMajor                : 'Chrome 97'

# https://docs.microsoft.com/en-us/microsoft-edge/web-platform/how-to-detect-win11

# User-Agent strings won't be updated to differentiate between Windows 11 and Windows 10.
# We don't recommend using User-Agent strings to retrieve user agent data.
# Browsers that don't support User-Agent Client Hints won't be able to differentiate between Windows 11 and Windows 10.

# Windows 10 was released in 2015 ~ Chrome 40
# Windows 11 was announced June 2021 (~ Chrome 91) and released Oktober 2021 (~ Chrome 94)
- set:
    name: 'ChromeWindows10Reliable'
    values:
    - '30'
    - '31'
    - '32'
    - '33'
    - '34'
    - '35'
    - '36'
    - '37'
    - '38'
    - '39'
    - '40'
    - '41'
    - '42'
    - '43'
    - '44'
    - '45'
    - '46'
    - '47'
    - '48'
    - '49'
    - '50'
    - '51'
    - '52'
    - '53'
    - '54'
    - '55'
    - '56'
    - '57'
    - '58'
    - '59'
    - '60'
    - '61'
    - '62'
    - '63'
    - '64'
    - '65'
    - '66'
    - '67'
    - '68'
    - '69'
    - '70'
    - '71'
    - '72'
    - '73'
    - '74'
    - '75'
    - '76'
    - '77'
    - '78'
    - '79'
    - '80'
    - '81'
    - '82'
    - '83'
    - '84'
    - '85'
    - '86'
    - '87'
    - '88'
    - '89'
    - '90'
    - '91'


# Chrome
- matcher:
    variable:
    - 'Chrome                              :agent.product.name="Chrome"^'
    require:
    - 'IsNull[@Chrome>>]'
    - 'agent.(1)product.(1)comments.entry="Windows NT 10.0"'
    - '@Chrome.version[1]!?ChromeWindows10Reliable'
    extract:
    - 'OperatingSystemName                 :      102 : "Windows NT"'
    - 'OperatingSystemVersion              :      102 : ">=10"'
    - 'OperatingSystemVersionMajor         :      102 : ">=10"'
    - 'OperatingSystemNameVersion          :      102 : "Windows >=10"'
    - 'OperatingSystemNameVersionMajor     :      102 : "Windows >=10"'

# Headless Chrome
- matcher:
    variable:
    - 'Chrome                              :agent.product.name="HeadlessChrome"^'
    require:
    - 'IsNull[@Chrome>>]'
    - 'agent.(1)product.(1)comments.entry="Windows NT 10.0"'
    - '@Chrome.version[1]!?ChromeWindows10Reliable'
    extract:
    - 'OperatingSystemName                 :      102 : "Windows NT"'
    - 'OperatingSystemVersion              :      102 : ">=10"'
    - 'OperatingSystemVersionMajor         :      102 : ">=10"'
    - 'OperatingSystemNameVersion          :      102 : "Windows >=10"'
    - 'OperatingSystemNameVersionMajor     :      102 : "Windows >=10"'

# Edge
- matcher:
    variable:
    - 'Chrome                              :agent.product.name="Chrome"^'
    require:
    - 'agent.product.name="Edg"' # Performance trick
    - '@Chrome>>.name="Edg"'
    - 'agent.(1)product.(1)comments.entry="Windows NT 10.0"'
    - '@Chrome.version[1]!?ChromeWindows10Reliable'
    extract:
    - 'OperatingSystemName                 :      102 : "Windows NT"'
    - 'OperatingSystemVersion              :      102 : ">=10"'
    - 'OperatingSystemVersionMajor         :      102 : ">=10"'
    - 'OperatingSystemNameVersion          :      102 : "Windows >=10"'
    - 'OperatingSystemNameVersionMajor     :      102 : "Windows >=10"'

# Headless Edge
- matcher:
    variable:
    - 'Chrome                              :agent.product.name="HeadlessChrome"^'
    require:
    - 'agent.product.name="Edg"' # Performance trick
    - '@Chrome>>.name="Edg"'
    - 'agent.(1)product.(1)comments.entry="Windows NT 10.0"'
    - '@Chrome.version[1]!?ChromeWindows10Reliable'
    extract:
    - 'OperatingSystemName                 :      102 : "Windows NT"'
    - 'OperatingSystemVersion              :      102 : ">=10"'
    - 'OperatingSystemVersionMajor         :      102 : ">=10"'
    - 'OperatingSystemNameVersion          :      102 : "Windows >=10"'
    - 'OperatingSystemNameVersionMajor     :      102 : "Windows >=10"'


# Chrome with noise appended
- matcher:
    variable:
    - 'Chrome                              :agent.product.name="Chrome"^'
    require:
    - '@Chrome>>.name.keyvalue'
    - 'agent.(1)product.(1)comments.entry="Windows NT 10.0"'
    - '@Chrome.version[1]!?ChromeWindows10Reliable'
    extract:
    - 'OperatingSystemName                 :      102 : "Windows NT"'
    - 'OperatingSystemVersion              :      102 : ">=10"'
    - 'OperatingSystemVersionMajor         :      102 : ">=10"'
    - 'OperatingSystemNameVersion          :      102 : "Windows >=10"'
    - 'OperatingSystemNameVersionMajor     :      102 : "Windows >=10"'

# Headless Chrome with noise appended
- matcher:
    variable:
    - 'Chrome                              :agent.product.name="HeadlessChrome"^'
    require:
    - '@Chrome>>.name.keyvalue'
    - 'agent.(1)product.(1)comments.entry="Windows NT 10.0"'
    - '@Chrome.version[1]!?ChromeWindows10Reliable'
    extract:
    - 'OperatingSystemName                 :      102 : "Windows NT"'
    - 'OperatingSystemVersion              :      102 : ">=10"'
    - 'OperatingSystemVersionMajor         :      102 : ">=10"'
    - 'OperatingSystemNameVersion          :      102 : "Windows >=10"'
    - 'OperatingSystemNameVersionMajor     :      102 : "Windows >=10"'

# Chrome 99 on Windows 11
- test:
    input:
      user_agent_string: 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/99.0.4844.51 Safari/537.36'
    expected:
      DeviceClass                          : 'Desktop'
      DeviceName                           : 'Desktop'
      DeviceBrand                          : 'Unknown'
      DeviceCpu                            : 'Intel x86_64'
      DeviceCpuBits                        : '64'
      OperatingSystemClass                 : 'Desktop'
      OperatingSystemName                  : 'Windows NT'
      OperatingSystemVersion               : '>=10'
      OperatingSystemVersionMajor          : '>=10'
      OperatingSystemNameVersion           : 'Windows >=10'
      OperatingSystemNameVersionMajor      : 'Windows >=10'
      LayoutEngineClass                    : 'Browser'
      LayoutEngineName                     : 'Blink'
      LayoutEngineVersion                  : '99.0'
      LayoutEngineVersionMajor             : '99'
      LayoutEngineNameVersion              : 'Blink 99.0'
      LayoutEngineNameVersionMajor         : 'Blink 99'
      AgentClass                           : 'Browser'
      AgentName                            : 'Chrome'
      AgentVersion                         : '99.0.4844.51'
      AgentVersionMajor                    : '99'
      AgentNameVersion                     : 'Chrome 99.0.4844.51'
      AgentNameVersionMajor                : 'Chrome 99'

# Chrome 99 on Windows 11 Reduced
- test:
    input:
      user_agent_string: 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/99.0.0.0 Safari/537.36'
    expected:
      DeviceClass                          : 'Desktop'
      DeviceName                           : 'Desktop'
      DeviceBrand                          : 'Unknown'
      DeviceCpu                            : 'Intel x86_64'
      DeviceCpuBits                        : '64'
      OperatingSystemClass                 : 'Desktop'
      OperatingSystemName                  : 'Windows NT'
      OperatingSystemVersion               : '??'
      OperatingSystemVersionMajor          : '??'
      OperatingSystemNameVersion           : 'Windows NT ??'
      OperatingSystemNameVersionMajor      : 'Windows NT ??'
      LayoutEngineClass                    : 'Browser'
      LayoutEngineName                     : 'Blink'
      LayoutEngineVersion                  : '99'
      LayoutEngineVersionMajor             : '99'
      LayoutEngineNameVersion              : 'Blink 99'
      LayoutEngineNameVersionMajor         : 'Blink 99'
      AgentClass                           : 'Browser'
      AgentName                            : 'Chrome'
      AgentVersion                         : '99'
      AgentVersionMajor                    : '99'
      AgentNameVersion                     : 'Chrome 99'
      AgentNameVersionMajor                : 'Chrome 99'

- matcher:
    variable:
    - 'Chrome                              :agent.product.name="Chrome"^'
    - 'ChromeVersion                       :@Chrome.version'
    require:
    - '@ChromeVersion[1]="99"'
    - '@ChromeVersion[2]!="0"'
    extract:
    - 'LayoutEngineVersion                 :     3000 : Concat[@ChromeVersion[2];".0"]'
    - 'AgentVersion                        :     3000 : Concat[@ChromeVersion[2];".0"]' # Losing the last two version parts.


# Chrome 100 on Android 11
- test:
    input:
      user_agent_string: 'Mozilla/5.0 (Linux; Android 11; Nokia 7.2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/100.0.4896.18 Mobile Safari/537.36'
    expected:
      DeviceClass                          : 'Phone'
      DeviceName                           : 'Nokia 7.2'
      DeviceBrand                          : 'Nokia'
      OperatingSystemClass                 : 'Mobile'
      OperatingSystemName                  : 'Android'
      OperatingSystemVersion               : '11'
      OperatingSystemVersionMajor          : '11'
      OperatingSystemNameVersion           : 'Android 11'
      OperatingSystemNameVersionMajor      : 'Android 11'
      LayoutEngineClass                    : 'Browser'
      LayoutEngineName                     : 'Blink'
      LayoutEngineVersion                  : '100.0'
      LayoutEngineVersionMajor             : '100'
      LayoutEngineNameVersion              : 'Blink 100.0'
      LayoutEngineNameVersionMajor         : 'Blink 100'
      AgentClass                           : 'Browser'
      AgentName                            : 'Chrome'
      AgentVersion                         : '100.0.4896.18'
      AgentVersionMajor                    : '100'
      AgentNameVersion                     : 'Chrome 100.0.4896.18'
      AgentNameVersionMajor                : 'Chrome 100'

# Chrome 100 on Android 11 with chrome://flags/#force-major-version-to-minor enabled
- test:
    input:
      user_agent_string: 'Mozilla/5.0 (Linux; Android 11; Nokia 7.2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/99.100.4896.18 Mobile Safari/537.36'
    expected:
      DeviceClass                          : 'Phone'
      DeviceName                           : 'Nokia 7.2'
      DeviceBrand                          : 'Nokia'
      OperatingSystemClass                 : 'Mobile'
      OperatingSystemName                  : 'Android'
      OperatingSystemVersion               : '11'
      OperatingSystemVersionMajor          : '11'
      OperatingSystemNameVersion           : 'Android 11'
      OperatingSystemNameVersionMajor      : 'Android 11'
      LayoutEngineClass                    : 'Browser'
      LayoutEngineName                     : 'Blink'
      LayoutEngineVersion                  : '100.0'
      LayoutEngineVersionMajor             : '100'
      LayoutEngineNameVersion              : 'Blink 100.0'
      LayoutEngineNameVersionMajor         : 'Blink 100'
      AgentClass                           : 'Browser'
      AgentName                            : 'Chrome'
      AgentVersion                         : '100.0'
      AgentVersionMajor                    : '100'
      AgentNameVersion                     : 'Chrome 100.0'
      AgentNameVersionMajor                : 'Chrome 100'


# Normal Chrome OS
- test:
    input:
      user_agent_string: 'Mozilla/5.0 (X11; CrOS x86_64 14150.57.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/94.0.4606.97 Safari/537.36'
    expected:
      DeviceClass                          : 'Desktop'
      DeviceName                           : 'Chromebook'
      DeviceBrand                          : 'Unknown'
      DeviceCpu                            : 'Intel x86_64'
      DeviceCpuBits                        : '64'
      OperatingSystemClass                 : 'Desktop'
      OperatingSystemName                  : 'Chrome OS'
      OperatingSystemVersion               : '94.0.4606.97'
      OperatingSystemVersionMajor          : '94'
      OperatingSystemNameVersion           : 'Chrome OS 94.0.4606.97'
      OperatingSystemNameVersionMajor      : 'Chrome OS 94'
      OperatingSystemVersionBuild          : '14150.57.0'
      LayoutEngineClass                    : 'Browser'
      LayoutEngineName                     : 'Blink'
      LayoutEngineVersion                  : '94.0'
      LayoutEngineVersionMajor             : '94'
      LayoutEngineNameVersion              : 'Blink 94.0'
      LayoutEngineNameVersionMajor         : 'Blink 94'
      AgentClass                           : 'Browser'
      AgentName                            : 'Chrome'
      AgentVersion                         : '94.0.4606.97'
      AgentVersionMajor                    : '94'
      AgentNameVersion                     : 'Chrome 94.0.4606.97'
      AgentNameVersionMajor                : 'Chrome 94'

# Chrome 101 on Reduced ChromeOS without client hints (Manually constructed from the Chromium Source code) OLD version
- test:
    input:
      user_agent_string: 'Mozilla/5.0 (X11; CrOS x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/101.0.0.0 Safari/537.36'
    expected:
      DeviceClass                          : 'Desktop'
      DeviceName                           : 'Chromebook'
      DeviceBrand                          : 'Unknown'
      DeviceCpu                            : 'Intel x86_64'
      DeviceCpuBits                        : '64'
      OperatingSystemClass                 : 'Desktop'
      OperatingSystemName                  : 'Chrome OS'
      OperatingSystemVersion               : '101'
      OperatingSystemVersionMajor          : '101'
      OperatingSystemNameVersion           : 'Chrome OS 101'
      OperatingSystemNameVersionMajor      : 'Chrome OS 101'
      LayoutEngineClass                    : 'Browser'
      LayoutEngineName                     : 'Blink'
      LayoutEngineVersion                  : '101'
      LayoutEngineVersionMajor             : '101'
      LayoutEngineNameVersion              : 'Blink 101'
      LayoutEngineNameVersionMajor         : 'Blink 101'
      AgentClass                           : 'Browser'
      AgentName                            : 'Chrome'
      AgentVersion                         : '101'
      AgentVersionMajor                    : '101'
      AgentNameVersion                     : 'Chrome 101'
      AgentNameVersionMajor                : 'Chrome 101'

# Chrome 101 on Reduced ChromeOS without client hints (Manually constructed from the Chromium Source code) NEW version
- test:
    input:
      user_agent_string: 'Mozilla/5.0 (X11; CrOS x86_64 14541.0.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/101.0.0.0 Safari/537.36'
    expected:
      DeviceClass                          : 'Desktop'
      DeviceName                           : 'Chromebook'
      DeviceBrand                          : 'Unknown'
      DeviceCpu                            : 'Intel x86_64'
      DeviceCpuBits                        : '64'
      OperatingSystemClass                 : 'Desktop'
      OperatingSystemName                  : 'Chrome OS'
      OperatingSystemVersion               : '101'
      OperatingSystemVersionMajor          : '101'
      OperatingSystemNameVersion           : 'Chrome OS 101'
      OperatingSystemNameVersionMajor      : 'Chrome OS 101'
      # OperatingSystemVersionBuild          : '14541.0.0' # This build tag is nonsense as it is hardcoded.
      LayoutEngineClass                    : 'Browser'
      LayoutEngineName                     : 'Blink'
      LayoutEngineVersion                  : '101'
      LayoutEngineVersionMajor             : '101'
      LayoutEngineNameVersion              : 'Blink 101'
      LayoutEngineNameVersionMajor         : 'Blink 101'
      AgentClass                           : 'Browser'
      AgentName                            : 'Chrome'
      AgentVersion                         : '101'
      AgentVersionMajor                    : '101'
      AgentNameVersion                     : 'Chrome 101'
      AgentNameVersionMajor                : 'Chrome 101'

# Chrome 101 on Normal ChromeOS without client hints (Manually constructed from the Chromium Source code) NEW version
- test:
    input:
      user_agent_string: 'Mozilla/5.0 (X11; CrOS x86_64 14541.0.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/101.0.123.456 Safari/537.36'
    expected:
      DeviceClass                          : 'Desktop'
      DeviceName                           : 'Chromebook'
      DeviceBrand                          : 'Unknown'
      DeviceCpu                            : 'Intel x86_64'
      DeviceCpuBits                        : '64'
      OperatingSystemClass                 : 'Desktop'
      OperatingSystemName                  : 'Chrome OS'
      OperatingSystemVersion               : '101.0.123.456'
      OperatingSystemVersionMajor          : '101'
      OperatingSystemNameVersion           : 'Chrome OS 101.0.123.456'
      OperatingSystemNameVersionMajor      : 'Chrome OS 101'
      OperatingSystemVersionBuild          : '14541.0.0'
      LayoutEngineClass                    : 'Browser'
      LayoutEngineName                     : 'Blink'
      LayoutEngineVersion                  : '101.0'
      LayoutEngineVersionMajor             : '101'
      LayoutEngineNameVersion              : 'Blink 101.0'
      LayoutEngineNameVersionMajor         : 'Blink 101'
      AgentClass                           : 'Browser'
      AgentName                            : 'Chrome'
      AgentVersion                         : '101.0.123.456'
      AgentVersionMajor                    : '101'
      AgentNameVersion                     : 'Chrome 101.0.123.456'
      AgentNameVersionMajor                : 'Chrome 101'


# TODO: What is SECSSOBrowserChrome ?
- test:
    input:
      User-Agent                           : 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/102.0.0.0 Safari/537.36 SECSSOBrowserChrome'
    expected:
      DeviceClass                          : 'Desktop'
      DeviceName                           : 'Desktop'
      DeviceBrand                          : 'Unknown'
      DeviceCpu                            : 'Intel x86_64'
      DeviceCpuBits                        : '64'
      OperatingSystemClass                 : 'Desktop'
      OperatingSystemName                  : 'Windows NT'
      OperatingSystemVersion               : '??'
      OperatingSystemVersionMajor          : '??'
      OperatingSystemNameVersion           : 'Windows NT ??'
      OperatingSystemNameVersionMajor      : 'Windows NT ??'
      LayoutEngineClass                    : 'Browser'
      LayoutEngineName                     : 'Blink'
      LayoutEngineVersion                  : '102'
      LayoutEngineVersionMajor             : '102'
      LayoutEngineNameVersion              : 'Blink 102'
      LayoutEngineNameVersionMajor         : 'Blink 102'
      AgentClass                           : 'Browser'
      AgentName                            : 'Chrome'
      AgentVersion                         : '102'
      AgentVersionMajor                    : '102'
      AgentNameVersion                     : 'Chrome 102'
      AgentNameVersionMajor                : 'Chrome 102'

- test:
    input:
      User-Agent                                 : 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/107.0.0.0 Safari/537.36'
      Sec-Ch-Ua                                  : '"Google Chrome";v="107", "Chromium";v="107", "Not=A?Brand";v="24"'
      Sec-Ch-Ua-Arch                             : '"arm"'
      Sec-Ch-Ua-Bitness                          : '"64"'
      Sec-Ch-Ua-Full-Version                     : '"107.0.5304.121"'
      Sec-Ch-Ua-Full-Version-List                : '"Google Chrome";v="107.0.5304.121", "Chromium";v="107.0.5304.121", "Not=A?Brand";v="24.0.0.0"'
      Sec-Ch-Ua-Mobile                           : '?0'
      Sec-Ch-Ua-Model                            : '""'
      Sec-Ch-Ua-Platform                         : '"macOS"'
      Sec-Ch-Ua-Platform-Version                 : '"12.6.0"'
      Sec-Ch-Ua-Wow64                            : '?0'
    expected:
      DeviceClass                                : 'Desktop'
      DeviceName                                 : 'Apple Macintosh'
      DeviceBrand                                : 'Apple'
      DeviceCpu                                  : 'ARM'
      DeviceCpuBits                              : '64'
      OperatingSystemClass                       : 'Desktop'
      OperatingSystemName                        : 'Mac OS'
      OperatingSystemVersion                     : '12.6.0'
      OperatingSystemVersionMajor                : '12'
      OperatingSystemNameVersion                 : 'Mac OS 12.6.0'
      OperatingSystemNameVersionMajor            : 'Mac OS 12'
      LayoutEngineClass                          : 'Browser'
      LayoutEngineName                           : 'Blink'
      LayoutEngineVersion                        : '107.0'
      LayoutEngineVersionMajor                   : '107'
      LayoutEngineNameVersion                    : 'Blink 107.0'
      LayoutEngineNameVersionMajor               : 'Blink 107'
      AgentClass                                 : 'Browser'
      AgentName                                  : 'Chrome'
      AgentVersion                               : '107.0.5304.121'
      AgentVersionMajor                          : '107'
      AgentNameVersion                           : 'Chrome 107.0.5304.121'
      AgentNameVersionMajor                      : 'Chrome 107'
      UAClientHintArchitecture                   : 'arm'
      UAClientHintBitness                        : '64'
      UAClientHintBrands_0_Brand                 : 'Google Chrome'
      UAClientHintBrands_0_Version               : '107'
      UAClientHintBrands_1_Brand                 : 'Chromium'
      UAClientHintBrands_1_Version               : '107'
      UAClientHintFullVersion                    : '107.0.5304.121'
      UAClientHintFullVersionList_0_Brand        : 'Google Chrome'
      UAClientHintFullVersionList_0_Version      : '107.0.5304.121'
      UAClientHintFullVersionList_1_Brand        : 'Chromium'
      UAClientHintFullVersionList_1_Version      : '107.0.5304.121'
      UAClientHintMobile                         : 'false'
      UAClientHintPlatform                       : 'macOS'
      UAClientHintPlatformVersion                : '12.6.0'
      UAClientHintWow64                          : 'false'


# Edge on Windows 7
- test:
    input:
      User-Agent                           : 'Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/107.0.0.0 Safari/537.36 Edg/107.0.1418.62'
    expected:
      DeviceClass                          : 'Desktop'
      DeviceName                           : 'Desktop'
      DeviceBrand                          : 'Unknown'
      DeviceCpu                            : 'Intel x86_64'
      DeviceCpuBits                        : '64'
      OperatingSystemClass                 : 'Desktop'
      OperatingSystemName                  : 'Windows NT'
      OperatingSystemVersion               : '7'
      OperatingSystemVersionMajor          : '7'
      OperatingSystemNameVersion           : 'Windows 7'
      OperatingSystemNameVersionMajor      : 'Windows 7'
      LayoutEngineClass                    : 'Browser'
      LayoutEngineName                     : 'Blink'
      LayoutEngineVersion                  : '107'
      LayoutEngineVersionMajor             : '107'
      LayoutEngineNameVersion              : 'Blink 107'
      LayoutEngineNameVersionMajor         : 'Blink 107'
      AgentClass                           : 'Browser'
      AgentName                            : 'Edge'
      AgentVersion                         : '107'
      AgentVersionMajor                    : '107'
      AgentNameVersion                     : 'Edge 107'
      AgentNameVersionMajor                : 'Edge 107'


# Edge on Windows 10/11
- test:
    input:
      User-Agent                           : 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/107.0.0.0 Safari/537.36 Edg/107.0.1418.52'
      Sec-Ch-Ua                            : '"Microsoft Edge";v="107", "Chromium";v="107", "Not=A?Brand";v="24"'
      Sec-Ch-Ua-Mobile                     : '?0'
      Sec-Ch-Ua-Platform                   : '"Windows"'
    expected:
      DeviceClass                          : 'Desktop'
      DeviceName                           : 'Desktop'
      DeviceBrand                          : 'Unknown'
      DeviceCpu                            : 'Intel x86_64'
      DeviceCpuBits                        : '64'
      OperatingSystemClass                 : 'Desktop'
      OperatingSystemName                  : 'Windows NT'
      OperatingSystemVersion               : '>=10'
      OperatingSystemVersionMajor          : '>=10'
      OperatingSystemNameVersion           : 'Windows >=10'
      OperatingSystemNameVersionMajor      : 'Windows >=10'
      LayoutEngineClass                    : 'Browser'
      LayoutEngineName                     : 'Blink'
      LayoutEngineVersion                  : '107'
      LayoutEngineVersionMajor             : '107'
      LayoutEngineNameVersion              : 'Blink 107'
      LayoutEngineNameVersionMajor         : 'Blink 107'
      AgentClass                           : 'Browser'
      AgentName                            : 'Edge'
      AgentVersion                         : '107'
      AgentVersionMajor                    : '107'
      AgentNameVersion                     : 'Edge 107'
      AgentNameVersionMajor                : 'Edge 107'
      UAClientHintBrands_0_Brand           : 'Microsoft Edge'
      UAClientHintBrands_0_Version         : '107'
      UAClientHintBrands_1_Brand           : 'Chromium'
      UAClientHintBrands_1_Version         : '107'
      UAClientHintMobile                   : 'false'
      UAClientHintPlatform                 : 'Windows'


- test:
    input:
      User-Agent                                 : 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/108.0.0.0 Safari/537.36'
      Sec-Ch-Ua                                  : '"Not?A_Brand";v="8", "Chromium";v="108", "Google Chrome";v="108"'
      Sec-Ch-Ua-Arch                             : '"x86"'
      Sec-Ch-Ua-Bitness                          : '"64"'
      Sec-Ch-Ua-Full-Version                     : '"108.0.5359.72"'
      Sec-Ch-Ua-Full-Version-List                : '"Not?A_Brand";v="8.0.0.0", "Chromium";v="108.0.5359.72", "Google Chrome";v="108.0.5359.72"'
      Sec-Ch-Ua-Mobile                           : '?0'
      Sec-Ch-Ua-Model                            : '""'
      Sec-Ch-Ua-Platform                         : '"Windows"'
      Sec-Ch-Ua-Platform-Version                 : '"0.1.0"'
      Sec-Ch-Ua-Wow64                            : '?0'
    expected:
      DeviceClass                                : 'Desktop'
      DeviceName                                 : 'Desktop'
      DeviceBrand                                : 'Unknown'
      DeviceCpu                                  : 'Intel x86_64'
      DeviceCpuBits                              : '64'
      OperatingSystemClass                       : 'Desktop'
      OperatingSystemName                        : 'Windows NT'
      OperatingSystemVersion                     : '7'
      OperatingSystemVersionMajor                : '7'
      OperatingSystemNameVersion                 : 'Windows 7'
      OperatingSystemNameVersionMajor            : 'Windows 7'
      LayoutEngineClass                          : 'Browser'
      LayoutEngineName                           : 'Blink'
      LayoutEngineVersion                        : '108.0'
      LayoutEngineVersionMajor                   : '108'
      LayoutEngineNameVersion                    : 'Blink 108.0'
      LayoutEngineNameVersionMajor               : 'Blink 108'
      AgentClass                                 : 'Browser'
      AgentName                                  : 'Chrome'
      AgentVersion                               : '108.0.5359.72'
      AgentVersionMajor                          : '108'
      AgentNameVersion                           : 'Chrome 108.0.5359.72'
      AgentNameVersionMajor                      : 'Chrome 108'
      UAClientHintArchitecture                   : 'x86'
      UAClientHintBitness                        : '64'
      UAClientHintBrands_0_Brand                 : 'Chromium'
      UAClientHintBrands_0_Version               : '108'
      UAClientHintBrands_1_Brand                 : 'Google Chrome'
      UAClientHintBrands_1_Version               : '108'
      UAClientHintFullVersion                    : '108.0.5359.72'
      UAClientHintFullVersionList_0_Brand        : 'Chromium'
      UAClientHintFullVersionList_0_Version      : '108.0.5359.72'
      UAClientHintFullVersionList_1_Brand        : 'Google Chrome'
      UAClientHintFullVersionList_1_Version      : '108.0.5359.72'
      UAClientHintMobile                         : 'false'
      UAClientHintPlatform                       : 'Windows'
      UAClientHintPlatformVersion                : '0.1.0'
      UAClientHintWow64                          : 'false'





© 2015 - 2025 Weber Informatics LLC | Privacy Policy