{
  "hardwareFeatures": {
    "windowSize": "414,615",
    "screenSize": "414,688",
    "endianness": "little",
    "workerPoolSize": 8,
    "devicePixelRatio": 2.6086957454681396
  },
  "browserSettings": {
    "isCookieEnabled": true,
    "isDoNotTrackEnabled": false
  },
  "browserFeatures": {
    "isWebXRSupported": false,
    "isWebVRSupported": false,
    "isWebGLSupported": true,
    "isWebRTCSupported": true,
    "isWebGL2Supported": true,
    "isGamepadSupported": true,
    "isWebAudioSupported": true,
    "isWebWorkerSupported": true,
    "isIndexedDBSupported": true,
    "isWebSocketSupported": true,
    "isWebAssemblySupported": false,
    "isPerformanceSupported": true,
    "browserType": {
      "deviceType": "mobile",
      "browserName": "Firefox",
      "deviceModel": "Unknown",
      "deviceVendor": "Unknown",
      "browserVersion": "51.0",
      "browserEngineName": "Gecko",
      "operatingSystemName": "Android",
      "browserEngineVersion": "51.0",
      "operatingSystemVersion": "8.0.0"
    },
    "isLocalStorageSupported": true,
    "isServiceWorkerSupported": true,
    "webGLFeatures": {
      "base": {
        "vendor": "Mozilla",
        "version": "WebGL 1.0",
        "renderer": "Mozilla",
        "shaderVersion": "WebGL GLSL ES 1.0",
        "vendorUnmasked": null,
        "rendererUnmasked": null
      },
      "general": {
        "redBits": 8,
        "blueBits": 8,
        "greenBits": 8,
        "depthBits": 24,
        "antialias": false,
        "alphaBits": 8,
        "stencilBits": 8,
        "subPixelBits": 4,
        "maxTextureSize": 16384,
        "maxVaryingVectors": 31,
        "maxRenderBufferSize": 16384,
        "maxVertexAttributes": 32,
        "maxTextureImageUnits": 16,
        "maxCubeMapTextureSize": 16384,
        "aliasedPointSizeRange": "1,1023",
        "aliasedLineWidthRange": "1,8",
        "maxViewportDimensions": "16384,16384",
        "maxVertexUniformVectors": 256,
        "maxFragmentUniformVectors": 256,
        "maxVertexTextureImageUnits": 16,
        "maxCombinedTextureImageUnits": 96,
        "precision": {
          "vertexShaderLowPrecision": "127,127,23",
          "vertexShaderHighPrecision": "127,127,23",
          "fragmentShaderLowPrecision": "15,15,10",
          "fragmentShaderHighPrecision": "127,127,23",
          "vertexShaderMediumPrecision": "127,127,23",
          "fragmentShaderMediumPrecision": "15,15,10"
        }
      },
      "extensions": {
        "maxAnisotropy": 16,
        "maxDrawBuffers": 0,
        "supportedExtensions": {
          "EXT_sRGB": true,
          "EXT_frag_depth": true,
          "EXT_blend_minmax": true,
          "OES_texture_float": true,
          "WEBGL_lose_context": true,
          "WEBGL_depth_texture": true,
          "ANGLE_instanced_arrays": true,
          "OES_texture_half_float": true,
          "OES_element_index_uint": true,
          "MOZ_WEBGL_lose_context": true,
          "OES_vertex_array_object": true,
          "MOZ_WEBGL_depth_texture": true,
          "WEBGL_color_buffer_float": true,
          "OES_standard_derivatives": true,
          "EXT_disjoint_timer_query": true,
          "OES_texture_float_linear": true,
          "EXT_color_buffer_half_float": true,
          "WEBGL_compressed_texture_atc": true,
          "WEBGL_compressed_texture_etc": true,
          "WEBGL_compressed_texture_etc1": true,
          "OES_texture_half_float_linear": true,
          "EXT_texture_filter_anisotropic": true,
          "MOZ_WEBGL_compressed_texture_atc": true
        }
      }
    },
    "webGL2Features": {
      "base": {
        "vendor": "Mozilla",
        "version": "WebGL 2.0",
        "renderer": "Mozilla",
        "shaderVersion": "WebGL GLSL ES 3.00",
        "vendorUnmasked": null,
        "rendererUnmasked": null
      },
      "general": {
        "redBits": 8,
        "blueBits": 8,
        "antialias": false,
        "alphaBits": 8,
        "depthBits": 24,
        "greenBits": 8,
        "stencilBits": 8,
        "subPixelBits": 4,
        "maxTextureSize": 16384,
        "maxVaryingVectors": 31,
        "maxVertexAttributes": 32,
        "maxRenderBufferSize": 16384,
        "maxTextureImageUnits": 16,
        "maxViewportDimensions": "16384,16384",
        "maxCubeMapTextureSize": 16384,
        "aliasedLineWidthRange": "1,8",
        "aliasedPointSizeRange": "1,1023",
        "maxVertexUniformVectors": 256,
        "maxFragmentUniformVectors": 256,
        "maxVertexTextureImageUnits": 16,
        "maxCombinedTextureImageUnits": 96,
        "precision": {
          "vertexShaderLowPrecision": "127,127,23",
          "vertexShaderHighPrecision": "127,127,23",
          "fragmentShaderLowPrecision": "15,15,10",
          "fragmentShaderHighPrecision": "127,127,23",
          "vertexShaderMediumPrecision": "127,127,23",
          "fragmentShaderMediumPrecision": "15,15,10"
        }
      },
      "specific": {
        "maxSamples": 4,
        "maxDrawBuffers": 8,
        "maxElementIndex": 2147483647,
        "max3DTextureSize": 2048,
        "maxTextureLODBias": 16,
        "maxElementsIndices": 2147483647,
        "maxElementsVertices": 2147483647,
        "maxUniformBlockSize": 65536,
        "maxColorAttachments": 8,
        "maxServerWaitTimeout": 4294967295000000,
        "maxVaryingComponents": 124,
        "maxClientWaitTimeout": 1000000000,
        "maxProgramTexelOffset": 7,
        "minProgramTexelOffset": -8,
        "maxArrayTextureLayers": 2048,
        "maxVertexUniformBlocks": 14,
        "maxUniformBufferBindings": 84,
        "maxFragmentUniformBlocks": 14,
        "maxCombinedUniformBlocks": 84,
        "maxVertexOutputComponents": 128,
        "maxVertexUniformComponents": 1024,
        "maxFragmentInputComponents": 128,
        "uniformBufferOffsetAlignment": 32,
        "maxFragmentUniformComponents": 1024,
        "maxCombinedVertexUniformComponents": 230400,
        "maxTransformFeedbackSeparateAttribs": 4,
        "maxCombinedFragmentUniformComponents": 230400,
        "maxTransformFeedbackSeparateComponents": 4,
        "maxTransformFeedbackInterleavedComponents": 128
      },
      "extensions": {
        "maxAnisotropy": 16,
        "supportedExtensions": {
          "WEBGL_lose_context": true,
          "EXT_color_buffer_float": true,
          "MOZ_WEBGL_lose_context": true,
          "EXT_disjoint_timer_query": true,
          "OES_texture_float_linear": true,
          "WEBGL_compressed_texture_etc": true,
          "WEBGL_compressed_texture_atc": true,
          "WEBGL_compressed_texture_etc1": true,
          "EXT_texture_filter_anisotropic": true,
          "MOZ_WEBGL_compressed_texture_atc": true
        }
      }
    },
    "isRequestIdleCallbackSupported": false
  }
}