bot.incolumitas.com Open in urlscan Pro
167.99.241.135  Public Scan

URL: https://bot.incolumitas.com/
Submission: On October 13 via manual from US — Scanned from DE

Form analysis 0 forms found in the DOM

Text Content

CURATED LIST OF BOT / HEADLESS CHROME DETECTION TESTS

v0.6.1 (29th June 2022) 🚀 [Changelog]

Use with Puppeteer Use with Playwright Use with Google Chrome Use with Advanced
Bot Use with Selenium

              

This page attempts to detect if you are a Bot or Not. The tests are constantly
kept up to date, please check the changelog here.

Table of Contents
 1.  Behavioral Classification
 2.  More Sources and Links
 3.  Bot Challenge
 4.  New Detection Tests
 5.  Old Detection Tests
 6.  Datacenter IP Address API
 7.  Proxy/VPN Detection Tests
 8.  Http Headers
 9.  TCP/IP Fingerprint
 10. TLS Fingerprint
 11. JA3 TLS Fingerprint
 12. Browser Fingerprint
 13. Canvas Fingerprint
 14. WebGL Fingerprint
 15. Web Worker
 16. Service Worker
 17. Browser Data

--------------------------------------------------------------------------------

BEHAVIORAL BOT CLASSIFICATION

The test behavioralClassificationScore gives a rating between 0 (Bot) and 1
(Human) based on advanced behavioral heuristics. A score below 0.5 means that
you are most likely a bot.

The first score is computed after 1,5 seconds of browsing on this site. Then,
the behavioral score is updated after 4 seconds, 7 seconds, 10 seconds and 15
seconds.

Don't worry if you are browsing this page and you are given a score between 0.7
and 1.0, the behavioralClassificationScore consist of 30+ individual
classificators and it is normal that there are false positives.

In order to test your bot with a real world problem, your bot has to solve the
challenge below.

Your Behavioral Score: 1

Behavioral Bot Score after 1500ms: 1

Behavioral Bot Score after 4000ms: 1

Behavioral Bot Score after 7000ms: 1

Behavioral Bot Score after 10000ms: 1

Behavioral Bot Score after 15000ms: 1

--------------------------------------------------------------------------------

MORE SOURCES/INFORMATION

Expand all Sources / Links

--------------------------------------------------------------------------------

RESOURCES AND SOURCES

 1.  Kinda outdated (selenium, phantomjs): bot.sannysoft.com and a GitHub repo
     from early 2019 with similar detection techniques.
 2.  Headless detection GitHub Repo, last update in 2019
 3.  Lot of good stuff from here: puppeteer-extra-plugin-stealth
 4.  Antoine Vastel: antoinevastel.com/bots and a more recent detection page
     using HTTP Headers and his employers datadome detection page
 5.  Pretty active GitHub Gist about preventing puppeteer detection
 6.  Rather new detection method found on GitHub
 7.  Vastel is detecting puppeteer with HTTP headers in early 2019...
 8.  hacker news discussion started by Vastel
 9.  And the response from Evan Sangaline, where he passes the new detection
     again
 10. Rather recent article (February 2020) about Bot Detection 101 principles
 11. Very recent (31 January 2021) and powerful bot / headless / puppeteer
     detection techniques
 12. Che Browser, is it any good?
 13. SecretAgent, The Web Browser Built for Scraping
 14. CanvasBlocker nice Firefox plugin to prevent canvas fingerprinting
 15. A very good article from pixelprivacy.com about Browser Fingerprinting



OTHER BOT DETECTION SITES

 * browserleaks.com (very valuable information)
 * pixelscan (quite good and new)
 * creepjs (this guy is crazy)
 * f.vision (seems to do a very good job)
 * whatleaks.com (focuses on proxy detection and the networking detection
   aspects)

THE CATS: ANTI BOT COMPANIES

The following Anti Bot companies are all using their custom JavaScript detection
algorithms.
 * Kasada
 * Shape Security
 * DataDome
 * Distil Networks (Acuired)
 * Imperva
 * Incapsula (Imperva now)
 * PerimeterX
 * Akamai
 * FingerprintJS

 * WhiteOps
 * ShieldSquare
 * F5
 * Cloudflare (The End Boss)
 * Arkose Labs
 * Forter Protection
 * reCAPTCHA
 * BioCatch

MOUSES: BOT/PROXY COMPANIES (SELECTION)

The following Bot/Proxy companies are either selling bot/scraping or
anonymization technology (Proxies, VPN)
 * ZenScrape
 * Luminati.io / Brightdata
 * Oxylabs
 * Smartproxy
 * Storm Proxies
 * scraperapi.com
 * scrapingrobot.com

 * GeoSurf
 * NetNut
 * SOAX
 * scrapinghub
 * PacketStream
 * Apify
 * scrapingbee.com

--------------------------------------------------------------------------------

BOT CHALLENGE

Your bot has to fill out the form below and submit it. Then you are prompted to
confirm the pop-up dialoge. After confirmation, you will see a table with basket
items and prices. Update the prices of this table and scrape the data as a final
step.

Completing all those steps provides enough behaviroal information in order to
classify you as BotOrNot.

Show Code to Solve The Bot Challenge

--------------------------------------------------------------------------------

Bot Challenge
Username




Email




Number of Cookies
One Cookie Two Cookies Three Cookies I want all the Cookies
I agree to the terms and conditions
I like Cats I like big Cats



Submit

Name Price URL Price Update

--------------------------------------------------------------------------------

NEW DETECTION TESTS [1] [2] [3] [4]

{
  "puppeteerEvaluationScript": "OK",
  "webdriverPresent": "OK",
  "connectionRTT": "FAIL",
  "refMatch": "FAIL",
  "overrideTest": "FAIL",
  "overflowTest": "FAIL",
  "puppeteerExtraStealthUsed": "OK",
  "inconsistentUserAgent": "OK",
  "inconsistentLanguages": "FAIL",
  "inconsistentWebWorkerNavigatorPropery": "FAIL",
  "inconsistentServiceWorkerNavigatorPropery": "FAIL",
  "behavioralClassificationScore": 1
}

--------------------------------------------------------------------------------

OLD BOT DETECTION TESTS (INTOLI.COM TESTS + ADDITIONS, FINGERPRINT SCANNER
TESTS)

{
  "intoli": {
    "userAgent": "OK",
    "webDriver": "OK",
    "webDriverAdvanced": "OK",
    "pluginsLength": "OK",
    "pluginArray": "OK",
    "languages": "OK"
  },
  "fpscanner": {
    "PHANTOM_UA": "OK",
    "PHANTOM_PROPERTIES": "OK",
    "PHANTOM_ETSL": "OK",
    "PHANTOM_LANGUAGE": "OK",
    "PHANTOM_WEBSOCKET": "OK",
    "MQ_SCREEN": "OK",
    "PHANTOM_OVERFLOW": "OK",
    "PHANTOM_WINDOW_HEIGHT": "OK",
    "HEADCHR_UA": "OK",
    "WEBDRIVER": "FAIL",
    "HEADCHR_CHROME_OBJ": "OK",
    "HEADCHR_PERMISSIONS": "OK",
    "HEADCHR_PLUGINS": "OK",
    "HEADCHR_IFRAME": "OK",
    "CHR_DEBUG_TOOLS": "OK",
    "SELENIUM_DRIVER": "OK",
    "CHR_BATTERY": "OK",
    "CHR_MEMORY": "OK",
    "TRANSPARENT_PIXEL": "OK",
    "SEQUENTUM": "OK",
    "VIDEO_CODECS": "OK"
  }
}

--------------------------------------------------------------------------------

DATACENTER IP ADDRESS API [1]

I maintain a public API to check whether an IP address belongs to a data center
IP address range such as Azure, AWS, Digitalocean, Google Cloud Platform and
many other cloud providers. Please read the full blog article for more a
thorough introduction.

{
  "ip": "81.95.5.42",
  "rir": "RIPE NCC",
  "is_bogon": false,
  "is_datacenter": false,
  "is_tor": false,
  "is_proxy": false,
  "is_abuser": false,
  "company": {
    "name": "Core-Backbone GmbH",
    "domain": "core-backbone.com",
    "network": "81.95.0.0 - 81.95.15.255",
    "whois": "https://api.incolumitas.com/?whois=81.95.0.0"
  },
  "asn": {
    "asn": 201011,
    "route": "81.95.0.0/20",
    "descr": "NETZBETRIEB-GMBH, DE",
    "country": "de",
    "active": true,
    "org": "AS33891 Netzbetrieb GmbH",
    "domain": "as33891.net",
    "type": "business",
    "created": "2015-02-20",
    "updated": "2018-09-04",
    "rir": "ripe",
    "whois": "https://api.incolumitas.com/?whois=AS201011"
  },
  "location": {
    "country": "DE",
    "continent": "EU",
    "state": "Bavaria",
    "city": "Lappersdorf (Kareth)",
    "latitude": "49.0533",
    "longitude": "12.0726",
    "ipdeny_country": "de",
    "maxmind_geolite2_country": "de",
    "ipip_country": "de",
    "ip2location_country": "DE",
    "ip2location_state": "Bayern",
    "ip2location_city": "Nuremberg"
  },
  "elapsed_ms": 8.28
}

--------------------------------------------------------------------------------

PROXY/VPN DETECTION TESTS

Visit the Proxy/VPN detection Test Page

The Proxy/VPN detection test can be found on a dedicated page because the large
test battery would otherwise clog this detection page. Those techniques are:

 * Latency Test: Compare ping from browser to server with ping from web server
   to external IP address
 * WebRTC Test: Check if WebRTC leaks the real IP address
 * TCP/IP Fingerprint Test: Compare the OS induced from the TCP/IP fingerprint
   with the OS advertised by the User-Agent
 * Open Ports Test: Check if the host connecting to the web server has open
   ports
 * Datacenter IP Test: Check if the IP address belongs to a datacenter
 * DNS Leak Test: Check if the DNS server of the client leaks any data
 * IP Timezone vs Browser Timezone Test: Compare the IP geolocation timezone
   with the browser timezone
 * HTTP Proxy Headers Test: Look for suspicious proxy headers in the HTTP
   headers
 * And many other tests that are constantly being updated!

--------------------------------------------------------------------------------

HTTP HEADERS

{
  "host": "abs.incolumitas.com",
  "x-real-ip": "81.95.5.42",
  "connection": "close",
  "pragma": "no-cache",
  "cache-control": "no-cache",
  "accept-language": "de-DE,de;q=0.9",
  "user-agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.5249.119 Safari/537.36",
  "accept": "*/*",
  "origin": "https://bot.incolumitas.com",
  "sec-fetch-site": "same-site",
  "sec-fetch-mode": "cors",
  "sec-fetch-dest": "empty",
  "referer": "https://bot.incolumitas.com/",
  "accept-encoding": "gzip, deflate, br"
}

--------------------------------------------------------------------------------

ZARDAXT.PY - PASSIVE TCP/IP FINGERPRINT [1]

Several fields such as TCP Options or TCP Window Size or IP Fragment Flag depend
heavily on the OS type and version. Detecting operating systems by analyzing the
first incoming SYN packet is surely no exact science, but it's better than
nothing.

The TCP/IP fingerprinting API allows you to get your TCP/IP fingerprint. It can
be used for various purposes such as: Networking traffic analysis, Malware
detection, bot detection, Proxy / VPN detection and so on.

{
  "avgScoreOsClass": {
    "Android": "avg=7.13, N=230",
    "Linux": "avg=8.56, N=360",
    "Windows": "avg=4.77, N=1378",
    "iOS": "avg=4.84, N=152",
    "macOS": "avg=4.69, N=791"
  },
  "bestNGuesses": [
    {
      "os": "Linux",
      "score": "9.0/11.5"
    },
    {
      "os": "Linux",
      "score": "9.0/11.5"
    },
    {
      "os": "Linux",
      "score": "9.0/11.5"
    }
  ],
  "fp": {
    "dst_ip": "167.99.241.135",
    "dst_port": "443",
    "ip_df": 1,
    "ip_frag_off": 16384,
    "ip_hdr_length": 20,
    "ip_mf": 0,
    "ip_opts": [],
    "ip_ttl": 57,
    "packet_received": 1749325.12059187,
    "src_ip": "81.95.5.42",
    "src_port": "33268",
    "tcp_ack": 0,
    "tcp_flags": 2,
    "tcp_header_length": 160,
    "tcp_mss": 1326,
    "tcp_options": "M1326,S,T,N,W7,",
    "tcp_seq": 1835435615,
    "tcp_timestamp": 3858644118,
    "tcp_timestamp_echo_reply": 0,
    "tcp_urp": 0,
    "tcp_window_scaling": 7,
    "tcp_window_size": 64240,
    "ts": 1665683662,
    "uptime_interpolation": {
      "hz": "unknown",
      "hz_observed": 129.37296537436157,
      "num_timestamps": 8,
      "uptime": "345 days, 4:55:37.601626"
    }
  },
  "ip": "81.95.5.42",
  "os_mismatch": true,
  "perfectScore": 11.5,
  "vpn_detected": false
}

--------------------------------------------------------------------------------

TLS FINGERPRINT [1]

The TLS fingerprinting API allows you to get your TLS fingerprint. It can be
used for various purposes such as: Networking traffic analyisis, Malware
detection and Bot detection.

{
  "num_fingerprints": 7,
  "sha3_384": "679debde30e70ab9700797eaa2aa3062b960efb75443103f94b3d68abb66d706d46c9885b9e52fcb91f5838378e815e0",
  "tls_fp": {
    "ciphers": "GREASE,4865,4866,4867,49195,49199,49196,49200,52393,52392,49171,49172,156,157,47,53",
    "client_hello_version": "TLS 1.2",
    "ec_point_formats": "0",
    "extensions": "0,23,10,11,16,5,13,18,51,45,43,27",
    "record_version": "TLS 1.0",
    "signature_algorithms": "1027,2052,1025,1283,2053,1281,2054,1537",
    "supported_groups": "29,23,24"
  },
  "user-agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.5249.119 Safari/537.36",
  "utc_now": "2022-10-13 17:54:22.890957"
}

--------------------------------------------------------------------------------

JA3 - PASSIVE SSL/TLS FINGERPRINT [1]

[]

--------------------------------------------------------------------------------

FINGERPRINTJS - BROWSER FINGERPRINT [1]

a2d0ce014e78ed2cbdd2e7e815a3f70a

--------------------------------------------------------------------------------

CANVAS FINGERPRINT [1]

162F4A67

--------------------------------------------------------------------------------

WEBGL FINGERPRINT [1]

7e3c427c5519a2ac8a89717666f0fa4a2837689149bf1ce101133ef5b4b2055b

--------------------------------------------------------------------------------

WEB WORKER NAVIGATORY PROPERTY [1]

{
  "userAgent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.5249.119 Safari/537.36",
  "appVersion": "5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.5249.119 Safari/537.36",
  "platform": "Linux x86_64",
  "deviceMemory": 8,
  "hardwareConcurrency": 12,
  "language": "en-US",
  "languages": [
    "en-US"
  ]
}

--------------------------------------------------------------------------------

SERVICE WORKER DATA [1]

{
  "userAgent": "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/106.0.5249.119 Safari/537.36",
  "appVersion": "5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/106.0.5249.119 Safari/537.36",
  "platform": "Linux x86_64",
  "deviceMemory": 8,
  "hardwareConcurrency": 12,
  "language": "en-US",
  "languages": [
    "en-US"
  ]
}

--------------------------------------------------------------------------------

FP-COLLECT INFO (MODIFIED BY ME)

{
  "byteLength": "unknown",
  "appVersion": "5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.5249.119 Safari/537.36",
  "onLine": true,
  "doNotTrack": null,
  "hardwareConcurrency": 4,
  "timezone": 0,
  "timezone2": "Etc/Unknown",
  "systemTime": "Thu Oct 13 2022 17:54:23 GMT+0000 (GMT)",
  "getTimezoneOffset": 0,
  "toLocaleString": "10/13/2022, 5:54:23 PM",
  "historyLength": 2,
  "indexedDB": true,
  "openDatabase": false,
  "product": "Gecko",
  "fmget": false,
  "domAutomation": false,
  "cookieEnabled": true,
  "sendBeaconAvailable": true,
  "appName": "Netscape",
  "vendor": "Google Inc.",
  "appCodeName": "Mozilla",
  "userMediaAvailable": true,
  "javaEnabled": false,
  "batteryDetails": {
    "charging": true,
    "chargingTime": 0,
    "dischargingTime": null,
    "level": 1
  },
  "plugins": [
    "Chrome PDF Plugin::Portable Document Format::internal-pdf-viewer::__application/x-google-chrome-pdf~pdf~Portable Document Format",
    "Chrome PDF Viewer::::mhjfbmdgcfjbbpaeojofohoefgiehjai::__application/pdf~pdf~",
    "Native Client::::internal-nacl-plugin::__application/x-nacl~~Native Client Executable,application/x-pnacl~~Portable Native Client Executable"
  ],
  "mimeTypes": [
    "~~application/pdf~~pdf",
    "Portable Document Format~~application/x-google-chrome-pdf~~pdf",
    "Native Client Executable~~application/x-nacl~~",
    "Portable Native Client Executable~~application/x-pnacl~~"
  ],
  "userAgent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.5249.119 Safari/537.36",
  "platform": "Win32",
  "language": "en-US",
  "languages": [
    "en-US",
    "en"
  ],
  "screen": {
    "wInnerHeight": 1200,
    "wOuterHeight": 1200,
    "wOuterWidth": 1600,
    "wInnerWidth": 1600,
    "wScreenX": 0,
    "wPageXOffset": 0,
    "wPageYOffset": 0,
    "cWidth": 1600,
    "cHeight": 5192,
    "sWidth": 1600,
    "sHeight": 1200,
    "sAvailWidth": 1600,
    "sAvailHeight": 1200,
    "sColorDepth": 24,
    "sPixelDepth": 24,
    "wDevicePixelRatio": 1
  },
  "touchScreen": [
    0,
    false,
    false
  ],
  "videoCard": [
    "Intel Inc.",
    "Intel Iris OpenGL Engine"
  ],
  "multimediaDevices": {
    "speakers": 0,
    "micros": 0,
    "webcams": 0
  },
  "productSub": "20030107",
  "navigatorPrototype": [
    "vendorSub~~~function get vendorSub() { [native code] }",
    "productSub~~~function get productSub() { [native code] }",
    "vendor~~~function get vendor() { [native code] }",
    "maxTouchPoints~~~function get maxTouchPoints() { [native code] }",
    "scheduling~~~function get scheduling() { [native code] }",
    "userActivation~~~function get userActivation() { [native code] }",
    "doNotTrack~~~function get doNotTrack() { [native code] }",
    "geolocation~~~function get geolocation() { [native code] }",
    "connection~~~function get connection() { [native code] }",
    "plugins~~~get() {\n              return value\n            }",
    "mimeTypes~~~get() {\n              return value\n            }",
    "pdfViewerEnabled~~~function get pdfViewerEnabled() { [native code] }",
    "webkitTemporaryStorage~~~function get webkitTemporaryStorage() { [native code] }",
    "webkitPersistentStorage~~~function get webkitPersistentStorage() { [native code] }",
    "hardwareConcurrency~~~function get hardwareConcurrency() { [native code] }",
    "cookieEnabled~~~function get cookieEnabled() { [native code] }",
    "appCodeName~~~function get appCodeName() { [native code] }",
    "appName~~~function get appName() { [native code] }",
    "appVersion~~~function get appVersion() { [native code] }",
    "platform~~~function get platform() { [native code] }",
    "product~~~function get product() { [native code] }",
    "userAgent~~~function get userAgent() { [native code] }",
    "language~~~function get language() { [native code] }",
    "languages~~~function get languages() { [native code] }",
    "onLine~~~function get onLine() { [native code] }",
    "webdriver~~~function get webdriver() { [native code] }",
    "getGamepads~~~function getGamepads() { [native code] }",
    "javaEnabled~~~function javaEnabled() { [native code] }",
    "sendBeacon~~~function sendBeacon() { [native code] }",
    "vibrate~~~function vibrate() { [native code] }",
    "constructor~~~function Navigator() { [native code] }",
    "clipboard~~~function get clipboard() { [native code] }",
    "credentials~~~function get credentials() { [native code] }",
    "keyboard~~~function get keyboard() { [native code] }",
    "managed~~~function get managed() { [native code] }",
    "mediaDevices~~~function get mediaDevices() { [native code] }",
    "storage~~~function get storage() { [native code] }",
    "serviceWorker~~~function get serviceWorker() { [native code] }",
    "virtualKeyboard~~~function get virtualKeyboard() { [native code] }",
    "wakeLock~~~function get wakeLock() { [native code] }",
    "deviceMemory~~~function get deviceMemory() { [native code] }",
    "ink~~~function get ink() { [native code] }",
    "hid~~~function get hid() { [native code] }",
    "locks~~~function get locks() { [native code] }",
    "mediaCapabilities~~~function get mediaCapabilities() { [native code] }",
    "mediaSession~~~function get mediaSession() { [native code] }",
    "permissions~~~function get permissions() { [native code] }",
    "presentation~~~function get presentation() { [native code] }",
    "serial~~~function get serial() { [native code] }",
    "usb~~~function get usb() { [native code] }",
    "windowControlsOverlay~~~function get windowControlsOverlay() { [native code] }",
    "xr~~~function get xr() { [native code] }",
    "userAgentData~~~function get userAgentData() { [native code] }",
    "clearAppBadge~~~function clearAppBadge() { [native code] }",
    "getUserMedia~~~function getUserMedia() { [native code] }",
    "requestMIDIAccess~~~function requestMIDIAccess() { [native code] }",
    "requestMediaKeySystemAccess~~~function requestMediaKeySystemAccess() { [native code] }",
    "setAppBadge~~~function setAppBadge() { [native code] }",
    "webkitGetUserMedia~~~function webkitGetUserMedia() { [native code] }",
    "getBattery~~~function getBattery() { [native code] }",
    "getInstalledRelatedApps~~~function getInstalledRelatedApps() { [native code] }",
    "registerProtocolHandler~~~function registerProtocolHandler() { [native code] }",
    "unregisterProtocolHandler~~~function unregisterProtocolHandler() { [native code] }",
    "constructor~~~function Navigator() { [native code] }",
    "__defineGetter__~~~",
    "__defineSetter__~~~",
    "hasOwnProperty~~~",
    "__lookupGetter__~~~",
    "__lookupSetter__~~~",
    "isPrototypeOf~~~",
    "propertyIsEnumerable~~~",
    "toString~~~",
    "valueOf~~~",
    "__proto__~~~",
    "toLocaleString~~~"
  ],
  "navigatorProperties": [
    "vendorSub",
    "productSub",
    "vendor",
    "maxTouchPoints",
    "scheduling",
    "userActivation",
    "doNotTrack",
    "geolocation",
    "connection",
    "plugins",
    "mimeTypes",
    "pdfViewerEnabled",
    "webkitTemporaryStorage",
    "webkitPersistentStorage",
    "hardwareConcurrency",
    "cookieEnabled",
    "appCodeName",
    "appName",
    "appVersion",
    "platform",
    "product",
    "userAgent",
    "language",
    "languages",
    "onLine",
    "webdriver",
    "getGamepads",
    "javaEnabled",
    "sendBeacon",
    "vibrate",
    "constructor",
    "clipboard",
    "credentials",
    "keyboard",
    "managed",
    "mediaDevices",
    "storage",
    "serviceWorker",
    "virtualKeyboard",
    "wakeLock",
    "deviceMemory",
    "ink",
    "hid",
    "locks",
    "mediaCapabilities",
    "mediaSession",
    "permissions",
    "presentation",
    "serial",
    "usb",
    "windowControlsOverlay",
    "xr",
    "userAgentData",
    "clearAppBadge",
    "getUserMedia",
    "requestMIDIAccess",
    "requestMediaKeySystemAccess",
    "setAppBadge",
    "webkitGetUserMedia",
    "getBattery",
    "getInstalledRelatedApps",
    "registerProtocolHandler",
    "unregisterProtocolHandler",
    "constructor",
    "__defineGetter__",
    "__defineSetter__",
    "hasOwnProperty",
    "__lookupGetter__",
    "__lookupSetter__",
    "isPrototypeOf",
    "propertyIsEnumerable",
    "toString",
    "valueOf",
    "__proto__",
    "toLocaleString"
  ],
  "etsl": 33,
  "screenDesc": "function get width() { [native code] }",
  "phantomJS": [
    false,
    false,
    false
  ],
  "nightmareJS": false,
  "selenium": [
    false,
    false,
    false,
    false,
    false,
    false,
    false,
    false,
    false,
    false,
    false,
    false,
    false,
    false,
    false,
    false,
    false
  ],
  "webDriver": true,
  "webDriverValue": false,
  "errorsGenerated": [
    "azeaze is not defined",
    null,
    null,
    null,
    null,
    null,
    null,
    "Failed to construct 'WebSocket': The URL 'itsgonnafail' is invalid."
  ],
  "resOverflow": {
    "depth": 10446,
    "errorMessage": "Maximum call stack size exceeded",
    "errorName": "RangeError",
    "errorStacklength": 914
  },
  "accelerometerUsed": false,
  "screenMediaQuery": true,
  "hasChrome": true,
  "detailChrome": {
    "webstore": "TypeError: Cannot read properties of undefined (reading 'constructor')",
    "runtime": "function Object() { [native code] }",
    "app": "function Object() { [native code] }",
    "csi": "function Function() { [native code] }",
    "loadTimes": "function Function() { [native code] }",
    "connect": "Error in invocation of runtime.connect(optional string extensionId, optional object connectInfo): chrome.runtime.connect() called from a webpage must specify an Extension ID (string) for its first argument.",
    "sendMessage": "Error in invocation of runtime.sendMessage(optional string extensionId, any message, optional object options, optional function responseCallback): No matching signature."
  },
  "permissions": {
    "state": "prompt",
    "permission": "default"
  },
  "allPermissions": {
    "ambient-light-sensor": {
      "error": "TypeError: Failed to execute 'query' on 'Permissions': GenericSensorExtraClasses flag is not enabled."
    },
    "bluetooth": {
      "error": "TypeError: Failed to execute 'query' on 'Permissions': Failed to read the 'name' property from 'PermissionDescriptor': The provided value 'bluetooth' is not a valid enum value of type PermissionName."
    },
    "device-info": {
      "error": "TypeError: Failed to execute 'query' on 'Permissions': Failed to read the 'name' property from 'PermissionDescriptor': The provided value 'device-info' is not a valid enum value of type PermissionName."
    },
    "nfc": {
      "error": "TypeError: Failed to execute 'query' on 'Permissions': Web NFC is not enabled."
    },
    "push": {
      "error": "NotSupportedError: Failed to execute 'query' on 'Permissions': Push Permission without userVisibleOnly:true isn't supported yet."
    },
    "speaker-selection": {
      "error": "TypeError: Failed to execute 'query' on 'Permissions': Failed to read the 'name' property from 'PermissionDescriptor': The provided value 'speaker-selection' is not a valid enum value of type PermissionName."
    },
    "accelerometer": {
      "state": "prompt",
      "permission": "default"
    },
    "background-fetch": {
      "state": "prompt",
      "permission": "default"
    },
    "background-sync": {
      "state": "prompt",
      "permission": "default"
    },
    "camera": {
      "state": "prompt",
      "permission": "default"
    },
    "clipboard-write": {
      "state": "prompt",
      "permission": "default"
    },
    "display-capture": {
      "state": "prompt",
      "permission": "default"
    },
    "geolocation": {
      "state": "prompt",
      "permission": "default"
    },
    "gyroscope": {
      "state": "prompt",
      "permission": "default"
    },
    "magnetometer": {
      "state": "prompt",
      "permission": "default"
    },
    "microphone": {
      "state": "prompt",
      "permission": "default"
    },
    "midi": {
      "state": "prompt",
      "permission": "default"
    },
    "notifications": {
      "state": "prompt",
      "permission": "default"
    },
    "persistent-storage": {
      "state": "prompt",
      "permission": "default"
    }
  },
  "iframeChrome": "object",
  "debugTool": false,
  "battery": true,
  "deviceMemory": 8,
  "tpCanvas": {
    "0": 0,
    "1": 0,
    "2": 0,
    "3": 0
  },
  "sequentum": false,
  "audioCodecs": {
    "ogg": "probably",
    "mp3": "probably",
    "wav": "probably",
    "m4a": "maybe",
    "aac": "probably"
  },
  "videoCodecs": {
    "ogg": "probably",
    "h264": "probably",
    "webm": "probably",
    "mpeg4v": "",
    "mpeg4a": "",
    "theora": ""
  },
  "webSocketSupportTimeout": false
}