[
  {
    "path": ".circleci/config.bak",
    "content": "version: 2.1\n\nworkflows:\n  build-and-test-multi-arch:\n    jobs:\n      - kubernetes-test:\n          name: \"K8s test - Autoscaling disabled\"\n          platforms: linux/arm64\n          machine-type: ubuntu2204arm64large\n          k8s-version: 'v1.26.15'\n          test-strategy: disabled\n          cluster: 'minikube'\n          helm-version: 'v3.11.3'\n          docker-version: '24.0.9'\n          test-upgrade: true\n      - kubernetes-test:\n          name: \"K8s test - Autoscaling Jobs\"\n          platforms: linux/arm64\n          machine-type: ubuntu2204arm64large\n          k8s-version: 'v1.27.16'\n          test-strategy: job\n          cluster: 'minikube'\n          helm-version: 'v3.12.3'\n          docker-version: '24.0.9'\n          test-upgrade: true\n      - kubernetes-test:\n          name: \"K8s test - Autoscaling Deployments\"\n          platforms: linux/arm64\n          machine-type: ubuntu2204arm64large\n          k8s-version: 'v1.28.15'\n          test-strategy: deployment\n          cluster: 'minikube'\n          helm-version: 'v3.13.3'\n          docker-version: '24.0.9'\n          test-upgrade: true\n      - kubernetes-test:\n          name: \"K8s test - Autoscaling Jobs - HTTPS\"\n          platforms: linux/arm64\n          machine-type: ubuntu2204arm64large\n          k8s-version: 'v1.29.13'\n          test-strategy: job_https\n          cluster: 'minikube'\n          helm-version: 'v3.14.3'\n          docker-version: '25.0.5'\n          test-upgrade: true\n      - kubernetes-test:\n          name: \"K8s test - Autoscaling Jobs - Ingress hostname\"\n          platforms: linux/arm64\n          machine-type: ubuntu2204arm64large\n          k8s-version: 'v1.30.9'\n          test-strategy: job_hostname\n          cluster: 'minikube'\n          helm-version: 'v3.15.4'\n          docker-version: '26.1.4'\n          test-upgrade: true\n      - kubernetes-test:\n          name: \"K8s test - Autoscaling Deployments - HTTPS\"\n          platforms: linux/arm64\n          machine-type: ubuntu2204arm64large\n          k8s-version: 'v1.31.5'\n          test-strategy: deployment_https\n          cluster: 'minikube'\n          helm-version: 'v3.16.4'\n          docker-version: '27.4.1'\n          test-upgrade: true\n      - kubernetes-test:\n          name: \"K8s test - Playwright Connect Autoscaling Grid\"\n          platforms: linux/arm64\n          machine-type: ubuntu2204arm64large\n          k8s-version: 'v1.32.1'\n          test-strategy: playwright_connect_grid\n          cluster: 'minikube'\n          helm-version: 'v3.17.0'\n          docker-version: '26.1.4'\n          test-upgrade: true\n      - docker-test:\n          name: \"Docker test - Use random user (true)\"\n          test-strategy: test\n          use-random-user: true\n          platforms: linux/arm64\n          machine-type: ubuntu2204arm64\n          firefox-install-lang-package: false\n          enable-managed-downloads: false\n      - docker-test:\n          name: \"Docker test - Use random user (false)\"\n          test-strategy: test\n          use-random-user: false\n          platforms: linux/arm64\n          machine-type: ubuntu2204arm64\n          firefox-install-lang-package: false\n          enable-managed-downloads: false\n      - docker-test:\n          name: \"Docker test - Video recording\"\n          test-strategy: test_video\n          use-random-user: false\n          platforms: linux/arm64\n          machine-type: ubuntu2204arm64\n          firefox-install-lang-package: true\n          enable-managed-downloads: true\n      - docker-test:\n          name: \"Docker test - Video recording dynamic file name\"\n          test-strategy: test_video_dynamic_name\n          use-random-user: false\n          platforms: linux/arm64\n          machine-type: ubuntu2204arm64\n          firefox-install-lang-package: true\n          enable-managed-downloads: true\n      - docker-test:\n          name: \"Docker test - Video recording standalone\"\n          test-strategy: test_video_standalone\n          use-random-user: false\n          platforms: linux/arm64\n          machine-type: ubuntu2204arm64\n          firefox-install-lang-package: true\n          enable-managed-downloads: true\n      - docker-test:\n          name: \"Docker test - Dynamic Grid\"\n          test-strategy: test_node_docker\n          use-random-user: false\n          platforms: linux/arm64\n          machine-type: ubuntu2204arm64\n          firefox-install-lang-package: true\n          enable-managed-downloads: false\n      - docker-test:\n          name: \"Docker test - Dynamic Grid Standalone\"\n          test-strategy: test_standalone_docker\n          use-random-user: false\n          platforms: linux/arm64\n          machine-type: ubuntu2204arm64\n          firefox-install-lang-package: true\n          enable-managed-downloads: true\n      - docker-test:\n          name: \"Docker test - Parallel execution\"\n          test-strategy: test_parallel\n          use-random-user: false\n          platforms: linux/arm64\n          machine-type: ubuntu2204arm64large\n          firefox-install-lang-package: false\n          enable-managed-downloads: true\n      - docker-test:\n          name: \"Docker test - Node relay commands\"\n          test-strategy: test_node_relay\n          use-random-user: false\n          platforms: linux/arm64\n          machine-type: ubuntu2204arm64\n          firefox-install-lang-package: true\n          enable-managed-downloads: true\n\nexecutors:\n  ubuntu2204arm64:\n    machine:\n      image: ubuntu-2204:current\n    resource_class: arm.medium\n  ubuntu2204arm64large:\n    machine:\n      image: ubuntu-2204:current\n    resource_class: arm.large\n\njobs:\n  docker-test:\n    parameters:\n      platforms:\n        type: string\n      machine-type:\n        type: executor\n      test-strategy:\n        type: string\n      use-random-user:\n        type: boolean\n      firefox-install-lang-package:\n        type: boolean\n      enable-managed-downloads:\n        type: boolean\n    executor: << parameters.machine-type >>\n    environment:\n      NAMESPACE: selenium\n      BUILD_DATE: today\n      PLATFORMS: << parameters.platforms >>\n      TEST_STRATEGY: << parameters.test-strategy >>\n      USE_RANDOM_USER: << parameters.use-random-user >>\n      TEST_FIREFOX_INSTALL_LANG_PACKAGE: << parameters.firefox-install-lang-package >>\n      SELENIUM_ENABLE_MANAGED_DOWNLOADS: << parameters.enable-managed-downloads >>\n    steps:\n      - run:\n          name: \"Prepare workflow environment variables\"\n          command: |\n            echo 'export BRANCH=\"${CIRCLE_BRANCH//\\//-}\"' >> $BASH_ENV\n            cat $BASH_ENV\n            source $BASH_ENV\n      - checkout\n      - run:\n          name: \"Setup environment\"\n          command: |\n            make setup_dev_env\n      - run:\n          name: \"Print system info\"\n          command: |\n            uname -a\n            docker info\n      - run:\n          name: \"Build Docker images\"\n          command: |\n            N=3\n            while [ $N -gt 0 ]; do\n              PLATFORMS=${PLATFORMS} VERSION=${BRANCH} BUILD_DATE=${BUILD_DATE} make build\n              status=$?\n              if [ $status -eq 0 ]; then\n                echo \"Build images passed\"\n                exit 0\n              else\n                echo \"Build failed. Retrying...\"\n                N=$((N-1))\n                sleep 10\n              fi\n            done\n            exit $status\n      - run:\n          name: \"Test Docker images\"\n          no_output_timeout: 60m\n          command: |\n            max_iteration=3\n            iteration=1\n            until USE_RANDOM_USER_ID=${USE_RANDOM_USER} PLATFORMS=${PLATFORMS} VERSION=${BRANCH} BUILD_DATE=${BUILD_DATE} \\\n              TEST_FIREFOX_INSTALL_LANG_PACKAGE=${TEST_FIREFOX_INSTALL_LANG_PACKAGE} SELENIUM_ENABLE_MANAGED_DOWNLOADS=${SELENIUM_ENABLE_MANAGED_DOWNLOADS} \\\n              make ${TEST_STRATEGY} >& /dev/null; [[ $? -eq 0 ]];\n            do\n              echo \"Result unsuccessful\"\n              if [[ $iteration -eq $max_iteration ]]\n              then\n                break\n              fi\n              sleep 1\n              ((iteration++))  \n            done\n            if [[ $iteration -eq $max_iteration ]]\n            then\n              echo \"All of the $max_iteration trials failed!!!\"\n            else\n              echo \"Result successful\"\n            fi\n\n  kubernetes-test:\n    parameters:\n      platforms:\n        type: string\n      machine-type:\n        type: executor\n      k8s-version:\n        type: string\n      test-strategy:\n        type: string\n      cluster:\n        type: string\n      helm-version:\n        type: string\n      docker-version:\n        type: string\n      test-upgrade:\n        type: boolean\n    executor: << parameters.machine-type >>\n    environment:\n      NAMESPACE: selenium\n      BUILD_DATE: today\n      PLATFORMS: << parameters.platforms >>\n      TEST_STRATEGY: << parameters.test-strategy >>\n      CLUSTER: << parameters.cluster >>\n      KUBERNETES_VERSION: << parameters.k8s-version >>\n      HELM_VERSION: << parameters.helm-version >>\n      DOCKER_VERSION: << parameters.docker-version >>\n      TEST_UPGRADE_CHART: << parameters.test-upgrade >>\n      TEST_MULTIPLE_VERSIONS: false\n      TEST_MULTIPLE_PLATFORMS: false\n    steps:\n      - run:\n          name: \"Prepare workflow environment variables\"\n          command: |\n            echo 'export BRANCH=\"${CIRCLE_BRANCH//\\//-}\"' >> $BASH_ENV\n            cat $BASH_ENV\n            source $BASH_ENV\n      - run:\n          name: \"Print system info\"\n          command: |\n            uname -a\n            docker info\n      - checkout\n      - run:\n          name: \"Set up Kubernetes environment\"\n          command: |\n            make setup_dev_env\n            CLUSTER=${CLUSTER} KUBERNETES_VERSION=${KUBERNETES_VERSION} NAME=${NAMESPACE} VERSION=${BRANCH} \\\n            BUILD_DATE=${BUILD_DATE} make chart_cluster_setup\n      - run:\n          name: \"Build Docker images\"\n          no_output_timeout: 30m\n          command: |\n            N=3\n            while [ $N -gt 0 ]; do\n              PLATFORMS=${PLATFORMS} VERSION=${BRANCH} BUILD_DATE=${BUILD_DATE} make build\n              status=$?\n              if [ $status -eq 0 ]; then\n                echo \"Build images passed\"\n                exit 0\n              else\n                echo \"Build failed. Retrying...\"\n                N=$((N-1))\n                sleep 10\n              fi\n            done\n            exit $status\n      - run:\n          name: \"Build Helm charts\"\n          command: |\n            BUILD_DATE=${BUILD_DATE} make chart_build\n            echo \"export CHART_PACKAGE_PATH=$(cat /tmp/selenium_chart_version)\" >> $BASH_ENV\n            echo \"export CHART_FILE_NAME=$(basename $(cat /tmp/selenium_chart_version))\" >> $BASH_ENV\n            source $BASH_ENV\n      - run:\n          name: \"Test Selenium Grid on Kubernetes\"\n          no_output_timeout: 60m\n          command: |\n            max_iteration=3\n            iteration=1\n            until PLATFORMS=${PLATFORMS} NAME=${IMAGE_REGISTRY} VERSION=${BRANCH} BUILD_DATE=${BUILD_DATE} TEST_UPGRADE_CHART=false \\\n              TEST_MULTIPLE_VERSIONS=${TEST_MULTIPLE_VERSIONS} TEST_MULTIPLE_PLATFORMS=${TEST_MULTIPLE_PLATFORMS} \\\n              make chart_test_autoscaling_${TEST_STRATEGY} && make test_video_integrity >& /dev/null; [[ $? -eq 0 ]];\n            do\n              echo \"Result unsuccessful\"\n              if [[ $iteration -eq $max_iteration ]]\n              then\n                break\n              fi\n              sleep 1\n              ((iteration++))  \n            done\n            if [[ $iteration -eq $max_iteration ]]\n            then\n              echo \"All of the $max_iteration trials failed!!!\"\n            else\n              echo \"Result successful\"\n            fi\n      - run:\n          name: \"Clean-up Kubernetes environment\"\n          command: |\n            CLUSTER=${CLUSTER} make chart_cluster_cleanup\n"
  },
  {
    "path": ".editorconfig",
    "content": "# EditorConfig is awesome: http://EditorConfig.org\n\n# top-most EditorConfig file\nroot = true\n\n# Unix-style newlines with a newline ending every file\n[*]\nend_of_line = lf\ninsert_final_newline = true\n\n[{Dockerfile,*.json,*.sh}]\nindent_style = space\nindent_size = 2\n\n[*.md]\nindent_style = space\nindent_size = 4\n\n[Makefile]\nindent_style = tab\nindent_size = 2\n"
  },
  {
    "path": ".ffmpeg/Dockerfile",
    "content": "FROM ubuntu:noble AS builder\nARG FFMPEG_VERSION=\"8.0\"\nARG RCLONE_VER=\"v1.73-stable\"\nARG GO_VERSION=\"latest\"\n#ARG GO_CRYPTO_VERSION=\"v0.36.0\"\n#ARG GO_OAUTH2_VERSION=\"v0.27.0\"\n#ARG GO_NET_VERSION=\"v0.38.0\"\n#ARG GOLANG_JWT_V4_VERSION=\"v4.5.2\"\n#ARG GOLANG_JWT_V5_VERSION=\"v5.2.2\"\n\nUSER root\n\n#======================================\n# Install build tools\n#======================================\nARG TOOLS_DEPS=\"autoconf automake cmake libfreetype6 gcc build-essential libtool make nasm pkg-config zlib1g-dev numactl \\\nlibnuma-dev yasm git curl jq wget ca-certificates \\\nlibx11-dev libxcb1-dev libpulse-dev libasound2-dev\"\n\nRUN apt-get update -qqy \\\n    && apt-get upgrade -yq \\\n    && apt-get -qqy --no-install-recommends install ${TOOLS_DEPS} \\\n    && apt-get -qyy clean \\\n    && mkdir -p /usr/local/src\n\nRUN if [ \"${GO_VERSION}\" = \"latest\" ]; then \\\n        GO_VERSION=$(curl -sk https://go.dev/dl/?mode=json | jq -r '.[0].version'); \\\n    fi \\\n    && curl -skLO https://go.dev/dl/${GO_VERSION}.linux-$(dpkg --print-architecture).tar.gz \\\n    && tar -xf ${GO_VERSION}.linux-$(dpkg --print-architecture).tar.gz -C /usr/local \\\n    && rm -rf ${GO_VERSION}.linux-$(dpkg --print-architecture).tar.gz* \\\n    && ln -sf /usr/local/go/bin/go /usr/bin/go \\\n    && go version\n\nRUN cd /usr/local/src \\\n    && git clone -b ${RCLONE_VER} --single-branch --depth 1 https://github.com/rclone/rclone.git \\\n    && cd rclone \\\n    # Patch deps version in go.mod to fix CVEs\n#    && sed -i \"s|golang.org/x/crypto v.*|golang.org/x/crypto ${GO_CRYPTO_VERSION}|g\" go.mod \\\n#    && sed -i \"s|golang.org/x/oauth2 v.*|golang.org/x/oauth2 ${GO_OAUTH2_VERSION}|g\" go.mod \\\n#    && sed -i \"s|golang.org/x/net v.*|golang.org/x/net ${GO_NET_VERSION}|g\" go.mod \\\n#    && sed -i \"s|github.com/golang-jwt/jwt/v5 v.*|github.com/golang-jwt/jwt/v5 ${GOLANG_JWT_V5_VERSION}|g\" go.mod \\\n#    && sed -i \"s|github.com/golang-jwt/jwt/v4 v.*|github.com/golang-jwt/jwt/v4 ${GOLANG_JWT_V4_VERSION}|g\" go.mod \\\n#    && go mod tidy \\\n    # Build rclone\n    && make \\\n    && mv ~/go/bin/rclone /usr/local/bin/ \\\n    && rclone version\n\n#======================================\n# Install x264 from source\n#======================================\nRUN cd /usr/local/src \\\n    && git clone https://code.videolan.org/videolan/x264.git --filter=blob:none \\\n    && cd x264 \\\n    && ./configure --prefix=\"/usr/local\" --enable-static \\\n    && make \\\n    && make install\n\n#======================================\n# Install FFmpeg from source\n#======================================\nRUN cd /usr/local/src \\\n    && git clone -b release/${FFMPEG_VERSION} --single-branch --depth 1 https://github.com/FFmpeg/FFmpeg.git \\\n    && cd FFmpeg \\\n    && rm -rf .git \\\n    && PKG_CONFIG_PATH=\"/usr/local/lib/pkgconfig\" FFMPEG_VERSION=${FFMPEG_VERSION} ./configure \\\n    --prefix=\"/usr/local\" \\\n    --extra-cflags=\"-I/usr/local/include\" \\\n    --extra-ldflags=\"-L/usr/local/lib\" \\\n    --pkg-config-flags=\"--static\" \\\n    --enable-gpl \\\n    --enable-nonfree \\\n    --enable-libx264 \\\n    --enable-libxcb \\\n    --enable-libpulse \\\n    --enable-alsa \\\n    --enable-static \\\n    && make \\\n    && make install\n\n# Final stage\nFROM ubuntu:noble\n\nUSER root\n\nCOPY --from=builder /usr/local/bin/ffmpeg /usr/local/bin/ffmpeg\nCOPY --from=builder /usr/local/bin/rclone /usr/local/bin/rclone\n\nRUN apt-get -qqy update \\\n    && apt-get -qqy --no-install-recommends install \\\n    libx11-6 libx11-xcb1 libxcb1 libpulse0 libasound2t64 \\\n    && apt-get -qqy update \\\n    && apt-get -yq upgrade \\\n    && rm -rf /var/lib/apt/lists/* /var/cache/apt/*\n\nRUN ldd /usr/local/bin/ffmpeg \\\n    && ffmpeg -version \\\n    && rclone --version\n\nUSER 101\n"
  },
  {
    "path": ".github/ISSUE_TEMPLATE/bug_report.yml",
    "content": "name: 🐛 Bug Report\ndescription: File a bug report\ntitle: \"[🐛 Bug]: \"\nlabels: [bug, needs-triaging]\nbody:\n  - type: markdown\n    attributes:\n      value: |\n        Thanks for taking the time to fill out this bug report!\n  - type: textarea\n    id: what-happened\n    attributes:\n      label: What happened?\n      description: |\n        Describe clearly and concisely the bug including instructions showing how to reproduce it.\n      placeholder: |\n        Please add as many details as possible to avoid assumptions from our side. How do you\n        trigger this bug? What did you expect to happen? Please walk us through it step by step.\n    validations:\n      required: true\n  - type: textarea\n    id: reproduce-command\n    attributes:\n      label: Command used to start Selenium Grid with Docker (or Kubernetes)\n      description: |\n        What command do you use to start Selenium Grid with Docker (or Kubernetes)?\n      placeholder: |\n        Please share the script or docker compose file used. This will be automatically\n        formatted into code, so no need for backticks.\n        If Kubernetes used, please share the YAML file, or chart values used to deploy the cluster.\n        Be sure to include an SSCCE (Short, Self Contained, Correct \n        [compilable] example) http://sscce.org/\n      render: shell\n    validations:\n      required: true\n  - type: textarea\n    id: logs\n    attributes:\n      label: Relevant log output\n      description: |\n        Please copy and paste any relevant log output. This will be automatically formatted\n        into code, so no need for backticks.\n      render: shell\n    validations:\n      required: true\n  - type: input\n    id: operating-system\n    attributes:\n      label: Operating System\n      description: What host operating system are you using to run docker-selenium?\n      placeholder: Windows 10? macOS BigSur? Ubuntu? Kubernetes (Minikube, EKS, GKE, AKS, OpenShift, Rancher, etc.) version?\n    validations:\n      required: true\n  - type: input\n    id: version\n    attributes:\n      label: Docker Selenium version (image tag)\n      description: What version of Docker Selenium are you using?\n      placeholder: 4.41.0-20260222? Please use the full tag, avoid \"latest\"\n    validations:\n      required: true\n  - type: input\n    id: chart-version\n    attributes:\n      label: Selenium Grid chart version (chart version)\n      description: What version of Selenium Grid chart are you using?\n      placeholder: 0.36.3?\n    validations:\n      required: false\n"
  },
  {
    "path": ".github/ISSUE_TEMPLATE/config.yml",
    "content": "blank_issues_enabled: false\ncontact_links:\n  - name: 💬 Selenium Community Support and Questions\n    url: https://www.selenium.dev/support/\n    about: Useful links to ask questions and join the different Selenium chat rooms.\n  - name: 📖 Docker-Selenium Documentation\n    url: https://github.com/SeleniumHQ/docker-selenium\n    about: Please check the project README before filling out an issue.\n  - name: 📖 Selenium Documentation\n    url: https://www.selenium.dev/documentation/\n    about: Issues while running tests? Please check the Selenium documentation before filling out an issue.\n"
  },
  {
    "path": ".github/ISSUE_TEMPLATE/feature_proposal.yml",
    "content": "name: 🚀 Feature Proposal\ndescription: Propose a feature\ntitle: \"[🚀 Feature]: \"\nlabels: [feature, needs-triaging]\nbody:\n  - type: markdown\n    attributes:\n      value: |\n        Thanks for taking the time to propose a feature!\n  - type: textarea\n    id: feature-description\n    attributes:\n      label: Feature and motivation\n      description: |\n        Describe clearly and concisely the feature you are proposing, what is the motivation\n        behind it.\n      placeholder: |\n        Help us to understand your proposal by adding as many details as possible, we will look into\n        it and give you feedback as soon as possible.\n    validations:\n      required: true\n  - type: textarea\n    id: feature-example\n    attributes:\n      label: Usage example\n      description: |\n        How would you use this feature? \n      placeholder: |\n        A clear example showing how this feature is useful for you and the Selenium community.\n    validations:\n      required: true\n"
  },
  {
    "path": ".github/PULL_REQUEST_TEMPLATE.md",
    "content": "<!-- Thanks for sending us a PR to improve this project! If you are adding a \nfeature or fixing a bug, and this needs more documentation, please add it to your PR. -->\n\n**Thanks for contributing to the Docker-Selenium project!**\n**A PR well described will help maintainers to quickly review and merge it**\n\nBefore submitting your PR, please check our [contributing](https://selenium.dev/documentation/en/contributing/) guidelines, applied for this repository.\nAvoid large PRs, help reviewers by making them as simple and short as possible.\n\n\n<!--- Provide a general summary of your changes in the Title above -->\n\n### Description\n<!--- Describe your changes in detail -->\n\n### Motivation and Context\n<!--- Why is this change required? What problem does it solve? -->\n\n### Types of changes\n<!--- What types of changes does your code introduce? Put an `x` in all the boxes that apply: -->\n- [ ] Bug fix (non-breaking change which fixes an issue)\n- [ ] New feature (non-breaking change which adds functionality)\n- [ ] Breaking change (fix or feature that would cause existing functionality to change)\n\n### Checklist\n<!--- Go over all the following points, and put an `x` in all the boxes that apply. -->\n<!--- If you're unsure about any of these, don't hesitate to ask. We're here to help! -->\n- [ ] I have read the [contributing](https://selenium.dev/documentation/en/contributing/) document.\n- [ ] My change requires a change to the documentation.\n- [ ] I have updated the documentation accordingly.\n- [ ] I have added tests to cover my changes.\n- [ ] All new and existing tests passed.\n<!--- Provide a general summary of your changes in the Title above -->\n"
  },
  {
    "path": ".github/actions/get-latest-upstream/action.yml",
    "content": "name: Get Latest Upstream\ndescription: Get the latest upstream release of Selenium\ninputs:\n  release:\n    description: 'Test a new release process'\n    required: false\n    type: boolean\n    default: false\n  gh_cli_token:\n    description: 'GitHub CLI authentication token'\n    required: true\n    type: secret\n\nruns:\n  using: \"composite\"\n  steps:\n    - name: Get latest upstream\n      shell: bash\n      env:\n        AUTHORS: ${{ vars.AUTHORS || 'SeleniumHQ' }}\n      run: |\n        sudo apt update\n        sudo apt install jq\n        AUTH_HEADER=\"Authorization: token ${{ inputs.gh_cli_token }}\"\n        if [ \"${{ inputs.release }}\" = \"true\" ]; then\n          echo \"Getting the latest stable release.\"\n          RELEASE=$(curl -s -H \"$AUTH_HEADER\" https://api.github.com/repos/${AUTHORS}/selenium/releases | jq -r '[.[]? | select(.prerelease == false)] | .[0].tag_name')\n        else\n          echo \"Getting the latest Nightly release.\"\n          RELEASE=$(curl -s -H \"$AUTH_HEADER\" https://api.github.com/repos/${AUTHORS}/selenium/releases | jq -r '[.[]? | select(.prerelease == true)] | .[0].tag_name' || echo \"\")\n          if [ -z \"${RELEASE}\" ] || [ \"${RELEASE}\" = \"null\" ]; then\n            echo \"Nightly release not found, getting the latest stable release.\"\n            RELEASE=$(curl -s -H \"$AUTH_HEADER\" https://api.github.com/repos/${AUTHORS}/selenium/releases | jq -r '[.[]? | select(.prerelease == false)] | .[0].tag_name')\n          fi\n        fi\n        jar_file=$(curl -s -H \"$AUTH_HEADER\" https://api.github.com/repos/${AUTHORS}/selenium/releases/tags/${RELEASE} | jq -r '.assets[] | select(.name | endswith(\".jar\")) | .name' | tail -n 1)\n        echo \"Server package: ${jar_file}\"\n        VERSION=$(echo $jar_file | sed 's/selenium-server-//;s/\\.jar//')\n        echo \"BASE_RELEASE=${RELEASE} | BASE_VERSION=${VERSION} | VERSION=${VERSION}\"\n        echo \"BASE_RELEASE=${RELEASE}\" >> $GITHUB_ENV\n        echo \"BASE_VERSION=${VERSION}\" >> $GITHUB_ENV\n        echo \"VERSION=${VERSION}\" >> $GITHUB_ENV\n"
  },
  {
    "path": ".github/dependabot.yml",
    "content": "version: 2\nupdates:\n- package-ecosystem: docker\n  directory: \"/StandaloneChrome\"\n  schedule:\n    interval: daily\n    time: '08:00'\n  open-pull-requests-limit: 99\n- package-ecosystem: docker\n  directory: \"/StandaloneFirefox\"\n  schedule:\n    interval: daily\n    time: '08:00'\n  open-pull-requests-limit: 99\n- package-ecosystem: docker\n  directory: \"/NodeFirefox\"\n  schedule:\n    interval: daily\n    time: '08:00'\n  open-pull-requests-limit: 99\n- package-ecosystem: docker\n  directory: \"/Hub\"\n  schedule:\n    interval: daily\n    time: '08:00'\n  open-pull-requests-limit: 99\n- package-ecosystem: docker\n  directory: \"/NodeBase\"\n  schedule:\n    interval: daily\n    time: '08:00'\n  open-pull-requests-limit: 99\n- package-ecosystem: docker\n  directory: \"/NodeChrome\"\n  schedule:\n    interval: daily\n    time: '08:00'\n  open-pull-requests-limit: 99\n- package-ecosystem: docker\n  directory: \"/\"\n  schedule:\n    interval: daily\n    time: '08:00'\n  open-pull-requests-limit: 99\n- package-ecosystem: github-actions\n  directory: \"/\"\n  schedule:\n    interval: daily\n    time: '08:00'\n  open-pull-requests-limit: 99\n"
  },
  {
    "path": ".github/label-commenter-config.yml",
    "content": "# Configuration for Label Commenter - https://github.com/peaceiris/actions-label-commenter\nlabels:\n  - name: needs-triaging\n    labeled:\n      issue:\n        body: |\n          @{{ issue.user.login }}, thank you for creating this issue. We will troubleshoot it as soon as we can.\n\n          ---\n          <details>\n            <summary>Info for maintainers</summary>\n            <div>\n              <br>\n              <p>\n                Triage this issue by using labels.\n              </p>\n              <p>\n                If information is missing, add a helpful comment and then <code>I-issue-template</code> label.\n              </p>\n              <p>\n                If the issue is a question, add the <code>I-question</code> label.\n              </p>\n              <p>\n                If the issue is valid but there is no time to troubleshoot it, consider adding the <code>help wanted</code> label.\n              </p>\n              <p>\n                If the issue requires changes or fixes from an external project (e.g., ChromeDriver, GeckoDriver, MSEdgeDriver, W3C),\n               add the applicable <code>G-*</code> label, and it will provide the correct link and auto-close the\n               issue.\n              </p>\n              <p>\n                After troubleshooting the issue, please add the <code>R-awaiting answer</code> label.\n              </p>\n              <p>\n                Thank you!\n              </p>\n            </div>\n          </details>\n  - name: G-w3c\n    labeled:\n      issue:\n        body: |\n          Hi, @{{ issue.user.login }}.\n          This issue has been determined to require a change to the\n          [WebDriver W3C Specification](https://w3c.github.io/webdriver/) for Selenium to be able to support it.\n\n          Please [create an issue](https://github.com/w3c/webdriver/issues/new) with the WebDriver project.\n\n          Feel free to comment the issues that you raise back in this issue. Thank you.\n        action: close\n  - name: G-chromedriver\n    labeled:\n      issue:\n        body: |\n          Hi, @{{ issue.user.login }}.\n          This issue has been determined to require fixes in [ChromeDriver](https://chromedriver.chromium.org/home).\n\n          You can see if the feature is passing in the [Web Platform Tests](https://wpt.fyi/results/webdriver/tests).\n\n          If it is something new, please [create an issue](https://bugs.chromium.org/p/chromedriver/issues/list) with the ChromeDriver team.\n          Feel free to comment the issues that you raise back in this issue. Thank you.\n\n        action: close\n  - name: G-geckodriver\n    labeled:\n      issue:\n        body: |\n          Hi, @{{ issue.user.login }}.\n          This issue has been determined to require fixes in [GeckoDriver](https://firefox-source-docs.mozilla.org/testing/geckodriver/).\n\n          You can see if the feature is passing in the [Web Platform Tests](https://wpt.fyi/results/webdriver/tests).\n\n          If it is something new, please [create an Issue](https://github.com/mozilla/geckodriver/issues/new) with the GeckoDriver team.\n\n          Feel free to comment the issues that you raise back in this issue. Thank you.\n        action: close\n  - name: G-msedgedriver\n    labeled:\n      issue:\n        body: |\n          Hi, @{{ issue.user.login }}.\n          This issue has been determined to require fixes in [MSEdgeDriver](https://developer.microsoft.com/en-us/microsoft-edge/tools/webdriver/)\n          or in the IE Mode in Edge.\n\n          You can see if the feature is passing in the [Web Platform Tests](https://wpt.fyi/results/webdriver/tests).\n\n          If it is something new, please [create an Issue](https://github.com/MicrosoftEdge/EdgeWebDriver/issues/new) with the MSEdgeDriver team.\n\n          Feel free to comment the issues that you raise back in this issue. Thank you.\n        action: close\n  - name: I-issue-template\n    labeled:\n      issue:\n        body: |\n          Hi, @{{ issue.user.login }}.\n          Please follow the issue template, we need more information to reproduce the issue.\n\n          Either a complete code snippet and URL/HTML (if more than one file is needed, provide a GitHub repo and instructions to run the code), the specific versions used, or a more detailed description to help us understand the issue.\n\n          Note: If you cannot share your code and URL/HTML, any complete code snippet and URL/HTML that reproduces the issue is good enough.\n\n          Reply to this issue when all information is provided, thank you.\n  - name: I-question\n    labeled:\n      issue:\n        body: |\n          💬 Please ask questions at:\n          * 📫 The [Selenium user group](https://groups.google.com/forum/#!forum/selenium-users)\n          * 📮 [StackOverflow](https://stackoverflow.com/questions/tagged/selenium)\n          * 🗣 Our [IRC/Slack/Matrix channels](https://www.selenium.dev/support/) where the community can help you as well\n        action: close\n  - name: help wanted\n    labeled:\n      issue:\n        body: |\n          This issue is looking for contributors.\n\n          Please comment below or reach out to us through our [IRC/Slack/Matrix channels](https://www.selenium.dev/support/) if you are interested.\n"
  },
  {
    "path": ".github/workflows/build-ffmpeg.yml",
    "content": "name: Build and Deploy FFmpeg\n\non:\n  push:\n    branches:\n      - trunk\n    paths:\n      - '.ffmpeg/Dockerfile'\n  pull_request:\n    paths:\n      - '.ffmpeg/Dockerfile'\n  workflow_dispatch:\n    inputs:\n      release:\n        description: 'Deploy a new release'\n        required: false\n        type: boolean\n        default: false\n\njobs:\n  deploy:\n    name: Build and Deploy FFmpeg\n    runs-on: ubuntu-24.04\n    permissions: write-all\n    steps:\n      - name: Checkout code\n        uses: actions/checkout@main\n        with:\n          persist-credentials: false\n          fetch-depth: 0\n      - name: Set up containerd image store feature\n        uses: nick-invision/retry@master\n        with:\n          timeout_minutes: 10\n          max_attempts: 3\n          command: |\n            make setup_dev_env\n      - name: Output Docker info\n        run: docker info\n      - name: Sets build date\n        run: |\n          echo \"BUILD_DATE=$(date '+%Y%m%d')\" >> $GITHUB_ENV\n          echo \"NAME=${NAMESPACE}\" >> $GITHUB_ENV\n          make set_build_multiarch\n          cat .env | xargs -I {} echo {} >> $GITHUB_ENV\n        env:\n          NAMESPACE: ${{ vars.DOCKER_NAMESPACE || 'selenium' }}\n          AUTHORS: ${{ vars.AUTHORS || 'SeleniumHQ' }}\n      - name: Build images\n        uses: nick-invision/retry@master\n        with:\n          timeout_minutes: 300\n          max_attempts: 2\n          retry_wait_seconds: 60\n          command: |\n            PLATFORMS=\"${PLATFORMS}\" make ffmpeg\n            make tag_ffmpeg_latest\n      - name: Login Docker Hub\n        if: ${{ github.event.inputs.release == 'true' }}\n        run: docker login -u=\"$DOCKER_USERNAME\" -p=\"$DOCKER_PASSWORD\"\n        env:\n          DOCKER_USERNAME: ${{secrets.DOCKER_USERNAME}}\n          DOCKER_PASSWORD: ${{secrets.DOCKER_PASSWORD}}\n      - name: Deploy new images\n        if: ${{ github.event.inputs.release == 'true' }}\n        uses: nick-invision/retry@master\n        with:\n          timeout_minutes: 20\n          max_attempts: 5\n          retry_wait_seconds: 300\n          command: |\n            make release_ffmpeg_latest\n"
  },
  {
    "path": ".github/workflows/build-test.yml",
    "content": "name: Build & test\n\non:\n  workflow_call:\n    secrets:\n      DOCKER_USERNAME:\n        required: false\n      DOCKER_PASSWORD:\n        required: false\n    inputs:\n      release:\n        description: 'Test a new release process'\n        required: false\n        type: string\n        default: 'false'\n      test-patched-keda:\n        description: 'Test patched KEDA (true/false)'\n        required: false\n        default: ''\n        type: string\n  workflow_dispatch:\n    inputs:\n      rerunFailedOnly:\n        description: 'Rerun only failed jobs'\n        required: false\n        type: boolean\n        default: true\n      test-patched-keda:\n        description: 'Test patched KEDA (true/false)'\n        required: false\n        default: ''\n        type: string\n  push:\n    branches:\n      - trunk\n    paths-ignore:\n      - '**.md'\n      - '**/*.md'\n      - 'CHANGELOG/**'\n      - '.*'\n  pull_request:\n    paths-ignore:\n      - '**.md'\n      - '**/*.md'\n      - 'CHANGELOG/**'\n      - 'tests/build-backward-compatible/**'\n      - 'scripts/generate_list_env_vars/**'\n\nconcurrency:\n  group: ${{ github.workflow }}-${{ github.ref == github.ref_protected && github.run_id || github.event.pull_request.number || github.ref }}\n  cancel-in-progress: true\n\npermissions: write-all\n\nenv:\n  GH_CLI_TOKEN: ${{ secrets.GITHUB_TOKEN }}\n  GH_CLI_TOKEN_PR: ${{ secrets.TRIGGER_CI_TOKEN || secrets.GITHUB_TOKEN }}\n  RUN_ID: ${{ github.run_id }}\n  RERUN_FAILED_ONLY: ${{ github.event.inputs.rerunFailedOnly || true }}\n  RUN_ATTEMPT: ${{ github.run_attempt }}\n\njobs:\n  lint-format:\n    name: Lint scripts format\n    runs-on: ubuntu-24.04\n    steps:\n      - name: Checkout code\n        uses: actions/checkout@main\n      - name: Lint format\n        run: make lint_format_scripts\n\n  docker-test:\n    needs: [lint-format]\n    if: contains(toJson(github.event.commits), '[skip test]') == false\n    name: Test Selenium Grid on Docker\n    uses: ./.github/workflows/docker-test.yml\n    with:\n      release: ${{ inputs.release == 'true' }}\n\n  helm-chart-test:\n    needs: [lint-format]\n    if: contains(toJson(github.event.commits), '[skip test]') == false\n    name: Test Selenium Grid on Kubernetes\n    uses: ./.github/workflows/helm-chart-test.yml\n    secrets: inherit\n    with:\n      release: ${{ inputs.release == 'true' }}\n      test-patched-keda: ${{ github.event.inputs.test-patched-keda }}\n\n  rerun-workflow-when-failure:\n    name: Rerun workflow when failure\n    needs:\n      - docker-test\n      - helm-chart-test\n    if: failure() && ( github.run_attempt < 3 )\n    runs-on: ubuntu-24.04\n    steps:\n      - name: Checkout code\n        uses: actions/checkout@main\n      - name: Install GitHub CLI\n        run: |\n          sudo apt update\n          sudo apt install gh\n      - name: Authenticate GitHub CLI for PR\n        if: github.event_name == 'pull_request'\n        run: |\n          echo \"$GH_CLI_TOKEN_PR\" | gh auth login --with-token\n      - name: Authenticate GitHub CLI\n        if: github.event_name != 'pull_request'\n        run: |\n          echo \"$GH_CLI_TOKEN\" | gh auth login --with-token\n      - name: Rerun workflow when failure\n        run: |\n          echo \"Rerun workflow ID $RUN_ID in attempt #$(($RUN_ATTEMPT + 1))\"\n          gh workflow run rerun-failed.yml \\\n            --repo $GITHUB_REPOSITORY \\\n            --raw-field runId=$RUN_ID \\\n            --raw-field rerunFailedOnly=$RERUN_FAILED_ONLY\n"
  },
  {
    "path": ".github/workflows/create-changelog-pr.yml",
    "content": "name: Create changelog PR\n\non:\n  workflow_call:\n    inputs:\n      grid-version:\n        required: true\n        type: string\n      browser-name:\n        required: true\n        type: string\n      browser-versions:\n        required: true\n        type: string\n      run-id:\n        required: true\n        type: string\n\njobs:\n  pr-results:\n    name: Create a PR with changelog\n    runs-on: ubuntu-24.04\n    steps:\n      - name: Checkout code\n        uses: actions/checkout@main\n        with:\n          persist-credentials: false\n          fetch-depth: 0\n      - name: Check existing PR\n        id: check-pr\n        run: |\n          PR_NUMBER=$(gh pr list --base trunk --head browser-node-changelog --json number --jq '.[0].number')\n          if [ \"$PR_NUMBER\" != \"null\" ] && [ -n \"$PR_NUMBER\" ]; then\n            echo \"pr-exists=true\" >> $GITHUB_OUTPUT\n          else\n            echo \"pr-exists=false\" >> $GITHUB_OUTPUT\n          fi\n        env:\n          GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}\n      - name: Checkout PR branch\n        if: steps.check-pr.outputs.pr-exists == 'true'\n        run: |\n          git checkout browser-node-changelog\n      - name: Create CHANGELOG directory\n        run: mkdir -p ./CHANGELOG/${{ inputs.grid-version }}\n      - name: Download results\n        uses: actions/download-artifact@v8\n        with:\n          path: ./CHANGELOG/${{ inputs.grid-version }}\n          pattern: 'image_tags_*'\n          merge-multiple: 'true'\n          run-id: ${{ inputs.run-id }}\n          github-token: ${{ secrets.GITHUB_TOKEN }}\n      - name: Fetch latest version\n        run: make update_browser_versions_matrix\n      - name: Commit & Push changes\n        if: steps.check-pr.outputs.pr-exists == 'true'\n        uses: actions-js/push@master\n        with:\n          github_token: ${{ secrets.GITHUB_TOKEN }}\n          author_email: \"selenium-ci@users.noreply.github.com\"\n          author_name: \"Selenium CI Bot\"\n          message: \"[ci] Upload CHANGELOG for Node/Standalone ${{ inputs.browser-name }} version with Grid ${{ inputs.grid-version }}\"\n          empty: true\n          rebase: true\n          branch: \"browser-node-changelog\"\n      - name: Create Pull Request\n        if: steps.check-pr.outputs.pr-exists == 'false'\n        uses: peter-evans/create-pull-request@main\n        with:\n          token: ${{ secrets.SELENIUM_CI_TOKEN }}\n          commit-message: |\n            [ci] Upload CHANGELOG for Node/Standalone ${{ inputs.browser-name }} version with Grid ${{ inputs.grid-version }}\n            \n            Browser versions: ${{ inputs.browser-versions }}\n          title: \"[ci] CHANGELOG for Node/Standalone browser versions with Grid ${{ inputs.grid-version }}\"\n          body: \"This PR contains the CHANGELOG for Node/Standalone with backward browser versions\"\n          committer: 'Selenium CI Bot <selenium-ci@users.noreply.github.com>'\n          author: 'Selenium CI Bot <selenium-ci@users.noreply.github.com>'\n          branch: browser-node-changelog"
  },
  {
    "path": ".github/workflows/deploy.yml",
    "content": "name: Deploys\n\non:\n  workflow_dispatch:\n    inputs:\n      stable:\n        description: 'Use upstream stable build'\n        required: true\n        type: string\n        default: 'true'\n      release:\n        description: 'Deploy a new release'\n        required: false\n        type: string\n        default: 'true'\n      skip-test:\n        description: 'Skip the tests'\n        required: false\n        type: boolean\n        default: false\n      skip-commit:\n        description: 'Skip the commit'\n        required: false\n        type: boolean\n        default: false\n      skip-build-push-image:\n        description: 'Skip the build & push images'\n        required: false\n        type: boolean\n        default: false\n      build-date:\n        description: 'Build date'\n        required: false\n        type: string\n        default: ''\n  push:\n    branches:\n      - trunk\n\njobs:\n  build-test:\n    name: Build and Test\n    if: contains(toJson(github.event.commits), '[deploy]') == true || (github.event_name == 'workflow_dispatch' && github.event.inputs.skip-test == 'false')\n    uses: ./.github/workflows/build-test.yml\n    secrets: inherit\n    with:\n      release: ${{ github.event.inputs.stable || true }}\n\n  deploy:\n    needs:\n      - build-test\n    if: (contains(toJson(github.event.commits), '[deploy]') == true || (github.event_name == 'workflow_dispatch' && github.event.inputs.release == 'true')) && !failure() && !cancelled()\n    name: Deploy and Release\n    runs-on: ubuntu-24.04\n    permissions: write-all\n    steps:\n      - name: Free Disk Space (Ubuntu)\n        uses: jlumbroso/free-disk-space@main\n        with:\n          tool-cache: true\n          android: true\n          dotnet: true\n          haskell: true\n          large-packages: true\n          docker-images: true\n          swap-storage: true\n      - name: Checkout code\n        uses: actions/checkout@main\n        with:\n          persist-credentials: false\n          fetch-depth: 0\n      - name: Set up containerd image store feature\n        uses: nick-invision/retry@master\n        with:\n          timeout_minutes: 10\n          max_attempts: 3\n          command: |\n            make setup_dev_env\n      - name: Output Docker info\n        run: docker info\n      - name: Set Selenium base version\n        uses: ./.github/actions/get-latest-upstream\n        with:\n          release: ${{ github.event.inputs.stable || true }}\n          gh_cli_token: ${{ secrets.GITHUB_TOKEN }}\n      - name: Sets build date\n        run: |\n          if [ -z \"${BUILD_DATE}\" ]; then\n            echo \"BUILD_DATE=$(date '+%Y%m%d')\" >> $GITHUB_ENV\n          else\n            echo \"BUILD_DATE=${BUILD_DATE}\" >> $GITHUB_ENV\n          fi\n          echo \"NAME=${NAMESPACE}\" >> $GITHUB_ENV\n          make set_build_multiarch\n          cat .env | xargs -I {} echo {} >> $GITHUB_ENV\n        env:\n          NAMESPACE: ${{ vars.DOCKER_NAMESPACE || 'selenium' }}\n          AUTHORS: ${{ vars.AUTHORS || 'SeleniumHQ' }}\n          BUILD_DATE: ${{ github.event.inputs.build-date || '' }}\n      - name: Sets prerelease to false by default\n        run: echo \"PRERELEASE=false\" >> $GITHUB_ENV\n      - name: Get Grid version\n        run: |\n          echo ${BASE_VERSION}\n          echo \"GRID_VERSION=${BASE_VERSION}\" >> $GITHUB_ENV\n      - name: Is it a prerelease?\n        run: echo \"GRID_VERSION=${GRID_VERSION}-prerelease\" >> $GITHUB_ENV && echo \"PRERELEASE=true\" >> $GITHUB_ENV\n        if: contains(toJson(github.event.commits), '[prerelease]') == true\n      - name: Display Grid version\n        run: echo ${GRID_VERSION}\n      - name: Sets env var for the next tag\n        run: echo \"NEXT_TAG=${GRID_VERSION}-${BUILD_DATE}\" >> $GITHUB_ENV\n      - name: Get latest tag\n        run: echo \"LATEST_TAG=$(git tag --sort=-version:refname | grep \"^[^selenium]\" | head -n 1)\" >> $GITHUB_ENV\n      - name: Display latest tag\n        run: echo ${LATEST_TAG}\n      - name: Update tag in docs and files\n        run: ./update_tag_in_docs_and_files.sh ${LATEST_TAG} ${NEXT_TAG}\n      - name: Update chart configuration docs\n        run: make generate_readme_charts\n      - name: Build Helm chart\n        uses: nick-invision/retry@master\n        with:\n          timeout_minutes: 5\n          max_attempts: 3\n          retry_wait_seconds: 10\n          command: |\n            SET_VERSION=false make chart_build\n            echo \"CHART_PACKAGE_PATH=$(cat /tmp/selenium_chart_version)\" >> $GITHUB_ENV\n            echo \"CHART_FILE_NAME=$(basename $(cat /tmp/selenium_chart_version))\" >> $GITHUB_ENV\n      - name: Render chart templates\n        run: |\n          make chart_render_template\n          echo \"PUBLISH_YAML_MANIFESTS=$(find ./tests/tests -name \"k8s_*.yaml\" | tr '\\n' ',')\" >> $GITHUB_ENV\n      - name: Build images\n        if: github.event.inputs.skip-build-push-image != 'true'\n        uses: nick-invision/retry@master\n        with:\n          timeout_minutes: 180\n          max_attempts: 3\n          retry_wait_seconds: 60\n          command: PLATFORMS=\"${PLATFORMS}\" VERSION=\"${GRID_VERSION}\" BUILD_DATE=${BUILD_DATE} make build\n      - name: Login Docker Hub\n        run: docker login -u=\"$DOCKER_USERNAME\" -p=\"$DOCKER_PASSWORD\"\n        env:\n          DOCKER_USERNAME: ${{secrets.DOCKER_USERNAME}}\n          DOCKER_PASSWORD: ${{secrets.DOCKER_PASSWORD}}\n      - name: Deploy new images\n        if: github.event.inputs.skip-build-push-image != 'true'\n        uses: nick-invision/retry@master\n        with:\n          timeout_minutes: 20\n          max_attempts: 5\n          retry_wait_seconds: 300\n          command: VERSION=\"${GRID_VERSION}\" BUILD_DATE=${BUILD_DATE} make release\n      - name: Tag images as latest\n        if: github.event.inputs.skip-build-push-image != 'true'\n        run: VERSION=\"${GRID_VERSION}\" BUILD_DATE=${BUILD_DATE} make tag_latest\n      - name: Deploy latest tag\n        if: github.event.inputs.skip-build-push-image != 'true'\n        uses: nick-invision/retry@master\n        with:\n          timeout_minutes: 20\n          max_attempts: 5\n          retry_wait_seconds: 300\n          command: VERSION=\"${GRID_VERSION}\" BUILD_DATE=${BUILD_DATE} make release_latest\n      - name: Update package versions\n        run: make update_browser_versions_matrix\n#          make generate_latest_sbom\n#          make fetch_grid_scaler_resources\n      - name: Tag browser images\n        if: github.event.inputs.skip-build-push-image != 'true'\n        uses: nick-invision/retry@master\n        with:\n          timeout_minutes: 20\n          max_attempts: 5\n          retry_wait_seconds: 300\n          command: VERSION=\"${GRID_VERSION}\" BUILD_DATE=${BUILD_DATE} PUSH_IMAGE=true make tag_and_push_browser_images\n      - name: Delete previous nightly tag & release if any\n        uses: dev-drprasad/delete-tag-and-release@master\n        with:\n          tag_name: nightly\n          github_token: ${{ secrets.GITHUB_TOKEN }}\n          delete_release: true\n      - name: Commit files\n        if: env.LATEST_TAG != env.NEXT_TAG && github.event.inputs.skip-commit != 'true'\n        run: |\n          git config --local user.email \"selenium-ci@users.noreply.github.com\"\n          git config --local user.name \"Selenium CI Bot\"\n          git commit -m \"[ci] Update tag ${RELEASE_TAG} in docs and files\" -m \"[skip test]\" -a\n          git pull --rebase\n        env:\n          RELEASE_TAG: \"${{ env.GRID_VERSION }}-${{ env.BUILD_DATE }}\"\n      - name: Push changes\n        if: env.LATEST_TAG != env.NEXT_TAG && github.event.inputs.skip-commit != 'true'\n        uses: ad-m/github-push-action@master\n        with:\n          github_token: ${{ secrets.SELENIUM_CI_TOKEN }}\n          branch: trunk\n      - name: Create release notes (release_notes.md)\n        run: ./generate_release_notes.sh ${LATEST_TAG} origin/trunk ${GRID_VERSION} ${BUILD_DATE}\n      - name: Upload release notes\n        uses: actions/upload-artifact@main\n        with:\n          name: release_notes\n          path: ./release_notes.md\n          if-no-files-found: ignore\n      - name: Create Release\n        if: env.LATEST_TAG != env.NEXT_TAG\n        id: create_release\n        uses: softprops/action-gh-release@v2.6.1\n        with:\n          token: ${{ secrets.GITHUB_TOKEN }}\n          tag_name: \"${{ env.GRID_VERSION }}-${{ env.BUILD_DATE }}\"\n          name: \"${{ env.GRID_VERSION }}-${{ env.BUILD_DATE }}\"\n          body_path: \"release_notes.md\"\n          generate_release_notes: true\n          prerelease: ${{ env.PRERELEASE }}\n          draft: false\n          append_body: false\n          discussion_category_name: \"Announcements\"\n          files: |\n            package_versions.txt\n            ${{ env.PUBLISH_YAML_MANIFESTS }}\n"
  },
  {
    "path": ".github/workflows/docker-test.yml",
    "content": "name: Test Docker Selenium\n\non:\n  workflow_call:\n    inputs:\n      release:\n        description: 'Test a new release process'\n        required: false\n        type: string\n        default: 'false'\n  workflow_dispatch:\n    inputs:\n      request-timeout:\n        description: 'Test parameter for different request timeout'\n        required: false\n        default: '400'\n      parallel-hardening:\n        description: 'Test parameter to enable hardening parallel tests'\n        required: false\n        default: 'true'\n      log-level:\n        description: 'Test parameter for different log level'\n        required: false\n        default: 'INFO'\n\npermissions:\n  contents: read\n\njobs:\n  build-and-test:\n    name: Test Docker Selenium\n    runs-on: ${{ matrix.os }}\n    strategy:\n      fail-fast: false\n      matrix:\n        include:\n          - test-strategy: test\n            use-random-user: true\n            test-video: false\n            build-all: true\n            os: ubuntu-24.04\n            firefox-install-lang-package:\n            enable-managed-downloads:\n          - test-strategy: test\n            use-random-user: false\n            test-video: false\n            build-all: true\n            os: ubuntu-24.04\n            firefox-install-lang-package:\n            enable-managed-downloads:\n          - test-strategy: test_video\n            use-random-user: false\n            test-video: true\n            build-all: false\n            os: ubuntu-24.04\n            firefox-install-lang-package:\n            enable-managed-downloads:\n          - test-strategy: test_video_dynamic_name\n            use-random-user: false\n            test-video: true\n            build-all: false\n            os: ubuntu-24.04\n            firefox-install-lang-package:\n            enable-managed-downloads:\n          - test-strategy: test_video_standalone\n            use-random-user: false\n            test-video: true\n            build-all: false\n            os: ubuntu-24.04\n            firefox-install-lang-package:\n            enable-managed-downloads:\n          - test-strategy: test_node_docker\n            use-random-user: false\n            test-video: true\n            build-all: false\n            os: ubuntu-24.04\n            firefox-install-lang-package:\n            enable-managed-downloads:\n          - test-strategy: test_standalone_docker\n            use-random-user: false\n            test-video: true\n            build-all: false\n            os: ubuntu-24.04\n            firefox-install-lang-package:\n            enable-managed-downloads:\n          - test-strategy: test_parallel\n            use-random-user: false\n            test-video: false\n            build-all: false\n            os: ubuntu-24.04\n            firefox-install-lang-package:\n            enable-managed-downloads:\n          - test-strategy: test_node_relay\n            use-random-user: false\n            test-video: false\n            build-all: false\n            os: ubuntu-24.04\n            firefox-install-lang-package:\n            enable-managed-downloads:\n          ###\n          - test-strategy: test\n            use-random-user: true\n            test-video: false\n            build-all: true\n            os: ubuntu-24.04-arm\n            firefox-install-lang-package: false\n            enable-managed-downloads: false\n          - test-strategy: test\n            use-random-user: false\n            test-video: false\n            build-all: true\n            os: ubuntu-24.04-arm\n            firefox-install-lang-package: false\n            enable-managed-downloads: false\n          - test-strategy: test_video\n            use-random-user: false\n            test-video: true\n            build-all: false\n            os: ubuntu-24.04-arm\n            firefox-install-lang-package: true\n            enable-managed-downloads: true\n          - test-strategy: test_video_dynamic_name\n            use-random-user: false\n            test-video: true\n            build-all: false\n            os: ubuntu-24.04-arm\n            firefox-install-lang-package: true\n            enable-managed-downloads: true\n          - test-strategy: test_video_standalone\n            use-random-user: false\n            test-video: true\n            build-all: false\n            os: ubuntu-24.04-arm\n            firefox-install-lang-package: true\n            enable-managed-downloads: true\n          - test-strategy: test_node_docker\n            use-random-user: false\n            test-video: true\n            build-all: false\n            os: ubuntu-24.04-arm\n            firefox-install-lang-package: true\n            enable-managed-downloads: false\n          - test-strategy: test_standalone_docker\n            use-random-user: false\n            test-video: true\n            build-all: false\n            os: ubuntu-24.04-arm\n            firefox-install-lang-package: true\n            enable-managed-downloads: true\n          - test-strategy: test_parallel\n            use-random-user: false\n            test-video: false\n            build-all: false\n            os: ubuntu-24.04-arm\n            firefox-install-lang-package: false\n            enable-managed-downloads: true\n          - test-strategy: test_node_relay\n            use-random-user: false\n            test-video: false\n            build-all: false\n            os: ubuntu-24.04-arm\n            firefox-install-lang-package: true\n            enable-managed-downloads: true\n    steps:\n      - name: Free Disk Space (Ubuntu)\n        uses: jlumbroso/free-disk-space@main\n        with:\n          tool-cache: false\n          large-packages: false\n      - name: Checkout code\n        uses: actions/checkout@main\n      - name: Format and lint scripts\n        run: |\n          make format_shell_scripts\n      - name: Disable QEMU\n        if: matrix.test-strategy == 'test_node_relay' && contains(matrix.os, 'amd') == true\n        run: echo \"DOCKER_ENABLE_QEMU=false >> $GITHUB_ENV\"\n      - name: Set up containerd image store feature\n        uses: nick-invision/retry@master\n        with:\n          timeout_minutes: 10\n          max_attempts: 3\n          command: |\n            DOCKER_ENABLE_QEMU=${DOCKER_ENABLE_QEMU} make setup_dev_env\n      - name: Output Docker info\n        run: docker info\n      - name: Set up Python\n        uses: actions/setup-python@main\n        with:\n          python-version: '3.14'\n          check-latest: true\n      - name: Enable KVM\n        if: matrix.test-strategy == 'test_node_relay' && contains(matrix.os, 'arm') == false\n        run: |\n          echo 'KERNEL==\"kvm\", GROUP=\"kvm\", MODE=\"0666\", OPTIONS+=\"static_node=kvm\"' | sudo tee /etc/udev/rules.d/99-kvm4all.rules\n          sudo udevadm control --reload-rules\n          sudo udevadm trigger --name-match=kvm\n      - name: Get branch name (only for push to branch)\n        if: github.event_name == 'push'\n        run: echo \"BRANCH=$(echo ${PUSH_BRANCH##*/})\" >> $GITHUB_ENV\n        env:\n          PUSH_BRANCH: ${{ github.ref }}\n      - name: Get target branch name (only for PRs)\n        if: github.event_name == 'pull_request'\n        run: echo \"BRANCH=$(echo ${TARGET_BRANCH##*/})\" >> $GITHUB_ENV\n        env:\n          TARGET_BRANCH: ${{ github.head_ref }}\n      - name: Output branch name\n        run: echo ${BRANCH}\n      - name: Set Selenium base version\n        uses: ./.github/actions/get-latest-upstream\n        with:\n          release: ${{ inputs.release || false }}\n          gh_cli_token: ${{ secrets.GITHUB_TOKEN }}\n      - name: Sets build date\n        run: |\n          echo \"BUILD_DATE=$(date '+%Y%m%d')\" >> $GITHUB_ENV\n          echo \"AUTHORS=${AUTHORS}\" >> $GITHUB_ENV\n        env:\n          AUTHORS: ${{ vars.AUTHORS || 'SeleniumHQ' }}\n      - name: Build Docker images\n        uses: nick-invision/retry@master\n        if: matrix.build-all == true\n        with:\n          timeout_minutes: 90\n          max_attempts: 3\n          retry_wait_seconds: 60\n          command: |\n            VERSION=${BRANCH} BUILD_DATE=${BUILD_DATE} make build\n      - name: Set test parameters\n        if: (github.event_name == 'schedule' || github.event_name == 'workflow_dispatch')\n        run: |\n          echo \"LOG_LEVEL=${LOG_LEVEL}\" >> $GITHUB_ENV\n          echo \"TEST_PARALLEL_HARDENING=${TEST_PARALLEL_HARDENING}\" >> $GITHUB_ENV\n          echo \"REQUEST_TIMEOUT=${REQUEST_TIMEOUT}\" >> $GITHUB_ENV\n        env:\n          LOG_LEVEL: ${{ github.event.inputs.log-level || 'INFO' }}\n          TEST_PARALLEL_HARDENING: ${{ github.event.inputs.parallel-hardening || 'true' }}\n          REQUEST_TIMEOUT: ${{ github.event.inputs.request-timeout || '400' }}\n      - name: Set environment variables\n        run: |\n          if [ -n \"${TEST_FIREFOX_INSTALL_LANG_PACKAGE}\" ]; then\n            echo \"TEST_FIREFOX_INSTALL_LANG_PACKAGE=${TEST_FIREFOX_INSTALL_LANG_PACKAGE}\" >> $GITHUB_ENV\n          fi\n          if [ -n \"${SELENIUM_ENABLE_MANAGED_DOWNLOADS}\" ]; then\n              echo \"SELENIUM_ENABLE_MANAGED_DOWNLOADS=${SELENIUM_ENABLE_MANAGED_DOWNLOADS}\" >> $GITHUB_ENV\n          fi\n        env:\n          TEST_FIREFOX_INSTALL_LANG_PACKAGE: ${{ matrix.firefox-install-lang-package }}\n          SELENIUM_ENABLE_MANAGED_DOWNLOADS: ${{ matrix.enable-managed-downloads }}\n      - name: Run Docker Compose to ${{ matrix.test-strategy }} on AMD64\n        if: contains(matrix.os, 'arm') == false\n        uses: nick-invision/retry@master\n        with:\n          timeout_minutes: 90\n          max_attempts: 2\n          retry_wait_seconds: 60\n          command: |\n            USE_RANDOM_USER_ID=${{ matrix.use-random-user }} VERSION=${BRANCH} BUILD_DATE=${BUILD_DATE} make ${{ matrix.test-strategy }}\n      - name: Run Docker Compose to ${{ matrix.test-strategy }} on ARM64\n        if: contains(matrix.os, 'arm') == true\n        uses: nick-invision/retry@master\n        with:\n          timeout_minutes: 90\n          max_attempts: 2\n          retry_wait_seconds: 60\n          command: |\n            USE_RANDOM_USER_ID=${{ matrix.use-random-user }} VERSION=${BRANCH} BUILD_DATE=${BUILD_DATE} \\\n            TEST_FIREFOX_INSTALL_LANG_PACKAGE=${TEST_FIREFOX_INSTALL_LANG_PACKAGE} SELENIUM_ENABLE_MANAGED_DOWNLOADS=${SELENIUM_ENABLE_MANAGED_DOWNLOADS} \\\n            make ${{ matrix.test-strategy }}\n      - name: Upload recorded video\n        if: matrix.test-video == true\n        uses: actions/upload-artifact@main\n        with:\n          name: \"${{ matrix.test-strategy }}_artifacts_${{ matrix.os }}\"\n          path: ./tests/videos/\n      - name: Clean up Docker\n        if: always()\n        run: docker system prune -af\n"
  },
  {
    "path": ".github/workflows/helm-chart-release.yml",
    "content": "name: Release Charts\nconcurrency:\n  group: ${{ github.workflow }}\n\non:\n  push:\n    branches:\n      - trunk\n    paths:\n      - 'charts/selenium-grid/Chart.yaml'\n  workflow_dispatch:\n    inputs:\n      release:\n        description: 'Deploy a new release'\n        required: false\n        type: string\n        default: 'false'\n      skip-test:\n        description: 'Skip the tests'\n        required: false\n        type: boolean\n        default: false\n      skip-commit:\n        description: 'Skip the commit'\n        required: false\n        type: boolean\n        default: false\n\npermissions: write-all\n\nenv:\n  GH_CLI_TOKEN: ${{ secrets.GITHUB_TOKEN }}\n  GH_CLI_TOKEN_PR: ${{ secrets.TRIGGER_CI_TOKEN || secrets.GITHUB_TOKEN }}\n  RUN_ID: ${{ github.run_id }}\n  RERUN_FAILED_ONLY: ${{ github.event.inputs.rerunFailedOnly || true }}\n  RUN_ATTEMPT: ${{ github.run_attempt }}\n  FORCE_RELEASE: ${{ github.event.inputs.release == 'true' }}\n\njobs:\n  helm-chart-test:\n    if: github.event.inputs.skip-test != 'true' && contains(toJson(github.event.commits), '[skip test]') == false\n    uses: ./.github/workflows/helm-chart-test.yml\n    secrets: inherit\n    with:\n      release: ${{ github.event.inputs.release == 'true' }}\n\n  release:\n    needs:\n      - helm-chart-test\n    if: (!failure() && !cancelled())\n    runs-on: ubuntu-24.04\n    permissions: write-all\n    env:\n      NAME: ${{ vars.DOCKER_NAMESPACE || 'selenium' }}\n    steps:\n      - name: Checkout\n        uses: actions/checkout@main\n        with:\n          persist-credentials: false\n          fetch-depth: 0\n      - name: Set up environment for building chart\n        uses: nick-invision/retry@master\n        with:\n          timeout_minutes: 10\n          max_attempts: 3\n          command: make setup_dev_env\n      - name: Build Helm chart\n        uses: nick-invision/retry@master\n        with:\n          timeout_minutes: 5\n          max_attempts: 3\n          retry_wait_seconds: 10\n          command: |\n            SET_VERSION=false make chart_build\n            echo \"CHART_PACKAGE_PATH=$(cat /tmp/selenium_chart_version)\" >> $GITHUB_ENV\n            echo \"CHART_FILE_NAME=$(basename $(cat /tmp/selenium_chart_version))\" >> $GITHUB_ENV\n\n      - name: Configure Git\n        run: |\n          git config user.name \"$GITHUB_ACTOR\"\n          git config user.email \"$GITHUB_ACTOR@users.noreply.github.com\"\n\n      - name: Get chart release notes (chart_release_notes.md)\n        run: |\n          ./generate_chart_changelog.sh\n          if [ \"${FORCE_RELEASE}\" == \"true\" ]; then\n            echo \"IS_RELEASE=true\" >> $GITHUB_ENV\n          else\n            echo \"IS_RELEASE=$(cat /tmp/selenium_chart_release)\" >> $GITHUB_ENV\n          fi\n\n      - name: Login Docker Hub\n        run: helm registry login registry-1.docker.io -u \"$DOCKER_USERNAME\" -p \"$DOCKER_PASSWORD\"\n        env:\n          DOCKER_USERNAME: ${{secrets.DOCKER_USERNAME}}\n          DOCKER_PASSWORD: ${{secrets.DOCKER_PASSWORD}}\n\n      - name: Push Helm chart to registry\n        uses: nick-invision/retry@master\n        with:\n          timeout_minutes: 20\n          max_attempts: 3\n          retry_wait_seconds: 120\n          command: |\n            make chart_release\n            echo \"LATEST_CHART_VERSION=$(cat /tmp/latest_chart_version)\" >> $GITHUB_ENV\n\n      - name: Run chart-releaser\n        if: env.IS_RELEASE == 'true'\n        uses: helm/chart-releaser-action@main\n        with:\n          mark_as_latest: false\n          skip_existing: false\n        env:\n          CR_TOKEN: \"${{ secrets.GITHUB_TOKEN }}\"\n          CR_RELEASE_NOTES_FILE: RELEASE_NOTES.md\n\n      - name: Commit files\n        if: github.event.inputs.skip-commit != 'true'\n        run: |\n          git config --local user.email \"selenium-ci@users.noreply.github.com\"\n          git config --local user.name \"Selenium CI Bot\"\n          git commit -m \"[ci] Update chart ${LATEST_CHART_VERSION} changelog\" -m \"[skip ci]\" -a || true\n          git pull --rebase\n\n      - name: Push changes\n        if: github.event.inputs.skip-commit != 'true'\n        uses: ad-m/github-push-action@master\n        with:\n          github_token: ${{ secrets.SELENIUM_CI_TOKEN || secrets.GITHUB_TOKEN }}\n          branch: trunk\n\n  rerun-workflow-when-failure:\n    name: Rerun workflow when failure\n    needs:\n      - helm-chart-test\n    if: failure() && ( github.run_attempt < 3 )\n    runs-on: ubuntu-24.04\n    steps:\n      - name: Checkout code\n        uses: actions/checkout@main\n      - name: Install GitHub CLI\n        run: |\n          sudo apt update\n          sudo apt install gh\n      - name: Authenticate GitHub CLI for PR\n        if: github.event_name == 'pull_request'\n        run: |\n          echo \"$GH_CLI_TOKEN_PR\" | gh auth login --with-token\n      - name: Authenticate GitHub CLI\n        if: github.event_name != 'pull_request'\n        run: |\n          echo \"$GH_CLI_TOKEN\" | gh auth login --with-token\n      - name: Rerun workflow when failure\n        run: |\n          echo \"Rerun workflow ID $RUN_ID in attempt #$(($RUN_ATTEMPT + 1))\"\n          gh workflow run rerun-failed.yml \\\n            --repo $GITHUB_REPOSITORY \\\n            --raw-field runId=$RUN_ID \\\n            --raw-field rerunFailedOnly=$RERUN_FAILED_ONLY\n"
  },
  {
    "path": ".github/workflows/helm-chart-test.yml",
    "content": "name: Test Helm Charts\n\non:\n  workflow_call:\n    secrets:\n      DOCKER_USERNAME:\n        required: false\n      DOCKER_PASSWORD:\n        required: false\n    inputs:\n      release:\n        description: 'Test a new release process'\n        required: false\n        type: string\n        default: 'false'\n      test-patched-keda:\n        description: 'Test patched KEDA (true/false)'\n        required: false\n        default: ''\n        type: string\n  workflow_dispatch:\n    inputs:\n      request-timeout:\n        description: 'Test parameter for different request timeout'\n        required: false\n        default: '15'\n      max-replicas-count:\n        description: 'Test parameter for autoscaling to set maxReplicaCount'\n        required: false\n        default: '10'\n      log-level:\n        description: 'Test parameter for different log level'\n        required: false\n        default: 'FINE'\n      test-patched-keda:\n        description: 'Test patched KEDA (true/false)'\n        required: false\n        default: ''\n        type: string\n\npermissions:\n  contents: read\n\njobs:\n  build-and-test:\n    name: Test K8s\n    runs-on: ${{ matrix.os }}\n    strategy:\n      fail-fast: false\n      matrix:\n        include:\n          - k8s-version: 'v1.34.2'\n            cluster: 'minikube'\n            helm-version: 'v3.19.2'\n            docker-version: '29.1.1'\n            python-version: '3.10'\n            test-upgrade: true\n            service-mesh: false\n            os: ubuntu-22.04\n            check-records-output: true\n            test-strategy: disabled\n          - k8s-version: 'v1.34.2'\n            cluster: 'minikube'\n            helm-version: 'v3.18.6'\n            docker-version: '29.1.1'\n            python-version: '3.10'\n            test-upgrade: true\n            service-mesh: false\n            os: ubuntu-22.04\n            check-records-output: true\n            test-strategy: job\n          - k8s-version: 'v1.34.2'\n            cluster: 'minikube'\n            helm-version: 'v4.0.1'\n            docker-version: '29.1.1'\n            python-version: '3.14'\n            test-upgrade: true\n            service-mesh: true\n            os: ubuntu-22.04\n            check-records-output: true\n            test-strategy: deployment\n          - k8s-version: 'v1.29.15'\n            cluster: 'minikube'\n            helm-version: 'v3.14.3'\n            docker-version: '27.5.1'\n            python-version: '3.11'\n            test-upgrade: true\n            service-mesh: false\n            os: ubuntu-22.04\n            check-records-output: true\n            test-strategy: job_https\n          - k8s-version: 'v1.30.14'\n            cluster: 'minikube'\n            helm-version: 'v3.15.4'\n            docker-version: '27.5.1'\n            python-version: '3.12'\n            test-upgrade: true\n            service-mesh: false\n            os: ubuntu-22.04\n            check-records-output: true\n            test-strategy: job_hostname\n          - k8s-version: 'v1.31.14'\n            cluster: 'minikube'\n            helm-version: 'v3.16.4'\n            docker-version: '27.5.1'\n            python-version: '3.13'\n            test-upgrade: true\n            service-mesh: false\n            os: ubuntu-22.04\n            check-records-output: true\n            test-strategy: deployment_https\n          - k8s-version: 'v1.32.10'\n            cluster: 'minikube'\n            helm-version: 'v3.17.4'\n            docker-version: '28.5.2'\n            python-version: '3.10'\n            test-upgrade: true\n            service-mesh: false\n            os: ubuntu-22.04\n            check-records-output: true\n            test-strategy: playwright_connect_grid\n          - k8s-version: 'v1.33.6'\n            cluster: 'minikube'\n            helm-version: 'v3.18.6'\n            docker-version: '28.5.2'\n            python-version: '3.10'\n            test-upgrade: true\n            service-mesh: true\n            os: ubuntu-22.04\n            check-records-output: false\n            test-strategy: job_relay\n    env:\n      CLUSTER: ${{ matrix.cluster }}\n      KUBERNETES_VERSION: ${{ matrix.k8s-version }}\n      ARTIFACT_NAME: \"${{ matrix.k8s-version }}-${{ matrix.test-strategy }}\"\n      HELM_VERSION: ${{ matrix.helm-version }}\n      DOCKER_VERSION: ${{ matrix.docker-version }}\n      TEST_UPGRADE_CHART: ${{ matrix.test-upgrade }}\n      SERVICE_MESH: ${{ matrix.service-mesh }}\n      CHECK_RECORD_OUTPUT: ${{ matrix.check-records-output }}\n      SAUCE_ACCESS_KEY: ${{ secrets.SAUCE_ACCESS_KEY }}\n      SAUCE_USERNAME: ${{ secrets.SAUCE_USERNAME }}\n      SAUCE_REGION: ${{ secrets.SAUCE_REGION }}\n      TEST_PATCHED_KEDA: ${{ github.event.inputs.test-patched-keda }}\n    steps:\n      - name: Free Disk Space (Ubuntu)\n        uses: jlumbroso/free-disk-space@main\n        with:\n          tool-cache: false\n          large-packages: false\n      - name: Checkout code\n        uses: actions/checkout@main\n      - name: Set up containerd image store feature\n        uses: nick-invision/retry@master\n        with:\n          timeout_minutes: 10\n          max_attempts: 3\n          command: |\n            make setup_dev_env\n      - name: Output Docker info\n        run: docker info\n      - name: Set up Python\n        uses: actions/setup-python@main\n        with:\n          python-version: ${{ matrix.python-version }}\n          check-latest: true\n      - name: Get branch name (only for push to branch)\n        if: github.event_name == 'push'\n        run: echo \"BRANCH=$(echo ${PUSH_BRANCH##*/})\" >> $GITHUB_ENV\n        env:\n          PUSH_BRANCH: ${{ github.ref }}\n      - name: Get target branch name (only for PRs)\n        if: github.event_name == 'pull_request'\n        run: echo \"BRANCH=$(echo ${TARGET_BRANCH##*/})\" >> $GITHUB_ENV\n        env:\n          TARGET_BRANCH: ${{ github.head_ref }}\n      - name: Output branch name\n        run: echo ${BRANCH}\n      - name: Set Selenium base version\n        uses: ./.github/actions/get-latest-upstream\n        with:\n          release: ${{ inputs.release || false }}\n          gh_cli_token: ${{ secrets.GITHUB_TOKEN }}\n      - name: Sets build date\n        run: |\n          echo \"BUILD_DATE=$(date '+%Y%m%d')\" >> $GITHUB_ENV\n          echo \"AUTHORS=${AUTHORS}\" >> $GITHUB_ENV\n        env:\n          AUTHORS: ${{ vars.AUTHORS || 'SeleniumHQ' }}\n      - name: Build Helm charts\n        run: |\n          BUILD_DATE=${BUILD_DATE} make chart_build\n          echo \"CHART_PACKAGE_PATH=$(cat /tmp/selenium_chart_version)\" >> $GITHUB_ENV\n          echo \"CHART_FILE_NAME=$(basename $(cat /tmp/selenium_chart_version))\" >> $GITHUB_ENV\n      - name: Build Docker images\n        uses: nick-invision/retry@master\n        with:\n          timeout_minutes: 90\n          max_attempts: 3\n          retry_wait_seconds: 60\n          command: NAME=${IMAGE_REGISTRY} VERSION=${BRANCH} BUILD_DATE=${BUILD_DATE} make build\n      - name: Login Docker Hub\n        run: docker login -u=\"$DOCKER_USERNAME\" -p=\"$DOCKER_PASSWORD\" || true\n        env:\n          DOCKER_USERNAME: ${{secrets.DOCKER_USERNAME}}\n          DOCKER_PASSWORD: ${{secrets.DOCKER_PASSWORD}}\n      - name: Setup Kubernetes cluster\n        uses: nick-invision/retry@master\n        with:\n          timeout_minutes: 10\n          max_attempts: 3\n          command: CLUSTER=${CLUSTER} SERVICE_MESH=${SERVICE_MESH} KUBERNETES_VERSION=${KUBERNETES_VERSION} NAME=${IMAGE_REGISTRY} VERSION=${BRANCH} BUILD_DATE=${BUILD_DATE} make chart_cluster_setup\n      - name: Test chart template\n        run: NAME=${IMAGE_REGISTRY} VERSION=${BRANCH} BUILD_DATE=${BUILD_DATE} make chart_test_template\n      - name: Test set custom CA certificate\n        run: NAME=${IMAGE_REGISTRY} VERSION=${BRANCH} BUILD_DATE=${BUILD_DATE} make test_custom_ca_cert\n      - name: Set test parameters\n        if: (matrix.test-strategy == 'job' || matrix.test-strategy == 'deployment') && (github.event_name == 'schedule' || github.event_name == 'workflow_dispatch')\n        run: |\n          echo \"AUTOSCALING_POLL_INTERVAL=${AUTOSCALING_POLL_INTERVAL}\" >> $GITHUB_ENV\n          echo \"SET_MAX_REPLICAS=${SET_MAX_REPLICAS}\" >> $GITHUB_ENV\n          echo \"LOG_LEVEL=${LOG_LEVEL}\" >> $GITHUB_ENV\n        env:\n          AUTOSCALING_POLL_INTERVAL: ${{ github.event.inputs.request-timeout || '15' }}\n          SET_MAX_REPLICAS: ${{ github.event.inputs.max-replicas-count || '10' }}\n          LOG_LEVEL: ${{ github.event.inputs.log-level || 'FINE' }}\n      - name: Test Selenium Grid on Kubernetes ${{ matrix.k8s-version }} with Autoscaling ${{ matrix.test-strategy }}\n        uses: nick-invision/retry@master\n        with:\n          timeout_minutes: 30\n          max_attempts: 3\n          command: |\n            NAME=${IMAGE_REGISTRY} VERSION=${BRANCH} BUILD_DATE=${BUILD_DATE} TEST_UPGRADE_CHART=false make chart_test_autoscaling_${{ matrix.test-strategy }}\n            exit_code=$?\n            if [[ \"${CHECK_RECORD_OUTPUT}\" = \"true\" ]] && [[ \"${exit_code}\" -eq 0 ]]; then\n              NAME=${IMAGE_REGISTRY} VERSION=${BRANCH} BUILD_DATE=${BUILD_DATE} make test_video_integrity\n              exit_code=$?\n            fi\n            exit ${exit_code}\n      - name: Upload Helm chart package\n        if: always()\n        uses: actions/upload-artifact@main\n        with:\n          name: \"${{ env.ARTIFACT_NAME }}_${{ env.CHART_FILE_NAME }}_${{ matrix.os }}\"\n          path: ${{ env.CHART_PACKAGE_PATH }}\n      - name: Upload chart test artifacts\n        if: always()\n        uses: actions/upload-artifact@main\n        with:\n          name: ${{ env.ARTIFACT_NAME }}-artifacts\n          path: ./tests/tests/\n          if-no-files-found: ignore\n      - name: Upload test video artifacts\n        if: always()\n        uses: actions/upload-artifact@main\n        with:\n          name: ${{ env.ARTIFACT_NAME }}-videos\n          path: |\n            ./tests/videos/\n            !./tests/videos/**/*.hprof\n      - name: Test chart upgrade\n        if: (matrix.test-upgrade == true)\n        run: |\n          NAME=${IMAGE_REGISTRY} VERSION=${BRANCH} BUILD_DATE=${BUILD_DATE} SET_MAX_REPLICAS=10 TEST_NAME_OVERRIDE=true TEST_UPGRADE_CHART=${TEST_UPGRADE_CHART} SET_UPDATE_STRATEGY=Recreate make chart_test_autoscaling_${{ matrix.test-strategy }}\n      - name: Cleanup Kubernetes cluster\n        if: always()\n        run: CLUSTER=${CLUSTER} make chart_cluster_cleanup\n      - name: Clean up Docker\n        if: always()\n        run: docker system prune -af\n"
  },
  {
    "path": ".github/workflows/k8s-scaling-test.yml",
    "content": "name: Test Grid Autoscaling in Kubernetes\n\non:\n  workflow_call:\n    secrets:\n      DOCKER_USERNAME:\n        required: false\n      DOCKER_PASSWORD:\n        required: false\n    inputs:\n      release:\n        description: 'Test a new release process'\n        required: false\n        type: string\n        default: 'false'\n      push-results:\n        description: 'Publish the results to the repository'\n        required: false\n        type: boolean\n        default: false\n      iteration:\n        description: 'Test a specific iteration'\n        required: false\n        type: string\n        default: '20'\n      test-patched-keda:\n        description: 'Test patched KEDA (true/false)'\n        required: false\n        default: ''\n        type: string\n  workflow_dispatch:\n    inputs:\n      publish-results:\n        description: 'Publish the results to the repository'\n        required: false\n        type: boolean\n        default: false\n      pr-results:\n        description: 'Create a PR with the results'\n        required: false\n        type: boolean\n        default: false\n      iteration:\n        description: 'Test a specific iteration'\n        required: false\n        type: string\n        default: '20'\n      test-patched-keda:\n        description: 'Test patched KEDA (true/false)'\n        required: false\n        default: ''\n        type: string\n\nconcurrency:\n  group: ${{ github.workflow }}-${{ github.ref == github.ref_protected && github.run_id || github.event.pull_request.number || github.ref }}\n  cancel-in-progress: true\n\npermissions:\n  contents: write\n  pull-requests: write\n\nenv:\n  RUN_ID: ${{ github.run_id }}\n  TEST_AUTOSCALING_ITERATIONS: ${{ github.event.inputs.iteration || '20' }}\n\njobs:\n  build-and-test:\n    name: Test K8s\n    runs-on: ${{ matrix.os }}\n    strategy:\n      fail-fast: false\n      matrix:\n        include:\n          - k8s-version: 'v1.34.2'\n            cluster: 'minikube'\n            helm-version: 'v4.0.1'\n            docker-version: '29.1.1'\n            python-version: '3.13'\n            os: ubuntu-22.04\n            test-strategy: test_k8s_autoscaling_job_count_strategy_default_in_chaos\n          - k8s-version: 'v1.34.2'\n            cluster: 'minikube'\n            helm-version: 'v3.19.2'\n            docker-version: '29.1.1'\n            python-version: '3.13'\n            os: ubuntu-22.04\n            test-strategy: test_k8s_autoscaling_job_count_strategy_default_with_node_max_sessions\n          - k8s-version: 'v1.33.6'\n            cluster: 'minikube'\n            helm-version: 'v3.19.2'\n            docker-version: '29.1.1'\n            python-version: '3.12'\n            os: ubuntu-22.04\n            test-strategy: test_k8s_autoscaling_job_count_strategy_default\n          - k8s-version: 'v1.30.14'\n            cluster: 'minikube'\n            helm-version: 'v3.15.4'\n            docker-version: '27.5.1'\n            python-version: '3.12'\n            os: ubuntu-22.04\n            test-strategy: test_k8s_autoscaling_deployment_count_in_chaos\n          - k8s-version: 'v1.31.14'\n            cluster: 'minikube'\n            helm-version: 'v3.16.4'\n            docker-version: '28.5.2'\n            python-version: '3.13'\n            os: ubuntu-22.04\n            test-strategy: test_k8s_autoscaling_deployment_count_with_node_max_sessions\n          - k8s-version: 'v1.32.10'\n            cluster: 'minikube'\n            helm-version: 'v3.17.4'\n            docker-version: '28.5.2'\n            python-version: '3.11'\n            os: ubuntu-22.04\n            test-strategy: test_k8s_autoscaling_deployment_count\n    env:\n      CLUSTER: ${{ matrix.cluster }}\n      KUBERNETES_VERSION: ${{ matrix.k8s-version }}\n      HELM_VERSION: ${{ matrix.helm-version }}\n      DOCKER_VERSION: ${{ matrix.docker-version }}\n      TEST_PATCHED_KEDA: ${{ github.event.inputs.test-patched-keda }}\n    steps:\n      - name: Free Disk Space (Ubuntu)\n        uses: jlumbroso/free-disk-space@main\n        with:\n          tool-cache: false\n          large-packages: false\n      - name: Checkout code\n        uses: actions/checkout@main\n      - name: Set up containerd image store feature\n        uses: nick-invision/retry@master\n        with:\n          timeout_minutes: 10\n          max_attempts: 3\n          command: |\n            make setup_dev_env\n      - name: Output Docker info\n        run: docker info\n      - name: Set up Python\n        uses: actions/setup-python@main\n        with:\n          python-version: ${{ matrix.python-version }}\n          check-latest: true\n      - name: Get branch name (only for push to branch)\n        if: github.event_name == 'push'\n        run: echo \"BRANCH=$(echo ${PUSH_BRANCH##*/})\" >> $GITHUB_ENV\n        env:\n          PUSH_BRANCH: ${{ github.ref }}\n      - name: Get target branch name (only for PRs)\n        if: github.event_name == 'pull_request'\n        run: echo \"BRANCH=$(echo ${TARGET_BRANCH##*/})\" >> $GITHUB_ENV\n        env:\n          TARGET_BRANCH: ${{ github.head_ref }}\n      - name: Output branch name\n        run: echo ${BRANCH}\n      - name: Set Selenium base version\n        uses: ./.github/actions/get-latest-upstream\n        with:\n          release: ${{ inputs.release || false }}\n          gh_cli_token: ${{ secrets.GITHUB_TOKEN }}\n      - name: Sets build date\n        run: |\n          echo \"BUILD_DATE=$(date '+%Y%m%d')\" >> $GITHUB_ENV\n          echo \"AUTHORS=${AUTHORS}\" >> $GITHUB_ENV\n        env:\n          AUTHORS: ${{ vars.AUTHORS || 'SeleniumHQ' }}\n      - name: Login Docker Hub\n        run: docker login -u=\"$DOCKER_USERNAME\" -p=\"$DOCKER_PASSWORD\"\n        env:\n          DOCKER_USERNAME: ${{secrets.DOCKER_USERNAME}}\n          DOCKER_PASSWORD: ${{secrets.DOCKER_PASSWORD}}\n      - name: Setup Kubernetes cluster\n        uses: nick-invision/retry@master\n        with:\n          timeout_minutes: 10\n          max_attempts: 3\n          command: CLUSTER=${CLUSTER} SERVICE_MESH=${SERVICE_MESH} KUBERNETES_VERSION=${KUBERNETES_VERSION} NAME=${IMAGE_REGISTRY} VERSION=${BRANCH} BUILD_DATE=${BUILD_DATE} make chart_cluster_setup\n      - name: Build Docker images\n        uses: nick-invision/retry@master\n        with:\n          timeout_minutes: 30\n          max_attempts: 3\n          retry_wait_seconds: 60\n          command: NAME=${IMAGE_REGISTRY} VERSION=${BRANCH} BUILD_DATE=${BUILD_DATE} make build\n      - name: Build Helm charts\n        run: |\n          BUILD_DATE=${BUILD_DATE} make chart_build\n          echo \"CHART_PACKAGE_PATH=$(cat /tmp/selenium_chart_version)\" >> $GITHUB_ENV\n          echo \"CHART_FILE_NAME=$(basename $(cat /tmp/selenium_chart_version))\" >> $GITHUB_ENV\n      - name: Test Selenium Grid on Kubernetes with Autoscaling\n        uses: nick-invision/retry@master\n        with:\n          timeout_minutes: 30\n          max_attempts: 3\n          command: |\n            NAME=${IMAGE_REGISTRY} VERSION=${BRANCH} BUILD_DATE=${BUILD_DATE} TEST_UPGRADE_CHART=false TEST_AUTOSCALING_ITERATIONS=${TEST_AUTOSCALING_ITERATIONS} \\\n            make ${{ matrix.test-strategy }}\n      - name: Rename results\n        run: mv ./tests/tests/autoscaling_results.md ./tests/tests/results_${{ matrix.test-strategy }}.md\n      - name: Upload results\n        if: always()\n        uses: actions/upload-artifact@v7\n        with:\n          name: results_${{ matrix.test-strategy }}\n          path: ./tests/tests/results_${{ matrix.test-strategy }}.md\n          if-no-files-found: ignore\n      - name: Cleanup Kubernetes cluster\n        if: always()\n        run: CLUSTER=${CLUSTER} make chart_cluster_cleanup\n      - name: Clean up Docker\n        if: always()\n        run: docker system prune -af\n\n  publish-results:\n    name: Publish Results\n    if: (!failure() && !cancelled() && (github.event.inputs.publish-results == 'true'))\n    runs-on: ubuntu-24.04\n    needs: build-and-test\n    steps:\n      - name: Checkout code\n        uses: actions/checkout@main\n        with:\n          persist-credentials: false\n          fetch-depth: 0\n      - name: Download results\n        uses: actions/download-artifact@v8\n        with:\n          path: ./.keda\n          pattern: 'results_*'\n          merge-multiple: 'true'\n          run-id: ${{ env.RUN_ID }}\n          github-token: ${{ secrets.GITHUB_TOKEN }}\n      - name: Commit files\n        run: |\n          git config --local user.email \"selenium-ci@users.noreply.github.com\"\n          git config --local user.name \"Selenium CI Bot\"\n          git add .keda/.\n          git commit -m \"[ci] Upload autoscaling in K8s test results\" -m \"[skip ci]\" -a\n          git pull --rebase\n      - name: Push changes\n        uses: ad-m/github-push-action@master\n        with:\n          github_token: ${{ secrets.SELENIUM_CI_TOKEN }}\n          branch: ${{ env.BRANCH_NAME }}\n        env:\n          BRANCH_NAME: ${{ github.head_ref || github.ref_name }}\n\n\n  pr-results:\n    name: Create a PR with the results\n    if: (!failure() && !cancelled() && (github.event.inputs.pr-results == 'true'))\n    runs-on: ubuntu-24.04\n    needs: build-and-test\n    steps:\n      - name: Checkout code\n        uses: actions/checkout@main\n        with:\n          persist-credentials: false\n          fetch-depth: 0\n      - name: Download results\n        uses: actions/download-artifact@v8\n        with:\n          path: ./.keda\n          pattern: 'results_*'\n          merge-multiple: 'true'\n          run-id: ${{ env.RUN_ID }}\n          github-token: ${{ secrets.GITHUB_TOKEN }}\n      - name: Commit configs\n        run: |\n          git config --local user.email \"selenium-ci@users.noreply.github.com\"\n          git config --local user.name \"Selenium CI Bot\"\n      - name: Create Pull Request\n        id: cpr\n        uses: peter-evans/create-pull-request@main\n        with:\n          token: ${{ secrets.SELENIUM_CI_TOKEN }}\n          commit-message: \"[ci] Upload autoscaling in K8s test results\"\n          title: \"[ci] Upload autoscaling in K8s test results\"\n          body: \"This PR contains the results of the autoscaling tests in Kubernetes\"\n          committer: 'Selenium CI Bot <selenium-ci@users.noreply.github.com>'\n          author: 'Selenium CI Bot <selenium-ci@users.noreply.github.com>'\n          branch: autoscaling-results\n      - name: Check outputs\n        if: ${{ steps.cpr.outputs.pull-request-number }}\n        run: |\n          echo \"Pull Request Number - ${{ steps.cpr.outputs.pull-request-number }}\"\n          echo \"Pull Request URL - ${{ steps.cpr.outputs.pull-request-url }}\"\n"
  },
  {
    "path": ".github/workflows/label-commenter.yml",
    "content": "# Configuration for Label Commenter - https://github.com/peaceiris/actions-label-commenter\nname: Label Commenter\n\non:\n  issues:\n    types: [ labeled ]\n\npermissions:\n  contents: read\n  issues: write\n\njobs:\n  comment:\n    runs-on: ubuntu-24.04\n    steps:\n      - uses: actions/checkout@main\n      - name: Label Commenter\n        uses: peaceiris/actions-label-commenter@v1\n"
  },
  {
    "path": ".github/workflows/lock.yml",
    "content": "# Configuration for Lock Threads - https://github.com/dessant/lock-threads\nname: 'Lock Issues'\n\non:\n  workflow_dispatch:\n  schedule:\n    - cron: '0 23 * * *'\n\npermissions:\n  issues: write\n  pull-requests: write\n\njobs:\n  action:\n    runs-on: ubuntu-24.04\n    steps:\n      - uses: dessant/lock-threads@v6\n        with:\n          process-only: 'issues'\n          issue-inactive-days: '30'\n          issue-lock-reason: ''\n          issue-comment: >\n            This issue has been automatically locked since there\n            has not been any recent activity after it was closed.\n            Please open a new issue for related bugs.\n"
  },
  {
    "path": ".github/workflows/nightly.yml",
    "content": "name: Nightly\non:\n  workflow_dispatch:\n    inputs:\n      skip-test:\n        description: 'Skip the tests'\n        required: false\n        type: boolean\n        default: false\n  schedule:\n    - cron: '0 1 * * *'\n\njobs:\n  build-test:\n    name: Build and Test Nightly\n    if: github.event_name == 'schedule' || (github.event_name == 'workflow_dispatch' && github.event.inputs.skip-test == 'false')\n    uses: ./.github/workflows/build-test.yml\n    secrets: inherit\n    with:\n      release: false\n\n  deploy:\n    needs:\n      - build-test\n    if: (github.event_name == 'schedule' || github.event_name == 'workflow_dispatch') && !failure() && !cancelled()\n    name: Deploy and Release Nightly\n    runs-on: ubuntu-24.04\n    permissions: write-all\n    steps:\n      - name: Free Disk Space (Ubuntu)\n        uses: jlumbroso/free-disk-space@main\n        with:\n          tool-cache: true\n          android: true\n          dotnet: true\n          haskell: true\n          large-packages: true\n          docker-images: true\n          swap-storage: true\n      - name: Checkout code\n        uses: actions/checkout@main\n        with:\n          persist-credentials: false\n          fetch-depth: 0\n      - name: Set up containerd image store feature\n        uses: nick-invision/retry@master\n        with:\n          timeout_minutes: 10\n          max_attempts: 3\n          command: |\n            make setup_dev_env\n      - name: Output Docker info\n        run: docker info\n      - name: Set Selenium base version\n        uses: ./.github/actions/get-latest-upstream\n        with:\n          release: false\n          gh_cli_token: ${{ secrets.GITHUB_TOKEN }}\n      - name: Sets build date\n        run: |\n          echo \"BUILD_DATE=$(date '+%Y%m%d')\" >> $GITHUB_ENV\n          make set_build_multiarch\n          cat .env | xargs -I {} echo {} >> $GITHUB_ENV\n      - name: Sets prerelease to nightly\n        run: |\n          echo \"PRERELEASE=true\" >> $GITHUB_ENV\n          echo \"NAME=${NAMESPACE}\" >> $GITHUB_ENV\n          echo \"AUTHORS=${AUTHORS}\" >> $GITHUB_ENV\n        env:\n          NAMESPACE: ${{ vars.DOCKER_NAMESPACE || 'selenium' }}\n          AUTHORS: ${{ vars.AUTHORS || 'SeleniumHQ' }}\n      - name: Get Grid version\n        run: |\n          echo ${BASE_VERSION}\n          echo \"GRID_VERSION=${BASE_VERSION}\" >> $GITHUB_ENV\n      - name: Display Grid version and set Base version\n        run: |\n          echo ${GRID_VERSION}\n          echo \"BASE_RELEASE=nightly\" >> $GITHUB_ENV\n      - name: Update tag nightly\n        uses: richardsimko/update-tag@v1.1.6\n        with:\n          tag_name: ${{ env.BASE_RELEASE }}\n        env:\n          GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}\n      - name: Build images\n        uses: nick-invision/retry@master\n        with:\n          timeout_minutes: 180\n          max_attempts: 3\n          retry_wait_seconds: 60\n          command: PLATFORMS=\"${PLATFORMS}\" VERSION=\"${GRID_VERSION}\" BUILD_DATE=${BUILD_DATE} make build\n      - name: Login Docker Hub\n        run: |\n          docker login -u=\"$DOCKER_USERNAME\" -p=\"$DOCKER_PASSWORD\"\n          helm registry login registry-1.docker.io -u \"$DOCKER_USERNAME\" -p \"$DOCKER_PASSWORD\"\n        env:\n          DOCKER_USERNAME: ${{secrets.DOCKER_USERNAME}}\n          DOCKER_PASSWORD: ${{secrets.DOCKER_PASSWORD}}\n      - name: Tag images as nightly\n        run: VERSION=\"${GRID_VERSION}\" BUILD_DATE=${BUILD_DATE} make tag_nightly\n      - name: Deploy nightly tag\n        uses: nick-invision/retry@master\n        with:\n          timeout_minutes: 20\n          max_attempts: 3\n          retry_wait_seconds: 120\n          command: VERSION=\"${GRID_VERSION}\" BUILD_DATE=${BUILD_DATE} make release_nightly\n#      - name: Update package versions\n#        run: make generate_nightly_sbom\n      - name: Get current latest tag\n        run: echo \"LATEST_TAG=$(git describe --tags --abbrev=0 --exclude=nightly --exclude=selenium-grid*)\" >> $GITHUB_ENV\n      - name: Display latest tag\n        run: echo ${LATEST_TAG}\n      - name: Sets env var for nightly tag\n        run: |\n          echo \"NEXT_TAG=nightly\" >> $GITHUB_ENV\n          echo \"FILTER_IMAGE_TAG=nightly\" >> $GITHUB_ENV\n      - name: Create release notes (release_notes.md)\n        run: ./generate_release_notes.sh ${LATEST_TAG} origin/trunk ${GRID_VERSION} ${BUILD_DATE}\n      - name: Set up Python\n        uses: actions/setup-python@main\n        with:\n          python-version: '3.14'\n          check-latest: true\n      - name: Update tag in docs and files\n        run: ./update_tag_in_docs_and_files.sh ${LATEST_TAG} ${NEXT_TAG}\n      - name: Delete previous nightly tag if any\n        uses: cb80/delrel@main\n        with:\n          tag: ${{ env.BASE_RELEASE }}\n          token: ${{ secrets.GITHUB_TOKEN }}\n      - name: Build Helm chart\n        uses: nick-invision/retry@master\n        with:\n          timeout_minutes: 5\n          max_attempts: 3\n          retry_wait_seconds: 10\n          command: |\n            make chart_build_nightly\n            echo \"CHART_PACKAGE_PATH=$(cat /tmp/selenium_chart_version)\" >> $GITHUB_ENV\n            echo \"CHART_FILE_NAME=$(basename $(cat /tmp/selenium_chart_version))\" >> $GITHUB_ENV\n      - name: Push Helm chart to registry\n        uses: nick-invision/retry@master\n        with:\n          timeout_minutes: 20\n          max_attempts: 3\n          retry_wait_seconds: 120\n          command: make chart_release\n      - name: Create Nightly Release\n        id: create_release\n        uses: softprops/action-gh-release@v2.6.1\n        with:\n          token: ${{ secrets.GITHUB_TOKEN }}\n          tag_name: ${{ env.BASE_RELEASE }}\n          name: \"Nightly\"\n          body_path: \"release_notes.md\"\n          files: |\n            package_versions.txt\n            ${{ env.CHART_PACKAGE_PATH }}\n          generate_release_notes: true\n          draft: false\n          prerelease: true\n          append_body: false\n"
  },
  {
    "path": ".github/workflows/release-all-browser-versions.yml",
    "content": "name: Deploy all browser versions\n\non:\n  workflow_dispatch:\n    inputs:\n      stable:\n        description: 'Use upstream stable build'\n        required: true\n        type: string\n        default: 'true'\n      reuse-base:\n        description: 'Reuse base image to build'\n        required: false\n        type: boolean\n        default: true\n      grid-version:\n        description: 'Grid version to build. E.g: 4.28.1. Must provide if reusing base image'\n        required: false\n        type: string\n        default: ''\n      push-image:\n        description: 'Push image after testing successfully'\n        required: true\n        type: boolean\n        default: false\n      pr-changelog:\n        description: 'Create a PR for CHANGELOG'\n        required: true\n        type: boolean\n        default: true\n\njobs:\n  dispatch-chrome:\n    runs-on: ubuntu-latest\n    steps:\n      - name: Dispatch Chrome versions\n        uses: actions/github-script@v8\n        with:\n          script: |\n            await github.rest.actions.createWorkflowDispatch({\n              owner: context.repo.owner,\n              repo: context.repo.repo,\n              workflow_id: 'release-chrome-versions.yml',\n              ref: context.ref,\n              inputs: {\n                'stable': '${{ github.event.inputs.stable }}',\n                'reuse-base': '${{ github.event.inputs.reuse-base }}',\n                'grid-version': '${{ github.event.inputs.grid-version }}',\n                'push-image': '${{ github.event.inputs.push-image }}',\n                'pr-changelog': '${{ github.event.inputs.pr-changelog }}'\n              }\n            });\n\n  dispatch-chrome-for-testing:\n    runs-on: ubuntu-latest\n    steps:\n      - name: Dispatch Chrome for Testing versions\n        uses: actions/github-script@v8\n        with:\n          script: |\n            await github.rest.actions.createWorkflowDispatch({\n              owner: context.repo.owner,\n              repo: context.repo.repo,\n              workflow_id: 'release-chrome-for-testing-versions.yml',\n              ref: context.ref,\n              inputs: {\n                'stable': '${{ github.event.inputs.stable }}',\n                'reuse-base': '${{ github.event.inputs.reuse-base }}',\n                'grid-version': '${{ github.event.inputs.grid-version }}',\n                'push-image': '${{ github.event.inputs.push-image }}',\n                'pr-changelog': '${{ github.event.inputs.pr-changelog }}'\n              }\n            });\n\n  dispatch-edge:\n    runs-on: ubuntu-latest\n    steps:\n      - name: Dispatch Edge versions\n        uses: actions/github-script@v8\n        with:\n          script: |\n            await github.rest.actions.createWorkflowDispatch({\n              owner: context.repo.owner,\n              repo: context.repo.repo,\n              workflow_id: 'release-edge-versions.yml',\n              ref: context.ref,\n              inputs: {\n                'stable': '${{ github.event.inputs.stable }}',\n                'reuse-base': '${{ github.event.inputs.reuse-base }}',\n                'grid-version': '${{ github.event.inputs.grid-version }}',\n                'push-image': '${{ github.event.inputs.push-image }}',\n                'pr-changelog': '${{ github.event.inputs.pr-changelog }}'\n              }\n            });\n\n  dispatch-firefox:\n    runs-on: ubuntu-latest\n    steps:\n      - name: Dispatch Firefox versions\n        uses: actions/github-script@v8\n        with:\n          script: |\n            await github.rest.actions.createWorkflowDispatch({\n              owner: context.repo.owner,\n              repo: context.repo.repo,\n              workflow_id: 'release-firefox-versions.yml',\n              ref: context.ref,\n              inputs: {\n                'stable': '${{ github.event.inputs.stable }}',\n                'reuse-base': '${{ github.event.inputs.reuse-base }}',\n                'grid-version': '${{ github.event.inputs.grid-version }}',\n                'push-image': '${{ github.event.inputs.push-image }}',\n                'pr-changelog': '${{ github.event.inputs.pr-changelog }}'\n              }\n            });"
  },
  {
    "path": ".github/workflows/release-chrome-for-testing-versions.yml",
    "content": "name: Deploy specific Chrome for Testing version\n\non:\n  workflow_dispatch:\n    inputs:\n      stable:\n        description: 'Use upstream stable build'\n        required: true\n        type: string\n        default: 'true'\n      reuse-base:\n        description: 'Reuse base image to build'\n        required: false\n        type: boolean\n        default: true\n      grid-version:\n        description: 'Grid version to build. E.g: 4.28.1. Must provide if reusing base image'\n        required: false\n        type: string\n        default: ''\n      build-date:\n        description: 'Build date in format YYYYMMDD. Must provide if reusing base image'\n        required: false\n        type: string\n        default: '20260222'\n      browser-name:\n        description: 'Browser name to build. E.g: chrome-for-testing'\n        required: true\n        type: string\n        default: 'chrome-for-testing'\n      browser-versions:\n        description: 'List browser version to build. E.g: [130, 131]'\n        required: true\n        default: '[113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145]'\n      push-image:\n        description: 'Push image after testing successfully'\n        required: true\n        type: boolean\n        default: false\n      pr-changelog:\n        description: 'Create a PR for CHANGELOG'\n        required: true\n        type: boolean\n        default: true\n\nenv:\n  GRID_VERSION: ${{ github.event.inputs.grid-version }}\n  BROWSER_NAME: ${{ github.event.inputs.browser-name }}\n  REUSE_BASE: ${{ github.event.inputs.reuse-base || true }}\n  BUILD_DATE: ${{ github.event.inputs.build-date || '' }}\n  NAMESPACE: ${{ vars.DOCKER_NAMESPACE || 'selenium' }}\n  AUTHORS: ${{ vars.AUTHORS || 'SeleniumHQ' }}\n  PUSH_IMAGE: ${{ github.event.inputs.push-image || false }}\n  PR_CHANGELOG: ${{ github.event.inputs.pr-changelog || true }}\n  RUN_ID: ${{ github.run_id }}\n\njobs:\n  deploy:\n    name: Node/Standalone Chrome for Testing\n    runs-on: ubuntu-24.04\n    permissions: write-all\n    strategy:\n      fail-fast: false\n      max-parallel: 10\n      matrix:\n        browser-version: ${{ fromJSON(github.event.inputs.browser-versions)}}\n    outputs:\n      GRID_VERSION: ${{ steps.display_grid_version.outputs.GRID_VERSION }}\n    steps:\n      - name: Checkout code\n        uses: actions/checkout@main\n        with:\n          persist-credentials: false\n          fetch-depth: 0\n      - name: Set up containerd image store feature\n        uses: nick-invision/retry@master\n        with:\n          timeout_minutes: 10\n          max_attempts: 3\n          command: |\n            INSTALL_DOCKER=false make setup_dev_env\n      - name: Output Docker info\n        run: docker info\n      - name: Set Selenium base version\n        uses: ./.github/actions/get-latest-upstream\n        with:\n          release: ${{ github.event.inputs.stable || true }}\n          gh_cli_token: ${{ secrets.GITHUB_TOKEN }}\n      - name: Sets build date\n        run: |\n          if [ -z \"${BUILD_DATE}\" ]; then\n            echo \"BUILD_DATE=$(date '+%Y%m%d')\" >> $GITHUB_ENV\n          else\n            echo \"BUILD_DATE=${BUILD_DATE}\" >> $GITHUB_ENV\n          fi\n          echo \"NAME=${NAMESPACE}\" >> $GITHUB_ENV\n          echo \"BROWSER_VERSION=${BROWSER_VERSION}\" >> $GITHUB_ENV\n        env:\n          BROWSER_VERSION: ${{ matrix.browser-version }}\n      - name: Get Grid version\n        if: env.GRID_VERSION == ''\n        run: |\n          echo ${BASE_VERSION}\n          echo \"GRID_VERSION=${BASE_VERSION}\" >> $GITHUB_ENV\n      - name: Display Grid version\n        id: display_grid_version\n        run: |\n          echo ${GRID_VERSION}\n          echo \"GRID_VERSION=${GRID_VERSION}\" >> \"$GITHUB_OUTPUT\"\n      - name: Login Docker Hub\n        run: docker login -u=\"$DOCKER_USERNAME\" -p=\"$DOCKER_PASSWORD\"\n        env:\n          DOCKER_USERNAME: ${{secrets.DOCKER_USERNAME}}\n          DOCKER_PASSWORD: ${{secrets.DOCKER_PASSWORD}}\n      - name: Build images with Grid core ${{ env.GRID_VERSION }} and ${{ env.BROWSER_NAME }} v${{ env.BROWSER_VERSION }}\n        uses: nick-invision/retry@master\n        with:\n          timeout_minutes: 20\n          max_attempts: 3\n          retry_wait_seconds: 60\n          command: |\n            make update_browser_versions_matrix\n            ./tests/build-backward-compatible/bootstrap.sh ${GRID_VERSION} ${BROWSER_VERSION} ${BROWSER_NAME} ${REUSE_BASE}\n            EXIT_CODE=$?\n            cat .env | xargs -I {} echo {} >> $GITHUB_ENV\n            exit $EXIT_CODE\n      - name: Build Hub image for testing\n        if: env.REUSE_BASE == 'false'\n        run: make hub\n      - name: Test images Node with Grid core ${{ env.GRID_VERSION }} and ${{ env.BROWSER_NAME }} v${{ env.BROWSER_VERSION }}\n        uses: nick-invision/retry@master\n        with:\n          timeout_minutes: 20\n          max_attempts: 3\n          retry_wait_seconds: 60\n          command: |\n            make test_chrome-for-testing\n      - name: Test images Standalone with Grid core ${{ env.GRID_VERSION }} and ${{ env.BROWSER_NAME }} v${{ env.BROWSER_VERSION }}\n        uses: nick-invision/retry@master\n        with:\n          timeout_minutes: 20\n          max_attempts: 3\n          retry_wait_seconds: 60\n          command: |\n            make test_chrome-for-testing_standalone \\\n            && make test_chrome-for-testing_standalone_java\n      - name: Push images with Grid core ${{ env.GRID_VERSION }} and ${{ env.BROWSER_NAME }} v${{ env.BROWSER_VERSION }}\n        if: env.PUSH_IMAGE == 'true'\n        run: |\n          ./tests/build-backward-compatible/bootstrap.sh ${GRID_VERSION} ${BROWSER_VERSION} ${BROWSER_NAME} ${REUSE_BASE} true true\n      - name: Upload changelog\n        if: always()\n        uses: actions/upload-artifact@main\n        with:\n          name: image_tags_${{ env.GRID_VERSION }}_${{ env.BROWSER_NAME }}_${{ env.BROWSER_VERSION }}\n          path: ./CHANGELOG/${{ env.GRID_VERSION }}/${{ env.BROWSER_NAME }}_${{ env.BROWSER_VERSION }}.md\n          if-no-files-found: ignore\n\n  pr-results:\n    if: (!failure() && !cancelled() && (github.event.inputs.pr-changelog == 'true'))\n    uses: ./.github/workflows/create-changelog-pr.yml\n    needs: deploy\n    with:\n      grid-version: ${{ needs.deploy.outputs.GRID_VERSION }}\n      browser-name: ${{ github.event.inputs.browser-name }}\n      browser-versions: ${{ github.event.inputs.browser-versions }}\n      run-id: ${{ github.run_id }}\n    secrets: inherit\n"
  },
  {
    "path": ".github/workflows/release-chrome-versions.yml",
    "content": "name: Deploy specific Chrome version\n\non:\n  workflow_dispatch:\n    inputs:\n      stable:\n        description: 'Use upstream stable build'\n        required: true\n        type: string\n        default: 'true'\n      reuse-base:\n        description: 'Reuse base image to build'\n        required: false\n        type: boolean\n        default: true\n      grid-version:\n        description: 'Grid version to build. E.g: 4.28.1. Must provide if reusing base image'\n        required: false\n        type: string\n        default: ''\n      build-date:\n        description: 'Build date in format YYYYMMDD. Must provide if reusing base image'\n        required: false\n        type: string\n        default: '20260222'\n      browser-name:\n        description: 'Browser name to build. E.g: chrome'\n        required: true\n        type: string\n        default: 'chrome'\n      browser-versions:\n        description: 'List browser version to build. E.g: [130, 131]'\n        required: true\n        default: '[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, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145]'\n      push-image:\n        description: 'Push image after testing successfully'\n        required: true\n        type: boolean\n        default: false\n      pr-changelog:\n        description: 'Create a PR for CHANGELOG'\n        required: true\n        type: boolean\n        default: true\n\nenv:\n  GRID_VERSION: ${{ github.event.inputs.grid-version }}\n  BROWSER_NAME: ${{ github.event.inputs.browser-name }}\n  REUSE_BASE: ${{ github.event.inputs.reuse-base || true }}\n  BUILD_DATE: ${{ github.event.inputs.build-date || '' }}\n  NAMESPACE: ${{ vars.DOCKER_NAMESPACE || 'selenium' }}\n  AUTHORS: ${{ vars.AUTHORS || 'SeleniumHQ' }}\n  PUSH_IMAGE: ${{ github.event.inputs.push-image || false }}\n  PR_CHANGELOG: ${{ github.event.inputs.pr-changelog || true }}\n  RUN_ID: ${{ github.run_id }}\n\njobs:\n  deploy:\n    name: Node/Standalone Chrome\n    runs-on: ubuntu-24.04\n    permissions: write-all\n    strategy:\n      fail-fast: false\n      max-parallel: 10\n      matrix:\n        browser-version: ${{ fromJSON(github.event.inputs.browser-versions)}}\n    outputs:\n      GRID_VERSION: ${{ steps.display_grid_version.outputs.GRID_VERSION }}\n    steps:\n      - name: Checkout code\n        uses: actions/checkout@main\n        with:\n          persist-credentials: false\n          fetch-depth: 0\n      - name: Set up containerd image store feature\n        uses: nick-invision/retry@master\n        with:\n          timeout_minutes: 10\n          max_attempts: 3\n          command: |\n            INSTALL_DOCKER=false make setup_dev_env\n      - name: Output Docker info\n        run: docker info\n      - name: Set Selenium base version\n        uses: ./.github/actions/get-latest-upstream\n        with:\n          release: ${{ github.event.inputs.stable || true }}\n          gh_cli_token: ${{ secrets.GITHUB_TOKEN }}\n      - name: Sets build date\n        run: |\n          if [ -z \"${BUILD_DATE}\" ]; then\n            echo \"BUILD_DATE=$(date '+%Y%m%d')\" >> $GITHUB_ENV\n          else\n            echo \"BUILD_DATE=${BUILD_DATE}\" >> $GITHUB_ENV\n          fi\n          echo \"NAME=${NAMESPACE}\" >> $GITHUB_ENV\n          echo \"BROWSER_VERSION=${BROWSER_VERSION}\" >> $GITHUB_ENV\n        env:\n          BROWSER_VERSION: ${{ matrix.browser-version }}\n      - name: Get Grid version\n        if: env.GRID_VERSION == ''\n        run: |\n          echo ${BASE_VERSION}\n          echo \"GRID_VERSION=${BASE_VERSION}\" >> $GITHUB_ENV\n      - name: Display Grid version\n        id: display_grid_version\n        run: |\n          echo ${GRID_VERSION}\n          echo \"GRID_VERSION=${GRID_VERSION}\" >> \"$GITHUB_OUTPUT\"\n      - name: Login Docker Hub\n        run: docker login -u=\"$DOCKER_USERNAME\" -p=\"$DOCKER_PASSWORD\"\n        env:\n          DOCKER_USERNAME: ${{secrets.DOCKER_USERNAME}}\n          DOCKER_PASSWORD: ${{secrets.DOCKER_PASSWORD}}\n      - name: Build images with Grid core ${{ env.GRID_VERSION }} and ${{ env.BROWSER_NAME }} v${{ env.BROWSER_VERSION }}\n        uses: nick-invision/retry@master\n        with:\n          timeout_minutes: 20\n          max_attempts: 3\n          retry_wait_seconds: 60\n          command: |\n            make update_browser_versions_matrix\n            ./tests/build-backward-compatible/bootstrap.sh ${GRID_VERSION} ${BROWSER_VERSION} ${BROWSER_NAME} ${REUSE_BASE}\n            EXIT_CODE=$?\n            cat .env | xargs -I {} echo {} >> $GITHUB_ENV\n            exit $EXIT_CODE\n      - name: Build Hub image for testing\n        if: env.REUSE_BASE == 'false'\n        run: make hub\n      - name: Test images Node with Grid core ${{ env.GRID_VERSION }} and ${{ env.BROWSER_NAME }} v${{ env.BROWSER_VERSION }}\n        uses: nick-invision/retry@master\n        with:\n          timeout_minutes: 20\n          max_attempts: 3\n          retry_wait_seconds: 60\n          command: |\n            make test_chrome\n      - name: Test images Standalone with Grid core ${{ env.GRID_VERSION }} and ${{ env.BROWSER_NAME }} v${{ env.BROWSER_VERSION }}\n        uses: nick-invision/retry@master\n        with:\n          timeout_minutes: 20\n          max_attempts: 3\n          retry_wait_seconds: 60\n          command: |\n            make test_chrome_standalone \\\n            && make test_chrome_standalone_java\n      - name: Push images with Grid core ${{ env.GRID_VERSION }} and ${{ env.BROWSER_NAME }} v${{ env.BROWSER_VERSION }}\n        if: env.PUSH_IMAGE == 'true'\n        run: |\n          ./tests/build-backward-compatible/bootstrap.sh ${GRID_VERSION} ${BROWSER_VERSION} ${BROWSER_NAME} ${REUSE_BASE} true true\n      - name: Upload changelog\n        if: always()\n        uses: actions/upload-artifact@main\n        with:\n          name: image_tags_${{ env.GRID_VERSION }}_${{ env.BROWSER_NAME }}_${{ env.BROWSER_VERSION }}\n          path: ./CHANGELOG/${{ env.GRID_VERSION }}/${{ env.BROWSER_NAME }}_${{ env.BROWSER_VERSION }}.md\n          if-no-files-found: ignore\n\n  pr-results:\n    if: (!failure() && !cancelled() && (github.event.inputs.pr-changelog == 'true'))\n    uses: ./.github/workflows/create-changelog-pr.yml\n    needs: deploy\n    with:\n      grid-version: ${{ needs.deploy.outputs.GRID_VERSION }}\n      browser-name: ${{ github.event.inputs.browser-name }}\n      browser-versions: ${{ github.event.inputs.browser-versions }}\n      run-id: ${{ github.run_id }}\n    secrets: inherit\n"
  },
  {
    "path": ".github/workflows/release-edge-versions.yml",
    "content": "name: Deploy specific Edge version\n\non:\n  workflow_dispatch:\n    inputs:\n      stable:\n        description: 'Use upstream stable build'\n        required: true\n        type: string\n        default: 'true'\n      reuse-base:\n        description: 'Reuse base image to build'\n        required: false\n        type: boolean\n        default: true\n      grid-version:\n        description: 'Grid version to build. E.g: 4.28.1. Must provide if reusing base image'\n        required: false\n        type: string\n        default: ''\n      build-date:\n        description: 'Build date in format YYYYMMDD. Must provide if reusing base image'\n        required: false\n        type: string\n        default: '20260222'\n      browser-name:\n        description: 'Browser name to build. E.g: edge'\n        required: true\n        type: string\n        default: 'edge'\n      browser-versions:\n        description: 'List browser version to build. E.g: [130, 131]'\n        required: true\n        default: '[114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145]'\n      push-image:\n        description: 'Push image after testing successfully'\n        required: true\n        type: boolean\n        default: false\n      pr-changelog:\n        description: 'Create a PR for CHANGELOG'\n        required: true\n        type: boolean\n        default: true\n\nenv:\n  GRID_VERSION: ${{ github.event.inputs.grid-version }}\n  BROWSER_NAME: ${{ github.event.inputs.browser-name }}\n  REUSE_BASE: ${{ github.event.inputs.reuse-base || true }}\n  BUILD_DATE: ${{ github.event.inputs.build-date || '' }}\n  NAMESPACE: ${{ vars.DOCKER_NAMESPACE || 'selenium' }}\n  AUTHORS: ${{ vars.AUTHORS || 'SeleniumHQ' }}\n  PUSH_IMAGE: ${{ github.event.inputs.push-image || false }}\n  PR_CHANGELOG: ${{ github.event.inputs.pr-changelog || true }}\n  RUN_ID: ${{ github.run_id }}\n\njobs:\n  deploy:\n    name: Node/Standalone Edge\n    runs-on: ubuntu-24.04\n    permissions: write-all\n    strategy:\n      fail-fast: false\n      max-parallel: 10\n      matrix:\n        browser-version: ${{ fromJSON(github.event.inputs.browser-versions)}}\n    outputs:\n      GRID_VERSION: ${{ steps.display_grid_version.outputs.GRID_VERSION }}\n    steps:\n      - name: Checkout code\n        uses: actions/checkout@main\n        with:\n          persist-credentials: false\n          fetch-depth: 0\n      - name: Set up containerd image store feature\n        uses: nick-invision/retry@master\n        with:\n          timeout_minutes: 10\n          max_attempts: 3\n          command: |\n            INSTALL_DOCKER=false make setup_dev_env\n      - name: Output Docker info\n        run: docker info\n      - name: Set Selenium base version\n        uses: ./.github/actions/get-latest-upstream\n        with:\n          release: ${{ github.event.inputs.stable || true }}\n          gh_cli_token: ${{ secrets.GITHUB_TOKEN }}\n      - name: Sets build date\n        run: |\n          if [ -z \"${BUILD_DATE}\" ]; then\n            echo \"BUILD_DATE=$(date '+%Y%m%d')\" >> $GITHUB_ENV\n          else\n            echo \"BUILD_DATE=${BUILD_DATE}\" >> $GITHUB_ENV\n          fi\n          echo \"NAME=${NAMESPACE}\" >> $GITHUB_ENV\n          echo \"BROWSER_VERSION=${BROWSER_VERSION}\" >> $GITHUB_ENV\n        env:\n          BROWSER_VERSION: ${{ matrix.browser-version }}\n      - name: Get Grid version\n        if: env.GRID_VERSION == ''\n        run: |\n          echo ${BASE_VERSION}\n          echo \"GRID_VERSION=${BASE_VERSION}\" >> $GITHUB_ENV\n      - name: Display Grid version\n        id: display_grid_version\n        run: |\n          echo ${GRID_VERSION}\n          echo \"GRID_VERSION=${GRID_VERSION}\" >> \"$GITHUB_OUTPUT\"\n      - name: Login Docker Hub\n        run: docker login -u=\"$DOCKER_USERNAME\" -p=\"$DOCKER_PASSWORD\"\n        env:\n          DOCKER_USERNAME: ${{secrets.DOCKER_USERNAME}}\n          DOCKER_PASSWORD: ${{secrets.DOCKER_PASSWORD}}\n      - name: Build images with Grid core ${{ env.GRID_VERSION }} and ${{ env.BROWSER_NAME }} v${{ env.BROWSER_VERSION }}\n        uses: nick-invision/retry@master\n        with:\n          timeout_minutes: 20\n          max_attempts: 3\n          retry_wait_seconds: 60\n          command: |\n            make update_browser_versions_matrix\n            ./tests/build-backward-compatible/bootstrap.sh ${GRID_VERSION} ${BROWSER_VERSION} ${BROWSER_NAME} ${REUSE_BASE}\n            EXIT_CODE=$?\n            cat .env | xargs -I {} echo {} >> $GITHUB_ENV\n            exit $EXIT_CODE\n      - name: Build Hub image for testing\n        if: env.REUSE_BASE == 'false'\n        run: make hub\n      - name: Test images Node with Grid core ${{ env.GRID_VERSION }} and ${{ env.BROWSER_NAME }} v${{ env.BROWSER_VERSION }}\n        uses: nick-invision/retry@master\n        with:\n          timeout_minutes: 20\n          max_attempts: 3\n          retry_wait_seconds: 60\n          command: |\n            make test_edge\n      - name: Test images Standalone with Grid core ${{ env.GRID_VERSION }} and ${{ env.BROWSER_NAME }} v${{ env.BROWSER_VERSION }}\n        uses: nick-invision/retry@master\n        with:\n          timeout_minutes: 20\n          max_attempts: 3\n          retry_wait_seconds: 60\n          command: |\n            make test_edge_standalone \\\n            && make test_edge_standalone_java\n      - name: Push images with Grid core ${{ env.GRID_VERSION }} and ${{ env.BROWSER_NAME }} v${{ env.BROWSER_VERSION }}\n        if: env.PUSH_IMAGE == 'true'\n        run: |\n          ./tests/build-backward-compatible/bootstrap.sh ${GRID_VERSION} ${BROWSER_VERSION} ${BROWSER_NAME} ${REUSE_BASE} true true\n      - name: Upload changelog\n        if: always()\n        uses: actions/upload-artifact@main\n        with:\n          name: image_tags_${{ env.GRID_VERSION }}_${{ env.BROWSER_NAME }}_${{ env.BROWSER_VERSION }}\n          path: ./CHANGELOG/${{ env.GRID_VERSION }}/${{ env.BROWSER_NAME }}_${{ env.BROWSER_VERSION }}.md\n          if-no-files-found: ignore\n\n  pr-results:\n    if: (!failure() && !cancelled() && (github.event.inputs.pr-changelog == 'true'))\n    uses: ./.github/workflows/create-changelog-pr.yml\n    needs: deploy\n    with:\n      grid-version: ${{ needs.deploy.outputs.GRID_VERSION }}\n      browser-name: ${{ github.event.inputs.browser-name }}\n      browser-versions: ${{ github.event.inputs.browser-versions }}\n      run-id: ${{ github.run_id }}\n    secrets: inherit\n"
  },
  {
    "path": ".github/workflows/release-firefox-versions.yml",
    "content": "name: Deploy specific Firefox version\n\non:\n  workflow_dispatch:\n    inputs:\n      stable:\n        description: 'Use upstream stable build'\n        required: true\n        type: string\n        default: 'true'\n      reuse-base:\n        description: 'Reuse base image to build'\n        required: false\n        type: boolean\n        default: true\n      grid-version:\n        description: 'Grid version to build. E.g: 4.28.1. Must provide if reusing base image'\n        required: false\n        type: string\n        default: ''\n      build-date:\n        description: 'Build date in format YYYYMMDD. Must provide if reusing base image'\n        required: false\n        type: string\n        default: '20260222'\n      browser-name:\n        description: 'Browser name to build. E.g: firefox'\n        required: true\n        type: string\n        default: 'firefox'\n      browser-versions:\n        description: 'List browser version to build. E.g: [130, 131]'\n        required: true\n        default: '[98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148]'\n      push-image:\n        description: 'Push image after testing successfully'\n        required: true\n        type: boolean\n        default: false\n      pr-changelog:\n        description: 'Create a PR for CHANGELOG'\n        required: true\n        type: boolean\n        default: true\n\nenv:\n  GRID_VERSION: ${{ github.event.inputs.grid-version }}\n  BROWSER_NAME: ${{ github.event.inputs.browser-name }}\n  REUSE_BASE: ${{ github.event.inputs.reuse-base || true }}\n  BUILD_DATE: ${{ github.event.inputs.build-date || '' }}\n  NAMESPACE: ${{ vars.DOCKER_NAMESPACE || 'selenium' }}\n  AUTHORS: ${{ vars.AUTHORS || 'SeleniumHQ' }}\n  PUSH_IMAGE: ${{ github.event.inputs.push-image || false }}\n  PR_CHANGELOG: ${{ github.event.inputs.pr-changelog || true }}\n  RUN_ID: ${{ github.run_id }}\n\njobs:\n  deploy:\n    name: Node/Standalone Firefox\n    runs-on: ubuntu-24.04\n    permissions: write-all\n    strategy:\n      fail-fast: false\n      max-parallel: 10\n      matrix:\n        browser-version: ${{ fromJSON(github.event.inputs.browser-versions)}}\n    outputs:\n      GRID_VERSION: ${{ steps.display_grid_version.outputs.GRID_VERSION }}\n    steps:\n      - name: Checkout code\n        uses: actions/checkout@main\n        with:\n          persist-credentials: false\n          fetch-depth: 0\n      - name: Set up containerd image store feature\n        uses: nick-invision/retry@master\n        with:\n          timeout_minutes: 10\n          max_attempts: 3\n          command: |\n            INSTALL_DOCKER=true make setup_dev_env\n      - name: Output Docker info\n        run: docker info\n      - name: Set Selenium base version\n        uses: ./.github/actions/get-latest-upstream\n        with:\n          release: ${{ github.event.inputs.stable || true }}\n          gh_cli_token: ${{ secrets.GITHUB_TOKEN }}\n      - name: Sets build date\n        run: |\n          if [ -z \"${BUILD_DATE}\" ]; then\n            echo \"BUILD_DATE=$(date '+%Y%m%d')\" >> $GITHUB_ENV\n          else\n            echo \"BUILD_DATE=${BUILD_DATE}\" >> $GITHUB_ENV\n          fi\n          echo \"NAME=${NAMESPACE}\" >> $GITHUB_ENV\n          echo \"BROWSER_VERSION=${BROWSER_VERSION}\" >> $GITHUB_ENV\n        env:\n          BROWSER_VERSION: ${{ matrix.browser-version }}\n      - name: Get Grid version\n        if: env.GRID_VERSION == ''\n        run: |\n          echo ${BASE_VERSION}\n          echo \"GRID_VERSION=${BASE_VERSION}\" >> $GITHUB_ENV\n      - name: Display Grid version\n        id: display_grid_version\n        run: |\n          echo ${GRID_VERSION}\n          echo \"GRID_VERSION=${GRID_VERSION}\" >> \"$GITHUB_OUTPUT\"\n      - name: Login Docker Hub\n        run: docker login -u=\"$DOCKER_USERNAME\" -p=\"$DOCKER_PASSWORD\"\n        env:\n          DOCKER_USERNAME: ${{secrets.DOCKER_USERNAME}}\n          DOCKER_PASSWORD: ${{secrets.DOCKER_PASSWORD}}\n      - name: Build images with Grid core ${{ env.GRID_VERSION }} and ${{ env.BROWSER_NAME }} v${{ env.BROWSER_VERSION }}\n        uses: nick-invision/retry@master\n        with:\n          timeout_minutes: 90\n          max_attempts: 3\n          retry_wait_seconds: 60\n          command: |\n            make update_browser_versions_matrix\n            ./tests/build-backward-compatible/bootstrap.sh ${GRID_VERSION} ${BROWSER_VERSION} ${BROWSER_NAME} ${REUSE_BASE}\n            EXIT_CODE=$?\n            cat .env | xargs -I {} echo {} >> $GITHUB_ENV\n            exit $EXIT_CODE\n      - name: Build Hub image for testing\n        if: env.REUSE_BASE == 'false'\n        run: make hub\n      - name: Test images Node with Grid core ${{ env.GRID_VERSION }} and ${{ env.BROWSER_NAME }} v${{ env.BROWSER_VERSION }}\n        uses: nick-invision/retry@master\n        with:\n          timeout_minutes: 20\n          max_attempts: 3\n          retry_wait_seconds: 60\n          command: |\n            TEST_FIREFOX_INSTALL_LANG_PACKAGE=false FIREFOX_VERSION=${FIREFOX_VERSION} make test_firefox\n      - name: Test images Standalone with Grid core ${{ env.GRID_VERSION }} and ${{ env.BROWSER_NAME }} v${{ env.BROWSER_VERSION }}\n        uses: nick-invision/retry@master\n        with:\n          timeout_minutes: 20\n          max_attempts: 3\n          retry_wait_seconds: 60\n          command: |\n            FIREFOX_VERSION=${FIREFOX_VERSION} make test_firefox_standalone \\\n            && make test_firefox_standalone_java\n      - name: Push images with Grid core ${{ env.GRID_VERSION }} and ${{ env.BROWSER_NAME }} v${{ env.BROWSER_VERSION }}\n        if: env.PUSH_IMAGE == 'true'\n        run: |\n          ./tests/build-backward-compatible/bootstrap.sh ${GRID_VERSION} ${BROWSER_VERSION} ${BROWSER_NAME} ${REUSE_BASE} true true\n      - name: Upload changelog\n        if: always()\n        uses: actions/upload-artifact@main\n        with:\n          name: image_tags_${{ env.GRID_VERSION }}_${{ env.BROWSER_NAME }}_${{ env.BROWSER_VERSION }}\n          path: ./CHANGELOG/${{ env.GRID_VERSION }}/${{ env.BROWSER_NAME }}_${{ env.BROWSER_VERSION }}.md\n          if-no-files-found: ignore\n\n  pr-results:\n    if: (!failure() && !cancelled() && (github.event.inputs.pr-changelog == 'true'))\n    uses: ./.github/workflows/create-changelog-pr.yml\n    needs: deploy\n    with:\n      grid-version: ${{ needs.deploy.outputs.GRID_VERSION }}\n      browser-name: ${{ github.event.inputs.browser-name }}\n      browser-versions: ${{ github.event.inputs.browser-versions }}\n      run-id: ${{ github.run_id }}\n    secrets: inherit\n"
  },
  {
    "path": ".github/workflows/release-preparation.yml",
    "content": "name: Release Preparation\n\non:\n  workflow_call:\n    inputs:\n      grid-version:\n        required: true\n        default: '4.37.0'\n        type: string\n  workflow_dispatch:\n    inputs:\n      grid-version:\n        required: true\n        type: string\n        default: '4.37.0'\n        description: Expected Grid version to update\n\njobs:\n  pr-results:\n    name: Create a PR with changelog\n    runs-on: ubuntu-24.04\n    steps:\n      - name: Checkout code\n        uses: actions/checkout@main\n        with:\n          persist-credentials: false\n          fetch-depth: 0\n      - name: Check existing PR\n        id: check-pr\n        run: |\n          PR_NUMBER=$(gh pr list --base trunk --head release-preparation --json number --jq '.[0].number')\n          if [ \"$PR_NUMBER\" != \"null\" ] && [ -n \"$PR_NUMBER\" ]; then\n            echo \"pr-exists=true\" >> $GITHUB_OUTPUT\n          else\n            echo \"pr-exists=false\" >> $GITHUB_OUTPUT\n          fi\n        env:\n          GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}\n      - name: Checkout PR branch\n        if: steps.check-pr.outputs.pr-exists == 'true'\n        run: |\n          git checkout release-preparation\n      - name: Run scripts\n        run: |\n          EXPECTED_BASE_VERSION=${EXPECTED_BASE_VERSION} make update_release_version\n          make update_selenium_version_matrix\n          make update_browser_versions_matrix\n        env:\n          EXPECTED_BASE_VERSION: ${{ inputs.grid-version }}\n      - name: Commit & Push changes\n        if: steps.check-pr.outputs.pr-exists == 'true'\n        uses: actions-js/push@master\n        with:\n          github_token: ${{ secrets.GITHUB_TOKEN }}\n          author_email: \"selenium-ci@users.noreply.github.com\"\n          author_name: \"Selenium CI Bot\"\n          message: \"[build] Update Selenium Grid ${{ inputs.grid-version }}\"\n          empty: true\n          rebase: true\n          branch: \"release-preparation\"\n      - name: Create Pull Request\n        if: steps.check-pr.outputs.pr-exists == 'false'\n        uses: peter-evans/create-pull-request@main\n        with:\n          token: ${{ secrets.SELENIUM_CI_TOKEN }}\n          commit-message: |\n            [build] Update Selenium Grid ${{ inputs.grid-version }}\n          title: \"[build] Update Selenium Grid ${{ inputs.grid-version }}\"\n          body: \"This PR to update Selenium Grid ${{ inputs.grid-version }} and backward browser versions\"\n          committer: 'Selenium CI Bot <selenium-ci@users.noreply.github.com>'\n          author: 'Selenium CI Bot <selenium-ci@users.noreply.github.com>'\n          branch: release-preparation"
  },
  {
    "path": ".github/workflows/rerun-failed.yml",
    "content": "name: Rerun Workflows\n\non:\n  workflow_dispatch:\n    inputs:\n      runId:\n        description: 'The ID of workflow to rerun'\n        required: true\n        type: string\n      rerunFailedOnly:\n        description: 'Rerun only failed jobs'\n        required: false\n        type: boolean\n        default: true\n\npermissions: write-all\n\nenv:\n  GH_CLI_TOKEN: ${{ secrets.GITHUB_TOKEN }}\n  RUN_ID: ${{ github.event.inputs.runId }}\n  RERUN_FAILED_ONLY: ${{ github.event.inputs.rerunFailedOnly }}\n\njobs:\n  rerun_workflow:\n    name: Rerun ${{ github.event.inputs.runId }}\n    runs-on: ubuntu-24.04\n    steps:\n      - name: Checkout code\n        uses: actions/checkout@main\n      - name: Install GitHub CLI\n        run: |\n          sudo apt update\n          sudo apt install gh\n      - name: Authenticate GitHub CLI\n        run: |\n          echo \"${GH_CLI_TOKEN}\" | gh auth login --with-token\n      - name: \"Rerun workflow ${{ env.RUN_ID }}\"\n        run: |\n          if [ \"${RERUN_FAILED_ONLY}\" = \"true\" ]; then\n            gh run rerun ${RUN_ID} --failed --repo ${GITHUB_REPOSITORY}\n          else\n            gh run rerun ${RUN_ID} --repo ${GITHUB_REPOSITORY}\n          fi\n"
  },
  {
    "path": ".github/workflows/scan-dockerfile.yml",
    "content": "name: Scan Dockerfile vulnerabilities\nconcurrency:\n  group: ${{ github.workflow }}\n\non:\n  push:\n    paths:\n      - '**/Dockerfile'\n  pull_request:\n    paths:\n      - '**/Dockerfile'\n  workflow_dispatch:\n  schedule:\n    - cron: '0 0 * * *'\n\njobs:\n  build-and-scan:\n    name: Scan Dockerfile vulnerabilities\n    permissions: write-all\n    runs-on: ubuntu-24.04\n    steps:\n      - uses: actions/checkout@main\n      - name: Set severity for PRs\n        if: github.event_name == 'pull_request' || github.event_name == 'push'\n        run: |\n          echo \"SEVERITY=HIGH,CRITICAL\" >> $GITHUB_ENV\n          echo \"EXIT_CODE=1\" >> $GITHUB_ENV\n      - name: Set severity for others\n        if: github.event_name != 'pull_request' && github.event_name != 'push'\n        run: |\n          echo \"SEVERITY=LOW,MEDIUM,HIGH,CRITICAL\" >> $GITHUB_ENV\n          echo \"EXIT_CODE=0\" >> $GITHUB_ENV\n      - name: Scan source code\n        uses: aquasecurity/trivy-action@master\n        with:\n          scan-type: 'fs'\n          scan-ref: '.'\n          format: 'sarif'\n          output: 'source-results.sarif'\n          scanners: 'vuln,secret,misconfig'\n          skip-dirs: 'tests,Video'\n          exit-code: '${{ env.EXIT_CODE }}'\n          severity: '${{ env.SEVERITY }}'\n          limit-severities-for-sarif: true\n      - name: Upload source scan results to annotations\n        if: always()\n        uses: Ayrx/sarif_to_github_annotations@master\n        with:\n          sarif_file: 'source-results.sarif'\n      - name: Upload source scan results to GitHub Security tab\n        if: github.event_name != 'pull_request'\n        uses: github/codeql-action/upload-sarif@v4\n        with:\n          sarif_file: 'source-results.sarif'\n          category: source-results\n"
  },
  {
    "path": ".github/workflows/update-chart-readme.yml",
    "content": "name: Update chart configuration table\n\non:\n  push:\n    branches:\n      - 'renovate/*'\n  pull_request:\n    types:\n      - opened\n    branches:\n      - 'renovate/**'\n  workflow_dispatch:\n\njobs:\n  update-chart-readme:\n    runs-on: ubuntu-24.04\n    permissions: write-all\n    steps:\n      - name: Checkout code\n        uses: actions/checkout@main\n        with:\n          persist-credentials: false\n          fetch-depth: 0\n      - name: Set up environment\n        uses: nick-invision/retry@master\n        with:\n          timeout_minutes: 10\n          max_attempts: 3\n          command: |\n            make setup_dev_env\n      - name: Update chart configuration table\n        run: make generate_readme_charts\n      - name: Check for differences\n        id: check_diff\n        run: |\n          if git diff --exit-code; then\n            echo \"diff=false\" >> $GITHUB_ENV\n          else\n            echo \"diff=true\" >> $GITHUB_ENV\n          fi\n      - name: Commit files\n        if: env.diff == 'true'\n        run: |\n          git config --local user.email \"selenium-ci@users.noreply.github.com\"\n          git config --local user.name \"Selenium CI Bot\"\n          git commit -m \"[ci] Update chart configuration table\" -m \"[skip test]\" -a\n          git pull --rebase\n      - name: Push changes\n        if: env.diff == 'true'\n        uses: ad-m/github-push-action@master\n        with:\n          github_token: ${{ secrets.SELENIUM_CI_TOKEN }}\n          branch: ${{ env.BRANCH_NAME }}\n        env:\n          BRANCH_NAME: ${{ github.head_ref || github.ref_name }}\n"
  },
  {
    "path": ".github/workflows/update-dev-beta-browser-images.yml",
    "content": "name: Update Dev/Beta Browser Images\n\non:\n  workflow_dispatch:\n    inputs:\n      rerunFailedOnly:\n        description: 'Rerun only failed jobs'\n        required: false\n        type: boolean\n        default: true\n  schedule:\n    # Trigger build every 2 days\n    - cron: '0 2 */2 * *'\n\npermissions: write-all\n\nenv:\n  GH_CLI_TOKEN: ${{ secrets.GITHUB_TOKEN }}\n  GH_CLI_TOKEN_PR: ${{ secrets.TRIGGER_CI_TOKEN || secrets.GITHUB_TOKEN }}\n  RUN_ID: ${{ github.run_id }}\n  RERUN_FAILED_ONLY: ${{ github.event.inputs.rerunFailedOnly || true }}\n  RUN_ATTEMPT: ${{ github.run_attempt }}\n\njobs:\n\n  deploy:\n\n    runs-on: ubuntu-24.04\n    strategy: \n      fail-fast: false\n      matrix:\n        include:\n          - browser: chrome\n            channel: dev\n            platforms: linux/amd64\n          - browser: chrome\n            channel: beta\n            platforms: linux/amd64\n          - browser: firefox\n            channel: dev\n            platforms: linux/amd64,linux/arm64\n          - browser: firefox\n            channel: beta\n            platforms: linux/amd64,linux/arm64\n          - browser: edge\n            channel: dev\n            platforms: linux/amd64\n          - browser: edge\n            channel: beta\n            platforms: linux/amd64\n          - browser: chrome-for-testing\n            channel: dev\n            platforms: linux/amd64\n          - browser: chrome-for-testing\n            channel: beta\n            platforms: linux/amd64\n          - browser: chrome-for-testing\n            channel: canary\n            platforms: linux/amd64\n    env:\n      NAME: ${{ vars.DOCKER_NAMESPACE || 'selenium' }}\n      BROWSER: ${{ matrix.browser }}\n      CHANNEL: ${{ matrix.channel }}\n      PLATFORMS: ${{ matrix.platforms }}\n\n    steps:\n    - name: Checkout code\n      uses: actions/checkout@main\n    - name: Set up containerd image store feature\n      uses: nick-invision/retry@master\n      with:\n        timeout_minutes: 10\n        max_attempts: 3\n        command: |\n          make setup_dev_env\n    - name: Setup environment variables\n      run: |\n        export SELENIUM_VERSION=$(grep BASE_VERSION Makefile | sed 's/.*,\\([^)]*\\))/\\1/p' | head -n 1)\n        export BINDING_VERSION=$(grep BINDING_VERSION Makefile | sed 's/.*,\\([^)]*\\))/\\1/p' | head -n 1)\n        echo \"SELENIUM_VERSION=\"$SELENIUM_VERSION >> $GITHUB_ENV\n        echo \"BINDING_VERSION=\"$BINDING_VERSION >> $GITHUB_ENV\n        export BUILD_DATE=$(date '+%Y%m%d')\n        echo \"BUILD_DATE=\"$BUILD_DATE >> $GITHUB_ENV\n        export BROWSER_CAPS=`node -p \"process.argv[1][0].toUpperCase() + process.argv[1].toString().substring(1)\" $BROWSER`\n        echo \"BROWSER_CAPS=\"$BROWSER_CAPS >> $GITHUB_ENV\n        export CHANNEL_CAPS=`node -p \"process.argv[1][0].toUpperCase() + process.argv[1].toString().substring(1)\" $CHANNEL`\n        echo \"CHANNEL_CAPS=\"$CHANNEL_CAPS >> $GITHUB_ENV\n        echo \"BROWSER is $BROWSER\"\n        echo \"CHANNEL is $CHANNEL\"\n        echo \"SELENIUM_VERSION is $SELENIUM_VERSION\"\n        echo \"BUILD_DATE is $BUILD_DATE\"\n\n    - name: Pull hub and node-base and tag them for faster building and testing\n      run: |\n        docker pull $NAME/hub:latest\n        docker pull $NAME/node-base:latest\n        docker tag $NAME/hub:latest $NAME/hub:$CHANNEL\n        docker tag $NAME/node-base:latest $NAME/node-base:$CHANNEL\n        docker tag $NAME/hub:latest $NAME/hub:\"$SELENIUM_VERSION\"-\"$BUILD_DATE\"\n        docker tag $NAME/node-base:latest $NAME/node-base:\"$SELENIUM_VERSION\"-\"$BUILD_DATE\"\n        \n    - name: Build the Dev/Beta Docker container images\n      run: |\n        echo VERSION=$SELENIUM_VERSION PLATFORMS=$PLATFORMS make \"$BROWSER\"_\"$CHANNEL\" standalone_\"$BROWSER\"_\"$CHANNEL\"\n        VERSION=$SELENIUM_VERSION PLATFORMS=$PLATFORMS make \"$BROWSER\"_\"$CHANNEL\" standalone_\"$BROWSER\"_\"$CHANNEL\"        \n\n    - name: Test the Dev/Beta Docker container images\n      run: |\n        export SKIP_BUILD=true\n        export NAMESPACE=$NAME\n        VERSION=$CHANNEL ./tests/bootstrap.sh Node$BROWSER_CAPS\n        VERSION=$CHANNEL ./tests/bootstrap.sh Standalone$BROWSER_CAPS\n\n    - name: Login Docker Hub\n      run: docker login -u=\"$DOCKER_USERNAME\" -p=\"$DOCKER_PASSWORD\"\n      env:\n        DOCKER_USERNAME: ${{secrets.DOCKER_USERNAME}}\n        DOCKER_PASSWORD: ${{secrets.DOCKER_PASSWORD}}  \n\n    - name: Deploy Dev/Beta Docker container images  \n      run: |\n        docker push $NAME/node-$BROWSER:$CHANNEL\n        docker push $NAME/standalone-$BROWSER:$CHANNEL\n        if [ \"$BROWSER\" = \"firefox\" ]; then\n          export DRIVER_VERSION_COMMAND=\"/usr/bin/geckodriver --version | head -n 1\"\n          export BROWSER_VERSION_COMMAND=\"firefox -version\"\n        elif [ \"$BROWSER\" = \"chrome\" ]; then\n          export DRIVER_VERSION_COMMAND=\"/usr/bin/chromedriver -version\"\n          export BROWSER_VERSION_COMMAND=\"google-chrome -version\"\n        elif [ \"$BROWSER\" = \"edge\" ]; then\n          export DRIVER_VERSION_COMMAND=\"/usr/bin/msedgedriver -version\"\n          export BROWSER_VERSION_COMMAND=\"microsoft-edge -version\"\n        fi\n        echo \"Push to Docker Hub completed\"\n        echo \"$BROWSER_CAPS $CHANNEL_CAPS browser version:\"\n        docker run --rm $NAME/standalone-$BROWSER:$CHANNEL bash -c \"$BROWSER_VERSION_COMMAND\"\n        echo \"$BROWSER_CAPS $CHANNEL_CAPS WebDriver version:\"\n        docker run --rm $NAME/standalone-$BROWSER:$CHANNEL bash -c \"$DRIVER_VERSION_COMMAND\"\n\n\n  rerun-workflow-when-failure:\n    name: Rerun workflow when failure\n    needs:\n      - deploy\n    if: failure() && ( github.run_attempt < 3 )\n    runs-on: ubuntu-24.04\n    steps:\n      - name: Checkout code\n        uses: actions/checkout@main\n      - name: Install GitHub CLI\n        run: |\n          sudo apt update\n          sudo apt install gh\n      - name: Authenticate GitHub CLI for PR\n        if: github.event_name == 'pull_request'\n        run: |\n          echo \"$GH_CLI_TOKEN_PR\" | gh auth login --with-token\n      - name: Authenticate GitHub CLI\n        if: github.event_name != 'pull_request'\n        run: |\n          echo \"$GH_CLI_TOKEN\" | gh auth login --with-token\n      - name: Rerun workflow when failure\n        run: |\n          echo \"Rerun workflow ID $RUN_ID in attempt #$(($RUN_ATTEMPT + 1))\"\n          gh workflow run rerun-failed.yml \\\n            --repo $GITHUB_REPOSITORY \\\n            --raw-field runId=$RUN_ID \\\n            --raw-field rerunFailedOnly=$RERUN_FAILED_ONLY\n"
  },
  {
    "path": ".gitignore",
    "content": "tmp/\n*_image/\nnode_modules/\n.idea/\n*.iml\n# Sed backup files.\n*-e\n# Vim swap files.\n*.swp\n# Selenium Server Dev\nselenium_server_deploy.jar\n# assets directory\nassets\n.vscode\n\n# Ignoring generated files during the build process\nStandaloneC*/selenium.conf\nStandaloneF*/selenium.conf\nStandaloneE*/selenium.conf\nStandaloneC*/start-*.sh\nStandaloneF*/start-*.sh\nStandaloneE*/start-*.sh\nStandaloneC*/generate_config\nStandaloneF*/generate_config\nStandaloneE*/generate_config\nvideos\nBase/configs\n\n# Created by https://www.gitignore.io/api/virtualenv\n\n### VirtualEnv ###\n# Virtualenv\n# http://iamzed.com/2009/05/07/a-primer-on-virtualenv/\n.Python\n[Bb]in\n[Ii]nclude\n[Ll]ib\n[Ll]ib64\n[Ll]ocal\n[Ss]cripts\npyvenv.cfg\n.venv\npip-selfcheck.json\n\n# End of https://www.gitignore.io/api/virtualenv\ntests/tests/*\ntests/target/*\n\n# Created by https://www.gitignore.io/api/python\n\n### Python ###\n# Byte-compiled / optimized / DLL files\n__pycache__/\n*.py[cod]\n*$py.class\n\n# C extensions\n*.so\n\n# Distribution / packaging\n.Python\nenv/\nbuild/\ndevelop-eggs/\ndist/\ndownloads/\neggs/\n.eggs/\nlib/\nlib64/\nparts/\nsdist/\nvar/\nwheels/\n*.egg-info/\n.installed.cfg\n*.egg\n\n# PyInstaller\n#  Usually these files are written by a python script from a template\n#  before PyInstaller builds the exe, so as to inject date/other infos into it.\n*.manifest\n*.spec\n\n# Installer logs\npip-log.txt\npip-delete-this-directory.txt\n\n# Unit test / coverage reports\nhtmlcov/\n.tox/\n.coverage\n.coverage.*\n.cache\nnosetests.xml\ncoverage.xml\n*,cover\n.hypothesis/\n\n# Translations\n*.mo\n*.pot\n\n# Django stuff:\n*.log\nlocal_settings.py\n\n# Flask stuff:\ninstance/\n.webassets-cache\n\n# Scrapy stuff:\n.scrapy\n\n# Sphinx documentation\ndocs/_build/\n\n# PyBuilder\ntarget/\n\n# Jupyter Notebook\n.ipynb_checkpoints\n\n# pyenv\n.python-version\n\n# celery beat schedule file\ncelerybeat-schedule\n\n# SageMath parsed files\n*.sage.py\n\n# dotenv\n.env\n\n# virtualenv\n.venv\nvenv/\nENV/\n\n# Spyder project settings\n.spyderproject\n.spyproject\n\n# Rope project settings\n.ropeproject\n\n# mkdocs documentation\n/site\n\n# End of https://www.gitignore.io/api/python\n.DS_Store\n/charts/*/charts\n/charts/*/**.lock\n/charts/*.tgz\n/charts/*/RELEASE_NOTES.md\nBase/certs\n"
  },
  {
    "path": ".gitpod.yml",
    "content": "tasks:\n  - name: Show README link and build instructions\n    before: | \n      echo \"Try out Selenium Grid in Docker by following https://github.com/SeleniumHQ/docker-selenium#execution-modes\"\n      echo \"To build all images, run 'make all'. See more instructions at https://github.com/SeleniumHQ/docker-selenium/wiki/Building-your-own-images\"\n\n"
  },
  {
    "path": ".keda/README.md",
    "content": "# Introduction\n\nSelenium Grid Scaler is a built-in scaler is maintained in upstream KEDA [repository](https://github.com/kedacore/keda). The scaler implementation could be found [here](https://github.com/kedacore/keda/blob/main/pkg/scalers/selenium_grid_scaler.go). The official docs of the scaler could be seen [here](https://keda.sh/docs/latest/scalers/selenium-grid-scaler/).\n\nNow, [SeleniumHQ/docker-selenium](https://github.com/SeleniumHQ/docker-selenium) involves as the maintainer for the scaler.\n\nIn order to deliver and get feedback continuously on any new bug fixes, improvement, or features for the Selenium Grid scaler. We select the latest stable version of KEDA core, patch the scaler implementation then build and deploy KEDA container images following our image tag convention.\n\nThe stable implementation will be merged to the upstream KEDA repository frequently and will be available in the next KEDA core release.\n\n# How to use the patched scaler\n\nReplace the image registry and tag of these KEDA components with the patched image tag:\n\n```bash\ndocker pull ghcr.io/kedacore/keda:2.19.0\ndocker pull ghcr.io/keda-metrics-apiserver:2.19.0\ndocker pull ghcr.io/keda-admission-webhooks:2.19.0\n```\n\nBesides that, you also can use image tag `latest` or `nightly`.\n\nIf you are deploying KEDA core using their official Helm [chart](https://github.com/kedacore/charts), you can overwrite the image registry and tag by providing the following values in the `values.yaml` file. For example:\n\n```yaml\n  image:\n    keda:\n      registry: ghcr.io\n      repository: keda\n      tag: \"2.19.0\"\n    metricsApiServer:\n      registry: ghcr.io\n      repository: keda-metrics-apiserver\n      tag: \"2.19.0\"\n    webhooks:\n      registry: ghcr.io\n      repository: keda-admission-webhooks\n      tag: \"2.19.0\"\n```\n\nIf you are deployment Selenium Grid chart with `autoscaling.enabled` is `true` (implies installing KEDA sub-chart), KEDA images registry and tag already set in the `values.yaml`. Refer to list [configuration](../charts/selenium-grid/CONFIGURATION.md).\n\nIf you want to disable default patched KEDA image tags in Selenium Grid chart, you can set via Helm CLI `--set keda.image=null` or the same in values file.\n\n# Pull requests under testing\n\nHere is list of pull requests that are under testing and will be merged to the upstream KEDA repository.\nYou can involve to review and discuss the pull requests to help us early detect and fix any issues.\n\n[kedacore/keda](https://github.com/kedacore/keda)\n\n- ~~https://github.com/kedacore/keda/pull/6772 (merged, v2.17.1)~~\n\n- ~~https://github.com/kedacore/keda/pull/6684 (merged, v2.17.0)~~\n\n- ~~https://github.com/kedacore/keda/pull/6570 (merged, v2.17.0)~~\n\n- ~~https://github.com/kedacore/keda/pull/6536 (merged, v2.17.0)~~\n\n- ~~https://github.com/kedacore/keda/pull/6477 (merged, v2.17.0)~~\n\n- ~~https://github.com/kedacore/keda/pull/6437 (merged, v2.16.1)~~\n\n- ~~https://github.com/kedacore/keda/pull/6368 (merged, v2.16.1)~~\n\n- ~~https://github.com/kedacore/keda/pull/6169 (merged, v2.16.0)~~\n\n[kedacore/keda-docs](https://github.com/kedacore/keda-docs)\n\n- ~~https://github.com/kedacore/keda-docs/pull/1560 (merged, v2.17.0)~~\n\n- ~~https://github.com/kedacore/keda-docs/pull/1542 (merged, v2.17.0)~~\n\n- ~~https://github.com/kedacore/keda-docs/pull/1533 (merged, v2.17.0)~~\n\n- ~~https://github.com/kedacore/keda-docs/pull/1522 (merged, v2.17.0)~~\n\n- ~~https://github.com/kedacore/keda-docs/pull/1515 (merged, v2.16.1)~~\n\n- ~~https://github.com/kedacore/keda-docs/pull/1468 (merged, v2.16.0)~~\n\n# Test results of the patch scaler\n\nThere are tests for the patched scaler implementation. You can run the tests by following the steps in [../tests/README.md](../tests/README.md).\n\nTest results could be referred to\n\n- [results_test_k8s_autoscaling_job_count_strategy_default.md](./results_test_k8s_autoscaling_job_count_strategy_default.md)\n- [results_test_k8s_autoscaling_job_count_strategy_default_in_chaos.md](./results_test_k8s_autoscaling_job_count_strategy_default_in_chaos.md)\n- [results_test_k8s_autoscaling_job_count_strategy_default_with_node_max_sessions.md](./results_test_k8s_autoscaling_job_count_strategy_default_with_node_max_sessions.md)\n- [results_test_k8s_autoscaling_deployment_count.md](./results_test_k8s_autoscaling_deployment_count.md)\n- [results_test_k8s_autoscaling_deployment_count_in_chaos.md](./results_test_k8s_autoscaling_deployment_count_in_chaos.md)\n- [results_test_k8s_autoscaling_deployment_count_with_node_max_sessions.md](./results_test_k8s_autoscaling_deployment_count_with_node_max_sessions.md)\n\n# Resources\n\nYou can inspect the implementation of current Selenium Grid scaler:\n\n- [selenium_grid_scaler.go](./scalers/selenium_grid_scaler.go)\n- [selenium_grid_scaler_test.go](./scalers/selenium_grid_scaler_test.go)\n- [selenium-grid-scaler.md](./scalers/selenium-grid-scaler.md)\n"
  },
  {
    "path": ".keda/results_test_k8s_autoscaling_deployment_count.md",
    "content": "| Iteration | New request sessions | Sessions created time | Sessions failed to create | New pods scaled up | Total running sessions | Total running pods | Max sessions per pod | Gaps | Sessions closed |\n| --------- | -------------------- | --------------------- | ------------------------- | ------------------ | ---------------------- | ------------------ | -------------------- | ---- | --------------- |\n| 1         | 1                    | 0.09 s                | 1                         | 0                  | 0                      | 0                  | 1                    | 0    | 0               |\n| 2         | 3                    | 42.11 s               | 0                         | 4                  | 3                      | 4                  | 1                    | 1    | 0               |\n| 3         | 1                    | 38.92 s               | 0                         | 2                  | 4                      | 6                  | 1                    | 2    | 0               |\n| 4         | 2                    | 41.55 s               | 0                         | 2                  | 6                      | 8                  | 1                    | 2    | 0               |\n| 5         | 1                    | 8.69 s                | 0                         | 1                  | 7                      | 9                  | 1                    | 2    | 0               |\n| 6         | 2                    | 38.24 s               | 0                         | 2                  | 9                      | 11                 | 1                    | 2    | 9               |\n| 7         | 1                    | 19.52 s               | 0                         | 0                  | 1                      | 11                 | 1                    | 10   | 0               |\n| 8         | 2                    | 5.37 s                | 0                         | 0                  | 3                      | 11                 | 1                    | 8    | 0               |\n| 9         | 1                    | 5.23 s                | 0                         | 0                  | 4                      | 11                 | 1                    | 7    | 0               |\n| 10        | 1                    | 5.04 s                | 0                         | 0                  | 5                      | 11                 | 1                    | 6    | 0               |\n| 11        | 1                    | 15.62 s               | 0                         | 0                  | 6                      | 11                 | 1                    | 5    | 6               |\n| 12        | 1                    | 16.90 s               | 0                         | 0                  | 1                      | 11                 | 1                    | 10   | 0               |\n| 13        | 3                    | 41.47 s               | 0                         | 2                  | 4                      | 13                 | 1                    | 9    | 0               |\n| 14        | 3                    | 11.03 s               | 0                         | -2                 | 7                      | 11                 | 1                    | 4    | 0               |\n| 15        | 3                    | 20.94 s               | 0                         | 1                  | 10                     | 12                 | 1                    | 2    | 0               |\n| 16        | 2                    | 800.08 s              | 1                         | 1                  | 11                     | 13                 | 1                    | 2    | 11              |\n| 17        | 1                    | 4.47 s                | 0                         | 0                  | 1                      | 13                 | 1                    | 12   | 0               |\n| 18        | 1                    | 4.10 s                | 0                         | 0                  | 2                      | 13                 | 1                    | 11   | 0               |\n| 19        | 2                    | 21.38 s               | 0                         | 0                  | 4                      | 13                 | 1                    | 9    | 0               |\n| 20        | 2                    | 15.39 s               | 0                         | 0                  | 6                      | 13                 | 1                    | 7    | 0               |"
  },
  {
    "path": ".keda/results_test_k8s_autoscaling_deployment_count_in_chaos.md",
    "content": "| Iteration | New request sessions | Sessions created time | Sessions failed to create | New pods scaled up | Total running sessions | Total running pods | Max sessions per pod | Gaps | Sessions closed |\n| --------- | -------------------- | --------------------- | ------------------------- | ------------------ | ---------------------- | ------------------ | -------------------- | ---- | --------------- |\n| 1         | 4                    | 0.13 s                | 4                         | 0                  | 0                      | 0                  | 1                    | 0    | 0               |\n| 2         | 6                    | 73.65 s               | 0                         | 8                  | 6                      | 8                  | 1                    | 2    | 6               |\n| 3         | 3                    | 37.36 s               | 0                         | 1                  | 3                      | 9                  | 1                    | 6    | 3               |\n| 4         | 4                    | 17.15 s               | 0                         | 0                  | 4                      | 9                  | 1                    | 5    | 4               |\n| 5         | 5                    | 41.70 s               | 0                         | 2                  | 5                      | 11                 | 1                    | 6    | 5               |\n| 6         | 5                    | 17.69 s               | 0                         | 0                  | 5                      | 11                 | 1                    | 6    | 5               |\n| 7         | 4                    | 5.76 s                | 0                         | 0                  | 4                      | 11                 | 1                    | 7    | 3               |\n| 8         | 6                    | 29.54 s               | 0                         | 1                  | 7                      | 12                 | 1                    | 5    | 7               |\n| 9         | 5                    | 16.25 s               | 0                         | 0                  | 5                      | 11                 | 1                    | 6    | 5               |\n| 10        | 3                    | 4.80 s                | 0                         | 0                  | 3                      | 11                 | 1                    | 8    | 3               |\n| 11        | 4                    | 5.99 s                | 0                         | 0                  | 4                      | 11                 | 1                    | 7    | 4               |\n| 12        | 6                    | 18.34 s               | 0                         | 1                  | 6                      | 11                 | 1                    | 5    | 4               |\n| 13        | 5                    | 16.50 s               | 0                         | 0                  | 7                      | 11                 | 1                    | 4    | 7               |\n| 14        | 5                    | 17.23 s               | 0                         | 1                  | 5                      | 12                 | 1                    | 7    | 5               |\n| 15        | 6                    | 23.02 s               | 0                         | 1                  | 6                      | 13                 | 1                    | 7    | 4               |\n| 16        | 5                    | 22.00 s               | 0                         | 0                  | 7                      | 13                 | 1                    | 6    | 6               |\n| 17        | 4                    | 16.72 s               | 0                         | 0                  | 5                      | 12                 | 1                    | 7    | 5               |\n| 18        | 3                    | 6.07 s                | 0                         | 0                  | 3                      | 12                 | 1                    | 9    | 3               |\n| 19        | 6                    | 19.04 s               | 0                         | -1                 | 6                      | 11                 | 1                    | 5    | 6               |\n| 20        | 5                    | 36.78 s               | 0                         | 0                  | 5                      | 11                 | 1                    | 6    | 5               |"
  },
  {
    "path": ".keda/results_test_k8s_autoscaling_deployment_count_with_node_max_sessions.md",
    "content": "| Iteration | New request sessions | Sessions created time | Sessions failed to create | New pods scaled up | Total running sessions | Total running pods | Max sessions per pod | Gaps | Sessions closed |\n| --------- | -------------------- | --------------------- | ------------------------- | ------------------ | ---------------------- | ------------------ | -------------------- | ---- | --------------- |\n| 1         | 1                    | 0.10 s                | 1                         | 0                  | 0                      | 0                  | 3                    | 0    | 0               |\n| 2         | 3                    | 46.81 s               | 0                         | 3                  | 3                      | 3                  | 3                    | 6    | 0               |\n| 3         | 3                    | 47.21 s               | 0                         | 5                  | 6                      | 8                  | 3                    | 18   | 0               |\n| 4         | 2                    | 11.20 s               | 0                         | 0                  | 8                      | 8                  | 3                    | 16   | 0               |\n| 5         | 3                    | 23.23 s               | 0                         | 3                  | 11                     | 13                 | 3                    | 28   | 0               |\n| 6         | 1                    | 28.59 s               | 0                         | 0                  | 12                     | 13                 | 3                    | 27   | 12              |\n| 7         | 2                    | 24.15 s               | 0                         | 0                  | 2                      | 13                 | 3                    | 37   | 0               |\n| 8         | 1                    | 22.19 s               | 0                         | 0                  | 3                      | 13                 | 3                    | 36   | 0               |\n| 9         | 1                    | 28.08 s               | 0                         | 0                  | 4                      | 13                 | 3                    | 35   | 0               |\n| 10        | 3                    | 26.86 s               | 0                         | 0                  | 7                      | 13                 | 3                    | 32   | 0               |\n| 11        | 3                    | 20.52 s               | 0                         | 0                  | 10                     | 13                 | 3                    | 29   | 10              |\n| 12        | 3                    | 21.40 s               | 0                         | -1                 | 3                      | 12                 | 3                    | 33   | 0               |\n| 13        | 1                    | 26.93 s               | 0                         | 0                  | 4                      | 12                 | 3                    | 32   | 0               |\n| 14        | 3                    | 23.53 s               | 0                         | 0                  | 7                      | 12                 | 3                    | 29   | 0               |\n| 15        | 1                    | 16.91 s               | 0                         | 0                  | 8                      | 12                 | 3                    | 28   | 0               |\n| 16        | 1                    | 6.22 s                | 0                         | 0                  | 9                      | 12                 | 3                    | 27   | 9               |\n| 17        | 1                    | 5.18 s                | 0                         | 0                  | 1                      | 12                 | 3                    | 35   | 0               |\n| 18        | 2                    | 15.91 s               | 0                         | 0                  | 3                      | 12                 | 3                    | 33   | 0               |\n| 19        | 2                    | 22.93 s               | 0                         | -1                 | 5                      | 11                 | 3                    | 28   | 0               |\n| 20        | 2                    | 27.37 s               | 0                         | 0                  | 7                      | 11                 | 3                    | 26   | 0               |"
  },
  {
    "path": ".keda/results_test_k8s_autoscaling_job_count_strategy_default.md",
    "content": "| Iteration | New request sessions | Sessions created time | Sessions failed to create | New pods scaled up | Total running sessions | Total running pods | Max sessions per pod | Gaps | Sessions closed |\n| --------- | -------------------- | --------------------- | ------------------------- | ------------------ | ---------------------- | ------------------ | -------------------- | ---- | --------------- |\n| 1         | 2                    | 0.11 s                | 2                         | 0                  | 0                      | 0                  | 1                    | 0    | 0               |\n| 2         | 1                    | 50.13 s               | 0                         | 1                  | 1                      | 1                  | 1                    | 0    | 0               |\n| 3         | 3                    | 44.66 s               | 0                         | 3                  | 4                      | 4                  | 1                    | 0    | 0               |\n| 4         | 2                    | 36.88 s               | 0                         | 2                  | 6                      | 6                  | 1                    | 0    | 0               |\n| 5         | 3                    | 54.64 s               | 0                         | 3                  | 9                      | 9                  | 1                    | 0    | 0               |\n| 6         | 2                    | 44.82 s               | 0                         | 2                  | 11                     | 11                 | 1                    | 0    | 11              |\n| 7         | 2                    | 47.65 s               | 0                         | 2                  | 2                      | 2                  | 1                    | 0    | 0               |\n| 8         | 3                    | 42.17 s               | 0                         | 3                  | 5                      | 5                  | 1                    | 0    | 0               |\n| 9         | 2                    | 44.75 s               | 0                         | 2                  | 7                      | 7                  | 1                    | 0    | 0               |\n| 10        | 3                    | 36.41 s               | 0                         | 3                  | 10                     | 10                 | 1                    | 0    | 0               |\n| 11        | 3                    | 45.50 s               | 0                         | 3                  | 13                     | 13                 | 1                    | 0    | 13              |\n| 12        | 1                    | 46.42 s               | 0                         | 1                  | 1                      | 1                  | 1                    | 0    | 0               |\n| 13        | 3                    | 58.77 s               | 0                         | 3                  | 4                      | 4                  | 1                    | 0    | 0               |\n| 14        | 3                    | 45.25 s               | 0                         | 3                  | 7                      | 7                  | 1                    | 0    | 0               |\n| 15        | 2                    | 44.89 s               | 0                         | 2                  | 9                      | 9                  | 1                    | 0    | 0               |\n| 16        | 2                    | 33.60 s               | 0                         | 2                  | 11                     | 11                 | 1                    | 0    | 11              |\n| 17        | 2                    | 60.18 s               | 0                         | 2                  | 2                      | 2                  | 1                    | 0    | 0               |\n| 18        | 1                    | 29.51 s               | 0                         | 1                  | 3                      | 3                  | 1                    | 0    | 0               |\n| 19        | 1                    | 45.14 s               | 0                         | 1                  | 4                      | 4                  | 1                    | 0    | 0               |\n| 20        | 3                    | 59.87 s               | 0                         | 3                  | 7                      | 7                  | 1                    | 0    | 0               |"
  },
  {
    "path": ".keda/results_test_k8s_autoscaling_job_count_strategy_default_in_chaos.md",
    "content": "| Iteration | New request sessions | Sessions created time | Sessions failed to create | New pods scaled up | Total running sessions | Total running pods | Max sessions per pod | Gaps | Sessions closed |\n| --------- | -------------------- | --------------------- | ------------------------- | ------------------ | ---------------------- | ------------------ | -------------------- | ---- | --------------- |\n| 1         | 3                    | 0.12 s                | 3                         | 0                  | 0                      | 0                  | 1                    | 0    | 0               |\n| 2         | 3                    | 37.39 s               | 0                         | 3                  | 3                      | 3                  | 1                    | 0    | 3               |\n| 3         | 4                    | 53.51 s               | 0                         | 4                  | 4                      | 4                  | 1                    | 0    | 4               |\n| 4         | 6                    | 60.61 s               | 0                         | 6                  | 6                      | 6                  | 1                    | 0    | 6               |\n| 5         | 6                    | 47.99 s               | 0                         | 6                  | 6                      | 6                  | 1                    | 0    | 6               |\n| 6         | 6                    | 50.42 s               | 0                         | 6                  | 6                      | 6                  | 1                    | 0    | 3               |\n| 7         | 3                    | 39.59 s               | 0                         | 3                  | 6                      | 6                  | 1                    | 0    | 6               |\n| 8         | 4                    | 48.08 s               | 0                         | 4                  | 4                      | 4                  | 1                    | 0    | 4               |\n| 9         | 3                    | 50.00 s               | 0                         | 3                  | 3                      | 3                  | 1                    | 0    | 3               |\n| 10        | 4                    | 41.29 s               | 0                         | 4                  | 4                      | 4                  | 1                    | 0    | 4               |\n| 11        | 4                    | 44.75 s               | 0                         | 4                  | 4                      | 4                  | 1                    | 0    | 4               |\n| 12        | 4                    | 51.30 s               | 0                         | 4                  | 4                      | 4                  | 1                    | 0    | 4               |\n| 13        | 4                    | 58.21 s               | 0                         | 4                  | 4                      | 4                  | 1                    | 0    | 4               |\n| 14        | 3                    | 51.86 s               | 0                         | 3                  | 3                      | 3                  | 1                    | 0    | 3               |\n| 15        | 5                    | 60.19 s               | 0                         | 5                  | 5                      | 5                  | 1                    | 0    | 4               |\n| 16        | 4                    | 59.07 s               | 0                         | 4                  | 5                      | 5                  | 1                    | 0    | 5               |\n| 17        | 4                    | 57.85 s               | 0                         | 4                  | 4                      | 4                  | 1                    | 0    | 4               |\n| 18        | 6                    | 57.36 s               | 0                         | 6                  | 6                      | 6                  | 1                    | 0    | 6               |\n| 19        | 6                    | 51.80 s               | 0                         | 6                  | 6                      | 6                  | 1                    | 0    | 5               |\n| 20        | 6                    | 51.24 s               | 0                         | 6                  | 7                      | 7                  | 1                    | 0    | 7               |"
  },
  {
    "path": ".keda/results_test_k8s_autoscaling_job_count_strategy_default_with_node_max_sessions.md",
    "content": "| Iteration | New request sessions | Sessions created time | Sessions failed to create | New pods scaled up | Total running sessions | Total running pods | Max sessions per pod | Gaps | Sessions closed |\n| --------- | -------------------- | --------------------- | ------------------------- | ------------------ | ---------------------- | ------------------ | -------------------- | ---- | --------------- |\n| 1         | 2                    | 0.15 s                | 2                         | 0                  | 0                      | 0                  | 3                    | 0    | 0               |\n| 2         | 3                    | 66.47 s               | 0                         | 1                  | 3                      | 1                  | 3                    | 0    | 0               |\n| 3         | 3                    | 46.40 s               | 0                         | 3                  | 6                      | 6                  | 3                    | 12   | 0               |\n| 4         | 2                    | 30.37 s               | 0                         | 2                  | 8                      | 8                  | 3                    | 16   | 0               |\n| 5         | 3                    | 51.06 s               | 0                         | 2                  | 11                     | 10                 | 3                    | 19   | 0               |\n| 6         | 2                    | 39.31 s               | 0                         | 2                  | 13                     | 13                 | 3                    | 26   | 13              |\n| 7         | 3                    | 47.29 s               | 0                         | 2                  | 3                      | 11                 | 3                    | 30   | 0               |\n| 8         | 3                    | 10.26 s               | 0                         | 0                  | 6                      | 11                 | 3                    | 27   | 0               |\n| 9         | 2                    | 21.23 s               | 0                         | 0                  | 8                      | 13                 | 3                    | 31   | 0               |\n| 10        | 1                    | 5.77 s                | 0                         | 0                  | 9                      | 13                 | 3                    | 30   | 0               |\n| 11        | 2                    | 6.57 s                | 0                         | 0                  | 11                     | 13                 | 3                    | 28   | 11              |\n| 12        | 1                    | 20.68 s               | 0                         | 0                  | 1                      | 11                 | 3                    | 32   | 0               |\n| 13        | 2                    | 11.32 s               | 0                         | 0                  | 3                      | 11                 | 3                    | 30   | 0               |\n| 14        | 1                    | 6.01 s                | 0                         | 0                  | 4                      | 11                 | 3                    | 29   | 0               |\n| 15        | 1                    | 17.36 s               | 0                         | 0                  | 5                      | 11                 | 3                    | 28   | 0               |\n| 16        | 3                    | 33.29 s               | 0                         | 0                  | 8                      | 11                 | 3                    | 25   | 8               |\n| 17        | 3                    | 20.68 s               | 0                         | 0                  | 3                      | 9                  | 3                    | 24   | 0               |\n| 18        | 1                    | 9.10 s                | 0                         | 0                  | 4                      | 9                  | 3                    | 23   | 0               |\n| 19        | 3                    | 18.31 s               | 0                         | 2                  | 7                      | 11                 | 3                    | 26   | 0               |\n| 20        | 2                    | 30.45 s               | 0                         | 1                  | 9                      | 12                 | 3                    | 27   | 0               |"
  },
  {
    "path": ".keda/scalers/selenium-grid-scaler.md",
    "content": "+++\ntitle = \"Selenium Grid Scaler\"\navailability = \"v2.4+\"\nmaintainer = \"Volvo Cars, SeleniumHQ\"\ncategory = \"Testing\"\ndescription = \"Scales Selenium browser nodes based on number of requests waiting in session queue\"\ngo_file = \"selenium_grid_scaler\"\n+++\n\n### Trigger Specification\n\nThis specification describes the `selenium-grid` trigger that scales browser nodes based on number of requests in session queue and the max sessions per grid.\n\nThe scaler creates one browser node per pending request in session queue, divided by the max amount of sessions that can run in parallel. You will have to create one trigger per browser capability that you would like to support in your Selenium Grid.\n\nThe below is an example trigger configuration with default values represent.\n\n```yaml\ntriggers:\n  - type: selenium-grid\n    metadata:\n      url: 'http://selenium-hub:4444/graphql' # Required. Can be ommitted if specified via TriggerAuthentication/ClusterTriggerAuthentication.\n      browserName: ''  # Optional. Required to be matched with the request in queue and Node stereotypes (Similarly for `browserVersion` and `platformName`).\n      browserVersion: '' # Optional.\n      platformName: '' # Optional.\n      unsafeSsl: false # Optional.\n      activationThreshold: 0 # Optional.\n      nodeMaxSessions: 1 # Optional.\n      enableManagedDownloads: true # Optional.\n      capabilities: '' # Optional.\n```\n\n**Parameter list:**\n\n- `url` - Graphql url of your Selenium Grid. Refer to the Selenium Grid's documentation [here](https://www.selenium.dev/documentation/en/grid/grid_4/graphql_support/) to for more info. If endpoint requires authentication, you can use `TriggerAuthentication` to provide the credentials instead of embedding in the URL.\n- `browserName` - Name of browser that usually gets passed in the browser capability. Refer to the [Selenium Grid's](https://www.selenium.dev/documentation/en/getting_started_with_webdriver/browsers/) and [WebdriverIO's](https://webdriver.io/docs/options/#capabilities) documentation for more info. (Optional)\n- `sessionBrowserName` -  Name of the browser when it is an active session, only set if `BrowserName` changes between the queue and the active session. See the Edge example below for further detail. (Optional)\n- `browserVersion` - Version of browser that usually gets passed in the browser capability. Refer to the [Selenium Grid's](https://www.selenium.dev/documentation/en/getting_started_with_webdriver/browsers/) and [WebdriverIO's](https://webdriver.io/docs/options/#capabilities) documentation for more info. (Optional)\n- `unsafeSsl` - Skip certificate validation when connecting over HTTPS. (Values: `true`, `false`, Default: `false`, Optional)\n- `activationThreshold` - Target value for activating the scaler. Learn more about activation [here](./../concepts/scaling-deployments.md#activating-and-scaling-thresholds). (Default: `0`, Optional)\n- `platformName` - Name of the browser platform. Refer to the [Selenium Grid's](https://www.selenium.dev/documentation/en/getting_started_with_webdriver/browsers/) and [WebdriverIO's](https://webdriver.io/docs/options/#capabilities) documentation for more info. (Optional)\n- `nodeMaxSessions` - Number of maximum sessions that can run in parallel on a Node. Update this parameter align with node config `--max-sessions` (`SE_NODE_MAX_SESSIONS`) to have the correct scaling behavior. (Default: `1`, Optional).\n- `enableManagedDownloads`- Set this for Node enabled to auto manage files downloaded for a given session on the Node. When the client requests enabling this feature, it can only be assigned to the Node that also enabled it. Otherwise, the request will wait until it timed out. (Default: `true`, Optional).\n- `capabilities` - Add more custom capabilities for matching specific Nodes. It should be in JSON string, see [example](https://www.selenium.dev/documentation/grid/configuration/toml_options/#setting-custom-capabilities-for-matching-specific-nodes) (Optional)\n\n**Trigger Authentication**\n- `username` - Username for basic authentication in GraphQL endpoint instead of embedding in the URL. (Optional)\n- `password` - Password for basic authentication in GraphQL endpoint instead of embedding in the URL. (Optional)\n- `authType` - Type of authentication to be used. This can be set to `Bearer` or `OAuth2` in case Selenium Grid behind an Ingress proxy with other authentication types. (Optional)\n- `accessToken` - Access token. This is required when `authType` is set a value. (Optional)\n\n### Example\n\n---\n#### Selenium Grid scaler trigger metadata for Chrome browser with `platformNane` and empty `browserVersion`\n\nHere is a full example of scaled object definition using Selenium Grid trigger:\n\n```yaml\nkind: Deployment\nmetadata:\n  name: selenium-node-chrome\n  labels:\n    deploymentName: selenium-node-chrome\nspec:\n  replicas: 1\n  template:\n    spec:\n      containers:\n      - name: selenium-node-chrome\n        image: selenium/node-chrome:latest\n        ports:\n        - containerPort: 5555\n        env:\n        - name: SE_NODE_BROWSER_VERSION\n          value: ''\n        - name: SE_NODE_PLATFORM_NAME\n          value: 'Linux'\n\n---\n\napiVersion: keda.sh/v1alpha1\nkind: ScaledObject\nmetadata:\n  name: selenium-grid-scaledobject-chrome\n  namespace: keda\n  labels:\n    deploymentName: selenium-node-chrome\nspec:\n  maxReplicaCount: 8\n  scaleTargetRef:\n    name: selenium-node-chrome\n  triggers:\n    - type: selenium-grid\n      metadata:\n        url: 'http://selenium-hub:4444/graphql'\n        browserName: 'chrome'\n        platformName: 'Linux'\n        unsafeSsl: 'true'\n```\n\nNoted:\n- From `v2.16.1+`, the trigger metadata `browserVersion`, `platformName` is recommended to be set explicitly to have the correct scaling behavior (especially when your Grid includes autoscaling Nodes, non-autoscaling Nodes, relay Nodes, etc.). Besides that, in client binding, it is also recommended to set the `browserVersion`, `platformName` to align with the trigger metadata. Please see below examples for more details.\n\nThe above example will create Chrome browser nodes equal to the requests pending in session queue for Chrome browser, which is created from client. For example in Python binding\n\n```python\noptions = ChromeOptions()\noptions.set_capability('platformName', 'Linux')\ndriver = webdriver.Remote(options=options, command_executor=SELENIUM_GRID_URL)\n```\n\nWith above script, the request is sent to Grid. Via GraphQL response, it looks like\n\n```json\n{\n  \"data\": {\n    \"grid\": {\n      \"sessionCount\": 0,\n      \"maxSession\": 0,\n      \"totalSlots\": 0\n    },\n    \"nodesInfo\": {\n      \"nodes\": []\n    },\n    \"sessionsInfo\": {\n      \"sessionQueueRequests\": [\n        \"{\\\"browserName\\\": \\\"chrome\\\", \\\"platformName\\\": \\\"linux\\\"}\"\n      ]\n    }\n  }\n}\n```\n\nIn Node deployment spec, there is environment variable `SE_NODE_BROWSER_VERSION` which can be set to empty. This is used to unset `browserVersion` in Node stereotypes (it is in project [docker-selenium](https://github.com/SeleniumHQ/docker-selenium) setting short browser build number by default), which is expected to match with the request capabilities in queue and scaler trigger metadata.\n\nWhen the request capabilities match with scaler trigger metadata, the scaler will create a new Node and connect to the Hub. Now the GraphQL response looks like\n\n```json\n{\n  \"data\": {\n    \"grid\": {\n      \"sessionCount\": 0,\n      \"maxSession\": 1,\n      \"totalSlots\": 1\n    },\n    \"nodesInfo\": {\n      \"nodes\": [\n        {\n          \"id\": \"UUID-of-Node\",\n          \"status\": \"UP\",\n          \"sessionCount\": 0,\n          \"maxSession\": 1,\n          \"slotCount\": 1,\n          \"stereotypes\": \"[{\\\"slots\\\": 1, \\\"stereotype\\\": {\\\"browserName\\\": \\\"chrome\\\", \\\"browserVersion\\\": \\\"\\\", \\\"platformName\\\": \\\"Linux\\\"}}]\",\n          \"sessions\": []\n        }\n      ]\n    },\n    \"sessionsInfo\": {\n      \"sessionQueueRequests\": [\n        \"{\\\"browserName\\\": \\\"chrome\\\", \\\"platformName\\\": \\\"linux\\\"}\"\n      ]\n    }\n  }\n}\n```\n\nNow, the request can be picked up by the Node and the session is created. Session queue will be cleared and the scaler will not create a new Node until the next request comes in.\n\n---\n#### Selenium Grid scaler trigger metadata for Chrome browser with `browserVersion` and `platformName`\n\nMoreover, at the same time, you can create one more scaled object for Chrome browser request with specific `browserVersion`. For example\n\n```yaml\nkind: Deployment\nmetadata:\n  name: selenium-node-chrome-131\n  labels:\n    deploymentName: selenium-node-chrome-131\nspec:\n  replicas: 1\n  template:\n    spec:\n      containers:\n      - name: selenium-node-chrome\n        image: selenium/node-chrome:131.0\n        ports:\n        - containerPort: 5555\n        env:\n        - name: SE_NODE_BROWSER_VERSION\n          value: '131.0'\n        - name: SE_NODE_PLATFORM_NAME\n          value: 'Linux'\n\n---\n\napiVersion: keda.sh/v1alpha1\nkind: ScaledObject\nmetadata:\n  name: selenium-grid-scaledobject-chrome-131\n  namespace: keda\n  labels:\n    deploymentName: selenium-node-chrome-131\nspec:\n  maxReplicaCount: 8\n  scaleTargetRef:\n    name: selenium-node-chrome-131\n  triggers:\n    - type: selenium-grid\n      metadata:\n        url: 'http://selenium-hub:4444/graphql'\n        browserName: 'chrome'\n        platformName: 'Linux'\n        browserVersion: '131.0'\n        unsafeSsl: 'true'\n```\n\nThe request to trigger this scaler should be\n\n```python\noptions = ChromeOptions()\noptions.set_capability('platformName', 'Linux')\noptions.set_capability('browserVersion', '131.0')\ndriver = webdriver.Remote(options=options, command_executor=SELENIUM_GRID_URL)\n```\n\n#### Selenium Grid scaler trigger metadata with Node `enableManagedDownloads`\n\nIn image `selenium/node-chrome`, the environment variable `SE_NODE_ENABLE_MANAGED_DOWNLOADS` is used to append the `--enable-managed-downloads` CLI option to the Node. This option is used to enable the Node to auto manage files downloaded for a given session on the Node. The request with enabling this feature can only be assigned to the Node also enabled it, otherwise the request will be waited until request timed out.\n\n```yaml\nkind: Deployment\nmetadata:\n  name: selenium-node-chrome\n  labels:\n    deploymentName: selenium-node-chrome\nspec:\n  replicas: 1\n  template:\n    spec:\n      containers:\n        - name: selenium-node-chrome\n          image: selenium/node-chrome:132.0\n          ports:\n          - containerPort: 5555\n          env:\n          - name: SE_NODE_BROWSER_VERSION\n            value: '132.0'\n          - name: SE_NODE_PLATFORM_NAME\n            value: 'Linux'\n          # https://www.selenium.dev/documentation/grid/configuration/cli_options/#node\n          - name: SE_NODE_ENABLE_MANAGED_DOWNLOADS\n            value: \"true\"\n\n---\n\napiVersion: keda.sh/v1alpha1\nkind: ScaledObject\nmetadata:\n  name: selenium-grid-scaledobject-chrome-132\n  namespace: keda\n  labels:\n    deploymentName: selenium-node-chrome-132\nspec:\n  maxReplicaCount: 8\n  scaleTargetRef:\n    name: selenium-node-chrome-132\n  triggers:\n    - type: selenium-grid\n      metadata:\n        url: 'http://selenium-hub:4444/graphql'\n        browserName: 'chrome'\n        platformName: 'Linux'\n        browserVersion: '132.0'\n        unsafeSsl: 'true'\n        # Scaler trigger param configuration should be aligned with Node stereotype.\n        enableManagedDownloads: \"true\"\n```\n\nThe request to trigger this scaler should be\n\n```python\noptions = ChromeOptions()\noptions.set_capability('platformName', 'Linux')\noptions.set_capability('browserVersion', '132.0')\n# https://www.selenium.dev/documentation/webdriver/drivers/remote_webdriver/#enable-downloads-in-the-grid\noptions.enable_downloads = True\ndriver = webdriver.Remote(options=options, command_executor=SELENIUM_GRID_URL)\n```\n\n---\n#### Selenium Grid scaler trigger metadata with extra `capabilities`\n\nFor an advanced use case, you also can set custom capabilities for matching specific Nodes in the scaler trigger metadata. For example\n\n```yaml\nkind: Deployment\nmetadata:\n  name: selenium-node-chrome\n  labels:\n    deploymentName: selenium-node-chrome\nspec:\n  replicas: 1\n  template:\n    spec:\n      containers:\n        - name: selenium-node-chrome\n          image: selenium/node-chrome:132.0\n          ports:\n          - containerPort: 5555\n          env:\n          - name: SE_NODE_BROWSER_VERSION\n            value: '132.0'\n          - name: SE_NODE_PLATFORM_NAME\n            value: 'Linux'\n          # Append custom capabilities to Node stereotype. See: https://github.com/SeleniumHQ/docker-selenium?tab=readme-ov-file#node-configuration-options\n          - name: SE_NODE_STEREOTYPE_EXTRA\n            value: \"{\\\"myApp:version\\\":\\\"beta\\\", \\\"myApp:publish:\\\":\\\"public\\\"}\"\n\n---\n\napiVersion: keda.sh/v1alpha1\nkind: ScaledObject\nmetadata:\n  name: selenium-grid-scaledobject-chrome-132\n  namespace: keda\n  labels:\n    deploymentName: selenium-node-chrome-132\nspec:\n  maxReplicaCount: 8\n  scaleTargetRef:\n    name: selenium-node-chrome-132\n  triggers:\n    - type: selenium-grid\n      metadata:\n        url: 'http://selenium-hub:4444/graphql'\n        browserName: 'chrome'\n        platformName: 'Linux'\n        browserVersion: '132.0'\n        unsafeSsl: 'true'\n        # Add custom capabilities for matching specific Nodes in scaler trigger metadata. See: https://github.com/kedacore/keda/pull/6536\n        capabilities: \"{\\\"myApp:version\\\":\\\"beta\\\", \\\"myApp:publish:\\\":\\\"public\\\"}\"\n```\n\nThe request to trigger this scaler should be\n\n```python\noptions = ChromeOptions()\noptions.set_capability('platformName', 'Linux')\noptions.set_capability('browserVersion', '132.0')\n# Add custom capabilities for matching specific Nodes in client binding. See: https://www.selenium.dev/documentation/grid/configuration/toml_options/#setting-custom-capabilities-for-matching-specific-nodes\noptions.set_capability('myApp:version', 'beta')\noptions.set_capability('myApp:publish', 'public')\ndriver = webdriver.Remote(options=options, command_executor=SELENIUM_GRID_URL)\n```\n\n---\n#### Selenium Grid scaler trigger metadata for Firefox browser\n\n```yaml\nkind: Deployment\nmetadata:\n  name: selenium-node-firefox\n  labels:\n    deploymentName: selenium-node-firefox\nspec:\n  replicas: 1\n  template:\n    spec:\n      containers:\n        - name: selenium-node-firefox\n          image: selenium/node-firefox:latest\n          ports:\n          - containerPort: 5555\n          env:\n          - name: SE_NODE_BROWSER_VERSION\n            value: ''\n          - name: SE_NODE_PLATFORM_NAME\n            value: 'Linux'\n\n---\n\napiVersion: keda.sh/v1alpha1\nkind: ScaledObject\nmetadata:\n  name: selenium-grid-scaledobject-firefox\n  namespace: keda\n  labels:\n    deploymentName: selenium-node-firefox\nspec:\n  maxReplicaCount: 8\n  scaleTargetRef:\n    name: selenium-node-firefox\n  triggers:\n    - type: selenium-grid\n      metadata:\n        url: 'http://selenium-hub:4444/graphql'\n        browserName: 'firefox'\n        platformName: 'Linux'\n        unsafeSsl: 'true'\n```\n\nRequest to trigger the scaler\n\n```python\noptions = FirefoxOptions()\noptions.set_capability('platformName', 'Linux')\ndriver = webdriver.Remote(options=options, command_executor=SELENIUM_GRID_URL)\n```\n\n---\n#### Selenium Grid scaler trigger metadata for Edge browser\n\nSimilarly, for Edge. Note that for Edge you must set the `sessionBrowserName` to `msedge` inorder for scaling to work properly.\n\n```yaml\nkind: Deployment\nmetadata:\n  name: selenium-node-edge\n  labels:\n    deploymentName: selenium-node-edge\nspec:\n  replicas: 1\n  template:\n    spec:\n      containers:\n        - name: selenium-node-edge\n          image: selenium/node-edge:latest\n          ports:\n          - containerPort: 5555\n          env:\n          - name: SE_NODE_BROWSER_VERSION\n            value: ''\n          - name: SE_NODE_PLATFORM_NAME\n            value: 'Linux'\n\n---\n\napiVersion: keda.sh/v1alpha1\nkind: ScaledObject\nmetadata:\n  name: selenium-grid-scaledobject-edge\n  namespace: keda\n  labels:\n    deploymentName: selenium-node-edge\nspec:\n  maxReplicaCount: 8\n  scaleTargetRef:\n    name: selenium-node-edge\n  triggers:\n    - type: selenium-grid\n      metadata:\n        url: 'http://selenium-hub:4444/graphql'\n        browserName: 'MicrosoftEdge'\n        sessionBrowserName: 'msedge'\n        platformName: 'Linux'\n        unsafeSsl: 'true'\n```\n\nRequest to trigger the scaler\n\n```python\noptions = EdgeOptions()\noptions.set_capability('platformName', 'Linux')\ndriver = webdriver.Remote(options=options, command_executor=SELENIUM_GRID_URL)\n```\n\n---\n#### Selenium Grid scaler trigger metadata for Chrome browser with `nodeMaxSessions`\n\nIn case you want to scale from 0 (`minReplicaCount: 0`), and browser nodes are configured different `--max-sessions` greater than 1, you can set `nodeMaxSessions` for scaler align with number of slots available per node to have the correct scaling behavior.\n\n```yaml\nkind: Deployment\nmetadata:\n  name: selenium-node-chrome\n  labels:\n    deploymentName: selenium-node-chrome\nspec:\n  replicas: 1\n  template:\n    spec:\n      containers:\n      - name: selenium-node-chrome\n        image: selenium/node-chrome:latest\n        ports:\n        - containerPort: 5555\n        env:\n        - name: SE_NODE_BROWSER_VERSION\n          value: ''\n        - name: SE_NODE_PLATFORM_NAME\n          value: 'Linux'\n        - name: SE_NODE_OVERRIDE_MAX_SESSIONS\n          value: 'true'\n        - name: SE_NODE_MAX_SESSIONS\n          value: '4'\n\n---\n\napiVersion: keda.sh/v1alpha1\nkind: ScaledObject\nmetadata:\n  name: selenium-grid-chrome-scaledobject\n  namespace: keda\n  labels:\n    deploymentName: selenium-node-chrome\nspec:\n  maxReplicaCount: 8\n  scaleTargetRef:\n    name: selenium-node-chrome\n  triggers:\n    - type: selenium-grid\n      metadata:\n        url: 'http://selenium-hub:4444/graphql'\n        browserName: 'chrome'\n        platformName: 'Linux'\n        nodeMaxSessions: 4\n        unsafeSsl: 'true'\n```\n\n### Authentication Parameters\n\nIt is possible to specify the Graphql url of your Selenium Grid using authentication parameters. This useful if you have enabled Selenium Grid's Basic HTTP Authentication and would like to keep your credentials secure.\n\n- `url` - Graphql url of your Selenium Grid. Refer to the Selenium Grid's documentation [here](https://www.selenium.dev/documentation/en/grid/grid_4/graphql_support/) for more info.\n- `username` - Username for basic authentication in GraphQL endpoint instead of embedding in the URL. (Optional)\n- `password` - Password for basic authentication in GraphQL endpoint instead of embedding in the URL. (Optional)\n\n```yaml\napiVersion: v1\nkind: Secret\nmetadata:\n  name: selenium-grid-secret\n  namespace: keda\ntype: Opaque\ndata:\n  graphql-url: base64 encoded value of GraphQL URL\n  graphql-username: base64 encoded value of GraphQL Username\n  graphql-password: base64 encoded value of GraphQL Password\n---\napiVersion: keda.sh/v1alpha1\nkind: TriggerAuthentication\nmetadata:\n  name: keda-trigger-auth-selenium-grid-secret\n  namespace: keda\nspec:\n  secretTargetRef:\n  - parameter: url\n    name: selenium-grid-secret\n    key: graphql-url\n  - parameter: username\n    name: selenium-grid-secret\n    key: graphql-username\n  - parameter: password\n    name: selenium-grid-secret\n    key: graphql-password\n---\napiVersion: keda.sh/v1alpha1\nkind: ScaledObject\nmetadata:\n  name: selenium-grid-chrome-scaledobject\n  namespace: keda\n  labels:\n    deploymentName: selenium-node-chrome\nspec:\n  maxReplicaCount: 8\n  scaleTargetRef:\n    name: selenium-node-chrome\n  triggers:\n    - type: selenium-grid\n      metadata:\n        browserName: 'chrome'\n        platformName: 'Linux'\n        unsafeSsl: 'true'\n      authenticationRef:\n        name: keda-trigger-auth-selenium-grid-secret\n```\n"
  },
  {
    "path": ".keda/scalers/selenium_grid_scaler.go",
    "content": "package scalers\n\nimport (\n\t\"bytes\"\n\t\"context\"\n\t\"encoding/json\"\n\t\"errors\"\n\t\"fmt\"\n\t\"io\"\n\t\"net/http\"\n\t\"strings\"\n\n\t\"github.com/go-logr/logr\"\n\tv2 \"k8s.io/api/autoscaling/v2\"\n\t\"k8s.io/metrics/pkg/apis/external_metrics\"\n\n\t\"github.com/kedacore/keda/v2/pkg/scalers/scalersconfig\"\n\tkedautil \"github.com/kedacore/keda/v2/pkg/util\"\n)\n\ntype seleniumGridScaler struct {\n\tmetricType v2.MetricTargetType\n\tmetadata   *seleniumGridScalerMetadata\n\thttpClient *http.Client\n\tlogger     logr.Logger\n}\n\ntype seleniumGridScalerMetadata struct {\n\ttriggerIndex int\n\n\tURL                    string `keda:\"name=url,                      order=authParams;triggerMetadata\"`\n\tAuthType               string `keda:\"name=authType,                 order=authParams;resolvedEnv, optional\"`\n\tUsername               string `keda:\"name=username,                 order=authParams;resolvedEnv, optional\"`\n\tPassword               string `keda:\"name=password,                 order=authParams;resolvedEnv, optional\"`\n\tAccessToken            string `keda:\"name=accessToken,              order=authParams;resolvedEnv, optional\"`\n\tBrowserName            string `keda:\"name=browserName,              order=triggerMetadata, optional\"`\n\tSessionBrowserName     string `keda:\"name=sessionBrowserName,       order=triggerMetadata, optional\"`\n\tBrowserVersion         string `keda:\"name=browserVersion,           order=triggerMetadata, optional\"`\n\tPlatformName           string `keda:\"name=platformName,             order=triggerMetadata, optional\"`\n\tActivationThreshold    int64  `keda:\"name=activationThreshold,      order=triggerMetadata, optional\"`\n\tUnsafeSsl              bool   `keda:\"name=unsafeSsl,                order=triggerMetadata, default=false\"`\n\tNodeMaxSessions        int64  `keda:\"name=nodeMaxSessions,          order=triggerMetadata, default=1\"`\n\tEnableManagedDownloads bool   `keda:\"name=enableManagedDownloads,   order=triggerMetadata, default=true\"`\n\tCapabilities           string `keda:\"name=capabilities,             order=triggerMetadata, optional\"`\n\n\tTargetValue int64\n}\n\ntype Platform struct {\n\tname   string\n\tfamily *Platform\n}\n\ntype SeleniumResponse struct {\n\tData Data `json:\"data\"`\n}\n\ntype Data struct {\n\tGrid         Grid         `json:\"grid\"`\n\tNodesInfo    NodesInfo    `json:\"nodesInfo\"`\n\tSessionsInfo SessionsInfo `json:\"sessionsInfo\"`\n}\n\ntype Grid struct {\n\tSessionCount int64 `json:\"sessionCount\"`\n\tMaxSession   int64 `json:\"maxSession\"`\n\tTotalSlots   int64 `json:\"totalSlots\"`\n}\n\ntype NodesInfo struct {\n\tNodes Nodes `json:\"nodes\"`\n}\n\ntype SessionsInfo struct {\n\tSessionQueueRequests []string `json:\"sessionQueueRequests\"`\n}\n\ntype Nodes []struct {\n\tID           string   `json:\"id\"`\n\tStatus       string   `json:\"status\"`\n\tSessionCount int64    `json:\"sessionCount\"`\n\tMaxSession   int64    `json:\"maxSession\"`\n\tSlotCount    int64    `json:\"slotCount\"`\n\tStereotypes  string   `json:\"stereotypes\"`\n\tSessions     Sessions `json:\"sessions\"`\n}\n\ntype ReservedNodes struct {\n\tID         string `json:\"id\"`\n\tMaxSession int64  `json:\"maxSession\"`\n\tSlotCount  int64  `json:\"slotCount\"`\n}\n\ntype Sessions []struct {\n\tID           string `json:\"id\"`\n\tCapabilities string `json:\"capabilities\"`\n\tSlot         Slot   `json:\"slot\"`\n}\n\ntype Slot struct {\n\tID         string `json:\"id\"`\n\tStereotype string `json:\"stereotype\"`\n}\n\ntype Stereotypes []struct {\n\tSlots      int64                  `json:\"slots\"`\n\tStereotype map[string]interface{} `json:\"stereotype\"`\n}\n\nconst EnableManagedDownloadsCapability = \"se:downloadsEnabled\"\n\nvar ExtensionCapabilitiesPrefixes = []string{\"goog:\", \"moz:\", \"ms:\", \"se:\"}\nvar FunctionCapabilitiesPrefixes = []string{EnableManagedDownloadsCapability}\n\n// Follow pattern in https://github.com/SeleniumHQ/selenium/blob/trunk/java/src/org/openqa/selenium/grid/data/DefaultSlotMatcher.java\nfunc filterCapabilities(capabilities map[string]interface{}) map[string]interface{} {\n\tfilteredCapabilities := map[string]interface{}{}\n\n\tfor key, value := range capabilities {\n\t\tretain := true\n\t\tfor _, excludePrefix := range ExtensionCapabilitiesPrefixes {\n\t\t\tif strings.HasPrefix(key, excludePrefix) {\n\t\t\t\tretain = false\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfor _, prefix := range FunctionCapabilitiesPrefixes {\n\t\t\tif strings.HasPrefix(key, prefix) {\n\t\t\t\tretain = true\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tif retain {\n\t\t\tfilteredCapabilities[key] = value\n\t\t}\n\t}\n\n\treturn filteredCapabilities\n}\n\nfunc NewSeleniumGridScaler(config *scalersconfig.ScalerConfig) (Scaler, error) {\n\tmetricType, err := GetMetricTargetType(config)\n\tif err != nil {\n\t\treturn nil, fmt.Errorf(\"error getting scaler metric type: %w\", err)\n\t}\n\n\tlogger := InitializeLogger(config, \"selenium_grid_scaler\")\n\n\tmeta, err := parseSeleniumGridScalerMetadata(config)\n\n\tif err != nil {\n\t\treturn nil, fmt.Errorf(\"error parsing selenium grid metadata: %w\", err)\n\t}\n\n\thttpClient := kedautil.CreateHTTPClient(config.GlobalHTTPTimeout, meta.UnsafeSsl)\n\n\treturn &seleniumGridScaler{\n\t\tmetricType: metricType,\n\t\tmetadata:   meta,\n\t\thttpClient: httpClient,\n\t\tlogger:     logger,\n\t}, nil\n}\n\nfunc parseCapabilitiesToMap(_capabilities string) (map[string]interface{}, error) {\n\tcapabilities := map[string]interface{}{}\n\tif _capabilities != \"\" {\n\t\tif err := json.Unmarshal([]byte(_capabilities), &capabilities); err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t}\n\treturn capabilities, nil\n}\n\nfunc parseSeleniumGridScalerMetadata(config *scalersconfig.ScalerConfig) (*seleniumGridScalerMetadata, error) {\n\tmeta := &seleniumGridScalerMetadata{\n\t\tTargetValue: 1,\n\t}\n\n\tif err := config.TypedConfig(meta); err != nil {\n\t\treturn nil, fmt.Errorf(\"error parsing prometheus metadata: %w\", err)\n\t}\n\n\tmeta.triggerIndex = config.TriggerIndex\n\n\tif meta.SessionBrowserName == \"\" {\n\t\tmeta.SessionBrowserName = meta.BrowserName\n\t}\n\n\treturn meta, nil\n}\n\n// No cleanup required for Selenium Grid scaler\nfunc (s *seleniumGridScaler) Close(context.Context) error {\n\tif s.httpClient != nil {\n\t\ts.httpClient.CloseIdleConnections()\n\t}\n\treturn nil\n}\n\nfunc (s *seleniumGridScaler) GetMetricsAndActivity(ctx context.Context, metricName string) ([]external_metrics.ExternalMetricValue, bool, error) {\n\tnewRequestNodes, onGoingSessions, err := s.getSessionsQueueLength(ctx, s.logger)\n\tif err != nil {\n\t\treturn []external_metrics.ExternalMetricValue{}, false, fmt.Errorf(\"error requesting selenium grid endpoint: %w\", err)\n\t}\n\n\tmetric := GenerateMetricInMili(metricName, float64(newRequestNodes+onGoingSessions))\n\n\treturn []external_metrics.ExternalMetricValue{metric}, (newRequestNodes + onGoingSessions) > s.metadata.ActivationThreshold, nil\n}\n\nfunc buildSeleniumGridMetricName(meta *seleniumGridScalerMetadata) string {\n\tnameParts := []string{\"selenium-grid\"}\n\tif meta.BrowserName != \"\" {\n\t\tnameParts = append(nameParts, meta.BrowserName)\n\t}\n\tif meta.BrowserVersion != \"\" {\n\t\tnameParts = append(nameParts, meta.BrowserVersion)\n\t}\n\tif meta.PlatformName != \"\" {\n\t\tnameParts = append(nameParts, meta.PlatformName)\n\t}\n\treturn strings.Join(nameParts, \"-\")\n}\n\nfunc (s *seleniumGridScaler) GetMetricSpecForScaling(context.Context) []v2.MetricSpec {\n\tmetricName := kedautil.NormalizeString(buildSeleniumGridMetricName(s.metadata))\n\texternalMetric := &v2.ExternalMetricSource{\n\t\tMetric: v2.MetricIdentifier{\n\t\t\tName: GenerateMetricNameWithIndex(s.metadata.triggerIndex, metricName),\n\t\t},\n\t\tTarget: GetMetricTarget(s.metricType, s.metadata.TargetValue),\n\t}\n\tmetricSpec := v2.MetricSpec{\n\t\tExternal: externalMetric, Type: externalMetricType,\n\t}\n\treturn []v2.MetricSpec{metricSpec}\n}\n\nfunc (s *seleniumGridScaler) getSessionsQueueLength(ctx context.Context, logger logr.Logger) (int64, int64, error) {\n\tbody, err := json.Marshal(map[string]string{\n\t\t\"query\": \"{ grid { sessionCount, maxSession, totalSlots }, nodesInfo { nodes { id, status, sessionCount, maxSession, slotCount, stereotypes, sessions { id, capabilities, slot { id, stereotype } } } }, sessionsInfo { sessionQueueRequests } }\",\n\t})\n\n\tif err != nil {\n\t\treturn -1, -1, err\n\t}\n\n\treq, err := http.NewRequestWithContext(ctx, \"POST\", s.metadata.URL, bytes.NewBuffer(body))\n\tif err != nil {\n\t\treturn -1, -1, err\n\t}\n\n\tif (s.metadata.AuthType == \"\" || strings.EqualFold(s.metadata.AuthType, \"Basic\")) && s.metadata.Username != \"\" && s.metadata.Password != \"\" {\n\t\treq.SetBasicAuth(s.metadata.Username, s.metadata.Password)\n\t} else if !strings.EqualFold(s.metadata.AuthType, \"Basic\") && s.metadata.AccessToken != \"\" {\n\t\treq.Header.Set(\"Authorization\", fmt.Sprintf(\"%s %s\", s.metadata.AuthType, s.metadata.AccessToken))\n\t}\n\n\tres, err := s.httpClient.Do(req)\n\tif err != nil {\n\t\treturn -1, -1, err\n\t}\n\n\tif res.StatusCode != http.StatusOK {\n\t\tmsg := fmt.Sprintf(\"Selenium Grid returned response status code: %d\", res.StatusCode)\n\t\tlogger.Error(errors.New(msg), msg)\n\t\treturn -1, -1, errors.New(msg)\n\t}\n\n\tdefer res.Body.Close()\n\tb, err := io.ReadAll(res.Body)\n\tif err != nil {\n\t\tlogger.Error(err, fmt.Sprintf(\"Error when reading Selenium Grid response body: %s\", err))\n\t\treturn -1, -1, err\n\t}\n\tnewRequestNodes, onGoingSession, err := getCountFromSeleniumResponse(b, s.metadata.BrowserName, s.metadata.BrowserVersion, s.metadata.SessionBrowserName, s.metadata.PlatformName, s.metadata.NodeMaxSessions, s.metadata.EnableManagedDownloads, s.metadata.Capabilities, logger)\n\tif err != nil {\n\t\tlogger.Error(err, fmt.Sprintf(\"Error when getting count from Selenium Grid response: %s\", err))\n\t\treturn -1, -1, err\n\t}\n\treturn newRequestNodes, onGoingSession, nil\n}\n\nfunc getCapability(capability map[string]interface{}, key string) string {\n\tvalue, ok := capability[key]\n\tif ok {\n\t\treturn value.(string)\n\t}\n\treturn \"\"\n}\n\nfunc getBrowserName(capability map[string]interface{}) string {\n\treturn getCapability(capability, \"browserName\")\n}\n\nfunc getBrowserVersion(capability map[string]interface{}) string {\n\treturn getCapability(capability, \"browserVersion\")\n}\n\nfunc getPlatformName(capability map[string]interface{}) string {\n\treturn getCapability(capability, \"platformName\")\n}\n\nfunc countMatchingSlotsStereotypes(stereotypes Stereotypes, browserName string, browserVersion string, sessionBrowserName string, platformName string, capabilities map[string]interface{}) int64 {\n\tvar matchingSlots int64\n\tfor _, stereotype := range stereotypes {\n\t\tif checkStereotypeCapabilitiesMatch(stereotype.Stereotype, browserName, browserVersion, sessionBrowserName, platformName, capabilities) {\n\t\t\tmatchingSlots += stereotype.Slots\n\t\t}\n\t}\n\treturn matchingSlots\n}\n\nfunc countMatchingSessions(sessions Sessions, browserName string, browserVersion string, sessionBrowserName string, platformName string, capabilities map[string]interface{}, logger logr.Logger) int64 {\n\tvar matchingSessions int64\n\tfor _, session := range sessions {\n\t\tvar capability map[string]interface{}\n\t\tif err := json.Unmarshal([]byte(session.Slot.Stereotype), &capability); err == nil {\n\t\t\tif checkStereotypeCapabilitiesMatch(capability, browserName, browserVersion, sessionBrowserName, platformName, capabilities) {\n\t\t\t\tmatchingSessions++\n\t\t\t}\n\t\t} else {\n\t\t\tlogger.Error(err, fmt.Sprintf(\"Error when unmarshaling session capabilities: %s\", err))\n\t\t}\n\t}\n\treturn matchingSessions\n}\n\nfunc managedDownloadsEnabled(stereotype map[string]interface{}, capabilities map[string]interface{}) bool {\n\t// First lets check if user wanted a Node with managed downloads enabled\n\tvalue1, ok1 := capabilities[EnableManagedDownloadsCapability]\n\tif !ok1 || !value1.(bool) {\n\t\t// User didn't ask. So lets move on to the next matching criteria\n\t\treturn true\n\t}\n\t// User wants managed downloads enabled to be done on this Node, let's check the stereotype\n\tvalue2, ok2 := stereotype[EnableManagedDownloadsCapability]\n\t// Try to match what the user requested\n\treturn ok2 && value2.(bool)\n}\n\nfunc extensionCapabilitiesMatch(stereotype map[string]interface{}, capabilities map[string]interface{}) bool {\n\tcapabilities = filterCapabilities(capabilities)\n\tif len(capabilities) == 0 {\n\t\treturn true\n\t}\n\tfor key, value := range capabilities {\n\t\tif key == EnableManagedDownloadsCapability {\n\t\t\tcontinue\n\t\t}\n\t\tif stereotypeValue, ok := stereotype[key]; !ok || stereotypeValue != value {\n\t\t\treturn false\n\t\t}\n\t}\n\treturn true\n}\n\n// This function checks if the request capabilities match the scaler metadata\nfunc checkRequestCapabilitiesMatch(request map[string]interface{}, browserName string, browserVersion string, _ string, platformName string, capabilities map[string]interface{}) bool {\n\t// Check if browserName matches\n\t_browserName := getBrowserName(request)\n\tbrowserNameMatch := (_browserName == \"\" && browserName == \"\") ||\n\t\tstrings.EqualFold(browserName, _browserName)\n\n\t// Check if browserVersion matches\n\t_browserVersion := getBrowserVersion(request)\n\tbrowserVersionMatch := (_browserVersion == \"\" && browserVersion == \"\") ||\n\t\t(_browserVersion != \"\" && strings.HasPrefix(browserVersion, _browserVersion))\n\n\t// Check if platformName matches\n\tplatformNameMatch := strings.EqualFold(GetPlatform(platformName).name, GetPlatform(getPlatformName(request)).name) ||\n\t\tisSameFamily(GetPlatform(platformName), GetPlatform(getPlatformName(request)))\n\n\treturn browserNameMatch && browserVersionMatch && platformNameMatch && managedDownloadsEnabled(capabilities, request) && extensionCapabilitiesMatch(request, capabilities)\n}\n\n// This function checks if Node stereotypes or ongoing sessions match the scaler metadata\nfunc checkStereotypeCapabilitiesMatch(capability map[string]interface{}, browserName string, browserVersion string, sessionBrowserName string, platformName string, capabilities map[string]interface{}) bool {\n\t// Check if browserName matches\n\t_browserName := getBrowserName(capability)\n\tbrowserNameMatch := (_browserName == \"\" && browserName == \"\") ||\n\t\tstrings.EqualFold(browserName, _browserName) ||\n\t\tstrings.EqualFold(sessionBrowserName, _browserName)\n\n\t// Check if browserVersion matches\n\t_browserVersion := getBrowserVersion(capability)\n\tbrowserVersionMatch := (_browserVersion == \"\" && browserVersion == \"\") ||\n\t\t(_browserVersion != \"\" && strings.HasPrefix(browserVersion, _browserVersion))\n\n\t// Check if platformName matches\n\tplatformNameMatch := strings.EqualFold(GetPlatform(platformName).name, GetPlatform(getPlatformName(capability)).name) ||\n\t\tisSameFamily(GetPlatform(platformName), GetPlatform(getPlatformName(capability)))\n\n\treturn browserNameMatch && browserVersionMatch && platformNameMatch && managedDownloadsEnabled(capabilities, capability) && extensionCapabilitiesMatch(capability, capabilities)\n}\n\nfunc checkNodeReservedSlots(reservedNodes []ReservedNodes, nodeID string, availableSlots int64) int64 {\n\tfor _, reservedNode := range reservedNodes {\n\t\tif strings.EqualFold(reservedNode.ID, nodeID) {\n\t\t\treturn reservedNode.SlotCount\n\t\t}\n\t}\n\treturn availableSlots\n}\n\nfunc updateOrAddReservedNode(reservedNodes []ReservedNodes, nodeID string, slotCount int64, maxSession int64) []ReservedNodes {\n\tfor i, reservedNode := range reservedNodes {\n\t\tif strings.EqualFold(reservedNode.ID, nodeID) {\n\t\t\t// Update remaining available slots for the reserved node\n\t\t\treservedNodes[i].SlotCount = slotCount\n\t\t\treturn reservedNodes\n\t\t}\n\t}\n\t// Add new reserved node if not found\n\treturn append(reservedNodes, ReservedNodes{ID: nodeID, SlotCount: slotCount, MaxSession: maxSession})\n}\n\nfunc getCountFromSeleniumResponse(b []byte, browserName string, browserVersion string, sessionBrowserName string, platformName string, nodeMaxSessions int64, enableManagedDownloads bool, _capabilities string, logger logr.Logger) (int64, int64, error) {\n\t// Track number of available slots of existing Nodes in the Grid can be reserved for the matched requests\n\tvar availableSlots int64\n\t// Track number of matched requests in the sessions queue will be served by this scaler\n\tvar queueSlots int64\n\n\tvar seleniumResponse = SeleniumResponse{}\n\tif err := json.Unmarshal(b, &seleniumResponse); err != nil {\n\t\treturn 0, 0, err\n\t}\n\n\tcapabilities, err := parseCapabilitiesToMap(_capabilities)\n\tif err != nil {\n\t\tlogger.Error(err, fmt.Sprintf(\"Error when unmarshaling trigger metadata 'capabilities': %s\", err))\n\t}\n\tif enableManagedDownloads {\n\t\tcapabilities[EnableManagedDownloadsCapability] = true\n\t}\n\n\tvar sessionQueueRequests = seleniumResponse.Data.SessionsInfo.SessionQueueRequests\n\tvar nodes = seleniumResponse.Data.NodesInfo.Nodes\n\t// Track list of existing Nodes that have available slots for the matched requests\n\tvar reservedNodes []ReservedNodes\n\t// Track list of new Nodes will be scaled up with number of available slots following scaler parameter `nodeMaxSessions`\n\tvar newRequestNodes []ReservedNodes\n\tvar onGoingSessions int64\n\tfor requestIndex, sessionQueueRequest := range sessionQueueRequests {\n\t\tvar isRequestMatched bool\n\t\tvar requestCapability map[string]interface{}\n\t\tif err := json.Unmarshal([]byte(sessionQueueRequest), &requestCapability); err == nil {\n\t\t\tif checkRequestCapabilitiesMatch(requestCapability, browserName, browserVersion, sessionBrowserName, platformName, capabilities) {\n\t\t\t\tqueueSlots++\n\t\t\t\tisRequestMatched = true\n\t\t\t}\n\t\t} else {\n\t\t\tlogger.Error(err, fmt.Sprintf(\"Error when unmarshaling sessionQueueRequest capability: %s\", err))\n\t\t}\n\n\t\tvar isRequestReserved bool\n\t\t// Check if the matched request can be assigned to available slots of existing Nodes in the Grid\n\t\tfor _, node := range nodes {\n\t\t\t// Check if node is UP and has available slots (maxSession > sessionCount)\n\t\t\tif isRequestMatched && strings.EqualFold(node.Status, \"UP\") && checkNodeReservedSlots(reservedNodes, node.ID, node.MaxSession-node.SessionCount) > 0 {\n\t\t\t\tvar stereotypes = Stereotypes{}\n\t\t\t\tvar availableSlotsMatch int64\n\t\t\t\tif err := json.Unmarshal([]byte(node.Stereotypes), &stereotypes); err == nil {\n\t\t\t\t\t// Count available slots that match the request capability and scaler metadata\n\t\t\t\t\tavailableSlotsMatch += countMatchingSlotsStereotypes(stereotypes, browserName, browserVersion, sessionBrowserName, platformName, capabilities)\n\t\t\t\t} else {\n\t\t\t\t\tlogger.Error(err, fmt.Sprintf(\"Error when unmarshaling node stereotypes: %s\", err))\n\t\t\t\t}\n\t\t\t\tif availableSlotsMatch == 0 {\n\t\t\t\t\tcontinue\n\t\t\t\t}\n\t\t\t\t// Count ongoing sessions that match the request capability and scaler metadata\n\t\t\t\tvar currentSessionsMatch = countMatchingSessions(node.Sessions, browserName, browserVersion, sessionBrowserName, platformName, capabilities, logger)\n\t\t\t\t// Count remaining available slots can be reserved for this request\n\t\t\t\tvar availableSlotsCanBeReserved = checkNodeReservedSlots(reservedNodes, node.ID, node.MaxSession-node.SessionCount)\n\t\t\t\t// Reserve one available slot for the request if available slots match is greater than current sessions match\n\t\t\t\tif availableSlotsMatch > currentSessionsMatch {\n\t\t\t\t\tavailableSlots++\n\t\t\t\t\treservedNodes = updateOrAddReservedNode(reservedNodes, node.ID, availableSlotsCanBeReserved-1, node.MaxSession)\n\t\t\t\t\tisRequestReserved = true\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\t// Check if the matched request can be assigned to available slots of new Nodes will be scaled up, since the scaler parameter `nodeMaxSessions` can be greater than 1\n\t\tif isRequestMatched && !isRequestReserved {\n\t\t\tfor _, newRequestNode := range newRequestNodes {\n\t\t\t\tif newRequestNode.SlotCount > 0 {\n\t\t\t\t\tnewRequestNodes = updateOrAddReservedNode(newRequestNodes, newRequestNode.ID, newRequestNode.SlotCount-1, nodeMaxSessions)\n\t\t\t\t\tisRequestReserved = true\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\t// Check if a new Node should be scaled up to reserve for the matched request\n\t\tif isRequestMatched && !isRequestReserved {\n\t\t\tnewRequestNodes = updateOrAddReservedNode(newRequestNodes, string(rune(requestIndex)), nodeMaxSessions-1, nodeMaxSessions)\n\t\t}\n\t}\n\n\t// Count ongoing sessions across all nodes that match the scaler metadata\n\tfor _, node := range nodes {\n\t\tonGoingSessions += countMatchingSessions(node.Sessions, browserName, browserVersion, sessionBrowserName, platformName, capabilities, logger)\n\t}\n\n\treturn int64(len(newRequestNodes)), onGoingSessions, nil\n}\n\n// Mapping of platform name enum used in the Selenium Grid core\n// https://github.com/SeleniumHQ/selenium/blob/trunk/java/src/org/openqa/selenium/Platform.java\nvar (\n\tWindows      = Platform{\"windows\", nil}\n\tXP           = Platform{\"Windows XP\", &Windows}\n\tVista        = Platform{\"Windows Vista\", &Windows}\n\tWin7         = Platform{\"Windows 7\", &Windows}\n\tWin8         = Platform{\"Windows 8\", &Windows}\n\tWin8_1       = Platform{\"Windows 8.1\", &Windows}\n\tWin10        = Platform{\"Windows 10\", &Windows}\n\tWin11        = Platform{\"Windows 11\", &Windows}\n\tMac          = Platform{\"mac\", nil}\n\tSnowLeopard  = Platform{\"OS X 10.6\", &Mac}\n\tMountainLion = Platform{\"OS X 10.8\", &Mac}\n\tMavericks    = Platform{\"OS X 10.9\", &Mac}\n\tYosemite     = Platform{\"OS X 10.10\", &Mac}\n\tElCapitan    = Platform{\"OS X 10.11\", &Mac}\n\tSierra       = Platform{\"macOS 10.12\", &Mac}\n\tHighSierra   = Platform{\"macOS 10.13\", &Mac}\n\tMojave       = Platform{\"macOS 10.14\", &Mac}\n\tCatalina     = Platform{\"macOS 10.15\", &Mac}\n\tBigSur       = Platform{\"macOS 11.0\", &Mac}\n\tMonterey     = Platform{\"macOS 12.0\", &Mac}\n\tVentura      = Platform{\"macOS 13.0\", &Mac}\n\tSonoma       = Platform{\"macOS 14.0\", &Mac}\n\tSequoia      = Platform{\"macOS 15.0\", &Mac}\n\tUnix         = Platform{\"unix\", nil}\n\tLinux        = Platform{\"linux\", &Unix}\n\tBsd          = Platform{\"bsd\", &Unix}\n\tSolaris      = Platform{\"solaris\", &Unix}\n\tAndroid      = Platform{\"android\", nil}\n\tIOS          = Platform{\"iOS\", nil}\n\tAny          = Platform{\"any\", nil}\n)\n\nfunc isSameFamily(p1, p2 Platform) bool {\n\treturn p1.family != nil && p2.family != nil && p1.family == p2.family\n}\n\nfunc GetPlatform(input string) Platform {\n\tswitch strings.ToLower(input) {\n\tcase \"windows\":\n\t\treturn Windows\n\tcase \"windows server 2003\", \"xp\", \"winnt\", \"windows_nt\", \"windows nt\":\n\t\treturn XP\n\tcase \"windows server 2008\", \"windows vista\":\n\t\treturn Vista\n\tcase \"windows 7\", \"win7\":\n\t\treturn Win7\n\tcase \"windows server 2012\", \"windows 8\", \"win8\":\n\t\treturn Win8\n\tcase \"windows 8.1\", \"win8.1\":\n\t\treturn Win8_1\n\tcase \"windows 10\", \"win10\":\n\t\treturn Win10\n\tcase \"windows 11\", \"win11\":\n\t\treturn Win11\n\tcase \"mac\", \"darwin\", \"macos\", \"mac os x\", \"os x\":\n\t\treturn Mac\n\tcase \"os x 10.6\", \"macos 10.6\", \"snow leopard\":\n\t\treturn SnowLeopard\n\tcase \"os x 10.8\", \"macos 10.8\", \"mountain lion\":\n\t\treturn MountainLion\n\tcase \"os x 10.9\", \"macos 10.9\", \"mavericks\":\n\t\treturn Mavericks\n\tcase \"os x 10.10\", \"macos 10.10\", \"yosemite\":\n\t\treturn Yosemite\n\tcase \"os x 10.11\", \"macos 10.11\", \"el capitan\":\n\t\treturn ElCapitan\n\tcase \"os x 10.12\", \"macos 10.12\", \"sierra\":\n\t\treturn Sierra\n\tcase \"os x 10.13\", \"macos 10.13\", \"high sierra\":\n\t\treturn HighSierra\n\tcase \"os x 10.14\", \"macos 10.14\", \"mojave\":\n\t\treturn Mojave\n\tcase \"os x 10.15\", \"macos 10.15\", \"catalina\":\n\t\treturn Catalina\n\tcase \"os x 11.0\", \"macos 11.0\", \"big sur\":\n\t\treturn BigSur\n\tcase \"os x 12.0\", \"macos 12.0\", \"monterey\":\n\t\treturn Monterey\n\tcase \"os x 13.0\", \"macos 13.0\", \"ventura\":\n\t\treturn Ventura\n\tcase \"os x 14.0\", \"macos 14.0\", \"sonoma\":\n\t\treturn Sonoma\n\tcase \"os x 15.0\", \"macos 15.0\", \"sequoia\":\n\t\treturn Sequoia\n\tcase \"linux\":\n\t\treturn Linux\n\tcase \"bsd\":\n\t\treturn Bsd\n\tcase \"solaris\":\n\t\treturn Solaris\n\tcase \"android\", \"dalvik\":\n\t\treturn Android\n\tcase \"ios\":\n\t\treturn IOS\n\tcase \"any\", \"\":\n\t\treturn Any\n\tdefault:\n\t\treturn Platform{strings.ToLower(input), nil}\n\t}\n}\n"
  },
  {
    "path": ".keda/scalers/selenium_grid_scaler_test.go",
    "content": "package scalers\n\nimport (\n\t\"reflect\"\n\t\"testing\"\n\n\t\"github.com/go-logr/logr\"\n\n\t\"github.com/kedacore/keda/v2/pkg/scalers/scalersconfig\"\n)\n\nfunc Test_getCountFromSeleniumResponse(t *testing.T) {\n\ttype args struct {\n\t\tb                      []byte\n\t\tbrowserName            string\n\t\tsessionBrowserName     string\n\t\tbrowserVersion         string\n\t\tplatformName           string\n\t\tnodeMaxSessions        int64\n\t\tenableManagedDownloads bool\n\t\tcapabilities           string\n\t}\n\ttests := []struct {\n\t\tname                string\n\t\targs                args\n\t\twantNewRequestNodes int64\n\t\twantOnGoingSessions int64\n\t\twantErr             bool\n\t}{\n\t\t{\n\t\t\tname: \"nil response body should throw error\",\n\t\t\targs: args{\n\t\t\t\tb:           []byte(nil),\n\t\t\t\tbrowserName: \"\",\n\t\t\t},\n\t\t\twantErr: true,\n\t\t},\n\t\t{\n\t\t\tname: \"empty response body should throw error\",\n\t\t\targs: args{\n\t\t\t\tb:           []byte(\"\"),\n\t\t\t\tbrowserName: \"\",\n\t\t\t},\n\t\t\twantErr: true,\n\t\t},\n\t\t{\n\t\t\tname: \"no sessionQueueRequests should return count as 0\",\n\t\t\targs: args{\n\t\t\t\tb: []byte(`{\n\t\t\t\t\t  \"data\": {\n\t\t\t\t\t\t\"grid\": {\n\t\t\t\t\t\t  \"sessionCount\": 0,\n\t\t\t\t\t\t  \"maxSession\": 0,\n\t\t\t\t\t\t  \"totalSlots\": 0\n\t\t\t\t\t\t},\n\t\t\t\t\t\t\"nodesInfo\": {\n\t\t\t\t\t\t  \"nodes\": []\n\t\t\t\t\t\t},\n\t\t\t\t\t\t\"sessionsInfo\": {\n\t\t\t\t\t\t  \"sessionQueueRequests\": []\n\t\t\t\t\t\t}\n\t\t\t\t\t  }\n\t\t\t\t\t}\n\t\t\t\t`),\n\t\t\t\tbrowserName: \"\",\n\t\t\t},\n\t\t\twantNewRequestNodes: 0,\n\t\t\twantOnGoingSessions: 0,\n\t\t\twantErr:             false,\n\t\t},\n\t\t{\n\t\t\tname: \"12 sessionQueueRequests with 4 requests matching browserName chrome should return count as 4\",\n\t\t\targs: args{\n\t\t\t\tb: []byte(`{\n\t\t\t\t  \"data\": {\n\t\t\t\t\t\"grid\": {\n\t\t\t\t\t  \"sessionCount\": 0,\n\t\t\t\t\t  \"maxSession\": 0,\n\t\t\t\t\t  \"totalSlots\": 0\n\t\t\t\t\t},\n\t\t\t\t\t\"nodesInfo\": {\n\t\t\t\t\t  \"nodes\": []\n\t\t\t\t\t},\n\t\t\t\t\t\"sessionsInfo\": {\n\t\t\t\t\t  \"sessionQueueRequests\": [\n\t\t\t\t\t\t\"{\\n  \\\"browserName\\\": \\\"chrome\\\",\\n  \\\"goog:chromeOptions\\\": {\\n    \\\"extensions\\\": [\\n    ],\\n    \\\"args\\\": [\\n      \\\"disable-features=DownloadBubble,DownloadBubbleV2\\\"\\n    ]\\n  },\\n  \\\"pageLoadStrategy\\\": \\\"normal\\\",\\n  \\\"platformName\\\": \\\"linux\\\",\\n  \\\"se:downloadsEnabled\\\": true,\\n  \\\"se:name\\\": \\\"test_download_file (ChromeTests)\\\",\\n  \\\"se:recordVideo\\\": true,\\n  \\\"se:screenResolution\\\": \\\"1920x1080\\\"\\n}\",\n\t\t\t\t\t\t\"{\\n  \\\"acceptInsecureCerts\\\": true,\\n  \\\"browserName\\\": \\\"firefox\\\",\\n  \\\"moz:debuggerAddress\\\": true,\\n  \\\"moz:firefoxOptions\\\": {\\n    \\\"prefs\\\": {\\n      \\\"remote.active-protocols\\\": 3\\n    },\\n    \\\"profile\\\": \\\"profile\\\"\\n  },\\n  \\\"pageLoadStrategy\\\": \\\"normal\\\",\\n  \\\"se:downloadsEnabled\\\": true,\\n  \\\"se:name\\\": \\\"test_with_frames (FirefoxTests)\\\",\\n  \\\"se:recordVideo\\\": true,\\n  \\\"se:screenResolution\\\": \\\"1920x1080\\\"\\n}\",\n\t\t\t\t\t\t\"{\\n  \\\"acceptInsecureCerts\\\": true,\\n  \\\"browserName\\\": \\\"firefox\\\",\\n  \\\"moz:debuggerAddress\\\": true,\\n  \\\"moz:firefoxOptions\\\": {\\n    \\\"prefs\\\": {\\n      \\\"remote.active-protocols\\\": 3\\n    },\\n    \\\"profile\\\": \\\"profile\\\"\\n  },\\n  \\\"pageLoadStrategy\\\": \\\"normal\\\",\\n  \\\"se:downloadsEnabled\\\": true,\\n  \\\"se:name\\\": \\\"test_download_file (FirefoxTests)\\\",\\n  \\\"se:recordVideo\\\": true,\\n  \\\"se:screenResolution\\\": \\\"1920x1080\\\"\\n}\",\n\t\t\t\t\t\t\"{\\n  \\\"acceptInsecureCerts\\\": true,\\n  \\\"browserName\\\": \\\"firefox\\\",\\n  \\\"moz:debuggerAddress\\\": true,\\n  \\\"moz:firefoxOptions\\\": {\\n    \\\"prefs\\\": {\\n      \\\"remote.active-protocols\\\": 3\\n    },\\n    \\\"profile\\\": \\\"profile\\\"\\n  },\\n  \\\"pageLoadStrategy\\\": \\\"normal\\\",\\n  \\\"se:downloadsEnabled\\\": true,\\n  \\\"se:name\\\": \\\"test_title_and_maximize_window (FirefoxTests)\\\",\\n  \\\"se:recordVideo\\\": true,\\n  \\\"se:screenResolution\\\": \\\"1920x1080\\\"\\n}\",\n\t\t\t\t\t\t\"{\\n  \\\"browserName\\\": \\\"chrome\\\",\\n  \\\"goog:chromeOptions\\\": {\\n    \\\"extensions\\\": [\\n    ],\\n    \\\"args\\\": [\\n      \\\"disable-features=DownloadBubble,DownloadBubbleV2\\\"\\n    ]\\n  },\\n  \\\"pageLoadStrategy\\\": \\\"normal\\\",\\n  \\\"platformName\\\": \\\"linux\\\",\\n  \\\"se:downloadsEnabled\\\": true,\\n  \\\"se:name\\\": \\\"test_play_video (ChromeTests)\\\",\\n  \\\"se:recordVideo\\\": true,\\n  \\\"se:screenResolution\\\": \\\"1920x1080\\\"\\n}\",\n\t\t\t\t\t\t\"{\\n  \\\"browserName\\\": \\\"chrome\\\",\\n  \\\"goog:chromeOptions\\\": {\\n    \\\"extensions\\\": [\\n    ],\\n    \\\"args\\\": [\\n      \\\"disable-features=DownloadBubble,DownloadBubbleV2\\\"\\n    ]\\n  },\\n  \\\"pageLoadStrategy\\\": \\\"normal\\\",\\n  \\\"platformName\\\": \\\"linux\\\",\\n  \\\"se:downloadsEnabled\\\": true,\\n  \\\"se:name\\\": \\\"test_select_from_a_dropdown (ChromeTests)\\\",\\n  \\\"se:recordVideo\\\": true,\\n  \\\"se:screenResolution\\\": \\\"1920x1080\\\"\\n}\",\n\t\t\t\t\t\t\"{\\n  \\\"acceptInsecureCerts\\\": true,\\n  \\\"browserName\\\": \\\"firefox\\\",\\n  \\\"moz:debuggerAddress\\\": true,\\n  \\\"moz:firefoxOptions\\\": {\\n    \\\"prefs\\\": {\\n      \\\"remote.active-protocols\\\": 3\\n    },\\n    \\\"profile\\\": \\\"profile\\\"\\n  },\\n  \\\"pageLoadStrategy\\\": \\\"normal\\\",\\n  \\\"se:downloadsEnabled\\\": true,\\n  \\\"se:name\\\": \\\"test_visit_basic_auth_secured_page (FirefoxTests)\\\",\\n  \\\"se:recordVideo\\\": true,\\n  \\\"se:screenResolution\\\": \\\"1920x1080\\\"\\n}\",\n\t\t\t\t\t\t\"{\\n  \\\"acceptInsecureCerts\\\": true,\\n  \\\"browserName\\\": \\\"firefox\\\",\\n  \\\"moz:debuggerAddress\\\": true,\\n  \\\"moz:firefoxOptions\\\": {\\n    \\\"prefs\\\": {\\n      \\\"remote.active-protocols\\\": 3\\n    },\\n    \\\"profile\\\": \\\"profile\\\"\\n  },\\n  \\\"pageLoadStrategy\\\": \\\"normal\\\",\\n  \\\"se:downloadsEnabled\\\": true,\\n  \\\"se:name\\\": \\\"test_select_from_a_dropdown (FirefoxTests)\\\",\\n  \\\"se:recordVideo\\\": true,\\n  \\\"se:screenResolution\\\": \\\"1920x1080\\\"\\n}\",\n\t\t\t\t\t\t\"{\\n  \\\"browserName\\\": \\\"chrome\\\",\\n  \\\"goog:chromeOptions\\\": {\\n    \\\"extensions\\\": [\\n    ],\\n    \\\"args\\\": [\\n      \\\"disable-features=DownloadBubble,DownloadBubbleV2\\\"\\n    ]\\n  },\\n  \\\"pageLoadStrategy\\\": \\\"normal\\\",\\n  \\\"platformName\\\": \\\"linux\\\",\\n  \\\"se:downloadsEnabled\\\": true,\\n  \\\"se:name\\\": \\\"test_title (ChromeTests)\\\",\\n  \\\"se:recordVideo\\\": true,\\n  \\\"se:screenResolution\\\": \\\"1920x1080\\\"\\n}\",\n\t\t\t\t\t\t\"{\\n  \\\"acceptInsecureCerts\\\": true,\\n  \\\"browserName\\\": \\\"firefox\\\",\\n  \\\"moz:debuggerAddress\\\": true,\\n  \\\"moz:firefoxOptions\\\": {\\n    \\\"prefs\\\": {\\n      \\\"remote.active-protocols\\\": 3\\n    },\\n    \\\"profile\\\": \\\"profile\\\"\\n  },\\n  \\\"pageLoadStrategy\\\": \\\"normal\\\",\\n  \\\"se:downloadsEnabled\\\": true,\\n  \\\"se:name\\\": \\\"test_title (FirefoxTests)\\\",\\n  \\\"se:recordVideo\\\": true,\\n  \\\"se:screenResolution\\\": \\\"1920x1080\\\"\\n}\",\n\t\t\t\t\t\t\"{\\n  \\\"acceptInsecureCerts\\\": true,\\n  \\\"browserName\\\": \\\"firefox\\\",\\n  \\\"moz:debuggerAddress\\\": true,\\n  \\\"moz:firefoxOptions\\\": {\\n    \\\"prefs\\\": {\\n      \\\"remote.active-protocols\\\": 3\\n    },\\n    \\\"profile\\\": \\\"profile\\\"\\n  },\\n  \\\"pageLoadStrategy\\\": \\\"normal\\\",\\n  \\\"se:downloadsEnabled\\\": true,\\n  \\\"se:name\\\": \\\"test_accept_languages (FirefoxTests)\\\",\\n  \\\"se:recordVideo\\\": true,\\n  \\\"se:screenResolution\\\": \\\"1920x1080\\\"\\n}\",\n\t\t\t\t\t\t\"{\\n  \\\"acceptInsecureCerts\\\": true,\\n  \\\"browserName\\\": \\\"firefox\\\",\\n  \\\"moz:debuggerAddress\\\": true,\\n  \\\"moz:firefoxOptions\\\": {\\n    \\\"prefs\\\": {\\n      \\\"remote.active-protocols\\\": 3\\n    },\\n    \\\"profile\\\": \\\"profile\\\"\\n  },\\n  \\\"pageLoadStrategy\\\": \\\"normal\\\",\\n  \\\"se:downloadsEnabled\\\": true,\\n  \\\"se:name\\\": \\\"test_play_video (FirefoxTests)\\\",\\n  \\\"se:recordVideo\\\": true,\\n  \\\"se:screenResolution\\\": \\\"1920x1080\\\"\\n}\"\n\t\t\t\t\t  ]\n\t\t\t\t\t}\n\t\t\t\t  }\n\t\t\t\t}\n\t\t\t\t`),\n\t\t\t\tbrowserName:            \"chrome\",\n\t\t\t\tsessionBrowserName:     \"chrome\",\n\t\t\t\tbrowserVersion:         \"\",\n\t\t\t\tenableManagedDownloads: true,\n\t\t\t\tplatformName:           \"linux\",\n\t\t\t},\n\t\t\twantNewRequestNodes: 4,\n\t\t\twantOnGoingSessions: 0,\n\t\t\twantErr:             false,\n\t\t},\n\t\t{\n\t\t\tname: \"2_sessionQueueRequests_and_1_available_nodeStereotypes_with_matching_browserName_firefox_should_return_count_as_1\",\n\t\t\targs: args{\n\t\t\t\tb: []byte(`{\n\t\t\t\t\t  \"data\": {\n\t\t\t\t\t\t\"grid\": {\n\t\t\t\t\t\t  \"sessionCount\": 0,\n\t\t\t\t\t\t  \"maxSession\": 7,\n\t\t\t\t\t\t  \"totalSlots\": 7\n\t\t\t\t\t\t},\n\t\t\t\t\t\t\"nodesInfo\": {\n\t\t\t\t\t\t  \"nodes\": [\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t  \"id\": \"82ee33bd-390e-4dd6-aee2-06b17ecee18e\",\n\t\t\t\t\t\t\t  \"status\": \"UP\",\n\t\t\t\t\t\t\t  \"sessionCount\": 1,\n\t\t\t\t\t\t\t  \"maxSession\": 1,\n\t\t\t\t\t\t\t  \"slotCount\": 1,\n\t\t\t\t\t\t\t  \"stereotypes\": \"[\\n  {\\n    \\\"slots\\\": 1,\\n    \\\"stereotype\\\": {\\n      \\\"browserName\\\": \\\"chrome\\\",\\n      \\\"browserVersion\\\": \\\"\\\",\\n      \\\"goog:chromeOptions\\\": {\\n        \\\"binary\\\": \\\"\\\\u002fusr\\\\u002fbin\\\\u002fchromium\\\"\\n      },\\n      \\\"platformName\\\": \\\"linux\\\",\\n      \\\"se:containerName\\\": \\\"my-chrome-name-m5n8z-4br6x\\\",\\n      \\\"se:downloadsEnabled\\\": true,\\n      \\\"se:noVncPort\\\": 7900,\\n      \\\"se:vncEnabled\\\": true\\n    }\\n  }\\n]\",\n\t\t\t\t\t\t\t  \"sessions\": [\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t  \"id\": \"reserved\",\n\t\t\t\t\t\t\t\t  \"capabilities\": \"{\\n  \\\"browserName\\\": \\\"chrome\\\",\\n  \\\"browserVersion\\\": \\\"128.0\\\",\\n  \\\"goog:chromeOptions\\\": {\\n    \\\"binary\\\": \\\"\\\\u002fusr\\\\u002fbin\\\\u002fchromium\\\"\\n  },\\n  \\\"platformName\\\": \\\"linux\\\",\\n  \\\"se:containerName\\\": \\\"my-chrome-name-m5n8z-4br6x\\\",\\n  \\\"se:downloadsEnabled\\\": true,\\n  \\\"se:noVncPort\\\": 7900,\\n  \\\"se:vncEnabled\\\": true\\n}\",\n\t\t\t\t\t\t\t\t  \"slot\": {\n\t\t\t\t\t\t\t\t\t\"id\": \"83c9d9f5-f79d-4dea-bc9b-ce61bf2bc01c\",\n\t\t\t\t\t\t\t\t\t\"stereotype\": \"{\\n  \\\"browserName\\\": \\\"chrome\\\",\\n  \\\"browserVersion\\\": \\\"\\\",\\n  \\\"goog:chromeOptions\\\": {\\n    \\\"binary\\\": \\\"\\\\u002fusr\\\\u002fbin\\\\u002fchromium\\\"\\n  },\\n  \\\"platformName\\\": \\\"linux\\\",\\n  \\\"se:containerName\\\": \\\"my-chrome-name-m5n8z-4br6x\\\",\\n  \\\"se:downloadsEnabled\\\": true,\\n  \\\"se:noVncPort\\\": 7900,\\n  \\\"se:vncEnabled\\\": true\\n}\"\n\t\t\t\t\t\t\t\t  }\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t  ]\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t  \"id\": \"b4d3d31a-3239-4c09-a5f5-3650d4fcef48\",\n\t\t\t\t\t\t\t  \"status\": \"UP\",\n\t\t\t\t\t\t\t  \"sessionCount\": 1,\n\t\t\t\t\t\t\t  \"maxSession\": 1,\n\t\t\t\t\t\t\t  \"slotCount\": 1,\n\t\t\t\t\t\t\t  \"stereotypes\": \"[\\n  {\\n    \\\"slots\\\": 1,\\n    \\\"stereotype\\\": {\\n      \\\"browserName\\\": \\\"firefox\\\",\\n      \\\"browserVersion\\\": \\\"\\\",\\n      \\\"moz:firefoxOptions\\\": {\\n        \\\"binary\\\": \\\"\\\\u002fusr\\\\u002fbin\\\\u002ffirefox\\\"\\n      },\\n      \\\"platformName\\\": \\\"linux\\\",\\n      \\\"se:containerName\\\": \\\"my-firefox-name-s2gq6-82lwb\\\",\\n      \\\"se:downloadsEnabled\\\": true,\\n      \\\"se:noVncPort\\\": 7900,\\n      \\\"se:vncEnabled\\\": true\\n    }\\n  }\\n]\",\n\t\t\t\t\t\t\t  \"sessions\": [\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t  \"id\": \"reserved\",\n\t\t\t\t\t\t\t\t  \"capabilities\": \"{\\n  \\\"browserName\\\": \\\"firefox\\\",\\n  \\\"browserVersion\\\": \\\"130.0\\\",\\n  \\\"moz:firefoxOptions\\\": {\\n    \\\"binary\\\": \\\"\\\\u002fusr\\\\u002fbin\\\\u002ffirefox\\\"\\n  },\\n  \\\"platformName\\\": \\\"linux\\\",\\n  \\\"se:containerName\\\": \\\"my-firefox-name-s2gq6-82lwb\\\",\\n  \\\"se:downloadsEnabled\\\": true,\\n  \\\"se:noVncPort\\\": 7900,\\n  \\\"se:vncEnabled\\\": true\\n}\",\n\t\t\t\t\t\t\t\t  \"slot\": {\n\t\t\t\t\t\t\t\t\t\"id\": \"b03b80c0-95f8-4b9c-ba06-bebd2568ce3d\",\n\t\t\t\t\t\t\t\t\t\"stereotype\": \"{\\n  \\\"browserName\\\": \\\"firefox\\\",\\n  \\\"browserVersion\\\": \\\"\\\",\\n  \\\"moz:firefoxOptions\\\": {\\n    \\\"binary\\\": \\\"\\\\u002fusr\\\\u002fbin\\\\u002ffirefox\\\"\\n  },\\n  \\\"platformName\\\": \\\"linux\\\",\\n  \\\"se:containerName\\\": \\\"my-firefox-name-s2gq6-82lwb\\\",\\n  \\\"se:downloadsEnabled\\\": true,\\n  \\\"se:noVncPort\\\": 7900,\\n  \\\"se:vncEnabled\\\": true\\n}\"\n\t\t\t\t\t\t\t\t  }\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t  ]\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t  \"id\": \"f3e67bf7-3c40-42d4-ab10-666b49c88925\",\n\t\t\t\t\t\t\t  \"status\": \"UP\",\n\t\t\t\t\t\t\t  \"sessionCount\": 0,\n\t\t\t\t\t\t\t  \"maxSession\": 1,\n\t\t\t\t\t\t\t  \"slotCount\": 1,\n\t\t\t\t\t\t\t  \"stereotypes\": \"[\\n  {\\n    \\\"slots\\\": 1,\\n    \\\"stereotype\\\": {\\n      \\\"browserName\\\": \\\"chrome\\\",\\n      \\\"browserVersion\\\": \\\"\\\",\\n      \\\"goog:chromeOptions\\\": {\\n        \\\"binary\\\": \\\"\\\\u002fusr\\\\u002fbin\\\\u002fchromium\\\"\\n      },\\n      \\\"platformName\\\": \\\"linux\\\",\\n      \\\"se:containerName\\\": \\\"my-chrome-name-xh95p-9c2cl\\\",\\n      \\\"se:downloadsEnabled\\\": true,\\n      \\\"se:noVncPort\\\": 7900,\\n      \\\"se:vncEnabled\\\": true\\n    }\\n  }\\n]\",\n\t\t\t\t\t\t\t  \"sessions\": []\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t  \"id\": \"f1e315fe-5f32-4a73-bb31-b73ed9a728e5\",\n\t\t\t\t\t\t\t  \"status\": \"UP\",\n\t\t\t\t\t\t\t  \"sessionCount\": 1,\n\t\t\t\t\t\t\t  \"maxSession\": 1,\n\t\t\t\t\t\t\t  \"slotCount\": 1,\n\t\t\t\t\t\t\t  \"stereotypes\": \"[\\n  {\\n    \\\"slots\\\": 1,\\n    \\\"stereotype\\\": {\\n      \\\"browserName\\\": \\\"chrome\\\",\\n      \\\"browserVersion\\\": \\\"\\\",\\n      \\\"goog:chromeOptions\\\": {\\n        \\\"binary\\\": \\\"\\\\u002fusr\\\\u002fbin\\\\u002fchromium\\\"\\n      },\\n      \\\"platformName\\\": \\\"linux\\\",\\n      \\\"se:containerName\\\": \\\"my-chrome-name-j2xbn-lq76c\\\",\\n      \\\"se:downloadsEnabled\\\": true,\\n      \\\"se:noVncPort\\\": 7900,\\n      \\\"se:vncEnabled\\\": true\\n    }\\n  }\\n]\",\n\t\t\t\t\t\t\t  \"sessions\": [\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t  \"id\": \"reserved\",\n\t\t\t\t\t\t\t\t  \"capabilities\": \"{\\n  \\\"browserName\\\": \\\"chrome\\\",\\n  \\\"browserVersion\\\": \\\"128.0\\\",\\n  \\\"goog:chromeOptions\\\": {\\n    \\\"binary\\\": \\\"\\\\u002fusr\\\\u002fbin\\\\u002fchromium\\\"\\n  },\\n  \\\"platformName\\\": \\\"linux\\\",\\n  \\\"se:containerName\\\": \\\"my-chrome-name-j2xbn-lq76c\\\",\\n  \\\"se:downloadsEnabled\\\": true,\\n  \\\"se:noVncPort\\\": 7900,\\n  \\\"se:vncEnabled\\\": true\\n}\",\n\t\t\t\t\t\t\t\t  \"slot\": {\n\t\t\t\t\t\t\t\t\t\"id\": \"9d91cd87-b443-4a0c-93e7-eea8c4661207\",\n\t\t\t\t\t\t\t\t\t\"stereotype\": \"{\\n  \\\"browserName\\\": \\\"chrome\\\",\\n  \\\"browserVersion\\\": \\\"\\\",\\n  \\\"goog:chromeOptions\\\": {\\n    \\\"binary\\\": \\\"\\\\u002fusr\\\\u002fbin\\\\u002fchromium\\\"\\n  },\\n  \\\"platformName\\\": \\\"linux\\\",\\n  \\\"se:containerName\\\": \\\"my-chrome-name-j2xbn-lq76c\\\",\\n  \\\"se:downloadsEnabled\\\": true,\\n  \\\"se:noVncPort\\\": 7900,\\n  \\\"se:vncEnabled\\\": true\\n}\"\n\t\t\t\t\t\t\t\t  }\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t  ]\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t  \"id\": \"0ae48415-a230-4bc4-a26c-4fc4ffc3abc1\",\n\t\t\t\t\t\t\t  \"status\": \"UP\",\n\t\t\t\t\t\t\t  \"sessionCount\": 1,\n\t\t\t\t\t\t\t  \"maxSession\": 1,\n\t\t\t\t\t\t\t  \"slotCount\": 1,\n\t\t\t\t\t\t\t  \"stereotypes\": \"[\\n  {\\n    \\\"slots\\\": 1,\\n    \\\"stereotype\\\": {\\n      \\\"browserName\\\": \\\"firefox\\\",\\n      \\\"browserVersion\\\": \\\"\\\",\\n      \\\"moz:firefoxOptions\\\": {\\n        \\\"binary\\\": \\\"\\\\u002fusr\\\\u002fbin\\\\u002ffirefox\\\"\\n      },\\n      \\\"platformName\\\": \\\"linux\\\",\\n      \\\"se:containerName\\\": \\\"my-firefox-name-xk6mm-2m6jh\\\",\\n      \\\"se:downloadsEnabled\\\": true,\\n      \\\"se:noVncPort\\\": 7900,\\n      \\\"se:vncEnabled\\\": true\\n    }\\n  }\\n]\",\n\t\t\t\t\t\t\t  \"sessions\": [\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t  \"id\": \"reserved\",\n\t\t\t\t\t\t\t\t  \"capabilities\": \"{\\n  \\\"browserName\\\": \\\"firefox\\\",\\n  \\\"browserVersion\\\": \\\"130.0\\\",\\n  \\\"moz:firefoxOptions\\\": {\\n    \\\"binary\\\": \\\"\\\\u002fusr\\\\u002fbin\\\\u002ffirefox\\\"\\n  },\\n  \\\"platformName\\\": \\\"linux\\\",\\n  \\\"se:containerName\\\": \\\"my-firefox-name-xk6mm-2m6jh\\\",\\n  \\\"se:downloadsEnabled\\\": true,\\n  \\\"se:noVncPort\\\": 7900,\\n  \\\"se:vncEnabled\\\": true\\n}\",\n\t\t\t\t\t\t\t\t  \"slot\": {\n\t\t\t\t\t\t\t\t\t\"id\": \"2c1fc5c4-881a-48fd-9b9e-b4d3ecbc1bd8\",\n\t\t\t\t\t\t\t\t\t\"stereotype\": \"{\\n  \\\"browserName\\\": \\\"firefox\\\",\\n  \\\"browserVersion\\\": \\\"\\\",\\n  \\\"moz:firefoxOptions\\\": {\\n    \\\"binary\\\": \\\"\\\\u002fusr\\\\u002fbin\\\\u002ffirefox\\\"\\n  },\\n  \\\"platformName\\\": \\\"linux\\\",\\n  \\\"se:containerName\\\": \\\"my-firefox-name-xk6mm-2m6jh\\\",\\n  \\\"se:downloadsEnabled\\\": true,\\n  \\\"se:noVncPort\\\": 7900,\\n  \\\"se:vncEnabled\\\": true\\n}\"\n\t\t\t\t\t\t\t\t  }\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t  ]\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t  \"id\": \"284fa982-5be0-44a6-b64e-e2e76fe52d1f\",\n\t\t\t\t\t\t\t  \"status\": \"UP\",\n\t\t\t\t\t\t\t  \"sessionCount\": 1,\n\t\t\t\t\t\t\t  \"maxSession\": 1,\n\t\t\t\t\t\t\t  \"slotCount\": 1,\n\t\t\t\t\t\t\t  \"stereotypes\": \"[\\n  {\\n    \\\"slots\\\": 1,\\n    \\\"stereotype\\\": {\\n      \\\"browserName\\\": \\\"firefox\\\",\\n      \\\"browserVersion\\\": \\\"\\\",\\n      \\\"moz:firefoxOptions\\\": {\\n        \\\"binary\\\": \\\"\\\\u002fusr\\\\u002fbin\\\\u002ffirefox\\\"\\n      },\\n      \\\"platformName\\\": \\\"linux\\\",\\n      \\\"se:containerName\\\": \\\"my-firefox-name-bvq59-6dh6q\\\",\\n      \\\"se:downloadsEnabled\\\": true,\\n      \\\"se:noVncPort\\\": 7900,\\n      \\\"se:vncEnabled\\\": true\\n    }\\n  }\\n]\",\n\t\t\t\t\t\t\t  \"sessions\": [\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t  \"id\": \"reserved\",\n\t\t\t\t\t\t\t\t  \"capabilities\": \"{\\n  \\\"browserName\\\": \\\"firefox\\\",\\n  \\\"browserVersion\\\": \\\"130.0\\\",\\n  \\\"moz:firefoxOptions\\\": {\\n    \\\"binary\\\": \\\"\\\\u002fusr\\\\u002fbin\\\\u002ffirefox\\\"\\n  },\\n  \\\"platformName\\\": \\\"linux\\\",\\n  \\\"se:containerName\\\": \\\"my-firefox-name-bvq59-6dh6q\\\",\\n  \\\"se:downloadsEnabled\\\": true,\\n  \\\"se:noVncPort\\\": 7900,\\n  \\\"se:vncEnabled\\\": true\\n}\",\n\t\t\t\t\t\t\t\t  \"slot\": {\n\t\t\t\t\t\t\t\t\t\"id\": \"5f8f9ba0-0f61-473e-b367-b68d9368dc24\",\n\t\t\t\t\t\t\t\t\t\"stereotype\": \"{\\n  \\\"browserName\\\": \\\"firefox\\\",\\n  \\\"browserVersion\\\": \\\"\\\",\\n  \\\"moz:firefoxOptions\\\": {\\n    \\\"binary\\\": \\\"\\\\u002fusr\\\\u002fbin\\\\u002ffirefox\\\"\\n  },\\n  \\\"platformName\\\": \\\"linux\\\",\\n  \\\"se:containerName\\\": \\\"my-firefox-name-bvq59-6dh6q\\\",\\n  \\\"se:downloadsEnabled\\\": true,\\n  \\\"se:noVncPort\\\": 7900,\\n  \\\"se:vncEnabled\\\": true\\n}\"\n\t\t\t\t\t\t\t\t  }\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t  ]\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t  \"id\": \"451442d0-3649-4b21-a5a5-32bc847f1765\",\n\t\t\t\t\t\t\t  \"status\": \"UP\",\n\t\t\t\t\t\t\t  \"sessionCount\": 0,\n\t\t\t\t\t\t\t  \"maxSession\": 1,\n\t\t\t\t\t\t\t  \"slotCount\": 1,\n\t\t\t\t\t\t\t  \"stereotypes\": \"[\\n  {\\n    \\\"slots\\\": 1,\\n    \\\"stereotype\\\": {\\n      \\\"browserName\\\": \\\"firefox\\\",\\n      \\\"browserVersion\\\": \\\"\\\",\\n      \\\"moz:firefoxOptions\\\": {\\n        \\\"binary\\\": \\\"\\\\u002fusr\\\\u002fbin\\\\u002ffirefox\\\"\\n      },\\n      \\\"platformName\\\": \\\"linux\\\",\\n      \\\"se:containerName\\\": \\\"my-firefox-name-42xbf-zpdd4\\\",\\n      \\\"se:downloadsEnabled\\\": true,\\n      \\\"se:noVncPort\\\": 7900,\\n      \\\"se:vncEnabled\\\": true\\n    }\\n  }\\n]\",\n\t\t\t\t\t\t\t  \"sessions\": []\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t  \"id\": \"a4d26330-e5be-4630-b4da-9078f2495ece\",\n\t\t\t\t\t\t\t  \"status\": \"UP\",\n\t\t\t\t\t\t\t  \"sessionCount\": 1,\n\t\t\t\t\t\t\t  \"maxSession\": 1,\n\t\t\t\t\t\t\t  \"slotCount\": 1,\n\t\t\t\t\t\t\t  \"stereotypes\": \"[\\n  {\\n    \\\"slots\\\": 1,\\n    \\\"stereotype\\\": {\\n      \\\"browserName\\\": \\\"firefox\\\",\\n      \\\"browserVersion\\\": \\\"\\\",\\n      \\\"moz:firefoxOptions\\\": {\\n        \\\"binary\\\": \\\"\\\\u002fusr\\\\u002fbin\\\\u002ffirefox\\\"\\n      },\\n      \\\"platformName\\\": \\\"linux\\\",\\n      \\\"se:containerName\\\": \\\"my-firefox-name-qt9z2-6xx86\\\",\\n      \\\"se:downloadsEnabled\\\": true,\\n      \\\"se:noVncPort\\\": 7900,\\n      \\\"se:vncEnabled\\\": true\\n    }\\n  }\\n]\",\n\t\t\t\t\t\t\t  \"sessions\": [\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t  \"id\": \"reserved\",\n\t\t\t\t\t\t\t\t  \"capabilities\": \"{\\n  \\\"browserName\\\": \\\"firefox\\\",\\n  \\\"browserVersion\\\": \\\"130.0\\\",\\n  \\\"moz:firefoxOptions\\\": {\\n    \\\"binary\\\": \\\"\\\\u002fusr\\\\u002fbin\\\\u002ffirefox\\\"\\n  },\\n  \\\"platformName\\\": \\\"linux\\\",\\n  \\\"se:containerName\\\": \\\"my-firefox-name-qt9z2-6xx86\\\",\\n  \\\"se:downloadsEnabled\\\": true,\\n  \\\"se:noVncPort\\\": 7900,\\n  \\\"se:vncEnabled\\\": true\\n}\",\n\t\t\t\t\t\t\t\t  \"slot\": {\n\t\t\t\t\t\t\t\t\t\"id\": \"38bd0b09-ffe0-46e9-8983-bd208270c8da\",\n\t\t\t\t\t\t\t\t\t\"stereotype\": \"{\\n  \\\"browserName\\\": \\\"firefox\\\",\\n  \\\"browserVersion\\\": \\\"\\\",\\n  \\\"moz:firefoxOptions\\\": {\\n    \\\"binary\\\": \\\"\\\\u002fusr\\\\u002fbin\\\\u002ffirefox\\\"\\n  },\\n  \\\"platformName\\\": \\\"linux\\\",\\n  \\\"se:containerName\\\": \\\"my-firefox-name-qt9z2-6xx86\\\",\\n  \\\"se:downloadsEnabled\\\": true,\\n  \\\"se:noVncPort\\\": 7900,\\n  \\\"se:vncEnabled\\\": true\\n}\"\n\t\t\t\t\t\t\t\t  }\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t  ]\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t  \"id\": \"e81f0038-fc72-4045-9de1-b98143053eae\",\n\t\t\t\t\t\t\t  \"status\": \"UP\",\n\t\t\t\t\t\t\t  \"sessionCount\": 1,\n\t\t\t\t\t\t\t  \"maxSession\": 1,\n\t\t\t\t\t\t\t  \"slotCount\": 1,\n\t\t\t\t\t\t\t  \"stereotypes\": \"[\\n  {\\n    \\\"slots\\\": 1,\\n    \\\"stereotype\\\": {\\n      \\\"browserName\\\": \\\"chrome\\\",\\n      \\\"browserVersion\\\": \\\"\\\",\\n      \\\"goog:chromeOptions\\\": {\\n        \\\"binary\\\": \\\"\\\\u002fusr\\\\u002fbin\\\\u002fchromium\\\"\\n      },\\n      \\\"platformName\\\": \\\"linux\\\",\\n      \\\"se:containerName\\\": \\\"my-chrome-name-v7nrv-xsfkb\\\",\\n      \\\"se:downloadsEnabled\\\": true,\\n      \\\"se:noVncPort\\\": 7900,\\n      \\\"se:vncEnabled\\\": true\\n    }\\n  }\\n]\",\n\t\t\t\t\t\t\t  \"sessions\": [\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t  \"id\": \"reserved\",\n\t\t\t\t\t\t\t\t  \"capabilities\": \"{\\n  \\\"browserName\\\": \\\"chrome\\\",\\n  \\\"browserVersion\\\": \\\"\\\",\\n  \\\"goog:chromeOptions\\\": {\\n    \\\"binary\\\": \\\"\\\\u002fusr\\\\u002fbin\\\\u002fchromium\\\"\\n  },\\n  \\\"platformName\\\": \\\"linux\\\",\\n  \\\"se:containerName\\\": \\\"my-chrome-name-v7nrv-xsfkb\\\",\\n  \\\"se:downloadsEnabled\\\": true,\\n  \\\"se:noVncPort\\\": 7900,\\n  \\\"se:vncEnabled\\\": true\\n}\",\n\t\t\t\t\t\t\t\t  \"slot\": {\n\t\t\t\t\t\t\t\t\t\"id\": \"43b992cc-39bb-4b0f-92b6-99603a543459\",\n\t\t\t\t\t\t\t\t\t\"stereotype\": \"{\\n  \\\"browserName\\\": \\\"chrome\\\",\\n  \\\"browserVersion\\\": \\\"\\\",\\n  \\\"goog:chromeOptions\\\": {\\n    \\\"binary\\\": \\\"\\\\u002fusr\\\\u002fbin\\\\u002fchromium\\\"\\n  },\\n  \\\"platformName\\\": \\\"linux\\\",\\n  \\\"se:containerName\\\": \\\"my-chrome-name-v7nrv-xsfkb\\\",\\n  \\\"se:downloadsEnabled\\\": true,\\n  \\\"se:noVncPort\\\": 7900,\\n  \\\"se:vncEnabled\\\": true\\n}\"\n\t\t\t\t\t\t\t\t  }\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t  ]\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t  ]\n\t\t\t\t\t\t},\n\t\t\t\t\t\t\"sessionsInfo\": {\n\t\t\t\t\t\t  \"sessionQueueRequests\": [\n\t\t\t\t\t\t\t\"{\\n  \\\"acceptInsecureCerts\\\": true,\\n  \\\"browserName\\\": \\\"firefox\\\",\\n  \\\"moz:debuggerAddress\\\": true,\\n  \\\"moz:firefoxOptions\\\": {\\n    \\\"prefs\\\": {\\n      \\\"remote.active-protocols\\\": 3\\n    },\\n    \\\"profile\\\": \\\"profile\\\"\\n  },\\n  \\\"pageLoadStrategy\\\": \\\"normal\\\",\\n  \\\"se:downloadsEnabled\\\": true,\\n  \\\"se:name\\\": \\\"test_accept_languages (FirefoxTests)\\\",\\n  \\\"se:recordVideo\\\": true,\\n  \\\"se:screenResolution\\\": \\\"1920x1080\\\"\\n}\",\n\t\t\t\t\t\t\t\"{\\n  \\\"acceptInsecureCerts\\\": true,\\n  \\\"browserName\\\": \\\"firefox\\\",\\n  \\\"moz:debuggerAddress\\\": true,\\n  \\\"moz:firefoxOptions\\\": {\\n    \\\"prefs\\\": {\\n      \\\"remote.active-protocols\\\": 3\\n    },\\n    \\\"profile\\\": \\\"profile\\\"\\n  },\\n  \\\"pageLoadStrategy\\\": \\\"normal\\\",\\n  \\\"se:downloadsEnabled\\\": true,\\n  \\\"se:name\\\": \\\"test_play_video (FirefoxTests)\\\",\\n  \\\"se:recordVideo\\\": true,\\n  \\\"se:screenResolution\\\": \\\"1920x1080\\\"\\n}\"\n\t\t\t\t\t\t  ]\n\t\t\t\t\t\t}\n\t\t\t\t\t  }\n\t\t\t\t\t}\n\t\t\t\t`),\n\t\t\t\tbrowserName:            \"firefox\",\n\t\t\t\tsessionBrowserName:     \"firefox\",\n\t\t\t\tbrowserVersion:         \"\",\n\t\t\t\tenableManagedDownloads: true,\n\t\t\t\tplatformName:           \"linux\",\n\t\t\t},\n\t\t\twantNewRequestNodes: 0,\n\t\t\twantOnGoingSessions: 4,\n\t\t\twantErr:             false,\n\t\t},\n\t\t{\n\t\t\tname: \"1_sessionQueueRequests_and_1_available_nodeStereotypes_with_matching_browserName_chrome_should_return_count_as_0\",\n\t\t\targs: args{\n\t\t\t\tb: []byte(`{\n\t\t\t\t  \"data\": {\n\t\t\t\t\t\"grid\": {\n\t\t\t\t\t  \"sessionCount\": 0,\n\t\t\t\t\t  \"maxSession\": 0,\n\t\t\t\t\t  \"totalSlots\": 0\n\t\t\t\t\t},\n\t\t\t\t\t\"nodesInfo\": {\n\t\t\t\t\t  \"nodes\": [\n\t\t\t\t\t\t{\n\t\t\t\t\t\t  \"id\": \"f3e67bf7-3c40-42d4-ab10-666b49c88925\",\n\t\t\t\t\t\t  \"status\": \"UP\",\n\t\t\t\t\t\t  \"sessionCount\": 0,\n\t\t\t\t\t\t  \"maxSession\": 1,\n\t\t\t\t\t\t  \"slotCount\": 1,\n\t\t\t\t\t\t  \"stereotypes\": \"[\\n  {\\n    \\\"slots\\\": 1,\\n    \\\"stereotype\\\": {\\n      \\\"browserName\\\": \\\"chrome\\\",\\n      \\\"browserVersion\\\": \\\"128.0\\\",\\n      \\\"goog:chromeOptions\\\": {\\n        \\\"binary\\\": \\\"\\\\u002fusr\\\\u002fbin\\\\u002fchromium\\\"\\n      },\\n      \\\"platformName\\\": \\\"linux\\\",\\n      \\\"se:containerName\\\": \\\"my-chrome-name-xh95p-9c2cl\\\",\\n      \\\"se:downloadsEnabled\\\": true,\\n      \\\"se:noVncPort\\\": 7900,\\n      \\\"se:vncEnabled\\\": true\\n    }\\n  }\\n]\",\n\t\t\t\t\t\t  \"sessions\": []\n\t\t\t\t\t\t},\n\t\t\t\t\t\t{\n\t\t\t\t\t\t  \"id\": \"451442d0-3649-4b21-a5a5-32bc847f1765\",\n\t\t\t\t\t\t  \"status\": \"UP\",\n\t\t\t\t\t\t  \"sessionCount\": 0,\n\t\t\t\t\t\t  \"maxSession\": 1,\n\t\t\t\t\t\t  \"slotCount\": 1,\n\t\t\t\t\t\t  \"stereotypes\": \"[\\n  {\\n    \\\"slots\\\": 1,\\n    \\\"stereotype\\\": {\\n      \\\"browserName\\\": \\\"firefox\\\",\\n      \\\"browserVersion\\\": \\\"130.0\\\",\\n      \\\"moz:firefoxOptions\\\": {\\n        \\\"binary\\\": \\\"\\\\u002fusr\\\\u002fbin\\\\u002ffirefox\\\"\\n      },\\n      \\\"platformName\\\": \\\"linux\\\",\\n      \\\"se:containerName\\\": \\\"my-firefox-name-42xbf-zpdd4\\\",\\n      \\\"se:downloadsEnabled\\\": true,\\n      \\\"se:noVncPort\\\": 7900,\\n      \\\"se:vncEnabled\\\": true\\n    }\\n  }\\n]\",\n\t\t\t\t\t\t  \"sessions\": []\n\t\t\t\t\t\t}\n\t\t\t\t\t  ]\n\t\t\t\t\t},\n\t\t\t\t\t\"sessionsInfo\": {\n\t\t\t\t\t  \"sessionQueueRequests\": [\n\t\t\t\t\t\t\"{\\n  \\\"acceptInsecureCerts\\\": true,\\n  \\\"browserName\\\": \\\"firefox\\\",\\n  \\\"moz:debuggerAddress\\\": true,\\n  \\\"moz:firefoxOptions\\\": {\\n    \\\"prefs\\\": {\\n      \\\"remote.active-protocols\\\": 3\\n    },\\n    \\\"profile\\\": \\\"profile\\\"\\n  },\\n  \\\"pageLoadStrategy\\\": \\\"normal\\\",\\n  \\\"se:downloadsEnabled\\\": true,\\n  \\\"se:name\\\": \\\"test_accept_languages (FirefoxTests)\\\",\\n  \\\"se:recordVideo\\\": true,\\n  \\\"se:screenResolution\\\": \\\"1920x1080\\\"\\n}\",\n\t\t\t\t\t\t\"{\\n  \\\"browserName\\\": \\\"chrome\\\",\\n  \\\"goog:chromeOptions\\\": {\\n    \\\"extensions\\\": [\\n    ],\\n    \\\"args\\\": [\\n      \\\"disable-features=DownloadBubble,DownloadBubbleV2\\\"\\n    ]\\n  },\\n  \\\"pageLoadStrategy\\\": \\\"normal\\\",\\n  \\\"platformName\\\": \\\"linux\\\",\\n  \\\"se:downloadsEnabled\\\": true,\\n  \\\"se:name\\\": \\\"test_visit_basic_auth_secured_page (ChromeTests)\\\",\\n  \\\"se:recordVideo\\\": true,\\n  \\\"se:screenResolution\\\": \\\"1920x1080\\\"\\n}\"\n\t\t\t\t\t  ]\n\t\t\t\t\t}\n\t\t\t\t  }\n\t\t\t\t}\n\t\t\t\t`),\n\t\t\t\tbrowserName:            \"chrome\",\n\t\t\t\tsessionBrowserName:     \"chrome\",\n\t\t\t\tbrowserVersion:         \"\",\n\t\t\t\tenableManagedDownloads: true,\n\t\t\t\tplatformName:           \"linux\",\n\t\t\t},\n\t\t\twantNewRequestNodes: 1,\n\t\t\twantOnGoingSessions: 0,\n\t\t\twantErr:             false,\n\t\t},\n\t\t{\n\t\t\tname: `Given_2_requests_with_explicit_name_version_platform_When_2_existing_node_with_platform_not_matching_And_scaler_metadata_with_browser_version_as_latest_Then_scaler_should_not_scale_up_and_return_0`,\n\t\t\targs: args{\n\t\t\t\tb: []byte(`{\n\t\t\t\t  \"data\": {\n\t\t\t\t\t\"grid\": {\n\t\t\t\t\t  \"sessionCount\": 0,\n\t\t\t\t\t  \"maxSession\": 2,\n\t\t\t\t\t  \"totalSlots\": 2\n\t\t\t\t\t},\n\t\t\t\t\t\"nodesInfo\": {\n\t\t\t\t\t  \"nodes\": [\n\t\t\t\t\t\t{\n\t\t\t\t\t\t  \"id\": \"node-1\",\n\t\t\t\t\t\t  \"status\": \"UP\",\n\t\t\t\t\t\t  \"sessionCount\": 0,\n\t\t\t\t\t\t  \"maxSession\": 1,\n\t\t\t\t\t\t  \"slotCount\": 1,\n\t\t\t\t\t\t  \"stereotypes\": \"[{\\\"slots\\\": 1, \\\"stereotype\\\": {\\\"browserName\\\": \\\"chrome\\\", \\\"browserVersion\\\": \\\"128.0\\\", \\\"platformName\\\": \\\"Windows 11\\\"}}]\",\n\t\t\t\t\t\t  \"sessions\": []\n\t\t\t\t\t\t},\n\t\t\t\t\t\t{\n\t\t\t\t\t\t  \"id\": \"node-2\",\n\t\t\t\t\t\t  \"status\": \"UP\",\n\t\t\t\t\t\t  \"sessionCount\": 0,\n\t\t\t\t\t\t  \"maxSession\": 1,\n\t\t\t\t\t\t  \"slotCount\": 1,\n\t\t\t\t\t\t  \"stereotypes\": \"[{\\\"slots\\\": 1, \\\"stereotype\\\": {\\\"browserName\\\": \\\"firefox\\\", \\\"browserVersion\\\": \\\"130.0\\\", \\\"platformName\\\": \\\"Windows 11\\\"}}]\",\n\t\t\t\t\t\t  \"sessions\": []\n\t\t\t\t\t\t}\n\t\t\t\t\t  ]\n\t\t\t\t\t},\n\t\t\t\t\t\"sessionsInfo\": {\n\t\t\t\t\t  \"sessionQueueRequests\": [\n\t\t\t\t\t\t\"{\\\"browserName\\\": \\\"firefox\\\", \\\"browserVersion\\\": \\\"130.0\\\", \\\"platformName\\\": \\\"Linux\\\"}\",\n\t\t\t\t\t\t\"{\\\"browserName\\\": \\\"chrome\\\", \\\"browserVersion\\\": \\\"128.0\\\", \\\"platformName\\\": \\\"Linux\\\"}\"\n\t\t\t\t\t  ]\n\t\t\t\t\t}\n\t\t\t\t  }\n\t\t\t\t}\n\t\t\t\t`),\n\t\t\t\tbrowserName:        \"chrome\",\n\t\t\t\tsessionBrowserName: \"chrome\",\n\t\t\t\tbrowserVersion:     \"\",\n\t\t\t\tplatformName:       \"linux\",\n\t\t\t},\n\t\t\twantNewRequestNodes: 0,\n\t\t\twantOnGoingSessions: 0,\n\t\t\twantErr:             false,\n\t\t},\n\t\t{\n\t\t\tname: \"scaler_browserVersion_is_latest,_2_sessionQueueRequests_without_browserVersion,_2_available_nodeStereotypes_with_different_versions_and_platforms,_should_return_count_as_1\",\n\t\t\targs: args{\n\t\t\t\tb: []byte(`{\n                    \"data\": {\n                        \"grid\": {\n                            \"sessionCount\": 0,\n                            \"maxSession\": 0,\n                            \"totalSlots\": 0\n                        },\n                        \"nodesInfo\": {\n                            \"nodes\": [\n                                {\n                                    \"id\": \"node-1\",\n                                    \"status\": \"UP\",\n                                    \"sessionCount\": 0,\n                                    \"maxSession\": 1,\n                                    \"slotCount\": 1,\n                                    \"stereotypes\": \"[{\\\"slots\\\": 1, \\\"stereotype\\\": {\\\"browserName\\\": \\\"chrome\\\", \\\"browserVersion\\\": \\\"\\\", \\\"platformName\\\": \\\"linux\\\"}}]\",\n                                    \"sessions\": []\n                                },\n                                {\n                                    \"id\": \"node-2\",\n                                    \"status\": \"UP\",\n                                    \"sessionCount\": 0,\n                                    \"maxSession\": 1,\n                                    \"slotCount\": 1,\n                                    \"stereotypes\": \"[{\\\"slots\\\": 1, \\\"stereotype\\\": {\\\"browserName\\\": \\\"chrome\\\", \\\"browserVersion\\\": \\\"\\\", \\\"platformName\\\": \\\"Windows 11\\\"}}]\",\n                                    \"sessions\": []\n                                }\n                            ]\n                        },\n                        \"sessionsInfo\": {\n                            \"sessionQueueRequests\": [\n                                \"{\\\"browserName\\\": \\\"chrome\\\", \\\"platformName\\\": \\\"linux\\\"}\",\n                                \"{\\\"browserName\\\": \\\"chrome\\\", \\\"platformName\\\": \\\"linux\\\"}\"\n                            ]\n                        }\n                    }\n                }`),\n\t\t\t\tbrowserName:        \"chrome\",\n\t\t\t\tsessionBrowserName: \"chrome\",\n\t\t\t\tbrowserVersion:     \"\",\n\t\t\t\tplatformName:       \"linux\",\n\t\t\t},\n\t\t\twantNewRequestNodes: 1,\n\t\t\twantOnGoingSessions: 0,\n\t\t\twantErr:             false,\n\t\t},\n\t\t{\n\t\t\tname: \"scaler_browserVersion_is_latest,_5_sessionQueueRequests_wihtout_browserVersion_also_1_different_platformName,_1_available_nodeStereotypes_with_3_slots_Linux_and_1_node_Windows,_should_return_count_as_1\",\n\t\t\targs: args{\n\t\t\t\tb: []byte(`{\n                    \"data\": {\n                        \"grid\": {\n                            \"sessionCount\": 0,\n                            \"maxSession\": 6,\n                            \"totalSlots\": 6\n                        },\n                        \"nodesInfo\": {\n                            \"nodes\": [\n                                {\n                                    \"id\": \"node-1\",\n                                    \"status\": \"UP\",\n                                    \"sessionCount\": 0,\n                                    \"maxSession\": 3,\n                                    \"slotCount\": 3,\n                                    \"stereotypes\": \"[{\\\"slots\\\": 3, \\\"stereotype\\\": {\\\"browserName\\\": \\\"chrome\\\", \\\"browserVersion\\\": \\\"\\\", \\\"platformName\\\": \\\"linux\\\"}}]\",\n                                    \"sessions\": []\n                                },\n                                {\n                                    \"id\": \"node-2\",\n                                    \"status\": \"UP\",\n                                    \"sessionCount\": 0,\n                                    \"maxSession\": 3,\n                                    \"slotCount\": 3,\n                                    \"stereotypes\": \"[{\\\"slots\\\": 3, \\\"stereotype\\\": {\\\"browserName\\\": \\\"chrome\\\", \\\"browserVersion\\\": \\\"\\\", \\\"platformName\\\": \\\"Windows 11\\\"}}]\",\n                                    \"sessions\": []\n                                }\n                            ]\n                        },\n                        \"sessionsInfo\": {\n                            \"sessionQueueRequests\": [\n                                \"{\\\"browserName\\\": \\\"chrome\\\", \\\"platformName\\\": \\\"linux\\\"}\",\n                                \"{\\\"browserName\\\": \\\"chrome\\\", \\\"platformName\\\": \\\"linux\\\"}\",\n                                \"{\\\"browserName\\\": \\\"chrome\\\", \\\"platformName\\\": \\\"linux\\\"}\",\n                                \"{\\\"browserName\\\": \\\"chrome\\\", \\\"platformName\\\": \\\"linux\\\"}\",\n                                \"{\\\"browserName\\\": \\\"chrome\\\", \\\"platformName\\\": \\\"Windows 11\\\"}\"\n                            ]\n                        }\n                    }\n                }`),\n\t\t\t\tbrowserName:        \"chrome\",\n\t\t\t\tsessionBrowserName: \"chrome\",\n\t\t\t\tbrowserVersion:     \"\",\n\t\t\t\tplatformName:       \"linux\",\n\t\t\t},\n\t\t\twantNewRequestNodes: 1,\n\t\t\twantOnGoingSessions: 0,\n\t\t\twantErr:             false,\n\t\t},\n\t\t{\n\t\t\tname: \"queue request with browserName browserVersion and browserVersion but no available nodes should return count as 1\",\n\t\t\targs: args{\n\t\t\t\tb: []byte(`{\n\t\t\t\t\t\"data\": {\n\t\t\t\t\t\t\"grid\": {\n\t\t\t\t\t\t\t\"sessionCount\": 1,\n\t\t\t\t\t\t\t\"maxSession\": 1,\n\t\t\t\t\t\t\t\"totalSlots\": 1\n\t\t\t\t\t\t},\n\t\t\t\t\t\t\"nodesInfo\": {\n\t\t\t\t\t\t\t\"nodes\": [\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\"id\": \"node-1\",\n\t\t\t\t\t\t\t\t\t\"status\": \"UP\",\n\t\t\t\t\t\t\t\t\t\"sessionCount\": 1,\n\t\t\t\t\t\t\t\t\t\"maxSession\": 1,\n\t\t\t\t\t\t\t\t\t\"slotCount\": 1,\n\t\t\t\t\t\t\t\t\t\"stereotypes\": \"[{\\\"slots\\\": 1, \\\"stereotype\\\": {\\\"browserName\\\": \\\"firefox\\\", \\\"browserVersion\\\": \\\"91.0\\\", \\\"platformName\\\": \\\"linux\\\"}}]\",\n\t\t\t\t\t\t\t\t\t\"sessions\": [\n\t\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\t\t\"id\": \"session-1\",\n\t\t\t\t\t\t\t\t\t\t\t\"capabilities\": \"{\\\"browserName\\\": \\\"firefox\\\", \\\"browserVersion\\\": \\\"91.0\\\", \\\"platformName\\\": \\\"linux\\\"}\",\n\t\t\t\t\t\t\t\t\t\t\t\"slot\": {\n\t\t\t\t\t\t\t\t\t\t\t\t\"id\": \"9ce1edba-72fb-465e-b311-ee473d8d7b64\",\n\t\t\t\t\t\t\t\t\t\t\t\t\"stereotype\": \"{\\\"browserName\\\": \\\"firefox\\\", \\\"browserVersion\\\": \\\"91.0\\\", \\\"platformName\\\": \\\"linux\\\"}\"\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t]\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t]\n\t\t\t\t\t\t},\n\t\t\t\t\t\t\"sessionsInfo\": {\n\t\t\t\t\t\t\t\"sessionQueueRequests\": [\n\t\t\t\t\t\t\t\t\"{\\\"browserName\\\": \\\"chrome\\\", \\\"browserVersion\\\": \\\"91.0\\\", \\\"platformName\\\": \\\"linux\\\"}\"\n\t\t\t\t\t\t\t]\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}`),\n\t\t\t\tbrowserName:        \"chrome\",\n\t\t\t\tsessionBrowserName: \"chrome\",\n\t\t\t\tbrowserVersion:     \"91.0\",\n\t\t\t\tplatformName:       \"linux\",\n\t\t\t},\n\t\t\twantNewRequestNodes: 1,\n\t\t\twantOnGoingSessions: 0,\n\t\t\twantErr:             false,\n\t\t},\n\t\t{\n\t\t\tname: \"1 queue request with browserName browserVersion and browserVersion but 2 nodes without available slots should return count as 1\",\n\t\t\targs: args{\n\t\t\t\tb: []byte(`{\n\t\t\t\t\t\"data\": {\n\t\t\t\t\t\t\"grid\": {\n\t\t\t\t\t\t\t\"sessionCount\": 2,\n\t\t\t\t\t\t\t\"maxSession\": 2,\n\t\t\t\t\t\t\t\"totalSlots\": 2\n\t\t\t\t\t\t},\n\t\t\t\t\t\t\"nodesInfo\": {\n\t\t\t\t\t\t\t\"nodes\": [\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\"id\": \"node-1\",\n\t\t\t\t\t\t\t\t\t\"status\": \"UP\",\n\t\t\t\t\t\t\t\t\t\"sessionCount\": 1,\n\t\t\t\t\t\t\t\t\t\"maxSession\": 1,\n\t\t\t\t\t\t\t\t\t\"slotCount\": 1,\n\t\t\t\t\t\t\t\t\t\"stereotypes\": \"[{\\\"slots\\\": 1, \\\"stereotype\\\": {\\\"browserName\\\": \\\"chrome\\\", \\\"browserVersion\\\": \\\"91.0\\\", \\\"platformName\\\": \\\"linux\\\"}}]\",\n\t\t\t\t\t\t\t\t\t\"sessions\": [\n\t\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\t\t\"id\": \"session-1\",\n\t\t\t\t\t\t\t\t\t\t\t\"capabilities\": \"{\\\"browserName\\\": \\\"chrome\\\", \\\"browserVersion\\\": \\\"91.0\\\", \\\"platformName\\\": \\\"linux\\\"}\",\n\t\t\t\t\t\t\t\t\t\t\t\"slot\": {\n\t\t\t\t\t\t\t\t\t\t\t\t\"id\": \"9ce1edba-72fb-465e-b311-ee473d8d7b64\",\n\t\t\t\t\t\t\t\t\t\t\t\t\"stereotype\": \"{\\\"browserName\\\": \\\"chrome\\\", \\\"browserVersion\\\": \\\"91.0\\\", \\\"platformName\\\": \\\"linux\\\"}\"\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t]\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\"id\": \"node-2\",\n\t\t\t\t\t\t\t\t\t\"status\": \"UP\",\n\t\t\t\t\t\t\t\t\t\"sessionCount\": 1,\n\t\t\t\t\t\t\t\t\t\"maxSession\": 1,\n\t\t\t\t\t\t\t\t\t\"slotCount\": 1,\n\t\t\t\t\t\t\t\t\t\"stereotypes\": \"[{\\\"slots\\\": 1, \\\"stereotype\\\": {\\\"browserName\\\": \\\"chrome\\\", \\\"browserVersion\\\": \\\"91.0\\\", \\\"platformName\\\": \\\"linux\\\"}}]\",\n\t\t\t\t\t\t\t\t\t\"sessions\": [\n\t\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\t\t\"id\": \"session-2\",\n\t\t\t\t\t\t\t\t\t\t\t\"capabilities\": \"{\\\"browserName\\\": \\\"chrome\\\", \\\"browserVersion\\\": \\\"91.0\\\", \\\"platformName\\\": \\\"linux\\\"}\",\n\t\t\t\t\t\t\t\t\t\t\t\"slot\": {\n\t\t\t\t\t\t\t\t\t\t\t\t\"id\": \"9ce1edba-72fb-465e-b311-ee473d8d7b64\",\n\t\t\t\t\t\t\t\t\t\t\t\t\"stereotype\": \"{\\\"browserName\\\": \\\"chrome\\\", \\\"browserVersion\\\": \\\"91.0\\\", \\\"platformName\\\": \\\"linux\\\"}\"\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t]\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t]\n\t\t\t\t\t\t},\n\t\t\t\t\t\t\"sessionsInfo\": {\n\t\t\t\t\t\t\t\"sessionQueueRequests\": [\n\t\t\t\t\t\t\t\t\"{\\\"browserName\\\": \\\"chrome\\\", \\\"browserVersion\\\": \\\"91.0\\\", \\\"platformName\\\": \\\"linux\\\"}\"\n\t\t\t\t\t\t\t]\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}`),\n\t\t\t\tbrowserName:        \"chrome\",\n\t\t\t\tsessionBrowserName: \"chrome\",\n\t\t\t\tbrowserVersion:     \"91.0\",\n\t\t\t\tplatformName:       \"linux\",\n\t\t\t},\n\t\t\twantNewRequestNodes: 1,\n\t\t\twantOnGoingSessions: 2,\n\t\t\twantErr:             false,\n\t\t},\n\t\t{\n\t\t\tname: \"2 session queue with matching browsername and browserversion of 2 available slots should return count as 0\",\n\t\t\targs: args{\n\t\t\t\tb: []byte(`{\n\t\t\t\t\t\"data\": {\n\t\t\t\t\t\t\"grid\": {\n\t\t\t\t\t\t\t\"sessionCount\": 0,\n\t\t\t\t\t\t\t\"maxSession\": 2,\n\t\t\t\t\t\t\t\"totalSlots\": 2\n\t\t\t\t\t\t},\n\t\t\t\t\t\t\"nodesInfo\": {\n\t\t\t\t\t\t\t\"nodes\": [\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\"id\": \"node-1\",\n\t\t\t\t\t\t\t\t\t\"status\": \"UP\",\n\t\t\t\t\t\t\t\t\t\"sessionCount\": 0,\n\t\t\t\t\t\t\t\t\t\"maxSession\": 1,\n\t\t\t\t\t\t\t\t\t\"slotCount\": 1,\n\t\t\t\t\t\t\t\t\t\"stereotypes\": \"[{\\\"slots\\\": 1, \\\"stereotype\\\": {\\\"browserName\\\": \\\"chrome\\\", \\\"browserVersion\\\": \\\"91.0\\\", \\\"platformName\\\": \\\"linux\\\"}}]\",\n\t\t\t\t\t\t\t\t\t\"sessions\": []\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\"id\": \"node-2\",\n\t\t\t\t\t\t\t\t\t\"status\": \"UP\",\n\t\t\t\t\t\t\t\t\t\"sessionCount\": 0,\n\t\t\t\t\t\t\t\t\t\"maxSession\": 1,\n\t\t\t\t\t\t\t\t\t\"slotCount\": 1,\n\t\t\t\t\t\t\t\t\t\"stereotypes\": \"[{\\\"slots\\\": 1, \\\"stereotype\\\": {\\\"browserName\\\": \\\"chrome\\\", \\\"browserVersion\\\": \\\"91.0\\\", \\\"platformName\\\": \\\"linux\\\"}}]\",\n\t\t\t\t\t\t\t\t\t\"sessions\": []\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t]\n\t\t\t\t\t\t},\n\t\t\t\t\t\t\"sessionsInfo\": {\n\t\t\t\t\t\t\t\"sessionQueueRequests\": [\n\t\t\t\t\t\t\t\t\"{\\\"browserName\\\": \\\"chrome\\\", \\\"browserVersion\\\": \\\"91.0\\\", \\\"platformName\\\": \\\"linux\\\"}\",\n\t\t\t\t\t\t\t\t\"{\\\"browserName\\\": \\\"chrome\\\", \\\"browserVersion\\\": \\\"91.0\\\", \\\"platformName\\\": \\\"linux\\\"}\"\n\t\t\t\t\t\t\t]\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}`),\n\t\t\t\tbrowserName:        \"chrome\",\n\t\t\t\tsessionBrowserName: \"chrome\",\n\t\t\t\tbrowserVersion:     \"91.0\",\n\t\t\t\tplatformName:       \"linux\",\n\t\t\t},\n\t\t\twantNewRequestNodes: 0,\n\t\t\twantOnGoingSessions: 0,\n\t\t\twantErr:             false,\n\t\t},\n\t\t{\n\t\t\tname: \"2 queue requests with browserName browserVersion and platformName matching 2 available slots on 2 different nodes should return count as 0\",\n\t\t\targs: args{\n\t\t\t\tb: []byte(`{\n\t\t\t\t\t\"data\": {\n\t\t\t\t\t\t\"grid\": {\n\t\t\t\t\t\t\t\"sessionCount\": 2,\n\t\t\t\t\t\t\t\"maxSession\": 4,\n\t\t\t\t\t\t\t\"totalSlots\": 4\n\t\t\t\t\t\t},\n\t\t\t\t\t\t\"nodesInfo\": {\n\t\t\t\t\t\t\t\"nodes\": [\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\"id\": \"node-1\",\n\t\t\t\t\t\t\t\t\t\"status\": \"UP\",\n\t\t\t\t\t\t\t\t\t\"sessionCount\": 1,\n\t\t\t\t\t\t\t\t\t\"maxSession\": 2,\n\t\t\t\t\t\t\t\t\t\"slotCount\": 2,\n\t\t\t\t\t\t\t\t\t\"stereotypes\": \"[{\\\"slots\\\": 2, \\\"stereotype\\\": {\\\"browserName\\\": \\\"chrome\\\", \\\"browserVersion\\\": \\\"91.0\\\", \\\"platformName\\\": \\\"linux\\\"}}]\",\n\t\t\t\t\t\t\t\t\t\"sessions\": [\n\t\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\t\t\"id\": \"session-1\",\n\t\t\t\t\t\t\t\t\t\t\t\"capabilities\": \"{\\\"browserName\\\": \\\"chrome\\\", \\\"browserVersion\\\": \\\"91.0\\\", \\\"platformName\\\": \\\"linux\\\"}\",\n\t\t\t\t\t\t\t\t\t\t\t\"slot\": {\n\t\t\t\t\t\t\t\t\t\t\t\t\"id\": \"9ce1edba-72fb-465e-b311-ee473d8d7b64\",\n\t\t\t\t\t\t\t\t\t\t\t\t\"stereotype\": \"{\\\"browserName\\\": \\\"chrome\\\", \\\"browserVersion\\\": \\\"91.0\\\", \\\"platformName\\\": \\\"linux\\\"}\"\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t]\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\"id\": \"node-2\",\n\t\t\t\t\t\t\t\t\t\"status\": \"UP\",\n\t\t\t\t\t\t\t\t\t\"sessionCount\": 1,\n\t\t\t\t\t\t\t\t\t\"maxSession\": 2,\n\t\t\t\t\t\t\t\t\t\"slotCount\": 2,\n\t\t\t\t\t\t\t\t\t\"stereotypes\": \"[{\\\"slots\\\": 2, \\\"stereotype\\\": {\\\"browserName\\\": \\\"chrome\\\", \\\"browserVersion\\\": \\\"91.0\\\", \\\"platformName\\\": \\\"linux\\\"}}]\",\n\t\t\t\t\t\t\t\t\t\"sessions\": [\n\t\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\t\t\"id\": \"session-2\",\n\t\t\t\t\t\t\t\t\t\t\t\"capabilities\": \"{\\\"browserName\\\": \\\"chrome\\\", \\\"browserVersion\\\": \\\"91.0\\\", \\\"platformName\\\": \\\"linux\\\"}\",\n\t\t\t\t\t\t\t\t\t\t\t\"slot\": {\n\t\t\t\t\t\t\t\t\t\t\t\t\"id\": \"9ce1edba-72fb-465e-b311-ee473d8d7b64\",\n\t\t\t\t\t\t\t\t\t\t\t\t\"stereotype\": \"{\\\"browserName\\\": \\\"chrome\\\", \\\"browserVersion\\\": \\\"91.0\\\", \\\"platformName\\\": \\\"linux\\\"}\"\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t]\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t]\n\t\t\t\t\t\t},\n\t\t\t\t\t\t\"sessionsInfo\": {\n\t\t\t\t\t\t\t\"sessionQueueRequests\": [\n\t\t\t\t\t\t\t\t\"{\\\"browserName\\\": \\\"chrome\\\", \\\"browserVersion\\\": \\\"91.0\\\", \\\"platformName\\\": \\\"linux\\\"}\",\n\t\t\t\t\t\t\t\t\"{\\\"browserName\\\": \\\"chrome\\\", \\\"browserVersion\\\": \\\"91.0\\\", \\\"platformName\\\": \\\"linux\\\"}\"\n\t\t\t\t\t\t\t]\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}`),\n\t\t\t\tbrowserName:        \"chrome\",\n\t\t\t\tsessionBrowserName: \"chrome\",\n\t\t\t\tbrowserVersion:     \"91.0\",\n\t\t\t\tplatformName:       \"linux\",\n\t\t\t},\n\t\t\twantNewRequestNodes: 0,\n\t\t\twantOnGoingSessions: 2,\n\t\t\twantErr:             false,\n\t\t},\n\t\t{\n\t\t\tname: \"1 queue request with browserName browserVersion and platformName matching 1 available slot on node has 3 max sessions should return count as 0\",\n\t\t\targs: args{\n\t\t\t\tb: []byte(`{\n\t\t\t\t\t\"data\": {\n\t\t\t\t\t\t\"grid\": {\n\t\t\t\t\t\t\t\"sessionCount\": 2,\n\t\t\t\t\t\t\t\"maxSession\": 3,\n\t\t\t\t\t\t\t\"totalSlots\": 3\n\t\t\t\t\t\t},\n\t\t\t\t\t\t\"nodesInfo\": {\n\t\t\t\t\t\t\t\"nodes\": [\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\"id\": \"node-1\",\n\t\t\t\t\t\t\t\t\t\"status\": \"UP\",\n\t\t\t\t\t\t\t\t\t\"sessionCount\": 2,\n\t\t\t\t\t\t\t\t\t\"maxSession\": 3,\n\t\t\t\t\t\t\t\t\t\"slotCount\": 3,\n\t\t\t\t\t\t\t\t\t\"stereotypes\": \"[{\\\"slots\\\": 3, \\\"stereotype\\\": {\\\"browserName\\\": \\\"chrome\\\", \\\"browserVersion\\\": \\\"91.0\\\", \\\"platformName\\\": \\\"linux\\\"}}]\",\n\t\t\t\t\t\t\t\t\t\"sessions\": [\n\t\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\t\t\"id\": \"session-1\",\n\t\t\t\t\t\t\t\t\t\t\t\"capabilities\": \"{\\\"browserName\\\": \\\"chrome\\\", \\\"browserVersion\\\": \\\"91.0\\\", \\\"platformName\\\": \\\"linux\\\"}\",\n\t\t\t\t\t\t\t\t\t\t\t\"slot\": {\n\t\t\t\t\t\t\t\t\t\t\t\t\"id\": \"9ce1edba-72fb-465e-b311-ee473d8d7b64\",\n\t\t\t\t\t\t\t\t\t\t\t\t\"stereotype\": \"{\\\"browserName\\\": \\\"chrome\\\", \\\"browserVersion\\\": \\\"91.0\\\", \\\"platformName\\\": \\\"linux\\\"}\"\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\t\t\"id\": \"session-2\",\n\t\t\t\t\t\t\t\t\t\t\t\"capabilities\": \"{\\\"browserName\\\": \\\"chrome\\\", \\\"browserVersion\\\": \\\"91.0\\\", \\\"platformName\\\": \\\"linux\\\"}\",\n\t\t\t\t\t\t\t\t\t\t\t\"slot\": {\n\t\t\t\t\t\t\t\t\t\t\t\t\"id\": \"9ce1edba-72fb-465e-b311-ee473d8d7b64\",\n\t\t\t\t\t\t\t\t\t\t\t\t\"stereotype\": \"{\\\"browserName\\\": \\\"chrome\\\", \\\"browserVersion\\\": \\\"91.0\\\", \\\"platformName\\\": \\\"linux\\\"}\"\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t]\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t]\n\t\t\t\t\t\t},\n\t\t\t\t\t\t\"sessionsInfo\": {\n\t\t\t\t\t\t\t\"sessionQueueRequests\": [\n\t\t\t\t\t\t\t\t\"{\\\"browserName\\\": \\\"chrome\\\", \\\"browserVersion\\\": \\\"91.0\\\", \\\"platformName\\\": \\\"linux\\\"}\"\n\t\t\t\t\t\t\t]\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}`),\n\t\t\t\tbrowserName:        \"chrome\",\n\t\t\t\tsessionBrowserName: \"chrome\",\n\t\t\t\tbrowserVersion:     \"91.0\",\n\t\t\t\tplatformName:       \"linux\",\n\t\t\t},\n\t\t\twantNewRequestNodes: 0,\n\t\t\twantOnGoingSessions: 2,\n\t\t\twantErr:             false,\n\t\t},\n\t\t{\n\t\t\tname: \"3 queue requests with browserName browserVersion and platformName but 2 running nodes are busy should return count as 3\",\n\t\t\targs: args{\n\t\t\t\tb: []byte(`{\n\t\t\t\t\t\"data\": {\n\t\t\t\t\t\t\"grid\": {\n\t\t\t\t\t\t\t\"sessionCount\": 2,\n\t\t\t\t\t\t\t\"maxSession\": 2,\n\t\t\t\t\t\t\t\"totalSlots\": 2\n\t\t\t\t\t\t},\n\t\t\t\t\t\t\"nodesInfo\": {\n\t\t\t\t\t\t\t\"nodes\": [\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\"id\": \"node-1\",\n\t\t\t\t\t\t\t\t\t\"status\": \"UP\",\n\t\t\t\t\t\t\t\t\t\"sessionCount\": 1,\n\t\t\t\t\t\t\t\t\t\"maxSession\": 1,\n\t\t\t\t\t\t\t\t\t\"slotCount\": 1,\n\t\t\t\t\t\t\t\t\t\"stereotypes\": \"[{\\\"slots\\\": 1, \\\"stereotype\\\": {\\\"browserName\\\": \\\"chrome\\\", \\\"browserVersion\\\": \\\"91.0\\\", \\\"platformName\\\": \\\"linux\\\"}}]\",\n\t\t\t\t\t\t\t\t\t\"sessions\": [\n\t\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\t\t\"id\": \"session-1\",\n\t\t\t\t\t\t\t\t\t\t\t\"capabilities\": \"{\\\"browserName\\\": \\\"chrome\\\", \\\"browserVersion\\\": \\\"91.0\\\", \\\"platformName\\\": \\\"linux\\\"}\",\n\t\t\t\t\t\t\t\t\t\t\t\"slot\": {\n\t\t\t\t\t\t\t\t\t\t\t\t\"id\": \"9ce1edba-72fb-465e-b311-ee473d8d7b64\",\n\t\t\t\t\t\t\t\t\t\t\t\t\"stereotype\": \"{\\\"browserName\\\": \\\"chrome\\\", \\\"browserVersion\\\": \\\"91.0\\\", \\\"platformName\\\": \\\"linux\\\"}\"\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t]\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\"id\": \"node-2\",\n\t\t\t\t\t\t\t\t\t\"status\": \"UP\",\n\t\t\t\t\t\t\t\t\t\"sessionCount\": 1,\n\t\t\t\t\t\t\t\t\t\"maxSession\": 1,\n\t\t\t\t\t\t\t\t\t\"slotCount\": 1,\n\t\t\t\t\t\t\t\t\t\"stereotypes\": \"[{\\\"slots\\\": 1, \\\"stereotype\\\": {\\\"browserName\\\": \\\"chrome\\\", \\\"browserVersion\\\": \\\"91.0\\\", \\\"platformName\\\": \\\"linux\\\"}}]\",\n\t\t\t\t\t\t\t\t\t\"sessions\": [\n\t\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\t\t\"id\": \"session-2\",\n\t\t\t\t\t\t\t\t\t\t\t\"capabilities\": \"{\\\"browserName\\\": \\\"chrome\\\", \\\"browserVersion\\\": \\\"91.0\\\", \\\"platformName\\\": \\\"linux\\\"}\",\n\t\t\t\t\t\t\t\t\t\t\t\"slot\": {\n\t\t\t\t\t\t\t\t\t\t\t\t\"id\": \"9ce1edba-72fb-465e-b311-ee473d8d7b64\",\n\t\t\t\t\t\t\t\t\t\t\t\t\"stereotype\": \"{\\\"browserName\\\": \\\"chrome\\\", \\\"browserVersion\\\": \\\"91.0\\\", \\\"platformName\\\": \\\"linux\\\"}\"\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t]\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t]\n\t\t\t\t\t\t},\n\t\t\t\t\t\t\"sessionsInfo\": {\n\t\t\t\t\t\t\t\"sessionQueueRequests\": [\n\t\t\t\t\t\t\t\t\"{\\\"browserName\\\": \\\"chrome\\\", \\\"browserVersion\\\": \\\"91.0\\\", \\\"platformName\\\": \\\"linux\\\"}\",\n\t\t\t\t\t\t\t\t\"{\\\"browserName\\\": \\\"chrome\\\", \\\"browserVersion\\\": \\\"91.0\\\", \\\"platformName\\\": \\\"linux\\\"}\",\n\t\t\t\t\t\t\t\t\"{\\\"browserName\\\": \\\"chrome\\\", \\\"browserVersion\\\": \\\"91.0\\\", \\\"platformName\\\": \\\"linux\\\"}\"\n\t\t\t\t\t\t\t]\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}`),\n\t\t\t\tbrowserName:        \"chrome\",\n\t\t\t\tsessionBrowserName: \"chrome\",\n\t\t\t\tbrowserVersion:     \"91.0\",\n\t\t\t\tplatformName:       \"linux\",\n\t\t\t},\n\t\t\twantNewRequestNodes: 3,\n\t\t\twantOnGoingSessions: 2,\n\t\t\twantErr:             false,\n\t\t},\n\t\t{\n\t\t\tname: \"Given_3_requests_explicit_name_version_platform_When_2_existing_nodes_not_available_And_scaler_metadate_with_browserVersion_as_latest_Then_scaler_should_not_scale_up_and_return_2_on_going_session\",\n\t\t\targs: args{\n\t\t\t\tb: []byte(`{\n\t\t\t\t\t\"data\": {\n\t\t\t\t\t\t\"grid\": {\n\t\t\t\t\t\t\t\"sessionCount\": 2,\n\t\t\t\t\t\t\t\"maxSession\": 2,\n\t\t\t\t\t\t\t\"totalSlots\": 2\n\t\t\t\t\t\t},\n\t\t\t\t\t\t\"nodesInfo\": {\n\t\t\t\t\t\t\t\"nodes\": [\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\"id\": \"node-1\",\n\t\t\t\t\t\t\t\t\t\"status\": \"UP\",\n\t\t\t\t\t\t\t\t\t\"sessionCount\": 1,\n\t\t\t\t\t\t\t\t\t\"maxSession\": 1,\n\t\t\t\t\t\t\t\t\t\"slotCount\": 1,\n\t\t\t\t\t\t\t\t\t\"stereotypes\": \"[{\\\"slots\\\": 1, \\\"stereotype\\\": {\\\"browserName\\\": \\\"chrome\\\", \\\"browserVersion\\\": \\\"91.0\\\", \\\"platformName\\\": \\\"linux\\\"}}]\",\n\t\t\t\t\t\t\t\t\t\"sessions\": [\n\t\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\t\t\"id\": \"session-1\",\n\t\t\t\t\t\t\t\t\t\t\t\"capabilities\": \"{\\\"browserName\\\": \\\"chrome\\\", \\\"browserVersion\\\": \\\"91.0\\\", \\\"platformName\\\": \\\"linux\\\"}\",\n\t\t\t\t\t\t\t\t\t\t\t\"slot\": {\n\t\t\t\t\t\t\t\t\t\t\t\t\"id\": \"9ce1edba-72fb-465e-b311-ee473d8d7b64\",\n\t\t\t\t\t\t\t\t\t\t\t\t\"stereotype\": \"{\\\"browserName\\\": \\\"chrome\\\", \\\"browserVersion\\\": \\\"91.0\\\", \\\"platformName\\\": \\\"linux\\\"}\"\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t]\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\"id\": \"node-2\",\n\t\t\t\t\t\t\t\t\t\"status\": \"UP\",\n\t\t\t\t\t\t\t\t\t\"sessionCount\": 1,\n\t\t\t\t\t\t\t\t\t\"maxSession\": 1,\n\t\t\t\t\t\t\t\t\t\"slotCount\": 1,\n\t\t\t\t\t\t\t\t\t\"stereotypes\": \"[{\\\"slots\\\": 1, \\\"stereotype\\\": {\\\"browserName\\\": \\\"chrome\\\", \\\"browserVersion\\\": \\\"91.0\\\", \\\"platformName\\\": \\\"linux\\\"}}]\",\n\t\t\t\t\t\t\t\t\t\"sessions\": [\n\t\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\t\t\"id\": \"session-2\",\n\t\t\t\t\t\t\t\t\t\t\t\"capabilities\": \"{\\\"browserName\\\": \\\"chrome\\\", \\\"browserVersion\\\": \\\"91.0\\\", \\\"platformName\\\": \\\"linux\\\"}\",\n\t\t\t\t\t\t\t\t\t\t\t\"slot\": {\n\t\t\t\t\t\t\t\t\t\t\t\t\"id\": \"9ce1edba-72fb-465e-b311-ee473d8d7b64\",\n\t\t\t\t\t\t\t\t\t\t\t\t\"stereotype\": \"{\\\"browserName\\\": \\\"chrome\\\", \\\"browserVersion\\\": \\\"91.0\\\", \\\"platformName\\\": \\\"linux\\\"}\"\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t]\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t]\n\t\t\t\t\t\t},\n\t\t\t\t\t\t\"sessionsInfo\": {\n\t\t\t\t\t\t\t\"sessionQueueRequests\": [\n\t\t\t\t\t\t\t\t\"{\\\"browserName\\\": \\\"chrome\\\", \\\"browserVersion\\\": \\\"90.0\\\", \\\"platformName\\\": \\\"linux\\\"}\",\n\t\t\t\t\t\t\t\t\"{\\\"browserName\\\": \\\"chrome\\\", \\\"browserVersion\\\": \\\"92.0\\\", \\\"platformName\\\": \\\"linux\\\"}\",\n\t\t\t\t\t\t\t\t\"{\\\"browserName\\\": \\\"chrome\\\", \\\"browserVersion\\\": \\\"93.0\\\", \\\"platformName\\\": \\\"linux\\\"}\"\n\t\t\t\t\t\t\t]\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}`),\n\t\t\t\tbrowserName:        \"chrome\",\n\t\t\t\tsessionBrowserName: \"chrome\",\n\t\t\t\tbrowserVersion:     \"\",\n\t\t\t\tplatformName:       \"linux\",\n\t\t\t},\n\t\t\twantNewRequestNodes: 0,\n\t\t\twantOnGoingSessions: 0,\n\t\t\twantErr:             false,\n\t\t},\n\t\t{\n\t\t\tname: \"Given_3_requests_explicit_name_version_platform_When_2_existing_nodes_not_available_And_scaler_metadate_with_browserVersion_92.0_Then_scaler_should_scale_up_1_and_return_0_on_going_session\",\n\t\t\targs: args{\n\t\t\t\tb: []byte(`{\n\t\t\t\t\t\"data\": {\n\t\t\t\t\t\t\"grid\": {\n\t\t\t\t\t\t\t\"sessionCount\": 2,\n\t\t\t\t\t\t\t\"maxSession\": 2,\n\t\t\t\t\t\t\t\"totalSlots\": 2\n\t\t\t\t\t\t},\n\t\t\t\t\t\t\"nodesInfo\": {\n\t\t\t\t\t\t\t\"nodes\": [\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\"id\": \"node-1\",\n\t\t\t\t\t\t\t\t\t\"status\": \"UP\",\n\t\t\t\t\t\t\t\t\t\"sessionCount\": 1,\n\t\t\t\t\t\t\t\t\t\"maxSession\": 1,\n\t\t\t\t\t\t\t\t\t\"slotCount\": 1,\n\t\t\t\t\t\t\t\t\t\"stereotypes\": \"[{\\\"slots\\\": 1, \\\"stereotype\\\": {\\\"browserName\\\": \\\"chrome\\\", \\\"browserVersion\\\": \\\"91.0\\\", \\\"platformName\\\": \\\"linux\\\"}}]\",\n\t\t\t\t\t\t\t\t\t\"sessions\": [\n\t\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\t\t\"id\": \"session-1\",\n\t\t\t\t\t\t\t\t\t\t\t\"capabilities\": \"{\\\"browserName\\\": \\\"chrome\\\", \\\"browserVersion\\\": \\\"91.0\\\", \\\"platformName\\\": \\\"linux\\\"}\",\n\t\t\t\t\t\t\t\t\t\t\t\"slot\": {\n\t\t\t\t\t\t\t\t\t\t\t\t\"id\": \"9ce1edba-72fb-465e-b311-ee473d8d7b64\",\n\t\t\t\t\t\t\t\t\t\t\t\t\"stereotype\": \"{\\\"browserName\\\": \\\"chrome\\\", \\\"browserVersion\\\": \\\"91.0\\\", \\\"platformName\\\": \\\"linux\\\"}\"\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t]\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\"id\": \"node-2\",\n\t\t\t\t\t\t\t\t\t\"status\": \"UP\",\n\t\t\t\t\t\t\t\t\t\"sessionCount\": 1,\n\t\t\t\t\t\t\t\t\t\"maxSession\": 1,\n\t\t\t\t\t\t\t\t\t\"slotCount\": 1,\n\t\t\t\t\t\t\t\t\t\"stereotypes\": \"[{\\\"slots\\\": 1, \\\"stereotype\\\": {\\\"browserName\\\": \\\"chrome\\\", \\\"browserVersion\\\": \\\"91.0\\\", \\\"platformName\\\": \\\"linux\\\"}}]\",\n\t\t\t\t\t\t\t\t\t\"sessions\": [\n\t\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\t\t\"id\": \"session-2\",\n\t\t\t\t\t\t\t\t\t\t\t\"capabilities\": \"{\\\"browserName\\\": \\\"chrome\\\", \\\"browserVersion\\\": \\\"91.0\\\", \\\"platformName\\\": \\\"linux\\\"}\",\n\t\t\t\t\t\t\t\t\t\t\t\"slot\": {\n\t\t\t\t\t\t\t\t\t\t\t\t\"id\": \"9ce1edba-72fb-465e-b311-ee473d8d7b64\",\n\t\t\t\t\t\t\t\t\t\t\t\t\"stereotype\": \"{\\\"browserName\\\": \\\"chrome\\\", \\\"browserVersion\\\": \\\"91.0\\\", \\\"platformName\\\": \\\"linux\\\"}\"\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t]\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t]\n\t\t\t\t\t\t},\n\t\t\t\t\t\t\"sessionsInfo\": {\n\t\t\t\t\t\t\t\"sessionQueueRequests\": [\n\t\t\t\t\t\t\t\t\"{\\\"browserName\\\": \\\"chrome\\\", \\\"browserVersion\\\": \\\"90.0\\\", \\\"platformName\\\": \\\"linux\\\"}\",\n\t\t\t\t\t\t\t\t\"{\\\"browserName\\\": \\\"chrome\\\", \\\"browserVersion\\\": \\\"92.0\\\", \\\"platformName\\\": \\\"linux\\\"}\",\n\t\t\t\t\t\t\t\t\"{\\\"browserName\\\": \\\"chrome\\\", \\\"browserVersion\\\": \\\"93.0\\\", \\\"platformName\\\": \\\"linux\\\"}\"\n\t\t\t\t\t\t\t]\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}`),\n\t\t\t\tbrowserName:        \"chrome\",\n\t\t\t\tsessionBrowserName: \"chrome\",\n\t\t\t\tbrowserVersion:     \"92.0\",\n\t\t\t\tplatformName:       \"linux\",\n\t\t\t},\n\t\t\twantNewRequestNodes: 1,\n\t\t\twantOnGoingSessions: 0,\n\t\t\twantErr:             false,\n\t\t},\n\t\t{\n\t\t\tname: \"3 queue requests with browserName and platformName but 2 running nodes are busy with different versions should return count as 3\",\n\t\t\targs: args{\n\t\t\t\tb: []byte(`{\n\t\t\t\t\t\"data\": {\n\t\t\t\t\t\t\"grid\": {\n\t\t\t\t\t\t\t\"sessionCount\": 2,\n\t\t\t\t\t\t\t\"maxSession\": 2,\n\t\t\t\t\t\t\t\"totalSlots\": 2\n\t\t\t\t\t\t},\n\t\t\t\t\t\t\"nodesInfo\": {\n\t\t\t\t\t\t\t\"nodes\": [\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\"id\": \"node-1\",\n\t\t\t\t\t\t\t\t\t\"status\": \"UP\",\n\t\t\t\t\t\t\t\t\t\"sessionCount\": 1,\n\t\t\t\t\t\t\t\t\t\"maxSession\": 1,\n\t\t\t\t\t\t\t\t\t\"slotCount\": 1,\n\t\t\t\t\t\t\t\t\t\"stereotypes\": \"[{\\\"slots\\\": 1, \\\"stereotype\\\": {\\\"browserName\\\": \\\"chrome\\\", \\\"platformName\\\": \\\"linux\\\"}}]\",\n\t\t\t\t\t\t\t\t\t\"sessions\": [\n\t\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\t\t\"id\": \"session-1\",\n\t\t\t\t\t\t\t\t\t\t\t\"capabilities\": \"{\\\"browserName\\\": \\\"chrome\\\", \\\"browserVersion\\\": \\\"91.0\\\", \\\"platformName\\\": \\\"linux\\\"}\",\n\t\t\t\t\t\t\t\t\t\t\t\"slot\": {\n\t\t\t\t\t\t\t\t\t\t\t\t\"id\": \"9ce1edba-72fb-465e-b311-ee473d8d7b64\",\n\t\t\t\t\t\t\t\t\t\t\t\t\"stereotype\": \"{\\\"browserName\\\": \\\"chrome\\\", \\\"platformName\\\": \\\"linux\\\"}\"\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t]\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\"id\": \"node-2\",\n\t\t\t\t\t\t\t\t\t\"status\": \"UP\",\n\t\t\t\t\t\t\t\t\t\"sessionCount\": 1,\n\t\t\t\t\t\t\t\t\t\"maxSession\": 1,\n\t\t\t\t\t\t\t\t\t\"slotCount\": 1,\n\t\t\t\t\t\t\t\t\t\"stereotypes\": \"[{\\\"slots\\\": 1, \\\"stereotype\\\": {\\\"browserName\\\": \\\"chrome\\\", \\\"platformName\\\": \\\"linux\\\"}}]\",\n\t\t\t\t\t\t\t\t\t\"sessions\": [\n\t\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\t\t\"id\": \"session-2\",\n\t\t\t\t\t\t\t\t\t\t\t\"capabilities\": \"{\\\"browserName\\\": \\\"chrome\\\", \\\"browserVersion\\\": \\\"91.0\\\", \\\"platformName\\\": \\\"linux\\\"}\",\n\t\t\t\t\t\t\t\t\t\t\t\"slot\": {\n\t\t\t\t\t\t\t\t\t\t\t\t\"id\": \"9ce1edba-72fb-465e-b311-ee473d8d7b64\",\n\t\t\t\t\t\t\t\t\t\t\t\t\"stereotype\": \"{\\\"browserName\\\": \\\"chrome\\\", \\\"platformName\\\": \\\"linux\\\"}\"\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t]\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t]\n\t\t\t\t\t\t},\n\t\t\t\t\t\t\"sessionsInfo\": {\n\t\t\t\t\t\t\t\"sessionQueueRequests\": [\n\t\t\t\t\t\t\t\t\"{\\\"browserName\\\": \\\"chrome\\\", \\\"platformName\\\": \\\"linux\\\"}\",\n\t\t\t\t\t\t\t\t\"{\\\"browserName\\\": \\\"chrome\\\", \\\"platformName\\\": \\\"linux\\\"}\",\n\t\t\t\t\t\t\t\t\"{\\\"browserName\\\": \\\"chrome\\\", \\\"platformName\\\": \\\"linux\\\"}\"\n\t\t\t\t\t\t\t]\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}`),\n\t\t\t\tbrowserName:        \"chrome\",\n\t\t\t\tsessionBrowserName: \"chrome\",\n\t\t\t\tbrowserVersion:     \"\",\n\t\t\t\tplatformName:       \"linux\",\n\t\t\t},\n\t\t\twantNewRequestNodes: 3,\n\t\t\twantOnGoingSessions: 2,\n\t\t\twantErr:             false,\n\t\t},\n\t\t{\n\t\t\tname: \"1 queue request without platformName and scaler metadata without platformName should return 1 new node and 1 ongoing session\",\n\t\t\targs: args{\n\t\t\t\tb: []byte(`{\n\t\t\t\t\t\"data\": {\n\t\t\t\t\t\t\"grid\": {\n\t\t\t\t\t\t\t\"sessionCount\": 2,\n\t\t\t\t\t\t\t\"maxSession\": 2,\n\t\t\t\t\t\t\t\"totalSlots\": 2\n\t\t\t\t\t\t},\n\t\t\t\t\t\t\"nodesInfo\": {\n\t\t\t\t\t\t\t\"nodes\": [\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\"id\": \"node-1\",\n\t\t\t\t\t\t\t\t\t\"status\": \"UP\",\n\t\t\t\t\t\t\t\t\t\"sessionCount\": 1,\n\t\t\t\t\t\t\t\t\t\"maxSession\": 1,\n\t\t\t\t\t\t\t\t\t\"slotCount\": 1,\n\t\t\t\t\t\t\t\t\t\"stereotypes\": \"[{\\\"slots\\\": 1, \\\"stereotype\\\": {\\\"browserName\\\": \\\"chrome\\\", \\\"platformName\\\": \\\"any\\\"}}]\",\n\t\t\t\t\t\t\t\t\t\"sessions\": [\n\t\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\t\t\"id\": \"session-1\",\n\t\t\t\t\t\t\t\t\t\t\t\"capabilities\": \"{\\\"browserName\\\": \\\"chrome\\\", \\\"platformName\\\": \\\"any\\\"}\",\n\t\t\t\t\t\t\t\t\t\t\t\"slot\": {\n\t\t\t\t\t\t\t\t\t\t\t\t\"id\": \"9ce1edba-72fb-465e-b311-ee473d8d7b64\",\n\t\t\t\t\t\t\t\t\t\t\t\t\"stereotype\": \"{\\\"browserName\\\": \\\"chrome\\\", \\\"platformName\\\": \\\"any\\\"}\"\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t]\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\"id\": \"node-2\",\n\t\t\t\t\t\t\t\t\t\"status\": \"UP\",\n\t\t\t\t\t\t\t\t\t\"sessionCount\": 1,\n\t\t\t\t\t\t\t\t\t\"maxSession\": 1,\n\t\t\t\t\t\t\t\t\t\"slotCount\": 1,\n\t\t\t\t\t\t\t\t\t\"stereotypes\": \"[{\\\"slots\\\": 1, \\\"stereotype\\\": {\\\"browserName\\\": \\\"chrome\\\", \\\"platformName\\\": \\\"linux\\\"}}]\",\n\t\t\t\t\t\t\t\t\t\"sessions\": [\n\t\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\t\t\"id\": \"session-2\",\n\t\t\t\t\t\t\t\t\t\t\t\"capabilities\": \"{\\\"browserName\\\": \\\"chrome\\\", \\\"browserVersion\\\": \\\"91.0\\\", \\\"platformName\\\": \\\"linux\\\"}\",\n\t\t\t\t\t\t\t\t\t\t\t\"slot\": {\n\t\t\t\t\t\t\t\t\t\t\t\t\"id\": \"9ce1edba-72fb-465e-b311-ee473d8d7b64\",\n\t\t\t\t\t\t\t\t\t\t\t\t\"stereotype\": \"{\\\"browserName\\\": \\\"chrome\\\", \\\"platformName\\\": \\\"linux\\\"}\"\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t]\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t]\n\t\t\t\t\t\t},\n\t\t\t\t\t\t\"sessionsInfo\": {\n\t\t\t\t\t\t\t\"sessionQueueRequests\": [\n\t\t\t\t\t\t\t\t\"{\\\"browserName\\\": \\\"chrome\\\", \\\"platformName\\\": \\\"linux\\\"}\",\n\t\t\t\t\t\t\t\t\"{\\\"browserName\\\": \\\"chrome\\\"}\",\n\t\t\t\t\t\t\t\t\"{\\\"browserName\\\": \\\"chrome\\\", \\\"platformName\\\": \\\"any\\\"}\"\n\t\t\t\t\t\t\t]\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}`),\n\t\t\t\tbrowserName:        \"chrome\",\n\t\t\t\tsessionBrowserName: \"chrome\",\n\t\t\t\tbrowserVersion:     \"\",\n\t\t\t\tplatformName:       \"\",\n\t\t\t},\n\t\t\twantNewRequestNodes: 2,\n\t\t\twantOnGoingSessions: 1,\n\t\t\twantErr:             false,\n\t\t},\n\t\t{\n\t\t\tname: \"1 active session with matching browsername and version should return count as 2\",\n\t\t\targs: args{\n\t\t\t\tb: []byte(`{\n\t\t\t\t\t\"data\": {\n\t\t\t\t\t\t\"grid\": {\n\t\t\t\t\t\t\t\"sessionCount\": 1,\n\t\t\t\t\t\t\t\"maxSession\": 1,\n\t\t\t\t\t\t\t\"totalSlots\": 1\n\t\t\t\t\t\t},\n\t\t\t\t\t\t\"nodesInfo\": {\n\t\t\t\t\t\t\t\"nodes\": [\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\"id\": \"node-1\",\n\t\t\t\t\t\t\t\t\t\"status\": \"UP\",\n\t\t\t\t\t\t\t\t\t\"sessionCount\": 1,\n\t\t\t\t\t\t\t\t\t\"maxSession\": 1,\n\t\t\t\t\t\t\t\t\t\"slotCount\": 1,\n\t\t\t\t\t\t\t\t\t\"stereotypes\": \"[{\\\"slots\\\": 1, \\\"stereotype\\\": {\\\"browserName\\\": \\\"chrome\\\", \\\"browserVersion\\\": \\\"91.0\\\", \\\"platformName\\\": \\\"linux\\\"}}]\",\n\t\t\t\t\t\t\t\t\t\"sessions\": [\n\t\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\t\t\"id\": \"session-1\",\n\t\t\t\t\t\t\t\t\t\t\t\"capabilities\": \"{\\\"browserName\\\": \\\"chrome\\\", \\\"browserVersion\\\": \\\"91.0\\\", \\\"platformName\\\": \\\"linux\\\"}\",\n\t\t\t\t\t\t\t\t\t\t\t\"slot\": {\n\t\t\t\t\t\t\t\t\t\t\t\t\"id\": \"9ce1edba-72fb-465e-b311-ee473d8d7b64\",\n\t\t\t\t\t\t\t\t\t\t\t\t\"stereotype\": \"{\\\"browserName\\\": \\\"chrome\\\", \\\"browserVersion\\\": \\\"91.0\\\", \\\"platformName\\\": \\\"linux\\\"}\"\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t]\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t]\n\t\t\t\t\t\t},\n\t\t\t\t\t\t\"sessionsInfo\": {\n\t\t\t\t\t\t\t\"sessionQueueRequests\": [\n\t\t\t\t\t\t\t\t\"{\\\"browserName\\\": \\\"chrome\\\", \\\"browserVersion\\\": \\\"91.0\\\", \\\"platformName\\\": \\\"linux\\\"}\",\n\t\t\t\t\t\t\t\t\"{\\\"browserName\\\": \\\"chrome\\\", \\\"browserVersion\\\": \\\"91.0\\\", \\\"platformName\\\": \\\"linux\\\"}\"\n\t\t\t\t\t\t\t]\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}`),\n\t\t\t\tbrowserName:        \"chrome\",\n\t\t\t\tsessionBrowserName: \"chrome\",\n\t\t\t\tbrowserVersion:     \"91.0\",\n\t\t\t\tplatformName:       \"linux\",\n\t\t\t},\n\t\t\twantNewRequestNodes: 2,\n\t\t\twantOnGoingSessions: 1,\n\t\t\twantErr:             false,\n\t\t},\n\t\t{\n\t\t\tname: \"1_request_without_browserVersion_can_be_match_any_available_node_should_return_count_as_0\",\n\t\t\targs: args{\n\t\t\t\tb: []byte(`{\n\t\t\t\t\t\"data\": {\n\t\t\t\t\t\t\"grid\": {\n\t\t\t\t\t\t\t\"sessionCount\": 0,\n\t\t\t\t\t\t\t\"maxSession\": 1,\n\t\t\t\t\t\t\t\"totalSlots\": 1\n\t\t\t\t\t\t},\n\t\t\t\t\t\t\"nodesInfo\": {\n\t\t\t\t\t\t\t\"nodes\": [\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\"id\": \"node-1\",\n\t\t\t\t\t\t\t\t\t\"status\": \"UP\",\n\t\t\t\t\t\t\t\t\t\"sessionCount\": 0,\n\t\t\t\t\t\t\t\t\t\"maxSession\": 1,\n\t\t\t\t\t\t\t\t\t\"slotCount\": 1,\n\t\t\t\t\t\t\t\t\t\"stereotypes\": \"[{\\\"slots\\\": 1, \\\"stereotype\\\": {\\\"browserName\\\": \\\"chrome\\\", \\\"browserVersion\\\": \\\"v128.0\\\", \\\"platformName\\\": \\\"linux\\\"}}]\",\n\t\t\t\t\t\t\t\t\t\"sessions\": []\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t]\n\t\t\t\t\t\t},\n\t\t\t\t\t\t\"sessionsInfo\": {\n\t\t\t\t\t\t\t\"sessionQueueRequests\": [\n\t\t\t\t\t\t\t\t\"{\\\"browserName\\\": \\\"chrome\\\", \\\"browserVersion\\\": \\\"\\\", \\\"platformName\\\": \\\"linux\\\"}\"\n\t\t\t\t\t\t\t]\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}`),\n\t\t\t\tbrowserName:        \"chrome\",\n\t\t\t\tsessionBrowserName: \"chrome\",\n\t\t\t\tbrowserVersion:     \"\",\n\t\t\t\tplatformName:       \"linux\",\n\t\t\t},\n\t\t\twantNewRequestNodes: 1,\n\t\t\twantOnGoingSessions: 0,\n\t\t\twantErr:             false,\n\t\t},\n\t\t{\n\t\t\tname: \"1 request without platformName and browserVersion should return count as 1\",\n\t\t\targs: args{\n\t\t\t\tb: []byte(`{\n\t\t\t\t\t\"data\": {\n\t\t\t\t\t\t\"grid\": {\n\t\t\t\t\t\t\t\"sessionCount\": 1,\n\t\t\t\t\t\t\t\"maxSession\": 1,\n\t\t\t\t\t\t\t\"totalSlots\": 1\n\t\t\t\t\t\t},\n\t\t\t\t\t\t\"nodesInfo\": {\n\t\t\t\t\t\t\t\"nodes\": [\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\"id\": \"node-1\",\n\t\t\t\t\t\t\t\t\t\"status\": \"UP\",\n\t\t\t\t\t\t\t\t\t\"sessionCount\": 1,\n\t\t\t\t\t\t\t\t\t\"maxSession\": 1,\n\t\t\t\t\t\t\t\t\t\"slotCount\": 1,\n\t\t\t\t\t\t\t\t\t\"stereotypes\": \"[{\\\"slots\\\": 1, \\\"stereotype\\\": {\\\"browserName\\\": \\\"chrome\\\", \\\"browserVersion\\\": \\\"128.0\\\", \\\"platformName\\\": \\\"linux\\\"}}]\",\n\t\t\t\t\t\t\t\t\t\"sessions\": [\n\t\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\t\t\"id\": \"session-1\",\n\t\t\t\t\t\t\t\t\t\t\t\"capabilities\": \"{\\\"browserName\\\": \\\"chrome\\\", \\\"browserVersion\\\": \\\"128.0\\\", \\\"platformName\\\": \\\"linux\\\"}\",\n\t\t\t\t\t\t\t\t\t\t\t\"slot\": {\n\t\t\t\t\t\t\t\t\t\t\t\t\"id\": \"9ce1edba-72fb-465e-b311-ee473d8d7b64\",\n\t\t\t\t\t\t\t\t\t\t\t\t\"stereotype\": \"{\\\"browserName\\\": \\\"chrome\\\", \\\"browserVersion\\\": \\\"128.0\\\", \\\"platformName\\\": \\\"linux\\\"}\"\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t]\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t]\n\t\t\t\t\t\t},\n\t\t\t\t\t\t\"sessionsInfo\": {\n\t\t\t\t\t\t\t\"sessionQueueRequests\": [\n\t\t\t\t\t\t\t\t\"{\\\"browserName\\\": \\\"chrome\\\", \\\"browserVersion\\\": \\\"\\\", \\\"platformName\\\": \\\"\\\"}\"\n\t\t\t\t\t\t\t]\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}`),\n\t\t\t\tbrowserName:        \"chrome\",\n\t\t\t\tsessionBrowserName: \"chrome\",\n\t\t\t\tbrowserVersion:     \"\",\n\t\t\t\tplatformName:       \"\",\n\t\t\t},\n\t\t\twantNewRequestNodes: 1,\n\t\t\twantOnGoingSessions: 0,\n\t\t\twantErr:             false,\n\t\t},\n\t\t{\n\t\t\tname: \"2 queue requests with browserName in string match node stereotype and scaler metadata browserVersion should return count as 1\",\n\t\t\targs: args{\n\t\t\t\tb: []byte(`{\n\t\t\t\t\t\"data\": {\n\t\t\t\t\t\t\"grid\": {\n\t\t\t\t\t\t\t\"sessionCount\": 1,\n\t\t\t\t\t\t\t\"maxSession\": 1,\n\t\t\t\t\t\t\t\"totalSlots\": 1\n\t\t\t\t\t\t},\n\t\t\t\t\t\t\"nodesInfo\": {\n\t\t\t\t\t\t\t\"nodes\": [\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\"id\": \"node-1\",\n\t\t\t\t\t\t\t\t\t\"status\": \"UP\",\n\t\t\t\t\t\t\t\t\t\"sessionCount\": 1,\n\t\t\t\t\t\t\t\t\t\"maxSession\": 1,\n\t\t\t\t\t\t\t\t\t\"slotCount\": 1,\n\t\t\t\t\t\t\t\t\t\"stereotypes\": \"[{\\\"slots\\\": 1, \\\"stereotype\\\": {\\\"browserName\\\": \\\"msedge\\\", \\\"browserVersion\\\": \\\"dev\\\", \\\"platformName\\\": \\\"linux\\\"}}]\",\n\t\t\t\t\t\t\t\t\t\"sessions\": [\n\t\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\t\t\"id\": \"session-1\",\n\t\t\t\t\t\t\t\t\t\t\t\"capabilities\": \"{\\\"browserName\\\": \\\"msedge\\\", \\\"browserVersion\\\": \\\"dev\\\", \\\"platformName\\\": \\\"linux\\\"}\",\n\t\t\t\t\t\t\t\t\t\t\t\"slot\": {\n\t\t\t\t\t\t\t\t\t\t\t\t\"id\": \"9ce1edba-72fb-465e-b311-ee473d8d7b64\",\n\t\t\t\t\t\t\t\t\t\t\t\t\"stereotype\": \"{\\\"browserName\\\": \\\"msedge\\\", \\\"browserVersion\\\": \\\"dev\\\", \\\"platformName\\\": \\\"linux\\\"}\"\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t]\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t]\n\t\t\t\t\t\t},\n\t\t\t\t\t\t\"sessionsInfo\": {\n\t\t\t\t\t\t\t\"sessionQueueRequests\": [\n\t\t\t\t\t\t\t\t\"{\\\"browserName\\\": \\\"MicrosoftEdge\\\", \\\"browserVersion\\\": \\\"beta\\\", \\\"platformName\\\": \\\"linux\\\"}\",\n\t\t\t\t\t\t\t\t\"{\\\"browserName\\\": \\\"MicrosoftEdge\\\", \\\"browserVersion\\\": \\\"dev\\\", \\\"platformName\\\": \\\"linux\\\"}\"\n\t\t\t\t\t\t\t]\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}`),\n\t\t\t\tbrowserName:        \"MicrosoftEdge\",\n\t\t\t\tsessionBrowserName: \"msedge\",\n\t\t\t\tbrowserVersion:     \"dev\",\n\t\t\t\tplatformName:       \"linux\",\n\t\t\t},\n\t\t\twantNewRequestNodes: 1,\n\t\t\twantOnGoingSessions: 1,\n\t\t\twantErr:             false,\n\t\t},\n\t\t{\n\t\t\tname: \"2 queue requests with matching browsername/sessionBrowserName but 1 node is busy should return count as 2\",\n\t\t\targs: args{\n\t\t\t\tb: []byte(`{\n\t\t\t\t\t\"data\": {\n\t\t\t\t\t\t\"grid\": {\n\t\t\t\t\t\t\t\"sessionCount\": 1,\n\t\t\t\t\t\t\t\"maxSession\": 1,\n\t\t\t\t\t\t\t\"totalSlots\": 1\n\t\t\t\t\t\t},\n\t\t\t\t\t\t\"nodesInfo\": {\n\t\t\t\t\t\t\t\"nodes\": [\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\"id\": \"node-1\",\n\t\t\t\t\t\t\t\t\t\"status\": \"UP\",\n\t\t\t\t\t\t\t\t\t\"sessionCount\": 1,\n\t\t\t\t\t\t\t\t\t\"maxSession\": 1,\n\t\t\t\t\t\t\t\t\t\"slotCount\": 1,\n\t\t\t\t\t\t\t\t\t\"stereotypes\": \"[{\\\"slots\\\": 1, \\\"stereotype\\\": {\\\"browserName\\\": \\\"msedge\\\", \\\"browserVersion\\\": \\\"91.0\\\", \\\"platformName\\\": \\\"linux\\\"}}]\",\n\t\t\t\t\t\t\t\t\t\"sessions\": [\n\t\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\t\t\"id\": \"session-1\",\n\t\t\t\t\t\t\t\t\t\t\t\"capabilities\": \"{\\\"browserName\\\": \\\"msedge\\\", \\\"browserVersion\\\": \\\"91.0\\\", \\\"platformName\\\": \\\"linux\\\"}\",\n\t\t\t\t\t\t\t\t\t\t\t\"slot\": {\n\t\t\t\t\t\t\t\t\t\t\t\t\"id\": \"9ce1edba-72fb-465e-b311-ee473d8d7b64\",\n\t\t\t\t\t\t\t\t\t\t\t\t\"stereotype\": \"{\\\"browserName\\\": \\\"msedge\\\", \\\"browserVersion\\\": \\\"91.0\\\", \\\"platformName\\\": \\\"linux\\\"}\"\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t]\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t]\n\t\t\t\t\t\t},\n\t\t\t\t\t\t\"sessionsInfo\": {\n\t\t\t\t\t\t\t\"sessionQueueRequests\": [\n\t\t\t\t\t\t\t\t\"{\\\"browserName\\\": \\\"MicrosoftEdge\\\", \\\"browserVersion\\\": \\\"91.0\\\", \\\"platformName\\\": \\\"linux\\\"}\",\n\t\t\t\t\t\t\t\t\"{\\\"browserName\\\": \\\"MicrosoftEdge\\\", \\\"browserVersion\\\": \\\"91.0\\\", \\\"platformName\\\": \\\"linux\\\"}\"\n\t\t\t\t\t\t\t]\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}`),\n\t\t\t\tbrowserName:        \"MicrosoftEdge\",\n\t\t\t\tsessionBrowserName: \"msedge\",\n\t\t\t\tbrowserVersion:     \"91.0\",\n\t\t\t\tplatformName:       \"linux\",\n\t\t\t},\n\t\t\twantNewRequestNodes: 2,\n\t\t\twantOnGoingSessions: 1,\n\t\t\twantErr:             false,\n\t\t},\n\t\t{\n\t\t\tname: \"2 queue requests with matching browsername/sessionBrowserName and 1 node is is available should return count as 1\",\n\t\t\targs: args{\n\t\t\t\tb: []byte(`{\n\t\t\t\t\t\"data\": {\n\t\t\t\t\t\t\"grid\": {\n\t\t\t\t\t\t\t\"sessionCount\": 0,\n\t\t\t\t\t\t\t\"maxSession\": 1,\n\t\t\t\t\t\t\t\"totalSlots\": 1\n\t\t\t\t\t\t},\n\t\t\t\t\t\t\"nodesInfo\": {\n\t\t\t\t\t\t\t\"nodes\": [\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\"id\": \"node-1\",\n\t\t\t\t\t\t\t\t\t\"status\": \"UP\",\n\t\t\t\t\t\t\t\t\t\"sessionCount\": 0,\n\t\t\t\t\t\t\t\t\t\"maxSession\": 1,\n\t\t\t\t\t\t\t\t\t\"slotCount\": 1,\n\t\t\t\t\t\t\t\t\t\"stereotypes\": \"[{\\\"slots\\\": 1, \\\"stereotype\\\": {\\\"browserName\\\": \\\"msedge\\\", \\\"browserVersion\\\": \\\"91.0\\\", \\\"platformName\\\": \\\"linux\\\"}}]\",\n\t\t\t\t\t\t\t\t\t\"sessions\": []\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t]\n\t\t\t\t\t\t},\n\t\t\t\t\t\t\"sessionsInfo\": {\n\t\t\t\t\t\t\t\"sessionQueueRequests\": [\n\t\t\t\t\t\t\t\t\"{\\\"browserName\\\": \\\"MicrosoftEdge\\\", \\\"browserVersion\\\": \\\"91.0\\\", \\\"platformName\\\": \\\"linux\\\"}\",\n\t\t\t\t\t\t\t\t\"{\\\"browserName\\\": \\\"MicrosoftEdge\\\", \\\"browserVersion\\\": \\\"91.0\\\", \\\"platformName\\\": \\\"linux\\\"}\"\n\t\t\t\t\t\t\t]\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}`),\n\t\t\t\tbrowserName:        \"MicrosoftEdge\",\n\t\t\t\tsessionBrowserName: \"msedge\",\n\t\t\t\tbrowserVersion:     \"91.0\",\n\t\t\t\tplatformName:       \"linux\",\n\t\t\t},\n\t\t\twantNewRequestNodes: 1,\n\t\t\twantOnGoingSessions: 0,\n\t\t\twantErr:             false,\n\t\t}, {\n\t\t\tname: \"2_queue_requests_with_platformName_and_without_platformName_and_node_with_1_slot_available_should_return_count_as_1\",\n\t\t\targs: args{\n\t\t\t\tb: []byte(`{\n\t\t\t\t\t\"data\": {\n\t\t\t\t\t\t\"grid\": {\n\t\t\t\t\t\t\t\"sessionCount\": 1,\n\t\t\t\t\t\t\t\"maxSession\": 2,\n\t\t\t\t\t\t\t\"totalSlots\": 2\n\t\t\t\t\t\t},\n\t\t\t\t\t\t\"nodesInfo\": {\n\t\t\t\t\t\t\t\"nodes\": [\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\"id\": \"node-1\",\n\t\t\t\t\t\t\t\t\t\"status\": \"UP\",\n\t\t\t\t\t\t\t\t\t\"sessionCount\": 1,\n\t\t\t\t\t\t\t\t\t\"maxSession\": 2,\n\t\t\t\t\t\t\t\t\t\"slotCount\": 2,\n\t\t\t\t\t\t\t\t\t\"stereotypes\": \"[{\\\"slots\\\": 2, \\\"stereotype\\\": {\\\"browserName\\\": \\\"chrome\\\", \\\"browserVersion\\\": \\\"91.0\\\", \\\"platformName\\\": \\\"Windows 11\\\"}}]\",\n\t\t\t\t\t\t\t\t\t\"sessions\": [\n\t\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\t\t\"id\": \"session-1\",\n\t\t\t\t\t\t\t\t\t\t\t\"capabilities\": \"{\\\"browserName\\\": \\\"chrome\\\", \\\"browserVersion\\\": \\\"91.0\\\", \\\"platformName\\\": \\\"Windows 11\\\"}\",\n\t\t\t\t\t\t\t\t\t\t\t\"slot\": {\n\t\t\t\t\t\t\t\t\t\t\t\t\"id\": \"9ce1edba-72fb-465e-b311-ee473d8d7b64\",\n\t\t\t\t\t\t\t\t\t\t\t\t\"stereotype\": \"{\\\"browserName\\\": \\\"chrome\\\", \\\"browserVersion\\\": \\\"91.0\\\", \\\"platformName\\\": \\\"Windows 11\\\"}\"\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t]\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t]\n\t\t\t\t\t\t},\n\t\t\t\t\t\t\"sessionsInfo\": {\n\t\t\t\t\t\t\t\"sessionQueueRequests\": [\n\t\t\t\t\t\t\t\t\"{\\\"browserName\\\": \\\"chrome\\\", \\\"browserVersion\\\": \\\"91.0\\\"}\",\n\t\t\t\t\t\t\t\t\"{\\\"browserName\\\": \\\"chrome\\\", \\\"browserVersion\\\": \\\"91.0\\\", \\\"platformName\\\": \\\"Windows 11\\\"}\"\n\t\t\t\t\t\t\t]\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}`),\n\t\t\t\tbrowserName:        \"chrome\",\n\t\t\t\tsessionBrowserName: \"chrome\",\n\t\t\t\tbrowserVersion:     \"91.0\",\n\t\t\t\tplatformName:       \"Windows 11\",\n\t\t\t},\n\t\t\twantNewRequestNodes: 0,\n\t\t\twantOnGoingSessions: 1,\n\t\t\twantErr:             false,\n\t\t},\n\t\t{\n\t\t\tname: \"1 active msedge session while asking for 2 chrome sessions should return a count of 2\",\n\t\t\targs: args{\n\t\t\t\tb: []byte(`{\n\t\t\t\t\t\"data\": {\n\t\t\t\t\t\t\"grid\": {\n\t\t\t\t\t\t\t\"sessionCount\": 1,\n\t\t\t\t\t\t\t\"maxSession\": 1,\n\t\t\t\t\t\t\t\"totalSlots\": 1\n\t\t\t\t\t\t},\n\t\t\t\t\t\t\"nodesInfo\": {\n\t\t\t\t\t\t\t\"nodes\": [\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\"id\": \"node-1\",\n\t\t\t\t\t\t\t\t\t\"status\": \"UP\",\n\t\t\t\t\t\t\t\t\t\"sessionCount\": 1,\n\t\t\t\t\t\t\t\t\t\"maxSession\": 1,\n\t\t\t\t\t\t\t\t\t\"slotCount\": 1,\n\t\t\t\t\t\t\t\t\t\"stereotypes\": \"[{\\\"slots\\\": 1, \\\"stereotype\\\": {\\\"browserName\\\": \\\"msedge\\\", \\\"browserVersion\\\": \\\"91.0\\\", \\\"platformName\\\": \\\"linux\\\"}}]\",\n\t\t\t\t\t\t\t\t\t\"sessions\": [\n\t\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\t\t\"id\": \"session-1\",\n\t\t\t\t\t\t\t\t\t\t\t\"capabilities\": \"{\\\"browserName\\\": \\\"msedge\\\", \\\"browserVersion\\\": \\\"91.0\\\", \\\"platformName\\\": \\\"linux\\\"}\",\n\t\t\t\t\t\t\t\t\t\t\t\"slot\": {\n\t\t\t\t\t\t\t\t\t\t\t\t\"id\": \"9ce1edba-72fb-465e-b311-ee473d8d7b64\",\n\t\t\t\t\t\t\t\t\t\t\t\t\"stereotype\": \"{\\\"browserName\\\": \\\"msedge\\\", \\\"browserVersion\\\": \\\"91.0\\\", \\\"platformName\\\": \\\"linux\\\"}\"\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t]\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t]\n\t\t\t\t\t\t},\n\t\t\t\t\t\t\"sessionsInfo\": {\n\t\t\t\t\t\t\t\"sessionQueueRequests\": [\n\t\t\t\t\t\t\t\t\"{\\\"browserName\\\": \\\"chrome\\\", \\\"platformName\\\": \\\"linux\\\"}\",\n\t\t\t\t\t\t\t\t\"{\\\"browserName\\\": \\\"chrome\\\", \\\"platformName\\\": \\\"linux\\\"}\"\n\t\t\t\t\t\t\t]\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}`),\n\t\t\t\tbrowserName:        \"chrome\",\n\t\t\t\tsessionBrowserName: \"chrome\",\n\t\t\t\tbrowserVersion:     \"\",\n\t\t\t\tplatformName:       \"linux\",\n\t\t\t},\n\t\t\twantNewRequestNodes: 2,\n\t\t\twantOnGoingSessions: 0,\n\t\t\twantErr:             false,\n\t\t},\n\t\t{\n\t\t\tname: \"3 queue requests browserName chrome platformName linux but 1 node has maxSessions=3 with browserName msedge should return a count of 3\",\n\t\t\targs: args{\n\t\t\t\tb: []byte(`{\n\t\t\t\t\t\"data\": {\n\t\t\t\t\t\t\"grid\": {\n\t\t\t\t\t\t\t\"sessionCount\": 1,\n\t\t\t\t\t\t\t\"maxSession\": 3,\n\t\t\t\t\t\t\t\"totalSlots\": 3\n\t\t\t\t\t\t},\n\t\t\t\t\t\t\"nodesInfo\": {\n\t\t\t\t\t\t\t\"nodes\": [\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\"id\": \"node-1\",\n\t\t\t\t\t\t\t\t\t\"status\": \"UP\",\n\t\t\t\t\t\t\t\t\t\"sessionCount\": 1,\n\t\t\t\t\t\t\t\t\t\"maxSession\": 3,\n\t\t\t\t\t\t\t\t\t\"slotCount\": 3,\n\t\t\t\t\t\t\t\t\t\"stereotypes\": \"[{\\\"slots\\\": 3, \\\"stereotype\\\": {\\\"browserName\\\": \\\"msedge\\\", \\\"browserVersion\\\": \\\"91.0\\\", \\\"platformName\\\": \\\"linux\\\"}}]\",\n\t\t\t\t\t\t\t\t\t\"sessions\": [\n\t\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\t\t\"id\": \"session-1\",\n\t\t\t\t\t\t\t\t\t\t\t\"capabilities\": \"{\\\"browserName\\\": \\\"msedge\\\", \\\"browserVersion\\\": \\\"91.0\\\", \\\"platformName\\\": \\\"linux\\\"}\",\n\t\t\t\t\t\t\t\t\t\t\t\"slot\": {\n\t\t\t\t\t\t\t\t\t\t\t\t\"id\": \"9ce1edba-72fb-465e-b311-ee473d8d7b64\",\n\t\t\t\t\t\t\t\t\t\t\t\t\"stereotype\": \"{\\\"browserName\\\": \\\"msedge\\\", \\\"browserVersion\\\": \\\"91.0\\\", \\\"platformName\\\": \\\"linux\\\"}\"\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t]\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t]\n\t\t\t\t\t\t},\n\t\t\t\t\t\t\"sessionsInfo\": {\n\t\t\t\t\t\t\t\"sessionQueueRequests\": [\n\t\t\t\t\t\t\t\t\"{\\\"browserName\\\": \\\"chrome\\\", \\\"platformName\\\": \\\"linux\\\"}\",\n\t\t\t\t\t\t\t\t\"{\\\"browserName\\\": \\\"chrome\\\", \\\"platformName\\\": \\\"linux\\\"}\",\n\t\t\t\t\t\t\t\t\"{\\\"browserName\\\": \\\"chrome\\\", \\\"platformName\\\": \\\"linux\\\"}\"\n\t\t\t\t\t\t\t]\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}`),\n\t\t\t\tbrowserName:        \"chrome\",\n\t\t\t\tsessionBrowserName: \"chrome\",\n\t\t\t\tbrowserVersion:     \"\",\n\t\t\t\tplatformName:       \"linux\",\n\t\t\t},\n\t\t\twantNewRequestNodes: 3,\n\t\t\twantOnGoingSessions: 0,\n\t\t\twantErr:             false,\n\t\t},\n\t\t{\n\t\t\tname: \"Given_2_requests_with_1_matching_browser_name_and_1_mismatch_platformName_When_no_node_available_Then_scaler_should_return_1_for_matching_request_and_0_ongoing_session\",\n\t\t\targs: args{\n\t\t\t\tb: []byte(`{\n\t\t\t\t\t\"data\": {\n\t\t\t\t\t\t\"grid\": {\n\t\t\t\t\t\t\t\"maxSession\": 0,\n\t\t\t\t\t\t\t\"nodeCount\": 0,\n\t\t\t\t\t\t\t\"totalSlots\": 0\n\t\t\t\t\t\t},\n\t\t\t\t\t\t\"nodesInfo\": {\n\t\t\t\t\t\t\t\"nodes\": []\n\t\t\t\t\t\t},\n\t\t\t\t\t\t\"sessionsInfo\": {\n\t\t\t\t\t\t\t\"sessionQueueRequests\": [\n\t\t\t\t\t\t\t\t\"{\\\"browserName\\\": \\\"chrome\\\"}\",\n\t\t\t\t\t\t\t\t\"{\\\"browserName\\\": \\\"chrome\\\", \\\"platformName\\\": \\\"Windows 11\\\"}\"\n\t\t\t\t\t\t\t]\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}`),\n\t\t\t\tbrowserName:        \"chrome\",\n\t\t\t\tsessionBrowserName: \"chrome\",\n\t\t\t\tbrowserVersion:     \"\",\n\t\t\t\tplatformName:       \"\",\n\t\t\t},\n\t\t\twantNewRequestNodes: 1,\n\t\t\twantOnGoingSessions: 0,\n\t\t\twantErr:             false,\n\t\t},\n\t\t{\n\t\t\tname: \"2_queue_requests_with_1_matching_browsername_and_platformName_and_1_existing_slot_is_available_should_return_count_as_1\",\n\t\t\targs: args{\n\t\t\t\tb: []byte(`{\n\t\t\t\t\t\"data\": {\n\t\t\t\t\t\t\"grid\": {\n\t\t\t\t\t\t\t\"sessionCount\": 0,\n\t\t\t\t\t\t\t\"maxSession\": 1,\n\t\t\t\t\t\t\t\"totalSlots\": 1\n\t\t\t\t\t\t},\n\t\t\t\t\t\t\"nodesInfo\": {\n\t\t\t\t\t\t\t\"nodes\": [\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\"id\": \"node-1\",\n\t\t\t\t\t\t\t\t\t\"status\": \"UP\",\n\t\t\t\t\t\t\t\t\t\"sessionCount\": 0,\n\t\t\t\t\t\t\t\t\t\"maxSession\": 1,\n\t\t\t\t\t\t\t\t\t\"slotCount\": 1,\n\t\t\t\t\t\t\t\t\t\"stereotypes\": \"[{\\\"slots\\\": 1, \\\"stereotype\\\": {\\\"browserName\\\": \\\"chrome\\\", \\\"browserVersion\\\": \\\"91.0\\\", \\\"platformName\\\": \\\"Windows 11\\\"}}]\",\n\t\t\t\t\t\t\t\t\t\"sessions\": []\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t]\n\t\t\t\t\t\t},\n\t\t\t\t\t\t\"sessionsInfo\": {\n\t\t\t\t\t\t\t\"sessionQueueRequests\": [\n\t\t\t\t\t\t\t\t\"{\\\"browserName\\\": \\\"chrome\\\", \\\"platformName\\\": \\\"Windows 11\\\"}\",\n\t\t\t\t\t\t\t\t\"{\\\"browserName\\\": \\\"chrome\\\", \\\"platformName\\\": \\\"linux\\\"}\"\n\t\t\t\t\t\t\t]\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}`),\n\t\t\t\tbrowserName:        \"chrome\",\n\t\t\t\tsessionBrowserName: \"chrome\",\n\t\t\t\tbrowserVersion:     \"\",\n\t\t\t\tplatformName:       \"Windows 11\",\n\t\t\t},\n\t\t\twantNewRequestNodes: 1,\n\t\t\twantOnGoingSessions: 0,\n\t\t\twantErr:             false,\n\t\t},\n\t\t{\n\t\t\tname: \"Given_2_requests_without_browserVersion_When_scaler_metadata_explicit_name_version_platform_Then_scaler_should_not_scale_up_and_return_1_on_going_session\",\n\t\t\targs: args{\n\t\t\t\tb: []byte(`{\n\t\t\t\t\t\"data\": {\n\t\t\t\t\t\t\"grid\": {\n\t\t\t\t\t\t\t\"sessionCount\": 2,\n\t\t\t\t\t\t\t\"maxSession\": 2,\n\t\t\t\t\t\t\t\"totalSlots\": 2\n\t\t\t\t\t\t},\n\t\t\t\t\t\t\"nodesInfo\": {\n\t\t\t\t\t\t\t\"nodes\": [\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\"id\": \"82ee33bd-390e-4dd6-aee2-06b17ecee18e\",\n\t\t\t\t\t\t\t\t\t\"status\": \"UP\",\n\t\t\t\t\t\t\t\t\t\"sessionCount\": 2,\n\t\t\t\t\t\t\t\t\t\"maxSession\": 2,\n\t\t\t\t\t\t\t\t\t\"slotCount\": 2,\n\t\t\t\t\t\t\t\t\t\"stereotypes\": \"[\\n  {\\n    \\\"slots\\\": 2,\\n    \\\"stereotype\\\": {\\n      \\\"browserName\\\": \\\"chrome\\\",\\n      \\\"browserVersion\\\": \\\"91.0\\\",\\n      \\\"browserPlatform\\\": \\\"Windows 11\\\",\\n      \\\"goog:chromeOptions\\\": {\\n        \\\"binary\\\": \\\"\\\\u002fusr\\\\u002fbin\\\\u002fchromium\\\"\\n      },\\n      \\\"se:containerName\\\": \\\"my-chrome-name-m5n8z-4br6x\\\",\\n      \\\"se:downloadsEnabled\\\": true,\\n      \\\"se:noVncPort\\\": 7900,\\n      \\\"se:vncEnabled\\\": true\\n    }\\n  }\\n]\",\n\t\t\t\t\t\t\t\t\t\"sessions\": [\n\t\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\t\t\"id\": \"0f9c5a941aa4d755a54b84be1f6535b1\",\n\t\t\t\t\t\t\t\t\t\t\t\"capabilities\": \"{\\\"browserName\\\": \\\"chrome\\\", \\\"platformName\\\": \\\"Windows 11\\\", \\\"browserVersion\\\": \\\"91.0\\\"}\",\n\t\t\t\t\t\t\t\t\t\t\t\"slot\": {\n\t\t\t\t\t\t\t\t\t\t\t\t\"id\": \"9ce1edba-72fb-465e-b311-ee473d8d7b64\",\n\t\t\t\t\t\t\t\t\t\t\t\t\"stereotype\": \"{\\\"browserName\\\": \\\"chrome\\\", \\\"platformName\\\": \\\"Windows 11\\\", \\\"browserVersion\\\": \\\"91.0\\\"}\"\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\t\t\"id\": \"0f9c5a941aa4d755a54b84be1f6535b1\",\n\t\t\t\t\t\t\t\t\t\t\t\"capabilities\": \"{\\\"browserName\\\": \\\"chrome\\\", \\\"platformName\\\": \\\"Windows 11\\\", \\\"browserVersion\\\": \\\"91.0\\\"}\",\n\t\t\t\t\t\t\t\t\t\t\t\"slot\": {\n\t\t\t\t\t\t\t\t\t\t\t\t\"id\": \"9ce1edba-72fb-465e-b311-ee473d8d7b64\",\n\t\t\t\t\t\t\t\t\t\t\t\t\"stereotype\": \"{\\\"browserName\\\": \\\"chrome\\\", \\\"platformName\\\": \\\"Windows 11\\\", \\\"browserVersion\\\": \\\"91.0\\\"}\"\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t]\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t]\n\t\t\t\t\t\t},\n\t\t\t\t\t\t\"sessionsInfo\": {\n\t\t\t\t\t\t\t\"sessionQueueRequests\": [\n\t\t\t\t\t\t\t\t\"{\\\"browserName\\\": \\\"chrome\\\", \\\"platformName\\\": \\\"linux\\\"}\",\n\t\t\t\t\t\t\t\t\"{\\\"browserName\\\": \\\"chrome\\\", \\\"platformName\\\": \\\"Windows 11\\\"}\"\n\t\t\t\t\t\t\t]\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}`),\n\t\t\t\tbrowserName:        \"chrome\",\n\t\t\t\tsessionBrowserName: \"chrome\",\n\t\t\t\tbrowserVersion:     \"91.0\",\n\t\t\t\tplatformName:       \"Windows 11\",\n\t\t\t},\n\t\t\twantNewRequestNodes: 0,\n\t\t\twantOnGoingSessions: 2,\n\t\t\twantErr:             false,\n\t\t},\n\t\t{\n\t\t\tname: \"Given_5_requests_explicit_name_version_platform_When_scaler_metadata_set_browserVersion_as_latest_Then_scaler_should_not_scale_up_for_those_request_and_return_0\",\n\t\t\targs: args{\n\t\t\t\tb: []byte(`{\n\t\t\t\t  \"data\": {\n\t\t\t\t\t\"grid\": {\n\t\t\t\t\t  \"sessionCount\": 0,\n\t\t\t\t\t  \"maxSession\": 0,\n\t\t\t\t\t  \"totalSlots\": 0\n\t\t\t\t\t},\n\t\t\t\t\t\"nodesInfo\": {\n\t\t\t\t\t  \"nodes\": []\n\t\t\t\t\t},\n\t\t\t\t\t\"sessionsInfo\": {\n\t\t\t\t\t  \"sessionQueueRequests\": [\n\t\t\t\t\t\t\"{\\\"browserName\\\": \\\"chrome\\\", \\\"browserVersion\\\": \\\"128.0\\\", \\\"platformName\\\": \\\"Linux\\\"}\",\n\t\t\t\t\t\t\"{\\\"browserName\\\": \\\"chrome\\\", \\\"browserVersion\\\": \\\"128.0\\\", \\\"platformName\\\": \\\"Linux\\\"}\",\n\t\t\t\t\t\t\"{\\\"browserName\\\": \\\"chrome\\\", \\\"browserVersion\\\": \\\"128.0\\\", \\\"platformName\\\": \\\"Linux\\\"}\",\n\t\t\t\t\t\t\"{\\\"browserName\\\": \\\"chrome\\\", \\\"browserVersion\\\": \\\"128.0\\\", \\\"platformName\\\": \\\"Linux\\\"}\",\n\t\t\t\t\t\t\"{\\\"browserName\\\": \\\"chrome\\\", \\\"browserVersion\\\": \\\"128.0\\\", \\\"platformName\\\": \\\"Linux\\\"}\"\n\t\t\t\t\t  ]\n\t\t\t\t\t}\n\t\t\t\t  }\n\t\t\t\t}\n\t\t\t\t`),\n\t\t\t\tbrowserName:        \"chrome\",\n\t\t\t\tsessionBrowserName: \"chrome\",\n\t\t\t\tbrowserVersion:     \"\",\n\t\t\t\tplatformName:       \"linux\",\n\t\t\t\tnodeMaxSessions:    2,\n\t\t\t},\n\t\t\twantNewRequestNodes: 0,\n\t\t\twantOnGoingSessions: 0,\n\t\t\twantErr:             false,\n\t\t},\n\t\t{\n\t\t\tname: \"Given_5_requests_explicit_name_version_platform_When_scaler_metadata_set_browserVersion_as_latest_Then_scaler_should_not_scale_up_for_those_requests_and_return_0\",\n\t\t\targs: args{\n\t\t\t\tb: []byte(`{\n\t\t\t\t  \"data\": {\n\t\t\t\t\t\"grid\": {\n\t\t\t\t\t  \"sessionCount\": 0,\n\t\t\t\t\t  \"maxSession\": 0,\n\t\t\t\t\t  \"totalSlots\": 0\n\t\t\t\t\t},\n\t\t\t\t\t\"nodesInfo\": {\n\t\t\t\t\t  \"nodes\": []\n\t\t\t\t\t},\n\t\t\t\t\t\"sessionsInfo\": {\n\t\t\t\t\t  \"sessionQueueRequests\": [\n\t\t\t\t\t\t\"{\\\"browserName\\\": \\\"chrome\\\", \\\"browserVersion\\\": \\\"128.0\\\", \\\"platformName\\\": \\\"Linux\\\"}\",\n\t\t\t\t\t\t\"{\\\"browserName\\\": \\\"chrome\\\", \\\"browserVersion\\\": \\\"128.0\\\", \\\"platformName\\\": \\\"Linux\\\"}\",\n\t\t\t\t\t\t\"{\\\"browserName\\\": \\\"chrome\\\", \\\"browserVersion\\\": \\\"128.0\\\", \\\"platformName\\\": \\\"Linux\\\"}\",\n\t\t\t\t\t\t\"{\\\"browserName\\\": \\\"chrome\\\", \\\"browserVersion\\\": \\\"128.0\\\", \\\"platformName\\\": \\\"Linux\\\"}\",\n\t\t\t\t\t\t\"{\\\"browserName\\\": \\\"chrome\\\", \\\"browserVersion\\\": \\\"128.0\\\", \\\"platformName\\\": \\\"Linux\\\"}\"\n\t\t\t\t\t  ]\n\t\t\t\t\t}\n\t\t\t\t  }\n\t\t\t\t}\n\t\t\t\t`),\n\t\t\t\tbrowserName:        \"chrome\",\n\t\t\t\tsessionBrowserName: \"chrome\",\n\t\t\t\tbrowserVersion:     \"\",\n\t\t\t\tplatformName:       \"linux\",\n\t\t\t\tnodeMaxSessions:    3,\n\t\t\t},\n\t\t\twantNewRequestNodes: 0,\n\t\t\twantOnGoingSessions: 0,\n\t\t\twantErr:             false,\n\t\t},\n\t\t{\n\t\t\tname: \"Given_5_requests_without_browserVersion_When_scaler_metadata_explicit_name_version_platform_Then_scaler_should_not_scaler_up_for_those_requests_and_return_0\",\n\t\t\targs: args{\n\t\t\t\tb: []byte(`{\n\t\t\t\t\t\"data\": {\n\t\t\t\t\t\t\"grid\": {\n\t\t\t\t\t\t\t\"sessionCount\": 2,\n\t\t\t\t\t\t\t\"maxSession\": 3,\n\t\t\t\t\t\t\t\"totalSlots\": 3\n\t\t\t\t\t\t},\n\t\t\t\t\t\t\"nodesInfo\": {\n\t\t\t\t\t\t\t\"nodes\": [\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\"id\": \"82ee33bd-390e-4dd6-aee2-06b17ecee18e\",\n\t\t\t\t\t\t\t\t\t\"status\": \"UP\",\n\t\t\t\t\t\t\t\t\t\"sessionCount\": 2,\n\t\t\t\t\t\t\t\t\t\"maxSession\": 3,\n\t\t\t\t\t\t\t\t\t\"slotCount\": 3,\n\t\t\t\t\t\t\t\t\t\"stereotypes\": \"[\\n  {\\n    \\\"slots\\\": 3,\\n    \\\"stereotype\\\": {\\n      \\\"browserName\\\": \\\"chrome\\\",\\n \\\"platformName\\\": \\\"linux\\\",\\n      \\\"browserVersion\\\": \\\"91.0\\\",\\n      \\\"goog:chromeOptions\\\": {\\n        \\\"binary\\\": \\\"\\\\u002fusr\\\\u002fbin\\\\u002fchromium\\\"\\n      },\\n      \\\"se:containerName\\\": \\\"my-chrome-name-m5n8z-4br6x\\\",\\n      \\\"se:downloadsEnabled\\\": true,\\n      \\\"se:noVncPort\\\": 7900,\\n      \\\"se:vncEnabled\\\": true\\n    }\\n  }\\n]\",\n\t\t\t\t\t\t\t\t\t\"sessions\": [\n\t\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\t\t\"id\": \"0f9c5a941aa4d755a54b84be1f6535b1\",\n\t\t\t\t\t\t\t\t\t\t\t\"capabilities\": \"{\\\"browserName\\\": \\\"chrome\\\", \\\"platformName\\\": \\\"Linux\\\", \\\"browserVersion\\\": \\\"91.0\\\"}\",\n\t\t\t\t\t\t\t\t\t\t\t\"slot\": {\n\t\t\t\t\t\t\t\t\t\t\t\t\"id\": \"9ce1edba-72fb-465e-b311-ee473d8d7b64\",\n\t\t\t\t\t\t\t\t\t\t\t\t\"stereotype\": \"{\\\"browserName\\\": \\\"chrome\\\", \\\"platformName\\\": \\\"Linux\\\", \\\"browserVersion\\\": \\\"91.0\\\"}\"\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\t\t\"id\": \"0f9c5a941aa4d755a54b84be1f6535b1\",\n\t\t\t\t\t\t\t\t\t\t\t\"capabilities\": \"{\\\"browserName\\\": \\\"chrome\\\", \\\"platformName\\\": \\\"linux\\\", \\\"browserVersion\\\": \\\"91.0\\\"}\",\n\t\t\t\t\t\t\t\t\t\t\t\"slot\": {\n\t\t\t\t\t\t\t\t\t\t\t\t\"id\": \"9ce1edba-72fb-465e-b311-ee473d8d7b64\",\n\t\t\t\t\t\t\t\t\t\t\t\t\"stereotype\": \"{\\\"browserName\\\": \\\"chrome\\\", \\\"platformName\\\": \\\"Linux\\\", \\\"browserVersion\\\": \\\"91.0\\\"}\"\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t]\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t]\n\t\t\t\t\t\t},\n\t\t\t\t\t\t\"sessionsInfo\": {\n\t\t\t\t\t\t\t\"sessionQueueRequests\": [\n\t\t\t\t\t\t\t\t\"{\\\"browserName\\\": \\\"chrome\\\", \\\"platformName\\\": \\\"linux\\\"}\",\n\t\t\t\t\t\t\t\t\"{\\\"browserName\\\": \\\"chrome\\\", \\\"platformName\\\": \\\"linux\\\"}\",\n\t\t\t\t\t\t\t\t\"{\\\"browserName\\\": \\\"chrome\\\", \\\"platformName\\\": \\\"linux\\\"}\",\n\t\t\t\t\t\t\t\t\"{\\\"browserName\\\": \\\"chrome\\\", \\\"platformName\\\": \\\"linux\\\"}\",\n\t\t\t\t\t\t\t\t\"{\\\"browserName\\\": \\\"chrome\\\", \\\"platformName\\\": \\\"linux\\\"}\"\n\t\t\t\t\t\t\t]\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}`),\n\t\t\t\tbrowserName:        \"chrome\",\n\t\t\t\tsessionBrowserName: \"chrome\",\n\t\t\t\tbrowserVersion:     \"91.0\",\n\t\t\t\tplatformName:       \"linux\",\n\t\t\t\tnodeMaxSessions:    3,\n\t\t\t},\n\t\t\twantNewRequestNodes: 0,\n\t\t\twantOnGoingSessions: 2,\n\t\t\twantErr:             false,\n\t\t},\n\t\t// Tests from PR: https://github.com/kedacore/keda/pull/6055\n\t\t{\n\t\t\tname: \"sessions requests with matching browsername and platformName when setSessionsFromHub turned on and node with 1 slots matches should return count as 0\",\n\t\t\targs: args{\n\t\t\t\tb: []byte(`{\n\t\t\t\t\t\"data\": {\n\t\t\t\t\t\t\"grid\": {\n\t\t\t\t\t\t\t\"sessionCount\": 0,\n\t\t\t\t\t\t\t\"maxSession\": 1,\n\t\t\t\t\t\t\t\"totalSlots\": 1\n\t\t\t\t\t\t},\n\t\t\t\t\t\t\"nodesInfo\": {\n\t\t\t\t\t\t\t\"nodes\": [\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\"id\": \"82ee33bd-390e-4dd6-aee2-06b17ecee18e\",\n\t\t\t\t\t\t\t\t\t\"status\": \"UP\",\n\t\t\t\t\t\t\t\t\t\"sessionCount\": 0,\n\t\t\t\t\t\t\t\t\t\"maxSession\": 1,\n\t\t\t\t\t\t\t\t\t\"slotCount\": 1,\n\t\t\t\t\t\t\t\t\t\"stereotypes\":\"[{\\\"slots\\\":1,\\\"stereotype\\\":{\\\"browserName\\\":\\\"chrome\\\",\\\"platformName\\\":\\\"linux\\\"}}]\",\n\t\t\t\t\t\t\t\t\t\"sessions\": []\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t]\n\t\t\t\t\t\t},\n\t\t\t\t\t\t\"sessionsInfo\": {\n\t\t\t\t\t\t\t\"sessionQueueRequests\": [\n\t\t\t\t\t\t\t\t\"{\\n  \\\"browserName\\\": \\\"chrome\\\",\\n \\\"platformName\\\": \\\"linux\\\"\\n}\",\n\t\t\t\t\t\t\t\t\"{\\n  \\\"browserName\\\": \\\"chrome\\\",\\n \\\"platformName\\\": \\\"Windows 11\\\"\\n}\"\n\t\t\t\t\t\t\t]\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}`),\n\t\t\t\tbrowserName:        \"chrome\",\n\t\t\t\tsessionBrowserName: \"chrome\",\n\t\t\t\tbrowserVersion:     \"\",\n\t\t\t\tplatformName:       \"linux\",\n\t\t\t},\n\t\t\twantNewRequestNodes: 0,\n\t\t\twantOnGoingSessions: 0,\n\t\t\twantErr:             false,\n\t\t},\n\t\t{\n\t\t\tname: \"4 sessions requests with matching browsername and platformName when setSessionsFromHub turned on and node with 2 slots matches should return count as 2\",\n\t\t\targs: args{\n\t\t\t\tb: []byte(`{\n\t\t\t\t\t\"data\": {\n\t\t\t\t\t\t\"grid\": {\n\t\t\t\t\t\t\t\"sessionCount\": 0,\n\t\t\t\t\t\t\t\"maxSession\": 2,\n\t\t\t\t\t\t\t\"totalSlots\": 2\n\t\t\t\t\t\t},\n\t\t\t\t\t\t\"nodesInfo\": {\n\t\t\t\t\t\t\t\"nodes\": [\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\"id\": \"82ee33bd-390e-4dd6-aee2-06b17ecee18e\",\n\t\t\t\t\t\t\t\t\t\"status\": \"UP\",\n\t\t\t\t\t\t\t\t\t\"sessionCount\": 0,\n\t\t\t\t\t\t\t\t\t\"maxSession\": 2,\n\t\t\t\t\t\t\t\t\t\"slotCount\": 2,\n\t\t\t\t\t\t\t\t\t\"stereotypes\":\"[{\\\"slots\\\":2,\\\"stereotype\\\":{\\\"browserName\\\":\\\"chrome\\\",\\\"platformName\\\":\\\"linux\\\"}}]\",\n\t\t\t\t\t\t\t\t\t\"sessions\": [\n\t\t\t\t\t\t\t\t\t]\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t]\n\t\t\t\t\t\t},\n\t\t\t\t\t\t\"sessionsInfo\": {\n\t\t\t\t\t\t\t\"sessionQueueRequests\": [\n\t\t\t\t\t\t\t\t\"{\\n  \\\"browserName\\\": \\\"chrome\\\",\\n \\\"platformName\\\": \\\"linux\\\"\\n}\",\n\t\t\t\t\t\t\t\t\"{\\n  \\\"browserName\\\": \\\"chrome\\\",\\n \\\"platformName\\\": \\\"linux\\\"\\n}\",\n\t\t\t\t\t\t\t\t\"{\\n  \\\"browserName\\\": \\\"chrome\\\",\\n \\\"platformName\\\": \\\"linux\\\"\\n}\",\n\t\t\t\t\t\t\t\t\"{\\n  \\\"browserName\\\": \\\"chrome\\\",\\n \\\"platformName\\\": \\\"linux\\\"\\n}\",\n\t\t\t\t\t\t\t\t\"{\\n  \\\"browserName\\\": \\\"chrome\\\",\\n \\\"platformName\\\": \\\"Windows 11\\\"\\n}\"]\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}`),\n\t\t\t\tbrowserName:        \"chrome\",\n\t\t\t\tsessionBrowserName: \"chrome\",\n\t\t\t\tbrowserVersion:     \"\",\n\t\t\t\tplatformName:       \"linux\",\n\t\t\t},\n\t\t\twantNewRequestNodes: 2,\n\t\t\twantOnGoingSessions: 0,\n\t\t\twantErr:             false,\n\t\t},\n\t\t{\n\t\t\tname: \"4 sessions requests with matching browsername and platformName when setSessionsFromHub turned on, no nodes and sessionsPerNode=2 matches should return count as 2\",\n\t\t\targs: args{\n\t\t\t\tb: []byte(`{\n\t\t\t\t\t\"data\": {\n\t\t\t\t\t\t\"grid\": {\n\t\t\t\t\t\t\t\"sessionCount\": 0,\n\t\t\t\t\t\t\t\"maxSession\": 0,\n\t\t\t\t\t\t\t\"totalSlots\": 0\n\t\t\t\t\t\t},\n\t\t\t\t\t\t\"nodesInfo\": {\n\t\t\t\t\t\t\t\"nodes\": []\n\t\t\t\t\t\t},\n\t\t\t\t\t\t\"sessionsInfo\": {\n\t\t\t\t\t\t\t\"sessionQueueRequests\": [\n\t\t\t\t\t\t\t\t\"{\\n  \\\"browserName\\\": \\\"chrome\\\",\\n \\\"platformName\\\": \\\"linux\\\"\\n}\",\n\t\t\t\t\t\t\t\t\"{\\n  \\\"browserName\\\": \\\"chrome\\\",\\n \\\"platformName\\\": \\\"linux\\\"\\n}\",\n\t\t\t\t\t\t\t\t\"{\\n  \\\"browserName\\\": \\\"chrome\\\",\\n \\\"platformName\\\": \\\"linux\\\"\\n}\",\n\t\t\t\t\t\t\t\t\"{\\n  \\\"browserName\\\": \\\"chrome\\\",\\n \\\"platformName\\\": \\\"linux\\\"\\n}\",\n\t\t\t\t\t\t\t\t\"{\\n  \\\"browserName\\\": \\\"chrome\\\",\\n \\\"platformName\\\": \\\"Windows 11\\\"\\n}\"]\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}`),\n\t\t\t\tbrowserName:        \"chrome\",\n\t\t\t\tsessionBrowserName: \"chrome\",\n\t\t\t\tbrowserVersion:     \"\",\n\t\t\t\tplatformName:       \"linux\",\n\t\t\t\tnodeMaxSessions:    2,\n\t\t\t},\n\t\t\twantNewRequestNodes: 2,\n\t\t\twantOnGoingSessions: 0,\n\t\t\twantErr:             false,\n\t\t},\n\t\t{\n\t\t\tname: \"4_sessions_requests_with_matching_browserName_and_platformName_when_set_nodeMaxSessions_2_and_4_requests_match_should_return_count_as_2_and_1_ongoing_session\",\n\t\t\targs: args{\n\t\t\t\tb: []byte(`{\n\t\t\t\t\t\"data\": {\n\t\t\t\t\t\t\"grid\": {\n\t\t\t\t\t\t\t\"sessionCount\": 1,\n\t\t\t\t\t\t\t\"maxSession\": 2,\n\t\t\t\t\t\t\t\"totalSlots\": 2\n\t\t\t\t\t\t},\n\t\t\t\t\t\t\"nodesInfo\": {\n\t\t\t\t\t\t\t\"nodes\": [\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\"id\": \"node-1\",\n\t\t\t\t\t\t\t\t\t\"status\": \"UP\",\n\t\t\t\t\t\t\t\t\t\"sessionCount\": 1,\n\t\t\t\t\t\t\t\t\t\"maxSession\": 2,\n\t\t\t\t\t\t\t\t\t\"slotCount\": 2,\n\t\t\t\t\t\t\t\t\t\"stereotypes\": \"[{\\\"slots\\\": 2, \\\"stereotype\\\": {\\\"browserName\\\": \\\"chrome\\\", \\\"browserVersion\\\": \\\"\\\", \\\"platformName\\\": \\\"linux\\\", \\\"se:downloadsEnabled\\\": true}}]\",\n\t\t\t\t\t\t\t\t\t\"sessions\": [\n\t\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\t\t\"id\": \"session-1\",\n\t\t\t\t\t\t\t\t\t\t\t\"capabilities\": \"{\\\"browserName\\\": \\\"chrome\\\", \\\"browserVersion\\\": \\\"\\\", \\\"platformName\\\": \\\"linux\\\", \\\"se:downloadsEnabled\\\": true}\",\n\t\t\t\t\t\t\t\t\t\t\t\"slot\": {\n\t\t\t\t\t\t\t\t\t\t\t\t\"id\": \"9ce1edba-72fb-465e-b311-ee473d8d7b64\",\n\t\t\t\t\t\t\t\t\t\t\t\t\"stereotype\": \"{\\\"browserName\\\": \\\"chrome\\\", \\\"browserVersion\\\": \\\"\\\", \\\"platformName\\\": \\\"linux\\\", \\\"se:downloadsEnabled\\\": true}\"\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t]\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t]\n\t\t\t\t\t\t},\n\t\t\t\t\t\t\"sessionsInfo\": {\n\t\t\t\t\t\t\t\"sessionQueueRequests\": [\n\t\t\t\t\t\t\t\t\"{\\n  \\\"browserName\\\": \\\"chrome\\\",\\n \\\"platformName\\\": \\\"linux\\\"\\n}\",\n\t\t\t\t\t\t\t\t\"{\\n  \\\"browserName\\\": \\\"chrome\\\",\\n \\\"se:downloadsEnabled\\\": true,\\n \\\"platformName\\\": \\\"linux\\\"\\n}\",\n\t\t\t\t\t\t\t\t\"{\\n  \\\"browserName\\\": \\\"chrome\\\",\\n \\\"se:downloadsEnabled\\\": true,\\n \\\"platformName\\\": \\\"linux\\\"\\n}\",\n\t\t\t\t\t\t\t\t\"{\\n  \\\"browserName\\\": \\\"chrome\\\",\\n \\\"se:downloadsEnabled\\\": true,\\n \\\"platformName\\\": \\\"linux\\\"\\n}\",\n\t\t\t\t\t\t\t\t\"{\\n  \\\"browserName\\\": \\\"chrome\\\",\\n \\\"platformName\\\": \\\"Windows 11\\\"\\n}\"]\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}`),\n\t\t\t\tbrowserName:            \"chrome\",\n\t\t\t\tsessionBrowserName:     \"chrome\",\n\t\t\t\tbrowserVersion:         \"\",\n\t\t\t\tplatformName:           \"linux\",\n\t\t\t\tnodeMaxSessions:        2,\n\t\t\t\tenableManagedDownloads: true,\n\t\t\t},\n\t\t\twantNewRequestNodes: 2,\n\t\t\twantOnGoingSessions: 1,\n\t\t\twantErr:             false,\n\t\t},\n\t\t{\n\t\t\tname: \"4_sessions_requests_with_matching_browserName_and_platformName_when_set_nodeMaxSessions_2_disable_managed_downloads_and_1_requests_match_should_return_count_as_1_and_0_ongoing_session\",\n\t\t\targs: args{\n\t\t\t\tb: []byte(`{\n\t\t\t\t\t\"data\": {\n\t\t\t\t\t\t\"grid\": {\n\t\t\t\t\t\t\t\"sessionCount\": 1,\n\t\t\t\t\t\t\t\"maxSession\": 2,\n\t\t\t\t\t\t\t\"totalSlots\": 2\n\t\t\t\t\t\t},\n\t\t\t\t\t\t\"nodesInfo\": {\n\t\t\t\t\t\t\t\"nodes\": [\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\"id\": \"node-1\",\n\t\t\t\t\t\t\t\t\t\"status\": \"UP\",\n\t\t\t\t\t\t\t\t\t\"sessionCount\": 1,\n\t\t\t\t\t\t\t\t\t\"maxSession\": 1,\n\t\t\t\t\t\t\t\t\t\"slotCount\": 1,\n\t\t\t\t\t\t\t\t\t\"stereotypes\": \"[{\\\"slots\\\": 1, \\\"stereotype\\\": {\\\"browserName\\\": \\\"chrome\\\", \\\"browserVersion\\\": \\\"\\\", \\\"platformName\\\": \\\"linux\\\", \\\"se:downloadsEnabled\\\": true}}]\",\n\t\t\t\t\t\t\t\t\t\"sessions\": [\n\t\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\t\t\"id\": \"session-1\",\n\t\t\t\t\t\t\t\t\t\t\t\"capabilities\": \"{\\\"browserName\\\": \\\"chrome\\\", \\\"browserVersion\\\": \\\"\\\", \\\"platformName\\\": \\\"linux\\\", \\\"se:downloadsEnabled\\\": true}\",\n\t\t\t\t\t\t\t\t\t\t\t\"slot\": {\n\t\t\t\t\t\t\t\t\t\t\t\t\"id\": \"9ce1edba-72fb-465e-b311-ee473d8d7b64\",\n\t\t\t\t\t\t\t\t\t\t\t\t\"stereotype\": \"{\\\"browserName\\\": \\\"chrome\\\", \\\"browserVersion\\\": \\\"\\\", \\\"platformName\\\": \\\"linux\\\", \\\"se:downloadsEnabled\\\": true}\"\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t]\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t]\n\t\t\t\t\t\t},\n\t\t\t\t\t\t\"sessionsInfo\": {\n\t\t\t\t\t\t\t\"sessionQueueRequests\": [\n\t\t\t\t\t\t\t\t\"{\\n  \\\"browserName\\\": \\\"chrome\\\",\\n \\\"platformName\\\": \\\"linux\\\"\\n}\",\n\t\t\t\t\t\t\t\t\"{\\n  \\\"browserName\\\": \\\"chrome\\\",\\n \\\"se:downloadsEnabled\\\": true,\\n \\\"platformName\\\": \\\"linux\\\"\\n}\",\n\t\t\t\t\t\t\t\t\"{\\n  \\\"browserName\\\": \\\"chrome\\\",\\n \\\"se:downloadsEnabled\\\": true,\\n \\\"platformName\\\": \\\"linux\\\"\\n}\",\n\t\t\t\t\t\t\t\t\"{\\n  \\\"browserName\\\": \\\"chrome\\\",\\n \\\"se:downloadsEnabled\\\": true,\\n \\\"platformName\\\": \\\"linux\\\"\\n}\",\n\t\t\t\t\t\t\t\t\"{\\n  \\\"browserName\\\": \\\"chrome\\\",\\n \\\"platformName\\\": \\\"Windows 11\\\"\\n}\"]\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}`),\n\t\t\t\tbrowserName:        \"chrome\",\n\t\t\t\tsessionBrowserName: \"chrome\",\n\t\t\t\tbrowserVersion:     \"\",\n\t\t\t\tplatformName:       \"linux\",\n\t\t\t\tnodeMaxSessions:    2,\n\t\t\t},\n\t\t\twantNewRequestNodes: 1,\n\t\t\twantOnGoingSessions: 0,\n\t\t\twantErr:             false,\n\t\t},\n\t\t{\n\t\t\tname: \"4_sessions_requests_with_matching_browserName_and_platformName_when_set_extra_capabilities_and_2_requests_match_should_return_count_as_2_and_ongoing_1\",\n\t\t\targs: args{\n\t\t\t\tb: []byte(`{\n\t\t\t\t\t\"data\": {\n\t\t\t\t\t\t\"grid\": {\n\t\t\t\t\t\t\t\"sessionCount\": 1,\n\t\t\t\t\t\t\t\"maxSession\": 1,\n\t\t\t\t\t\t\t\"totalSlots\": 1\n\t\t\t\t\t\t},\n\t\t\t\t\t\t\"nodesInfo\": {\n\t\t\t\t\t\t\t\"nodes\": [\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\"id\": \"node-1\",\n\t\t\t\t\t\t\t\t\t\"status\": \"UP\",\n\t\t\t\t\t\t\t\t\t\"sessionCount\": 1,\n\t\t\t\t\t\t\t\t\t\"maxSession\": 1,\n\t\t\t\t\t\t\t\t\t\"slotCount\": 1,\n\t\t\t\t\t\t\t\t\t\"stereotypes\": \"[{\\\"slots\\\": 1, \\\"stereotype\\\": {\\\"browserName\\\": \\\"chrome\\\", \\\"browserVersion\\\": \\\"\\\", \\\"platformName\\\": \\\"linux\\\", \\\"myApp:version\\\": \\\"beta\\\", \\\"myApp:scope\\\": \\\"internal\\\"}}]\",\n\t\t\t\t\t\t\t\t\t\"sessions\": [\n\t\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\t\t\"id\": \"session-1\",\n\t\t\t\t\t\t\t\t\t\t\t\"capabilities\": \"{\\\"browserName\\\": \\\"chrome\\\", \\\"browserVersion\\\": \\\"\\\", \\\"platformName\\\": \\\"linux\\\", \\\"myApp:version\\\": \\\"beta\\\", \\\"myApp:scope\\\": \\\"internal\\\"}\",\n\t\t\t\t\t\t\t\t\t\t\t\"slot\": {\n\t\t\t\t\t\t\t\t\t\t\t\t\"id\": \"9ce1edba-72fb-465e-b311-ee473d8d7b64\",\n\t\t\t\t\t\t\t\t\t\t\t\t\"stereotype\": \"{\\\"browserName\\\": \\\"chrome\\\", \\\"browserVersion\\\": \\\"\\\", \\\"platformName\\\": \\\"linux\\\", \\\"myApp:version\\\": \\\"beta\\\", \\\"myApp:scope\\\": \\\"internal\\\"}\"\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t]\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t]\n\t\t\t\t\t\t},\n\t\t\t\t\t\t\"sessionsInfo\": {\n\t\t\t\t\t\t\t\"sessionQueueRequests\": [\n\t\t\t\t\t\t\t\t\"{\\n  \\\"browserName\\\": \\\"chrome\\\",\\n \\\"platformName\\\": \\\"linux\\\"\\n}\",\n\t\t\t\t\t\t\t\t\"{\\n  \\\"browserName\\\": \\\"chrome\\\",\\n \\\"myApp:version\\\": \\\"beta\\\",\\n \\\"platformName\\\": \\\"linux\\\"\\n}\",\n\t\t\t\t\t\t\t\t\"{\\n  \\\"browserName\\\": \\\"chrome\\\",\\n \\\"myApp:version\\\": \\\"beta\\\",\\n \\\"myApp:scope\\\": \\\"internal\\\",\\n \\\"platformName\\\": \\\"linux\\\"\\n}\",\n\t\t\t\t\t\t\t\t\"{\\n  \\\"browserName\\\": \\\"chrome\\\",\\n \\\"myApp:version\\\": \\\"beta\\\",\\n \\\"myApp:scope\\\": \\\"internal\\\",\\n \\\"platformName\\\": \\\"linux\\\"\\n}\",\n\t\t\t\t\t\t\t\t\"{\\n  \\\"browserName\\\": \\\"chrome\\\",\\n \\\"platformName\\\": \\\"Windows 11\\\"\\n}\"]\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}`),\n\t\t\t\tbrowserName:        \"chrome\",\n\t\t\t\tsessionBrowserName: \"chrome\",\n\t\t\t\tbrowserVersion:     \"\",\n\t\t\t\tplatformName:       \"linux\",\n\t\t\t\tnodeMaxSessions:    1,\n\t\t\t\tcapabilities:       \"{\\\"myApp:version\\\": \\\"beta\\\", \\\"myApp:scope\\\": \\\"internal\\\"}\",\n\t\t\t},\n\t\t\twantNewRequestNodes: 2,\n\t\t\twantOnGoingSessions: 1,\n\t\t\twantErr:             false,\n\t\t},\n\t\t{\n\t\t\tname: \"4_sessions_requests_with_matching_browserName_and_platformName_when_set_extra_capabilities_and_mangaged_downloads_and_1_request_match_should_return_count_as_2_and_ongoing_1\",\n\t\t\targs: args{\n\t\t\t\tb: []byte(`{\n\t\t\t\t\t\"data\": {\n\t\t\t\t\t\t\"grid\": {\n\t\t\t\t\t\t\t\"sessionCount\": 1,\n\t\t\t\t\t\t\t\"maxSession\": 1,\n\t\t\t\t\t\t\t\"totalSlots\": 1\n\t\t\t\t\t\t},\n\t\t\t\t\t\t\"nodesInfo\": {\n\t\t\t\t\t\t\t\"nodes\": [\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\"id\": \"node-1\",\n\t\t\t\t\t\t\t\t\t\"status\": \"UP\",\n\t\t\t\t\t\t\t\t\t\"sessionCount\": 1,\n\t\t\t\t\t\t\t\t\t\"maxSession\": 1,\n\t\t\t\t\t\t\t\t\t\"slotCount\": 1,\n\t\t\t\t\t\t\t\t\t\"stereotypes\": \"[{\\\"slots\\\": 1, \\\"stereotype\\\": {\\\"browserName\\\": \\\"chrome\\\", \\\"browserVersion\\\": \\\"\\\", \\\"platformName\\\": \\\"linux\\\", \\\"myApp:version\\\": \\\"beta\\\", \\\"myApp:scope\\\": \\\"internal\\\", \\\"se:downloadsEnabled\\\": true}}]\",\n\t\t\t\t\t\t\t\t\t\"sessions\": [\n\t\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\t\t\"id\": \"session-1\",\n\t\t\t\t\t\t\t\t\t\t\t\"capabilities\": \"{\\\"browserName\\\": \\\"chrome\\\", \\\"browserVersion\\\": \\\"\\\", \\\"platformName\\\": \\\"linux\\\", \\\"myApp:version\\\": \\\"beta\\\", \\\"myApp:scope\\\": \\\"internal\\\", \\\"se:downloadsEnabled\\\": true}\",\n\t\t\t\t\t\t\t\t\t\t\t\"slot\": {\n\t\t\t\t\t\t\t\t\t\t\t\t\"id\": \"9ce1edba-72fb-465e-b311-ee473d8d7b64\",\n\t\t\t\t\t\t\t\t\t\t\t\t\"stereotype\": \"{\\\"browserName\\\": \\\"chrome\\\", \\\"browserVersion\\\": \\\"\\\", \\\"platformName\\\": \\\"linux\\\", \\\"myApp:version\\\": \\\"beta\\\", \\\"myApp:scope\\\": \\\"internal\\\", \\\"se:downloadsEnabled\\\": true}\"\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t]\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t]\n\t\t\t\t\t\t},\n\t\t\t\t\t\t\"sessionsInfo\": {\n\t\t\t\t\t\t\t\"sessionQueueRequests\": [\n\t\t\t\t\t\t\t\t\"{\\n  \\\"browserName\\\": \\\"chrome\\\",\\n \\\"platformName\\\": \\\"linux\\\"\\n}\",\n\t\t\t\t\t\t\t\t\"{\\n  \\\"browserName\\\": \\\"chrome\\\",\\n \\\"myApp:version\\\": \\\"beta\\\",\\n \\\"platformName\\\": \\\"linux\\\"\\n}\",\n\t\t\t\t\t\t\t\t\"{\\n  \\\"browserName\\\": \\\"chrome\\\",\\n \\\"myApp:version\\\": \\\"beta\\\",\\n \\\"myApp:scope\\\": \\\"internal\\\",\\n \\\"platformName\\\": \\\"linux\\\"\\n}\",\n\t\t\t\t\t\t\t\t\"{\\n  \\\"browserName\\\": \\\"chrome\\\",\\n \\\"se:downloadsEnabled\\\": true,\\n \\\"myApp:version\\\": \\\"beta\\\",\\n \\\"myApp:scope\\\": \\\"internal\\\",\\n \\\"platformName\\\": \\\"linux\\\"\\n}\",\n\t\t\t\t\t\t\t\t\"{\\n  \\\"browserName\\\": \\\"chrome\\\",\\n \\\"platformName\\\": \\\"Windows 11\\\"\\n}\"]\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}`),\n\t\t\t\tbrowserName:            \"chrome\",\n\t\t\t\tsessionBrowserName:     \"chrome\",\n\t\t\t\tbrowserVersion:         \"\",\n\t\t\t\tplatformName:           \"linux\",\n\t\t\t\tnodeMaxSessions:        1,\n\t\t\t\tenableManagedDownloads: true,\n\t\t\t\tcapabilities:           \"{\\\"myApp:version\\\": \\\"beta\\\", \\\"myApp:scope\\\": \\\"internal\\\"}\",\n\t\t\t},\n\t\t\twantNewRequestNodes: 2,\n\t\t\twantOnGoingSessions: 1,\n\t\t\twantErr:             false,\n\t\t},\n\t\t{\n\t\t\tname: \"4_sessions_requests_with_matching_browserName_and_platformName_when_set_extra_capabilities_and_mangaged_downloads_and_4_request_match_should_return_count_as_4_and_ongoing_2\",\n\t\t\targs: args{\n\t\t\t\tb: []byte(`{\n\t\t\t\t\t\"data\": {\n\t\t\t\t\t\t\"grid\": {\n\t\t\t\t\t\t\t\"sessionCount\": 1,\n\t\t\t\t\t\t\t\"maxSession\": 1,\n\t\t\t\t\t\t\t\"totalSlots\": 1\n\t\t\t\t\t\t},\n\t\t\t\t\t\t\"nodesInfo\": {\n\t\t\t\t\t\t\t\"nodes\": [\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\"id\": \"node-1\",\n\t\t\t\t\t\t\t\t\t\"status\": \"UP\",\n\t\t\t\t\t\t\t\t\t\"sessionCount\": 1,\n\t\t\t\t\t\t\t\t\t\"maxSession\": 1,\n\t\t\t\t\t\t\t\t\t\"slotCount\": 1,\n\t\t\t\t\t\t\t\t\t\"stereotypes\": \"[{\\\"slots\\\": 1, \\\"stereotype\\\": {\\\"browserName\\\": \\\"chrome\\\", \\\"browserVersion\\\": \\\"\\\", \\\"platformName\\\": \\\"linux\\\", \\\"myApp:version\\\": \\\"beta\\\", \\\"myApp:scope\\\": \\\"internal\\\", \\\"se:downloadsEnabled\\\": true}}]\",\n\t\t\t\t\t\t\t\t\t\"sessions\": [\n\t\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\t\t\"id\": \"session-1\",\n\t\t\t\t\t\t\t\t\t\t\t\"capabilities\": \"{\\\"browserName\\\": \\\"chrome\\\", \\\"browserVersion\\\": \\\"\\\", \\\"platformName\\\": \\\"linux\\\", \\\"myApp:version\\\": \\\"beta\\\", \\\"myApp:scope\\\": \\\"internal\\\", \\\"se:downloadsEnabled\\\": true}\",\n\t\t\t\t\t\t\t\t\t\t\t\"slot\": {\n\t\t\t\t\t\t\t\t\t\t\t\t\"id\": \"9ce1edba-72fb-465e-b311-ee473d8d7b64\",\n\t\t\t\t\t\t\t\t\t\t\t\t\"stereotype\": \"{\\\"browserName\\\": \\\"chrome\\\", \\\"browserVersion\\\": \\\"\\\", \\\"platformName\\\": \\\"linux\\\", \\\"myApp:version\\\": \\\"beta\\\", \\\"myApp:scope\\\": \\\"internal\\\", \\\"se:downloadsEnabled\\\": true}\"\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t]\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\"id\": \"node-2\",\n\t\t\t\t\t\t\t\t\t\"status\": \"UP\",\n\t\t\t\t\t\t\t\t\t\"sessionCount\": 1,\n\t\t\t\t\t\t\t\t\t\"maxSession\": 1,\n\t\t\t\t\t\t\t\t\t\"slotCount\": 1,\n\t\t\t\t\t\t\t\t\t\"stereotypes\": \"[{\\\"slots\\\": 1, \\\"stereotype\\\": {\\\"browserName\\\": \\\"chrome\\\", \\\"browserVersion\\\": \\\"\\\", \\\"platformName\\\": \\\"linux\\\", \\\"myApp:version\\\": \\\"beta\\\", \\\"myApp:scope\\\": \\\"internal\\\"}}]\",\n\t\t\t\t\t\t\t\t\t\"sessions\": [\n\t\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\t\t\"id\": \"session-1\",\n\t\t\t\t\t\t\t\t\t\t\t\"capabilities\": \"{\\\"browserName\\\": \\\"chrome\\\", \\\"browserVersion\\\": \\\"\\\", \\\"platformName\\\": \\\"linux\\\", \\\"myApp:version\\\": \\\"beta\\\", \\\"myApp:scope\\\": \\\"internal\\\"}\",\n\t\t\t\t\t\t\t\t\t\t\t\"slot\": {\n\t\t\t\t\t\t\t\t\t\t\t\t\"id\": \"9ce1edba-72fb-465e-b311-ee473d8d7b64\",\n\t\t\t\t\t\t\t\t\t\t\t\t\"stereotype\": \"{\\\"browserName\\\": \\\"chrome\\\", \\\"browserVersion\\\": \\\"\\\", \\\"platformName\\\": \\\"linux\\\", \\\"myApp:version\\\": \\\"beta\\\", \\\"myApp:scope\\\": \\\"internal\\\"}\"\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t]\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t]\n\t\t\t\t\t\t},\n\t\t\t\t\t\t\"sessionsInfo\": {\n\t\t\t\t\t\t\t\"sessionQueueRequests\": [\n\t\t\t\t\t\t\t\t\"{\\n  \\\"browserName\\\": \\\"chrome\\\",\\n \\\"platformName\\\": \\\"linux\\\"\\n}\",\n\t\t\t\t\t\t\t\t\"{\\n  \\\"browserName\\\": \\\"chrome\\\",\\n \\\"myApp:version\\\": \\\"beta\\\",\\n \\\"platformName\\\": \\\"linux\\\"\\n}\",\n\t\t\t\t\t\t\t\t\"{\\n  \\\"browserName\\\": \\\"chrome\\\",\\n \\\"myApp:version\\\": \\\"beta\\\",\\n \\\"myApp:scope\\\": \\\"internal\\\",\\n \\\"platformName\\\": \\\"linux\\\"\\n}\",\n\t\t\t\t\t\t\t\t\"{\\n  \\\"browserName\\\": \\\"chrome\\\",\\n \\\"myApp:version\\\": \\\"beta\\\",\\n \\\"myApp:scope\\\": \\\"internal\\\",\\n \\\"platformName\\\": \\\"linux\\\"\\n}\",\n\t\t\t\t\t\t\t\t\"{\\n  \\\"browserName\\\": \\\"chrome\\\",\\n \\\"platformName\\\": \\\"Windows 11\\\"\\n}\"]\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}`),\n\t\t\t\tbrowserName:            \"chrome\",\n\t\t\t\tsessionBrowserName:     \"chrome\",\n\t\t\t\tbrowserVersion:         \"\",\n\t\t\t\tplatformName:           \"linux\",\n\t\t\t\tnodeMaxSessions:        1,\n\t\t\t\tenableManagedDownloads: true,\n\t\t\t},\n\t\t\twantNewRequestNodes: 4,\n\t\t\twantOnGoingSessions: 2,\n\t\t\twantErr:             false,\n\t\t},\n\t\t{\n\t\t\tname: \"Given_2_requests_include_1_without_browserVersion_When_scaler_metadata_explicit_name_version_platform_Then_scaler_should_scale_up_for_1_request_has_browserVersion_and_return_0_ongoing_sessions\",\n\t\t\targs: args{\n\t\t\t\tb: []byte(`{\n\t\t\t\t\t\"data\": {\n\t\t\t\t\t\t\"grid\": {\n\t\t\t\t\t\t\t\"sessionCount\": 2,\n\t\t\t\t\t\t\t\"maxSession\": 2,\n\t\t\t\t\t\t\t\"totalSlots\": 2\n\t\t\t\t\t\t},\n\t\t\t\t\t\t\"nodesInfo\": {\n\t\t\t\t\t\t\t\"nodes\": [\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\"id\": \"d44dcbc5-0b2c-4d5e-abf4-6f6aa5e0983c\",\n\t\t\t\t\t\t\t\t\t\"status\": \"UP\",\n\t\t\t\t\t\t\t\t\t\"sessionCount\": 2,\n\t\t\t\t\t\t\t\t\t\"maxSession\": 2,\n\t\t\t\t\t\t\t\t\t\"slotCount\": 2,\n\t\t\t\t\t\t\t\t\t\"stereotypes\":\"[{\\\"slots\\\":2,\\\"stereotype\\\":{\\\"browserName\\\":\\\"chrome\\\",\\\"platformName\\\":\\\"linux\\\"}}]\",\n\t\t\t\t\t\t\t\t\t\"sessions\": [\n\t\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\t\t\"id\": \"0f9c5a941aa4d755a54b84be1f6535b1\",\n\t\t\t\t\t\t\t\t\t\t\t\"capabilities\": \"{\\n  \\\"acceptInsecureCerts\\\": false,\\n  \\\"browserName\\\": \\\"chrome\\\",\\n  \\\"browserVersion\\\": \\\"91.0.4472.114\\\",\\n  \\\"chrome\\\": {\\n    \\\"chromedriverVersion\\\": \\\"91.0.4472.101 (af52a90bf87030dd1523486a1cd3ae25c5d76c9b-refs\\\\u002fbranch-heads\\\\u002f4472@{#1462})\\\",\\n    \\\"userDataDir\\\": \\\"\\\\u002ftmp\\\\u002f.com.google.Chrome.DMqx9m\\\"\\n  },\\n  \\\"goog:chromeOptions\\\": {\\n    \\\"debuggerAddress\\\": \\\"localhost:35839\\\"\\n  },\\n  \\\"networkConnectionEnabled\\\": false,\\n  \\\"pageLoadStrategy\\\": \\\"normal\\\",\\n  \\\"platformName\\\": \\\"linux\\\",\\n  \\\"proxy\\\": {\\n  },\\n  \\\"se:cdp\\\": \\\"http:\\\\u002f\\\\u002flocalhost:35839\\\",\\n  \\\"se:cdpVersion\\\": \\\"91.0.4472.114\\\",\\n  \\\"se:vncEnabled\\\": true,\\n  \\\"se:vncLocalAddress\\\": \\\"ws:\\\\u002f\\\\u002flocalhost:7900\\\\u002fwebsockify\\\",\\n  \\\"setWindowRect\\\": true,\\n  \\\"strictFileInteractability\\\": false,\\n  \\\"timeouts\\\": {\\n    \\\"implicit\\\": 0,\\n    \\\"pageLoad\\\": 300000,\\n    \\\"script\\\": 30000\\n  },\\n  \\\"unhandledPromptBehavior\\\": \\\"dismiss and notify\\\",\\n  \\\"webauthn:extension:largeBlob\\\": true,\\n  \\\"webauthn:virtualAuthenticators\\\": true\\n}\",\n\t\t\t\t\t\t\t\t\t\t\t\"nodeId\": \"d44dcbc5-0b2c-4d5e-abf4-6f6aa5e0983c\",\n\t\t\t\t\t\t\t\t\t\t\t\"slot\": {\n\t\t\t\t\t\t\t\t\t\t\t\t\"id\": \"9ce1edba-72fb-465e-b311-ee473d8d7b64\",\n\t\t\t\t\t\t\t\t\t\t\t\t\"stereotype\": \"{\\\"browserName\\\":\\\"chrome\\\",\\\"platformName\\\":\\\"linux\\\"}\"\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\t\t\"id\": \"0f9c5a941aa4d755a54b84be1f6535b1\",\n\t\t\t\t\t\t\t\t\t\t\t\"capabilities\": \"{\\n  \\\"acceptInsecureCerts\\\": false,\\n  \\\"browserName\\\": \\\"chrome\\\",\\n  \\\"browserVersion\\\": \\\"91.0.4472.114\\\",\\n  \\\"chrome\\\": {\\n    \\\"chromedriverVersion\\\": \\\"91.0.4472.101 (af52a90bf87030dd1523486a1cd3ae25c5d76c9b-refs\\\\u002fbranch-heads\\\\u002f4472@{#1462})\\\",\\n    \\\"userDataDir\\\": \\\"\\\\u002ftmp\\\\u002f.com.google.Chrome.DMqx9m\\\"\\n  },\\n  \\\"goog:chromeOptions\\\": {\\n    \\\"debuggerAddress\\\": \\\"localhost:35839\\\"\\n  },\\n  \\\"networkConnectionEnabled\\\": false,\\n  \\\"pageLoadStrategy\\\": \\\"normal\\\",\\n  \\\"platformName\\\": \\\"linux\\\",\\n  \\\"proxy\\\": {\\n  },\\n  \\\"se:cdp\\\": \\\"http:\\\\u002f\\\\u002flocalhost:35839\\\",\\n  \\\"se:cdpVersion\\\": \\\"91.0.4472.114\\\",\\n  \\\"se:vncEnabled\\\": true,\\n  \\\"se:vncLocalAddress\\\": \\\"ws:\\\\u002f\\\\u002flocalhost:7900\\\\u002fwebsockify\\\",\\n  \\\"setWindowRect\\\": true,\\n  \\\"strictFileInteractability\\\": false,\\n  \\\"timeouts\\\": {\\n    \\\"implicit\\\": 0,\\n    \\\"pageLoad\\\": 300000,\\n    \\\"script\\\": 30000\\n  },\\n  \\\"unhandledPromptBehavior\\\": \\\"dismiss and notify\\\",\\n  \\\"webauthn:extension:largeBlob\\\": true,\\n  \\\"webauthn:virtualAuthenticators\\\": true\\n}\",\n\t\t\t\t\t\t\t\t\t\t\t\"nodeId\": \"d44dcbc5-0b2c-4d5e-abf4-6f6aa5e0983c\",\n\t\t\t\t\t\t\t\t\t\t\t\"slot\": {\n\t\t\t\t\t\t\t\t\t\t\t\t\"id\": \"9ce1edba-72fb-465e-b311-ee473d8d7b64\",\n\t\t\t\t\t\t\t\t\t\t\t\t\"stereotype\": \"{\\\"browserName\\\":\\\"chrome\\\",\\\"platformName\\\":\\\"linux\\\"}\"\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t]\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t]\n\t\t\t\t\t\t},\n\t\t\t\t\t\t\"sessionsInfo\": {\n\t\t\t\t\t\t\t\"sessionQueueRequests\": [\n\t\t\t\t\t\t\t\t\"{\\n  \\\"browserName\\\": \\\"chrome\\\",\\n \\\"platformName\\\": \\\"linux\\\"\\n}\",\n\t\t\t\t\t\t\t\t\"{\\n  \\\"browserName\\\": \\\"chrome\\\",\\n \\\"platformName\\\": \\\"linux\\\",\\n \\\"browserVersion\\\": \\\"91.0\\\"\\n}\"\n\t\t\t\t\t\t\t]\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}`),\n\t\t\t\tbrowserName:        \"chrome\",\n\t\t\t\tsessionBrowserName: \"chrome\",\n\t\t\t\tbrowserVersion:     \"91.0.4472.114\",\n\t\t\t\tplatformName:       \"linux\",\n\t\t\t},\n\t\t\twantNewRequestNodes: 1,\n\t\t\twantOnGoingSessions: 0,\n\t\t\twantErr:             false,\n\t\t},\n\t\t{\n\t\t\tname: \"Given_2_requests_include_1_without_browserVersion_When_scaler_metadata_without_browserVersion_Then_scaler_should_scale_up_for_1_request_has_browserVersion_and_return_2_ongoing_sessions\",\n\t\t\targs: args{\n\t\t\t\tb: []byte(`{\n\t\t\t\t\t\"data\": {\n\t\t\t\t\t\t\"grid\": {\n\t\t\t\t\t\t\t\"sessionCount\": 2,\n\t\t\t\t\t\t\t\"maxSession\": 2,\n\t\t\t\t\t\t\t\"totalSlots\": 2\n\t\t\t\t\t\t},\n\t\t\t\t\t\t\"nodesInfo\": {\n\t\t\t\t\t\t\t\"nodes\": [\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\"id\": \"d44dcbc5-0b2c-4d5e-abf4-6f6aa5e0983c\",\n\t\t\t\t\t\t\t\t\t\"status\": \"UP\",\n\t\t\t\t\t\t\t\t\t\"sessionCount\": 2,\n\t\t\t\t\t\t\t\t\t\"maxSession\": 2,\n\t\t\t\t\t\t\t\t\t\"slotCount\": 2,\n\t\t\t\t\t\t\t\t\t\"stereotypes\":\"[{\\\"slots\\\":2,\\\"stereotype\\\":{\\\"browserName\\\":\\\"chrome\\\",\\\"platformName\\\":\\\"linux\\\"}}]\",\n\t\t\t\t\t\t\t\t\t\"sessions\": [\n\t\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\t\t\"id\": \"0f9c5a941aa4d755a54b84be1f6535b1\",\n\t\t\t\t\t\t\t\t\t\t\t\"capabilities\": \"{\\n  \\\"acceptInsecureCerts\\\": false,\\n  \\\"browserName\\\": \\\"chrome\\\",\\n  \\\"browserVersion\\\": \\\"91.0.4472.114\\\",\\n  \\\"chrome\\\": {\\n    \\\"chromedriverVersion\\\": \\\"91.0.4472.101 (af52a90bf87030dd1523486a1cd3ae25c5d76c9b-refs\\\\u002fbranch-heads\\\\u002f4472@{#1462})\\\",\\n    \\\"userDataDir\\\": \\\"\\\\u002ftmp\\\\u002f.com.google.Chrome.DMqx9m\\\"\\n  },\\n  \\\"goog:chromeOptions\\\": {\\n    \\\"debuggerAddress\\\": \\\"localhost:35839\\\"\\n  },\\n  \\\"networkConnectionEnabled\\\": false,\\n  \\\"pageLoadStrategy\\\": \\\"normal\\\",\\n  \\\"platformName\\\": \\\"linux\\\",\\n  \\\"proxy\\\": {\\n  },\\n  \\\"se:cdp\\\": \\\"http:\\\\u002f\\\\u002flocalhost:35839\\\",\\n  \\\"se:cdpVersion\\\": \\\"91.0.4472.114\\\",\\n  \\\"se:vncEnabled\\\": true,\\n  \\\"se:vncLocalAddress\\\": \\\"ws:\\\\u002f\\\\u002flocalhost:7900\\\\u002fwebsockify\\\",\\n  \\\"setWindowRect\\\": true,\\n  \\\"strictFileInteractability\\\": false,\\n  \\\"timeouts\\\": {\\n    \\\"implicit\\\": 0,\\n    \\\"pageLoad\\\": 300000,\\n    \\\"script\\\": 30000\\n  },\\n  \\\"unhandledPromptBehavior\\\": \\\"dismiss and notify\\\",\\n  \\\"webauthn:extension:largeBlob\\\": true,\\n  \\\"webauthn:virtualAuthenticators\\\": true\\n}\",\n\t\t\t\t\t\t\t\t\t\t\t\"nodeId\": \"d44dcbc5-0b2c-4d5e-abf4-6f6aa5e0983c\",\n\t\t\t\t\t\t\t\t\t\t\t\"slot\": {\n\t\t\t\t\t\t\t\t\t\t\t\t\"id\": \"9ce1edba-72fb-465e-b311-ee473d8d7b64\",\n\t\t\t\t\t\t\t\t\t\t\t\t\"stereotype\": \"{\\\"browserName\\\":\\\"chrome\\\",\\\"platformName\\\":\\\"linux\\\"}\"\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\t\t\"id\": \"0f9c5a941aa4d755a54b84be1f6535b1\",\n\t\t\t\t\t\t\t\t\t\t\t\"capabilities\": \"{\\n  \\\"acceptInsecureCerts\\\": false,\\n  \\\"browserName\\\": \\\"chrome\\\",\\n  \\\"browserVersion\\\": \\\"91.0.4472.114\\\",\\n  \\\"chrome\\\": {\\n    \\\"chromedriverVersion\\\": \\\"91.0.4472.101 (af52a90bf87030dd1523486a1cd3ae25c5d76c9b-refs\\\\u002fbranch-heads\\\\u002f4472@{#1462})\\\",\\n    \\\"userDataDir\\\": \\\"\\\\u002ftmp\\\\u002f.com.google.Chrome.DMqx9m\\\"\\n  },\\n  \\\"goog:chromeOptions\\\": {\\n    \\\"debuggerAddress\\\": \\\"localhost:35839\\\"\\n  },\\n  \\\"networkConnectionEnabled\\\": false,\\n  \\\"pageLoadStrategy\\\": \\\"normal\\\",\\n  \\\"platformName\\\": \\\"linux\\\",\\n  \\\"proxy\\\": {\\n  },\\n  \\\"se:cdp\\\": \\\"http:\\\\u002f\\\\u002flocalhost:35839\\\",\\n  \\\"se:cdpVersion\\\": \\\"91.0.4472.114\\\",\\n  \\\"se:vncEnabled\\\": true,\\n  \\\"se:vncLocalAddress\\\": \\\"ws:\\\\u002f\\\\u002flocalhost:7900\\\\u002fwebsockify\\\",\\n  \\\"setWindowRect\\\": true,\\n  \\\"strictFileInteractability\\\": false,\\n  \\\"timeouts\\\": {\\n    \\\"implicit\\\": 0,\\n    \\\"pageLoad\\\": 300000,\\n    \\\"script\\\": 30000\\n  },\\n  \\\"unhandledPromptBehavior\\\": \\\"dismiss and notify\\\",\\n  \\\"webauthn:extension:largeBlob\\\": true,\\n  \\\"webauthn:virtualAuthenticators\\\": true\\n}\",\n\t\t\t\t\t\t\t\t\t\t\t\"nodeId\": \"d44dcbc5-0b2c-4d5e-abf4-6f6aa5e0983c\",\n\t\t\t\t\t\t\t\t\t\t\t\"slot\": {\n\t\t\t\t\t\t\t\t\t\t\t\t\"id\": \"9ce1edba-72fb-465e-b311-ee473d8d7b64\",\n\t\t\t\t\t\t\t\t\t\t\t\t\"stereotype\": \"{\\\"browserName\\\":\\\"chrome\\\",\\\"platformName\\\":\\\"linux\\\"}\"\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t]\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t]\n\t\t\t\t\t\t},\n\t\t\t\t\t\t\"sessionsInfo\": {\n\t\t\t\t\t\t\t\"sessionQueueRequests\": [\n\t\t\t\t\t\t\t\t\"{\\n  \\\"browserName\\\": \\\"chrome\\\",\\n \\\"platformName\\\": \\\"linux\\\"\\n}\",\n\t\t\t\t\t\t\t\t\"{\\n  \\\"browserName\\\": \\\"chrome\\\",\\n \\\"platformName\\\": \\\"linux\\\",\\n \\\"browserVersion\\\": \\\"91.0\\\"\\n}\"\n\t\t\t\t\t\t\t]\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}`),\n\t\t\t\tbrowserName:        \"chrome\",\n\t\t\t\tsessionBrowserName: \"chrome\",\n\t\t\t\tbrowserVersion:     \"\",\n\t\t\t\tplatformName:       \"linux\",\n\t\t\t},\n\t\t\twantNewRequestNodes: 1,\n\t\t\twantOnGoingSessions: 2,\n\t\t\twantErr:             false,\n\t\t},\n\t\t{\n\t\t\tname: `Given_3_requests_include_1_without_browserVersion_\n\t\t\tWhen_4_existing_nodes_with_different_stereotypes_browserVersion_\n\t\t\tAnd_scaler_metadata_set_browserVersion_as_latest_\n\t\t\tThen_return_1_new_scale_and_4_ongoing`,\n\t\t\targs: args{\n\t\t\t\tb: []byte(`{\n\t\t\t\t\t\"data\": {\n\t\t\t\t\t\t\"grid\": {\n\t\t\t\t\t\t\t\"sessionCount\": 4,\n\t\t\t\t\t\t\t\"maxSession\": 4,\n\t\t\t\t\t\t\t\"totalSlots\": 4\n\t\t\t\t\t\t},\n\t\t\t\t\t\t\"nodesInfo\": {\n\t\t\t\t\t\t\t\"nodes\": [\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\"id\": \"node-131\",\n\t\t\t\t\t\t\t\t\t\"status\": \"UP\",\n\t\t\t\t\t\t\t\t\t\"sessionCount\": 1,\n\t\t\t\t\t\t\t\t\t\"maxSession\": 1,\n\t\t\t\t\t\t\t\t\t\"slotCount\": 1,\n\t\t\t\t\t\t\t\t\t\"stereotypes\": \"[{\\\"slots\\\": 1, \\\"stereotype\\\": {\\\"browserName\\\": \\\"chrome\\\", \\\"browserVersion\\\": \\\"131.0\\\", \\\"platformName\\\": \\\"linux\\\"}}]\",\n\t\t\t\t\t\t\t\t\t\"sessions\": [\n\t\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\t\t\"id\": \"session-1\",\n\t\t\t\t\t\t\t\t\t\t\t\"capabilities\": \"{\\\"browserName\\\": \\\"chrome\\\", \\\"browserVersion\\\": \\\"131.0\\\", \\\"platformName\\\": \\\"linux\\\"}\",\n\t\t\t\t\t\t\t\t\t\t\t\"slot\": {\n\t\t\t\t\t\t\t\t\t\t\t\t\"id\": \"9ce1edba-72fb-465e-b311-ee473d8d7b64\",\n\t\t\t\t\t\t\t\t\t\t\t\t\"stereotype\": \"{\\\"browserName\\\": \\\"chrome\\\", \\\"browserVersion\\\": \\\"131.0\\\", \\\"platformName\\\": \\\"linux\\\"}\"\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t]\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\"id\": \"node-130\",\n\t\t\t\t\t\t\t\t\t\"status\": \"UP\",\n\t\t\t\t\t\t\t\t\t\"sessionCount\": 1,\n\t\t\t\t\t\t\t\t\t\"maxSession\": 1,\n\t\t\t\t\t\t\t\t\t\"slotCount\": 1,\n\t\t\t\t\t\t\t\t\t\"stereotypes\": \"[{\\\"slots\\\": 1, \\\"stereotype\\\": {\\\"browserName\\\": \\\"chrome\\\", \\\"browserVersion\\\": \\\"130.0\\\", \\\"platformName\\\": \\\"linux\\\"}}]\",\n\t\t\t\t\t\t\t\t\t\"sessions\": [\n\t\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\t\t\"id\": \"session-1\",\n\t\t\t\t\t\t\t\t\t\t\t\"capabilities\": \"{\\\"browserName\\\": \\\"chrome\\\", \\\"browserVersion\\\": \\\"130.0\\\", \\\"platformName\\\": \\\"linux\\\"}\",\n\t\t\t\t\t\t\t\t\t\t\t\"slot\": {\n\t\t\t\t\t\t\t\t\t\t\t\t\"id\": \"9ce1edba-72fb-465e-b311-ee473d8d7b64\",\n\t\t\t\t\t\t\t\t\t\t\t\t\"stereotype\": \"{\\\"browserName\\\": \\\"chrome\\\", \\\"browserVersion\\\": \\\"130.0\\\", \\\"platformName\\\": \\\"linux\\\"}\"\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t]\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\"id\": \"node-129\",\n\t\t\t\t\t\t\t\t\t\"status\": \"UP\",\n\t\t\t\t\t\t\t\t\t\"sessionCount\": 1,\n\t\t\t\t\t\t\t\t\t\"maxSession\": 1,\n\t\t\t\t\t\t\t\t\t\"slotCount\": 1,\n\t\t\t\t\t\t\t\t\t\"stereotypes\": \"[{\\\"slots\\\": 1, \\\"stereotype\\\": {\\\"browserName\\\": \\\"chrome\\\", \\\"browserVersion\\\": \\\"129.0\\\", \\\"platformName\\\": \\\"linux\\\"}}]\",\n\t\t\t\t\t\t\t\t\t\"sessions\": [\n\t\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\t\t\"id\": \"session-2\",\n\t\t\t\t\t\t\t\t\t\t\t\"capabilities\": \"{\\\"browserName\\\": \\\"chrome\\\", \\\"browserVersion\\\": \\\"129.0\\\", \\\"platformName\\\": \\\"linux\\\"}\",\n\t\t\t\t\t\t\t\t\t\t\t\"slot\": {\n\t\t\t\t\t\t\t\t\t\t\t\t\"id\": \"9ce1edba-72fb-465e-b311-ee473d8d7b64\",\n\t\t\t\t\t\t\t\t\t\t\t\t\"stereotype\": \"{\\\"browserName\\\": \\\"chrome\\\", \\\"browserVersion\\\": \\\"129.0\\\", \\\"platformName\\\": \\\"linux\\\"}\"\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t]\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\"id\": \"node-128\",\n\t\t\t\t\t\t\t\t\t\"status\": \"UP\",\n\t\t\t\t\t\t\t\t\t\"sessionCount\": 1,\n\t\t\t\t\t\t\t\t\t\"maxSession\": 1,\n\t\t\t\t\t\t\t\t\t\"slotCount\": 1,\n\t\t\t\t\t\t\t\t\t\"stereotypes\": \"[{\\\"slots\\\": 1, \\\"stereotype\\\": {\\\"browserName\\\": \\\"chrome\\\", \\\"browserVersion\\\": \\\"128.0\\\", \\\"platformName\\\": \\\"linux\\\"}}]\",\n\t\t\t\t\t\t\t\t\t\"sessions\": [\n\t\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\t\t\"id\": \"session-1\",\n\t\t\t\t\t\t\t\t\t\t\t\"capabilities\": \"{\\\"browserName\\\": \\\"chrome\\\", \\\"browserVersion\\\": \\\"128.0\\\", \\\"platformName\\\": \\\"linux\\\"}\",\n\t\t\t\t\t\t\t\t\t\t\t\"slot\": {\n\t\t\t\t\t\t\t\t\t\t\t\t\"id\": \"9ce1edba-72fb-465e-b311-ee473d8d7b64\",\n\t\t\t\t\t\t\t\t\t\t\t\t\"stereotype\": \"{\\\"browserName\\\": \\\"chrome\\\", \\\"browserVersion\\\": \\\"128.0\\\", \\\"platformName\\\": \\\"linux\\\"}\"\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t]\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t]\n\t\t\t\t\t\t},\n\t\t\t\t\t\t\"sessionsInfo\": {\n\t\t\t\t\t\t\t\"sessionQueueRequests\": [\n\t\t\t\t\t\t\t\t\"{\\\"browserName\\\": \\\"chrome\\\", \\\"platformName\\\": \\\"linux\\\"}\",\n\t\t\t\t\t\t\t\t\"{\\\"browserName\\\": \\\"chrome\\\", \\\"platformName\\\": \\\"linux\\\", \\\"browserVersion\\\": \\\"131\\\"}\",\n\t\t\t\t\t\t\t\t\"{\\\"browserName\\\": \\\"chrome\\\", \\\"platformName\\\": \\\"linux\\\", \\\"browserVersion\\\": \\\"130\\\"}\"\n\t\t\t\t\t\t\t]\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}`),\n\t\t\t\tbrowserName:        \"chrome\",\n\t\t\t\tsessionBrowserName: \"chrome\",\n\t\t\t\tbrowserVersion:     \"\",\n\t\t\t\tplatformName:       \"linux\",\n\t\t\t},\n\t\t\twantNewRequestNodes: 1,\n\t\t\twantOnGoingSessions: 0,\n\t\t\twantErr:             false,\n\t\t},\n\t\t{\n\t\t\tname: `Given_3_requests_include_1_without_browserVersion_\n\t\t\tWhen_4_existing_nodes_with_different_stereotypes_browserVersion_\n\t\t\tAnd_scaler_metadata_set_browserVersion_131.0_\n\t\t\tThen_return_1_new_scale_and_1_ongoing`,\n\t\t\targs: args{\n\t\t\t\tb: []byte(`{\n\t\t\t\t\t\"data\": {\n\t\t\t\t\t\t\"grid\": {\n\t\t\t\t\t\t\t\"sessionCount\": 4,\n\t\t\t\t\t\t\t\"maxSession\": 4,\n\t\t\t\t\t\t\t\"totalSlots\": 4\n\t\t\t\t\t\t},\n\t\t\t\t\t\t\"nodesInfo\": {\n\t\t\t\t\t\t\t\"nodes\": [\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\"id\": \"node-131\",\n\t\t\t\t\t\t\t\t\t\"status\": \"UP\",\n\t\t\t\t\t\t\t\t\t\"sessionCount\": 1,\n\t\t\t\t\t\t\t\t\t\"maxSession\": 1,\n\t\t\t\t\t\t\t\t\t\"slotCount\": 1,\n\t\t\t\t\t\t\t\t\t\"stereotypes\": \"[{\\\"slots\\\": 1, \\\"stereotype\\\": {\\\"browserName\\\": \\\"chrome\\\", \\\"browserVersion\\\": \\\"131.0\\\", \\\"platformName\\\": \\\"linux\\\"}}]\",\n\t\t\t\t\t\t\t\t\t\"sessions\": [\n\t\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\t\t\"id\": \"session-1\",\n\t\t\t\t\t\t\t\t\t\t\t\"capabilities\": \"{\\\"browserName\\\": \\\"chrome\\\", \\\"browserVersion\\\": \\\"131.0\\\", \\\"platformName\\\": \\\"linux\\\"}\",\n\t\t\t\t\t\t\t\t\t\t\t\"slot\": {\n\t\t\t\t\t\t\t\t\t\t\t\t\"id\": \"9ce1edba-72fb-465e-b311-ee473d8d7b64\",\n\t\t\t\t\t\t\t\t\t\t\t\t\"stereotype\": \"{\\\"browserName\\\": \\\"chrome\\\", \\\"browserVersion\\\": \\\"131.0\\\", \\\"platformName\\\": \\\"linux\\\"}\"\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t]\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\"id\": \"node-130\",\n\t\t\t\t\t\t\t\t\t\"status\": \"UP\",\n\t\t\t\t\t\t\t\t\t\"sessionCount\": 1,\n\t\t\t\t\t\t\t\t\t\"maxSession\": 1,\n\t\t\t\t\t\t\t\t\t\"slotCount\": 1,\n\t\t\t\t\t\t\t\t\t\"stereotypes\": \"[{\\\"slots\\\": 1, \\\"stereotype\\\": {\\\"browserName\\\": \\\"chrome\\\", \\\"browserVersion\\\": \\\"130.0\\\", \\\"platformName\\\": \\\"linux\\\"}}]\",\n\t\t\t\t\t\t\t\t\t\"sessions\": [\n\t\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\t\t\"id\": \"session-1\",\n\t\t\t\t\t\t\t\t\t\t\t\"capabilities\": \"{\\\"browserName\\\": \\\"chrome\\\", \\\"browserVersion\\\": \\\"130.0\\\", \\\"platformName\\\": \\\"linux\\\"}\",\n\t\t\t\t\t\t\t\t\t\t\t\"slot\": {\n\t\t\t\t\t\t\t\t\t\t\t\t\"id\": \"9ce1edba-72fb-465e-b311-ee473d8d7b64\",\n\t\t\t\t\t\t\t\t\t\t\t\t\"stereotype\": \"{\\\"browserName\\\": \\\"chrome\\\", \\\"browserVersion\\\": \\\"130.0\\\", \\\"platformName\\\": \\\"linux\\\"}\"\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t]\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\"id\": \"node-129\",\n\t\t\t\t\t\t\t\t\t\"status\": \"UP\",\n\t\t\t\t\t\t\t\t\t\"sessionCount\": 1,\n\t\t\t\t\t\t\t\t\t\"maxSession\": 1,\n\t\t\t\t\t\t\t\t\t\"slotCount\": 1,\n\t\t\t\t\t\t\t\t\t\"stereotypes\": \"[{\\\"slots\\\": 1, \\\"stereotype\\\": {\\\"browserName\\\": \\\"chrome\\\", \\\"browserVersion\\\": \\\"129.0\\\", \\\"platformName\\\": \\\"linux\\\"}}]\",\n\t\t\t\t\t\t\t\t\t\"sessions\": [\n\t\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\t\t\"id\": \"session-2\",\n\t\t\t\t\t\t\t\t\t\t\t\"capabilities\": \"{\\\"browserName\\\": \\\"chrome\\\", \\\"browserVersion\\\": \\\"129.0\\\", \\\"platformName\\\": \\\"linux\\\"}\",\n\t\t\t\t\t\t\t\t\t\t\t\"slot\": {\n\t\t\t\t\t\t\t\t\t\t\t\t\"id\": \"9ce1edba-72fb-465e-b311-ee473d8d7b64\",\n\t\t\t\t\t\t\t\t\t\t\t\t\"stereotype\": \"{\\\"browserName\\\": \\\"chrome\\\", \\\"browserVersion\\\": \\\"129.0\\\", \\\"platformName\\\": \\\"linux\\\"}\"\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t]\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\"id\": \"node-128\",\n\t\t\t\t\t\t\t\t\t\"status\": \"UP\",\n\t\t\t\t\t\t\t\t\t\"sessionCount\": 1,\n\t\t\t\t\t\t\t\t\t\"maxSession\": 1,\n\t\t\t\t\t\t\t\t\t\"slotCount\": 1,\n\t\t\t\t\t\t\t\t\t\"stereotypes\": \"[{\\\"slots\\\": 1, \\\"stereotype\\\": {\\\"browserName\\\": \\\"chrome\\\", \\\"browserVersion\\\": \\\"128.0\\\", \\\"platformName\\\": \\\"linux\\\"}}]\",\n\t\t\t\t\t\t\t\t\t\"sessions\": [\n\t\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\t\t\"id\": \"session-1\",\n\t\t\t\t\t\t\t\t\t\t\t\"capabilities\": \"{\\\"browserName\\\": \\\"chrome\\\", \\\"browserVersion\\\": \\\"128.0\\\", \\\"platformName\\\": \\\"linux\\\"}\",\n\t\t\t\t\t\t\t\t\t\t\t\"slot\": {\n\t\t\t\t\t\t\t\t\t\t\t\t\"id\": \"9ce1edba-72fb-465e-b311-ee473d8d7b64\",\n\t\t\t\t\t\t\t\t\t\t\t\t\"stereotype\": \"{\\\"browserName\\\": \\\"chrome\\\", \\\"browserVersion\\\": \\\"128.0\\\", \\\"platformName\\\": \\\"linux\\\"}\"\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t]\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t]\n\t\t\t\t\t\t},\n\t\t\t\t\t\t\"sessionsInfo\": {\n\t\t\t\t\t\t\t\"sessionQueueRequests\": [\n\t\t\t\t\t\t\t\t\"{\\\"browserName\\\": \\\"chrome\\\", \\\"platformName\\\": \\\"linux\\\"}\",\n\t\t\t\t\t\t\t\t\"{\\\"browserName\\\": \\\"chrome\\\", \\\"platformName\\\": \\\"linux\\\", \\\"browserVersion\\\": \\\"131\\\"}\",\n\t\t\t\t\t\t\t\t\"{\\\"browserName\\\": \\\"chrome\\\", \\\"platformName\\\": \\\"linux\\\", \\\"browserVersion\\\": \\\"130\\\"}\"\n\t\t\t\t\t\t\t]\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}`),\n\t\t\t\tbrowserName:        \"chrome\",\n\t\t\t\tsessionBrowserName: \"chrome\",\n\t\t\t\tbrowserVersion:     \"131.0\",\n\t\t\t\tplatformName:       \"linux\",\n\t\t\t},\n\t\t\twantNewRequestNodes: 1,\n\t\t\twantOnGoingSessions: 1,\n\t\t\twantErr:             false,\n\t\t},\n\t\t{\n\t\t\tname: `Given_3_requests_include_1_without_browserVersion_\n\t\t\tWhen_4_existing_nodes_with_different_stereotypes_browserVersion_\n\t\t\tAnd_scaler_metadata_set_browserVersion_130.0_\n\t\t\tThen_return_1_new_scale_and_1_ongoing`,\n\t\t\targs: args{\n\t\t\t\tb: []byte(`{\n\t\t\t\t\t\"data\": {\n\t\t\t\t\t\t\"grid\": {\n\t\t\t\t\t\t\t\"sessionCount\": 4,\n\t\t\t\t\t\t\t\"maxSession\": 4,\n\t\t\t\t\t\t\t\"totalSlots\": 4\n\t\t\t\t\t\t},\n\t\t\t\t\t\t\"nodesInfo\": {\n\t\t\t\t\t\t\t\"nodes\": [\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\"id\": \"node-131\",\n\t\t\t\t\t\t\t\t\t\"status\": \"UP\",\n\t\t\t\t\t\t\t\t\t\"sessionCount\": 1,\n\t\t\t\t\t\t\t\t\t\"maxSession\": 1,\n\t\t\t\t\t\t\t\t\t\"slotCount\": 1,\n\t\t\t\t\t\t\t\t\t\"stereotypes\": \"[{\\\"slots\\\": 1, \\\"stereotype\\\": {\\\"browserName\\\": \\\"chrome\\\", \\\"browserVersion\\\": \\\"131.0\\\", \\\"platformName\\\": \\\"linux\\\"}}]\",\n\t\t\t\t\t\t\t\t\t\"sessions\": [\n\t\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\t\t\"id\": \"session-1\",\n\t\t\t\t\t\t\t\t\t\t\t\"capabilities\": \"{\\\"browserName\\\": \\\"chrome\\\", \\\"browserVersion\\\": \\\"131.0\\\", \\\"platformName\\\": \\\"linux\\\"}\",\n\t\t\t\t\t\t\t\t\t\t\t\"slot\": {\n\t\t\t\t\t\t\t\t\t\t\t\t\"id\": \"9ce1edba-72fb-465e-b311-ee473d8d7b64\",\n\t\t\t\t\t\t\t\t\t\t\t\t\"stereotype\": \"{\\\"browserName\\\": \\\"chrome\\\", \\\"browserVersion\\\": \\\"131.0\\\", \\\"platformName\\\": \\\"linux\\\"}\"\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t]\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\"id\": \"node-130\",\n\t\t\t\t\t\t\t\t\t\"status\": \"UP\",\n\t\t\t\t\t\t\t\t\t\"sessionCount\": 1,\n\t\t\t\t\t\t\t\t\t\"maxSession\": 1,\n\t\t\t\t\t\t\t\t\t\"slotCount\": 1,\n\t\t\t\t\t\t\t\t\t\"stereotypes\": \"[{\\\"slots\\\": 1, \\\"stereotype\\\": {\\\"browserName\\\": \\\"chrome\\\", \\\"browserVersion\\\": \\\"130.0\\\", \\\"platformName\\\": \\\"linux\\\"}}]\",\n\t\t\t\t\t\t\t\t\t\"sessions\": [\n\t\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\t\t\"id\": \"session-1\",\n\t\t\t\t\t\t\t\t\t\t\t\"capabilities\": \"{\\\"browserName\\\": \\\"chrome\\\", \\\"browserVersion\\\": \\\"130.0\\\", \\\"platformName\\\": \\\"linux\\\"}\",\n\t\t\t\t\t\t\t\t\t\t\t\"slot\": {\n\t\t\t\t\t\t\t\t\t\t\t\t\"id\": \"9ce1edba-72fb-465e-b311-ee473d8d7b64\",\n\t\t\t\t\t\t\t\t\t\t\t\t\"stereotype\": \"{\\\"browserName\\\": \\\"chrome\\\", \\\"browserVersion\\\": \\\"130.0\\\", \\\"platformName\\\": \\\"linux\\\"}\"\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t]\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\"id\": \"node-129\",\n\t\t\t\t\t\t\t\t\t\"status\": \"UP\",\n\t\t\t\t\t\t\t\t\t\"sessionCount\": 1,\n\t\t\t\t\t\t\t\t\t\"maxSession\": 1,\n\t\t\t\t\t\t\t\t\t\"slotCount\": 1,\n\t\t\t\t\t\t\t\t\t\"stereotypes\": \"[{\\\"slots\\\": 1, \\\"stereotype\\\": {\\\"browserName\\\": \\\"chrome\\\", \\\"browserVersion\\\": \\\"129.0\\\", \\\"platformName\\\": \\\"linux\\\"}}]\",\n\t\t\t\t\t\t\t\t\t\"sessions\": [\n\t\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\t\t\"id\": \"session-2\",\n\t\t\t\t\t\t\t\t\t\t\t\"capabilities\": \"{\\\"browserName\\\": \\\"chrome\\\", \\\"browserVersion\\\": \\\"129.0\\\", \\\"platformName\\\": \\\"linux\\\"}\",\n\t\t\t\t\t\t\t\t\t\t\t\"slot\": {\n\t\t\t\t\t\t\t\t\t\t\t\t\"id\": \"9ce1edba-72fb-465e-b311-ee473d8d7b64\",\n\t\t\t\t\t\t\t\t\t\t\t\t\"stereotype\": \"{\\\"browserName\\\": \\\"chrome\\\", \\\"browserVersion\\\": \\\"129.0\\\", \\\"platformName\\\": \\\"linux\\\"}\"\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t]\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\"id\": \"node-128\",\n\t\t\t\t\t\t\t\t\t\"status\": \"UP\",\n\t\t\t\t\t\t\t\t\t\"sessionCount\": 1,\n\t\t\t\t\t\t\t\t\t\"maxSession\": 1,\n\t\t\t\t\t\t\t\t\t\"slotCount\": 1,\n\t\t\t\t\t\t\t\t\t\"stereotypes\": \"[{\\\"slots\\\": 1, \\\"stereotype\\\": {\\\"browserName\\\": \\\"chrome\\\", \\\"browserVersion\\\": \\\"128.0\\\", \\\"platformName\\\": \\\"linux\\\"}}]\",\n\t\t\t\t\t\t\t\t\t\"sessions\": [\n\t\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\t\t\"id\": \"session-1\",\n\t\t\t\t\t\t\t\t\t\t\t\"capabilities\": \"{\\\"browserName\\\": \\\"chrome\\\", \\\"browserVersion\\\": \\\"128.0\\\", \\\"platformName\\\": \\\"linux\\\"}\",\n\t\t\t\t\t\t\t\t\t\t\t\"slot\": {\n\t\t\t\t\t\t\t\t\t\t\t\t\"id\": \"9ce1edba-72fb-465e-b311-ee473d8d7b64\",\n\t\t\t\t\t\t\t\t\t\t\t\t\"stereotype\": \"{\\\"browserName\\\": \\\"chrome\\\", \\\"browserVersion\\\": \\\"128.0\\\", \\\"platformName\\\": \\\"linux\\\"}\"\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t]\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t]\n\t\t\t\t\t\t},\n\t\t\t\t\t\t\"sessionsInfo\": {\n\t\t\t\t\t\t\t\"sessionQueueRequests\": [\n\t\t\t\t\t\t\t\t\"{\\\"browserName\\\": \\\"chrome\\\", \\\"platformName\\\": \\\"linux\\\"}\",\n\t\t\t\t\t\t\t\t\"{\\\"browserName\\\": \\\"chrome\\\", \\\"platformName\\\": \\\"linux\\\", \\\"browserVersion\\\": \\\"131\\\"}\",\n\t\t\t\t\t\t\t\t\"{\\\"browserName\\\": \\\"chrome\\\", \\\"platformName\\\": \\\"linux\\\", \\\"browserVersion\\\": \\\"130\\\"}\"\n\t\t\t\t\t\t\t]\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}`),\n\t\t\t\tbrowserName:        \"chrome\",\n\t\t\t\tsessionBrowserName: \"chrome\",\n\t\t\t\tbrowserVersion:     \"130.0\",\n\t\t\t\tplatformName:       \"linux\",\n\t\t\t},\n\t\t\twantNewRequestNodes: 1,\n\t\t\twantOnGoingSessions: 1,\n\t\t\twantErr:             false,\n\t\t},\n\t\t{\n\t\t\tname: `Given_3_requests_include_1_without_browserVersion_\n\t\t\tWhen_4_existing_nodes_with_different_stereotypes_browserVersion_and_1_available_\n\t\t\tAnd_scaler_metadata_set_browserVersion_as_latest_\n\t\t\tThen_return_0_new_scale_and_0_ongoing`,\n\t\t\targs: args{\n\t\t\t\tb: []byte(`{\n\t\t\t\t\t\"data\": {\n\t\t\t\t\t\t\"grid\": {\n\t\t\t\t\t\t\t\"sessionCount\": 3,\n\t\t\t\t\t\t\t\"maxSession\": 4,\n\t\t\t\t\t\t\t\"totalSlots\": 4\n\t\t\t\t\t\t},\n\t\t\t\t\t\t\"nodesInfo\": {\n\t\t\t\t\t\t\t\"nodes\": [\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\"id\": \"node-131\",\n\t\t\t\t\t\t\t\t\t\"status\": \"UP\",\n\t\t\t\t\t\t\t\t\t\"sessionCount\": 1,\n\t\t\t\t\t\t\t\t\t\"maxSession\": 1,\n\t\t\t\t\t\t\t\t\t\"slotCount\": 1,\n\t\t\t\t\t\t\t\t\t\"stereotypes\": \"[{\\\"slots\\\": 1, \\\"stereotype\\\": {\\\"browserName\\\": \\\"chrome\\\", \\\"browserVersion\\\": \\\"131.0\\\", \\\"platformName\\\": \\\"linux\\\"}}]\",\n\t\t\t\t\t\t\t\t\t\"sessions\": [\n\t\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\t\t\"id\": \"session-1\",\n\t\t\t\t\t\t\t\t\t\t\t\"capabilities\": \"{\\\"browserName\\\": \\\"chrome\\\", \\\"browserVersion\\\": \\\"131.0\\\", \\\"platformName\\\": \\\"linux\\\"}\",\n\t\t\t\t\t\t\t\t\t\t\t\"slot\": {\n\t\t\t\t\t\t\t\t\t\t\t\t\"id\": \"9ce1edba-72fb-465e-b311-ee473d8d7b64\",\n\t\t\t\t\t\t\t\t\t\t\t\t\"stereotype\": \"{\\\"browserName\\\": \\\"chrome\\\", \\\"browserVersion\\\": \\\"131.0\\\", \\\"platformName\\\": \\\"linux\\\"}\"\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t]\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\"id\": \"node-130\",\n\t\t\t\t\t\t\t\t\t\"status\": \"UP\",\n\t\t\t\t\t\t\t\t\t\"sessionCount\": 0,\n\t\t\t\t\t\t\t\t\t\"maxSession\": 1,\n\t\t\t\t\t\t\t\t\t\"slotCount\": 1,\n\t\t\t\t\t\t\t\t\t\"stereotypes\": \"[{\\\"slots\\\": 1, \\\"stereotype\\\": {\\\"browserName\\\": \\\"chrome\\\", \\\"browserVersion\\\": \\\"\\\", \\\"platformName\\\": \\\"linux\\\"}}]\",\n\t\t\t\t\t\t\t\t\t\"sessions\": []\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\"id\": \"node-129\",\n\t\t\t\t\t\t\t\t\t\"status\": \"UP\",\n\t\t\t\t\t\t\t\t\t\"sessionCount\": 1,\n\t\t\t\t\t\t\t\t\t\"maxSession\": 1,\n\t\t\t\t\t\t\t\t\t\"slotCount\": 1,\n\t\t\t\t\t\t\t\t\t\"stereotypes\": \"[{\\\"slots\\\": 1, \\\"stereotype\\\": {\\\"browserName\\\": \\\"chrome\\\", \\\"browserVersion\\\": \\\"129.0\\\", \\\"platformName\\\": \\\"linux\\\"}}]\",\n\t\t\t\t\t\t\t\t\t\"sessions\": [\n\t\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\t\t\"id\": \"session-1\",\n\t\t\t\t\t\t\t\t\t\t\t\"capabilities\": \"{\\\"browserName\\\": \\\"chrome\\\", \\\"browserVersion\\\": \\\"129.0\\\", \\\"platformName\\\": \\\"linux\\\"}\",\n\t\t\t\t\t\t\t\t\t\t\t\"slot\": {\n\t\t\t\t\t\t\t\t\t\t\t\t\"id\": \"9ce1edba-72fb-465e-b311-ee473d8d7b64\",\n\t\t\t\t\t\t\t\t\t\t\t\t\"stereotype\": \"{\\\"browserName\\\": \\\"chrome\\\", \\\"browserVersion\\\": \\\"129.0\\\", \\\"platformName\\\": \\\"linux\\\"}\"\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t]\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\"id\": \"node-128\",\n\t\t\t\t\t\t\t\t\t\"status\": \"UP\",\n\t\t\t\t\t\t\t\t\t\"sessionCount\": 1,\n\t\t\t\t\t\t\t\t\t\"maxSession\": 1,\n\t\t\t\t\t\t\t\t\t\"slotCount\": 1,\n\t\t\t\t\t\t\t\t\t\"stereotypes\": \"[{\\\"slots\\\": 1, \\\"stereotype\\\": {\\\"browserName\\\": \\\"chrome\\\", \\\"browserVersion\\\": \\\"128.0\\\", \\\"platformName\\\": \\\"linux\\\"}}]\",\n\t\t\t\t\t\t\t\t\t\"sessions\": [\n\t\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\t\t\"id\": \"session-1\",\n\t\t\t\t\t\t\t\t\t\t\t\"capabilities\": \"{\\\"browserName\\\": \\\"chrome\\\", \\\"browserVersion\\\": \\\"128.0\\\", \\\"platformName\\\": \\\"linux\\\"}\",\n\t\t\t\t\t\t\t\t\t\t\t\"slot\": {\n\t\t\t\t\t\t\t\t\t\t\t\t\"id\": \"9ce1edba-72fb-465e-b311-ee473d8d7b64\",\n\t\t\t\t\t\t\t\t\t\t\t\t\"stereotype\": \"{\\\"browserName\\\": \\\"chrome\\\", \\\"browserVersion\\\": \\\"128.0\\\", \\\"platformName\\\": \\\"linux\\\"}\"\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t]\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t]\n\t\t\t\t\t\t},\n\t\t\t\t\t\t\"sessionsInfo\": {\n\t\t\t\t\t\t\t\"sessionQueueRequests\": [\n\t\t\t\t\t\t\t\t\"{\\\"browserName\\\": \\\"chrome\\\", \\\"platformName\\\": \\\"linux\\\"}\",\n\t\t\t\t\t\t\t\t\"{\\\"browserName\\\": \\\"chrome\\\", \\\"platformName\\\": \\\"linux\\\", \\\"browserVersion\\\": \\\"131\\\"}\",\n\t\t\t\t\t\t\t\t\"{\\\"browserName\\\": \\\"chrome\\\", \\\"platformName\\\": \\\"linux\\\", \\\"browserVersion\\\": \\\"130\\\"}\"\n\t\t\t\t\t\t\t]\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}`),\n\t\t\t\tbrowserName:        \"chrome\",\n\t\t\t\tsessionBrowserName: \"chrome\",\n\t\t\t\tbrowserVersion:     \"\",\n\t\t\t\tplatformName:       \"linux\",\n\t\t\t},\n\t\t\twantNewRequestNodes: 0,\n\t\t\twantOnGoingSessions: 0,\n\t\t\twantErr:             false,\n\t\t},\n\t\t{\n\t\t\tname: `Given_3_requests_include_1_without_browserVersion_\n\t\t\tWhen_4_existing_nodes_with_different_stereotypes_browserVersion_and_1_available_\n\t\t\tAnd_scaler_metadata_set_browserVersion_131.0_\n\t\t\tThen_return_0_new_scale_and_0_ongoing`,\n\t\t\targs: args{\n\t\t\t\tb: []byte(`{\n\t\t\t\t\t\"data\": {\n\t\t\t\t\t\t\"grid\": {\n\t\t\t\t\t\t\t\"sessionCount\": 3,\n\t\t\t\t\t\t\t\"maxSession\": 4,\n\t\t\t\t\t\t\t\"totalSlots\": 4\n\t\t\t\t\t\t},\n\t\t\t\t\t\t\"nodesInfo\": {\n\t\t\t\t\t\t\t\"nodes\": [\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\"id\": \"node-131\",\n\t\t\t\t\t\t\t\t\t\"status\": \"UP\",\n\t\t\t\t\t\t\t\t\t\"sessionCount\": 0,\n\t\t\t\t\t\t\t\t\t\"maxSession\": 1,\n\t\t\t\t\t\t\t\t\t\"slotCount\": 1,\n\t\t\t\t\t\t\t\t\t\"stereotypes\": \"[{\\\"slots\\\": 1, \\\"stereotype\\\": {\\\"browserName\\\": \\\"chrome\\\", \\\"browserVersion\\\": \\\"131.0\\\", \\\"platformName\\\": \\\"linux\\\"}}]\",\n\t\t\t\t\t\t\t\t\t\"sessions\": []\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\"id\": \"node-130\",\n\t\t\t\t\t\t\t\t\t\"status\": \"UP\",\n\t\t\t\t\t\t\t\t\t\"sessionCount\": 1,\n\t\t\t\t\t\t\t\t\t\"maxSession\": 1,\n\t\t\t\t\t\t\t\t\t\"slotCount\": 1,\n\t\t\t\t\t\t\t\t\t\"stereotypes\": \"[{\\\"slots\\\": 1, \\\"stereotype\\\": {\\\"browserName\\\": \\\"chrome\\\", \\\"browserVersion\\\": \\\"130.0\\\", \\\"platformName\\\": \\\"linux\\\"}}]\",\n\t\t\t\t\t\t\t\t\t\"sessions\": [\n\t\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\t\t\"id\": \"session-1\",\n\t\t\t\t\t\t\t\t\t\t\t\"capabilities\": \"{\\\"browserName\\\": \\\"chrome\\\", \\\"browserVersion\\\": \\\"130.0\\\", \\\"platformName\\\": \\\"linux\\\"}\",\n\t\t\t\t\t\t\t\t\t\t\t\"slot\": {\n\t\t\t\t\t\t\t\t\t\t\t\t\"id\": \"9ce1edba-72fb-465e-b311-ee473d8d7b64\",\n\t\t\t\t\t\t\t\t\t\t\t\t\"stereotype\": \"{\\\"browserName\\\": \\\"chrome\\\", \\\"browserVersion\\\": \\\"130.0\\\", \\\"platformName\\\": \\\"linux\\\"}\"\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t]\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\"id\": \"node-129\",\n\t\t\t\t\t\t\t\t\t\"status\": \"UP\",\n\t\t\t\t\t\t\t\t\t\"sessionCount\": 1,\n\t\t\t\t\t\t\t\t\t\"maxSession\": 1,\n\t\t\t\t\t\t\t\t\t\"slotCount\": 1,\n\t\t\t\t\t\t\t\t\t\"stereotypes\": \"[{\\\"slots\\\": 1, \\\"stereotype\\\": {\\\"browserName\\\": \\\"chrome\\\", \\\"browserVersion\\\": \\\"129.0\\\", \\\"platformName\\\": \\\"linux\\\"}}]\",\n\t\t\t\t\t\t\t\t\t\"sessions\": [\n\t\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\t\t\"id\": \"session-1\",\n\t\t\t\t\t\t\t\t\t\t\t\"capabilities\": \"{\\\"browserName\\\": \\\"chrome\\\", \\\"browserVersion\\\": \\\"129.0\\\", \\\"platformName\\\": \\\"linux\\\"}\",\n\t\t\t\t\t\t\t\t\t\t\t\"slot\": {\n\t\t\t\t\t\t\t\t\t\t\t\t\"id\": \"9ce1edba-72fb-465e-b311-ee473d8d7b64\",\n\t\t\t\t\t\t\t\t\t\t\t\t\"stereotype\": \"{\\\"browserName\\\": \\\"chrome\\\", \\\"browserVersion\\\": \\\"129.0\\\", \\\"platformName\\\": \\\"linux\\\"}\"\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t]\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\"id\": \"node-128\",\n\t\t\t\t\t\t\t\t\t\"status\": \"UP\",\n\t\t\t\t\t\t\t\t\t\"sessionCount\": 1,\n\t\t\t\t\t\t\t\t\t\"maxSession\": 1,\n\t\t\t\t\t\t\t\t\t\"slotCount\": 1,\n\t\t\t\t\t\t\t\t\t\"stereotypes\": \"[{\\\"slots\\\": 1, \\\"stereotype\\\": {\\\"browserName\\\": \\\"chrome\\\", \\\"browserVersion\\\": \\\"128.0\\\", \\\"platformName\\\": \\\"linux\\\"}}]\",\n\t\t\t\t\t\t\t\t\t\"sessions\": [\n\t\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\t\t\"id\": \"session-1\",\n\t\t\t\t\t\t\t\t\t\t\t\"capabilities\": \"{\\\"browserName\\\": \\\"chrome\\\", \\\"browserVersion\\\": \\\"128.0\\\", \\\"platformName\\\": \\\"linux\\\"}\",\n\t\t\t\t\t\t\t\t\t\t\t\"slot\": {\n\t\t\t\t\t\t\t\t\t\t\t\t\"id\": \"9ce1edba-72fb-465e-b311-ee473d8d7b64\",\n\t\t\t\t\t\t\t\t\t\t\t\t\"stereotype\": \"{\\\"browserName\\\": \\\"chrome\\\", \\\"browserVersion\\\": \\\"128.0\\\", \\\"platformName\\\": \\\"linux\\\"}\"\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t]\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t]\n\t\t\t\t\t\t},\n\t\t\t\t\t\t\"sessionsInfo\": {\n\t\t\t\t\t\t\t\"sessionQueueRequests\": [\n\t\t\t\t\t\t\t\t\"{\\\"browserName\\\": \\\"chrome\\\", \\\"platformName\\\": \\\"linux\\\"}\",\n\t\t\t\t\t\t\t\t\"{\\\"browserName\\\": \\\"chrome\\\", \\\"platformName\\\": \\\"linux\\\", \\\"browserVersion\\\": \\\"131\\\"}\",\n\t\t\t\t\t\t\t\t\"{\\\"browserName\\\": \\\"chrome\\\", \\\"platformName\\\": \\\"linux\\\", \\\"browserVersion\\\": \\\"130\\\"}\"\n\t\t\t\t\t\t\t]\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}`),\n\t\t\t\tbrowserName:        \"chrome\",\n\t\t\t\tsessionBrowserName: \"chrome\",\n\t\t\t\tbrowserVersion:     \"131.0\",\n\t\t\t\tplatformName:       \"linux\",\n\t\t\t},\n\t\t\twantNewRequestNodes: 0,\n\t\t\twantOnGoingSessions: 0,\n\t\t\twantErr:             false,\n\t\t},\n\t\t{\n\t\t\tname: `Given_3_requests_include_1_without_browserVersion_\n\t\t\tWhen_4_existing_nodes_with_different_stereotypes_browserVersion_and_1_available_\n\t\t\tAnd_scaler_metadata_set_browserVersion_130.0_\n\t\t\tThen_return_0_new_scale_and_0_ongoing`,\n\t\t\targs: args{\n\t\t\t\tb: []byte(`{\n\t\t\t\t\t\"data\": {\n\t\t\t\t\t\t\"grid\": {\n\t\t\t\t\t\t\t\"sessionCount\": 3,\n\t\t\t\t\t\t\t\"maxSession\": 4,\n\t\t\t\t\t\t\t\"totalSlots\": 4\n\t\t\t\t\t\t},\n\t\t\t\t\t\t\"nodesInfo\": {\n\t\t\t\t\t\t\t\"nodes\": [\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\"id\": \"node-131\",\n\t\t\t\t\t\t\t\t\t\"status\": \"UP\",\n\t\t\t\t\t\t\t\t\t\"sessionCount\": 1,\n\t\t\t\t\t\t\t\t\t\"maxSession\": 1,\n\t\t\t\t\t\t\t\t\t\"slotCount\": 1,\n\t\t\t\t\t\t\t\t\t\"stereotypes\": \"[{\\\"slots\\\": 1, \\\"stereotype\\\": {\\\"browserName\\\": \\\"chrome\\\", \\\"browserVersion\\\": \\\"131.0\\\", \\\"platformName\\\": \\\"linux\\\"}}]\",\n\t\t\t\t\t\t\t\t\t\"sessions\": [\n\t\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\t\t\"id\": \"session-1\",\n\t\t\t\t\t\t\t\t\t\t\t\"capabilities\": \"{\\\"browserName\\\": \\\"chrome\\\", \\\"browserVersion\\\": \\\"131.0\\\", \\\"platformName\\\": \\\"linux\\\"}\",\n\t\t\t\t\t\t\t\t\t\t\t\"slot\": {\n\t\t\t\t\t\t\t\t\t\t\t\t\"id\": \"9ce1edba-72fb-465e-b311-ee473d8d7b64\",\n\t\t\t\t\t\t\t\t\t\t\t\t\"stereotype\": \"{\\\"browserName\\\": \\\"chrome\\\", \\\"browserVersion\\\": \\\"131.0\\\", \\\"platformName\\\": \\\"linux\\\"}\"\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t]\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\"id\": \"node-130\",\n\t\t\t\t\t\t\t\t\t\"status\": \"UP\",\n\t\t\t\t\t\t\t\t\t\"sessionCount\": 0,\n\t\t\t\t\t\t\t\t\t\"maxSession\": 1,\n\t\t\t\t\t\t\t\t\t\"slotCount\": 1,\n\t\t\t\t\t\t\t\t\t\"stereotypes\": \"[{\\\"slots\\\": 1, \\\"stereotype\\\": {\\\"browserName\\\": \\\"chrome\\\", \\\"browserVersion\\\": \\\"130.0\\\", \\\"platformName\\\": \\\"linux\\\"}}]\",\n\t\t\t\t\t\t\t\t\t\"sessions\": []\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\"id\": \"node-129\",\n\t\t\t\t\t\t\t\t\t\"status\": \"UP\",\n\t\t\t\t\t\t\t\t\t\"sessionCount\": 1,\n\t\t\t\t\t\t\t\t\t\"maxSession\": 1,\n\t\t\t\t\t\t\t\t\t\"slotCount\": 1,\n\t\t\t\t\t\t\t\t\t\"stereotypes\": \"[{\\\"slots\\\": 1, \\\"stereotype\\\": {\\\"browserName\\\": \\\"chrome\\\", \\\"browserVersion\\\": \\\"129.0\\\", \\\"platformName\\\": \\\"linux\\\"}}]\",\n\t\t\t\t\t\t\t\t\t\"sessions\": [\n\t\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\t\t\"id\": \"session-1\",\n\t\t\t\t\t\t\t\t\t\t\t\"capabilities\": \"{\\\"browserName\\\": \\\"chrome\\\", \\\"browserVersion\\\": \\\"129.0\\\", \\\"platformName\\\": \\\"linux\\\"}\",\n\t\t\t\t\t\t\t\t\t\t\t\"slot\": {\n\t\t\t\t\t\t\t\t\t\t\t\t\"id\": \"9ce1edba-72fb-465e-b311-ee473d8d7b64\",\n\t\t\t\t\t\t\t\t\t\t\t\t\"stereotype\": \"{\\\"browserName\\\": \\\"chrome\\\", \\\"browserVersion\\\": \\\"129.0\\\", \\\"platformName\\\": \\\"linux\\\"}\"\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t]\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\"id\": \"node-128\",\n\t\t\t\t\t\t\t\t\t\"status\": \"UP\",\n\t\t\t\t\t\t\t\t\t\"sessionCount\": 1,\n\t\t\t\t\t\t\t\t\t\"maxSession\": 1,\n\t\t\t\t\t\t\t\t\t\"slotCount\": 1,\n\t\t\t\t\t\t\t\t\t\"stereotypes\": \"[{\\\"slots\\\": 1, \\\"stereotype\\\": {\\\"browserName\\\": \\\"chrome\\\", \\\"browserVersion\\\": \\\"128.0\\\", \\\"platformName\\\": \\\"linux\\\"}}]\",\n\t\t\t\t\t\t\t\t\t\"sessions\": [\n\t\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\t\t\"id\": \"session-1\",\n\t\t\t\t\t\t\t\t\t\t\t\"capabilities\": \"{\\\"browserName\\\": \\\"chrome\\\", \\\"browserVersion\\\": \\\"128.0\\\", \\\"platformName\\\": \\\"linux\\\"}\",\n\t\t\t\t\t\t\t\t\t\t\t\"slot\": {\n\t\t\t\t\t\t\t\t\t\t\t\t\"id\": \"9ce1edba-72fb-465e-b311-ee473d8d7b64\",\n\t\t\t\t\t\t\t\t\t\t\t\t\"stereotype\": \"{\\\"browserName\\\": \\\"chrome\\\", \\\"browserVersion\\\": \\\"128.0\\\", \\\"platformName\\\": \\\"linux\\\"}\"\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t]\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t]\n\t\t\t\t\t\t},\n\t\t\t\t\t\t\"sessionsInfo\": {\n\t\t\t\t\t\t\t\"sessionQueueRequests\": [\n\t\t\t\t\t\t\t\t\"{\\\"browserName\\\": \\\"chrome\\\", \\\"platformName\\\": \\\"linux\\\"}\",\n\t\t\t\t\t\t\t\t\"{\\\"browserName\\\": \\\"chrome\\\", \\\"platformName\\\": \\\"linux\\\", \\\"browserVersion\\\": \\\"131\\\"}\",\n\t\t\t\t\t\t\t\t\"{\\\"browserName\\\": \\\"chrome\\\", \\\"platformName\\\": \\\"linux\\\", \\\"browserVersion\\\": \\\"130\\\"}\"\n\t\t\t\t\t\t\t]\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}`),\n\t\t\t\tbrowserName:        \"chrome\",\n\t\t\t\tsessionBrowserName: \"chrome\",\n\t\t\t\tbrowserVersion:     \"130.0\",\n\t\t\t\tplatformName:       \"linux\",\n\t\t\t},\n\t\t\twantNewRequestNodes: 0,\n\t\t\twantOnGoingSessions: 0,\n\t\t\twantErr:             false,\n\t\t},\n\t\t{\n\t\t\tname: `Given_3_requests_include_1_without_browserVersion_\n\t\t\tWhen_5_existing_nodes_with_different_stereotypes_browserVersion_\n\t\t\tAnd_scaler_metadata_set_browserVersion_as_empty_\n\t\t\tThen_return_1_new_scale_and_1_ongoing`,\n\t\t\targs: args{\n\t\t\t\tb: []byte(`{\n\t\t\t\t\t\"data\": {\n\t\t\t\t\t\t\"grid\": {\n\t\t\t\t\t\t\t\"sessionCount\": 4,\n\t\t\t\t\t\t\t\"maxSession\": 5,\n\t\t\t\t\t\t\t\"totalSlots\": 5\n\t\t\t\t\t\t},\n\t\t\t\t\t\t\"nodesInfo\": {\n\t\t\t\t\t\t\t\"nodes\": [\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\"id\": \"node-131\",\n\t\t\t\t\t\t\t\t\t\"status\": \"UP\",\n\t\t\t\t\t\t\t\t\t\"sessionCount\": 1,\n\t\t\t\t\t\t\t\t\t\"maxSession\": 1,\n\t\t\t\t\t\t\t\t\t\"slotCount\": 1,\n\t\t\t\t\t\t\t\t\t\"stereotypes\": \"[{\\\"slots\\\": 1, \\\"stereotype\\\": {\\\"browserName\\\": \\\"chrome\\\", \\\"browserVersion\\\": \\\"131.0\\\", \\\"platformName\\\": \\\"linux\\\"}}]\",\n\t\t\t\t\t\t\t\t\t\"sessions\": [\n\t\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\t\t\"id\": \"session-1\",\n\t\t\t\t\t\t\t\t\t\t\t\"capabilities\": \"{\\\"browserName\\\": \\\"chrome\\\", \\\"browserVersion\\\": \\\"131.0\\\", \\\"platformName\\\": \\\"linux\\\"}\",\n\t\t\t\t\t\t\t\t\t\t\t\"slot\": {\n\t\t\t\t\t\t\t\t\t\t\t\t\"id\": \"9ce1edba-72fb-465e-b311-ee473d8d7b64\",\n\t\t\t\t\t\t\t\t\t\t\t\t\"stereotype\": \"{\\\"browserName\\\": \\\"chrome\\\", \\\"browserVersion\\\": \\\"131.0\\\", \\\"platformName\\\": \\\"linux\\\"}\"\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t]\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\"id\": \"node-130\",\n\t\t\t\t\t\t\t\t\t\"status\": \"UP\",\n\t\t\t\t\t\t\t\t\t\"sessionCount\": 0,\n\t\t\t\t\t\t\t\t\t\"maxSession\": 1,\n\t\t\t\t\t\t\t\t\t\"slotCount\": 1,\n\t\t\t\t\t\t\t\t\t\"stereotypes\": \"[{\\\"slots\\\": 1, \\\"stereotype\\\": {\\\"browserName\\\": \\\"chrome\\\", \\\"browserVersion\\\": \\\"130.0\\\", \\\"platformName\\\": \\\"linux\\\"}}]\",\n\t\t\t\t\t\t\t\t\t\"sessions\": []\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\"id\": \"node-129\",\n\t\t\t\t\t\t\t\t\t\"status\": \"UP\",\n\t\t\t\t\t\t\t\t\t\"sessionCount\": 1,\n\t\t\t\t\t\t\t\t\t\"maxSession\": 1,\n\t\t\t\t\t\t\t\t\t\"slotCount\": 1,\n\t\t\t\t\t\t\t\t\t\"stereotypes\": \"[{\\\"slots\\\": 1, \\\"stereotype\\\": {\\\"browserName\\\": \\\"chrome\\\", \\\"browserVersion\\\": \\\"129.0\\\", \\\"platformName\\\": \\\"linux\\\"}}]\",\n\t\t\t\t\t\t\t\t\t\"sessions\": [\n\t\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\t\t\"id\": \"session-1\",\n\t\t\t\t\t\t\t\t\t\t\t\"capabilities\": \"{\\\"browserName\\\": \\\"chrome\\\", \\\"browserVersion\\\": \\\"129.0\\\", \\\"platformName\\\": \\\"linux\\\"}\",\n\t\t\t\t\t\t\t\t\t\t\t\"slot\": {\n\t\t\t\t\t\t\t\t\t\t\t\t\"id\": \"9ce1edba-72fb-465e-b311-ee473d8d7b64\",\n\t\t\t\t\t\t\t\t\t\t\t\t\"stereotype\": \"{\\\"browserName\\\": \\\"chrome\\\", \\\"browserVersion\\\": \\\"129.0\\\", \\\"platformName\\\": \\\"linux\\\"}\"\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t]\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\"id\": \"node-128\",\n\t\t\t\t\t\t\t\t\t\"status\": \"UP\",\n\t\t\t\t\t\t\t\t\t\"sessionCount\": 1,\n\t\t\t\t\t\t\t\t\t\"maxSession\": 1,\n\t\t\t\t\t\t\t\t\t\"slotCount\": 1,\n\t\t\t\t\t\t\t\t\t\"stereotypes\": \"[{\\\"slots\\\": 1, \\\"stereotype\\\": {\\\"browserName\\\": \\\"chrome\\\", \\\"browserVersion\\\": \\\"128.0\\\", \\\"platformName\\\": \\\"linux\\\"}}]\",\n\t\t\t\t\t\t\t\t\t\"sessions\": [\n\t\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\t\t\"id\": \"session-1\",\n\t\t\t\t\t\t\t\t\t\t\t\"capabilities\": \"{\\\"browserName\\\": \\\"chrome\\\", \\\"browserVersion\\\": \\\"128.0\\\", \\\"platformName\\\": \\\"linux\\\"}\",\n\t\t\t\t\t\t\t\t\t\t\t\"slot\": {\n\t\t\t\t\t\t\t\t\t\t\t\t\"id\": \"9ce1edba-72fb-465e-b311-ee473d8d7b64\",\n\t\t\t\t\t\t\t\t\t\t\t\t\"stereotype\": \"{\\\"browserName\\\": \\\"chrome\\\", \\\"browserVersion\\\": \\\"128.0\\\", \\\"platformName\\\": \\\"linux\\\"}\"\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t]\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\"id\": \"node-any\",\n\t\t\t\t\t\t\t\t\t\"status\": \"UP\",\n\t\t\t\t\t\t\t\t\t\"sessionCount\": 1,\n\t\t\t\t\t\t\t\t\t\"maxSession\": 1,\n\t\t\t\t\t\t\t\t\t\"slotCount\": 1,\n\t\t\t\t\t\t\t\t\t\"stereotypes\": \"[{\\\"slots\\\": 1, \\\"stereotype\\\": {\\\"browserName\\\": \\\"chrome\\\", \\\"browserVersion\\\": \\\"\\\", \\\"platformName\\\": \\\"linux\\\"}}]\",\n\t\t\t\t\t\t\t\t\t\"sessions\": [\n\t\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\t\t\"id\": \"session-1\",\n\t\t\t\t\t\t\t\t\t\t\t\"capabilities\": \"{\\\"browserName\\\": \\\"chrome\\\", \\\"browserVersion\\\": \\\"128.0\\\", \\\"platformName\\\": \\\"linux\\\"}\",\n\t\t\t\t\t\t\t\t\t\t\t\"slot\": {\n\t\t\t\t\t\t\t\t\t\t\t\t\"id\": \"9ce1edba-72fb-465e-b311-ee473d8d7b64\",\n\t\t\t\t\t\t\t\t\t\t\t\t\"stereotype\": \"{\\\"browserName\\\": \\\"chrome\\\", \\\"browserVersion\\\": \\\"\\\", \\\"platformName\\\": \\\"linux\\\"}\"\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t]\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t]\n\t\t\t\t\t\t},\n\t\t\t\t\t\t\"sessionsInfo\": {\n\t\t\t\t\t\t\t\"sessionQueueRequests\": [\n\t\t\t\t\t\t\t\t\"{\\\"browserName\\\": \\\"chrome\\\", \\\"platformName\\\": \\\"linux\\\"}\",\n\t\t\t\t\t\t\t\t\"{\\\"browserName\\\": \\\"chrome\\\", \\\"platformName\\\": \\\"linux\\\", \\\"browserVersion\\\": \\\"131\\\"}\",\n\t\t\t\t\t\t\t\t\"{\\\"browserName\\\": \\\"chrome\\\", \\\"platformName\\\": \\\"linux\\\", \\\"browserVersion\\\": \\\"130\\\"}\"\n\t\t\t\t\t\t\t]\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}`),\n\t\t\t\tbrowserName:        \"chrome\",\n\t\t\t\tsessionBrowserName: \"chrome\",\n\t\t\t\tbrowserVersion:     \"\",\n\t\t\t\tplatformName:       \"linux\",\n\t\t\t},\n\t\t\twantNewRequestNodes: 1,\n\t\t\twantOnGoingSessions: 1,\n\t\t\twantErr:             false,\n\t\t},\n\t\t{\n\t\t\tname: `Given_3_requests_include_1_without_browserVersion_\n\t\t\tWhen_4_existing_nodes_with_different_stereotypes_browserVersion_\n\t\t\tAnd_scaler_metadata_set_browserVersion_130.0_\n\t\t\tThen_return_1_new_scale_and_0_ongoing`,\n\t\t\targs: args{\n\t\t\t\tb: []byte(`{\n\t\t\t\t\t\"data\": {\n\t\t\t\t\t\t\"grid\": {\n\t\t\t\t\t\t\t\"sessionCount\": 4,\n\t\t\t\t\t\t\t\"maxSession\": 4,\n\t\t\t\t\t\t\t\"totalSlots\": 4\n\t\t\t\t\t\t},\n\t\t\t\t\t\t\"nodesInfo\": {\n\t\t\t\t\t\t\t\"nodes\": [\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\"id\": \"node-131\",\n\t\t\t\t\t\t\t\t\t\"status\": \"UP\",\n\t\t\t\t\t\t\t\t\t\"sessionCount\": 1,\n\t\t\t\t\t\t\t\t\t\"maxSession\": 1,\n\t\t\t\t\t\t\t\t\t\"slotCount\": 1,\n\t\t\t\t\t\t\t\t\t\"stereotypes\": \"[{\\\"slots\\\": 1, \\\"stereotype\\\": {\\\"browserName\\\": \\\"chrome\\\", \\\"browserVersion\\\": \\\"131.0\\\", \\\"platformName\\\": \\\"linux\\\"}}]\",\n\t\t\t\t\t\t\t\t\t\"sessions\": [\n\t\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\t\t\"id\": \"session-1\",\n\t\t\t\t\t\t\t\t\t\t\t\"capabilities\": \"{\\\"browserName\\\": \\\"chrome\\\", \\\"browserVersion\\\": \\\"131.0\\\", \\\"platformName\\\": \\\"linux\\\"}\",\n\t\t\t\t\t\t\t\t\t\t\t\"slot\": {\n\t\t\t\t\t\t\t\t\t\t\t\t\"id\": \"9ce1edba-72fb-465e-b311-ee473d8d7b64\",\n\t\t\t\t\t\t\t\t\t\t\t\t\"stereotype\": \"{\\\"browserName\\\": \\\"chrome\\\", \\\"browserVersion\\\": \\\"131.0\\\", \\\"platformName\\\": \\\"linux\\\"}\"\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t]\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\"id\": \"node-129\",\n\t\t\t\t\t\t\t\t\t\"status\": \"UP\",\n\t\t\t\t\t\t\t\t\t\"sessionCount\": 1,\n\t\t\t\t\t\t\t\t\t\"maxSession\": 1,\n\t\t\t\t\t\t\t\t\t\"slotCount\": 1,\n\t\t\t\t\t\t\t\t\t\"stereotypes\": \"[{\\\"slots\\\": 1, \\\"stereotype\\\": {\\\"browserName\\\": \\\"chrome\\\", \\\"browserVersion\\\": \\\"129.0\\\", \\\"platformName\\\": \\\"linux\\\"}}]\",\n\t\t\t\t\t\t\t\t\t\"sessions\": [\n\t\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\t\t\"id\": \"session-1\",\n\t\t\t\t\t\t\t\t\t\t\t\"capabilities\": \"{\\\"browserName\\\": \\\"chrome\\\", \\\"browserVersion\\\": \\\"129.0\\\", \\\"platformName\\\": \\\"linux\\\"}\",\n\t\t\t\t\t\t\t\t\t\t\t\"slot\": {\n\t\t\t\t\t\t\t\t\t\t\t\t\"id\": \"9ce1edba-72fb-465e-b311-ee473d8d7b64\",\n\t\t\t\t\t\t\t\t\t\t\t\t\"stereotype\": \"{\\\"browserName\\\": \\\"chrome\\\", \\\"browserVersion\\\": \\\"129.0\\\", \\\"platformName\\\": \\\"linux\\\"}\"\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t]\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\"id\": \"node-128\",\n\t\t\t\t\t\t\t\t\t\"status\": \"UP\",\n\t\t\t\t\t\t\t\t\t\"sessionCount\": 1,\n\t\t\t\t\t\t\t\t\t\"maxSession\": 1,\n\t\t\t\t\t\t\t\t\t\"slotCount\": 1,\n\t\t\t\t\t\t\t\t\t\"stereotypes\": \"[{\\\"slots\\\": 1, \\\"stereotype\\\": {\\\"browserName\\\": \\\"chrome\\\", \\\"browserVersion\\\": \\\"128.0\\\", \\\"platformName\\\": \\\"linux\\\"}}]\",\n\t\t\t\t\t\t\t\t\t\"sessions\": [\n\t\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\t\t\"id\": \"session-1\",\n\t\t\t\t\t\t\t\t\t\t\t\"capabilities\": \"{\\\"browserName\\\": \\\"chrome\\\", \\\"browserVersion\\\": \\\"128.0\\\", \\\"platformName\\\": \\\"linux\\\"}\",\n\t\t\t\t\t\t\t\t\t\t\t\"slot\": {\n\t\t\t\t\t\t\t\t\t\t\t\t\"id\": \"9ce1edba-72fb-465e-b311-ee473d8d7b64\",\n\t\t\t\t\t\t\t\t\t\t\t\t\"stereotype\": \"{\\\"browserName\\\": \\\"chrome\\\", \\\"browserVersion\\\": \\\"128.0\\\", \\\"platformName\\\": \\\"linux\\\"}\"\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t]\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\"id\": \"node-any\",\n\t\t\t\t\t\t\t\t\t\"status\": \"UP\",\n\t\t\t\t\t\t\t\t\t\"sessionCount\": 1,\n\t\t\t\t\t\t\t\t\t\"maxSession\": 1,\n\t\t\t\t\t\t\t\t\t\"slotCount\": 1,\n\t\t\t\t\t\t\t\t\t\"stereotypes\": \"[{\\\"slots\\\": 1, \\\"stereotype\\\": {\\\"browserName\\\": \\\"chrome\\\", \\\"browserVersion\\\": \\\"\\\", \\\"platformName\\\": \\\"linux\\\"}}]\",\n\t\t\t\t\t\t\t\t\t\"sessions\": [\n\t\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\t\t\"id\": \"session-1\",\n\t\t\t\t\t\t\t\t\t\t\t\"capabilities\": \"{\\\"browserName\\\": \\\"chrome\\\", \\\"browserVersion\\\": \\\"128.0\\\", \\\"platformName\\\": \\\"linux\\\"}\",\n\t\t\t\t\t\t\t\t\t\t\t\"slot\": {\n\t\t\t\t\t\t\t\t\t\t\t\t\"id\": \"9ce1edba-72fb-465e-b311-ee473d8d7b64\",\n\t\t\t\t\t\t\t\t\t\t\t\t\"stereotype\": \"{\\\"browserName\\\": \\\"chrome\\\", \\\"browserVersion\\\": \\\"\\\", \\\"platformName\\\": \\\"linux\\\"}\"\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t]\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t]\n\t\t\t\t\t\t},\n\t\t\t\t\t\t\"sessionsInfo\": {\n\t\t\t\t\t\t\t\"sessionQueueRequests\": [\n\t\t\t\t\t\t\t\t\"{\\\"browserName\\\": \\\"chrome\\\", \\\"platformName\\\": \\\"linux\\\"}\",\n\t\t\t\t\t\t\t\t\"{\\\"browserName\\\": \\\"chrome\\\", \\\"platformName\\\": \\\"linux\\\", \\\"browserVersion\\\": \\\"131\\\"}\",\n\t\t\t\t\t\t\t\t\"{\\\"browserName\\\": \\\"chrome\\\", \\\"platformName\\\": \\\"linux\\\", \\\"browserVersion\\\": \\\"130\\\"}\"\n\t\t\t\t\t\t\t]\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}`),\n\t\t\t\tbrowserName:        \"chrome\",\n\t\t\t\tsessionBrowserName: \"chrome\",\n\t\t\t\tbrowserVersion:     \"130.0\",\n\t\t\t\tplatformName:       \"linux\",\n\t\t\t},\n\t\t\twantNewRequestNodes: 1,\n\t\t\twantOnGoingSessions: 0,\n\t\t\twantErr:             false,\n\t\t},\n\t}\n\tfor _, tt := range tests {\n\t\tt.Run(tt.name, func(t *testing.T) {\n\t\t\tnewRequestNodes, onGoingSessions, err := getCountFromSeleniumResponse(tt.args.b, tt.args.browserName, tt.args.browserVersion, tt.args.sessionBrowserName, tt.args.platformName, tt.args.nodeMaxSessions, tt.args.enableManagedDownloads, tt.args.capabilities, logr.Discard())\n\t\t\tif (err != nil) != tt.wantErr {\n\t\t\t\tt.Errorf(\"getCountFromSeleniumResponse() error = %v, wantErr %v\", err, tt.wantErr)\n\t\t\t\treturn\n\t\t\t}\n\t\t\tif !reflect.DeepEqual(newRequestNodes, tt.wantNewRequestNodes) || !reflect.DeepEqual(onGoingSessions, tt.wantOnGoingSessions) {\n\t\t\t\tt.Errorf(\"getCountFromSeleniumResponse() = [%v, %v], want [%v, %v]\", newRequestNodes, onGoingSessions, tt.wantNewRequestNodes, tt.wantOnGoingSessions)\n\t\t\t}\n\t\t})\n\t}\n}\n\nfunc Test_parseSeleniumGridScalerMetadata(t *testing.T) {\n\ttype args struct {\n\t\tconfig *scalersconfig.ScalerConfig\n\t}\n\ttests := []struct {\n\t\tname    string\n\t\targs    args\n\t\twant    *seleniumGridScalerMetadata\n\t\twantErr bool\n\t}{\n\t\t{\n\t\t\tname: \"invalid url string should throw error\",\n\t\t\targs: args{\n\t\t\t\tconfig: &scalersconfig.ScalerConfig{\n\t\t\t\t\tTriggerMetadata: map[string]string{},\n\t\t\t\t},\n\t\t\t},\n\t\t\twantErr: true,\n\t\t},\n\t\t{\n\t\t\tname: \"invalid browsername string should throw error\",\n\t\t\targs: args{\n\t\t\t\tconfig: &scalersconfig.ScalerConfig{\n\t\t\t\t\tTriggerMetadata: map[string]string{\n\t\t\t\t\t\t\"url\": \"\",\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t\twantErr: true,\n\t\t},\n\t\t{\n\t\t\tname: \"valid url and browsername should return metadata\",\n\t\t\targs: args{\n\t\t\t\tconfig: &scalersconfig.ScalerConfig{\n\t\t\t\t\tTriggerMetadata: map[string]string{\n\t\t\t\t\t\t\"url\":         \"http://selenium-hub:4444/graphql\",\n\t\t\t\t\t\t\"browserName\": \"chrome\",\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t\twantErr: false,\n\t\t\twant: &seleniumGridScalerMetadata{\n\t\t\t\tURL:                    \"http://selenium-hub:4444/graphql\",\n\t\t\t\tBrowserName:            \"chrome\",\n\t\t\t\tSessionBrowserName:     \"chrome\",\n\t\t\t\tTargetValue:            1,\n\t\t\t\tBrowserVersion:         \"\",\n\t\t\t\tPlatformName:           \"\",\n\t\t\t\tNodeMaxSessions:        1,\n\t\t\t\tEnableManagedDownloads: true,\n\t\t\t\tCapabilities:           \"\",\n\t\t\t},\n\t\t},\n\t\t{\n\t\t\tname: \"valid url, browsername, and sessionbrowsername should return metadata\",\n\t\t\targs: args{\n\t\t\t\tconfig: &scalersconfig.ScalerConfig{\n\t\t\t\t\tTriggerMetadata: map[string]string{\n\t\t\t\t\t\t\"url\":                \"http://selenium-hub:4444/graphql\",\n\t\t\t\t\t\t\"browserName\":        \"MicrosoftEdge\",\n\t\t\t\t\t\t\"sessionBrowserName\": \"msedge\",\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t\twantErr: false,\n\t\t\twant: &seleniumGridScalerMetadata{\n\t\t\t\tURL:                    \"http://selenium-hub:4444/graphql\",\n\t\t\t\tBrowserName:            \"MicrosoftEdge\",\n\t\t\t\tSessionBrowserName:     \"msedge\",\n\t\t\t\tTargetValue:            1,\n\t\t\t\tBrowserVersion:         \"\",\n\t\t\t\tPlatformName:           \"\",\n\t\t\t\tNodeMaxSessions:        1,\n\t\t\t\tEnableManagedDownloads: true,\n\t\t\t\tCapabilities:           \"\",\n\t\t\t},\n\t\t},\n\t\t{\n\t\t\tname: \"can input browserName as empty\",\n\t\t\targs: args{\n\t\t\t\tconfig: &scalersconfig.ScalerConfig{\n\t\t\t\t\tTriggerMetadata: map[string]string{\n\t\t\t\t\t\t\"url\":         \"http://selenium-hub:4444/graphql\",\n\t\t\t\t\t\t\"browserName\": \"\",\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t\twantErr: false,\n\t\t\twant: &seleniumGridScalerMetadata{\n\t\t\t\tURL:                    \"http://selenium-hub:4444/graphql\",\n\t\t\t\tBrowserName:            \"\",\n\t\t\t\tSessionBrowserName:     \"\",\n\t\t\t\tTargetValue:            1,\n\t\t\t\tBrowserVersion:         \"\",\n\t\t\t\tPlatformName:           \"\",\n\t\t\t\tNodeMaxSessions:        1,\n\t\t\t\tEnableManagedDownloads: true,\n\t\t\t\tCapabilities:           \"\",\n\t\t\t},\n\t\t},\n\t\t{\n\t\t\tname: \"valid url in AuthParams, browsername, and sessionbrowsername should return metadata\",\n\t\t\targs: args{\n\t\t\t\tconfig: &scalersconfig.ScalerConfig{\n\t\t\t\t\tAuthParams: map[string]string{\n\t\t\t\t\t\t\"url\":      \"http://selenium-hub:4444/graphql\",\n\t\t\t\t\t\t\"username\": \"user\",\n\t\t\t\t\t\t\"password\": \"password\",\n\t\t\t\t\t},\n\t\t\t\t\tTriggerMetadata: map[string]string{\n\t\t\t\t\t\t\"browserName\":        \"MicrosoftEdge\",\n\t\t\t\t\t\t\"sessionBrowserName\": \"msedge\",\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t\twantErr: false,\n\t\t\twant: &seleniumGridScalerMetadata{\n\t\t\t\tURL:                    \"http://selenium-hub:4444/graphql\",\n\t\t\t\tUsername:               \"user\",\n\t\t\t\tPassword:               \"password\",\n\t\t\t\tBrowserName:            \"MicrosoftEdge\",\n\t\t\t\tSessionBrowserName:     \"msedge\",\n\t\t\t\tTargetValue:            1,\n\t\t\t\tBrowserVersion:         \"\",\n\t\t\t\tPlatformName:           \"\",\n\t\t\t\tNodeMaxSessions:        1,\n\t\t\t\tEnableManagedDownloads: true,\n\t\t\t\tCapabilities:           \"\",\n\t\t\t},\n\t\t},\n\t\t{\n\t\t\tname: \"valid username and password in AuthParams, url, browsername, and sessionbrowsername should return metadata\",\n\t\t\targs: args{\n\t\t\t\tconfig: &scalersconfig.ScalerConfig{\n\t\t\t\t\tAuthParams: map[string]string{\n\t\t\t\t\t\t\"username\": \"username\",\n\t\t\t\t\t\t\"password\": \"password\",\n\t\t\t\t\t},\n\t\t\t\t\tTriggerMetadata: map[string]string{\n\t\t\t\t\t\t\"url\":                \"http://selenium-hub:4444/graphql\",\n\t\t\t\t\t\t\"browserName\":        \"MicrosoftEdge\",\n\t\t\t\t\t\t\"sessionBrowserName\": \"msedge\",\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t\twantErr: false,\n\t\t\twant: &seleniumGridScalerMetadata{\n\t\t\t\tURL:                    \"http://selenium-hub:4444/graphql\",\n\t\t\t\tBrowserName:            \"MicrosoftEdge\",\n\t\t\t\tSessionBrowserName:     \"msedge\",\n\t\t\t\tTargetValue:            1,\n\t\t\t\tBrowserVersion:         \"\",\n\t\t\t\tPlatformName:           \"\",\n\t\t\t\tUsername:               \"username\",\n\t\t\t\tPassword:               \"password\",\n\t\t\t\tNodeMaxSessions:        1,\n\t\t\t\tEnableManagedDownloads: true,\n\t\t\t\tCapabilities:           \"\",\n\t\t\t},\n\t\t},\n\t\t{\n\t\t\tname: \"valid capabilities should return metadata\",\n\t\t\targs: args{\n\t\t\t\tconfig: &scalersconfig.ScalerConfig{\n\t\t\t\t\tAuthParams: map[string]string{\n\t\t\t\t\t\t\"username\": \"username\",\n\t\t\t\t\t\t\"password\": \"password\",\n\t\t\t\t\t},\n\t\t\t\t\tTriggerMetadata: map[string]string{\n\t\t\t\t\t\t\"url\":                    \"http://selenium-hub:4444/graphql\",\n\t\t\t\t\t\t\"browserName\":            \"MicrosoftEdge\",\n\t\t\t\t\t\t\"sessionBrowserName\":     \"msedge\",\n\t\t\t\t\t\t\"enableManagedDownloads\": \"true\",\n\t\t\t\t\t\t\"capabilities\":           \"{\\\"myApp:version\\\": \\\"beta\\\"}\",\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t\twantErr: false,\n\t\t\twant: &seleniumGridScalerMetadata{\n\t\t\t\tURL:                    \"http://selenium-hub:4444/graphql\",\n\t\t\t\tBrowserName:            \"MicrosoftEdge\",\n\t\t\t\tSessionBrowserName:     \"msedge\",\n\t\t\t\tTargetValue:            1,\n\t\t\t\tBrowserVersion:         \"\",\n\t\t\t\tPlatformName:           \"\",\n\t\t\t\tUsername:               \"username\",\n\t\t\t\tPassword:               \"password\",\n\t\t\t\tNodeMaxSessions:        1,\n\t\t\t\tEnableManagedDownloads: true,\n\t\t\t\tCapabilities:           \"{\\\"myApp:version\\\": \\\"beta\\\"}\",\n\t\t\t},\n\t\t},\n\t\t{\n\t\t\tname: \"valid url and browsername should return metadata\",\n\t\t\targs: args{\n\t\t\t\tconfig: &scalersconfig.ScalerConfig{\n\t\t\t\t\tTriggerMetadata: map[string]string{\n\t\t\t\t\t\t\"url\":            \"http://selenium-hub:4444/graphql\",\n\t\t\t\t\t\t\"browserName\":    \"chrome\",\n\t\t\t\t\t\t\"browserVersion\": \"91.0\",\n\t\t\t\t\t\t\"unsafeSsl\":      \"false\",\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t\twantErr: false,\n\t\t\twant: &seleniumGridScalerMetadata{\n\t\t\t\tURL:                    \"http://selenium-hub:4444/graphql\",\n\t\t\t\tBrowserName:            \"chrome\",\n\t\t\t\tSessionBrowserName:     \"chrome\",\n\t\t\t\tTargetValue:            1,\n\t\t\t\tBrowserVersion:         \"91.0\",\n\t\t\t\tUnsafeSsl:              false,\n\t\t\t\tPlatformName:           \"\",\n\t\t\t\tNodeMaxSessions:        1,\n\t\t\t\tEnableManagedDownloads: true,\n\t\t\t\tCapabilities:           \"\",\n\t\t\t},\n\t\t},\n\t\t{\n\t\t\tname: \"valid url, browsername, unsafeSsl and activationThreshold should return metadata\",\n\t\t\targs: args{\n\t\t\t\tconfig: &scalersconfig.ScalerConfig{\n\t\t\t\t\tTriggerMetadata: map[string]string{\n\t\t\t\t\t\t\"url\":                 \"http://selenium-hub:4444/graphql\",\n\t\t\t\t\t\t\"browserName\":         \"chrome\",\n\t\t\t\t\t\t\"browserVersion\":      \"91.0\",\n\t\t\t\t\t\t\"unsafeSsl\":           \"true\",\n\t\t\t\t\t\t\"activationThreshold\": \"10\",\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t\twantErr: false,\n\t\t\twant: &seleniumGridScalerMetadata{\n\t\t\t\tURL:                    \"http://selenium-hub:4444/graphql\",\n\t\t\t\tBrowserName:            \"chrome\",\n\t\t\t\tSessionBrowserName:     \"chrome\",\n\t\t\t\tTargetValue:            1,\n\t\t\t\tActivationThreshold:    10,\n\t\t\t\tBrowserVersion:         \"91.0\",\n\t\t\t\tUnsafeSsl:              true,\n\t\t\t\tPlatformName:           \"\",\n\t\t\t\tNodeMaxSessions:        1,\n\t\t\t\tEnableManagedDownloads: true,\n\t\t\t\tCapabilities:           \"\",\n\t\t\t},\n\t\t},\n\t\t{\n\t\t\tname: \"valid url, browsername and unsafeSsl but invalid activationThreshold should throw an error\",\n\t\t\targs: args{\n\t\t\t\tconfig: &scalersconfig.ScalerConfig{\n\t\t\t\t\tTriggerMetadata: map[string]string{\n\t\t\t\t\t\t\"url\":                 \"http://selenium-hub:4444/graphql\",\n\t\t\t\t\t\t\"browserName\":         \"chrome\",\n\t\t\t\t\t\t\"browserVersion\":      \"91.0\",\n\t\t\t\t\t\t\"unsafeSsl\":           \"true\",\n\t\t\t\t\t\t\"activationThreshold\": \"AA\",\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t\twantErr: true,\n\t\t},\n\t\t{\n\t\t\tname: \"valid url, browsername, unsafeSsl and activationThreshold with default platformName should return metadata\",\n\t\t\targs: args{\n\t\t\t\tconfig: &scalersconfig.ScalerConfig{\n\t\t\t\t\tTriggerMetadata: map[string]string{\n\t\t\t\t\t\t\"url\":                 \"http://selenium-hub:4444/graphql\",\n\t\t\t\t\t\t\"browserName\":         \"chrome\",\n\t\t\t\t\t\t\"browserVersion\":      \"91.0\",\n\t\t\t\t\t\t\"unsafeSsl\":           \"true\",\n\t\t\t\t\t\t\"activationThreshold\": \"10\",\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t\twantErr: false,\n\t\t\twant: &seleniumGridScalerMetadata{\n\t\t\t\tURL:                    \"http://selenium-hub:4444/graphql\",\n\t\t\t\tBrowserName:            \"chrome\",\n\t\t\t\tSessionBrowserName:     \"chrome\",\n\t\t\t\tTargetValue:            1,\n\t\t\t\tActivationThreshold:    10,\n\t\t\t\tBrowserVersion:         \"91.0\",\n\t\t\t\tUnsafeSsl:              true,\n\t\t\t\tPlatformName:           \"\",\n\t\t\t\tNodeMaxSessions:        1,\n\t\t\t\tEnableManagedDownloads: true,\n\t\t\t\tCapabilities:           \"\",\n\t\t\t},\n\t\t},\n\t\t{\n\t\t\tname: \"valid url, browsername, unsafeSsl, activationThreshold and platformName should return metadata\",\n\t\t\targs: args{\n\t\t\t\tconfig: &scalersconfig.ScalerConfig{\n\t\t\t\t\tTriggerMetadata: map[string]string{\n\t\t\t\t\t\t\"url\":                 \"http://selenium-hub:4444/graphql\",\n\t\t\t\t\t\t\"browserName\":         \"chrome\",\n\t\t\t\t\t\t\"browserVersion\":      \"91.0\",\n\t\t\t\t\t\t\"unsafeSsl\":           \"true\",\n\t\t\t\t\t\t\"activationThreshold\": \"10\",\n\t\t\t\t\t\t\"platformName\":        \"Windows 11\",\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t\twantErr: false,\n\t\t\twant: &seleniumGridScalerMetadata{\n\t\t\t\tURL:                    \"http://selenium-hub:4444/graphql\",\n\t\t\t\tBrowserName:            \"chrome\",\n\t\t\t\tSessionBrowserName:     \"chrome\",\n\t\t\t\tTargetValue:            1,\n\t\t\t\tActivationThreshold:    10,\n\t\t\t\tBrowserVersion:         \"91.0\",\n\t\t\t\tUnsafeSsl:              true,\n\t\t\t\tPlatformName:           \"Windows 11\",\n\t\t\t\tNodeMaxSessions:        1,\n\t\t\t\tEnableManagedDownloads: true,\n\t\t\t\tCapabilities:           \"\",\n\t\t\t},\n\t\t},\n\t\t{\n\t\t\tname: \"valid url, browsername, unsafeSsl, activationThreshold, nodeMaxSessions and platformName with trigger auth params should return metadata\",\n\t\t\targs: args{\n\t\t\t\tconfig: &scalersconfig.ScalerConfig{\n\t\t\t\t\tTriggerMetadata: map[string]string{\n\t\t\t\t\t\t\"url\":                 \"http://selenium-hub:4444/graphql\",\n\t\t\t\t\t\t\"browserName\":         \"chrome\",\n\t\t\t\t\t\t\"browserVersion\":      \"91.0\",\n\t\t\t\t\t\t\"unsafeSsl\":           \"true\",\n\t\t\t\t\t\t\"activationThreshold\": \"10\",\n\t\t\t\t\t\t\"platformName\":        \"Windows 11\",\n\t\t\t\t\t\t\"nodeMaxSessions\":     \"3\",\n\t\t\t\t\t},\n\t\t\t\t\tAuthParams: map[string]string{\n\t\t\t\t\t\t\"username\": \"user\",\n\t\t\t\t\t\t\"password\": \"password\",\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t\twantErr: false,\n\t\t\twant: &seleniumGridScalerMetadata{\n\t\t\t\tURL:                    \"http://selenium-hub:4444/graphql\",\n\t\t\t\tUsername:               \"user\",\n\t\t\t\tPassword:               \"password\",\n\t\t\t\tBrowserName:            \"chrome\",\n\t\t\t\tSessionBrowserName:     \"chrome\",\n\t\t\t\tTargetValue:            1,\n\t\t\t\tActivationThreshold:    10,\n\t\t\t\tBrowserVersion:         \"91.0\",\n\t\t\t\tUnsafeSsl:              true,\n\t\t\t\tPlatformName:           \"Windows 11\",\n\t\t\t\tNodeMaxSessions:        3,\n\t\t\t\tEnableManagedDownloads: true,\n\t\t\t\tCapabilities:           \"\",\n\t\t\t},\n\t\t},\n\t\t{\n\t\t\tname: \"url in trigger auth param takes precedence over url in trigger metadata\",\n\t\t\targs: args{\n\t\t\t\tconfig: &scalersconfig.ScalerConfig{\n\t\t\t\t\tTriggerMetadata: map[string]string{\n\t\t\t\t\t\t\"url\":                 \"http://invalid.dns:4444/graphql\",\n\t\t\t\t\t\t\"browserName\":         \"chrome\",\n\t\t\t\t\t\t\"browserVersion\":      \"91.0\",\n\t\t\t\t\t\t\"unsafeSsl\":           \"true\",\n\t\t\t\t\t\t\"activationThreshold\": \"10\",\n\t\t\t\t\t\t\"platformName\":        \"Windows 11\",\n\t\t\t\t\t\t\"nodeMaxSessions\":     \"3\",\n\t\t\t\t\t},\n\t\t\t\t\tAuthParams: map[string]string{\n\t\t\t\t\t\t\"url\":      \"http://selenium-hub:4444/graphql\",\n\t\t\t\t\t\t\"username\": \"user\",\n\t\t\t\t\t\t\"password\": \"password\",\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t\twantErr: false,\n\t\t\twant: &seleniumGridScalerMetadata{\n\t\t\t\tURL:                    \"http://selenium-hub:4444/graphql\",\n\t\t\t\tUsername:               \"user\",\n\t\t\t\tPassword:               \"password\",\n\t\t\t\tBrowserName:            \"chrome\",\n\t\t\t\tSessionBrowserName:     \"chrome\",\n\t\t\t\tTargetValue:            1,\n\t\t\t\tActivationThreshold:    10,\n\t\t\t\tBrowserVersion:         \"91.0\",\n\t\t\t\tUnsafeSsl:              true,\n\t\t\t\tPlatformName:           \"Windows 11\",\n\t\t\t\tNodeMaxSessions:        3,\n\t\t\t\tEnableManagedDownloads: true,\n\t\t\t\tCapabilities:           \"\",\n\t\t\t},\n\t\t},\n\t\t{\n\t\t\tname: \"auth type is not Basic and access token is provided\",\n\t\t\targs: args{\n\t\t\t\tconfig: &scalersconfig.ScalerConfig{\n\t\t\t\t\tTriggerMetadata: map[string]string{\n\t\t\t\t\t\t\"url\":                 \"http://selenium-hub:4444/graphql\",\n\t\t\t\t\t\t\"browserName\":         \"chrome\",\n\t\t\t\t\t\t\"browserVersion\":      \"91.0\",\n\t\t\t\t\t\t\"unsafeSsl\":           \"true\",\n\t\t\t\t\t\t\"activationThreshold\": \"10\",\n\t\t\t\t\t\t\"platformName\":        \"Windows 11\",\n\t\t\t\t\t\t\"nodeMaxSessions\":     \"3\",\n\t\t\t\t\t},\n\t\t\t\t\tAuthParams: map[string]string{\n\t\t\t\t\t\t\"url\":         \"http://selenium-hub:4444/graphql\",\n\t\t\t\t\t\t\"authType\":    \"OAuth2\",\n\t\t\t\t\t\t\"accessToken\": \"my-access-token\",\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t\twantErr: false,\n\t\t\twant: &seleniumGridScalerMetadata{\n\t\t\t\tURL:                    \"http://selenium-hub:4444/graphql\",\n\t\t\t\tAuthType:               \"OAuth2\",\n\t\t\t\tAccessToken:            \"my-access-token\",\n\t\t\t\tBrowserName:            \"chrome\",\n\t\t\t\tSessionBrowserName:     \"chrome\",\n\t\t\t\tTargetValue:            1,\n\t\t\t\tActivationThreshold:    10,\n\t\t\t\tBrowserVersion:         \"91.0\",\n\t\t\t\tUnsafeSsl:              true,\n\t\t\t\tPlatformName:           \"Windows 11\",\n\t\t\t\tNodeMaxSessions:        3,\n\t\t\t\tEnableManagedDownloads: true,\n\t\t\t\tCapabilities:           \"\",\n\t\t\t},\n\t\t},\n\t\t{\n\t\t\tname: \"authenticating with bearer access token\",\n\t\t\targs: args{\n\t\t\t\tconfig: &scalersconfig.ScalerConfig{\n\t\t\t\t\tTriggerMetadata: map[string]string{\n\t\t\t\t\t\t\"browserName\":         \"chrome\",\n\t\t\t\t\t\t\"browserVersion\":      \"91.0\",\n\t\t\t\t\t\t\"unsafeSsl\":           \"true\",\n\t\t\t\t\t\t\"activationThreshold\": \"10\",\n\t\t\t\t\t\t\"platformName\":        \"Windows 11\",\n\t\t\t\t\t\t\"nodeMaxSessions\":     \"3\",\n\t\t\t\t\t},\n\t\t\t\t\tAuthParams: map[string]string{\n\t\t\t\t\t\t\"url\":         \"http://selenium-hub:4444/graphql\",\n\t\t\t\t\t\t\"authType\":    \"Bearer\",\n\t\t\t\t\t\t\"accessToken\": \"my-access-token\",\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t\twantErr: false,\n\t\t\twant: &seleniumGridScalerMetadata{\n\t\t\t\tURL:                    \"http://selenium-hub:4444/graphql\",\n\t\t\t\tAuthType:               \"Bearer\",\n\t\t\t\tAccessToken:            \"my-access-token\",\n\t\t\t\tBrowserName:            \"chrome\",\n\t\t\t\tSessionBrowserName:     \"chrome\",\n\t\t\t\tTargetValue:            1,\n\t\t\t\tActivationThreshold:    10,\n\t\t\t\tBrowserVersion:         \"91.0\",\n\t\t\t\tUnsafeSsl:              true,\n\t\t\t\tPlatformName:           \"Windows 11\",\n\t\t\t\tNodeMaxSessions:        3,\n\t\t\t\tEnableManagedDownloads: true,\n\t\t\t\tCapabilities:           \"\",\n\t\t\t},\n\t\t},\n\t}\n\tfor _, tt := range tests {\n\t\tt.Run(tt.name, func(t *testing.T) {\n\t\t\tgot, err := parseSeleniumGridScalerMetadata(tt.args.config)\n\t\t\tif (err != nil) != tt.wantErr {\n\t\t\t\tt.Errorf(\"parseSeleniumGridScalerMetadata() error = %v, wantErr %v\", err, tt.wantErr)\n\t\t\t\treturn\n\t\t\t}\n\t\t\tif !reflect.DeepEqual(got, tt.want) {\n\t\t\t\tt.Errorf(\"parseSeleniumGridScalerMetadata() = %v, want %v\", got, tt.want)\n\t\t\t}\n\t\t})\n\t}\n}\n"
  },
  {
    "path": "Base/Dockerfile",
    "content": "FROM ubuntu:noble@sha256:186072bba1b2f436cbb91ef2567abca677337cfc786c86e107d25b7072feef0c\nARG AUTHORS=SeleniumHQ\nLABEL authors=\"${AUTHORS} <docker-selenium@seleniumhq.org>\"\nLABEL org.opencontainers.image.source=\"https://github.com/${AUTHORS}/docker-selenium\"\n\n# Arguments to define the version of dependencies to download\nARG VERSION\nARG RELEASE=selenium-${VERSION}\n# Default value should be aligned with upstream Selenium (https://github.com/SeleniumHQ/selenium/blob/trunk/MODULE.bazel)\nARG OPENTELEMETRY_VERSION=latest.release\nARG GRPC_VERSION=latest.release\nARG NETTY_VERSION=latest.release\nARG CS_VERSION=2.1.25-M23\nARG ENVSUBST_VERSION=1.5.0\nARG CURL_VERSION=8.18.0\nARG PYTHON_VERSION=3.14\n\n#Arguments to define the user running Selenium\nARG SEL_USER=seluser\nARG SEL_GROUP=${SEL_USER}\nARG HOME=/home/${SEL_USER}\nARG UID=1200\nARG GID=1201\nARG TZ=\"UTC\"\nARG JRE_VERSION=21\nARG TARGETARCH\nARG TARGETVARIANT\n\nUSER root\n\nENV DEBIAN_FRONTEND=noninteractive \\\n    # No interactive frontend during docker build\n    DEBCONF_NONINTERACTIVE_SEEN=true \\\n    SEL_USER=${SEL_USER} \\\n    SEL_UID=${UID} \\\n    SEL_GID=${GID} \\\n    HOME=${HOME} \\\n    TZ=${TZ} \\\n    SEL_DOWNLOAD_DIR=${HOME}/Downloads \\\n    VIDEO_FOLDER=\"/videos\" \\\n    # Path to the Configfile\n    CONFIG_FILE=\"/opt/selenium/config.toml\" \\\n    VENV_PATH=${HOME}/venv\n\n#========================\n# Miscellaneous packages\n# Includes minimal runtime used for executing non GUI Java programs\n#========================\n#RUN echo \"deb [arch=amd64] http://archive.ubuntu.com/ubuntu noble main restricted universe multiverse\\n\" > /etc/apt/sources.list \\\n#    && echo \"deb-src [arch=amd64] http://archive.ubuntu.com/ubuntu noble main restricted universe multiverse\\n\" >> /etc/apt/sources.list \\\n#    && echo \"deb [arch=arm64] http://ports.ubuntu.com/ubuntu-ports noble main restricted universe multiverse\" >> /etc/apt/sources.list \\\n#    && echo \"deb-src [arch=arm64] http://ports.ubuntu.com/ubuntu-ports noble main restricted universe multiverse\" >> /etc/apt/sources.list\n\nRUN apt-get -qqy update \\\n  && apt-get upgrade -yq \\\n  && apt-get -qqy --no-install-recommends install \\\n    acl \\\n    bzip2 \\\n    xz-utils \\\n    tzdata \\\n    sudo \\\n    unzip \\\n    wget \\\n    jq \\\n    gnupg2 \\\n    libnss3-tools \\\n    openjdk-${JRE_VERSION}-jdk-headless \\\n    ca-certificates \\\n    xterm \\\n  && rm -rf /var/lib/apt/lists/* /var/cache/apt/*\n\n#========================================\n# Add normal user and group without password sudo\n#========================================\nRUN --mount=type=secret,id=SEL_PASSWD \\\n  groupadd ${SEL_GROUP} \\\n         --gid ${SEL_GID} \\\n  && useradd ${SEL_USER} \\\n         --create-home \\\n         --gid ${SEL_GID} \\\n         --shell /bin/bash \\\n         --uid ${SEL_UID} \\\n  && usermod -a -G sudo ${SEL_USER} \\\n  && echo 'ALL ALL = (ALL) NOPASSWD: ALL' >> /etc/sudoers \\\n  && echo \"${SEL_USER}:$(cat /run/secrets/SEL_PASSWD)\" | chpasswd\n\n#========================================\n# Install Python for utilities\n#========================================\nENV PATH=\"$VENV_PATH/bin:$PATH\" \\\n    VIRTUAL_ENV=\"$VENV_PATH\"\n\nRUN gpg --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys F23C5A6CF475977595C89F51BA6932366A755776 \\\n    && gpg --export F23C5A6CF475977595C89F51BA6932366A755776 > /usr/share/keyrings/deadsnakes.pgp \\\n    && echo \"deb [signed-by=/usr/share/keyrings/deadsnakes.pgp] https://ppa.launchpadcontent.net/deadsnakes/ppa/ubuntu noble main\" | tee /etc/apt/sources.list.d/deadsnakes.list \\\n    && apt-get -qqy update \\\n    && apt-get upgrade -yq \\\n    && apt-get -qqy --no-install-recommends install python${PYTHON_VERSION} python${PYTHON_VERSION}-venv \\\n    && dpkg-divert --add --rename --divert /usr/bin/python3.distrib /usr/bin/python3 \\\n    && ln -sf /usr/bin/python${PYTHON_VERSION} /usr/bin/python3 \\\n    && rm -rf /var/lib/apt/lists/* /var/cache/apt/*\n\nRUN ARCH=$(if [ \"$(dpkg --print-architecture)\" = \"arm64\" ]; then echo \"aarch64\"; else echo \"$(dpkg --print-architecture)\"; fi) \\\n    && wget -q https://github.com/NDViet/static-curl/releases/download/${CURL_VERSION}/curl-$ARCH -O /usr/bin/curl \\\n    && chmod +x /usr/bin/curl \\\n    && curl --version\n\nRUN if [ \"${TARGETARCH}\" = \"arm\" ] && [ \"${TARGETVARIANT}\" = \"v7\" ]; then \\\n       export ARCH=armhf ; \\\n    else \\\n       export ARCH=$(dpkg --print-architecture) ; \\\n    fi \\\n  && sed -i 's/securerandom\\.source=file:\\/dev\\/random/securerandom\\.source=file:\\/dev\\/urandom/' /usr/lib/jvm/java-${JRE_VERSION}-openjdk-${ARCH}/conf/security/java.security \\\n#===================\n# Timezone settings\n# Possible alternative: https://github.com/docker/docker/issues/3359#issuecomment-32150214\n#===================\n  && ln -fs /usr/share/zoneinfo/${TZ} /etc/localtime && \\\n    dpkg-reconfigure -f noninteractive tzdata && \\\n    cat /etc/timezone \\\n#==========\n# Selenium & relaxing permissions for OpenShift and other non-sudo environments\n#==========\n  && mkdir -p /opt/selenium /opt/selenium/assets /opt/selenium/secrets /opt/selenium/logs /var/run/supervisor /var/log/supervisor ${SEL_DOWNLOAD_DIR} \\\n    ${HOME}/.mozilla ${HOME}/.vnc ${HOME}/.pki/nssdb ${VIDEO_FOLDER} \\\n  # NSSDB initialization with an empty password\n  && certutil -d sql:${HOME}/.pki/nssdb -N --empty-password \\\n  && touch ${CONFIG_FILE} \\\n  && chown -R ${SEL_USER}:${SEL_GROUP} /opt/selenium /var/run/supervisor /var/log/supervisor /etc/passwd ${HOME} ${VIDEO_FOLDER} \\\n  && chmod -R 775 /opt/selenium /var/run/supervisor /var/log/supervisor /etc/passwd ${HOME} ${VIDEO_FOLDER} \\\n  && wget --no-verbose https://github.com/${AUTHORS}/selenium/releases/download/${RELEASE}/selenium-server-${VERSION}.jar \\\n    -O /opt/selenium/selenium-server.jar \\\n  && chgrp -R 0 /opt/selenium ${HOME} ${VIDEO_FOLDER} /opt/selenium/assets /var/run/supervisor /var/log/supervisor \\\n  && chmod -R g=u /opt/selenium ${HOME} ${VIDEO_FOLDER} /opt/selenium/assets /var/run/supervisor /var/log/supervisor \\\n  && setfacl -Rm u:${SEL_USER}:rwx /opt /opt/selenium ${HOME} ${VIDEO_FOLDER} /opt/selenium/assets /var/run/supervisor /var/log/supervisor \\\n  && setfacl -Rm g:${SEL_GROUP}:rwx /opt /opt/selenium ${HOME} ${VIDEO_FOLDER} /opt/selenium/assets /var/run/supervisor /var/log/supervisor \\\n#=====\n# Download observability related OpenTelemetry jars and make them available in a separate directory\n# so that the container can skip downloading them everytime it comes up\n#===== \\\n  && if [ `arch` = \"aarch64\" ] || [ `arch` = \"x86_64\" ]; then \\\n        curl -fL https://github.com/coursier/coursier/releases/download/v${CS_VERSION}/coursier.jar > /tmp/cs \\\n        && chmod +x /tmp/cs \\\n        && mkdir -p /external_jars \\\n        && chmod -R 775 /external_jars ; \\\n     fi \\\n  && if [ -f \"/tmp/cs\" ]; then \\\n        java -jar /tmp/cs fetch --classpath --cache /external_jars \\\n        io.opentelemetry:opentelemetry-exporter-otlp:${OPENTELEMETRY_VERSION} \\\n        io.grpc:grpc-netty:${GRPC_VERSION} \\\n        io.netty:netty-handler-proxy:${NETTY_VERSION} \\\n        io.netty:netty-parent:${NETTY_VERSION} \\\n        io.netty:netty-codec-http:${NETTY_VERSION} \\\n        io.netty:netty-codec-http2:${NETTY_VERSION} \\\n        io.netty:netty-codec:${NETTY_VERSION} \\\n        > /external_jars/.classpath.txt \\\n        && chmod 664 /external_jars/.classpath.txt ; \\\n     fi \\\n  && rm -fr /root/.cache/* \\\n  # (Note that .bashrc is only executed in interactive bash shells.)\n  && echo 'if [[ $(ulimit -n) -gt 200000 ]]; then echo \"WARNING: Very high value reported by \\\"ulimit -n\\\". Consider passing \\\"--ulimit nofile=32768\\\" to \\\"docker run\\\".\"; fi' >> ${HOME}/.bashrc\n\n#======================================\n# Add Grid check script\n#======================================\nCOPY --chown=\"${SEL_UID}:${SEL_GID}\" check-grid.sh entry_point.sh configs/node/nodeGridUrl.sh configs/node/nodePreStop.sh handle_heap_dump.sh /opt/bin/\nCOPY --chown=\"${SEL_UID}:${SEL_GID}\" mask /usr/local/bin/\nRUN chmod +x /opt/bin/*.sh /usr/local/bin/mask\n\n#======================================\n# Add Supervisor configuration file\n#======================================\nCOPY supervisord.conf /etc\n\n#===================================================\n# Add the default self-signed certificate to the bundle CA\n#===================================================\n#ARG CERT_TRUST_ATTR=TCu,Cu,Tu\nCOPY --chown=\"${SEL_UID}:${SEL_GID}\" certs/add-cert-helper.sh certs/add-jks-helper.sh /opt/bin/\n#COPY --chown=\"${SEL_UID}:${SEL_GID}\" certs/tls.crt certs/tls.key certs/server.jks certs/server.pass /opt/selenium/secrets/\n\n#===================================================\n# Add envsubst binary\n#===================================================\nRUN ARCH=$(if [ \"$(dpkg --print-architecture)\" = \"amd64\" ]; then echo \"x86_64\"; else echo \"$(dpkg --print-architecture)\"; fi) \\\n    && curl -fsSL https://github.com/ndviet/envsubst/releases/download/v${ENVSUBST_VERSION}/envsubst-$(uname -s)-${ARCH} -o envsubst \\\n    && chmod +x envsubst \\\n    && mv envsubst /usr/local/bin \\\n    && ln -sf /usr/local/bin/envsubst /usr/bin/envsubst\n\n#===================================================\n# Run the following commands as non-privileged user\n#===================================================\nUSER ${SEL_UID}:${SEL_GID}\n\nRUN python3 -m venv $VENV_PATH \\\n    && $VENV_PATH/bin/python3 -m pip install --upgrade pip psutil requests pyzmq \\\n    && wget -q https://github.com/Supervisor/supervisor/archive/refs/heads/main.zip -O /tmp/supervisor.zip \\\n    && unzip /tmp/supervisor.zip -d /tmp \\\n    && cd /tmp/supervisor-main \\\n    && $VENV_PATH/bin/python3 -m pip install . \\\n    && rm -rf /tmp/supervisor.zip /tmp/supervisor-main \\\n    && python3 --version \\\n    && echo \"source $VENV_PATH/bin/activate\" >> ${HOME}/.bashrc\n\n#RUN /opt/bin/add-jks-helper.sh -d /opt/selenium/secrets \\\n#    && /opt/bin/add-cert-helper.sh -d /opt/selenium/secrets ${CERT_TRUST_ATTR}\n#======================================\n# Configure environement\n#======================================\n    # Boolean value, maps \"--bind-host\"\nENV SE_BIND_HOST=\"false\" \\\n    SE_SERVER_PROTOCOL=\"http\" \\\n    # Boolean value, maps \"--reject-unsupported-caps\"\n    SE_REJECT_UNSUPPORTED_CAPS=\"false\" \\\n    SE_DISTRIBUTOR_SLOT_SELECTOR=\"\" \\\n    SE_OTEL_JAVA_GLOBAL_AUTOCONFIGURE_ENABLED=\"true\" \\\n    SE_OTEL_TRACES_EXPORTER=\"otlp\" \\\n    SE_SUPERVISORD_LOG_LEVEL=\"info\" \\\n    SE_SUPERVISORD_CHILD_LOG_DIR=\"/tmp\" \\\n    SE_SUPERVISORD_LOG_FILE=\"/tmp/supervisord.log\" \\\n    SE_SUPERVISORD_PID_FILE=\"/tmp/supervisord.pid\" \\\n    SE_SUPERVISORD_AUTO_RESTART=\"true\" \\\n    SE_SUPERVISORD_START_RETRIES=\"5\" \\\n    SE_SUPERVISORD_UNIX_SERVER_PASSWORD=\"secret\" \\\n    SE_LOG_TIMESTAMP_FORMAT=\"%Y-%m-%d %H:%M:%S,%3N\" \\\n    SE_LOG_LEVEL=\"INFO\" \\\n    SE_HTTP_LOGS=\"false\" \\\n    SE_STRUCTURED_LOGS=\"false\" \\\n    SE_PLAIN_LOGS=\"true\" \\\n    SE_ENABLE_TRACING=\"true\" \\\n    SE_ENABLE_TLS=\"false\" \\\n    SE_JAVA_OPTS_DEFAULT=\"\" \\\n    SE_JAVA_HEAP_DUMP=\"false\" \\\n    SE_JAVA_HTTPCLIENT_VERSION=\"HTTP_1_1\" \\\n    SE_JAVA_SSL_TRUST_STORE=\"/opt/selenium/secrets/server.jks\" \\\n    SE_JAVA_SSL_TRUST_STORE_PASSWORD=\"/opt/selenium/secrets/server.pass\" \\\n    SE_JAVA_DISABLE_HOSTNAME_VERIFICATION=\"true\" \\\n    SE_HTTPS_CERTIFICATE=\"/opt/selenium/secrets/tls.crt\" \\\n    SE_HTTPS_PRIVATE_KEY=\"/opt/selenium/secrets/tls.key\"\n\nCMD [\"/opt/bin/entry_point.sh\"]\n"
  },
  {
    "path": "Base/check-grid.sh",
    "content": "#!/usr/bin/env bash\n# check-grid.sh\n\nset -e\n\nHOST=\"localhost\"\nPORT=\"4444\"\ndeclare -a extra_args\nif [ -n \"${SE_ROUTER_USERNAME}\" ] && [ -n \"${SE_ROUTER_PASSWORD}\" ]; then\n  BASIC_AUTH=\"$(echo -en \"${SE_ROUTER_USERNAME}:${SE_ROUTER_PASSWORD}\" | base64 -w0)\"\n  extra_args=(-H \"Authorization: Basic ${BASIC_AUTH}\")\nfi\n\nechoerr() { echo \"$@\" 1>&2; }\n\n# process arguments\nwhile [[ $# -gt 0 ]]; do\n  case \"$1\" in\n  --host)\n    HOST=${2:-\"localhost\"}\n    shift 2\n    ;;\n  --port)\n    PORT=${2:-\"4444\"}\n    shift 2\n    ;;\n  *)\n    echoerr \"Unknown argument: $1\"\n    exit 1\n    ;;\n  esac\ndone\n\ncurl -skSL --noproxy \"*\" \"${extra_args[@]}\" ${SE_SERVER_PROTOCOL:-\"http\"}://${HOST}:${PORT}/wd/hub/status | jq -r '.value.ready' | grep -q \"true\" || exit 1\n"
  },
  {
    "path": "Base/entry_point.sh",
    "content": "#!/usr/bin/env bash\n\nNODE_CONFIG_DIRECTORY=${NODE_CONFIG_DIRECTORY:-\"/opt/bin\"}\n#==============================================\n# OpenShift or non-sudo environments support\n# https://docs.openshift.com/container-platform/3.11/creating_images/guidelines.html#openshift-specific-guidelines\n#==============================================\n\nif ! whoami &>/dev/null; then\n  if [ -w /etc/passwd ]; then\n    echo \"${USER_NAME:-default}:x:$(id -u):0:${USER_NAME:-default} user:${HOME}:/sbin/nologin\" >>/etc/passwd\n  fi\nfi\n\nif [ -n \"${VIRTUAL_ENV}\" ]; then\n  echo \"Virtual environment detected at ${VIRTUAL_ENV}, activating...\"\n  source ${VIRTUAL_ENV}/bin/activate\n  python3 --version\nfi\n\nsupervisord --configuration /etc/supervisord.conf &\n\nSUPERVISOR_PID=$!\n\nfunction shutdown {\n  echo \"Trapped SIGTERM/SIGINT/x so shutting down supervisord...\"\n  if [ \"${SE_NODE_GRACEFUL_SHUTDOWN}\" = \"true\" ]; then\n    echo \"Waiting for Selenium Node to shutdown gracefully...\"\n    bash ${NODE_CONFIG_DIRECTORY}/nodePreStop.sh\n  fi\n  if [ -n \"${SE_VIDEO_CONTAINER_NAME}\" ]; then\n    # For K8s, when video sidecar container and shareProcessNamespace are enabled in pod spec\n    echo \"Shutting down ${SE_VIDEO_CONTAINER_NAME} container...\"\n    pkill -f \"${SE_VIDEO_CONTAINER_NAME}\"\n  fi\n  kill -s SIGTERM ${SUPERVISOR_PID}\n  wait ${SUPERVISOR_PID}\n  echo \"Shutdown complete\"\n}\n\ntrap shutdown SIGTERM SIGINT\nwait ${SUPERVISOR_PID}\n"
  },
  {
    "path": "Base/handle_heap_dump.sh",
    "content": "#!/usr/bin/env bash\n\nSELENIUM_SERVER_PID=\"$(ps -ef | grep \"selenium-server.jar\" | grep -v grep | awk '{print $2}')\"\nLOG_DIR=$1\nTIMESTAMP=$(date +%s)\n\nif [ -n \"${SELENIUM_SERVER_PID}\" ]; then\n  filename=\"$LOG_DIR/dump_pid${SELENIUM_SERVER_PID}_${TIMESTAMP}.hprof\"\n  if ps -p \"${SELENIUM_SERVER_PID}\" >/dev/null; then\n    echo \"Server process is still running. Create heap dump by using jmap\"\n    jmap -dump:live,format=b,file=\"${filename}\" \"${SELENIUM_SERVER_PID}\"\n  else\n    filename_source=\"$LOG_DIR/java_pid${SELENIUM_SERVER_PID}.hprof\"\n    if [ -f \"$filename_source\" ]; then\n      echo \"Server is not running. Check HeapDumpOnOutOfMemoryError created\"\n      mv \"$filename_source\" \"$filename\"\n    else\n      echo \"Server is not running. No heap dump is created\"\n    fi\n  fi\nfi\n"
  },
  {
    "path": "Base/mask",
    "content": "#!/usr/bin/env bash\n\nSE_MASK_SECRETS_MIN_LENGTH=${SE_MASK_SECRETS_MIN_LENGTH:-3}\nSE_MASK_SECRETS_KEEP_LAST=${SE_MASK_SECRETS_KEEP_LAST:-0}\nif [ \"${SE_MASK_SECRETS:-true}\" = \"true\" ]; then\n    n=${SE_MASK_SECRETS_KEEP_LAST}\n    [[ ${#1} -le ${SE_MASK_SECRETS_MIN_LENGTH} ]] && n=$(( ${#1} - ${SE_MASK_SECRETS_MIN_LENGTH} ))\n    a=\"${1:0:${#1}-n}\"\n    a=\"${a:0:${SE_MASK_SECRETS_MIN_LENGTH}}\"\n    b=\"${1:${#1}-n}\"\n    printf \"%s%s\" \"${a//?/*}\" \"$b\"\nelse\n    printf \"%s\" \"$1\"\nfi\n"
  },
  {
    "path": "Base/supervisord.conf",
    "content": "; Documentation of this file format -> http://supervisord.org/configuration.html\n\n[supervisord]\nchildlogdir=%(ENV_SE_SUPERVISORD_CHILD_LOG_DIR)s   ; ('AUTO' child log dir, default $TEMP)\nlogfile=%(ENV_SE_SUPERVISORD_LOG_FILE)s       ; (main log file;default $CWD/supervisord.log)\nlogfile_maxbytes=50MB                         ; (max main logfile bytes b4 rotation;default 50MB)\nlogfile_backups=10                            ; (num of main logfile rotation backups;default 10)\nloglevel=%(ENV_SE_SUPERVISORD_LOG_LEVEL)s     ; (log level;default info; others: debug,warn,trace) http://supervisord.org/logging.html\npidfile=%(ENV_SE_SUPERVISORD_PID_FILE)s       ; (supervisord pidfile;default supervisord.pid)\nnodaemon=true                                 ; (start in foreground if true;default false)\nminfds=1024                                   ; (min. avail startup file descriptors;default 1024)\nminprocs=200                                  ; (min. avail process descriptors;default 200)\n\n[unix_http_server]\nfile=/tmp/supervisor.sock                     ; (the path to the socket file)\nchmod=0700\nusername=%(ENV_SEL_USER)s\npassword=%(ENV_SE_SUPERVISORD_UNIX_SERVER_PASSWORD)s\n\n; the below section must remain in the config file for RPC\n; (supervisorctl/web interface) to work, additional interfaces may be\n; added by defining them in separate rpcinterface: sections\n[rpcinterface:supervisor]\nsupervisor.rpcinterface_factory = supervisor.rpcinterface:make_main_rpcinterface\n\n[supervisorctl]\nserverurl=unix:///tmp/supervisor.sock         ; use a unix:// URL  for a unix socket\nusername=%(ENV_SEL_USER)s\npassword=%(ENV_SE_SUPERVISORD_UNIX_SERVER_PASSWORD)s\n\n[include]\nfiles = /etc/supervisor/conf.d/*.conf\n"
  },
  {
    "path": "CHANGELOG/4.41.0/chrome-for-testing_113.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.41.0 20260222 selenium false chrome-for-testing true\nTagging images for browser chrome-for-testing, version 4.41.0, build date 20260222, namespace selenium\nSelenium Grid version -> 4.41.0-20260222\nChrome for Testing version -> 113.0.5672.63\nShort Chrome for Testing version -> 113.0\nChromeDriver version -> 113.0.5672.63\nShort ChromeDriver version -> 113.0\nTagged selenium/node-chrome-for-testing:113.0.5672.63-chromedriver-113.0.5672.63-grid-4.41.0-20260222\nTagged selenium/standalone-chrome-for-testing:113.0.5672.63-chromedriver-113.0.5672.63-grid-4.41.0-20260222\nTagged selenium/node-chrome-for-testing:113.0.5672.63-chromedriver-113.0.5672.63-20260222\nTagged selenium/standalone-chrome-for-testing:113.0.5672.63-chromedriver-113.0.5672.63-20260222\nTagged selenium/node-chrome-for-testing:113.0.5672.63-20260222\nTagged selenium/standalone-chrome-for-testing:113.0.5672.63-20260222\nTagged selenium/node-chrome-for-testing:113.0-chromedriver-113.0-grid-4.41.0-20260222\nTagged selenium/standalone-chrome-for-testing:113.0-chromedriver-113.0-grid-4.41.0-20260222\nTagged selenium/node-chrome-for-testing:113.0-chromedriver-113.0-20260222\nTagged selenium/standalone-chrome-for-testing:113.0-chromedriver-113.0-20260222\nTagged selenium/node-chrome-for-testing:113.0-20260222\nTagged selenium/standalone-chrome-for-testing:113.0-20260222\n```\n"
  },
  {
    "path": "CHANGELOG/4.41.0/chrome-for-testing_114.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.41.0 20260222 selenium false chrome-for-testing true\nTagging images for browser chrome-for-testing, version 4.41.0, build date 20260222, namespace selenium\nSelenium Grid version -> 4.41.0-20260222\nChrome for Testing version -> 114.0.5735.133\nShort Chrome for Testing version -> 114.0\nChromeDriver version -> 114.0.5735.90\nShort ChromeDriver version -> 114.0\nTagged selenium/node-chrome-for-testing:114.0.5735.133-chromedriver-114.0.5735.90-grid-4.41.0-20260222\nTagged selenium/standalone-chrome-for-testing:114.0.5735.133-chromedriver-114.0.5735.90-grid-4.41.0-20260222\nTagged selenium/node-chrome-for-testing:114.0.5735.133-chromedriver-114.0.5735.90-20260222\nTagged selenium/standalone-chrome-for-testing:114.0.5735.133-chromedriver-114.0.5735.90-20260222\nTagged selenium/node-chrome-for-testing:114.0.5735.133-20260222\nTagged selenium/standalone-chrome-for-testing:114.0.5735.133-20260222\nTagged selenium/node-chrome-for-testing:114.0-chromedriver-114.0-grid-4.41.0-20260222\nTagged selenium/standalone-chrome-for-testing:114.0-chromedriver-114.0-grid-4.41.0-20260222\nTagged selenium/node-chrome-for-testing:114.0-chromedriver-114.0-20260222\nTagged selenium/standalone-chrome-for-testing:114.0-chromedriver-114.0-20260222\nTagged selenium/node-chrome-for-testing:114.0-20260222\nTagged selenium/standalone-chrome-for-testing:114.0-20260222\n```\n"
  },
  {
    "path": "CHANGELOG/4.41.0/chrome-for-testing_115.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.41.0 20260222 selenium false chrome-for-testing true\nTagging images for browser chrome-for-testing, version 4.41.0, build date 20260222, namespace selenium\nSelenium Grid version -> 4.41.0-20260222\nChrome for Testing version -> 115.0.5790.170\nShort Chrome for Testing version -> 115.0\nChromeDriver version -> 115.0.5790.170\nShort ChromeDriver version -> 115.0\nTagged selenium/node-chrome-for-testing:115.0.5790.170-chromedriver-115.0.5790.170-grid-4.41.0-20260222\nTagged selenium/standalone-chrome-for-testing:115.0.5790.170-chromedriver-115.0.5790.170-grid-4.41.0-20260222\nTagged selenium/node-chrome-for-testing:115.0.5790.170-chromedriver-115.0.5790.170-20260222\nTagged selenium/standalone-chrome-for-testing:115.0.5790.170-chromedriver-115.0.5790.170-20260222\nTagged selenium/node-chrome-for-testing:115.0.5790.170-20260222\nTagged selenium/standalone-chrome-for-testing:115.0.5790.170-20260222\nTagged selenium/node-chrome-for-testing:115.0-chromedriver-115.0-grid-4.41.0-20260222\nTagged selenium/standalone-chrome-for-testing:115.0-chromedriver-115.0-grid-4.41.0-20260222\nTagged selenium/node-chrome-for-testing:115.0-chromedriver-115.0-20260222\nTagged selenium/standalone-chrome-for-testing:115.0-chromedriver-115.0-20260222\nTagged selenium/node-chrome-for-testing:115.0-20260222\nTagged selenium/standalone-chrome-for-testing:115.0-20260222\n```\n"
  },
  {
    "path": "CHANGELOG/4.41.0/chrome-for-testing_116.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.41.0 20260222 selenium false chrome-for-testing true\nTagging images for browser chrome-for-testing, version 4.41.0, build date 20260222, namespace selenium\nSelenium Grid version -> 4.41.0-20260222\nChrome for Testing version -> 116.0.5845.96\nShort Chrome for Testing version -> 116.0\nChromeDriver version -> 116.0.5845.96\nShort ChromeDriver version -> 116.0\nTagged selenium/node-chrome-for-testing:116.0.5845.96-chromedriver-116.0.5845.96-grid-4.41.0-20260222\nTagged selenium/standalone-chrome-for-testing:116.0.5845.96-chromedriver-116.0.5845.96-grid-4.41.0-20260222\nTagged selenium/node-chrome-for-testing:116.0.5845.96-chromedriver-116.0.5845.96-20260222\nTagged selenium/standalone-chrome-for-testing:116.0.5845.96-chromedriver-116.0.5845.96-20260222\nTagged selenium/node-chrome-for-testing:116.0.5845.96-20260222\nTagged selenium/standalone-chrome-for-testing:116.0.5845.96-20260222\nTagged selenium/node-chrome-for-testing:116.0-chromedriver-116.0-grid-4.41.0-20260222\nTagged selenium/standalone-chrome-for-testing:116.0-chromedriver-116.0-grid-4.41.0-20260222\nTagged selenium/node-chrome-for-testing:116.0-chromedriver-116.0-20260222\nTagged selenium/standalone-chrome-for-testing:116.0-chromedriver-116.0-20260222\nTagged selenium/node-chrome-for-testing:116.0-20260222\nTagged selenium/standalone-chrome-for-testing:116.0-20260222\n```\n"
  },
  {
    "path": "CHANGELOG/4.41.0/chrome-for-testing_117.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.41.0 20260222 selenium false chrome-for-testing true\nTagging images for browser chrome-for-testing, version 4.41.0, build date 20260222, namespace selenium\nSelenium Grid version -> 4.41.0-20260222\nChrome for Testing version -> 117.0.5938.149\nShort Chrome for Testing version -> 117.0\nChromeDriver version -> 117.0.5938.149\nShort ChromeDriver version -> 117.0\nTagged selenium/node-chrome-for-testing:117.0.5938.149-chromedriver-117.0.5938.149-grid-4.41.0-20260222\nTagged selenium/standalone-chrome-for-testing:117.0.5938.149-chromedriver-117.0.5938.149-grid-4.41.0-20260222\nTagged selenium/node-chrome-for-testing:117.0.5938.149-chromedriver-117.0.5938.149-20260222\nTagged selenium/standalone-chrome-for-testing:117.0.5938.149-chromedriver-117.0.5938.149-20260222\nTagged selenium/node-chrome-for-testing:117.0.5938.149-20260222\nTagged selenium/standalone-chrome-for-testing:117.0.5938.149-20260222\nTagged selenium/node-chrome-for-testing:117.0-chromedriver-117.0-grid-4.41.0-20260222\nTagged selenium/standalone-chrome-for-testing:117.0-chromedriver-117.0-grid-4.41.0-20260222\nTagged selenium/node-chrome-for-testing:117.0-chromedriver-117.0-20260222\nTagged selenium/standalone-chrome-for-testing:117.0-chromedriver-117.0-20260222\nTagged selenium/node-chrome-for-testing:117.0-20260222\nTagged selenium/standalone-chrome-for-testing:117.0-20260222\n```\n"
  },
  {
    "path": "CHANGELOG/4.41.0/chrome-for-testing_118.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.41.0 20260222 selenium false chrome-for-testing true\nTagging images for browser chrome-for-testing, version 4.41.0, build date 20260222, namespace selenium\nSelenium Grid version -> 4.41.0-20260222\nChrome for Testing version -> 118.0.5993.70\nShort Chrome for Testing version -> 118.0\nChromeDriver version -> 118.0.5993.70\nShort ChromeDriver version -> 118.0\nTagged selenium/node-chrome-for-testing:118.0.5993.70-chromedriver-118.0.5993.70-grid-4.41.0-20260222\nTagged selenium/standalone-chrome-for-testing:118.0.5993.70-chromedriver-118.0.5993.70-grid-4.41.0-20260222\nTagged selenium/node-chrome-for-testing:118.0.5993.70-chromedriver-118.0.5993.70-20260222\nTagged selenium/standalone-chrome-for-testing:118.0.5993.70-chromedriver-118.0.5993.70-20260222\nTagged selenium/node-chrome-for-testing:118.0.5993.70-20260222\nTagged selenium/standalone-chrome-for-testing:118.0.5993.70-20260222\nTagged selenium/node-chrome-for-testing:118.0-chromedriver-118.0-grid-4.41.0-20260222\nTagged selenium/standalone-chrome-for-testing:118.0-chromedriver-118.0-grid-4.41.0-20260222\nTagged selenium/node-chrome-for-testing:118.0-chromedriver-118.0-20260222\nTagged selenium/standalone-chrome-for-testing:118.0-chromedriver-118.0-20260222\nTagged selenium/node-chrome-for-testing:118.0-20260222\nTagged selenium/standalone-chrome-for-testing:118.0-20260222\n```\n"
  },
  {
    "path": "CHANGELOG/4.41.0/chrome-for-testing_119.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.41.0 20260222 selenium false chrome-for-testing true\nTagging images for browser chrome-for-testing, version 4.41.0, build date 20260222, namespace selenium\nSelenium Grid version -> 4.41.0-20260222\nChrome for Testing version -> 119.0.6045.105\nShort Chrome for Testing version -> 119.0\nChromeDriver version -> 119.0.6045.105\nShort ChromeDriver version -> 119.0\nTagged selenium/node-chrome-for-testing:119.0.6045.105-chromedriver-119.0.6045.105-grid-4.41.0-20260222\nTagged selenium/standalone-chrome-for-testing:119.0.6045.105-chromedriver-119.0.6045.105-grid-4.41.0-20260222\nTagged selenium/node-chrome-for-testing:119.0.6045.105-chromedriver-119.0.6045.105-20260222\nTagged selenium/standalone-chrome-for-testing:119.0.6045.105-chromedriver-119.0.6045.105-20260222\nTagged selenium/node-chrome-for-testing:119.0.6045.105-20260222\nTagged selenium/standalone-chrome-for-testing:119.0.6045.105-20260222\nTagged selenium/node-chrome-for-testing:119.0-chromedriver-119.0-grid-4.41.0-20260222\nTagged selenium/standalone-chrome-for-testing:119.0-chromedriver-119.0-grid-4.41.0-20260222\nTagged selenium/node-chrome-for-testing:119.0-chromedriver-119.0-20260222\nTagged selenium/standalone-chrome-for-testing:119.0-chromedriver-119.0-20260222\nTagged selenium/node-chrome-for-testing:119.0-20260222\nTagged selenium/standalone-chrome-for-testing:119.0-20260222\n```\n"
  },
  {
    "path": "CHANGELOG/4.41.0/chrome-for-testing_120.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.41.0 20260222 selenium false chrome-for-testing true\nTagging images for browser chrome-for-testing, version 4.41.0, build date 20260222, namespace selenium\nSelenium Grid version -> 4.41.0-20260222\nChrome for Testing version -> 120.0.6099.109\nShort Chrome for Testing version -> 120.0\nChromeDriver version -> 120.0.6099.109\nShort ChromeDriver version -> 120.0\nTagged selenium/node-chrome-for-testing:120.0.6099.109-chromedriver-120.0.6099.109-grid-4.41.0-20260222\nTagged selenium/standalone-chrome-for-testing:120.0.6099.109-chromedriver-120.0.6099.109-grid-4.41.0-20260222\nTagged selenium/node-chrome-for-testing:120.0.6099.109-chromedriver-120.0.6099.109-20260222\nTagged selenium/standalone-chrome-for-testing:120.0.6099.109-chromedriver-120.0.6099.109-20260222\nTagged selenium/node-chrome-for-testing:120.0.6099.109-20260222\nTagged selenium/standalone-chrome-for-testing:120.0.6099.109-20260222\nTagged selenium/node-chrome-for-testing:120.0-chromedriver-120.0-grid-4.41.0-20260222\nTagged selenium/standalone-chrome-for-testing:120.0-chromedriver-120.0-grid-4.41.0-20260222\nTagged selenium/node-chrome-for-testing:120.0-chromedriver-120.0-20260222\nTagged selenium/standalone-chrome-for-testing:120.0-chromedriver-120.0-20260222\nTagged selenium/node-chrome-for-testing:120.0-20260222\nTagged selenium/standalone-chrome-for-testing:120.0-20260222\n```\n"
  },
  {
    "path": "CHANGELOG/4.41.0/chrome-for-testing_121.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.41.0 20260222 selenium false chrome-for-testing true\nTagging images for browser chrome-for-testing, version 4.41.0, build date 20260222, namespace selenium\nSelenium Grid version -> 4.41.0-20260222\nChrome for Testing version -> 121.0.6167.184\nShort Chrome for Testing version -> 121.0\nChromeDriver version -> 121.0.6167.184\nShort ChromeDriver version -> 121.0\nTagged selenium/node-chrome-for-testing:121.0.6167.184-chromedriver-121.0.6167.184-grid-4.41.0-20260222\nTagged selenium/standalone-chrome-for-testing:121.0.6167.184-chromedriver-121.0.6167.184-grid-4.41.0-20260222\nTagged selenium/node-chrome-for-testing:121.0.6167.184-chromedriver-121.0.6167.184-20260222\nTagged selenium/standalone-chrome-for-testing:121.0.6167.184-chromedriver-121.0.6167.184-20260222\nTagged selenium/node-chrome-for-testing:121.0.6167.184-20260222\nTagged selenium/standalone-chrome-for-testing:121.0.6167.184-20260222\nTagged selenium/node-chrome-for-testing:121.0-chromedriver-121.0-grid-4.41.0-20260222\nTagged selenium/standalone-chrome-for-testing:121.0-chromedriver-121.0-grid-4.41.0-20260222\nTagged selenium/node-chrome-for-testing:121.0-chromedriver-121.0-20260222\nTagged selenium/standalone-chrome-for-testing:121.0-chromedriver-121.0-20260222\nTagged selenium/node-chrome-for-testing:121.0-20260222\nTagged selenium/standalone-chrome-for-testing:121.0-20260222\n```\n"
  },
  {
    "path": "CHANGELOG/4.41.0/chrome-for-testing_122.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.41.0 20260222 selenium false chrome-for-testing true\nTagging images for browser chrome-for-testing, version 4.41.0, build date 20260222, namespace selenium\nSelenium Grid version -> 4.41.0-20260222\nChrome for Testing version -> 122.0.6261.128\nShort Chrome for Testing version -> 122.0\nChromeDriver version -> 122.0.6261.128\nShort ChromeDriver version -> 122.0\nTagged selenium/node-chrome-for-testing:122.0.6261.128-chromedriver-122.0.6261.128-grid-4.41.0-20260222\nTagged selenium/standalone-chrome-for-testing:122.0.6261.128-chromedriver-122.0.6261.128-grid-4.41.0-20260222\nTagged selenium/node-chrome-for-testing:122.0.6261.128-chromedriver-122.0.6261.128-20260222\nTagged selenium/standalone-chrome-for-testing:122.0.6261.128-chromedriver-122.0.6261.128-20260222\nTagged selenium/node-chrome-for-testing:122.0.6261.128-20260222\nTagged selenium/standalone-chrome-for-testing:122.0.6261.128-20260222\nTagged selenium/node-chrome-for-testing:122.0-chromedriver-122.0-grid-4.41.0-20260222\nTagged selenium/standalone-chrome-for-testing:122.0-chromedriver-122.0-grid-4.41.0-20260222\nTagged selenium/node-chrome-for-testing:122.0-chromedriver-122.0-20260222\nTagged selenium/standalone-chrome-for-testing:122.0-chromedriver-122.0-20260222\nTagged selenium/node-chrome-for-testing:122.0-20260222\nTagged selenium/standalone-chrome-for-testing:122.0-20260222\n```\n"
  },
  {
    "path": "CHANGELOG/4.41.0/chrome-for-testing_123.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.41.0 20260222 selenium false chrome-for-testing true\nTagging images for browser chrome-for-testing, version 4.41.0, build date 20260222, namespace selenium\nSelenium Grid version -> 4.41.0-20260222\nChrome for Testing version -> 123.0.6312.122\nShort Chrome for Testing version -> 123.0\nChromeDriver version -> 123.0.6312.122\nShort ChromeDriver version -> 123.0\nTagged selenium/node-chrome-for-testing:123.0.6312.122-chromedriver-123.0.6312.122-grid-4.41.0-20260222\nTagged selenium/standalone-chrome-for-testing:123.0.6312.122-chromedriver-123.0.6312.122-grid-4.41.0-20260222\nTagged selenium/node-chrome-for-testing:123.0.6312.122-chromedriver-123.0.6312.122-20260222\nTagged selenium/standalone-chrome-for-testing:123.0.6312.122-chromedriver-123.0.6312.122-20260222\nTagged selenium/node-chrome-for-testing:123.0.6312.122-20260222\nTagged selenium/standalone-chrome-for-testing:123.0.6312.122-20260222\nTagged selenium/node-chrome-for-testing:123.0-chromedriver-123.0-grid-4.41.0-20260222\nTagged selenium/standalone-chrome-for-testing:123.0-chromedriver-123.0-grid-4.41.0-20260222\nTagged selenium/node-chrome-for-testing:123.0-chromedriver-123.0-20260222\nTagged selenium/standalone-chrome-for-testing:123.0-chromedriver-123.0-20260222\nTagged selenium/node-chrome-for-testing:123.0-20260222\nTagged selenium/standalone-chrome-for-testing:123.0-20260222\n```\n"
  },
  {
    "path": "CHANGELOG/4.41.0/chrome-for-testing_124.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.41.0 20260222 selenium false chrome-for-testing true\nTagging images for browser chrome-for-testing, version 4.41.0, build date 20260222, namespace selenium\nSelenium Grid version -> 4.41.0-20260222\nChrome for Testing version -> 124.0.6367.207\nShort Chrome for Testing version -> 124.0\nChromeDriver version -> 124.0.6367.207\nShort ChromeDriver version -> 124.0\nTagged selenium/node-chrome-for-testing:124.0.6367.207-chromedriver-124.0.6367.207-grid-4.41.0-20260222\nTagged selenium/standalone-chrome-for-testing:124.0.6367.207-chromedriver-124.0.6367.207-grid-4.41.0-20260222\nTagged selenium/node-chrome-for-testing:124.0.6367.207-chromedriver-124.0.6367.207-20260222\nTagged selenium/standalone-chrome-for-testing:124.0.6367.207-chromedriver-124.0.6367.207-20260222\nTagged selenium/node-chrome-for-testing:124.0.6367.207-20260222\nTagged selenium/standalone-chrome-for-testing:124.0.6367.207-20260222\nTagged selenium/node-chrome-for-testing:124.0-chromedriver-124.0-grid-4.41.0-20260222\nTagged selenium/standalone-chrome-for-testing:124.0-chromedriver-124.0-grid-4.41.0-20260222\nTagged selenium/node-chrome-for-testing:124.0-chromedriver-124.0-20260222\nTagged selenium/standalone-chrome-for-testing:124.0-chromedriver-124.0-20260222\nTagged selenium/node-chrome-for-testing:124.0-20260222\nTagged selenium/standalone-chrome-for-testing:124.0-20260222\n```\n"
  },
  {
    "path": "CHANGELOG/4.41.0/chrome-for-testing_125.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.41.0 20260222 selenium false chrome-for-testing true\nTagging images for browser chrome-for-testing, version 4.41.0, build date 20260222, namespace selenium\nSelenium Grid version -> 4.41.0-20260222\nChrome for Testing version -> 125.0.6422.141\nShort Chrome for Testing version -> 125.0\nChromeDriver version -> 125.0.6422.141\nShort ChromeDriver version -> 125.0\nTagged selenium/node-chrome-for-testing:125.0.6422.141-chromedriver-125.0.6422.141-grid-4.41.0-20260222\nTagged selenium/standalone-chrome-for-testing:125.0.6422.141-chromedriver-125.0.6422.141-grid-4.41.0-20260222\nTagged selenium/node-chrome-for-testing:125.0.6422.141-chromedriver-125.0.6422.141-20260222\nTagged selenium/standalone-chrome-for-testing:125.0.6422.141-chromedriver-125.0.6422.141-20260222\nTagged selenium/node-chrome-for-testing:125.0.6422.141-20260222\nTagged selenium/standalone-chrome-for-testing:125.0.6422.141-20260222\nTagged selenium/node-chrome-for-testing:125.0-chromedriver-125.0-grid-4.41.0-20260222\nTagged selenium/standalone-chrome-for-testing:125.0-chromedriver-125.0-grid-4.41.0-20260222\nTagged selenium/node-chrome-for-testing:125.0-chromedriver-125.0-20260222\nTagged selenium/standalone-chrome-for-testing:125.0-chromedriver-125.0-20260222\nTagged selenium/node-chrome-for-testing:125.0-20260222\nTagged selenium/standalone-chrome-for-testing:125.0-20260222\n```\n"
  },
  {
    "path": "CHANGELOG/4.41.0/chrome-for-testing_126.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.41.0 20260222 selenium false chrome-for-testing true\nTagging images for browser chrome-for-testing, version 4.41.0, build date 20260222, namespace selenium\nSelenium Grid version -> 4.41.0-20260222\nChrome for Testing version -> 126.0.6478.182\nShort Chrome for Testing version -> 126.0\nChromeDriver version -> 126.0.6478.182\nShort ChromeDriver version -> 126.0\nTagged selenium/node-chrome-for-testing:126.0.6478.182-chromedriver-126.0.6478.182-grid-4.41.0-20260222\nTagged selenium/standalone-chrome-for-testing:126.0.6478.182-chromedriver-126.0.6478.182-grid-4.41.0-20260222\nTagged selenium/node-chrome-for-testing:126.0.6478.182-chromedriver-126.0.6478.182-20260222\nTagged selenium/standalone-chrome-for-testing:126.0.6478.182-chromedriver-126.0.6478.182-20260222\nTagged selenium/node-chrome-for-testing:126.0.6478.182-20260222\nTagged selenium/standalone-chrome-for-testing:126.0.6478.182-20260222\nTagged selenium/node-chrome-for-testing:126.0-chromedriver-126.0-grid-4.41.0-20260222\nTagged selenium/standalone-chrome-for-testing:126.0-chromedriver-126.0-grid-4.41.0-20260222\nTagged selenium/node-chrome-for-testing:126.0-chromedriver-126.0-20260222\nTagged selenium/standalone-chrome-for-testing:126.0-chromedriver-126.0-20260222\nTagged selenium/node-chrome-for-testing:126.0-20260222\nTagged selenium/standalone-chrome-for-testing:126.0-20260222\n```\n"
  },
  {
    "path": "CHANGELOG/4.41.0/chrome-for-testing_127.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.41.0 20260222 selenium false chrome-for-testing true\nTagging images for browser chrome-for-testing, version 4.41.0, build date 20260222, namespace selenium\nSelenium Grid version -> 4.41.0-20260222\nChrome for Testing version -> 127.0.6533.119\nShort Chrome for Testing version -> 127.0\nChromeDriver version -> 127.0.6533.119\nShort ChromeDriver version -> 127.0\nTagged selenium/node-chrome-for-testing:127.0.6533.119-chromedriver-127.0.6533.119-grid-4.41.0-20260222\nTagged selenium/standalone-chrome-for-testing:127.0.6533.119-chromedriver-127.0.6533.119-grid-4.41.0-20260222\nTagged selenium/node-chrome-for-testing:127.0.6533.119-chromedriver-127.0.6533.119-20260222\nTagged selenium/standalone-chrome-for-testing:127.0.6533.119-chromedriver-127.0.6533.119-20260222\nTagged selenium/node-chrome-for-testing:127.0.6533.119-20260222\nTagged selenium/standalone-chrome-for-testing:127.0.6533.119-20260222\nTagged selenium/node-chrome-for-testing:127.0-chromedriver-127.0-grid-4.41.0-20260222\nTagged selenium/standalone-chrome-for-testing:127.0-chromedriver-127.0-grid-4.41.0-20260222\nTagged selenium/node-chrome-for-testing:127.0-chromedriver-127.0-20260222\nTagged selenium/standalone-chrome-for-testing:127.0-chromedriver-127.0-20260222\nTagged selenium/node-chrome-for-testing:127.0-20260222\nTagged selenium/standalone-chrome-for-testing:127.0-20260222\n```\n"
  },
  {
    "path": "CHANGELOG/4.41.0/chrome-for-testing_128.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.41.0 20260222 selenium false chrome-for-testing true\nTagging images for browser chrome-for-testing, version 4.41.0, build date 20260222, namespace selenium\nSelenium Grid version -> 4.41.0-20260222\nChrome for Testing version -> 128.0.6613.137\nShort Chrome for Testing version -> 128.0\nChromeDriver version -> 128.0.6613.137\nShort ChromeDriver version -> 128.0\nTagged selenium/node-chrome-for-testing:128.0.6613.137-chromedriver-128.0.6613.137-grid-4.41.0-20260222\nTagged selenium/standalone-chrome-for-testing:128.0.6613.137-chromedriver-128.0.6613.137-grid-4.41.0-20260222\nTagged selenium/node-chrome-for-testing:128.0.6613.137-chromedriver-128.0.6613.137-20260222\nTagged selenium/standalone-chrome-for-testing:128.0.6613.137-chromedriver-128.0.6613.137-20260222\nTagged selenium/node-chrome-for-testing:128.0.6613.137-20260222\nTagged selenium/standalone-chrome-for-testing:128.0.6613.137-20260222\nTagged selenium/node-chrome-for-testing:128.0-chromedriver-128.0-grid-4.41.0-20260222\nTagged selenium/standalone-chrome-for-testing:128.0-chromedriver-128.0-grid-4.41.0-20260222\nTagged selenium/node-chrome-for-testing:128.0-chromedriver-128.0-20260222\nTagged selenium/standalone-chrome-for-testing:128.0-chromedriver-128.0-20260222\nTagged selenium/node-chrome-for-testing:128.0-20260222\nTagged selenium/standalone-chrome-for-testing:128.0-20260222\n```\n"
  },
  {
    "path": "CHANGELOG/4.41.0/chrome-for-testing_129.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.41.0 20260222 selenium false chrome-for-testing true\nTagging images for browser chrome-for-testing, version 4.41.0, build date 20260222, namespace selenium\nSelenium Grid version -> 4.41.0-20260222\nChrome for Testing version -> 129.0.6668.100\nShort Chrome for Testing version -> 129.0\nChromeDriver version -> 129.0.6668.100\nShort ChromeDriver version -> 129.0\nTagged selenium/node-chrome-for-testing:129.0.6668.100-chromedriver-129.0.6668.100-grid-4.41.0-20260222\nTagged selenium/standalone-chrome-for-testing:129.0.6668.100-chromedriver-129.0.6668.100-grid-4.41.0-20260222\nTagged selenium/node-chrome-for-testing:129.0.6668.100-chromedriver-129.0.6668.100-20260222\nTagged selenium/standalone-chrome-for-testing:129.0.6668.100-chromedriver-129.0.6668.100-20260222\nTagged selenium/node-chrome-for-testing:129.0.6668.100-20260222\nTagged selenium/standalone-chrome-for-testing:129.0.6668.100-20260222\nTagged selenium/node-chrome-for-testing:129.0-chromedriver-129.0-grid-4.41.0-20260222\nTagged selenium/standalone-chrome-for-testing:129.0-chromedriver-129.0-grid-4.41.0-20260222\nTagged selenium/node-chrome-for-testing:129.0-chromedriver-129.0-20260222\nTagged selenium/standalone-chrome-for-testing:129.0-chromedriver-129.0-20260222\nTagged selenium/node-chrome-for-testing:129.0-20260222\nTagged selenium/standalone-chrome-for-testing:129.0-20260222\n```\n"
  },
  {
    "path": "CHANGELOG/4.41.0/chrome-for-testing_130.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.41.0 20260222 selenium false chrome-for-testing true\nTagging images for browser chrome-for-testing, version 4.41.0, build date 20260222, namespace selenium\nSelenium Grid version -> 4.41.0-20260222\nChrome for Testing version -> 130.0.6723.116\nShort Chrome for Testing version -> 130.0\nChromeDriver version -> 130.0.6723.116\nShort ChromeDriver version -> 130.0\nTagged selenium/node-chrome-for-testing:130.0.6723.116-chromedriver-130.0.6723.116-grid-4.41.0-20260222\nTagged selenium/standalone-chrome-for-testing:130.0.6723.116-chromedriver-130.0.6723.116-grid-4.41.0-20260222\nTagged selenium/node-chrome-for-testing:130.0.6723.116-chromedriver-130.0.6723.116-20260222\nTagged selenium/standalone-chrome-for-testing:130.0.6723.116-chromedriver-130.0.6723.116-20260222\nTagged selenium/node-chrome-for-testing:130.0.6723.116-20260222\nTagged selenium/standalone-chrome-for-testing:130.0.6723.116-20260222\nTagged selenium/node-chrome-for-testing:130.0-chromedriver-130.0-grid-4.41.0-20260222\nTagged selenium/standalone-chrome-for-testing:130.0-chromedriver-130.0-grid-4.41.0-20260222\nTagged selenium/node-chrome-for-testing:130.0-chromedriver-130.0-20260222\nTagged selenium/standalone-chrome-for-testing:130.0-chromedriver-130.0-20260222\nTagged selenium/node-chrome-for-testing:130.0-20260222\nTagged selenium/standalone-chrome-for-testing:130.0-20260222\n```\n"
  },
  {
    "path": "CHANGELOG/4.41.0/chrome-for-testing_131.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.41.0 20260222 selenium false chrome-for-testing true\nTagging images for browser chrome-for-testing, version 4.41.0, build date 20260222, namespace selenium\nSelenium Grid version -> 4.41.0-20260222\nChrome for Testing version -> 131.0.6778.264\nShort Chrome for Testing version -> 131.0\nChromeDriver version -> 131.0.6778.264\nShort ChromeDriver version -> 131.0\nTagged selenium/node-chrome-for-testing:131.0.6778.264-chromedriver-131.0.6778.264-grid-4.41.0-20260222\nTagged selenium/standalone-chrome-for-testing:131.0.6778.264-chromedriver-131.0.6778.264-grid-4.41.0-20260222\nTagged selenium/node-chrome-for-testing:131.0.6778.264-chromedriver-131.0.6778.264-20260222\nTagged selenium/standalone-chrome-for-testing:131.0.6778.264-chromedriver-131.0.6778.264-20260222\nTagged selenium/node-chrome-for-testing:131.0.6778.264-20260222\nTagged selenium/standalone-chrome-for-testing:131.0.6778.264-20260222\nTagged selenium/node-chrome-for-testing:131.0-chromedriver-131.0-grid-4.41.0-20260222\nTagged selenium/standalone-chrome-for-testing:131.0-chromedriver-131.0-grid-4.41.0-20260222\nTagged selenium/node-chrome-for-testing:131.0-chromedriver-131.0-20260222\nTagged selenium/standalone-chrome-for-testing:131.0-chromedriver-131.0-20260222\nTagged selenium/node-chrome-for-testing:131.0-20260222\nTagged selenium/standalone-chrome-for-testing:131.0-20260222\n```\n"
  },
  {
    "path": "CHANGELOG/4.41.0/chrome-for-testing_132.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.41.0 20260222 selenium false chrome-for-testing true\nTagging images for browser chrome-for-testing, version 4.41.0, build date 20260222, namespace selenium\nSelenium Grid version -> 4.41.0-20260222\nChrome for Testing version -> 132.0.6834.159\nShort Chrome for Testing version -> 132.0\nChromeDriver version -> 132.0.6834.159\nShort ChromeDriver version -> 132.0\nTagged selenium/node-chrome-for-testing:132.0.6834.159-chromedriver-132.0.6834.159-grid-4.41.0-20260222\nTagged selenium/standalone-chrome-for-testing:132.0.6834.159-chromedriver-132.0.6834.159-grid-4.41.0-20260222\nTagged selenium/node-chrome-for-testing:132.0.6834.159-chromedriver-132.0.6834.159-20260222\nTagged selenium/standalone-chrome-for-testing:132.0.6834.159-chromedriver-132.0.6834.159-20260222\nTagged selenium/node-chrome-for-testing:132.0.6834.159-20260222\nTagged selenium/standalone-chrome-for-testing:132.0.6834.159-20260222\nTagged selenium/node-chrome-for-testing:132.0-chromedriver-132.0-grid-4.41.0-20260222\nTagged selenium/standalone-chrome-for-testing:132.0-chromedriver-132.0-grid-4.41.0-20260222\nTagged selenium/node-chrome-for-testing:132.0-chromedriver-132.0-20260222\nTagged selenium/standalone-chrome-for-testing:132.0-chromedriver-132.0-20260222\nTagged selenium/node-chrome-for-testing:132.0-20260222\nTagged selenium/standalone-chrome-for-testing:132.0-20260222\n```\n"
  },
  {
    "path": "CHANGELOG/4.41.0/chrome-for-testing_133.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.41.0 20260222 selenium false chrome-for-testing true\nTagging images for browser chrome-for-testing, version 4.41.0, build date 20260222, namespace selenium\nSelenium Grid version -> 4.41.0-20260222\nChrome for Testing version -> 133.0.6943.141\nShort Chrome for Testing version -> 133.0\nChromeDriver version -> 133.0.6943.141\nShort ChromeDriver version -> 133.0\nTagged selenium/node-chrome-for-testing:133.0.6943.141-chromedriver-133.0.6943.141-grid-4.41.0-20260222\nTagged selenium/standalone-chrome-for-testing:133.0.6943.141-chromedriver-133.0.6943.141-grid-4.41.0-20260222\nTagged selenium/node-chrome-for-testing:133.0.6943.141-chromedriver-133.0.6943.141-20260222\nTagged selenium/standalone-chrome-for-testing:133.0.6943.141-chromedriver-133.0.6943.141-20260222\nTagged selenium/node-chrome-for-testing:133.0.6943.141-20260222\nTagged selenium/standalone-chrome-for-testing:133.0.6943.141-20260222\nTagged selenium/node-chrome-for-testing:133.0-chromedriver-133.0-grid-4.41.0-20260222\nTagged selenium/standalone-chrome-for-testing:133.0-chromedriver-133.0-grid-4.41.0-20260222\nTagged selenium/node-chrome-for-testing:133.0-chromedriver-133.0-20260222\nTagged selenium/standalone-chrome-for-testing:133.0-chromedriver-133.0-20260222\nTagged selenium/node-chrome-for-testing:133.0-20260222\nTagged selenium/standalone-chrome-for-testing:133.0-20260222\n```\n"
  },
  {
    "path": "CHANGELOG/4.41.0/chrome-for-testing_134.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.41.0 20260222 selenium false chrome-for-testing true\nTagging images for browser chrome-for-testing, version 4.41.0, build date 20260222, namespace selenium\nSelenium Grid version -> 4.41.0-20260222\nChrome for Testing version -> 134.0.6998.165\nShort Chrome for Testing version -> 134.0\nChromeDriver version -> 134.0.6998.165\nShort ChromeDriver version -> 134.0\nTagged selenium/node-chrome-for-testing:134.0.6998.165-chromedriver-134.0.6998.165-grid-4.41.0-20260222\nTagged selenium/standalone-chrome-for-testing:134.0.6998.165-chromedriver-134.0.6998.165-grid-4.41.0-20260222\nTagged selenium/node-chrome-for-testing:134.0.6998.165-chromedriver-134.0.6998.165-20260222\nTagged selenium/standalone-chrome-for-testing:134.0.6998.165-chromedriver-134.0.6998.165-20260222\nTagged selenium/node-chrome-for-testing:134.0.6998.165-20260222\nTagged selenium/standalone-chrome-for-testing:134.0.6998.165-20260222\nTagged selenium/node-chrome-for-testing:134.0-chromedriver-134.0-grid-4.41.0-20260222\nTagged selenium/standalone-chrome-for-testing:134.0-chromedriver-134.0-grid-4.41.0-20260222\nTagged selenium/node-chrome-for-testing:134.0-chromedriver-134.0-20260222\nTagged selenium/standalone-chrome-for-testing:134.0-chromedriver-134.0-20260222\nTagged selenium/node-chrome-for-testing:134.0-20260222\nTagged selenium/standalone-chrome-for-testing:134.0-20260222\n```\n"
  },
  {
    "path": "CHANGELOG/4.41.0/chrome-for-testing_135.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.41.0 20260222 selenium false chrome-for-testing true\nTagging images for browser chrome-for-testing, version 4.41.0, build date 20260222, namespace selenium\nSelenium Grid version -> 4.41.0-20260222\nChrome for Testing version -> 135.0.7049.114\nShort Chrome for Testing version -> 135.0\nChromeDriver version -> 135.0.7049.114\nShort ChromeDriver version -> 135.0\nTagged selenium/node-chrome-for-testing:135.0.7049.114-chromedriver-135.0.7049.114-grid-4.41.0-20260222\nTagged selenium/standalone-chrome-for-testing:135.0.7049.114-chromedriver-135.0.7049.114-grid-4.41.0-20260222\nTagged selenium/node-chrome-for-testing:135.0.7049.114-chromedriver-135.0.7049.114-20260222\nTagged selenium/standalone-chrome-for-testing:135.0.7049.114-chromedriver-135.0.7049.114-20260222\nTagged selenium/node-chrome-for-testing:135.0.7049.114-20260222\nTagged selenium/standalone-chrome-for-testing:135.0.7049.114-20260222\nTagged selenium/node-chrome-for-testing:135.0-chromedriver-135.0-grid-4.41.0-20260222\nTagged selenium/standalone-chrome-for-testing:135.0-chromedriver-135.0-grid-4.41.0-20260222\nTagged selenium/node-chrome-for-testing:135.0-chromedriver-135.0-20260222\nTagged selenium/standalone-chrome-for-testing:135.0-chromedriver-135.0-20260222\nTagged selenium/node-chrome-for-testing:135.0-20260222\nTagged selenium/standalone-chrome-for-testing:135.0-20260222\n```\n"
  },
  {
    "path": "CHANGELOG/4.41.0/chrome-for-testing_136.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.41.0 20260222 selenium false chrome-for-testing true\nTagging images for browser chrome-for-testing, version 4.41.0, build date 20260222, namespace selenium\nSelenium Grid version -> 4.41.0-20260222\nChrome for Testing version -> 136.0.7103.113\nShort Chrome for Testing version -> 136.0\nChromeDriver version -> 136.0.7103.113\nShort ChromeDriver version -> 136.0\nTagged selenium/node-chrome-for-testing:136.0.7103.113-chromedriver-136.0.7103.113-grid-4.41.0-20260222\nTagged selenium/standalone-chrome-for-testing:136.0.7103.113-chromedriver-136.0.7103.113-grid-4.41.0-20260222\nTagged selenium/node-chrome-for-testing:136.0.7103.113-chromedriver-136.0.7103.113-20260222\nTagged selenium/standalone-chrome-for-testing:136.0.7103.113-chromedriver-136.0.7103.113-20260222\nTagged selenium/node-chrome-for-testing:136.0.7103.113-20260222\nTagged selenium/standalone-chrome-for-testing:136.0.7103.113-20260222\nTagged selenium/node-chrome-for-testing:136.0-chromedriver-136.0-grid-4.41.0-20260222\nTagged selenium/standalone-chrome-for-testing:136.0-chromedriver-136.0-grid-4.41.0-20260222\nTagged selenium/node-chrome-for-testing:136.0-chromedriver-136.0-20260222\nTagged selenium/standalone-chrome-for-testing:136.0-chromedriver-136.0-20260222\nTagged selenium/node-chrome-for-testing:136.0-20260222\nTagged selenium/standalone-chrome-for-testing:136.0-20260222\n```\n"
  },
  {
    "path": "CHANGELOG/4.41.0/chrome-for-testing_137.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.41.0 20260222 selenium false chrome-for-testing true\nTagging images for browser chrome-for-testing, version 4.41.0, build date 20260222, namespace selenium\nSelenium Grid version -> 4.41.0-20260222\nChrome for Testing version -> 137.0.7151.119\nShort Chrome for Testing version -> 137.0\nChromeDriver version -> 137.0.7151.119\nShort ChromeDriver version -> 137.0\nTagged selenium/node-chrome-for-testing:137.0.7151.119-chromedriver-137.0.7151.119-grid-4.41.0-20260222\nTagged selenium/standalone-chrome-for-testing:137.0.7151.119-chromedriver-137.0.7151.119-grid-4.41.0-20260222\nTagged selenium/node-chrome-for-testing:137.0.7151.119-chromedriver-137.0.7151.119-20260222\nTagged selenium/standalone-chrome-for-testing:137.0.7151.119-chromedriver-137.0.7151.119-20260222\nTagged selenium/node-chrome-for-testing:137.0.7151.119-20260222\nTagged selenium/standalone-chrome-for-testing:137.0.7151.119-20260222\nTagged selenium/node-chrome-for-testing:137.0-chromedriver-137.0-grid-4.41.0-20260222\nTagged selenium/standalone-chrome-for-testing:137.0-chromedriver-137.0-grid-4.41.0-20260222\nTagged selenium/node-chrome-for-testing:137.0-chromedriver-137.0-20260222\nTagged selenium/standalone-chrome-for-testing:137.0-chromedriver-137.0-20260222\nTagged selenium/node-chrome-for-testing:137.0-20260222\nTagged selenium/standalone-chrome-for-testing:137.0-20260222\n```\n"
  },
  {
    "path": "CHANGELOG/4.41.0/chrome-for-testing_138.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.41.0 20260222 selenium false chrome-for-testing true\nTagging images for browser chrome-for-testing, version 4.41.0, build date 20260222, namespace selenium\nSelenium Grid version -> 4.41.0-20260222\nChrome for Testing version -> 138.0.7204.183\nShort Chrome for Testing version -> 138.0\nChromeDriver version -> 138.0.7204.183\nShort ChromeDriver version -> 138.0\nTagged selenium/node-chrome-for-testing:138.0.7204.183-chromedriver-138.0.7204.183-grid-4.41.0-20260222\nTagged selenium/standalone-chrome-for-testing:138.0.7204.183-chromedriver-138.0.7204.183-grid-4.41.0-20260222\nTagged selenium/node-chrome-for-testing:138.0.7204.183-chromedriver-138.0.7204.183-20260222\nTagged selenium/standalone-chrome-for-testing:138.0.7204.183-chromedriver-138.0.7204.183-20260222\nTagged selenium/node-chrome-for-testing:138.0.7204.183-20260222\nTagged selenium/standalone-chrome-for-testing:138.0.7204.183-20260222\nTagged selenium/node-chrome-for-testing:138.0-chromedriver-138.0-grid-4.41.0-20260222\nTagged selenium/standalone-chrome-for-testing:138.0-chromedriver-138.0-grid-4.41.0-20260222\nTagged selenium/node-chrome-for-testing:138.0-chromedriver-138.0-20260222\nTagged selenium/standalone-chrome-for-testing:138.0-chromedriver-138.0-20260222\nTagged selenium/node-chrome-for-testing:138.0-20260222\nTagged selenium/standalone-chrome-for-testing:138.0-20260222\n```\n"
  },
  {
    "path": "CHANGELOG/4.41.0/chrome-for-testing_139.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.41.0 20260222 selenium false chrome-for-testing true\nTagging images for browser chrome-for-testing, version 4.41.0, build date 20260222, namespace selenium\nSelenium Grid version -> 4.41.0-20260222\nChrome for Testing version -> 139.0.7258.154\nShort Chrome for Testing version -> 139.0\nChromeDriver version -> 139.0.7258.154\nShort ChromeDriver version -> 139.0\nTagged selenium/node-chrome-for-testing:139.0.7258.154-chromedriver-139.0.7258.154-grid-4.41.0-20260222\nTagged selenium/standalone-chrome-for-testing:139.0.7258.154-chromedriver-139.0.7258.154-grid-4.41.0-20260222\nTagged selenium/node-chrome-for-testing:139.0.7258.154-chromedriver-139.0.7258.154-20260222\nTagged selenium/standalone-chrome-for-testing:139.0.7258.154-chromedriver-139.0.7258.154-20260222\nTagged selenium/node-chrome-for-testing:139.0.7258.154-20260222\nTagged selenium/standalone-chrome-for-testing:139.0.7258.154-20260222\nTagged selenium/node-chrome-for-testing:139.0-chromedriver-139.0-grid-4.41.0-20260222\nTagged selenium/standalone-chrome-for-testing:139.0-chromedriver-139.0-grid-4.41.0-20260222\nTagged selenium/node-chrome-for-testing:139.0-chromedriver-139.0-20260222\nTagged selenium/standalone-chrome-for-testing:139.0-chromedriver-139.0-20260222\nTagged selenium/node-chrome-for-testing:139.0-20260222\nTagged selenium/standalone-chrome-for-testing:139.0-20260222\n```\n"
  },
  {
    "path": "CHANGELOG/4.41.0/chrome-for-testing_140.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.41.0 20260222 selenium false chrome-for-testing true\nTagging images for browser chrome-for-testing, version 4.41.0, build date 20260222, namespace selenium\nSelenium Grid version -> 4.41.0-20260222\nChrome for Testing version -> 140.0.7339.207\nShort Chrome for Testing version -> 140.0\nChromeDriver version -> 140.0.7339.207\nShort ChromeDriver version -> 140.0\nTagged selenium/node-chrome-for-testing:140.0.7339.207-chromedriver-140.0.7339.207-grid-4.41.0-20260222\nTagged selenium/standalone-chrome-for-testing:140.0.7339.207-chromedriver-140.0.7339.207-grid-4.41.0-20260222\nTagged selenium/node-chrome-for-testing:140.0.7339.207-chromedriver-140.0.7339.207-20260222\nTagged selenium/standalone-chrome-for-testing:140.0.7339.207-chromedriver-140.0.7339.207-20260222\nTagged selenium/node-chrome-for-testing:140.0.7339.207-20260222\nTagged selenium/standalone-chrome-for-testing:140.0.7339.207-20260222\nTagged selenium/node-chrome-for-testing:140.0-chromedriver-140.0-grid-4.41.0-20260222\nTagged selenium/standalone-chrome-for-testing:140.0-chromedriver-140.0-grid-4.41.0-20260222\nTagged selenium/node-chrome-for-testing:140.0-chromedriver-140.0-20260222\nTagged selenium/standalone-chrome-for-testing:140.0-chromedriver-140.0-20260222\nTagged selenium/node-chrome-for-testing:140.0-20260222\nTagged selenium/standalone-chrome-for-testing:140.0-20260222\n```\n"
  },
  {
    "path": "CHANGELOG/4.41.0/chrome-for-testing_141.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.41.0 20260222 selenium false chrome-for-testing true\nTagging images for browser chrome-for-testing, version 4.41.0, build date 20260222, namespace selenium\nSelenium Grid version -> 4.41.0-20260222\nChrome for Testing version -> 141.0.7390.122\nShort Chrome for Testing version -> 141.0\nChromeDriver version -> 141.0.7390.122\nShort ChromeDriver version -> 141.0\nTagged selenium/node-chrome-for-testing:141.0.7390.122-chromedriver-141.0.7390.122-grid-4.41.0-20260222\nTagged selenium/standalone-chrome-for-testing:141.0.7390.122-chromedriver-141.0.7390.122-grid-4.41.0-20260222\nTagged selenium/node-chrome-for-testing:141.0.7390.122-chromedriver-141.0.7390.122-20260222\nTagged selenium/standalone-chrome-for-testing:141.0.7390.122-chromedriver-141.0.7390.122-20260222\nTagged selenium/node-chrome-for-testing:141.0.7390.122-20260222\nTagged selenium/standalone-chrome-for-testing:141.0.7390.122-20260222\nTagged selenium/node-chrome-for-testing:141.0-chromedriver-141.0-grid-4.41.0-20260222\nTagged selenium/standalone-chrome-for-testing:141.0-chromedriver-141.0-grid-4.41.0-20260222\nTagged selenium/node-chrome-for-testing:141.0-chromedriver-141.0-20260222\nTagged selenium/standalone-chrome-for-testing:141.0-chromedriver-141.0-20260222\nTagged selenium/node-chrome-for-testing:141.0-20260222\nTagged selenium/standalone-chrome-for-testing:141.0-20260222\n```\n"
  },
  {
    "path": "CHANGELOG/4.41.0/chrome-for-testing_142.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.41.0 20260222 selenium false chrome-for-testing true\nTagging images for browser chrome-for-testing, version 4.41.0, build date 20260222, namespace selenium\nSelenium Grid version -> 4.41.0-20260222\nChrome for Testing version -> 142.0.7444.175\nShort Chrome for Testing version -> 142.0\nChromeDriver version -> 142.0.7444.175\nShort ChromeDriver version -> 142.0\nTagged selenium/node-chrome-for-testing:142.0.7444.175-chromedriver-142.0.7444.175-grid-4.41.0-20260222\nTagged selenium/standalone-chrome-for-testing:142.0.7444.175-chromedriver-142.0.7444.175-grid-4.41.0-20260222\nTagged selenium/node-chrome-for-testing:142.0.7444.175-chromedriver-142.0.7444.175-20260222\nTagged selenium/standalone-chrome-for-testing:142.0.7444.175-chromedriver-142.0.7444.175-20260222\nTagged selenium/node-chrome-for-testing:142.0.7444.175-20260222\nTagged selenium/standalone-chrome-for-testing:142.0.7444.175-20260222\nTagged selenium/node-chrome-for-testing:142.0-chromedriver-142.0-grid-4.41.0-20260222\nTagged selenium/standalone-chrome-for-testing:142.0-chromedriver-142.0-grid-4.41.0-20260222\nTagged selenium/node-chrome-for-testing:142.0-chromedriver-142.0-20260222\nTagged selenium/standalone-chrome-for-testing:142.0-chromedriver-142.0-20260222\nTagged selenium/node-chrome-for-testing:142.0-20260222\nTagged selenium/standalone-chrome-for-testing:142.0-20260222\n```\n"
  },
  {
    "path": "CHANGELOG/4.41.0/chrome-for-testing_143.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.41.0 20260222 selenium false chrome-for-testing true\nTagging images for browser chrome-for-testing, version 4.41.0, build date 20260222, namespace selenium\nSelenium Grid version -> 4.41.0-20260222\nChrome for Testing version -> 143.0.7499.192\nShort Chrome for Testing version -> 143.0\nChromeDriver version -> 143.0.7499.192\nShort ChromeDriver version -> 143.0\nTagged selenium/node-chrome-for-testing:143.0.7499.192-chromedriver-143.0.7499.192-grid-4.41.0-20260222\nTagged selenium/standalone-chrome-for-testing:143.0.7499.192-chromedriver-143.0.7499.192-grid-4.41.0-20260222\nTagged selenium/node-chrome-for-testing:143.0.7499.192-chromedriver-143.0.7499.192-20260222\nTagged selenium/standalone-chrome-for-testing:143.0.7499.192-chromedriver-143.0.7499.192-20260222\nTagged selenium/node-chrome-for-testing:143.0.7499.192-20260222\nTagged selenium/standalone-chrome-for-testing:143.0.7499.192-20260222\nTagged selenium/node-chrome-for-testing:143.0-chromedriver-143.0-grid-4.41.0-20260222\nTagged selenium/standalone-chrome-for-testing:143.0-chromedriver-143.0-grid-4.41.0-20260222\nTagged selenium/node-chrome-for-testing:143.0-chromedriver-143.0-20260222\nTagged selenium/standalone-chrome-for-testing:143.0-chromedriver-143.0-20260222\nTagged selenium/node-chrome-for-testing:143.0-20260222\nTagged selenium/standalone-chrome-for-testing:143.0-20260222\n```\n"
  },
  {
    "path": "CHANGELOG/4.41.0/chrome-for-testing_144.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.41.0 20260222 selenium false chrome-for-testing true\nTagging images for browser chrome-for-testing, version 4.41.0, build date 20260222, namespace selenium\nSelenium Grid version -> 4.41.0-20260222\nChrome for Testing version -> 144.0.7559.133\nShort Chrome for Testing version -> 144.0\nChromeDriver version -> 144.0.7559.133\nShort ChromeDriver version -> 144.0\nTagged selenium/node-chrome-for-testing:144.0.7559.133-chromedriver-144.0.7559.133-grid-4.41.0-20260222\nTagged selenium/standalone-chrome-for-testing:144.0.7559.133-chromedriver-144.0.7559.133-grid-4.41.0-20260222\nTagged selenium/node-chrome-for-testing:144.0.7559.133-chromedriver-144.0.7559.133-20260222\nTagged selenium/standalone-chrome-for-testing:144.0.7559.133-chromedriver-144.0.7559.133-20260222\nTagged selenium/node-chrome-for-testing:144.0.7559.133-20260222\nTagged selenium/standalone-chrome-for-testing:144.0.7559.133-20260222\nTagged selenium/node-chrome-for-testing:144.0-chromedriver-144.0-grid-4.41.0-20260222\nTagged selenium/standalone-chrome-for-testing:144.0-chromedriver-144.0-grid-4.41.0-20260222\nTagged selenium/node-chrome-for-testing:144.0-chromedriver-144.0-20260222\nTagged selenium/standalone-chrome-for-testing:144.0-chromedriver-144.0-20260222\nTagged selenium/node-chrome-for-testing:144.0-20260222\nTagged selenium/standalone-chrome-for-testing:144.0-20260222\n```\n"
  },
  {
    "path": "CHANGELOG/4.41.0/chrome-for-testing_145.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.41.0 20260222 selenium false chrome-for-testing true\nTagging images for browser chrome-for-testing, version 4.41.0, build date 20260222, namespace selenium\nSelenium Grid version -> 4.41.0-20260222\nChrome for Testing version -> 145.0.7632.117\nShort Chrome for Testing version -> 145.0\nChromeDriver version -> 145.0.7632.117\nShort ChromeDriver version -> 145.0\nTagged selenium/node-chrome-for-testing:145.0.7632.117-chromedriver-145.0.7632.117-grid-4.41.0-20260222\nTagged selenium/standalone-chrome-for-testing:145.0.7632.117-chromedriver-145.0.7632.117-grid-4.41.0-20260222\nTagged selenium/node-chrome-for-testing:145.0.7632.117-chromedriver-145.0.7632.117-20260222\nTagged selenium/standalone-chrome-for-testing:145.0.7632.117-chromedriver-145.0.7632.117-20260222\nTagged selenium/node-chrome-for-testing:145.0.7632.117-20260222\nTagged selenium/standalone-chrome-for-testing:145.0.7632.117-20260222\nTagged selenium/node-chrome-for-testing:145.0-chromedriver-145.0-grid-4.41.0-20260222\nTagged selenium/standalone-chrome-for-testing:145.0-chromedriver-145.0-grid-4.41.0-20260222\nTagged selenium/node-chrome-for-testing:145.0-chromedriver-145.0-20260222\nTagged selenium/standalone-chrome-for-testing:145.0-chromedriver-145.0-20260222\nTagged selenium/node-chrome-for-testing:145.0-20260222\nTagged selenium/standalone-chrome-for-testing:145.0-20260222\n```\n"
  },
  {
    "path": "CHANGELOG/4.41.0/chrome_100.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.41.0 20260222 selenium false chrome true\nTagging images for browser chrome, version 4.41.0, build date 20260222, namespace selenium\nSelenium Grid version -> 4.41.0-20260222\nChrome version -> 100.0.4896.127\nShort Chrome version -> 100.0\nChromeDriver version -> 100.0.4896.60\nShort ChromeDriver version -> 100.0\nTagged selenium/node-chrome:100.0.4896.127-chromedriver-100.0.4896.60-grid-4.41.0-20260222\nTagged selenium/standalone-chrome:100.0.4896.127-chromedriver-100.0.4896.60-grid-4.41.0-20260222\nTagged selenium/node-chrome:100.0.4896.127-chromedriver-100.0.4896.60-20260222\nTagged selenium/standalone-chrome:100.0.4896.127-chromedriver-100.0.4896.60-20260222\nTagged selenium/node-chrome:100.0.4896.127-20260222\nTagged selenium/standalone-chrome:100.0.4896.127-20260222\nTagged selenium/node-chrome:100.0-chromedriver-100.0-grid-4.41.0-20260222\nTagged selenium/standalone-chrome:100.0-chromedriver-100.0-grid-4.41.0-20260222\nTagged selenium/node-chrome:100.0-chromedriver-100.0-20260222\nTagged selenium/standalone-chrome:100.0-chromedriver-100.0-20260222\nTagged selenium/node-chrome:100.0-20260222\nTagged selenium/standalone-chrome:100.0-20260222\n```\n"
  },
  {
    "path": "CHANGELOG/4.41.0/chrome_101.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.41.0 20260222 selenium false chrome true\nTagging images for browser chrome, version 4.41.0, build date 20260222, namespace selenium\nSelenium Grid version -> 4.41.0-20260222\nChrome version -> 101.0.4951.64\nShort Chrome version -> 101.0\nChromeDriver version -> 101.0.4951.41\nShort ChromeDriver version -> 101.0\nTagged selenium/node-chrome:101.0.4951.64-chromedriver-101.0.4951.41-grid-4.41.0-20260222\nTagged selenium/standalone-chrome:101.0.4951.64-chromedriver-101.0.4951.41-grid-4.41.0-20260222\nTagged selenium/node-chrome:101.0.4951.64-chromedriver-101.0.4951.41-20260222\nTagged selenium/standalone-chrome:101.0.4951.64-chromedriver-101.0.4951.41-20260222\nTagged selenium/node-chrome:101.0.4951.64-20260222\nTagged selenium/standalone-chrome:101.0.4951.64-20260222\nTagged selenium/node-chrome:101.0-chromedriver-101.0-grid-4.41.0-20260222\nTagged selenium/standalone-chrome:101.0-chromedriver-101.0-grid-4.41.0-20260222\nTagged selenium/node-chrome:101.0-chromedriver-101.0-20260222\nTagged selenium/standalone-chrome:101.0-chromedriver-101.0-20260222\nTagged selenium/node-chrome:101.0-20260222\nTagged selenium/standalone-chrome:101.0-20260222\n```\n"
  },
  {
    "path": "CHANGELOG/4.41.0/chrome_102.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.41.0 20260222 selenium false chrome true\nTagging images for browser chrome, version 4.41.0, build date 20260222, namespace selenium\nSelenium Grid version -> 4.41.0-20260222\nChrome version -> 102.0.5005.115\nShort Chrome version -> 102.0\nChromeDriver version -> 102.0.5005.61\nShort ChromeDriver version -> 102.0\nTagged selenium/node-chrome:102.0.5005.115-chromedriver-102.0.5005.61-grid-4.41.0-20260222\nTagged selenium/standalone-chrome:102.0.5005.115-chromedriver-102.0.5005.61-grid-4.41.0-20260222\nTagged selenium/node-chrome:102.0.5005.115-chromedriver-102.0.5005.61-20260222\nTagged selenium/standalone-chrome:102.0.5005.115-chromedriver-102.0.5005.61-20260222\nTagged selenium/node-chrome:102.0.5005.115-20260222\nTagged selenium/standalone-chrome:102.0.5005.115-20260222\nTagged selenium/node-chrome:102.0-chromedriver-102.0-grid-4.41.0-20260222\nTagged selenium/standalone-chrome:102.0-chromedriver-102.0-grid-4.41.0-20260222\nTagged selenium/node-chrome:102.0-chromedriver-102.0-20260222\nTagged selenium/standalone-chrome:102.0-chromedriver-102.0-20260222\nTagged selenium/node-chrome:102.0-20260222\nTagged selenium/standalone-chrome:102.0-20260222\n```\n"
  },
  {
    "path": "CHANGELOG/4.41.0/chrome_103.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.41.0 20260222 selenium false chrome true\nTagging images for browser chrome, version 4.41.0, build date 20260222, namespace selenium\nSelenium Grid version -> 4.41.0-20260222\nChrome version -> 103.0.5060.134\nShort Chrome version -> 103.0\nChromeDriver version -> 103.0.5060.134\nShort ChromeDriver version -> 103.0\nTagged selenium/node-chrome:103.0.5060.134-chromedriver-103.0.5060.134-grid-4.41.0-20260222\nTagged selenium/standalone-chrome:103.0.5060.134-chromedriver-103.0.5060.134-grid-4.41.0-20260222\nTagged selenium/node-chrome:103.0.5060.134-chromedriver-103.0.5060.134-20260222\nTagged selenium/standalone-chrome:103.0.5060.134-chromedriver-103.0.5060.134-20260222\nTagged selenium/node-chrome:103.0.5060.134-20260222\nTagged selenium/standalone-chrome:103.0.5060.134-20260222\nTagged selenium/node-chrome:103.0-chromedriver-103.0-grid-4.41.0-20260222\nTagged selenium/standalone-chrome:103.0-chromedriver-103.0-grid-4.41.0-20260222\nTagged selenium/node-chrome:103.0-chromedriver-103.0-20260222\nTagged selenium/standalone-chrome:103.0-chromedriver-103.0-20260222\nTagged selenium/node-chrome:103.0-20260222\nTagged selenium/standalone-chrome:103.0-20260222\n```\n"
  },
  {
    "path": "CHANGELOG/4.41.0/chrome_104.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.41.0 20260222 selenium false chrome true\nTagging images for browser chrome, version 4.41.0, build date 20260222, namespace selenium\nSelenium Grid version -> 4.41.0-20260222\nChrome version -> 104.0.5112.101\nShort Chrome version -> 104.0\nChromeDriver version -> 104.0.5112.79\nShort ChromeDriver version -> 104.0\nTagged selenium/node-chrome:104.0.5112.101-chromedriver-104.0.5112.79-grid-4.41.0-20260222\nTagged selenium/standalone-chrome:104.0.5112.101-chromedriver-104.0.5112.79-grid-4.41.0-20260222\nTagged selenium/node-chrome:104.0.5112.101-chromedriver-104.0.5112.79-20260222\nTagged selenium/standalone-chrome:104.0.5112.101-chromedriver-104.0.5112.79-20260222\nTagged selenium/node-chrome:104.0.5112.101-20260222\nTagged selenium/standalone-chrome:104.0.5112.101-20260222\nTagged selenium/node-chrome:104.0-chromedriver-104.0-grid-4.41.0-20260222\nTagged selenium/standalone-chrome:104.0-chromedriver-104.0-grid-4.41.0-20260222\nTagged selenium/node-chrome:104.0-chromedriver-104.0-20260222\nTagged selenium/standalone-chrome:104.0-chromedriver-104.0-20260222\nTagged selenium/node-chrome:104.0-20260222\nTagged selenium/standalone-chrome:104.0-20260222\n```\n"
  },
  {
    "path": "CHANGELOG/4.41.0/chrome_105.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.41.0 20260222 selenium false chrome true\nTagging images for browser chrome, version 4.41.0, build date 20260222, namespace selenium\nSelenium Grid version -> 4.41.0-20260222\nChrome version -> 105.0.5195.125\nShort Chrome version -> 105.0\nChromeDriver version -> 105.0.5195.52\nShort ChromeDriver version -> 105.0\nTagged selenium/node-chrome:105.0.5195.125-chromedriver-105.0.5195.52-grid-4.41.0-20260222\nTagged selenium/standalone-chrome:105.0.5195.125-chromedriver-105.0.5195.52-grid-4.41.0-20260222\nTagged selenium/node-chrome:105.0.5195.125-chromedriver-105.0.5195.52-20260222\nTagged selenium/standalone-chrome:105.0.5195.125-chromedriver-105.0.5195.52-20260222\nTagged selenium/node-chrome:105.0.5195.125-20260222\nTagged selenium/standalone-chrome:105.0.5195.125-20260222\nTagged selenium/node-chrome:105.0-chromedriver-105.0-grid-4.41.0-20260222\nTagged selenium/standalone-chrome:105.0-chromedriver-105.0-grid-4.41.0-20260222\nTagged selenium/node-chrome:105.0-chromedriver-105.0-20260222\nTagged selenium/standalone-chrome:105.0-chromedriver-105.0-20260222\nTagged selenium/node-chrome:105.0-20260222\nTagged selenium/standalone-chrome:105.0-20260222\n```\n"
  },
  {
    "path": "CHANGELOG/4.41.0/chrome_106.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.41.0 20260222 selenium false chrome true\nTagging images for browser chrome, version 4.41.0, build date 20260222, namespace selenium\nSelenium Grid version -> 4.41.0-20260222\nChrome version -> 106.0.5249.119\nShort Chrome version -> 106.0\nChromeDriver version -> 106.0.5249.61\nShort ChromeDriver version -> 106.0\nTagged selenium/node-chrome:106.0.5249.119-chromedriver-106.0.5249.61-grid-4.41.0-20260222\nTagged selenium/standalone-chrome:106.0.5249.119-chromedriver-106.0.5249.61-grid-4.41.0-20260222\nTagged selenium/node-chrome:106.0.5249.119-chromedriver-106.0.5249.61-20260222\nTagged selenium/standalone-chrome:106.0.5249.119-chromedriver-106.0.5249.61-20260222\nTagged selenium/node-chrome:106.0.5249.119-20260222\nTagged selenium/standalone-chrome:106.0.5249.119-20260222\nTagged selenium/node-chrome:106.0-chromedriver-106.0-grid-4.41.0-20260222\nTagged selenium/standalone-chrome:106.0-chromedriver-106.0-grid-4.41.0-20260222\nTagged selenium/node-chrome:106.0-chromedriver-106.0-20260222\nTagged selenium/standalone-chrome:106.0-chromedriver-106.0-20260222\nTagged selenium/node-chrome:106.0-20260222\nTagged selenium/standalone-chrome:106.0-20260222\n```\n"
  },
  {
    "path": "CHANGELOG/4.41.0/chrome_107.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.41.0 20260222 selenium false chrome true\nTagging images for browser chrome, version 4.41.0, build date 20260222, namespace selenium\nSelenium Grid version -> 4.41.0-20260222\nChrome version -> 107.0.5304.121\nShort Chrome version -> 107.0\nChromeDriver version -> 107.0.5304.62\nShort ChromeDriver version -> 107.0\nTagged selenium/node-chrome:107.0.5304.121-chromedriver-107.0.5304.62-grid-4.41.0-20260222\nTagged selenium/standalone-chrome:107.0.5304.121-chromedriver-107.0.5304.62-grid-4.41.0-20260222\nTagged selenium/node-chrome:107.0.5304.121-chromedriver-107.0.5304.62-20260222\nTagged selenium/standalone-chrome:107.0.5304.121-chromedriver-107.0.5304.62-20260222\nTagged selenium/node-chrome:107.0.5304.121-20260222\nTagged selenium/standalone-chrome:107.0.5304.121-20260222\nTagged selenium/node-chrome:107.0-chromedriver-107.0-grid-4.41.0-20260222\nTagged selenium/standalone-chrome:107.0-chromedriver-107.0-grid-4.41.0-20260222\nTagged selenium/node-chrome:107.0-chromedriver-107.0-20260222\nTagged selenium/standalone-chrome:107.0-chromedriver-107.0-20260222\nTagged selenium/node-chrome:107.0-20260222\nTagged selenium/standalone-chrome:107.0-20260222\n```\n"
  },
  {
    "path": "CHANGELOG/4.41.0/chrome_108.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.41.0 20260222 selenium false chrome true\nTagging images for browser chrome, version 4.41.0, build date 20260222, namespace selenium\nSelenium Grid version -> 4.41.0-20260222\nChrome version -> 108.0.5359.124\nShort Chrome version -> 108.0\nChromeDriver version -> 108.0.5359.71\nShort ChromeDriver version -> 108.0\nTagged selenium/node-chrome:108.0.5359.124-chromedriver-108.0.5359.71-grid-4.41.0-20260222\nTagged selenium/standalone-chrome:108.0.5359.124-chromedriver-108.0.5359.71-grid-4.41.0-20260222\nTagged selenium/node-chrome:108.0.5359.124-chromedriver-108.0.5359.71-20260222\nTagged selenium/standalone-chrome:108.0.5359.124-chromedriver-108.0.5359.71-20260222\nTagged selenium/node-chrome:108.0.5359.124-20260222\nTagged selenium/standalone-chrome:108.0.5359.124-20260222\nTagged selenium/node-chrome:108.0-chromedriver-108.0-grid-4.41.0-20260222\nTagged selenium/standalone-chrome:108.0-chromedriver-108.0-grid-4.41.0-20260222\nTagged selenium/node-chrome:108.0-chromedriver-108.0-20260222\nTagged selenium/standalone-chrome:108.0-chromedriver-108.0-20260222\nTagged selenium/node-chrome:108.0-20260222\nTagged selenium/standalone-chrome:108.0-20260222\n```\n"
  },
  {
    "path": "CHANGELOG/4.41.0/chrome_109.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.41.0 20260222 selenium false chrome true\nTagging images for browser chrome, version 4.41.0, build date 20260222, namespace selenium\nSelenium Grid version -> 4.41.0-20260222\nChrome version -> 109.0.5414.119\nShort Chrome version -> 109.0\nChromeDriver version -> 109.0.5414.74\nShort ChromeDriver version -> 109.0\nTagged selenium/node-chrome:109.0.5414.119-chromedriver-109.0.5414.74-grid-4.41.0-20260222\nTagged selenium/standalone-chrome:109.0.5414.119-chromedriver-109.0.5414.74-grid-4.41.0-20260222\nTagged selenium/node-chrome:109.0.5414.119-chromedriver-109.0.5414.74-20260222\nTagged selenium/standalone-chrome:109.0.5414.119-chromedriver-109.0.5414.74-20260222\nTagged selenium/node-chrome:109.0.5414.119-20260222\nTagged selenium/standalone-chrome:109.0.5414.119-20260222\nTagged selenium/node-chrome:109.0-chromedriver-109.0-grid-4.41.0-20260222\nTagged selenium/standalone-chrome:109.0-chromedriver-109.0-grid-4.41.0-20260222\nTagged selenium/node-chrome:109.0-chromedriver-109.0-20260222\nTagged selenium/standalone-chrome:109.0-chromedriver-109.0-20260222\nTagged selenium/node-chrome:109.0-20260222\nTagged selenium/standalone-chrome:109.0-20260222\n```\n"
  },
  {
    "path": "CHANGELOG/4.41.0/chrome_110.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.41.0 20260222 selenium false chrome true\nTagging images for browser chrome, version 4.41.0, build date 20260222, namespace selenium\nSelenium Grid version -> 4.41.0-20260222\nChrome version -> 110.0.5481.177\nShort Chrome version -> 110.0\nChromeDriver version -> 110.0.5481.77\nShort ChromeDriver version -> 110.0\nTagged selenium/node-chrome:110.0.5481.177-chromedriver-110.0.5481.77-grid-4.41.0-20260222\nTagged selenium/standalone-chrome:110.0.5481.177-chromedriver-110.0.5481.77-grid-4.41.0-20260222\nTagged selenium/node-chrome:110.0.5481.177-chromedriver-110.0.5481.77-20260222\nTagged selenium/standalone-chrome:110.0.5481.177-chromedriver-110.0.5481.77-20260222\nTagged selenium/node-chrome:110.0.5481.177-20260222\nTagged selenium/standalone-chrome:110.0.5481.177-20260222\nTagged selenium/node-chrome:110.0-chromedriver-110.0-grid-4.41.0-20260222\nTagged selenium/standalone-chrome:110.0-chromedriver-110.0-grid-4.41.0-20260222\nTagged selenium/node-chrome:110.0-chromedriver-110.0-20260222\nTagged selenium/standalone-chrome:110.0-chromedriver-110.0-20260222\nTagged selenium/node-chrome:110.0-20260222\nTagged selenium/standalone-chrome:110.0-20260222\n```\n"
  },
  {
    "path": "CHANGELOG/4.41.0/chrome_111.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.41.0 20260222 selenium false chrome true\nTagging images for browser chrome, version 4.41.0, build date 20260222, namespace selenium\nSelenium Grid version -> 4.41.0-20260222\nChrome version -> 111.0.5563.146\nShort Chrome version -> 111.0\nChromeDriver version -> 111.0.5563.64\nShort ChromeDriver version -> 111.0\nTagged selenium/node-chrome:111.0.5563.146-chromedriver-111.0.5563.64-grid-4.41.0-20260222\nTagged selenium/standalone-chrome:111.0.5563.146-chromedriver-111.0.5563.64-grid-4.41.0-20260222\nTagged selenium/node-chrome:111.0.5563.146-chromedriver-111.0.5563.64-20260222\nTagged selenium/standalone-chrome:111.0.5563.146-chromedriver-111.0.5563.64-20260222\nTagged selenium/node-chrome:111.0.5563.146-20260222\nTagged selenium/standalone-chrome:111.0.5563.146-20260222\nTagged selenium/node-chrome:111.0-chromedriver-111.0-grid-4.41.0-20260222\nTagged selenium/standalone-chrome:111.0-chromedriver-111.0-grid-4.41.0-20260222\nTagged selenium/node-chrome:111.0-chromedriver-111.0-20260222\nTagged selenium/standalone-chrome:111.0-chromedriver-111.0-20260222\nTagged selenium/node-chrome:111.0-20260222\nTagged selenium/standalone-chrome:111.0-20260222\n```\n"
  },
  {
    "path": "CHANGELOG/4.41.0/chrome_112.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.41.0 20260222 selenium false chrome true\nTagging images for browser chrome, version 4.41.0, build date 20260222, namespace selenium\nSelenium Grid version -> 4.41.0-20260222\nChrome version -> 112.0.5615.165\nShort Chrome version -> 112.0\nChromeDriver version -> 112.0.5615.49\nShort ChromeDriver version -> 112.0\nTagged selenium/node-chrome:112.0.5615.165-chromedriver-112.0.5615.49-grid-4.41.0-20260222\nTagged selenium/standalone-chrome:112.0.5615.165-chromedriver-112.0.5615.49-grid-4.41.0-20260222\nTagged selenium/node-chrome:112.0.5615.165-chromedriver-112.0.5615.49-20260222\nTagged selenium/standalone-chrome:112.0.5615.165-chromedriver-112.0.5615.49-20260222\nTagged selenium/node-chrome:112.0.5615.165-20260222\nTagged selenium/standalone-chrome:112.0.5615.165-20260222\nTagged selenium/node-chrome:112.0-chromedriver-112.0-grid-4.41.0-20260222\nTagged selenium/standalone-chrome:112.0-chromedriver-112.0-grid-4.41.0-20260222\nTagged selenium/node-chrome:112.0-chromedriver-112.0-20260222\nTagged selenium/standalone-chrome:112.0-chromedriver-112.0-20260222\nTagged selenium/node-chrome:112.0-20260222\nTagged selenium/standalone-chrome:112.0-20260222\n```\n"
  },
  {
    "path": "CHANGELOG/4.41.0/chrome_113.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.41.0 20260222 selenium false chrome true\nTagging images for browser chrome, version 4.41.0, build date 20260222, namespace selenium\nSelenium Grid version -> 4.41.0-20260222\nChrome version -> 113.0.5672.126\nShort Chrome version -> 113.0\nChromeDriver version -> 113.0.5672.63\nShort ChromeDriver version -> 113.0\nTagged selenium/node-chrome:113.0.5672.126-chromedriver-113.0.5672.63-grid-4.41.0-20260222\nTagged selenium/standalone-chrome:113.0.5672.126-chromedriver-113.0.5672.63-grid-4.41.0-20260222\nTagged selenium/node-chrome:113.0.5672.126-chromedriver-113.0.5672.63-20260222\nTagged selenium/standalone-chrome:113.0.5672.126-chromedriver-113.0.5672.63-20260222\nTagged selenium/node-chrome:113.0.5672.126-20260222\nTagged selenium/standalone-chrome:113.0.5672.126-20260222\nTagged selenium/node-chrome:113.0-chromedriver-113.0-grid-4.41.0-20260222\nTagged selenium/standalone-chrome:113.0-chromedriver-113.0-grid-4.41.0-20260222\nTagged selenium/node-chrome:113.0-chromedriver-113.0-20260222\nTagged selenium/standalone-chrome:113.0-chromedriver-113.0-20260222\nTagged selenium/node-chrome:113.0-20260222\nTagged selenium/standalone-chrome:113.0-20260222\n```\n"
  },
  {
    "path": "CHANGELOG/4.41.0/chrome_114.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.41.0 20260222 selenium false chrome true\nTagging images for browser chrome, version 4.41.0, build date 20260222, namespace selenium\nSelenium Grid version -> 4.41.0-20260222\nChrome version -> 114.0.5735.198\nShort Chrome version -> 114.0\nChromeDriver version -> 114.0.5735.90\nShort ChromeDriver version -> 114.0\nTagged selenium/node-chrome:114.0.5735.198-chromedriver-114.0.5735.90-grid-4.41.0-20260222\nTagged selenium/standalone-chrome:114.0.5735.198-chromedriver-114.0.5735.90-grid-4.41.0-20260222\nTagged selenium/node-chrome:114.0.5735.198-chromedriver-114.0.5735.90-20260222\nTagged selenium/standalone-chrome:114.0.5735.198-chromedriver-114.0.5735.90-20260222\nTagged selenium/node-chrome:114.0.5735.198-20260222\nTagged selenium/standalone-chrome:114.0.5735.198-20260222\nTagged selenium/node-chrome:114.0-chromedriver-114.0-grid-4.41.0-20260222\nTagged selenium/standalone-chrome:114.0-chromedriver-114.0-grid-4.41.0-20260222\nTagged selenium/node-chrome:114.0-chromedriver-114.0-20260222\nTagged selenium/standalone-chrome:114.0-chromedriver-114.0-20260222\nTagged selenium/node-chrome:114.0-20260222\nTagged selenium/standalone-chrome:114.0-20260222\n```\n"
  },
  {
    "path": "CHANGELOG/4.41.0/chrome_115.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.41.0 20260222 selenium false chrome true\nTagging images for browser chrome, version 4.41.0, build date 20260222, namespace selenium\nSelenium Grid version -> 4.41.0-20260222\nChrome version -> 115.0.5790.170\nShort Chrome version -> 115.0\nChromeDriver version -> 115.0.5790.170\nShort ChromeDriver version -> 115.0\nTagged selenium/node-chrome:115.0.5790.170-chromedriver-115.0.5790.170-grid-4.41.0-20260222\nTagged selenium/standalone-chrome:115.0.5790.170-chromedriver-115.0.5790.170-grid-4.41.0-20260222\nTagged selenium/node-chrome:115.0.5790.170-chromedriver-115.0.5790.170-20260222\nTagged selenium/standalone-chrome:115.0.5790.170-chromedriver-115.0.5790.170-20260222\nTagged selenium/node-chrome:115.0.5790.170-20260222\nTagged selenium/standalone-chrome:115.0.5790.170-20260222\nTagged selenium/node-chrome:115.0-chromedriver-115.0-grid-4.41.0-20260222\nTagged selenium/standalone-chrome:115.0-chromedriver-115.0-grid-4.41.0-20260222\nTagged selenium/node-chrome:115.0-chromedriver-115.0-20260222\nTagged selenium/standalone-chrome:115.0-chromedriver-115.0-20260222\nTagged selenium/node-chrome:115.0-20260222\nTagged selenium/standalone-chrome:115.0-20260222\n```\n"
  },
  {
    "path": "CHANGELOG/4.41.0/chrome_116.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.41.0 20260222 selenium false chrome true\nTagging images for browser chrome, version 4.41.0, build date 20260222, namespace selenium\nSelenium Grid version -> 4.41.0-20260222\nChrome version -> 116.0.5845.187\nShort Chrome version -> 116.0\nChromeDriver version -> 116.0.5845.96\nShort ChromeDriver version -> 116.0\nTagged selenium/node-chrome:116.0.5845.187-chromedriver-116.0.5845.96-grid-4.41.0-20260222\nTagged selenium/standalone-chrome:116.0.5845.187-chromedriver-116.0.5845.96-grid-4.41.0-20260222\nTagged selenium/node-chrome:116.0.5845.187-chromedriver-116.0.5845.96-20260222\nTagged selenium/standalone-chrome:116.0.5845.187-chromedriver-116.0.5845.96-20260222\nTagged selenium/node-chrome:116.0.5845.187-20260222\nTagged selenium/standalone-chrome:116.0.5845.187-20260222\nTagged selenium/node-chrome:116.0-chromedriver-116.0-grid-4.41.0-20260222\nTagged selenium/standalone-chrome:116.0-chromedriver-116.0-grid-4.41.0-20260222\nTagged selenium/node-chrome:116.0-chromedriver-116.0-20260222\nTagged selenium/standalone-chrome:116.0-chromedriver-116.0-20260222\nTagged selenium/node-chrome:116.0-20260222\nTagged selenium/standalone-chrome:116.0-20260222\n```\n"
  },
  {
    "path": "CHANGELOG/4.41.0/chrome_117.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.41.0 20260222 selenium false chrome true\nTagging images for browser chrome, version 4.41.0, build date 20260222, namespace selenium\nSelenium Grid version -> 4.41.0-20260222\nChrome version -> 117.0.5938.149\nShort Chrome version -> 117.0\nChromeDriver version -> 117.0.5938.149\nShort ChromeDriver version -> 117.0\nTagged selenium/node-chrome:117.0.5938.149-chromedriver-117.0.5938.149-grid-4.41.0-20260222\nTagged selenium/standalone-chrome:117.0.5938.149-chromedriver-117.0.5938.149-grid-4.41.0-20260222\nTagged selenium/node-chrome:117.0.5938.149-chromedriver-117.0.5938.149-20260222\nTagged selenium/standalone-chrome:117.0.5938.149-chromedriver-117.0.5938.149-20260222\nTagged selenium/node-chrome:117.0.5938.149-20260222\nTagged selenium/standalone-chrome:117.0.5938.149-20260222\nTagged selenium/node-chrome:117.0-chromedriver-117.0-grid-4.41.0-20260222\nTagged selenium/standalone-chrome:117.0-chromedriver-117.0-grid-4.41.0-20260222\nTagged selenium/node-chrome:117.0-chromedriver-117.0-20260222\nTagged selenium/standalone-chrome:117.0-chromedriver-117.0-20260222\nTagged selenium/node-chrome:117.0-20260222\nTagged selenium/standalone-chrome:117.0-20260222\n```\n"
  },
  {
    "path": "CHANGELOG/4.41.0/chrome_118.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.41.0 20260222 selenium false chrome true\nTagging images for browser chrome, version 4.41.0, build date 20260222, namespace selenium\nSelenium Grid version -> 4.41.0-20260222\nChrome version -> 118.0.5993.117\nShort Chrome version -> 118.0\nChromeDriver version -> 118.0.5993.70\nShort ChromeDriver version -> 118.0\nTagged selenium/node-chrome:118.0.5993.117-chromedriver-118.0.5993.70-grid-4.41.0-20260222\nTagged selenium/standalone-chrome:118.0.5993.117-chromedriver-118.0.5993.70-grid-4.41.0-20260222\nTagged selenium/node-chrome:118.0.5993.117-chromedriver-118.0.5993.70-20260222\nTagged selenium/standalone-chrome:118.0.5993.117-chromedriver-118.0.5993.70-20260222\nTagged selenium/node-chrome:118.0.5993.117-20260222\nTagged selenium/standalone-chrome:118.0.5993.117-20260222\nTagged selenium/node-chrome:118.0-chromedriver-118.0-grid-4.41.0-20260222\nTagged selenium/standalone-chrome:118.0-chromedriver-118.0-grid-4.41.0-20260222\nTagged selenium/node-chrome:118.0-chromedriver-118.0-20260222\nTagged selenium/standalone-chrome:118.0-chromedriver-118.0-20260222\nTagged selenium/node-chrome:118.0-20260222\nTagged selenium/standalone-chrome:118.0-20260222\n```\n"
  },
  {
    "path": "CHANGELOG/4.41.0/chrome_119.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.41.0 20260222 selenium false chrome true\nTagging images for browser chrome, version 4.41.0, build date 20260222, namespace selenium\nSelenium Grid version -> 4.41.0-20260222\nChrome version -> 119.0.6045.199\nShort Chrome version -> 119.0\nChromeDriver version -> 119.0.6045.105\nShort ChromeDriver version -> 119.0\nTagged selenium/node-chrome:119.0.6045.199-chromedriver-119.0.6045.105-grid-4.41.0-20260222\nTagged selenium/standalone-chrome:119.0.6045.199-chromedriver-119.0.6045.105-grid-4.41.0-20260222\nTagged selenium/node-chrome:119.0.6045.199-chromedriver-119.0.6045.105-20260222\nTagged selenium/standalone-chrome:119.0.6045.199-chromedriver-119.0.6045.105-20260222\nTagged selenium/node-chrome:119.0.6045.199-20260222\nTagged selenium/standalone-chrome:119.0.6045.199-20260222\nTagged selenium/node-chrome:119.0-chromedriver-119.0-grid-4.41.0-20260222\nTagged selenium/standalone-chrome:119.0-chromedriver-119.0-grid-4.41.0-20260222\nTagged selenium/node-chrome:119.0-chromedriver-119.0-20260222\nTagged selenium/standalone-chrome:119.0-chromedriver-119.0-20260222\nTagged selenium/node-chrome:119.0-20260222\nTagged selenium/standalone-chrome:119.0-20260222\n```\n"
  },
  {
    "path": "CHANGELOG/4.41.0/chrome_120.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.41.0 20260222 selenium false chrome true\nTagging images for browser chrome, version 4.41.0, build date 20260222, namespace selenium\nSelenium Grid version -> 4.41.0-20260222\nChrome version -> 120.0.6099.224\nShort Chrome version -> 120.0\nChromeDriver version -> 120.0.6099.109\nShort ChromeDriver version -> 120.0\nTagged selenium/node-chrome:120.0.6099.224-chromedriver-120.0.6099.109-grid-4.41.0-20260222\nTagged selenium/standalone-chrome:120.0.6099.224-chromedriver-120.0.6099.109-grid-4.41.0-20260222\nTagged selenium/node-chrome:120.0.6099.224-chromedriver-120.0.6099.109-20260222\nTagged selenium/standalone-chrome:120.0.6099.224-chromedriver-120.0.6099.109-20260222\nTagged selenium/node-chrome:120.0.6099.224-20260222\nTagged selenium/standalone-chrome:120.0.6099.224-20260222\nTagged selenium/node-chrome:120.0-chromedriver-120.0-grid-4.41.0-20260222\nTagged selenium/standalone-chrome:120.0-chromedriver-120.0-grid-4.41.0-20260222\nTagged selenium/node-chrome:120.0-chromedriver-120.0-20260222\nTagged selenium/standalone-chrome:120.0-chromedriver-120.0-20260222\nTagged selenium/node-chrome:120.0-20260222\nTagged selenium/standalone-chrome:120.0-20260222\n```\n"
  },
  {
    "path": "CHANGELOG/4.41.0/chrome_121.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.41.0 20260222 selenium false chrome true\nTagging images for browser chrome, version 4.41.0, build date 20260222, namespace selenium\nSelenium Grid version -> 4.41.0-20260222\nChrome version -> 121.0.6167.184\nShort Chrome version -> 121.0\nChromeDriver version -> 121.0.6167.184\nShort ChromeDriver version -> 121.0\nTagged selenium/node-chrome:121.0.6167.184-chromedriver-121.0.6167.184-grid-4.41.0-20260222\nTagged selenium/standalone-chrome:121.0.6167.184-chromedriver-121.0.6167.184-grid-4.41.0-20260222\nTagged selenium/node-chrome:121.0.6167.184-chromedriver-121.0.6167.184-20260222\nTagged selenium/standalone-chrome:121.0.6167.184-chromedriver-121.0.6167.184-20260222\nTagged selenium/node-chrome:121.0.6167.184-20260222\nTagged selenium/standalone-chrome:121.0.6167.184-20260222\nTagged selenium/node-chrome:121.0-chromedriver-121.0-grid-4.41.0-20260222\nTagged selenium/standalone-chrome:121.0-chromedriver-121.0-grid-4.41.0-20260222\nTagged selenium/node-chrome:121.0-chromedriver-121.0-20260222\nTagged selenium/standalone-chrome:121.0-chromedriver-121.0-20260222\nTagged selenium/node-chrome:121.0-20260222\nTagged selenium/standalone-chrome:121.0-20260222\n```\n"
  },
  {
    "path": "CHANGELOG/4.41.0/chrome_122.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.41.0 20260222 selenium false chrome true\nTagging images for browser chrome, version 4.41.0, build date 20260222, namespace selenium\nSelenium Grid version -> 4.41.0-20260222\nChrome version -> 122.0.6261.128\nShort Chrome version -> 122.0\nChromeDriver version -> 122.0.6261.128\nShort ChromeDriver version -> 122.0\nTagged selenium/node-chrome:122.0.6261.128-chromedriver-122.0.6261.128-grid-4.41.0-20260222\nTagged selenium/standalone-chrome:122.0.6261.128-chromedriver-122.0.6261.128-grid-4.41.0-20260222\nTagged selenium/node-chrome:122.0.6261.128-chromedriver-122.0.6261.128-20260222\nTagged selenium/standalone-chrome:122.0.6261.128-chromedriver-122.0.6261.128-20260222\nTagged selenium/node-chrome:122.0.6261.128-20260222\nTagged selenium/standalone-chrome:122.0.6261.128-20260222\nTagged selenium/node-chrome:122.0-chromedriver-122.0-grid-4.41.0-20260222\nTagged selenium/standalone-chrome:122.0-chromedriver-122.0-grid-4.41.0-20260222\nTagged selenium/node-chrome:122.0-chromedriver-122.0-20260222\nTagged selenium/standalone-chrome:122.0-chromedriver-122.0-20260222\nTagged selenium/node-chrome:122.0-20260222\nTagged selenium/standalone-chrome:122.0-20260222\n```\n"
  },
  {
    "path": "CHANGELOG/4.41.0/chrome_123.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.41.0 20260222 selenium false chrome true\nTagging images for browser chrome, version 4.41.0, build date 20260222, namespace selenium\nSelenium Grid version -> 4.41.0-20260222\nChrome version -> 123.0.6312.122\nShort Chrome version -> 123.0\nChromeDriver version -> 123.0.6312.122\nShort ChromeDriver version -> 123.0\nTagged selenium/node-chrome:123.0.6312.122-chromedriver-123.0.6312.122-grid-4.41.0-20260222\nTagged selenium/standalone-chrome:123.0.6312.122-chromedriver-123.0.6312.122-grid-4.41.0-20260222\nTagged selenium/node-chrome:123.0.6312.122-chromedriver-123.0.6312.122-20260222\nTagged selenium/standalone-chrome:123.0.6312.122-chromedriver-123.0.6312.122-20260222\nTagged selenium/node-chrome:123.0.6312.122-20260222\nTagged selenium/standalone-chrome:123.0.6312.122-20260222\nTagged selenium/node-chrome:123.0-chromedriver-123.0-grid-4.41.0-20260222\nTagged selenium/standalone-chrome:123.0-chromedriver-123.0-grid-4.41.0-20260222\nTagged selenium/node-chrome:123.0-chromedriver-123.0-20260222\nTagged selenium/standalone-chrome:123.0-chromedriver-123.0-20260222\nTagged selenium/node-chrome:123.0-20260222\nTagged selenium/standalone-chrome:123.0-20260222\n```\n"
  },
  {
    "path": "CHANGELOG/4.41.0/chrome_124.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.41.0 20260222 selenium false chrome true\nTagging images for browser chrome, version 4.41.0, build date 20260222, namespace selenium\nSelenium Grid version -> 4.41.0-20260222\nChrome version -> 124.0.6367.207\nShort Chrome version -> 124.0\nChromeDriver version -> 124.0.6367.207\nShort ChromeDriver version -> 124.0\nTagged selenium/node-chrome:124.0.6367.207-chromedriver-124.0.6367.207-grid-4.41.0-20260222\nTagged selenium/standalone-chrome:124.0.6367.207-chromedriver-124.0.6367.207-grid-4.41.0-20260222\nTagged selenium/node-chrome:124.0.6367.207-chromedriver-124.0.6367.207-20260222\nTagged selenium/standalone-chrome:124.0.6367.207-chromedriver-124.0.6367.207-20260222\nTagged selenium/node-chrome:124.0.6367.207-20260222\nTagged selenium/standalone-chrome:124.0.6367.207-20260222\nTagged selenium/node-chrome:124.0-chromedriver-124.0-grid-4.41.0-20260222\nTagged selenium/standalone-chrome:124.0-chromedriver-124.0-grid-4.41.0-20260222\nTagged selenium/node-chrome:124.0-chromedriver-124.0-20260222\nTagged selenium/standalone-chrome:124.0-chromedriver-124.0-20260222\nTagged selenium/node-chrome:124.0-20260222\nTagged selenium/standalone-chrome:124.0-20260222\n```\n"
  },
  {
    "path": "CHANGELOG/4.41.0/chrome_125.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.41.0 20260222 selenium false chrome true\nTagging images for browser chrome, version 4.41.0, build date 20260222, namespace selenium\nSelenium Grid version -> 4.41.0-20260222\nChrome version -> 125.0.6422.141\nShort Chrome version -> 125.0\nChromeDriver version -> 125.0.6422.141\nShort ChromeDriver version -> 125.0\nTagged selenium/node-chrome:125.0.6422.141-chromedriver-125.0.6422.141-grid-4.41.0-20260222\nTagged selenium/standalone-chrome:125.0.6422.141-chromedriver-125.0.6422.141-grid-4.41.0-20260222\nTagged selenium/node-chrome:125.0.6422.141-chromedriver-125.0.6422.141-20260222\nTagged selenium/standalone-chrome:125.0.6422.141-chromedriver-125.0.6422.141-20260222\nTagged selenium/node-chrome:125.0.6422.141-20260222\nTagged selenium/standalone-chrome:125.0.6422.141-20260222\nTagged selenium/node-chrome:125.0-chromedriver-125.0-grid-4.41.0-20260222\nTagged selenium/standalone-chrome:125.0-chromedriver-125.0-grid-4.41.0-20260222\nTagged selenium/node-chrome:125.0-chromedriver-125.0-20260222\nTagged selenium/standalone-chrome:125.0-chromedriver-125.0-20260222\nTagged selenium/node-chrome:125.0-20260222\nTagged selenium/standalone-chrome:125.0-20260222\n```\n"
  },
  {
    "path": "CHANGELOG/4.41.0/chrome_126.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.41.0 20260222 selenium false chrome true\nTagging images for browser chrome, version 4.41.0, build date 20260222, namespace selenium\nSelenium Grid version -> 4.41.0-20260222\nChrome version -> 126.0.6478.182\nShort Chrome version -> 126.0\nChromeDriver version -> 126.0.6478.182\nShort ChromeDriver version -> 126.0\nTagged selenium/node-chrome:126.0.6478.182-chromedriver-126.0.6478.182-grid-4.41.0-20260222\nTagged selenium/standalone-chrome:126.0.6478.182-chromedriver-126.0.6478.182-grid-4.41.0-20260222\nTagged selenium/node-chrome:126.0.6478.182-chromedriver-126.0.6478.182-20260222\nTagged selenium/standalone-chrome:126.0.6478.182-chromedriver-126.0.6478.182-20260222\nTagged selenium/node-chrome:126.0.6478.182-20260222\nTagged selenium/standalone-chrome:126.0.6478.182-20260222\nTagged selenium/node-chrome:126.0-chromedriver-126.0-grid-4.41.0-20260222\nTagged selenium/standalone-chrome:126.0-chromedriver-126.0-grid-4.41.0-20260222\nTagged selenium/node-chrome:126.0-chromedriver-126.0-20260222\nTagged selenium/standalone-chrome:126.0-chromedriver-126.0-20260222\nTagged selenium/node-chrome:126.0-20260222\nTagged selenium/standalone-chrome:126.0-20260222\n```\n"
  },
  {
    "path": "CHANGELOG/4.41.0/chrome_127.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.41.0 20260222 selenium false chrome true\nTagging images for browser chrome, version 4.41.0, build date 20260222, namespace selenium\nSelenium Grid version -> 4.41.0-20260222\nChrome version -> 127.0.6533.119\nShort Chrome version -> 127.0\nChromeDriver version -> 127.0.6533.119\nShort ChromeDriver version -> 127.0\nTagged selenium/node-chrome:127.0.6533.119-chromedriver-127.0.6533.119-grid-4.41.0-20260222\nTagged selenium/standalone-chrome:127.0.6533.119-chromedriver-127.0.6533.119-grid-4.41.0-20260222\nTagged selenium/node-chrome:127.0.6533.119-chromedriver-127.0.6533.119-20260222\nTagged selenium/standalone-chrome:127.0.6533.119-chromedriver-127.0.6533.119-20260222\nTagged selenium/node-chrome:127.0.6533.119-20260222\nTagged selenium/standalone-chrome:127.0.6533.119-20260222\nTagged selenium/node-chrome:127.0-chromedriver-127.0-grid-4.41.0-20260222\nTagged selenium/standalone-chrome:127.0-chromedriver-127.0-grid-4.41.0-20260222\nTagged selenium/node-chrome:127.0-chromedriver-127.0-20260222\nTagged selenium/standalone-chrome:127.0-chromedriver-127.0-20260222\nTagged selenium/node-chrome:127.0-20260222\nTagged selenium/standalone-chrome:127.0-20260222\n```\n"
  },
  {
    "path": "CHANGELOG/4.41.0/chrome_128.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.41.0 20260222 selenium false chrome true\nTagging images for browser chrome, version 4.41.0, build date 20260222, namespace selenium\nSelenium Grid version -> 4.41.0-20260222\nChrome version -> 128.0.6613.137\nShort Chrome version -> 128.0\nChromeDriver version -> 128.0.6613.137\nShort ChromeDriver version -> 128.0\nTagged selenium/node-chrome:128.0.6613.137-chromedriver-128.0.6613.137-grid-4.41.0-20260222\nTagged selenium/standalone-chrome:128.0.6613.137-chromedriver-128.0.6613.137-grid-4.41.0-20260222\nTagged selenium/node-chrome:128.0.6613.137-chromedriver-128.0.6613.137-20260222\nTagged selenium/standalone-chrome:128.0.6613.137-chromedriver-128.0.6613.137-20260222\nTagged selenium/node-chrome:128.0.6613.137-20260222\nTagged selenium/standalone-chrome:128.0.6613.137-20260222\nTagged selenium/node-chrome:128.0-chromedriver-128.0-grid-4.41.0-20260222\nTagged selenium/standalone-chrome:128.0-chromedriver-128.0-grid-4.41.0-20260222\nTagged selenium/node-chrome:128.0-chromedriver-128.0-20260222\nTagged selenium/standalone-chrome:128.0-chromedriver-128.0-20260222\nTagged selenium/node-chrome:128.0-20260222\nTagged selenium/standalone-chrome:128.0-20260222\n```\n"
  },
  {
    "path": "CHANGELOG/4.41.0/chrome_129.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.41.0 20260222 selenium false chrome true\nTagging images for browser chrome, version 4.41.0, build date 20260222, namespace selenium\nSelenium Grid version -> 4.41.0-20260222\nChrome version -> 129.0.6668.100\nShort Chrome version -> 129.0\nChromeDriver version -> 129.0.6668.100\nShort ChromeDriver version -> 129.0\nTagged selenium/node-chrome:129.0.6668.100-chromedriver-129.0.6668.100-grid-4.41.0-20260222\nTagged selenium/standalone-chrome:129.0.6668.100-chromedriver-129.0.6668.100-grid-4.41.0-20260222\nTagged selenium/node-chrome:129.0.6668.100-chromedriver-129.0.6668.100-20260222\nTagged selenium/standalone-chrome:129.0.6668.100-chromedriver-129.0.6668.100-20260222\nTagged selenium/node-chrome:129.0.6668.100-20260222\nTagged selenium/standalone-chrome:129.0.6668.100-20260222\nTagged selenium/node-chrome:129.0-chromedriver-129.0-grid-4.41.0-20260222\nTagged selenium/standalone-chrome:129.0-chromedriver-129.0-grid-4.41.0-20260222\nTagged selenium/node-chrome:129.0-chromedriver-129.0-20260222\nTagged selenium/standalone-chrome:129.0-chromedriver-129.0-20260222\nTagged selenium/node-chrome:129.0-20260222\nTagged selenium/standalone-chrome:129.0-20260222\n```\n"
  },
  {
    "path": "CHANGELOG/4.41.0/chrome_130.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.41.0 20260222 selenium false chrome true\nTagging images for browser chrome, version 4.41.0, build date 20260222, namespace selenium\nSelenium Grid version -> 4.41.0-20260222\nChrome version -> 130.0.6723.116\nShort Chrome version -> 130.0\nChromeDriver version -> 130.0.6723.116\nShort ChromeDriver version -> 130.0\nTagged selenium/node-chrome:130.0.6723.116-chromedriver-130.0.6723.116-grid-4.41.0-20260222\nTagged selenium/standalone-chrome:130.0.6723.116-chromedriver-130.0.6723.116-grid-4.41.0-20260222\nTagged selenium/node-chrome:130.0.6723.116-chromedriver-130.0.6723.116-20260222\nTagged selenium/standalone-chrome:130.0.6723.116-chromedriver-130.0.6723.116-20260222\nTagged selenium/node-chrome:130.0.6723.116-20260222\nTagged selenium/standalone-chrome:130.0.6723.116-20260222\nTagged selenium/node-chrome:130.0-chromedriver-130.0-grid-4.41.0-20260222\nTagged selenium/standalone-chrome:130.0-chromedriver-130.0-grid-4.41.0-20260222\nTagged selenium/node-chrome:130.0-chromedriver-130.0-20260222\nTagged selenium/standalone-chrome:130.0-chromedriver-130.0-20260222\nTagged selenium/node-chrome:130.0-20260222\nTagged selenium/standalone-chrome:130.0-20260222\n```\n"
  },
  {
    "path": "CHANGELOG/4.41.0/chrome_131.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.41.0 20260222 selenium false chrome true\nTagging images for browser chrome, version 4.41.0, build date 20260222, namespace selenium\nSelenium Grid version -> 4.41.0-20260222\nChrome version -> 131.0.6778.264\nShort Chrome version -> 131.0\nChromeDriver version -> 131.0.6778.264\nShort ChromeDriver version -> 131.0\nTagged selenium/node-chrome:131.0.6778.264-chromedriver-131.0.6778.264-grid-4.41.0-20260222\nTagged selenium/standalone-chrome:131.0.6778.264-chromedriver-131.0.6778.264-grid-4.41.0-20260222\nTagged selenium/node-chrome:131.0.6778.264-chromedriver-131.0.6778.264-20260222\nTagged selenium/standalone-chrome:131.0.6778.264-chromedriver-131.0.6778.264-20260222\nTagged selenium/node-chrome:131.0.6778.264-20260222\nTagged selenium/standalone-chrome:131.0.6778.264-20260222\nTagged selenium/node-chrome:131.0-chromedriver-131.0-grid-4.41.0-20260222\nTagged selenium/standalone-chrome:131.0-chromedriver-131.0-grid-4.41.0-20260222\nTagged selenium/node-chrome:131.0-chromedriver-131.0-20260222\nTagged selenium/standalone-chrome:131.0-chromedriver-131.0-20260222\nTagged selenium/node-chrome:131.0-20260222\nTagged selenium/standalone-chrome:131.0-20260222\n```\n"
  },
  {
    "path": "CHANGELOG/4.41.0/chrome_132.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.41.0 20260222 selenium false chrome true\nTagging images for browser chrome, version 4.41.0, build date 20260222, namespace selenium\nSelenium Grid version -> 4.41.0-20260222\nChrome version -> 132.0.6834.159\nShort Chrome version -> 132.0\nChromeDriver version -> 132.0.6834.159\nShort ChromeDriver version -> 132.0\nTagged selenium/node-chrome:132.0.6834.159-chromedriver-132.0.6834.159-grid-4.41.0-20260222\nTagged selenium/standalone-chrome:132.0.6834.159-chromedriver-132.0.6834.159-grid-4.41.0-20260222\nTagged selenium/node-chrome:132.0.6834.159-chromedriver-132.0.6834.159-20260222\nTagged selenium/standalone-chrome:132.0.6834.159-chromedriver-132.0.6834.159-20260222\nTagged selenium/node-chrome:132.0.6834.159-20260222\nTagged selenium/standalone-chrome:132.0.6834.159-20260222\nTagged selenium/node-chrome:132.0-chromedriver-132.0-grid-4.41.0-20260222\nTagged selenium/standalone-chrome:132.0-chromedriver-132.0-grid-4.41.0-20260222\nTagged selenium/node-chrome:132.0-chromedriver-132.0-20260222\nTagged selenium/standalone-chrome:132.0-chromedriver-132.0-20260222\nTagged selenium/node-chrome:132.0-20260222\nTagged selenium/standalone-chrome:132.0-20260222\n```\n"
  },
  {
    "path": "CHANGELOG/4.41.0/chrome_133.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.41.0 20260222 selenium false chrome true\nTagging images for browser chrome, version 4.41.0, build date 20260222, namespace selenium\nSelenium Grid version -> 4.41.0-20260222\nChrome version -> 133.0.6943.141\nShort Chrome version -> 133.0\nChromeDriver version -> 133.0.6943.141\nShort ChromeDriver version -> 133.0\nTagged selenium/node-chrome:133.0.6943.141-chromedriver-133.0.6943.141-grid-4.41.0-20260222\nTagged selenium/standalone-chrome:133.0.6943.141-chromedriver-133.0.6943.141-grid-4.41.0-20260222\nTagged selenium/node-chrome:133.0.6943.141-chromedriver-133.0.6943.141-20260222\nTagged selenium/standalone-chrome:133.0.6943.141-chromedriver-133.0.6943.141-20260222\nTagged selenium/node-chrome:133.0.6943.141-20260222\nTagged selenium/standalone-chrome:133.0.6943.141-20260222\nTagged selenium/node-chrome:133.0-chromedriver-133.0-grid-4.41.0-20260222\nTagged selenium/standalone-chrome:133.0-chromedriver-133.0-grid-4.41.0-20260222\nTagged selenium/node-chrome:133.0-chromedriver-133.0-20260222\nTagged selenium/standalone-chrome:133.0-chromedriver-133.0-20260222\nTagged selenium/node-chrome:133.0-20260222\nTagged selenium/standalone-chrome:133.0-20260222\n```\n"
  },
  {
    "path": "CHANGELOG/4.41.0/chrome_134.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.41.0 20260222 selenium false chrome true\nTagging images for browser chrome, version 4.41.0, build date 20260222, namespace selenium\nSelenium Grid version -> 4.41.0-20260222\nChrome version -> 134.0.6998.165\nShort Chrome version -> 134.0\nChromeDriver version -> 134.0.6998.165\nShort ChromeDriver version -> 134.0\nTagged selenium/node-chrome:134.0.6998.165-chromedriver-134.0.6998.165-grid-4.41.0-20260222\nTagged selenium/standalone-chrome:134.0.6998.165-chromedriver-134.0.6998.165-grid-4.41.0-20260222\nTagged selenium/node-chrome:134.0.6998.165-chromedriver-134.0.6998.165-20260222\nTagged selenium/standalone-chrome:134.0.6998.165-chromedriver-134.0.6998.165-20260222\nTagged selenium/node-chrome:134.0.6998.165-20260222\nTagged selenium/standalone-chrome:134.0.6998.165-20260222\nTagged selenium/node-chrome:134.0-chromedriver-134.0-grid-4.41.0-20260222\nTagged selenium/standalone-chrome:134.0-chromedriver-134.0-grid-4.41.0-20260222\nTagged selenium/node-chrome:134.0-chromedriver-134.0-20260222\nTagged selenium/standalone-chrome:134.0-chromedriver-134.0-20260222\nTagged selenium/node-chrome:134.0-20260222\nTagged selenium/standalone-chrome:134.0-20260222\n```\n"
  },
  {
    "path": "CHANGELOG/4.41.0/chrome_135.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.41.0 20260222 selenium false chrome true\nTagging images for browser chrome, version 4.41.0, build date 20260222, namespace selenium\nSelenium Grid version -> 4.41.0-20260222\nChrome version -> 135.0.7049.114\nShort Chrome version -> 135.0\nChromeDriver version -> 135.0.7049.114\nShort ChromeDriver version -> 135.0\nTagged selenium/node-chrome:135.0.7049.114-chromedriver-135.0.7049.114-grid-4.41.0-20260222\nTagged selenium/standalone-chrome:135.0.7049.114-chromedriver-135.0.7049.114-grid-4.41.0-20260222\nTagged selenium/node-chrome:135.0.7049.114-chromedriver-135.0.7049.114-20260222\nTagged selenium/standalone-chrome:135.0.7049.114-chromedriver-135.0.7049.114-20260222\nTagged selenium/node-chrome:135.0.7049.114-20260222\nTagged selenium/standalone-chrome:135.0.7049.114-20260222\nTagged selenium/node-chrome:135.0-chromedriver-135.0-grid-4.41.0-20260222\nTagged selenium/standalone-chrome:135.0-chromedriver-135.0-grid-4.41.0-20260222\nTagged selenium/node-chrome:135.0-chromedriver-135.0-20260222\nTagged selenium/standalone-chrome:135.0-chromedriver-135.0-20260222\nTagged selenium/node-chrome:135.0-20260222\nTagged selenium/standalone-chrome:135.0-20260222\n```\n"
  },
  {
    "path": "CHANGELOG/4.41.0/chrome_136.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.41.0 20260222 selenium false chrome true\nTagging images for browser chrome, version 4.41.0, build date 20260222, namespace selenium\nSelenium Grid version -> 4.41.0-20260222\nChrome version -> 136.0.7103.113\nShort Chrome version -> 136.0\nChromeDriver version -> 136.0.7103.113\nShort ChromeDriver version -> 136.0\nTagged selenium/node-chrome:136.0.7103.113-chromedriver-136.0.7103.113-grid-4.41.0-20260222\nTagged selenium/standalone-chrome:136.0.7103.113-chromedriver-136.0.7103.113-grid-4.41.0-20260222\nTagged selenium/node-chrome:136.0.7103.113-chromedriver-136.0.7103.113-20260222\nTagged selenium/standalone-chrome:136.0.7103.113-chromedriver-136.0.7103.113-20260222\nTagged selenium/node-chrome:136.0.7103.113-20260222\nTagged selenium/standalone-chrome:136.0.7103.113-20260222\nTagged selenium/node-chrome:136.0-chromedriver-136.0-grid-4.41.0-20260222\nTagged selenium/standalone-chrome:136.0-chromedriver-136.0-grid-4.41.0-20260222\nTagged selenium/node-chrome:136.0-chromedriver-136.0-20260222\nTagged selenium/standalone-chrome:136.0-chromedriver-136.0-20260222\nTagged selenium/node-chrome:136.0-20260222\nTagged selenium/standalone-chrome:136.0-20260222\n```\n"
  },
  {
    "path": "CHANGELOG/4.41.0/chrome_137.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.41.0 20260222 selenium false chrome true\nTagging images for browser chrome, version 4.41.0, build date 20260222, namespace selenium\nSelenium Grid version -> 4.41.0-20260222\nChrome version -> 137.0.7151.119\nShort Chrome version -> 137.0\nChromeDriver version -> 137.0.7151.119\nShort ChromeDriver version -> 137.0\nTagged selenium/node-chrome:137.0.7151.119-chromedriver-137.0.7151.119-grid-4.41.0-20260222\nTagged selenium/standalone-chrome:137.0.7151.119-chromedriver-137.0.7151.119-grid-4.41.0-20260222\nTagged selenium/node-chrome:137.0.7151.119-chromedriver-137.0.7151.119-20260222\nTagged selenium/standalone-chrome:137.0.7151.119-chromedriver-137.0.7151.119-20260222\nTagged selenium/node-chrome:137.0.7151.119-20260222\nTagged selenium/standalone-chrome:137.0.7151.119-20260222\nTagged selenium/node-chrome:137.0-chromedriver-137.0-grid-4.41.0-20260222\nTagged selenium/standalone-chrome:137.0-chromedriver-137.0-grid-4.41.0-20260222\nTagged selenium/node-chrome:137.0-chromedriver-137.0-20260222\nTagged selenium/standalone-chrome:137.0-chromedriver-137.0-20260222\nTagged selenium/node-chrome:137.0-20260222\nTagged selenium/standalone-chrome:137.0-20260222\n```\n"
  },
  {
    "path": "CHANGELOG/4.41.0/chrome_138.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.41.0 20260222 selenium false chrome true\nTagging images for browser chrome, version 4.41.0, build date 20260222, namespace selenium\nSelenium Grid version -> 4.41.0-20260222\nChrome version -> 138.0.7204.183\nShort Chrome version -> 138.0\nChromeDriver version -> 138.0.7204.183\nShort ChromeDriver version -> 138.0\nTagged selenium/node-chrome:138.0.7204.183-chromedriver-138.0.7204.183-grid-4.41.0-20260222\nTagged selenium/standalone-chrome:138.0.7204.183-chromedriver-138.0.7204.183-grid-4.41.0-20260222\nTagged selenium/node-chrome:138.0.7204.183-chromedriver-138.0.7204.183-20260222\nTagged selenium/standalone-chrome:138.0.7204.183-chromedriver-138.0.7204.183-20260222\nTagged selenium/node-chrome:138.0.7204.183-20260222\nTagged selenium/standalone-chrome:138.0.7204.183-20260222\nTagged selenium/node-chrome:138.0-chromedriver-138.0-grid-4.41.0-20260222\nTagged selenium/standalone-chrome:138.0-chromedriver-138.0-grid-4.41.0-20260222\nTagged selenium/node-chrome:138.0-chromedriver-138.0-20260222\nTagged selenium/standalone-chrome:138.0-chromedriver-138.0-20260222\nTagged selenium/node-chrome:138.0-20260222\nTagged selenium/standalone-chrome:138.0-20260222\n```\n"
  },
  {
    "path": "CHANGELOG/4.41.0/chrome_139.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.41.0 20260222 selenium false chrome true\nTagging images for browser chrome, version 4.41.0, build date 20260222, namespace selenium\nSelenium Grid version -> 4.41.0-20260222\nChrome version -> 139.0.7258.154\nShort Chrome version -> 139.0\nChromeDriver version -> 139.0.7258.154\nShort ChromeDriver version -> 139.0\nTagged selenium/node-chrome:139.0.7258.154-chromedriver-139.0.7258.154-grid-4.41.0-20260222\nTagged selenium/standalone-chrome:139.0.7258.154-chromedriver-139.0.7258.154-grid-4.41.0-20260222\nTagged selenium/node-chrome:139.0.7258.154-chromedriver-139.0.7258.154-20260222\nTagged selenium/standalone-chrome:139.0.7258.154-chromedriver-139.0.7258.154-20260222\nTagged selenium/node-chrome:139.0.7258.154-20260222\nTagged selenium/standalone-chrome:139.0.7258.154-20260222\nTagged selenium/node-chrome:139.0-chromedriver-139.0-grid-4.41.0-20260222\nTagged selenium/standalone-chrome:139.0-chromedriver-139.0-grid-4.41.0-20260222\nTagged selenium/node-chrome:139.0-chromedriver-139.0-20260222\nTagged selenium/standalone-chrome:139.0-chromedriver-139.0-20260222\nTagged selenium/node-chrome:139.0-20260222\nTagged selenium/standalone-chrome:139.0-20260222\n```\n"
  },
  {
    "path": "CHANGELOG/4.41.0/chrome_140.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.41.0 20260222 selenium false chrome true\nTagging images for browser chrome, version 4.41.0, build date 20260222, namespace selenium\nSelenium Grid version -> 4.41.0-20260222\nChrome version -> 140.0.7339.207\nShort Chrome version -> 140.0\nChromeDriver version -> 140.0.7339.207\nShort ChromeDriver version -> 140.0\nTagged selenium/node-chrome:140.0.7339.207-chromedriver-140.0.7339.207-grid-4.41.0-20260222\nTagged selenium/standalone-chrome:140.0.7339.207-chromedriver-140.0.7339.207-grid-4.41.0-20260222\nTagged selenium/node-chrome:140.0.7339.207-chromedriver-140.0.7339.207-20260222\nTagged selenium/standalone-chrome:140.0.7339.207-chromedriver-140.0.7339.207-20260222\nTagged selenium/node-chrome:140.0.7339.207-20260222\nTagged selenium/standalone-chrome:140.0.7339.207-20260222\nTagged selenium/node-chrome:140.0-chromedriver-140.0-grid-4.41.0-20260222\nTagged selenium/standalone-chrome:140.0-chromedriver-140.0-grid-4.41.0-20260222\nTagged selenium/node-chrome:140.0-chromedriver-140.0-20260222\nTagged selenium/standalone-chrome:140.0-chromedriver-140.0-20260222\nTagged selenium/node-chrome:140.0-20260222\nTagged selenium/standalone-chrome:140.0-20260222\n```\n"
  },
  {
    "path": "CHANGELOG/4.41.0/chrome_141.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.41.0 20260222 selenium false chrome true\nTagging images for browser chrome, version 4.41.0, build date 20260222, namespace selenium\nSelenium Grid version -> 4.41.0-20260222\nChrome version -> 141.0.7390.122\nShort Chrome version -> 141.0\nChromeDriver version -> 141.0.7390.122\nShort ChromeDriver version -> 141.0\nTagged selenium/node-chrome:141.0.7390.122-chromedriver-141.0.7390.122-grid-4.41.0-20260222\nTagged selenium/standalone-chrome:141.0.7390.122-chromedriver-141.0.7390.122-grid-4.41.0-20260222\nTagged selenium/node-chrome:141.0.7390.122-chromedriver-141.0.7390.122-20260222\nTagged selenium/standalone-chrome:141.0.7390.122-chromedriver-141.0.7390.122-20260222\nTagged selenium/node-chrome:141.0.7390.122-20260222\nTagged selenium/standalone-chrome:141.0.7390.122-20260222\nTagged selenium/node-chrome:141.0-chromedriver-141.0-grid-4.41.0-20260222\nTagged selenium/standalone-chrome:141.0-chromedriver-141.0-grid-4.41.0-20260222\nTagged selenium/node-chrome:141.0-chromedriver-141.0-20260222\nTagged selenium/standalone-chrome:141.0-chromedriver-141.0-20260222\nTagged selenium/node-chrome:141.0-20260222\nTagged selenium/standalone-chrome:141.0-20260222\n```\n"
  },
  {
    "path": "CHANGELOG/4.41.0/chrome_142.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.41.0 20260222 selenium false chrome true\nTagging images for browser chrome, version 4.41.0, build date 20260222, namespace selenium\nSelenium Grid version -> 4.41.0-20260222\nChrome version -> 142.0.7444.175\nShort Chrome version -> 142.0\nChromeDriver version -> 142.0.7444.175\nShort ChromeDriver version -> 142.0\nTagged selenium/node-chrome:142.0.7444.175-chromedriver-142.0.7444.175-grid-4.41.0-20260222\nTagged selenium/standalone-chrome:142.0.7444.175-chromedriver-142.0.7444.175-grid-4.41.0-20260222\nTagged selenium/node-chrome:142.0.7444.175-chromedriver-142.0.7444.175-20260222\nTagged selenium/standalone-chrome:142.0.7444.175-chromedriver-142.0.7444.175-20260222\nTagged selenium/node-chrome:142.0.7444.175-20260222\nTagged selenium/standalone-chrome:142.0.7444.175-20260222\nTagged selenium/node-chrome:142.0-chromedriver-142.0-grid-4.41.0-20260222\nTagged selenium/standalone-chrome:142.0-chromedriver-142.0-grid-4.41.0-20260222\nTagged selenium/node-chrome:142.0-chromedriver-142.0-20260222\nTagged selenium/standalone-chrome:142.0-chromedriver-142.0-20260222\nTagged selenium/node-chrome:142.0-20260222\nTagged selenium/standalone-chrome:142.0-20260222\n```\n"
  },
  {
    "path": "CHANGELOG/4.41.0/chrome_143.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.41.0 20260222 selenium false chrome true\nTagging images for browser chrome, version 4.41.0, build date 20260222, namespace selenium\nSelenium Grid version -> 4.41.0-20260222\nChrome version -> 143.0.7499.192\nShort Chrome version -> 143.0\nChromeDriver version -> 143.0.7499.192\nShort ChromeDriver version -> 143.0\nTagged selenium/node-chrome:143.0.7499.192-chromedriver-143.0.7499.192-grid-4.41.0-20260222\nTagged selenium/standalone-chrome:143.0.7499.192-chromedriver-143.0.7499.192-grid-4.41.0-20260222\nTagged selenium/node-chrome:143.0.7499.192-chromedriver-143.0.7499.192-20260222\nTagged selenium/standalone-chrome:143.0.7499.192-chromedriver-143.0.7499.192-20260222\nTagged selenium/node-chrome:143.0.7499.192-20260222\nTagged selenium/standalone-chrome:143.0.7499.192-20260222\nTagged selenium/node-chrome:143.0-chromedriver-143.0-grid-4.41.0-20260222\nTagged selenium/standalone-chrome:143.0-chromedriver-143.0-grid-4.41.0-20260222\nTagged selenium/node-chrome:143.0-chromedriver-143.0-20260222\nTagged selenium/standalone-chrome:143.0-chromedriver-143.0-20260222\nTagged selenium/node-chrome:143.0-20260222\nTagged selenium/standalone-chrome:143.0-20260222\n```\n"
  },
  {
    "path": "CHANGELOG/4.41.0/chrome_144.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.41.0 20260222 selenium false chrome true\nTagging images for browser chrome, version 4.41.0, build date 20260222, namespace selenium\nSelenium Grid version -> 4.41.0-20260222\nChrome version -> 144.0.7559.132\nShort Chrome version -> 144.0\nChromeDriver version -> 144.0.7559.133\nShort ChromeDriver version -> 144.0\nTagged selenium/node-chrome:144.0.7559.132-chromedriver-144.0.7559.133-grid-4.41.0-20260222\nTagged selenium/standalone-chrome:144.0.7559.132-chromedriver-144.0.7559.133-grid-4.41.0-20260222\nTagged selenium/node-chrome:144.0.7559.132-chromedriver-144.0.7559.133-20260222\nTagged selenium/standalone-chrome:144.0.7559.132-chromedriver-144.0.7559.133-20260222\nTagged selenium/node-chrome:144.0.7559.132-20260222\nTagged selenium/standalone-chrome:144.0.7559.132-20260222\nTagged selenium/node-chrome:144.0-chromedriver-144.0-grid-4.41.0-20260222\nTagged selenium/standalone-chrome:144.0-chromedriver-144.0-grid-4.41.0-20260222\nTagged selenium/node-chrome:144.0-chromedriver-144.0-20260222\nTagged selenium/standalone-chrome:144.0-chromedriver-144.0-20260222\nTagged selenium/node-chrome:144.0-20260222\nTagged selenium/standalone-chrome:144.0-20260222\n```\n"
  },
  {
    "path": "CHANGELOG/4.41.0/chrome_145.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.41.0 20260222 selenium false chrome true\nTagging images for browser chrome, version 4.41.0, build date 20260222, namespace selenium\nSelenium Grid version -> 4.41.0-20260222\nChrome version -> 145.0.7632.116\nShort Chrome version -> 145.0\nChromeDriver version -> 145.0.7632.117\nShort ChromeDriver version -> 145.0\nTagged selenium/node-chrome:145.0.7632.116-chromedriver-145.0.7632.117-grid-4.41.0-20260222\nTagged selenium/standalone-chrome:145.0.7632.116-chromedriver-145.0.7632.117-grid-4.41.0-20260222\nTagged selenium/node-chrome:145.0.7632.116-chromedriver-145.0.7632.117-20260222\nTagged selenium/standalone-chrome:145.0.7632.116-chromedriver-145.0.7632.117-20260222\nTagged selenium/node-chrome:145.0.7632.116-20260222\nTagged selenium/standalone-chrome:145.0.7632.116-20260222\nTagged selenium/node-chrome:145.0-chromedriver-145.0-grid-4.41.0-20260222\nTagged selenium/standalone-chrome:145.0-chromedriver-145.0-grid-4.41.0-20260222\nTagged selenium/node-chrome:145.0-chromedriver-145.0-20260222\nTagged selenium/standalone-chrome:145.0-chromedriver-145.0-20260222\nTagged selenium/node-chrome:145.0-20260222\nTagged selenium/standalone-chrome:145.0-20260222\n```\n"
  },
  {
    "path": "CHANGELOG/4.41.0/chrome_95.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.41.0 20260222 selenium false chrome true\nTagging images for browser chrome, version 4.41.0, build date 20260222, namespace selenium\nSelenium Grid version -> 4.41.0-20260222\nChrome version -> 95.0.4638.69\nShort Chrome version -> 95.0\nChromeDriver version -> 95.0.4638.69\nShort ChromeDriver version -> 95.0\nTagged selenium/node-chrome:95.0.4638.69-chromedriver-95.0.4638.69-grid-4.41.0-20260222\nTagged selenium/standalone-chrome:95.0.4638.69-chromedriver-95.0.4638.69-grid-4.41.0-20260222\nTagged selenium/node-chrome:95.0.4638.69-chromedriver-95.0.4638.69-20260222\nTagged selenium/standalone-chrome:95.0.4638.69-chromedriver-95.0.4638.69-20260222\nTagged selenium/node-chrome:95.0.4638.69-20260222\nTagged selenium/standalone-chrome:95.0.4638.69-20260222\nTagged selenium/node-chrome:95.0-chromedriver-95.0-grid-4.41.0-20260222\nTagged selenium/standalone-chrome:95.0-chromedriver-95.0-grid-4.41.0-20260222\nTagged selenium/node-chrome:95.0-chromedriver-95.0-20260222\nTagged selenium/standalone-chrome:95.0-chromedriver-95.0-20260222\nTagged selenium/node-chrome:95.0-20260222\nTagged selenium/standalone-chrome:95.0-20260222\n```\n"
  },
  {
    "path": "CHANGELOG/4.41.0/chrome_96.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.41.0 20260222 selenium false chrome true\nTagging images for browser chrome, version 4.41.0, build date 20260222, namespace selenium\nSelenium Grid version -> 4.41.0-20260222\nChrome version -> 96.0.4664.110\nShort Chrome version -> 96.0\nChromeDriver version -> 96.0.4664.45\nShort ChromeDriver version -> 96.0\nTagged selenium/node-chrome:96.0.4664.110-chromedriver-96.0.4664.45-grid-4.41.0-20260222\nTagged selenium/standalone-chrome:96.0.4664.110-chromedriver-96.0.4664.45-grid-4.41.0-20260222\nTagged selenium/node-chrome:96.0.4664.110-chromedriver-96.0.4664.45-20260222\nTagged selenium/standalone-chrome:96.0.4664.110-chromedriver-96.0.4664.45-20260222\nTagged selenium/node-chrome:96.0.4664.110-20260222\nTagged selenium/standalone-chrome:96.0.4664.110-20260222\nTagged selenium/node-chrome:96.0-chromedriver-96.0-grid-4.41.0-20260222\nTagged selenium/standalone-chrome:96.0-chromedriver-96.0-grid-4.41.0-20260222\nTagged selenium/node-chrome:96.0-chromedriver-96.0-20260222\nTagged selenium/standalone-chrome:96.0-chromedriver-96.0-20260222\nTagged selenium/node-chrome:96.0-20260222\nTagged selenium/standalone-chrome:96.0-20260222\n```\n"
  },
  {
    "path": "CHANGELOG/4.41.0/chrome_97.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.41.0 20260222 selenium false chrome true\nTagging images for browser chrome, version 4.41.0, build date 20260222, namespace selenium\nSelenium Grid version -> 4.41.0-20260222\nChrome version -> 97.0.4692.99\nShort Chrome version -> 97.0\nChromeDriver version -> 97.0.4692.71\nShort ChromeDriver version -> 97.0\nTagged selenium/node-chrome:97.0.4692.99-chromedriver-97.0.4692.71-grid-4.41.0-20260222\nTagged selenium/standalone-chrome:97.0.4692.99-chromedriver-97.0.4692.71-grid-4.41.0-20260222\nTagged selenium/node-chrome:97.0.4692.99-chromedriver-97.0.4692.71-20260222\nTagged selenium/standalone-chrome:97.0.4692.99-chromedriver-97.0.4692.71-20260222\nTagged selenium/node-chrome:97.0.4692.99-20260222\nTagged selenium/standalone-chrome:97.0.4692.99-20260222\nTagged selenium/node-chrome:97.0-chromedriver-97.0-grid-4.41.0-20260222\nTagged selenium/standalone-chrome:97.0-chromedriver-97.0-grid-4.41.0-20260222\nTagged selenium/node-chrome:97.0-chromedriver-97.0-20260222\nTagged selenium/standalone-chrome:97.0-chromedriver-97.0-20260222\nTagged selenium/node-chrome:97.0-20260222\nTagged selenium/standalone-chrome:97.0-20260222\n```\n"
  },
  {
    "path": "CHANGELOG/4.41.0/chrome_98.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.41.0 20260222 selenium false chrome true\nTagging images for browser chrome, version 4.41.0, build date 20260222, namespace selenium\nSelenium Grid version -> 4.41.0-20260222\nChrome version -> 98.0.4758.102\nShort Chrome version -> 98.0\nChromeDriver version -> 98.0.4758.102\nShort ChromeDriver version -> 98.0\nTagged selenium/node-chrome:98.0.4758.102-chromedriver-98.0.4758.102-grid-4.41.0-20260222\nTagged selenium/standalone-chrome:98.0.4758.102-chromedriver-98.0.4758.102-grid-4.41.0-20260222\nTagged selenium/node-chrome:98.0.4758.102-chromedriver-98.0.4758.102-20260222\nTagged selenium/standalone-chrome:98.0.4758.102-chromedriver-98.0.4758.102-20260222\nTagged selenium/node-chrome:98.0.4758.102-20260222\nTagged selenium/standalone-chrome:98.0.4758.102-20260222\nTagged selenium/node-chrome:98.0-chromedriver-98.0-grid-4.41.0-20260222\nTagged selenium/standalone-chrome:98.0-chromedriver-98.0-grid-4.41.0-20260222\nTagged selenium/node-chrome:98.0-chromedriver-98.0-20260222\nTagged selenium/standalone-chrome:98.0-chromedriver-98.0-20260222\nTagged selenium/node-chrome:98.0-20260222\nTagged selenium/standalone-chrome:98.0-20260222\n```\n"
  },
  {
    "path": "CHANGELOG/4.41.0/chrome_99.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.41.0 20260222 selenium false chrome true\nTagging images for browser chrome, version 4.41.0, build date 20260222, namespace selenium\nSelenium Grid version -> 4.41.0-20260222\nChrome version -> 99.0.4844.84\nShort Chrome version -> 99.0\nChromeDriver version -> 99.0.4844.51\nShort ChromeDriver version -> 99.0\nTagged selenium/node-chrome:99.0.4844.84-chromedriver-99.0.4844.51-grid-4.41.0-20260222\nTagged selenium/standalone-chrome:99.0.4844.84-chromedriver-99.0.4844.51-grid-4.41.0-20260222\nTagged selenium/node-chrome:99.0.4844.84-chromedriver-99.0.4844.51-20260222\nTagged selenium/standalone-chrome:99.0.4844.84-chromedriver-99.0.4844.51-20260222\nTagged selenium/node-chrome:99.0.4844.84-20260222\nTagged selenium/standalone-chrome:99.0.4844.84-20260222\nTagged selenium/node-chrome:99.0-chromedriver-99.0-grid-4.41.0-20260222\nTagged selenium/standalone-chrome:99.0-chromedriver-99.0-grid-4.41.0-20260222\nTagged selenium/node-chrome:99.0-chromedriver-99.0-20260222\nTagged selenium/standalone-chrome:99.0-chromedriver-99.0-20260222\nTagged selenium/node-chrome:99.0-20260222\nTagged selenium/standalone-chrome:99.0-20260222\n```\n"
  },
  {
    "path": "CHANGELOG/4.41.0/edge_114.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.41.0 20260222 selenium false edge true\nTagging images for browser edge, version 4.41.0, build date 20260222, namespace selenium\nSelenium Grid version -> 4.41.0-20260222\nEdge version -> 114.0.1823.82\nShort Edge version -> 114.0\nEdgeDriver version -> 114.0.1823.82\nShort EdgeDriver version -> 114.0\nTagged selenium/node-edge:114.0.1823.82-edgedriver-114.0.1823.82-grid-4.41.0-20260222\nTagged selenium/standalone-edge:114.0.1823.82-edgedriver-114.0.1823.82-grid-4.41.0-20260222\nTagged selenium/node-edge:114.0.1823.82-edgedriver-114.0.1823.82-20260222\nTagged selenium/standalone-edge:114.0.1823.82-edgedriver-114.0.1823.82-20260222\nTagged selenium/node-edge:114.0.1823.82-20260222\nTagged selenium/standalone-edge:114.0.1823.82-20260222\nTagged selenium/node-edge:114.0-edgedriver-114.0-grid-4.41.0-20260222\nTagged selenium/standalone-edge:114.0-edgedriver-114.0-grid-4.41.0-20260222\nTagged selenium/node-edge:114.0-edgedriver-114.0-20260222\nTagged selenium/standalone-edge:114.0-edgedriver-114.0-20260222\nTagged selenium/node-edge:114.0-20260222\nTagged selenium/standalone-edge:114.0-20260222\n```\n"
  },
  {
    "path": "CHANGELOG/4.41.0/edge_115.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.41.0 20260222 selenium false edge true\nTagging images for browser edge, version 4.41.0, build date 20260222, namespace selenium\nSelenium Grid version -> 4.41.0-20260222\nEdge version -> 115.0.1901.203\nShort Edge version -> 115.0\nEdgeDriver version -> 115.0.1901.203\nShort EdgeDriver version -> 115.0\nTagged selenium/node-edge:115.0.1901.203-edgedriver-115.0.1901.203-grid-4.41.0-20260222\nTagged selenium/standalone-edge:115.0.1901.203-edgedriver-115.0.1901.203-grid-4.41.0-20260222\nTagged selenium/node-edge:115.0.1901.203-edgedriver-115.0.1901.203-20260222\nTagged selenium/standalone-edge:115.0.1901.203-edgedriver-115.0.1901.203-20260222\nTagged selenium/node-edge:115.0.1901.203-20260222\nTagged selenium/standalone-edge:115.0.1901.203-20260222\nTagged selenium/node-edge:115.0-edgedriver-115.0-grid-4.41.0-20260222\nTagged selenium/standalone-edge:115.0-edgedriver-115.0-grid-4.41.0-20260222\nTagged selenium/node-edge:115.0-edgedriver-115.0-20260222\nTagged selenium/standalone-edge:115.0-edgedriver-115.0-20260222\nTagged selenium/node-edge:115.0-20260222\nTagged selenium/standalone-edge:115.0-20260222\n```\n"
  },
  {
    "path": "CHANGELOG/4.41.0/edge_116.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.41.0 20260222 selenium false edge true\nTagging images for browser edge, version 4.41.0, build date 20260222, namespace selenium\nSelenium Grid version -> 4.41.0-20260222\nEdge version -> 116.0.1938.81\nShort Edge version -> 116.0\nEdgeDriver version -> 116.0.1938.81\nShort EdgeDriver version -> 116.0\nTagged selenium/node-edge:116.0.1938.81-edgedriver-116.0.1938.81-grid-4.41.0-20260222\nTagged selenium/standalone-edge:116.0.1938.81-edgedriver-116.0.1938.81-grid-4.41.0-20260222\nTagged selenium/node-edge:116.0.1938.81-edgedriver-116.0.1938.81-20260222\nTagged selenium/standalone-edge:116.0.1938.81-edgedriver-116.0.1938.81-20260222\nTagged selenium/node-edge:116.0.1938.81-20260222\nTagged selenium/standalone-edge:116.0.1938.81-20260222\nTagged selenium/node-edge:116.0-edgedriver-116.0-grid-4.41.0-20260222\nTagged selenium/standalone-edge:116.0-edgedriver-116.0-grid-4.41.0-20260222\nTagged selenium/node-edge:116.0-edgedriver-116.0-20260222\nTagged selenium/standalone-edge:116.0-edgedriver-116.0-20260222\nTagged selenium/node-edge:116.0-20260222\nTagged selenium/standalone-edge:116.0-20260222\n```\n"
  },
  {
    "path": "CHANGELOG/4.41.0/edge_117.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.41.0 20260222 selenium false edge true\nTagging images for browser edge, version 4.41.0, build date 20260222, namespace selenium\nSelenium Grid version -> 4.41.0-20260222\nEdge version -> 117.0.2045.55\nShort Edge version -> 117.0\nEdgeDriver version -> 117.0.2045.55\nShort EdgeDriver version -> 117.0\nTagged selenium/node-edge:117.0.2045.55-edgedriver-117.0.2045.55-grid-4.41.0-20260222\nTagged selenium/standalone-edge:117.0.2045.55-edgedriver-117.0.2045.55-grid-4.41.0-20260222\nTagged selenium/node-edge:117.0.2045.55-edgedriver-117.0.2045.55-20260222\nTagged selenium/standalone-edge:117.0.2045.55-edgedriver-117.0.2045.55-20260222\nTagged selenium/node-edge:117.0.2045.55-20260222\nTagged selenium/standalone-edge:117.0.2045.55-20260222\nTagged selenium/node-edge:117.0-edgedriver-117.0-grid-4.41.0-20260222\nTagged selenium/standalone-edge:117.0-edgedriver-117.0-grid-4.41.0-20260222\nTagged selenium/node-edge:117.0-edgedriver-117.0-20260222\nTagged selenium/standalone-edge:117.0-edgedriver-117.0-20260222\nTagged selenium/node-edge:117.0-20260222\nTagged selenium/standalone-edge:117.0-20260222\n```\n"
  },
  {
    "path": "CHANGELOG/4.41.0/edge_118.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.41.0 20260222 selenium false edge true\nTagging images for browser edge, version 4.41.0, build date 20260222, namespace selenium\nSelenium Grid version -> 4.41.0-20260222\nEdge version -> 118.0.2088.76\nShort Edge version -> 118.0\nEdgeDriver version -> 118.0.2088.76\nShort EdgeDriver version -> 118.0\nTagged selenium/node-edge:118.0.2088.76-edgedriver-118.0.2088.76-grid-4.41.0-20260222\nTagged selenium/standalone-edge:118.0.2088.76-edgedriver-118.0.2088.76-grid-4.41.0-20260222\nTagged selenium/node-edge:118.0.2088.76-edgedriver-118.0.2088.76-20260222\nTagged selenium/standalone-edge:118.0.2088.76-edgedriver-118.0.2088.76-20260222\nTagged selenium/node-edge:118.0.2088.76-20260222\nTagged selenium/standalone-edge:118.0.2088.76-20260222\nTagged selenium/node-edge:118.0-edgedriver-118.0-grid-4.41.0-20260222\nTagged selenium/standalone-edge:118.0-edgedriver-118.0-grid-4.41.0-20260222\nTagged selenium/node-edge:118.0-edgedriver-118.0-20260222\nTagged selenium/standalone-edge:118.0-edgedriver-118.0-20260222\nTagged selenium/node-edge:118.0-20260222\nTagged selenium/standalone-edge:118.0-20260222\n```\n"
  },
  {
    "path": "CHANGELOG/4.41.0/edge_119.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.41.0 20260222 selenium false edge true\nTagging images for browser edge, version 4.41.0, build date 20260222, namespace selenium\nSelenium Grid version -> 4.41.0-20260222\nEdge version -> 119.0.2151.97\nShort Edge version -> 119.0\nEdgeDriver version -> 119.0.2151.97\nShort EdgeDriver version -> 119.0\nTagged selenium/node-edge:119.0.2151.97-edgedriver-119.0.2151.97-grid-4.41.0-20260222\nTagged selenium/standalone-edge:119.0.2151.97-edgedriver-119.0.2151.97-grid-4.41.0-20260222\nTagged selenium/node-edge:119.0.2151.97-edgedriver-119.0.2151.97-20260222\nTagged selenium/standalone-edge:119.0.2151.97-edgedriver-119.0.2151.97-20260222\nTagged selenium/node-edge:119.0.2151.97-20260222\nTagged selenium/standalone-edge:119.0.2151.97-20260222\nTagged selenium/node-edge:119.0-edgedriver-119.0-grid-4.41.0-20260222\nTagged selenium/standalone-edge:119.0-edgedriver-119.0-grid-4.41.0-20260222\nTagged selenium/node-edge:119.0-edgedriver-119.0-20260222\nTagged selenium/standalone-edge:119.0-edgedriver-119.0-20260222\nTagged selenium/node-edge:119.0-20260222\nTagged selenium/standalone-edge:119.0-20260222\n```\n"
  },
  {
    "path": "CHANGELOG/4.41.0/edge_120.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.41.0 20260222 selenium false edge true\nTagging images for browser edge, version 4.41.0, build date 20260222, namespace selenium\nSelenium Grid version -> 4.41.0-20260222\nEdge version -> 120.0.2210.144\nShort Edge version -> 120.0\nEdgeDriver version -> 120.0.2210.144\nShort EdgeDriver version -> 120.0\nTagged selenium/node-edge:120.0.2210.144-edgedriver-120.0.2210.144-grid-4.41.0-20260222\nTagged selenium/standalone-edge:120.0.2210.144-edgedriver-120.0.2210.144-grid-4.41.0-20260222\nTagged selenium/node-edge:120.0.2210.144-edgedriver-120.0.2210.144-20260222\nTagged selenium/standalone-edge:120.0.2210.144-edgedriver-120.0.2210.144-20260222\nTagged selenium/node-edge:120.0.2210.144-20260222\nTagged selenium/standalone-edge:120.0.2210.144-20260222\nTagged selenium/node-edge:120.0-edgedriver-120.0-grid-4.41.0-20260222\nTagged selenium/standalone-edge:120.0-edgedriver-120.0-grid-4.41.0-20260222\nTagged selenium/node-edge:120.0-edgedriver-120.0-20260222\nTagged selenium/standalone-edge:120.0-edgedriver-120.0-20260222\nTagged selenium/node-edge:120.0-20260222\nTagged selenium/standalone-edge:120.0-20260222\n```\n"
  },
  {
    "path": "CHANGELOG/4.41.0/edge_121.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.41.0 20260222 selenium false edge true\nTagging images for browser edge, version 4.41.0, build date 20260222, namespace selenium\nSelenium Grid version -> 4.41.0-20260222\nEdge version -> 121.0.2277.128\nShort Edge version -> 121.0\nEdgeDriver version -> 121.0.2277.128\nShort EdgeDriver version -> 121.0\nTagged selenium/node-edge:121.0.2277.128-edgedriver-121.0.2277.128-grid-4.41.0-20260222\nTagged selenium/standalone-edge:121.0.2277.128-edgedriver-121.0.2277.128-grid-4.41.0-20260222\nTagged selenium/node-edge:121.0.2277.128-edgedriver-121.0.2277.128-20260222\nTagged selenium/standalone-edge:121.0.2277.128-edgedriver-121.0.2277.128-20260222\nTagged selenium/node-edge:121.0.2277.128-20260222\nTagged selenium/standalone-edge:121.0.2277.128-20260222\nTagged selenium/node-edge:121.0-edgedriver-121.0-grid-4.41.0-20260222\nTagged selenium/standalone-edge:121.0-edgedriver-121.0-grid-4.41.0-20260222\nTagged selenium/node-edge:121.0-edgedriver-121.0-20260222\nTagged selenium/standalone-edge:121.0-edgedriver-121.0-20260222\nTagged selenium/node-edge:121.0-20260222\nTagged selenium/standalone-edge:121.0-20260222\n```\n"
  },
  {
    "path": "CHANGELOG/4.41.0/edge_122.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.41.0 20260222 selenium false edge true\nTagging images for browser edge, version 4.41.0, build date 20260222, namespace selenium\nSelenium Grid version -> 4.41.0-20260222\nEdge version -> 122.0.2365.92\nShort Edge version -> 122.0\nEdgeDriver version -> 122.0.2365.92\nShort EdgeDriver version -> 122.0\nTagged selenium/node-edge:122.0.2365.92-edgedriver-122.0.2365.92-grid-4.41.0-20260222\nTagged selenium/standalone-edge:122.0.2365.92-edgedriver-122.0.2365.92-grid-4.41.0-20260222\nTagged selenium/node-edge:122.0.2365.92-edgedriver-122.0.2365.92-20260222\nTagged selenium/standalone-edge:122.0.2365.92-edgedriver-122.0.2365.92-20260222\nTagged selenium/node-edge:122.0.2365.92-20260222\nTagged selenium/standalone-edge:122.0.2365.92-20260222\nTagged selenium/node-edge:122.0-edgedriver-122.0-grid-4.41.0-20260222\nTagged selenium/standalone-edge:122.0-edgedriver-122.0-grid-4.41.0-20260222\nTagged selenium/node-edge:122.0-edgedriver-122.0-20260222\nTagged selenium/standalone-edge:122.0-edgedriver-122.0-20260222\nTagged selenium/node-edge:122.0-20260222\nTagged selenium/standalone-edge:122.0-20260222\n```\n"
  },
  {
    "path": "CHANGELOG/4.41.0/edge_123.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.41.0 20260222 selenium false edge true\nTagging images for browser edge, version 4.41.0, build date 20260222, namespace selenium\nSelenium Grid version -> 4.41.0-20260222\nEdge version -> 123.0.2420.97\nShort Edge version -> 123.0\nEdgeDriver version -> 123.0.2420.97\nShort EdgeDriver version -> 123.0\nTagged selenium/node-edge:123.0.2420.97-edgedriver-123.0.2420.97-grid-4.41.0-20260222\nTagged selenium/standalone-edge:123.0.2420.97-edgedriver-123.0.2420.97-grid-4.41.0-20260222\nTagged selenium/node-edge:123.0.2420.97-edgedriver-123.0.2420.97-20260222\nTagged selenium/standalone-edge:123.0.2420.97-edgedriver-123.0.2420.97-20260222\nTagged selenium/node-edge:123.0.2420.97-20260222\nTagged selenium/standalone-edge:123.0.2420.97-20260222\nTagged selenium/node-edge:123.0-edgedriver-123.0-grid-4.41.0-20260222\nTagged selenium/standalone-edge:123.0-edgedriver-123.0-grid-4.41.0-20260222\nTagged selenium/node-edge:123.0-edgedriver-123.0-20260222\nTagged selenium/standalone-edge:123.0-edgedriver-123.0-20260222\nTagged selenium/node-edge:123.0-20260222\nTagged selenium/standalone-edge:123.0-20260222\n```\n"
  },
  {
    "path": "CHANGELOG/4.41.0/edge_124.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.41.0 20260222 selenium false edge true\nTagging images for browser edge, version 4.41.0, build date 20260222, namespace selenium\nSelenium Grid version -> 4.41.0-20260222\nEdge version -> 124.0.2478.109\nShort Edge version -> 124.0\nEdgeDriver version -> 124.0.2478.109\nShort EdgeDriver version -> 124.0\nTagged selenium/node-edge:124.0.2478.109-edgedriver-124.0.2478.109-grid-4.41.0-20260222\nTagged selenium/standalone-edge:124.0.2478.109-edgedriver-124.0.2478.109-grid-4.41.0-20260222\nTagged selenium/node-edge:124.0.2478.109-edgedriver-124.0.2478.109-20260222\nTagged selenium/standalone-edge:124.0.2478.109-edgedriver-124.0.2478.109-20260222\nTagged selenium/node-edge:124.0.2478.109-20260222\nTagged selenium/standalone-edge:124.0.2478.109-20260222\nTagged selenium/node-edge:124.0-edgedriver-124.0-grid-4.41.0-20260222\nTagged selenium/standalone-edge:124.0-edgedriver-124.0-grid-4.41.0-20260222\nTagged selenium/node-edge:124.0-edgedriver-124.0-20260222\nTagged selenium/standalone-edge:124.0-edgedriver-124.0-20260222\nTagged selenium/node-edge:124.0-20260222\nTagged selenium/standalone-edge:124.0-20260222\n```\n"
  },
  {
    "path": "CHANGELOG/4.41.0/edge_125.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.41.0 20260222 selenium false edge true\nTagging images for browser edge, version 4.41.0, build date 20260222, namespace selenium\nSelenium Grid version -> 4.41.0-20260222\nEdge version -> 125.0.2535.92\nShort Edge version -> 125.0\nEdgeDriver version -> 125.0.2535.92\nShort EdgeDriver version -> 125.0\nTagged selenium/node-edge:125.0.2535.92-edgedriver-125.0.2535.92-grid-4.41.0-20260222\nTagged selenium/standalone-edge:125.0.2535.92-edgedriver-125.0.2535.92-grid-4.41.0-20260222\nTagged selenium/node-edge:125.0.2535.92-edgedriver-125.0.2535.92-20260222\nTagged selenium/standalone-edge:125.0.2535.92-edgedriver-125.0.2535.92-20260222\nTagged selenium/node-edge:125.0.2535.92-20260222\nTagged selenium/standalone-edge:125.0.2535.92-20260222\nTagged selenium/node-edge:125.0-edgedriver-125.0-grid-4.41.0-20260222\nTagged selenium/standalone-edge:125.0-edgedriver-125.0-grid-4.41.0-20260222\nTagged selenium/node-edge:125.0-edgedriver-125.0-20260222\nTagged selenium/standalone-edge:125.0-edgedriver-125.0-20260222\nTagged selenium/node-edge:125.0-20260222\nTagged selenium/standalone-edge:125.0-20260222\n```\n"
  },
  {
    "path": "CHANGELOG/4.41.0/edge_126.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.41.0 20260222 selenium false edge true\nTagging images for browser edge, version 4.41.0, build date 20260222, namespace selenium\nSelenium Grid version -> 4.41.0-20260222\nEdge version -> 126.0.2592.113\nShort Edge version -> 126.0\nEdgeDriver version -> 126.0.2592.123\nShort EdgeDriver version -> 126.0\nTagged selenium/node-edge:126.0.2592.113-edgedriver-126.0.2592.123-grid-4.41.0-20260222\nTagged selenium/standalone-edge:126.0.2592.113-edgedriver-126.0.2592.123-grid-4.41.0-20260222\nTagged selenium/node-edge:126.0.2592.113-edgedriver-126.0.2592.123-20260222\nTagged selenium/standalone-edge:126.0.2592.113-edgedriver-126.0.2592.123-20260222\nTagged selenium/node-edge:126.0.2592.113-20260222\nTagged selenium/standalone-edge:126.0.2592.113-20260222\nTagged selenium/node-edge:126.0-edgedriver-126.0-grid-4.41.0-20260222\nTagged selenium/standalone-edge:126.0-edgedriver-126.0-grid-4.41.0-20260222\nTagged selenium/node-edge:126.0-edgedriver-126.0-20260222\nTagged selenium/standalone-edge:126.0-edgedriver-126.0-20260222\nTagged selenium/node-edge:126.0-20260222\nTagged selenium/standalone-edge:126.0-20260222\n```\n"
  },
  {
    "path": "CHANGELOG/4.41.0/edge_127.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.41.0 20260222 selenium false edge true\nTagging images for browser edge, version 4.41.0, build date 20260222, namespace selenium\nSelenium Grid version -> 4.41.0-20260222\nEdge version -> 127.0.2651.105\nShort Edge version -> 127.0\nEdgeDriver version -> 127.0.2651.107\nShort EdgeDriver version -> 127.0\nTagged selenium/node-edge:127.0.2651.105-edgedriver-127.0.2651.107-grid-4.41.0-20260222\nTagged selenium/standalone-edge:127.0.2651.105-edgedriver-127.0.2651.107-grid-4.41.0-20260222\nTagged selenium/node-edge:127.0.2651.105-edgedriver-127.0.2651.107-20260222\nTagged selenium/standalone-edge:127.0.2651.105-edgedriver-127.0.2651.107-20260222\nTagged selenium/node-edge:127.0.2651.105-20260222\nTagged selenium/standalone-edge:127.0.2651.105-20260222\nTagged selenium/node-edge:127.0-edgedriver-127.0-grid-4.41.0-20260222\nTagged selenium/standalone-edge:127.0-edgedriver-127.0-grid-4.41.0-20260222\nTagged selenium/node-edge:127.0-edgedriver-127.0-20260222\nTagged selenium/standalone-edge:127.0-edgedriver-127.0-20260222\nTagged selenium/node-edge:127.0-20260222\nTagged selenium/standalone-edge:127.0-20260222\n```\n"
  },
  {
    "path": "CHANGELOG/4.41.0/edge_128.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.41.0 20260222 selenium false edge true\nTagging images for browser edge, version 4.41.0, build date 20260222, namespace selenium\nSelenium Grid version -> 4.41.0-20260222\nEdge version -> 128.0.2739.79\nShort Edge version -> 128.0\nEdgeDriver version -> 128.0.2739.81\nShort EdgeDriver version -> 128.0\nTagged selenium/node-edge:128.0.2739.79-edgedriver-128.0.2739.81-grid-4.41.0-20260222\nTagged selenium/standalone-edge:128.0.2739.79-edgedriver-128.0.2739.81-grid-4.41.0-20260222\nTagged selenium/node-edge:128.0.2739.79-edgedriver-128.0.2739.81-20260222\nTagged selenium/standalone-edge:128.0.2739.79-edgedriver-128.0.2739.81-20260222\nTagged selenium/node-edge:128.0.2739.79-20260222\nTagged selenium/standalone-edge:128.0.2739.79-20260222\nTagged selenium/node-edge:128.0-edgedriver-128.0-grid-4.41.0-20260222\nTagged selenium/standalone-edge:128.0-edgedriver-128.0-grid-4.41.0-20260222\nTagged selenium/node-edge:128.0-edgedriver-128.0-20260222\nTagged selenium/standalone-edge:128.0-edgedriver-128.0-20260222\nTagged selenium/node-edge:128.0-20260222\nTagged selenium/standalone-edge:128.0-20260222\n```\n"
  },
  {
    "path": "CHANGELOG/4.41.0/edge_129.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.41.0 20260222 selenium false edge true\nTagging images for browser edge, version 4.41.0, build date 20260222, namespace selenium\nSelenium Grid version -> 4.41.0-20260222\nEdge version -> 129.0.2792.89\nShort Edge version -> 129.0\nEdgeDriver version -> 129.0.2792.98\nShort EdgeDriver version -> 129.0\nTagged selenium/node-edge:129.0.2792.89-edgedriver-129.0.2792.98-grid-4.41.0-20260222\nTagged selenium/standalone-edge:129.0.2792.89-edgedriver-129.0.2792.98-grid-4.41.0-20260222\nTagged selenium/node-edge:129.0.2792.89-edgedriver-129.0.2792.98-20260222\nTagged selenium/standalone-edge:129.0.2792.89-edgedriver-129.0.2792.98-20260222\nTagged selenium/node-edge:129.0.2792.89-20260222\nTagged selenium/standalone-edge:129.0.2792.89-20260222\nTagged selenium/node-edge:129.0-edgedriver-129.0-grid-4.41.0-20260222\nTagged selenium/standalone-edge:129.0-edgedriver-129.0-grid-4.41.0-20260222\nTagged selenium/node-edge:129.0-edgedriver-129.0-20260222\nTagged selenium/standalone-edge:129.0-edgedriver-129.0-20260222\nTagged selenium/node-edge:129.0-20260222\nTagged selenium/standalone-edge:129.0-20260222\n```\n"
  },
  {
    "path": "CHANGELOG/4.41.0/edge_130.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.41.0 20260222 selenium false edge true\nTagging images for browser edge, version 4.41.0, build date 20260222, namespace selenium\nSelenium Grid version -> 4.41.0-20260222\nEdge version -> 130.0.2849.80\nShort Edge version -> 130.0\nEdgeDriver version -> 130.0.2849.78\nShort EdgeDriver version -> 130.0\nTagged selenium/node-edge:130.0.2849.80-edgedriver-130.0.2849.78-grid-4.41.0-20260222\nTagged selenium/standalone-edge:130.0.2849.80-edgedriver-130.0.2849.78-grid-4.41.0-20260222\nTagged selenium/node-edge:130.0.2849.80-edgedriver-130.0.2849.78-20260222\nTagged selenium/standalone-edge:130.0.2849.80-edgedriver-130.0.2849.78-20260222\nTagged selenium/node-edge:130.0.2849.80-20260222\nTagged selenium/standalone-edge:130.0.2849.80-20260222\nTagged selenium/node-edge:130.0-edgedriver-130.0-grid-4.41.0-20260222\nTagged selenium/standalone-edge:130.0-edgedriver-130.0-grid-4.41.0-20260222\nTagged selenium/node-edge:130.0-edgedriver-130.0-20260222\nTagged selenium/standalone-edge:130.0-edgedriver-130.0-20260222\nTagged selenium/node-edge:130.0-20260222\nTagged selenium/standalone-edge:130.0-20260222\n```\n"
  },
  {
    "path": "CHANGELOG/4.41.0/edge_131.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.41.0 20260222 selenium false edge true\nTagging images for browser edge, version 4.41.0, build date 20260222, namespace selenium\nSelenium Grid version -> 4.41.0-20260222\nEdge version -> 131.0.2903.147\nShort Edge version -> 131.0\nEdgeDriver version -> 131.0.2903.147\nShort EdgeDriver version -> 131.0\nTagged selenium/node-edge:131.0.2903.147-edgedriver-131.0.2903.147-grid-4.41.0-20260222\nTagged selenium/standalone-edge:131.0.2903.147-edgedriver-131.0.2903.147-grid-4.41.0-20260222\nTagged selenium/node-edge:131.0.2903.147-edgedriver-131.0.2903.147-20260222\nTagged selenium/standalone-edge:131.0.2903.147-edgedriver-131.0.2903.147-20260222\nTagged selenium/node-edge:131.0.2903.147-20260222\nTagged selenium/standalone-edge:131.0.2903.147-20260222\nTagged selenium/node-edge:131.0-edgedriver-131.0-grid-4.41.0-20260222\nTagged selenium/standalone-edge:131.0-edgedriver-131.0-grid-4.41.0-20260222\nTagged selenium/node-edge:131.0-edgedriver-131.0-20260222\nTagged selenium/standalone-edge:131.0-edgedriver-131.0-20260222\nTagged selenium/node-edge:131.0-20260222\nTagged selenium/standalone-edge:131.0-20260222\n```\n"
  },
  {
    "path": "CHANGELOG/4.41.0/edge_132.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.41.0 20260222 selenium false edge true\nTagging images for browser edge, version 4.41.0, build date 20260222, namespace selenium\nSelenium Grid version -> 4.41.0-20260222\nEdge version -> 132.0.2957.140\nShort Edge version -> 132.0\nEdgeDriver version -> 132.0.2957.140\nShort EdgeDriver version -> 132.0\nTagged selenium/node-edge:132.0.2957.140-edgedriver-132.0.2957.140-grid-4.41.0-20260222\nTagged selenium/standalone-edge:132.0.2957.140-edgedriver-132.0.2957.140-grid-4.41.0-20260222\nTagged selenium/node-edge:132.0.2957.140-edgedriver-132.0.2957.140-20260222\nTagged selenium/standalone-edge:132.0.2957.140-edgedriver-132.0.2957.140-20260222\nTagged selenium/node-edge:132.0.2957.140-20260222\nTagged selenium/standalone-edge:132.0.2957.140-20260222\nTagged selenium/node-edge:132.0-edgedriver-132.0-grid-4.41.0-20260222\nTagged selenium/standalone-edge:132.0-edgedriver-132.0-grid-4.41.0-20260222\nTagged selenium/node-edge:132.0-edgedriver-132.0-20260222\nTagged selenium/standalone-edge:132.0-edgedriver-132.0-20260222\nTagged selenium/node-edge:132.0-20260222\nTagged selenium/standalone-edge:132.0-20260222\n```\n"
  },
  {
    "path": "CHANGELOG/4.41.0/edge_133.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.41.0 20260222 selenium false edge true\nTagging images for browser edge, version 4.41.0, build date 20260222, namespace selenium\nSelenium Grid version -> 4.41.0-20260222\nEdge version -> 133.0.3065.92\nShort Edge version -> 133.0\nEdgeDriver version -> 133.0.3065.92\nShort EdgeDriver version -> 133.0\nTagged selenium/node-edge:133.0.3065.92-edgedriver-133.0.3065.92-grid-4.41.0-20260222\nTagged selenium/standalone-edge:133.0.3065.92-edgedriver-133.0.3065.92-grid-4.41.0-20260222\nTagged selenium/node-edge:133.0.3065.92-edgedriver-133.0.3065.92-20260222\nTagged selenium/standalone-edge:133.0.3065.92-edgedriver-133.0.3065.92-20260222\nTagged selenium/node-edge:133.0.3065.92-20260222\nTagged selenium/standalone-edge:133.0.3065.92-20260222\nTagged selenium/node-edge:133.0-edgedriver-133.0-grid-4.41.0-20260222\nTagged selenium/standalone-edge:133.0-edgedriver-133.0-grid-4.41.0-20260222\nTagged selenium/node-edge:133.0-edgedriver-133.0-20260222\nTagged selenium/standalone-edge:133.0-edgedriver-133.0-20260222\nTagged selenium/node-edge:133.0-20260222\nTagged selenium/standalone-edge:133.0-20260222\n```\n"
  },
  {
    "path": "CHANGELOG/4.41.0/edge_134.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.41.0 20260222 selenium false edge true\nTagging images for browser edge, version 4.41.0, build date 20260222, namespace selenium\nSelenium Grid version -> 4.41.0-20260222\nEdge version -> 134.0.3124.95\nShort Edge version -> 134.0\nEdgeDriver version -> 134.0.3124.95\nShort EdgeDriver version -> 134.0\nTagged selenium/node-edge:134.0.3124.95-edgedriver-134.0.3124.95-grid-4.41.0-20260222\nTagged selenium/standalone-edge:134.0.3124.95-edgedriver-134.0.3124.95-grid-4.41.0-20260222\nTagged selenium/node-edge:134.0.3124.95-edgedriver-134.0.3124.95-20260222\nTagged selenium/standalone-edge:134.0.3124.95-edgedriver-134.0.3124.95-20260222\nTagged selenium/node-edge:134.0.3124.95-20260222\nTagged selenium/standalone-edge:134.0.3124.95-20260222\nTagged selenium/node-edge:134.0-edgedriver-134.0-grid-4.41.0-20260222\nTagged selenium/standalone-edge:134.0-edgedriver-134.0-grid-4.41.0-20260222\nTagged selenium/node-edge:134.0-edgedriver-134.0-20260222\nTagged selenium/standalone-edge:134.0-edgedriver-134.0-20260222\nTagged selenium/node-edge:134.0-20260222\nTagged selenium/standalone-edge:134.0-20260222\n```\n"
  },
  {
    "path": "CHANGELOG/4.41.0/edge_135.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.41.0 20260222 selenium false edge true\nTagging images for browser edge, version 4.41.0, build date 20260222, namespace selenium\nSelenium Grid version -> 4.41.0-20260222\nEdge version -> 135.0.3179.98\nShort Edge version -> 135.0\nEdgeDriver version -> 135.0.3179.98\nShort EdgeDriver version -> 135.0\nTagged selenium/node-edge:135.0.3179.98-edgedriver-135.0.3179.98-grid-4.41.0-20260222\nTagged selenium/standalone-edge:135.0.3179.98-edgedriver-135.0.3179.98-grid-4.41.0-20260222\nTagged selenium/node-edge:135.0.3179.98-edgedriver-135.0.3179.98-20260222\nTagged selenium/standalone-edge:135.0.3179.98-edgedriver-135.0.3179.98-20260222\nTagged selenium/node-edge:135.0.3179.98-20260222\nTagged selenium/standalone-edge:135.0.3179.98-20260222\nTagged selenium/node-edge:135.0-edgedriver-135.0-grid-4.41.0-20260222\nTagged selenium/standalone-edge:135.0-edgedriver-135.0-grid-4.41.0-20260222\nTagged selenium/node-edge:135.0-edgedriver-135.0-20260222\nTagged selenium/standalone-edge:135.0-edgedriver-135.0-20260222\nTagged selenium/node-edge:135.0-20260222\nTagged selenium/standalone-edge:135.0-20260222\n```\n"
  },
  {
    "path": "CHANGELOG/4.41.0/edge_136.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.41.0 20260222 selenium false edge true\nTagging images for browser edge, version 4.41.0, build date 20260222, namespace selenium\nSelenium Grid version -> 4.41.0-20260222\nEdge version -> 136.0.3240.92\nShort Edge version -> 136.0\nEdgeDriver version -> 136.0.3240.92\nShort EdgeDriver version -> 136.0\nTagged selenium/node-edge:136.0.3240.92-edgedriver-136.0.3240.92-grid-4.41.0-20260222\nTagged selenium/standalone-edge:136.0.3240.92-edgedriver-136.0.3240.92-grid-4.41.0-20260222\nTagged selenium/node-edge:136.0.3240.92-edgedriver-136.0.3240.92-20260222\nTagged selenium/standalone-edge:136.0.3240.92-edgedriver-136.0.3240.92-20260222\nTagged selenium/node-edge:136.0.3240.92-20260222\nTagged selenium/standalone-edge:136.0.3240.92-20260222\nTagged selenium/node-edge:136.0-edgedriver-136.0-grid-4.41.0-20260222\nTagged selenium/standalone-edge:136.0-edgedriver-136.0-grid-4.41.0-20260222\nTagged selenium/node-edge:136.0-edgedriver-136.0-20260222\nTagged selenium/standalone-edge:136.0-edgedriver-136.0-20260222\nTagged selenium/node-edge:136.0-20260222\nTagged selenium/standalone-edge:136.0-20260222\n```\n"
  },
  {
    "path": "CHANGELOG/4.41.0/edge_137.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.41.0 20260222 selenium false edge true\nTagging images for browser edge, version 4.41.0, build date 20260222, namespace selenium\nSelenium Grid version -> 4.41.0-20260222\nEdge version -> 137.0.3296.93\nShort Edge version -> 137.0\nEdgeDriver version -> 137.0.3296.93\nShort EdgeDriver version -> 137.0\nTagged selenium/node-edge:137.0.3296.93-edgedriver-137.0.3296.93-grid-4.41.0-20260222\nTagged selenium/standalone-edge:137.0.3296.93-edgedriver-137.0.3296.93-grid-4.41.0-20260222\nTagged selenium/node-edge:137.0.3296.93-edgedriver-137.0.3296.93-20260222\nTagged selenium/standalone-edge:137.0.3296.93-edgedriver-137.0.3296.93-20260222\nTagged selenium/node-edge:137.0.3296.93-20260222\nTagged selenium/standalone-edge:137.0.3296.93-20260222\nTagged selenium/node-edge:137.0-edgedriver-137.0-grid-4.41.0-20260222\nTagged selenium/standalone-edge:137.0-edgedriver-137.0-grid-4.41.0-20260222\nTagged selenium/node-edge:137.0-edgedriver-137.0-20260222\nTagged selenium/standalone-edge:137.0-edgedriver-137.0-20260222\nTagged selenium/node-edge:137.0-20260222\nTagged selenium/standalone-edge:137.0-20260222\n```\n"
  },
  {
    "path": "CHANGELOG/4.41.0/edge_138.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.41.0 20260222 selenium false edge true\nTagging images for browser edge, version 4.41.0, build date 20260222, namespace selenium\nSelenium Grid version -> 4.41.0-20260222\nEdge version -> 138.0.3351.121\nShort Edge version -> 138.0\nEdgeDriver version -> 138.0.3351.121\nShort EdgeDriver version -> 138.0\nTagged selenium/node-edge:138.0.3351.121-edgedriver-138.0.3351.121-grid-4.41.0-20260222\nTagged selenium/standalone-edge:138.0.3351.121-edgedriver-138.0.3351.121-grid-4.41.0-20260222\nTagged selenium/node-edge:138.0.3351.121-edgedriver-138.0.3351.121-20260222\nTagged selenium/standalone-edge:138.0.3351.121-edgedriver-138.0.3351.121-20260222\nTagged selenium/node-edge:138.0.3351.121-20260222\nTagged selenium/standalone-edge:138.0.3351.121-20260222\nTagged selenium/node-edge:138.0-edgedriver-138.0-grid-4.41.0-20260222\nTagged selenium/standalone-edge:138.0-edgedriver-138.0-grid-4.41.0-20260222\nTagged selenium/node-edge:138.0-edgedriver-138.0-20260222\nTagged selenium/standalone-edge:138.0-edgedriver-138.0-20260222\nTagged selenium/node-edge:138.0-20260222\nTagged selenium/standalone-edge:138.0-20260222\n```\n"
  },
  {
    "path": "CHANGELOG/4.41.0/edge_139.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.41.0 20260222 selenium false edge true\nTagging images for browser edge, version 4.41.0, build date 20260222, namespace selenium\nSelenium Grid version -> 4.41.0-20260222\nEdge version -> 139.0.3405.125\nShort Edge version -> 139.0\nEdgeDriver version -> 139.0.3405.125\nShort EdgeDriver version -> 139.0\nTagged selenium/node-edge:139.0.3405.125-edgedriver-139.0.3405.125-grid-4.41.0-20260222\nTagged selenium/standalone-edge:139.0.3405.125-edgedriver-139.0.3405.125-grid-4.41.0-20260222\nTagged selenium/node-edge:139.0.3405.125-edgedriver-139.0.3405.125-20260222\nTagged selenium/standalone-edge:139.0.3405.125-edgedriver-139.0.3405.125-20260222\nTagged selenium/node-edge:139.0.3405.125-20260222\nTagged selenium/standalone-edge:139.0.3405.125-20260222\nTagged selenium/node-edge:139.0-edgedriver-139.0-grid-4.41.0-20260222\nTagged selenium/standalone-edge:139.0-edgedriver-139.0-grid-4.41.0-20260222\nTagged selenium/node-edge:139.0-edgedriver-139.0-20260222\nTagged selenium/standalone-edge:139.0-edgedriver-139.0-20260222\nTagged selenium/node-edge:139.0-20260222\nTagged selenium/standalone-edge:139.0-20260222\n```\n"
  },
  {
    "path": "CHANGELOG/4.41.0/edge_140.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.41.0 20260222 selenium false edge true\nTagging images for browser edge, version 4.41.0, build date 20260222, namespace selenium\nSelenium Grid version -> 4.41.0-20260222\nEdge version -> 140.0.3485.94\nShort Edge version -> 140.0\nEdgeDriver version -> 140.0.3485.94\nShort EdgeDriver version -> 140.0\nTagged selenium/node-edge:140.0.3485.94-edgedriver-140.0.3485.94-grid-4.41.0-20260222\nTagged selenium/standalone-edge:140.0.3485.94-edgedriver-140.0.3485.94-grid-4.41.0-20260222\nTagged selenium/node-edge:140.0.3485.94-edgedriver-140.0.3485.94-20260222\nTagged selenium/standalone-edge:140.0.3485.94-edgedriver-140.0.3485.94-20260222\nTagged selenium/node-edge:140.0.3485.94-20260222\nTagged selenium/standalone-edge:140.0.3485.94-20260222\nTagged selenium/node-edge:140.0-edgedriver-140.0-grid-4.41.0-20260222\nTagged selenium/standalone-edge:140.0-edgedriver-140.0-grid-4.41.0-20260222\nTagged selenium/node-edge:140.0-edgedriver-140.0-20260222\nTagged selenium/standalone-edge:140.0-edgedriver-140.0-20260222\nTagged selenium/node-edge:140.0-20260222\nTagged selenium/standalone-edge:140.0-20260222\n```\n"
  },
  {
    "path": "CHANGELOG/4.41.0/edge_141.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.41.0 20260222 selenium false edge true\nTagging images for browser edge, version 4.41.0, build date 20260222, namespace selenium\nSelenium Grid version -> 4.41.0-20260222\nEdge version -> 141.0.3537.99\nShort Edge version -> 141.0\nEdgeDriver version -> 141.0.3537.99\nShort EdgeDriver version -> 141.0\nTagged selenium/node-edge:141.0.3537.99-edgedriver-141.0.3537.99-grid-4.41.0-20260222\nTagged selenium/standalone-edge:141.0.3537.99-edgedriver-141.0.3537.99-grid-4.41.0-20260222\nTagged selenium/node-edge:141.0.3537.99-edgedriver-141.0.3537.99-20260222\nTagged selenium/standalone-edge:141.0.3537.99-edgedriver-141.0.3537.99-20260222\nTagged selenium/node-edge:141.0.3537.99-20260222\nTagged selenium/standalone-edge:141.0.3537.99-20260222\nTagged selenium/node-edge:141.0-edgedriver-141.0-grid-4.41.0-20260222\nTagged selenium/standalone-edge:141.0-edgedriver-141.0-grid-4.41.0-20260222\nTagged selenium/node-edge:141.0-edgedriver-141.0-20260222\nTagged selenium/standalone-edge:141.0-edgedriver-141.0-20260222\nTagged selenium/node-edge:141.0-20260222\nTagged selenium/standalone-edge:141.0-20260222\n```\n"
  },
  {
    "path": "CHANGELOG/4.41.0/edge_142.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.41.0 20260222 selenium false edge true\nTagging images for browser edge, version 4.41.0, build date 20260222, namespace selenium\nSelenium Grid version -> 4.41.0-20260222\nEdge version -> 142.0.3595.94\nShort Edge version -> 142.0\nEdgeDriver version -> 142.0.3595.94\nShort EdgeDriver version -> 142.0\nTagged selenium/node-edge:142.0.3595.94-edgedriver-142.0.3595.94-grid-4.41.0-20260222\nTagged selenium/standalone-edge:142.0.3595.94-edgedriver-142.0.3595.94-grid-4.41.0-20260222\nTagged selenium/node-edge:142.0.3595.94-edgedriver-142.0.3595.94-20260222\nTagged selenium/standalone-edge:142.0.3595.94-edgedriver-142.0.3595.94-20260222\nTagged selenium/node-edge:142.0.3595.94-20260222\nTagged selenium/standalone-edge:142.0.3595.94-20260222\nTagged selenium/node-edge:142.0-edgedriver-142.0-grid-4.41.0-20260222\nTagged selenium/standalone-edge:142.0-edgedriver-142.0-grid-4.41.0-20260222\nTagged selenium/node-edge:142.0-edgedriver-142.0-20260222\nTagged selenium/standalone-edge:142.0-edgedriver-142.0-20260222\nTagged selenium/node-edge:142.0-20260222\nTagged selenium/standalone-edge:142.0-20260222\n```\n"
  },
  {
    "path": "CHANGELOG/4.41.0/edge_143.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.41.0 20260222 selenium false edge true\nTagging images for browser edge, version 4.41.0, build date 20260222, namespace selenium\nSelenium Grid version -> 4.41.0-20260222\nEdge version -> 143.0.3650.139\nShort Edge version -> 143.0\nEdgeDriver version -> 143.0.3650.139\nShort EdgeDriver version -> 143.0\nTagged selenium/node-edge:143.0.3650.139-edgedriver-143.0.3650.139-grid-4.41.0-20260222\nTagged selenium/standalone-edge:143.0.3650.139-edgedriver-143.0.3650.139-grid-4.41.0-20260222\nTagged selenium/node-edge:143.0.3650.139-edgedriver-143.0.3650.139-20260222\nTagged selenium/standalone-edge:143.0.3650.139-edgedriver-143.0.3650.139-20260222\nTagged selenium/node-edge:143.0.3650.139-20260222\nTagged selenium/standalone-edge:143.0.3650.139-20260222\nTagged selenium/node-edge:143.0-edgedriver-143.0-grid-4.41.0-20260222\nTagged selenium/standalone-edge:143.0-edgedriver-143.0-grid-4.41.0-20260222\nTagged selenium/node-edge:143.0-edgedriver-143.0-20260222\nTagged selenium/standalone-edge:143.0-edgedriver-143.0-20260222\nTagged selenium/node-edge:143.0-20260222\nTagged selenium/standalone-edge:143.0-20260222\n```\n"
  },
  {
    "path": "CHANGELOG/4.41.0/edge_144.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.41.0 20260222 selenium false edge true\nTagging images for browser edge, version 4.41.0, build date 20260222, namespace selenium\nSelenium Grid version -> 4.41.0-20260222\nEdge version -> 144.0.3719.115\nShort Edge version -> 144.0\nEdgeDriver version -> 144.0.3719.115\nShort EdgeDriver version -> 144.0\nTagged selenium/node-edge:144.0.3719.115-edgedriver-144.0.3719.115-grid-4.41.0-20260222\nTagged selenium/standalone-edge:144.0.3719.115-edgedriver-144.0.3719.115-grid-4.41.0-20260222\nTagged selenium/node-edge:144.0.3719.115-edgedriver-144.0.3719.115-20260222\nTagged selenium/standalone-edge:144.0.3719.115-edgedriver-144.0.3719.115-20260222\nTagged selenium/node-edge:144.0.3719.115-20260222\nTagged selenium/standalone-edge:144.0.3719.115-20260222\nTagged selenium/node-edge:144.0-edgedriver-144.0-grid-4.41.0-20260222\nTagged selenium/standalone-edge:144.0-edgedriver-144.0-grid-4.41.0-20260222\nTagged selenium/node-edge:144.0-edgedriver-144.0-20260222\nTagged selenium/standalone-edge:144.0-edgedriver-144.0-20260222\nTagged selenium/node-edge:144.0-20260222\nTagged selenium/standalone-edge:144.0-20260222\n```\n"
  },
  {
    "path": "CHANGELOG/4.41.0/edge_145.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.41.0 20260222 selenium false edge true\nTagging images for browser edge, version 4.41.0, build date 20260222, namespace selenium\nSelenium Grid version -> 4.41.0-20260222\nEdge version -> 145.0.3800.70\nShort Edge version -> 145.0\nEdgeDriver version -> 145.0.3800.70\nShort EdgeDriver version -> 145.0\nTagged selenium/node-edge:145.0.3800.70-edgedriver-145.0.3800.70-grid-4.41.0-20260222\nTagged selenium/standalone-edge:145.0.3800.70-edgedriver-145.0.3800.70-grid-4.41.0-20260222\nTagged selenium/node-edge:145.0.3800.70-edgedriver-145.0.3800.70-20260222\nTagged selenium/standalone-edge:145.0.3800.70-edgedriver-145.0.3800.70-20260222\nTagged selenium/node-edge:145.0.3800.70-20260222\nTagged selenium/standalone-edge:145.0.3800.70-20260222\nTagged selenium/node-edge:145.0-edgedriver-145.0-grid-4.41.0-20260222\nTagged selenium/standalone-edge:145.0-edgedriver-145.0-grid-4.41.0-20260222\nTagged selenium/node-edge:145.0-edgedriver-145.0-20260222\nTagged selenium/standalone-edge:145.0-edgedriver-145.0-20260222\nTagged selenium/node-edge:145.0-20260222\nTagged selenium/standalone-edge:145.0-20260222\n```\n"
  },
  {
    "path": "CHANGELOG/4.41.0/firefox_100.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.41.0 20260222 selenium false firefox true\nTagging images for browser firefox, version 4.41.0, build date 20260222, namespace selenium\nSelenium Grid version -> 4.41.0-20260222\nFirefox version -> 100.0.2\nShort Firefox version -> 100.0\nGeckoDriver version -> 0.36.0\nShort GeckoDriver version -> 0.36\nTagged selenium/node-firefox:100.0.2-geckodriver-0.36.0-grid-4.41.0-20260222\nTagged selenium/standalone-firefox:100.0.2-geckodriver-0.36.0-grid-4.41.0-20260222\nTagged selenium/node-firefox:100.0.2-geckodriver-0.36.0-20260222\nTagged selenium/standalone-firefox:100.0.2-geckodriver-0.36.0-20260222\nTagged selenium/node-firefox:100.0.2-20260222\nTagged selenium/standalone-firefox:100.0.2-20260222\nTagged selenium/node-firefox:100.0-geckodriver-0.36-grid-4.41.0-20260222\nTagged selenium/standalone-firefox:100.0-geckodriver-0.36-grid-4.41.0-20260222\nTagged selenium/node-firefox:100.0-geckodriver-0.36-20260222\nTagged selenium/standalone-firefox:100.0-geckodriver-0.36-20260222\nTagged selenium/node-firefox:100.0-20260222\nTagged selenium/standalone-firefox:100.0-20260222\n```\n"
  },
  {
    "path": "CHANGELOG/4.41.0/firefox_101.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.41.0 20260222 selenium false firefox true\nTagging images for browser firefox, version 4.41.0, build date 20260222, namespace selenium\nSelenium Grid version -> 4.41.0-20260222\nFirefox version -> 101.0.1\nShort Firefox version -> 101.0\nGeckoDriver version -> 0.36.0\nShort GeckoDriver version -> 0.36\nTagged selenium/node-firefox:101.0.1-geckodriver-0.36.0-grid-4.41.0-20260222\nTagged selenium/standalone-firefox:101.0.1-geckodriver-0.36.0-grid-4.41.0-20260222\nTagged selenium/node-firefox:101.0.1-geckodriver-0.36.0-20260222\nTagged selenium/standalone-firefox:101.0.1-geckodriver-0.36.0-20260222\nTagged selenium/node-firefox:101.0.1-20260222\nTagged selenium/standalone-firefox:101.0.1-20260222\nTagged selenium/node-firefox:101.0-geckodriver-0.36-grid-4.41.0-20260222\nTagged selenium/standalone-firefox:101.0-geckodriver-0.36-grid-4.41.0-20260222\nTagged selenium/node-firefox:101.0-geckodriver-0.36-20260222\nTagged selenium/standalone-firefox:101.0-geckodriver-0.36-20260222\nTagged selenium/node-firefox:101.0-20260222\nTagged selenium/standalone-firefox:101.0-20260222\n```\n"
  },
  {
    "path": "CHANGELOG/4.41.0/firefox_102.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.41.0 20260222 selenium false firefox true\nTagging images for browser firefox, version 4.41.0, build date 20260222, namespace selenium\nSelenium Grid version -> 4.41.0-20260222\nFirefox version -> 102.0.1\nShort Firefox version -> 102.0\nGeckoDriver version -> 0.36.0\nShort GeckoDriver version -> 0.36\nTagged selenium/node-firefox:102.0.1-geckodriver-0.36.0-grid-4.41.0-20260222\nTagged selenium/standalone-firefox:102.0.1-geckodriver-0.36.0-grid-4.41.0-20260222\nTagged selenium/node-firefox:102.0.1-geckodriver-0.36.0-20260222\nTagged selenium/standalone-firefox:102.0.1-geckodriver-0.36.0-20260222\nTagged selenium/node-firefox:102.0.1-20260222\nTagged selenium/standalone-firefox:102.0.1-20260222\nTagged selenium/node-firefox:102.0-geckodriver-0.36-grid-4.41.0-20260222\nTagged selenium/standalone-firefox:102.0-geckodriver-0.36-grid-4.41.0-20260222\nTagged selenium/node-firefox:102.0-geckodriver-0.36-20260222\nTagged selenium/standalone-firefox:102.0-geckodriver-0.36-20260222\nTagged selenium/node-firefox:102.0-20260222\nTagged selenium/standalone-firefox:102.0-20260222\n```\n"
  },
  {
    "path": "CHANGELOG/4.41.0/firefox_103.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.41.0 20260222 selenium false firefox true\nTagging images for browser firefox, version 4.41.0, build date 20260222, namespace selenium\nSelenium Grid version -> 4.41.0-20260222\nFirefox version -> 103.0.2\nShort Firefox version -> 103.0\nGeckoDriver version -> 0.36.0\nShort GeckoDriver version -> 0.36\nTagged selenium/node-firefox:103.0.2-geckodriver-0.36.0-grid-4.41.0-20260222\nTagged selenium/standalone-firefox:103.0.2-geckodriver-0.36.0-grid-4.41.0-20260222\nTagged selenium/node-firefox:103.0.2-geckodriver-0.36.0-20260222\nTagged selenium/standalone-firefox:103.0.2-geckodriver-0.36.0-20260222\nTagged selenium/node-firefox:103.0.2-20260222\nTagged selenium/standalone-firefox:103.0.2-20260222\nTagged selenium/node-firefox:103.0-geckodriver-0.36-grid-4.41.0-20260222\nTagged selenium/standalone-firefox:103.0-geckodriver-0.36-grid-4.41.0-20260222\nTagged selenium/node-firefox:103.0-geckodriver-0.36-20260222\nTagged selenium/standalone-firefox:103.0-geckodriver-0.36-20260222\nTagged selenium/node-firefox:103.0-20260222\nTagged selenium/standalone-firefox:103.0-20260222\n```\n"
  },
  {
    "path": "CHANGELOG/4.41.0/firefox_104.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.41.0 20260222 selenium false firefox true\nTagging images for browser firefox, version 4.41.0, build date 20260222, namespace selenium\nSelenium Grid version -> 4.41.0-20260222\nFirefox version -> 104.0.2\nShort Firefox version -> 104.0\nGeckoDriver version -> 0.36.0\nShort GeckoDriver version -> 0.36\nTagged selenium/node-firefox:104.0.2-geckodriver-0.36.0-grid-4.41.0-20260222\nTagged selenium/standalone-firefox:104.0.2-geckodriver-0.36.0-grid-4.41.0-20260222\nTagged selenium/node-firefox:104.0.2-geckodriver-0.36.0-20260222\nTagged selenium/standalone-firefox:104.0.2-geckodriver-0.36.0-20260222\nTagged selenium/node-firefox:104.0.2-20260222\nTagged selenium/standalone-firefox:104.0.2-20260222\nTagged selenium/node-firefox:104.0-geckodriver-0.36-grid-4.41.0-20260222\nTagged selenium/standalone-firefox:104.0-geckodriver-0.36-grid-4.41.0-20260222\nTagged selenium/node-firefox:104.0-geckodriver-0.36-20260222\nTagged selenium/standalone-firefox:104.0-geckodriver-0.36-20260222\nTagged selenium/node-firefox:104.0-20260222\nTagged selenium/standalone-firefox:104.0-20260222\n```\n"
  },
  {
    "path": "CHANGELOG/4.41.0/firefox_105.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.41.0 20260222 selenium false firefox true\nTagging images for browser firefox, version 4.41.0, build date 20260222, namespace selenium\nSelenium Grid version -> 4.41.0-20260222\nFirefox version -> 105.0.3\nShort Firefox version -> 105.0\nGeckoDriver version -> 0.36.0\nShort GeckoDriver version -> 0.36\nTagged selenium/node-firefox:105.0.3-geckodriver-0.36.0-grid-4.41.0-20260222\nTagged selenium/standalone-firefox:105.0.3-geckodriver-0.36.0-grid-4.41.0-20260222\nTagged selenium/node-firefox:105.0.3-geckodriver-0.36.0-20260222\nTagged selenium/standalone-firefox:105.0.3-geckodriver-0.36.0-20260222\nTagged selenium/node-firefox:105.0.3-20260222\nTagged selenium/standalone-firefox:105.0.3-20260222\nTagged selenium/node-firefox:105.0-geckodriver-0.36-grid-4.41.0-20260222\nTagged selenium/standalone-firefox:105.0-geckodriver-0.36-grid-4.41.0-20260222\nTagged selenium/node-firefox:105.0-geckodriver-0.36-20260222\nTagged selenium/standalone-firefox:105.0-geckodriver-0.36-20260222\nTagged selenium/node-firefox:105.0-20260222\nTagged selenium/standalone-firefox:105.0-20260222\n```\n"
  },
  {
    "path": "CHANGELOG/4.41.0/firefox_106.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.41.0 20260222 selenium false firefox true\nTagging images for browser firefox, version 4.41.0, build date 20260222, namespace selenium\nSelenium Grid version -> 4.41.0-20260222\nFirefox version -> 106.0.5\nShort Firefox version -> 106.0\nGeckoDriver version -> 0.36.0\nShort GeckoDriver version -> 0.36\nTagged selenium/node-firefox:106.0.5-geckodriver-0.36.0-grid-4.41.0-20260222\nTagged selenium/standalone-firefox:106.0.5-geckodriver-0.36.0-grid-4.41.0-20260222\nTagged selenium/node-firefox:106.0.5-geckodriver-0.36.0-20260222\nTagged selenium/standalone-firefox:106.0.5-geckodriver-0.36.0-20260222\nTagged selenium/node-firefox:106.0.5-20260222\nTagged selenium/standalone-firefox:106.0.5-20260222\nTagged selenium/node-firefox:106.0-geckodriver-0.36-grid-4.41.0-20260222\nTagged selenium/standalone-firefox:106.0-geckodriver-0.36-grid-4.41.0-20260222\nTagged selenium/node-firefox:106.0-geckodriver-0.36-20260222\nTagged selenium/standalone-firefox:106.0-geckodriver-0.36-20260222\nTagged selenium/node-firefox:106.0-20260222\nTagged selenium/standalone-firefox:106.0-20260222\n```\n"
  },
  {
    "path": "CHANGELOG/4.41.0/firefox_107.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.41.0 20260222 selenium false firefox true\nTagging images for browser firefox, version 4.41.0, build date 20260222, namespace selenium\nSelenium Grid version -> 4.41.0-20260222\nFirefox version -> 107.0.1\nShort Firefox version -> 107.0\nGeckoDriver version -> 0.36.0\nShort GeckoDriver version -> 0.36\nTagged selenium/node-firefox:107.0.1-geckodriver-0.36.0-grid-4.41.0-20260222\nTagged selenium/standalone-firefox:107.0.1-geckodriver-0.36.0-grid-4.41.0-20260222\nTagged selenium/node-firefox:107.0.1-geckodriver-0.36.0-20260222\nTagged selenium/standalone-firefox:107.0.1-geckodriver-0.36.0-20260222\nTagged selenium/node-firefox:107.0.1-20260222\nTagged selenium/standalone-firefox:107.0.1-20260222\nTagged selenium/node-firefox:107.0-geckodriver-0.36-grid-4.41.0-20260222\nTagged selenium/standalone-firefox:107.0-geckodriver-0.36-grid-4.41.0-20260222\nTagged selenium/node-firefox:107.0-geckodriver-0.36-20260222\nTagged selenium/standalone-firefox:107.0-geckodriver-0.36-20260222\nTagged selenium/node-firefox:107.0-20260222\nTagged selenium/standalone-firefox:107.0-20260222\n```\n"
  },
  {
    "path": "CHANGELOG/4.41.0/firefox_108.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.41.0 20260222 selenium false firefox true\nTagging images for browser firefox, version 4.41.0, build date 20260222, namespace selenium\nSelenium Grid version -> 4.41.0-20260222\nFirefox version -> 108.0.2\nShort Firefox version -> 108.0\nGeckoDriver version -> 0.36.0\nShort GeckoDriver version -> 0.36\nTagged selenium/node-firefox:108.0.2-geckodriver-0.36.0-grid-4.41.0-20260222\nTagged selenium/standalone-firefox:108.0.2-geckodriver-0.36.0-grid-4.41.0-20260222\nTagged selenium/node-firefox:108.0.2-geckodriver-0.36.0-20260222\nTagged selenium/standalone-firefox:108.0.2-geckodriver-0.36.0-20260222\nTagged selenium/node-firefox:108.0.2-20260222\nTagged selenium/standalone-firefox:108.0.2-20260222\nTagged selenium/node-firefox:108.0-geckodriver-0.36-grid-4.41.0-20260222\nTagged selenium/standalone-firefox:108.0-geckodriver-0.36-grid-4.41.0-20260222\nTagged selenium/node-firefox:108.0-geckodriver-0.36-20260222\nTagged selenium/standalone-firefox:108.0-geckodriver-0.36-20260222\nTagged selenium/node-firefox:108.0-20260222\nTagged selenium/standalone-firefox:108.0-20260222\n```\n"
  },
  {
    "path": "CHANGELOG/4.41.0/firefox_109.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.41.0 20260222 selenium false firefox true\nTagging images for browser firefox, version 4.41.0, build date 20260222, namespace selenium\nSelenium Grid version -> 4.41.0-20260222\nFirefox version -> 109.0.1\nShort Firefox version -> 109.0\nGeckoDriver version -> 0.36.0\nShort GeckoDriver version -> 0.36\nTagged selenium/node-firefox:109.0.1-geckodriver-0.36.0-grid-4.41.0-20260222\nTagged selenium/standalone-firefox:109.0.1-geckodriver-0.36.0-grid-4.41.0-20260222\nTagged selenium/node-firefox:109.0.1-geckodriver-0.36.0-20260222\nTagged selenium/standalone-firefox:109.0.1-geckodriver-0.36.0-20260222\nTagged selenium/node-firefox:109.0.1-20260222\nTagged selenium/standalone-firefox:109.0.1-20260222\nTagged selenium/node-firefox:109.0-geckodriver-0.36-grid-4.41.0-20260222\nTagged selenium/standalone-firefox:109.0-geckodriver-0.36-grid-4.41.0-20260222\nTagged selenium/node-firefox:109.0-geckodriver-0.36-20260222\nTagged selenium/standalone-firefox:109.0-geckodriver-0.36-20260222\nTagged selenium/node-firefox:109.0-20260222\nTagged selenium/standalone-firefox:109.0-20260222\n```\n"
  },
  {
    "path": "CHANGELOG/4.41.0/firefox_110.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.41.0 20260222 selenium false firefox true\nTagging images for browser firefox, version 4.41.0, build date 20260222, namespace selenium\nSelenium Grid version -> 4.41.0-20260222\nFirefox version -> 110.0.1\nShort Firefox version -> 110.0\nGeckoDriver version -> 0.36.0\nShort GeckoDriver version -> 0.36\nTagged selenium/node-firefox:110.0.1-geckodriver-0.36.0-grid-4.41.0-20260222\nTagged selenium/standalone-firefox:110.0.1-geckodriver-0.36.0-grid-4.41.0-20260222\nTagged selenium/node-firefox:110.0.1-geckodriver-0.36.0-20260222\nTagged selenium/standalone-firefox:110.0.1-geckodriver-0.36.0-20260222\nTagged selenium/node-firefox:110.0.1-20260222\nTagged selenium/standalone-firefox:110.0.1-20260222\nTagged selenium/node-firefox:110.0-geckodriver-0.36-grid-4.41.0-20260222\nTagged selenium/standalone-firefox:110.0-geckodriver-0.36-grid-4.41.0-20260222\nTagged selenium/node-firefox:110.0-geckodriver-0.36-20260222\nTagged selenium/standalone-firefox:110.0-geckodriver-0.36-20260222\nTagged selenium/node-firefox:110.0-20260222\nTagged selenium/standalone-firefox:110.0-20260222\n```\n"
  },
  {
    "path": "CHANGELOG/4.41.0/firefox_111.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.41.0 20260222 selenium false firefox true\nTagging images for browser firefox, version 4.41.0, build date 20260222, namespace selenium\nSelenium Grid version -> 4.41.0-20260222\nFirefox version -> 111.0.1\nShort Firefox version -> 111.0\nGeckoDriver version -> 0.36.0\nShort GeckoDriver version -> 0.36\nTagged selenium/node-firefox:111.0.1-geckodriver-0.36.0-grid-4.41.0-20260222\nTagged selenium/standalone-firefox:111.0.1-geckodriver-0.36.0-grid-4.41.0-20260222\nTagged selenium/node-firefox:111.0.1-geckodriver-0.36.0-20260222\nTagged selenium/standalone-firefox:111.0.1-geckodriver-0.36.0-20260222\nTagged selenium/node-firefox:111.0.1-20260222\nTagged selenium/standalone-firefox:111.0.1-20260222\nTagged selenium/node-firefox:111.0-geckodriver-0.36-grid-4.41.0-20260222\nTagged selenium/standalone-firefox:111.0-geckodriver-0.36-grid-4.41.0-20260222\nTagged selenium/node-firefox:111.0-geckodriver-0.36-20260222\nTagged selenium/standalone-firefox:111.0-geckodriver-0.36-20260222\nTagged selenium/node-firefox:111.0-20260222\nTagged selenium/standalone-firefox:111.0-20260222\n```\n"
  },
  {
    "path": "CHANGELOG/4.41.0/firefox_112.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.41.0 20260222 selenium false firefox true\nTagging images for browser firefox, version 4.41.0, build date 20260222, namespace selenium\nSelenium Grid version -> 4.41.0-20260222\nFirefox version -> 112.0.2\nShort Firefox version -> 112.0\nGeckoDriver version -> 0.36.0\nShort GeckoDriver version -> 0.36\nTagged selenium/node-firefox:112.0.2-geckodriver-0.36.0-grid-4.41.0-20260222\nTagged selenium/standalone-firefox:112.0.2-geckodriver-0.36.0-grid-4.41.0-20260222\nTagged selenium/node-firefox:112.0.2-geckodriver-0.36.0-20260222\nTagged selenium/standalone-firefox:112.0.2-geckodriver-0.36.0-20260222\nTagged selenium/node-firefox:112.0.2-20260222\nTagged selenium/standalone-firefox:112.0.2-20260222\nTagged selenium/node-firefox:112.0-geckodriver-0.36-grid-4.41.0-20260222\nTagged selenium/standalone-firefox:112.0-geckodriver-0.36-grid-4.41.0-20260222\nTagged selenium/node-firefox:112.0-geckodriver-0.36-20260222\nTagged selenium/standalone-firefox:112.0-geckodriver-0.36-20260222\nTagged selenium/node-firefox:112.0-20260222\nTagged selenium/standalone-firefox:112.0-20260222\n```\n"
  },
  {
    "path": "CHANGELOG/4.41.0/firefox_113.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.41.0 20260222 selenium false firefox true\nTagging images for browser firefox, version 4.41.0, build date 20260222, namespace selenium\nSelenium Grid version -> 4.41.0-20260222\nFirefox version -> 113.0.2\nShort Firefox version -> 113.0\nGeckoDriver version -> 0.36.0\nShort GeckoDriver version -> 0.36\nTagged selenium/node-firefox:113.0.2-geckodriver-0.36.0-grid-4.41.0-20260222\nTagged selenium/standalone-firefox:113.0.2-geckodriver-0.36.0-grid-4.41.0-20260222\nTagged selenium/node-firefox:113.0.2-geckodriver-0.36.0-20260222\nTagged selenium/standalone-firefox:113.0.2-geckodriver-0.36.0-20260222\nTagged selenium/node-firefox:113.0.2-20260222\nTagged selenium/standalone-firefox:113.0.2-20260222\nTagged selenium/node-firefox:113.0-geckodriver-0.36-grid-4.41.0-20260222\nTagged selenium/standalone-firefox:113.0-geckodriver-0.36-grid-4.41.0-20260222\nTagged selenium/node-firefox:113.0-geckodriver-0.36-20260222\nTagged selenium/standalone-firefox:113.0-geckodriver-0.36-20260222\nTagged selenium/node-firefox:113.0-20260222\nTagged selenium/standalone-firefox:113.0-20260222\n```\n"
  },
  {
    "path": "CHANGELOG/4.41.0/firefox_114.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.41.0 20260222 selenium false firefox true\nTagging images for browser firefox, version 4.41.0, build date 20260222, namespace selenium\nSelenium Grid version -> 4.41.0-20260222\nFirefox version -> 114.0.2\nShort Firefox version -> 114.0\nGeckoDriver version -> 0.36.0\nShort GeckoDriver version -> 0.36\nTagged selenium/node-firefox:114.0.2-geckodriver-0.36.0-grid-4.41.0-20260222\nTagged selenium/standalone-firefox:114.0.2-geckodriver-0.36.0-grid-4.41.0-20260222\nTagged selenium/node-firefox:114.0.2-geckodriver-0.36.0-20260222\nTagged selenium/standalone-firefox:114.0.2-geckodriver-0.36.0-20260222\nTagged selenium/node-firefox:114.0.2-20260222\nTagged selenium/standalone-firefox:114.0.2-20260222\nTagged selenium/node-firefox:114.0-geckodriver-0.36-grid-4.41.0-20260222\nTagged selenium/standalone-firefox:114.0-geckodriver-0.36-grid-4.41.0-20260222\nTagged selenium/node-firefox:114.0-geckodriver-0.36-20260222\nTagged selenium/standalone-firefox:114.0-geckodriver-0.36-20260222\nTagged selenium/node-firefox:114.0-20260222\nTagged selenium/standalone-firefox:114.0-20260222\n```\n"
  },
  {
    "path": "CHANGELOG/4.41.0/firefox_115.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.41.0 20260222 selenium false firefox true\nTagging images for browser firefox, version 4.41.0, build date 20260222, namespace selenium\nSelenium Grid version -> 4.41.0-20260222\nFirefox version -> 115.0.3\nShort Firefox version -> 115.0\nGeckoDriver version -> 0.36.0\nShort GeckoDriver version -> 0.36\nTagged selenium/node-firefox:115.0.3-geckodriver-0.36.0-grid-4.41.0-20260222\nTagged selenium/standalone-firefox:115.0.3-geckodriver-0.36.0-grid-4.41.0-20260222\nTagged selenium/node-firefox:115.0.3-geckodriver-0.36.0-20260222\nTagged selenium/standalone-firefox:115.0.3-geckodriver-0.36.0-20260222\nTagged selenium/node-firefox:115.0.3-20260222\nTagged selenium/standalone-firefox:115.0.3-20260222\nTagged selenium/node-firefox:115.0-geckodriver-0.36-grid-4.41.0-20260222\nTagged selenium/standalone-firefox:115.0-geckodriver-0.36-grid-4.41.0-20260222\nTagged selenium/node-firefox:115.0-geckodriver-0.36-20260222\nTagged selenium/standalone-firefox:115.0-geckodriver-0.36-20260222\nTagged selenium/node-firefox:115.0-20260222\nTagged selenium/standalone-firefox:115.0-20260222\n```\n"
  },
  {
    "path": "CHANGELOG/4.41.0/firefox_116.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.41.0 20260222 selenium false firefox true\nTagging images for browser firefox, version 4.41.0, build date 20260222, namespace selenium\nSelenium Grid version -> 4.41.0-20260222\nFirefox version -> 116.0.3\nShort Firefox version -> 116.0\nGeckoDriver version -> 0.36.0\nShort GeckoDriver version -> 0.36\nTagged selenium/node-firefox:116.0.3-geckodriver-0.36.0-grid-4.41.0-20260222\nTagged selenium/standalone-firefox:116.0.3-geckodriver-0.36.0-grid-4.41.0-20260222\nTagged selenium/node-firefox:116.0.3-geckodriver-0.36.0-20260222\nTagged selenium/standalone-firefox:116.0.3-geckodriver-0.36.0-20260222\nTagged selenium/node-firefox:116.0.3-20260222\nTagged selenium/standalone-firefox:116.0.3-20260222\nTagged selenium/node-firefox:116.0-geckodriver-0.36-grid-4.41.0-20260222\nTagged selenium/standalone-firefox:116.0-geckodriver-0.36-grid-4.41.0-20260222\nTagged selenium/node-firefox:116.0-geckodriver-0.36-20260222\nTagged selenium/standalone-firefox:116.0-geckodriver-0.36-20260222\nTagged selenium/node-firefox:116.0-20260222\nTagged selenium/standalone-firefox:116.0-20260222\n```\n"
  },
  {
    "path": "CHANGELOG/4.41.0/firefox_117.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.41.0 20260222 selenium false firefox true\nTagging images for browser firefox, version 4.41.0, build date 20260222, namespace selenium\nSelenium Grid version -> 4.41.0-20260222\nFirefox version -> 117.0.1\nShort Firefox version -> 117.0\nGeckoDriver version -> 0.36.0\nShort GeckoDriver version -> 0.36\nTagged selenium/node-firefox:117.0.1-geckodriver-0.36.0-grid-4.41.0-20260222\nTagged selenium/standalone-firefox:117.0.1-geckodriver-0.36.0-grid-4.41.0-20260222\nTagged selenium/node-firefox:117.0.1-geckodriver-0.36.0-20260222\nTagged selenium/standalone-firefox:117.0.1-geckodriver-0.36.0-20260222\nTagged selenium/node-firefox:117.0.1-20260222\nTagged selenium/standalone-firefox:117.0.1-20260222\nTagged selenium/node-firefox:117.0-geckodriver-0.36-grid-4.41.0-20260222\nTagged selenium/standalone-firefox:117.0-geckodriver-0.36-grid-4.41.0-20260222\nTagged selenium/node-firefox:117.0-geckodriver-0.36-20260222\nTagged selenium/standalone-firefox:117.0-geckodriver-0.36-20260222\nTagged selenium/node-firefox:117.0-20260222\nTagged selenium/standalone-firefox:117.0-20260222\n```\n"
  },
  {
    "path": "CHANGELOG/4.41.0/firefox_118.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.41.0 20260222 selenium false firefox true\nTagging images for browser firefox, version 4.41.0, build date 20260222, namespace selenium\nSelenium Grid version -> 4.41.0-20260222\nFirefox version -> 118.0.2\nShort Firefox version -> 118.0\nGeckoDriver version -> 0.36.0\nShort GeckoDriver version -> 0.36\nTagged selenium/node-firefox:118.0.2-geckodriver-0.36.0-grid-4.41.0-20260222\nTagged selenium/standalone-firefox:118.0.2-geckodriver-0.36.0-grid-4.41.0-20260222\nTagged selenium/node-firefox:118.0.2-geckodriver-0.36.0-20260222\nTagged selenium/standalone-firefox:118.0.2-geckodriver-0.36.0-20260222\nTagged selenium/node-firefox:118.0.2-20260222\nTagged selenium/standalone-firefox:118.0.2-20260222\nTagged selenium/node-firefox:118.0-geckodriver-0.36-grid-4.41.0-20260222\nTagged selenium/standalone-firefox:118.0-geckodriver-0.36-grid-4.41.0-20260222\nTagged selenium/node-firefox:118.0-geckodriver-0.36-20260222\nTagged selenium/standalone-firefox:118.0-geckodriver-0.36-20260222\nTagged selenium/node-firefox:118.0-20260222\nTagged selenium/standalone-firefox:118.0-20260222\n```\n"
  },
  {
    "path": "CHANGELOG/4.41.0/firefox_119.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.41.0 20260222 selenium false firefox true\nTagging images for browser firefox, version 4.41.0, build date 20260222, namespace selenium\nSelenium Grid version -> 4.41.0-20260222\nFirefox version -> 119.0.1\nShort Firefox version -> 119.0\nGeckoDriver version -> 0.36.0\nShort GeckoDriver version -> 0.36\nTagged selenium/node-firefox:119.0.1-geckodriver-0.36.0-grid-4.41.0-20260222\nTagged selenium/standalone-firefox:119.0.1-geckodriver-0.36.0-grid-4.41.0-20260222\nTagged selenium/node-firefox:119.0.1-geckodriver-0.36.0-20260222\nTagged selenium/standalone-firefox:119.0.1-geckodriver-0.36.0-20260222\nTagged selenium/node-firefox:119.0.1-20260222\nTagged selenium/standalone-firefox:119.0.1-20260222\nTagged selenium/node-firefox:119.0-geckodriver-0.36-grid-4.41.0-20260222\nTagged selenium/standalone-firefox:119.0-geckodriver-0.36-grid-4.41.0-20260222\nTagged selenium/node-firefox:119.0-geckodriver-0.36-20260222\nTagged selenium/standalone-firefox:119.0-geckodriver-0.36-20260222\nTagged selenium/node-firefox:119.0-20260222\nTagged selenium/standalone-firefox:119.0-20260222\n```\n"
  },
  {
    "path": "CHANGELOG/4.41.0/firefox_120.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.41.0 20260222 selenium false firefox true\nTagging images for browser firefox, version 4.41.0, build date 20260222, namespace selenium\nSelenium Grid version -> 4.41.0-20260222\nFirefox version -> 120.0.1\nShort Firefox version -> 120.0\nGeckoDriver version -> 0.36.0\nShort GeckoDriver version -> 0.36\nTagged selenium/node-firefox:120.0.1-geckodriver-0.36.0-grid-4.41.0-20260222\nTagged selenium/standalone-firefox:120.0.1-geckodriver-0.36.0-grid-4.41.0-20260222\nTagged selenium/node-firefox:120.0.1-geckodriver-0.36.0-20260222\nTagged selenium/standalone-firefox:120.0.1-geckodriver-0.36.0-20260222\nTagged selenium/node-firefox:120.0.1-20260222\nTagged selenium/standalone-firefox:120.0.1-20260222\nTagged selenium/node-firefox:120.0-geckodriver-0.36-grid-4.41.0-20260222\nTagged selenium/standalone-firefox:120.0-geckodriver-0.36-grid-4.41.0-20260222\nTagged selenium/node-firefox:120.0-geckodriver-0.36-20260222\nTagged selenium/standalone-firefox:120.0-geckodriver-0.36-20260222\nTagged selenium/node-firefox:120.0-20260222\nTagged selenium/standalone-firefox:120.0-20260222\n```\n"
  },
  {
    "path": "CHANGELOG/4.41.0/firefox_121.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.41.0 20260222 selenium false firefox true\nTagging images for browser firefox, version 4.41.0, build date 20260222, namespace selenium\nSelenium Grid version -> 4.41.0-20260222\nFirefox version -> 121.0.1\nShort Firefox version -> 121.0\nGeckoDriver version -> 0.36.0\nShort GeckoDriver version -> 0.36\nTagged selenium/node-firefox:121.0.1-geckodriver-0.36.0-grid-4.41.0-20260222\nTagged selenium/standalone-firefox:121.0.1-geckodriver-0.36.0-grid-4.41.0-20260222\nTagged selenium/node-firefox:121.0.1-geckodriver-0.36.0-20260222\nTagged selenium/standalone-firefox:121.0.1-geckodriver-0.36.0-20260222\nTagged selenium/node-firefox:121.0.1-20260222\nTagged selenium/standalone-firefox:121.0.1-20260222\nTagged selenium/node-firefox:121.0-geckodriver-0.36-grid-4.41.0-20260222\nTagged selenium/standalone-firefox:121.0-geckodriver-0.36-grid-4.41.0-20260222\nTagged selenium/node-firefox:121.0-geckodriver-0.36-20260222\nTagged selenium/standalone-firefox:121.0-geckodriver-0.36-20260222\nTagged selenium/node-firefox:121.0-20260222\nTagged selenium/standalone-firefox:121.0-20260222\n```\n"
  },
  {
    "path": "CHANGELOG/4.41.0/firefox_122.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.41.0 20260222 selenium false firefox true\nTagging images for browser firefox, version 4.41.0, build date 20260222, namespace selenium\nSelenium Grid version -> 4.41.0-20260222\nFirefox version -> 122.0.1\nShort Firefox version -> 122.0\nGeckoDriver version -> 0.36.0\nShort GeckoDriver version -> 0.36\nTagged selenium/node-firefox:122.0.1-geckodriver-0.36.0-grid-4.41.0-20260222\nTagged selenium/standalone-firefox:122.0.1-geckodriver-0.36.0-grid-4.41.0-20260222\nTagged selenium/node-firefox:122.0.1-geckodriver-0.36.0-20260222\nTagged selenium/standalone-firefox:122.0.1-geckodriver-0.36.0-20260222\nTagged selenium/node-firefox:122.0.1-20260222\nTagged selenium/standalone-firefox:122.0.1-20260222\nTagged selenium/node-firefox:122.0-geckodriver-0.36-grid-4.41.0-20260222\nTagged selenium/standalone-firefox:122.0-geckodriver-0.36-grid-4.41.0-20260222\nTagged selenium/node-firefox:122.0-geckodriver-0.36-20260222\nTagged selenium/standalone-firefox:122.0-geckodriver-0.36-20260222\nTagged selenium/node-firefox:122.0-20260222\nTagged selenium/standalone-firefox:122.0-20260222\n```\n"
  },
  {
    "path": "CHANGELOG/4.41.0/firefox_123.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.41.0 20260222 selenium false firefox true\nTagging images for browser firefox, version 4.41.0, build date 20260222, namespace selenium\nSelenium Grid version -> 4.41.0-20260222\nFirefox version -> 123.0.1\nShort Firefox version -> 123.0\nGeckoDriver version -> 0.36.0\nShort GeckoDriver version -> 0.36\nTagged selenium/node-firefox:123.0.1-geckodriver-0.36.0-grid-4.41.0-20260222\nTagged selenium/standalone-firefox:123.0.1-geckodriver-0.36.0-grid-4.41.0-20260222\nTagged selenium/node-firefox:123.0.1-geckodriver-0.36.0-20260222\nTagged selenium/standalone-firefox:123.0.1-geckodriver-0.36.0-20260222\nTagged selenium/node-firefox:123.0.1-20260222\nTagged selenium/standalone-firefox:123.0.1-20260222\nTagged selenium/node-firefox:123.0-geckodriver-0.36-grid-4.41.0-20260222\nTagged selenium/standalone-firefox:123.0-geckodriver-0.36-grid-4.41.0-20260222\nTagged selenium/node-firefox:123.0-geckodriver-0.36-20260222\nTagged selenium/standalone-firefox:123.0-geckodriver-0.36-20260222\nTagged selenium/node-firefox:123.0-20260222\nTagged selenium/standalone-firefox:123.0-20260222\n```\n"
  },
  {
    "path": "CHANGELOG/4.41.0/firefox_124.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.41.0 20260222 selenium false firefox true\nTagging images for browser firefox, version 4.41.0, build date 20260222, namespace selenium\nSelenium Grid version -> 4.41.0-20260222\nFirefox version -> 124.0.2\nShort Firefox version -> 124.0\nGeckoDriver version -> 0.36.0\nShort GeckoDriver version -> 0.36\nTagged selenium/node-firefox:124.0.2-geckodriver-0.36.0-grid-4.41.0-20260222\nTagged selenium/standalone-firefox:124.0.2-geckodriver-0.36.0-grid-4.41.0-20260222\nTagged selenium/node-firefox:124.0.2-geckodriver-0.36.0-20260222\nTagged selenium/standalone-firefox:124.0.2-geckodriver-0.36.0-20260222\nTagged selenium/node-firefox:124.0.2-20260222\nTagged selenium/standalone-firefox:124.0.2-20260222\nTagged selenium/node-firefox:124.0-geckodriver-0.36-grid-4.41.0-20260222\nTagged selenium/standalone-firefox:124.0-geckodriver-0.36-grid-4.41.0-20260222\nTagged selenium/node-firefox:124.0-geckodriver-0.36-20260222\nTagged selenium/standalone-firefox:124.0-geckodriver-0.36-20260222\nTagged selenium/node-firefox:124.0-20260222\nTagged selenium/standalone-firefox:124.0-20260222\n```\n"
  },
  {
    "path": "CHANGELOG/4.41.0/firefox_125.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.41.0 20260222 selenium false firefox true\nTagging images for browser firefox, version 4.41.0, build date 20260222, namespace selenium\nSelenium Grid version -> 4.41.0-20260222\nFirefox version -> 125.0.3\nShort Firefox version -> 125.0\nGeckoDriver version -> 0.36.0\nShort GeckoDriver version -> 0.36\nTagged selenium/node-firefox:125.0.3-geckodriver-0.36.0-grid-4.41.0-20260222\nTagged selenium/standalone-firefox:125.0.3-geckodriver-0.36.0-grid-4.41.0-20260222\nTagged selenium/node-firefox:125.0.3-geckodriver-0.36.0-20260222\nTagged selenium/standalone-firefox:125.0.3-geckodriver-0.36.0-20260222\nTagged selenium/node-firefox:125.0.3-20260222\nTagged selenium/standalone-firefox:125.0.3-20260222\nTagged selenium/node-firefox:125.0-geckodriver-0.36-grid-4.41.0-20260222\nTagged selenium/standalone-firefox:125.0-geckodriver-0.36-grid-4.41.0-20260222\nTagged selenium/node-firefox:125.0-geckodriver-0.36-20260222\nTagged selenium/standalone-firefox:125.0-geckodriver-0.36-20260222\nTagged selenium/node-firefox:125.0-20260222\nTagged selenium/standalone-firefox:125.0-20260222\n```\n"
  },
  {
    "path": "CHANGELOG/4.41.0/firefox_126.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.41.0 20260222 selenium false firefox true\nTagging images for browser firefox, version 4.41.0, build date 20260222, namespace selenium\nSelenium Grid version -> 4.41.0-20260222\nFirefox version -> 126.0.1\nShort Firefox version -> 126.0\nGeckoDriver version -> 0.36.0\nShort GeckoDriver version -> 0.36\nTagged selenium/node-firefox:126.0.1-geckodriver-0.36.0-grid-4.41.0-20260222\nTagged selenium/standalone-firefox:126.0.1-geckodriver-0.36.0-grid-4.41.0-20260222\nTagged selenium/node-firefox:126.0.1-geckodriver-0.36.0-20260222\nTagged selenium/standalone-firefox:126.0.1-geckodriver-0.36.0-20260222\nTagged selenium/node-firefox:126.0.1-20260222\nTagged selenium/standalone-firefox:126.0.1-20260222\nTagged selenium/node-firefox:126.0-geckodriver-0.36-grid-4.41.0-20260222\nTagged selenium/standalone-firefox:126.0-geckodriver-0.36-grid-4.41.0-20260222\nTagged selenium/node-firefox:126.0-geckodriver-0.36-20260222\nTagged selenium/standalone-firefox:126.0-geckodriver-0.36-20260222\nTagged selenium/node-firefox:126.0-20260222\nTagged selenium/standalone-firefox:126.0-20260222\n```\n"
  },
  {
    "path": "CHANGELOG/4.41.0/firefox_127.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.41.0 20260222 selenium false firefox true\nTagging images for browser firefox, version 4.41.0, build date 20260222, namespace selenium\nSelenium Grid version -> 4.41.0-20260222\nFirefox version -> 127.0.2\nShort Firefox version -> 127.0\nGeckoDriver version -> 0.36.0\nShort GeckoDriver version -> 0.36\nTagged selenium/node-firefox:127.0.2-geckodriver-0.36.0-grid-4.41.0-20260222\nTagged selenium/standalone-firefox:127.0.2-geckodriver-0.36.0-grid-4.41.0-20260222\nTagged selenium/node-firefox:127.0.2-geckodriver-0.36.0-20260222\nTagged selenium/standalone-firefox:127.0.2-geckodriver-0.36.0-20260222\nTagged selenium/node-firefox:127.0.2-20260222\nTagged selenium/standalone-firefox:127.0.2-20260222\nTagged selenium/node-firefox:127.0-geckodriver-0.36-grid-4.41.0-20260222\nTagged selenium/standalone-firefox:127.0-geckodriver-0.36-grid-4.41.0-20260222\nTagged selenium/node-firefox:127.0-geckodriver-0.36-20260222\nTagged selenium/standalone-firefox:127.0-geckodriver-0.36-20260222\nTagged selenium/node-firefox:127.0-20260222\nTagged selenium/standalone-firefox:127.0-20260222\n```\n"
  },
  {
    "path": "CHANGELOG/4.41.0/firefox_128.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.41.0 20260222 selenium false firefox true\nTagging images for browser firefox, version 4.41.0, build date 20260222, namespace selenium\nSelenium Grid version -> 4.41.0-20260222\nFirefox version -> 128.0.3\nShort Firefox version -> 128.0\nGeckoDriver version -> 0.36.0\nShort GeckoDriver version -> 0.36\nTagged selenium/node-firefox:128.0.3-geckodriver-0.36.0-grid-4.41.0-20260222\nTagged selenium/standalone-firefox:128.0.3-geckodriver-0.36.0-grid-4.41.0-20260222\nTagged selenium/node-firefox:128.0.3-geckodriver-0.36.0-20260222\nTagged selenium/standalone-firefox:128.0.3-geckodriver-0.36.0-20260222\nTagged selenium/node-firefox:128.0.3-20260222\nTagged selenium/standalone-firefox:128.0.3-20260222\nTagged selenium/node-firefox:128.0-geckodriver-0.36-grid-4.41.0-20260222\nTagged selenium/standalone-firefox:128.0-geckodriver-0.36-grid-4.41.0-20260222\nTagged selenium/node-firefox:128.0-geckodriver-0.36-20260222\nTagged selenium/standalone-firefox:128.0-geckodriver-0.36-20260222\nTagged selenium/node-firefox:128.0-20260222\nTagged selenium/standalone-firefox:128.0-20260222\n```\n"
  },
  {
    "path": "CHANGELOG/4.41.0/firefox_129.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.41.0 20260222 selenium false firefox true\nTagging images for browser firefox, version 4.41.0, build date 20260222, namespace selenium\nSelenium Grid version -> 4.41.0-20260222\nFirefox version -> 129.0.2\nShort Firefox version -> 129.0\nGeckoDriver version -> 0.36.0\nShort GeckoDriver version -> 0.36\nTagged selenium/node-firefox:129.0.2-geckodriver-0.36.0-grid-4.41.0-20260222\nTagged selenium/standalone-firefox:129.0.2-geckodriver-0.36.0-grid-4.41.0-20260222\nTagged selenium/node-firefox:129.0.2-geckodriver-0.36.0-20260222\nTagged selenium/standalone-firefox:129.0.2-geckodriver-0.36.0-20260222\nTagged selenium/node-firefox:129.0.2-20260222\nTagged selenium/standalone-firefox:129.0.2-20260222\nTagged selenium/node-firefox:129.0-geckodriver-0.36-grid-4.41.0-20260222\nTagged selenium/standalone-firefox:129.0-geckodriver-0.36-grid-4.41.0-20260222\nTagged selenium/node-firefox:129.0-geckodriver-0.36-20260222\nTagged selenium/standalone-firefox:129.0-geckodriver-0.36-20260222\nTagged selenium/node-firefox:129.0-20260222\nTagged selenium/standalone-firefox:129.0-20260222\n```\n"
  },
  {
    "path": "CHANGELOG/4.41.0/firefox_130.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.41.0 20260222 selenium false firefox true\nTagging images for browser firefox, version 4.41.0, build date 20260222, namespace selenium\nSelenium Grid version -> 4.41.0-20260222\nFirefox version -> 130.0.1\nShort Firefox version -> 130.0\nGeckoDriver version -> 0.36.0\nShort GeckoDriver version -> 0.36\nTagged selenium/node-firefox:130.0.1-geckodriver-0.36.0-grid-4.41.0-20260222\nTagged selenium/standalone-firefox:130.0.1-geckodriver-0.36.0-grid-4.41.0-20260222\nTagged selenium/node-firefox:130.0.1-geckodriver-0.36.0-20260222\nTagged selenium/standalone-firefox:130.0.1-geckodriver-0.36.0-20260222\nTagged selenium/node-firefox:130.0.1-20260222\nTagged selenium/standalone-firefox:130.0.1-20260222\nTagged selenium/node-firefox:130.0-geckodriver-0.36-grid-4.41.0-20260222\nTagged selenium/standalone-firefox:130.0-geckodriver-0.36-grid-4.41.0-20260222\nTagged selenium/node-firefox:130.0-geckodriver-0.36-20260222\nTagged selenium/standalone-firefox:130.0-geckodriver-0.36-20260222\nTagged selenium/node-firefox:130.0-20260222\nTagged selenium/standalone-firefox:130.0-20260222\n```\n"
  },
  {
    "path": "CHANGELOG/4.41.0/firefox_131.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.41.0 20260222 selenium false firefox true\nTagging images for browser firefox, version 4.41.0, build date 20260222, namespace selenium\nSelenium Grid version -> 4.41.0-20260222\nFirefox version -> 131.0.3\nShort Firefox version -> 131.0\nGeckoDriver version -> 0.36.0\nShort GeckoDriver version -> 0.36\nTagged selenium/node-firefox:131.0.3-geckodriver-0.36.0-grid-4.41.0-20260222\nTagged selenium/standalone-firefox:131.0.3-geckodriver-0.36.0-grid-4.41.0-20260222\nTagged selenium/node-firefox:131.0.3-geckodriver-0.36.0-20260222\nTagged selenium/standalone-firefox:131.0.3-geckodriver-0.36.0-20260222\nTagged selenium/node-firefox:131.0.3-20260222\nTagged selenium/standalone-firefox:131.0.3-20260222\nTagged selenium/node-firefox:131.0-geckodriver-0.36-grid-4.41.0-20260222\nTagged selenium/standalone-firefox:131.0-geckodriver-0.36-grid-4.41.0-20260222\nTagged selenium/node-firefox:131.0-geckodriver-0.36-20260222\nTagged selenium/standalone-firefox:131.0-geckodriver-0.36-20260222\nTagged selenium/node-firefox:131.0-20260222\nTagged selenium/standalone-firefox:131.0-20260222\n```\n"
  },
  {
    "path": "CHANGELOG/4.41.0/firefox_132.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.41.0 20260222 selenium false firefox true\nTagging images for browser firefox, version 4.41.0, build date 20260222, namespace selenium\nSelenium Grid version -> 4.41.0-20260222\nFirefox version -> 132.0.2\nShort Firefox version -> 132.0\nGeckoDriver version -> 0.36.0\nShort GeckoDriver version -> 0.36\nTagged selenium/node-firefox:132.0.2-geckodriver-0.36.0-grid-4.41.0-20260222\nTagged selenium/standalone-firefox:132.0.2-geckodriver-0.36.0-grid-4.41.0-20260222\nTagged selenium/node-firefox:132.0.2-geckodriver-0.36.0-20260222\nTagged selenium/standalone-firefox:132.0.2-geckodriver-0.36.0-20260222\nTagged selenium/node-firefox:132.0.2-20260222\nTagged selenium/standalone-firefox:132.0.2-20260222\nTagged selenium/node-firefox:132.0-geckodriver-0.36-grid-4.41.0-20260222\nTagged selenium/standalone-firefox:132.0-geckodriver-0.36-grid-4.41.0-20260222\nTagged selenium/node-firefox:132.0-geckodriver-0.36-20260222\nTagged selenium/standalone-firefox:132.0-geckodriver-0.36-20260222\nTagged selenium/node-firefox:132.0-20260222\nTagged selenium/standalone-firefox:132.0-20260222\n```\n"
  },
  {
    "path": "CHANGELOG/4.41.0/firefox_133.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.41.0 20260222 selenium false firefox true\nTagging images for browser firefox, version 4.41.0, build date 20260222, namespace selenium\nSelenium Grid version -> 4.41.0-20260222\nFirefox version -> 133.0.3\nShort Firefox version -> 133.0\nGeckoDriver version -> 0.36.0\nShort GeckoDriver version -> 0.36\nTagged selenium/node-firefox:133.0.3-geckodriver-0.36.0-grid-4.41.0-20260222\nTagged selenium/standalone-firefox:133.0.3-geckodriver-0.36.0-grid-4.41.0-20260222\nTagged selenium/node-firefox:133.0.3-geckodriver-0.36.0-20260222\nTagged selenium/standalone-firefox:133.0.3-geckodriver-0.36.0-20260222\nTagged selenium/node-firefox:133.0.3-20260222\nTagged selenium/standalone-firefox:133.0.3-20260222\nTagged selenium/node-firefox:133.0-geckodriver-0.36-grid-4.41.0-20260222\nTagged selenium/standalone-firefox:133.0-geckodriver-0.36-grid-4.41.0-20260222\nTagged selenium/node-firefox:133.0-geckodriver-0.36-20260222\nTagged selenium/standalone-firefox:133.0-geckodriver-0.36-20260222\nTagged selenium/node-firefox:133.0-20260222\nTagged selenium/standalone-firefox:133.0-20260222\n```\n"
  },
  {
    "path": "CHANGELOG/4.41.0/firefox_134.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.41.0 20260222 selenium false firefox true\nTagging images for browser firefox, version 4.41.0, build date 20260222, namespace selenium\nSelenium Grid version -> 4.41.0-20260222\nFirefox version -> 134.0.2\nShort Firefox version -> 134.0\nGeckoDriver version -> 0.36.0\nShort GeckoDriver version -> 0.36\nTagged selenium/node-firefox:134.0.2-geckodriver-0.36.0-grid-4.41.0-20260222\nTagged selenium/standalone-firefox:134.0.2-geckodriver-0.36.0-grid-4.41.0-20260222\nTagged selenium/node-firefox:134.0.2-geckodriver-0.36.0-20260222\nTagged selenium/standalone-firefox:134.0.2-geckodriver-0.36.0-20260222\nTagged selenium/node-firefox:134.0.2-20260222\nTagged selenium/standalone-firefox:134.0.2-20260222\nTagged selenium/node-firefox:134.0-geckodriver-0.36-grid-4.41.0-20260222\nTagged selenium/standalone-firefox:134.0-geckodriver-0.36-grid-4.41.0-20260222\nTagged selenium/node-firefox:134.0-geckodriver-0.36-20260222\nTagged selenium/standalone-firefox:134.0-geckodriver-0.36-20260222\nTagged selenium/node-firefox:134.0-20260222\nTagged selenium/standalone-firefox:134.0-20260222\n```\n"
  },
  {
    "path": "CHANGELOG/4.41.0/firefox_135.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.41.0 20260222 selenium false firefox true\nTagging images for browser firefox, version 4.41.0, build date 20260222, namespace selenium\nSelenium Grid version -> 4.41.0-20260222\nFirefox version -> 135.0.1\nShort Firefox version -> 135.0\nGeckoDriver version -> 0.36.0\nShort GeckoDriver version -> 0.36\nTagged selenium/node-firefox:135.0.1-geckodriver-0.36.0-grid-4.41.0-20260222\nTagged selenium/standalone-firefox:135.0.1-geckodriver-0.36.0-grid-4.41.0-20260222\nTagged selenium/node-firefox:135.0.1-geckodriver-0.36.0-20260222\nTagged selenium/standalone-firefox:135.0.1-geckodriver-0.36.0-20260222\nTagged selenium/node-firefox:135.0.1-20260222\nTagged selenium/standalone-firefox:135.0.1-20260222\nTagged selenium/node-firefox:135.0-geckodriver-0.36-grid-4.41.0-20260222\nTagged selenium/standalone-firefox:135.0-geckodriver-0.36-grid-4.41.0-20260222\nTagged selenium/node-firefox:135.0-geckodriver-0.36-20260222\nTagged selenium/standalone-firefox:135.0-geckodriver-0.36-20260222\nTagged selenium/node-firefox:135.0-20260222\nTagged selenium/standalone-firefox:135.0-20260222\n```\n"
  },
  {
    "path": "CHANGELOG/4.41.0/firefox_136.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.41.0 20260222 selenium false firefox true\nTagging images for browser firefox, version 4.41.0, build date 20260222, namespace selenium\nSelenium Grid version -> 4.41.0-20260222\nFirefox version -> 136.0.4\nShort Firefox version -> 136.0\nGeckoDriver version -> 0.36.0\nShort GeckoDriver version -> 0.36\nTagged selenium/node-firefox:136.0.4-geckodriver-0.36.0-grid-4.41.0-20260222\nTagged selenium/standalone-firefox:136.0.4-geckodriver-0.36.0-grid-4.41.0-20260222\nTagged selenium/node-firefox:136.0.4-geckodriver-0.36.0-20260222\nTagged selenium/standalone-firefox:136.0.4-geckodriver-0.36.0-20260222\nTagged selenium/node-firefox:136.0.4-20260222\nTagged selenium/standalone-firefox:136.0.4-20260222\nTagged selenium/node-firefox:136.0-geckodriver-0.36-grid-4.41.0-20260222\nTagged selenium/standalone-firefox:136.0-geckodriver-0.36-grid-4.41.0-20260222\nTagged selenium/node-firefox:136.0-geckodriver-0.36-20260222\nTagged selenium/standalone-firefox:136.0-geckodriver-0.36-20260222\nTagged selenium/node-firefox:136.0-20260222\nTagged selenium/standalone-firefox:136.0-20260222\n```\n"
  },
  {
    "path": "CHANGELOG/4.41.0/firefox_137.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.41.0 20260222 selenium false firefox true\nTagging images for browser firefox, version 4.41.0, build date 20260222, namespace selenium\nSelenium Grid version -> 4.41.0-20260222\nFirefox version -> 137.0.2\nShort Firefox version -> 137.0\nGeckoDriver version -> 0.36.0\nShort GeckoDriver version -> 0.36\nTagged selenium/node-firefox:137.0.2-geckodriver-0.36.0-grid-4.41.0-20260222\nTagged selenium/standalone-firefox:137.0.2-geckodriver-0.36.0-grid-4.41.0-20260222\nTagged selenium/node-firefox:137.0.2-geckodriver-0.36.0-20260222\nTagged selenium/standalone-firefox:137.0.2-geckodriver-0.36.0-20260222\nTagged selenium/node-firefox:137.0.2-20260222\nTagged selenium/standalone-firefox:137.0.2-20260222\nTagged selenium/node-firefox:137.0-geckodriver-0.36-grid-4.41.0-20260222\nTagged selenium/standalone-firefox:137.0-geckodriver-0.36-grid-4.41.0-20260222\nTagged selenium/node-firefox:137.0-geckodriver-0.36-20260222\nTagged selenium/standalone-firefox:137.0-geckodriver-0.36-20260222\nTagged selenium/node-firefox:137.0-20260222\nTagged selenium/standalone-firefox:137.0-20260222\n```\n"
  },
  {
    "path": "CHANGELOG/4.41.0/firefox_138.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.41.0 20260222 selenium false firefox true\nTagging images for browser firefox, version 4.41.0, build date 20260222, namespace selenium\nSelenium Grid version -> 4.41.0-20260222\nFirefox version -> 138.0.4\nShort Firefox version -> 138.0\nGeckoDriver version -> 0.36.0\nShort GeckoDriver version -> 0.36\nTagged selenium/node-firefox:138.0.4-geckodriver-0.36.0-grid-4.41.0-20260222\nTagged selenium/standalone-firefox:138.0.4-geckodriver-0.36.0-grid-4.41.0-20260222\nTagged selenium/node-firefox:138.0.4-geckodriver-0.36.0-20260222\nTagged selenium/standalone-firefox:138.0.4-geckodriver-0.36.0-20260222\nTagged selenium/node-firefox:138.0.4-20260222\nTagged selenium/standalone-firefox:138.0.4-20260222\nTagged selenium/node-firefox:138.0-geckodriver-0.36-grid-4.41.0-20260222\nTagged selenium/standalone-firefox:138.0-geckodriver-0.36-grid-4.41.0-20260222\nTagged selenium/node-firefox:138.0-geckodriver-0.36-20260222\nTagged selenium/standalone-firefox:138.0-geckodriver-0.36-20260222\nTagged selenium/node-firefox:138.0-20260222\nTagged selenium/standalone-firefox:138.0-20260222\n```\n"
  },
  {
    "path": "CHANGELOG/4.41.0/firefox_139.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.41.0 20260222 selenium false firefox true\nTagging images for browser firefox, version 4.41.0, build date 20260222, namespace selenium\nSelenium Grid version -> 4.41.0-20260222\nFirefox version -> 139.0.4\nShort Firefox version -> 139.0\nGeckoDriver version -> 0.36.0\nShort GeckoDriver version -> 0.36\nTagged selenium/node-firefox:139.0.4-geckodriver-0.36.0-grid-4.41.0-20260222\nTagged selenium/standalone-firefox:139.0.4-geckodriver-0.36.0-grid-4.41.0-20260222\nTagged selenium/node-firefox:139.0.4-geckodriver-0.36.0-20260222\nTagged selenium/standalone-firefox:139.0.4-geckodriver-0.36.0-20260222\nTagged selenium/node-firefox:139.0.4-20260222\nTagged selenium/standalone-firefox:139.0.4-20260222\nTagged selenium/node-firefox:139.0-geckodriver-0.36-grid-4.41.0-20260222\nTagged selenium/standalone-firefox:139.0-geckodriver-0.36-grid-4.41.0-20260222\nTagged selenium/node-firefox:139.0-geckodriver-0.36-20260222\nTagged selenium/standalone-firefox:139.0-geckodriver-0.36-20260222\nTagged selenium/node-firefox:139.0-20260222\nTagged selenium/standalone-firefox:139.0-20260222\n```\n"
  },
  {
    "path": "CHANGELOG/4.41.0/firefox_140.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.41.0 20260222 selenium false firefox true\nTagging images for browser firefox, version 4.41.0, build date 20260222, namespace selenium\nSelenium Grid version -> 4.41.0-20260222\nFirefox version -> 140.0.4\nShort Firefox version -> 140.0\nGeckoDriver version -> 0.36.0\nShort GeckoDriver version -> 0.36\nTagged selenium/node-firefox:140.0.4-geckodriver-0.36.0-grid-4.41.0-20260222\nTagged selenium/standalone-firefox:140.0.4-geckodriver-0.36.0-grid-4.41.0-20260222\nTagged selenium/node-firefox:140.0.4-geckodriver-0.36.0-20260222\nTagged selenium/standalone-firefox:140.0.4-geckodriver-0.36.0-20260222\nTagged selenium/node-firefox:140.0.4-20260222\nTagged selenium/standalone-firefox:140.0.4-20260222\nTagged selenium/node-firefox:140.0-geckodriver-0.36-grid-4.41.0-20260222\nTagged selenium/standalone-firefox:140.0-geckodriver-0.36-grid-4.41.0-20260222\nTagged selenium/node-firefox:140.0-geckodriver-0.36-20260222\nTagged selenium/standalone-firefox:140.0-geckodriver-0.36-20260222\nTagged selenium/node-firefox:140.0-20260222\nTagged selenium/standalone-firefox:140.0-20260222\n```\n"
  },
  {
    "path": "CHANGELOG/4.41.0/firefox_141.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.41.0 20260222 selenium false firefox true\nTagging images for browser firefox, version 4.41.0, build date 20260222, namespace selenium\nSelenium Grid version -> 4.41.0-20260222\nFirefox version -> 141.0.3\nShort Firefox version -> 141.0\nGeckoDriver version -> 0.36.0\nShort GeckoDriver version -> 0.36\nTagged selenium/node-firefox:141.0.3-geckodriver-0.36.0-grid-4.41.0-20260222\nTagged selenium/standalone-firefox:141.0.3-geckodriver-0.36.0-grid-4.41.0-20260222\nTagged selenium/node-firefox:141.0.3-geckodriver-0.36.0-20260222\nTagged selenium/standalone-firefox:141.0.3-geckodriver-0.36.0-20260222\nTagged selenium/node-firefox:141.0.3-20260222\nTagged selenium/standalone-firefox:141.0.3-20260222\nTagged selenium/node-firefox:141.0-geckodriver-0.36-grid-4.41.0-20260222\nTagged selenium/standalone-firefox:141.0-geckodriver-0.36-grid-4.41.0-20260222\nTagged selenium/node-firefox:141.0-geckodriver-0.36-20260222\nTagged selenium/standalone-firefox:141.0-geckodriver-0.36-20260222\nTagged selenium/node-firefox:141.0-20260222\nTagged selenium/standalone-firefox:141.0-20260222\n```\n"
  },
  {
    "path": "CHANGELOG/4.41.0/firefox_142.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.41.0 20260222 selenium false firefox true\nTagging images for browser firefox, version 4.41.0, build date 20260222, namespace selenium\nSelenium Grid version -> 4.41.0-20260222\nFirefox version -> 142.0.1\nShort Firefox version -> 142.0\nGeckoDriver version -> 0.36.0\nShort GeckoDriver version -> 0.36\nTagged selenium/node-firefox:142.0.1-geckodriver-0.36.0-grid-4.41.0-20260222\nTagged selenium/standalone-firefox:142.0.1-geckodriver-0.36.0-grid-4.41.0-20260222\nTagged selenium/node-firefox:142.0.1-geckodriver-0.36.0-20260222\nTagged selenium/standalone-firefox:142.0.1-geckodriver-0.36.0-20260222\nTagged selenium/node-firefox:142.0.1-20260222\nTagged selenium/standalone-firefox:142.0.1-20260222\nTagged selenium/node-firefox:142.0-geckodriver-0.36-grid-4.41.0-20260222\nTagged selenium/standalone-firefox:142.0-geckodriver-0.36-grid-4.41.0-20260222\nTagged selenium/node-firefox:142.0-geckodriver-0.36-20260222\nTagged selenium/standalone-firefox:142.0-geckodriver-0.36-20260222\nTagged selenium/node-firefox:142.0-20260222\nTagged selenium/standalone-firefox:142.0-20260222\n```\n"
  },
  {
    "path": "CHANGELOG/4.41.0/firefox_143.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.41.0 20260222 selenium false firefox true\nTagging images for browser firefox, version 4.41.0, build date 20260222, namespace selenium\nSelenium Grid version -> 4.41.0-20260222\nFirefox version -> 143.0.4\nShort Firefox version -> 143.0\nGeckoDriver version -> 0.36.0\nShort GeckoDriver version -> 0.36\nTagged selenium/node-firefox:143.0.4-geckodriver-0.36.0-grid-4.41.0-20260222\nTagged selenium/standalone-firefox:143.0.4-geckodriver-0.36.0-grid-4.41.0-20260222\nTagged selenium/node-firefox:143.0.4-geckodriver-0.36.0-20260222\nTagged selenium/standalone-firefox:143.0.4-geckodriver-0.36.0-20260222\nTagged selenium/node-firefox:143.0.4-20260222\nTagged selenium/standalone-firefox:143.0.4-20260222\nTagged selenium/node-firefox:143.0-geckodriver-0.36-grid-4.41.0-20260222\nTagged selenium/standalone-firefox:143.0-geckodriver-0.36-grid-4.41.0-20260222\nTagged selenium/node-firefox:143.0-geckodriver-0.36-20260222\nTagged selenium/standalone-firefox:143.0-geckodriver-0.36-20260222\nTagged selenium/node-firefox:143.0-20260222\nTagged selenium/standalone-firefox:143.0-20260222\n```\n"
  },
  {
    "path": "CHANGELOG/4.41.0/firefox_144.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.41.0 20260222 selenium false firefox true\nTagging images for browser firefox, version 4.41.0, build date 20260222, namespace selenium\nSelenium Grid version -> 4.41.0-20260222\nFirefox version -> 144.0.2\nShort Firefox version -> 144.0\nGeckoDriver version -> 0.36.0\nShort GeckoDriver version -> 0.36\nTagged selenium/node-firefox:144.0.2-geckodriver-0.36.0-grid-4.41.0-20260222\nTagged selenium/standalone-firefox:144.0.2-geckodriver-0.36.0-grid-4.41.0-20260222\nTagged selenium/node-firefox:144.0.2-geckodriver-0.36.0-20260222\nTagged selenium/standalone-firefox:144.0.2-geckodriver-0.36.0-20260222\nTagged selenium/node-firefox:144.0.2-20260222\nTagged selenium/standalone-firefox:144.0.2-20260222\nTagged selenium/node-firefox:144.0-geckodriver-0.36-grid-4.41.0-20260222\nTagged selenium/standalone-firefox:144.0-geckodriver-0.36-grid-4.41.0-20260222\nTagged selenium/node-firefox:144.0-geckodriver-0.36-20260222\nTagged selenium/standalone-firefox:144.0-geckodriver-0.36-20260222\nTagged selenium/node-firefox:144.0-20260222\nTagged selenium/standalone-firefox:144.0-20260222\n```\n"
  },
  {
    "path": "CHANGELOG/4.41.0/firefox_145.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.41.0 20260222 selenium false firefox true\nTagging images for browser firefox, version 4.41.0, build date 20260222, namespace selenium\nSelenium Grid version -> 4.41.0-20260222\nFirefox version -> 145.0.2\nShort Firefox version -> 145.0\nGeckoDriver version -> 0.36.0\nShort GeckoDriver version -> 0.36\nTagged selenium/node-firefox:145.0.2-geckodriver-0.36.0-grid-4.41.0-20260222\nTagged selenium/standalone-firefox:145.0.2-geckodriver-0.36.0-grid-4.41.0-20260222\nTagged selenium/node-firefox:145.0.2-geckodriver-0.36.0-20260222\nTagged selenium/standalone-firefox:145.0.2-geckodriver-0.36.0-20260222\nTagged selenium/node-firefox:145.0.2-20260222\nTagged selenium/standalone-firefox:145.0.2-20260222\nTagged selenium/node-firefox:145.0-geckodriver-0.36-grid-4.41.0-20260222\nTagged selenium/standalone-firefox:145.0-geckodriver-0.36-grid-4.41.0-20260222\nTagged selenium/node-firefox:145.0-geckodriver-0.36-20260222\nTagged selenium/standalone-firefox:145.0-geckodriver-0.36-20260222\nTagged selenium/node-firefox:145.0-20260222\nTagged selenium/standalone-firefox:145.0-20260222\n```\n"
  },
  {
    "path": "CHANGELOG/4.41.0/firefox_146.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.41.0 20260222 selenium false firefox true\nTagging images for browser firefox, version 4.41.0, build date 20260222, namespace selenium\nSelenium Grid version -> 4.41.0-20260222\nFirefox version -> 146.0.1\nShort Firefox version -> 146.0\nGeckoDriver version -> 0.36.0\nShort GeckoDriver version -> 0.36\nTagged selenium/node-firefox:146.0.1-geckodriver-0.36.0-grid-4.41.0-20260222\nTagged selenium/standalone-firefox:146.0.1-geckodriver-0.36.0-grid-4.41.0-20260222\nTagged selenium/node-firefox:146.0.1-geckodriver-0.36.0-20260222\nTagged selenium/standalone-firefox:146.0.1-geckodriver-0.36.0-20260222\nTagged selenium/node-firefox:146.0.1-20260222\nTagged selenium/standalone-firefox:146.0.1-20260222\nTagged selenium/node-firefox:146.0-geckodriver-0.36-grid-4.41.0-20260222\nTagged selenium/standalone-firefox:146.0-geckodriver-0.36-grid-4.41.0-20260222\nTagged selenium/node-firefox:146.0-geckodriver-0.36-20260222\nTagged selenium/standalone-firefox:146.0-geckodriver-0.36-20260222\nTagged selenium/node-firefox:146.0-20260222\nTagged selenium/standalone-firefox:146.0-20260222\n```\n"
  },
  {
    "path": "CHANGELOG/4.41.0/firefox_147.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.41.0 20260222 selenium false firefox true\nTagging images for browser firefox, version 4.41.0, build date 20260222, namespace selenium\nSelenium Grid version -> 4.41.0-20260222\nFirefox version -> 147.0.4\nShort Firefox version -> 147.0\nGeckoDriver version -> 0.36.0\nShort GeckoDriver version -> 0.36\nTagged selenium/node-firefox:147.0.4-geckodriver-0.36.0-grid-4.41.0-20260222\nTagged selenium/standalone-firefox:147.0.4-geckodriver-0.36.0-grid-4.41.0-20260222\nTagged selenium/node-firefox:147.0.4-geckodriver-0.36.0-20260222\nTagged selenium/standalone-firefox:147.0.4-geckodriver-0.36.0-20260222\nTagged selenium/node-firefox:147.0.4-20260222\nTagged selenium/standalone-firefox:147.0.4-20260222\nTagged selenium/node-firefox:147.0-geckodriver-0.36-grid-4.41.0-20260222\nTagged selenium/standalone-firefox:147.0-geckodriver-0.36-grid-4.41.0-20260222\nTagged selenium/node-firefox:147.0-geckodriver-0.36-20260222\nTagged selenium/standalone-firefox:147.0-geckodriver-0.36-20260222\nTagged selenium/node-firefox:147.0-20260222\nTagged selenium/standalone-firefox:147.0-20260222\n```\n"
  },
  {
    "path": "CHANGELOG/4.41.0/firefox_148.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.41.0 20260222 selenium false firefox true\nTagging images for browser firefox, version 4.41.0, build date 20260222, namespace selenium\nSelenium Grid version -> 4.41.0-20260222\nFirefox version -> 148.0\nShort Firefox version -> 148.0\nGeckoDriver version -> 0.36.0\nShort GeckoDriver version -> 0.36\nTagged selenium/node-firefox:148.0-geckodriver-0.36.0-grid-4.41.0-20260222\nTagged selenium/standalone-firefox:148.0-geckodriver-0.36.0-grid-4.41.0-20260222\nTagged selenium/node-firefox:148.0-geckodriver-0.36.0-20260222\nTagged selenium/standalone-firefox:148.0-geckodriver-0.36.0-20260222\nTagged selenium/node-firefox:148.0-20260222\nTagged selenium/standalone-firefox:148.0-20260222\nTagged selenium/node-firefox:148.0-geckodriver-0.36-grid-4.41.0-20260222\nTagged selenium/standalone-firefox:148.0-geckodriver-0.36-grid-4.41.0-20260222\nTagged selenium/node-firefox:148.0-geckodriver-0.36-20260222\nTagged selenium/standalone-firefox:148.0-geckodriver-0.36-20260222\nTagged selenium/node-firefox:148.0-20260222\nTagged selenium/standalone-firefox:148.0-20260222\n```\n"
  },
  {
    "path": "CHANGELOG/4.41.0/firefox_98.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.41.0 20260222 selenium false firefox true\nTagging images for browser firefox, version 4.41.0, build date 20260222, namespace selenium\nSelenium Grid version -> 4.41.0-20260222\nFirefox version -> 98.0.2\nShort Firefox version -> 98.0\nGeckoDriver version -> 0.36.0\nShort GeckoDriver version -> 0.36\nTagged selenium/node-firefox:98.0.2-geckodriver-0.36.0-grid-4.41.0-20260222\nTagged selenium/standalone-firefox:98.0.2-geckodriver-0.36.0-grid-4.41.0-20260222\nTagged selenium/node-firefox:98.0.2-geckodriver-0.36.0-20260222\nTagged selenium/standalone-firefox:98.0.2-geckodriver-0.36.0-20260222\nTagged selenium/node-firefox:98.0.2-20260222\nTagged selenium/standalone-firefox:98.0.2-20260222\nTagged selenium/node-firefox:98.0-geckodriver-0.36-grid-4.41.0-20260222\nTagged selenium/standalone-firefox:98.0-geckodriver-0.36-grid-4.41.0-20260222\nTagged selenium/node-firefox:98.0-geckodriver-0.36-20260222\nTagged selenium/standalone-firefox:98.0-geckodriver-0.36-20260222\nTagged selenium/node-firefox:98.0-20260222\nTagged selenium/standalone-firefox:98.0-20260222\n```\n"
  },
  {
    "path": "CHANGELOG/4.41.0/firefox_99.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.41.0 20260222 selenium false firefox true\nTagging images for browser firefox, version 4.41.0, build date 20260222, namespace selenium\nSelenium Grid version -> 4.41.0-20260222\nFirefox version -> 99.0.1\nShort Firefox version -> 99.0\nGeckoDriver version -> 0.36.0\nShort GeckoDriver version -> 0.36\nTagged selenium/node-firefox:99.0.1-geckodriver-0.36.0-grid-4.41.0-20260222\nTagged selenium/standalone-firefox:99.0.1-geckodriver-0.36.0-grid-4.41.0-20260222\nTagged selenium/node-firefox:99.0.1-geckodriver-0.36.0-20260222\nTagged selenium/standalone-firefox:99.0.1-geckodriver-0.36.0-20260222\nTagged selenium/node-firefox:99.0.1-20260222\nTagged selenium/standalone-firefox:99.0.1-20260222\nTagged selenium/node-firefox:99.0-geckodriver-0.36-grid-4.41.0-20260222\nTagged selenium/standalone-firefox:99.0-geckodriver-0.36-grid-4.41.0-20260222\nTagged selenium/node-firefox:99.0-geckodriver-0.36-20260222\nTagged selenium/standalone-firefox:99.0-geckodriver-0.36-20260222\nTagged selenium/node-firefox:99.0-20260222\nTagged selenium/standalone-firefox:99.0-20260222\n```\n"
  },
  {
    "path": "CHANGELOG/README.md",
    "content": "# Selenium Grid x Browser Version Matrix\n\nThis matrix shows available Docker images with packaged Selenium Grid and browser versions. It helps users quickly identify which image tags to pull for their testing needs.\n\n**Motivation**: To supply the latest Selenium Grid core version with new functionality while keeping users able to use it for testing purposes like cross-browser testing or pinning a browser version due to limited support or issues at specific browser versions. We deliver Docker images for Node and Standalone with packaging both Grid and specific driver/browser versions. Users just find the image tag, pull the image they need and start their tests.\n\n**How to read**: Each ✓ links to detailed changelog information for that specific browser version in the corresponding Grid release. Latest versions appear first (descending order).\n\n**Note**: We don't have full testing to ensure every combination of Grid and browser version will function fully as expected. Users need to evaluate and make their own decisions based on their testing requirements.\n\n## Latest Grid Version\n\n### Chrome\n\n| Grid Version | 145 | 144 | 143 | 142 | 141 | 140 | 139 | 138 | 137 | 136 | 135 | 134 | 133 | 132 | 131 | 130 | 129 | 128 | 127 | 126 | 125 | 124 | 123 | 122 | 121 | 120 | 119 | 118 | 117 | 116 | 115 | 114 | 113 | 112 | 111 | 110 | 109 | 108 | 107 | 106 | 105 | 104 | 103 | 102 | 101 | 100 | 99 | 98 | 97 | 96 | 95 |\n|--------------|----|----|----|----|----|----|----|----|----|----|----|----|----|----|----|----|----|----|----|----|----|----|----|----|----|----|----|----|----|----|----|----|----|----|----|----|----|----|----|----|----|----|----|----|----|----|----|----|----|----|----|\n| 4.41.0 | [✓](4.41.0/chrome_145.md) | [✓](4.41.0/chrome_144.md) | [✓](4.41.0/chrome_143.md) | [✓](4.41.0/chrome_142.md) | [✓](4.41.0/chrome_141.md) | [✓](4.41.0/chrome_140.md) | [✓](4.41.0/chrome_139.md) | [✓](4.41.0/chrome_138.md) | [✓](4.41.0/chrome_137.md) | [✓](4.41.0/chrome_136.md) | [✓](4.41.0/chrome_135.md) | [✓](4.41.0/chrome_134.md) | [✓](4.41.0/chrome_133.md) | [✓](4.41.0/chrome_132.md) | [✓](4.41.0/chrome_131.md) | [✓](4.41.0/chrome_130.md) | [✓](4.41.0/chrome_129.md) | [✓](4.41.0/chrome_128.md) | [✓](4.41.0/chrome_127.md) | [✓](4.41.0/chrome_126.md) | [✓](4.41.0/chrome_125.md) | [✓](4.41.0/chrome_124.md) | [✓](4.41.0/chrome_123.md) | [✓](4.41.0/chrome_122.md) | [✓](4.41.0/chrome_121.md) | [✓](4.41.0/chrome_120.md) | [✓](4.41.0/chrome_119.md) | [✓](4.41.0/chrome_118.md) | [✓](4.41.0/chrome_117.md) | [✓](4.41.0/chrome_116.md) | [✓](4.41.0/chrome_115.md) | [✓](4.41.0/chrome_114.md) | [✓](4.41.0/chrome_113.md) | [✓](4.41.0/chrome_112.md) | [✓](4.41.0/chrome_111.md) | [✓](4.41.0/chrome_110.md) | [✓](4.41.0/chrome_109.md) | [✓](4.41.0/chrome_108.md) | [✓](4.41.0/chrome_107.md) | [✓](4.41.0/chrome_106.md) | [✓](4.41.0/chrome_105.md) | [✓](4.41.0/chrome_104.md) | [✓](4.41.0/chrome_103.md) | [✓](4.41.0/chrome_102.md) | [✓](4.41.0/chrome_101.md) | [✓](4.41.0/chrome_100.md) | [✓](4.41.0/chrome_99.md) | [✓](4.41.0/chrome_98.md) | [✓](4.41.0/chrome_97.md) | [✓](4.41.0/chrome_96.md) | [✓](4.41.0/chrome_95.md) |\n\n### Chrome For Testing\n\n| Grid Version | 145 | 144 | 143 | 142 | 141 | 140 | 139 | 138 | 137 | 136 | 135 | 134 | 133 | 132 | 131 | 130 | 129 | 128 | 127 | 126 | 125 | 124 | 123 | 122 | 121 | 120 | 119 | 118 | 117 | 116 | 115 | 114 | 113 |\n|--------------|----|----|----|----|----|----|----|----|----|----|----|----|----|----|----|----|----|----|----|----|----|----|----|----|----|----|----|----|----|----|----|----|----|\n| 4.41.0 | [✓](4.41.0/chrome-for-testing_145.md) | [✓](4.41.0/chrome-for-testing_144.md) | [✓](4.41.0/chrome-for-testing_143.md) | [✓](4.41.0/chrome-for-testing_142.md) | [✓](4.41.0/chrome-for-testing_141.md) | [✓](4.41.0/chrome-for-testing_140.md) | [✓](4.41.0/chrome-for-testing_139.md) | [✓](4.41.0/chrome-for-testing_138.md) | [✓](4.41.0/chrome-for-testing_137.md) | [✓](4.41.0/chrome-for-testing_136.md) | [✓](4.41.0/chrome-for-testing_135.md) | [✓](4.41.0/chrome-for-testing_134.md) | [✓](4.41.0/chrome-for-testing_133.md) | [✓](4.41.0/chrome-for-testing_132.md) | [✓](4.41.0/chrome-for-testing_131.md) | [✓](4.41.0/chrome-for-testing_130.md) | [✓](4.41.0/chrome-for-testing_129.md) | [✓](4.41.0/chrome-for-testing_128.md) | [✓](4.41.0/chrome-for-testing_127.md) | [✓](4.41.0/chrome-for-testing_126.md) | [✓](4.41.0/chrome-for-testing_125.md) | [✓](4.41.0/chrome-for-testing_124.md) | [✓](4.41.0/chrome-for-testing_123.md) | [✓](4.41.0/chrome-for-testing_122.md) | [✓](4.41.0/chrome-for-testing_121.md) | [✓](4.41.0/chrome-for-testing_120.md) | [✓](4.41.0/chrome-for-testing_119.md) | [✓](4.41.0/chrome-for-testing_118.md) | [✓](4.41.0/chrome-for-testing_117.md) | [✓](4.41.0/chrome-for-testing_116.md) | [✓](4.41.0/chrome-for-testing_115.md) | [✓](4.41.0/chrome-for-testing_114.md) | [✓](4.41.0/chrome-for-testing_113.md) |\n\n### Edge\n\n| Grid Version | 145 | 144 | 143 | 142 | 141 | 140 | 139 | 138 | 137 | 136 | 135 | 134 | 133 | 132 | 131 | 130 | 129 | 128 | 127 | 126 | 125 | 124 | 123 | 122 | 121 | 120 | 119 | 118 | 117 | 116 | 115 | 114 |\n|--------------|----|----|----|----|----|----|----|----|----|----|----|----|----|----|----|----|----|----|----|----|----|----|----|----|----|----|----|----|----|----|----|----|\n| 4.41.0 | [✓](4.41.0/edge_145.md) | [✓](4.41.0/edge_144.md) | [✓](4.41.0/edge_143.md) | [✓](4.41.0/edge_142.md) | [✓](4.41.0/edge_141.md) | [✓](4.41.0/edge_140.md) | [✓](4.41.0/edge_139.md) | [✓](4.41.0/edge_138.md) | [✓](4.41.0/edge_137.md) | [✓](4.41.0/edge_136.md) | [✓](4.41.0/edge_135.md) | [✓](4.41.0/edge_134.md) | [✓](4.41.0/edge_133.md) | [✓](4.41.0/edge_132.md) | [✓](4.41.0/edge_131.md) | [✓](4.41.0/edge_130.md) | [✓](4.41.0/edge_129.md) | [✓](4.41.0/edge_128.md) | [✓](4.41.0/edge_127.md) | [✓](4.41.0/edge_126.md) | [✓](4.41.0/edge_125.md) | [✓](4.41.0/edge_124.md) | [✓](4.41.0/edge_123.md) | [✓](4.41.0/edge_122.md) | [✓](4.41.0/edge_121.md) | [✓](4.41.0/edge_120.md) | [✓](4.41.0/edge_119.md) | [✓](4.41.0/edge_118.md) | [✓](4.41.0/edge_117.md) | [✓](4.41.0/edge_116.md) | [✓](4.41.0/edge_115.md) | [✓](4.41.0/edge_114.md) |\n\n### Firefox\n\n| Grid Version | 148 | 147 | 146 | 145 | 144 | 143 | 142 | 141 | 140 | 139 | 138 | 137 | 136 | 135 | 134 | 133 | 132 | 131 | 130 | 129 | 128 | 127 | 126 | 125 | 124 | 123 | 122 | 121 | 120 | 119 | 118 | 117 | 116 | 115 | 114 | 113 | 112 | 111 | 110 | 109 | 108 | 107 | 106 | 105 | 104 | 103 | 102 | 101 | 100 | 99 | 98 |\n|--------------|----|----|----|----|----|----|----|----|----|----|----|----|----|----|----|----|----|----|----|----|----|----|----|----|----|----|----|----|----|----|----|----|----|----|----|----|----|----|----|----|----|----|----|----|----|----|----|----|----|----|----|\n| 4.41.0 | [✓](4.41.0/firefox_148.md) | [✓](4.41.0/firefox_147.md) | [✓](4.41.0/firefox_146.md) | [✓](4.41.0/firefox_145.md) | [✓](4.41.0/firefox_144.md) | [✓](4.41.0/firefox_143.md) | [✓](4.41.0/firefox_142.md) | [✓](4.41.0/firefox_141.md) | [✓](4.41.0/firefox_140.md) | [✓](4.41.0/firefox_139.md) | [✓](4.41.0/firefox_138.md) | [✓](4.41.0/firefox_137.md) | [✓](4.41.0/firefox_136.md) | [✓](4.41.0/firefox_135.md) | [✓](4.41.0/firefox_134.md) | [✓](4.41.0/firefox_133.md) | [✓](4.41.0/firefox_132.md) | [✓](4.41.0/firefox_131.md) | [✓](4.41.0/firefox_130.md) | [✓](4.41.0/firefox_129.md) | [✓](4.41.0/firefox_128.md) | [✓](4.41.0/firefox_127.md) | [✓](4.41.0/firefox_126.md) | [✓](4.41.0/firefox_125.md) | [✓](4.41.0/firefox_124.md) | [✓](4.41.0/firefox_123.md) | [✓](4.41.0/firefox_122.md) | [✓](4.41.0/firefox_121.md) | [✓](4.41.0/firefox_120.md) | [✓](4.41.0/firefox_119.md) | [✓](4.41.0/firefox_118.md) | [✓](4.41.0/firefox_117.md) | [✓](4.41.0/firefox_116.md) | [✓](4.41.0/firefox_115.md) | [✓](4.41.0/firefox_114.md) | [✓](4.41.0/firefox_113.md) | [✓](4.41.0/firefox_112.md) | [✓](4.41.0/firefox_111.md) | [✓](4.41.0/firefox_110.md) | [✓](4.41.0/firefox_109.md) | [✓](4.41.0/firefox_108.md) | [✓](4.41.0/firefox_107.md) | [✓](4.41.0/firefox_106.md) | [✓](4.41.0/firefox_105.md) | [✓](4.41.0/firefox_104.md) | [✓](4.41.0/firefox_103.md) | [✓](4.41.0/firefox_102.md) | [✓](4.41.0/firefox_101.md) | [✓](4.41.0/firefox_100.md) | [✓](4.41.0/firefox_99.md) | [✓](4.41.0/firefox_98.md) |\n\n## Archived Grid Versions\n\n### Chrome\n\n| Grid Version | 144 | 143 | 142 | 141 | 140 | 139 | 138 | 137 | 136 | 135 | 134 | 133 | 132 | 131 | 130 | 129 | 128 | 127 | 126 | 125 | 124 | 123 | 122 | 121 | 120 | 119 | 118 | 117 | 116 | 115 | 114 | 113 | 112 | 111 | 110 | 109 | 108 | 107 | 106 | 105 | 104 | 103 | 102 | 101 | 100 | 99 | 98 | 97 | 96 | 95 |\n|--------------|----|----|----|----|----|----|----|----|----|----|----|----|----|----|----|----|----|----|----|----|----|----|----|----|----|----|----|----|----|----|----|----|----|----|----|----|----|----|----|----|----|----|----|----|----|----|----|----|----|----|\n| 4.40.0 | [✓](archived/4.40.0/chrome_144.md) | [✓](archived/4.40.0/chrome_143.md) | [✓](archived/4.40.0/chrome_142.md) | [✓](archived/4.40.0/chrome_141.md) | [✓](archived/4.40.0/chrome_140.md) | [✓](archived/4.40.0/chrome_139.md) | [✓](archived/4.40.0/chrome_138.md) | [✓](archived/4.40.0/chrome_137.md) | [✓](archived/4.40.0/chrome_136.md) | [✓](archived/4.40.0/chrome_135.md) | [✓](archived/4.40.0/chrome_134.md) | [✓](archived/4.40.0/chrome_133.md) | [✓](archived/4.40.0/chrome_132.md) | [✓](archived/4.40.0/chrome_131.md) | [✓](archived/4.40.0/chrome_130.md) | [✓](archived/4.40.0/chrome_129.md) | [✓](archived/4.40.0/chrome_128.md) | [✓](archived/4.40.0/chrome_127.md) | [✓](archived/4.40.0/chrome_126.md) | [✓](archived/4.40.0/chrome_125.md) | [✓](archived/4.40.0/chrome_124.md) | [✓](archived/4.40.0/chrome_123.md) | [✓](archived/4.40.0/chrome_122.md) | [✓](archived/4.40.0/chrome_121.md) | [✓](archived/4.40.0/chrome_120.md) | [✓](archived/4.40.0/chrome_119.md) | [✓](archived/4.40.0/chrome_118.md) | [✓](archived/4.40.0/chrome_117.md) | [✓](archived/4.40.0/chrome_116.md) | [✓](archived/4.40.0/chrome_115.md) | [✓](archived/4.40.0/chrome_114.md) | [✓](archived/4.40.0/chrome_113.md) | [✓](archived/4.40.0/chrome_112.md) | [✓](archived/4.40.0/chrome_111.md) | [✓](archived/4.40.0/chrome_110.md) | [✓](archived/4.40.0/chrome_109.md) | [✓](archived/4.40.0/chrome_108.md) | [✓](archived/4.40.0/chrome_107.md) | [✓](archived/4.40.0/chrome_106.md) | [✓](archived/4.40.0/chrome_105.md) | [✓](archived/4.40.0/chrome_104.md) | [✓](archived/4.40.0/chrome_103.md) | [✓](archived/4.40.0/chrome_102.md) | [✓](archived/4.40.0/chrome_101.md) | [✓](archived/4.40.0/chrome_100.md) | [✓](archived/4.40.0/chrome_99.md) | [✓](archived/4.40.0/chrome_98.md) | [✓](archived/4.40.0/chrome_97.md) | [✓](archived/4.40.0/chrome_96.md) | [✓](archived/4.40.0/chrome_95.md) |\n| 4.39.0 |   | [✓](archived/4.39.0/chrome_143.md) | [✓](archived/4.39.0/chrome_142.md) | [✓](archived/4.39.0/chrome_141.md) | [✓](archived/4.39.0/chrome_140.md) | [✓](archived/4.39.0/chrome_139.md) | [✓](archived/4.39.0/chrome_138.md) | [✓](archived/4.39.0/chrome_137.md) | [✓](archived/4.39.0/chrome_136.md) | [✓](archived/4.39.0/chrome_135.md) | [✓](archived/4.39.0/chrome_134.md) | [✓](archived/4.39.0/chrome_133.md) | [✓](archived/4.39.0/chrome_132.md) | [✓](archived/4.39.0/chrome_131.md) | [✓](archived/4.39.0/chrome_130.md) | [✓](archived/4.39.0/chrome_129.md) | [✓](archived/4.39.0/chrome_128.md) | [✓](archived/4.39.0/chrome_127.md) | [✓](archived/4.39.0/chrome_126.md) | [✓](archived/4.39.0/chrome_125.md) | [✓](archived/4.39.0/chrome_124.md) | [✓](archived/4.39.0/chrome_123.md) | [✓](archived/4.39.0/chrome_122.md) | [✓](archived/4.39.0/chrome_121.md) | [✓](archived/4.39.0/chrome_120.md) | [✓](archived/4.39.0/chrome_119.md) | [✓](archived/4.39.0/chrome_118.md) | [✓](archived/4.39.0/chrome_117.md) | [✓](archived/4.39.0/chrome_116.md) | [✓](archived/4.39.0/chrome_115.md) | [✓](archived/4.39.0/chrome_114.md) | [✓](archived/4.39.0/chrome_113.md) | [✓](archived/4.39.0/chrome_112.md) | [✓](archived/4.39.0/chrome_111.md) | [✓](archived/4.39.0/chrome_110.md) | [✓](archived/4.39.0/chrome_109.md) | [✓](archived/4.39.0/chrome_108.md) | [✓](archived/4.39.0/chrome_107.md) | [✓](archived/4.39.0/chrome_106.md) | [✓](archived/4.39.0/chrome_105.md) | [✓](archived/4.39.0/chrome_104.md) | [✓](archived/4.39.0/chrome_103.md) | [✓](archived/4.39.0/chrome_102.md) | [✓](archived/4.39.0/chrome_101.md) | [✓](archived/4.39.0/chrome_100.md) | [✓](archived/4.39.0/chrome_99.md) | [✓](archived/4.39.0/chrome_98.md) | [✓](archived/4.39.0/chrome_97.md) | [✓](archived/4.39.0/chrome_96.md) | [✓](archived/4.39.0/chrome_95.md) |\n| 4.38.0 |   |   | [✓](archived/4.38.0/chrome_142.md) | [✓](archived/4.38.0/chrome_141.md) | [✓](archived/4.38.0/chrome_140.md) | [✓](archived/4.38.0/chrome_139.md) | [✓](archived/4.38.0/chrome_138.md) | [✓](archived/4.38.0/chrome_137.md) | [✓](archived/4.38.0/chrome_136.md) | [✓](archived/4.38.0/chrome_135.md) | [✓](archived/4.38.0/chrome_134.md) | [✓](archived/4.38.0/chrome_133.md) | [✓](archived/4.38.0/chrome_132.md) | [✓](archived/4.38.0/chrome_131.md) | [✓](archived/4.38.0/chrome_130.md) | [✓](archived/4.38.0/chrome_129.md) | [✓](archived/4.38.0/chrome_128.md) | [✓](archived/4.38.0/chrome_127.md) | [✓](archived/4.38.0/chrome_126.md) | [✓](archived/4.38.0/chrome_125.md) | [✓](archived/4.38.0/chrome_124.md) | [✓](archived/4.38.0/chrome_123.md) | [✓](archived/4.38.0/chrome_122.md) | [✓](archived/4.38.0/chrome_121.md) | [✓](archived/4.38.0/chrome_120.md) | [✓](archived/4.38.0/chrome_119.md) | [✓](archived/4.38.0/chrome_118.md) | [✓](archived/4.38.0/chrome_117.md) | [✓](archived/4.38.0/chrome_116.md) | [✓](archived/4.38.0/chrome_115.md) | [✓](archived/4.38.0/chrome_114.md) | [✓](archived/4.38.0/chrome_113.md) | [✓](archived/4.38.0/chrome_112.md) | [✓](archived/4.38.0/chrome_111.md) | [✓](archived/4.38.0/chrome_110.md) | [✓](archived/4.38.0/chrome_109.md) | [✓](archived/4.38.0/chrome_108.md) | [✓](archived/4.38.0/chrome_107.md) | [✓](archived/4.38.0/chrome_106.md) | [✓](archived/4.38.0/chrome_105.md) | [✓](archived/4.38.0/chrome_104.md) | [✓](archived/4.38.0/chrome_103.md) | [✓](archived/4.38.0/chrome_102.md) | [✓](archived/4.38.0/chrome_101.md) | [✓](archived/4.38.0/chrome_100.md) | [✓](archived/4.38.0/chrome_99.md) | [✓](archived/4.38.0/chrome_98.md) | [✓](archived/4.38.0/chrome_97.md) | [✓](archived/4.38.0/chrome_96.md) | [✓](archived/4.38.0/chrome_95.md) |\n| 4.37.0 |   |   |   |   | [✓](archived/4.37.0/chrome_140.md) | [✓](archived/4.37.0/chrome_139.md) | [✓](archived/4.37.0/chrome_138.md) | [✓](archived/4.37.0/chrome_137.md) | [✓](archived/4.37.0/chrome_136.md) | [✓](archived/4.37.0/chrome_135.md) | [✓](archived/4.37.0/chrome_134.md) | [✓](archived/4.37.0/chrome_133.md) | [✓](archived/4.37.0/chrome_132.md) | [✓](archived/4.37.0/chrome_131.md) | [✓](archived/4.37.0/chrome_130.md) | [✓](archived/4.37.0/chrome_129.md) | [✓](archived/4.37.0/chrome_128.md) | [✓](archived/4.37.0/chrome_127.md) | [✓](archived/4.37.0/chrome_126.md) | [✓](archived/4.37.0/chrome_125.md) | [✓](archived/4.37.0/chrome_124.md) | [✓](archived/4.37.0/chrome_123.md) | [✓](archived/4.37.0/chrome_122.md) | [✓](archived/4.37.0/chrome_121.md) | [✓](archived/4.37.0/chrome_120.md) | [✓](archived/4.37.0/chrome_119.md) | [✓](archived/4.37.0/chrome_118.md) | [✓](archived/4.37.0/chrome_117.md) | [✓](archived/4.37.0/chrome_116.md) | [✓](archived/4.37.0/chrome_115.md) | [✓](archived/4.37.0/chrome_114.md) | [✓](archived/4.37.0/chrome_113.md) | [✓](archived/4.37.0/chrome_112.md) | [✓](archived/4.37.0/chrome_111.md) | [✓](archived/4.37.0/chrome_110.md) | [✓](archived/4.37.0/chrome_109.md) | [✓](archived/4.37.0/chrome_108.md) | [✓](archived/4.37.0/chrome_107.md) | [✓](archived/4.37.0/chrome_106.md) | [✓](archived/4.37.0/chrome_105.md) | [✓](archived/4.37.0/chrome_104.md) | [✓](archived/4.37.0/chrome_103.md) | [✓](archived/4.37.0/chrome_102.md) | [✓](archived/4.37.0/chrome_101.md) | [✓](archived/4.37.0/chrome_100.md) | [✓](archived/4.37.0/chrome_99.md) | [✓](archived/4.37.0/chrome_98.md) | [✓](archived/4.37.0/chrome_97.md) | [✓](archived/4.37.0/chrome_96.md) | [✓](archived/4.37.0/chrome_95.md) |\n| 4.36.0 |   |   |   |   | [✓](archived/4.36.0/chrome_140.md) | [✓](archived/4.36.0/chrome_139.md) | [✓](archived/4.36.0/chrome_138.md) | [✓](archived/4.36.0/chrome_137.md) | [✓](archived/4.36.0/chrome_136.md) | [✓](archived/4.36.0/chrome_135.md) | [✓](archived/4.36.0/chrome_134.md) | [✓](archived/4.36.0/chrome_133.md) | [✓](archived/4.36.0/chrome_132.md) | [✓](archived/4.36.0/chrome_131.md) | [✓](archived/4.36.0/chrome_130.md) | [✓](archived/4.36.0/chrome_129.md) | [✓](archived/4.36.0/chrome_128.md) | [✓](archived/4.36.0/chrome_127.md) | [✓](archived/4.36.0/chrome_126.md) | [✓](archived/4.36.0/chrome_125.md) | [✓](archived/4.36.0/chrome_124.md) | [✓](archived/4.36.0/chrome_123.md) | [✓](archived/4.36.0/chrome_122.md) | [✓](archived/4.36.0/chrome_121.md) | [✓](archived/4.36.0/chrome_120.md) | [✓](archived/4.36.0/chrome_119.md) | [✓](archived/4.36.0/chrome_118.md) | [✓](archived/4.36.0/chrome_117.md) | [✓](archived/4.36.0/chrome_116.md) | [✓](archived/4.36.0/chrome_115.md) | [✓](archived/4.36.0/chrome_114.md) | [✓](archived/4.36.0/chrome_113.md) | [✓](archived/4.36.0/chrome_112.md) | [✓](archived/4.36.0/chrome_111.md) | [✓](archived/4.36.0/chrome_110.md) | [✓](archived/4.36.0/chrome_109.md) | [✓](archived/4.36.0/chrome_108.md) | [✓](archived/4.36.0/chrome_107.md) | [✓](archived/4.36.0/chrome_106.md) | [✓](archived/4.36.0/chrome_105.md) | [✓](archived/4.36.0/chrome_104.md) | [✓](archived/4.36.0/chrome_103.md) | [✓](archived/4.36.0/chrome_102.md) | [✓](archived/4.36.0/chrome_101.md) | [✓](archived/4.36.0/chrome_100.md) | [✓](archived/4.36.0/chrome_99.md) | [✓](archived/4.36.0/chrome_98.md) | [✓](archived/4.36.0/chrome_97.md) | [✓](archived/4.36.0/chrome_96.md) | [✓](archived/4.36.0/chrome_95.md) |\n| 4.35.0 |   |   |   |   |   | [✓](archived/4.35.0/chrome_139.md) | [✓](archived/4.35.0/chrome_138.md) | [✓](archived/4.35.0/chrome_137.md) | [✓](archived/4.35.0/chrome_136.md) | [✓](archived/4.35.0/chrome_135.md) | [✓](archived/4.35.0/chrome_134.md) | [✓](archived/4.35.0/chrome_133.md) | [✓](archived/4.35.0/chrome_132.md) | [✓](archived/4.35.0/chrome_131.md) | [✓](archived/4.35.0/chrome_130.md) | [✓](archived/4.35.0/chrome_129.md) | [✓](archived/4.35.0/chrome_128.md) | [✓](archived/4.35.0/chrome_127.md) | [✓](archived/4.35.0/chrome_126.md) | [✓](archived/4.35.0/chrome_125.md) | [✓](archived/4.35.0/chrome_124.md) | [✓](archived/4.35.0/chrome_123.md) | [✓](archived/4.35.0/chrome_122.md) | [✓](archived/4.35.0/chrome_121.md) | [✓](archived/4.35.0/chrome_120.md) | [✓](archived/4.35.0/chrome_119.md) | [✓](archived/4.35.0/chrome_118.md) | [✓](archived/4.35.0/chrome_117.md) | [✓](archived/4.35.0/chrome_116.md) | [✓](archived/4.35.0/chrome_115.md) | [✓](archived/4.35.0/chrome_114.md) | [✓](archived/4.35.0/chrome_113.md) | [✓](archived/4.35.0/chrome_112.md) | [✓](archived/4.35.0/chrome_111.md) | [✓](archived/4.35.0/chrome_110.md) | [✓](archived/4.35.0/chrome_109.md) | [✓](archived/4.35.0/chrome_108.md) | [✓](archived/4.35.0/chrome_107.md) | [✓](archived/4.35.0/chrome_106.md) | [✓](archived/4.35.0/chrome_105.md) | [✓](archived/4.35.0/chrome_104.md) | [✓](archived/4.35.0/chrome_103.md) | [✓](archived/4.35.0/chrome_102.md) | [✓](archived/4.35.0/chrome_101.md) | [✓](archived/4.35.0/chrome_100.md) | [✓](archived/4.35.0/chrome_99.md) | [✓](archived/4.35.0/chrome_98.md) | [✓](archived/4.35.0/chrome_97.md) | [✓](archived/4.35.0/chrome_96.md) | [✓](archived/4.35.0/chrome_95.md) |\n| 4.34.0 |   |   |   |   |   |   |   | [✓](archived/4.34.0/chrome_137.md) | [✓](archived/4.34.0/chrome_136.md) |   | [✓](archived/4.34.0/chrome_134.md) | [✓](archived/4.34.0/chrome_133.md) | [✓](archived/4.34.0/chrome_132.md) | [✓](archived/4.34.0/chrome_131.md) | [✓](archived/4.34.0/chrome_130.md) | [✓](archived/4.34.0/chrome_129.md) | [✓](archived/4.34.0/chrome_128.md) | [✓](archived/4.34.0/chrome_127.md) | [✓](archived/4.34.0/chrome_126.md) | [✓](archived/4.34.0/chrome_125.md) | [✓](archived/4.34.0/chrome_124.md) | [✓](archived/4.34.0/chrome_123.md) | [✓](archived/4.34.0/chrome_122.md) | [✓](archived/4.34.0/chrome_121.md) | [✓](archived/4.34.0/chrome_120.md) | [✓](archived/4.34.0/chrome_119.md) | [✓](archived/4.34.0/chrome_118.md) | [✓](archived/4.34.0/chrome_117.md) | [✓](archived/4.34.0/chrome_116.md) | [✓](archived/4.34.0/chrome_115.md) | [✓](archived/4.34.0/chrome_114.md) | [✓](archived/4.34.0/chrome_113.md) | [✓](archived/4.34.0/chrome_112.md) | [✓](archived/4.34.0/chrome_111.md) | [✓](archived/4.34.0/chrome_110.md) | [✓](archived/4.34.0/chrome_109.md) | [✓](archived/4.34.0/chrome_108.md) | [✓](archived/4.34.0/chrome_107.md) | [✓](archived/4.34.0/chrome_106.md) | [✓](archived/4.34.0/chrome_105.md) | [✓](archived/4.34.0/chrome_104.md) | [✓](archived/4.34.0/chrome_103.md) | [✓](archived/4.34.0/chrome_102.md) | [✓](archived/4.34.0/chrome_101.md) | [✓](archived/4.34.0/chrome_100.md) | [✓](archived/4.34.0/chrome_99.md) | [✓](archived/4.34.0/chrome_98.md) | [✓](archived/4.34.0/chrome_97.md) | [✓](archived/4.34.0/chrome_96.md) | [✓](archived/4.34.0/chrome_95.md) |\n| 4.33.0 |   |   |   |   |   |   |   |   | [✓](archived/4.33.0/chrome_136.md) |   | [✓](archived/4.33.0/chrome_134.md) | [✓](archived/4.33.0/chrome_133.md) | [✓](archived/4.33.0/chrome_132.md) | [✓](archived/4.33.0/chrome_131.md) | [✓](archived/4.33.0/chrome_130.md) | [✓](archived/4.33.0/chrome_129.md) | [✓](archived/4.33.0/chrome_128.md) | [✓](archived/4.33.0/chrome_127.md) | [✓](archived/4.33.0/chrome_126.md) | [✓](archived/4.33.0/chrome_125.md) | [✓](archived/4.33.0/chrome_124.md) | [✓](archived/4.33.0/chrome_123.md) | [✓](archived/4.33.0/chrome_122.md) | [✓](archived/4.33.0/chrome_121.md) | [✓](archived/4.33.0/chrome_120.md) | [✓](archived/4.33.0/chrome_119.md) | [✓](archived/4.33.0/chrome_118.md) | [✓](archived/4.33.0/chrome_117.md) | [✓](archived/4.33.0/chrome_116.md) | [✓](archived/4.33.0/chrome_115.md) | [✓](archived/4.33.0/chrome_114.md) | [✓](archived/4.33.0/chrome_113.md) | [✓](archived/4.33.0/chrome_112.md) | [✓](archived/4.33.0/chrome_111.md) | [✓](archived/4.33.0/chrome_110.md) | [✓](archived/4.33.0/chrome_109.md) | [✓](archived/4.33.0/chrome_108.md) | [✓](archived/4.33.0/chrome_107.md) | [✓](archived/4.33.0/chrome_106.md) | [✓](archived/4.33.0/chrome_105.md) | [✓](archived/4.33.0/chrome_104.md) | [✓](archived/4.33.0/chrome_103.md) | [✓](archived/4.33.0/chrome_102.md) | [✓](archived/4.33.0/chrome_101.md) | [✓](archived/4.33.0/chrome_100.md) | [✓](archived/4.33.0/chrome_99.md) | [✓](archived/4.33.0/chrome_98.md) | [✓](archived/4.33.0/chrome_97.md) | [✓](archived/4.33.0/chrome_96.md) | [✓](archived/4.33.0/chrome_95.md) |\n| 4.32.0 |   |   |   |   |   |   |   |   |   |   | [✓](archived/4.32.0/chrome_134.md) | [✓](archived/4.32.0/chrome_133.md) | [✓](archived/4.32.0/chrome_132.md) | [✓](archived/4.32.0/chrome_131.md) | [✓](archived/4.32.0/chrome_130.md) | [✓](archived/4.32.0/chrome_129.md) | [✓](archived/4.32.0/chrome_128.md) | [✓](archived/4.32.0/chrome_127.md) | [✓](archived/4.32.0/chrome_126.md) | [✓](archived/4.32.0/chrome_125.md) | [✓](archived/4.32.0/chrome_124.md) | [✓](archived/4.32.0/chrome_123.md) | [✓](archived/4.32.0/chrome_122.md) | [✓](archived/4.32.0/chrome_121.md) | [✓](archived/4.32.0/chrome_120.md) | [✓](archived/4.32.0/chrome_119.md) | [✓](archived/4.32.0/chrome_118.md) | [✓](archived/4.32.0/chrome_117.md) | [✓](archived/4.32.0/chrome_116.md) | [✓](archived/4.32.0/chrome_115.md) | [✓](archived/4.32.0/chrome_114.md) | [✓](archived/4.32.0/chrome_113.md) | [✓](archived/4.32.0/chrome_112.md) | [✓](archived/4.32.0/chrome_111.md) | [✓](archived/4.32.0/chrome_110.md) | [✓](archived/4.32.0/chrome_109.md) | [✓](archived/4.32.0/chrome_108.md) | [✓](archived/4.32.0/chrome_107.md) | [✓](archived/4.32.0/chrome_106.md) | [✓](archived/4.32.0/chrome_105.md) | [✓](archived/4.32.0/chrome_104.md) | [✓](archived/4.32.0/chrome_103.md) | [✓](archived/4.32.0/chrome_102.md) | [✓](archived/4.32.0/chrome_101.md) | [✓](archived/4.32.0/chrome_100.md) | [✓](archived/4.32.0/chrome_99.md) | [✓](archived/4.32.0/chrome_98.md) | [✓](archived/4.32.0/chrome_97.md) | [✓](archived/4.32.0/chrome_96.md) | [✓](archived/4.32.0/chrome_95.md) |\n| 4.31.0 |   |   |   |   |   |   |   |   |   |   | [✓](archived/4.31.0/chrome_134.md) | [✓](archived/4.31.0/chrome_133.md) | [✓](archived/4.31.0/chrome_132.md) | [✓](archived/4.31.0/chrome_131.md) | [✓](archived/4.31.0/chrome_130.md) | [✓](archived/4.31.0/chrome_129.md) | [✓](archived/4.31.0/chrome_128.md) | [✓](archived/4.31.0/chrome_127.md) | [✓](archived/4.31.0/chrome_126.md) | [✓](archived/4.31.0/chrome_125.md) | [✓](archived/4.31.0/chrome_124.md) | [✓](archived/4.31.0/chrome_123.md) | [✓](archived/4.31.0/chrome_122.md) | [✓](archived/4.31.0/chrome_121.md) | [✓](archived/4.31.0/chrome_120.md) | [✓](archived/4.31.0/chrome_119.md) | [✓](archived/4.31.0/chrome_118.md) | [✓](archived/4.31.0/chrome_117.md) | [✓](archived/4.31.0/chrome_116.md) | [✓](archived/4.31.0/chrome_115.md) | [✓](archived/4.31.0/chrome_114.md) | [✓](archived/4.31.0/chrome_113.md) | [✓](archived/4.31.0/chrome_112.md) | [✓](archived/4.31.0/chrome_111.md) | [✓](archived/4.31.0/chrome_110.md) | [✓](archived/4.31.0/chrome_109.md) | [✓](archived/4.31.0/chrome_108.md) | [✓](archived/4.31.0/chrome_107.md) | [✓](archived/4.31.0/chrome_106.md) | [✓](archived/4.31.0/chrome_105.md) | [✓](archived/4.31.0/chrome_104.md) | [✓](archived/4.31.0/chrome_103.md) | [✓](archived/4.31.0/chrome_102.md) | [✓](archived/4.31.0/chrome_101.md) | [✓](archived/4.31.0/chrome_100.md) | [✓](archived/4.31.0/chrome_99.md) | [✓](archived/4.31.0/chrome_98.md) | [✓](archived/4.31.0/chrome_97.md) | [✓](archived/4.31.0/chrome_96.md) | [✓](archived/4.31.0/chrome_95.md) |\n| 4.30.0 |   |   |   |   |   |   |   |   |   |   | [✓](archived/4.30.0/chrome_134.md) | [✓](archived/4.30.0/chrome_133.md) | [✓](archived/4.30.0/chrome_132.md) | [✓](archived/4.30.0/chrome_131.md) | [✓](archived/4.30.0/chrome_130.md) | [✓](archived/4.30.0/chrome_129.md) | [✓](archived/4.30.0/chrome_128.md) | [✓](archived/4.30.0/chrome_127.md) | [✓](archived/4.30.0/chrome_126.md) | [✓](archived/4.30.0/chrome_125.md) | [✓](archived/4.30.0/chrome_124.md) | [✓](archived/4.30.0/chrome_123.md) | [✓](archived/4.30.0/chrome_122.md) | [✓](archived/4.30.0/chrome_121.md) | [✓](archived/4.30.0/chrome_120.md) | [✓](archived/4.30.0/chrome_119.md) | [✓](archived/4.30.0/chrome_118.md) | [✓](archived/4.30.0/chrome_117.md) | [✓](archived/4.30.0/chrome_116.md) | [✓](archived/4.30.0/chrome_115.md) | [✓](archived/4.30.0/chrome_114.md) | [✓](archived/4.30.0/chrome_113.md) | [✓](archived/4.30.0/chrome_112.md) | [✓](archived/4.30.0/chrome_111.md) | [✓](archived/4.30.0/chrome_110.md) | [✓](archived/4.30.0/chrome_109.md) | [✓](archived/4.30.0/chrome_108.md) | [✓](archived/4.30.0/chrome_107.md) | [✓](archived/4.30.0/chrome_106.md) | [✓](archived/4.30.0/chrome_105.md) | [✓](archived/4.30.0/chrome_104.md) | [✓](archived/4.30.0/chrome_103.md) | [✓](archived/4.30.0/chrome_102.md) | [✓](archived/4.30.0/chrome_101.md) | [✓](archived/4.30.0/chrome_100.md) |   | [✓](archived/4.30.0/chrome_98.md) | [✓](archived/4.30.0/chrome_97.md) | [✓](archived/4.30.0/chrome_96.md) | [✓](archived/4.30.0/chrome_95.md) |\n| 4.29.0 |   |   |   |   |   |   |   |   |   |   | [✓](archived/4.29.0/chrome_134.md) | [✓](archived/4.29.0/chrome_133.md) | [✓](archived/4.29.0/chrome_132.md) | [✓](archived/4.29.0/chrome_131.md) | [✓](archived/4.29.0/chrome_130.md) | [✓](archived/4.29.0/chrome_129.md) | [✓](archived/4.29.0/chrome_128.md) | [✓](archived/4.29.0/chrome_127.md) | [✓](archived/4.29.0/chrome_126.md) | [✓](archived/4.29.0/chrome_125.md) | [✓](archived/4.29.0/chrome_124.md) | [✓](archived/4.29.0/chrome_123.md) | [✓](archived/4.29.0/chrome_122.md) | [✓](archived/4.29.0/chrome_121.md) | [✓](archived/4.29.0/chrome_120.md) | [✓](archived/4.29.0/chrome_119.md) | [✓](archived/4.29.0/chrome_118.md) | [✓](archived/4.29.0/chrome_117.md) | [✓](archived/4.29.0/chrome_116.md) | [✓](archived/4.29.0/chrome_115.md) | [✓](archived/4.29.0/chrome_114.md) | [✓](archived/4.29.0/chrome_113.md) | [✓](archived/4.29.0/chrome_112.md) | [✓](archived/4.29.0/chrome_111.md) | [✓](archived/4.29.0/chrome_110.md) | [✓](archived/4.29.0/chrome_109.md) | [✓](archived/4.29.0/chrome_108.md) | [✓](archived/4.29.0/chrome_107.md) | [✓](archived/4.29.0/chrome_106.md) | [✓](archived/4.29.0/chrome_105.md) | [✓](archived/4.29.0/chrome_104.md) | [✓](archived/4.29.0/chrome_103.md) | [✓](archived/4.29.0/chrome_102.md) | [✓](archived/4.29.0/chrome_101.md) | [✓](archived/4.29.0/chrome_100.md) | [✓](archived/4.29.0/chrome_99.md) | [✓](archived/4.29.0/chrome_98.md) | [✓](archived/4.29.0/chrome_97.md) | [✓](archived/4.29.0/chrome_96.md) | [✓](archived/4.29.0/chrome_95.md) |\n| 4.28.1 |   |   |   |   |   |   |   |   |   |   |   |   | [✓](archived/4.28.1/chrome_132.md) | [✓](archived/4.28.1/chrome_131.md) | [✓](archived/4.28.1/chrome_130.md) | [✓](archived/4.28.1/chrome_129.md) | [✓](archived/4.28.1/chrome_128.md) | [✓](archived/4.28.1/chrome_127.md) | [✓](archived/4.28.1/chrome_126.md) | [✓](archived/4.28.1/chrome_125.md) | [✓](archived/4.28.1/chrome_124.md) | [✓](archived/4.28.1/chrome_123.md) | [✓](archived/4.28.1/chrome_122.md) | [✓](archived/4.28.1/chrome_121.md) | [✓](archived/4.28.1/chrome_120.md) | [✓](archived/4.28.1/chrome_119.md) | [✓](archived/4.28.1/chrome_118.md) | [✓](archived/4.28.1/chrome_117.md) | [✓](archived/4.28.1/chrome_116.md) | [✓](archived/4.28.1/chrome_115.md) | [✓](archived/4.28.1/chrome_114.md) | [✓](archived/4.28.1/chrome_113.md) | [✓](archived/4.28.1/chrome_112.md) | [✓](archived/4.28.1/chrome_111.md) | [✓](archived/4.28.1/chrome_110.md) | [✓](archived/4.28.1/chrome_109.md) | [✓](archived/4.28.1/chrome_108.md) | [✓](archived/4.28.1/chrome_107.md) | [✓](archived/4.28.1/chrome_106.md) | [✓](archived/4.28.1/chrome_105.md) | [✓](archived/4.28.1/chrome_104.md) | [✓](archived/4.28.1/chrome_103.md) | [✓](archived/4.28.1/chrome_102.md) | [✓](archived/4.28.1/chrome_101.md) | [✓](archived/4.28.1/chrome_100.md) | [✓](archived/4.28.1/chrome_99.md) | [✓](archived/4.28.1/chrome_98.md) | [✓](archived/4.28.1/chrome_97.md) |   |   |\n\n### Chrome For Testing\n\n| Grid Version | 145 | 144 | 143 | 142 | 141 | 140 | 139 | 138 | 137 | 136 | 135 | 134 | 133 | 132 | 131 | 130 | 129 | 128 | 127 | 126 | 125 | 124 | 123 | 122 | 121 | 120 | 119 | 118 | 117 | 116 | 115 | 114 | 113 |\n|--------------|----|----|----|----|----|----|----|----|----|----|----|----|----|----|----|----|----|----|----|----|----|----|----|----|----|----|----|----|----|----|----|----|----|\n| 4.40.0 | [✓](archived/4.40.0/chrome-for-testing_145.md) | [✓](archived/4.40.0/chrome-for-testing_144.md) | [✓](archived/4.40.0/chrome-for-testing_143.md) | [✓](archived/4.40.0/chrome-for-testing_142.md) | [✓](archived/4.40.0/chrome-for-testing_141.md) | [✓](archived/4.40.0/chrome-for-testing_140.md) | [✓](archived/4.40.0/chrome-for-testing_139.md) | [✓](archived/4.40.0/chrome-for-testing_138.md) | [✓](archived/4.40.0/chrome-for-testing_137.md) | [✓](archived/4.40.0/chrome-for-testing_136.md) | [✓](archived/4.40.0/chrome-for-testing_135.md) | [✓](archived/4.40.0/chrome-for-testing_134.md) | [✓](archived/4.40.0/chrome-for-testing_133.md) | [✓](archived/4.40.0/chrome-for-testing_132.md) | [✓](archived/4.40.0/chrome-for-testing_131.md) | [✓](archived/4.40.0/chrome-for-testing_130.md) | [✓](archived/4.40.0/chrome-for-testing_129.md) | [✓](archived/4.40.0/chrome-for-testing_128.md) | [✓](archived/4.40.0/chrome-for-testing_127.md) | [✓](archived/4.40.0/chrome-for-testing_126.md) | [✓](archived/4.40.0/chrome-for-testing_125.md) | [✓](archived/4.40.0/chrome-for-testing_124.md) | [✓](archived/4.40.0/chrome-for-testing_123.md) | [✓](archived/4.40.0/chrome-for-testing_122.md) | [✓](archived/4.40.0/chrome-for-testing_121.md) | [✓](archived/4.40.0/chrome-for-testing_120.md) | [✓](archived/4.40.0/chrome-for-testing_119.md) | [✓](archived/4.40.0/chrome-for-testing_118.md) | [✓](archived/4.40.0/chrome-for-testing_117.md) | [✓](archived/4.40.0/chrome-for-testing_116.md) | [✓](archived/4.40.0/chrome-for-testing_115.md) | [✓](archived/4.40.0/chrome-for-testing_114.md) | [✓](archived/4.40.0/chrome-for-testing_113.md) |\n| 4.39.0 |   |   | [✓](archived/4.39.0/chrome-for-testing_143.md) | [✓](archived/4.39.0/chrome-for-testing_142.md) | [✓](archived/4.39.0/chrome-for-testing_141.md) | [✓](archived/4.39.0/chrome-for-testing_140.md) | [✓](archived/4.39.0/chrome-for-testing_139.md) | [✓](archived/4.39.0/chrome-for-testing_138.md) | [✓](archived/4.39.0/chrome-for-testing_137.md) | [✓](archived/4.39.0/chrome-for-testing_136.md) | [✓](archived/4.39.0/chrome-for-testing_135.md) | [✓](archived/4.39.0/chrome-for-testing_134.md) | [✓](archived/4.39.0/chrome-for-testing_133.md) | [✓](archived/4.39.0/chrome-for-testing_132.md) | [✓](archived/4.39.0/chrome-for-testing_131.md) | [✓](archived/4.39.0/chrome-for-testing_130.md) | [✓](archived/4.39.0/chrome-for-testing_129.md) | [✓](archived/4.39.0/chrome-for-testing_128.md) | [✓](archived/4.39.0/chrome-for-testing_127.md) | [✓](archived/4.39.0/chrome-for-testing_126.md) | [✓](archived/4.39.0/chrome-for-testing_125.md) | [✓](archived/4.39.0/chrome-for-testing_124.md) | [✓](archived/4.39.0/chrome-for-testing_123.md) | [✓](archived/4.39.0/chrome-for-testing_122.md) | [✓](archived/4.39.0/chrome-for-testing_121.md) | [✓](archived/4.39.0/chrome-for-testing_120.md) | [✓](archived/4.39.0/chrome-for-testing_119.md) | [✓](archived/4.39.0/chrome-for-testing_118.md) | [✓](archived/4.39.0/chrome-for-testing_117.md) | [✓](archived/4.39.0/chrome-for-testing_116.md) | [✓](archived/4.39.0/chrome-for-testing_115.md) | [✓](archived/4.39.0/chrome-for-testing_114.md) | [✓](archived/4.39.0/chrome-for-testing_113.md) |\n| 4.38.0 |   |   |   | [✓](archived/4.38.0/chrome-for-testing_142.md) | [✓](archived/4.38.0/chrome-for-testing_141.md) | [✓](archived/4.38.0/chrome-for-testing_140.md) | [✓](archived/4.38.0/chrome-for-testing_139.md) | [✓](archived/4.38.0/chrome-for-testing_138.md) | [✓](archived/4.38.0/chrome-for-testing_137.md) | [✓](archived/4.38.0/chrome-for-testing_136.md) | [✓](archived/4.38.0/chrome-for-testing_135.md) | [✓](archived/4.38.0/chrome-for-testing_134.md) | [✓](archived/4.38.0/chrome-for-testing_133.md) | [✓](archived/4.38.0/chrome-for-testing_132.md) | [✓](archived/4.38.0/chrome-for-testing_131.md) | [✓](archived/4.38.0/chrome-for-testing_130.md) | [✓](archived/4.38.0/chrome-for-testing_129.md) | [✓](archived/4.38.0/chrome-for-testing_128.md) | [✓](archived/4.38.0/chrome-for-testing_127.md) | [✓](archived/4.38.0/chrome-for-testing_126.md) | [✓](archived/4.38.0/chrome-for-testing_125.md) | [✓](archived/4.38.0/chrome-for-testing_124.md) | [✓](archived/4.38.0/chrome-for-testing_123.md) | [✓](archived/4.38.0/chrome-for-testing_122.md) | [✓](archived/4.38.0/chrome-for-testing_121.md) | [✓](archived/4.38.0/chrome-for-testing_120.md) | [✓](archived/4.38.0/chrome-for-testing_119.md) | [✓](archived/4.38.0/chrome-for-testing_118.md) | [✓](archived/4.38.0/chrome-for-testing_117.md) | [✓](archived/4.38.0/chrome-for-testing_116.md) | [✓](archived/4.38.0/chrome-for-testing_115.md) | [✓](archived/4.38.0/chrome-for-testing_114.md) | [✓](archived/4.38.0/chrome-for-testing_113.md) |\n\n### Edge\n\n| Grid Version | 144 | 143 | 142 | 141 | 140 | 139 | 138 | 137 | 136 | 135 | 134 | 133 | 132 | 131 | 130 | 129 | 128 | 127 | 126 | 125 | 124 | 123 | 122 | 121 | 120 | 119 | 118 | 117 | 116 | 115 | 114 |\n|--------------|----|----|----|----|----|----|----|----|----|----|----|----|----|----|----|----|----|----|----|----|----|----|----|----|----|----|----|----|----|----|----|\n| 4.40.0 | [✓](archived/4.40.0/edge_144.md) | [✓](archived/4.40.0/edge_143.md) | [✓](archived/4.40.0/edge_142.md) | [✓](archived/4.40.0/edge_141.md) | [✓](archived/4.40.0/edge_140.md) | [✓](archived/4.40.0/edge_139.md) | [✓](archived/4.40.0/edge_138.md) | [✓](archived/4.40.0/edge_137.md) | [✓](archived/4.40.0/edge_136.md) | [✓](archived/4.40.0/edge_135.md) | [✓](archived/4.40.0/edge_134.md) | [✓](archived/4.40.0/edge_133.md) | [✓](archived/4.40.0/edge_132.md) | [✓](archived/4.40.0/edge_131.md) | [✓](archived/4.40.0/edge_130.md) | [✓](archived/4.40.0/edge_129.md) | [✓](archived/4.40.0/edge_128.md) | [✓](archived/4.40.0/edge_127.md) | [✓](archived/4.40.0/edge_126.md) | [✓](archived/4.40.0/edge_125.md) | [✓](archived/4.40.0/edge_124.md) | [✓](archived/4.40.0/edge_123.md) | [✓](archived/4.40.0/edge_122.md) | [✓](archived/4.40.0/edge_121.md) | [✓](archived/4.40.0/edge_120.md) | [✓](archived/4.40.0/edge_119.md) | [✓](archived/4.40.0/edge_118.md) | [✓](archived/4.40.0/edge_117.md) | [✓](archived/4.40.0/edge_116.md) | [✓](archived/4.40.0/edge_115.md) | [✓](archived/4.40.0/edge_114.md) |\n| 4.39.0 |   | [✓](archived/4.39.0/edge_143.md) | [✓](archived/4.39.0/edge_142.md) | [✓](archived/4.39.0/edge_141.md) | [✓](archived/4.39.0/edge_140.md) | [✓](archived/4.39.0/edge_139.md) | [✓](archived/4.39.0/edge_138.md) | [✓](archived/4.39.0/edge_137.md) | [✓](archived/4.39.0/edge_136.md) | [✓](archived/4.39.0/edge_135.md) | [✓](archived/4.39.0/edge_134.md) | [✓](archived/4.39.0/edge_133.md) | [✓](archived/4.39.0/edge_132.md) | [✓](archived/4.39.0/edge_131.md) | [✓](archived/4.39.0/edge_130.md) | [✓](archived/4.39.0/edge_129.md) | [✓](archived/4.39.0/edge_128.md) | [✓](archived/4.39.0/edge_127.md) | [✓](archived/4.39.0/edge_126.md) | [✓](archived/4.39.0/edge_125.md) | [✓](archived/4.39.0/edge_124.md) | [✓](archived/4.39.0/edge_123.md) | [✓](archived/4.39.0/edge_122.md) | [✓](archived/4.39.0/edge_121.md) | [✓](archived/4.39.0/edge_120.md) | [✓](archived/4.39.0/edge_119.md) | [✓](archived/4.39.0/edge_118.md) | [✓](archived/4.39.0/edge_117.md) | [✓](archived/4.39.0/edge_116.md) | [✓](archived/4.39.0/edge_115.md) | [✓](archived/4.39.0/edge_114.md) |\n| 4.38.0 |   |   | [✓](archived/4.38.0/edge_142.md) | [✓](archived/4.38.0/edge_141.md) | [✓](archived/4.38.0/edge_140.md) | [✓](archived/4.38.0/edge_139.md) | [✓](archived/4.38.0/edge_138.md) | [✓](archived/4.38.0/edge_137.md) | [✓](archived/4.38.0/edge_136.md) | [✓](archived/4.38.0/edge_135.md) | [✓](archived/4.38.0/edge_134.md) | [✓](archived/4.38.0/edge_133.md) | [✓](archived/4.38.0/edge_132.md) | [✓](archived/4.38.0/edge_131.md) | [✓](archived/4.38.0/edge_130.md) | [✓](archived/4.38.0/edge_129.md) | [✓](archived/4.38.0/edge_128.md) | [✓](archived/4.38.0/edge_127.md) | [✓](archived/4.38.0/edge_126.md) | [✓](archived/4.38.0/edge_125.md) | [✓](archived/4.38.0/edge_124.md) | [✓](archived/4.38.0/edge_123.md) | [✓](archived/4.38.0/edge_122.md) | [✓](archived/4.38.0/edge_121.md) | [✓](archived/4.38.0/edge_120.md) | [✓](archived/4.38.0/edge_119.md) | [✓](archived/4.38.0/edge_118.md) | [✓](archived/4.38.0/edge_117.md) | [✓](archived/4.38.0/edge_116.md) | [✓](archived/4.38.0/edge_115.md) | [✓](archived/4.38.0/edge_114.md) |\n| 4.37.0 |   |   |   |   | [✓](archived/4.37.0/edge_140.md) | [✓](archived/4.37.0/edge_139.md) | [✓](archived/4.37.0/edge_138.md) | [✓](archived/4.37.0/edge_137.md) | [✓](archived/4.37.0/edge_136.md) | [✓](archived/4.37.0/edge_135.md) | [✓](archived/4.37.0/edge_134.md) | [✓](archived/4.37.0/edge_133.md) | [✓](archived/4.37.0/edge_132.md) | [✓](archived/4.37.0/edge_131.md) | [✓](archived/4.37.0/edge_130.md) | [✓](archived/4.37.0/edge_129.md) | [✓](archived/4.37.0/edge_128.md) | [✓](archived/4.37.0/edge_127.md) | [✓](archived/4.37.0/edge_126.md) | [✓](archived/4.37.0/edge_125.md) | [✓](archived/4.37.0/edge_124.md) | [✓](archived/4.37.0/edge_123.md) | [✓](archived/4.37.0/edge_122.md) | [✓](archived/4.37.0/edge_121.md) | [✓](archived/4.37.0/edge_120.md) | [✓](archived/4.37.0/edge_119.md) | [✓](archived/4.37.0/edge_118.md) | [✓](archived/4.37.0/edge_117.md) | [✓](archived/4.37.0/edge_116.md) | [✓](archived/4.37.0/edge_115.md) | [✓](archived/4.37.0/edge_114.md) |\n| 4.36.0 |   |   |   |   | [✓](archived/4.36.0/edge_140.md) | [✓](archived/4.36.0/edge_139.md) | [✓](archived/4.36.0/edge_138.md) | [✓](archived/4.36.0/edge_137.md) | [✓](archived/4.36.0/edge_136.md) | [✓](archived/4.36.0/edge_135.md) | [✓](archived/4.36.0/edge_134.md) | [✓](archived/4.36.0/edge_133.md) | [✓](archived/4.36.0/edge_132.md) | [✓](archived/4.36.0/edge_131.md) | [✓](archived/4.36.0/edge_130.md) | [✓](archived/4.36.0/edge_129.md) | [✓](archived/4.36.0/edge_128.md) | [✓](archived/4.36.0/edge_127.md) | [✓](archived/4.36.0/edge_126.md) | [✓](archived/4.36.0/edge_125.md) | [✓](archived/4.36.0/edge_124.md) | [✓](archived/4.36.0/edge_123.md) | [✓](archived/4.36.0/edge_122.md) | [✓](archived/4.36.0/edge_121.md) | [✓](archived/4.36.0/edge_120.md) | [✓](archived/4.36.0/edge_119.md) | [✓](archived/4.36.0/edge_118.md) | [✓](archived/4.36.0/edge_117.md) | [✓](archived/4.36.0/edge_116.md) | [✓](archived/4.36.0/edge_115.md) | [✓](archived/4.36.0/edge_114.md) |\n| 4.35.0 |   |   |   |   |   | [✓](archived/4.35.0/edge_139.md) | [✓](archived/4.35.0/edge_138.md) | [✓](archived/4.35.0/edge_137.md) | [✓](archived/4.35.0/edge_136.md) | [✓](archived/4.35.0/edge_135.md) | [✓](archived/4.35.0/edge_134.md) | [✓](archived/4.35.0/edge_133.md) | [✓](archived/4.35.0/edge_132.md) | [✓](archived/4.35.0/edge_131.md) | [✓](archived/4.35.0/edge_130.md) | [✓](archived/4.35.0/edge_129.md) | [✓](archived/4.35.0/edge_128.md) | [✓](archived/4.35.0/edge_127.md) | [✓](archived/4.35.0/edge_126.md) | [✓](archived/4.35.0/edge_125.md) | [✓](archived/4.35.0/edge_124.md) | [✓](archived/4.35.0/edge_123.md) | [✓](archived/4.35.0/edge_122.md) | [✓](archived/4.35.0/edge_121.md) | [✓](archived/4.35.0/edge_120.md) | [✓](archived/4.35.0/edge_119.md) | [✓](archived/4.35.0/edge_118.md) | [✓](archived/4.35.0/edge_117.md) | [✓](archived/4.35.0/edge_116.md) | [✓](archived/4.35.0/edge_115.md) | [✓](archived/4.35.0/edge_114.md) |\n| 4.34.0 |   |   |   |   |   |   |   | [✓](archived/4.34.0/edge_137.md) | [✓](archived/4.34.0/edge_136.md) | [✓](archived/4.34.0/edge_135.md) | [✓](archived/4.34.0/edge_134.md) | [✓](archived/4.34.0/edge_133.md) | [✓](archived/4.34.0/edge_132.md) | [✓](archived/4.34.0/edge_131.md) | [✓](archived/4.34.0/edge_130.md) | [✓](archived/4.34.0/edge_129.md) | [✓](archived/4.34.0/edge_128.md) | [✓](archived/4.34.0/edge_127.md) | [✓](archived/4.34.0/edge_126.md) | [✓](archived/4.34.0/edge_125.md) | [✓](archived/4.34.0/edge_124.md) | [✓](archived/4.34.0/edge_123.md) | [✓](archived/4.34.0/edge_122.md) | [✓](archived/4.34.0/edge_121.md) | [✓](archived/4.34.0/edge_120.md) | [✓](archived/4.34.0/edge_119.md) | [✓](archived/4.34.0/edge_118.md) | [✓](archived/4.34.0/edge_117.md) | [✓](archived/4.34.0/edge_116.md) | [✓](archived/4.34.0/edge_115.md) | [✓](archived/4.34.0/edge_114.md) |\n| 4.33.0 |   |   |   |   |   |   |   |   | [✓](archived/4.33.0/edge_136.md) | [✓](archived/4.33.0/edge_135.md) | [✓](archived/4.33.0/edge_134.md) | [✓](archived/4.33.0/edge_133.md) | [✓](archived/4.33.0/edge_132.md) | [✓](archived/4.33.0/edge_131.md) | [✓](archived/4.33.0/edge_130.md) | [✓](archived/4.33.0/edge_129.md) | [✓](archived/4.33.0/edge_128.md) | [✓](archived/4.33.0/edge_127.md) | [✓](archived/4.33.0/edge_126.md) | [✓](archived/4.33.0/edge_125.md) | [✓](archived/4.33.0/edge_124.md) | [✓](archived/4.33.0/edge_123.md) | [✓](archived/4.33.0/edge_122.md) | [✓](archived/4.33.0/edge_121.md) | [✓](archived/4.33.0/edge_120.md) | [✓](archived/4.33.0/edge_119.md) | [✓](archived/4.33.0/edge_118.md) | [✓](archived/4.33.0/edge_117.md) | [✓](archived/4.33.0/edge_116.md) | [✓](archived/4.33.0/edge_115.md) | [✓](archived/4.33.0/edge_114.md) |\n| 4.32.0 |   |   |   |   |   |   |   |   |   | [✓](archived/4.32.0/edge_135.md) | [✓](archived/4.32.0/edge_134.md) | [✓](archived/4.32.0/edge_133.md) | [✓](archived/4.32.0/edge_132.md) | [✓](archived/4.32.0/edge_131.md) | [✓](archived/4.32.0/edge_130.md) | [✓](archived/4.32.0/edge_129.md) | [✓](archived/4.32.0/edge_128.md) | [✓](archived/4.32.0/edge_127.md) | [✓](archived/4.32.0/edge_126.md) | [✓](archived/4.32.0/edge_125.md) | [✓](archived/4.32.0/edge_124.md) | [✓](archived/4.32.0/edge_123.md) | [✓](archived/4.32.0/edge_122.md) | [✓](archived/4.32.0/edge_121.md) | [✓](archived/4.32.0/edge_120.md) | [✓](archived/4.32.0/edge_119.md) | [✓](archived/4.32.0/edge_118.md) | [✓](archived/4.32.0/edge_117.md) | [✓](archived/4.32.0/edge_116.md) | [✓](archived/4.32.0/edge_115.md) | [✓](archived/4.32.0/edge_114.md) |\n| 4.31.0 |   |   |   |   |   |   |   |   |   |   | [✓](archived/4.31.0/edge_134.md) | [✓](archived/4.31.0/edge_133.md) | [✓](archived/4.31.0/edge_132.md) | [✓](archived/4.31.0/edge_131.md) | [✓](archived/4.31.0/edge_130.md) | [✓](archived/4.31.0/edge_129.md) | [✓](archived/4.31.0/edge_128.md) | [✓](archived/4.31.0/edge_127.md) | [✓](archived/4.31.0/edge_126.md) | [✓](archived/4.31.0/edge_125.md) | [✓](archived/4.31.0/edge_124.md) | [✓](archived/4.31.0/edge_123.md) | [✓](archived/4.31.0/edge_122.md) | [✓](archived/4.31.0/edge_121.md) | [✓](archived/4.31.0/edge_120.md) | [✓](archived/4.31.0/edge_119.md) | [✓](archived/4.31.0/edge_118.md) | [✓](archived/4.31.0/edge_117.md) | [✓](archived/4.31.0/edge_116.md) | [✓](archived/4.31.0/edge_115.md) | [✓](archived/4.31.0/edge_114.md) |\n| 4.30.0 |   |   |   |   |   |   |   |   |   |   | [✓](archived/4.30.0/edge_134.md) | [✓](archived/4.30.0/edge_133.md) | [✓](archived/4.30.0/edge_132.md) | [✓](archived/4.30.0/edge_131.md) | [✓](archived/4.30.0/edge_130.md) | [✓](archived/4.30.0/edge_129.md) | [✓](archived/4.30.0/edge_128.md) | [✓](archived/4.30.0/edge_127.md) | [✓](archived/4.30.0/edge_126.md) | [✓](archived/4.30.0/edge_125.md) | [✓](archived/4.30.0/edge_124.md) | [✓](archived/4.30.0/edge_123.md) | [✓](archived/4.30.0/edge_122.md) | [✓](archived/4.30.0/edge_121.md) | [✓](archived/4.30.0/edge_120.md) | [✓](archived/4.30.0/edge_119.md) | [✓](archived/4.30.0/edge_118.md) | [✓](archived/4.30.0/edge_117.md) | [✓](archived/4.30.0/edge_116.md) | [✓](archived/4.30.0/edge_115.md) | [✓](archived/4.30.0/edge_114.md) |\n| 4.29.0 |   |   |   |   |   |   |   |   |   |   |   | [✓](archived/4.29.0/edge_133.md) | [✓](archived/4.29.0/edge_132.md) | [✓](archived/4.29.0/edge_131.md) | [✓](archived/4.29.0/edge_130.md) | [✓](archived/4.29.0/edge_129.md) | [✓](archived/4.29.0/edge_128.md) | [✓](archived/4.29.0/edge_127.md) | [✓](archived/4.29.0/edge_126.md) | [✓](archived/4.29.0/edge_125.md) | [✓](archived/4.29.0/edge_124.md) | [✓](archived/4.29.0/edge_123.md) | [✓](archived/4.29.0/edge_122.md) | [✓](archived/4.29.0/edge_121.md) | [✓](archived/4.29.0/edge_120.md) | [✓](archived/4.29.0/edge_119.md) | [✓](archived/4.29.0/edge_118.md) | [✓](archived/4.29.0/edge_117.md) | [✓](archived/4.29.0/edge_116.md) | [✓](archived/4.29.0/edge_115.md) | [✓](archived/4.29.0/edge_114.md) |\n| 4.28.1 |   |   |   |   |   |   |   |   |   |   |   |   | [✓](archived/4.28.1/edge_132.md) | [✓](archived/4.28.1/edge_131.md) | [✓](archived/4.28.1/edge_130.md) | [✓](archived/4.28.1/edge_129.md) | [✓](archived/4.28.1/edge_128.md) | [✓](archived/4.28.1/edge_127.md) | [✓](archived/4.28.1/edge_126.md) | [✓](archived/4.28.1/edge_125.md) | [✓](archived/4.28.1/edge_124.md) | [✓](archived/4.28.1/edge_123.md) | [✓](archived/4.28.1/edge_122.md) | [✓](archived/4.28.1/edge_121.md) | [✓](archived/4.28.1/edge_120.md) | [✓](archived/4.28.1/edge_119.md) | [✓](archived/4.28.1/edge_118.md) | [✓](archived/4.28.1/edge_117.md) | [✓](archived/4.28.1/edge_116.md) | [✓](archived/4.28.1/edge_115.md) | [✓](archived/4.28.1/edge_114.md) |\n\n### Firefox\n\n| Grid Version | 147 | 146 | 145 | 144 | 143 | 142 | 141 | 140 | 139 | 138 | 137 | 136 | 135 | 134 | 133 | 132 | 131 | 130 | 129 | 128 | 127 | 126 | 125 | 124 | 123 | 122 | 121 | 120 | 119 | 118 | 117 | 116 | 115 | 114 | 113 | 112 | 111 | 110 | 109 | 108 | 107 | 106 | 105 | 104 | 103 | 102 | 101 | 100 | 99 | 98 |\n|--------------|----|----|----|----|----|----|----|----|----|----|----|----|----|----|----|----|----|----|----|----|----|----|----|----|----|----|----|----|----|----|----|----|----|----|----|----|----|----|----|----|----|----|----|----|----|----|----|----|----|----|\n| 4.40.0 | [✓](archived/4.40.0/firefox_147.md) | [✓](archived/4.40.0/firefox_146.md) | [✓](archived/4.40.0/firefox_145.md) | [✓](archived/4.40.0/firefox_144.md) | [✓](archived/4.40.0/firefox_143.md) | [✓](archived/4.40.0/firefox_142.md) | [✓](archived/4.40.0/firefox_141.md) | [✓](archived/4.40.0/firefox_140.md) | [✓](archived/4.40.0/firefox_139.md) | [✓](archived/4.40.0/firefox_138.md) | [✓](archived/4.40.0/firefox_137.md) | [✓](archived/4.40.0/firefox_136.md) | [✓](archived/4.40.0/firefox_135.md) | [✓](archived/4.40.0/firefox_134.md) | [✓](archived/4.40.0/firefox_133.md) | [✓](archived/4.40.0/firefox_132.md) | [✓](archived/4.40.0/firefox_131.md) | [✓](archived/4.40.0/firefox_130.md) | [✓](archived/4.40.0/firefox_129.md) | [✓](archived/4.40.0/firefox_128.md) | [✓](archived/4.40.0/firefox_127.md) | [✓](archived/4.40.0/firefox_126.md) | [✓](archived/4.40.0/firefox_125.md) | [✓](archived/4.40.0/firefox_124.md) | [✓](archived/4.40.0/firefox_123.md) | [✓](archived/4.40.0/firefox_122.md) | [✓](archived/4.40.0/firefox_121.md) | [✓](archived/4.40.0/firefox_120.md) | [✓](archived/4.40.0/firefox_119.md) | [✓](archived/4.40.0/firefox_118.md) | [✓](archived/4.40.0/firefox_117.md) | [✓](archived/4.40.0/firefox_116.md) | [✓](archived/4.40.0/firefox_115.md) | [✓](archived/4.40.0/firefox_114.md) | [✓](archived/4.40.0/firefox_113.md) | [✓](archived/4.40.0/firefox_112.md) | [✓](archived/4.40.0/firefox_111.md) | [✓](archived/4.40.0/firefox_110.md) | [✓](archived/4.40.0/firefox_109.md) | [✓](archived/4.40.0/firefox_108.md) | [✓](archived/4.40.0/firefox_107.md) | [✓](archived/4.40.0/firefox_106.md) | [✓](archived/4.40.0/firefox_105.md) | [✓](archived/4.40.0/firefox_104.md) | [✓](archived/4.40.0/firefox_103.md) | [✓](archived/4.40.0/firefox_102.md) | [✓](archived/4.40.0/firefox_101.md) | [✓](archived/4.40.0/firefox_100.md) | [✓](archived/4.40.0/firefox_99.md) | [✓](archived/4.40.0/firefox_98.md) |\n| 4.39.0 |   | [✓](archived/4.39.0/firefox_146.md) | [✓](archived/4.39.0/firefox_145.md) | [✓](archived/4.39.0/firefox_144.md) | [✓](archived/4.39.0/firefox_143.md) | [✓](archived/4.39.0/firefox_142.md) | [✓](archived/4.39.0/firefox_141.md) | [✓](archived/4.39.0/firefox_140.md) | [✓](archived/4.39.0/firefox_139.md) | [✓](archived/4.39.0/firefox_138.md) | [✓](archived/4.39.0/firefox_137.md) | [✓](archived/4.39.0/firefox_136.md) | [✓](archived/4.39.0/firefox_135.md) | [✓](archived/4.39.0/firefox_134.md) | [✓](archived/4.39.0/firefox_133.md) | [✓](archived/4.39.0/firefox_132.md) | [✓](archived/4.39.0/firefox_131.md) | [✓](archived/4.39.0/firefox_130.md) | [✓](archived/4.39.0/firefox_129.md) | [✓](archived/4.39.0/firefox_128.md) | [✓](archived/4.39.0/firefox_127.md) | [✓](archived/4.39.0/firefox_126.md) | [✓](archived/4.39.0/firefox_125.md) | [✓](archived/4.39.0/firefox_124.md) | [✓](archived/4.39.0/firefox_123.md) | [✓](archived/4.39.0/firefox_122.md) | [✓](archived/4.39.0/firefox_121.md) | [✓](archived/4.39.0/firefox_120.md) | [✓](archived/4.39.0/firefox_119.md) | [✓](archived/4.39.0/firefox_118.md) | [✓](archived/4.39.0/firefox_117.md) | [✓](archived/4.39.0/firefox_116.md) | [✓](archived/4.39.0/firefox_115.md) | [✓](archived/4.39.0/firefox_114.md) | [✓](archived/4.39.0/firefox_113.md) | [✓](archived/4.39.0/firefox_112.md) | [✓](archived/4.39.0/firefox_111.md) | [✓](archived/4.39.0/firefox_110.md) | [✓](archived/4.39.0/firefox_109.md) | [✓](archived/4.39.0/firefox_108.md) | [✓](archived/4.39.0/firefox_107.md) | [✓](archived/4.39.0/firefox_106.md) | [✓](archived/4.39.0/firefox_105.md) | [✓](archived/4.39.0/firefox_104.md) | [✓](archived/4.39.0/firefox_103.md) | [✓](archived/4.39.0/firefox_102.md) | [✓](archived/4.39.0/firefox_101.md) | [✓](archived/4.39.0/firefox_100.md) | [✓](archived/4.39.0/firefox_99.md) | [✓](archived/4.39.0/firefox_98.md) |\n| 4.38.0 |   |   |   | [✓](archived/4.38.0/firefox_144.md) | [✓](archived/4.38.0/firefox_143.md) | [✓](archived/4.38.0/firefox_142.md) | [✓](archived/4.38.0/firefox_141.md) | [✓](archived/4.38.0/firefox_140.md) | [✓](archived/4.38.0/firefox_139.md) | [✓](archived/4.38.0/firefox_138.md) | [✓](archived/4.38.0/firefox_137.md) | [✓](archived/4.38.0/firefox_136.md) | [✓](archived/4.38.0/firefox_135.md) | [✓](archived/4.38.0/firefox_134.md) | [✓](archived/4.38.0/firefox_133.md) | [✓](archived/4.38.0/firefox_132.md) | [✓](archived/4.38.0/firefox_131.md) | [✓](archived/4.38.0/firefox_130.md) | [✓](archived/4.38.0/firefox_129.md) | [✓](archived/4.38.0/firefox_128.md) | [✓](archived/4.38.0/firefox_127.md) | [✓](archived/4.38.0/firefox_126.md) | [✓](archived/4.38.0/firefox_125.md) | [✓](archived/4.38.0/firefox_124.md) | [✓](archived/4.38.0/firefox_123.md) | [✓](archived/4.38.0/firefox_122.md) | [✓](archived/4.38.0/firefox_121.md) | [✓](archived/4.38.0/firefox_120.md) | [✓](archived/4.38.0/firefox_119.md) | [✓](archived/4.38.0/firefox_118.md) | [✓](archived/4.38.0/firefox_117.md) | [✓](archived/4.38.0/firefox_116.md) | [✓](archived/4.38.0/firefox_115.md) | [✓](archived/4.38.0/firefox_114.md) | [✓](archived/4.38.0/firefox_113.md) | [✓](archived/4.38.0/firefox_112.md) | [✓](archived/4.38.0/firefox_111.md) | [✓](archived/4.38.0/firefox_110.md) | [✓](archived/4.38.0/firefox_109.md) | [✓](archived/4.38.0/firefox_108.md) | [✓](archived/4.38.0/firefox_107.md) | [✓](archived/4.38.0/firefox_106.md) | [✓](archived/4.38.0/firefox_105.md) | [✓](archived/4.38.0/firefox_104.md) | [✓](archived/4.38.0/firefox_103.md) | [✓](archived/4.38.0/firefox_102.md) | [✓](archived/4.38.0/firefox_101.md) | [✓](archived/4.38.0/firefox_100.md) | [✓](archived/4.38.0/firefox_99.md) | [✓](archived/4.38.0/firefox_98.md) |\n| 4.37.0 |   |   |   |   | [✓](archived/4.37.0/firefox_143.md) | [✓](archived/4.37.0/firefox_142.md) | [✓](archived/4.37.0/firefox_141.md) | [✓](archived/4.37.0/firefox_140.md) | [✓](archived/4.37.0/firefox_139.md) | [✓](archived/4.37.0/firefox_138.md) | [✓](archived/4.37.0/firefox_137.md) | [✓](archived/4.37.0/firefox_136.md) | [✓](archived/4.37.0/firefox_135.md) | [✓](archived/4.37.0/firefox_134.md) | [✓](archived/4.37.0/firefox_133.md) | [✓](archived/4.37.0/firefox_132.md) | [✓](archived/4.37.0/firefox_131.md) | [✓](archived/4.37.0/firefox_130.md) | [✓](archived/4.37.0/firefox_129.md) | [✓](archived/4.37.0/firefox_128.md) | [✓](archived/4.37.0/firefox_127.md) | [✓](archived/4.37.0/firefox_126.md) | [✓](archived/4.37.0/firefox_125.md) | [✓](archived/4.37.0/firefox_124.md) | [✓](archived/4.37.0/firefox_123.md) | [✓](archived/4.37.0/firefox_122.md) | [✓](archived/4.37.0/firefox_121.md) | [✓](archived/4.37.0/firefox_120.md) | [✓](archived/4.37.0/firefox_119.md) | [✓](archived/4.37.0/firefox_118.md) | [✓](archived/4.37.0/firefox_117.md) | [✓](archived/4.37.0/firefox_116.md) | [✓](archived/4.37.0/firefox_115.md) | [✓](archived/4.37.0/firefox_114.md) | [✓](archived/4.37.0/firefox_113.md) | [✓](archived/4.37.0/firefox_112.md) | [✓](archived/4.37.0/firefox_111.md) | [✓](archived/4.37.0/firefox_110.md) | [✓](archived/4.37.0/firefox_109.md) | [✓](archived/4.37.0/firefox_108.md) | [✓](archived/4.37.0/firefox_107.md) | [✓](archived/4.37.0/firefox_106.md) | [✓](archived/4.37.0/firefox_105.md) | [✓](archived/4.37.0/firefox_104.md) | [✓](archived/4.37.0/firefox_103.md) | [✓](archived/4.37.0/firefox_102.md) | [✓](archived/4.37.0/firefox_101.md) | [✓](archived/4.37.0/firefox_100.md) | [✓](archived/4.37.0/firefox_99.md) | [✓](archived/4.37.0/firefox_98.md) |\n| 4.36.0 |   |   |   |   |   | [✓](archived/4.36.0/firefox_142.md) | [✓](archived/4.36.0/firefox_141.md) | [✓](archived/4.36.0/firefox_140.md) | [✓](archived/4.36.0/firefox_139.md) | [✓](archived/4.36.0/firefox_138.md) | [✓](archived/4.36.0/firefox_137.md) | [✓](archived/4.36.0/firefox_136.md) | [✓](archived/4.36.0/firefox_135.md) | [✓](archived/4.36.0/firefox_134.md) | [✓](archived/4.36.0/firefox_133.md) | [✓](archived/4.36.0/firefox_132.md) | [✓](archived/4.36.0/firefox_131.md) | [✓](archived/4.36.0/firefox_130.md) | [✓](archived/4.36.0/firefox_129.md) | [✓](archived/4.36.0/firefox_128.md) | [✓](archived/4.36.0/firefox_127.md) | [✓](archived/4.36.0/firefox_126.md) | [✓](archived/4.36.0/firefox_125.md) | [✓](archived/4.36.0/firefox_124.md) | [✓](archived/4.36.0/firefox_123.md) | [✓](archived/4.36.0/firefox_122.md) | [✓](archived/4.36.0/firefox_121.md) | [✓](archived/4.36.0/firefox_120.md) | [✓](archived/4.36.0/firefox_119.md) | [✓](archived/4.36.0/firefox_118.md) | [✓](archived/4.36.0/firefox_117.md) | [✓](archived/4.36.0/firefox_116.md) | [✓](archived/4.36.0/firefox_115.md) | [✓](archived/4.36.0/firefox_114.md) | [✓](archived/4.36.0/firefox_113.md) | [✓](archived/4.36.0/firefox_112.md) | [✓](archived/4.36.0/firefox_111.md) | [✓](archived/4.36.0/firefox_110.md) | [✓](archived/4.36.0/firefox_109.md) | [✓](archived/4.36.0/firefox_108.md) | [✓](archived/4.36.0/firefox_107.md) | [✓](archived/4.36.0/firefox_106.md) | [✓](archived/4.36.0/firefox_105.md) | [✓](archived/4.36.0/firefox_104.md) | [✓](archived/4.36.0/firefox_103.md) | [✓](archived/4.36.0/firefox_102.md) | [✓](archived/4.36.0/firefox_101.md) | [✓](archived/4.36.0/firefox_100.md) | [✓](archived/4.36.0/firefox_99.md) | [✓](archived/4.36.0/firefox_98.md) |\n| 4.35.0 |   |   |   |   |   | [✓](archived/4.35.0/firefox_142.md) | [✓](archived/4.35.0/firefox_141.md) | [✓](archived/4.35.0/firefox_140.md) | [✓](archived/4.35.0/firefox_139.md) | [✓](archived/4.35.0/firefox_138.md) | [✓](archived/4.35.0/firefox_137.md) | [✓](archived/4.35.0/firefox_136.md) | [✓](archived/4.35.0/firefox_135.md) | [✓](archived/4.35.0/firefox_134.md) | [✓](archived/4.35.0/firefox_133.md) | [✓](archived/4.35.0/firefox_132.md) | [✓](archived/4.35.0/firefox_131.md) | [✓](archived/4.35.0/firefox_130.md) | [✓](archived/4.35.0/firefox_129.md) | [✓](archived/4.35.0/firefox_128.md) | [✓](archived/4.35.0/firefox_127.md) | [✓](archived/4.35.0/firefox_126.md) | [✓](archived/4.35.0/firefox_125.md) | [✓](archived/4.35.0/firefox_124.md) | [✓](archived/4.35.0/firefox_123.md) | [✓](archived/4.35.0/firefox_122.md) | [✓](archived/4.35.0/firefox_121.md) | [✓](archived/4.35.0/firefox_120.md) | [✓](archived/4.35.0/firefox_119.md) | [✓](archived/4.35.0/firefox_118.md) | [✓](archived/4.35.0/firefox_117.md) | [✓](archived/4.35.0/firefox_116.md) | [✓](archived/4.35.0/firefox_115.md) | [✓](archived/4.35.0/firefox_114.md) | [✓](archived/4.35.0/firefox_113.md) | [✓](archived/4.35.0/firefox_112.md) | [✓](archived/4.35.0/firefox_111.md) | [✓](archived/4.35.0/firefox_110.md) | [✓](archived/4.35.0/firefox_109.md) | [✓](archived/4.35.0/firefox_108.md) | [✓](archived/4.35.0/firefox_107.md) | [✓](archived/4.35.0/firefox_106.md) | [✓](archived/4.35.0/firefox_105.md) | [✓](archived/4.35.0/firefox_104.md) | [✓](archived/4.35.0/firefox_103.md) | [✓](archived/4.35.0/firefox_102.md) | [✓](archived/4.35.0/firefox_101.md) | [✓](archived/4.35.0/firefox_100.md) | [✓](archived/4.35.0/firefox_99.md) | [✓](archived/4.35.0/firefox_98.md) |\n| 4.34.0 |   |   |   |   |   |   |   |   | [✓](archived/4.34.0/firefox_139.md) | [✓](archived/4.34.0/firefox_138.md) | [✓](archived/4.34.0/firefox_137.md) | [✓](archived/4.34.0/firefox_136.md) | [✓](archived/4.34.0/firefox_135.md) | [✓](archived/4.34.0/firefox_134.md) | [✓](archived/4.34.0/firefox_133.md) | [✓](archived/4.34.0/firefox_132.md) | [✓](archived/4.34.0/firefox_131.md) | [✓](archived/4.34.0/firefox_130.md) | [✓](archived/4.34.0/firefox_129.md) | [✓](archived/4.34.0/firefox_128.md) | [✓](archived/4.34.0/firefox_127.md) | [✓](archived/4.34.0/firefox_126.md) | [✓](archived/4.34.0/firefox_125.md) | [✓](archived/4.34.0/firefox_124.md) | [✓](archived/4.34.0/firefox_123.md) | [✓](archived/4.34.0/firefox_122.md) | [✓](archived/4.34.0/firefox_121.md) | [✓](archived/4.34.0/firefox_120.md) | [✓](archived/4.34.0/firefox_119.md) | [✓](archived/4.34.0/firefox_118.md) | [✓](archived/4.34.0/firefox_117.md) | [✓](archived/4.34.0/firefox_116.md) | [✓](archived/4.34.0/firefox_115.md) | [✓](archived/4.34.0/firefox_114.md) | [✓](archived/4.34.0/firefox_113.md) | [✓](archived/4.34.0/firefox_112.md) | [✓](archived/4.34.0/firefox_111.md) | [✓](archived/4.34.0/firefox_110.md) | [✓](archived/4.34.0/firefox_109.md) | [✓](archived/4.34.0/firefox_108.md) | [✓](archived/4.34.0/firefox_107.md) | [✓](archived/4.34.0/firefox_106.md) | [✓](archived/4.34.0/firefox_105.md) | [✓](archived/4.34.0/firefox_104.md) | [✓](archived/4.34.0/firefox_103.md) | [✓](archived/4.34.0/firefox_102.md) | [✓](archived/4.34.0/firefox_101.md) | [✓](archived/4.34.0/firefox_100.md) | [✓](archived/4.34.0/firefox_99.md) | [✓](archived/4.34.0/firefox_98.md) |\n| 4.33.0 |   |   |   |   |   |   |   |   |   | [✓](archived/4.33.0/firefox_138.md) | [✓](archived/4.33.0/firefox_137.md) | [✓](archived/4.33.0/firefox_136.md) | [✓](archived/4.33.0/firefox_135.md) | [✓](archived/4.33.0/firefox_134.md) | [✓](archived/4.33.0/firefox_133.md) | [✓](archived/4.33.0/firefox_132.md) | [✓](archived/4.33.0/firefox_131.md) | [✓](archived/4.33.0/firefox_130.md) | [✓](archived/4.33.0/firefox_129.md) | [✓](archived/4.33.0/firefox_128.md) | [✓](archived/4.33.0/firefox_127.md) | [✓](archived/4.33.0/firefox_126.md) | [✓](archived/4.33.0/firefox_125.md) | [✓](archived/4.33.0/firefox_124.md) | [✓](archived/4.33.0/firefox_123.md) | [✓](archived/4.33.0/firefox_122.md) | [✓](archived/4.33.0/firefox_121.md) | [✓](archived/4.33.0/firefox_120.md) | [✓](archived/4.33.0/firefox_119.md) | [✓](archived/4.33.0/firefox_118.md) | [✓](archived/4.33.0/firefox_117.md) | [✓](archived/4.33.0/firefox_116.md) | [✓](archived/4.33.0/firefox_115.md) | [✓](archived/4.33.0/firefox_114.md) | [✓](archived/4.33.0/firefox_113.md) | [✓](archived/4.33.0/firefox_112.md) | [✓](archived/4.33.0/firefox_111.md) | [✓](archived/4.33.0/firefox_110.md) | [✓](archived/4.33.0/firefox_109.md) | [✓](archived/4.33.0/firefox_108.md) | [✓](archived/4.33.0/firefox_107.md) | [✓](archived/4.33.0/firefox_106.md) | [✓](archived/4.33.0/firefox_105.md) | [✓](archived/4.33.0/firefox_104.md) | [✓](archived/4.33.0/firefox_103.md) | [✓](archived/4.33.0/firefox_102.md) | [✓](archived/4.33.0/firefox_101.md) | [✓](archived/4.33.0/firefox_100.md) | [✓](archived/4.33.0/firefox_99.md) | [✓](archived/4.33.0/firefox_98.md) |\n| 4.32.0 |   |   |   |   |   |   |   |   |   |   | [✓](archived/4.32.0/firefox_137.md) | [✓](archived/4.32.0/firefox_136.md) | [✓](archived/4.32.0/firefox_135.md) | [✓](archived/4.32.0/firefox_134.md) | [✓](archived/4.32.0/firefox_133.md) | [✓](archived/4.32.0/firefox_132.md) | [✓](archived/4.32.0/firefox_131.md) | [✓](archived/4.32.0/firefox_130.md) | [✓](archived/4.32.0/firefox_129.md) | [✓](archived/4.32.0/firefox_128.md) | [✓](archived/4.32.0/firefox_127.md) | [✓](archived/4.32.0/firefox_126.md) | [✓](archived/4.32.0/firefox_125.md) | [✓](archived/4.32.0/firefox_124.md) | [✓](archived/4.32.0/firefox_123.md) | [✓](archived/4.32.0/firefox_122.md) | [✓](archived/4.32.0/firefox_121.md) | [✓](archived/4.32.0/firefox_120.md) | [✓](archived/4.32.0/firefox_119.md) | [✓](archived/4.32.0/firefox_118.md) | [✓](archived/4.32.0/firefox_117.md) | [✓](archived/4.32.0/firefox_116.md) | [✓](archived/4.32.0/firefox_115.md) | [✓](archived/4.32.0/firefox_114.md) | [✓](archived/4.32.0/firefox_113.md) | [✓](archived/4.32.0/firefox_112.md) | [✓](archived/4.32.0/firefox_111.md) | [✓](archived/4.32.0/firefox_110.md) | [✓](archived/4.32.0/firefox_109.md) | [✓](archived/4.32.0/firefox_108.md) | [✓](archived/4.32.0/firefox_107.md) | [✓](archived/4.32.0/firefox_106.md) | [✓](archived/4.32.0/firefox_105.md) | [✓](archived/4.32.0/firefox_104.md) | [✓](archived/4.32.0/firefox_103.md) | [✓](archived/4.32.0/firefox_102.md) | [✓](archived/4.32.0/firefox_101.md) | [✓](archived/4.32.0/firefox_100.md) | [✓](archived/4.32.0/firefox_99.md) | [✓](archived/4.32.0/firefox_98.md) |\n| 4.31.0 |   |   |   |   |   |   |   |   |   |   |   | [✓](archived/4.31.0/firefox_136.md) | [✓](archived/4.31.0/firefox_135.md) | [✓](archived/4.31.0/firefox_134.md) | [✓](archived/4.31.0/firefox_133.md) | [✓](archived/4.31.0/firefox_132.md) | [✓](archived/4.31.0/firefox_131.md) | [✓](archived/4.31.0/firefox_130.md) | [✓](archived/4.31.0/firefox_129.md) | [✓](archived/4.31.0/firefox_128.md) | [✓](archived/4.31.0/firefox_127.md) | [✓](archived/4.31.0/firefox_126.md) | [✓](archived/4.31.0/firefox_125.md) | [✓](archived/4.31.0/firefox_124.md) | [✓](archived/4.31.0/firefox_123.md) | [✓](archived/4.31.0/firefox_122.md) | [✓](archived/4.31.0/firefox_121.md) | [✓](archived/4.31.0/firefox_120.md) | [✓](archived/4.31.0/firefox_119.md) | [✓](archived/4.31.0/firefox_118.md) | [✓](archived/4.31.0/firefox_117.md) | [✓](archived/4.31.0/firefox_116.md) | [✓](archived/4.31.0/firefox_115.md) | [✓](archived/4.31.0/firefox_114.md) | [✓](archived/4.31.0/firefox_113.md) | [✓](archived/4.31.0/firefox_112.md) | [✓](archived/4.31.0/firefox_111.md) | [✓](archived/4.31.0/firefox_110.md) | [✓](archived/4.31.0/firefox_109.md) | [✓](archived/4.31.0/firefox_108.md) | [✓](archived/4.31.0/firefox_107.md) | [✓](archived/4.31.0/firefox_106.md) | [✓](archived/4.31.0/firefox_105.md) | [✓](archived/4.31.0/firefox_104.md) | [✓](archived/4.31.0/firefox_103.md) | [✓](archived/4.31.0/firefox_102.md) | [✓](archived/4.31.0/firefox_101.md) | [✓](archived/4.31.0/firefox_100.md) | [✓](archived/4.31.0/firefox_99.md) | [✓](archived/4.31.0/firefox_98.md) |\n| 4.30.0 |   |   |   |   |   |   |   |   |   |   |   | [✓](archived/4.30.0/firefox_136.md) | [✓](archived/4.30.0/firefox_135.md) | [✓](archived/4.30.0/firefox_134.md) | [✓](archived/4.30.0/firefox_133.md) | [✓](archived/4.30.0/firefox_132.md) | [✓](archived/4.30.0/firefox_131.md) | [✓](archived/4.30.0/firefox_130.md) | [✓](archived/4.30.0/firefox_129.md) | [✓](archived/4.30.0/firefox_128.md) | [✓](archived/4.30.0/firefox_127.md) | [✓](archived/4.30.0/firefox_126.md) | [✓](archived/4.30.0/firefox_125.md) | [✓](archived/4.30.0/firefox_124.md) | [✓](archived/4.30.0/firefox_123.md) | [✓](archived/4.30.0/firefox_122.md) | [✓](archived/4.30.0/firefox_121.md) | [✓](archived/4.30.0/firefox_120.md) | [✓](archived/4.30.0/firefox_119.md) | [✓](archived/4.30.0/firefox_118.md) | [✓](archived/4.30.0/firefox_117.md) | [✓](archived/4.30.0/firefox_116.md) | [✓](archived/4.30.0/firefox_115.md) | [✓](archived/4.30.0/firefox_114.md) | [✓](archived/4.30.0/firefox_113.md) | [✓](archived/4.30.0/firefox_112.md) | [✓](archived/4.30.0/firefox_111.md) | [✓](archived/4.30.0/firefox_110.md) | [✓](archived/4.30.0/firefox_109.md) | [✓](archived/4.30.0/firefox_108.md) | [✓](archived/4.30.0/firefox_107.md) | [✓](archived/4.30.0/firefox_106.md) | [✓](archived/4.30.0/firefox_105.md) | [✓](archived/4.30.0/firefox_104.md) | [✓](archived/4.30.0/firefox_103.md) | [✓](archived/4.30.0/firefox_102.md) | [✓](archived/4.30.0/firefox_101.md) | [✓](archived/4.30.0/firefox_100.md) | [✓](archived/4.30.0/firefox_99.md) | [✓](archived/4.30.0/firefox_98.md) |\n| 4.29.0 |   |   |   |   |   |   |   |   |   |   |   | [✓](archived/4.29.0/firefox_136.md) | [✓](archived/4.29.0/firefox_135.md) | [✓](archived/4.29.0/firefox_134.md) | [✓](archived/4.29.0/firefox_133.md) | [✓](archived/4.29.0/firefox_132.md) | [✓](archived/4.29.0/firefox_131.md) | [✓](archived/4.29.0/firefox_130.md) | [✓](archived/4.29.0/firefox_129.md) | [✓](archived/4.29.0/firefox_128.md) | [✓](archived/4.29.0/firefox_127.md) | [✓](archived/4.29.0/firefox_126.md) | [✓](archived/4.29.0/firefox_125.md) | [✓](archived/4.29.0/firefox_124.md) | [✓](archived/4.29.0/firefox_123.md) | [✓](archived/4.29.0/firefox_122.md) | [✓](archived/4.29.0/firefox_121.md) | [✓](archived/4.29.0/firefox_120.md) | [✓](archived/4.29.0/firefox_119.md) | [✓](archived/4.29.0/firefox_118.md) | [✓](archived/4.29.0/firefox_117.md) | [✓](archived/4.29.0/firefox_116.md) | [✓](archived/4.29.0/firefox_115.md) | [✓](archived/4.29.0/firefox_114.md) | [✓](archived/4.29.0/firefox_113.md) | [✓](archived/4.29.0/firefox_112.md) | [✓](archived/4.29.0/firefox_111.md) | [✓](archived/4.29.0/firefox_110.md) | [✓](archived/4.29.0/firefox_109.md) | [✓](archived/4.29.0/firefox_108.md) | [✓](archived/4.29.0/firefox_107.md) | [✓](archived/4.29.0/firefox_106.md) | [✓](archived/4.29.0/firefox_105.md) | [✓](archived/4.29.0/firefox_104.md) | [✓](archived/4.29.0/firefox_103.md) | [✓](archived/4.29.0/firefox_102.md) | [✓](archived/4.29.0/firefox_101.md) | [✓](archived/4.29.0/firefox_100.md) | [✓](archived/4.29.0/firefox_99.md) | [✓](archived/4.29.0/firefox_98.md) |\n| 4.28.1 |   |   |   |   |   |   |   |   |   |   |   |   |   | [✓](archived/4.28.1/firefox_134.md) | [✓](archived/4.28.1/firefox_133.md) | [✓](archived/4.28.1/firefox_132.md) | [✓](archived/4.28.1/firefox_131.md) | [✓](archived/4.28.1/firefox_130.md) | [✓](archived/4.28.1/firefox_129.md) | [✓](archived/4.28.1/firefox_128.md) | [✓](archived/4.28.1/firefox_127.md) | [✓](archived/4.28.1/firefox_126.md) | [✓](archived/4.28.1/firefox_125.md) | [✓](archived/4.28.1/firefox_124.md) | [✓](archived/4.28.1/firefox_123.md) | [✓](archived/4.28.1/firefox_122.md) | [✓](archived/4.28.1/firefox_121.md) | [✓](archived/4.28.1/firefox_120.md) | [✓](archived/4.28.1/firefox_119.md) | [✓](archived/4.28.1/firefox_118.md) | [✓](archived/4.28.1/firefox_117.md) | [✓](archived/4.28.1/firefox_116.md) | [✓](archived/4.28.1/firefox_115.md) | [✓](archived/4.28.1/firefox_114.md) | [✓](archived/4.28.1/firefox_113.md) | [✓](archived/4.28.1/firefox_112.md) | [✓](archived/4.28.1/firefox_111.md) | [✓](archived/4.28.1/firefox_110.md) | [✓](archived/4.28.1/firefox_109.md) | [✓](archived/4.28.1/firefox_108.md) | [✓](archived/4.28.1/firefox_107.md) | [✓](archived/4.28.1/firefox_106.md) | [✓](archived/4.28.1/firefox_105.md) | [✓](archived/4.28.1/firefox_104.md) | [✓](archived/4.28.1/firefox_103.md) | [✓](archived/4.28.1/firefox_102.md) | [✓](archived/4.28.1/firefox_101.md) | [✓](archived/4.28.1/firefox_100.md) | [✓](archived/4.28.1/firefox_99.md) | [✓](archived/4.28.1/firefox_98.md) |\n\n"
  },
  {
    "path": "CHANGELOG/archived/4.28.1/chrome_100.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.28.1 20250202 selenium false chrome true\nTagging images for browser chrome, version 4.28.1, build date 20250202, namespace selenium\nSelenium Grid version -> 4.28.1-20250202\nChrome version -> 100.0.4896.127\nShort Chrome version -> 100.0\nChromeDriver version -> 100.0.4896.60\nShort ChromeDriver version -> 100.0\nTagged selenium/node-chrome:100.0.4896.127-chromedriver-100.0.4896.60-grid-4.28.1-20250202\nTagged selenium/standalone-chrome:100.0.4896.127-chromedriver-100.0.4896.60-grid-4.28.1-20250202\nTagged selenium/node-chrome:100.0.4896.127-chromedriver-100.0.4896.60-20250202\nTagged selenium/standalone-chrome:100.0.4896.127-chromedriver-100.0.4896.60-20250202\nTagged selenium/node-chrome:100.0.4896.127-20250202\nTagged selenium/standalone-chrome:100.0.4896.127-20250202\nTagged selenium/node-chrome:100.0-chromedriver-100.0-grid-4.28.1-20250202\nTagged selenium/standalone-chrome:100.0-chromedriver-100.0-grid-4.28.1-20250202\nTagged selenium/node-chrome:100.0-chromedriver-100.0-20250202\nTagged selenium/standalone-chrome:100.0-chromedriver-100.0-20250202\nTagged selenium/node-chrome:100.0-20250202\nTagged selenium/standalone-chrome:100.0-20250202\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.28.1/chrome_101.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.28.1 20250202 selenium false chrome true\nTagging images for browser chrome, version 4.28.1, build date 20250202, namespace selenium\nSelenium Grid version -> 4.28.1-20250202\nChrome version -> 101.0.4951.64\nShort Chrome version -> 101.0\nChromeDriver version -> 101.0.4951.41\nShort ChromeDriver version -> 101.0\nTagged selenium/node-chrome:101.0.4951.64-chromedriver-101.0.4951.41-grid-4.28.1-20250202\nTagged selenium/standalone-chrome:101.0.4951.64-chromedriver-101.0.4951.41-grid-4.28.1-20250202\nTagged selenium/node-chrome:101.0.4951.64-chromedriver-101.0.4951.41-20250202\nTagged selenium/standalone-chrome:101.0.4951.64-chromedriver-101.0.4951.41-20250202\nTagged selenium/node-chrome:101.0.4951.64-20250202\nTagged selenium/standalone-chrome:101.0.4951.64-20250202\nTagged selenium/node-chrome:101.0-chromedriver-101.0-grid-4.28.1-20250202\nTagged selenium/standalone-chrome:101.0-chromedriver-101.0-grid-4.28.1-20250202\nTagged selenium/node-chrome:101.0-chromedriver-101.0-20250202\nTagged selenium/standalone-chrome:101.0-chromedriver-101.0-20250202\nTagged selenium/node-chrome:101.0-20250202\nTagged selenium/standalone-chrome:101.0-20250202\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.28.1/chrome_102.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.28.1 20250202 selenium false chrome true\nTagging images for browser chrome, version 4.28.1, build date 20250202, namespace selenium\nSelenium Grid version -> 4.28.1-20250202\nChrome version -> 102.0.5005.115\nShort Chrome version -> 102.0\nChromeDriver version -> 102.0.5005.61\nShort ChromeDriver version -> 102.0\nTagged selenium/node-chrome:102.0.5005.115-chromedriver-102.0.5005.61-grid-4.28.1-20250202\nTagged selenium/standalone-chrome:102.0.5005.115-chromedriver-102.0.5005.61-grid-4.28.1-20250202\nTagged selenium/node-chrome:102.0.5005.115-chromedriver-102.0.5005.61-20250202\nTagged selenium/standalone-chrome:102.0.5005.115-chromedriver-102.0.5005.61-20250202\nTagged selenium/node-chrome:102.0.5005.115-20250202\nTagged selenium/standalone-chrome:102.0.5005.115-20250202\nTagged selenium/node-chrome:102.0-chromedriver-102.0-grid-4.28.1-20250202\nTagged selenium/standalone-chrome:102.0-chromedriver-102.0-grid-4.28.1-20250202\nTagged selenium/node-chrome:102.0-chromedriver-102.0-20250202\nTagged selenium/standalone-chrome:102.0-chromedriver-102.0-20250202\nTagged selenium/node-chrome:102.0-20250202\nTagged selenium/standalone-chrome:102.0-20250202\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.28.1/chrome_103.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.28.1 20250202 selenium false chrome true\nTagging images for browser chrome, version 4.28.1, build date 20250202, namespace selenium\nSelenium Grid version -> 4.28.1-20250202\nChrome version -> 103.0.5060.134\nShort Chrome version -> 103.0\nChromeDriver version -> 103.0.5060.134\nShort ChromeDriver version -> 103.0\nTagged selenium/node-chrome:103.0.5060.134-chromedriver-103.0.5060.134-grid-4.28.1-20250202\nTagged selenium/standalone-chrome:103.0.5060.134-chromedriver-103.0.5060.134-grid-4.28.1-20250202\nTagged selenium/node-chrome:103.0.5060.134-chromedriver-103.0.5060.134-20250202\nTagged selenium/standalone-chrome:103.0.5060.134-chromedriver-103.0.5060.134-20250202\nTagged selenium/node-chrome:103.0.5060.134-20250202\nTagged selenium/standalone-chrome:103.0.5060.134-20250202\nTagged selenium/node-chrome:103.0-chromedriver-103.0-grid-4.28.1-20250202\nTagged selenium/standalone-chrome:103.0-chromedriver-103.0-grid-4.28.1-20250202\nTagged selenium/node-chrome:103.0-chromedriver-103.0-20250202\nTagged selenium/standalone-chrome:103.0-chromedriver-103.0-20250202\nTagged selenium/node-chrome:103.0-20250202\nTagged selenium/standalone-chrome:103.0-20250202\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.28.1/chrome_104.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.28.1 20250202 selenium false chrome true\nTagging images for browser chrome, version 4.28.1, build date 20250202, namespace selenium\nSelenium Grid version -> 4.28.1-20250202\nChrome version -> 104.0.5112.101\nShort Chrome version -> 104.0\nChromeDriver version -> 104.0.5112.79\nShort ChromeDriver version -> 104.0\nTagged selenium/node-chrome:104.0.5112.101-chromedriver-104.0.5112.79-grid-4.28.1-20250202\nTagged selenium/standalone-chrome:104.0.5112.101-chromedriver-104.0.5112.79-grid-4.28.1-20250202\nTagged selenium/node-chrome:104.0.5112.101-chromedriver-104.0.5112.79-20250202\nTagged selenium/standalone-chrome:104.0.5112.101-chromedriver-104.0.5112.79-20250202\nTagged selenium/node-chrome:104.0.5112.101-20250202\nTagged selenium/standalone-chrome:104.0.5112.101-20250202\nTagged selenium/node-chrome:104.0-chromedriver-104.0-grid-4.28.1-20250202\nTagged selenium/standalone-chrome:104.0-chromedriver-104.0-grid-4.28.1-20250202\nTagged selenium/node-chrome:104.0-chromedriver-104.0-20250202\nTagged selenium/standalone-chrome:104.0-chromedriver-104.0-20250202\nTagged selenium/node-chrome:104.0-20250202\nTagged selenium/standalone-chrome:104.0-20250202\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.28.1/chrome_105.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.28.1 20250202 selenium false chrome true\nTagging images for browser chrome, version 4.28.1, build date 20250202, namespace selenium\nSelenium Grid version -> 4.28.1-20250202\nChrome version -> 105.0.5195.125\nShort Chrome version -> 105.0\nChromeDriver version -> 105.0.5195.52\nShort ChromeDriver version -> 105.0\nTagged selenium/node-chrome:105.0.5195.125-chromedriver-105.0.5195.52-grid-4.28.1-20250202\nTagged selenium/standalone-chrome:105.0.5195.125-chromedriver-105.0.5195.52-grid-4.28.1-20250202\nTagged selenium/node-chrome:105.0.5195.125-chromedriver-105.0.5195.52-20250202\nTagged selenium/standalone-chrome:105.0.5195.125-chromedriver-105.0.5195.52-20250202\nTagged selenium/node-chrome:105.0.5195.125-20250202\nTagged selenium/standalone-chrome:105.0.5195.125-20250202\nTagged selenium/node-chrome:105.0-chromedriver-105.0-grid-4.28.1-20250202\nTagged selenium/standalone-chrome:105.0-chromedriver-105.0-grid-4.28.1-20250202\nTagged selenium/node-chrome:105.0-chromedriver-105.0-20250202\nTagged selenium/standalone-chrome:105.0-chromedriver-105.0-20250202\nTagged selenium/node-chrome:105.0-20250202\nTagged selenium/standalone-chrome:105.0-20250202\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.28.1/chrome_106.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.28.1 20250202 selenium false chrome true\nTagging images for browser chrome, version 4.28.1, build date 20250202, namespace selenium\nSelenium Grid version -> 4.28.1-20250202\nChrome version -> 106.0.5249.119\nShort Chrome version -> 106.0\nChromeDriver version -> 106.0.5249.61\nShort ChromeDriver version -> 106.0\nTagged selenium/node-chrome:106.0.5249.119-chromedriver-106.0.5249.61-grid-4.28.1-20250202\nTagged selenium/standalone-chrome:106.0.5249.119-chromedriver-106.0.5249.61-grid-4.28.1-20250202\nTagged selenium/node-chrome:106.0.5249.119-chromedriver-106.0.5249.61-20250202\nTagged selenium/standalone-chrome:106.0.5249.119-chromedriver-106.0.5249.61-20250202\nTagged selenium/node-chrome:106.0.5249.119-20250202\nTagged selenium/standalone-chrome:106.0.5249.119-20250202\nTagged selenium/node-chrome:106.0-chromedriver-106.0-grid-4.28.1-20250202\nTagged selenium/standalone-chrome:106.0-chromedriver-106.0-grid-4.28.1-20250202\nTagged selenium/node-chrome:106.0-chromedriver-106.0-20250202\nTagged selenium/standalone-chrome:106.0-chromedriver-106.0-20250202\nTagged selenium/node-chrome:106.0-20250202\nTagged selenium/standalone-chrome:106.0-20250202\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.28.1/chrome_107.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.28.1 20250202 selenium false chrome true\nTagging images for browser chrome, version 4.28.1, build date 20250202, namespace selenium\nSelenium Grid version -> 4.28.1-20250202\nChrome version -> 107.0.5304.121\nShort Chrome version -> 107.0\nChromeDriver version -> 107.0.5304.62\nShort ChromeDriver version -> 107.0\nTagged selenium/node-chrome:107.0.5304.121-chromedriver-107.0.5304.62-grid-4.28.1-20250202\nTagged selenium/standalone-chrome:107.0.5304.121-chromedriver-107.0.5304.62-grid-4.28.1-20250202\nTagged selenium/node-chrome:107.0.5304.121-chromedriver-107.0.5304.62-20250202\nTagged selenium/standalone-chrome:107.0.5304.121-chromedriver-107.0.5304.62-20250202\nTagged selenium/node-chrome:107.0.5304.121-20250202\nTagged selenium/standalone-chrome:107.0.5304.121-20250202\nTagged selenium/node-chrome:107.0-chromedriver-107.0-grid-4.28.1-20250202\nTagged selenium/standalone-chrome:107.0-chromedriver-107.0-grid-4.28.1-20250202\nTagged selenium/node-chrome:107.0-chromedriver-107.0-20250202\nTagged selenium/standalone-chrome:107.0-chromedriver-107.0-20250202\nTagged selenium/node-chrome:107.0-20250202\nTagged selenium/standalone-chrome:107.0-20250202\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.28.1/chrome_108.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.28.1 20250202 selenium false chrome true\nTagging images for browser chrome, version 4.28.1, build date 20250202, namespace selenium\nSelenium Grid version -> 4.28.1-20250202\nChrome version -> 108.0.5359.124\nShort Chrome version -> 108.0\nChromeDriver version -> 108.0.5359.71\nShort ChromeDriver version -> 108.0\nTagged selenium/node-chrome:108.0.5359.124-chromedriver-108.0.5359.71-grid-4.28.1-20250202\nTagged selenium/standalone-chrome:108.0.5359.124-chromedriver-108.0.5359.71-grid-4.28.1-20250202\nTagged selenium/node-chrome:108.0.5359.124-chromedriver-108.0.5359.71-20250202\nTagged selenium/standalone-chrome:108.0.5359.124-chromedriver-108.0.5359.71-20250202\nTagged selenium/node-chrome:108.0.5359.124-20250202\nTagged selenium/standalone-chrome:108.0.5359.124-20250202\nTagged selenium/node-chrome:108.0-chromedriver-108.0-grid-4.28.1-20250202\nTagged selenium/standalone-chrome:108.0-chromedriver-108.0-grid-4.28.1-20250202\nTagged selenium/node-chrome:108.0-chromedriver-108.0-20250202\nTagged selenium/standalone-chrome:108.0-chromedriver-108.0-20250202\nTagged selenium/node-chrome:108.0-20250202\nTagged selenium/standalone-chrome:108.0-20250202\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.28.1/chrome_109.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.28.1 20250202 selenium false chrome true\nTagging images for browser chrome, version 4.28.1, build date 20250202, namespace selenium\nSelenium Grid version -> 4.28.1-20250202\nChrome version -> 109.0.5414.119\nShort Chrome version -> 109.0\nChromeDriver version -> 109.0.5414.74\nShort ChromeDriver version -> 109.0\nTagged selenium/node-chrome:109.0.5414.119-chromedriver-109.0.5414.74-grid-4.28.1-20250202\nTagged selenium/standalone-chrome:109.0.5414.119-chromedriver-109.0.5414.74-grid-4.28.1-20250202\nTagged selenium/node-chrome:109.0.5414.119-chromedriver-109.0.5414.74-20250202\nTagged selenium/standalone-chrome:109.0.5414.119-chromedriver-109.0.5414.74-20250202\nTagged selenium/node-chrome:109.0.5414.119-20250202\nTagged selenium/standalone-chrome:109.0.5414.119-20250202\nTagged selenium/node-chrome:109.0-chromedriver-109.0-grid-4.28.1-20250202\nTagged selenium/standalone-chrome:109.0-chromedriver-109.0-grid-4.28.1-20250202\nTagged selenium/node-chrome:109.0-chromedriver-109.0-20250202\nTagged selenium/standalone-chrome:109.0-chromedriver-109.0-20250202\nTagged selenium/node-chrome:109.0-20250202\nTagged selenium/standalone-chrome:109.0-20250202\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.28.1/chrome_110.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.28.1 20250202 selenium false chrome true\nTagging images for browser chrome, version 4.28.1, build date 20250202, namespace selenium\nSelenium Grid version -> 4.28.1-20250202\nChrome version -> 110.0.5481.177\nShort Chrome version -> 110.0\nChromeDriver version -> 110.0.5481.77\nShort ChromeDriver version -> 110.0\nTagged selenium/node-chrome:110.0.5481.177-chromedriver-110.0.5481.77-grid-4.28.1-20250202\nTagged selenium/standalone-chrome:110.0.5481.177-chromedriver-110.0.5481.77-grid-4.28.1-20250202\nTagged selenium/node-chrome:110.0.5481.177-chromedriver-110.0.5481.77-20250202\nTagged selenium/standalone-chrome:110.0.5481.177-chromedriver-110.0.5481.77-20250202\nTagged selenium/node-chrome:110.0.5481.177-20250202\nTagged selenium/standalone-chrome:110.0.5481.177-20250202\nTagged selenium/node-chrome:110.0-chromedriver-110.0-grid-4.28.1-20250202\nTagged selenium/standalone-chrome:110.0-chromedriver-110.0-grid-4.28.1-20250202\nTagged selenium/node-chrome:110.0-chromedriver-110.0-20250202\nTagged selenium/standalone-chrome:110.0-chromedriver-110.0-20250202\nTagged selenium/node-chrome:110.0-20250202\nTagged selenium/standalone-chrome:110.0-20250202\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.28.1/chrome_111.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.28.1 20250202 selenium false chrome true\nTagging images for browser chrome, version 4.28.1, build date 20250202, namespace selenium\nSelenium Grid version -> 4.28.1-20250202\nChrome version -> 111.0.5563.146\nShort Chrome version -> 111.0\nChromeDriver version -> 111.0.5563.64\nShort ChromeDriver version -> 111.0\nTagged selenium/node-chrome:111.0.5563.146-chromedriver-111.0.5563.64-grid-4.28.1-20250202\nTagged selenium/standalone-chrome:111.0.5563.146-chromedriver-111.0.5563.64-grid-4.28.1-20250202\nTagged selenium/node-chrome:111.0.5563.146-chromedriver-111.0.5563.64-20250202\nTagged selenium/standalone-chrome:111.0.5563.146-chromedriver-111.0.5563.64-20250202\nTagged selenium/node-chrome:111.0.5563.146-20250202\nTagged selenium/standalone-chrome:111.0.5563.146-20250202\nTagged selenium/node-chrome:111.0-chromedriver-111.0-grid-4.28.1-20250202\nTagged selenium/standalone-chrome:111.0-chromedriver-111.0-grid-4.28.1-20250202\nTagged selenium/node-chrome:111.0-chromedriver-111.0-20250202\nTagged selenium/standalone-chrome:111.0-chromedriver-111.0-20250202\nTagged selenium/node-chrome:111.0-20250202\nTagged selenium/standalone-chrome:111.0-20250202\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.28.1/chrome_112.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.28.1 20250202 selenium false chrome true\nTagging images for browser chrome, version 4.28.1, build date 20250202, namespace selenium\nSelenium Grid version -> 4.28.1-20250202\nChrome version -> 112.0.5615.165\nShort Chrome version -> 112.0\nChromeDriver version -> 112.0.5615.49\nShort ChromeDriver version -> 112.0\nTagged selenium/node-chrome:112.0.5615.165-chromedriver-112.0.5615.49-grid-4.28.1-20250202\nTagged selenium/standalone-chrome:112.0.5615.165-chromedriver-112.0.5615.49-grid-4.28.1-20250202\nTagged selenium/node-chrome:112.0.5615.165-chromedriver-112.0.5615.49-20250202\nTagged selenium/standalone-chrome:112.0.5615.165-chromedriver-112.0.5615.49-20250202\nTagged selenium/node-chrome:112.0.5615.165-20250202\nTagged selenium/standalone-chrome:112.0.5615.165-20250202\nTagged selenium/node-chrome:112.0-chromedriver-112.0-grid-4.28.1-20250202\nTagged selenium/standalone-chrome:112.0-chromedriver-112.0-grid-4.28.1-20250202\nTagged selenium/node-chrome:112.0-chromedriver-112.0-20250202\nTagged selenium/standalone-chrome:112.0-chromedriver-112.0-20250202\nTagged selenium/node-chrome:112.0-20250202\nTagged selenium/standalone-chrome:112.0-20250202\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.28.1/chrome_113.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.28.1 20250202 selenium false chrome true\nTagging images for browser chrome, version 4.28.1, build date 20250202, namespace selenium\nSelenium Grid version -> 4.28.1-20250202\nChrome version -> 113.0.5672.126\nShort Chrome version -> 113.0\nChromeDriver version -> 113.0.5672.63\nShort ChromeDriver version -> 113.0\nTagged selenium/node-chrome:113.0.5672.126-chromedriver-113.0.5672.63-grid-4.28.1-20250202\nTagged selenium/standalone-chrome:113.0.5672.126-chromedriver-113.0.5672.63-grid-4.28.1-20250202\nTagged selenium/node-chrome:113.0.5672.126-chromedriver-113.0.5672.63-20250202\nTagged selenium/standalone-chrome:113.0.5672.126-chromedriver-113.0.5672.63-20250202\nTagged selenium/node-chrome:113.0.5672.126-20250202\nTagged selenium/standalone-chrome:113.0.5672.126-20250202\nTagged selenium/node-chrome:113.0-chromedriver-113.0-grid-4.28.1-20250202\nTagged selenium/standalone-chrome:113.0-chromedriver-113.0-grid-4.28.1-20250202\nTagged selenium/node-chrome:113.0-chromedriver-113.0-20250202\nTagged selenium/standalone-chrome:113.0-chromedriver-113.0-20250202\nTagged selenium/node-chrome:113.0-20250202\nTagged selenium/standalone-chrome:113.0-20250202\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.28.1/chrome_114.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.28.1 20250202 selenium false chrome true\nTagging images for browser chrome, version 4.28.1, build date 20250202, namespace selenium\nSelenium Grid version -> 4.28.1-20250202\nChrome version -> 114.0.5735.198\nShort Chrome version -> 114.0\nChromeDriver version -> 114.0.5735.90\nShort ChromeDriver version -> 114.0\nTagged selenium/node-chrome:114.0.5735.198-chromedriver-114.0.5735.90-grid-4.28.1-20250202\nTagged selenium/standalone-chrome:114.0.5735.198-chromedriver-114.0.5735.90-grid-4.28.1-20250202\nTagged selenium/node-chrome:114.0.5735.198-chromedriver-114.0.5735.90-20250202\nTagged selenium/standalone-chrome:114.0.5735.198-chromedriver-114.0.5735.90-20250202\nTagged selenium/node-chrome:114.0.5735.198-20250202\nTagged selenium/standalone-chrome:114.0.5735.198-20250202\nTagged selenium/node-chrome:114.0-chromedriver-114.0-grid-4.28.1-20250202\nTagged selenium/standalone-chrome:114.0-chromedriver-114.0-grid-4.28.1-20250202\nTagged selenium/node-chrome:114.0-chromedriver-114.0-20250202\nTagged selenium/standalone-chrome:114.0-chromedriver-114.0-20250202\nTagged selenium/node-chrome:114.0-20250202\nTagged selenium/standalone-chrome:114.0-20250202\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.28.1/chrome_115.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.28.1 20250202 selenium false chrome true\nTagging images for browser chrome, version 4.28.1, build date 20250202, namespace selenium\nSelenium Grid version -> 4.28.1-20250202\nChrome version -> 115.0.5790.170\nShort Chrome version -> 115.0\nChromeDriver version -> 115.0.5790.170\nShort ChromeDriver version -> 115.0\nTagged selenium/node-chrome:115.0.5790.170-chromedriver-115.0.5790.170-grid-4.28.1-20250202\nTagged selenium/standalone-chrome:115.0.5790.170-chromedriver-115.0.5790.170-grid-4.28.1-20250202\nTagged selenium/node-chrome:115.0.5790.170-chromedriver-115.0.5790.170-20250202\nTagged selenium/standalone-chrome:115.0.5790.170-chromedriver-115.0.5790.170-20250202\nTagged selenium/node-chrome:115.0.5790.170-20250202\nTagged selenium/standalone-chrome:115.0.5790.170-20250202\nTagged selenium/node-chrome:115.0-chromedriver-115.0-grid-4.28.1-20250202\nTagged selenium/standalone-chrome:115.0-chromedriver-115.0-grid-4.28.1-20250202\nTagged selenium/node-chrome:115.0-chromedriver-115.0-20250202\nTagged selenium/standalone-chrome:115.0-chromedriver-115.0-20250202\nTagged selenium/node-chrome:115.0-20250202\nTagged selenium/standalone-chrome:115.0-20250202\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.28.1/chrome_116.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.28.1 20250202 selenium false chrome true\nTagging images for browser chrome, version 4.28.1, build date 20250202, namespace selenium\nSelenium Grid version -> 4.28.1-20250202\nChrome version -> 116.0.5845.187\nShort Chrome version -> 116.0\nChromeDriver version -> 116.0.5845.96\nShort ChromeDriver version -> 116.0\nTagged selenium/node-chrome:116.0.5845.187-chromedriver-116.0.5845.96-grid-4.28.1-20250202\nTagged selenium/standalone-chrome:116.0.5845.187-chromedriver-116.0.5845.96-grid-4.28.1-20250202\nTagged selenium/node-chrome:116.0.5845.187-chromedriver-116.0.5845.96-20250202\nTagged selenium/standalone-chrome:116.0.5845.187-chromedriver-116.0.5845.96-20250202\nTagged selenium/node-chrome:116.0.5845.187-20250202\nTagged selenium/standalone-chrome:116.0.5845.187-20250202\nTagged selenium/node-chrome:116.0-chromedriver-116.0-grid-4.28.1-20250202\nTagged selenium/standalone-chrome:116.0-chromedriver-116.0-grid-4.28.1-20250202\nTagged selenium/node-chrome:116.0-chromedriver-116.0-20250202\nTagged selenium/standalone-chrome:116.0-chromedriver-116.0-20250202\nTagged selenium/node-chrome:116.0-20250202\nTagged selenium/standalone-chrome:116.0-20250202\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.28.1/chrome_117.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.28.1 20250202 selenium false chrome true\nTagging images for browser chrome, version 4.28.1, build date 20250202, namespace selenium\nSelenium Grid version -> 4.28.1-20250202\nChrome version -> 117.0.5938.149\nShort Chrome version -> 117.0\nChromeDriver version -> 117.0.5938.149\nShort ChromeDriver version -> 117.0\nTagged selenium/node-chrome:117.0.5938.149-chromedriver-117.0.5938.149-grid-4.28.1-20250202\nTagged selenium/standalone-chrome:117.0.5938.149-chromedriver-117.0.5938.149-grid-4.28.1-20250202\nTagged selenium/node-chrome:117.0.5938.149-chromedriver-117.0.5938.149-20250202\nTagged selenium/standalone-chrome:117.0.5938.149-chromedriver-117.0.5938.149-20250202\nTagged selenium/node-chrome:117.0.5938.149-20250202\nTagged selenium/standalone-chrome:117.0.5938.149-20250202\nTagged selenium/node-chrome:117.0-chromedriver-117.0-grid-4.28.1-20250202\nTagged selenium/standalone-chrome:117.0-chromedriver-117.0-grid-4.28.1-20250202\nTagged selenium/node-chrome:117.0-chromedriver-117.0-20250202\nTagged selenium/standalone-chrome:117.0-chromedriver-117.0-20250202\nTagged selenium/node-chrome:117.0-20250202\nTagged selenium/standalone-chrome:117.0-20250202\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.28.1/chrome_118.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.28.1 20250202 selenium false chrome true\nTagging images for browser chrome, version 4.28.1, build date 20250202, namespace selenium\nSelenium Grid version -> 4.28.1-20250202\nChrome version -> 118.0.5993.117\nShort Chrome version -> 118.0\nChromeDriver version -> 118.0.5993.70\nShort ChromeDriver version -> 118.0\nTagged selenium/node-chrome:118.0.5993.117-chromedriver-118.0.5993.70-grid-4.28.1-20250202\nTagged selenium/standalone-chrome:118.0.5993.117-chromedriver-118.0.5993.70-grid-4.28.1-20250202\nTagged selenium/node-chrome:118.0.5993.117-chromedriver-118.0.5993.70-20250202\nTagged selenium/standalone-chrome:118.0.5993.117-chromedriver-118.0.5993.70-20250202\nTagged selenium/node-chrome:118.0.5993.117-20250202\nTagged selenium/standalone-chrome:118.0.5993.117-20250202\nTagged selenium/node-chrome:118.0-chromedriver-118.0-grid-4.28.1-20250202\nTagged selenium/standalone-chrome:118.0-chromedriver-118.0-grid-4.28.1-20250202\nTagged selenium/node-chrome:118.0-chromedriver-118.0-20250202\nTagged selenium/standalone-chrome:118.0-chromedriver-118.0-20250202\nTagged selenium/node-chrome:118.0-20250202\nTagged selenium/standalone-chrome:118.0-20250202\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.28.1/chrome_119.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.28.1 20250202 selenium false chrome true\nTagging images for browser chrome, version 4.28.1, build date 20250202, namespace selenium\nSelenium Grid version -> 4.28.1-20250202\nChrome version -> 119.0.6045.199\nShort Chrome version -> 119.0\nChromeDriver version -> 119.0.6045.105\nShort ChromeDriver version -> 119.0\nTagged selenium/node-chrome:119.0.6045.199-chromedriver-119.0.6045.105-grid-4.28.1-20250202\nTagged selenium/standalone-chrome:119.0.6045.199-chromedriver-119.0.6045.105-grid-4.28.1-20250202\nTagged selenium/node-chrome:119.0.6045.199-chromedriver-119.0.6045.105-20250202\nTagged selenium/standalone-chrome:119.0.6045.199-chromedriver-119.0.6045.105-20250202\nTagged selenium/node-chrome:119.0.6045.199-20250202\nTagged selenium/standalone-chrome:119.0.6045.199-20250202\nTagged selenium/node-chrome:119.0-chromedriver-119.0-grid-4.28.1-20250202\nTagged selenium/standalone-chrome:119.0-chromedriver-119.0-grid-4.28.1-20250202\nTagged selenium/node-chrome:119.0-chromedriver-119.0-20250202\nTagged selenium/standalone-chrome:119.0-chromedriver-119.0-20250202\nTagged selenium/node-chrome:119.0-20250202\nTagged selenium/standalone-chrome:119.0-20250202\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.28.1/chrome_120.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.28.1 20250202 selenium false chrome true\nTagging images for browser chrome, version 4.28.1, build date 20250202, namespace selenium\nSelenium Grid version -> 4.28.1-20250202\nChrome version -> 120.0.6099.224\nShort Chrome version -> 120.0\nChromeDriver version -> 120.0.6099.109\nShort ChromeDriver version -> 120.0\nTagged selenium/node-chrome:120.0.6099.224-chromedriver-120.0.6099.109-grid-4.28.1-20250202\nTagged selenium/standalone-chrome:120.0.6099.224-chromedriver-120.0.6099.109-grid-4.28.1-20250202\nTagged selenium/node-chrome:120.0.6099.224-chromedriver-120.0.6099.109-20250202\nTagged selenium/standalone-chrome:120.0.6099.224-chromedriver-120.0.6099.109-20250202\nTagged selenium/node-chrome:120.0.6099.224-20250202\nTagged selenium/standalone-chrome:120.0.6099.224-20250202\nTagged selenium/node-chrome:120.0-chromedriver-120.0-grid-4.28.1-20250202\nTagged selenium/standalone-chrome:120.0-chromedriver-120.0-grid-4.28.1-20250202\nTagged selenium/node-chrome:120.0-chromedriver-120.0-20250202\nTagged selenium/standalone-chrome:120.0-chromedriver-120.0-20250202\nTagged selenium/node-chrome:120.0-20250202\nTagged selenium/standalone-chrome:120.0-20250202\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.28.1/chrome_121.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.28.1 20250202 selenium false chrome true\nTagging images for browser chrome, version 4.28.1, build date 20250202, namespace selenium\nSelenium Grid version -> 4.28.1-20250202\nChrome version -> 121.0.6167.184\nShort Chrome version -> 121.0\nChromeDriver version -> 121.0.6167.184\nShort ChromeDriver version -> 121.0\nTagged selenium/node-chrome:121.0.6167.184-chromedriver-121.0.6167.184-grid-4.28.1-20250202\nTagged selenium/standalone-chrome:121.0.6167.184-chromedriver-121.0.6167.184-grid-4.28.1-20250202\nTagged selenium/node-chrome:121.0.6167.184-chromedriver-121.0.6167.184-20250202\nTagged selenium/standalone-chrome:121.0.6167.184-chromedriver-121.0.6167.184-20250202\nTagged selenium/node-chrome:121.0.6167.184-20250202\nTagged selenium/standalone-chrome:121.0.6167.184-20250202\nTagged selenium/node-chrome:121.0-chromedriver-121.0-grid-4.28.1-20250202\nTagged selenium/standalone-chrome:121.0-chromedriver-121.0-grid-4.28.1-20250202\nTagged selenium/node-chrome:121.0-chromedriver-121.0-20250202\nTagged selenium/standalone-chrome:121.0-chromedriver-121.0-20250202\nTagged selenium/node-chrome:121.0-20250202\nTagged selenium/standalone-chrome:121.0-20250202\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.28.1/chrome_122.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.28.1 20250202 selenium false chrome true\nTagging images for browser chrome, version 4.28.1, build date 20250202, namespace selenium\nSelenium Grid version -> 4.28.1-20250202\nChrome version -> 122.0.6261.128\nShort Chrome version -> 122.0\nChromeDriver version -> 122.0.6261.128\nShort ChromeDriver version -> 122.0\nTagged selenium/node-chrome:122.0.6261.128-chromedriver-122.0.6261.128-grid-4.28.1-20250202\nTagged selenium/standalone-chrome:122.0.6261.128-chromedriver-122.0.6261.128-grid-4.28.1-20250202\nTagged selenium/node-chrome:122.0.6261.128-chromedriver-122.0.6261.128-20250202\nTagged selenium/standalone-chrome:122.0.6261.128-chromedriver-122.0.6261.128-20250202\nTagged selenium/node-chrome:122.0.6261.128-20250202\nTagged selenium/standalone-chrome:122.0.6261.128-20250202\nTagged selenium/node-chrome:122.0-chromedriver-122.0-grid-4.28.1-20250202\nTagged selenium/standalone-chrome:122.0-chromedriver-122.0-grid-4.28.1-20250202\nTagged selenium/node-chrome:122.0-chromedriver-122.0-20250202\nTagged selenium/standalone-chrome:122.0-chromedriver-122.0-20250202\nTagged selenium/node-chrome:122.0-20250202\nTagged selenium/standalone-chrome:122.0-20250202\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.28.1/chrome_123.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.28.1 20250202 selenium false chrome true\nTagging images for browser chrome, version 4.28.1, build date 20250202, namespace selenium\nSelenium Grid version -> 4.28.1-20250202\nChrome version -> 123.0.6312.122\nShort Chrome version -> 123.0\nChromeDriver version -> 123.0.6312.122\nShort ChromeDriver version -> 123.0\nTagged selenium/node-chrome:123.0.6312.122-chromedriver-123.0.6312.122-grid-4.28.1-20250202\nTagged selenium/standalone-chrome:123.0.6312.122-chromedriver-123.0.6312.122-grid-4.28.1-20250202\nTagged selenium/node-chrome:123.0.6312.122-chromedriver-123.0.6312.122-20250202\nTagged selenium/standalone-chrome:123.0.6312.122-chromedriver-123.0.6312.122-20250202\nTagged selenium/node-chrome:123.0.6312.122-20250202\nTagged selenium/standalone-chrome:123.0.6312.122-20250202\nTagged selenium/node-chrome:123.0-chromedriver-123.0-grid-4.28.1-20250202\nTagged selenium/standalone-chrome:123.0-chromedriver-123.0-grid-4.28.1-20250202\nTagged selenium/node-chrome:123.0-chromedriver-123.0-20250202\nTagged selenium/standalone-chrome:123.0-chromedriver-123.0-20250202\nTagged selenium/node-chrome:123.0-20250202\nTagged selenium/standalone-chrome:123.0-20250202\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.28.1/chrome_124.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.28.1 20250202 selenium false chrome true\nTagging images for browser chrome, version 4.28.1, build date 20250202, namespace selenium\nSelenium Grid version -> 4.28.1-20250202\nChrome version -> 124.0.6367.207\nShort Chrome version -> 124.0\nChromeDriver version -> 124.0.6367.207\nShort ChromeDriver version -> 124.0\nTagged selenium/node-chrome:124.0.6367.207-chromedriver-124.0.6367.207-grid-4.28.1-20250202\nTagged selenium/standalone-chrome:124.0.6367.207-chromedriver-124.0.6367.207-grid-4.28.1-20250202\nTagged selenium/node-chrome:124.0.6367.207-chromedriver-124.0.6367.207-20250202\nTagged selenium/standalone-chrome:124.0.6367.207-chromedriver-124.0.6367.207-20250202\nTagged selenium/node-chrome:124.0.6367.207-20250202\nTagged selenium/standalone-chrome:124.0.6367.207-20250202\nTagged selenium/node-chrome:124.0-chromedriver-124.0-grid-4.28.1-20250202\nTagged selenium/standalone-chrome:124.0-chromedriver-124.0-grid-4.28.1-20250202\nTagged selenium/node-chrome:124.0-chromedriver-124.0-20250202\nTagged selenium/standalone-chrome:124.0-chromedriver-124.0-20250202\nTagged selenium/node-chrome:124.0-20250202\nTagged selenium/standalone-chrome:124.0-20250202\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.28.1/chrome_125.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.28.1 20250202 selenium false chrome true\nTagging images for browser chrome, version 4.28.1, build date 20250202, namespace selenium\nSelenium Grid version -> 4.28.1-20250202\nChrome version -> 125.0.6422.141\nShort Chrome version -> 125.0\nChromeDriver version -> 125.0.6422.141\nShort ChromeDriver version -> 125.0\nTagged selenium/node-chrome:125.0.6422.141-chromedriver-125.0.6422.141-grid-4.28.1-20250202\nTagged selenium/standalone-chrome:125.0.6422.141-chromedriver-125.0.6422.141-grid-4.28.1-20250202\nTagged selenium/node-chrome:125.0.6422.141-chromedriver-125.0.6422.141-20250202\nTagged selenium/standalone-chrome:125.0.6422.141-chromedriver-125.0.6422.141-20250202\nTagged selenium/node-chrome:125.0.6422.141-20250202\nTagged selenium/standalone-chrome:125.0.6422.141-20250202\nTagged selenium/node-chrome:125.0-chromedriver-125.0-grid-4.28.1-20250202\nTagged selenium/standalone-chrome:125.0-chromedriver-125.0-grid-4.28.1-20250202\nTagged selenium/node-chrome:125.0-chromedriver-125.0-20250202\nTagged selenium/standalone-chrome:125.0-chromedriver-125.0-20250202\nTagged selenium/node-chrome:125.0-20250202\nTagged selenium/standalone-chrome:125.0-20250202\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.28.1/chrome_126.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.28.1 20250202 selenium false chrome true\nTagging images for browser chrome, version 4.28.1, build date 20250202, namespace selenium\nSelenium Grid version -> 4.28.1-20250202\nChrome version -> 126.0.6478.182\nShort Chrome version -> 126.0\nChromeDriver version -> 126.0.6478.182\nShort ChromeDriver version -> 126.0\nTagged selenium/node-chrome:126.0.6478.182-chromedriver-126.0.6478.182-grid-4.28.1-20250202\nTagged selenium/standalone-chrome:126.0.6478.182-chromedriver-126.0.6478.182-grid-4.28.1-20250202\nTagged selenium/node-chrome:126.0.6478.182-chromedriver-126.0.6478.182-20250202\nTagged selenium/standalone-chrome:126.0.6478.182-chromedriver-126.0.6478.182-20250202\nTagged selenium/node-chrome:126.0.6478.182-20250202\nTagged selenium/standalone-chrome:126.0.6478.182-20250202\nTagged selenium/node-chrome:126.0-chromedriver-126.0-grid-4.28.1-20250202\nTagged selenium/standalone-chrome:126.0-chromedriver-126.0-grid-4.28.1-20250202\nTagged selenium/node-chrome:126.0-chromedriver-126.0-20250202\nTagged selenium/standalone-chrome:126.0-chromedriver-126.0-20250202\nTagged selenium/node-chrome:126.0-20250202\nTagged selenium/standalone-chrome:126.0-20250202\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.28.1/chrome_127.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.28.1 20250202 selenium false chrome true\nTagging images for browser chrome, version 4.28.1, build date 20250202, namespace selenium\nSelenium Grid version -> 4.28.1-20250202\nChrome version -> 127.0.6533.119\nShort Chrome version -> 127.0\nChromeDriver version -> 127.0.6533.119\nShort ChromeDriver version -> 127.0\nTagged selenium/node-chrome:127.0.6533.119-chromedriver-127.0.6533.119-grid-4.28.1-20250202\nTagged selenium/standalone-chrome:127.0.6533.119-chromedriver-127.0.6533.119-grid-4.28.1-20250202\nTagged selenium/node-chrome:127.0.6533.119-chromedriver-127.0.6533.119-20250202\nTagged selenium/standalone-chrome:127.0.6533.119-chromedriver-127.0.6533.119-20250202\nTagged selenium/node-chrome:127.0.6533.119-20250202\nTagged selenium/standalone-chrome:127.0.6533.119-20250202\nTagged selenium/node-chrome:127.0-chromedriver-127.0-grid-4.28.1-20250202\nTagged selenium/standalone-chrome:127.0-chromedriver-127.0-grid-4.28.1-20250202\nTagged selenium/node-chrome:127.0-chromedriver-127.0-20250202\nTagged selenium/standalone-chrome:127.0-chromedriver-127.0-20250202\nTagged selenium/node-chrome:127.0-20250202\nTagged selenium/standalone-chrome:127.0-20250202\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.28.1/chrome_128.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.28.1 20250202 selenium false chrome true\nTagging images for browser chrome, version 4.28.1, build date 20250202, namespace selenium\nSelenium Grid version -> 4.28.1-20250202\nChrome version -> 128.0.6613.137\nShort Chrome version -> 128.0\nChromeDriver version -> 128.0.6613.137\nShort ChromeDriver version -> 128.0\nTagged selenium/node-chrome:128.0.6613.137-chromedriver-128.0.6613.137-grid-4.28.1-20250202\nTagged selenium/standalone-chrome:128.0.6613.137-chromedriver-128.0.6613.137-grid-4.28.1-20250202\nTagged selenium/node-chrome:128.0.6613.137-chromedriver-128.0.6613.137-20250202\nTagged selenium/standalone-chrome:128.0.6613.137-chromedriver-128.0.6613.137-20250202\nTagged selenium/node-chrome:128.0.6613.137-20250202\nTagged selenium/standalone-chrome:128.0.6613.137-20250202\nTagged selenium/node-chrome:128.0-chromedriver-128.0-grid-4.28.1-20250202\nTagged selenium/standalone-chrome:128.0-chromedriver-128.0-grid-4.28.1-20250202\nTagged selenium/node-chrome:128.0-chromedriver-128.0-20250202\nTagged selenium/standalone-chrome:128.0-chromedriver-128.0-20250202\nTagged selenium/node-chrome:128.0-20250202\nTagged selenium/standalone-chrome:128.0-20250202\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.28.1/chrome_129.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.28.1 20250202 selenium false chrome true\nTagging images for browser chrome, version 4.28.1, build date 20250202, namespace selenium\nSelenium Grid version -> 4.28.1-20250202\nChrome version -> 129.0.6668.100\nShort Chrome version -> 129.0\nChromeDriver version -> 129.0.6668.100\nShort ChromeDriver version -> 129.0\nTagged selenium/node-chrome:129.0.6668.100-chromedriver-129.0.6668.100-grid-4.28.1-20250202\nTagged selenium/standalone-chrome:129.0.6668.100-chromedriver-129.0.6668.100-grid-4.28.1-20250202\nTagged selenium/node-chrome:129.0.6668.100-chromedriver-129.0.6668.100-20250202\nTagged selenium/standalone-chrome:129.0.6668.100-chromedriver-129.0.6668.100-20250202\nTagged selenium/node-chrome:129.0.6668.100-20250202\nTagged selenium/standalone-chrome:129.0.6668.100-20250202\nTagged selenium/node-chrome:129.0-chromedriver-129.0-grid-4.28.1-20250202\nTagged selenium/standalone-chrome:129.0-chromedriver-129.0-grid-4.28.1-20250202\nTagged selenium/node-chrome:129.0-chromedriver-129.0-20250202\nTagged selenium/standalone-chrome:129.0-chromedriver-129.0-20250202\nTagged selenium/node-chrome:129.0-20250202\nTagged selenium/standalone-chrome:129.0-20250202\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.28.1/chrome_130.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.28.1 20250202 selenium false chrome true\nTagging images for browser chrome, version 4.28.1, build date 20250202, namespace selenium\nSelenium Grid version -> 4.28.1-20250202\nChrome version -> 130.0.6723.116\nShort Chrome version -> 130.0\nChromeDriver version -> 130.0.6723.116\nShort ChromeDriver version -> 130.0\nTagged selenium/node-chrome:130.0.6723.116-chromedriver-130.0.6723.116-grid-4.28.1-20250202\nTagged selenium/standalone-chrome:130.0.6723.116-chromedriver-130.0.6723.116-grid-4.28.1-20250202\nTagged selenium/node-chrome:130.0.6723.116-chromedriver-130.0.6723.116-20250202\nTagged selenium/standalone-chrome:130.0.6723.116-chromedriver-130.0.6723.116-20250202\nTagged selenium/node-chrome:130.0.6723.116-20250202\nTagged selenium/standalone-chrome:130.0.6723.116-20250202\nTagged selenium/node-chrome:130.0-chromedriver-130.0-grid-4.28.1-20250202\nTagged selenium/standalone-chrome:130.0-chromedriver-130.0-grid-4.28.1-20250202\nTagged selenium/node-chrome:130.0-chromedriver-130.0-20250202\nTagged selenium/standalone-chrome:130.0-chromedriver-130.0-20250202\nTagged selenium/node-chrome:130.0-20250202\nTagged selenium/standalone-chrome:130.0-20250202\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.28.1/chrome_131.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.28.1 20250202 selenium false chrome true\nTagging images for browser chrome, version 4.28.1, build date 20250202, namespace selenium\nSelenium Grid version -> 4.28.1-20250202\nChrome version -> 131.0.6778.264\nShort Chrome version -> 131.0\nChromeDriver version -> 131.0.6778.264\nShort ChromeDriver version -> 131.0\nTagged selenium/node-chrome:131.0.6778.264-chromedriver-131.0.6778.264-grid-4.28.1-20250202\nTagged selenium/standalone-chrome:131.0.6778.264-chromedriver-131.0.6778.264-grid-4.28.1-20250202\nTagged selenium/node-chrome:131.0.6778.264-chromedriver-131.0.6778.264-20250202\nTagged selenium/standalone-chrome:131.0.6778.264-chromedriver-131.0.6778.264-20250202\nTagged selenium/node-chrome:131.0.6778.264-20250202\nTagged selenium/standalone-chrome:131.0.6778.264-20250202\nTagged selenium/node-chrome:131.0-chromedriver-131.0-grid-4.28.1-20250202\nTagged selenium/standalone-chrome:131.0-chromedriver-131.0-grid-4.28.1-20250202\nTagged selenium/node-chrome:131.0-chromedriver-131.0-20250202\nTagged selenium/standalone-chrome:131.0-chromedriver-131.0-20250202\nTagged selenium/node-chrome:131.0-20250202\nTagged selenium/standalone-chrome:131.0-20250202\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.28.1/chrome_132.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.28.1 20250202 selenium false chrome true\nTagging images for browser chrome, version 4.28.1, build date 20250202, namespace selenium\nSelenium Grid version -> 4.28.1-20250202\nChrome version -> 132.0.6834.159\nShort Chrome version -> 132.0\nChromeDriver version -> 132.0.6834.159\nShort ChromeDriver version -> 132.0\nTagged selenium/node-chrome:132.0.6834.159-chromedriver-132.0.6834.159-grid-4.28.1-20250202\nTagged selenium/standalone-chrome:132.0.6834.159-chromedriver-132.0.6834.159-grid-4.28.1-20250202\nTagged selenium/node-chrome:132.0.6834.159-chromedriver-132.0.6834.159-20250202\nTagged selenium/standalone-chrome:132.0.6834.159-chromedriver-132.0.6834.159-20250202\nTagged selenium/node-chrome:132.0.6834.159-20250202\nTagged selenium/standalone-chrome:132.0.6834.159-20250202\nTagged selenium/node-chrome:132.0-chromedriver-132.0-grid-4.28.1-20250202\nTagged selenium/standalone-chrome:132.0-chromedriver-132.0-grid-4.28.1-20250202\nTagged selenium/node-chrome:132.0-chromedriver-132.0-20250202\nTagged selenium/standalone-chrome:132.0-chromedriver-132.0-20250202\nTagged selenium/node-chrome:132.0-20250202\nTagged selenium/standalone-chrome:132.0-20250202\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.28.1/chrome_97.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.28.1 20250202 selenium false chrome true\nTagging images for browser chrome, version 4.28.1, build date 20250202, namespace selenium\nSelenium Grid version -> 4.28.1-20250202\nChrome version -> 97.0.4692.99\nShort Chrome version -> 97.0\nChromeDriver version -> 97.0.4692.71\nShort ChromeDriver version -> 97.0\nTagged selenium/node-chrome:97.0.4692.99-chromedriver-97.0.4692.71-grid-4.28.1-20250202\nTagged selenium/standalone-chrome:97.0.4692.99-chromedriver-97.0.4692.71-grid-4.28.1-20250202\nTagged selenium/node-chrome:97.0.4692.99-chromedriver-97.0.4692.71-20250202\nTagged selenium/standalone-chrome:97.0.4692.99-chromedriver-97.0.4692.71-20250202\nTagged selenium/node-chrome:97.0.4692.99-20250202\nTagged selenium/standalone-chrome:97.0.4692.99-20250202\nTagged selenium/node-chrome:97.0-chromedriver-97.0-grid-4.28.1-20250202\nTagged selenium/standalone-chrome:97.0-chromedriver-97.0-grid-4.28.1-20250202\nTagged selenium/node-chrome:97.0-chromedriver-97.0-20250202\nTagged selenium/standalone-chrome:97.0-chromedriver-97.0-20250202\nTagged selenium/node-chrome:97.0-20250202\nTagged selenium/standalone-chrome:97.0-20250202\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.28.1/chrome_98.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.28.1 20250202 selenium false chrome true\nTagging images for browser chrome, version 4.28.1, build date 20250202, namespace selenium\nSelenium Grid version -> 4.28.1-20250202\nChrome version -> 98.0.4758.102\nShort Chrome version -> 98.0\nChromeDriver version -> 98.0.4758.102\nShort ChromeDriver version -> 98.0\nTagged selenium/node-chrome:98.0.4758.102-chromedriver-98.0.4758.102-grid-4.28.1-20250202\nTagged selenium/standalone-chrome:98.0.4758.102-chromedriver-98.0.4758.102-grid-4.28.1-20250202\nTagged selenium/node-chrome:98.0.4758.102-chromedriver-98.0.4758.102-20250202\nTagged selenium/standalone-chrome:98.0.4758.102-chromedriver-98.0.4758.102-20250202\nTagged selenium/node-chrome:98.0.4758.102-20250202\nTagged selenium/standalone-chrome:98.0.4758.102-20250202\nTagged selenium/node-chrome:98.0-chromedriver-98.0-grid-4.28.1-20250202\nTagged selenium/standalone-chrome:98.0-chromedriver-98.0-grid-4.28.1-20250202\nTagged selenium/node-chrome:98.0-chromedriver-98.0-20250202\nTagged selenium/standalone-chrome:98.0-chromedriver-98.0-20250202\nTagged selenium/node-chrome:98.0-20250202\nTagged selenium/standalone-chrome:98.0-20250202\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.28.1/chrome_99.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.28.1 20250202 selenium false chrome true\nTagging images for browser chrome, version 4.28.1, build date 20250202, namespace selenium\nSelenium Grid version -> 4.28.1-20250202\nChrome version -> 99.0.4844.84\nShort Chrome version -> 99.0\nChromeDriver version -> 99.0.4844.51\nShort ChromeDriver version -> 99.0\nTagged selenium/node-chrome:99.0.4844.84-chromedriver-99.0.4844.51-grid-4.28.1-20250202\nTagged selenium/standalone-chrome:99.0.4844.84-chromedriver-99.0.4844.51-grid-4.28.1-20250202\nTagged selenium/node-chrome:99.0.4844.84-chromedriver-99.0.4844.51-20250202\nTagged selenium/standalone-chrome:99.0.4844.84-chromedriver-99.0.4844.51-20250202\nTagged selenium/node-chrome:99.0.4844.84-20250202\nTagged selenium/standalone-chrome:99.0.4844.84-20250202\nTagged selenium/node-chrome:99.0-chromedriver-99.0-grid-4.28.1-20250202\nTagged selenium/standalone-chrome:99.0-chromedriver-99.0-grid-4.28.1-20250202\nTagged selenium/node-chrome:99.0-chromedriver-99.0-20250202\nTagged selenium/standalone-chrome:99.0-chromedriver-99.0-20250202\nTagged selenium/node-chrome:99.0-20250202\nTagged selenium/standalone-chrome:99.0-20250202\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.28.1/edge_114.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.28.1 20250202 selenium false edge true\nTagging images for browser edge, version 4.28.1, build date 20250202, namespace selenium\nSelenium Grid version -> 4.28.1-20250202\nEdge version -> 114.0.1823.82\nShort Edge version -> 114.0\nEdgeDriver version -> 114.0.1823.82\nShort EdgeDriver version -> 114.0\nTagged selenium/node-edge:114.0.1823.82-edgedriver-114.0.1823.82-grid-4.28.1-20250202\nTagged selenium/standalone-edge:114.0.1823.82-edgedriver-114.0.1823.82-grid-4.28.1-20250202\nTagged selenium/node-edge:114.0.1823.82-edgedriver-114.0.1823.82-20250202\nTagged selenium/standalone-edge:114.0.1823.82-edgedriver-114.0.1823.82-20250202\nTagged selenium/node-edge:114.0.1823.82-20250202\nTagged selenium/standalone-edge:114.0.1823.82-20250202\nTagged selenium/node-edge:114.0-edgedriver-114.0-grid-4.28.1-20250202\nTagged selenium/standalone-edge:114.0-edgedriver-114.0-grid-4.28.1-20250202\nTagged selenium/node-edge:114.0-edgedriver-114.0-20250202\nTagged selenium/standalone-edge:114.0-edgedriver-114.0-20250202\nTagged selenium/node-edge:114.0-20250202\nTagged selenium/standalone-edge:114.0-20250202\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.28.1/edge_115.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.28.1 20250202 selenium false edge true\nTagging images for browser edge, version 4.28.1, build date 20250202, namespace selenium\nSelenium Grid version -> 4.28.1-20250202\nEdge version -> 115.0.1901.203\nShort Edge version -> 115.0\nEdgeDriver version -> 115.0.1901.203\nShort EdgeDriver version -> 115.0\nTagged selenium/node-edge:115.0.1901.203-edgedriver-115.0.1901.203-grid-4.28.1-20250202\nTagged selenium/standalone-edge:115.0.1901.203-edgedriver-115.0.1901.203-grid-4.28.1-20250202\nTagged selenium/node-edge:115.0.1901.203-edgedriver-115.0.1901.203-20250202\nTagged selenium/standalone-edge:115.0.1901.203-edgedriver-115.0.1901.203-20250202\nTagged selenium/node-edge:115.0.1901.203-20250202\nTagged selenium/standalone-edge:115.0.1901.203-20250202\nTagged selenium/node-edge:115.0-edgedriver-115.0-grid-4.28.1-20250202\nTagged selenium/standalone-edge:115.0-edgedriver-115.0-grid-4.28.1-20250202\nTagged selenium/node-edge:115.0-edgedriver-115.0-20250202\nTagged selenium/standalone-edge:115.0-edgedriver-115.0-20250202\nTagged selenium/node-edge:115.0-20250202\nTagged selenium/standalone-edge:115.0-20250202\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.28.1/edge_116.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.28.1 20250202 selenium false edge true\nTagging images for browser edge, version 4.28.1, build date 20250202, namespace selenium\nSelenium Grid version -> 4.28.1-20250202\nEdge version -> 116.0.1938.81\nShort Edge version -> 116.0\nEdgeDriver version -> 116.0.1938.81\nShort EdgeDriver version -> 116.0\nTagged selenium/node-edge:116.0.1938.81-edgedriver-116.0.1938.81-grid-4.28.1-20250202\nTagged selenium/standalone-edge:116.0.1938.81-edgedriver-116.0.1938.81-grid-4.28.1-20250202\nTagged selenium/node-edge:116.0.1938.81-edgedriver-116.0.1938.81-20250202\nTagged selenium/standalone-edge:116.0.1938.81-edgedriver-116.0.1938.81-20250202\nTagged selenium/node-edge:116.0.1938.81-20250202\nTagged selenium/standalone-edge:116.0.1938.81-20250202\nTagged selenium/node-edge:116.0-edgedriver-116.0-grid-4.28.1-20250202\nTagged selenium/standalone-edge:116.0-edgedriver-116.0-grid-4.28.1-20250202\nTagged selenium/node-edge:116.0-edgedriver-116.0-20250202\nTagged selenium/standalone-edge:116.0-edgedriver-116.0-20250202\nTagged selenium/node-edge:116.0-20250202\nTagged selenium/standalone-edge:116.0-20250202\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.28.1/edge_117.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.28.1 20250202 selenium false edge true\nTagging images for browser edge, version 4.28.1, build date 20250202, namespace selenium\nSelenium Grid version -> 4.28.1-20250202\nEdge version -> 117.0.2045.55\nShort Edge version -> 117.0\nEdgeDriver version -> 117.0.2045.55\nShort EdgeDriver version -> 117.0\nTagged selenium/node-edge:117.0.2045.55-edgedriver-117.0.2045.55-grid-4.28.1-20250202\nTagged selenium/standalone-edge:117.0.2045.55-edgedriver-117.0.2045.55-grid-4.28.1-20250202\nTagged selenium/node-edge:117.0.2045.55-edgedriver-117.0.2045.55-20250202\nTagged selenium/standalone-edge:117.0.2045.55-edgedriver-117.0.2045.55-20250202\nTagged selenium/node-edge:117.0.2045.55-20250202\nTagged selenium/standalone-edge:117.0.2045.55-20250202\nTagged selenium/node-edge:117.0-edgedriver-117.0-grid-4.28.1-20250202\nTagged selenium/standalone-edge:117.0-edgedriver-117.0-grid-4.28.1-20250202\nTagged selenium/node-edge:117.0-edgedriver-117.0-20250202\nTagged selenium/standalone-edge:117.0-edgedriver-117.0-20250202\nTagged selenium/node-edge:117.0-20250202\nTagged selenium/standalone-edge:117.0-20250202\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.28.1/edge_118.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.28.1 20250202 selenium false edge true\nTagging images for browser edge, version 4.28.1, build date 20250202, namespace selenium\nSelenium Grid version -> 4.28.1-20250202\nEdge version -> 118.0.2088.76\nShort Edge version -> 118.0\nEdgeDriver version -> 118.0.2088.76\nShort EdgeDriver version -> 118.0\nTagged selenium/node-edge:118.0.2088.76-edgedriver-118.0.2088.76-grid-4.28.1-20250202\nTagged selenium/standalone-edge:118.0.2088.76-edgedriver-118.0.2088.76-grid-4.28.1-20250202\nTagged selenium/node-edge:118.0.2088.76-edgedriver-118.0.2088.76-20250202\nTagged selenium/standalone-edge:118.0.2088.76-edgedriver-118.0.2088.76-20250202\nTagged selenium/node-edge:118.0.2088.76-20250202\nTagged selenium/standalone-edge:118.0.2088.76-20250202\nTagged selenium/node-edge:118.0-edgedriver-118.0-grid-4.28.1-20250202\nTagged selenium/standalone-edge:118.0-edgedriver-118.0-grid-4.28.1-20250202\nTagged selenium/node-edge:118.0-edgedriver-118.0-20250202\nTagged selenium/standalone-edge:118.0-edgedriver-118.0-20250202\nTagged selenium/node-edge:118.0-20250202\nTagged selenium/standalone-edge:118.0-20250202\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.28.1/edge_119.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.28.1 20250202 selenium false edge true\nTagging images for browser edge, version 4.28.1, build date 20250202, namespace selenium\nSelenium Grid version -> 4.28.1-20250202\nEdge version -> 119.0.2151.97\nShort Edge version -> 119.0\nEdgeDriver version -> 119.0.2151.97\nShort EdgeDriver version -> 119.0\nTagged selenium/node-edge:119.0.2151.97-edgedriver-119.0.2151.97-grid-4.28.1-20250202\nTagged selenium/standalone-edge:119.0.2151.97-edgedriver-119.0.2151.97-grid-4.28.1-20250202\nTagged selenium/node-edge:119.0.2151.97-edgedriver-119.0.2151.97-20250202\nTagged selenium/standalone-edge:119.0.2151.97-edgedriver-119.0.2151.97-20250202\nTagged selenium/node-edge:119.0.2151.97-20250202\nTagged selenium/standalone-edge:119.0.2151.97-20250202\nTagged selenium/node-edge:119.0-edgedriver-119.0-grid-4.28.1-20250202\nTagged selenium/standalone-edge:119.0-edgedriver-119.0-grid-4.28.1-20250202\nTagged selenium/node-edge:119.0-edgedriver-119.0-20250202\nTagged selenium/standalone-edge:119.0-edgedriver-119.0-20250202\nTagged selenium/node-edge:119.0-20250202\nTagged selenium/standalone-edge:119.0-20250202\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.28.1/edge_120.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.28.1 20250202 selenium false edge true\nTagging images for browser edge, version 4.28.1, build date 20250202, namespace selenium\nSelenium Grid version -> 4.28.1-20250202\nEdge version -> 120.0.2210.91\nShort Edge version -> 120.0\nEdgeDriver version -> 120.0.2210.144\nShort EdgeDriver version -> 120.0\nTagged selenium/node-edge:120.0.2210.91-edgedriver-120.0.2210.144-grid-4.28.1-20250202\nTagged selenium/standalone-edge:120.0.2210.91-edgedriver-120.0.2210.144-grid-4.28.1-20250202\nTagged selenium/node-edge:120.0.2210.91-edgedriver-120.0.2210.144-20250202\nTagged selenium/standalone-edge:120.0.2210.91-edgedriver-120.0.2210.144-20250202\nTagged selenium/node-edge:120.0.2210.91-20250202\nTagged selenium/standalone-edge:120.0.2210.91-20250202\nTagged selenium/node-edge:120.0-edgedriver-120.0-grid-4.28.1-20250202\nTagged selenium/standalone-edge:120.0-edgedriver-120.0-grid-4.28.1-20250202\nTagged selenium/node-edge:120.0-edgedriver-120.0-20250202\nTagged selenium/standalone-edge:120.0-edgedriver-120.0-20250202\nTagged selenium/node-edge:120.0-20250202\nTagged selenium/standalone-edge:120.0-20250202\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.28.1/edge_121.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.28.1 20250202 selenium false edge true\nTagging images for browser edge, version 4.28.1, build date 20250202, namespace selenium\nSelenium Grid version -> 4.28.1-20250202\nEdge version -> 121.0.2277.98\nShort Edge version -> 121.0\nEdgeDriver version -> 121.0.2277.128\nShort EdgeDriver version -> 121.0\nTagged selenium/node-edge:121.0.2277.98-edgedriver-121.0.2277.128-grid-4.28.1-20250202\nTagged selenium/standalone-edge:121.0.2277.98-edgedriver-121.0.2277.128-grid-4.28.1-20250202\nTagged selenium/node-edge:121.0.2277.98-edgedriver-121.0.2277.128-20250202\nTagged selenium/standalone-edge:121.0.2277.98-edgedriver-121.0.2277.128-20250202\nTagged selenium/node-edge:121.0.2277.98-20250202\nTagged selenium/standalone-edge:121.0.2277.98-20250202\nTagged selenium/node-edge:121.0-edgedriver-121.0-grid-4.28.1-20250202\nTagged selenium/standalone-edge:121.0-edgedriver-121.0-grid-4.28.1-20250202\nTagged selenium/node-edge:121.0-edgedriver-121.0-20250202\nTagged selenium/standalone-edge:121.0-edgedriver-121.0-20250202\nTagged selenium/node-edge:121.0-20250202\nTagged selenium/standalone-edge:121.0-20250202\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.28.1/edge_122.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.28.1 20250202 selenium false edge true\nTagging images for browser edge, version 4.28.1, build date 20250202, namespace selenium\nSelenium Grid version -> 4.28.1-20250202\nEdge version -> 122.0.2365.92\nShort Edge version -> 122.0\nEdgeDriver version -> 122.0.2365.92\nShort EdgeDriver version -> 122.0\nTagged selenium/node-edge:122.0.2365.92-edgedriver-122.0.2365.92-grid-4.28.1-20250202\nTagged selenium/standalone-edge:122.0.2365.92-edgedriver-122.0.2365.92-grid-4.28.1-20250202\nTagged selenium/node-edge:122.0.2365.92-edgedriver-122.0.2365.92-20250202\nTagged selenium/standalone-edge:122.0.2365.92-edgedriver-122.0.2365.92-20250202\nTagged selenium/node-edge:122.0.2365.92-20250202\nTagged selenium/standalone-edge:122.0.2365.92-20250202\nTagged selenium/node-edge:122.0-edgedriver-122.0-grid-4.28.1-20250202\nTagged selenium/standalone-edge:122.0-edgedriver-122.0-grid-4.28.1-20250202\nTagged selenium/node-edge:122.0-edgedriver-122.0-20250202\nTagged selenium/standalone-edge:122.0-edgedriver-122.0-20250202\nTagged selenium/node-edge:122.0-20250202\nTagged selenium/standalone-edge:122.0-20250202\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.28.1/edge_123.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.28.1 20250202 selenium false edge true\nTagging images for browser edge, version 4.28.1, build date 20250202, namespace selenium\nSelenium Grid version -> 4.28.1-20250202\nEdge version -> 123.0.2420.97\nShort Edge version -> 123.0\nEdgeDriver version -> 123.0.2420.97\nShort EdgeDriver version -> 123.0\nTagged selenium/node-edge:123.0.2420.97-edgedriver-123.0.2420.97-grid-4.28.1-20250202\nTagged selenium/standalone-edge:123.0.2420.97-edgedriver-123.0.2420.97-grid-4.28.1-20250202\nTagged selenium/node-edge:123.0.2420.97-edgedriver-123.0.2420.97-20250202\nTagged selenium/standalone-edge:123.0.2420.97-edgedriver-123.0.2420.97-20250202\nTagged selenium/node-edge:123.0.2420.97-20250202\nTagged selenium/standalone-edge:123.0.2420.97-20250202\nTagged selenium/node-edge:123.0-edgedriver-123.0-grid-4.28.1-20250202\nTagged selenium/standalone-edge:123.0-edgedriver-123.0-grid-4.28.1-20250202\nTagged selenium/node-edge:123.0-edgedriver-123.0-20250202\nTagged selenium/standalone-edge:123.0-edgedriver-123.0-20250202\nTagged selenium/node-edge:123.0-20250202\nTagged selenium/standalone-edge:123.0-20250202\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.28.1/edge_124.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.28.1 20250202 selenium false edge true\nTagging images for browser edge, version 4.28.1, build date 20250202, namespace selenium\nSelenium Grid version -> 4.28.1-20250202\nEdge version -> 124.0.2478.51\nShort Edge version -> 124.0\nEdgeDriver version -> 124.0.2478.109\nShort EdgeDriver version -> 124.0\nTagged selenium/node-edge:124.0.2478.51-edgedriver-124.0.2478.109-grid-4.28.1-20250202\nTagged selenium/standalone-edge:124.0.2478.51-edgedriver-124.0.2478.109-grid-4.28.1-20250202\nTagged selenium/node-edge:124.0.2478.51-edgedriver-124.0.2478.109-20250202\nTagged selenium/standalone-edge:124.0.2478.51-edgedriver-124.0.2478.109-20250202\nTagged selenium/node-edge:124.0.2478.51-20250202\nTagged selenium/standalone-edge:124.0.2478.51-20250202\nTagged selenium/node-edge:124.0-edgedriver-124.0-grid-4.28.1-20250202\nTagged selenium/standalone-edge:124.0-edgedriver-124.0-grid-4.28.1-20250202\nTagged selenium/node-edge:124.0-edgedriver-124.0-20250202\nTagged selenium/standalone-edge:124.0-edgedriver-124.0-20250202\nTagged selenium/node-edge:124.0-20250202\nTagged selenium/standalone-edge:124.0-20250202\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.28.1/edge_125.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.28.1 20250202 selenium false edge true\nTagging images for browser edge, version 4.28.1, build date 20250202, namespace selenium\nSelenium Grid version -> 4.28.1-20250202\nEdge version -> 125.0.2535.92\nShort Edge version -> 125.0\nEdgeDriver version -> 125.0.2535.92\nShort EdgeDriver version -> 125.0\nTagged selenium/node-edge:125.0.2535.92-edgedriver-125.0.2535.92-grid-4.28.1-20250202\nTagged selenium/standalone-edge:125.0.2535.92-edgedriver-125.0.2535.92-grid-4.28.1-20250202\nTagged selenium/node-edge:125.0.2535.92-edgedriver-125.0.2535.92-20250202\nTagged selenium/standalone-edge:125.0.2535.92-edgedriver-125.0.2535.92-20250202\nTagged selenium/node-edge:125.0.2535.92-20250202\nTagged selenium/standalone-edge:125.0.2535.92-20250202\nTagged selenium/node-edge:125.0-edgedriver-125.0-grid-4.28.1-20250202\nTagged selenium/standalone-edge:125.0-edgedriver-125.0-grid-4.28.1-20250202\nTagged selenium/node-edge:125.0-edgedriver-125.0-20250202\nTagged selenium/standalone-edge:125.0-edgedriver-125.0-20250202\nTagged selenium/node-edge:125.0-20250202\nTagged selenium/standalone-edge:125.0-20250202\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.28.1/edge_126.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.28.1 20250202 selenium false edge true\nTagging images for browser edge, version 4.28.1, build date 20250202, namespace selenium\nSelenium Grid version -> 4.28.1-20250202\nEdge version -> 126.0.2592.113\nShort Edge version -> 126.0\nEdgeDriver version -> 126.0.2592.123\nShort EdgeDriver version -> 126.0\nTagged selenium/node-edge:126.0.2592.113-edgedriver-126.0.2592.123-grid-4.28.1-20250202\nTagged selenium/standalone-edge:126.0.2592.113-edgedriver-126.0.2592.123-grid-4.28.1-20250202\nTagged selenium/node-edge:126.0.2592.113-edgedriver-126.0.2592.123-20250202\nTagged selenium/standalone-edge:126.0.2592.113-edgedriver-126.0.2592.123-20250202\nTagged selenium/node-edge:126.0.2592.113-20250202\nTagged selenium/standalone-edge:126.0.2592.113-20250202\nTagged selenium/node-edge:126.0-edgedriver-126.0-grid-4.28.1-20250202\nTagged selenium/standalone-edge:126.0-edgedriver-126.0-grid-4.28.1-20250202\nTagged selenium/node-edge:126.0-edgedriver-126.0-20250202\nTagged selenium/standalone-edge:126.0-edgedriver-126.0-20250202\nTagged selenium/node-edge:126.0-20250202\nTagged selenium/standalone-edge:126.0-20250202\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.28.1/edge_127.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.28.1 20250202 selenium false edge true\nTagging images for browser edge, version 4.28.1, build date 20250202, namespace selenium\nSelenium Grid version -> 4.28.1-20250202\nEdge version -> 127.0.2651.105\nShort Edge version -> 127.0\nEdgeDriver version -> 127.0.2651.107\nShort EdgeDriver version -> 127.0\nTagged selenium/node-edge:127.0.2651.105-edgedriver-127.0.2651.107-grid-4.28.1-20250202\nTagged selenium/standalone-edge:127.0.2651.105-edgedriver-127.0.2651.107-grid-4.28.1-20250202\nTagged selenium/node-edge:127.0.2651.105-edgedriver-127.0.2651.107-20250202\nTagged selenium/standalone-edge:127.0.2651.105-edgedriver-127.0.2651.107-20250202\nTagged selenium/node-edge:127.0.2651.105-20250202\nTagged selenium/standalone-edge:127.0.2651.105-20250202\nTagged selenium/node-edge:127.0-edgedriver-127.0-grid-4.28.1-20250202\nTagged selenium/standalone-edge:127.0-edgedriver-127.0-grid-4.28.1-20250202\nTagged selenium/node-edge:127.0-edgedriver-127.0-20250202\nTagged selenium/standalone-edge:127.0-edgedriver-127.0-20250202\nTagged selenium/node-edge:127.0-20250202\nTagged selenium/standalone-edge:127.0-20250202\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.28.1/edge_128.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.28.1 20250202 selenium false edge true\nTagging images for browser edge, version 4.28.1, build date 20250202, namespace selenium\nSelenium Grid version -> 4.28.1-20250202\nEdge version -> 128.0.2739.79\nShort Edge version -> 128.0\nEdgeDriver version -> 128.0.2739.81\nShort EdgeDriver version -> 128.0\nTagged selenium/node-edge:128.0.2739.79-edgedriver-128.0.2739.81-grid-4.28.1-20250202\nTagged selenium/standalone-edge:128.0.2739.79-edgedriver-128.0.2739.81-grid-4.28.1-20250202\nTagged selenium/node-edge:128.0.2739.79-edgedriver-128.0.2739.81-20250202\nTagged selenium/standalone-edge:128.0.2739.79-edgedriver-128.0.2739.81-20250202\nTagged selenium/node-edge:128.0.2739.79-20250202\nTagged selenium/standalone-edge:128.0.2739.79-20250202\nTagged selenium/node-edge:128.0-edgedriver-128.0-grid-4.28.1-20250202\nTagged selenium/standalone-edge:128.0-edgedriver-128.0-grid-4.28.1-20250202\nTagged selenium/node-edge:128.0-edgedriver-128.0-20250202\nTagged selenium/standalone-edge:128.0-edgedriver-128.0-20250202\nTagged selenium/node-edge:128.0-20250202\nTagged selenium/standalone-edge:128.0-20250202\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.28.1/edge_129.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.28.1 20250202 selenium false edge true\nTagging images for browser edge, version 4.28.1, build date 20250202, namespace selenium\nSelenium Grid version -> 4.28.1-20250202\nEdge version -> 129.0.2792.89\nShort Edge version -> 129.0\nEdgeDriver version -> 129.0.2792.98\nShort EdgeDriver version -> 129.0\nTagged selenium/node-edge:129.0.2792.89-edgedriver-129.0.2792.98-grid-4.28.1-20250202\nTagged selenium/standalone-edge:129.0.2792.89-edgedriver-129.0.2792.98-grid-4.28.1-20250202\nTagged selenium/node-edge:129.0.2792.89-edgedriver-129.0.2792.98-20250202\nTagged selenium/standalone-edge:129.0.2792.89-edgedriver-129.0.2792.98-20250202\nTagged selenium/node-edge:129.0.2792.89-20250202\nTagged selenium/standalone-edge:129.0.2792.89-20250202\nTagged selenium/node-edge:129.0-edgedriver-129.0-grid-4.28.1-20250202\nTagged selenium/standalone-edge:129.0-edgedriver-129.0-grid-4.28.1-20250202\nTagged selenium/node-edge:129.0-edgedriver-129.0-20250202\nTagged selenium/standalone-edge:129.0-edgedriver-129.0-20250202\nTagged selenium/node-edge:129.0-20250202\nTagged selenium/standalone-edge:129.0-20250202\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.28.1/edge_130.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.28.1 20250202 selenium false edge true\nTagging images for browser edge, version 4.28.1, build date 20250202, namespace selenium\nSelenium Grid version -> 4.28.1-20250202\nEdge version -> 130.0.2849.80\nShort Edge version -> 130.0\nEdgeDriver version -> 130.0.2849.78\nShort EdgeDriver version -> 130.0\nTagged selenium/node-edge:130.0.2849.80-edgedriver-130.0.2849.78-grid-4.28.1-20250202\nTagged selenium/standalone-edge:130.0.2849.80-edgedriver-130.0.2849.78-grid-4.28.1-20250202\nTagged selenium/node-edge:130.0.2849.80-edgedriver-130.0.2849.78-20250202\nTagged selenium/standalone-edge:130.0.2849.80-edgedriver-130.0.2849.78-20250202\nTagged selenium/node-edge:130.0.2849.80-20250202\nTagged selenium/standalone-edge:130.0.2849.80-20250202\nTagged selenium/node-edge:130.0-edgedriver-130.0-grid-4.28.1-20250202\nTagged selenium/standalone-edge:130.0-edgedriver-130.0-grid-4.28.1-20250202\nTagged selenium/node-edge:130.0-edgedriver-130.0-20250202\nTagged selenium/standalone-edge:130.0-edgedriver-130.0-20250202\nTagged selenium/node-edge:130.0-20250202\nTagged selenium/standalone-edge:130.0-20250202\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.28.1/edge_131.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.28.1 20250202 selenium false edge true\nTagging images for browser edge, version 4.28.1, build date 20250202, namespace selenium\nSelenium Grid version -> 4.28.1-20250202\nEdge version -> 131.0.2903.147\nShort Edge version -> 131.0\nEdgeDriver version -> 131.0.2903.147\nShort EdgeDriver version -> 131.0\nTagged selenium/node-edge:131.0.2903.147-edgedriver-131.0.2903.147-grid-4.28.1-20250202\nTagged selenium/standalone-edge:131.0.2903.147-edgedriver-131.0.2903.147-grid-4.28.1-20250202\nTagged selenium/node-edge:131.0.2903.147-edgedriver-131.0.2903.147-20250202\nTagged selenium/standalone-edge:131.0.2903.147-edgedriver-131.0.2903.147-20250202\nTagged selenium/node-edge:131.0.2903.147-20250202\nTagged selenium/standalone-edge:131.0.2903.147-20250202\nTagged selenium/node-edge:131.0-edgedriver-131.0-grid-4.28.1-20250202\nTagged selenium/standalone-edge:131.0-edgedriver-131.0-grid-4.28.1-20250202\nTagged selenium/node-edge:131.0-edgedriver-131.0-20250202\nTagged selenium/standalone-edge:131.0-edgedriver-131.0-20250202\nTagged selenium/node-edge:131.0-20250202\nTagged selenium/standalone-edge:131.0-20250202\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.28.1/edge_132.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.28.1 20250202 selenium false edge true\nTagging images for browser edge, version 4.28.1, build date 20250202, namespace selenium\nSelenium Grid version -> 4.28.1-20250202\nEdge version -> 132.0.2957.140\nShort Edge version -> 132.0\nEdgeDriver version -> 132.0.2957.140\nShort EdgeDriver version -> 132.0\nTagged selenium/node-edge:132.0.2957.140-edgedriver-132.0.2957.140-grid-4.28.1-20250202\nTagged selenium/standalone-edge:132.0.2957.140-edgedriver-132.0.2957.140-grid-4.28.1-20250202\nTagged selenium/node-edge:132.0.2957.140-edgedriver-132.0.2957.140-20250202\nTagged selenium/standalone-edge:132.0.2957.140-edgedriver-132.0.2957.140-20250202\nTagged selenium/node-edge:132.0.2957.140-20250202\nTagged selenium/standalone-edge:132.0.2957.140-20250202\nTagged selenium/node-edge:132.0-edgedriver-132.0-grid-4.28.1-20250202\nTagged selenium/standalone-edge:132.0-edgedriver-132.0-grid-4.28.1-20250202\nTagged selenium/node-edge:132.0-edgedriver-132.0-20250202\nTagged selenium/standalone-edge:132.0-edgedriver-132.0-20250202\nTagged selenium/node-edge:132.0-20250202\nTagged selenium/standalone-edge:132.0-20250202\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.28.1/firefox_100.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.28.1 20250202 selenium false firefox true\nTagging images for browser firefox, version 4.28.1, build date 20250202, namespace selenium\nSelenium Grid version -> 4.28.1-20250202\nFirefox version -> 100.0.2\nShort Firefox version -> 100.0\nGeckoDriver version -> 0.35.0\nShort GeckoDriver version -> 0.35\nTagged selenium/node-firefox:100.0.2-geckodriver-0.35.0-grid-4.28.1-20250202\nTagged selenium/standalone-firefox:100.0.2-geckodriver-0.35.0-grid-4.28.1-20250202\nTagged selenium/node-firefox:100.0.2-geckodriver-0.35.0-20250202\nTagged selenium/standalone-firefox:100.0.2-geckodriver-0.35.0-20250202\nTagged selenium/node-firefox:100.0.2-20250202\nTagged selenium/standalone-firefox:100.0.2-20250202\nTagged selenium/node-firefox:100.0-geckodriver-0.35-grid-4.28.1-20250202\nTagged selenium/standalone-firefox:100.0-geckodriver-0.35-grid-4.28.1-20250202\nTagged selenium/node-firefox:100.0-geckodriver-0.35-20250202\nTagged selenium/standalone-firefox:100.0-geckodriver-0.35-20250202\nTagged selenium/node-firefox:100.0-20250202\nTagged selenium/standalone-firefox:100.0-20250202\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.28.1/firefox_101.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.28.1 20250202 selenium false firefox true\nTagging images for browser firefox, version 4.28.1, build date 20250202, namespace selenium\nSelenium Grid version -> 4.28.1-20250202\nFirefox version -> 101.0.1\nShort Firefox version -> 101.0\nGeckoDriver version -> 0.35.0\nShort GeckoDriver version -> 0.35\nTagged selenium/node-firefox:101.0.1-geckodriver-0.35.0-grid-4.28.1-20250202\nTagged selenium/standalone-firefox:101.0.1-geckodriver-0.35.0-grid-4.28.1-20250202\nTagged selenium/node-firefox:101.0.1-geckodriver-0.35.0-20250202\nTagged selenium/standalone-firefox:101.0.1-geckodriver-0.35.0-20250202\nTagged selenium/node-firefox:101.0.1-20250202\nTagged selenium/standalone-firefox:101.0.1-20250202\nTagged selenium/node-firefox:101.0-geckodriver-0.35-grid-4.28.1-20250202\nTagged selenium/standalone-firefox:101.0-geckodriver-0.35-grid-4.28.1-20250202\nTagged selenium/node-firefox:101.0-geckodriver-0.35-20250202\nTagged selenium/standalone-firefox:101.0-geckodriver-0.35-20250202\nTagged selenium/node-firefox:101.0-20250202\nTagged selenium/standalone-firefox:101.0-20250202\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.28.1/firefox_102.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.28.1 20250202 selenium false firefox true\nTagging images for browser firefox, version 4.28.1, build date 20250202, namespace selenium\nSelenium Grid version -> 4.28.1-20250202\nFirefox version -> 102.0.1\nShort Firefox version -> 102.0\nGeckoDriver version -> 0.35.0\nShort GeckoDriver version -> 0.35\nTagged selenium/node-firefox:102.0.1-geckodriver-0.35.0-grid-4.28.1-20250202\nTagged selenium/standalone-firefox:102.0.1-geckodriver-0.35.0-grid-4.28.1-20250202\nTagged selenium/node-firefox:102.0.1-geckodriver-0.35.0-20250202\nTagged selenium/standalone-firefox:102.0.1-geckodriver-0.35.0-20250202\nTagged selenium/node-firefox:102.0.1-20250202\nTagged selenium/standalone-firefox:102.0.1-20250202\nTagged selenium/node-firefox:102.0-geckodriver-0.35-grid-4.28.1-20250202\nTagged selenium/standalone-firefox:102.0-geckodriver-0.35-grid-4.28.1-20250202\nTagged selenium/node-firefox:102.0-geckodriver-0.35-20250202\nTagged selenium/standalone-firefox:102.0-geckodriver-0.35-20250202\nTagged selenium/node-firefox:102.0-20250202\nTagged selenium/standalone-firefox:102.0-20250202\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.28.1/firefox_103.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.28.1 20250202 selenium false firefox true\nTagging images for browser firefox, version 4.28.1, build date 20250202, namespace selenium\nSelenium Grid version -> 4.28.1-20250202\nFirefox version -> 103.0.2\nShort Firefox version -> 103.0\nGeckoDriver version -> 0.35.0\nShort GeckoDriver version -> 0.35\nTagged selenium/node-firefox:103.0.2-geckodriver-0.35.0-grid-4.28.1-20250202\nTagged selenium/standalone-firefox:103.0.2-geckodriver-0.35.0-grid-4.28.1-20250202\nTagged selenium/node-firefox:103.0.2-geckodriver-0.35.0-20250202\nTagged selenium/standalone-firefox:103.0.2-geckodriver-0.35.0-20250202\nTagged selenium/node-firefox:103.0.2-20250202\nTagged selenium/standalone-firefox:103.0.2-20250202\nTagged selenium/node-firefox:103.0-geckodriver-0.35-grid-4.28.1-20250202\nTagged selenium/standalone-firefox:103.0-geckodriver-0.35-grid-4.28.1-20250202\nTagged selenium/node-firefox:103.0-geckodriver-0.35-20250202\nTagged selenium/standalone-firefox:103.0-geckodriver-0.35-20250202\nTagged selenium/node-firefox:103.0-20250202\nTagged selenium/standalone-firefox:103.0-20250202\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.28.1/firefox_104.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.28.1 20250202 selenium false firefox true\nTagging images for browser firefox, version 4.28.1, build date 20250202, namespace selenium\nSelenium Grid version -> 4.28.1-20250202\nFirefox version -> 104.0.2\nShort Firefox version -> 104.0\nGeckoDriver version -> 0.35.0\nShort GeckoDriver version -> 0.35\nTagged selenium/node-firefox:104.0.2-geckodriver-0.35.0-grid-4.28.1-20250202\nTagged selenium/standalone-firefox:104.0.2-geckodriver-0.35.0-grid-4.28.1-20250202\nTagged selenium/node-firefox:104.0.2-geckodriver-0.35.0-20250202\nTagged selenium/standalone-firefox:104.0.2-geckodriver-0.35.0-20250202\nTagged selenium/node-firefox:104.0.2-20250202\nTagged selenium/standalone-firefox:104.0.2-20250202\nTagged selenium/node-firefox:104.0-geckodriver-0.35-grid-4.28.1-20250202\nTagged selenium/standalone-firefox:104.0-geckodriver-0.35-grid-4.28.1-20250202\nTagged selenium/node-firefox:104.0-geckodriver-0.35-20250202\nTagged selenium/standalone-firefox:104.0-geckodriver-0.35-20250202\nTagged selenium/node-firefox:104.0-20250202\nTagged selenium/standalone-firefox:104.0-20250202\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.28.1/firefox_105.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.28.1 20250202 selenium false firefox true\nTagging images for browser firefox, version 4.28.1, build date 20250202, namespace selenium\nSelenium Grid version -> 4.28.1-20250202\nFirefox version -> 105.0.3\nShort Firefox version -> 105.0\nGeckoDriver version -> 0.35.0\nShort GeckoDriver version -> 0.35\nTagged selenium/node-firefox:105.0.3-geckodriver-0.35.0-grid-4.28.1-20250202\nTagged selenium/standalone-firefox:105.0.3-geckodriver-0.35.0-grid-4.28.1-20250202\nTagged selenium/node-firefox:105.0.3-geckodriver-0.35.0-20250202\nTagged selenium/standalone-firefox:105.0.3-geckodriver-0.35.0-20250202\nTagged selenium/node-firefox:105.0.3-20250202\nTagged selenium/standalone-firefox:105.0.3-20250202\nTagged selenium/node-firefox:105.0-geckodriver-0.35-grid-4.28.1-20250202\nTagged selenium/standalone-firefox:105.0-geckodriver-0.35-grid-4.28.1-20250202\nTagged selenium/node-firefox:105.0-geckodriver-0.35-20250202\nTagged selenium/standalone-firefox:105.0-geckodriver-0.35-20250202\nTagged selenium/node-firefox:105.0-20250202\nTagged selenium/standalone-firefox:105.0-20250202\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.28.1/firefox_106.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.28.1 20250202 selenium false firefox true\nTagging images for browser firefox, version 4.28.1, build date 20250202, namespace selenium\nSelenium Grid version -> 4.28.1-20250202\nFirefox version -> 106.0.5\nShort Firefox version -> 106.0\nGeckoDriver version -> 0.35.0\nShort GeckoDriver version -> 0.35\nTagged selenium/node-firefox:106.0.5-geckodriver-0.35.0-grid-4.28.1-20250202\nTagged selenium/standalone-firefox:106.0.5-geckodriver-0.35.0-grid-4.28.1-20250202\nTagged selenium/node-firefox:106.0.5-geckodriver-0.35.0-20250202\nTagged selenium/standalone-firefox:106.0.5-geckodriver-0.35.0-20250202\nTagged selenium/node-firefox:106.0.5-20250202\nTagged selenium/standalone-firefox:106.0.5-20250202\nTagged selenium/node-firefox:106.0-geckodriver-0.35-grid-4.28.1-20250202\nTagged selenium/standalone-firefox:106.0-geckodriver-0.35-grid-4.28.1-20250202\nTagged selenium/node-firefox:106.0-geckodriver-0.35-20250202\nTagged selenium/standalone-firefox:106.0-geckodriver-0.35-20250202\nTagged selenium/node-firefox:106.0-20250202\nTagged selenium/standalone-firefox:106.0-20250202\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.28.1/firefox_107.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.28.1 20250202 selenium false firefox true\nTagging images for browser firefox, version 4.28.1, build date 20250202, namespace selenium\nSelenium Grid version -> 4.28.1-20250202\nFirefox version -> 107.0.1\nShort Firefox version -> 107.0\nGeckoDriver version -> 0.35.0\nShort GeckoDriver version -> 0.35\nTagged selenium/node-firefox:107.0.1-geckodriver-0.35.0-grid-4.28.1-20250202\nTagged selenium/standalone-firefox:107.0.1-geckodriver-0.35.0-grid-4.28.1-20250202\nTagged selenium/node-firefox:107.0.1-geckodriver-0.35.0-20250202\nTagged selenium/standalone-firefox:107.0.1-geckodriver-0.35.0-20250202\nTagged selenium/node-firefox:107.0.1-20250202\nTagged selenium/standalone-firefox:107.0.1-20250202\nTagged selenium/node-firefox:107.0-geckodriver-0.35-grid-4.28.1-20250202\nTagged selenium/standalone-firefox:107.0-geckodriver-0.35-grid-4.28.1-20250202\nTagged selenium/node-firefox:107.0-geckodriver-0.35-20250202\nTagged selenium/standalone-firefox:107.0-geckodriver-0.35-20250202\nTagged selenium/node-firefox:107.0-20250202\nTagged selenium/standalone-firefox:107.0-20250202\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.28.1/firefox_108.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.28.1 20250202 selenium false firefox true\nTagging images for browser firefox, version 4.28.1, build date 20250202, namespace selenium\nSelenium Grid version -> 4.28.1-20250202\nFirefox version -> 108.0.2\nShort Firefox version -> 108.0\nGeckoDriver version -> 0.35.0\nShort GeckoDriver version -> 0.35\nTagged selenium/node-firefox:108.0.2-geckodriver-0.35.0-grid-4.28.1-20250202\nTagged selenium/standalone-firefox:108.0.2-geckodriver-0.35.0-grid-4.28.1-20250202\nTagged selenium/node-firefox:108.0.2-geckodriver-0.35.0-20250202\nTagged selenium/standalone-firefox:108.0.2-geckodriver-0.35.0-20250202\nTagged selenium/node-firefox:108.0.2-20250202\nTagged selenium/standalone-firefox:108.0.2-20250202\nTagged selenium/node-firefox:108.0-geckodriver-0.35-grid-4.28.1-20250202\nTagged selenium/standalone-firefox:108.0-geckodriver-0.35-grid-4.28.1-20250202\nTagged selenium/node-firefox:108.0-geckodriver-0.35-20250202\nTagged selenium/standalone-firefox:108.0-geckodriver-0.35-20250202\nTagged selenium/node-firefox:108.0-20250202\nTagged selenium/standalone-firefox:108.0-20250202\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.28.1/firefox_109.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.28.1 20250202 selenium false firefox true\nTagging images for browser firefox, version 4.28.1, build date 20250202, namespace selenium\nSelenium Grid version -> 4.28.1-20250202\nFirefox version -> 109.0.1\nShort Firefox version -> 109.0\nGeckoDriver version -> 0.35.0\nShort GeckoDriver version -> 0.35\nTagged selenium/node-firefox:109.0.1-geckodriver-0.35.0-grid-4.28.1-20250202\nTagged selenium/standalone-firefox:109.0.1-geckodriver-0.35.0-grid-4.28.1-20250202\nTagged selenium/node-firefox:109.0.1-geckodriver-0.35.0-20250202\nTagged selenium/standalone-firefox:109.0.1-geckodriver-0.35.0-20250202\nTagged selenium/node-firefox:109.0.1-20250202\nTagged selenium/standalone-firefox:109.0.1-20250202\nTagged selenium/node-firefox:109.0-geckodriver-0.35-grid-4.28.1-20250202\nTagged selenium/standalone-firefox:109.0-geckodriver-0.35-grid-4.28.1-20250202\nTagged selenium/node-firefox:109.0-geckodriver-0.35-20250202\nTagged selenium/standalone-firefox:109.0-geckodriver-0.35-20250202\nTagged selenium/node-firefox:109.0-20250202\nTagged selenium/standalone-firefox:109.0-20250202\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.28.1/firefox_110.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.28.1 20250202 selenium false firefox true\nTagging images for browser firefox, version 4.28.1, build date 20250202, namespace selenium\nSelenium Grid version -> 4.28.1-20250202\nFirefox version -> 110.0.1\nShort Firefox version -> 110.0\nGeckoDriver version -> 0.35.0\nShort GeckoDriver version -> 0.35\nTagged selenium/node-firefox:110.0.1-geckodriver-0.35.0-grid-4.28.1-20250202\nTagged selenium/standalone-firefox:110.0.1-geckodriver-0.35.0-grid-4.28.1-20250202\nTagged selenium/node-firefox:110.0.1-geckodriver-0.35.0-20250202\nTagged selenium/standalone-firefox:110.0.1-geckodriver-0.35.0-20250202\nTagged selenium/node-firefox:110.0.1-20250202\nTagged selenium/standalone-firefox:110.0.1-20250202\nTagged selenium/node-firefox:110.0-geckodriver-0.35-grid-4.28.1-20250202\nTagged selenium/standalone-firefox:110.0-geckodriver-0.35-grid-4.28.1-20250202\nTagged selenium/node-firefox:110.0-geckodriver-0.35-20250202\nTagged selenium/standalone-firefox:110.0-geckodriver-0.35-20250202\nTagged selenium/node-firefox:110.0-20250202\nTagged selenium/standalone-firefox:110.0-20250202\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.28.1/firefox_111.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.28.1 20250202 selenium false firefox true\nTagging images for browser firefox, version 4.28.1, build date 20250202, namespace selenium\nSelenium Grid version -> 4.28.1-20250202\nFirefox version -> 111.0.1\nShort Firefox version -> 111.0\nGeckoDriver version -> 0.35.0\nShort GeckoDriver version -> 0.35\nTagged selenium/node-firefox:111.0.1-geckodriver-0.35.0-grid-4.28.1-20250202\nTagged selenium/standalone-firefox:111.0.1-geckodriver-0.35.0-grid-4.28.1-20250202\nTagged selenium/node-firefox:111.0.1-geckodriver-0.35.0-20250202\nTagged selenium/standalone-firefox:111.0.1-geckodriver-0.35.0-20250202\nTagged selenium/node-firefox:111.0.1-20250202\nTagged selenium/standalone-firefox:111.0.1-20250202\nTagged selenium/node-firefox:111.0-geckodriver-0.35-grid-4.28.1-20250202\nTagged selenium/standalone-firefox:111.0-geckodriver-0.35-grid-4.28.1-20250202\nTagged selenium/node-firefox:111.0-geckodriver-0.35-20250202\nTagged selenium/standalone-firefox:111.0-geckodriver-0.35-20250202\nTagged selenium/node-firefox:111.0-20250202\nTagged selenium/standalone-firefox:111.0-20250202\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.28.1/firefox_112.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.28.1 20250202 selenium false firefox true\nTagging images for browser firefox, version 4.28.1, build date 20250202, namespace selenium\nSelenium Grid version -> 4.28.1-20250202\nFirefox version -> 112.0.2\nShort Firefox version -> 112.0\nGeckoDriver version -> 0.35.0\nShort GeckoDriver version -> 0.35\nTagged selenium/node-firefox:112.0.2-geckodriver-0.35.0-grid-4.28.1-20250202\nTagged selenium/standalone-firefox:112.0.2-geckodriver-0.35.0-grid-4.28.1-20250202\nTagged selenium/node-firefox:112.0.2-geckodriver-0.35.0-20250202\nTagged selenium/standalone-firefox:112.0.2-geckodriver-0.35.0-20250202\nTagged selenium/node-firefox:112.0.2-20250202\nTagged selenium/standalone-firefox:112.0.2-20250202\nTagged selenium/node-firefox:112.0-geckodriver-0.35-grid-4.28.1-20250202\nTagged selenium/standalone-firefox:112.0-geckodriver-0.35-grid-4.28.1-20250202\nTagged selenium/node-firefox:112.0-geckodriver-0.35-20250202\nTagged selenium/standalone-firefox:112.0-geckodriver-0.35-20250202\nTagged selenium/node-firefox:112.0-20250202\nTagged selenium/standalone-firefox:112.0-20250202\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.28.1/firefox_113.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.28.1 20250202 selenium false firefox true\nTagging images for browser firefox, version 4.28.1, build date 20250202, namespace selenium\nSelenium Grid version -> 4.28.1-20250202\nFirefox version -> 113.0.2\nShort Firefox version -> 113.0\nGeckoDriver version -> 0.35.0\nShort GeckoDriver version -> 0.35\nTagged selenium/node-firefox:113.0.2-geckodriver-0.35.0-grid-4.28.1-20250202\nTagged selenium/standalone-firefox:113.0.2-geckodriver-0.35.0-grid-4.28.1-20250202\nTagged selenium/node-firefox:113.0.2-geckodriver-0.35.0-20250202\nTagged selenium/standalone-firefox:113.0.2-geckodriver-0.35.0-20250202\nTagged selenium/node-firefox:113.0.2-20250202\nTagged selenium/standalone-firefox:113.0.2-20250202\nTagged selenium/node-firefox:113.0-geckodriver-0.35-grid-4.28.1-20250202\nTagged selenium/standalone-firefox:113.0-geckodriver-0.35-grid-4.28.1-20250202\nTagged selenium/node-firefox:113.0-geckodriver-0.35-20250202\nTagged selenium/standalone-firefox:113.0-geckodriver-0.35-20250202\nTagged selenium/node-firefox:113.0-20250202\nTagged selenium/standalone-firefox:113.0-20250202\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.28.1/firefox_114.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.28.1 20250202 selenium false firefox true\nTagging images for browser firefox, version 4.28.1, build date 20250202, namespace selenium\nSelenium Grid version -> 4.28.1-20250202\nFirefox version -> 114.0.2\nShort Firefox version -> 114.0\nGeckoDriver version -> 0.35.0\nShort GeckoDriver version -> 0.35\nTagged selenium/node-firefox:114.0.2-geckodriver-0.35.0-grid-4.28.1-20250202\nTagged selenium/standalone-firefox:114.0.2-geckodriver-0.35.0-grid-4.28.1-20250202\nTagged selenium/node-firefox:114.0.2-geckodriver-0.35.0-20250202\nTagged selenium/standalone-firefox:114.0.2-geckodriver-0.35.0-20250202\nTagged selenium/node-firefox:114.0.2-20250202\nTagged selenium/standalone-firefox:114.0.2-20250202\nTagged selenium/node-firefox:114.0-geckodriver-0.35-grid-4.28.1-20250202\nTagged selenium/standalone-firefox:114.0-geckodriver-0.35-grid-4.28.1-20250202\nTagged selenium/node-firefox:114.0-geckodriver-0.35-20250202\nTagged selenium/standalone-firefox:114.0-geckodriver-0.35-20250202\nTagged selenium/node-firefox:114.0-20250202\nTagged selenium/standalone-firefox:114.0-20250202\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.28.1/firefox_115.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.28.1 20250202 selenium false firefox true\nTagging images for browser firefox, version 4.28.1, build date 20250202, namespace selenium\nSelenium Grid version -> 4.28.1-20250202\nFirefox version -> 115.0.3\nShort Firefox version -> 115.0\nGeckoDriver version -> 0.35.0\nShort GeckoDriver version -> 0.35\nTagged selenium/node-firefox:115.0.3-geckodriver-0.35.0-grid-4.28.1-20250202\nTagged selenium/standalone-firefox:115.0.3-geckodriver-0.35.0-grid-4.28.1-20250202\nTagged selenium/node-firefox:115.0.3-geckodriver-0.35.0-20250202\nTagged selenium/standalone-firefox:115.0.3-geckodriver-0.35.0-20250202\nTagged selenium/node-firefox:115.0.3-20250202\nTagged selenium/standalone-firefox:115.0.3-20250202\nTagged selenium/node-firefox:115.0-geckodriver-0.35-grid-4.28.1-20250202\nTagged selenium/standalone-firefox:115.0-geckodriver-0.35-grid-4.28.1-20250202\nTagged selenium/node-firefox:115.0-geckodriver-0.35-20250202\nTagged selenium/standalone-firefox:115.0-geckodriver-0.35-20250202\nTagged selenium/node-firefox:115.0-20250202\nTagged selenium/standalone-firefox:115.0-20250202\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.28.1/firefox_116.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.28.1 20250202 selenium false firefox true\nTagging images for browser firefox, version 4.28.1, build date 20250202, namespace selenium\nSelenium Grid version -> 4.28.1-20250202\nFirefox version -> 116.0.3\nShort Firefox version -> 116.0\nGeckoDriver version -> 0.35.0\nShort GeckoDriver version -> 0.35\nTagged selenium/node-firefox:116.0.3-geckodriver-0.35.0-grid-4.28.1-20250202\nTagged selenium/standalone-firefox:116.0.3-geckodriver-0.35.0-grid-4.28.1-20250202\nTagged selenium/node-firefox:116.0.3-geckodriver-0.35.0-20250202\nTagged selenium/standalone-firefox:116.0.3-geckodriver-0.35.0-20250202\nTagged selenium/node-firefox:116.0.3-20250202\nTagged selenium/standalone-firefox:116.0.3-20250202\nTagged selenium/node-firefox:116.0-geckodriver-0.35-grid-4.28.1-20250202\nTagged selenium/standalone-firefox:116.0-geckodriver-0.35-grid-4.28.1-20250202\nTagged selenium/node-firefox:116.0-geckodriver-0.35-20250202\nTagged selenium/standalone-firefox:116.0-geckodriver-0.35-20250202\nTagged selenium/node-firefox:116.0-20250202\nTagged selenium/standalone-firefox:116.0-20250202\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.28.1/firefox_117.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.28.1 20250202 selenium false firefox true\nTagging images for browser firefox, version 4.28.1, build date 20250202, namespace selenium\nSelenium Grid version -> 4.28.1-20250202\nFirefox version -> 117.0.1\nShort Firefox version -> 117.0\nGeckoDriver version -> 0.35.0\nShort GeckoDriver version -> 0.35\nTagged selenium/node-firefox:117.0.1-geckodriver-0.35.0-grid-4.28.1-20250202\nTagged selenium/standalone-firefox:117.0.1-geckodriver-0.35.0-grid-4.28.1-20250202\nTagged selenium/node-firefox:117.0.1-geckodriver-0.35.0-20250202\nTagged selenium/standalone-firefox:117.0.1-geckodriver-0.35.0-20250202\nTagged selenium/node-firefox:117.0.1-20250202\nTagged selenium/standalone-firefox:117.0.1-20250202\nTagged selenium/node-firefox:117.0-geckodriver-0.35-grid-4.28.1-20250202\nTagged selenium/standalone-firefox:117.0-geckodriver-0.35-grid-4.28.1-20250202\nTagged selenium/node-firefox:117.0-geckodriver-0.35-20250202\nTagged selenium/standalone-firefox:117.0-geckodriver-0.35-20250202\nTagged selenium/node-firefox:117.0-20250202\nTagged selenium/standalone-firefox:117.0-20250202\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.28.1/firefox_118.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.28.1 20250202 selenium false firefox true\nTagging images for browser firefox, version 4.28.1, build date 20250202, namespace selenium\nSelenium Grid version -> 4.28.1-20250202\nFirefox version -> 118.0.2\nShort Firefox version -> 118.0\nGeckoDriver version -> 0.35.0\nShort GeckoDriver version -> 0.35\nTagged selenium/node-firefox:118.0.2-geckodriver-0.35.0-grid-4.28.1-20250202\nTagged selenium/standalone-firefox:118.0.2-geckodriver-0.35.0-grid-4.28.1-20250202\nTagged selenium/node-firefox:118.0.2-geckodriver-0.35.0-20250202\nTagged selenium/standalone-firefox:118.0.2-geckodriver-0.35.0-20250202\nTagged selenium/node-firefox:118.0.2-20250202\nTagged selenium/standalone-firefox:118.0.2-20250202\nTagged selenium/node-firefox:118.0-geckodriver-0.35-grid-4.28.1-20250202\nTagged selenium/standalone-firefox:118.0-geckodriver-0.35-grid-4.28.1-20250202\nTagged selenium/node-firefox:118.0-geckodriver-0.35-20250202\nTagged selenium/standalone-firefox:118.0-geckodriver-0.35-20250202\nTagged selenium/node-firefox:118.0-20250202\nTagged selenium/standalone-firefox:118.0-20250202\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.28.1/firefox_119.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.28.1 20250202 selenium false firefox true\nTagging images for browser firefox, version 4.28.1, build date 20250202, namespace selenium\nSelenium Grid version -> 4.28.1-20250202\nFirefox version -> 119.0.1\nShort Firefox version -> 119.0\nGeckoDriver version -> 0.35.0\nShort GeckoDriver version -> 0.35\nTagged selenium/node-firefox:119.0.1-geckodriver-0.35.0-grid-4.28.1-20250202\nTagged selenium/standalone-firefox:119.0.1-geckodriver-0.35.0-grid-4.28.1-20250202\nTagged selenium/node-firefox:119.0.1-geckodriver-0.35.0-20250202\nTagged selenium/standalone-firefox:119.0.1-geckodriver-0.35.0-20250202\nTagged selenium/node-firefox:119.0.1-20250202\nTagged selenium/standalone-firefox:119.0.1-20250202\nTagged selenium/node-firefox:119.0-geckodriver-0.35-grid-4.28.1-20250202\nTagged selenium/standalone-firefox:119.0-geckodriver-0.35-grid-4.28.1-20250202\nTagged selenium/node-firefox:119.0-geckodriver-0.35-20250202\nTagged selenium/standalone-firefox:119.0-geckodriver-0.35-20250202\nTagged selenium/node-firefox:119.0-20250202\nTagged selenium/standalone-firefox:119.0-20250202\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.28.1/firefox_120.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.28.1 20250202 selenium false firefox true\nTagging images for browser firefox, version 4.28.1, build date 20250202, namespace selenium\nSelenium Grid version -> 4.28.1-20250202\nFirefox version -> 120.0.1\nShort Firefox version -> 120.0\nGeckoDriver version -> 0.35.0\nShort GeckoDriver version -> 0.35\nTagged selenium/node-firefox:120.0.1-geckodriver-0.35.0-grid-4.28.1-20250202\nTagged selenium/standalone-firefox:120.0.1-geckodriver-0.35.0-grid-4.28.1-20250202\nTagged selenium/node-firefox:120.0.1-geckodriver-0.35.0-20250202\nTagged selenium/standalone-firefox:120.0.1-geckodriver-0.35.0-20250202\nTagged selenium/node-firefox:120.0.1-20250202\nTagged selenium/standalone-firefox:120.0.1-20250202\nTagged selenium/node-firefox:120.0-geckodriver-0.35-grid-4.28.1-20250202\nTagged selenium/standalone-firefox:120.0-geckodriver-0.35-grid-4.28.1-20250202\nTagged selenium/node-firefox:120.0-geckodriver-0.35-20250202\nTagged selenium/standalone-firefox:120.0-geckodriver-0.35-20250202\nTagged selenium/node-firefox:120.0-20250202\nTagged selenium/standalone-firefox:120.0-20250202\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.28.1/firefox_121.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.28.1 20250202 selenium false firefox true\nTagging images for browser firefox, version 4.28.1, build date 20250202, namespace selenium\nSelenium Grid version -> 4.28.1-20250202\nFirefox version -> 121.0.1\nShort Firefox version -> 121.0\nGeckoDriver version -> 0.35.0\nShort GeckoDriver version -> 0.35\nTagged selenium/node-firefox:121.0.1-geckodriver-0.35.0-grid-4.28.1-20250202\nTagged selenium/standalone-firefox:121.0.1-geckodriver-0.35.0-grid-4.28.1-20250202\nTagged selenium/node-firefox:121.0.1-geckodriver-0.35.0-20250202\nTagged selenium/standalone-firefox:121.0.1-geckodriver-0.35.0-20250202\nTagged selenium/node-firefox:121.0.1-20250202\nTagged selenium/standalone-firefox:121.0.1-20250202\nTagged selenium/node-firefox:121.0-geckodriver-0.35-grid-4.28.1-20250202\nTagged selenium/standalone-firefox:121.0-geckodriver-0.35-grid-4.28.1-20250202\nTagged selenium/node-firefox:121.0-geckodriver-0.35-20250202\nTagged selenium/standalone-firefox:121.0-geckodriver-0.35-20250202\nTagged selenium/node-firefox:121.0-20250202\nTagged selenium/standalone-firefox:121.0-20250202\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.28.1/firefox_122.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.28.1 20250202 selenium false firefox true\nTagging images for browser firefox, version 4.28.1, build date 20250202, namespace selenium\nSelenium Grid version -> 4.28.1-20250202\nFirefox version -> 122.0.1\nShort Firefox version -> 122.0\nGeckoDriver version -> 0.35.0\nShort GeckoDriver version -> 0.35\nTagged selenium/node-firefox:122.0.1-geckodriver-0.35.0-grid-4.28.1-20250202\nTagged selenium/standalone-firefox:122.0.1-geckodriver-0.35.0-grid-4.28.1-20250202\nTagged selenium/node-firefox:122.0.1-geckodriver-0.35.0-20250202\nTagged selenium/standalone-firefox:122.0.1-geckodriver-0.35.0-20250202\nTagged selenium/node-firefox:122.0.1-20250202\nTagged selenium/standalone-firefox:122.0.1-20250202\nTagged selenium/node-firefox:122.0-geckodriver-0.35-grid-4.28.1-20250202\nTagged selenium/standalone-firefox:122.0-geckodriver-0.35-grid-4.28.1-20250202\nTagged selenium/node-firefox:122.0-geckodriver-0.35-20250202\nTagged selenium/standalone-firefox:122.0-geckodriver-0.35-20250202\nTagged selenium/node-firefox:122.0-20250202\nTagged selenium/standalone-firefox:122.0-20250202\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.28.1/firefox_123.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.28.1 20250202 selenium false firefox true\nTagging images for browser firefox, version 4.28.1, build date 20250202, namespace selenium\nSelenium Grid version -> 4.28.1-20250202\nFirefox version -> 123.0.1\nShort Firefox version -> 123.0\nGeckoDriver version -> 0.35.0\nShort GeckoDriver version -> 0.35\nTagged selenium/node-firefox:123.0.1-geckodriver-0.35.0-grid-4.28.1-20250202\nTagged selenium/standalone-firefox:123.0.1-geckodriver-0.35.0-grid-4.28.1-20250202\nTagged selenium/node-firefox:123.0.1-geckodriver-0.35.0-20250202\nTagged selenium/standalone-firefox:123.0.1-geckodriver-0.35.0-20250202\nTagged selenium/node-firefox:123.0.1-20250202\nTagged selenium/standalone-firefox:123.0.1-20250202\nTagged selenium/node-firefox:123.0-geckodriver-0.35-grid-4.28.1-20250202\nTagged selenium/standalone-firefox:123.0-geckodriver-0.35-grid-4.28.1-20250202\nTagged selenium/node-firefox:123.0-geckodriver-0.35-20250202\nTagged selenium/standalone-firefox:123.0-geckodriver-0.35-20250202\nTagged selenium/node-firefox:123.0-20250202\nTagged selenium/standalone-firefox:123.0-20250202\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.28.1/firefox_124.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.28.1 20250202 selenium false firefox true\nTagging images for browser firefox, version 4.28.1, build date 20250202, namespace selenium\nSelenium Grid version -> 4.28.1-20250202\nFirefox version -> 124.0.2\nShort Firefox version -> 124.0\nGeckoDriver version -> 0.35.0\nShort GeckoDriver version -> 0.35\nTagged selenium/node-firefox:124.0.2-geckodriver-0.35.0-grid-4.28.1-20250202\nTagged selenium/standalone-firefox:124.0.2-geckodriver-0.35.0-grid-4.28.1-20250202\nTagged selenium/node-firefox:124.0.2-geckodriver-0.35.0-20250202\nTagged selenium/standalone-firefox:124.0.2-geckodriver-0.35.0-20250202\nTagged selenium/node-firefox:124.0.2-20250202\nTagged selenium/standalone-firefox:124.0.2-20250202\nTagged selenium/node-firefox:124.0-geckodriver-0.35-grid-4.28.1-20250202\nTagged selenium/standalone-firefox:124.0-geckodriver-0.35-grid-4.28.1-20250202\nTagged selenium/node-firefox:124.0-geckodriver-0.35-20250202\nTagged selenium/standalone-firefox:124.0-geckodriver-0.35-20250202\nTagged selenium/node-firefox:124.0-20250202\nTagged selenium/standalone-firefox:124.0-20250202\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.28.1/firefox_125.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.28.1 20250202 selenium false firefox true\nTagging images for browser firefox, version 4.28.1, build date 20250202, namespace selenium\nSelenium Grid version -> 4.28.1-20250202\nFirefox version -> 125.0.3\nShort Firefox version -> 125.0\nGeckoDriver version -> 0.35.0\nShort GeckoDriver version -> 0.35\nTagged selenium/node-firefox:125.0.3-geckodriver-0.35.0-grid-4.28.1-20250202\nTagged selenium/standalone-firefox:125.0.3-geckodriver-0.35.0-grid-4.28.1-20250202\nTagged selenium/node-firefox:125.0.3-geckodriver-0.35.0-20250202\nTagged selenium/standalone-firefox:125.0.3-geckodriver-0.35.0-20250202\nTagged selenium/node-firefox:125.0.3-20250202\nTagged selenium/standalone-firefox:125.0.3-20250202\nTagged selenium/node-firefox:125.0-geckodriver-0.35-grid-4.28.1-20250202\nTagged selenium/standalone-firefox:125.0-geckodriver-0.35-grid-4.28.1-20250202\nTagged selenium/node-firefox:125.0-geckodriver-0.35-20250202\nTagged selenium/standalone-firefox:125.0-geckodriver-0.35-20250202\nTagged selenium/node-firefox:125.0-20250202\nTagged selenium/standalone-firefox:125.0-20250202\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.28.1/firefox_126.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.28.1 20250202 selenium false firefox true\nTagging images for browser firefox, version 4.28.1, build date 20250202, namespace selenium\nSelenium Grid version -> 4.28.1-20250202\nFirefox version -> 126.0.1\nShort Firefox version -> 126.0\nGeckoDriver version -> 0.35.0\nShort GeckoDriver version -> 0.35\nTagged selenium/node-firefox:126.0.1-geckodriver-0.35.0-grid-4.28.1-20250202\nTagged selenium/standalone-firefox:126.0.1-geckodriver-0.35.0-grid-4.28.1-20250202\nTagged selenium/node-firefox:126.0.1-geckodriver-0.35.0-20250202\nTagged selenium/standalone-firefox:126.0.1-geckodriver-0.35.0-20250202\nTagged selenium/node-firefox:126.0.1-20250202\nTagged selenium/standalone-firefox:126.0.1-20250202\nTagged selenium/node-firefox:126.0-geckodriver-0.35-grid-4.28.1-20250202\nTagged selenium/standalone-firefox:126.0-geckodriver-0.35-grid-4.28.1-20250202\nTagged selenium/node-firefox:126.0-geckodriver-0.35-20250202\nTagged selenium/standalone-firefox:126.0-geckodriver-0.35-20250202\nTagged selenium/node-firefox:126.0-20250202\nTagged selenium/standalone-firefox:126.0-20250202\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.28.1/firefox_127.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.28.1 20250202 selenium false firefox true\nTagging images for browser firefox, version 4.28.1, build date 20250202, namespace selenium\nSelenium Grid version -> 4.28.1-20250202\nFirefox version -> 127.0.2\nShort Firefox version -> 127.0\nGeckoDriver version -> 0.35.0\nShort GeckoDriver version -> 0.35\nTagged selenium/node-firefox:127.0.2-geckodriver-0.35.0-grid-4.28.1-20250202\nTagged selenium/standalone-firefox:127.0.2-geckodriver-0.35.0-grid-4.28.1-20250202\nTagged selenium/node-firefox:127.0.2-geckodriver-0.35.0-20250202\nTagged selenium/standalone-firefox:127.0.2-geckodriver-0.35.0-20250202\nTagged selenium/node-firefox:127.0.2-20250202\nTagged selenium/standalone-firefox:127.0.2-20250202\nTagged selenium/node-firefox:127.0-geckodriver-0.35-grid-4.28.1-20250202\nTagged selenium/standalone-firefox:127.0-geckodriver-0.35-grid-4.28.1-20250202\nTagged selenium/node-firefox:127.0-geckodriver-0.35-20250202\nTagged selenium/standalone-firefox:127.0-geckodriver-0.35-20250202\nTagged selenium/node-firefox:127.0-20250202\nTagged selenium/standalone-firefox:127.0-20250202\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.28.1/firefox_128.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.28.1 20250202 selenium false firefox true\nTagging images for browser firefox, version 4.28.1, build date 20250202, namespace selenium\nSelenium Grid version -> 4.28.1-20250202\nFirefox version -> 128.0.3\nShort Firefox version -> 128.0\nGeckoDriver version -> 0.35.0\nShort GeckoDriver version -> 0.35\nTagged selenium/node-firefox:128.0.3-geckodriver-0.35.0-grid-4.28.1-20250202\nTagged selenium/standalone-firefox:128.0.3-geckodriver-0.35.0-grid-4.28.1-20250202\nTagged selenium/node-firefox:128.0.3-geckodriver-0.35.0-20250202\nTagged selenium/standalone-firefox:128.0.3-geckodriver-0.35.0-20250202\nTagged selenium/node-firefox:128.0.3-20250202\nTagged selenium/standalone-firefox:128.0.3-20250202\nTagged selenium/node-firefox:128.0-geckodriver-0.35-grid-4.28.1-20250202\nTagged selenium/standalone-firefox:128.0-geckodriver-0.35-grid-4.28.1-20250202\nTagged selenium/node-firefox:128.0-geckodriver-0.35-20250202\nTagged selenium/standalone-firefox:128.0-geckodriver-0.35-20250202\nTagged selenium/node-firefox:128.0-20250202\nTagged selenium/standalone-firefox:128.0-20250202\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.28.1/firefox_129.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.28.1 20250202 selenium false firefox true\nTagging images for browser firefox, version 4.28.1, build date 20250202, namespace selenium\nSelenium Grid version -> 4.28.1-20250202\nFirefox version -> 129.0.2\nShort Firefox version -> 129.0\nGeckoDriver version -> 0.35.0\nShort GeckoDriver version -> 0.35\nTagged selenium/node-firefox:129.0.2-geckodriver-0.35.0-grid-4.28.1-20250202\nTagged selenium/standalone-firefox:129.0.2-geckodriver-0.35.0-grid-4.28.1-20250202\nTagged selenium/node-firefox:129.0.2-geckodriver-0.35.0-20250202\nTagged selenium/standalone-firefox:129.0.2-geckodriver-0.35.0-20250202\nTagged selenium/node-firefox:129.0.2-20250202\nTagged selenium/standalone-firefox:129.0.2-20250202\nTagged selenium/node-firefox:129.0-geckodriver-0.35-grid-4.28.1-20250202\nTagged selenium/standalone-firefox:129.0-geckodriver-0.35-grid-4.28.1-20250202\nTagged selenium/node-firefox:129.0-geckodriver-0.35-20250202\nTagged selenium/standalone-firefox:129.0-geckodriver-0.35-20250202\nTagged selenium/node-firefox:129.0-20250202\nTagged selenium/standalone-firefox:129.0-20250202\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.28.1/firefox_130.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.28.1 20250202 selenium false firefox true\nTagging images for browser firefox, version 4.28.1, build date 20250202, namespace selenium\nSelenium Grid version -> 4.28.1-20250202\nFirefox version -> 130.0.1\nShort Firefox version -> 130.0\nGeckoDriver version -> 0.35.0\nShort GeckoDriver version -> 0.35\nTagged selenium/node-firefox:130.0.1-geckodriver-0.35.0-grid-4.28.1-20250202\nTagged selenium/standalone-firefox:130.0.1-geckodriver-0.35.0-grid-4.28.1-20250202\nTagged selenium/node-firefox:130.0.1-geckodriver-0.35.0-20250202\nTagged selenium/standalone-firefox:130.0.1-geckodriver-0.35.0-20250202\nTagged selenium/node-firefox:130.0.1-20250202\nTagged selenium/standalone-firefox:130.0.1-20250202\nTagged selenium/node-firefox:130.0-geckodriver-0.35-grid-4.28.1-20250202\nTagged selenium/standalone-firefox:130.0-geckodriver-0.35-grid-4.28.1-20250202\nTagged selenium/node-firefox:130.0-geckodriver-0.35-20250202\nTagged selenium/standalone-firefox:130.0-geckodriver-0.35-20250202\nTagged selenium/node-firefox:130.0-20250202\nTagged selenium/standalone-firefox:130.0-20250202\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.28.1/firefox_131.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.28.1 20250202 selenium false firefox true\nTagging images for browser firefox, version 4.28.1, build date 20250202, namespace selenium\nSelenium Grid version -> 4.28.1-20250202\nFirefox version -> 131.0.3\nShort Firefox version -> 131.0\nGeckoDriver version -> 0.35.0\nShort GeckoDriver version -> 0.35\nTagged selenium/node-firefox:131.0.3-geckodriver-0.35.0-grid-4.28.1-20250202\nTagged selenium/standalone-firefox:131.0.3-geckodriver-0.35.0-grid-4.28.1-20250202\nTagged selenium/node-firefox:131.0.3-geckodriver-0.35.0-20250202\nTagged selenium/standalone-firefox:131.0.3-geckodriver-0.35.0-20250202\nTagged selenium/node-firefox:131.0.3-20250202\nTagged selenium/standalone-firefox:131.0.3-20250202\nTagged selenium/node-firefox:131.0-geckodriver-0.35-grid-4.28.1-20250202\nTagged selenium/standalone-firefox:131.0-geckodriver-0.35-grid-4.28.1-20250202\nTagged selenium/node-firefox:131.0-geckodriver-0.35-20250202\nTagged selenium/standalone-firefox:131.0-geckodriver-0.35-20250202\nTagged selenium/node-firefox:131.0-20250202\nTagged selenium/standalone-firefox:131.0-20250202\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.28.1/firefox_132.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.28.1 20250202 selenium false firefox true\nTagging images for browser firefox, version 4.28.1, build date 20250202, namespace selenium\nSelenium Grid version -> 4.28.1-20250202\nFirefox version -> 132.0.2\nShort Firefox version -> 132.0\nGeckoDriver version -> 0.35.0\nShort GeckoDriver version -> 0.35\nTagged selenium/node-firefox:132.0.2-geckodriver-0.35.0-grid-4.28.1-20250202\nTagged selenium/standalone-firefox:132.0.2-geckodriver-0.35.0-grid-4.28.1-20250202\nTagged selenium/node-firefox:132.0.2-geckodriver-0.35.0-20250202\nTagged selenium/standalone-firefox:132.0.2-geckodriver-0.35.0-20250202\nTagged selenium/node-firefox:132.0.2-20250202\nTagged selenium/standalone-firefox:132.0.2-20250202\nTagged selenium/node-firefox:132.0-geckodriver-0.35-grid-4.28.1-20250202\nTagged selenium/standalone-firefox:132.0-geckodriver-0.35-grid-4.28.1-20250202\nTagged selenium/node-firefox:132.0-geckodriver-0.35-20250202\nTagged selenium/standalone-firefox:132.0-geckodriver-0.35-20250202\nTagged selenium/node-firefox:132.0-20250202\nTagged selenium/standalone-firefox:132.0-20250202\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.28.1/firefox_133.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.28.1 20250202 selenium false firefox true\nTagging images for browser firefox, version 4.28.1, build date 20250202, namespace selenium\nSelenium Grid version -> 4.28.1-20250202\nFirefox version -> 133.0.3\nShort Firefox version -> 133.0\nGeckoDriver version -> 0.35.0\nShort GeckoDriver version -> 0.35\nTagged selenium/node-firefox:133.0.3-geckodriver-0.35.0-grid-4.28.1-20250202\nTagged selenium/standalone-firefox:133.0.3-geckodriver-0.35.0-grid-4.28.1-20250202\nTagged selenium/node-firefox:133.0.3-geckodriver-0.35.0-20250202\nTagged selenium/standalone-firefox:133.0.3-geckodriver-0.35.0-20250202\nTagged selenium/node-firefox:133.0.3-20250202\nTagged selenium/standalone-firefox:133.0.3-20250202\nTagged selenium/node-firefox:133.0-geckodriver-0.35-grid-4.28.1-20250202\nTagged selenium/standalone-firefox:133.0-geckodriver-0.35-grid-4.28.1-20250202\nTagged selenium/node-firefox:133.0-geckodriver-0.35-20250202\nTagged selenium/standalone-firefox:133.0-geckodriver-0.35-20250202\nTagged selenium/node-firefox:133.0-20250202\nTagged selenium/standalone-firefox:133.0-20250202\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.28.1/firefox_134.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.28.1 20250202 selenium false firefox true\nTagging images for browser firefox, version 4.28.1, build date 20250202, namespace selenium\nSelenium Grid version -> 4.28.1-20250202\nFirefox version -> 134.0.2\nShort Firefox version -> 134.0\nGeckoDriver version -> 0.35.0\nShort GeckoDriver version -> 0.35\nTagged selenium/node-firefox:134.0.2-geckodriver-0.35.0-grid-4.28.1-20250202\nTagged selenium/standalone-firefox:134.0.2-geckodriver-0.35.0-grid-4.28.1-20250202\nTagged selenium/node-firefox:134.0.2-geckodriver-0.35.0-20250202\nTagged selenium/standalone-firefox:134.0.2-geckodriver-0.35.0-20250202\nTagged selenium/node-firefox:134.0.2-20250202\nTagged selenium/standalone-firefox:134.0.2-20250202\nTagged selenium/node-firefox:134.0-geckodriver-0.35-grid-4.28.1-20250202\nTagged selenium/standalone-firefox:134.0-geckodriver-0.35-grid-4.28.1-20250202\nTagged selenium/node-firefox:134.0-geckodriver-0.35-20250202\nTagged selenium/standalone-firefox:134.0-geckodriver-0.35-20250202\nTagged selenium/node-firefox:134.0-20250202\nTagged selenium/standalone-firefox:134.0-20250202\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.28.1/firefox_98.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.28.1 20250202 selenium false firefox true\nTagging images for browser firefox, version 4.28.1, build date 20250202, namespace selenium\nSelenium Grid version -> 4.28.1-20250202\nFirefox version -> 98.0.2\nShort Firefox version -> 98.0\nGeckoDriver version -> 0.35.0\nShort GeckoDriver version -> 0.35\nTagged selenium/node-firefox:98.0.2-geckodriver-0.35.0-grid-4.28.1-20250202\nTagged selenium/standalone-firefox:98.0.2-geckodriver-0.35.0-grid-4.28.1-20250202\nTagged selenium/node-firefox:98.0.2-geckodriver-0.35.0-20250202\nTagged selenium/standalone-firefox:98.0.2-geckodriver-0.35.0-20250202\nTagged selenium/node-firefox:98.0.2-20250202\nTagged selenium/standalone-firefox:98.0.2-20250202\nTagged selenium/node-firefox:98.0-geckodriver-0.35-grid-4.28.1-20250202\nTagged selenium/standalone-firefox:98.0-geckodriver-0.35-grid-4.28.1-20250202\nTagged selenium/node-firefox:98.0-geckodriver-0.35-20250202\nTagged selenium/standalone-firefox:98.0-geckodriver-0.35-20250202\nTagged selenium/node-firefox:98.0-20250202\nTagged selenium/standalone-firefox:98.0-20250202\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.28.1/firefox_99.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.28.1 20250202 selenium false firefox true\nTagging images for browser firefox, version 4.28.1, build date 20250202, namespace selenium\nSelenium Grid version -> 4.28.1-20250202\nFirefox version -> 99.0.1\nShort Firefox version -> 99.0\nGeckoDriver version -> 0.35.0\nShort GeckoDriver version -> 0.35\nTagged selenium/node-firefox:99.0.1-geckodriver-0.35.0-grid-4.28.1-20250202\nTagged selenium/standalone-firefox:99.0.1-geckodriver-0.35.0-grid-4.28.1-20250202\nTagged selenium/node-firefox:99.0.1-geckodriver-0.35.0-20250202\nTagged selenium/standalone-firefox:99.0.1-geckodriver-0.35.0-20250202\nTagged selenium/node-firefox:99.0.1-20250202\nTagged selenium/standalone-firefox:99.0.1-20250202\nTagged selenium/node-firefox:99.0-geckodriver-0.35-grid-4.28.1-20250202\nTagged selenium/standalone-firefox:99.0-geckodriver-0.35-grid-4.28.1-20250202\nTagged selenium/node-firefox:99.0-geckodriver-0.35-20250202\nTagged selenium/standalone-firefox:99.0-geckodriver-0.35-20250202\nTagged selenium/node-firefox:99.0-20250202\nTagged selenium/standalone-firefox:99.0-20250202\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.29.0/chrome_100.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.29.0 20250303 selenium false chrome true\nTagging images for browser chrome, version 4.29.0, build date 20250303, namespace selenium\nSelenium Grid version -> 4.29.0-20250303\nChrome version -> 100.0.4896.127\nShort Chrome version -> 100.0\nChromeDriver version -> 100.0.4896.60\nShort ChromeDriver version -> 100.0\nTagged selenium/node-chrome:100.0.4896.127-chromedriver-100.0.4896.60-grid-4.29.0-20250303\nTagged selenium/standalone-chrome:100.0.4896.127-chromedriver-100.0.4896.60-grid-4.29.0-20250303\nTagged selenium/node-chrome:100.0.4896.127-chromedriver-100.0.4896.60-20250303\nTagged selenium/standalone-chrome:100.0.4896.127-chromedriver-100.0.4896.60-20250303\nTagged selenium/node-chrome:100.0.4896.127-20250303\nTagged selenium/standalone-chrome:100.0.4896.127-20250303\nTagged selenium/node-chrome:100.0-chromedriver-100.0-grid-4.29.0-20250303\nTagged selenium/standalone-chrome:100.0-chromedriver-100.0-grid-4.29.0-20250303\nTagged selenium/node-chrome:100.0-chromedriver-100.0-20250303\nTagged selenium/standalone-chrome:100.0-chromedriver-100.0-20250303\nTagged selenium/node-chrome:100.0-20250303\nTagged selenium/standalone-chrome:100.0-20250303\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.29.0/chrome_101.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.29.0 20250303 selenium false chrome true\nTagging images for browser chrome, version 4.29.0, build date 20250303, namespace selenium\nSelenium Grid version -> 4.29.0-20250303\nChrome version -> 101.0.4951.64\nShort Chrome version -> 101.0\nChromeDriver version -> 101.0.4951.41\nShort ChromeDriver version -> 101.0\nTagged selenium/node-chrome:101.0.4951.64-chromedriver-101.0.4951.41-grid-4.29.0-20250303\nTagged selenium/standalone-chrome:101.0.4951.64-chromedriver-101.0.4951.41-grid-4.29.0-20250303\nTagged selenium/node-chrome:101.0.4951.64-chromedriver-101.0.4951.41-20250303\nTagged selenium/standalone-chrome:101.0.4951.64-chromedriver-101.0.4951.41-20250303\nTagged selenium/node-chrome:101.0.4951.64-20250303\nTagged selenium/standalone-chrome:101.0.4951.64-20250303\nTagged selenium/node-chrome:101.0-chromedriver-101.0-grid-4.29.0-20250303\nTagged selenium/standalone-chrome:101.0-chromedriver-101.0-grid-4.29.0-20250303\nTagged selenium/node-chrome:101.0-chromedriver-101.0-20250303\nTagged selenium/standalone-chrome:101.0-chromedriver-101.0-20250303\nTagged selenium/node-chrome:101.0-20250303\nTagged selenium/standalone-chrome:101.0-20250303\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.29.0/chrome_102.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.29.0 20250303 selenium false chrome true\nTagging images for browser chrome, version 4.29.0, build date 20250303, namespace selenium\nSelenium Grid version -> 4.29.0-20250303\nChrome version -> 102.0.5005.115\nShort Chrome version -> 102.0\nChromeDriver version -> 102.0.5005.61\nShort ChromeDriver version -> 102.0\nTagged selenium/node-chrome:102.0.5005.115-chromedriver-102.0.5005.61-grid-4.29.0-20250303\nTagged selenium/standalone-chrome:102.0.5005.115-chromedriver-102.0.5005.61-grid-4.29.0-20250303\nTagged selenium/node-chrome:102.0.5005.115-chromedriver-102.0.5005.61-20250303\nTagged selenium/standalone-chrome:102.0.5005.115-chromedriver-102.0.5005.61-20250303\nTagged selenium/node-chrome:102.0.5005.115-20250303\nTagged selenium/standalone-chrome:102.0.5005.115-20250303\nTagged selenium/node-chrome:102.0-chromedriver-102.0-grid-4.29.0-20250303\nTagged selenium/standalone-chrome:102.0-chromedriver-102.0-grid-4.29.0-20250303\nTagged selenium/node-chrome:102.0-chromedriver-102.0-20250303\nTagged selenium/standalone-chrome:102.0-chromedriver-102.0-20250303\nTagged selenium/node-chrome:102.0-20250303\nTagged selenium/standalone-chrome:102.0-20250303\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.29.0/chrome_103.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.29.0 20250303 selenium false chrome true\nTagging images for browser chrome, version 4.29.0, build date 20250303, namespace selenium\nSelenium Grid version -> 4.29.0-20250303\nChrome version -> 103.0.5060.134\nShort Chrome version -> 103.0\nChromeDriver version -> 103.0.5060.134\nShort ChromeDriver version -> 103.0\nTagged selenium/node-chrome:103.0.5060.134-chromedriver-103.0.5060.134-grid-4.29.0-20250303\nTagged selenium/standalone-chrome:103.0.5060.134-chromedriver-103.0.5060.134-grid-4.29.0-20250303\nTagged selenium/node-chrome:103.0.5060.134-chromedriver-103.0.5060.134-20250303\nTagged selenium/standalone-chrome:103.0.5060.134-chromedriver-103.0.5060.134-20250303\nTagged selenium/node-chrome:103.0.5060.134-20250303\nTagged selenium/standalone-chrome:103.0.5060.134-20250303\nTagged selenium/node-chrome:103.0-chromedriver-103.0-grid-4.29.0-20250303\nTagged selenium/standalone-chrome:103.0-chromedriver-103.0-grid-4.29.0-20250303\nTagged selenium/node-chrome:103.0-chromedriver-103.0-20250303\nTagged selenium/standalone-chrome:103.0-chromedriver-103.0-20250303\nTagged selenium/node-chrome:103.0-20250303\nTagged selenium/standalone-chrome:103.0-20250303\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.29.0/chrome_104.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.29.0 20250303 selenium false chrome true\nTagging images for browser chrome, version 4.29.0, build date 20250303, namespace selenium\nSelenium Grid version -> 4.29.0-20250303\nChrome version -> 104.0.5112.101\nShort Chrome version -> 104.0\nChromeDriver version -> 104.0.5112.79\nShort ChromeDriver version -> 104.0\nTagged selenium/node-chrome:104.0.5112.101-chromedriver-104.0.5112.79-grid-4.29.0-20250303\nTagged selenium/standalone-chrome:104.0.5112.101-chromedriver-104.0.5112.79-grid-4.29.0-20250303\nTagged selenium/node-chrome:104.0.5112.101-chromedriver-104.0.5112.79-20250303\nTagged selenium/standalone-chrome:104.0.5112.101-chromedriver-104.0.5112.79-20250303\nTagged selenium/node-chrome:104.0.5112.101-20250303\nTagged selenium/standalone-chrome:104.0.5112.101-20250303\nTagged selenium/node-chrome:104.0-chromedriver-104.0-grid-4.29.0-20250303\nTagged selenium/standalone-chrome:104.0-chromedriver-104.0-grid-4.29.0-20250303\nTagged selenium/node-chrome:104.0-chromedriver-104.0-20250303\nTagged selenium/standalone-chrome:104.0-chromedriver-104.0-20250303\nTagged selenium/node-chrome:104.0-20250303\nTagged selenium/standalone-chrome:104.0-20250303\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.29.0/chrome_105.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.29.0 20250303 selenium false chrome true\nTagging images for browser chrome, version 4.29.0, build date 20250303, namespace selenium\nSelenium Grid version -> 4.29.0-20250303\nChrome version -> 105.0.5195.125\nShort Chrome version -> 105.0\nChromeDriver version -> 105.0.5195.52\nShort ChromeDriver version -> 105.0\nTagged selenium/node-chrome:105.0.5195.125-chromedriver-105.0.5195.52-grid-4.29.0-20250303\nTagged selenium/standalone-chrome:105.0.5195.125-chromedriver-105.0.5195.52-grid-4.29.0-20250303\nTagged selenium/node-chrome:105.0.5195.125-chromedriver-105.0.5195.52-20250303\nTagged selenium/standalone-chrome:105.0.5195.125-chromedriver-105.0.5195.52-20250303\nTagged selenium/node-chrome:105.0.5195.125-20250303\nTagged selenium/standalone-chrome:105.0.5195.125-20250303\nTagged selenium/node-chrome:105.0-chromedriver-105.0-grid-4.29.0-20250303\nTagged selenium/standalone-chrome:105.0-chromedriver-105.0-grid-4.29.0-20250303\nTagged selenium/node-chrome:105.0-chromedriver-105.0-20250303\nTagged selenium/standalone-chrome:105.0-chromedriver-105.0-20250303\nTagged selenium/node-chrome:105.0-20250303\nTagged selenium/standalone-chrome:105.0-20250303\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.29.0/chrome_106.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.29.0 20250303 selenium false chrome true\nTagging images for browser chrome, version 4.29.0, build date 20250303, namespace selenium\nSelenium Grid version -> 4.29.0-20250303\nChrome version -> 106.0.5249.119\nShort Chrome version -> 106.0\nChromeDriver version -> 106.0.5249.61\nShort ChromeDriver version -> 106.0\nTagged selenium/node-chrome:106.0.5249.119-chromedriver-106.0.5249.61-grid-4.29.0-20250303\nTagged selenium/standalone-chrome:106.0.5249.119-chromedriver-106.0.5249.61-grid-4.29.0-20250303\nTagged selenium/node-chrome:106.0.5249.119-chromedriver-106.0.5249.61-20250303\nTagged selenium/standalone-chrome:106.0.5249.119-chromedriver-106.0.5249.61-20250303\nTagged selenium/node-chrome:106.0.5249.119-20250303\nTagged selenium/standalone-chrome:106.0.5249.119-20250303\nTagged selenium/node-chrome:106.0-chromedriver-106.0-grid-4.29.0-20250303\nTagged selenium/standalone-chrome:106.0-chromedriver-106.0-grid-4.29.0-20250303\nTagged selenium/node-chrome:106.0-chromedriver-106.0-20250303\nTagged selenium/standalone-chrome:106.0-chromedriver-106.0-20250303\nTagged selenium/node-chrome:106.0-20250303\nTagged selenium/standalone-chrome:106.0-20250303\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.29.0/chrome_107.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.29.0 20250303 selenium false chrome true\nTagging images for browser chrome, version 4.29.0, build date 20250303, namespace selenium\nSelenium Grid version -> 4.29.0-20250303\nChrome version -> 107.0.5304.121\nShort Chrome version -> 107.0\nChromeDriver version -> 107.0.5304.62\nShort ChromeDriver version -> 107.0\nTagged selenium/node-chrome:107.0.5304.121-chromedriver-107.0.5304.62-grid-4.29.0-20250303\nTagged selenium/standalone-chrome:107.0.5304.121-chromedriver-107.0.5304.62-grid-4.29.0-20250303\nTagged selenium/node-chrome:107.0.5304.121-chromedriver-107.0.5304.62-20250303\nTagged selenium/standalone-chrome:107.0.5304.121-chromedriver-107.0.5304.62-20250303\nTagged selenium/node-chrome:107.0.5304.121-20250303\nTagged selenium/standalone-chrome:107.0.5304.121-20250303\nTagged selenium/node-chrome:107.0-chromedriver-107.0-grid-4.29.0-20250303\nTagged selenium/standalone-chrome:107.0-chromedriver-107.0-grid-4.29.0-20250303\nTagged selenium/node-chrome:107.0-chromedriver-107.0-20250303\nTagged selenium/standalone-chrome:107.0-chromedriver-107.0-20250303\nTagged selenium/node-chrome:107.0-20250303\nTagged selenium/standalone-chrome:107.0-20250303\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.29.0/chrome_108.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.29.0 20250303 selenium false chrome true\nTagging images for browser chrome, version 4.29.0, build date 20250303, namespace selenium\nSelenium Grid version -> 4.29.0-20250303\nChrome version -> 108.0.5359.124\nShort Chrome version -> 108.0\nChromeDriver version -> 108.0.5359.71\nShort ChromeDriver version -> 108.0\nTagged selenium/node-chrome:108.0.5359.124-chromedriver-108.0.5359.71-grid-4.29.0-20250303\nTagged selenium/standalone-chrome:108.0.5359.124-chromedriver-108.0.5359.71-grid-4.29.0-20250303\nTagged selenium/node-chrome:108.0.5359.124-chromedriver-108.0.5359.71-20250303\nTagged selenium/standalone-chrome:108.0.5359.124-chromedriver-108.0.5359.71-20250303\nTagged selenium/node-chrome:108.0.5359.124-20250303\nTagged selenium/standalone-chrome:108.0.5359.124-20250303\nTagged selenium/node-chrome:108.0-chromedriver-108.0-grid-4.29.0-20250303\nTagged selenium/standalone-chrome:108.0-chromedriver-108.0-grid-4.29.0-20250303\nTagged selenium/node-chrome:108.0-chromedriver-108.0-20250303\nTagged selenium/standalone-chrome:108.0-chromedriver-108.0-20250303\nTagged selenium/node-chrome:108.0-20250303\nTagged selenium/standalone-chrome:108.0-20250303\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.29.0/chrome_109.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.29.0 20250303 selenium false chrome true\nTagging images for browser chrome, version 4.29.0, build date 20250303, namespace selenium\nSelenium Grid version -> 4.29.0-20250303\nChrome version -> 109.0.5414.119\nShort Chrome version -> 109.0\nChromeDriver version -> 109.0.5414.74\nShort ChromeDriver version -> 109.0\nTagged selenium/node-chrome:109.0.5414.119-chromedriver-109.0.5414.74-grid-4.29.0-20250303\nTagged selenium/standalone-chrome:109.0.5414.119-chromedriver-109.0.5414.74-grid-4.29.0-20250303\nTagged selenium/node-chrome:109.0.5414.119-chromedriver-109.0.5414.74-20250303\nTagged selenium/standalone-chrome:109.0.5414.119-chromedriver-109.0.5414.74-20250303\nTagged selenium/node-chrome:109.0.5414.119-20250303\nTagged selenium/standalone-chrome:109.0.5414.119-20250303\nTagged selenium/node-chrome:109.0-chromedriver-109.0-grid-4.29.0-20250303\nTagged selenium/standalone-chrome:109.0-chromedriver-109.0-grid-4.29.0-20250303\nTagged selenium/node-chrome:109.0-chromedriver-109.0-20250303\nTagged selenium/standalone-chrome:109.0-chromedriver-109.0-20250303\nTagged selenium/node-chrome:109.0-20250303\nTagged selenium/standalone-chrome:109.0-20250303\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.29.0/chrome_110.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.29.0 20250303 selenium false chrome true\nTagging images for browser chrome, version 4.29.0, build date 20250303, namespace selenium\nSelenium Grid version -> 4.29.0-20250303\nChrome version -> 110.0.5481.177\nShort Chrome version -> 110.0\nChromeDriver version -> 110.0.5481.77\nShort ChromeDriver version -> 110.0\nTagged selenium/node-chrome:110.0.5481.177-chromedriver-110.0.5481.77-grid-4.29.0-20250303\nTagged selenium/standalone-chrome:110.0.5481.177-chromedriver-110.0.5481.77-grid-4.29.0-20250303\nTagged selenium/node-chrome:110.0.5481.177-chromedriver-110.0.5481.77-20250303\nTagged selenium/standalone-chrome:110.0.5481.177-chromedriver-110.0.5481.77-20250303\nTagged selenium/node-chrome:110.0.5481.177-20250303\nTagged selenium/standalone-chrome:110.0.5481.177-20250303\nTagged selenium/node-chrome:110.0-chromedriver-110.0-grid-4.29.0-20250303\nTagged selenium/standalone-chrome:110.0-chromedriver-110.0-grid-4.29.0-20250303\nTagged selenium/node-chrome:110.0-chromedriver-110.0-20250303\nTagged selenium/standalone-chrome:110.0-chromedriver-110.0-20250303\nTagged selenium/node-chrome:110.0-20250303\nTagged selenium/standalone-chrome:110.0-20250303\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.29.0/chrome_111.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.29.0 20250303 selenium false chrome true\nTagging images for browser chrome, version 4.29.0, build date 20250303, namespace selenium\nSelenium Grid version -> 4.29.0-20250303\nChrome version -> 111.0.5563.146\nShort Chrome version -> 111.0\nChromeDriver version -> 111.0.5563.64\nShort ChromeDriver version -> 111.0\nTagged selenium/node-chrome:111.0.5563.146-chromedriver-111.0.5563.64-grid-4.29.0-20250303\nTagged selenium/standalone-chrome:111.0.5563.146-chromedriver-111.0.5563.64-grid-4.29.0-20250303\nTagged selenium/node-chrome:111.0.5563.146-chromedriver-111.0.5563.64-20250303\nTagged selenium/standalone-chrome:111.0.5563.146-chromedriver-111.0.5563.64-20250303\nTagged selenium/node-chrome:111.0.5563.146-20250303\nTagged selenium/standalone-chrome:111.0.5563.146-20250303\nTagged selenium/node-chrome:111.0-chromedriver-111.0-grid-4.29.0-20250303\nTagged selenium/standalone-chrome:111.0-chromedriver-111.0-grid-4.29.0-20250303\nTagged selenium/node-chrome:111.0-chromedriver-111.0-20250303\nTagged selenium/standalone-chrome:111.0-chromedriver-111.0-20250303\nTagged selenium/node-chrome:111.0-20250303\nTagged selenium/standalone-chrome:111.0-20250303\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.29.0/chrome_112.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.29.0 20250303 selenium false chrome true\nTagging images for browser chrome, version 4.29.0, build date 20250303, namespace selenium\nSelenium Grid version -> 4.29.0-20250303\nChrome version -> 112.0.5615.165\nShort Chrome version -> 112.0\nChromeDriver version -> 112.0.5615.49\nShort ChromeDriver version -> 112.0\nTagged selenium/node-chrome:112.0.5615.165-chromedriver-112.0.5615.49-grid-4.29.0-20250303\nTagged selenium/standalone-chrome:112.0.5615.165-chromedriver-112.0.5615.49-grid-4.29.0-20250303\nTagged selenium/node-chrome:112.0.5615.165-chromedriver-112.0.5615.49-20250303\nTagged selenium/standalone-chrome:112.0.5615.165-chromedriver-112.0.5615.49-20250303\nTagged selenium/node-chrome:112.0.5615.165-20250303\nTagged selenium/standalone-chrome:112.0.5615.165-20250303\nTagged selenium/node-chrome:112.0-chromedriver-112.0-grid-4.29.0-20250303\nTagged selenium/standalone-chrome:112.0-chromedriver-112.0-grid-4.29.0-20250303\nTagged selenium/node-chrome:112.0-chromedriver-112.0-20250303\nTagged selenium/standalone-chrome:112.0-chromedriver-112.0-20250303\nTagged selenium/node-chrome:112.0-20250303\nTagged selenium/standalone-chrome:112.0-20250303\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.29.0/chrome_113.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.29.0 20250303 selenium false chrome true\nTagging images for browser chrome, version 4.29.0, build date 20250303, namespace selenium\nSelenium Grid version -> 4.29.0-20250303\nChrome version -> 113.0.5672.126\nShort Chrome version -> 113.0\nChromeDriver version -> 113.0.5672.63\nShort ChromeDriver version -> 113.0\nTagged selenium/node-chrome:113.0.5672.126-chromedriver-113.0.5672.63-grid-4.29.0-20250303\nTagged selenium/standalone-chrome:113.0.5672.126-chromedriver-113.0.5672.63-grid-4.29.0-20250303\nTagged selenium/node-chrome:113.0.5672.126-chromedriver-113.0.5672.63-20250303\nTagged selenium/standalone-chrome:113.0.5672.126-chromedriver-113.0.5672.63-20250303\nTagged selenium/node-chrome:113.0.5672.126-20250303\nTagged selenium/standalone-chrome:113.0.5672.126-20250303\nTagged selenium/node-chrome:113.0-chromedriver-113.0-grid-4.29.0-20250303\nTagged selenium/standalone-chrome:113.0-chromedriver-113.0-grid-4.29.0-20250303\nTagged selenium/node-chrome:113.0-chromedriver-113.0-20250303\nTagged selenium/standalone-chrome:113.0-chromedriver-113.0-20250303\nTagged selenium/node-chrome:113.0-20250303\nTagged selenium/standalone-chrome:113.0-20250303\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.29.0/chrome_114.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.29.0 20250303 selenium false chrome true\nTagging images for browser chrome, version 4.29.0, build date 20250303, namespace selenium\nSelenium Grid version -> 4.29.0-20250303\nChrome version -> 114.0.5735.198\nShort Chrome version -> 114.0\nChromeDriver version -> 114.0.5735.90\nShort ChromeDriver version -> 114.0\nTagged selenium/node-chrome:114.0.5735.198-chromedriver-114.0.5735.90-grid-4.29.0-20250303\nTagged selenium/standalone-chrome:114.0.5735.198-chromedriver-114.0.5735.90-grid-4.29.0-20250303\nTagged selenium/node-chrome:114.0.5735.198-chromedriver-114.0.5735.90-20250303\nTagged selenium/standalone-chrome:114.0.5735.198-chromedriver-114.0.5735.90-20250303\nTagged selenium/node-chrome:114.0.5735.198-20250303\nTagged selenium/standalone-chrome:114.0.5735.198-20250303\nTagged selenium/node-chrome:114.0-chromedriver-114.0-grid-4.29.0-20250303\nTagged selenium/standalone-chrome:114.0-chromedriver-114.0-grid-4.29.0-20250303\nTagged selenium/node-chrome:114.0-chromedriver-114.0-20250303\nTagged selenium/standalone-chrome:114.0-chromedriver-114.0-20250303\nTagged selenium/node-chrome:114.0-20250303\nTagged selenium/standalone-chrome:114.0-20250303\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.29.0/chrome_115.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.29.0 20250303 selenium false chrome true\nTagging images for browser chrome, version 4.29.0, build date 20250303, namespace selenium\nSelenium Grid version -> 4.29.0-20250303\nChrome version -> 115.0.5790.170\nShort Chrome version -> 115.0\nChromeDriver version -> 115.0.5790.170\nShort ChromeDriver version -> 115.0\nTagged selenium/node-chrome:115.0.5790.170-chromedriver-115.0.5790.170-grid-4.29.0-20250303\nTagged selenium/standalone-chrome:115.0.5790.170-chromedriver-115.0.5790.170-grid-4.29.0-20250303\nTagged selenium/node-chrome:115.0.5790.170-chromedriver-115.0.5790.170-20250303\nTagged selenium/standalone-chrome:115.0.5790.170-chromedriver-115.0.5790.170-20250303\nTagged selenium/node-chrome:115.0.5790.170-20250303\nTagged selenium/standalone-chrome:115.0.5790.170-20250303\nTagged selenium/node-chrome:115.0-chromedriver-115.0-grid-4.29.0-20250303\nTagged selenium/standalone-chrome:115.0-chromedriver-115.0-grid-4.29.0-20250303\nTagged selenium/node-chrome:115.0-chromedriver-115.0-20250303\nTagged selenium/standalone-chrome:115.0-chromedriver-115.0-20250303\nTagged selenium/node-chrome:115.0-20250303\nTagged selenium/standalone-chrome:115.0-20250303\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.29.0/chrome_116.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.29.0 20250303 selenium false chrome true\nTagging images for browser chrome, version 4.29.0, build date 20250303, namespace selenium\nSelenium Grid version -> 4.29.0-20250303\nChrome version -> 116.0.5845.187\nShort Chrome version -> 116.0\nChromeDriver version -> 116.0.5845.96\nShort ChromeDriver version -> 116.0\nTagged selenium/node-chrome:116.0.5845.187-chromedriver-116.0.5845.96-grid-4.29.0-20250303\nTagged selenium/standalone-chrome:116.0.5845.187-chromedriver-116.0.5845.96-grid-4.29.0-20250303\nTagged selenium/node-chrome:116.0.5845.187-chromedriver-116.0.5845.96-20250303\nTagged selenium/standalone-chrome:116.0.5845.187-chromedriver-116.0.5845.96-20250303\nTagged selenium/node-chrome:116.0.5845.187-20250303\nTagged selenium/standalone-chrome:116.0.5845.187-20250303\nTagged selenium/node-chrome:116.0-chromedriver-116.0-grid-4.29.0-20250303\nTagged selenium/standalone-chrome:116.0-chromedriver-116.0-grid-4.29.0-20250303\nTagged selenium/node-chrome:116.0-chromedriver-116.0-20250303\nTagged selenium/standalone-chrome:116.0-chromedriver-116.0-20250303\nTagged selenium/node-chrome:116.0-20250303\nTagged selenium/standalone-chrome:116.0-20250303\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.29.0/chrome_117.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.29.0 20250303 selenium false chrome true\nTagging images for browser chrome, version 4.29.0, build date 20250303, namespace selenium\nSelenium Grid version -> 4.29.0-20250303\nChrome version -> 117.0.5938.149\nShort Chrome version -> 117.0\nChromeDriver version -> 117.0.5938.149\nShort ChromeDriver version -> 117.0\nTagged selenium/node-chrome:117.0.5938.149-chromedriver-117.0.5938.149-grid-4.29.0-20250303\nTagged selenium/standalone-chrome:117.0.5938.149-chromedriver-117.0.5938.149-grid-4.29.0-20250303\nTagged selenium/node-chrome:117.0.5938.149-chromedriver-117.0.5938.149-20250303\nTagged selenium/standalone-chrome:117.0.5938.149-chromedriver-117.0.5938.149-20250303\nTagged selenium/node-chrome:117.0.5938.149-20250303\nTagged selenium/standalone-chrome:117.0.5938.149-20250303\nTagged selenium/node-chrome:117.0-chromedriver-117.0-grid-4.29.0-20250303\nTagged selenium/standalone-chrome:117.0-chromedriver-117.0-grid-4.29.0-20250303\nTagged selenium/node-chrome:117.0-chromedriver-117.0-20250303\nTagged selenium/standalone-chrome:117.0-chromedriver-117.0-20250303\nTagged selenium/node-chrome:117.0-20250303\nTagged selenium/standalone-chrome:117.0-20250303\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.29.0/chrome_118.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.29.0 20250303 selenium false chrome true\nTagging images for browser chrome, version 4.29.0, build date 20250303, namespace selenium\nSelenium Grid version -> 4.29.0-20250303\nChrome version -> 118.0.5993.117\nShort Chrome version -> 118.0\nChromeDriver version -> 118.0.5993.70\nShort ChromeDriver version -> 118.0\nTagged selenium/node-chrome:118.0.5993.117-chromedriver-118.0.5993.70-grid-4.29.0-20250303\nTagged selenium/standalone-chrome:118.0.5993.117-chromedriver-118.0.5993.70-grid-4.29.0-20250303\nTagged selenium/node-chrome:118.0.5993.117-chromedriver-118.0.5993.70-20250303\nTagged selenium/standalone-chrome:118.0.5993.117-chromedriver-118.0.5993.70-20250303\nTagged selenium/node-chrome:118.0.5993.117-20250303\nTagged selenium/standalone-chrome:118.0.5993.117-20250303\nTagged selenium/node-chrome:118.0-chromedriver-118.0-grid-4.29.0-20250303\nTagged selenium/standalone-chrome:118.0-chromedriver-118.0-grid-4.29.0-20250303\nTagged selenium/node-chrome:118.0-chromedriver-118.0-20250303\nTagged selenium/standalone-chrome:118.0-chromedriver-118.0-20250303\nTagged selenium/node-chrome:118.0-20250303\nTagged selenium/standalone-chrome:118.0-20250303\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.29.0/chrome_119.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.29.0 20250303 selenium false chrome true\nTagging images for browser chrome, version 4.29.0, build date 20250303, namespace selenium\nSelenium Grid version -> 4.29.0-20250303\nChrome version -> 119.0.6045.199\nShort Chrome version -> 119.0\nChromeDriver version -> 119.0.6045.105\nShort ChromeDriver version -> 119.0\nTagged selenium/node-chrome:119.0.6045.199-chromedriver-119.0.6045.105-grid-4.29.0-20250303\nTagged selenium/standalone-chrome:119.0.6045.199-chromedriver-119.0.6045.105-grid-4.29.0-20250303\nTagged selenium/node-chrome:119.0.6045.199-chromedriver-119.0.6045.105-20250303\nTagged selenium/standalone-chrome:119.0.6045.199-chromedriver-119.0.6045.105-20250303\nTagged selenium/node-chrome:119.0.6045.199-20250303\nTagged selenium/standalone-chrome:119.0.6045.199-20250303\nTagged selenium/node-chrome:119.0-chromedriver-119.0-grid-4.29.0-20250303\nTagged selenium/standalone-chrome:119.0-chromedriver-119.0-grid-4.29.0-20250303\nTagged selenium/node-chrome:119.0-chromedriver-119.0-20250303\nTagged selenium/standalone-chrome:119.0-chromedriver-119.0-20250303\nTagged selenium/node-chrome:119.0-20250303\nTagged selenium/standalone-chrome:119.0-20250303\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.29.0/chrome_120.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.29.0 20250303 selenium false chrome true\nTagging images for browser chrome, version 4.29.0, build date 20250303, namespace selenium\nSelenium Grid version -> 4.29.0-20250303\nChrome version -> 120.0.6099.224\nShort Chrome version -> 120.0\nChromeDriver version -> 120.0.6099.109\nShort ChromeDriver version -> 120.0\nTagged selenium/node-chrome:120.0.6099.224-chromedriver-120.0.6099.109-grid-4.29.0-20250303\nTagged selenium/standalone-chrome:120.0.6099.224-chromedriver-120.0.6099.109-grid-4.29.0-20250303\nTagged selenium/node-chrome:120.0.6099.224-chromedriver-120.0.6099.109-20250303\nTagged selenium/standalone-chrome:120.0.6099.224-chromedriver-120.0.6099.109-20250303\nTagged selenium/node-chrome:120.0.6099.224-20250303\nTagged selenium/standalone-chrome:120.0.6099.224-20250303\nTagged selenium/node-chrome:120.0-chromedriver-120.0-grid-4.29.0-20250303\nTagged selenium/standalone-chrome:120.0-chromedriver-120.0-grid-4.29.0-20250303\nTagged selenium/node-chrome:120.0-chromedriver-120.0-20250303\nTagged selenium/standalone-chrome:120.0-chromedriver-120.0-20250303\nTagged selenium/node-chrome:120.0-20250303\nTagged selenium/standalone-chrome:120.0-20250303\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.29.0/chrome_121.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.29.0 20250303 selenium false chrome true\nTagging images for browser chrome, version 4.29.0, build date 20250303, namespace selenium\nSelenium Grid version -> 4.29.0-20250303\nChrome version -> 121.0.6167.184\nShort Chrome version -> 121.0\nChromeDriver version -> 121.0.6167.184\nShort ChromeDriver version -> 121.0\nTagged selenium/node-chrome:121.0.6167.184-chromedriver-121.0.6167.184-grid-4.29.0-20250303\nTagged selenium/standalone-chrome:121.0.6167.184-chromedriver-121.0.6167.184-grid-4.29.0-20250303\nTagged selenium/node-chrome:121.0.6167.184-chromedriver-121.0.6167.184-20250303\nTagged selenium/standalone-chrome:121.0.6167.184-chromedriver-121.0.6167.184-20250303\nTagged selenium/node-chrome:121.0.6167.184-20250303\nTagged selenium/standalone-chrome:121.0.6167.184-20250303\nTagged selenium/node-chrome:121.0-chromedriver-121.0-grid-4.29.0-20250303\nTagged selenium/standalone-chrome:121.0-chromedriver-121.0-grid-4.29.0-20250303\nTagged selenium/node-chrome:121.0-chromedriver-121.0-20250303\nTagged selenium/standalone-chrome:121.0-chromedriver-121.0-20250303\nTagged selenium/node-chrome:121.0-20250303\nTagged selenium/standalone-chrome:121.0-20250303\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.29.0/chrome_122.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.29.0 20250303 selenium false chrome true\nTagging images for browser chrome, version 4.29.0, build date 20250303, namespace selenium\nSelenium Grid version -> 4.29.0-20250303\nChrome version -> 122.0.6261.128\nShort Chrome version -> 122.0\nChromeDriver version -> 122.0.6261.128\nShort ChromeDriver version -> 122.0\nTagged selenium/node-chrome:122.0.6261.128-chromedriver-122.0.6261.128-grid-4.29.0-20250303\nTagged selenium/standalone-chrome:122.0.6261.128-chromedriver-122.0.6261.128-grid-4.29.0-20250303\nTagged selenium/node-chrome:122.0.6261.128-chromedriver-122.0.6261.128-20250303\nTagged selenium/standalone-chrome:122.0.6261.128-chromedriver-122.0.6261.128-20250303\nTagged selenium/node-chrome:122.0.6261.128-20250303\nTagged selenium/standalone-chrome:122.0.6261.128-20250303\nTagged selenium/node-chrome:122.0-chromedriver-122.0-grid-4.29.0-20250303\nTagged selenium/standalone-chrome:122.0-chromedriver-122.0-grid-4.29.0-20250303\nTagged selenium/node-chrome:122.0-chromedriver-122.0-20250303\nTagged selenium/standalone-chrome:122.0-chromedriver-122.0-20250303\nTagged selenium/node-chrome:122.0-20250303\nTagged selenium/standalone-chrome:122.0-20250303\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.29.0/chrome_123.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.29.0 20250303 selenium false chrome true\nTagging images for browser chrome, version 4.29.0, build date 20250303, namespace selenium\nSelenium Grid version -> 4.29.0-20250303\nChrome version -> 123.0.6312.122\nShort Chrome version -> 123.0\nChromeDriver version -> 123.0.6312.122\nShort ChromeDriver version -> 123.0\nTagged selenium/node-chrome:123.0.6312.122-chromedriver-123.0.6312.122-grid-4.29.0-20250303\nTagged selenium/standalone-chrome:123.0.6312.122-chromedriver-123.0.6312.122-grid-4.29.0-20250303\nTagged selenium/node-chrome:123.0.6312.122-chromedriver-123.0.6312.122-20250303\nTagged selenium/standalone-chrome:123.0.6312.122-chromedriver-123.0.6312.122-20250303\nTagged selenium/node-chrome:123.0.6312.122-20250303\nTagged selenium/standalone-chrome:123.0.6312.122-20250303\nTagged selenium/node-chrome:123.0-chromedriver-123.0-grid-4.29.0-20250303\nTagged selenium/standalone-chrome:123.0-chromedriver-123.0-grid-4.29.0-20250303\nTagged selenium/node-chrome:123.0-chromedriver-123.0-20250303\nTagged selenium/standalone-chrome:123.0-chromedriver-123.0-20250303\nTagged selenium/node-chrome:123.0-20250303\nTagged selenium/standalone-chrome:123.0-20250303\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.29.0/chrome_124.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.29.0 20250303 selenium false chrome true\nTagging images for browser chrome, version 4.29.0, build date 20250303, namespace selenium\nSelenium Grid version -> 4.29.0-20250303\nChrome version -> 124.0.6367.207\nShort Chrome version -> 124.0\nChromeDriver version -> 124.0.6367.207\nShort ChromeDriver version -> 124.0\nTagged selenium/node-chrome:124.0.6367.207-chromedriver-124.0.6367.207-grid-4.29.0-20250303\nTagged selenium/standalone-chrome:124.0.6367.207-chromedriver-124.0.6367.207-grid-4.29.0-20250303\nTagged selenium/node-chrome:124.0.6367.207-chromedriver-124.0.6367.207-20250303\nTagged selenium/standalone-chrome:124.0.6367.207-chromedriver-124.0.6367.207-20250303\nTagged selenium/node-chrome:124.0.6367.207-20250303\nTagged selenium/standalone-chrome:124.0.6367.207-20250303\nTagged selenium/node-chrome:124.0-chromedriver-124.0-grid-4.29.0-20250303\nTagged selenium/standalone-chrome:124.0-chromedriver-124.0-grid-4.29.0-20250303\nTagged selenium/node-chrome:124.0-chromedriver-124.0-20250303\nTagged selenium/standalone-chrome:124.0-chromedriver-124.0-20250303\nTagged selenium/node-chrome:124.0-20250303\nTagged selenium/standalone-chrome:124.0-20250303\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.29.0/chrome_125.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.29.0 20250303 selenium false chrome true\nTagging images for browser chrome, version 4.29.0, build date 20250303, namespace selenium\nSelenium Grid version -> 4.29.0-20250303\nChrome version -> 125.0.6422.141\nShort Chrome version -> 125.0\nChromeDriver version -> 125.0.6422.141\nShort ChromeDriver version -> 125.0\nTagged selenium/node-chrome:125.0.6422.141-chromedriver-125.0.6422.141-grid-4.29.0-20250303\nTagged selenium/standalone-chrome:125.0.6422.141-chromedriver-125.0.6422.141-grid-4.29.0-20250303\nTagged selenium/node-chrome:125.0.6422.141-chromedriver-125.0.6422.141-20250303\nTagged selenium/standalone-chrome:125.0.6422.141-chromedriver-125.0.6422.141-20250303\nTagged selenium/node-chrome:125.0.6422.141-20250303\nTagged selenium/standalone-chrome:125.0.6422.141-20250303\nTagged selenium/node-chrome:125.0-chromedriver-125.0-grid-4.29.0-20250303\nTagged selenium/standalone-chrome:125.0-chromedriver-125.0-grid-4.29.0-20250303\nTagged selenium/node-chrome:125.0-chromedriver-125.0-20250303\nTagged selenium/standalone-chrome:125.0-chromedriver-125.0-20250303\nTagged selenium/node-chrome:125.0-20250303\nTagged selenium/standalone-chrome:125.0-20250303\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.29.0/chrome_126.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.29.0 20250303 selenium false chrome true\nTagging images for browser chrome, version 4.29.0, build date 20250303, namespace selenium\nSelenium Grid version -> 4.29.0-20250303\nChrome version -> 126.0.6478.182\nShort Chrome version -> 126.0\nChromeDriver version -> 126.0.6478.182\nShort ChromeDriver version -> 126.0\nTagged selenium/node-chrome:126.0.6478.182-chromedriver-126.0.6478.182-grid-4.29.0-20250303\nTagged selenium/standalone-chrome:126.0.6478.182-chromedriver-126.0.6478.182-grid-4.29.0-20250303\nTagged selenium/node-chrome:126.0.6478.182-chromedriver-126.0.6478.182-20250303\nTagged selenium/standalone-chrome:126.0.6478.182-chromedriver-126.0.6478.182-20250303\nTagged selenium/node-chrome:126.0.6478.182-20250303\nTagged selenium/standalone-chrome:126.0.6478.182-20250303\nTagged selenium/node-chrome:126.0-chromedriver-126.0-grid-4.29.0-20250303\nTagged selenium/standalone-chrome:126.0-chromedriver-126.0-grid-4.29.0-20250303\nTagged selenium/node-chrome:126.0-chromedriver-126.0-20250303\nTagged selenium/standalone-chrome:126.0-chromedriver-126.0-20250303\nTagged selenium/node-chrome:126.0-20250303\nTagged selenium/standalone-chrome:126.0-20250303\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.29.0/chrome_127.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.29.0 20250303 selenium false chrome true\nTagging images for browser chrome, version 4.29.0, build date 20250303, namespace selenium\nSelenium Grid version -> 4.29.0-20250303\nChrome version -> 127.0.6533.119\nShort Chrome version -> 127.0\nChromeDriver version -> 127.0.6533.119\nShort ChromeDriver version -> 127.0\nTagged selenium/node-chrome:127.0.6533.119-chromedriver-127.0.6533.119-grid-4.29.0-20250303\nTagged selenium/standalone-chrome:127.0.6533.119-chromedriver-127.0.6533.119-grid-4.29.0-20250303\nTagged selenium/node-chrome:127.0.6533.119-chromedriver-127.0.6533.119-20250303\nTagged selenium/standalone-chrome:127.0.6533.119-chromedriver-127.0.6533.119-20250303\nTagged selenium/node-chrome:127.0.6533.119-20250303\nTagged selenium/standalone-chrome:127.0.6533.119-20250303\nTagged selenium/node-chrome:127.0-chromedriver-127.0-grid-4.29.0-20250303\nTagged selenium/standalone-chrome:127.0-chromedriver-127.0-grid-4.29.0-20250303\nTagged selenium/node-chrome:127.0-chromedriver-127.0-20250303\nTagged selenium/standalone-chrome:127.0-chromedriver-127.0-20250303\nTagged selenium/node-chrome:127.0-20250303\nTagged selenium/standalone-chrome:127.0-20250303\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.29.0/chrome_128.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.29.0 20250303 selenium false chrome true\nTagging images for browser chrome, version 4.29.0, build date 20250303, namespace selenium\nSelenium Grid version -> 4.29.0-20250303\nChrome version -> 128.0.6613.137\nShort Chrome version -> 128.0\nChromeDriver version -> 128.0.6613.137\nShort ChromeDriver version -> 128.0\nTagged selenium/node-chrome:128.0.6613.137-chromedriver-128.0.6613.137-grid-4.29.0-20250303\nTagged selenium/standalone-chrome:128.0.6613.137-chromedriver-128.0.6613.137-grid-4.29.0-20250303\nTagged selenium/node-chrome:128.0.6613.137-chromedriver-128.0.6613.137-20250303\nTagged selenium/standalone-chrome:128.0.6613.137-chromedriver-128.0.6613.137-20250303\nTagged selenium/node-chrome:128.0.6613.137-20250303\nTagged selenium/standalone-chrome:128.0.6613.137-20250303\nTagged selenium/node-chrome:128.0-chromedriver-128.0-grid-4.29.0-20250303\nTagged selenium/standalone-chrome:128.0-chromedriver-128.0-grid-4.29.0-20250303\nTagged selenium/node-chrome:128.0-chromedriver-128.0-20250303\nTagged selenium/standalone-chrome:128.0-chromedriver-128.0-20250303\nTagged selenium/node-chrome:128.0-20250303\nTagged selenium/standalone-chrome:128.0-20250303\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.29.0/chrome_129.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.29.0 20250303 selenium false chrome true\nTagging images for browser chrome, version 4.29.0, build date 20250303, namespace selenium\nSelenium Grid version -> 4.29.0-20250303\nChrome version -> 129.0.6668.100\nShort Chrome version -> 129.0\nChromeDriver version -> 129.0.6668.100\nShort ChromeDriver version -> 129.0\nTagged selenium/node-chrome:129.0.6668.100-chromedriver-129.0.6668.100-grid-4.29.0-20250303\nTagged selenium/standalone-chrome:129.0.6668.100-chromedriver-129.0.6668.100-grid-4.29.0-20250303\nTagged selenium/node-chrome:129.0.6668.100-chromedriver-129.0.6668.100-20250303\nTagged selenium/standalone-chrome:129.0.6668.100-chromedriver-129.0.6668.100-20250303\nTagged selenium/node-chrome:129.0.6668.100-20250303\nTagged selenium/standalone-chrome:129.0.6668.100-20250303\nTagged selenium/node-chrome:129.0-chromedriver-129.0-grid-4.29.0-20250303\nTagged selenium/standalone-chrome:129.0-chromedriver-129.0-grid-4.29.0-20250303\nTagged selenium/node-chrome:129.0-chromedriver-129.0-20250303\nTagged selenium/standalone-chrome:129.0-chromedriver-129.0-20250303\nTagged selenium/node-chrome:129.0-20250303\nTagged selenium/standalone-chrome:129.0-20250303\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.29.0/chrome_130.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.29.0 20250303 selenium false chrome true\nTagging images for browser chrome, version 4.29.0, build date 20250303, namespace selenium\nSelenium Grid version -> 4.29.0-20250303\nChrome version -> 130.0.6723.116\nShort Chrome version -> 130.0\nChromeDriver version -> 130.0.6723.116\nShort ChromeDriver version -> 130.0\nTagged selenium/node-chrome:130.0.6723.116-chromedriver-130.0.6723.116-grid-4.29.0-20250303\nTagged selenium/standalone-chrome:130.0.6723.116-chromedriver-130.0.6723.116-grid-4.29.0-20250303\nTagged selenium/node-chrome:130.0.6723.116-chromedriver-130.0.6723.116-20250303\nTagged selenium/standalone-chrome:130.0.6723.116-chromedriver-130.0.6723.116-20250303\nTagged selenium/node-chrome:130.0.6723.116-20250303\nTagged selenium/standalone-chrome:130.0.6723.116-20250303\nTagged selenium/node-chrome:130.0-chromedriver-130.0-grid-4.29.0-20250303\nTagged selenium/standalone-chrome:130.0-chromedriver-130.0-grid-4.29.0-20250303\nTagged selenium/node-chrome:130.0-chromedriver-130.0-20250303\nTagged selenium/standalone-chrome:130.0-chromedriver-130.0-20250303\nTagged selenium/node-chrome:130.0-20250303\nTagged selenium/standalone-chrome:130.0-20250303\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.29.0/chrome_131.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.29.0 20250303 selenium false chrome true\nTagging images for browser chrome, version 4.29.0, build date 20250303, namespace selenium\nSelenium Grid version -> 4.29.0-20250303\nChrome version -> 131.0.6778.264\nShort Chrome version -> 131.0\nChromeDriver version -> 131.0.6778.264\nShort ChromeDriver version -> 131.0\nTagged selenium/node-chrome:131.0.6778.264-chromedriver-131.0.6778.264-grid-4.29.0-20250303\nTagged selenium/standalone-chrome:131.0.6778.264-chromedriver-131.0.6778.264-grid-4.29.0-20250303\nTagged selenium/node-chrome:131.0.6778.264-chromedriver-131.0.6778.264-20250303\nTagged selenium/standalone-chrome:131.0.6778.264-chromedriver-131.0.6778.264-20250303\nTagged selenium/node-chrome:131.0.6778.264-20250303\nTagged selenium/standalone-chrome:131.0.6778.264-20250303\nTagged selenium/node-chrome:131.0-chromedriver-131.0-grid-4.29.0-20250303\nTagged selenium/standalone-chrome:131.0-chromedriver-131.0-grid-4.29.0-20250303\nTagged selenium/node-chrome:131.0-chromedriver-131.0-20250303\nTagged selenium/standalone-chrome:131.0-chromedriver-131.0-20250303\nTagged selenium/node-chrome:131.0-20250303\nTagged selenium/standalone-chrome:131.0-20250303\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.29.0/chrome_132.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.29.0 20250303 selenium false chrome true\nTagging images for browser chrome, version 4.29.0, build date 20250303, namespace selenium\nSelenium Grid version -> 4.29.0-20250303\nChrome version -> 132.0.6834.159\nShort Chrome version -> 132.0\nChromeDriver version -> 132.0.6834.159\nShort ChromeDriver version -> 132.0\nTagged selenium/node-chrome:132.0.6834.159-chromedriver-132.0.6834.159-grid-4.29.0-20250303\nTagged selenium/standalone-chrome:132.0.6834.159-chromedriver-132.0.6834.159-grid-4.29.0-20250303\nTagged selenium/node-chrome:132.0.6834.159-chromedriver-132.0.6834.159-20250303\nTagged selenium/standalone-chrome:132.0.6834.159-chromedriver-132.0.6834.159-20250303\nTagged selenium/node-chrome:132.0.6834.159-20250303\nTagged selenium/standalone-chrome:132.0.6834.159-20250303\nTagged selenium/node-chrome:132.0-chromedriver-132.0-grid-4.29.0-20250303\nTagged selenium/standalone-chrome:132.0-chromedriver-132.0-grid-4.29.0-20250303\nTagged selenium/node-chrome:132.0-chromedriver-132.0-20250303\nTagged selenium/standalone-chrome:132.0-chromedriver-132.0-20250303\nTagged selenium/node-chrome:132.0-20250303\nTagged selenium/standalone-chrome:132.0-20250303\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.29.0/chrome_133.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.29.0 20250303 selenium false chrome true\nTagging images for browser chrome, version 4.29.0, build date 20250303, namespace selenium\nSelenium Grid version -> 4.29.0-20250303\nChrome version -> 133.0.6943.141\nShort Chrome version -> 133.0\nChromeDriver version -> 133.0.6943.141\nShort ChromeDriver version -> 133.0\nTagged selenium/node-chrome:133.0.6943.141-chromedriver-133.0.6943.141-grid-4.29.0-20250303\nTagged selenium/standalone-chrome:133.0.6943.141-chromedriver-133.0.6943.141-grid-4.29.0-20250303\nTagged selenium/node-chrome:133.0.6943.141-chromedriver-133.0.6943.141-20250303\nTagged selenium/standalone-chrome:133.0.6943.141-chromedriver-133.0.6943.141-20250303\nTagged selenium/node-chrome:133.0.6943.141-20250303\nTagged selenium/standalone-chrome:133.0.6943.141-20250303\nTagged selenium/node-chrome:133.0-chromedriver-133.0-grid-4.29.0-20250303\nTagged selenium/standalone-chrome:133.0-chromedriver-133.0-grid-4.29.0-20250303\nTagged selenium/node-chrome:133.0-chromedriver-133.0-20250303\nTagged selenium/standalone-chrome:133.0-chromedriver-133.0-20250303\nTagged selenium/node-chrome:133.0-20250303\nTagged selenium/standalone-chrome:133.0-20250303\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.29.0/chrome_134.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.29.0 20250303 selenium false chrome true\nTagging images for browser chrome, version 4.29.0, build date 20250303, namespace selenium\nSelenium Grid version -> 4.29.0-20250303\nChrome version -> 134.0.6998.35\nShort Chrome version -> 134.0\nChromeDriver version -> 134.0.6998.35\nShort ChromeDriver version -> 134.0\nTagged selenium/node-chrome:134.0.6998.35-chromedriver-134.0.6998.35-grid-4.29.0-20250303\nTagged selenium/standalone-chrome:134.0.6998.35-chromedriver-134.0.6998.35-grid-4.29.0-20250303\nTagged selenium/node-chrome:134.0.6998.35-chromedriver-134.0.6998.35-20250303\nTagged selenium/standalone-chrome:134.0.6998.35-chromedriver-134.0.6998.35-20250303\nTagged selenium/node-chrome:134.0.6998.35-20250303\nTagged selenium/standalone-chrome:134.0.6998.35-20250303\nTagged selenium/node-chrome:134.0-chromedriver-134.0-grid-4.29.0-20250303\nTagged selenium/standalone-chrome:134.0-chromedriver-134.0-grid-4.29.0-20250303\nTagged selenium/node-chrome:134.0-chromedriver-134.0-20250303\nTagged selenium/standalone-chrome:134.0-chromedriver-134.0-20250303\nTagged selenium/node-chrome:134.0-20250303\nTagged selenium/standalone-chrome:134.0-20250303\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.29.0/chrome_95.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.29.0 20250303 selenium false chrome true\nTagging images for browser chrome, version 4.29.0, build date 20250303, namespace selenium\nSelenium Grid version -> 4.29.0-20250303\nChrome version -> 95.0.4638.69\nShort Chrome version -> 95.0\nChromeDriver version -> 95.0.4638.69\nShort ChromeDriver version -> 95.0\nTagged selenium/node-chrome:95.0.4638.69-chromedriver-95.0.4638.69-grid-4.29.0-20250303\nTagged selenium/standalone-chrome:95.0.4638.69-chromedriver-95.0.4638.69-grid-4.29.0-20250303\nTagged selenium/node-chrome:95.0.4638.69-chromedriver-95.0.4638.69-20250303\nTagged selenium/standalone-chrome:95.0.4638.69-chromedriver-95.0.4638.69-20250303\nTagged selenium/node-chrome:95.0.4638.69-20250303\nTagged selenium/standalone-chrome:95.0.4638.69-20250303\nTagged selenium/node-chrome:95.0-chromedriver-95.0-grid-4.29.0-20250303\nTagged selenium/standalone-chrome:95.0-chromedriver-95.0-grid-4.29.0-20250303\nTagged selenium/node-chrome:95.0-chromedriver-95.0-20250303\nTagged selenium/standalone-chrome:95.0-chromedriver-95.0-20250303\nTagged selenium/node-chrome:95.0-20250303\nTagged selenium/standalone-chrome:95.0-20250303\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.29.0/chrome_96.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.29.0 20250303 selenium false chrome true\nTagging images for browser chrome, version 4.29.0, build date 20250303, namespace selenium\nSelenium Grid version -> 4.29.0-20250303\nChrome version -> 96.0.4664.110\nShort Chrome version -> 96.0\nChromeDriver version -> 96.0.4664.45\nShort ChromeDriver version -> 96.0\nTagged selenium/node-chrome:96.0.4664.110-chromedriver-96.0.4664.45-grid-4.29.0-20250303\nTagged selenium/standalone-chrome:96.0.4664.110-chromedriver-96.0.4664.45-grid-4.29.0-20250303\nTagged selenium/node-chrome:96.0.4664.110-chromedriver-96.0.4664.45-20250303\nTagged selenium/standalone-chrome:96.0.4664.110-chromedriver-96.0.4664.45-20250303\nTagged selenium/node-chrome:96.0.4664.110-20250303\nTagged selenium/standalone-chrome:96.0.4664.110-20250303\nTagged selenium/node-chrome:96.0-chromedriver-96.0-grid-4.29.0-20250303\nTagged selenium/standalone-chrome:96.0-chromedriver-96.0-grid-4.29.0-20250303\nTagged selenium/node-chrome:96.0-chromedriver-96.0-20250303\nTagged selenium/standalone-chrome:96.0-chromedriver-96.0-20250303\nTagged selenium/node-chrome:96.0-20250303\nTagged selenium/standalone-chrome:96.0-20250303\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.29.0/chrome_97.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.29.0 20250303 selenium false chrome true\nTagging images for browser chrome, version 4.29.0, build date 20250303, namespace selenium\nSelenium Grid version -> 4.29.0-20250303\nChrome version -> 97.0.4692.99\nShort Chrome version -> 97.0\nChromeDriver version -> 97.0.4692.71\nShort ChromeDriver version -> 97.0\nTagged selenium/node-chrome:97.0.4692.99-chromedriver-97.0.4692.71-grid-4.29.0-20250303\nTagged selenium/standalone-chrome:97.0.4692.99-chromedriver-97.0.4692.71-grid-4.29.0-20250303\nTagged selenium/node-chrome:97.0.4692.99-chromedriver-97.0.4692.71-20250303\nTagged selenium/standalone-chrome:97.0.4692.99-chromedriver-97.0.4692.71-20250303\nTagged selenium/node-chrome:97.0.4692.99-20250303\nTagged selenium/standalone-chrome:97.0.4692.99-20250303\nTagged selenium/node-chrome:97.0-chromedriver-97.0-grid-4.29.0-20250303\nTagged selenium/standalone-chrome:97.0-chromedriver-97.0-grid-4.29.0-20250303\nTagged selenium/node-chrome:97.0-chromedriver-97.0-20250303\nTagged selenium/standalone-chrome:97.0-chromedriver-97.0-20250303\nTagged selenium/node-chrome:97.0-20250303\nTagged selenium/standalone-chrome:97.0-20250303\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.29.0/chrome_98.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.29.0 20250303 selenium false chrome true\nTagging images for browser chrome, version 4.29.0, build date 20250303, namespace selenium\nSelenium Grid version -> 4.29.0-20250303\nChrome version -> 98.0.4758.102\nShort Chrome version -> 98.0\nChromeDriver version -> 98.0.4758.102\nShort ChromeDriver version -> 98.0\nTagged selenium/node-chrome:98.0.4758.102-chromedriver-98.0.4758.102-grid-4.29.0-20250303\nTagged selenium/standalone-chrome:98.0.4758.102-chromedriver-98.0.4758.102-grid-4.29.0-20250303\nTagged selenium/node-chrome:98.0.4758.102-chromedriver-98.0.4758.102-20250303\nTagged selenium/standalone-chrome:98.0.4758.102-chromedriver-98.0.4758.102-20250303\nTagged selenium/node-chrome:98.0.4758.102-20250303\nTagged selenium/standalone-chrome:98.0.4758.102-20250303\nTagged selenium/node-chrome:98.0-chromedriver-98.0-grid-4.29.0-20250303\nTagged selenium/standalone-chrome:98.0-chromedriver-98.0-grid-4.29.0-20250303\nTagged selenium/node-chrome:98.0-chromedriver-98.0-20250303\nTagged selenium/standalone-chrome:98.0-chromedriver-98.0-20250303\nTagged selenium/node-chrome:98.0-20250303\nTagged selenium/standalone-chrome:98.0-20250303\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.29.0/chrome_99.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.29.0 20250303 selenium false chrome true\nTagging images for browser chrome, version 4.29.0, build date 20250303, namespace selenium\nSelenium Grid version -> 4.29.0-20250303\nChrome version -> 99.0.4844.84\nShort Chrome version -> 99.0\nChromeDriver version -> 99.0.4844.51\nShort ChromeDriver version -> 99.0\nTagged selenium/node-chrome:99.0.4844.84-chromedriver-99.0.4844.51-grid-4.29.0-20250303\nTagged selenium/standalone-chrome:99.0.4844.84-chromedriver-99.0.4844.51-grid-4.29.0-20250303\nTagged selenium/node-chrome:99.0.4844.84-chromedriver-99.0.4844.51-20250303\nTagged selenium/standalone-chrome:99.0.4844.84-chromedriver-99.0.4844.51-20250303\nTagged selenium/node-chrome:99.0.4844.84-20250303\nTagged selenium/standalone-chrome:99.0.4844.84-20250303\nTagged selenium/node-chrome:99.0-chromedriver-99.0-grid-4.29.0-20250303\nTagged selenium/standalone-chrome:99.0-chromedriver-99.0-grid-4.29.0-20250303\nTagged selenium/node-chrome:99.0-chromedriver-99.0-20250303\nTagged selenium/standalone-chrome:99.0-chromedriver-99.0-20250303\nTagged selenium/node-chrome:99.0-20250303\nTagged selenium/standalone-chrome:99.0-20250303\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.29.0/edge_114.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.29.0 20250303 selenium false edge true\nTagging images for browser edge, version 4.29.0, build date 20250303, namespace selenium\nSelenium Grid version -> 4.29.0-20250303\nEdge version -> 114.0.1823.82\nShort Edge version -> 114.0\nEdgeDriver version -> 114.0.1823.82\nShort EdgeDriver version -> 114.0\nTagged selenium/node-edge:114.0.1823.82-edgedriver-114.0.1823.82-grid-4.29.0-20250303\nTagged selenium/standalone-edge:114.0.1823.82-edgedriver-114.0.1823.82-grid-4.29.0-20250303\nTagged selenium/node-edge:114.0.1823.82-edgedriver-114.0.1823.82-20250303\nTagged selenium/standalone-edge:114.0.1823.82-edgedriver-114.0.1823.82-20250303\nTagged selenium/node-edge:114.0.1823.82-20250303\nTagged selenium/standalone-edge:114.0.1823.82-20250303\nTagged selenium/node-edge:114.0-edgedriver-114.0-grid-4.29.0-20250303\nTagged selenium/standalone-edge:114.0-edgedriver-114.0-grid-4.29.0-20250303\nTagged selenium/node-edge:114.0-edgedriver-114.0-20250303\nTagged selenium/standalone-edge:114.0-edgedriver-114.0-20250303\nTagged selenium/node-edge:114.0-20250303\nTagged selenium/standalone-edge:114.0-20250303\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.29.0/edge_115.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.29.0 20250303 selenium false edge true\nTagging images for browser edge, version 4.29.0, build date 20250303, namespace selenium\nSelenium Grid version -> 4.29.0-20250303\nEdge version -> 115.0.1901.203\nShort Edge version -> 115.0\nEdgeDriver version -> 115.0.1901.203\nShort EdgeDriver version -> 115.0\nTagged selenium/node-edge:115.0.1901.203-edgedriver-115.0.1901.203-grid-4.29.0-20250303\nTagged selenium/standalone-edge:115.0.1901.203-edgedriver-115.0.1901.203-grid-4.29.0-20250303\nTagged selenium/node-edge:115.0.1901.203-edgedriver-115.0.1901.203-20250303\nTagged selenium/standalone-edge:115.0.1901.203-edgedriver-115.0.1901.203-20250303\nTagged selenium/node-edge:115.0.1901.203-20250303\nTagged selenium/standalone-edge:115.0.1901.203-20250303\nTagged selenium/node-edge:115.0-edgedriver-115.0-grid-4.29.0-20250303\nTagged selenium/standalone-edge:115.0-edgedriver-115.0-grid-4.29.0-20250303\nTagged selenium/node-edge:115.0-edgedriver-115.0-20250303\nTagged selenium/standalone-edge:115.0-edgedriver-115.0-20250303\nTagged selenium/node-edge:115.0-20250303\nTagged selenium/standalone-edge:115.0-20250303\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.29.0/edge_116.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.29.0 20250303 selenium false edge true\nTagging images for browser edge, version 4.29.0, build date 20250303, namespace selenium\nSelenium Grid version -> 4.29.0-20250303\nEdge version -> 116.0.1938.81\nShort Edge version -> 116.0\nEdgeDriver version -> 116.0.1938.81\nShort EdgeDriver version -> 116.0\nTagged selenium/node-edge:116.0.1938.81-edgedriver-116.0.1938.81-grid-4.29.0-20250303\nTagged selenium/standalone-edge:116.0.1938.81-edgedriver-116.0.1938.81-grid-4.29.0-20250303\nTagged selenium/node-edge:116.0.1938.81-edgedriver-116.0.1938.81-20250303\nTagged selenium/standalone-edge:116.0.1938.81-edgedriver-116.0.1938.81-20250303\nTagged selenium/node-edge:116.0.1938.81-20250303\nTagged selenium/standalone-edge:116.0.1938.81-20250303\nTagged selenium/node-edge:116.0-edgedriver-116.0-grid-4.29.0-20250303\nTagged selenium/standalone-edge:116.0-edgedriver-116.0-grid-4.29.0-20250303\nTagged selenium/node-edge:116.0-edgedriver-116.0-20250303\nTagged selenium/standalone-edge:116.0-edgedriver-116.0-20250303\nTagged selenium/node-edge:116.0-20250303\nTagged selenium/standalone-edge:116.0-20250303\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.29.0/edge_117.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.29.0 20250303 selenium false edge true\nTagging images for browser edge, version 4.29.0, build date 20250303, namespace selenium\nSelenium Grid version -> 4.29.0-20250303\nEdge version -> 117.0.2045.55\nShort Edge version -> 117.0\nEdgeDriver version -> 117.0.2045.55\nShort EdgeDriver version -> 117.0\nTagged selenium/node-edge:117.0.2045.55-edgedriver-117.0.2045.55-grid-4.29.0-20250303\nTagged selenium/standalone-edge:117.0.2045.55-edgedriver-117.0.2045.55-grid-4.29.0-20250303\nTagged selenium/node-edge:117.0.2045.55-edgedriver-117.0.2045.55-20250303\nTagged selenium/standalone-edge:117.0.2045.55-edgedriver-117.0.2045.55-20250303\nTagged selenium/node-edge:117.0.2045.55-20250303\nTagged selenium/standalone-edge:117.0.2045.55-20250303\nTagged selenium/node-edge:117.0-edgedriver-117.0-grid-4.29.0-20250303\nTagged selenium/standalone-edge:117.0-edgedriver-117.0-grid-4.29.0-20250303\nTagged selenium/node-edge:117.0-edgedriver-117.0-20250303\nTagged selenium/standalone-edge:117.0-edgedriver-117.0-20250303\nTagged selenium/node-edge:117.0-20250303\nTagged selenium/standalone-edge:117.0-20250303\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.29.0/edge_118.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.29.0 20250303 selenium false edge true\nTagging images for browser edge, version 4.29.0, build date 20250303, namespace selenium\nSelenium Grid version -> 4.29.0-20250303\nEdge version -> 118.0.2088.76\nShort Edge version -> 118.0\nEdgeDriver version -> 118.0.2088.76\nShort EdgeDriver version -> 118.0\nTagged selenium/node-edge:118.0.2088.76-edgedriver-118.0.2088.76-grid-4.29.0-20250303\nTagged selenium/standalone-edge:118.0.2088.76-edgedriver-118.0.2088.76-grid-4.29.0-20250303\nTagged selenium/node-edge:118.0.2088.76-edgedriver-118.0.2088.76-20250303\nTagged selenium/standalone-edge:118.0.2088.76-edgedriver-118.0.2088.76-20250303\nTagged selenium/node-edge:118.0.2088.76-20250303\nTagged selenium/standalone-edge:118.0.2088.76-20250303\nTagged selenium/node-edge:118.0-edgedriver-118.0-grid-4.29.0-20250303\nTagged selenium/standalone-edge:118.0-edgedriver-118.0-grid-4.29.0-20250303\nTagged selenium/node-edge:118.0-edgedriver-118.0-20250303\nTagged selenium/standalone-edge:118.0-edgedriver-118.0-20250303\nTagged selenium/node-edge:118.0-20250303\nTagged selenium/standalone-edge:118.0-20250303\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.29.0/edge_119.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.29.0 20250303 selenium false edge true\nTagging images for browser edge, version 4.29.0, build date 20250303, namespace selenium\nSelenium Grid version -> 4.29.0-20250303\nEdge version -> 119.0.2151.97\nShort Edge version -> 119.0\nEdgeDriver version -> 119.0.2151.97\nShort EdgeDriver version -> 119.0\nTagged selenium/node-edge:119.0.2151.97-edgedriver-119.0.2151.97-grid-4.29.0-20250303\nTagged selenium/standalone-edge:119.0.2151.97-edgedriver-119.0.2151.97-grid-4.29.0-20250303\nTagged selenium/node-edge:119.0.2151.97-edgedriver-119.0.2151.97-20250303\nTagged selenium/standalone-edge:119.0.2151.97-edgedriver-119.0.2151.97-20250303\nTagged selenium/node-edge:119.0.2151.97-20250303\nTagged selenium/standalone-edge:119.0.2151.97-20250303\nTagged selenium/node-edge:119.0-edgedriver-119.0-grid-4.29.0-20250303\nTagged selenium/standalone-edge:119.0-edgedriver-119.0-grid-4.29.0-20250303\nTagged selenium/node-edge:119.0-edgedriver-119.0-20250303\nTagged selenium/standalone-edge:119.0-edgedriver-119.0-20250303\nTagged selenium/node-edge:119.0-20250303\nTagged selenium/standalone-edge:119.0-20250303\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.29.0/edge_120.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.29.0 20250303 selenium false edge true\nTagging images for browser edge, version 4.29.0, build date 20250303, namespace selenium\nSelenium Grid version -> 4.29.0-20250303\nEdge version -> 120.0.2210.144\nShort Edge version -> 120.0\nEdgeDriver version -> 120.0.2210.144\nShort EdgeDriver version -> 120.0\nTagged selenium/node-edge:120.0.2210.144-edgedriver-120.0.2210.144-grid-4.29.0-20250303\nTagged selenium/standalone-edge:120.0.2210.144-edgedriver-120.0.2210.144-grid-4.29.0-20250303\nTagged selenium/node-edge:120.0.2210.144-edgedriver-120.0.2210.144-20250303\nTagged selenium/standalone-edge:120.0.2210.144-edgedriver-120.0.2210.144-20250303\nTagged selenium/node-edge:120.0.2210.144-20250303\nTagged selenium/standalone-edge:120.0.2210.144-20250303\nTagged selenium/node-edge:120.0-edgedriver-120.0-grid-4.29.0-20250303\nTagged selenium/standalone-edge:120.0-edgedriver-120.0-grid-4.29.0-20250303\nTagged selenium/node-edge:120.0-edgedriver-120.0-20250303\nTagged selenium/standalone-edge:120.0-edgedriver-120.0-20250303\nTagged selenium/node-edge:120.0-20250303\nTagged selenium/standalone-edge:120.0-20250303\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.29.0/edge_121.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.29.0 20250303 selenium false edge true\nTagging images for browser edge, version 4.29.0, build date 20250303, namespace selenium\nSelenium Grid version -> 4.29.0-20250303\nEdge version -> 121.0.2277.128\nShort Edge version -> 121.0\nEdgeDriver version -> 121.0.2277.128\nShort EdgeDriver version -> 121.0\nTagged selenium/node-edge:121.0.2277.128-edgedriver-121.0.2277.128-grid-4.29.0-20250303\nTagged selenium/standalone-edge:121.0.2277.128-edgedriver-121.0.2277.128-grid-4.29.0-20250303\nTagged selenium/node-edge:121.0.2277.128-edgedriver-121.0.2277.128-20250303\nTagged selenium/standalone-edge:121.0.2277.128-edgedriver-121.0.2277.128-20250303\nTagged selenium/node-edge:121.0.2277.128-20250303\nTagged selenium/standalone-edge:121.0.2277.128-20250303\nTagged selenium/node-edge:121.0-edgedriver-121.0-grid-4.29.0-20250303\nTagged selenium/standalone-edge:121.0-edgedriver-121.0-grid-4.29.0-20250303\nTagged selenium/node-edge:121.0-edgedriver-121.0-20250303\nTagged selenium/standalone-edge:121.0-edgedriver-121.0-20250303\nTagged selenium/node-edge:121.0-20250303\nTagged selenium/standalone-edge:121.0-20250303\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.29.0/edge_122.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.29.0 20250303 selenium false edge true\nTagging images for browser edge, version 4.29.0, build date 20250303, namespace selenium\nSelenium Grid version -> 4.29.0-20250303\nEdge version -> 122.0.2365.92\nShort Edge version -> 122.0\nEdgeDriver version -> 122.0.2365.92\nShort EdgeDriver version -> 122.0\nTagged selenium/node-edge:122.0.2365.92-edgedriver-122.0.2365.92-grid-4.29.0-20250303\nTagged selenium/standalone-edge:122.0.2365.92-edgedriver-122.0.2365.92-grid-4.29.0-20250303\nTagged selenium/node-edge:122.0.2365.92-edgedriver-122.0.2365.92-20250303\nTagged selenium/standalone-edge:122.0.2365.92-edgedriver-122.0.2365.92-20250303\nTagged selenium/node-edge:122.0.2365.92-20250303\nTagged selenium/standalone-edge:122.0.2365.92-20250303\nTagged selenium/node-edge:122.0-edgedriver-122.0-grid-4.29.0-20250303\nTagged selenium/standalone-edge:122.0-edgedriver-122.0-grid-4.29.0-20250303\nTagged selenium/node-edge:122.0-edgedriver-122.0-20250303\nTagged selenium/standalone-edge:122.0-edgedriver-122.0-20250303\nTagged selenium/node-edge:122.0-20250303\nTagged selenium/standalone-edge:122.0-20250303\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.29.0/edge_123.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.29.0 20250303 selenium false edge true\nTagging images for browser edge, version 4.29.0, build date 20250303, namespace selenium\nSelenium Grid version -> 4.29.0-20250303\nEdge version -> 123.0.2420.97\nShort Edge version -> 123.0\nEdgeDriver version -> 123.0.2420.97\nShort EdgeDriver version -> 123.0\nTagged selenium/node-edge:123.0.2420.97-edgedriver-123.0.2420.97-grid-4.29.0-20250303\nTagged selenium/standalone-edge:123.0.2420.97-edgedriver-123.0.2420.97-grid-4.29.0-20250303\nTagged selenium/node-edge:123.0.2420.97-edgedriver-123.0.2420.97-20250303\nTagged selenium/standalone-edge:123.0.2420.97-edgedriver-123.0.2420.97-20250303\nTagged selenium/node-edge:123.0.2420.97-20250303\nTagged selenium/standalone-edge:123.0.2420.97-20250303\nTagged selenium/node-edge:123.0-edgedriver-123.0-grid-4.29.0-20250303\nTagged selenium/standalone-edge:123.0-edgedriver-123.0-grid-4.29.0-20250303\nTagged selenium/node-edge:123.0-edgedriver-123.0-20250303\nTagged selenium/standalone-edge:123.0-edgedriver-123.0-20250303\nTagged selenium/node-edge:123.0-20250303\nTagged selenium/standalone-edge:123.0-20250303\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.29.0/edge_124.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.29.0 20250303 selenium false edge true\nTagging images for browser edge, version 4.29.0, build date 20250303, namespace selenium\nSelenium Grid version -> 4.29.0-20250303\nEdge version -> 124.0.2478.109\nShort Edge version -> 124.0\nEdgeDriver version -> 124.0.2478.109\nShort EdgeDriver version -> 124.0\nTagged selenium/node-edge:124.0.2478.109-edgedriver-124.0.2478.109-grid-4.29.0-20250303\nTagged selenium/standalone-edge:124.0.2478.109-edgedriver-124.0.2478.109-grid-4.29.0-20250303\nTagged selenium/node-edge:124.0.2478.109-edgedriver-124.0.2478.109-20250303\nTagged selenium/standalone-edge:124.0.2478.109-edgedriver-124.0.2478.109-20250303\nTagged selenium/node-edge:124.0.2478.109-20250303\nTagged selenium/standalone-edge:124.0.2478.109-20250303\nTagged selenium/node-edge:124.0-edgedriver-124.0-grid-4.29.0-20250303\nTagged selenium/standalone-edge:124.0-edgedriver-124.0-grid-4.29.0-20250303\nTagged selenium/node-edge:124.0-edgedriver-124.0-20250303\nTagged selenium/standalone-edge:124.0-edgedriver-124.0-20250303\nTagged selenium/node-edge:124.0-20250303\nTagged selenium/standalone-edge:124.0-20250303\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.29.0/edge_125.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.29.0 20250303 selenium false edge true\nTagging images for browser edge, version 4.29.0, build date 20250303, namespace selenium\nSelenium Grid version -> 4.29.0-20250303\nEdge version -> 125.0.2535.92\nShort Edge version -> 125.0\nEdgeDriver version -> 125.0.2535.92\nShort EdgeDriver version -> 125.0\nTagged selenium/node-edge:125.0.2535.92-edgedriver-125.0.2535.92-grid-4.29.0-20250303\nTagged selenium/standalone-edge:125.0.2535.92-edgedriver-125.0.2535.92-grid-4.29.0-20250303\nTagged selenium/node-edge:125.0.2535.92-edgedriver-125.0.2535.92-20250303\nTagged selenium/standalone-edge:125.0.2535.92-edgedriver-125.0.2535.92-20250303\nTagged selenium/node-edge:125.0.2535.92-20250303\nTagged selenium/standalone-edge:125.0.2535.92-20250303\nTagged selenium/node-edge:125.0-edgedriver-125.0-grid-4.29.0-20250303\nTagged selenium/standalone-edge:125.0-edgedriver-125.0-grid-4.29.0-20250303\nTagged selenium/node-edge:125.0-edgedriver-125.0-20250303\nTagged selenium/standalone-edge:125.0-edgedriver-125.0-20250303\nTagged selenium/node-edge:125.0-20250303\nTagged selenium/standalone-edge:125.0-20250303\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.29.0/edge_126.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.29.0 20250303 selenium false edge true\nTagging images for browser edge, version 4.29.0, build date 20250303, namespace selenium\nSelenium Grid version -> 4.29.0-20250303\nEdge version -> 126.0.2592.113\nShort Edge version -> 126.0\nEdgeDriver version -> 126.0.2592.123\nShort EdgeDriver version -> 126.0\nTagged selenium/node-edge:126.0.2592.113-edgedriver-126.0.2592.123-grid-4.29.0-20250303\nTagged selenium/standalone-edge:126.0.2592.113-edgedriver-126.0.2592.123-grid-4.29.0-20250303\nTagged selenium/node-edge:126.0.2592.113-edgedriver-126.0.2592.123-20250303\nTagged selenium/standalone-edge:126.0.2592.113-edgedriver-126.0.2592.123-20250303\nTagged selenium/node-edge:126.0.2592.113-20250303\nTagged selenium/standalone-edge:126.0.2592.113-20250303\nTagged selenium/node-edge:126.0-edgedriver-126.0-grid-4.29.0-20250303\nTagged selenium/standalone-edge:126.0-edgedriver-126.0-grid-4.29.0-20250303\nTagged selenium/node-edge:126.0-edgedriver-126.0-20250303\nTagged selenium/standalone-edge:126.0-edgedriver-126.0-20250303\nTagged selenium/node-edge:126.0-20250303\nTagged selenium/standalone-edge:126.0-20250303\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.29.0/edge_127.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.29.0 20250303 selenium false edge true\nTagging images for browser edge, version 4.29.0, build date 20250303, namespace selenium\nSelenium Grid version -> 4.29.0-20250303\nEdge version -> 127.0.2651.105\nShort Edge version -> 127.0\nEdgeDriver version -> 127.0.2651.107\nShort EdgeDriver version -> 127.0\nTagged selenium/node-edge:127.0.2651.105-edgedriver-127.0.2651.107-grid-4.29.0-20250303\nTagged selenium/standalone-edge:127.0.2651.105-edgedriver-127.0.2651.107-grid-4.29.0-20250303\nTagged selenium/node-edge:127.0.2651.105-edgedriver-127.0.2651.107-20250303\nTagged selenium/standalone-edge:127.0.2651.105-edgedriver-127.0.2651.107-20250303\nTagged selenium/node-edge:127.0.2651.105-20250303\nTagged selenium/standalone-edge:127.0.2651.105-20250303\nTagged selenium/node-edge:127.0-edgedriver-127.0-grid-4.29.0-20250303\nTagged selenium/standalone-edge:127.0-edgedriver-127.0-grid-4.29.0-20250303\nTagged selenium/node-edge:127.0-edgedriver-127.0-20250303\nTagged selenium/standalone-edge:127.0-edgedriver-127.0-20250303\nTagged selenium/node-edge:127.0-20250303\nTagged selenium/standalone-edge:127.0-20250303\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.29.0/edge_128.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.29.0 20250303 selenium false edge true\nTagging images for browser edge, version 4.29.0, build date 20250303, namespace selenium\nSelenium Grid version -> 4.29.0-20250303\nEdge version -> 128.0.2739.79\nShort Edge version -> 128.0\nEdgeDriver version -> 128.0.2739.81\nShort EdgeDriver version -> 128.0\nTagged selenium/node-edge:128.0.2739.79-edgedriver-128.0.2739.81-grid-4.29.0-20250303\nTagged selenium/standalone-edge:128.0.2739.79-edgedriver-128.0.2739.81-grid-4.29.0-20250303\nTagged selenium/node-edge:128.0.2739.79-edgedriver-128.0.2739.81-20250303\nTagged selenium/standalone-edge:128.0.2739.79-edgedriver-128.0.2739.81-20250303\nTagged selenium/node-edge:128.0.2739.79-20250303\nTagged selenium/standalone-edge:128.0.2739.79-20250303\nTagged selenium/node-edge:128.0-edgedriver-128.0-grid-4.29.0-20250303\nTagged selenium/standalone-edge:128.0-edgedriver-128.0-grid-4.29.0-20250303\nTagged selenium/node-edge:128.0-edgedriver-128.0-20250303\nTagged selenium/standalone-edge:128.0-edgedriver-128.0-20250303\nTagged selenium/node-edge:128.0-20250303\nTagged selenium/standalone-edge:128.0-20250303\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.29.0/edge_129.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.29.0 20250303 selenium false edge true\nTagging images for browser edge, version 4.29.0, build date 20250303, namespace selenium\nSelenium Grid version -> 4.29.0-20250303\nEdge version -> 129.0.2792.89\nShort Edge version -> 129.0\nEdgeDriver version -> 129.0.2792.98\nShort EdgeDriver version -> 129.0\nTagged selenium/node-edge:129.0.2792.89-edgedriver-129.0.2792.98-grid-4.29.0-20250303\nTagged selenium/standalone-edge:129.0.2792.89-edgedriver-129.0.2792.98-grid-4.29.0-20250303\nTagged selenium/node-edge:129.0.2792.89-edgedriver-129.0.2792.98-20250303\nTagged selenium/standalone-edge:129.0.2792.89-edgedriver-129.0.2792.98-20250303\nTagged selenium/node-edge:129.0.2792.89-20250303\nTagged selenium/standalone-edge:129.0.2792.89-20250303\nTagged selenium/node-edge:129.0-edgedriver-129.0-grid-4.29.0-20250303\nTagged selenium/standalone-edge:129.0-edgedriver-129.0-grid-4.29.0-20250303\nTagged selenium/node-edge:129.0-edgedriver-129.0-20250303\nTagged selenium/standalone-edge:129.0-edgedriver-129.0-20250303\nTagged selenium/node-edge:129.0-20250303\nTagged selenium/standalone-edge:129.0-20250303\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.29.0/edge_130.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.29.0 20250303 selenium false edge true\nTagging images for browser edge, version 4.29.0, build date 20250303, namespace selenium\nSelenium Grid version -> 4.29.0-20250303\nEdge version -> 130.0.2849.80\nShort Edge version -> 130.0\nEdgeDriver version -> 130.0.2849.78\nShort EdgeDriver version -> 130.0\nTagged selenium/node-edge:130.0.2849.80-edgedriver-130.0.2849.78-grid-4.29.0-20250303\nTagged selenium/standalone-edge:130.0.2849.80-edgedriver-130.0.2849.78-grid-4.29.0-20250303\nTagged selenium/node-edge:130.0.2849.80-edgedriver-130.0.2849.78-20250303\nTagged selenium/standalone-edge:130.0.2849.80-edgedriver-130.0.2849.78-20250303\nTagged selenium/node-edge:130.0.2849.80-20250303\nTagged selenium/standalone-edge:130.0.2849.80-20250303\nTagged selenium/node-edge:130.0-edgedriver-130.0-grid-4.29.0-20250303\nTagged selenium/standalone-edge:130.0-edgedriver-130.0-grid-4.29.0-20250303\nTagged selenium/node-edge:130.0-edgedriver-130.0-20250303\nTagged selenium/standalone-edge:130.0-edgedriver-130.0-20250303\nTagged selenium/node-edge:130.0-20250303\nTagged selenium/standalone-edge:130.0-20250303\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.29.0/edge_131.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.29.0 20250303 selenium false edge true\nTagging images for browser edge, version 4.29.0, build date 20250303, namespace selenium\nSelenium Grid version -> 4.29.0-20250303\nEdge version -> 131.0.2903.147\nShort Edge version -> 131.0\nEdgeDriver version -> 131.0.2903.147\nShort EdgeDriver version -> 131.0\nTagged selenium/node-edge:131.0.2903.147-edgedriver-131.0.2903.147-grid-4.29.0-20250303\nTagged selenium/standalone-edge:131.0.2903.147-edgedriver-131.0.2903.147-grid-4.29.0-20250303\nTagged selenium/node-edge:131.0.2903.147-edgedriver-131.0.2903.147-20250303\nTagged selenium/standalone-edge:131.0.2903.147-edgedriver-131.0.2903.147-20250303\nTagged selenium/node-edge:131.0.2903.147-20250303\nTagged selenium/standalone-edge:131.0.2903.147-20250303\nTagged selenium/node-edge:131.0-edgedriver-131.0-grid-4.29.0-20250303\nTagged selenium/standalone-edge:131.0-edgedriver-131.0-grid-4.29.0-20250303\nTagged selenium/node-edge:131.0-edgedriver-131.0-20250303\nTagged selenium/standalone-edge:131.0-edgedriver-131.0-20250303\nTagged selenium/node-edge:131.0-20250303\nTagged selenium/standalone-edge:131.0-20250303\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.29.0/edge_132.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.29.0 20250303 selenium false edge true\nTagging images for browser edge, version 4.29.0, build date 20250303, namespace selenium\nSelenium Grid version -> 4.29.0-20250303\nEdge version -> 132.0.2957.140\nShort Edge version -> 132.0\nEdgeDriver version -> 132.0.2957.140\nShort EdgeDriver version -> 132.0\nTagged selenium/node-edge:132.0.2957.140-edgedriver-132.0.2957.140-grid-4.29.0-20250303\nTagged selenium/standalone-edge:132.0.2957.140-edgedriver-132.0.2957.140-grid-4.29.0-20250303\nTagged selenium/node-edge:132.0.2957.140-edgedriver-132.0.2957.140-20250303\nTagged selenium/standalone-edge:132.0.2957.140-edgedriver-132.0.2957.140-20250303\nTagged selenium/node-edge:132.0.2957.140-20250303\nTagged selenium/standalone-edge:132.0.2957.140-20250303\nTagged selenium/node-edge:132.0-edgedriver-132.0-grid-4.29.0-20250303\nTagged selenium/standalone-edge:132.0-edgedriver-132.0-grid-4.29.0-20250303\nTagged selenium/node-edge:132.0-edgedriver-132.0-20250303\nTagged selenium/standalone-edge:132.0-edgedriver-132.0-20250303\nTagged selenium/node-edge:132.0-20250303\nTagged selenium/standalone-edge:132.0-20250303\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.29.0/edge_133.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.29.0 20250303 selenium false edge true\nTagging images for browser edge, version 4.29.0, build date 20250303, namespace selenium\nSelenium Grid version -> 4.29.0-20250303\nEdge version -> 133.0.3065.92\nShort Edge version -> 133.0\nEdgeDriver version -> 133.0.3065.92\nShort EdgeDriver version -> 133.0\nTagged selenium/node-edge:133.0.3065.92-edgedriver-133.0.3065.92-grid-4.29.0-20250303\nTagged selenium/standalone-edge:133.0.3065.92-edgedriver-133.0.3065.92-grid-4.29.0-20250303\nTagged selenium/node-edge:133.0.3065.92-edgedriver-133.0.3065.92-20250303\nTagged selenium/standalone-edge:133.0.3065.92-edgedriver-133.0.3065.92-20250303\nTagged selenium/node-edge:133.0.3065.92-20250303\nTagged selenium/standalone-edge:133.0.3065.92-20250303\nTagged selenium/node-edge:133.0-edgedriver-133.0-grid-4.29.0-20250303\nTagged selenium/standalone-edge:133.0-edgedriver-133.0-grid-4.29.0-20250303\nTagged selenium/node-edge:133.0-edgedriver-133.0-20250303\nTagged selenium/standalone-edge:133.0-edgedriver-133.0-20250303\nTagged selenium/node-edge:133.0-20250303\nTagged selenium/standalone-edge:133.0-20250303\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.29.0/firefox_100.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.29.0 20250303 selenium false firefox true\nTagging images for browser firefox, version 4.29.0, build date 20250303, namespace selenium\nSelenium Grid version -> 4.29.0-20250303\nFirefox version -> 100.0.2\nShort Firefox version -> 100.0\nGeckoDriver version -> 0.36.0\nShort GeckoDriver version -> 0.36\nTagged selenium/node-firefox:100.0.2-geckodriver-0.36.0-grid-4.29.0-20250303\nTagged selenium/standalone-firefox:100.0.2-geckodriver-0.36.0-grid-4.29.0-20250303\nTagged selenium/node-firefox:100.0.2-geckodriver-0.36.0-20250303\nTagged selenium/standalone-firefox:100.0.2-geckodriver-0.36.0-20250303\nTagged selenium/node-firefox:100.0.2-20250303\nTagged selenium/standalone-firefox:100.0.2-20250303\nTagged selenium/node-firefox:100.0-geckodriver-0.36-grid-4.29.0-20250303\nTagged selenium/standalone-firefox:100.0-geckodriver-0.36-grid-4.29.0-20250303\nTagged selenium/node-firefox:100.0-geckodriver-0.36-20250303\nTagged selenium/standalone-firefox:100.0-geckodriver-0.36-20250303\nTagged selenium/node-firefox:100.0-20250303\nTagged selenium/standalone-firefox:100.0-20250303\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.29.0/firefox_101.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.29.0 20250303 selenium false firefox true\nTagging images for browser firefox, version 4.29.0, build date 20250303, namespace selenium\nSelenium Grid version -> 4.29.0-20250303\nFirefox version -> 101.0.1\nShort Firefox version -> 101.0\nGeckoDriver version -> 0.36.0\nShort GeckoDriver version -> 0.36\nTagged selenium/node-firefox:101.0.1-geckodriver-0.36.0-grid-4.29.0-20250303\nTagged selenium/standalone-firefox:101.0.1-geckodriver-0.36.0-grid-4.29.0-20250303\nTagged selenium/node-firefox:101.0.1-geckodriver-0.36.0-20250303\nTagged selenium/standalone-firefox:101.0.1-geckodriver-0.36.0-20250303\nTagged selenium/node-firefox:101.0.1-20250303\nTagged selenium/standalone-firefox:101.0.1-20250303\nTagged selenium/node-firefox:101.0-geckodriver-0.36-grid-4.29.0-20250303\nTagged selenium/standalone-firefox:101.0-geckodriver-0.36-grid-4.29.0-20250303\nTagged selenium/node-firefox:101.0-geckodriver-0.36-20250303\nTagged selenium/standalone-firefox:101.0-geckodriver-0.36-20250303\nTagged selenium/node-firefox:101.0-20250303\nTagged selenium/standalone-firefox:101.0-20250303\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.29.0/firefox_102.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.29.0 20250303 selenium false firefox true\nTagging images for browser firefox, version 4.29.0, build date 20250303, namespace selenium\nSelenium Grid version -> 4.29.0-20250303\nFirefox version -> 102.0.1\nShort Firefox version -> 102.0\nGeckoDriver version -> 0.36.0\nShort GeckoDriver version -> 0.36\nTagged selenium/node-firefox:102.0.1-geckodriver-0.36.0-grid-4.29.0-20250303\nTagged selenium/standalone-firefox:102.0.1-geckodriver-0.36.0-grid-4.29.0-20250303\nTagged selenium/node-firefox:102.0.1-geckodriver-0.36.0-20250303\nTagged selenium/standalone-firefox:102.0.1-geckodriver-0.36.0-20250303\nTagged selenium/node-firefox:102.0.1-20250303\nTagged selenium/standalone-firefox:102.0.1-20250303\nTagged selenium/node-firefox:102.0-geckodriver-0.36-grid-4.29.0-20250303\nTagged selenium/standalone-firefox:102.0-geckodriver-0.36-grid-4.29.0-20250303\nTagged selenium/node-firefox:102.0-geckodriver-0.36-20250303\nTagged selenium/standalone-firefox:102.0-geckodriver-0.36-20250303\nTagged selenium/node-firefox:102.0-20250303\nTagged selenium/standalone-firefox:102.0-20250303\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.29.0/firefox_103.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.29.0 20250303 selenium false firefox true\nTagging images for browser firefox, version 4.29.0, build date 20250303, namespace selenium\nSelenium Grid version -> 4.29.0-20250303\nFirefox version -> 103.0.2\nShort Firefox version -> 103.0\nGeckoDriver version -> 0.36.0\nShort GeckoDriver version -> 0.36\nTagged selenium/node-firefox:103.0.2-geckodriver-0.36.0-grid-4.29.0-20250303\nTagged selenium/standalone-firefox:103.0.2-geckodriver-0.36.0-grid-4.29.0-20250303\nTagged selenium/node-firefox:103.0.2-geckodriver-0.36.0-20250303\nTagged selenium/standalone-firefox:103.0.2-geckodriver-0.36.0-20250303\nTagged selenium/node-firefox:103.0.2-20250303\nTagged selenium/standalone-firefox:103.0.2-20250303\nTagged selenium/node-firefox:103.0-geckodriver-0.36-grid-4.29.0-20250303\nTagged selenium/standalone-firefox:103.0-geckodriver-0.36-grid-4.29.0-20250303\nTagged selenium/node-firefox:103.0-geckodriver-0.36-20250303\nTagged selenium/standalone-firefox:103.0-geckodriver-0.36-20250303\nTagged selenium/node-firefox:103.0-20250303\nTagged selenium/standalone-firefox:103.0-20250303\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.29.0/firefox_104.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.29.0 20250303 selenium false firefox true\nTagging images for browser firefox, version 4.29.0, build date 20250303, namespace selenium\nSelenium Grid version -> 4.29.0-20250303\nFirefox version -> 104.0.2\nShort Firefox version -> 104.0\nGeckoDriver version -> 0.36.0\nShort GeckoDriver version -> 0.36\nTagged selenium/node-firefox:104.0.2-geckodriver-0.36.0-grid-4.29.0-20250303\nTagged selenium/standalone-firefox:104.0.2-geckodriver-0.36.0-grid-4.29.0-20250303\nTagged selenium/node-firefox:104.0.2-geckodriver-0.36.0-20250303\nTagged selenium/standalone-firefox:104.0.2-geckodriver-0.36.0-20250303\nTagged selenium/node-firefox:104.0.2-20250303\nTagged selenium/standalone-firefox:104.0.2-20250303\nTagged selenium/node-firefox:104.0-geckodriver-0.36-grid-4.29.0-20250303\nTagged selenium/standalone-firefox:104.0-geckodriver-0.36-grid-4.29.0-20250303\nTagged selenium/node-firefox:104.0-geckodriver-0.36-20250303\nTagged selenium/standalone-firefox:104.0-geckodriver-0.36-20250303\nTagged selenium/node-firefox:104.0-20250303\nTagged selenium/standalone-firefox:104.0-20250303\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.29.0/firefox_105.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.29.0 20250303 selenium false firefox true\nTagging images for browser firefox, version 4.29.0, build date 20250303, namespace selenium\nSelenium Grid version -> 4.29.0-20250303\nFirefox version -> 105.0.3\nShort Firefox version -> 105.0\nGeckoDriver version -> 0.36.0\nShort GeckoDriver version -> 0.36\nTagged selenium/node-firefox:105.0.3-geckodriver-0.36.0-grid-4.29.0-20250303\nTagged selenium/standalone-firefox:105.0.3-geckodriver-0.36.0-grid-4.29.0-20250303\nTagged selenium/node-firefox:105.0.3-geckodriver-0.36.0-20250303\nTagged selenium/standalone-firefox:105.0.3-geckodriver-0.36.0-20250303\nTagged selenium/node-firefox:105.0.3-20250303\nTagged selenium/standalone-firefox:105.0.3-20250303\nTagged selenium/node-firefox:105.0-geckodriver-0.36-grid-4.29.0-20250303\nTagged selenium/standalone-firefox:105.0-geckodriver-0.36-grid-4.29.0-20250303\nTagged selenium/node-firefox:105.0-geckodriver-0.36-20250303\nTagged selenium/standalone-firefox:105.0-geckodriver-0.36-20250303\nTagged selenium/node-firefox:105.0-20250303\nTagged selenium/standalone-firefox:105.0-20250303\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.29.0/firefox_106.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.29.0 20250303 selenium false firefox true\nTagging images for browser firefox, version 4.29.0, build date 20250303, namespace selenium\nSelenium Grid version -> 4.29.0-20250303\nFirefox version -> 106.0.5\nShort Firefox version -> 106.0\nGeckoDriver version -> 0.36.0\nShort GeckoDriver version -> 0.36\nTagged selenium/node-firefox:106.0.5-geckodriver-0.36.0-grid-4.29.0-20250303\nTagged selenium/standalone-firefox:106.0.5-geckodriver-0.36.0-grid-4.29.0-20250303\nTagged selenium/node-firefox:106.0.5-geckodriver-0.36.0-20250303\nTagged selenium/standalone-firefox:106.0.5-geckodriver-0.36.0-20250303\nTagged selenium/node-firefox:106.0.5-20250303\nTagged selenium/standalone-firefox:106.0.5-20250303\nTagged selenium/node-firefox:106.0-geckodriver-0.36-grid-4.29.0-20250303\nTagged selenium/standalone-firefox:106.0-geckodriver-0.36-grid-4.29.0-20250303\nTagged selenium/node-firefox:106.0-geckodriver-0.36-20250303\nTagged selenium/standalone-firefox:106.0-geckodriver-0.36-20250303\nTagged selenium/node-firefox:106.0-20250303\nTagged selenium/standalone-firefox:106.0-20250303\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.29.0/firefox_107.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.29.0 20250303 selenium false firefox true\nTagging images for browser firefox, version 4.29.0, build date 20250303, namespace selenium\nSelenium Grid version -> 4.29.0-20250303\nFirefox version -> 107.0.1\nShort Firefox version -> 107.0\nGeckoDriver version -> 0.36.0\nShort GeckoDriver version -> 0.36\nTagged selenium/node-firefox:107.0.1-geckodriver-0.36.0-grid-4.29.0-20250303\nTagged selenium/standalone-firefox:107.0.1-geckodriver-0.36.0-grid-4.29.0-20250303\nTagged selenium/node-firefox:107.0.1-geckodriver-0.36.0-20250303\nTagged selenium/standalone-firefox:107.0.1-geckodriver-0.36.0-20250303\nTagged selenium/node-firefox:107.0.1-20250303\nTagged selenium/standalone-firefox:107.0.1-20250303\nTagged selenium/node-firefox:107.0-geckodriver-0.36-grid-4.29.0-20250303\nTagged selenium/standalone-firefox:107.0-geckodriver-0.36-grid-4.29.0-20250303\nTagged selenium/node-firefox:107.0-geckodriver-0.36-20250303\nTagged selenium/standalone-firefox:107.0-geckodriver-0.36-20250303\nTagged selenium/node-firefox:107.0-20250303\nTagged selenium/standalone-firefox:107.0-20250303\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.29.0/firefox_108.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.29.0 20250303 selenium false firefox true\nTagging images for browser firefox, version 4.29.0, build date 20250303, namespace selenium\nSelenium Grid version -> 4.29.0-20250303\nFirefox version -> 108.0.2\nShort Firefox version -> 108.0\nGeckoDriver version -> 0.36.0\nShort GeckoDriver version -> 0.36\nTagged selenium/node-firefox:108.0.2-geckodriver-0.36.0-grid-4.29.0-20250303\nTagged selenium/standalone-firefox:108.0.2-geckodriver-0.36.0-grid-4.29.0-20250303\nTagged selenium/node-firefox:108.0.2-geckodriver-0.36.0-20250303\nTagged selenium/standalone-firefox:108.0.2-geckodriver-0.36.0-20250303\nTagged selenium/node-firefox:108.0.2-20250303\nTagged selenium/standalone-firefox:108.0.2-20250303\nTagged selenium/node-firefox:108.0-geckodriver-0.36-grid-4.29.0-20250303\nTagged selenium/standalone-firefox:108.0-geckodriver-0.36-grid-4.29.0-20250303\nTagged selenium/node-firefox:108.0-geckodriver-0.36-20250303\nTagged selenium/standalone-firefox:108.0-geckodriver-0.36-20250303\nTagged selenium/node-firefox:108.0-20250303\nTagged selenium/standalone-firefox:108.0-20250303\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.29.0/firefox_109.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.29.0 20250303 selenium false firefox true\nTagging images for browser firefox, version 4.29.0, build date 20250303, namespace selenium\nSelenium Grid version -> 4.29.0-20250303\nFirefox version -> 109.0.1\nShort Firefox version -> 109.0\nGeckoDriver version -> 0.36.0\nShort GeckoDriver version -> 0.36\nTagged selenium/node-firefox:109.0.1-geckodriver-0.36.0-grid-4.29.0-20250303\nTagged selenium/standalone-firefox:109.0.1-geckodriver-0.36.0-grid-4.29.0-20250303\nTagged selenium/node-firefox:109.0.1-geckodriver-0.36.0-20250303\nTagged selenium/standalone-firefox:109.0.1-geckodriver-0.36.0-20250303\nTagged selenium/node-firefox:109.0.1-20250303\nTagged selenium/standalone-firefox:109.0.1-20250303\nTagged selenium/node-firefox:109.0-geckodriver-0.36-grid-4.29.0-20250303\nTagged selenium/standalone-firefox:109.0-geckodriver-0.36-grid-4.29.0-20250303\nTagged selenium/node-firefox:109.0-geckodriver-0.36-20250303\nTagged selenium/standalone-firefox:109.0-geckodriver-0.36-20250303\nTagged selenium/node-firefox:109.0-20250303\nTagged selenium/standalone-firefox:109.0-20250303\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.29.0/firefox_110.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.29.0 20250303 selenium false firefox true\nTagging images for browser firefox, version 4.29.0, build date 20250303, namespace selenium\nSelenium Grid version -> 4.29.0-20250303\nFirefox version -> 110.0.1\nShort Firefox version -> 110.0\nGeckoDriver version -> 0.36.0\nShort GeckoDriver version -> 0.36\nTagged selenium/node-firefox:110.0.1-geckodriver-0.36.0-grid-4.29.0-20250303\nTagged selenium/standalone-firefox:110.0.1-geckodriver-0.36.0-grid-4.29.0-20250303\nTagged selenium/node-firefox:110.0.1-geckodriver-0.36.0-20250303\nTagged selenium/standalone-firefox:110.0.1-geckodriver-0.36.0-20250303\nTagged selenium/node-firefox:110.0.1-20250303\nTagged selenium/standalone-firefox:110.0.1-20250303\nTagged selenium/node-firefox:110.0-geckodriver-0.36-grid-4.29.0-20250303\nTagged selenium/standalone-firefox:110.0-geckodriver-0.36-grid-4.29.0-20250303\nTagged selenium/node-firefox:110.0-geckodriver-0.36-20250303\nTagged selenium/standalone-firefox:110.0-geckodriver-0.36-20250303\nTagged selenium/node-firefox:110.0-20250303\nTagged selenium/standalone-firefox:110.0-20250303\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.29.0/firefox_111.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.29.0 20250303 selenium false firefox true\nTagging images for browser firefox, version 4.29.0, build date 20250303, namespace selenium\nSelenium Grid version -> 4.29.0-20250303\nFirefox version -> 111.0.1\nShort Firefox version -> 111.0\nGeckoDriver version -> 0.36.0\nShort GeckoDriver version -> 0.36\nTagged selenium/node-firefox:111.0.1-geckodriver-0.36.0-grid-4.29.0-20250303\nTagged selenium/standalone-firefox:111.0.1-geckodriver-0.36.0-grid-4.29.0-20250303\nTagged selenium/node-firefox:111.0.1-geckodriver-0.36.0-20250303\nTagged selenium/standalone-firefox:111.0.1-geckodriver-0.36.0-20250303\nTagged selenium/node-firefox:111.0.1-20250303\nTagged selenium/standalone-firefox:111.0.1-20250303\nTagged selenium/node-firefox:111.0-geckodriver-0.36-grid-4.29.0-20250303\nTagged selenium/standalone-firefox:111.0-geckodriver-0.36-grid-4.29.0-20250303\nTagged selenium/node-firefox:111.0-geckodriver-0.36-20250303\nTagged selenium/standalone-firefox:111.0-geckodriver-0.36-20250303\nTagged selenium/node-firefox:111.0-20250303\nTagged selenium/standalone-firefox:111.0-20250303\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.29.0/firefox_112.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.29.0 20250303 selenium false firefox true\nTagging images for browser firefox, version 4.29.0, build date 20250303, namespace selenium\nSelenium Grid version -> 4.29.0-20250303\nFirefox version -> 112.0.2\nShort Firefox version -> 112.0\nGeckoDriver version -> 0.36.0\nShort GeckoDriver version -> 0.36\nTagged selenium/node-firefox:112.0.2-geckodriver-0.36.0-grid-4.29.0-20250303\nTagged selenium/standalone-firefox:112.0.2-geckodriver-0.36.0-grid-4.29.0-20250303\nTagged selenium/node-firefox:112.0.2-geckodriver-0.36.0-20250303\nTagged selenium/standalone-firefox:112.0.2-geckodriver-0.36.0-20250303\nTagged selenium/node-firefox:112.0.2-20250303\nTagged selenium/standalone-firefox:112.0.2-20250303\nTagged selenium/node-firefox:112.0-geckodriver-0.36-grid-4.29.0-20250303\nTagged selenium/standalone-firefox:112.0-geckodriver-0.36-grid-4.29.0-20250303\nTagged selenium/node-firefox:112.0-geckodriver-0.36-20250303\nTagged selenium/standalone-firefox:112.0-geckodriver-0.36-20250303\nTagged selenium/node-firefox:112.0-20250303\nTagged selenium/standalone-firefox:112.0-20250303\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.29.0/firefox_113.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.29.0 20250303 selenium false firefox true\nTagging images for browser firefox, version 4.29.0, build date 20250303, namespace selenium\nSelenium Grid version -> 4.29.0-20250303\nFirefox version -> 113.0.2\nShort Firefox version -> 113.0\nGeckoDriver version -> 0.36.0\nShort GeckoDriver version -> 0.36\nTagged selenium/node-firefox:113.0.2-geckodriver-0.36.0-grid-4.29.0-20250303\nTagged selenium/standalone-firefox:113.0.2-geckodriver-0.36.0-grid-4.29.0-20250303\nTagged selenium/node-firefox:113.0.2-geckodriver-0.36.0-20250303\nTagged selenium/standalone-firefox:113.0.2-geckodriver-0.36.0-20250303\nTagged selenium/node-firefox:113.0.2-20250303\nTagged selenium/standalone-firefox:113.0.2-20250303\nTagged selenium/node-firefox:113.0-geckodriver-0.36-grid-4.29.0-20250303\nTagged selenium/standalone-firefox:113.0-geckodriver-0.36-grid-4.29.0-20250303\nTagged selenium/node-firefox:113.0-geckodriver-0.36-20250303\nTagged selenium/standalone-firefox:113.0-geckodriver-0.36-20250303\nTagged selenium/node-firefox:113.0-20250303\nTagged selenium/standalone-firefox:113.0-20250303\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.29.0/firefox_114.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.29.0 20250303 selenium false firefox true\nTagging images for browser firefox, version 4.29.0, build date 20250303, namespace selenium\nSelenium Grid version -> 4.29.0-20250303\nFirefox version -> 114.0.2\nShort Firefox version -> 114.0\nGeckoDriver version -> 0.36.0\nShort GeckoDriver version -> 0.36\nTagged selenium/node-firefox:114.0.2-geckodriver-0.36.0-grid-4.29.0-20250303\nTagged selenium/standalone-firefox:114.0.2-geckodriver-0.36.0-grid-4.29.0-20250303\nTagged selenium/node-firefox:114.0.2-geckodriver-0.36.0-20250303\nTagged selenium/standalone-firefox:114.0.2-geckodriver-0.36.0-20250303\nTagged selenium/node-firefox:114.0.2-20250303\nTagged selenium/standalone-firefox:114.0.2-20250303\nTagged selenium/node-firefox:114.0-geckodriver-0.36-grid-4.29.0-20250303\nTagged selenium/standalone-firefox:114.0-geckodriver-0.36-grid-4.29.0-20250303\nTagged selenium/node-firefox:114.0-geckodriver-0.36-20250303\nTagged selenium/standalone-firefox:114.0-geckodriver-0.36-20250303\nTagged selenium/node-firefox:114.0-20250303\nTagged selenium/standalone-firefox:114.0-20250303\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.29.0/firefox_115.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.29.0 20250303 selenium false firefox true\nTagging images for browser firefox, version 4.29.0, build date 20250303, namespace selenium\nSelenium Grid version -> 4.29.0-20250303\nFirefox version -> 115.0.3\nShort Firefox version -> 115.0\nGeckoDriver version -> 0.36.0\nShort GeckoDriver version -> 0.36\nTagged selenium/node-firefox:115.0.3-geckodriver-0.36.0-grid-4.29.0-20250303\nTagged selenium/standalone-firefox:115.0.3-geckodriver-0.36.0-grid-4.29.0-20250303\nTagged selenium/node-firefox:115.0.3-geckodriver-0.36.0-20250303\nTagged selenium/standalone-firefox:115.0.3-geckodriver-0.36.0-20250303\nTagged selenium/node-firefox:115.0.3-20250303\nTagged selenium/standalone-firefox:115.0.3-20250303\nTagged selenium/node-firefox:115.0-geckodriver-0.36-grid-4.29.0-20250303\nTagged selenium/standalone-firefox:115.0-geckodriver-0.36-grid-4.29.0-20250303\nTagged selenium/node-firefox:115.0-geckodriver-0.36-20250303\nTagged selenium/standalone-firefox:115.0-geckodriver-0.36-20250303\nTagged selenium/node-firefox:115.0-20250303\nTagged selenium/standalone-firefox:115.0-20250303\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.29.0/firefox_116.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.29.0 20250303 selenium false firefox true\nTagging images for browser firefox, version 4.29.0, build date 20250303, namespace selenium\nSelenium Grid version -> 4.29.0-20250303\nFirefox version -> 116.0.3\nShort Firefox version -> 116.0\nGeckoDriver version -> 0.36.0\nShort GeckoDriver version -> 0.36\nTagged selenium/node-firefox:116.0.3-geckodriver-0.36.0-grid-4.29.0-20250303\nTagged selenium/standalone-firefox:116.0.3-geckodriver-0.36.0-grid-4.29.0-20250303\nTagged selenium/node-firefox:116.0.3-geckodriver-0.36.0-20250303\nTagged selenium/standalone-firefox:116.0.3-geckodriver-0.36.0-20250303\nTagged selenium/node-firefox:116.0.3-20250303\nTagged selenium/standalone-firefox:116.0.3-20250303\nTagged selenium/node-firefox:116.0-geckodriver-0.36-grid-4.29.0-20250303\nTagged selenium/standalone-firefox:116.0-geckodriver-0.36-grid-4.29.0-20250303\nTagged selenium/node-firefox:116.0-geckodriver-0.36-20250303\nTagged selenium/standalone-firefox:116.0-geckodriver-0.36-20250303\nTagged selenium/node-firefox:116.0-20250303\nTagged selenium/standalone-firefox:116.0-20250303\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.29.0/firefox_117.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.29.0 20250303 selenium false firefox true\nTagging images for browser firefox, version 4.29.0, build date 20250303, namespace selenium\nSelenium Grid version -> 4.29.0-20250303\nFirefox version -> 117.0.1\nShort Firefox version -> 117.0\nGeckoDriver version -> 0.36.0\nShort GeckoDriver version -> 0.36\nTagged selenium/node-firefox:117.0.1-geckodriver-0.36.0-grid-4.29.0-20250303\nTagged selenium/standalone-firefox:117.0.1-geckodriver-0.36.0-grid-4.29.0-20250303\nTagged selenium/node-firefox:117.0.1-geckodriver-0.36.0-20250303\nTagged selenium/standalone-firefox:117.0.1-geckodriver-0.36.0-20250303\nTagged selenium/node-firefox:117.0.1-20250303\nTagged selenium/standalone-firefox:117.0.1-20250303\nTagged selenium/node-firefox:117.0-geckodriver-0.36-grid-4.29.0-20250303\nTagged selenium/standalone-firefox:117.0-geckodriver-0.36-grid-4.29.0-20250303\nTagged selenium/node-firefox:117.0-geckodriver-0.36-20250303\nTagged selenium/standalone-firefox:117.0-geckodriver-0.36-20250303\nTagged selenium/node-firefox:117.0-20250303\nTagged selenium/standalone-firefox:117.0-20250303\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.29.0/firefox_118.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.29.0 20250303 selenium false firefox true\nTagging images for browser firefox, version 4.29.0, build date 20250303, namespace selenium\nSelenium Grid version -> 4.29.0-20250303\nFirefox version -> 118.0.2\nShort Firefox version -> 118.0\nGeckoDriver version -> 0.36.0\nShort GeckoDriver version -> 0.36\nTagged selenium/node-firefox:118.0.2-geckodriver-0.36.0-grid-4.29.0-20250303\nTagged selenium/standalone-firefox:118.0.2-geckodriver-0.36.0-grid-4.29.0-20250303\nTagged selenium/node-firefox:118.0.2-geckodriver-0.36.0-20250303\nTagged selenium/standalone-firefox:118.0.2-geckodriver-0.36.0-20250303\nTagged selenium/node-firefox:118.0.2-20250303\nTagged selenium/standalone-firefox:118.0.2-20250303\nTagged selenium/node-firefox:118.0-geckodriver-0.36-grid-4.29.0-20250303\nTagged selenium/standalone-firefox:118.0-geckodriver-0.36-grid-4.29.0-20250303\nTagged selenium/node-firefox:118.0-geckodriver-0.36-20250303\nTagged selenium/standalone-firefox:118.0-geckodriver-0.36-20250303\nTagged selenium/node-firefox:118.0-20250303\nTagged selenium/standalone-firefox:118.0-20250303\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.29.0/firefox_119.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.29.0 20250303 selenium false firefox true\nTagging images for browser firefox, version 4.29.0, build date 20250303, namespace selenium\nSelenium Grid version -> 4.29.0-20250303\nFirefox version -> 119.0.1\nShort Firefox version -> 119.0\nGeckoDriver version -> 0.36.0\nShort GeckoDriver version -> 0.36\nTagged selenium/node-firefox:119.0.1-geckodriver-0.36.0-grid-4.29.0-20250303\nTagged selenium/standalone-firefox:119.0.1-geckodriver-0.36.0-grid-4.29.0-20250303\nTagged selenium/node-firefox:119.0.1-geckodriver-0.36.0-20250303\nTagged selenium/standalone-firefox:119.0.1-geckodriver-0.36.0-20250303\nTagged selenium/node-firefox:119.0.1-20250303\nTagged selenium/standalone-firefox:119.0.1-20250303\nTagged selenium/node-firefox:119.0-geckodriver-0.36-grid-4.29.0-20250303\nTagged selenium/standalone-firefox:119.0-geckodriver-0.36-grid-4.29.0-20250303\nTagged selenium/node-firefox:119.0-geckodriver-0.36-20250303\nTagged selenium/standalone-firefox:119.0-geckodriver-0.36-20250303\nTagged selenium/node-firefox:119.0-20250303\nTagged selenium/standalone-firefox:119.0-20250303\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.29.0/firefox_120.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.29.0 20250303 selenium false firefox true\nTagging images for browser firefox, version 4.29.0, build date 20250303, namespace selenium\nSelenium Grid version -> 4.29.0-20250303\nFirefox version -> 120.0.1\nShort Firefox version -> 120.0\nGeckoDriver version -> 0.36.0\nShort GeckoDriver version -> 0.36\nTagged selenium/node-firefox:120.0.1-geckodriver-0.36.0-grid-4.29.0-20250303\nTagged selenium/standalone-firefox:120.0.1-geckodriver-0.36.0-grid-4.29.0-20250303\nTagged selenium/node-firefox:120.0.1-geckodriver-0.36.0-20250303\nTagged selenium/standalone-firefox:120.0.1-geckodriver-0.36.0-20250303\nTagged selenium/node-firefox:120.0.1-20250303\nTagged selenium/standalone-firefox:120.0.1-20250303\nTagged selenium/node-firefox:120.0-geckodriver-0.36-grid-4.29.0-20250303\nTagged selenium/standalone-firefox:120.0-geckodriver-0.36-grid-4.29.0-20250303\nTagged selenium/node-firefox:120.0-geckodriver-0.36-20250303\nTagged selenium/standalone-firefox:120.0-geckodriver-0.36-20250303\nTagged selenium/node-firefox:120.0-20250303\nTagged selenium/standalone-firefox:120.0-20250303\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.29.0/firefox_121.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.29.0 20250303 selenium false firefox true\nTagging images for browser firefox, version 4.29.0, build date 20250303, namespace selenium\nSelenium Grid version -> 4.29.0-20250303\nFirefox version -> 121.0.1\nShort Firefox version -> 121.0\nGeckoDriver version -> 0.36.0\nShort GeckoDriver version -> 0.36\nTagged selenium/node-firefox:121.0.1-geckodriver-0.36.0-grid-4.29.0-20250303\nTagged selenium/standalone-firefox:121.0.1-geckodriver-0.36.0-grid-4.29.0-20250303\nTagged selenium/node-firefox:121.0.1-geckodriver-0.36.0-20250303\nTagged selenium/standalone-firefox:121.0.1-geckodriver-0.36.0-20250303\nTagged selenium/node-firefox:121.0.1-20250303\nTagged selenium/standalone-firefox:121.0.1-20250303\nTagged selenium/node-firefox:121.0-geckodriver-0.36-grid-4.29.0-20250303\nTagged selenium/standalone-firefox:121.0-geckodriver-0.36-grid-4.29.0-20250303\nTagged selenium/node-firefox:121.0-geckodriver-0.36-20250303\nTagged selenium/standalone-firefox:121.0-geckodriver-0.36-20250303\nTagged selenium/node-firefox:121.0-20250303\nTagged selenium/standalone-firefox:121.0-20250303\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.29.0/firefox_122.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.29.0 20250303 selenium false firefox true\nTagging images for browser firefox, version 4.29.0, build date 20250303, namespace selenium\nSelenium Grid version -> 4.29.0-20250303\nFirefox version -> 122.0.1\nShort Firefox version -> 122.0\nGeckoDriver version -> 0.36.0\nShort GeckoDriver version -> 0.36\nTagged selenium/node-firefox:122.0.1-geckodriver-0.36.0-grid-4.29.0-20250303\nTagged selenium/standalone-firefox:122.0.1-geckodriver-0.36.0-grid-4.29.0-20250303\nTagged selenium/node-firefox:122.0.1-geckodriver-0.36.0-20250303\nTagged selenium/standalone-firefox:122.0.1-geckodriver-0.36.0-20250303\nTagged selenium/node-firefox:122.0.1-20250303\nTagged selenium/standalone-firefox:122.0.1-20250303\nTagged selenium/node-firefox:122.0-geckodriver-0.36-grid-4.29.0-20250303\nTagged selenium/standalone-firefox:122.0-geckodriver-0.36-grid-4.29.0-20250303\nTagged selenium/node-firefox:122.0-geckodriver-0.36-20250303\nTagged selenium/standalone-firefox:122.0-geckodriver-0.36-20250303\nTagged selenium/node-firefox:122.0-20250303\nTagged selenium/standalone-firefox:122.0-20250303\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.29.0/firefox_123.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.29.0 20250303 selenium false firefox true\nTagging images for browser firefox, version 4.29.0, build date 20250303, namespace selenium\nSelenium Grid version -> 4.29.0-20250303\nFirefox version -> 123.0.1\nShort Firefox version -> 123.0\nGeckoDriver version -> 0.36.0\nShort GeckoDriver version -> 0.36\nTagged selenium/node-firefox:123.0.1-geckodriver-0.36.0-grid-4.29.0-20250303\nTagged selenium/standalone-firefox:123.0.1-geckodriver-0.36.0-grid-4.29.0-20250303\nTagged selenium/node-firefox:123.0.1-geckodriver-0.36.0-20250303\nTagged selenium/standalone-firefox:123.0.1-geckodriver-0.36.0-20250303\nTagged selenium/node-firefox:123.0.1-20250303\nTagged selenium/standalone-firefox:123.0.1-20250303\nTagged selenium/node-firefox:123.0-geckodriver-0.36-grid-4.29.0-20250303\nTagged selenium/standalone-firefox:123.0-geckodriver-0.36-grid-4.29.0-20250303\nTagged selenium/node-firefox:123.0-geckodriver-0.36-20250303\nTagged selenium/standalone-firefox:123.0-geckodriver-0.36-20250303\nTagged selenium/node-firefox:123.0-20250303\nTagged selenium/standalone-firefox:123.0-20250303\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.29.0/firefox_124.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.29.0 20250303 selenium false firefox true\nTagging images for browser firefox, version 4.29.0, build date 20250303, namespace selenium\nSelenium Grid version -> 4.29.0-20250303\nFirefox version -> 124.0.2\nShort Firefox version -> 124.0\nGeckoDriver version -> 0.36.0\nShort GeckoDriver version -> 0.36\nTagged selenium/node-firefox:124.0.2-geckodriver-0.36.0-grid-4.29.0-20250303\nTagged selenium/standalone-firefox:124.0.2-geckodriver-0.36.0-grid-4.29.0-20250303\nTagged selenium/node-firefox:124.0.2-geckodriver-0.36.0-20250303\nTagged selenium/standalone-firefox:124.0.2-geckodriver-0.36.0-20250303\nTagged selenium/node-firefox:124.0.2-20250303\nTagged selenium/standalone-firefox:124.0.2-20250303\nTagged selenium/node-firefox:124.0-geckodriver-0.36-grid-4.29.0-20250303\nTagged selenium/standalone-firefox:124.0-geckodriver-0.36-grid-4.29.0-20250303\nTagged selenium/node-firefox:124.0-geckodriver-0.36-20250303\nTagged selenium/standalone-firefox:124.0-geckodriver-0.36-20250303\nTagged selenium/node-firefox:124.0-20250303\nTagged selenium/standalone-firefox:124.0-20250303\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.29.0/firefox_125.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.29.0 20250303 selenium false firefox true\nTagging images for browser firefox, version 4.29.0, build date 20250303, namespace selenium\nSelenium Grid version -> 4.29.0-20250303\nFirefox version -> 125.0.3\nShort Firefox version -> 125.0\nGeckoDriver version -> 0.36.0\nShort GeckoDriver version -> 0.36\nTagged selenium/node-firefox:125.0.3-geckodriver-0.36.0-grid-4.29.0-20250303\nTagged selenium/standalone-firefox:125.0.3-geckodriver-0.36.0-grid-4.29.0-20250303\nTagged selenium/node-firefox:125.0.3-geckodriver-0.36.0-20250303\nTagged selenium/standalone-firefox:125.0.3-geckodriver-0.36.0-20250303\nTagged selenium/node-firefox:125.0.3-20250303\nTagged selenium/standalone-firefox:125.0.3-20250303\nTagged selenium/node-firefox:125.0-geckodriver-0.36-grid-4.29.0-20250303\nTagged selenium/standalone-firefox:125.0-geckodriver-0.36-grid-4.29.0-20250303\nTagged selenium/node-firefox:125.0-geckodriver-0.36-20250303\nTagged selenium/standalone-firefox:125.0-geckodriver-0.36-20250303\nTagged selenium/node-firefox:125.0-20250303\nTagged selenium/standalone-firefox:125.0-20250303\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.29.0/firefox_126.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.29.0 20250303 selenium false firefox true\nTagging images for browser firefox, version 4.29.0, build date 20250303, namespace selenium\nSelenium Grid version -> 4.29.0-20250303\nFirefox version -> 126.0.1\nShort Firefox version -> 126.0\nGeckoDriver version -> 0.36.0\nShort GeckoDriver version -> 0.36\nTagged selenium/node-firefox:126.0.1-geckodriver-0.36.0-grid-4.29.0-20250303\nTagged selenium/standalone-firefox:126.0.1-geckodriver-0.36.0-grid-4.29.0-20250303\nTagged selenium/node-firefox:126.0.1-geckodriver-0.36.0-20250303\nTagged selenium/standalone-firefox:126.0.1-geckodriver-0.36.0-20250303\nTagged selenium/node-firefox:126.0.1-20250303\nTagged selenium/standalone-firefox:126.0.1-20250303\nTagged selenium/node-firefox:126.0-geckodriver-0.36-grid-4.29.0-20250303\nTagged selenium/standalone-firefox:126.0-geckodriver-0.36-grid-4.29.0-20250303\nTagged selenium/node-firefox:126.0-geckodriver-0.36-20250303\nTagged selenium/standalone-firefox:126.0-geckodriver-0.36-20250303\nTagged selenium/node-firefox:126.0-20250303\nTagged selenium/standalone-firefox:126.0-20250303\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.29.0/firefox_127.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.29.0 20250303 selenium false firefox true\nTagging images for browser firefox, version 4.29.0, build date 20250303, namespace selenium\nSelenium Grid version -> 4.29.0-20250303\nFirefox version -> 127.0.2\nShort Firefox version -> 127.0\nGeckoDriver version -> 0.36.0\nShort GeckoDriver version -> 0.36\nTagged selenium/node-firefox:127.0.2-geckodriver-0.36.0-grid-4.29.0-20250303\nTagged selenium/standalone-firefox:127.0.2-geckodriver-0.36.0-grid-4.29.0-20250303\nTagged selenium/node-firefox:127.0.2-geckodriver-0.36.0-20250303\nTagged selenium/standalone-firefox:127.0.2-geckodriver-0.36.0-20250303\nTagged selenium/node-firefox:127.0.2-20250303\nTagged selenium/standalone-firefox:127.0.2-20250303\nTagged selenium/node-firefox:127.0-geckodriver-0.36-grid-4.29.0-20250303\nTagged selenium/standalone-firefox:127.0-geckodriver-0.36-grid-4.29.0-20250303\nTagged selenium/node-firefox:127.0-geckodriver-0.36-20250303\nTagged selenium/standalone-firefox:127.0-geckodriver-0.36-20250303\nTagged selenium/node-firefox:127.0-20250303\nTagged selenium/standalone-firefox:127.0-20250303\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.29.0/firefox_128.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.29.0 20250303 selenium false firefox true\nTagging images for browser firefox, version 4.29.0, build date 20250303, namespace selenium\nSelenium Grid version -> 4.29.0-20250303\nFirefox version -> 128.0.3\nShort Firefox version -> 128.0\nGeckoDriver version -> 0.36.0\nShort GeckoDriver version -> 0.36\nTagged selenium/node-firefox:128.0.3-geckodriver-0.36.0-grid-4.29.0-20250303\nTagged selenium/standalone-firefox:128.0.3-geckodriver-0.36.0-grid-4.29.0-20250303\nTagged selenium/node-firefox:128.0.3-geckodriver-0.36.0-20250303\nTagged selenium/standalone-firefox:128.0.3-geckodriver-0.36.0-20250303\nTagged selenium/node-firefox:128.0.3-20250303\nTagged selenium/standalone-firefox:128.0.3-20250303\nTagged selenium/node-firefox:128.0-geckodriver-0.36-grid-4.29.0-20250303\nTagged selenium/standalone-firefox:128.0-geckodriver-0.36-grid-4.29.0-20250303\nTagged selenium/node-firefox:128.0-geckodriver-0.36-20250303\nTagged selenium/standalone-firefox:128.0-geckodriver-0.36-20250303\nTagged selenium/node-firefox:128.0-20250303\nTagged selenium/standalone-firefox:128.0-20250303\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.29.0/firefox_129.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.29.0 20250303 selenium false firefox true\nTagging images for browser firefox, version 4.29.0, build date 20250303, namespace selenium\nSelenium Grid version -> 4.29.0-20250303\nFirefox version -> 129.0.2\nShort Firefox version -> 129.0\nGeckoDriver version -> 0.36.0\nShort GeckoDriver version -> 0.36\nTagged selenium/node-firefox:129.0.2-geckodriver-0.36.0-grid-4.29.0-20250303\nTagged selenium/standalone-firefox:129.0.2-geckodriver-0.36.0-grid-4.29.0-20250303\nTagged selenium/node-firefox:129.0.2-geckodriver-0.36.0-20250303\nTagged selenium/standalone-firefox:129.0.2-geckodriver-0.36.0-20250303\nTagged selenium/node-firefox:129.0.2-20250303\nTagged selenium/standalone-firefox:129.0.2-20250303\nTagged selenium/node-firefox:129.0-geckodriver-0.36-grid-4.29.0-20250303\nTagged selenium/standalone-firefox:129.0-geckodriver-0.36-grid-4.29.0-20250303\nTagged selenium/node-firefox:129.0-geckodriver-0.36-20250303\nTagged selenium/standalone-firefox:129.0-geckodriver-0.36-20250303\nTagged selenium/node-firefox:129.0-20250303\nTagged selenium/standalone-firefox:129.0-20250303\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.29.0/firefox_130.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.29.0 20250303 selenium false firefox true\nTagging images for browser firefox, version 4.29.0, build date 20250303, namespace selenium\nSelenium Grid version -> 4.29.0-20250303\nFirefox version -> 130.0.1\nShort Firefox version -> 130.0\nGeckoDriver version -> 0.36.0\nShort GeckoDriver version -> 0.36\nTagged selenium/node-firefox:130.0.1-geckodriver-0.36.0-grid-4.29.0-20250303\nTagged selenium/standalone-firefox:130.0.1-geckodriver-0.36.0-grid-4.29.0-20250303\nTagged selenium/node-firefox:130.0.1-geckodriver-0.36.0-20250303\nTagged selenium/standalone-firefox:130.0.1-geckodriver-0.36.0-20250303\nTagged selenium/node-firefox:130.0.1-20250303\nTagged selenium/standalone-firefox:130.0.1-20250303\nTagged selenium/node-firefox:130.0-geckodriver-0.36-grid-4.29.0-20250303\nTagged selenium/standalone-firefox:130.0-geckodriver-0.36-grid-4.29.0-20250303\nTagged selenium/node-firefox:130.0-geckodriver-0.36-20250303\nTagged selenium/standalone-firefox:130.0-geckodriver-0.36-20250303\nTagged selenium/node-firefox:130.0-20250303\nTagged selenium/standalone-firefox:130.0-20250303\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.29.0/firefox_131.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.29.0 20250303 selenium false firefox true\nTagging images for browser firefox, version 4.29.0, build date 20250303, namespace selenium\nSelenium Grid version -> 4.29.0-20250303\nFirefox version -> 131.0.3\nShort Firefox version -> 131.0\nGeckoDriver version -> 0.36.0\nShort GeckoDriver version -> 0.36\nTagged selenium/node-firefox:131.0.3-geckodriver-0.36.0-grid-4.29.0-20250303\nTagged selenium/standalone-firefox:131.0.3-geckodriver-0.36.0-grid-4.29.0-20250303\nTagged selenium/node-firefox:131.0.3-geckodriver-0.36.0-20250303\nTagged selenium/standalone-firefox:131.0.3-geckodriver-0.36.0-20250303\nTagged selenium/node-firefox:131.0.3-20250303\nTagged selenium/standalone-firefox:131.0.3-20250303\nTagged selenium/node-firefox:131.0-geckodriver-0.36-grid-4.29.0-20250303\nTagged selenium/standalone-firefox:131.0-geckodriver-0.36-grid-4.29.0-20250303\nTagged selenium/node-firefox:131.0-geckodriver-0.36-20250303\nTagged selenium/standalone-firefox:131.0-geckodriver-0.36-20250303\nTagged selenium/node-firefox:131.0-20250303\nTagged selenium/standalone-firefox:131.0-20250303\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.29.0/firefox_132.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.29.0 20250303 selenium false firefox true\nTagging images for browser firefox, version 4.29.0, build date 20250303, namespace selenium\nSelenium Grid version -> 4.29.0-20250303\nFirefox version -> 132.0.2\nShort Firefox version -> 132.0\nGeckoDriver version -> 0.36.0\nShort GeckoDriver version -> 0.36\nTagged selenium/node-firefox:132.0.2-geckodriver-0.36.0-grid-4.29.0-20250303\nTagged selenium/standalone-firefox:132.0.2-geckodriver-0.36.0-grid-4.29.0-20250303\nTagged selenium/node-firefox:132.0.2-geckodriver-0.36.0-20250303\nTagged selenium/standalone-firefox:132.0.2-geckodriver-0.36.0-20250303\nTagged selenium/node-firefox:132.0.2-20250303\nTagged selenium/standalone-firefox:132.0.2-20250303\nTagged selenium/node-firefox:132.0-geckodriver-0.36-grid-4.29.0-20250303\nTagged selenium/standalone-firefox:132.0-geckodriver-0.36-grid-4.29.0-20250303\nTagged selenium/node-firefox:132.0-geckodriver-0.36-20250303\nTagged selenium/standalone-firefox:132.0-geckodriver-0.36-20250303\nTagged selenium/node-firefox:132.0-20250303\nTagged selenium/standalone-firefox:132.0-20250303\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.29.0/firefox_133.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.29.0 20250303 selenium false firefox true\nTagging images for browser firefox, version 4.29.0, build date 20250303, namespace selenium\nSelenium Grid version -> 4.29.0-20250303\nFirefox version -> 133.0.3\nShort Firefox version -> 133.0\nGeckoDriver version -> 0.36.0\nShort GeckoDriver version -> 0.36\nTagged selenium/node-firefox:133.0.3-geckodriver-0.36.0-grid-4.29.0-20250303\nTagged selenium/standalone-firefox:133.0.3-geckodriver-0.36.0-grid-4.29.0-20250303\nTagged selenium/node-firefox:133.0.3-geckodriver-0.36.0-20250303\nTagged selenium/standalone-firefox:133.0.3-geckodriver-0.36.0-20250303\nTagged selenium/node-firefox:133.0.3-20250303\nTagged selenium/standalone-firefox:133.0.3-20250303\nTagged selenium/node-firefox:133.0-geckodriver-0.36-grid-4.29.0-20250303\nTagged selenium/standalone-firefox:133.0-geckodriver-0.36-grid-4.29.0-20250303\nTagged selenium/node-firefox:133.0-geckodriver-0.36-20250303\nTagged selenium/standalone-firefox:133.0-geckodriver-0.36-20250303\nTagged selenium/node-firefox:133.0-20250303\nTagged selenium/standalone-firefox:133.0-20250303\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.29.0/firefox_134.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.29.0 20250303 selenium false firefox true\nTagging images for browser firefox, version 4.29.0, build date 20250303, namespace selenium\nSelenium Grid version -> 4.29.0-20250303\nFirefox version -> 134.0.2\nShort Firefox version -> 134.0\nGeckoDriver version -> 0.36.0\nShort GeckoDriver version -> 0.36\nTagged selenium/node-firefox:134.0.2-geckodriver-0.36.0-grid-4.29.0-20250303\nTagged selenium/standalone-firefox:134.0.2-geckodriver-0.36.0-grid-4.29.0-20250303\nTagged selenium/node-firefox:134.0.2-geckodriver-0.36.0-20250303\nTagged selenium/standalone-firefox:134.0.2-geckodriver-0.36.0-20250303\nTagged selenium/node-firefox:134.0.2-20250303\nTagged selenium/standalone-firefox:134.0.2-20250303\nTagged selenium/node-firefox:134.0-geckodriver-0.36-grid-4.29.0-20250303\nTagged selenium/standalone-firefox:134.0-geckodriver-0.36-grid-4.29.0-20250303\nTagged selenium/node-firefox:134.0-geckodriver-0.36-20250303\nTagged selenium/standalone-firefox:134.0-geckodriver-0.36-20250303\nTagged selenium/node-firefox:134.0-20250303\nTagged selenium/standalone-firefox:134.0-20250303\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.29.0/firefox_135.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.29.0 20250303 selenium false firefox true\nTagging images for browser firefox, version 4.29.0, build date 20250303, namespace selenium\nSelenium Grid version -> 4.29.0-20250303\nFirefox version -> 135.0.1\nShort Firefox version -> 135.0\nGeckoDriver version -> 0.36.0\nShort GeckoDriver version -> 0.36\nTagged selenium/node-firefox:135.0.1-geckodriver-0.36.0-grid-4.29.0-20250303\nTagged selenium/standalone-firefox:135.0.1-geckodriver-0.36.0-grid-4.29.0-20250303\nTagged selenium/node-firefox:135.0.1-geckodriver-0.36.0-20250303\nTagged selenium/standalone-firefox:135.0.1-geckodriver-0.36.0-20250303\nTagged selenium/node-firefox:135.0.1-20250303\nTagged selenium/standalone-firefox:135.0.1-20250303\nTagged selenium/node-firefox:135.0-geckodriver-0.36-grid-4.29.0-20250303\nTagged selenium/standalone-firefox:135.0-geckodriver-0.36-grid-4.29.0-20250303\nTagged selenium/node-firefox:135.0-geckodriver-0.36-20250303\nTagged selenium/standalone-firefox:135.0-geckodriver-0.36-20250303\nTagged selenium/node-firefox:135.0-20250303\nTagged selenium/standalone-firefox:135.0-20250303\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.29.0/firefox_136.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.29.0 20250303 selenium false firefox true\nTagging images for browser firefox, version 4.29.0, build date 20250303, namespace selenium\nSelenium Grid version -> 4.29.0-20250303\nFirefox version -> 136.0\nShort Firefox version -> 136.0\nGeckoDriver version -> 0.36.0\nShort GeckoDriver version -> 0.36\nTagged selenium/node-firefox:136.0-geckodriver-0.36.0-grid-4.29.0-20250303\nTagged selenium/standalone-firefox:136.0-geckodriver-0.36.0-grid-4.29.0-20250303\nTagged selenium/node-firefox:136.0-geckodriver-0.36.0-20250303\nTagged selenium/standalone-firefox:136.0-geckodriver-0.36.0-20250303\nTagged selenium/node-firefox:136.0-20250303\nTagged selenium/standalone-firefox:136.0-20250303\nTagged selenium/node-firefox:136.0-geckodriver-0.36-grid-4.29.0-20250303\nTagged selenium/standalone-firefox:136.0-geckodriver-0.36-grid-4.29.0-20250303\nTagged selenium/node-firefox:136.0-geckodriver-0.36-20250303\nTagged selenium/standalone-firefox:136.0-geckodriver-0.36-20250303\nTagged selenium/node-firefox:136.0-20250303\nTagged selenium/standalone-firefox:136.0-20250303\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.29.0/firefox_98.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.29.0 20250303 selenium false firefox true\nTagging images for browser firefox, version 4.29.0, build date 20250303, namespace selenium\nSelenium Grid version -> 4.29.0-20250303\nFirefox version -> 98.0.2\nShort Firefox version -> 98.0\nGeckoDriver version -> 0.36.0\nShort GeckoDriver version -> 0.36\nTagged selenium/node-firefox:98.0.2-geckodriver-0.36.0-grid-4.29.0-20250303\nTagged selenium/standalone-firefox:98.0.2-geckodriver-0.36.0-grid-4.29.0-20250303\nTagged selenium/node-firefox:98.0.2-geckodriver-0.36.0-20250303\nTagged selenium/standalone-firefox:98.0.2-geckodriver-0.36.0-20250303\nTagged selenium/node-firefox:98.0.2-20250303\nTagged selenium/standalone-firefox:98.0.2-20250303\nTagged selenium/node-firefox:98.0-geckodriver-0.36-grid-4.29.0-20250303\nTagged selenium/standalone-firefox:98.0-geckodriver-0.36-grid-4.29.0-20250303\nTagged selenium/node-firefox:98.0-geckodriver-0.36-20250303\nTagged selenium/standalone-firefox:98.0-geckodriver-0.36-20250303\nTagged selenium/node-firefox:98.0-20250303\nTagged selenium/standalone-firefox:98.0-20250303\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.29.0/firefox_99.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.29.0 20250303 selenium false firefox true\nTagging images for browser firefox, version 4.29.0, build date 20250303, namespace selenium\nSelenium Grid version -> 4.29.0-20250303\nFirefox version -> 99.0.1\nShort Firefox version -> 99.0\nGeckoDriver version -> 0.36.0\nShort GeckoDriver version -> 0.36\nTagged selenium/node-firefox:99.0.1-geckodriver-0.36.0-grid-4.29.0-20250303\nTagged selenium/standalone-firefox:99.0.1-geckodriver-0.36.0-grid-4.29.0-20250303\nTagged selenium/node-firefox:99.0.1-geckodriver-0.36.0-20250303\nTagged selenium/standalone-firefox:99.0.1-geckodriver-0.36.0-20250303\nTagged selenium/node-firefox:99.0.1-20250303\nTagged selenium/standalone-firefox:99.0.1-20250303\nTagged selenium/node-firefox:99.0-geckodriver-0.36-grid-4.29.0-20250303\nTagged selenium/standalone-firefox:99.0-geckodriver-0.36-grid-4.29.0-20250303\nTagged selenium/node-firefox:99.0-geckodriver-0.36-20250303\nTagged selenium/standalone-firefox:99.0-geckodriver-0.36-20250303\nTagged selenium/node-firefox:99.0-20250303\nTagged selenium/standalone-firefox:99.0-20250303\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.30.0/chrome_100.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.30.0 20250323 selenium false chrome true\nTagging images for browser chrome, version 4.30.0, build date 20250323, namespace selenium\nSelenium Grid version -> 4.30.0-20250323\nChrome version -> 100.0.4896.127\nShort Chrome version -> 100.0\nChromeDriver version -> 100.0.4896.60\nShort ChromeDriver version -> 100.0\nTagged selenium/node-chrome:100.0.4896.127-chromedriver-100.0.4896.60-grid-4.30.0-20250323\nTagged selenium/standalone-chrome:100.0.4896.127-chromedriver-100.0.4896.60-grid-4.30.0-20250323\nTagged selenium/node-chrome:100.0.4896.127-chromedriver-100.0.4896.60-20250323\nTagged selenium/standalone-chrome:100.0.4896.127-chromedriver-100.0.4896.60-20250323\nTagged selenium/node-chrome:100.0.4896.127-20250323\nTagged selenium/standalone-chrome:100.0.4896.127-20250323\nTagged selenium/node-chrome:100.0-chromedriver-100.0-grid-4.30.0-20250323\nTagged selenium/standalone-chrome:100.0-chromedriver-100.0-grid-4.30.0-20250323\nTagged selenium/node-chrome:100.0-chromedriver-100.0-20250323\nTagged selenium/standalone-chrome:100.0-chromedriver-100.0-20250323\nTagged selenium/node-chrome:100.0-20250323\nTagged selenium/standalone-chrome:100.0-20250323\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.30.0/chrome_101.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.30.0 20250323 selenium false chrome true\nTagging images for browser chrome, version 4.30.0, build date 20250323, namespace selenium\nSelenium Grid version -> 4.30.0-20250323\nChrome version -> 101.0.4951.64\nShort Chrome version -> 101.0\nChromeDriver version -> 101.0.4951.41\nShort ChromeDriver version -> 101.0\nTagged selenium/node-chrome:101.0.4951.64-chromedriver-101.0.4951.41-grid-4.30.0-20250323\nTagged selenium/standalone-chrome:101.0.4951.64-chromedriver-101.0.4951.41-grid-4.30.0-20250323\nTagged selenium/node-chrome:101.0.4951.64-chromedriver-101.0.4951.41-20250323\nTagged selenium/standalone-chrome:101.0.4951.64-chromedriver-101.0.4951.41-20250323\nTagged selenium/node-chrome:101.0.4951.64-20250323\nTagged selenium/standalone-chrome:101.0.4951.64-20250323\nTagged selenium/node-chrome:101.0-chromedriver-101.0-grid-4.30.0-20250323\nTagged selenium/standalone-chrome:101.0-chromedriver-101.0-grid-4.30.0-20250323\nTagged selenium/node-chrome:101.0-chromedriver-101.0-20250323\nTagged selenium/standalone-chrome:101.0-chromedriver-101.0-20250323\nTagged selenium/node-chrome:101.0-20250323\nTagged selenium/standalone-chrome:101.0-20250323\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.30.0/chrome_102.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.30.0 20250323 selenium false chrome true\nTagging images for browser chrome, version 4.30.0, build date 20250323, namespace selenium\nSelenium Grid version -> 4.30.0-20250323\nChrome version -> 102.0.5005.115\nShort Chrome version -> 102.0\nChromeDriver version -> 102.0.5005.61\nShort ChromeDriver version -> 102.0\nTagged selenium/node-chrome:102.0.5005.115-chromedriver-102.0.5005.61-grid-4.30.0-20250323\nTagged selenium/standalone-chrome:102.0.5005.115-chromedriver-102.0.5005.61-grid-4.30.0-20250323\nTagged selenium/node-chrome:102.0.5005.115-chromedriver-102.0.5005.61-20250323\nTagged selenium/standalone-chrome:102.0.5005.115-chromedriver-102.0.5005.61-20250323\nTagged selenium/node-chrome:102.0.5005.115-20250323\nTagged selenium/standalone-chrome:102.0.5005.115-20250323\nTagged selenium/node-chrome:102.0-chromedriver-102.0-grid-4.30.0-20250323\nTagged selenium/standalone-chrome:102.0-chromedriver-102.0-grid-4.30.0-20250323\nTagged selenium/node-chrome:102.0-chromedriver-102.0-20250323\nTagged selenium/standalone-chrome:102.0-chromedriver-102.0-20250323\nTagged selenium/node-chrome:102.0-20250323\nTagged selenium/standalone-chrome:102.0-20250323\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.30.0/chrome_103.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.30.0 20250323 selenium false chrome true\nTagging images for browser chrome, version 4.30.0, build date 20250323, namespace selenium\nSelenium Grid version -> 4.30.0-20250323\nChrome version -> 103.0.5060.134\nShort Chrome version -> 103.0\nChromeDriver version -> 103.0.5060.134\nShort ChromeDriver version -> 103.0\nTagged selenium/node-chrome:103.0.5060.134-chromedriver-103.0.5060.134-grid-4.30.0-20250323\nTagged selenium/standalone-chrome:103.0.5060.134-chromedriver-103.0.5060.134-grid-4.30.0-20250323\nTagged selenium/node-chrome:103.0.5060.134-chromedriver-103.0.5060.134-20250323\nTagged selenium/standalone-chrome:103.0.5060.134-chromedriver-103.0.5060.134-20250323\nTagged selenium/node-chrome:103.0.5060.134-20250323\nTagged selenium/standalone-chrome:103.0.5060.134-20250323\nTagged selenium/node-chrome:103.0-chromedriver-103.0-grid-4.30.0-20250323\nTagged selenium/standalone-chrome:103.0-chromedriver-103.0-grid-4.30.0-20250323\nTagged selenium/node-chrome:103.0-chromedriver-103.0-20250323\nTagged selenium/standalone-chrome:103.0-chromedriver-103.0-20250323\nTagged selenium/node-chrome:103.0-20250323\nTagged selenium/standalone-chrome:103.0-20250323\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.30.0/chrome_104.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.30.0 20250323 selenium false chrome true\nTagging images for browser chrome, version 4.30.0, build date 20250323, namespace selenium\nSelenium Grid version -> 4.30.0-20250323\nChrome version -> 104.0.5112.101\nShort Chrome version -> 104.0\nChromeDriver version -> 104.0.5112.79\nShort ChromeDriver version -> 104.0\nTagged selenium/node-chrome:104.0.5112.101-chromedriver-104.0.5112.79-grid-4.30.0-20250323\nTagged selenium/standalone-chrome:104.0.5112.101-chromedriver-104.0.5112.79-grid-4.30.0-20250323\nTagged selenium/node-chrome:104.0.5112.101-chromedriver-104.0.5112.79-20250323\nTagged selenium/standalone-chrome:104.0.5112.101-chromedriver-104.0.5112.79-20250323\nTagged selenium/node-chrome:104.0.5112.101-20250323\nTagged selenium/standalone-chrome:104.0.5112.101-20250323\nTagged selenium/node-chrome:104.0-chromedriver-104.0-grid-4.30.0-20250323\nTagged selenium/standalone-chrome:104.0-chromedriver-104.0-grid-4.30.0-20250323\nTagged selenium/node-chrome:104.0-chromedriver-104.0-20250323\nTagged selenium/standalone-chrome:104.0-chromedriver-104.0-20250323\nTagged selenium/node-chrome:104.0-20250323\nTagged selenium/standalone-chrome:104.0-20250323\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.30.0/chrome_105.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.30.0 20250323 selenium false chrome true\nTagging images for browser chrome, version 4.30.0, build date 20250323, namespace selenium\nSelenium Grid version -> 4.30.0-20250323\nChrome version -> 105.0.5195.125\nShort Chrome version -> 105.0\nChromeDriver version -> 105.0.5195.52\nShort ChromeDriver version -> 105.0\nTagged selenium/node-chrome:105.0.5195.125-chromedriver-105.0.5195.52-grid-4.30.0-20250323\nTagged selenium/standalone-chrome:105.0.5195.125-chromedriver-105.0.5195.52-grid-4.30.0-20250323\nTagged selenium/node-chrome:105.0.5195.125-chromedriver-105.0.5195.52-20250323\nTagged selenium/standalone-chrome:105.0.5195.125-chromedriver-105.0.5195.52-20250323\nTagged selenium/node-chrome:105.0.5195.125-20250323\nTagged selenium/standalone-chrome:105.0.5195.125-20250323\nTagged selenium/node-chrome:105.0-chromedriver-105.0-grid-4.30.0-20250323\nTagged selenium/standalone-chrome:105.0-chromedriver-105.0-grid-4.30.0-20250323\nTagged selenium/node-chrome:105.0-chromedriver-105.0-20250323\nTagged selenium/standalone-chrome:105.0-chromedriver-105.0-20250323\nTagged selenium/node-chrome:105.0-20250323\nTagged selenium/standalone-chrome:105.0-20250323\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.30.0/chrome_106.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.30.0 20250323 selenium false chrome true\nTagging images for browser chrome, version 4.30.0, build date 20250323, namespace selenium\nSelenium Grid version -> 4.30.0-20250323\nChrome version -> 106.0.5249.119\nShort Chrome version -> 106.0\nChromeDriver version -> 106.0.5249.61\nShort ChromeDriver version -> 106.0\nTagged selenium/node-chrome:106.0.5249.119-chromedriver-106.0.5249.61-grid-4.30.0-20250323\nTagged selenium/standalone-chrome:106.0.5249.119-chromedriver-106.0.5249.61-grid-4.30.0-20250323\nTagged selenium/node-chrome:106.0.5249.119-chromedriver-106.0.5249.61-20250323\nTagged selenium/standalone-chrome:106.0.5249.119-chromedriver-106.0.5249.61-20250323\nTagged selenium/node-chrome:106.0.5249.119-20250323\nTagged selenium/standalone-chrome:106.0.5249.119-20250323\nTagged selenium/node-chrome:106.0-chromedriver-106.0-grid-4.30.0-20250323\nTagged selenium/standalone-chrome:106.0-chromedriver-106.0-grid-4.30.0-20250323\nTagged selenium/node-chrome:106.0-chromedriver-106.0-20250323\nTagged selenium/standalone-chrome:106.0-chromedriver-106.0-20250323\nTagged selenium/node-chrome:106.0-20250323\nTagged selenium/standalone-chrome:106.0-20250323\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.30.0/chrome_107.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.30.0 20250323 selenium false chrome true\nTagging images for browser chrome, version 4.30.0, build date 20250323, namespace selenium\nSelenium Grid version -> 4.30.0-20250323\nChrome version -> 107.0.5304.121\nShort Chrome version -> 107.0\nChromeDriver version -> 107.0.5304.62\nShort ChromeDriver version -> 107.0\nTagged selenium/node-chrome:107.0.5304.121-chromedriver-107.0.5304.62-grid-4.30.0-20250323\nTagged selenium/standalone-chrome:107.0.5304.121-chromedriver-107.0.5304.62-grid-4.30.0-20250323\nTagged selenium/node-chrome:107.0.5304.121-chromedriver-107.0.5304.62-20250323\nTagged selenium/standalone-chrome:107.0.5304.121-chromedriver-107.0.5304.62-20250323\nTagged selenium/node-chrome:107.0.5304.121-20250323\nTagged selenium/standalone-chrome:107.0.5304.121-20250323\nTagged selenium/node-chrome:107.0-chromedriver-107.0-grid-4.30.0-20250323\nTagged selenium/standalone-chrome:107.0-chromedriver-107.0-grid-4.30.0-20250323\nTagged selenium/node-chrome:107.0-chromedriver-107.0-20250323\nTagged selenium/standalone-chrome:107.0-chromedriver-107.0-20250323\nTagged selenium/node-chrome:107.0-20250323\nTagged selenium/standalone-chrome:107.0-20250323\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.30.0/chrome_108.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.30.0 20250323 selenium false chrome true\nTagging images for browser chrome, version 4.30.0, build date 20250323, namespace selenium\nSelenium Grid version -> 4.30.0-20250323\nChrome version -> 108.0.5359.124\nShort Chrome version -> 108.0\nChromeDriver version -> 108.0.5359.71\nShort ChromeDriver version -> 108.0\nTagged selenium/node-chrome:108.0.5359.124-chromedriver-108.0.5359.71-grid-4.30.0-20250323\nTagged selenium/standalone-chrome:108.0.5359.124-chromedriver-108.0.5359.71-grid-4.30.0-20250323\nTagged selenium/node-chrome:108.0.5359.124-chromedriver-108.0.5359.71-20250323\nTagged selenium/standalone-chrome:108.0.5359.124-chromedriver-108.0.5359.71-20250323\nTagged selenium/node-chrome:108.0.5359.124-20250323\nTagged selenium/standalone-chrome:108.0.5359.124-20250323\nTagged selenium/node-chrome:108.0-chromedriver-108.0-grid-4.30.0-20250323\nTagged selenium/standalone-chrome:108.0-chromedriver-108.0-grid-4.30.0-20250323\nTagged selenium/node-chrome:108.0-chromedriver-108.0-20250323\nTagged selenium/standalone-chrome:108.0-chromedriver-108.0-20250323\nTagged selenium/node-chrome:108.0-20250323\nTagged selenium/standalone-chrome:108.0-20250323\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.30.0/chrome_109.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.30.0 20250323 selenium false chrome true\nTagging images for browser chrome, version 4.30.0, build date 20250323, namespace selenium\nSelenium Grid version -> 4.30.0-20250323\nChrome version -> 109.0.5414.119\nShort Chrome version -> 109.0\nChromeDriver version -> 109.0.5414.74\nShort ChromeDriver version -> 109.0\nTagged selenium/node-chrome:109.0.5414.119-chromedriver-109.0.5414.74-grid-4.30.0-20250323\nTagged selenium/standalone-chrome:109.0.5414.119-chromedriver-109.0.5414.74-grid-4.30.0-20250323\nTagged selenium/node-chrome:109.0.5414.119-chromedriver-109.0.5414.74-20250323\nTagged selenium/standalone-chrome:109.0.5414.119-chromedriver-109.0.5414.74-20250323\nTagged selenium/node-chrome:109.0.5414.119-20250323\nTagged selenium/standalone-chrome:109.0.5414.119-20250323\nTagged selenium/node-chrome:109.0-chromedriver-109.0-grid-4.30.0-20250323\nTagged selenium/standalone-chrome:109.0-chromedriver-109.0-grid-4.30.0-20250323\nTagged selenium/node-chrome:109.0-chromedriver-109.0-20250323\nTagged selenium/standalone-chrome:109.0-chromedriver-109.0-20250323\nTagged selenium/node-chrome:109.0-20250323\nTagged selenium/standalone-chrome:109.0-20250323\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.30.0/chrome_110.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.30.0 20250323 selenium false chrome true\nTagging images for browser chrome, version 4.30.0, build date 20250323, namespace selenium\nSelenium Grid version -> 4.30.0-20250323\nChrome version -> 110.0.5481.177\nShort Chrome version -> 110.0\nChromeDriver version -> 110.0.5481.77\nShort ChromeDriver version -> 110.0\nTagged selenium/node-chrome:110.0.5481.177-chromedriver-110.0.5481.77-grid-4.30.0-20250323\nTagged selenium/standalone-chrome:110.0.5481.177-chromedriver-110.0.5481.77-grid-4.30.0-20250323\nTagged selenium/node-chrome:110.0.5481.177-chromedriver-110.0.5481.77-20250323\nTagged selenium/standalone-chrome:110.0.5481.177-chromedriver-110.0.5481.77-20250323\nTagged selenium/node-chrome:110.0.5481.177-20250323\nTagged selenium/standalone-chrome:110.0.5481.177-20250323\nTagged selenium/node-chrome:110.0-chromedriver-110.0-grid-4.30.0-20250323\nTagged selenium/standalone-chrome:110.0-chromedriver-110.0-grid-4.30.0-20250323\nTagged selenium/node-chrome:110.0-chromedriver-110.0-20250323\nTagged selenium/standalone-chrome:110.0-chromedriver-110.0-20250323\nTagged selenium/node-chrome:110.0-20250323\nTagged selenium/standalone-chrome:110.0-20250323\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.30.0/chrome_111.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.30.0 20250323 selenium false chrome true\nTagging images for browser chrome, version 4.30.0, build date 20250323, namespace selenium\nSelenium Grid version -> 4.30.0-20250323\nChrome version -> 111.0.5563.146\nShort Chrome version -> 111.0\nChromeDriver version -> 111.0.5563.64\nShort ChromeDriver version -> 111.0\nTagged selenium/node-chrome:111.0.5563.146-chromedriver-111.0.5563.64-grid-4.30.0-20250323\nTagged selenium/standalone-chrome:111.0.5563.146-chromedriver-111.0.5563.64-grid-4.30.0-20250323\nTagged selenium/node-chrome:111.0.5563.146-chromedriver-111.0.5563.64-20250323\nTagged selenium/standalone-chrome:111.0.5563.146-chromedriver-111.0.5563.64-20250323\nTagged selenium/node-chrome:111.0.5563.146-20250323\nTagged selenium/standalone-chrome:111.0.5563.146-20250323\nTagged selenium/node-chrome:111.0-chromedriver-111.0-grid-4.30.0-20250323\nTagged selenium/standalone-chrome:111.0-chromedriver-111.0-grid-4.30.0-20250323\nTagged selenium/node-chrome:111.0-chromedriver-111.0-20250323\nTagged selenium/standalone-chrome:111.0-chromedriver-111.0-20250323\nTagged selenium/node-chrome:111.0-20250323\nTagged selenium/standalone-chrome:111.0-20250323\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.30.0/chrome_112.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.30.0 20250323 selenium false chrome true\nTagging images for browser chrome, version 4.30.0, build date 20250323, namespace selenium\nSelenium Grid version -> 4.30.0-20250323\nChrome version -> 112.0.5615.165\nShort Chrome version -> 112.0\nChromeDriver version -> 112.0.5615.49\nShort ChromeDriver version -> 112.0\nTagged selenium/node-chrome:112.0.5615.165-chromedriver-112.0.5615.49-grid-4.30.0-20250323\nTagged selenium/standalone-chrome:112.0.5615.165-chromedriver-112.0.5615.49-grid-4.30.0-20250323\nTagged selenium/node-chrome:112.0.5615.165-chromedriver-112.0.5615.49-20250323\nTagged selenium/standalone-chrome:112.0.5615.165-chromedriver-112.0.5615.49-20250323\nTagged selenium/node-chrome:112.0.5615.165-20250323\nTagged selenium/standalone-chrome:112.0.5615.165-20250323\nTagged selenium/node-chrome:112.0-chromedriver-112.0-grid-4.30.0-20250323\nTagged selenium/standalone-chrome:112.0-chromedriver-112.0-grid-4.30.0-20250323\nTagged selenium/node-chrome:112.0-chromedriver-112.0-20250323\nTagged selenium/standalone-chrome:112.0-chromedriver-112.0-20250323\nTagged selenium/node-chrome:112.0-20250323\nTagged selenium/standalone-chrome:112.0-20250323\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.30.0/chrome_113.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.30.0 20250323 selenium false chrome true\nTagging images for browser chrome, version 4.30.0, build date 20250323, namespace selenium\nSelenium Grid version -> 4.30.0-20250323\nChrome version -> 113.0.5672.126\nShort Chrome version -> 113.0\nChromeDriver version -> 113.0.5672.63\nShort ChromeDriver version -> 113.0\nTagged selenium/node-chrome:113.0.5672.126-chromedriver-113.0.5672.63-grid-4.30.0-20250323\nTagged selenium/standalone-chrome:113.0.5672.126-chromedriver-113.0.5672.63-grid-4.30.0-20250323\nTagged selenium/node-chrome:113.0.5672.126-chromedriver-113.0.5672.63-20250323\nTagged selenium/standalone-chrome:113.0.5672.126-chromedriver-113.0.5672.63-20250323\nTagged selenium/node-chrome:113.0.5672.126-20250323\nTagged selenium/standalone-chrome:113.0.5672.126-20250323\nTagged selenium/node-chrome:113.0-chromedriver-113.0-grid-4.30.0-20250323\nTagged selenium/standalone-chrome:113.0-chromedriver-113.0-grid-4.30.0-20250323\nTagged selenium/node-chrome:113.0-chromedriver-113.0-20250323\nTagged selenium/standalone-chrome:113.0-chromedriver-113.0-20250323\nTagged selenium/node-chrome:113.0-20250323\nTagged selenium/standalone-chrome:113.0-20250323\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.30.0/chrome_114.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.30.0 20250323 selenium false chrome true\nTagging images for browser chrome, version 4.30.0, build date 20250323, namespace selenium\nSelenium Grid version -> 4.30.0-20250323\nChrome version -> 114.0.5735.198\nShort Chrome version -> 114.0\nChromeDriver version -> 114.0.5735.90\nShort ChromeDriver version -> 114.0\nTagged selenium/node-chrome:114.0.5735.198-chromedriver-114.0.5735.90-grid-4.30.0-20250323\nTagged selenium/standalone-chrome:114.0.5735.198-chromedriver-114.0.5735.90-grid-4.30.0-20250323\nTagged selenium/node-chrome:114.0.5735.198-chromedriver-114.0.5735.90-20250323\nTagged selenium/standalone-chrome:114.0.5735.198-chromedriver-114.0.5735.90-20250323\nTagged selenium/node-chrome:114.0.5735.198-20250323\nTagged selenium/standalone-chrome:114.0.5735.198-20250323\nTagged selenium/node-chrome:114.0-chromedriver-114.0-grid-4.30.0-20250323\nTagged selenium/standalone-chrome:114.0-chromedriver-114.0-grid-4.30.0-20250323\nTagged selenium/node-chrome:114.0-chromedriver-114.0-20250323\nTagged selenium/standalone-chrome:114.0-chromedriver-114.0-20250323\nTagged selenium/node-chrome:114.0-20250323\nTagged selenium/standalone-chrome:114.0-20250323\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.30.0/chrome_115.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.30.0 20250323 selenium false chrome true\nTagging images for browser chrome, version 4.30.0, build date 20250323, namespace selenium\nSelenium Grid version -> 4.30.0-20250323\nChrome version -> 115.0.5790.170\nShort Chrome version -> 115.0\nChromeDriver version -> 115.0.5790.170\nShort ChromeDriver version -> 115.0\nTagged selenium/node-chrome:115.0.5790.170-chromedriver-115.0.5790.170-grid-4.30.0-20250323\nTagged selenium/standalone-chrome:115.0.5790.170-chromedriver-115.0.5790.170-grid-4.30.0-20250323\nTagged selenium/node-chrome:115.0.5790.170-chromedriver-115.0.5790.170-20250323\nTagged selenium/standalone-chrome:115.0.5790.170-chromedriver-115.0.5790.170-20250323\nTagged selenium/node-chrome:115.0.5790.170-20250323\nTagged selenium/standalone-chrome:115.0.5790.170-20250323\nTagged selenium/node-chrome:115.0-chromedriver-115.0-grid-4.30.0-20250323\nTagged selenium/standalone-chrome:115.0-chromedriver-115.0-grid-4.30.0-20250323\nTagged selenium/node-chrome:115.0-chromedriver-115.0-20250323\nTagged selenium/standalone-chrome:115.0-chromedriver-115.0-20250323\nTagged selenium/node-chrome:115.0-20250323\nTagged selenium/standalone-chrome:115.0-20250323\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.30.0/chrome_116.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.30.0 20250323 selenium false chrome true\nTagging images for browser chrome, version 4.30.0, build date 20250323, namespace selenium\nSelenium Grid version -> 4.30.0-20250323\nChrome version -> 116.0.5845.187\nShort Chrome version -> 116.0\nChromeDriver version -> 116.0.5845.96\nShort ChromeDriver version -> 116.0\nTagged selenium/node-chrome:116.0.5845.187-chromedriver-116.0.5845.96-grid-4.30.0-20250323\nTagged selenium/standalone-chrome:116.0.5845.187-chromedriver-116.0.5845.96-grid-4.30.0-20250323\nTagged selenium/node-chrome:116.0.5845.187-chromedriver-116.0.5845.96-20250323\nTagged selenium/standalone-chrome:116.0.5845.187-chromedriver-116.0.5845.96-20250323\nTagged selenium/node-chrome:116.0.5845.187-20250323\nTagged selenium/standalone-chrome:116.0.5845.187-20250323\nTagged selenium/node-chrome:116.0-chromedriver-116.0-grid-4.30.0-20250323\nTagged selenium/standalone-chrome:116.0-chromedriver-116.0-grid-4.30.0-20250323\nTagged selenium/node-chrome:116.0-chromedriver-116.0-20250323\nTagged selenium/standalone-chrome:116.0-chromedriver-116.0-20250323\nTagged selenium/node-chrome:116.0-20250323\nTagged selenium/standalone-chrome:116.0-20250323\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.30.0/chrome_117.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.30.0 20250323 selenium false chrome true\nTagging images for browser chrome, version 4.30.0, build date 20250323, namespace selenium\nSelenium Grid version -> 4.30.0-20250323\nChrome version -> 117.0.5938.149\nShort Chrome version -> 117.0\nChromeDriver version -> 117.0.5938.149\nShort ChromeDriver version -> 117.0\nTagged selenium/node-chrome:117.0.5938.149-chromedriver-117.0.5938.149-grid-4.30.0-20250323\nTagged selenium/standalone-chrome:117.0.5938.149-chromedriver-117.0.5938.149-grid-4.30.0-20250323\nTagged selenium/node-chrome:117.0.5938.149-chromedriver-117.0.5938.149-20250323\nTagged selenium/standalone-chrome:117.0.5938.149-chromedriver-117.0.5938.149-20250323\nTagged selenium/node-chrome:117.0.5938.149-20250323\nTagged selenium/standalone-chrome:117.0.5938.149-20250323\nTagged selenium/node-chrome:117.0-chromedriver-117.0-grid-4.30.0-20250323\nTagged selenium/standalone-chrome:117.0-chromedriver-117.0-grid-4.30.0-20250323\nTagged selenium/node-chrome:117.0-chromedriver-117.0-20250323\nTagged selenium/standalone-chrome:117.0-chromedriver-117.0-20250323\nTagged selenium/node-chrome:117.0-20250323\nTagged selenium/standalone-chrome:117.0-20250323\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.30.0/chrome_118.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.30.0 20250323 selenium false chrome true\nTagging images for browser chrome, version 4.30.0, build date 20250323, namespace selenium\nSelenium Grid version -> 4.30.0-20250323\nChrome version -> 118.0.5993.117\nShort Chrome version -> 118.0\nChromeDriver version -> 118.0.5993.70\nShort ChromeDriver version -> 118.0\nTagged selenium/node-chrome:118.0.5993.117-chromedriver-118.0.5993.70-grid-4.30.0-20250323\nTagged selenium/standalone-chrome:118.0.5993.117-chromedriver-118.0.5993.70-grid-4.30.0-20250323\nTagged selenium/node-chrome:118.0.5993.117-chromedriver-118.0.5993.70-20250323\nTagged selenium/standalone-chrome:118.0.5993.117-chromedriver-118.0.5993.70-20250323\nTagged selenium/node-chrome:118.0.5993.117-20250323\nTagged selenium/standalone-chrome:118.0.5993.117-20250323\nTagged selenium/node-chrome:118.0-chromedriver-118.0-grid-4.30.0-20250323\nTagged selenium/standalone-chrome:118.0-chromedriver-118.0-grid-4.30.0-20250323\nTagged selenium/node-chrome:118.0-chromedriver-118.0-20250323\nTagged selenium/standalone-chrome:118.0-chromedriver-118.0-20250323\nTagged selenium/node-chrome:118.0-20250323\nTagged selenium/standalone-chrome:118.0-20250323\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.30.0/chrome_119.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.30.0 20250323 selenium false chrome true\nTagging images for browser chrome, version 4.30.0, build date 20250323, namespace selenium\nSelenium Grid version -> 4.30.0-20250323\nChrome version -> 119.0.6045.199\nShort Chrome version -> 119.0\nChromeDriver version -> 119.0.6045.105\nShort ChromeDriver version -> 119.0\nTagged selenium/node-chrome:119.0.6045.199-chromedriver-119.0.6045.105-grid-4.30.0-20250323\nTagged selenium/standalone-chrome:119.0.6045.199-chromedriver-119.0.6045.105-grid-4.30.0-20250323\nTagged selenium/node-chrome:119.0.6045.199-chromedriver-119.0.6045.105-20250323\nTagged selenium/standalone-chrome:119.0.6045.199-chromedriver-119.0.6045.105-20250323\nTagged selenium/node-chrome:119.0.6045.199-20250323\nTagged selenium/standalone-chrome:119.0.6045.199-20250323\nTagged selenium/node-chrome:119.0-chromedriver-119.0-grid-4.30.0-20250323\nTagged selenium/standalone-chrome:119.0-chromedriver-119.0-grid-4.30.0-20250323\nTagged selenium/node-chrome:119.0-chromedriver-119.0-20250323\nTagged selenium/standalone-chrome:119.0-chromedriver-119.0-20250323\nTagged selenium/node-chrome:119.0-20250323\nTagged selenium/standalone-chrome:119.0-20250323\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.30.0/chrome_120.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.30.0 20250323 selenium false chrome true\nTagging images for browser chrome, version 4.30.0, build date 20250323, namespace selenium\nSelenium Grid version -> 4.30.0-20250323\nChrome version -> 120.0.6099.224\nShort Chrome version -> 120.0\nChromeDriver version -> 120.0.6099.109\nShort ChromeDriver version -> 120.0\nTagged selenium/node-chrome:120.0.6099.224-chromedriver-120.0.6099.109-grid-4.30.0-20250323\nTagged selenium/standalone-chrome:120.0.6099.224-chromedriver-120.0.6099.109-grid-4.30.0-20250323\nTagged selenium/node-chrome:120.0.6099.224-chromedriver-120.0.6099.109-20250323\nTagged selenium/standalone-chrome:120.0.6099.224-chromedriver-120.0.6099.109-20250323\nTagged selenium/node-chrome:120.0.6099.224-20250323\nTagged selenium/standalone-chrome:120.0.6099.224-20250323\nTagged selenium/node-chrome:120.0-chromedriver-120.0-grid-4.30.0-20250323\nTagged selenium/standalone-chrome:120.0-chromedriver-120.0-grid-4.30.0-20250323\nTagged selenium/node-chrome:120.0-chromedriver-120.0-20250323\nTagged selenium/standalone-chrome:120.0-chromedriver-120.0-20250323\nTagged selenium/node-chrome:120.0-20250323\nTagged selenium/standalone-chrome:120.0-20250323\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.30.0/chrome_121.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.30.0 20250323 selenium false chrome true\nTagging images for browser chrome, version 4.30.0, build date 20250323, namespace selenium\nSelenium Grid version -> 4.30.0-20250323\nChrome version -> 121.0.6167.184\nShort Chrome version -> 121.0\nChromeDriver version -> 121.0.6167.184\nShort ChromeDriver version -> 121.0\nTagged selenium/node-chrome:121.0.6167.184-chromedriver-121.0.6167.184-grid-4.30.0-20250323\nTagged selenium/standalone-chrome:121.0.6167.184-chromedriver-121.0.6167.184-grid-4.30.0-20250323\nTagged selenium/node-chrome:121.0.6167.184-chromedriver-121.0.6167.184-20250323\nTagged selenium/standalone-chrome:121.0.6167.184-chromedriver-121.0.6167.184-20250323\nTagged selenium/node-chrome:121.0.6167.184-20250323\nTagged selenium/standalone-chrome:121.0.6167.184-20250323\nTagged selenium/node-chrome:121.0-chromedriver-121.0-grid-4.30.0-20250323\nTagged selenium/standalone-chrome:121.0-chromedriver-121.0-grid-4.30.0-20250323\nTagged selenium/node-chrome:121.0-chromedriver-121.0-20250323\nTagged selenium/standalone-chrome:121.0-chromedriver-121.0-20250323\nTagged selenium/node-chrome:121.0-20250323\nTagged selenium/standalone-chrome:121.0-20250323\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.30.0/chrome_122.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.30.0 20250323 selenium false chrome true\nTagging images for browser chrome, version 4.30.0, build date 20250323, namespace selenium\nSelenium Grid version -> 4.30.0-20250323\nChrome version -> 122.0.6261.128\nShort Chrome version -> 122.0\nChromeDriver version -> 122.0.6261.128\nShort ChromeDriver version -> 122.0\nTagged selenium/node-chrome:122.0.6261.128-chromedriver-122.0.6261.128-grid-4.30.0-20250323\nTagged selenium/standalone-chrome:122.0.6261.128-chromedriver-122.0.6261.128-grid-4.30.0-20250323\nTagged selenium/node-chrome:122.0.6261.128-chromedriver-122.0.6261.128-20250323\nTagged selenium/standalone-chrome:122.0.6261.128-chromedriver-122.0.6261.128-20250323\nTagged selenium/node-chrome:122.0.6261.128-20250323\nTagged selenium/standalone-chrome:122.0.6261.128-20250323\nTagged selenium/node-chrome:122.0-chromedriver-122.0-grid-4.30.0-20250323\nTagged selenium/standalone-chrome:122.0-chromedriver-122.0-grid-4.30.0-20250323\nTagged selenium/node-chrome:122.0-chromedriver-122.0-20250323\nTagged selenium/standalone-chrome:122.0-chromedriver-122.0-20250323\nTagged selenium/node-chrome:122.0-20250323\nTagged selenium/standalone-chrome:122.0-20250323\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.30.0/chrome_123.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.30.0 20250323 selenium false chrome true\nTagging images for browser chrome, version 4.30.0, build date 20250323, namespace selenium\nSelenium Grid version -> 4.30.0-20250323\nChrome version -> 123.0.6312.122\nShort Chrome version -> 123.0\nChromeDriver version -> 123.0.6312.122\nShort ChromeDriver version -> 123.0\nTagged selenium/node-chrome:123.0.6312.122-chromedriver-123.0.6312.122-grid-4.30.0-20250323\nTagged selenium/standalone-chrome:123.0.6312.122-chromedriver-123.0.6312.122-grid-4.30.0-20250323\nTagged selenium/node-chrome:123.0.6312.122-chromedriver-123.0.6312.122-20250323\nTagged selenium/standalone-chrome:123.0.6312.122-chromedriver-123.0.6312.122-20250323\nTagged selenium/node-chrome:123.0.6312.122-20250323\nTagged selenium/standalone-chrome:123.0.6312.122-20250323\nTagged selenium/node-chrome:123.0-chromedriver-123.0-grid-4.30.0-20250323\nTagged selenium/standalone-chrome:123.0-chromedriver-123.0-grid-4.30.0-20250323\nTagged selenium/node-chrome:123.0-chromedriver-123.0-20250323\nTagged selenium/standalone-chrome:123.0-chromedriver-123.0-20250323\nTagged selenium/node-chrome:123.0-20250323\nTagged selenium/standalone-chrome:123.0-20250323\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.30.0/chrome_124.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.30.0 20250323 selenium false chrome true\nTagging images for browser chrome, version 4.30.0, build date 20250323, namespace selenium\nSelenium Grid version -> 4.30.0-20250323\nChrome version -> 124.0.6367.207\nShort Chrome version -> 124.0\nChromeDriver version -> 124.0.6367.207\nShort ChromeDriver version -> 124.0\nTagged selenium/node-chrome:124.0.6367.207-chromedriver-124.0.6367.207-grid-4.30.0-20250323\nTagged selenium/standalone-chrome:124.0.6367.207-chromedriver-124.0.6367.207-grid-4.30.0-20250323\nTagged selenium/node-chrome:124.0.6367.207-chromedriver-124.0.6367.207-20250323\nTagged selenium/standalone-chrome:124.0.6367.207-chromedriver-124.0.6367.207-20250323\nTagged selenium/node-chrome:124.0.6367.207-20250323\nTagged selenium/standalone-chrome:124.0.6367.207-20250323\nTagged selenium/node-chrome:124.0-chromedriver-124.0-grid-4.30.0-20250323\nTagged selenium/standalone-chrome:124.0-chromedriver-124.0-grid-4.30.0-20250323\nTagged selenium/node-chrome:124.0-chromedriver-124.0-20250323\nTagged selenium/standalone-chrome:124.0-chromedriver-124.0-20250323\nTagged selenium/node-chrome:124.0-20250323\nTagged selenium/standalone-chrome:124.0-20250323\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.30.0/chrome_125.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.30.0 20250323 selenium false chrome true\nTagging images for browser chrome, version 4.30.0, build date 20250323, namespace selenium\nSelenium Grid version -> 4.30.0-20250323\nChrome version -> 125.0.6422.141\nShort Chrome version -> 125.0\nChromeDriver version -> 125.0.6422.141\nShort ChromeDriver version -> 125.0\nTagged selenium/node-chrome:125.0.6422.141-chromedriver-125.0.6422.141-grid-4.30.0-20250323\nTagged selenium/standalone-chrome:125.0.6422.141-chromedriver-125.0.6422.141-grid-4.30.0-20250323\nTagged selenium/node-chrome:125.0.6422.141-chromedriver-125.0.6422.141-20250323\nTagged selenium/standalone-chrome:125.0.6422.141-chromedriver-125.0.6422.141-20250323\nTagged selenium/node-chrome:125.0.6422.141-20250323\nTagged selenium/standalone-chrome:125.0.6422.141-20250323\nTagged selenium/node-chrome:125.0-chromedriver-125.0-grid-4.30.0-20250323\nTagged selenium/standalone-chrome:125.0-chromedriver-125.0-grid-4.30.0-20250323\nTagged selenium/node-chrome:125.0-chromedriver-125.0-20250323\nTagged selenium/standalone-chrome:125.0-chromedriver-125.0-20250323\nTagged selenium/node-chrome:125.0-20250323\nTagged selenium/standalone-chrome:125.0-20250323\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.30.0/chrome_126.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.30.0 20250323 selenium false chrome true\nTagging images for browser chrome, version 4.30.0, build date 20250323, namespace selenium\nSelenium Grid version -> 4.30.0-20250323\nChrome version -> 126.0.6478.182\nShort Chrome version -> 126.0\nChromeDriver version -> 126.0.6478.182\nShort ChromeDriver version -> 126.0\nTagged selenium/node-chrome:126.0.6478.182-chromedriver-126.0.6478.182-grid-4.30.0-20250323\nTagged selenium/standalone-chrome:126.0.6478.182-chromedriver-126.0.6478.182-grid-4.30.0-20250323\nTagged selenium/node-chrome:126.0.6478.182-chromedriver-126.0.6478.182-20250323\nTagged selenium/standalone-chrome:126.0.6478.182-chromedriver-126.0.6478.182-20250323\nTagged selenium/node-chrome:126.0.6478.182-20250323\nTagged selenium/standalone-chrome:126.0.6478.182-20250323\nTagged selenium/node-chrome:126.0-chromedriver-126.0-grid-4.30.0-20250323\nTagged selenium/standalone-chrome:126.0-chromedriver-126.0-grid-4.30.0-20250323\nTagged selenium/node-chrome:126.0-chromedriver-126.0-20250323\nTagged selenium/standalone-chrome:126.0-chromedriver-126.0-20250323\nTagged selenium/node-chrome:126.0-20250323\nTagged selenium/standalone-chrome:126.0-20250323\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.30.0/chrome_127.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.30.0 20250323 selenium false chrome true\nTagging images for browser chrome, version 4.30.0, build date 20250323, namespace selenium\nSelenium Grid version -> 4.30.0-20250323\nChrome version -> 127.0.6533.119\nShort Chrome version -> 127.0\nChromeDriver version -> 127.0.6533.119\nShort ChromeDriver version -> 127.0\nTagged selenium/node-chrome:127.0.6533.119-chromedriver-127.0.6533.119-grid-4.30.0-20250323\nTagged selenium/standalone-chrome:127.0.6533.119-chromedriver-127.0.6533.119-grid-4.30.0-20250323\nTagged selenium/node-chrome:127.0.6533.119-chromedriver-127.0.6533.119-20250323\nTagged selenium/standalone-chrome:127.0.6533.119-chromedriver-127.0.6533.119-20250323\nTagged selenium/node-chrome:127.0.6533.119-20250323\nTagged selenium/standalone-chrome:127.0.6533.119-20250323\nTagged selenium/node-chrome:127.0-chromedriver-127.0-grid-4.30.0-20250323\nTagged selenium/standalone-chrome:127.0-chromedriver-127.0-grid-4.30.0-20250323\nTagged selenium/node-chrome:127.0-chromedriver-127.0-20250323\nTagged selenium/standalone-chrome:127.0-chromedriver-127.0-20250323\nTagged selenium/node-chrome:127.0-20250323\nTagged selenium/standalone-chrome:127.0-20250323\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.30.0/chrome_128.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.30.0 20250323 selenium false chrome true\nTagging images for browser chrome, version 4.30.0, build date 20250323, namespace selenium\nSelenium Grid version -> 4.30.0-20250323\nChrome version -> 128.0.6613.137\nShort Chrome version -> 128.0\nChromeDriver version -> 128.0.6613.137\nShort ChromeDriver version -> 128.0\nTagged selenium/node-chrome:128.0.6613.137-chromedriver-128.0.6613.137-grid-4.30.0-20250323\nTagged selenium/standalone-chrome:128.0.6613.137-chromedriver-128.0.6613.137-grid-4.30.0-20250323\nTagged selenium/node-chrome:128.0.6613.137-chromedriver-128.0.6613.137-20250323\nTagged selenium/standalone-chrome:128.0.6613.137-chromedriver-128.0.6613.137-20250323\nTagged selenium/node-chrome:128.0.6613.137-20250323\nTagged selenium/standalone-chrome:128.0.6613.137-20250323\nTagged selenium/node-chrome:128.0-chromedriver-128.0-grid-4.30.0-20250323\nTagged selenium/standalone-chrome:128.0-chromedriver-128.0-grid-4.30.0-20250323\nTagged selenium/node-chrome:128.0-chromedriver-128.0-20250323\nTagged selenium/standalone-chrome:128.0-chromedriver-128.0-20250323\nTagged selenium/node-chrome:128.0-20250323\nTagged selenium/standalone-chrome:128.0-20250323\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.30.0/chrome_129.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.30.0 20250323 selenium false chrome true\nTagging images for browser chrome, version 4.30.0, build date 20250323, namespace selenium\nSelenium Grid version -> 4.30.0-20250323\nChrome version -> 129.0.6668.100\nShort Chrome version -> 129.0\nChromeDriver version -> 129.0.6668.100\nShort ChromeDriver version -> 129.0\nTagged selenium/node-chrome:129.0.6668.100-chromedriver-129.0.6668.100-grid-4.30.0-20250323\nTagged selenium/standalone-chrome:129.0.6668.100-chromedriver-129.0.6668.100-grid-4.30.0-20250323\nTagged selenium/node-chrome:129.0.6668.100-chromedriver-129.0.6668.100-20250323\nTagged selenium/standalone-chrome:129.0.6668.100-chromedriver-129.0.6668.100-20250323\nTagged selenium/node-chrome:129.0.6668.100-20250323\nTagged selenium/standalone-chrome:129.0.6668.100-20250323\nTagged selenium/node-chrome:129.0-chromedriver-129.0-grid-4.30.0-20250323\nTagged selenium/standalone-chrome:129.0-chromedriver-129.0-grid-4.30.0-20250323\nTagged selenium/node-chrome:129.0-chromedriver-129.0-20250323\nTagged selenium/standalone-chrome:129.0-chromedriver-129.0-20250323\nTagged selenium/node-chrome:129.0-20250323\nTagged selenium/standalone-chrome:129.0-20250323\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.30.0/chrome_130.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.30.0 20250323 selenium false chrome true\nTagging images for browser chrome, version 4.30.0, build date 20250323, namespace selenium\nSelenium Grid version -> 4.30.0-20250323\nChrome version -> 130.0.6723.116\nShort Chrome version -> 130.0\nChromeDriver version -> 130.0.6723.116\nShort ChromeDriver version -> 130.0\nTagged selenium/node-chrome:130.0.6723.116-chromedriver-130.0.6723.116-grid-4.30.0-20250323\nTagged selenium/standalone-chrome:130.0.6723.116-chromedriver-130.0.6723.116-grid-4.30.0-20250323\nTagged selenium/node-chrome:130.0.6723.116-chromedriver-130.0.6723.116-20250323\nTagged selenium/standalone-chrome:130.0.6723.116-chromedriver-130.0.6723.116-20250323\nTagged selenium/node-chrome:130.0.6723.116-20250323\nTagged selenium/standalone-chrome:130.0.6723.116-20250323\nTagged selenium/node-chrome:130.0-chromedriver-130.0-grid-4.30.0-20250323\nTagged selenium/standalone-chrome:130.0-chromedriver-130.0-grid-4.30.0-20250323\nTagged selenium/node-chrome:130.0-chromedriver-130.0-20250323\nTagged selenium/standalone-chrome:130.0-chromedriver-130.0-20250323\nTagged selenium/node-chrome:130.0-20250323\nTagged selenium/standalone-chrome:130.0-20250323\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.30.0/chrome_131.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.30.0 20250323 selenium false chrome true\nTagging images for browser chrome, version 4.30.0, build date 20250323, namespace selenium\nSelenium Grid version -> 4.30.0-20250323\nChrome version -> 131.0.6778.264\nShort Chrome version -> 131.0\nChromeDriver version -> 131.0.6778.264\nShort ChromeDriver version -> 131.0\nTagged selenium/node-chrome:131.0.6778.264-chromedriver-131.0.6778.264-grid-4.30.0-20250323\nTagged selenium/standalone-chrome:131.0.6778.264-chromedriver-131.0.6778.264-grid-4.30.0-20250323\nTagged selenium/node-chrome:131.0.6778.264-chromedriver-131.0.6778.264-20250323\nTagged selenium/standalone-chrome:131.0.6778.264-chromedriver-131.0.6778.264-20250323\nTagged selenium/node-chrome:131.0.6778.264-20250323\nTagged selenium/standalone-chrome:131.0.6778.264-20250323\nTagged selenium/node-chrome:131.0-chromedriver-131.0-grid-4.30.0-20250323\nTagged selenium/standalone-chrome:131.0-chromedriver-131.0-grid-4.30.0-20250323\nTagged selenium/node-chrome:131.0-chromedriver-131.0-20250323\nTagged selenium/standalone-chrome:131.0-chromedriver-131.0-20250323\nTagged selenium/node-chrome:131.0-20250323\nTagged selenium/standalone-chrome:131.0-20250323\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.30.0/chrome_132.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.30.0 20250323 selenium false chrome true\nTagging images for browser chrome, version 4.30.0, build date 20250323, namespace selenium\nSelenium Grid version -> 4.30.0-20250323\nChrome version -> 132.0.6834.159\nShort Chrome version -> 132.0\nChromeDriver version -> 132.0.6834.159\nShort ChromeDriver version -> 132.0\nTagged selenium/node-chrome:132.0.6834.159-chromedriver-132.0.6834.159-grid-4.30.0-20250323\nTagged selenium/standalone-chrome:132.0.6834.159-chromedriver-132.0.6834.159-grid-4.30.0-20250323\nTagged selenium/node-chrome:132.0.6834.159-chromedriver-132.0.6834.159-20250323\nTagged selenium/standalone-chrome:132.0.6834.159-chromedriver-132.0.6834.159-20250323\nTagged selenium/node-chrome:132.0.6834.159-20250323\nTagged selenium/standalone-chrome:132.0.6834.159-20250323\nTagged selenium/node-chrome:132.0-chromedriver-132.0-grid-4.30.0-20250323\nTagged selenium/standalone-chrome:132.0-chromedriver-132.0-grid-4.30.0-20250323\nTagged selenium/node-chrome:132.0-chromedriver-132.0-20250323\nTagged selenium/standalone-chrome:132.0-chromedriver-132.0-20250323\nTagged selenium/node-chrome:132.0-20250323\nTagged selenium/standalone-chrome:132.0-20250323\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.30.0/chrome_133.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.30.0 20250323 selenium false chrome true\nTagging images for browser chrome, version 4.30.0, build date 20250323, namespace selenium\nSelenium Grid version -> 4.30.0-20250323\nChrome version -> 133.0.6943.141\nShort Chrome version -> 133.0\nChromeDriver version -> 133.0.6943.141\nShort ChromeDriver version -> 133.0\nTagged selenium/node-chrome:133.0.6943.141-chromedriver-133.0.6943.141-grid-4.30.0-20250323\nTagged selenium/standalone-chrome:133.0.6943.141-chromedriver-133.0.6943.141-grid-4.30.0-20250323\nTagged selenium/node-chrome:133.0.6943.141-chromedriver-133.0.6943.141-20250323\nTagged selenium/standalone-chrome:133.0.6943.141-chromedriver-133.0.6943.141-20250323\nTagged selenium/node-chrome:133.0.6943.141-20250323\nTagged selenium/standalone-chrome:133.0.6943.141-20250323\nTagged selenium/node-chrome:133.0-chromedriver-133.0-grid-4.30.0-20250323\nTagged selenium/standalone-chrome:133.0-chromedriver-133.0-grid-4.30.0-20250323\nTagged selenium/node-chrome:133.0-chromedriver-133.0-20250323\nTagged selenium/standalone-chrome:133.0-chromedriver-133.0-20250323\nTagged selenium/node-chrome:133.0-20250323\nTagged selenium/standalone-chrome:133.0-20250323\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.30.0/chrome_134.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.30.0 20250323 selenium false chrome true\nTagging images for browser chrome, version 4.30.0, build date 20250323, namespace selenium\nSelenium Grid version -> 4.30.0-20250323\nChrome version -> 134.0.6998.165\nShort Chrome version -> 134.0\nChromeDriver version -> 134.0.6998.165\nShort ChromeDriver version -> 134.0\nTagged selenium/node-chrome:134.0.6998.165-chromedriver-134.0.6998.165-grid-4.30.0-20250323\nTagged selenium/standalone-chrome:134.0.6998.165-chromedriver-134.0.6998.165-grid-4.30.0-20250323\nTagged selenium/node-chrome:134.0.6998.165-chromedriver-134.0.6998.165-20250323\nTagged selenium/standalone-chrome:134.0.6998.165-chromedriver-134.0.6998.165-20250323\nTagged selenium/node-chrome:134.0.6998.165-20250323\nTagged selenium/standalone-chrome:134.0.6998.165-20250323\nTagged selenium/node-chrome:134.0-chromedriver-134.0-grid-4.30.0-20250323\nTagged selenium/standalone-chrome:134.0-chromedriver-134.0-grid-4.30.0-20250323\nTagged selenium/node-chrome:134.0-chromedriver-134.0-20250323\nTagged selenium/standalone-chrome:134.0-chromedriver-134.0-20250323\nTagged selenium/node-chrome:134.0-20250323\nTagged selenium/standalone-chrome:134.0-20250323\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.30.0/chrome_95.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.30.0 20250323 selenium false chrome true\nTagging images for browser chrome, version 4.30.0, build date 20250323, namespace selenium\nSelenium Grid version -> 4.30.0-20250323\nChrome version -> 95.0.4638.69\nShort Chrome version -> 95.0\nChromeDriver version -> 95.0.4638.69\nShort ChromeDriver version -> 95.0\nTagged selenium/node-chrome:95.0.4638.69-chromedriver-95.0.4638.69-grid-4.30.0-20250323\nTagged selenium/standalone-chrome:95.0.4638.69-chromedriver-95.0.4638.69-grid-4.30.0-20250323\nTagged selenium/node-chrome:95.0.4638.69-chromedriver-95.0.4638.69-20250323\nTagged selenium/standalone-chrome:95.0.4638.69-chromedriver-95.0.4638.69-20250323\nTagged selenium/node-chrome:95.0.4638.69-20250323\nTagged selenium/standalone-chrome:95.0.4638.69-20250323\nTagged selenium/node-chrome:95.0-chromedriver-95.0-grid-4.30.0-20250323\nTagged selenium/standalone-chrome:95.0-chromedriver-95.0-grid-4.30.0-20250323\nTagged selenium/node-chrome:95.0-chromedriver-95.0-20250323\nTagged selenium/standalone-chrome:95.0-chromedriver-95.0-20250323\nTagged selenium/node-chrome:95.0-20250323\nTagged selenium/standalone-chrome:95.0-20250323\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.30.0/chrome_96.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.30.0 20250323 selenium false chrome true\nTagging images for browser chrome, version 4.30.0, build date 20250323, namespace selenium\nSelenium Grid version -> 4.30.0-20250323\nChrome version -> 96.0.4664.110\nShort Chrome version -> 96.0\nChromeDriver version -> 96.0.4664.45\nShort ChromeDriver version -> 96.0\nTagged selenium/node-chrome:96.0.4664.110-chromedriver-96.0.4664.45-grid-4.30.0-20250323\nTagged selenium/standalone-chrome:96.0.4664.110-chromedriver-96.0.4664.45-grid-4.30.0-20250323\nTagged selenium/node-chrome:96.0.4664.110-chromedriver-96.0.4664.45-20250323\nTagged selenium/standalone-chrome:96.0.4664.110-chromedriver-96.0.4664.45-20250323\nTagged selenium/node-chrome:96.0.4664.110-20250323\nTagged selenium/standalone-chrome:96.0.4664.110-20250323\nTagged selenium/node-chrome:96.0-chromedriver-96.0-grid-4.30.0-20250323\nTagged selenium/standalone-chrome:96.0-chromedriver-96.0-grid-4.30.0-20250323\nTagged selenium/node-chrome:96.0-chromedriver-96.0-20250323\nTagged selenium/standalone-chrome:96.0-chromedriver-96.0-20250323\nTagged selenium/node-chrome:96.0-20250323\nTagged selenium/standalone-chrome:96.0-20250323\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.30.0/chrome_97.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.30.0 20250323 selenium false chrome true\nTagging images for browser chrome, version 4.30.0, build date 20250323, namespace selenium\nSelenium Grid version -> 4.30.0-20250323\nChrome version -> 97.0.4692.99\nShort Chrome version -> 97.0\nChromeDriver version -> 97.0.4692.71\nShort ChromeDriver version -> 97.0\nTagged selenium/node-chrome:97.0.4692.99-chromedriver-97.0.4692.71-grid-4.30.0-20250323\nTagged selenium/standalone-chrome:97.0.4692.99-chromedriver-97.0.4692.71-grid-4.30.0-20250323\nTagged selenium/node-chrome:97.0.4692.99-chromedriver-97.0.4692.71-20250323\nTagged selenium/standalone-chrome:97.0.4692.99-chromedriver-97.0.4692.71-20250323\nTagged selenium/node-chrome:97.0.4692.99-20250323\nTagged selenium/standalone-chrome:97.0.4692.99-20250323\nTagged selenium/node-chrome:97.0-chromedriver-97.0-grid-4.30.0-20250323\nTagged selenium/standalone-chrome:97.0-chromedriver-97.0-grid-4.30.0-20250323\nTagged selenium/node-chrome:97.0-chromedriver-97.0-20250323\nTagged selenium/standalone-chrome:97.0-chromedriver-97.0-20250323\nTagged selenium/node-chrome:97.0-20250323\nTagged selenium/standalone-chrome:97.0-20250323\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.30.0/chrome_98.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.30.0 20250323 selenium false chrome true\nTagging images for browser chrome, version 4.30.0, build date 20250323, namespace selenium\nSelenium Grid version -> 4.30.0-20250323\nChrome version -> 98.0.4758.102\nShort Chrome version -> 98.0\nChromeDriver version -> 98.0.4758.102\nShort ChromeDriver version -> 98.0\nTagged selenium/node-chrome:98.0.4758.102-chromedriver-98.0.4758.102-grid-4.30.0-20250323\nTagged selenium/standalone-chrome:98.0.4758.102-chromedriver-98.0.4758.102-grid-4.30.0-20250323\nTagged selenium/node-chrome:98.0.4758.102-chromedriver-98.0.4758.102-20250323\nTagged selenium/standalone-chrome:98.0.4758.102-chromedriver-98.0.4758.102-20250323\nTagged selenium/node-chrome:98.0.4758.102-20250323\nTagged selenium/standalone-chrome:98.0.4758.102-20250323\nTagged selenium/node-chrome:98.0-chromedriver-98.0-grid-4.30.0-20250323\nTagged selenium/standalone-chrome:98.0-chromedriver-98.0-grid-4.30.0-20250323\nTagged selenium/node-chrome:98.0-chromedriver-98.0-20250323\nTagged selenium/standalone-chrome:98.0-chromedriver-98.0-20250323\nTagged selenium/node-chrome:98.0-20250323\nTagged selenium/standalone-chrome:98.0-20250323\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.30.0/edge_114.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.30.0 20250323 selenium false edge true\nTagging images for browser edge, version 4.30.0, build date 20250323, namespace selenium\nSelenium Grid version -> 4.30.0-20250323\nEdge version -> 114.0.1823.82\nShort Edge version -> 114.0\nEdgeDriver version -> 114.0.1823.82\nShort EdgeDriver version -> 114.0\nTagged selenium/node-edge:114.0.1823.82-edgedriver-114.0.1823.82-grid-4.30.0-20250323\nTagged selenium/standalone-edge:114.0.1823.82-edgedriver-114.0.1823.82-grid-4.30.0-20250323\nTagged selenium/node-edge:114.0.1823.82-edgedriver-114.0.1823.82-20250323\nTagged selenium/standalone-edge:114.0.1823.82-edgedriver-114.0.1823.82-20250323\nTagged selenium/node-edge:114.0.1823.82-20250323\nTagged selenium/standalone-edge:114.0.1823.82-20250323\nTagged selenium/node-edge:114.0-edgedriver-114.0-grid-4.30.0-20250323\nTagged selenium/standalone-edge:114.0-edgedriver-114.0-grid-4.30.0-20250323\nTagged selenium/node-edge:114.0-edgedriver-114.0-20250323\nTagged selenium/standalone-edge:114.0-edgedriver-114.0-20250323\nTagged selenium/node-edge:114.0-20250323\nTagged selenium/standalone-edge:114.0-20250323\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.30.0/edge_115.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.30.0 20250323 selenium false edge true\nTagging images for browser edge, version 4.30.0, build date 20250323, namespace selenium\nSelenium Grid version -> 4.30.0-20250323\nEdge version -> 115.0.1901.203\nShort Edge version -> 115.0\nEdgeDriver version -> 115.0.1901.203\nShort EdgeDriver version -> 115.0\nTagged selenium/node-edge:115.0.1901.203-edgedriver-115.0.1901.203-grid-4.30.0-20250323\nTagged selenium/standalone-edge:115.0.1901.203-edgedriver-115.0.1901.203-grid-4.30.0-20250323\nTagged selenium/node-edge:115.0.1901.203-edgedriver-115.0.1901.203-20250323\nTagged selenium/standalone-edge:115.0.1901.203-edgedriver-115.0.1901.203-20250323\nTagged selenium/node-edge:115.0.1901.203-20250323\nTagged selenium/standalone-edge:115.0.1901.203-20250323\nTagged selenium/node-edge:115.0-edgedriver-115.0-grid-4.30.0-20250323\nTagged selenium/standalone-edge:115.0-edgedriver-115.0-grid-4.30.0-20250323\nTagged selenium/node-edge:115.0-edgedriver-115.0-20250323\nTagged selenium/standalone-edge:115.0-edgedriver-115.0-20250323\nTagged selenium/node-edge:115.0-20250323\nTagged selenium/standalone-edge:115.0-20250323\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.30.0/edge_116.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.30.0 20250323 selenium false edge true\nTagging images for browser edge, version 4.30.0, build date 20250323, namespace selenium\nSelenium Grid version -> 4.30.0-20250323\nEdge version -> 116.0.1938.81\nShort Edge version -> 116.0\nEdgeDriver version -> 116.0.1938.81\nShort EdgeDriver version -> 116.0\nTagged selenium/node-edge:116.0.1938.81-edgedriver-116.0.1938.81-grid-4.30.0-20250323\nTagged selenium/standalone-edge:116.0.1938.81-edgedriver-116.0.1938.81-grid-4.30.0-20250323\nTagged selenium/node-edge:116.0.1938.81-edgedriver-116.0.1938.81-20250323\nTagged selenium/standalone-edge:116.0.1938.81-edgedriver-116.0.1938.81-20250323\nTagged selenium/node-edge:116.0.1938.81-20250323\nTagged selenium/standalone-edge:116.0.1938.81-20250323\nTagged selenium/node-edge:116.0-edgedriver-116.0-grid-4.30.0-20250323\nTagged selenium/standalone-edge:116.0-edgedriver-116.0-grid-4.30.0-20250323\nTagged selenium/node-edge:116.0-edgedriver-116.0-20250323\nTagged selenium/standalone-edge:116.0-edgedriver-116.0-20250323\nTagged selenium/node-edge:116.0-20250323\nTagged selenium/standalone-edge:116.0-20250323\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.30.0/edge_117.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.30.0 20250323 selenium false edge true\nTagging images for browser edge, version 4.30.0, build date 20250323, namespace selenium\nSelenium Grid version -> 4.30.0-20250323\nEdge version -> 117.0.2045.55\nShort Edge version -> 117.0\nEdgeDriver version -> 117.0.2045.55\nShort EdgeDriver version -> 117.0\nTagged selenium/node-edge:117.0.2045.55-edgedriver-117.0.2045.55-grid-4.30.0-20250323\nTagged selenium/standalone-edge:117.0.2045.55-edgedriver-117.0.2045.55-grid-4.30.0-20250323\nTagged selenium/node-edge:117.0.2045.55-edgedriver-117.0.2045.55-20250323\nTagged selenium/standalone-edge:117.0.2045.55-edgedriver-117.0.2045.55-20250323\nTagged selenium/node-edge:117.0.2045.55-20250323\nTagged selenium/standalone-edge:117.0.2045.55-20250323\nTagged selenium/node-edge:117.0-edgedriver-117.0-grid-4.30.0-20250323\nTagged selenium/standalone-edge:117.0-edgedriver-117.0-grid-4.30.0-20250323\nTagged selenium/node-edge:117.0-edgedriver-117.0-20250323\nTagged selenium/standalone-edge:117.0-edgedriver-117.0-20250323\nTagged selenium/node-edge:117.0-20250323\nTagged selenium/standalone-edge:117.0-20250323\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.30.0/edge_118.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.30.0 20250323 selenium false edge true\nTagging images for browser edge, version 4.30.0, build date 20250323, namespace selenium\nSelenium Grid version -> 4.30.0-20250323\nEdge version -> 118.0.2088.76\nShort Edge version -> 118.0\nEdgeDriver version -> 118.0.2088.76\nShort EdgeDriver version -> 118.0\nTagged selenium/node-edge:118.0.2088.76-edgedriver-118.0.2088.76-grid-4.30.0-20250323\nTagged selenium/standalone-edge:118.0.2088.76-edgedriver-118.0.2088.76-grid-4.30.0-20250323\nTagged selenium/node-edge:118.0.2088.76-edgedriver-118.0.2088.76-20250323\nTagged selenium/standalone-edge:118.0.2088.76-edgedriver-118.0.2088.76-20250323\nTagged selenium/node-edge:118.0.2088.76-20250323\nTagged selenium/standalone-edge:118.0.2088.76-20250323\nTagged selenium/node-edge:118.0-edgedriver-118.0-grid-4.30.0-20250323\nTagged selenium/standalone-edge:118.0-edgedriver-118.0-grid-4.30.0-20250323\nTagged selenium/node-edge:118.0-edgedriver-118.0-20250323\nTagged selenium/standalone-edge:118.0-edgedriver-118.0-20250323\nTagged selenium/node-edge:118.0-20250323\nTagged selenium/standalone-edge:118.0-20250323\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.30.0/edge_119.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.30.0 20250323 selenium false edge true\nTagging images for browser edge, version 4.30.0, build date 20250323, namespace selenium\nSelenium Grid version -> 4.30.0-20250323\nEdge version -> 119.0.2151.97\nShort Edge version -> 119.0\nEdgeDriver version -> 119.0.2151.97\nShort EdgeDriver version -> 119.0\nTagged selenium/node-edge:119.0.2151.97-edgedriver-119.0.2151.97-grid-4.30.0-20250323\nTagged selenium/standalone-edge:119.0.2151.97-edgedriver-119.0.2151.97-grid-4.30.0-20250323\nTagged selenium/node-edge:119.0.2151.97-edgedriver-119.0.2151.97-20250323\nTagged selenium/standalone-edge:119.0.2151.97-edgedriver-119.0.2151.97-20250323\nTagged selenium/node-edge:119.0.2151.97-20250323\nTagged selenium/standalone-edge:119.0.2151.97-20250323\nTagged selenium/node-edge:119.0-edgedriver-119.0-grid-4.30.0-20250323\nTagged selenium/standalone-edge:119.0-edgedriver-119.0-grid-4.30.0-20250323\nTagged selenium/node-edge:119.0-edgedriver-119.0-20250323\nTagged selenium/standalone-edge:119.0-edgedriver-119.0-20250323\nTagged selenium/node-edge:119.0-20250323\nTagged selenium/standalone-edge:119.0-20250323\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.30.0/edge_120.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.30.0 20250323 selenium false edge true\nTagging images for browser edge, version 4.30.0, build date 20250323, namespace selenium\nSelenium Grid version -> 4.30.0-20250323\nEdge version -> 120.0.2210.144\nShort Edge version -> 120.0\nEdgeDriver version -> 120.0.2210.144\nShort EdgeDriver version -> 120.0\nTagged selenium/node-edge:120.0.2210.144-edgedriver-120.0.2210.144-grid-4.30.0-20250323\nTagged selenium/standalone-edge:120.0.2210.144-edgedriver-120.0.2210.144-grid-4.30.0-20250323\nTagged selenium/node-edge:120.0.2210.144-edgedriver-120.0.2210.144-20250323\nTagged selenium/standalone-edge:120.0.2210.144-edgedriver-120.0.2210.144-20250323\nTagged selenium/node-edge:120.0.2210.144-20250323\nTagged selenium/standalone-edge:120.0.2210.144-20250323\nTagged selenium/node-edge:120.0-edgedriver-120.0-grid-4.30.0-20250323\nTagged selenium/standalone-edge:120.0-edgedriver-120.0-grid-4.30.0-20250323\nTagged selenium/node-edge:120.0-edgedriver-120.0-20250323\nTagged selenium/standalone-edge:120.0-edgedriver-120.0-20250323\nTagged selenium/node-edge:120.0-20250323\nTagged selenium/standalone-edge:120.0-20250323\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.30.0/edge_121.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.30.0 20250323 selenium false edge true\nTagging images for browser edge, version 4.30.0, build date 20250323, namespace selenium\nSelenium Grid version -> 4.30.0-20250323\nEdge version -> 121.0.2277.128\nShort Edge version -> 121.0\nEdgeDriver version -> 121.0.2277.128\nShort EdgeDriver version -> 121.0\nTagged selenium/node-edge:121.0.2277.128-edgedriver-121.0.2277.128-grid-4.30.0-20250323\nTagged selenium/standalone-edge:121.0.2277.128-edgedriver-121.0.2277.128-grid-4.30.0-20250323\nTagged selenium/node-edge:121.0.2277.128-edgedriver-121.0.2277.128-20250323\nTagged selenium/standalone-edge:121.0.2277.128-edgedriver-121.0.2277.128-20250323\nTagged selenium/node-edge:121.0.2277.128-20250323\nTagged selenium/standalone-edge:121.0.2277.128-20250323\nTagged selenium/node-edge:121.0-edgedriver-121.0-grid-4.30.0-20250323\nTagged selenium/standalone-edge:121.0-edgedriver-121.0-grid-4.30.0-20250323\nTagged selenium/node-edge:121.0-edgedriver-121.0-20250323\nTagged selenium/standalone-edge:121.0-edgedriver-121.0-20250323\nTagged selenium/node-edge:121.0-20250323\nTagged selenium/standalone-edge:121.0-20250323\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.30.0/edge_122.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.30.0 20250323 selenium false edge true\nTagging images for browser edge, version 4.30.0, build date 20250323, namespace selenium\nSelenium Grid version -> 4.30.0-20250323\nEdge version -> 122.0.2365.92\nShort Edge version -> 122.0\nEdgeDriver version -> 122.0.2365.92\nShort EdgeDriver version -> 122.0\nTagged selenium/node-edge:122.0.2365.92-edgedriver-122.0.2365.92-grid-4.30.0-20250323\nTagged selenium/standalone-edge:122.0.2365.92-edgedriver-122.0.2365.92-grid-4.30.0-20250323\nTagged selenium/node-edge:122.0.2365.92-edgedriver-122.0.2365.92-20250323\nTagged selenium/standalone-edge:122.0.2365.92-edgedriver-122.0.2365.92-20250323\nTagged selenium/node-edge:122.0.2365.92-20250323\nTagged selenium/standalone-edge:122.0.2365.92-20250323\nTagged selenium/node-edge:122.0-edgedriver-122.0-grid-4.30.0-20250323\nTagged selenium/standalone-edge:122.0-edgedriver-122.0-grid-4.30.0-20250323\nTagged selenium/node-edge:122.0-edgedriver-122.0-20250323\nTagged selenium/standalone-edge:122.0-edgedriver-122.0-20250323\nTagged selenium/node-edge:122.0-20250323\nTagged selenium/standalone-edge:122.0-20250323\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.30.0/edge_123.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.30.0 20250323 selenium false edge true\nTagging images for browser edge, version 4.30.0, build date 20250323, namespace selenium\nSelenium Grid version -> 4.30.0-20250323\nEdge version -> 123.0.2420.97\nShort Edge version -> 123.0\nEdgeDriver version -> 123.0.2420.97\nShort EdgeDriver version -> 123.0\nTagged selenium/node-edge:123.0.2420.97-edgedriver-123.0.2420.97-grid-4.30.0-20250323\nTagged selenium/standalone-edge:123.0.2420.97-edgedriver-123.0.2420.97-grid-4.30.0-20250323\nTagged selenium/node-edge:123.0.2420.97-edgedriver-123.0.2420.97-20250323\nTagged selenium/standalone-edge:123.0.2420.97-edgedriver-123.0.2420.97-20250323\nTagged selenium/node-edge:123.0.2420.97-20250323\nTagged selenium/standalone-edge:123.0.2420.97-20250323\nTagged selenium/node-edge:123.0-edgedriver-123.0-grid-4.30.0-20250323\nTagged selenium/standalone-edge:123.0-edgedriver-123.0-grid-4.30.0-20250323\nTagged selenium/node-edge:123.0-edgedriver-123.0-20250323\nTagged selenium/standalone-edge:123.0-edgedriver-123.0-20250323\nTagged selenium/node-edge:123.0-20250323\nTagged selenium/standalone-edge:123.0-20250323\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.30.0/edge_124.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.30.0 20250323 selenium false edge true\nTagging images for browser edge, version 4.30.0, build date 20250323, namespace selenium\nSelenium Grid version -> 4.30.0-20250323\nEdge version -> 124.0.2478.109\nShort Edge version -> 124.0\nEdgeDriver version -> 124.0.2478.109\nShort EdgeDriver version -> 124.0\nTagged selenium/node-edge:124.0.2478.109-edgedriver-124.0.2478.109-grid-4.30.0-20250323\nTagged selenium/standalone-edge:124.0.2478.109-edgedriver-124.0.2478.109-grid-4.30.0-20250323\nTagged selenium/node-edge:124.0.2478.109-edgedriver-124.0.2478.109-20250323\nTagged selenium/standalone-edge:124.0.2478.109-edgedriver-124.0.2478.109-20250323\nTagged selenium/node-edge:124.0.2478.109-20250323\nTagged selenium/standalone-edge:124.0.2478.109-20250323\nTagged selenium/node-edge:124.0-edgedriver-124.0-grid-4.30.0-20250323\nTagged selenium/standalone-edge:124.0-edgedriver-124.0-grid-4.30.0-20250323\nTagged selenium/node-edge:124.0-edgedriver-124.0-20250323\nTagged selenium/standalone-edge:124.0-edgedriver-124.0-20250323\nTagged selenium/node-edge:124.0-20250323\nTagged selenium/standalone-edge:124.0-20250323\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.30.0/edge_125.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.30.0 20250323 selenium false edge true\nTagging images for browser edge, version 4.30.0, build date 20250323, namespace selenium\nSelenium Grid version -> 4.30.0-20250323\nEdge version -> 125.0.2535.92\nShort Edge version -> 125.0\nEdgeDriver version -> 125.0.2535.92\nShort EdgeDriver version -> 125.0\nTagged selenium/node-edge:125.0.2535.92-edgedriver-125.0.2535.92-grid-4.30.0-20250323\nTagged selenium/standalone-edge:125.0.2535.92-edgedriver-125.0.2535.92-grid-4.30.0-20250323\nTagged selenium/node-edge:125.0.2535.92-edgedriver-125.0.2535.92-20250323\nTagged selenium/standalone-edge:125.0.2535.92-edgedriver-125.0.2535.92-20250323\nTagged selenium/node-edge:125.0.2535.92-20250323\nTagged selenium/standalone-edge:125.0.2535.92-20250323\nTagged selenium/node-edge:125.0-edgedriver-125.0-grid-4.30.0-20250323\nTagged selenium/standalone-edge:125.0-edgedriver-125.0-grid-4.30.0-20250323\nTagged selenium/node-edge:125.0-edgedriver-125.0-20250323\nTagged selenium/standalone-edge:125.0-edgedriver-125.0-20250323\nTagged selenium/node-edge:125.0-20250323\nTagged selenium/standalone-edge:125.0-20250323\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.30.0/edge_126.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.30.0 20250323 selenium false edge true\nTagging images for browser edge, version 4.30.0, build date 20250323, namespace selenium\nSelenium Grid version -> 4.30.0-20250323\nEdge version -> 126.0.2592.113\nShort Edge version -> 126.0\nEdgeDriver version -> 126.0.2592.123\nShort EdgeDriver version -> 126.0\nTagged selenium/node-edge:126.0.2592.113-edgedriver-126.0.2592.123-grid-4.30.0-20250323\nTagged selenium/standalone-edge:126.0.2592.113-edgedriver-126.0.2592.123-grid-4.30.0-20250323\nTagged selenium/node-edge:126.0.2592.113-edgedriver-126.0.2592.123-20250323\nTagged selenium/standalone-edge:126.0.2592.113-edgedriver-126.0.2592.123-20250323\nTagged selenium/node-edge:126.0.2592.113-20250323\nTagged selenium/standalone-edge:126.0.2592.113-20250323\nTagged selenium/node-edge:126.0-edgedriver-126.0-grid-4.30.0-20250323\nTagged selenium/standalone-edge:126.0-edgedriver-126.0-grid-4.30.0-20250323\nTagged selenium/node-edge:126.0-edgedriver-126.0-20250323\nTagged selenium/standalone-edge:126.0-edgedriver-126.0-20250323\nTagged selenium/node-edge:126.0-20250323\nTagged selenium/standalone-edge:126.0-20250323\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.30.0/edge_127.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.30.0 20250323 selenium false edge true\nTagging images for browser edge, version 4.30.0, build date 20250323, namespace selenium\nSelenium Grid version -> 4.30.0-20250323\nEdge version -> 127.0.2651.105\nShort Edge version -> 127.0\nEdgeDriver version -> 127.0.2651.107\nShort EdgeDriver version -> 127.0\nTagged selenium/node-edge:127.0.2651.105-edgedriver-127.0.2651.107-grid-4.30.0-20250323\nTagged selenium/standalone-edge:127.0.2651.105-edgedriver-127.0.2651.107-grid-4.30.0-20250323\nTagged selenium/node-edge:127.0.2651.105-edgedriver-127.0.2651.107-20250323\nTagged selenium/standalone-edge:127.0.2651.105-edgedriver-127.0.2651.107-20250323\nTagged selenium/node-edge:127.0.2651.105-20250323\nTagged selenium/standalone-edge:127.0.2651.105-20250323\nTagged selenium/node-edge:127.0-edgedriver-127.0-grid-4.30.0-20250323\nTagged selenium/standalone-edge:127.0-edgedriver-127.0-grid-4.30.0-20250323\nTagged selenium/node-edge:127.0-edgedriver-127.0-20250323\nTagged selenium/standalone-edge:127.0-edgedriver-127.0-20250323\nTagged selenium/node-edge:127.0-20250323\nTagged selenium/standalone-edge:127.0-20250323\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.30.0/edge_128.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.30.0 20250323 selenium false edge true\nTagging images for browser edge, version 4.30.0, build date 20250323, namespace selenium\nSelenium Grid version -> 4.30.0-20250323\nEdge version -> 128.0.2739.79\nShort Edge version -> 128.0\nEdgeDriver version -> 128.0.2739.81\nShort EdgeDriver version -> 128.0\nTagged selenium/node-edge:128.0.2739.79-edgedriver-128.0.2739.81-grid-4.30.0-20250323\nTagged selenium/standalone-edge:128.0.2739.79-edgedriver-128.0.2739.81-grid-4.30.0-20250323\nTagged selenium/node-edge:128.0.2739.79-edgedriver-128.0.2739.81-20250323\nTagged selenium/standalone-edge:128.0.2739.79-edgedriver-128.0.2739.81-20250323\nTagged selenium/node-edge:128.0.2739.79-20250323\nTagged selenium/standalone-edge:128.0.2739.79-20250323\nTagged selenium/node-edge:128.0-edgedriver-128.0-grid-4.30.0-20250323\nTagged selenium/standalone-edge:128.0-edgedriver-128.0-grid-4.30.0-20250323\nTagged selenium/node-edge:128.0-edgedriver-128.0-20250323\nTagged selenium/standalone-edge:128.0-edgedriver-128.0-20250323\nTagged selenium/node-edge:128.0-20250323\nTagged selenium/standalone-edge:128.0-20250323\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.30.0/edge_129.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.30.0 20250323 selenium false edge true\nTagging images for browser edge, version 4.30.0, build date 20250323, namespace selenium\nSelenium Grid version -> 4.30.0-20250323\nEdge version -> 129.0.2792.89\nShort Edge version -> 129.0\nEdgeDriver version -> 129.0.2792.98\nShort EdgeDriver version -> 129.0\nTagged selenium/node-edge:129.0.2792.89-edgedriver-129.0.2792.98-grid-4.30.0-20250323\nTagged selenium/standalone-edge:129.0.2792.89-edgedriver-129.0.2792.98-grid-4.30.0-20250323\nTagged selenium/node-edge:129.0.2792.89-edgedriver-129.0.2792.98-20250323\nTagged selenium/standalone-edge:129.0.2792.89-edgedriver-129.0.2792.98-20250323\nTagged selenium/node-edge:129.0.2792.89-20250323\nTagged selenium/standalone-edge:129.0.2792.89-20250323\nTagged selenium/node-edge:129.0-edgedriver-129.0-grid-4.30.0-20250323\nTagged selenium/standalone-edge:129.0-edgedriver-129.0-grid-4.30.0-20250323\nTagged selenium/node-edge:129.0-edgedriver-129.0-20250323\nTagged selenium/standalone-edge:129.0-edgedriver-129.0-20250323\nTagged selenium/node-edge:129.0-20250323\nTagged selenium/standalone-edge:129.0-20250323\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.30.0/edge_130.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.30.0 20250323 selenium false edge true\nTagging images for browser edge, version 4.30.0, build date 20250323, namespace selenium\nSelenium Grid version -> 4.30.0-20250323\nEdge version -> 130.0.2849.80\nShort Edge version -> 130.0\nEdgeDriver version -> 130.0.2849.78\nShort EdgeDriver version -> 130.0\nTagged selenium/node-edge:130.0.2849.80-edgedriver-130.0.2849.78-grid-4.30.0-20250323\nTagged selenium/standalone-edge:130.0.2849.80-edgedriver-130.0.2849.78-grid-4.30.0-20250323\nTagged selenium/node-edge:130.0.2849.80-edgedriver-130.0.2849.78-20250323\nTagged selenium/standalone-edge:130.0.2849.80-edgedriver-130.0.2849.78-20250323\nTagged selenium/node-edge:130.0.2849.80-20250323\nTagged selenium/standalone-edge:130.0.2849.80-20250323\nTagged selenium/node-edge:130.0-edgedriver-130.0-grid-4.30.0-20250323\nTagged selenium/standalone-edge:130.0-edgedriver-130.0-grid-4.30.0-20250323\nTagged selenium/node-edge:130.0-edgedriver-130.0-20250323\nTagged selenium/standalone-edge:130.0-edgedriver-130.0-20250323\nTagged selenium/node-edge:130.0-20250323\nTagged selenium/standalone-edge:130.0-20250323\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.30.0/edge_131.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.30.0 20250323 selenium false edge true\nTagging images for browser edge, version 4.30.0, build date 20250323, namespace selenium\nSelenium Grid version -> 4.30.0-20250323\nEdge version -> 131.0.2903.147\nShort Edge version -> 131.0\nEdgeDriver version -> 131.0.2903.147\nShort EdgeDriver version -> 131.0\nTagged selenium/node-edge:131.0.2903.147-edgedriver-131.0.2903.147-grid-4.30.0-20250323\nTagged selenium/standalone-edge:131.0.2903.147-edgedriver-131.0.2903.147-grid-4.30.0-20250323\nTagged selenium/node-edge:131.0.2903.147-edgedriver-131.0.2903.147-20250323\nTagged selenium/standalone-edge:131.0.2903.147-edgedriver-131.0.2903.147-20250323\nTagged selenium/node-edge:131.0.2903.147-20250323\nTagged selenium/standalone-edge:131.0.2903.147-20250323\nTagged selenium/node-edge:131.0-edgedriver-131.0-grid-4.30.0-20250323\nTagged selenium/standalone-edge:131.0-edgedriver-131.0-grid-4.30.0-20250323\nTagged selenium/node-edge:131.0-edgedriver-131.0-20250323\nTagged selenium/standalone-edge:131.0-edgedriver-131.0-20250323\nTagged selenium/node-edge:131.0-20250323\nTagged selenium/standalone-edge:131.0-20250323\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.30.0/edge_132.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.30.0 20250323 selenium false edge true\nTagging images for browser edge, version 4.30.0, build date 20250323, namespace selenium\nSelenium Grid version -> 4.30.0-20250323\nEdge version -> 132.0.2957.140\nShort Edge version -> 132.0\nEdgeDriver version -> 132.0.2957.140\nShort EdgeDriver version -> 132.0\nTagged selenium/node-edge:132.0.2957.140-edgedriver-132.0.2957.140-grid-4.30.0-20250323\nTagged selenium/standalone-edge:132.0.2957.140-edgedriver-132.0.2957.140-grid-4.30.0-20250323\nTagged selenium/node-edge:132.0.2957.140-edgedriver-132.0.2957.140-20250323\nTagged selenium/standalone-edge:132.0.2957.140-edgedriver-132.0.2957.140-20250323\nTagged selenium/node-edge:132.0.2957.140-20250323\nTagged selenium/standalone-edge:132.0.2957.140-20250323\nTagged selenium/node-edge:132.0-edgedriver-132.0-grid-4.30.0-20250323\nTagged selenium/standalone-edge:132.0-edgedriver-132.0-grid-4.30.0-20250323\nTagged selenium/node-edge:132.0-edgedriver-132.0-20250323\nTagged selenium/standalone-edge:132.0-edgedriver-132.0-20250323\nTagged selenium/node-edge:132.0-20250323\nTagged selenium/standalone-edge:132.0-20250323\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.30.0/edge_133.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.30.0 20250323 selenium false edge true\nTagging images for browser edge, version 4.30.0, build date 20250323, namespace selenium\nSelenium Grid version -> 4.30.0-20250323\nEdge version -> 133.0.3065.92\nShort Edge version -> 133.0\nEdgeDriver version -> 133.0.3065.92\nShort EdgeDriver version -> 133.0\nTagged selenium/node-edge:133.0.3065.92-edgedriver-133.0.3065.92-grid-4.30.0-20250323\nTagged selenium/standalone-edge:133.0.3065.92-edgedriver-133.0.3065.92-grid-4.30.0-20250323\nTagged selenium/node-edge:133.0.3065.92-edgedriver-133.0.3065.92-20250323\nTagged selenium/standalone-edge:133.0.3065.92-edgedriver-133.0.3065.92-20250323\nTagged selenium/node-edge:133.0.3065.92-20250323\nTagged selenium/standalone-edge:133.0.3065.92-20250323\nTagged selenium/node-edge:133.0-edgedriver-133.0-grid-4.30.0-20250323\nTagged selenium/standalone-edge:133.0-edgedriver-133.0-grid-4.30.0-20250323\nTagged selenium/node-edge:133.0-edgedriver-133.0-20250323\nTagged selenium/standalone-edge:133.0-edgedriver-133.0-20250323\nTagged selenium/node-edge:133.0-20250323\nTagged selenium/standalone-edge:133.0-20250323\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.30.0/edge_134.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.30.0 20250323 selenium false edge true\nTagging images for browser edge, version 4.30.0, build date 20250323, namespace selenium\nSelenium Grid version -> 4.30.0-20250323\nEdge version -> 134.0.3124.83\nShort Edge version -> 134.0\nEdgeDriver version -> 134.0.3124.83\nShort EdgeDriver version -> 134.0\nTagged selenium/node-edge:134.0.3124.83-edgedriver-134.0.3124.83-grid-4.30.0-20250323\nTagged selenium/standalone-edge:134.0.3124.83-edgedriver-134.0.3124.83-grid-4.30.0-20250323\nTagged selenium/node-edge:134.0.3124.83-edgedriver-134.0.3124.83-20250323\nTagged selenium/standalone-edge:134.0.3124.83-edgedriver-134.0.3124.83-20250323\nTagged selenium/node-edge:134.0.3124.83-20250323\nTagged selenium/standalone-edge:134.0.3124.83-20250323\nTagged selenium/node-edge:134.0-edgedriver-134.0-grid-4.30.0-20250323\nTagged selenium/standalone-edge:134.0-edgedriver-134.0-grid-4.30.0-20250323\nTagged selenium/node-edge:134.0-edgedriver-134.0-20250323\nTagged selenium/standalone-edge:134.0-edgedriver-134.0-20250323\nTagged selenium/node-edge:134.0-20250323\nTagged selenium/standalone-edge:134.0-20250323\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.30.0/firefox_100.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.30.0 20250323 selenium false firefox true\nTagging images for browser firefox, version 4.30.0, build date 20250323, namespace selenium\nSelenium Grid version -> 4.30.0-20250323\nFirefox version -> 100.0.2\nShort Firefox version -> 100.0\nGeckoDriver version -> 0.36.0\nShort GeckoDriver version -> 0.36\nTagged selenium/node-firefox:100.0.2-geckodriver-0.36.0-grid-4.30.0-20250323\nTagged selenium/standalone-firefox:100.0.2-geckodriver-0.36.0-grid-4.30.0-20250323\nTagged selenium/node-firefox:100.0.2-geckodriver-0.36.0-20250323\nTagged selenium/standalone-firefox:100.0.2-geckodriver-0.36.0-20250323\nTagged selenium/node-firefox:100.0.2-20250323\nTagged selenium/standalone-firefox:100.0.2-20250323\nTagged selenium/node-firefox:100.0-geckodriver-0.36-grid-4.30.0-20250323\nTagged selenium/standalone-firefox:100.0-geckodriver-0.36-grid-4.30.0-20250323\nTagged selenium/node-firefox:100.0-geckodriver-0.36-20250323\nTagged selenium/standalone-firefox:100.0-geckodriver-0.36-20250323\nTagged selenium/node-firefox:100.0-20250323\nTagged selenium/standalone-firefox:100.0-20250323\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.30.0/firefox_101.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.30.0 20250323 selenium false firefox true\nTagging images for browser firefox, version 4.30.0, build date 20250323, namespace selenium\nSelenium Grid version -> 4.30.0-20250323\nFirefox version -> 101.0.1\nShort Firefox version -> 101.0\nGeckoDriver version -> 0.36.0\nShort GeckoDriver version -> 0.36\nTagged selenium/node-firefox:101.0.1-geckodriver-0.36.0-grid-4.30.0-20250323\nTagged selenium/standalone-firefox:101.0.1-geckodriver-0.36.0-grid-4.30.0-20250323\nTagged selenium/node-firefox:101.0.1-geckodriver-0.36.0-20250323\nTagged selenium/standalone-firefox:101.0.1-geckodriver-0.36.0-20250323\nTagged selenium/node-firefox:101.0.1-20250323\nTagged selenium/standalone-firefox:101.0.1-20250323\nTagged selenium/node-firefox:101.0-geckodriver-0.36-grid-4.30.0-20250323\nTagged selenium/standalone-firefox:101.0-geckodriver-0.36-grid-4.30.0-20250323\nTagged selenium/node-firefox:101.0-geckodriver-0.36-20250323\nTagged selenium/standalone-firefox:101.0-geckodriver-0.36-20250323\nTagged selenium/node-firefox:101.0-20250323\nTagged selenium/standalone-firefox:101.0-20250323\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.30.0/firefox_102.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.30.0 20250323 selenium false firefox true\nTagging images for browser firefox, version 4.30.0, build date 20250323, namespace selenium\nSelenium Grid version -> 4.30.0-20250323\nFirefox version -> 102.0.1\nShort Firefox version -> 102.0\nGeckoDriver version -> 0.36.0\nShort GeckoDriver version -> 0.36\nTagged selenium/node-firefox:102.0.1-geckodriver-0.36.0-grid-4.30.0-20250323\nTagged selenium/standalone-firefox:102.0.1-geckodriver-0.36.0-grid-4.30.0-20250323\nTagged selenium/node-firefox:102.0.1-geckodriver-0.36.0-20250323\nTagged selenium/standalone-firefox:102.0.1-geckodriver-0.36.0-20250323\nTagged selenium/node-firefox:102.0.1-20250323\nTagged selenium/standalone-firefox:102.0.1-20250323\nTagged selenium/node-firefox:102.0-geckodriver-0.36-grid-4.30.0-20250323\nTagged selenium/standalone-firefox:102.0-geckodriver-0.36-grid-4.30.0-20250323\nTagged selenium/node-firefox:102.0-geckodriver-0.36-20250323\nTagged selenium/standalone-firefox:102.0-geckodriver-0.36-20250323\nTagged selenium/node-firefox:102.0-20250323\nTagged selenium/standalone-firefox:102.0-20250323\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.30.0/firefox_103.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.30.0 20250323 selenium false firefox true\nTagging images for browser firefox, version 4.30.0, build date 20250323, namespace selenium\nSelenium Grid version -> 4.30.0-20250323\nFirefox version -> 103.0.2\nShort Firefox version -> 103.0\nGeckoDriver version -> 0.36.0\nShort GeckoDriver version -> 0.36\nTagged selenium/node-firefox:103.0.2-geckodriver-0.36.0-grid-4.30.0-20250323\nTagged selenium/standalone-firefox:103.0.2-geckodriver-0.36.0-grid-4.30.0-20250323\nTagged selenium/node-firefox:103.0.2-geckodriver-0.36.0-20250323\nTagged selenium/standalone-firefox:103.0.2-geckodriver-0.36.0-20250323\nTagged selenium/node-firefox:103.0.2-20250323\nTagged selenium/standalone-firefox:103.0.2-20250323\nTagged selenium/node-firefox:103.0-geckodriver-0.36-grid-4.30.0-20250323\nTagged selenium/standalone-firefox:103.0-geckodriver-0.36-grid-4.30.0-20250323\nTagged selenium/node-firefox:103.0-geckodriver-0.36-20250323\nTagged selenium/standalone-firefox:103.0-geckodriver-0.36-20250323\nTagged selenium/node-firefox:103.0-20250323\nTagged selenium/standalone-firefox:103.0-20250323\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.30.0/firefox_104.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.30.0 20250323 selenium false firefox true\nTagging images for browser firefox, version 4.30.0, build date 20250323, namespace selenium\nSelenium Grid version -> 4.30.0-20250323\nFirefox version -> 104.0.2\nShort Firefox version -> 104.0\nGeckoDriver version -> 0.36.0\nShort GeckoDriver version -> 0.36\nTagged selenium/node-firefox:104.0.2-geckodriver-0.36.0-grid-4.30.0-20250323\nTagged selenium/standalone-firefox:104.0.2-geckodriver-0.36.0-grid-4.30.0-20250323\nTagged selenium/node-firefox:104.0.2-geckodriver-0.36.0-20250323\nTagged selenium/standalone-firefox:104.0.2-geckodriver-0.36.0-20250323\nTagged selenium/node-firefox:104.0.2-20250323\nTagged selenium/standalone-firefox:104.0.2-20250323\nTagged selenium/node-firefox:104.0-geckodriver-0.36-grid-4.30.0-20250323\nTagged selenium/standalone-firefox:104.0-geckodriver-0.36-grid-4.30.0-20250323\nTagged selenium/node-firefox:104.0-geckodriver-0.36-20250323\nTagged selenium/standalone-firefox:104.0-geckodriver-0.36-20250323\nTagged selenium/node-firefox:104.0-20250323\nTagged selenium/standalone-firefox:104.0-20250323\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.30.0/firefox_105.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.30.0 20250323 selenium false firefox true\nTagging images for browser firefox, version 4.30.0, build date 20250323, namespace selenium\nSelenium Grid version -> 4.30.0-20250323\nFirefox version -> 105.0.3\nShort Firefox version -> 105.0\nGeckoDriver version -> 0.36.0\nShort GeckoDriver version -> 0.36\nTagged selenium/node-firefox:105.0.3-geckodriver-0.36.0-grid-4.30.0-20250323\nTagged selenium/standalone-firefox:105.0.3-geckodriver-0.36.0-grid-4.30.0-20250323\nTagged selenium/node-firefox:105.0.3-geckodriver-0.36.0-20250323\nTagged selenium/standalone-firefox:105.0.3-geckodriver-0.36.0-20250323\nTagged selenium/node-firefox:105.0.3-20250323\nTagged selenium/standalone-firefox:105.0.3-20250323\nTagged selenium/node-firefox:105.0-geckodriver-0.36-grid-4.30.0-20250323\nTagged selenium/standalone-firefox:105.0-geckodriver-0.36-grid-4.30.0-20250323\nTagged selenium/node-firefox:105.0-geckodriver-0.36-20250323\nTagged selenium/standalone-firefox:105.0-geckodriver-0.36-20250323\nTagged selenium/node-firefox:105.0-20250323\nTagged selenium/standalone-firefox:105.0-20250323\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.30.0/firefox_106.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.30.0 20250323 selenium false firefox true\nTagging images for browser firefox, version 4.30.0, build date 20250323, namespace selenium\nSelenium Grid version -> 4.30.0-20250323\nFirefox version -> 106.0.5\nShort Firefox version -> 106.0\nGeckoDriver version -> 0.36.0\nShort GeckoDriver version -> 0.36\nTagged selenium/node-firefox:106.0.5-geckodriver-0.36.0-grid-4.30.0-20250323\nTagged selenium/standalone-firefox:106.0.5-geckodriver-0.36.0-grid-4.30.0-20250323\nTagged selenium/node-firefox:106.0.5-geckodriver-0.36.0-20250323\nTagged selenium/standalone-firefox:106.0.5-geckodriver-0.36.0-20250323\nTagged selenium/node-firefox:106.0.5-20250323\nTagged selenium/standalone-firefox:106.0.5-20250323\nTagged selenium/node-firefox:106.0-geckodriver-0.36-grid-4.30.0-20250323\nTagged selenium/standalone-firefox:106.0-geckodriver-0.36-grid-4.30.0-20250323\nTagged selenium/node-firefox:106.0-geckodriver-0.36-20250323\nTagged selenium/standalone-firefox:106.0-geckodriver-0.36-20250323\nTagged selenium/node-firefox:106.0-20250323\nTagged selenium/standalone-firefox:106.0-20250323\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.30.0/firefox_107.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.30.0 20250323 selenium false firefox true\nTagging images for browser firefox, version 4.30.0, build date 20250323, namespace selenium\nSelenium Grid version -> 4.30.0-20250323\nFirefox version -> 107.0.1\nShort Firefox version -> 107.0\nGeckoDriver version -> 0.36.0\nShort GeckoDriver version -> 0.36\nTagged selenium/node-firefox:107.0.1-geckodriver-0.36.0-grid-4.30.0-20250323\nTagged selenium/standalone-firefox:107.0.1-geckodriver-0.36.0-grid-4.30.0-20250323\nTagged selenium/node-firefox:107.0.1-geckodriver-0.36.0-20250323\nTagged selenium/standalone-firefox:107.0.1-geckodriver-0.36.0-20250323\nTagged selenium/node-firefox:107.0.1-20250323\nTagged selenium/standalone-firefox:107.0.1-20250323\nTagged selenium/node-firefox:107.0-geckodriver-0.36-grid-4.30.0-20250323\nTagged selenium/standalone-firefox:107.0-geckodriver-0.36-grid-4.30.0-20250323\nTagged selenium/node-firefox:107.0-geckodriver-0.36-20250323\nTagged selenium/standalone-firefox:107.0-geckodriver-0.36-20250323\nTagged selenium/node-firefox:107.0-20250323\nTagged selenium/standalone-firefox:107.0-20250323\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.30.0/firefox_108.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.30.0 20250323 selenium false firefox true\nTagging images for browser firefox, version 4.30.0, build date 20250323, namespace selenium\nSelenium Grid version -> 4.30.0-20250323\nFirefox version -> 108.0.2\nShort Firefox version -> 108.0\nGeckoDriver version -> 0.36.0\nShort GeckoDriver version -> 0.36\nTagged selenium/node-firefox:108.0.2-geckodriver-0.36.0-grid-4.30.0-20250323\nTagged selenium/standalone-firefox:108.0.2-geckodriver-0.36.0-grid-4.30.0-20250323\nTagged selenium/node-firefox:108.0.2-geckodriver-0.36.0-20250323\nTagged selenium/standalone-firefox:108.0.2-geckodriver-0.36.0-20250323\nTagged selenium/node-firefox:108.0.2-20250323\nTagged selenium/standalone-firefox:108.0.2-20250323\nTagged selenium/node-firefox:108.0-geckodriver-0.36-grid-4.30.0-20250323\nTagged selenium/standalone-firefox:108.0-geckodriver-0.36-grid-4.30.0-20250323\nTagged selenium/node-firefox:108.0-geckodriver-0.36-20250323\nTagged selenium/standalone-firefox:108.0-geckodriver-0.36-20250323\nTagged selenium/node-firefox:108.0-20250323\nTagged selenium/standalone-firefox:108.0-20250323\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.30.0/firefox_109.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.30.0 20250323 selenium false firefox true\nTagging images for browser firefox, version 4.30.0, build date 20250323, namespace selenium\nSelenium Grid version -> 4.30.0-20250323\nFirefox version -> 109.0.1\nShort Firefox version -> 109.0\nGeckoDriver version -> 0.36.0\nShort GeckoDriver version -> 0.36\nTagged selenium/node-firefox:109.0.1-geckodriver-0.36.0-grid-4.30.0-20250323\nTagged selenium/standalone-firefox:109.0.1-geckodriver-0.36.0-grid-4.30.0-20250323\nTagged selenium/node-firefox:109.0.1-geckodriver-0.36.0-20250323\nTagged selenium/standalone-firefox:109.0.1-geckodriver-0.36.0-20250323\nTagged selenium/node-firefox:109.0.1-20250323\nTagged selenium/standalone-firefox:109.0.1-20250323\nTagged selenium/node-firefox:109.0-geckodriver-0.36-grid-4.30.0-20250323\nTagged selenium/standalone-firefox:109.0-geckodriver-0.36-grid-4.30.0-20250323\nTagged selenium/node-firefox:109.0-geckodriver-0.36-20250323\nTagged selenium/standalone-firefox:109.0-geckodriver-0.36-20250323\nTagged selenium/node-firefox:109.0-20250323\nTagged selenium/standalone-firefox:109.0-20250323\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.30.0/firefox_110.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.30.0 20250323 selenium false firefox true\nTagging images for browser firefox, version 4.30.0, build date 20250323, namespace selenium\nSelenium Grid version -> 4.30.0-20250323\nFirefox version -> 110.0.1\nShort Firefox version -> 110.0\nGeckoDriver version -> 0.36.0\nShort GeckoDriver version -> 0.36\nTagged selenium/node-firefox:110.0.1-geckodriver-0.36.0-grid-4.30.0-20250323\nTagged selenium/standalone-firefox:110.0.1-geckodriver-0.36.0-grid-4.30.0-20250323\nTagged selenium/node-firefox:110.0.1-geckodriver-0.36.0-20250323\nTagged selenium/standalone-firefox:110.0.1-geckodriver-0.36.0-20250323\nTagged selenium/node-firefox:110.0.1-20250323\nTagged selenium/standalone-firefox:110.0.1-20250323\nTagged selenium/node-firefox:110.0-geckodriver-0.36-grid-4.30.0-20250323\nTagged selenium/standalone-firefox:110.0-geckodriver-0.36-grid-4.30.0-20250323\nTagged selenium/node-firefox:110.0-geckodriver-0.36-20250323\nTagged selenium/standalone-firefox:110.0-geckodriver-0.36-20250323\nTagged selenium/node-firefox:110.0-20250323\nTagged selenium/standalone-firefox:110.0-20250323\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.30.0/firefox_111.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.30.0 20250323 selenium false firefox true\nTagging images for browser firefox, version 4.30.0, build date 20250323, namespace selenium\nSelenium Grid version -> 4.30.0-20250323\nFirefox version -> 111.0.1\nShort Firefox version -> 111.0\nGeckoDriver version -> 0.36.0\nShort GeckoDriver version -> 0.36\nTagged selenium/node-firefox:111.0.1-geckodriver-0.36.0-grid-4.30.0-20250323\nTagged selenium/standalone-firefox:111.0.1-geckodriver-0.36.0-grid-4.30.0-20250323\nTagged selenium/node-firefox:111.0.1-geckodriver-0.36.0-20250323\nTagged selenium/standalone-firefox:111.0.1-geckodriver-0.36.0-20250323\nTagged selenium/node-firefox:111.0.1-20250323\nTagged selenium/standalone-firefox:111.0.1-20250323\nTagged selenium/node-firefox:111.0-geckodriver-0.36-grid-4.30.0-20250323\nTagged selenium/standalone-firefox:111.0-geckodriver-0.36-grid-4.30.0-20250323\nTagged selenium/node-firefox:111.0-geckodriver-0.36-20250323\nTagged selenium/standalone-firefox:111.0-geckodriver-0.36-20250323\nTagged selenium/node-firefox:111.0-20250323\nTagged selenium/standalone-firefox:111.0-20250323\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.30.0/firefox_112.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.30.0 20250323 selenium false firefox true\nTagging images for browser firefox, version 4.30.0, build date 20250323, namespace selenium\nSelenium Grid version -> 4.30.0-20250323\nFirefox version -> 112.0.2\nShort Firefox version -> 112.0\nGeckoDriver version -> 0.36.0\nShort GeckoDriver version -> 0.36\nTagged selenium/node-firefox:112.0.2-geckodriver-0.36.0-grid-4.30.0-20250323\nTagged selenium/standalone-firefox:112.0.2-geckodriver-0.36.0-grid-4.30.0-20250323\nTagged selenium/node-firefox:112.0.2-geckodriver-0.36.0-20250323\nTagged selenium/standalone-firefox:112.0.2-geckodriver-0.36.0-20250323\nTagged selenium/node-firefox:112.0.2-20250323\nTagged selenium/standalone-firefox:112.0.2-20250323\nTagged selenium/node-firefox:112.0-geckodriver-0.36-grid-4.30.0-20250323\nTagged selenium/standalone-firefox:112.0-geckodriver-0.36-grid-4.30.0-20250323\nTagged selenium/node-firefox:112.0-geckodriver-0.36-20250323\nTagged selenium/standalone-firefox:112.0-geckodriver-0.36-20250323\nTagged selenium/node-firefox:112.0-20250323\nTagged selenium/standalone-firefox:112.0-20250323\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.30.0/firefox_113.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.30.0 20250323 selenium false firefox true\nTagging images for browser firefox, version 4.30.0, build date 20250323, namespace selenium\nSelenium Grid version -> 4.30.0-20250323\nFirefox version -> 113.0.2\nShort Firefox version -> 113.0\nGeckoDriver version -> 0.36.0\nShort GeckoDriver version -> 0.36\nTagged selenium/node-firefox:113.0.2-geckodriver-0.36.0-grid-4.30.0-20250323\nTagged selenium/standalone-firefox:113.0.2-geckodriver-0.36.0-grid-4.30.0-20250323\nTagged selenium/node-firefox:113.0.2-geckodriver-0.36.0-20250323\nTagged selenium/standalone-firefox:113.0.2-geckodriver-0.36.0-20250323\nTagged selenium/node-firefox:113.0.2-20250323\nTagged selenium/standalone-firefox:113.0.2-20250323\nTagged selenium/node-firefox:113.0-geckodriver-0.36-grid-4.30.0-20250323\nTagged selenium/standalone-firefox:113.0-geckodriver-0.36-grid-4.30.0-20250323\nTagged selenium/node-firefox:113.0-geckodriver-0.36-20250323\nTagged selenium/standalone-firefox:113.0-geckodriver-0.36-20250323\nTagged selenium/node-firefox:113.0-20250323\nTagged selenium/standalone-firefox:113.0-20250323\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.30.0/firefox_114.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.30.0 20250323 selenium false firefox true\nTagging images for browser firefox, version 4.30.0, build date 20250323, namespace selenium\nSelenium Grid version -> 4.30.0-20250323\nFirefox version -> 114.0.2\nShort Firefox version -> 114.0\nGeckoDriver version -> 0.36.0\nShort GeckoDriver version -> 0.36\nTagged selenium/node-firefox:114.0.2-geckodriver-0.36.0-grid-4.30.0-20250323\nTagged selenium/standalone-firefox:114.0.2-geckodriver-0.36.0-grid-4.30.0-20250323\nTagged selenium/node-firefox:114.0.2-geckodriver-0.36.0-20250323\nTagged selenium/standalone-firefox:114.0.2-geckodriver-0.36.0-20250323\nTagged selenium/node-firefox:114.0.2-20250323\nTagged selenium/standalone-firefox:114.0.2-20250323\nTagged selenium/node-firefox:114.0-geckodriver-0.36-grid-4.30.0-20250323\nTagged selenium/standalone-firefox:114.0-geckodriver-0.36-grid-4.30.0-20250323\nTagged selenium/node-firefox:114.0-geckodriver-0.36-20250323\nTagged selenium/standalone-firefox:114.0-geckodriver-0.36-20250323\nTagged selenium/node-firefox:114.0-20250323\nTagged selenium/standalone-firefox:114.0-20250323\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.30.0/firefox_115.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.30.0 20250323 selenium false firefox true\nTagging images for browser firefox, version 4.30.0, build date 20250323, namespace selenium\nSelenium Grid version -> 4.30.0-20250323\nFirefox version -> 115.0.3\nShort Firefox version -> 115.0\nGeckoDriver version -> 0.36.0\nShort GeckoDriver version -> 0.36\nTagged selenium/node-firefox:115.0.3-geckodriver-0.36.0-grid-4.30.0-20250323\nTagged selenium/standalone-firefox:115.0.3-geckodriver-0.36.0-grid-4.30.0-20250323\nTagged selenium/node-firefox:115.0.3-geckodriver-0.36.0-20250323\nTagged selenium/standalone-firefox:115.0.3-geckodriver-0.36.0-20250323\nTagged selenium/node-firefox:115.0.3-20250323\nTagged selenium/standalone-firefox:115.0.3-20250323\nTagged selenium/node-firefox:115.0-geckodriver-0.36-grid-4.30.0-20250323\nTagged selenium/standalone-firefox:115.0-geckodriver-0.36-grid-4.30.0-20250323\nTagged selenium/node-firefox:115.0-geckodriver-0.36-20250323\nTagged selenium/standalone-firefox:115.0-geckodriver-0.36-20250323\nTagged selenium/node-firefox:115.0-20250323\nTagged selenium/standalone-firefox:115.0-20250323\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.30.0/firefox_116.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.30.0 20250323 selenium false firefox true\nTagging images for browser firefox, version 4.30.0, build date 20250323, namespace selenium\nSelenium Grid version -> 4.30.0-20250323\nFirefox version -> 116.0.3\nShort Firefox version -> 116.0\nGeckoDriver version -> 0.36.0\nShort GeckoDriver version -> 0.36\nTagged selenium/node-firefox:116.0.3-geckodriver-0.36.0-grid-4.30.0-20250323\nTagged selenium/standalone-firefox:116.0.3-geckodriver-0.36.0-grid-4.30.0-20250323\nTagged selenium/node-firefox:116.0.3-geckodriver-0.36.0-20250323\nTagged selenium/standalone-firefox:116.0.3-geckodriver-0.36.0-20250323\nTagged selenium/node-firefox:116.0.3-20250323\nTagged selenium/standalone-firefox:116.0.3-20250323\nTagged selenium/node-firefox:116.0-geckodriver-0.36-grid-4.30.0-20250323\nTagged selenium/standalone-firefox:116.0-geckodriver-0.36-grid-4.30.0-20250323\nTagged selenium/node-firefox:116.0-geckodriver-0.36-20250323\nTagged selenium/standalone-firefox:116.0-geckodriver-0.36-20250323\nTagged selenium/node-firefox:116.0-20250323\nTagged selenium/standalone-firefox:116.0-20250323\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.30.0/firefox_117.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.30.0 20250323 selenium false firefox true\nTagging images for browser firefox, version 4.30.0, build date 20250323, namespace selenium\nSelenium Grid version -> 4.30.0-20250323\nFirefox version -> 117.0.1\nShort Firefox version -> 117.0\nGeckoDriver version -> 0.36.0\nShort GeckoDriver version -> 0.36\nTagged selenium/node-firefox:117.0.1-geckodriver-0.36.0-grid-4.30.0-20250323\nTagged selenium/standalone-firefox:117.0.1-geckodriver-0.36.0-grid-4.30.0-20250323\nTagged selenium/node-firefox:117.0.1-geckodriver-0.36.0-20250323\nTagged selenium/standalone-firefox:117.0.1-geckodriver-0.36.0-20250323\nTagged selenium/node-firefox:117.0.1-20250323\nTagged selenium/standalone-firefox:117.0.1-20250323\nTagged selenium/node-firefox:117.0-geckodriver-0.36-grid-4.30.0-20250323\nTagged selenium/standalone-firefox:117.0-geckodriver-0.36-grid-4.30.0-20250323\nTagged selenium/node-firefox:117.0-geckodriver-0.36-20250323\nTagged selenium/standalone-firefox:117.0-geckodriver-0.36-20250323\nTagged selenium/node-firefox:117.0-20250323\nTagged selenium/standalone-firefox:117.0-20250323\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.30.0/firefox_118.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.30.0 20250323 selenium false firefox true\nTagging images for browser firefox, version 4.30.0, build date 20250323, namespace selenium\nSelenium Grid version -> 4.30.0-20250323\nFirefox version -> 118.0.2\nShort Firefox version -> 118.0\nGeckoDriver version -> 0.36.0\nShort GeckoDriver version -> 0.36\nTagged selenium/node-firefox:118.0.2-geckodriver-0.36.0-grid-4.30.0-20250323\nTagged selenium/standalone-firefox:118.0.2-geckodriver-0.36.0-grid-4.30.0-20250323\nTagged selenium/node-firefox:118.0.2-geckodriver-0.36.0-20250323\nTagged selenium/standalone-firefox:118.0.2-geckodriver-0.36.0-20250323\nTagged selenium/node-firefox:118.0.2-20250323\nTagged selenium/standalone-firefox:118.0.2-20250323\nTagged selenium/node-firefox:118.0-geckodriver-0.36-grid-4.30.0-20250323\nTagged selenium/standalone-firefox:118.0-geckodriver-0.36-grid-4.30.0-20250323\nTagged selenium/node-firefox:118.0-geckodriver-0.36-20250323\nTagged selenium/standalone-firefox:118.0-geckodriver-0.36-20250323\nTagged selenium/node-firefox:118.0-20250323\nTagged selenium/standalone-firefox:118.0-20250323\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.30.0/firefox_119.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.30.0 20250323 selenium false firefox true\nTagging images for browser firefox, version 4.30.0, build date 20250323, namespace selenium\nSelenium Grid version -> 4.30.0-20250323\nFirefox version -> 119.0.1\nShort Firefox version -> 119.0\nGeckoDriver version -> 0.36.0\nShort GeckoDriver version -> 0.36\nTagged selenium/node-firefox:119.0.1-geckodriver-0.36.0-grid-4.30.0-20250323\nTagged selenium/standalone-firefox:119.0.1-geckodriver-0.36.0-grid-4.30.0-20250323\nTagged selenium/node-firefox:119.0.1-geckodriver-0.36.0-20250323\nTagged selenium/standalone-firefox:119.0.1-geckodriver-0.36.0-20250323\nTagged selenium/node-firefox:119.0.1-20250323\nTagged selenium/standalone-firefox:119.0.1-20250323\nTagged selenium/node-firefox:119.0-geckodriver-0.36-grid-4.30.0-20250323\nTagged selenium/standalone-firefox:119.0-geckodriver-0.36-grid-4.30.0-20250323\nTagged selenium/node-firefox:119.0-geckodriver-0.36-20250323\nTagged selenium/standalone-firefox:119.0-geckodriver-0.36-20250323\nTagged selenium/node-firefox:119.0-20250323\nTagged selenium/standalone-firefox:119.0-20250323\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.30.0/firefox_120.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.30.0 20250323 selenium false firefox true\nTagging images for browser firefox, version 4.30.0, build date 20250323, namespace selenium\nSelenium Grid version -> 4.30.0-20250323\nFirefox version -> 120.0.1\nShort Firefox version -> 120.0\nGeckoDriver version -> 0.36.0\nShort GeckoDriver version -> 0.36\nTagged selenium/node-firefox:120.0.1-geckodriver-0.36.0-grid-4.30.0-20250323\nTagged selenium/standalone-firefox:120.0.1-geckodriver-0.36.0-grid-4.30.0-20250323\nTagged selenium/node-firefox:120.0.1-geckodriver-0.36.0-20250323\nTagged selenium/standalone-firefox:120.0.1-geckodriver-0.36.0-20250323\nTagged selenium/node-firefox:120.0.1-20250323\nTagged selenium/standalone-firefox:120.0.1-20250323\nTagged selenium/node-firefox:120.0-geckodriver-0.36-grid-4.30.0-20250323\nTagged selenium/standalone-firefox:120.0-geckodriver-0.36-grid-4.30.0-20250323\nTagged selenium/node-firefox:120.0-geckodriver-0.36-20250323\nTagged selenium/standalone-firefox:120.0-geckodriver-0.36-20250323\nTagged selenium/node-firefox:120.0-20250323\nTagged selenium/standalone-firefox:120.0-20250323\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.30.0/firefox_121.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.30.0 20250323 selenium false firefox true\nTagging images for browser firefox, version 4.30.0, build date 20250323, namespace selenium\nSelenium Grid version -> 4.30.0-20250323\nFirefox version -> 121.0.1\nShort Firefox version -> 121.0\nGeckoDriver version -> 0.36.0\nShort GeckoDriver version -> 0.36\nTagged selenium/node-firefox:121.0.1-geckodriver-0.36.0-grid-4.30.0-20250323\nTagged selenium/standalone-firefox:121.0.1-geckodriver-0.36.0-grid-4.30.0-20250323\nTagged selenium/node-firefox:121.0.1-geckodriver-0.36.0-20250323\nTagged selenium/standalone-firefox:121.0.1-geckodriver-0.36.0-20250323\nTagged selenium/node-firefox:121.0.1-20250323\nTagged selenium/standalone-firefox:121.0.1-20250323\nTagged selenium/node-firefox:121.0-geckodriver-0.36-grid-4.30.0-20250323\nTagged selenium/standalone-firefox:121.0-geckodriver-0.36-grid-4.30.0-20250323\nTagged selenium/node-firefox:121.0-geckodriver-0.36-20250323\nTagged selenium/standalone-firefox:121.0-geckodriver-0.36-20250323\nTagged selenium/node-firefox:121.0-20250323\nTagged selenium/standalone-firefox:121.0-20250323\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.30.0/firefox_122.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.30.0 20250323 selenium false firefox true\nTagging images for browser firefox, version 4.30.0, build date 20250323, namespace selenium\nSelenium Grid version -> 4.30.0-20250323\nFirefox version -> 122.0.1\nShort Firefox version -> 122.0\nGeckoDriver version -> 0.36.0\nShort GeckoDriver version -> 0.36\nTagged selenium/node-firefox:122.0.1-geckodriver-0.36.0-grid-4.30.0-20250323\nTagged selenium/standalone-firefox:122.0.1-geckodriver-0.36.0-grid-4.30.0-20250323\nTagged selenium/node-firefox:122.0.1-geckodriver-0.36.0-20250323\nTagged selenium/standalone-firefox:122.0.1-geckodriver-0.36.0-20250323\nTagged selenium/node-firefox:122.0.1-20250323\nTagged selenium/standalone-firefox:122.0.1-20250323\nTagged selenium/node-firefox:122.0-geckodriver-0.36-grid-4.30.0-20250323\nTagged selenium/standalone-firefox:122.0-geckodriver-0.36-grid-4.30.0-20250323\nTagged selenium/node-firefox:122.0-geckodriver-0.36-20250323\nTagged selenium/standalone-firefox:122.0-geckodriver-0.36-20250323\nTagged selenium/node-firefox:122.0-20250323\nTagged selenium/standalone-firefox:122.0-20250323\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.30.0/firefox_123.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.30.0 20250323 selenium false firefox true\nTagging images for browser firefox, version 4.30.0, build date 20250323, namespace selenium\nSelenium Grid version -> 4.30.0-20250323\nFirefox version -> 123.0.1\nShort Firefox version -> 123.0\nGeckoDriver version -> 0.36.0\nShort GeckoDriver version -> 0.36\nTagged selenium/node-firefox:123.0.1-geckodriver-0.36.0-grid-4.30.0-20250323\nTagged selenium/standalone-firefox:123.0.1-geckodriver-0.36.0-grid-4.30.0-20250323\nTagged selenium/node-firefox:123.0.1-geckodriver-0.36.0-20250323\nTagged selenium/standalone-firefox:123.0.1-geckodriver-0.36.0-20250323\nTagged selenium/node-firefox:123.0.1-20250323\nTagged selenium/standalone-firefox:123.0.1-20250323\nTagged selenium/node-firefox:123.0-geckodriver-0.36-grid-4.30.0-20250323\nTagged selenium/standalone-firefox:123.0-geckodriver-0.36-grid-4.30.0-20250323\nTagged selenium/node-firefox:123.0-geckodriver-0.36-20250323\nTagged selenium/standalone-firefox:123.0-geckodriver-0.36-20250323\nTagged selenium/node-firefox:123.0-20250323\nTagged selenium/standalone-firefox:123.0-20250323\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.30.0/firefox_124.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.30.0 20250323 selenium false firefox true\nTagging images for browser firefox, version 4.30.0, build date 20250323, namespace selenium\nSelenium Grid version -> 4.30.0-20250323\nFirefox version -> 124.0.2\nShort Firefox version -> 124.0\nGeckoDriver version -> 0.36.0\nShort GeckoDriver version -> 0.36\nTagged selenium/node-firefox:124.0.2-geckodriver-0.36.0-grid-4.30.0-20250323\nTagged selenium/standalone-firefox:124.0.2-geckodriver-0.36.0-grid-4.30.0-20250323\nTagged selenium/node-firefox:124.0.2-geckodriver-0.36.0-20250323\nTagged selenium/standalone-firefox:124.0.2-geckodriver-0.36.0-20250323\nTagged selenium/node-firefox:124.0.2-20250323\nTagged selenium/standalone-firefox:124.0.2-20250323\nTagged selenium/node-firefox:124.0-geckodriver-0.36-grid-4.30.0-20250323\nTagged selenium/standalone-firefox:124.0-geckodriver-0.36-grid-4.30.0-20250323\nTagged selenium/node-firefox:124.0-geckodriver-0.36-20250323\nTagged selenium/standalone-firefox:124.0-geckodriver-0.36-20250323\nTagged selenium/node-firefox:124.0-20250323\nTagged selenium/standalone-firefox:124.0-20250323\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.30.0/firefox_125.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.30.0 20250323 selenium false firefox true\nTagging images for browser firefox, version 4.30.0, build date 20250323, namespace selenium\nSelenium Grid version -> 4.30.0-20250323\nFirefox version -> 125.0.3\nShort Firefox version -> 125.0\nGeckoDriver version -> 0.36.0\nShort GeckoDriver version -> 0.36\nTagged selenium/node-firefox:125.0.3-geckodriver-0.36.0-grid-4.30.0-20250323\nTagged selenium/standalone-firefox:125.0.3-geckodriver-0.36.0-grid-4.30.0-20250323\nTagged selenium/node-firefox:125.0.3-geckodriver-0.36.0-20250323\nTagged selenium/standalone-firefox:125.0.3-geckodriver-0.36.0-20250323\nTagged selenium/node-firefox:125.0.3-20250323\nTagged selenium/standalone-firefox:125.0.3-20250323\nTagged selenium/node-firefox:125.0-geckodriver-0.36-grid-4.30.0-20250323\nTagged selenium/standalone-firefox:125.0-geckodriver-0.36-grid-4.30.0-20250323\nTagged selenium/node-firefox:125.0-geckodriver-0.36-20250323\nTagged selenium/standalone-firefox:125.0-geckodriver-0.36-20250323\nTagged selenium/node-firefox:125.0-20250323\nTagged selenium/standalone-firefox:125.0-20250323\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.30.0/firefox_126.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.30.0 20250323 selenium false firefox true\nTagging images for browser firefox, version 4.30.0, build date 20250323, namespace selenium\nSelenium Grid version -> 4.30.0-20250323\nFirefox version -> 126.0.1\nShort Firefox version -> 126.0\nGeckoDriver version -> 0.36.0\nShort GeckoDriver version -> 0.36\nTagged selenium/node-firefox:126.0.1-geckodriver-0.36.0-grid-4.30.0-20250323\nTagged selenium/standalone-firefox:126.0.1-geckodriver-0.36.0-grid-4.30.0-20250323\nTagged selenium/node-firefox:126.0.1-geckodriver-0.36.0-20250323\nTagged selenium/standalone-firefox:126.0.1-geckodriver-0.36.0-20250323\nTagged selenium/node-firefox:126.0.1-20250323\nTagged selenium/standalone-firefox:126.0.1-20250323\nTagged selenium/node-firefox:126.0-geckodriver-0.36-grid-4.30.0-20250323\nTagged selenium/standalone-firefox:126.0-geckodriver-0.36-grid-4.30.0-20250323\nTagged selenium/node-firefox:126.0-geckodriver-0.36-20250323\nTagged selenium/standalone-firefox:126.0-geckodriver-0.36-20250323\nTagged selenium/node-firefox:126.0-20250323\nTagged selenium/standalone-firefox:126.0-20250323\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.30.0/firefox_127.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.30.0 20250323 selenium false firefox true\nTagging images for browser firefox, version 4.30.0, build date 20250323, namespace selenium\nSelenium Grid version -> 4.30.0-20250323\nFirefox version -> 127.0.2\nShort Firefox version -> 127.0\nGeckoDriver version -> 0.36.0\nShort GeckoDriver version -> 0.36\nTagged selenium/node-firefox:127.0.2-geckodriver-0.36.0-grid-4.30.0-20250323\nTagged selenium/standalone-firefox:127.0.2-geckodriver-0.36.0-grid-4.30.0-20250323\nTagged selenium/node-firefox:127.0.2-geckodriver-0.36.0-20250323\nTagged selenium/standalone-firefox:127.0.2-geckodriver-0.36.0-20250323\nTagged selenium/node-firefox:127.0.2-20250323\nTagged selenium/standalone-firefox:127.0.2-20250323\nTagged selenium/node-firefox:127.0-geckodriver-0.36-grid-4.30.0-20250323\nTagged selenium/standalone-firefox:127.0-geckodriver-0.36-grid-4.30.0-20250323\nTagged selenium/node-firefox:127.0-geckodriver-0.36-20250323\nTagged selenium/standalone-firefox:127.0-geckodriver-0.36-20250323\nTagged selenium/node-firefox:127.0-20250323\nTagged selenium/standalone-firefox:127.0-20250323\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.30.0/firefox_128.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.30.0 20250323 selenium false firefox true\nTagging images for browser firefox, version 4.30.0, build date 20250323, namespace selenium\nSelenium Grid version -> 4.30.0-20250323\nFirefox version -> 128.0.3\nShort Firefox version -> 128.0\nGeckoDriver version -> 0.36.0\nShort GeckoDriver version -> 0.36\nTagged selenium/node-firefox:128.0.3-geckodriver-0.36.0-grid-4.30.0-20250323\nTagged selenium/standalone-firefox:128.0.3-geckodriver-0.36.0-grid-4.30.0-20250323\nTagged selenium/node-firefox:128.0.3-geckodriver-0.36.0-20250323\nTagged selenium/standalone-firefox:128.0.3-geckodriver-0.36.0-20250323\nTagged selenium/node-firefox:128.0.3-20250323\nTagged selenium/standalone-firefox:128.0.3-20250323\nTagged selenium/node-firefox:128.0-geckodriver-0.36-grid-4.30.0-20250323\nTagged selenium/standalone-firefox:128.0-geckodriver-0.36-grid-4.30.0-20250323\nTagged selenium/node-firefox:128.0-geckodriver-0.36-20250323\nTagged selenium/standalone-firefox:128.0-geckodriver-0.36-20250323\nTagged selenium/node-firefox:128.0-20250323\nTagged selenium/standalone-firefox:128.0-20250323\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.30.0/firefox_129.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.30.0 20250323 selenium false firefox true\nTagging images for browser firefox, version 4.30.0, build date 20250323, namespace selenium\nSelenium Grid version -> 4.30.0-20250323\nFirefox version -> 129.0.2\nShort Firefox version -> 129.0\nGeckoDriver version -> 0.36.0\nShort GeckoDriver version -> 0.36\nTagged selenium/node-firefox:129.0.2-geckodriver-0.36.0-grid-4.30.0-20250323\nTagged selenium/standalone-firefox:129.0.2-geckodriver-0.36.0-grid-4.30.0-20250323\nTagged selenium/node-firefox:129.0.2-geckodriver-0.36.0-20250323\nTagged selenium/standalone-firefox:129.0.2-geckodriver-0.36.0-20250323\nTagged selenium/node-firefox:129.0.2-20250323\nTagged selenium/standalone-firefox:129.0.2-20250323\nTagged selenium/node-firefox:129.0-geckodriver-0.36-grid-4.30.0-20250323\nTagged selenium/standalone-firefox:129.0-geckodriver-0.36-grid-4.30.0-20250323\nTagged selenium/node-firefox:129.0-geckodriver-0.36-20250323\nTagged selenium/standalone-firefox:129.0-geckodriver-0.36-20250323\nTagged selenium/node-firefox:129.0-20250323\nTagged selenium/standalone-firefox:129.0-20250323\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.30.0/firefox_130.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.30.0 20250323 selenium false firefox true\nTagging images for browser firefox, version 4.30.0, build date 20250323, namespace selenium\nSelenium Grid version -> 4.30.0-20250323\nFirefox version -> 130.0.1\nShort Firefox version -> 130.0\nGeckoDriver version -> 0.36.0\nShort GeckoDriver version -> 0.36\nTagged selenium/node-firefox:130.0.1-geckodriver-0.36.0-grid-4.30.0-20250323\nTagged selenium/standalone-firefox:130.0.1-geckodriver-0.36.0-grid-4.30.0-20250323\nTagged selenium/node-firefox:130.0.1-geckodriver-0.36.0-20250323\nTagged selenium/standalone-firefox:130.0.1-geckodriver-0.36.0-20250323\nTagged selenium/node-firefox:130.0.1-20250323\nTagged selenium/standalone-firefox:130.0.1-20250323\nTagged selenium/node-firefox:130.0-geckodriver-0.36-grid-4.30.0-20250323\nTagged selenium/standalone-firefox:130.0-geckodriver-0.36-grid-4.30.0-20250323\nTagged selenium/node-firefox:130.0-geckodriver-0.36-20250323\nTagged selenium/standalone-firefox:130.0-geckodriver-0.36-20250323\nTagged selenium/node-firefox:130.0-20250323\nTagged selenium/standalone-firefox:130.0-20250323\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.30.0/firefox_131.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.30.0 20250323 selenium false firefox true\nTagging images for browser firefox, version 4.30.0, build date 20250323, namespace selenium\nSelenium Grid version -> 4.30.0-20250323\nFirefox version -> 131.0.3\nShort Firefox version -> 131.0\nGeckoDriver version -> 0.36.0\nShort GeckoDriver version -> 0.36\nTagged selenium/node-firefox:131.0.3-geckodriver-0.36.0-grid-4.30.0-20250323\nTagged selenium/standalone-firefox:131.0.3-geckodriver-0.36.0-grid-4.30.0-20250323\nTagged selenium/node-firefox:131.0.3-geckodriver-0.36.0-20250323\nTagged selenium/standalone-firefox:131.0.3-geckodriver-0.36.0-20250323\nTagged selenium/node-firefox:131.0.3-20250323\nTagged selenium/standalone-firefox:131.0.3-20250323\nTagged selenium/node-firefox:131.0-geckodriver-0.36-grid-4.30.0-20250323\nTagged selenium/standalone-firefox:131.0-geckodriver-0.36-grid-4.30.0-20250323\nTagged selenium/node-firefox:131.0-geckodriver-0.36-20250323\nTagged selenium/standalone-firefox:131.0-geckodriver-0.36-20250323\nTagged selenium/node-firefox:131.0-20250323\nTagged selenium/standalone-firefox:131.0-20250323\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.30.0/firefox_132.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.30.0 20250323 selenium false firefox true\nTagging images for browser firefox, version 4.30.0, build date 20250323, namespace selenium\nSelenium Grid version -> 4.30.0-20250323\nFirefox version -> 132.0.2\nShort Firefox version -> 132.0\nGeckoDriver version -> 0.36.0\nShort GeckoDriver version -> 0.36\nTagged selenium/node-firefox:132.0.2-geckodriver-0.36.0-grid-4.30.0-20250323\nTagged selenium/standalone-firefox:132.0.2-geckodriver-0.36.0-grid-4.30.0-20250323\nTagged selenium/node-firefox:132.0.2-geckodriver-0.36.0-20250323\nTagged selenium/standalone-firefox:132.0.2-geckodriver-0.36.0-20250323\nTagged selenium/node-firefox:132.0.2-20250323\nTagged selenium/standalone-firefox:132.0.2-20250323\nTagged selenium/node-firefox:132.0-geckodriver-0.36-grid-4.30.0-20250323\nTagged selenium/standalone-firefox:132.0-geckodriver-0.36-grid-4.30.0-20250323\nTagged selenium/node-firefox:132.0-geckodriver-0.36-20250323\nTagged selenium/standalone-firefox:132.0-geckodriver-0.36-20250323\nTagged selenium/node-firefox:132.0-20250323\nTagged selenium/standalone-firefox:132.0-20250323\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.30.0/firefox_133.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.30.0 20250323 selenium false firefox true\nTagging images for browser firefox, version 4.30.0, build date 20250323, namespace selenium\nSelenium Grid version -> 4.30.0-20250323\nFirefox version -> 133.0.3\nShort Firefox version -> 133.0\nGeckoDriver version -> 0.36.0\nShort GeckoDriver version -> 0.36\nTagged selenium/node-firefox:133.0.3-geckodriver-0.36.0-grid-4.30.0-20250323\nTagged selenium/standalone-firefox:133.0.3-geckodriver-0.36.0-grid-4.30.0-20250323\nTagged selenium/node-firefox:133.0.3-geckodriver-0.36.0-20250323\nTagged selenium/standalone-firefox:133.0.3-geckodriver-0.36.0-20250323\nTagged selenium/node-firefox:133.0.3-20250323\nTagged selenium/standalone-firefox:133.0.3-20250323\nTagged selenium/node-firefox:133.0-geckodriver-0.36-grid-4.30.0-20250323\nTagged selenium/standalone-firefox:133.0-geckodriver-0.36-grid-4.30.0-20250323\nTagged selenium/node-firefox:133.0-geckodriver-0.36-20250323\nTagged selenium/standalone-firefox:133.0-geckodriver-0.36-20250323\nTagged selenium/node-firefox:133.0-20250323\nTagged selenium/standalone-firefox:133.0-20250323\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.30.0/firefox_134.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.30.0 20250323 selenium false firefox true\nTagging images for browser firefox, version 4.30.0, build date 20250323, namespace selenium\nSelenium Grid version -> 4.30.0-20250323\nFirefox version -> 134.0.2\nShort Firefox version -> 134.0\nGeckoDriver version -> 0.36.0\nShort GeckoDriver version -> 0.36\nTagged selenium/node-firefox:134.0.2-geckodriver-0.36.0-grid-4.30.0-20250323\nTagged selenium/standalone-firefox:134.0.2-geckodriver-0.36.0-grid-4.30.0-20250323\nTagged selenium/node-firefox:134.0.2-geckodriver-0.36.0-20250323\nTagged selenium/standalone-firefox:134.0.2-geckodriver-0.36.0-20250323\nTagged selenium/node-firefox:134.0.2-20250323\nTagged selenium/standalone-firefox:134.0.2-20250323\nTagged selenium/node-firefox:134.0-geckodriver-0.36-grid-4.30.0-20250323\nTagged selenium/standalone-firefox:134.0-geckodriver-0.36-grid-4.30.0-20250323\nTagged selenium/node-firefox:134.0-geckodriver-0.36-20250323\nTagged selenium/standalone-firefox:134.0-geckodriver-0.36-20250323\nTagged selenium/node-firefox:134.0-20250323\nTagged selenium/standalone-firefox:134.0-20250323\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.30.0/firefox_135.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.30.0 20250323 selenium false firefox true\nTagging images for browser firefox, version 4.30.0, build date 20250323, namespace selenium\nSelenium Grid version -> 4.30.0-20250323\nFirefox version -> 135.0.1\nShort Firefox version -> 135.0\nGeckoDriver version -> 0.36.0\nShort GeckoDriver version -> 0.36\nTagged selenium/node-firefox:135.0.1-geckodriver-0.36.0-grid-4.30.0-20250323\nTagged selenium/standalone-firefox:135.0.1-geckodriver-0.36.0-grid-4.30.0-20250323\nTagged selenium/node-firefox:135.0.1-geckodriver-0.36.0-20250323\nTagged selenium/standalone-firefox:135.0.1-geckodriver-0.36.0-20250323\nTagged selenium/node-firefox:135.0.1-20250323\nTagged selenium/standalone-firefox:135.0.1-20250323\nTagged selenium/node-firefox:135.0-geckodriver-0.36-grid-4.30.0-20250323\nTagged selenium/standalone-firefox:135.0-geckodriver-0.36-grid-4.30.0-20250323\nTagged selenium/node-firefox:135.0-geckodriver-0.36-20250323\nTagged selenium/standalone-firefox:135.0-geckodriver-0.36-20250323\nTagged selenium/node-firefox:135.0-20250323\nTagged selenium/standalone-firefox:135.0-20250323\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.30.0/firefox_136.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.30.0 20250323 selenium false firefox true\nTagging images for browser firefox, version 4.30.0, build date 20250323, namespace selenium\nSelenium Grid version -> 4.30.0-20250323\nFirefox version -> 136.0\nShort Firefox version -> 136.0\nGeckoDriver version -> 0.36.0\nShort GeckoDriver version -> 0.36\nTagged selenium/node-firefox:136.0-geckodriver-0.36.0-grid-4.30.0-20250323\nTagged selenium/standalone-firefox:136.0-geckodriver-0.36.0-grid-4.30.0-20250323\nTagged selenium/node-firefox:136.0-geckodriver-0.36.0-20250323\nTagged selenium/standalone-firefox:136.0-geckodriver-0.36.0-20250323\nTagged selenium/node-firefox:136.0-20250323\nTagged selenium/standalone-firefox:136.0-20250323\nTagged selenium/node-firefox:136.0-geckodriver-0.36-grid-4.30.0-20250323\nTagged selenium/standalone-firefox:136.0-geckodriver-0.36-grid-4.30.0-20250323\nTagged selenium/node-firefox:136.0-geckodriver-0.36-20250323\nTagged selenium/standalone-firefox:136.0-geckodriver-0.36-20250323\nTagged selenium/node-firefox:136.0-20250323\nTagged selenium/standalone-firefox:136.0-20250323\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.30.0/firefox_98.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.30.0 20250323 selenium false firefox true\nTagging images for browser firefox, version 4.30.0, build date 20250323, namespace selenium\nSelenium Grid version -> 4.30.0-20250323\nFirefox version -> 98.0.2\nShort Firefox version -> 98.0\nGeckoDriver version -> 0.36.0\nShort GeckoDriver version -> 0.36\nTagged selenium/node-firefox:98.0.2-geckodriver-0.36.0-grid-4.30.0-20250323\nTagged selenium/standalone-firefox:98.0.2-geckodriver-0.36.0-grid-4.30.0-20250323\nTagged selenium/node-firefox:98.0.2-geckodriver-0.36.0-20250323\nTagged selenium/standalone-firefox:98.0.2-geckodriver-0.36.0-20250323\nTagged selenium/node-firefox:98.0.2-20250323\nTagged selenium/standalone-firefox:98.0.2-20250323\nTagged selenium/node-firefox:98.0-geckodriver-0.36-grid-4.30.0-20250323\nTagged selenium/standalone-firefox:98.0-geckodriver-0.36-grid-4.30.0-20250323\nTagged selenium/node-firefox:98.0-geckodriver-0.36-20250323\nTagged selenium/standalone-firefox:98.0-geckodriver-0.36-20250323\nTagged selenium/node-firefox:98.0-20250323\nTagged selenium/standalone-firefox:98.0-20250323\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.30.0/firefox_99.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.30.0 20250323 selenium false firefox true\nTagging images for browser firefox, version 4.30.0, build date 20250323, namespace selenium\nSelenium Grid version -> 4.30.0-20250323\nFirefox version -> 99.0.1\nShort Firefox version -> 99.0\nGeckoDriver version -> 0.36.0\nShort GeckoDriver version -> 0.36\nTagged selenium/node-firefox:99.0.1-geckodriver-0.36.0-grid-4.30.0-20250323\nTagged selenium/standalone-firefox:99.0.1-geckodriver-0.36.0-grid-4.30.0-20250323\nTagged selenium/node-firefox:99.0.1-geckodriver-0.36.0-20250323\nTagged selenium/standalone-firefox:99.0.1-geckodriver-0.36.0-20250323\nTagged selenium/node-firefox:99.0.1-20250323\nTagged selenium/standalone-firefox:99.0.1-20250323\nTagged selenium/node-firefox:99.0-geckodriver-0.36-grid-4.30.0-20250323\nTagged selenium/standalone-firefox:99.0-geckodriver-0.36-grid-4.30.0-20250323\nTagged selenium/node-firefox:99.0-geckodriver-0.36-20250323\nTagged selenium/standalone-firefox:99.0-geckodriver-0.36-20250323\nTagged selenium/node-firefox:99.0-20250323\nTagged selenium/standalone-firefox:99.0-20250323\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.31.0/chrome_100.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.31.0 20250414 selenium false chrome true\nTagging images for browser chrome, version 4.31.0, build date 20250414, namespace selenium\nSelenium Grid version -> 4.31.0-20250414\nChrome version -> 100.0.4896.127\nShort Chrome version -> 100.0\nChromeDriver version -> 100.0.4896.60\nShort ChromeDriver version -> 100.0\nTagged selenium/node-chrome:100.0.4896.127-chromedriver-100.0.4896.60-grid-4.31.0-20250414\nTagged selenium/standalone-chrome:100.0.4896.127-chromedriver-100.0.4896.60-grid-4.31.0-20250414\nTagged selenium/node-chrome:100.0.4896.127-chromedriver-100.0.4896.60-20250414\nTagged selenium/standalone-chrome:100.0.4896.127-chromedriver-100.0.4896.60-20250414\nTagged selenium/node-chrome:100.0.4896.127-20250414\nTagged selenium/standalone-chrome:100.0.4896.127-20250414\nTagged selenium/node-chrome:100.0-chromedriver-100.0-grid-4.31.0-20250414\nTagged selenium/standalone-chrome:100.0-chromedriver-100.0-grid-4.31.0-20250414\nTagged selenium/node-chrome:100.0-chromedriver-100.0-20250414\nTagged selenium/standalone-chrome:100.0-chromedriver-100.0-20250414\nTagged selenium/node-chrome:100.0-20250414\nTagged selenium/standalone-chrome:100.0-20250414\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.31.0/chrome_101.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.31.0 20250414 selenium false chrome true\nTagging images for browser chrome, version 4.31.0, build date 20250414, namespace selenium\nSelenium Grid version -> 4.31.0-20250414\nChrome version -> 101.0.4951.64\nShort Chrome version -> 101.0\nChromeDriver version -> 101.0.4951.41\nShort ChromeDriver version -> 101.0\nTagged selenium/node-chrome:101.0.4951.64-chromedriver-101.0.4951.41-grid-4.31.0-20250414\nTagged selenium/standalone-chrome:101.0.4951.64-chromedriver-101.0.4951.41-grid-4.31.0-20250414\nTagged selenium/node-chrome:101.0.4951.64-chromedriver-101.0.4951.41-20250414\nTagged selenium/standalone-chrome:101.0.4951.64-chromedriver-101.0.4951.41-20250414\nTagged selenium/node-chrome:101.0.4951.64-20250414\nTagged selenium/standalone-chrome:101.0.4951.64-20250414\nTagged selenium/node-chrome:101.0-chromedriver-101.0-grid-4.31.0-20250414\nTagged selenium/standalone-chrome:101.0-chromedriver-101.0-grid-4.31.0-20250414\nTagged selenium/node-chrome:101.0-chromedriver-101.0-20250414\nTagged selenium/standalone-chrome:101.0-chromedriver-101.0-20250414\nTagged selenium/node-chrome:101.0-20250414\nTagged selenium/standalone-chrome:101.0-20250414\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.31.0/chrome_102.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.31.0 20250414 selenium false chrome true\nTagging images for browser chrome, version 4.31.0, build date 20250414, namespace selenium\nSelenium Grid version -> 4.31.0-20250414\nChrome version -> 102.0.5005.115\nShort Chrome version -> 102.0\nChromeDriver version -> 102.0.5005.61\nShort ChromeDriver version -> 102.0\nTagged selenium/node-chrome:102.0.5005.115-chromedriver-102.0.5005.61-grid-4.31.0-20250414\nTagged selenium/standalone-chrome:102.0.5005.115-chromedriver-102.0.5005.61-grid-4.31.0-20250414\nTagged selenium/node-chrome:102.0.5005.115-chromedriver-102.0.5005.61-20250414\nTagged selenium/standalone-chrome:102.0.5005.115-chromedriver-102.0.5005.61-20250414\nTagged selenium/node-chrome:102.0.5005.115-20250414\nTagged selenium/standalone-chrome:102.0.5005.115-20250414\nTagged selenium/node-chrome:102.0-chromedriver-102.0-grid-4.31.0-20250414\nTagged selenium/standalone-chrome:102.0-chromedriver-102.0-grid-4.31.0-20250414\nTagged selenium/node-chrome:102.0-chromedriver-102.0-20250414\nTagged selenium/standalone-chrome:102.0-chromedriver-102.0-20250414\nTagged selenium/node-chrome:102.0-20250414\nTagged selenium/standalone-chrome:102.0-20250414\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.31.0/chrome_103.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.31.0 20250414 selenium false chrome true\nTagging images for browser chrome, version 4.31.0, build date 20250414, namespace selenium\nSelenium Grid version -> 4.31.0-20250414\nChrome version -> 103.0.5060.134\nShort Chrome version -> 103.0\nChromeDriver version -> 103.0.5060.134\nShort ChromeDriver version -> 103.0\nTagged selenium/node-chrome:103.0.5060.134-chromedriver-103.0.5060.134-grid-4.31.0-20250414\nTagged selenium/standalone-chrome:103.0.5060.134-chromedriver-103.0.5060.134-grid-4.31.0-20250414\nTagged selenium/node-chrome:103.0.5060.134-chromedriver-103.0.5060.134-20250414\nTagged selenium/standalone-chrome:103.0.5060.134-chromedriver-103.0.5060.134-20250414\nTagged selenium/node-chrome:103.0.5060.134-20250414\nTagged selenium/standalone-chrome:103.0.5060.134-20250414\nTagged selenium/node-chrome:103.0-chromedriver-103.0-grid-4.31.0-20250414\nTagged selenium/standalone-chrome:103.0-chromedriver-103.0-grid-4.31.0-20250414\nTagged selenium/node-chrome:103.0-chromedriver-103.0-20250414\nTagged selenium/standalone-chrome:103.0-chromedriver-103.0-20250414\nTagged selenium/node-chrome:103.0-20250414\nTagged selenium/standalone-chrome:103.0-20250414\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.31.0/chrome_104.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.31.0 20250414 selenium false chrome true\nTagging images for browser chrome, version 4.31.0, build date 20250414, namespace selenium\nSelenium Grid version -> 4.31.0-20250414\nChrome version -> 104.0.5112.101\nShort Chrome version -> 104.0\nChromeDriver version -> 104.0.5112.79\nShort ChromeDriver version -> 104.0\nTagged selenium/node-chrome:104.0.5112.101-chromedriver-104.0.5112.79-grid-4.31.0-20250414\nTagged selenium/standalone-chrome:104.0.5112.101-chromedriver-104.0.5112.79-grid-4.31.0-20250414\nTagged selenium/node-chrome:104.0.5112.101-chromedriver-104.0.5112.79-20250414\nTagged selenium/standalone-chrome:104.0.5112.101-chromedriver-104.0.5112.79-20250414\nTagged selenium/node-chrome:104.0.5112.101-20250414\nTagged selenium/standalone-chrome:104.0.5112.101-20250414\nTagged selenium/node-chrome:104.0-chromedriver-104.0-grid-4.31.0-20250414\nTagged selenium/standalone-chrome:104.0-chromedriver-104.0-grid-4.31.0-20250414\nTagged selenium/node-chrome:104.0-chromedriver-104.0-20250414\nTagged selenium/standalone-chrome:104.0-chromedriver-104.0-20250414\nTagged selenium/node-chrome:104.0-20250414\nTagged selenium/standalone-chrome:104.0-20250414\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.31.0/chrome_105.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.31.0 20250414 selenium false chrome true\nTagging images for browser chrome, version 4.31.0, build date 20250414, namespace selenium\nSelenium Grid version -> 4.31.0-20250414\nChrome version -> 105.0.5195.125\nShort Chrome version -> 105.0\nChromeDriver version -> 105.0.5195.52\nShort ChromeDriver version -> 105.0\nTagged selenium/node-chrome:105.0.5195.125-chromedriver-105.0.5195.52-grid-4.31.0-20250414\nTagged selenium/standalone-chrome:105.0.5195.125-chromedriver-105.0.5195.52-grid-4.31.0-20250414\nTagged selenium/node-chrome:105.0.5195.125-chromedriver-105.0.5195.52-20250414\nTagged selenium/standalone-chrome:105.0.5195.125-chromedriver-105.0.5195.52-20250414\nTagged selenium/node-chrome:105.0.5195.125-20250414\nTagged selenium/standalone-chrome:105.0.5195.125-20250414\nTagged selenium/node-chrome:105.0-chromedriver-105.0-grid-4.31.0-20250414\nTagged selenium/standalone-chrome:105.0-chromedriver-105.0-grid-4.31.0-20250414\nTagged selenium/node-chrome:105.0-chromedriver-105.0-20250414\nTagged selenium/standalone-chrome:105.0-chromedriver-105.0-20250414\nTagged selenium/node-chrome:105.0-20250414\nTagged selenium/standalone-chrome:105.0-20250414\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.31.0/chrome_106.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.31.0 20250414 selenium false chrome true\nTagging images for browser chrome, version 4.31.0, build date 20250414, namespace selenium\nSelenium Grid version -> 4.31.0-20250414\nChrome version -> 106.0.5249.119\nShort Chrome version -> 106.0\nChromeDriver version -> 106.0.5249.61\nShort ChromeDriver version -> 106.0\nTagged selenium/node-chrome:106.0.5249.119-chromedriver-106.0.5249.61-grid-4.31.0-20250414\nTagged selenium/standalone-chrome:106.0.5249.119-chromedriver-106.0.5249.61-grid-4.31.0-20250414\nTagged selenium/node-chrome:106.0.5249.119-chromedriver-106.0.5249.61-20250414\nTagged selenium/standalone-chrome:106.0.5249.119-chromedriver-106.0.5249.61-20250414\nTagged selenium/node-chrome:106.0.5249.119-20250414\nTagged selenium/standalone-chrome:106.0.5249.119-20250414\nTagged selenium/node-chrome:106.0-chromedriver-106.0-grid-4.31.0-20250414\nTagged selenium/standalone-chrome:106.0-chromedriver-106.0-grid-4.31.0-20250414\nTagged selenium/node-chrome:106.0-chromedriver-106.0-20250414\nTagged selenium/standalone-chrome:106.0-chromedriver-106.0-20250414\nTagged selenium/node-chrome:106.0-20250414\nTagged selenium/standalone-chrome:106.0-20250414\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.31.0/chrome_107.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.31.0 20250414 selenium false chrome true\nTagging images for browser chrome, version 4.31.0, build date 20250414, namespace selenium\nSelenium Grid version -> 4.31.0-20250414\nChrome version -> 107.0.5304.121\nShort Chrome version -> 107.0\nChromeDriver version -> 107.0.5304.62\nShort ChromeDriver version -> 107.0\nTagged selenium/node-chrome:107.0.5304.121-chromedriver-107.0.5304.62-grid-4.31.0-20250414\nTagged selenium/standalone-chrome:107.0.5304.121-chromedriver-107.0.5304.62-grid-4.31.0-20250414\nTagged selenium/node-chrome:107.0.5304.121-chromedriver-107.0.5304.62-20250414\nTagged selenium/standalone-chrome:107.0.5304.121-chromedriver-107.0.5304.62-20250414\nTagged selenium/node-chrome:107.0.5304.121-20250414\nTagged selenium/standalone-chrome:107.0.5304.121-20250414\nTagged selenium/node-chrome:107.0-chromedriver-107.0-grid-4.31.0-20250414\nTagged selenium/standalone-chrome:107.0-chromedriver-107.0-grid-4.31.0-20250414\nTagged selenium/node-chrome:107.0-chromedriver-107.0-20250414\nTagged selenium/standalone-chrome:107.0-chromedriver-107.0-20250414\nTagged selenium/node-chrome:107.0-20250414\nTagged selenium/standalone-chrome:107.0-20250414\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.31.0/chrome_108.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.31.0 20250414 selenium false chrome true\nTagging images for browser chrome, version 4.31.0, build date 20250414, namespace selenium\nSelenium Grid version -> 4.31.0-20250414\nChrome version -> 108.0.5359.124\nShort Chrome version -> 108.0\nChromeDriver version -> 108.0.5359.71\nShort ChromeDriver version -> 108.0\nTagged selenium/node-chrome:108.0.5359.124-chromedriver-108.0.5359.71-grid-4.31.0-20250414\nTagged selenium/standalone-chrome:108.0.5359.124-chromedriver-108.0.5359.71-grid-4.31.0-20250414\nTagged selenium/node-chrome:108.0.5359.124-chromedriver-108.0.5359.71-20250414\nTagged selenium/standalone-chrome:108.0.5359.124-chromedriver-108.0.5359.71-20250414\nTagged selenium/node-chrome:108.0.5359.124-20250414\nTagged selenium/standalone-chrome:108.0.5359.124-20250414\nTagged selenium/node-chrome:108.0-chromedriver-108.0-grid-4.31.0-20250414\nTagged selenium/standalone-chrome:108.0-chromedriver-108.0-grid-4.31.0-20250414\nTagged selenium/node-chrome:108.0-chromedriver-108.0-20250414\nTagged selenium/standalone-chrome:108.0-chromedriver-108.0-20250414\nTagged selenium/node-chrome:108.0-20250414\nTagged selenium/standalone-chrome:108.0-20250414\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.31.0/chrome_109.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.31.0 20250414 selenium false chrome true\nTagging images for browser chrome, version 4.31.0, build date 20250414, namespace selenium\nSelenium Grid version -> 4.31.0-20250414\nChrome version -> 109.0.5414.119\nShort Chrome version -> 109.0\nChromeDriver version -> 109.0.5414.74\nShort ChromeDriver version -> 109.0\nTagged selenium/node-chrome:109.0.5414.119-chromedriver-109.0.5414.74-grid-4.31.0-20250414\nTagged selenium/standalone-chrome:109.0.5414.119-chromedriver-109.0.5414.74-grid-4.31.0-20250414\nTagged selenium/node-chrome:109.0.5414.119-chromedriver-109.0.5414.74-20250414\nTagged selenium/standalone-chrome:109.0.5414.119-chromedriver-109.0.5414.74-20250414\nTagged selenium/node-chrome:109.0.5414.119-20250414\nTagged selenium/standalone-chrome:109.0.5414.119-20250414\nTagged selenium/node-chrome:109.0-chromedriver-109.0-grid-4.31.0-20250414\nTagged selenium/standalone-chrome:109.0-chromedriver-109.0-grid-4.31.0-20250414\nTagged selenium/node-chrome:109.0-chromedriver-109.0-20250414\nTagged selenium/standalone-chrome:109.0-chromedriver-109.0-20250414\nTagged selenium/node-chrome:109.0-20250414\nTagged selenium/standalone-chrome:109.0-20250414\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.31.0/chrome_110.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.31.0 20250414 selenium false chrome true\nTagging images for browser chrome, version 4.31.0, build date 20250414, namespace selenium\nSelenium Grid version -> 4.31.0-20250414\nChrome version -> 110.0.5481.177\nShort Chrome version -> 110.0\nChromeDriver version -> 110.0.5481.77\nShort ChromeDriver version -> 110.0\nTagged selenium/node-chrome:110.0.5481.177-chromedriver-110.0.5481.77-grid-4.31.0-20250414\nTagged selenium/standalone-chrome:110.0.5481.177-chromedriver-110.0.5481.77-grid-4.31.0-20250414\nTagged selenium/node-chrome:110.0.5481.177-chromedriver-110.0.5481.77-20250414\nTagged selenium/standalone-chrome:110.0.5481.177-chromedriver-110.0.5481.77-20250414\nTagged selenium/node-chrome:110.0.5481.177-20250414\nTagged selenium/standalone-chrome:110.0.5481.177-20250414\nTagged selenium/node-chrome:110.0-chromedriver-110.0-grid-4.31.0-20250414\nTagged selenium/standalone-chrome:110.0-chromedriver-110.0-grid-4.31.0-20250414\nTagged selenium/node-chrome:110.0-chromedriver-110.0-20250414\nTagged selenium/standalone-chrome:110.0-chromedriver-110.0-20250414\nTagged selenium/node-chrome:110.0-20250414\nTagged selenium/standalone-chrome:110.0-20250414\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.31.0/chrome_111.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.31.0 20250414 selenium false chrome true\nTagging images for browser chrome, version 4.31.0, build date 20250414, namespace selenium\nSelenium Grid version -> 4.31.0-20250414\nChrome version -> 111.0.5563.146\nShort Chrome version -> 111.0\nChromeDriver version -> 111.0.5563.64\nShort ChromeDriver version -> 111.0\nTagged selenium/node-chrome:111.0.5563.146-chromedriver-111.0.5563.64-grid-4.31.0-20250414\nTagged selenium/standalone-chrome:111.0.5563.146-chromedriver-111.0.5563.64-grid-4.31.0-20250414\nTagged selenium/node-chrome:111.0.5563.146-chromedriver-111.0.5563.64-20250414\nTagged selenium/standalone-chrome:111.0.5563.146-chromedriver-111.0.5563.64-20250414\nTagged selenium/node-chrome:111.0.5563.146-20250414\nTagged selenium/standalone-chrome:111.0.5563.146-20250414\nTagged selenium/node-chrome:111.0-chromedriver-111.0-grid-4.31.0-20250414\nTagged selenium/standalone-chrome:111.0-chromedriver-111.0-grid-4.31.0-20250414\nTagged selenium/node-chrome:111.0-chromedriver-111.0-20250414\nTagged selenium/standalone-chrome:111.0-chromedriver-111.0-20250414\nTagged selenium/node-chrome:111.0-20250414\nTagged selenium/standalone-chrome:111.0-20250414\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.31.0/chrome_112.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.31.0 20250414 selenium false chrome true\nTagging images for browser chrome, version 4.31.0, build date 20250414, namespace selenium\nSelenium Grid version -> 4.31.0-20250414\nChrome version -> 112.0.5615.165\nShort Chrome version -> 112.0\nChromeDriver version -> 112.0.5615.49\nShort ChromeDriver version -> 112.0\nTagged selenium/node-chrome:112.0.5615.165-chromedriver-112.0.5615.49-grid-4.31.0-20250414\nTagged selenium/standalone-chrome:112.0.5615.165-chromedriver-112.0.5615.49-grid-4.31.0-20250414\nTagged selenium/node-chrome:112.0.5615.165-chromedriver-112.0.5615.49-20250414\nTagged selenium/standalone-chrome:112.0.5615.165-chromedriver-112.0.5615.49-20250414\nTagged selenium/node-chrome:112.0.5615.165-20250414\nTagged selenium/standalone-chrome:112.0.5615.165-20250414\nTagged selenium/node-chrome:112.0-chromedriver-112.0-grid-4.31.0-20250414\nTagged selenium/standalone-chrome:112.0-chromedriver-112.0-grid-4.31.0-20250414\nTagged selenium/node-chrome:112.0-chromedriver-112.0-20250414\nTagged selenium/standalone-chrome:112.0-chromedriver-112.0-20250414\nTagged selenium/node-chrome:112.0-20250414\nTagged selenium/standalone-chrome:112.0-20250414\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.31.0/chrome_113.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.31.0 20250414 selenium false chrome true\nTagging images for browser chrome, version 4.31.0, build date 20250414, namespace selenium\nSelenium Grid version -> 4.31.0-20250414\nChrome version -> 113.0.5672.126\nShort Chrome version -> 113.0\nChromeDriver version -> 113.0.5672.63\nShort ChromeDriver version -> 113.0\nTagged selenium/node-chrome:113.0.5672.126-chromedriver-113.0.5672.63-grid-4.31.0-20250414\nTagged selenium/standalone-chrome:113.0.5672.126-chromedriver-113.0.5672.63-grid-4.31.0-20250414\nTagged selenium/node-chrome:113.0.5672.126-chromedriver-113.0.5672.63-20250414\nTagged selenium/standalone-chrome:113.0.5672.126-chromedriver-113.0.5672.63-20250414\nTagged selenium/node-chrome:113.0.5672.126-20250414\nTagged selenium/standalone-chrome:113.0.5672.126-20250414\nTagged selenium/node-chrome:113.0-chromedriver-113.0-grid-4.31.0-20250414\nTagged selenium/standalone-chrome:113.0-chromedriver-113.0-grid-4.31.0-20250414\nTagged selenium/node-chrome:113.0-chromedriver-113.0-20250414\nTagged selenium/standalone-chrome:113.0-chromedriver-113.0-20250414\nTagged selenium/node-chrome:113.0-20250414\nTagged selenium/standalone-chrome:113.0-20250414\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.31.0/chrome_114.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.31.0 20250414 selenium false chrome true\nTagging images for browser chrome, version 4.31.0, build date 20250414, namespace selenium\nSelenium Grid version -> 4.31.0-20250414\nChrome version -> 114.0.5735.198\nShort Chrome version -> 114.0\nChromeDriver version -> 114.0.5735.90\nShort ChromeDriver version -> 114.0\nTagged selenium/node-chrome:114.0.5735.198-chromedriver-114.0.5735.90-grid-4.31.0-20250414\nTagged selenium/standalone-chrome:114.0.5735.198-chromedriver-114.0.5735.90-grid-4.31.0-20250414\nTagged selenium/node-chrome:114.0.5735.198-chromedriver-114.0.5735.90-20250414\nTagged selenium/standalone-chrome:114.0.5735.198-chromedriver-114.0.5735.90-20250414\nTagged selenium/node-chrome:114.0.5735.198-20250414\nTagged selenium/standalone-chrome:114.0.5735.198-20250414\nTagged selenium/node-chrome:114.0-chromedriver-114.0-grid-4.31.0-20250414\nTagged selenium/standalone-chrome:114.0-chromedriver-114.0-grid-4.31.0-20250414\nTagged selenium/node-chrome:114.0-chromedriver-114.0-20250414\nTagged selenium/standalone-chrome:114.0-chromedriver-114.0-20250414\nTagged selenium/node-chrome:114.0-20250414\nTagged selenium/standalone-chrome:114.0-20250414\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.31.0/chrome_115.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.31.0 20250414 selenium false chrome true\nTagging images for browser chrome, version 4.31.0, build date 20250414, namespace selenium\nSelenium Grid version -> 4.31.0-20250414\nChrome version -> 115.0.5790.170\nShort Chrome version -> 115.0\nChromeDriver version -> 115.0.5790.170\nShort ChromeDriver version -> 115.0\nTagged selenium/node-chrome:115.0.5790.170-chromedriver-115.0.5790.170-grid-4.31.0-20250414\nTagged selenium/standalone-chrome:115.0.5790.170-chromedriver-115.0.5790.170-grid-4.31.0-20250414\nTagged selenium/node-chrome:115.0.5790.170-chromedriver-115.0.5790.170-20250414\nTagged selenium/standalone-chrome:115.0.5790.170-chromedriver-115.0.5790.170-20250414\nTagged selenium/node-chrome:115.0.5790.170-20250414\nTagged selenium/standalone-chrome:115.0.5790.170-20250414\nTagged selenium/node-chrome:115.0-chromedriver-115.0-grid-4.31.0-20250414\nTagged selenium/standalone-chrome:115.0-chromedriver-115.0-grid-4.31.0-20250414\nTagged selenium/node-chrome:115.0-chromedriver-115.0-20250414\nTagged selenium/standalone-chrome:115.0-chromedriver-115.0-20250414\nTagged selenium/node-chrome:115.0-20250414\nTagged selenium/standalone-chrome:115.0-20250414\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.31.0/chrome_116.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.31.0 20250414 selenium false chrome true\nTagging images for browser chrome, version 4.31.0, build date 20250414, namespace selenium\nSelenium Grid version -> 4.31.0-20250414\nChrome version -> 116.0.5845.187\nShort Chrome version -> 116.0\nChromeDriver version -> 116.0.5845.96\nShort ChromeDriver version -> 116.0\nTagged selenium/node-chrome:116.0.5845.187-chromedriver-116.0.5845.96-grid-4.31.0-20250414\nTagged selenium/standalone-chrome:116.0.5845.187-chromedriver-116.0.5845.96-grid-4.31.0-20250414\nTagged selenium/node-chrome:116.0.5845.187-chromedriver-116.0.5845.96-20250414\nTagged selenium/standalone-chrome:116.0.5845.187-chromedriver-116.0.5845.96-20250414\nTagged selenium/node-chrome:116.0.5845.187-20250414\nTagged selenium/standalone-chrome:116.0.5845.187-20250414\nTagged selenium/node-chrome:116.0-chromedriver-116.0-grid-4.31.0-20250414\nTagged selenium/standalone-chrome:116.0-chromedriver-116.0-grid-4.31.0-20250414\nTagged selenium/node-chrome:116.0-chromedriver-116.0-20250414\nTagged selenium/standalone-chrome:116.0-chromedriver-116.0-20250414\nTagged selenium/node-chrome:116.0-20250414\nTagged selenium/standalone-chrome:116.0-20250414\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.31.0/chrome_117.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.31.0 20250414 selenium false chrome true\nTagging images for browser chrome, version 4.31.0, build date 20250414, namespace selenium\nSelenium Grid version -> 4.31.0-20250414\nChrome version -> 117.0.5938.149\nShort Chrome version -> 117.0\nChromeDriver version -> 117.0.5938.149\nShort ChromeDriver version -> 117.0\nTagged selenium/node-chrome:117.0.5938.149-chromedriver-117.0.5938.149-grid-4.31.0-20250414\nTagged selenium/standalone-chrome:117.0.5938.149-chromedriver-117.0.5938.149-grid-4.31.0-20250414\nTagged selenium/node-chrome:117.0.5938.149-chromedriver-117.0.5938.149-20250414\nTagged selenium/standalone-chrome:117.0.5938.149-chromedriver-117.0.5938.149-20250414\nTagged selenium/node-chrome:117.0.5938.149-20250414\nTagged selenium/standalone-chrome:117.0.5938.149-20250414\nTagged selenium/node-chrome:117.0-chromedriver-117.0-grid-4.31.0-20250414\nTagged selenium/standalone-chrome:117.0-chromedriver-117.0-grid-4.31.0-20250414\nTagged selenium/node-chrome:117.0-chromedriver-117.0-20250414\nTagged selenium/standalone-chrome:117.0-chromedriver-117.0-20250414\nTagged selenium/node-chrome:117.0-20250414\nTagged selenium/standalone-chrome:117.0-20250414\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.31.0/chrome_118.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.31.0 20250414 selenium false chrome true\nTagging images for browser chrome, version 4.31.0, build date 20250414, namespace selenium\nSelenium Grid version -> 4.31.0-20250414\nChrome version -> 118.0.5993.117\nShort Chrome version -> 118.0\nChromeDriver version -> 118.0.5993.70\nShort ChromeDriver version -> 118.0\nTagged selenium/node-chrome:118.0.5993.117-chromedriver-118.0.5993.70-grid-4.31.0-20250414\nTagged selenium/standalone-chrome:118.0.5993.117-chromedriver-118.0.5993.70-grid-4.31.0-20250414\nTagged selenium/node-chrome:118.0.5993.117-chromedriver-118.0.5993.70-20250414\nTagged selenium/standalone-chrome:118.0.5993.117-chromedriver-118.0.5993.70-20250414\nTagged selenium/node-chrome:118.0.5993.117-20250414\nTagged selenium/standalone-chrome:118.0.5993.117-20250414\nTagged selenium/node-chrome:118.0-chromedriver-118.0-grid-4.31.0-20250414\nTagged selenium/standalone-chrome:118.0-chromedriver-118.0-grid-4.31.0-20250414\nTagged selenium/node-chrome:118.0-chromedriver-118.0-20250414\nTagged selenium/standalone-chrome:118.0-chromedriver-118.0-20250414\nTagged selenium/node-chrome:118.0-20250414\nTagged selenium/standalone-chrome:118.0-20250414\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.31.0/chrome_119.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.31.0 20250414 selenium false chrome true\nTagging images for browser chrome, version 4.31.0, build date 20250414, namespace selenium\nSelenium Grid version -> 4.31.0-20250414\nChrome version -> 119.0.6045.199\nShort Chrome version -> 119.0\nChromeDriver version -> 119.0.6045.105\nShort ChromeDriver version -> 119.0\nTagged selenium/node-chrome:119.0.6045.199-chromedriver-119.0.6045.105-grid-4.31.0-20250414\nTagged selenium/standalone-chrome:119.0.6045.199-chromedriver-119.0.6045.105-grid-4.31.0-20250414\nTagged selenium/node-chrome:119.0.6045.199-chromedriver-119.0.6045.105-20250414\nTagged selenium/standalone-chrome:119.0.6045.199-chromedriver-119.0.6045.105-20250414\nTagged selenium/node-chrome:119.0.6045.199-20250414\nTagged selenium/standalone-chrome:119.0.6045.199-20250414\nTagged selenium/node-chrome:119.0-chromedriver-119.0-grid-4.31.0-20250414\nTagged selenium/standalone-chrome:119.0-chromedriver-119.0-grid-4.31.0-20250414\nTagged selenium/node-chrome:119.0-chromedriver-119.0-20250414\nTagged selenium/standalone-chrome:119.0-chromedriver-119.0-20250414\nTagged selenium/node-chrome:119.0-20250414\nTagged selenium/standalone-chrome:119.0-20250414\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.31.0/chrome_120.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.31.0 20250414 selenium false chrome true\nTagging images for browser chrome, version 4.31.0, build date 20250414, namespace selenium\nSelenium Grid version -> 4.31.0-20250414\nChrome version -> 120.0.6099.224\nShort Chrome version -> 120.0\nChromeDriver version -> 120.0.6099.109\nShort ChromeDriver version -> 120.0\nTagged selenium/node-chrome:120.0.6099.224-chromedriver-120.0.6099.109-grid-4.31.0-20250414\nTagged selenium/standalone-chrome:120.0.6099.224-chromedriver-120.0.6099.109-grid-4.31.0-20250414\nTagged selenium/node-chrome:120.0.6099.224-chromedriver-120.0.6099.109-20250414\nTagged selenium/standalone-chrome:120.0.6099.224-chromedriver-120.0.6099.109-20250414\nTagged selenium/node-chrome:120.0.6099.224-20250414\nTagged selenium/standalone-chrome:120.0.6099.224-20250414\nTagged selenium/node-chrome:120.0-chromedriver-120.0-grid-4.31.0-20250414\nTagged selenium/standalone-chrome:120.0-chromedriver-120.0-grid-4.31.0-20250414\nTagged selenium/node-chrome:120.0-chromedriver-120.0-20250414\nTagged selenium/standalone-chrome:120.0-chromedriver-120.0-20250414\nTagged selenium/node-chrome:120.0-20250414\nTagged selenium/standalone-chrome:120.0-20250414\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.31.0/chrome_121.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.31.0 20250414 selenium false chrome true\nTagging images for browser chrome, version 4.31.0, build date 20250414, namespace selenium\nSelenium Grid version -> 4.31.0-20250414\nChrome version -> 121.0.6167.184\nShort Chrome version -> 121.0\nChromeDriver version -> 121.0.6167.184\nShort ChromeDriver version -> 121.0\nTagged selenium/node-chrome:121.0.6167.184-chromedriver-121.0.6167.184-grid-4.31.0-20250414\nTagged selenium/standalone-chrome:121.0.6167.184-chromedriver-121.0.6167.184-grid-4.31.0-20250414\nTagged selenium/node-chrome:121.0.6167.184-chromedriver-121.0.6167.184-20250414\nTagged selenium/standalone-chrome:121.0.6167.184-chromedriver-121.0.6167.184-20250414\nTagged selenium/node-chrome:121.0.6167.184-20250414\nTagged selenium/standalone-chrome:121.0.6167.184-20250414\nTagged selenium/node-chrome:121.0-chromedriver-121.0-grid-4.31.0-20250414\nTagged selenium/standalone-chrome:121.0-chromedriver-121.0-grid-4.31.0-20250414\nTagged selenium/node-chrome:121.0-chromedriver-121.0-20250414\nTagged selenium/standalone-chrome:121.0-chromedriver-121.0-20250414\nTagged selenium/node-chrome:121.0-20250414\nTagged selenium/standalone-chrome:121.0-20250414\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.31.0/chrome_122.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.31.0 20250414 selenium false chrome true\nTagging images for browser chrome, version 4.31.0, build date 20250414, namespace selenium\nSelenium Grid version -> 4.31.0-20250414\nChrome version -> 122.0.6261.128\nShort Chrome version -> 122.0\nChromeDriver version -> 122.0.6261.128\nShort ChromeDriver version -> 122.0\nTagged selenium/node-chrome:122.0.6261.128-chromedriver-122.0.6261.128-grid-4.31.0-20250414\nTagged selenium/standalone-chrome:122.0.6261.128-chromedriver-122.0.6261.128-grid-4.31.0-20250414\nTagged selenium/node-chrome:122.0.6261.128-chromedriver-122.0.6261.128-20250414\nTagged selenium/standalone-chrome:122.0.6261.128-chromedriver-122.0.6261.128-20250414\nTagged selenium/node-chrome:122.0.6261.128-20250414\nTagged selenium/standalone-chrome:122.0.6261.128-20250414\nTagged selenium/node-chrome:122.0-chromedriver-122.0-grid-4.31.0-20250414\nTagged selenium/standalone-chrome:122.0-chromedriver-122.0-grid-4.31.0-20250414\nTagged selenium/node-chrome:122.0-chromedriver-122.0-20250414\nTagged selenium/standalone-chrome:122.0-chromedriver-122.0-20250414\nTagged selenium/node-chrome:122.0-20250414\nTagged selenium/standalone-chrome:122.0-20250414\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.31.0/chrome_123.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.31.0 20250414 selenium false chrome true\nTagging images for browser chrome, version 4.31.0, build date 20250414, namespace selenium\nSelenium Grid version -> 4.31.0-20250414\nChrome version -> 123.0.6312.122\nShort Chrome version -> 123.0\nChromeDriver version -> 123.0.6312.122\nShort ChromeDriver version -> 123.0\nTagged selenium/node-chrome:123.0.6312.122-chromedriver-123.0.6312.122-grid-4.31.0-20250414\nTagged selenium/standalone-chrome:123.0.6312.122-chromedriver-123.0.6312.122-grid-4.31.0-20250414\nTagged selenium/node-chrome:123.0.6312.122-chromedriver-123.0.6312.122-20250414\nTagged selenium/standalone-chrome:123.0.6312.122-chromedriver-123.0.6312.122-20250414\nTagged selenium/node-chrome:123.0.6312.122-20250414\nTagged selenium/standalone-chrome:123.0.6312.122-20250414\nTagged selenium/node-chrome:123.0-chromedriver-123.0-grid-4.31.0-20250414\nTagged selenium/standalone-chrome:123.0-chromedriver-123.0-grid-4.31.0-20250414\nTagged selenium/node-chrome:123.0-chromedriver-123.0-20250414\nTagged selenium/standalone-chrome:123.0-chromedriver-123.0-20250414\nTagged selenium/node-chrome:123.0-20250414\nTagged selenium/standalone-chrome:123.0-20250414\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.31.0/chrome_124.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.31.0 20250414 selenium false chrome true\nTagging images for browser chrome, version 4.31.0, build date 20250414, namespace selenium\nSelenium Grid version -> 4.31.0-20250414\nChrome version -> 124.0.6367.207\nShort Chrome version -> 124.0\nChromeDriver version -> 124.0.6367.207\nShort ChromeDriver version -> 124.0\nTagged selenium/node-chrome:124.0.6367.207-chromedriver-124.0.6367.207-grid-4.31.0-20250414\nTagged selenium/standalone-chrome:124.0.6367.207-chromedriver-124.0.6367.207-grid-4.31.0-20250414\nTagged selenium/node-chrome:124.0.6367.207-chromedriver-124.0.6367.207-20250414\nTagged selenium/standalone-chrome:124.0.6367.207-chromedriver-124.0.6367.207-20250414\nTagged selenium/node-chrome:124.0.6367.207-20250414\nTagged selenium/standalone-chrome:124.0.6367.207-20250414\nTagged selenium/node-chrome:124.0-chromedriver-124.0-grid-4.31.0-20250414\nTagged selenium/standalone-chrome:124.0-chromedriver-124.0-grid-4.31.0-20250414\nTagged selenium/node-chrome:124.0-chromedriver-124.0-20250414\nTagged selenium/standalone-chrome:124.0-chromedriver-124.0-20250414\nTagged selenium/node-chrome:124.0-20250414\nTagged selenium/standalone-chrome:124.0-20250414\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.31.0/chrome_125.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.31.0 20250414 selenium false chrome true\nTagging images for browser chrome, version 4.31.0, build date 20250414, namespace selenium\nSelenium Grid version -> 4.31.0-20250414\nChrome version -> 125.0.6422.141\nShort Chrome version -> 125.0\nChromeDriver version -> 125.0.6422.141\nShort ChromeDriver version -> 125.0\nTagged selenium/node-chrome:125.0.6422.141-chromedriver-125.0.6422.141-grid-4.31.0-20250414\nTagged selenium/standalone-chrome:125.0.6422.141-chromedriver-125.0.6422.141-grid-4.31.0-20250414\nTagged selenium/node-chrome:125.0.6422.141-chromedriver-125.0.6422.141-20250414\nTagged selenium/standalone-chrome:125.0.6422.141-chromedriver-125.0.6422.141-20250414\nTagged selenium/node-chrome:125.0.6422.141-20250414\nTagged selenium/standalone-chrome:125.0.6422.141-20250414\nTagged selenium/node-chrome:125.0-chromedriver-125.0-grid-4.31.0-20250414\nTagged selenium/standalone-chrome:125.0-chromedriver-125.0-grid-4.31.0-20250414\nTagged selenium/node-chrome:125.0-chromedriver-125.0-20250414\nTagged selenium/standalone-chrome:125.0-chromedriver-125.0-20250414\nTagged selenium/node-chrome:125.0-20250414\nTagged selenium/standalone-chrome:125.0-20250414\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.31.0/chrome_126.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.31.0 20250414 selenium false chrome true\nTagging images for browser chrome, version 4.31.0, build date 20250414, namespace selenium\nSelenium Grid version -> 4.31.0-20250414\nChrome version -> 126.0.6478.182\nShort Chrome version -> 126.0\nChromeDriver version -> 126.0.6478.182\nShort ChromeDriver version -> 126.0\nTagged selenium/node-chrome:126.0.6478.182-chromedriver-126.0.6478.182-grid-4.31.0-20250414\nTagged selenium/standalone-chrome:126.0.6478.182-chromedriver-126.0.6478.182-grid-4.31.0-20250414\nTagged selenium/node-chrome:126.0.6478.182-chromedriver-126.0.6478.182-20250414\nTagged selenium/standalone-chrome:126.0.6478.182-chromedriver-126.0.6478.182-20250414\nTagged selenium/node-chrome:126.0.6478.182-20250414\nTagged selenium/standalone-chrome:126.0.6478.182-20250414\nTagged selenium/node-chrome:126.0-chromedriver-126.0-grid-4.31.0-20250414\nTagged selenium/standalone-chrome:126.0-chromedriver-126.0-grid-4.31.0-20250414\nTagged selenium/node-chrome:126.0-chromedriver-126.0-20250414\nTagged selenium/standalone-chrome:126.0-chromedriver-126.0-20250414\nTagged selenium/node-chrome:126.0-20250414\nTagged selenium/standalone-chrome:126.0-20250414\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.31.0/chrome_127.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.31.0 20250414 selenium false chrome true\nTagging images for browser chrome, version 4.31.0, build date 20250414, namespace selenium\nSelenium Grid version -> 4.31.0-20250414\nChrome version -> 127.0.6533.119\nShort Chrome version -> 127.0\nChromeDriver version -> 127.0.6533.119\nShort ChromeDriver version -> 127.0\nTagged selenium/node-chrome:127.0.6533.119-chromedriver-127.0.6533.119-grid-4.31.0-20250414\nTagged selenium/standalone-chrome:127.0.6533.119-chromedriver-127.0.6533.119-grid-4.31.0-20250414\nTagged selenium/node-chrome:127.0.6533.119-chromedriver-127.0.6533.119-20250414\nTagged selenium/standalone-chrome:127.0.6533.119-chromedriver-127.0.6533.119-20250414\nTagged selenium/node-chrome:127.0.6533.119-20250414\nTagged selenium/standalone-chrome:127.0.6533.119-20250414\nTagged selenium/node-chrome:127.0-chromedriver-127.0-grid-4.31.0-20250414\nTagged selenium/standalone-chrome:127.0-chromedriver-127.0-grid-4.31.0-20250414\nTagged selenium/node-chrome:127.0-chromedriver-127.0-20250414\nTagged selenium/standalone-chrome:127.0-chromedriver-127.0-20250414\nTagged selenium/node-chrome:127.0-20250414\nTagged selenium/standalone-chrome:127.0-20250414\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.31.0/chrome_128.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.31.0 20250414 selenium false chrome true\nTagging images for browser chrome, version 4.31.0, build date 20250414, namespace selenium\nSelenium Grid version -> 4.31.0-20250414\nChrome version -> 128.0.6613.137\nShort Chrome version -> 128.0\nChromeDriver version -> 128.0.6613.137\nShort ChromeDriver version -> 128.0\nTagged selenium/node-chrome:128.0.6613.137-chromedriver-128.0.6613.137-grid-4.31.0-20250414\nTagged selenium/standalone-chrome:128.0.6613.137-chromedriver-128.0.6613.137-grid-4.31.0-20250414\nTagged selenium/node-chrome:128.0.6613.137-chromedriver-128.0.6613.137-20250414\nTagged selenium/standalone-chrome:128.0.6613.137-chromedriver-128.0.6613.137-20250414\nTagged selenium/node-chrome:128.0.6613.137-20250414\nTagged selenium/standalone-chrome:128.0.6613.137-20250414\nTagged selenium/node-chrome:128.0-chromedriver-128.0-grid-4.31.0-20250414\nTagged selenium/standalone-chrome:128.0-chromedriver-128.0-grid-4.31.0-20250414\nTagged selenium/node-chrome:128.0-chromedriver-128.0-20250414\nTagged selenium/standalone-chrome:128.0-chromedriver-128.0-20250414\nTagged selenium/node-chrome:128.0-20250414\nTagged selenium/standalone-chrome:128.0-20250414\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.31.0/chrome_129.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.31.0 20250414 selenium false chrome true\nTagging images for browser chrome, version 4.31.0, build date 20250414, namespace selenium\nSelenium Grid version -> 4.31.0-20250414\nChrome version -> 129.0.6668.100\nShort Chrome version -> 129.0\nChromeDriver version -> 129.0.6668.100\nShort ChromeDriver version -> 129.0\nTagged selenium/node-chrome:129.0.6668.100-chromedriver-129.0.6668.100-grid-4.31.0-20250414\nTagged selenium/standalone-chrome:129.0.6668.100-chromedriver-129.0.6668.100-grid-4.31.0-20250414\nTagged selenium/node-chrome:129.0.6668.100-chromedriver-129.0.6668.100-20250414\nTagged selenium/standalone-chrome:129.0.6668.100-chromedriver-129.0.6668.100-20250414\nTagged selenium/node-chrome:129.0.6668.100-20250414\nTagged selenium/standalone-chrome:129.0.6668.100-20250414\nTagged selenium/node-chrome:129.0-chromedriver-129.0-grid-4.31.0-20250414\nTagged selenium/standalone-chrome:129.0-chromedriver-129.0-grid-4.31.0-20250414\nTagged selenium/node-chrome:129.0-chromedriver-129.0-20250414\nTagged selenium/standalone-chrome:129.0-chromedriver-129.0-20250414\nTagged selenium/node-chrome:129.0-20250414\nTagged selenium/standalone-chrome:129.0-20250414\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.31.0/chrome_130.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.31.0 20250414 selenium false chrome true\nTagging images for browser chrome, version 4.31.0, build date 20250414, namespace selenium\nSelenium Grid version -> 4.31.0-20250414\nChrome version -> 130.0.6723.116\nShort Chrome version -> 130.0\nChromeDriver version -> 130.0.6723.116\nShort ChromeDriver version -> 130.0\nTagged selenium/node-chrome:130.0.6723.116-chromedriver-130.0.6723.116-grid-4.31.0-20250414\nTagged selenium/standalone-chrome:130.0.6723.116-chromedriver-130.0.6723.116-grid-4.31.0-20250414\nTagged selenium/node-chrome:130.0.6723.116-chromedriver-130.0.6723.116-20250414\nTagged selenium/standalone-chrome:130.0.6723.116-chromedriver-130.0.6723.116-20250414\nTagged selenium/node-chrome:130.0.6723.116-20250414\nTagged selenium/standalone-chrome:130.0.6723.116-20250414\nTagged selenium/node-chrome:130.0-chromedriver-130.0-grid-4.31.0-20250414\nTagged selenium/standalone-chrome:130.0-chromedriver-130.0-grid-4.31.0-20250414\nTagged selenium/node-chrome:130.0-chromedriver-130.0-20250414\nTagged selenium/standalone-chrome:130.0-chromedriver-130.0-20250414\nTagged selenium/node-chrome:130.0-20250414\nTagged selenium/standalone-chrome:130.0-20250414\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.31.0/chrome_131.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.31.0 20250414 selenium false chrome true\nTagging images for browser chrome, version 4.31.0, build date 20250414, namespace selenium\nSelenium Grid version -> 4.31.0-20250414\nChrome version -> 131.0.6778.264\nShort Chrome version -> 131.0\nChromeDriver version -> 131.0.6778.264\nShort ChromeDriver version -> 131.0\nTagged selenium/node-chrome:131.0.6778.264-chromedriver-131.0.6778.264-grid-4.31.0-20250414\nTagged selenium/standalone-chrome:131.0.6778.264-chromedriver-131.0.6778.264-grid-4.31.0-20250414\nTagged selenium/node-chrome:131.0.6778.264-chromedriver-131.0.6778.264-20250414\nTagged selenium/standalone-chrome:131.0.6778.264-chromedriver-131.0.6778.264-20250414\nTagged selenium/node-chrome:131.0.6778.264-20250414\nTagged selenium/standalone-chrome:131.0.6778.264-20250414\nTagged selenium/node-chrome:131.0-chromedriver-131.0-grid-4.31.0-20250414\nTagged selenium/standalone-chrome:131.0-chromedriver-131.0-grid-4.31.0-20250414\nTagged selenium/node-chrome:131.0-chromedriver-131.0-20250414\nTagged selenium/standalone-chrome:131.0-chromedriver-131.0-20250414\nTagged selenium/node-chrome:131.0-20250414\nTagged selenium/standalone-chrome:131.0-20250414\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.31.0/chrome_132.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.31.0 20250414 selenium false chrome true\nTagging images for browser chrome, version 4.31.0, build date 20250414, namespace selenium\nSelenium Grid version -> 4.31.0-20250414\nChrome version -> 132.0.6834.159\nShort Chrome version -> 132.0\nChromeDriver version -> 132.0.6834.159\nShort ChromeDriver version -> 132.0\nTagged selenium/node-chrome:132.0.6834.159-chromedriver-132.0.6834.159-grid-4.31.0-20250414\nTagged selenium/standalone-chrome:132.0.6834.159-chromedriver-132.0.6834.159-grid-4.31.0-20250414\nTagged selenium/node-chrome:132.0.6834.159-chromedriver-132.0.6834.159-20250414\nTagged selenium/standalone-chrome:132.0.6834.159-chromedriver-132.0.6834.159-20250414\nTagged selenium/node-chrome:132.0.6834.159-20250414\nTagged selenium/standalone-chrome:132.0.6834.159-20250414\nTagged selenium/node-chrome:132.0-chromedriver-132.0-grid-4.31.0-20250414\nTagged selenium/standalone-chrome:132.0-chromedriver-132.0-grid-4.31.0-20250414\nTagged selenium/node-chrome:132.0-chromedriver-132.0-20250414\nTagged selenium/standalone-chrome:132.0-chromedriver-132.0-20250414\nTagged selenium/node-chrome:132.0-20250414\nTagged selenium/standalone-chrome:132.0-20250414\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.31.0/chrome_133.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.31.0 20250414 selenium false chrome true\nTagging images for browser chrome, version 4.31.0, build date 20250414, namespace selenium\nSelenium Grid version -> 4.31.0-20250414\nChrome version -> 133.0.6943.141\nShort Chrome version -> 133.0\nChromeDriver version -> 133.0.6943.141\nShort ChromeDriver version -> 133.0\nTagged selenium/node-chrome:133.0.6943.141-chromedriver-133.0.6943.141-grid-4.31.0-20250414\nTagged selenium/standalone-chrome:133.0.6943.141-chromedriver-133.0.6943.141-grid-4.31.0-20250414\nTagged selenium/node-chrome:133.0.6943.141-chromedriver-133.0.6943.141-20250414\nTagged selenium/standalone-chrome:133.0.6943.141-chromedriver-133.0.6943.141-20250414\nTagged selenium/node-chrome:133.0.6943.141-20250414\nTagged selenium/standalone-chrome:133.0.6943.141-20250414\nTagged selenium/node-chrome:133.0-chromedriver-133.0-grid-4.31.0-20250414\nTagged selenium/standalone-chrome:133.0-chromedriver-133.0-grid-4.31.0-20250414\nTagged selenium/node-chrome:133.0-chromedriver-133.0-20250414\nTagged selenium/standalone-chrome:133.0-chromedriver-133.0-20250414\nTagged selenium/node-chrome:133.0-20250414\nTagged selenium/standalone-chrome:133.0-20250414\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.31.0/chrome_134.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.31.0 20250414 selenium false chrome true\nTagging images for browser chrome, version 4.31.0, build date 20250414, namespace selenium\nSelenium Grid version -> 4.31.0-20250414\nChrome version -> 134.0.6998.165\nShort Chrome version -> 134.0\nChromeDriver version -> 134.0.6998.165\nShort ChromeDriver version -> 134.0\nTagged selenium/node-chrome:134.0.6998.165-chromedriver-134.0.6998.165-grid-4.31.0-20250414\nTagged selenium/standalone-chrome:134.0.6998.165-chromedriver-134.0.6998.165-grid-4.31.0-20250414\nTagged selenium/node-chrome:134.0.6998.165-chromedriver-134.0.6998.165-20250414\nTagged selenium/standalone-chrome:134.0.6998.165-chromedriver-134.0.6998.165-20250414\nTagged selenium/node-chrome:134.0.6998.165-20250414\nTagged selenium/standalone-chrome:134.0.6998.165-20250414\nTagged selenium/node-chrome:134.0-chromedriver-134.0-grid-4.31.0-20250414\nTagged selenium/standalone-chrome:134.0-chromedriver-134.0-grid-4.31.0-20250414\nTagged selenium/node-chrome:134.0-chromedriver-134.0-20250414\nTagged selenium/standalone-chrome:134.0-chromedriver-134.0-20250414\nTagged selenium/node-chrome:134.0-20250414\nTagged selenium/standalone-chrome:134.0-20250414\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.31.0/chrome_95.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.31.0 20250414 selenium false chrome true\nTagging images for browser chrome, version 4.31.0, build date 20250414, namespace selenium\nSelenium Grid version -> 4.31.0-20250414\nChrome version -> 95.0.4638.69\nShort Chrome version -> 95.0\nChromeDriver version -> 95.0.4638.69\nShort ChromeDriver version -> 95.0\nTagged selenium/node-chrome:95.0.4638.69-chromedriver-95.0.4638.69-grid-4.31.0-20250414\nTagged selenium/standalone-chrome:95.0.4638.69-chromedriver-95.0.4638.69-grid-4.31.0-20250414\nTagged selenium/node-chrome:95.0.4638.69-chromedriver-95.0.4638.69-20250414\nTagged selenium/standalone-chrome:95.0.4638.69-chromedriver-95.0.4638.69-20250414\nTagged selenium/node-chrome:95.0.4638.69-20250414\nTagged selenium/standalone-chrome:95.0.4638.69-20250414\nTagged selenium/node-chrome:95.0-chromedriver-95.0-grid-4.31.0-20250414\nTagged selenium/standalone-chrome:95.0-chromedriver-95.0-grid-4.31.0-20250414\nTagged selenium/node-chrome:95.0-chromedriver-95.0-20250414\nTagged selenium/standalone-chrome:95.0-chromedriver-95.0-20250414\nTagged selenium/node-chrome:95.0-20250414\nTagged selenium/standalone-chrome:95.0-20250414\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.31.0/chrome_96.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.31.0 20250414 selenium false chrome true\nTagging images for browser chrome, version 4.31.0, build date 20250414, namespace selenium\nSelenium Grid version -> 4.31.0-20250414\nChrome version -> 96.0.4664.110\nShort Chrome version -> 96.0\nChromeDriver version -> 96.0.4664.45\nShort ChromeDriver version -> 96.0\nTagged selenium/node-chrome:96.0.4664.110-chromedriver-96.0.4664.45-grid-4.31.0-20250414\nTagged selenium/standalone-chrome:96.0.4664.110-chromedriver-96.0.4664.45-grid-4.31.0-20250414\nTagged selenium/node-chrome:96.0.4664.110-chromedriver-96.0.4664.45-20250414\nTagged selenium/standalone-chrome:96.0.4664.110-chromedriver-96.0.4664.45-20250414\nTagged selenium/node-chrome:96.0.4664.110-20250414\nTagged selenium/standalone-chrome:96.0.4664.110-20250414\nTagged selenium/node-chrome:96.0-chromedriver-96.0-grid-4.31.0-20250414\nTagged selenium/standalone-chrome:96.0-chromedriver-96.0-grid-4.31.0-20250414\nTagged selenium/node-chrome:96.0-chromedriver-96.0-20250414\nTagged selenium/standalone-chrome:96.0-chromedriver-96.0-20250414\nTagged selenium/node-chrome:96.0-20250414\nTagged selenium/standalone-chrome:96.0-20250414\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.31.0/chrome_97.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.31.0 20250414 selenium false chrome true\nTagging images for browser chrome, version 4.31.0, build date 20250414, namespace selenium\nSelenium Grid version -> 4.31.0-20250414\nChrome version -> 97.0.4692.99\nShort Chrome version -> 97.0\nChromeDriver version -> 97.0.4692.71\nShort ChromeDriver version -> 97.0\nTagged selenium/node-chrome:97.0.4692.99-chromedriver-97.0.4692.71-grid-4.31.0-20250414\nTagged selenium/standalone-chrome:97.0.4692.99-chromedriver-97.0.4692.71-grid-4.31.0-20250414\nTagged selenium/node-chrome:97.0.4692.99-chromedriver-97.0.4692.71-20250414\nTagged selenium/standalone-chrome:97.0.4692.99-chromedriver-97.0.4692.71-20250414\nTagged selenium/node-chrome:97.0.4692.99-20250414\nTagged selenium/standalone-chrome:97.0.4692.99-20250414\nTagged selenium/node-chrome:97.0-chromedriver-97.0-grid-4.31.0-20250414\nTagged selenium/standalone-chrome:97.0-chromedriver-97.0-grid-4.31.0-20250414\nTagged selenium/node-chrome:97.0-chromedriver-97.0-20250414\nTagged selenium/standalone-chrome:97.0-chromedriver-97.0-20250414\nTagged selenium/node-chrome:97.0-20250414\nTagged selenium/standalone-chrome:97.0-20250414\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.31.0/chrome_98.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.31.0 20250414 selenium false chrome true\nTagging images for browser chrome, version 4.31.0, build date 20250414, namespace selenium\nSelenium Grid version -> 4.31.0-20250414\nChrome version -> 98.0.4758.102\nShort Chrome version -> 98.0\nChromeDriver version -> 98.0.4758.102\nShort ChromeDriver version -> 98.0\nTagged selenium/node-chrome:98.0.4758.102-chromedriver-98.0.4758.102-grid-4.31.0-20250414\nTagged selenium/standalone-chrome:98.0.4758.102-chromedriver-98.0.4758.102-grid-4.31.0-20250414\nTagged selenium/node-chrome:98.0.4758.102-chromedriver-98.0.4758.102-20250414\nTagged selenium/standalone-chrome:98.0.4758.102-chromedriver-98.0.4758.102-20250414\nTagged selenium/node-chrome:98.0.4758.102-20250414\nTagged selenium/standalone-chrome:98.0.4758.102-20250414\nTagged selenium/node-chrome:98.0-chromedriver-98.0-grid-4.31.0-20250414\nTagged selenium/standalone-chrome:98.0-chromedriver-98.0-grid-4.31.0-20250414\nTagged selenium/node-chrome:98.0-chromedriver-98.0-20250414\nTagged selenium/standalone-chrome:98.0-chromedriver-98.0-20250414\nTagged selenium/node-chrome:98.0-20250414\nTagged selenium/standalone-chrome:98.0-20250414\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.31.0/chrome_99.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.31.0 20250414 selenium false chrome true\nTagging images for browser chrome, version 4.31.0, build date 20250414, namespace selenium\nSelenium Grid version -> 4.31.0-20250414\nChrome version -> 99.0.4844.84\nShort Chrome version -> 99.0\nChromeDriver version -> 99.0.4844.51\nShort ChromeDriver version -> 99.0\nTagged selenium/node-chrome:99.0.4844.84-chromedriver-99.0.4844.51-grid-4.31.0-20250414\nTagged selenium/standalone-chrome:99.0.4844.84-chromedriver-99.0.4844.51-grid-4.31.0-20250414\nTagged selenium/node-chrome:99.0.4844.84-chromedriver-99.0.4844.51-20250414\nTagged selenium/standalone-chrome:99.0.4844.84-chromedriver-99.0.4844.51-20250414\nTagged selenium/node-chrome:99.0.4844.84-20250414\nTagged selenium/standalone-chrome:99.0.4844.84-20250414\nTagged selenium/node-chrome:99.0-chromedriver-99.0-grid-4.31.0-20250414\nTagged selenium/standalone-chrome:99.0-chromedriver-99.0-grid-4.31.0-20250414\nTagged selenium/node-chrome:99.0-chromedriver-99.0-20250414\nTagged selenium/standalone-chrome:99.0-chromedriver-99.0-20250414\nTagged selenium/node-chrome:99.0-20250414\nTagged selenium/standalone-chrome:99.0-20250414\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.31.0/edge_114.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.31.0 20250414 selenium false edge true\nTagging images for browser edge, version 4.31.0, build date 20250414, namespace selenium\nSelenium Grid version -> 4.31.0-20250414\nEdge version -> 114.0.1823.82\nShort Edge version -> 114.0\nEdgeDriver version -> 114.0.1823.82\nShort EdgeDriver version -> 114.0\nTagged selenium/node-edge:114.0.1823.82-edgedriver-114.0.1823.82-grid-4.31.0-20250414\nTagged selenium/standalone-edge:114.0.1823.82-edgedriver-114.0.1823.82-grid-4.31.0-20250414\nTagged selenium/node-edge:114.0.1823.82-edgedriver-114.0.1823.82-20250414\nTagged selenium/standalone-edge:114.0.1823.82-edgedriver-114.0.1823.82-20250414\nTagged selenium/node-edge:114.0.1823.82-20250414\nTagged selenium/standalone-edge:114.0.1823.82-20250414\nTagged selenium/node-edge:114.0-edgedriver-114.0-grid-4.31.0-20250414\nTagged selenium/standalone-edge:114.0-edgedriver-114.0-grid-4.31.0-20250414\nTagged selenium/node-edge:114.0-edgedriver-114.0-20250414\nTagged selenium/standalone-edge:114.0-edgedriver-114.0-20250414\nTagged selenium/node-edge:114.0-20250414\nTagged selenium/standalone-edge:114.0-20250414\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.31.0/edge_115.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.31.0 20250414 selenium false edge true\nTagging images for browser edge, version 4.31.0, build date 20250414, namespace selenium\nSelenium Grid version -> 4.31.0-20250414\nEdge version -> 115.0.1901.203\nShort Edge version -> 115.0\nEdgeDriver version -> 115.0.1901.203\nShort EdgeDriver version -> 115.0\nTagged selenium/node-edge:115.0.1901.203-edgedriver-115.0.1901.203-grid-4.31.0-20250414\nTagged selenium/standalone-edge:115.0.1901.203-edgedriver-115.0.1901.203-grid-4.31.0-20250414\nTagged selenium/node-edge:115.0.1901.203-edgedriver-115.0.1901.203-20250414\nTagged selenium/standalone-edge:115.0.1901.203-edgedriver-115.0.1901.203-20250414\nTagged selenium/node-edge:115.0.1901.203-20250414\nTagged selenium/standalone-edge:115.0.1901.203-20250414\nTagged selenium/node-edge:115.0-edgedriver-115.0-grid-4.31.0-20250414\nTagged selenium/standalone-edge:115.0-edgedriver-115.0-grid-4.31.0-20250414\nTagged selenium/node-edge:115.0-edgedriver-115.0-20250414\nTagged selenium/standalone-edge:115.0-edgedriver-115.0-20250414\nTagged selenium/node-edge:115.0-20250414\nTagged selenium/standalone-edge:115.0-20250414\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.31.0/edge_116.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.31.0 20250414 selenium false edge true\nTagging images for browser edge, version 4.31.0, build date 20250414, namespace selenium\nSelenium Grid version -> 4.31.0-20250414\nEdge version -> 116.0.1938.81\nShort Edge version -> 116.0\nEdgeDriver version -> 116.0.1938.81\nShort EdgeDriver version -> 116.0\nTagged selenium/node-edge:116.0.1938.81-edgedriver-116.0.1938.81-grid-4.31.0-20250414\nTagged selenium/standalone-edge:116.0.1938.81-edgedriver-116.0.1938.81-grid-4.31.0-20250414\nTagged selenium/node-edge:116.0.1938.81-edgedriver-116.0.1938.81-20250414\nTagged selenium/standalone-edge:116.0.1938.81-edgedriver-116.0.1938.81-20250414\nTagged selenium/node-edge:116.0.1938.81-20250414\nTagged selenium/standalone-edge:116.0.1938.81-20250414\nTagged selenium/node-edge:116.0-edgedriver-116.0-grid-4.31.0-20250414\nTagged selenium/standalone-edge:116.0-edgedriver-116.0-grid-4.31.0-20250414\nTagged selenium/node-edge:116.0-edgedriver-116.0-20250414\nTagged selenium/standalone-edge:116.0-edgedriver-116.0-20250414\nTagged selenium/node-edge:116.0-20250414\nTagged selenium/standalone-edge:116.0-20250414\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.31.0/edge_117.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.31.0 20250414 selenium false edge true\nTagging images for browser edge, version 4.31.0, build date 20250414, namespace selenium\nSelenium Grid version -> 4.31.0-20250414\nEdge version -> 117.0.2045.55\nShort Edge version -> 117.0\nEdgeDriver version -> 117.0.2045.55\nShort EdgeDriver version -> 117.0\nTagged selenium/node-edge:117.0.2045.55-edgedriver-117.0.2045.55-grid-4.31.0-20250414\nTagged selenium/standalone-edge:117.0.2045.55-edgedriver-117.0.2045.55-grid-4.31.0-20250414\nTagged selenium/node-edge:117.0.2045.55-edgedriver-117.0.2045.55-20250414\nTagged selenium/standalone-edge:117.0.2045.55-edgedriver-117.0.2045.55-20250414\nTagged selenium/node-edge:117.0.2045.55-20250414\nTagged selenium/standalone-edge:117.0.2045.55-20250414\nTagged selenium/node-edge:117.0-edgedriver-117.0-grid-4.31.0-20250414\nTagged selenium/standalone-edge:117.0-edgedriver-117.0-grid-4.31.0-20250414\nTagged selenium/node-edge:117.0-edgedriver-117.0-20250414\nTagged selenium/standalone-edge:117.0-edgedriver-117.0-20250414\nTagged selenium/node-edge:117.0-20250414\nTagged selenium/standalone-edge:117.0-20250414\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.31.0/edge_118.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.31.0 20250414 selenium false edge true\nTagging images for browser edge, version 4.31.0, build date 20250414, namespace selenium\nSelenium Grid version -> 4.31.0-20250414\nEdge version -> 118.0.2088.76\nShort Edge version -> 118.0\nEdgeDriver version -> 118.0.2088.76\nShort EdgeDriver version -> 118.0\nTagged selenium/node-edge:118.0.2088.76-edgedriver-118.0.2088.76-grid-4.31.0-20250414\nTagged selenium/standalone-edge:118.0.2088.76-edgedriver-118.0.2088.76-grid-4.31.0-20250414\nTagged selenium/node-edge:118.0.2088.76-edgedriver-118.0.2088.76-20250414\nTagged selenium/standalone-edge:118.0.2088.76-edgedriver-118.0.2088.76-20250414\nTagged selenium/node-edge:118.0.2088.76-20250414\nTagged selenium/standalone-edge:118.0.2088.76-20250414\nTagged selenium/node-edge:118.0-edgedriver-118.0-grid-4.31.0-20250414\nTagged selenium/standalone-edge:118.0-edgedriver-118.0-grid-4.31.0-20250414\nTagged selenium/node-edge:118.0-edgedriver-118.0-20250414\nTagged selenium/standalone-edge:118.0-edgedriver-118.0-20250414\nTagged selenium/node-edge:118.0-20250414\nTagged selenium/standalone-edge:118.0-20250414\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.31.0/edge_119.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.31.0 20250414 selenium false edge true\nTagging images for browser edge, version 4.31.0, build date 20250414, namespace selenium\nSelenium Grid version -> 4.31.0-20250414\nEdge version -> 119.0.2151.97\nShort Edge version -> 119.0\nEdgeDriver version -> 119.0.2151.97\nShort EdgeDriver version -> 119.0\nTagged selenium/node-edge:119.0.2151.97-edgedriver-119.0.2151.97-grid-4.31.0-20250414\nTagged selenium/standalone-edge:119.0.2151.97-edgedriver-119.0.2151.97-grid-4.31.0-20250414\nTagged selenium/node-edge:119.0.2151.97-edgedriver-119.0.2151.97-20250414\nTagged selenium/standalone-edge:119.0.2151.97-edgedriver-119.0.2151.97-20250414\nTagged selenium/node-edge:119.0.2151.97-20250414\nTagged selenium/standalone-edge:119.0.2151.97-20250414\nTagged selenium/node-edge:119.0-edgedriver-119.0-grid-4.31.0-20250414\nTagged selenium/standalone-edge:119.0-edgedriver-119.0-grid-4.31.0-20250414\nTagged selenium/node-edge:119.0-edgedriver-119.0-20250414\nTagged selenium/standalone-edge:119.0-edgedriver-119.0-20250414\nTagged selenium/node-edge:119.0-20250414\nTagged selenium/standalone-edge:119.0-20250414\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.31.0/edge_120.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.31.0 20250414 selenium false edge true\nTagging images for browser edge, version 4.31.0, build date 20250414, namespace selenium\nSelenium Grid version -> 4.31.0-20250414\nEdge version -> 120.0.2210.144\nShort Edge version -> 120.0\nEdgeDriver version -> 120.0.2210.144\nShort EdgeDriver version -> 120.0\nTagged selenium/node-edge:120.0.2210.144-edgedriver-120.0.2210.144-grid-4.31.0-20250414\nTagged selenium/standalone-edge:120.0.2210.144-edgedriver-120.0.2210.144-grid-4.31.0-20250414\nTagged selenium/node-edge:120.0.2210.144-edgedriver-120.0.2210.144-20250414\nTagged selenium/standalone-edge:120.0.2210.144-edgedriver-120.0.2210.144-20250414\nTagged selenium/node-edge:120.0.2210.144-20250414\nTagged selenium/standalone-edge:120.0.2210.144-20250414\nTagged selenium/node-edge:120.0-edgedriver-120.0-grid-4.31.0-20250414\nTagged selenium/standalone-edge:120.0-edgedriver-120.0-grid-4.31.0-20250414\nTagged selenium/node-edge:120.0-edgedriver-120.0-20250414\nTagged selenium/standalone-edge:120.0-edgedriver-120.0-20250414\nTagged selenium/node-edge:120.0-20250414\nTagged selenium/standalone-edge:120.0-20250414\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.31.0/edge_121.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.31.0 20250414 selenium false edge true\nTagging images for browser edge, version 4.31.0, build date 20250414, namespace selenium\nSelenium Grid version -> 4.31.0-20250414\nEdge version -> 121.0.2277.128\nShort Edge version -> 121.0\nEdgeDriver version -> 121.0.2277.128\nShort EdgeDriver version -> 121.0\nTagged selenium/node-edge:121.0.2277.128-edgedriver-121.0.2277.128-grid-4.31.0-20250414\nTagged selenium/standalone-edge:121.0.2277.128-edgedriver-121.0.2277.128-grid-4.31.0-20250414\nTagged selenium/node-edge:121.0.2277.128-edgedriver-121.0.2277.128-20250414\nTagged selenium/standalone-edge:121.0.2277.128-edgedriver-121.0.2277.128-20250414\nTagged selenium/node-edge:121.0.2277.128-20250414\nTagged selenium/standalone-edge:121.0.2277.128-20250414\nTagged selenium/node-edge:121.0-edgedriver-121.0-grid-4.31.0-20250414\nTagged selenium/standalone-edge:121.0-edgedriver-121.0-grid-4.31.0-20250414\nTagged selenium/node-edge:121.0-edgedriver-121.0-20250414\nTagged selenium/standalone-edge:121.0-edgedriver-121.0-20250414\nTagged selenium/node-edge:121.0-20250414\nTagged selenium/standalone-edge:121.0-20250414\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.31.0/edge_122.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.31.0 20250414 selenium false edge true\nTagging images for browser edge, version 4.31.0, build date 20250414, namespace selenium\nSelenium Grid version -> 4.31.0-20250414\nEdge version -> 122.0.2365.92\nShort Edge version -> 122.0\nEdgeDriver version -> 122.0.2365.92\nShort EdgeDriver version -> 122.0\nTagged selenium/node-edge:122.0.2365.92-edgedriver-122.0.2365.92-grid-4.31.0-20250414\nTagged selenium/standalone-edge:122.0.2365.92-edgedriver-122.0.2365.92-grid-4.31.0-20250414\nTagged selenium/node-edge:122.0.2365.92-edgedriver-122.0.2365.92-20250414\nTagged selenium/standalone-edge:122.0.2365.92-edgedriver-122.0.2365.92-20250414\nTagged selenium/node-edge:122.0.2365.92-20250414\nTagged selenium/standalone-edge:122.0.2365.92-20250414\nTagged selenium/node-edge:122.0-edgedriver-122.0-grid-4.31.0-20250414\nTagged selenium/standalone-edge:122.0-edgedriver-122.0-grid-4.31.0-20250414\nTagged selenium/node-edge:122.0-edgedriver-122.0-20250414\nTagged selenium/standalone-edge:122.0-edgedriver-122.0-20250414\nTagged selenium/node-edge:122.0-20250414\nTagged selenium/standalone-edge:122.0-20250414\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.31.0/edge_123.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.31.0 20250414 selenium false edge true\nTagging images for browser edge, version 4.31.0, build date 20250414, namespace selenium\nSelenium Grid version -> 4.31.0-20250414\nEdge version -> 123.0.2420.97\nShort Edge version -> 123.0\nEdgeDriver version -> 123.0.2420.97\nShort EdgeDriver version -> 123.0\nTagged selenium/node-edge:123.0.2420.97-edgedriver-123.0.2420.97-grid-4.31.0-20250414\nTagged selenium/standalone-edge:123.0.2420.97-edgedriver-123.0.2420.97-grid-4.31.0-20250414\nTagged selenium/node-edge:123.0.2420.97-edgedriver-123.0.2420.97-20250414\nTagged selenium/standalone-edge:123.0.2420.97-edgedriver-123.0.2420.97-20250414\nTagged selenium/node-edge:123.0.2420.97-20250414\nTagged selenium/standalone-edge:123.0.2420.97-20250414\nTagged selenium/node-edge:123.0-edgedriver-123.0-grid-4.31.0-20250414\nTagged selenium/standalone-edge:123.0-edgedriver-123.0-grid-4.31.0-20250414\nTagged selenium/node-edge:123.0-edgedriver-123.0-20250414\nTagged selenium/standalone-edge:123.0-edgedriver-123.0-20250414\nTagged selenium/node-edge:123.0-20250414\nTagged selenium/standalone-edge:123.0-20250414\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.31.0/edge_124.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.31.0 20250414 selenium false edge true\nTagging images for browser edge, version 4.31.0, build date 20250414, namespace selenium\nSelenium Grid version -> 4.31.0-20250414\nEdge version -> 124.0.2478.109\nShort Edge version -> 124.0\nEdgeDriver version -> 124.0.2478.109\nShort EdgeDriver version -> 124.0\nTagged selenium/node-edge:124.0.2478.109-edgedriver-124.0.2478.109-grid-4.31.0-20250414\nTagged selenium/standalone-edge:124.0.2478.109-edgedriver-124.0.2478.109-grid-4.31.0-20250414\nTagged selenium/node-edge:124.0.2478.109-edgedriver-124.0.2478.109-20250414\nTagged selenium/standalone-edge:124.0.2478.109-edgedriver-124.0.2478.109-20250414\nTagged selenium/node-edge:124.0.2478.109-20250414\nTagged selenium/standalone-edge:124.0.2478.109-20250414\nTagged selenium/node-edge:124.0-edgedriver-124.0-grid-4.31.0-20250414\nTagged selenium/standalone-edge:124.0-edgedriver-124.0-grid-4.31.0-20250414\nTagged selenium/node-edge:124.0-edgedriver-124.0-20250414\nTagged selenium/standalone-edge:124.0-edgedriver-124.0-20250414\nTagged selenium/node-edge:124.0-20250414\nTagged selenium/standalone-edge:124.0-20250414\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.31.0/edge_125.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.31.0 20250414 selenium false edge true\nTagging images for browser edge, version 4.31.0, build date 20250414, namespace selenium\nSelenium Grid version -> 4.31.0-20250414\nEdge version -> 125.0.2535.92\nShort Edge version -> 125.0\nEdgeDriver version -> 125.0.2535.92\nShort EdgeDriver version -> 125.0\nTagged selenium/node-edge:125.0.2535.92-edgedriver-125.0.2535.92-grid-4.31.0-20250414\nTagged selenium/standalone-edge:125.0.2535.92-edgedriver-125.0.2535.92-grid-4.31.0-20250414\nTagged selenium/node-edge:125.0.2535.92-edgedriver-125.0.2535.92-20250414\nTagged selenium/standalone-edge:125.0.2535.92-edgedriver-125.0.2535.92-20250414\nTagged selenium/node-edge:125.0.2535.92-20250414\nTagged selenium/standalone-edge:125.0.2535.92-20250414\nTagged selenium/node-edge:125.0-edgedriver-125.0-grid-4.31.0-20250414\nTagged selenium/standalone-edge:125.0-edgedriver-125.0-grid-4.31.0-20250414\nTagged selenium/node-edge:125.0-edgedriver-125.0-20250414\nTagged selenium/standalone-edge:125.0-edgedriver-125.0-20250414\nTagged selenium/node-edge:125.0-20250414\nTagged selenium/standalone-edge:125.0-20250414\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.31.0/edge_126.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.31.0 20250414 selenium false edge true\nTagging images for browser edge, version 4.31.0, build date 20250414, namespace selenium\nSelenium Grid version -> 4.31.0-20250414\nEdge version -> 126.0.2592.113\nShort Edge version -> 126.0\nEdgeDriver version -> 126.0.2592.123\nShort EdgeDriver version -> 126.0\nTagged selenium/node-edge:126.0.2592.113-edgedriver-126.0.2592.123-grid-4.31.0-20250414\nTagged selenium/standalone-edge:126.0.2592.113-edgedriver-126.0.2592.123-grid-4.31.0-20250414\nTagged selenium/node-edge:126.0.2592.113-edgedriver-126.0.2592.123-20250414\nTagged selenium/standalone-edge:126.0.2592.113-edgedriver-126.0.2592.123-20250414\nTagged selenium/node-edge:126.0.2592.113-20250414\nTagged selenium/standalone-edge:126.0.2592.113-20250414\nTagged selenium/node-edge:126.0-edgedriver-126.0-grid-4.31.0-20250414\nTagged selenium/standalone-edge:126.0-edgedriver-126.0-grid-4.31.0-20250414\nTagged selenium/node-edge:126.0-edgedriver-126.0-20250414\nTagged selenium/standalone-edge:126.0-edgedriver-126.0-20250414\nTagged selenium/node-edge:126.0-20250414\nTagged selenium/standalone-edge:126.0-20250414\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.31.0/edge_127.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.31.0 20250414 selenium false edge true\nTagging images for browser edge, version 4.31.0, build date 20250414, namespace selenium\nSelenium Grid version -> 4.31.0-20250414\nEdge version -> 127.0.2651.105\nShort Edge version -> 127.0\nEdgeDriver version -> 127.0.2651.107\nShort EdgeDriver version -> 127.0\nTagged selenium/node-edge:127.0.2651.105-edgedriver-127.0.2651.107-grid-4.31.0-20250414\nTagged selenium/standalone-edge:127.0.2651.105-edgedriver-127.0.2651.107-grid-4.31.0-20250414\nTagged selenium/node-edge:127.0.2651.105-edgedriver-127.0.2651.107-20250414\nTagged selenium/standalone-edge:127.0.2651.105-edgedriver-127.0.2651.107-20250414\nTagged selenium/node-edge:127.0.2651.105-20250414\nTagged selenium/standalone-edge:127.0.2651.105-20250414\nTagged selenium/node-edge:127.0-edgedriver-127.0-grid-4.31.0-20250414\nTagged selenium/standalone-edge:127.0-edgedriver-127.0-grid-4.31.0-20250414\nTagged selenium/node-edge:127.0-edgedriver-127.0-20250414\nTagged selenium/standalone-edge:127.0-edgedriver-127.0-20250414\nTagged selenium/node-edge:127.0-20250414\nTagged selenium/standalone-edge:127.0-20250414\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.31.0/edge_128.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.31.0 20250414 selenium false edge true\nTagging images for browser edge, version 4.31.0, build date 20250414, namespace selenium\nSelenium Grid version -> 4.31.0-20250414\nEdge version -> 128.0.2739.79\nShort Edge version -> 128.0\nEdgeDriver version -> 128.0.2739.81\nShort EdgeDriver version -> 128.0\nTagged selenium/node-edge:128.0.2739.79-edgedriver-128.0.2739.81-grid-4.31.0-20250414\nTagged selenium/standalone-edge:128.0.2739.79-edgedriver-128.0.2739.81-grid-4.31.0-20250414\nTagged selenium/node-edge:128.0.2739.79-edgedriver-128.0.2739.81-20250414\nTagged selenium/standalone-edge:128.0.2739.79-edgedriver-128.0.2739.81-20250414\nTagged selenium/node-edge:128.0.2739.79-20250414\nTagged selenium/standalone-edge:128.0.2739.79-20250414\nTagged selenium/node-edge:128.0-edgedriver-128.0-grid-4.31.0-20250414\nTagged selenium/standalone-edge:128.0-edgedriver-128.0-grid-4.31.0-20250414\nTagged selenium/node-edge:128.0-edgedriver-128.0-20250414\nTagged selenium/standalone-edge:128.0-edgedriver-128.0-20250414\nTagged selenium/node-edge:128.0-20250414\nTagged selenium/standalone-edge:128.0-20250414\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.31.0/edge_129.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.31.0 20250414 selenium false edge true\nTagging images for browser edge, version 4.31.0, build date 20250414, namespace selenium\nSelenium Grid version -> 4.31.0-20250414\nEdge version -> 129.0.2792.89\nShort Edge version -> 129.0\nEdgeDriver version -> 129.0.2792.98\nShort EdgeDriver version -> 129.0\nTagged selenium/node-edge:129.0.2792.89-edgedriver-129.0.2792.98-grid-4.31.0-20250414\nTagged selenium/standalone-edge:129.0.2792.89-edgedriver-129.0.2792.98-grid-4.31.0-20250414\nTagged selenium/node-edge:129.0.2792.89-edgedriver-129.0.2792.98-20250414\nTagged selenium/standalone-edge:129.0.2792.89-edgedriver-129.0.2792.98-20250414\nTagged selenium/node-edge:129.0.2792.89-20250414\nTagged selenium/standalone-edge:129.0.2792.89-20250414\nTagged selenium/node-edge:129.0-edgedriver-129.0-grid-4.31.0-20250414\nTagged selenium/standalone-edge:129.0-edgedriver-129.0-grid-4.31.0-20250414\nTagged selenium/node-edge:129.0-edgedriver-129.0-20250414\nTagged selenium/standalone-edge:129.0-edgedriver-129.0-20250414\nTagged selenium/node-edge:129.0-20250414\nTagged selenium/standalone-edge:129.0-20250414\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.31.0/edge_130.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.31.0 20250414 selenium false edge true\nTagging images for browser edge, version 4.31.0, build date 20250414, namespace selenium\nSelenium Grid version -> 4.31.0-20250414\nEdge version -> 130.0.2849.80\nShort Edge version -> 130.0\nEdgeDriver version -> 130.0.2849.78\nShort EdgeDriver version -> 130.0\nTagged selenium/node-edge:130.0.2849.80-edgedriver-130.0.2849.78-grid-4.31.0-20250414\nTagged selenium/standalone-edge:130.0.2849.80-edgedriver-130.0.2849.78-grid-4.31.0-20250414\nTagged selenium/node-edge:130.0.2849.80-edgedriver-130.0.2849.78-20250414\nTagged selenium/standalone-edge:130.0.2849.80-edgedriver-130.0.2849.78-20250414\nTagged selenium/node-edge:130.0.2849.80-20250414\nTagged selenium/standalone-edge:130.0.2849.80-20250414\nTagged selenium/node-edge:130.0-edgedriver-130.0-grid-4.31.0-20250414\nTagged selenium/standalone-edge:130.0-edgedriver-130.0-grid-4.31.0-20250414\nTagged selenium/node-edge:130.0-edgedriver-130.0-20250414\nTagged selenium/standalone-edge:130.0-edgedriver-130.0-20250414\nTagged selenium/node-edge:130.0-20250414\nTagged selenium/standalone-edge:130.0-20250414\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.31.0/edge_131.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.31.0 20250414 selenium false edge true\nTagging images for browser edge, version 4.31.0, build date 20250414, namespace selenium\nSelenium Grid version -> 4.31.0-20250414\nEdge version -> 131.0.2903.147\nShort Edge version -> 131.0\nEdgeDriver version -> 131.0.2903.147\nShort EdgeDriver version -> 131.0\nTagged selenium/node-edge:131.0.2903.147-edgedriver-131.0.2903.147-grid-4.31.0-20250414\nTagged selenium/standalone-edge:131.0.2903.147-edgedriver-131.0.2903.147-grid-4.31.0-20250414\nTagged selenium/node-edge:131.0.2903.147-edgedriver-131.0.2903.147-20250414\nTagged selenium/standalone-edge:131.0.2903.147-edgedriver-131.0.2903.147-20250414\nTagged selenium/node-edge:131.0.2903.147-20250414\nTagged selenium/standalone-edge:131.0.2903.147-20250414\nTagged selenium/node-edge:131.0-edgedriver-131.0-grid-4.31.0-20250414\nTagged selenium/standalone-edge:131.0-edgedriver-131.0-grid-4.31.0-20250414\nTagged selenium/node-edge:131.0-edgedriver-131.0-20250414\nTagged selenium/standalone-edge:131.0-edgedriver-131.0-20250414\nTagged selenium/node-edge:131.0-20250414\nTagged selenium/standalone-edge:131.0-20250414\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.31.0/edge_132.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.31.0 20250414 selenium false edge true\nTagging images for browser edge, version 4.31.0, build date 20250414, namespace selenium\nSelenium Grid version -> 4.31.0-20250414\nEdge version -> 132.0.2957.140\nShort Edge version -> 132.0\nEdgeDriver version -> 132.0.2957.140\nShort EdgeDriver version -> 132.0\nTagged selenium/node-edge:132.0.2957.140-edgedriver-132.0.2957.140-grid-4.31.0-20250414\nTagged selenium/standalone-edge:132.0.2957.140-edgedriver-132.0.2957.140-grid-4.31.0-20250414\nTagged selenium/node-edge:132.0.2957.140-edgedriver-132.0.2957.140-20250414\nTagged selenium/standalone-edge:132.0.2957.140-edgedriver-132.0.2957.140-20250414\nTagged selenium/node-edge:132.0.2957.140-20250414\nTagged selenium/standalone-edge:132.0.2957.140-20250414\nTagged selenium/node-edge:132.0-edgedriver-132.0-grid-4.31.0-20250414\nTagged selenium/standalone-edge:132.0-edgedriver-132.0-grid-4.31.0-20250414\nTagged selenium/node-edge:132.0-edgedriver-132.0-20250414\nTagged selenium/standalone-edge:132.0-edgedriver-132.0-20250414\nTagged selenium/node-edge:132.0-20250414\nTagged selenium/standalone-edge:132.0-20250414\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.31.0/edge_133.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.31.0 20250414 selenium false edge true\nTagging images for browser edge, version 4.31.0, build date 20250414, namespace selenium\nSelenium Grid version -> 4.31.0-20250414\nEdge version -> 133.0.3065.92\nShort Edge version -> 133.0\nEdgeDriver version -> 133.0.3065.92\nShort EdgeDriver version -> 133.0\nTagged selenium/node-edge:133.0.3065.92-edgedriver-133.0.3065.92-grid-4.31.0-20250414\nTagged selenium/standalone-edge:133.0.3065.92-edgedriver-133.0.3065.92-grid-4.31.0-20250414\nTagged selenium/node-edge:133.0.3065.92-edgedriver-133.0.3065.92-20250414\nTagged selenium/standalone-edge:133.0.3065.92-edgedriver-133.0.3065.92-20250414\nTagged selenium/node-edge:133.0.3065.92-20250414\nTagged selenium/standalone-edge:133.0.3065.92-20250414\nTagged selenium/node-edge:133.0-edgedriver-133.0-grid-4.31.0-20250414\nTagged selenium/standalone-edge:133.0-edgedriver-133.0-grid-4.31.0-20250414\nTagged selenium/node-edge:133.0-edgedriver-133.0-20250414\nTagged selenium/standalone-edge:133.0-edgedriver-133.0-20250414\nTagged selenium/node-edge:133.0-20250414\nTagged selenium/standalone-edge:133.0-20250414\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.31.0/edge_134.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.31.0 20250414 selenium false edge true\nTagging images for browser edge, version 4.31.0, build date 20250414, namespace selenium\nSelenium Grid version -> 4.31.0-20250414\nEdge version -> 134.0.3124.95\nShort Edge version -> 134.0\nEdgeDriver version -> 134.0.3124.95\nShort EdgeDriver version -> 134.0\nTagged selenium/node-edge:134.0.3124.95-edgedriver-134.0.3124.95-grid-4.31.0-20250414\nTagged selenium/standalone-edge:134.0.3124.95-edgedriver-134.0.3124.95-grid-4.31.0-20250414\nTagged selenium/node-edge:134.0.3124.95-edgedriver-134.0.3124.95-20250414\nTagged selenium/standalone-edge:134.0.3124.95-edgedriver-134.0.3124.95-20250414\nTagged selenium/node-edge:134.0.3124.95-20250414\nTagged selenium/standalone-edge:134.0.3124.95-20250414\nTagged selenium/node-edge:134.0-edgedriver-134.0-grid-4.31.0-20250414\nTagged selenium/standalone-edge:134.0-edgedriver-134.0-grid-4.31.0-20250414\nTagged selenium/node-edge:134.0-edgedriver-134.0-20250414\nTagged selenium/standalone-edge:134.0-edgedriver-134.0-20250414\nTagged selenium/node-edge:134.0-20250414\nTagged selenium/standalone-edge:134.0-20250414\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.31.0/firefox_100.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.31.0 20250414 selenium false firefox true\nTagging images for browser firefox, version 4.31.0, build date 20250414, namespace selenium\nSelenium Grid version -> 4.31.0-20250414\nFirefox version -> 100.0.2\nShort Firefox version -> 100.0\nGeckoDriver version -> 0.36.0\nShort GeckoDriver version -> 0.36\nTagged selenium/node-firefox:100.0.2-geckodriver-0.36.0-grid-4.31.0-20250414\nTagged selenium/standalone-firefox:100.0.2-geckodriver-0.36.0-grid-4.31.0-20250414\nTagged selenium/node-firefox:100.0.2-geckodriver-0.36.0-20250414\nTagged selenium/standalone-firefox:100.0.2-geckodriver-0.36.0-20250414\nTagged selenium/node-firefox:100.0.2-20250414\nTagged selenium/standalone-firefox:100.0.2-20250414\nTagged selenium/node-firefox:100.0-geckodriver-0.36-grid-4.31.0-20250414\nTagged selenium/standalone-firefox:100.0-geckodriver-0.36-grid-4.31.0-20250414\nTagged selenium/node-firefox:100.0-geckodriver-0.36-20250414\nTagged selenium/standalone-firefox:100.0-geckodriver-0.36-20250414\nTagged selenium/node-firefox:100.0-20250414\nTagged selenium/standalone-firefox:100.0-20250414\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.31.0/firefox_101.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.31.0 20250414 selenium false firefox true\nTagging images for browser firefox, version 4.31.0, build date 20250414, namespace selenium\nSelenium Grid version -> 4.31.0-20250414\nFirefox version -> 101.0.1\nShort Firefox version -> 101.0\nGeckoDriver version -> 0.36.0\nShort GeckoDriver version -> 0.36\nTagged selenium/node-firefox:101.0.1-geckodriver-0.36.0-grid-4.31.0-20250414\nTagged selenium/standalone-firefox:101.0.1-geckodriver-0.36.0-grid-4.31.0-20250414\nTagged selenium/node-firefox:101.0.1-geckodriver-0.36.0-20250414\nTagged selenium/standalone-firefox:101.0.1-geckodriver-0.36.0-20250414\nTagged selenium/node-firefox:101.0.1-20250414\nTagged selenium/standalone-firefox:101.0.1-20250414\nTagged selenium/node-firefox:101.0-geckodriver-0.36-grid-4.31.0-20250414\nTagged selenium/standalone-firefox:101.0-geckodriver-0.36-grid-4.31.0-20250414\nTagged selenium/node-firefox:101.0-geckodriver-0.36-20250414\nTagged selenium/standalone-firefox:101.0-geckodriver-0.36-20250414\nTagged selenium/node-firefox:101.0-20250414\nTagged selenium/standalone-firefox:101.0-20250414\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.31.0/firefox_102.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.31.0 20250414 selenium false firefox true\nTagging images for browser firefox, version 4.31.0, build date 20250414, namespace selenium\nSelenium Grid version -> 4.31.0-20250414\nFirefox version -> 102.0.1\nShort Firefox version -> 102.0\nGeckoDriver version -> 0.36.0\nShort GeckoDriver version -> 0.36\nTagged selenium/node-firefox:102.0.1-geckodriver-0.36.0-grid-4.31.0-20250414\nTagged selenium/standalone-firefox:102.0.1-geckodriver-0.36.0-grid-4.31.0-20250414\nTagged selenium/node-firefox:102.0.1-geckodriver-0.36.0-20250414\nTagged selenium/standalone-firefox:102.0.1-geckodriver-0.36.0-20250414\nTagged selenium/node-firefox:102.0.1-20250414\nTagged selenium/standalone-firefox:102.0.1-20250414\nTagged selenium/node-firefox:102.0-geckodriver-0.36-grid-4.31.0-20250414\nTagged selenium/standalone-firefox:102.0-geckodriver-0.36-grid-4.31.0-20250414\nTagged selenium/node-firefox:102.0-geckodriver-0.36-20250414\nTagged selenium/standalone-firefox:102.0-geckodriver-0.36-20250414\nTagged selenium/node-firefox:102.0-20250414\nTagged selenium/standalone-firefox:102.0-20250414\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.31.0/firefox_103.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.31.0 20250414 selenium false firefox true\nTagging images for browser firefox, version 4.31.0, build date 20250414, namespace selenium\nSelenium Grid version -> 4.31.0-20250414\nFirefox version -> 103.0.2\nShort Firefox version -> 103.0\nGeckoDriver version -> 0.36.0\nShort GeckoDriver version -> 0.36\nTagged selenium/node-firefox:103.0.2-geckodriver-0.36.0-grid-4.31.0-20250414\nTagged selenium/standalone-firefox:103.0.2-geckodriver-0.36.0-grid-4.31.0-20250414\nTagged selenium/node-firefox:103.0.2-geckodriver-0.36.0-20250414\nTagged selenium/standalone-firefox:103.0.2-geckodriver-0.36.0-20250414\nTagged selenium/node-firefox:103.0.2-20250414\nTagged selenium/standalone-firefox:103.0.2-20250414\nTagged selenium/node-firefox:103.0-geckodriver-0.36-grid-4.31.0-20250414\nTagged selenium/standalone-firefox:103.0-geckodriver-0.36-grid-4.31.0-20250414\nTagged selenium/node-firefox:103.0-geckodriver-0.36-20250414\nTagged selenium/standalone-firefox:103.0-geckodriver-0.36-20250414\nTagged selenium/node-firefox:103.0-20250414\nTagged selenium/standalone-firefox:103.0-20250414\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.31.0/firefox_104.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.31.0 20250414 selenium false firefox true\nTagging images for browser firefox, version 4.31.0, build date 20250414, namespace selenium\nSelenium Grid version -> 4.31.0-20250414\nFirefox version -> 104.0.2\nShort Firefox version -> 104.0\nGeckoDriver version -> 0.36.0\nShort GeckoDriver version -> 0.36\nTagged selenium/node-firefox:104.0.2-geckodriver-0.36.0-grid-4.31.0-20250414\nTagged selenium/standalone-firefox:104.0.2-geckodriver-0.36.0-grid-4.31.0-20250414\nTagged selenium/node-firefox:104.0.2-geckodriver-0.36.0-20250414\nTagged selenium/standalone-firefox:104.0.2-geckodriver-0.36.0-20250414\nTagged selenium/node-firefox:104.0.2-20250414\nTagged selenium/standalone-firefox:104.0.2-20250414\nTagged selenium/node-firefox:104.0-geckodriver-0.36-grid-4.31.0-20250414\nTagged selenium/standalone-firefox:104.0-geckodriver-0.36-grid-4.31.0-20250414\nTagged selenium/node-firefox:104.0-geckodriver-0.36-20250414\nTagged selenium/standalone-firefox:104.0-geckodriver-0.36-20250414\nTagged selenium/node-firefox:104.0-20250414\nTagged selenium/standalone-firefox:104.0-20250414\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.31.0/firefox_105.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.31.0 20250414 selenium false firefox true\nTagging images for browser firefox, version 4.31.0, build date 20250414, namespace selenium\nSelenium Grid version -> 4.31.0-20250414\nFirefox version -> 105.0.3\nShort Firefox version -> 105.0\nGeckoDriver version -> 0.36.0\nShort GeckoDriver version -> 0.36\nTagged selenium/node-firefox:105.0.3-geckodriver-0.36.0-grid-4.31.0-20250414\nTagged selenium/standalone-firefox:105.0.3-geckodriver-0.36.0-grid-4.31.0-20250414\nTagged selenium/node-firefox:105.0.3-geckodriver-0.36.0-20250414\nTagged selenium/standalone-firefox:105.0.3-geckodriver-0.36.0-20250414\nTagged selenium/node-firefox:105.0.3-20250414\nTagged selenium/standalone-firefox:105.0.3-20250414\nTagged selenium/node-firefox:105.0-geckodriver-0.36-grid-4.31.0-20250414\nTagged selenium/standalone-firefox:105.0-geckodriver-0.36-grid-4.31.0-20250414\nTagged selenium/node-firefox:105.0-geckodriver-0.36-20250414\nTagged selenium/standalone-firefox:105.0-geckodriver-0.36-20250414\nTagged selenium/node-firefox:105.0-20250414\nTagged selenium/standalone-firefox:105.0-20250414\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.31.0/firefox_106.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.31.0 20250414 selenium false firefox true\nTagging images for browser firefox, version 4.31.0, build date 20250414, namespace selenium\nSelenium Grid version -> 4.31.0-20250414\nFirefox version -> 106.0.5\nShort Firefox version -> 106.0\nGeckoDriver version -> 0.36.0\nShort GeckoDriver version -> 0.36\nTagged selenium/node-firefox:106.0.5-geckodriver-0.36.0-grid-4.31.0-20250414\nTagged selenium/standalone-firefox:106.0.5-geckodriver-0.36.0-grid-4.31.0-20250414\nTagged selenium/node-firefox:106.0.5-geckodriver-0.36.0-20250414\nTagged selenium/standalone-firefox:106.0.5-geckodriver-0.36.0-20250414\nTagged selenium/node-firefox:106.0.5-20250414\nTagged selenium/standalone-firefox:106.0.5-20250414\nTagged selenium/node-firefox:106.0-geckodriver-0.36-grid-4.31.0-20250414\nTagged selenium/standalone-firefox:106.0-geckodriver-0.36-grid-4.31.0-20250414\nTagged selenium/node-firefox:106.0-geckodriver-0.36-20250414\nTagged selenium/standalone-firefox:106.0-geckodriver-0.36-20250414\nTagged selenium/node-firefox:106.0-20250414\nTagged selenium/standalone-firefox:106.0-20250414\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.31.0/firefox_107.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.31.0 20250414 selenium false firefox true\nTagging images for browser firefox, version 4.31.0, build date 20250414, namespace selenium\nSelenium Grid version -> 4.31.0-20250414\nFirefox version -> 107.0.1\nShort Firefox version -> 107.0\nGeckoDriver version -> 0.36.0\nShort GeckoDriver version -> 0.36\nTagged selenium/node-firefox:107.0.1-geckodriver-0.36.0-grid-4.31.0-20250414\nTagged selenium/standalone-firefox:107.0.1-geckodriver-0.36.0-grid-4.31.0-20250414\nTagged selenium/node-firefox:107.0.1-geckodriver-0.36.0-20250414\nTagged selenium/standalone-firefox:107.0.1-geckodriver-0.36.0-20250414\nTagged selenium/node-firefox:107.0.1-20250414\nTagged selenium/standalone-firefox:107.0.1-20250414\nTagged selenium/node-firefox:107.0-geckodriver-0.36-grid-4.31.0-20250414\nTagged selenium/standalone-firefox:107.0-geckodriver-0.36-grid-4.31.0-20250414\nTagged selenium/node-firefox:107.0-geckodriver-0.36-20250414\nTagged selenium/standalone-firefox:107.0-geckodriver-0.36-20250414\nTagged selenium/node-firefox:107.0-20250414\nTagged selenium/standalone-firefox:107.0-20250414\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.31.0/firefox_108.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.31.0 20250414 selenium false firefox true\nTagging images for browser firefox, version 4.31.0, build date 20250414, namespace selenium\nSelenium Grid version -> 4.31.0-20250414\nFirefox version -> 108.0.2\nShort Firefox version -> 108.0\nGeckoDriver version -> 0.36.0\nShort GeckoDriver version -> 0.36\nTagged selenium/node-firefox:108.0.2-geckodriver-0.36.0-grid-4.31.0-20250414\nTagged selenium/standalone-firefox:108.0.2-geckodriver-0.36.0-grid-4.31.0-20250414\nTagged selenium/node-firefox:108.0.2-geckodriver-0.36.0-20250414\nTagged selenium/standalone-firefox:108.0.2-geckodriver-0.36.0-20250414\nTagged selenium/node-firefox:108.0.2-20250414\nTagged selenium/standalone-firefox:108.0.2-20250414\nTagged selenium/node-firefox:108.0-geckodriver-0.36-grid-4.31.0-20250414\nTagged selenium/standalone-firefox:108.0-geckodriver-0.36-grid-4.31.0-20250414\nTagged selenium/node-firefox:108.0-geckodriver-0.36-20250414\nTagged selenium/standalone-firefox:108.0-geckodriver-0.36-20250414\nTagged selenium/node-firefox:108.0-20250414\nTagged selenium/standalone-firefox:108.0-20250414\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.31.0/firefox_109.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.31.0 20250414 selenium false firefox true\nTagging images for browser firefox, version 4.31.0, build date 20250414, namespace selenium\nSelenium Grid version -> 4.31.0-20250414\nFirefox version -> 109.0.1\nShort Firefox version -> 109.0\nGeckoDriver version -> 0.36.0\nShort GeckoDriver version -> 0.36\nTagged selenium/node-firefox:109.0.1-geckodriver-0.36.0-grid-4.31.0-20250414\nTagged selenium/standalone-firefox:109.0.1-geckodriver-0.36.0-grid-4.31.0-20250414\nTagged selenium/node-firefox:109.0.1-geckodriver-0.36.0-20250414\nTagged selenium/standalone-firefox:109.0.1-geckodriver-0.36.0-20250414\nTagged selenium/node-firefox:109.0.1-20250414\nTagged selenium/standalone-firefox:109.0.1-20250414\nTagged selenium/node-firefox:109.0-geckodriver-0.36-grid-4.31.0-20250414\nTagged selenium/standalone-firefox:109.0-geckodriver-0.36-grid-4.31.0-20250414\nTagged selenium/node-firefox:109.0-geckodriver-0.36-20250414\nTagged selenium/standalone-firefox:109.0-geckodriver-0.36-20250414\nTagged selenium/node-firefox:109.0-20250414\nTagged selenium/standalone-firefox:109.0-20250414\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.31.0/firefox_110.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.31.0 20250414 selenium false firefox true\nTagging images for browser firefox, version 4.31.0, build date 20250414, namespace selenium\nSelenium Grid version -> 4.31.0-20250414\nFirefox version -> 110.0.1\nShort Firefox version -> 110.0\nGeckoDriver version -> 0.36.0\nShort GeckoDriver version -> 0.36\nTagged selenium/node-firefox:110.0.1-geckodriver-0.36.0-grid-4.31.0-20250414\nTagged selenium/standalone-firefox:110.0.1-geckodriver-0.36.0-grid-4.31.0-20250414\nTagged selenium/node-firefox:110.0.1-geckodriver-0.36.0-20250414\nTagged selenium/standalone-firefox:110.0.1-geckodriver-0.36.0-20250414\nTagged selenium/node-firefox:110.0.1-20250414\nTagged selenium/standalone-firefox:110.0.1-20250414\nTagged selenium/node-firefox:110.0-geckodriver-0.36-grid-4.31.0-20250414\nTagged selenium/standalone-firefox:110.0-geckodriver-0.36-grid-4.31.0-20250414\nTagged selenium/node-firefox:110.0-geckodriver-0.36-20250414\nTagged selenium/standalone-firefox:110.0-geckodriver-0.36-20250414\nTagged selenium/node-firefox:110.0-20250414\nTagged selenium/standalone-firefox:110.0-20250414\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.31.0/firefox_111.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.31.0 20250414 selenium false firefox true\nTagging images for browser firefox, version 4.31.0, build date 20250414, namespace selenium\nSelenium Grid version -> 4.31.0-20250414\nFirefox version -> 111.0.1\nShort Firefox version -> 111.0\nGeckoDriver version -> 0.36.0\nShort GeckoDriver version -> 0.36\nTagged selenium/node-firefox:111.0.1-geckodriver-0.36.0-grid-4.31.0-20250414\nTagged selenium/standalone-firefox:111.0.1-geckodriver-0.36.0-grid-4.31.0-20250414\nTagged selenium/node-firefox:111.0.1-geckodriver-0.36.0-20250414\nTagged selenium/standalone-firefox:111.0.1-geckodriver-0.36.0-20250414\nTagged selenium/node-firefox:111.0.1-20250414\nTagged selenium/standalone-firefox:111.0.1-20250414\nTagged selenium/node-firefox:111.0-geckodriver-0.36-grid-4.31.0-20250414\nTagged selenium/standalone-firefox:111.0-geckodriver-0.36-grid-4.31.0-20250414\nTagged selenium/node-firefox:111.0-geckodriver-0.36-20250414\nTagged selenium/standalone-firefox:111.0-geckodriver-0.36-20250414\nTagged selenium/node-firefox:111.0-20250414\nTagged selenium/standalone-firefox:111.0-20250414\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.31.0/firefox_112.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.31.0 20250414 selenium false firefox true\nTagging images for browser firefox, version 4.31.0, build date 20250414, namespace selenium\nSelenium Grid version -> 4.31.0-20250414\nFirefox version -> 112.0.2\nShort Firefox version -> 112.0\nGeckoDriver version -> 0.36.0\nShort GeckoDriver version -> 0.36\nTagged selenium/node-firefox:112.0.2-geckodriver-0.36.0-grid-4.31.0-20250414\nTagged selenium/standalone-firefox:112.0.2-geckodriver-0.36.0-grid-4.31.0-20250414\nTagged selenium/node-firefox:112.0.2-geckodriver-0.36.0-20250414\nTagged selenium/standalone-firefox:112.0.2-geckodriver-0.36.0-20250414\nTagged selenium/node-firefox:112.0.2-20250414\nTagged selenium/standalone-firefox:112.0.2-20250414\nTagged selenium/node-firefox:112.0-geckodriver-0.36-grid-4.31.0-20250414\nTagged selenium/standalone-firefox:112.0-geckodriver-0.36-grid-4.31.0-20250414\nTagged selenium/node-firefox:112.0-geckodriver-0.36-20250414\nTagged selenium/standalone-firefox:112.0-geckodriver-0.36-20250414\nTagged selenium/node-firefox:112.0-20250414\nTagged selenium/standalone-firefox:112.0-20250414\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.31.0/firefox_113.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.31.0 20250414 selenium false firefox true\nTagging images for browser firefox, version 4.31.0, build date 20250414, namespace selenium\nSelenium Grid version -> 4.31.0-20250414\nFirefox version -> 113.0.2\nShort Firefox version -> 113.0\nGeckoDriver version -> 0.36.0\nShort GeckoDriver version -> 0.36\nTagged selenium/node-firefox:113.0.2-geckodriver-0.36.0-grid-4.31.0-20250414\nTagged selenium/standalone-firefox:113.0.2-geckodriver-0.36.0-grid-4.31.0-20250414\nTagged selenium/node-firefox:113.0.2-geckodriver-0.36.0-20250414\nTagged selenium/standalone-firefox:113.0.2-geckodriver-0.36.0-20250414\nTagged selenium/node-firefox:113.0.2-20250414\nTagged selenium/standalone-firefox:113.0.2-20250414\nTagged selenium/node-firefox:113.0-geckodriver-0.36-grid-4.31.0-20250414\nTagged selenium/standalone-firefox:113.0-geckodriver-0.36-grid-4.31.0-20250414\nTagged selenium/node-firefox:113.0-geckodriver-0.36-20250414\nTagged selenium/standalone-firefox:113.0-geckodriver-0.36-20250414\nTagged selenium/node-firefox:113.0-20250414\nTagged selenium/standalone-firefox:113.0-20250414\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.31.0/firefox_114.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.31.0 20250414 selenium false firefox true\nTagging images for browser firefox, version 4.31.0, build date 20250414, namespace selenium\nSelenium Grid version -> 4.31.0-20250414\nFirefox version -> 114.0.2\nShort Firefox version -> 114.0\nGeckoDriver version -> 0.36.0\nShort GeckoDriver version -> 0.36\nTagged selenium/node-firefox:114.0.2-geckodriver-0.36.0-grid-4.31.0-20250414\nTagged selenium/standalone-firefox:114.0.2-geckodriver-0.36.0-grid-4.31.0-20250414\nTagged selenium/node-firefox:114.0.2-geckodriver-0.36.0-20250414\nTagged selenium/standalone-firefox:114.0.2-geckodriver-0.36.0-20250414\nTagged selenium/node-firefox:114.0.2-20250414\nTagged selenium/standalone-firefox:114.0.2-20250414\nTagged selenium/node-firefox:114.0-geckodriver-0.36-grid-4.31.0-20250414\nTagged selenium/standalone-firefox:114.0-geckodriver-0.36-grid-4.31.0-20250414\nTagged selenium/node-firefox:114.0-geckodriver-0.36-20250414\nTagged selenium/standalone-firefox:114.0-geckodriver-0.36-20250414\nTagged selenium/node-firefox:114.0-20250414\nTagged selenium/standalone-firefox:114.0-20250414\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.31.0/firefox_115.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.31.0 20250414 selenium false firefox true\nTagging images for browser firefox, version 4.31.0, build date 20250414, namespace selenium\nSelenium Grid version -> 4.31.0-20250414\nFirefox version -> 115.0.3\nShort Firefox version -> 115.0\nGeckoDriver version -> 0.36.0\nShort GeckoDriver version -> 0.36\nTagged selenium/node-firefox:115.0.3-geckodriver-0.36.0-grid-4.31.0-20250414\nTagged selenium/standalone-firefox:115.0.3-geckodriver-0.36.0-grid-4.31.0-20250414\nTagged selenium/node-firefox:115.0.3-geckodriver-0.36.0-20250414\nTagged selenium/standalone-firefox:115.0.3-geckodriver-0.36.0-20250414\nTagged selenium/node-firefox:115.0.3-20250414\nTagged selenium/standalone-firefox:115.0.3-20250414\nTagged selenium/node-firefox:115.0-geckodriver-0.36-grid-4.31.0-20250414\nTagged selenium/standalone-firefox:115.0-geckodriver-0.36-grid-4.31.0-20250414\nTagged selenium/node-firefox:115.0-geckodriver-0.36-20250414\nTagged selenium/standalone-firefox:115.0-geckodriver-0.36-20250414\nTagged selenium/node-firefox:115.0-20250414\nTagged selenium/standalone-firefox:115.0-20250414\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.31.0/firefox_116.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.31.0 20250414 selenium false firefox true\nTagging images for browser firefox, version 4.31.0, build date 20250414, namespace selenium\nSelenium Grid version -> 4.31.0-20250414\nFirefox version -> 116.0.3\nShort Firefox version -> 116.0\nGeckoDriver version -> 0.36.0\nShort GeckoDriver version -> 0.36\nTagged selenium/node-firefox:116.0.3-geckodriver-0.36.0-grid-4.31.0-20250414\nTagged selenium/standalone-firefox:116.0.3-geckodriver-0.36.0-grid-4.31.0-20250414\nTagged selenium/node-firefox:116.0.3-geckodriver-0.36.0-20250414\nTagged selenium/standalone-firefox:116.0.3-geckodriver-0.36.0-20250414\nTagged selenium/node-firefox:116.0.3-20250414\nTagged selenium/standalone-firefox:116.0.3-20250414\nTagged selenium/node-firefox:116.0-geckodriver-0.36-grid-4.31.0-20250414\nTagged selenium/standalone-firefox:116.0-geckodriver-0.36-grid-4.31.0-20250414\nTagged selenium/node-firefox:116.0-geckodriver-0.36-20250414\nTagged selenium/standalone-firefox:116.0-geckodriver-0.36-20250414\nTagged selenium/node-firefox:116.0-20250414\nTagged selenium/standalone-firefox:116.0-20250414\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.31.0/firefox_117.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.31.0 20250414 selenium false firefox true\nTagging images for browser firefox, version 4.31.0, build date 20250414, namespace selenium\nSelenium Grid version -> 4.31.0-20250414\nFirefox version -> 117.0.1\nShort Firefox version -> 117.0\nGeckoDriver version -> 0.36.0\nShort GeckoDriver version -> 0.36\nTagged selenium/node-firefox:117.0.1-geckodriver-0.36.0-grid-4.31.0-20250414\nTagged selenium/standalone-firefox:117.0.1-geckodriver-0.36.0-grid-4.31.0-20250414\nTagged selenium/node-firefox:117.0.1-geckodriver-0.36.0-20250414\nTagged selenium/standalone-firefox:117.0.1-geckodriver-0.36.0-20250414\nTagged selenium/node-firefox:117.0.1-20250414\nTagged selenium/standalone-firefox:117.0.1-20250414\nTagged selenium/node-firefox:117.0-geckodriver-0.36-grid-4.31.0-20250414\nTagged selenium/standalone-firefox:117.0-geckodriver-0.36-grid-4.31.0-20250414\nTagged selenium/node-firefox:117.0-geckodriver-0.36-20250414\nTagged selenium/standalone-firefox:117.0-geckodriver-0.36-20250414\nTagged selenium/node-firefox:117.0-20250414\nTagged selenium/standalone-firefox:117.0-20250414\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.31.0/firefox_118.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.31.0 20250414 selenium false firefox true\nTagging images for browser firefox, version 4.31.0, build date 20250414, namespace selenium\nSelenium Grid version -> 4.31.0-20250414\nFirefox version -> 118.0.2\nShort Firefox version -> 118.0\nGeckoDriver version -> 0.36.0\nShort GeckoDriver version -> 0.36\nTagged selenium/node-firefox:118.0.2-geckodriver-0.36.0-grid-4.31.0-20250414\nTagged selenium/standalone-firefox:118.0.2-geckodriver-0.36.0-grid-4.31.0-20250414\nTagged selenium/node-firefox:118.0.2-geckodriver-0.36.0-20250414\nTagged selenium/standalone-firefox:118.0.2-geckodriver-0.36.0-20250414\nTagged selenium/node-firefox:118.0.2-20250414\nTagged selenium/standalone-firefox:118.0.2-20250414\nTagged selenium/node-firefox:118.0-geckodriver-0.36-grid-4.31.0-20250414\nTagged selenium/standalone-firefox:118.0-geckodriver-0.36-grid-4.31.0-20250414\nTagged selenium/node-firefox:118.0-geckodriver-0.36-20250414\nTagged selenium/standalone-firefox:118.0-geckodriver-0.36-20250414\nTagged selenium/node-firefox:118.0-20250414\nTagged selenium/standalone-firefox:118.0-20250414\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.31.0/firefox_119.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.31.0 20250414 selenium false firefox true\nTagging images for browser firefox, version 4.31.0, build date 20250414, namespace selenium\nSelenium Grid version -> 4.31.0-20250414\nFirefox version -> 119.0.1\nShort Firefox version -> 119.0\nGeckoDriver version -> 0.36.0\nShort GeckoDriver version -> 0.36\nTagged selenium/node-firefox:119.0.1-geckodriver-0.36.0-grid-4.31.0-20250414\nTagged selenium/standalone-firefox:119.0.1-geckodriver-0.36.0-grid-4.31.0-20250414\nTagged selenium/node-firefox:119.0.1-geckodriver-0.36.0-20250414\nTagged selenium/standalone-firefox:119.0.1-geckodriver-0.36.0-20250414\nTagged selenium/node-firefox:119.0.1-20250414\nTagged selenium/standalone-firefox:119.0.1-20250414\nTagged selenium/node-firefox:119.0-geckodriver-0.36-grid-4.31.0-20250414\nTagged selenium/standalone-firefox:119.0-geckodriver-0.36-grid-4.31.0-20250414\nTagged selenium/node-firefox:119.0-geckodriver-0.36-20250414\nTagged selenium/standalone-firefox:119.0-geckodriver-0.36-20250414\nTagged selenium/node-firefox:119.0-20250414\nTagged selenium/standalone-firefox:119.0-20250414\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.31.0/firefox_120.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.31.0 20250414 selenium false firefox true\nTagging images for browser firefox, version 4.31.0, build date 20250414, namespace selenium\nSelenium Grid version -> 4.31.0-20250414\nFirefox version -> 120.0.1\nShort Firefox version -> 120.0\nGeckoDriver version -> 0.36.0\nShort GeckoDriver version -> 0.36\nTagged selenium/node-firefox:120.0.1-geckodriver-0.36.0-grid-4.31.0-20250414\nTagged selenium/standalone-firefox:120.0.1-geckodriver-0.36.0-grid-4.31.0-20250414\nTagged selenium/node-firefox:120.0.1-geckodriver-0.36.0-20250414\nTagged selenium/standalone-firefox:120.0.1-geckodriver-0.36.0-20250414\nTagged selenium/node-firefox:120.0.1-20250414\nTagged selenium/standalone-firefox:120.0.1-20250414\nTagged selenium/node-firefox:120.0-geckodriver-0.36-grid-4.31.0-20250414\nTagged selenium/standalone-firefox:120.0-geckodriver-0.36-grid-4.31.0-20250414\nTagged selenium/node-firefox:120.0-geckodriver-0.36-20250414\nTagged selenium/standalone-firefox:120.0-geckodriver-0.36-20250414\nTagged selenium/node-firefox:120.0-20250414\nTagged selenium/standalone-firefox:120.0-20250414\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.31.0/firefox_121.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.31.0 20250414 selenium false firefox true\nTagging images for browser firefox, version 4.31.0, build date 20250414, namespace selenium\nSelenium Grid version -> 4.31.0-20250414\nFirefox version -> 121.0.1\nShort Firefox version -> 121.0\nGeckoDriver version -> 0.36.0\nShort GeckoDriver version -> 0.36\nTagged selenium/node-firefox:121.0.1-geckodriver-0.36.0-grid-4.31.0-20250414\nTagged selenium/standalone-firefox:121.0.1-geckodriver-0.36.0-grid-4.31.0-20250414\nTagged selenium/node-firefox:121.0.1-geckodriver-0.36.0-20250414\nTagged selenium/standalone-firefox:121.0.1-geckodriver-0.36.0-20250414\nTagged selenium/node-firefox:121.0.1-20250414\nTagged selenium/standalone-firefox:121.0.1-20250414\nTagged selenium/node-firefox:121.0-geckodriver-0.36-grid-4.31.0-20250414\nTagged selenium/standalone-firefox:121.0-geckodriver-0.36-grid-4.31.0-20250414\nTagged selenium/node-firefox:121.0-geckodriver-0.36-20250414\nTagged selenium/standalone-firefox:121.0-geckodriver-0.36-20250414\nTagged selenium/node-firefox:121.0-20250414\nTagged selenium/standalone-firefox:121.0-20250414\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.31.0/firefox_122.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.31.0 20250414 selenium false firefox true\nTagging images for browser firefox, version 4.31.0, build date 20250414, namespace selenium\nSelenium Grid version -> 4.31.0-20250414\nFirefox version -> 122.0.1\nShort Firefox version -> 122.0\nGeckoDriver version -> 0.36.0\nShort GeckoDriver version -> 0.36\nTagged selenium/node-firefox:122.0.1-geckodriver-0.36.0-grid-4.31.0-20250414\nTagged selenium/standalone-firefox:122.0.1-geckodriver-0.36.0-grid-4.31.0-20250414\nTagged selenium/node-firefox:122.0.1-geckodriver-0.36.0-20250414\nTagged selenium/standalone-firefox:122.0.1-geckodriver-0.36.0-20250414\nTagged selenium/node-firefox:122.0.1-20250414\nTagged selenium/standalone-firefox:122.0.1-20250414\nTagged selenium/node-firefox:122.0-geckodriver-0.36-grid-4.31.0-20250414\nTagged selenium/standalone-firefox:122.0-geckodriver-0.36-grid-4.31.0-20250414\nTagged selenium/node-firefox:122.0-geckodriver-0.36-20250414\nTagged selenium/standalone-firefox:122.0-geckodriver-0.36-20250414\nTagged selenium/node-firefox:122.0-20250414\nTagged selenium/standalone-firefox:122.0-20250414\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.31.0/firefox_123.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.31.0 20250414 selenium false firefox true\nTagging images for browser firefox, version 4.31.0, build date 20250414, namespace selenium\nSelenium Grid version -> 4.31.0-20250414\nFirefox version -> 123.0.1\nShort Firefox version -> 123.0\nGeckoDriver version -> 0.36.0\nShort GeckoDriver version -> 0.36\nTagged selenium/node-firefox:123.0.1-geckodriver-0.36.0-grid-4.31.0-20250414\nTagged selenium/standalone-firefox:123.0.1-geckodriver-0.36.0-grid-4.31.0-20250414\nTagged selenium/node-firefox:123.0.1-geckodriver-0.36.0-20250414\nTagged selenium/standalone-firefox:123.0.1-geckodriver-0.36.0-20250414\nTagged selenium/node-firefox:123.0.1-20250414\nTagged selenium/standalone-firefox:123.0.1-20250414\nTagged selenium/node-firefox:123.0-geckodriver-0.36-grid-4.31.0-20250414\nTagged selenium/standalone-firefox:123.0-geckodriver-0.36-grid-4.31.0-20250414\nTagged selenium/node-firefox:123.0-geckodriver-0.36-20250414\nTagged selenium/standalone-firefox:123.0-geckodriver-0.36-20250414\nTagged selenium/node-firefox:123.0-20250414\nTagged selenium/standalone-firefox:123.0-20250414\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.31.0/firefox_124.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.31.0 20250414 selenium false firefox true\nTagging images for browser firefox, version 4.31.0, build date 20250414, namespace selenium\nSelenium Grid version -> 4.31.0-20250414\nFirefox version -> 124.0.2\nShort Firefox version -> 124.0\nGeckoDriver version -> 0.36.0\nShort GeckoDriver version -> 0.36\nTagged selenium/node-firefox:124.0.2-geckodriver-0.36.0-grid-4.31.0-20250414\nTagged selenium/standalone-firefox:124.0.2-geckodriver-0.36.0-grid-4.31.0-20250414\nTagged selenium/node-firefox:124.0.2-geckodriver-0.36.0-20250414\nTagged selenium/standalone-firefox:124.0.2-geckodriver-0.36.0-20250414\nTagged selenium/node-firefox:124.0.2-20250414\nTagged selenium/standalone-firefox:124.0.2-20250414\nTagged selenium/node-firefox:124.0-geckodriver-0.36-grid-4.31.0-20250414\nTagged selenium/standalone-firefox:124.0-geckodriver-0.36-grid-4.31.0-20250414\nTagged selenium/node-firefox:124.0-geckodriver-0.36-20250414\nTagged selenium/standalone-firefox:124.0-geckodriver-0.36-20250414\nTagged selenium/node-firefox:124.0-20250414\nTagged selenium/standalone-firefox:124.0-20250414\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.31.0/firefox_125.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.31.0 20250414 selenium false firefox true\nTagging images for browser firefox, version 4.31.0, build date 20250414, namespace selenium\nSelenium Grid version -> 4.31.0-20250414\nFirefox version -> 125.0.3\nShort Firefox version -> 125.0\nGeckoDriver version -> 0.36.0\nShort GeckoDriver version -> 0.36\nTagged selenium/node-firefox:125.0.3-geckodriver-0.36.0-grid-4.31.0-20250414\nTagged selenium/standalone-firefox:125.0.3-geckodriver-0.36.0-grid-4.31.0-20250414\nTagged selenium/node-firefox:125.0.3-geckodriver-0.36.0-20250414\nTagged selenium/standalone-firefox:125.0.3-geckodriver-0.36.0-20250414\nTagged selenium/node-firefox:125.0.3-20250414\nTagged selenium/standalone-firefox:125.0.3-20250414\nTagged selenium/node-firefox:125.0-geckodriver-0.36-grid-4.31.0-20250414\nTagged selenium/standalone-firefox:125.0-geckodriver-0.36-grid-4.31.0-20250414\nTagged selenium/node-firefox:125.0-geckodriver-0.36-20250414\nTagged selenium/standalone-firefox:125.0-geckodriver-0.36-20250414\nTagged selenium/node-firefox:125.0-20250414\nTagged selenium/standalone-firefox:125.0-20250414\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.31.0/firefox_126.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.31.0 20250414 selenium false firefox true\nTagging images for browser firefox, version 4.31.0, build date 20250414, namespace selenium\nSelenium Grid version -> 4.31.0-20250414\nFirefox version -> 126.0.1\nShort Firefox version -> 126.0\nGeckoDriver version -> 0.36.0\nShort GeckoDriver version -> 0.36\nTagged selenium/node-firefox:126.0.1-geckodriver-0.36.0-grid-4.31.0-20250414\nTagged selenium/standalone-firefox:126.0.1-geckodriver-0.36.0-grid-4.31.0-20250414\nTagged selenium/node-firefox:126.0.1-geckodriver-0.36.0-20250414\nTagged selenium/standalone-firefox:126.0.1-geckodriver-0.36.0-20250414\nTagged selenium/node-firefox:126.0.1-20250414\nTagged selenium/standalone-firefox:126.0.1-20250414\nTagged selenium/node-firefox:126.0-geckodriver-0.36-grid-4.31.0-20250414\nTagged selenium/standalone-firefox:126.0-geckodriver-0.36-grid-4.31.0-20250414\nTagged selenium/node-firefox:126.0-geckodriver-0.36-20250414\nTagged selenium/standalone-firefox:126.0-geckodriver-0.36-20250414\nTagged selenium/node-firefox:126.0-20250414\nTagged selenium/standalone-firefox:126.0-20250414\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.31.0/firefox_127.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.31.0 20250414 selenium false firefox true\nTagging images for browser firefox, version 4.31.0, build date 20250414, namespace selenium\nSelenium Grid version -> 4.31.0-20250414\nFirefox version -> 127.0.2\nShort Firefox version -> 127.0\nGeckoDriver version -> 0.36.0\nShort GeckoDriver version -> 0.36\nTagged selenium/node-firefox:127.0.2-geckodriver-0.36.0-grid-4.31.0-20250414\nTagged selenium/standalone-firefox:127.0.2-geckodriver-0.36.0-grid-4.31.0-20250414\nTagged selenium/node-firefox:127.0.2-geckodriver-0.36.0-20250414\nTagged selenium/standalone-firefox:127.0.2-geckodriver-0.36.0-20250414\nTagged selenium/node-firefox:127.0.2-20250414\nTagged selenium/standalone-firefox:127.0.2-20250414\nTagged selenium/node-firefox:127.0-geckodriver-0.36-grid-4.31.0-20250414\nTagged selenium/standalone-firefox:127.0-geckodriver-0.36-grid-4.31.0-20250414\nTagged selenium/node-firefox:127.0-geckodriver-0.36-20250414\nTagged selenium/standalone-firefox:127.0-geckodriver-0.36-20250414\nTagged selenium/node-firefox:127.0-20250414\nTagged selenium/standalone-firefox:127.0-20250414\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.31.0/firefox_128.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.31.0 20250414 selenium false firefox true\nTagging images for browser firefox, version 4.31.0, build date 20250414, namespace selenium\nSelenium Grid version -> 4.31.0-20250414\nFirefox version -> 128.0.3\nShort Firefox version -> 128.0\nGeckoDriver version -> 0.36.0\nShort GeckoDriver version -> 0.36\nTagged selenium/node-firefox:128.0.3-geckodriver-0.36.0-grid-4.31.0-20250414\nTagged selenium/standalone-firefox:128.0.3-geckodriver-0.36.0-grid-4.31.0-20250414\nTagged selenium/node-firefox:128.0.3-geckodriver-0.36.0-20250414\nTagged selenium/standalone-firefox:128.0.3-geckodriver-0.36.0-20250414\nTagged selenium/node-firefox:128.0.3-20250414\nTagged selenium/standalone-firefox:128.0.3-20250414\nTagged selenium/node-firefox:128.0-geckodriver-0.36-grid-4.31.0-20250414\nTagged selenium/standalone-firefox:128.0-geckodriver-0.36-grid-4.31.0-20250414\nTagged selenium/node-firefox:128.0-geckodriver-0.36-20250414\nTagged selenium/standalone-firefox:128.0-geckodriver-0.36-20250414\nTagged selenium/node-firefox:128.0-20250414\nTagged selenium/standalone-firefox:128.0-20250414\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.31.0/firefox_129.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.31.0 20250414 selenium false firefox true\nTagging images for browser firefox, version 4.31.0, build date 20250414, namespace selenium\nSelenium Grid version -> 4.31.0-20250414\nFirefox version -> 129.0.2\nShort Firefox version -> 129.0\nGeckoDriver version -> 0.36.0\nShort GeckoDriver version -> 0.36\nTagged selenium/node-firefox:129.0.2-geckodriver-0.36.0-grid-4.31.0-20250414\nTagged selenium/standalone-firefox:129.0.2-geckodriver-0.36.0-grid-4.31.0-20250414\nTagged selenium/node-firefox:129.0.2-geckodriver-0.36.0-20250414\nTagged selenium/standalone-firefox:129.0.2-geckodriver-0.36.0-20250414\nTagged selenium/node-firefox:129.0.2-20250414\nTagged selenium/standalone-firefox:129.0.2-20250414\nTagged selenium/node-firefox:129.0-geckodriver-0.36-grid-4.31.0-20250414\nTagged selenium/standalone-firefox:129.0-geckodriver-0.36-grid-4.31.0-20250414\nTagged selenium/node-firefox:129.0-geckodriver-0.36-20250414\nTagged selenium/standalone-firefox:129.0-geckodriver-0.36-20250414\nTagged selenium/node-firefox:129.0-20250414\nTagged selenium/standalone-firefox:129.0-20250414\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.31.0/firefox_130.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.31.0 20250414 selenium false firefox true\nTagging images for browser firefox, version 4.31.0, build date 20250414, namespace selenium\nSelenium Grid version -> 4.31.0-20250414\nFirefox version -> 130.0.1\nShort Firefox version -> 130.0\nGeckoDriver version -> 0.36.0\nShort GeckoDriver version -> 0.36\nTagged selenium/node-firefox:130.0.1-geckodriver-0.36.0-grid-4.31.0-20250414\nTagged selenium/standalone-firefox:130.0.1-geckodriver-0.36.0-grid-4.31.0-20250414\nTagged selenium/node-firefox:130.0.1-geckodriver-0.36.0-20250414\nTagged selenium/standalone-firefox:130.0.1-geckodriver-0.36.0-20250414\nTagged selenium/node-firefox:130.0.1-20250414\nTagged selenium/standalone-firefox:130.0.1-20250414\nTagged selenium/node-firefox:130.0-geckodriver-0.36-grid-4.31.0-20250414\nTagged selenium/standalone-firefox:130.0-geckodriver-0.36-grid-4.31.0-20250414\nTagged selenium/node-firefox:130.0-geckodriver-0.36-20250414\nTagged selenium/standalone-firefox:130.0-geckodriver-0.36-20250414\nTagged selenium/node-firefox:130.0-20250414\nTagged selenium/standalone-firefox:130.0-20250414\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.31.0/firefox_131.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.31.0 20250414 selenium false firefox true\nTagging images for browser firefox, version 4.31.0, build date 20250414, namespace selenium\nSelenium Grid version -> 4.31.0-20250414\nFirefox version -> 131.0.3\nShort Firefox version -> 131.0\nGeckoDriver version -> 0.36.0\nShort GeckoDriver version -> 0.36\nTagged selenium/node-firefox:131.0.3-geckodriver-0.36.0-grid-4.31.0-20250414\nTagged selenium/standalone-firefox:131.0.3-geckodriver-0.36.0-grid-4.31.0-20250414\nTagged selenium/node-firefox:131.0.3-geckodriver-0.36.0-20250414\nTagged selenium/standalone-firefox:131.0.3-geckodriver-0.36.0-20250414\nTagged selenium/node-firefox:131.0.3-20250414\nTagged selenium/standalone-firefox:131.0.3-20250414\nTagged selenium/node-firefox:131.0-geckodriver-0.36-grid-4.31.0-20250414\nTagged selenium/standalone-firefox:131.0-geckodriver-0.36-grid-4.31.0-20250414\nTagged selenium/node-firefox:131.0-geckodriver-0.36-20250414\nTagged selenium/standalone-firefox:131.0-geckodriver-0.36-20250414\nTagged selenium/node-firefox:131.0-20250414\nTagged selenium/standalone-firefox:131.0-20250414\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.31.0/firefox_132.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.31.0 20250414 selenium false firefox true\nTagging images for browser firefox, version 4.31.0, build date 20250414, namespace selenium\nSelenium Grid version -> 4.31.0-20250414\nFirefox version -> 132.0.2\nShort Firefox version -> 132.0\nGeckoDriver version -> 0.36.0\nShort GeckoDriver version -> 0.36\nTagged selenium/node-firefox:132.0.2-geckodriver-0.36.0-grid-4.31.0-20250414\nTagged selenium/standalone-firefox:132.0.2-geckodriver-0.36.0-grid-4.31.0-20250414\nTagged selenium/node-firefox:132.0.2-geckodriver-0.36.0-20250414\nTagged selenium/standalone-firefox:132.0.2-geckodriver-0.36.0-20250414\nTagged selenium/node-firefox:132.0.2-20250414\nTagged selenium/standalone-firefox:132.0.2-20250414\nTagged selenium/node-firefox:132.0-geckodriver-0.36-grid-4.31.0-20250414\nTagged selenium/standalone-firefox:132.0-geckodriver-0.36-grid-4.31.0-20250414\nTagged selenium/node-firefox:132.0-geckodriver-0.36-20250414\nTagged selenium/standalone-firefox:132.0-geckodriver-0.36-20250414\nTagged selenium/node-firefox:132.0-20250414\nTagged selenium/standalone-firefox:132.0-20250414\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.31.0/firefox_133.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.31.0 20250414 selenium false firefox true\nTagging images for browser firefox, version 4.31.0, build date 20250414, namespace selenium\nSelenium Grid version -> 4.31.0-20250414\nFirefox version -> 133.0.3\nShort Firefox version -> 133.0\nGeckoDriver version -> 0.36.0\nShort GeckoDriver version -> 0.36\nTagged selenium/node-firefox:133.0.3-geckodriver-0.36.0-grid-4.31.0-20250414\nTagged selenium/standalone-firefox:133.0.3-geckodriver-0.36.0-grid-4.31.0-20250414\nTagged selenium/node-firefox:133.0.3-geckodriver-0.36.0-20250414\nTagged selenium/standalone-firefox:133.0.3-geckodriver-0.36.0-20250414\nTagged selenium/node-firefox:133.0.3-20250414\nTagged selenium/standalone-firefox:133.0.3-20250414\nTagged selenium/node-firefox:133.0-geckodriver-0.36-grid-4.31.0-20250414\nTagged selenium/standalone-firefox:133.0-geckodriver-0.36-grid-4.31.0-20250414\nTagged selenium/node-firefox:133.0-geckodriver-0.36-20250414\nTagged selenium/standalone-firefox:133.0-geckodriver-0.36-20250414\nTagged selenium/node-firefox:133.0-20250414\nTagged selenium/standalone-firefox:133.0-20250414\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.31.0/firefox_134.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.31.0 20250414 selenium false firefox true\nTagging images for browser firefox, version 4.31.0, build date 20250414, namespace selenium\nSelenium Grid version -> 4.31.0-20250414\nFirefox version -> 134.0.2\nShort Firefox version -> 134.0\nGeckoDriver version -> 0.36.0\nShort GeckoDriver version -> 0.36\nTagged selenium/node-firefox:134.0.2-geckodriver-0.36.0-grid-4.31.0-20250414\nTagged selenium/standalone-firefox:134.0.2-geckodriver-0.36.0-grid-4.31.0-20250414\nTagged selenium/node-firefox:134.0.2-geckodriver-0.36.0-20250414\nTagged selenium/standalone-firefox:134.0.2-geckodriver-0.36.0-20250414\nTagged selenium/node-firefox:134.0.2-20250414\nTagged selenium/standalone-firefox:134.0.2-20250414\nTagged selenium/node-firefox:134.0-geckodriver-0.36-grid-4.31.0-20250414\nTagged selenium/standalone-firefox:134.0-geckodriver-0.36-grid-4.31.0-20250414\nTagged selenium/node-firefox:134.0-geckodriver-0.36-20250414\nTagged selenium/standalone-firefox:134.0-geckodriver-0.36-20250414\nTagged selenium/node-firefox:134.0-20250414\nTagged selenium/standalone-firefox:134.0-20250414\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.31.0/firefox_135.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.31.0 20250414 selenium false firefox true\nTagging images for browser firefox, version 4.31.0, build date 20250414, namespace selenium\nSelenium Grid version -> 4.31.0-20250414\nFirefox version -> 135.0.1\nShort Firefox version -> 135.0\nGeckoDriver version -> 0.36.0\nShort GeckoDriver version -> 0.36\nTagged selenium/node-firefox:135.0.1-geckodriver-0.36.0-grid-4.31.0-20250414\nTagged selenium/standalone-firefox:135.0.1-geckodriver-0.36.0-grid-4.31.0-20250414\nTagged selenium/node-firefox:135.0.1-geckodriver-0.36.0-20250414\nTagged selenium/standalone-firefox:135.0.1-geckodriver-0.36.0-20250414\nTagged selenium/node-firefox:135.0.1-20250414\nTagged selenium/standalone-firefox:135.0.1-20250414\nTagged selenium/node-firefox:135.0-geckodriver-0.36-grid-4.31.0-20250414\nTagged selenium/standalone-firefox:135.0-geckodriver-0.36-grid-4.31.0-20250414\nTagged selenium/node-firefox:135.0-geckodriver-0.36-20250414\nTagged selenium/standalone-firefox:135.0-geckodriver-0.36-20250414\nTagged selenium/node-firefox:135.0-20250414\nTagged selenium/standalone-firefox:135.0-20250414\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.31.0/firefox_136.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.31.0 20250414 selenium false firefox true\nTagging images for browser firefox, version 4.31.0, build date 20250414, namespace selenium\nSelenium Grid version -> 4.31.0-20250414\nFirefox version -> 136.0.4\nShort Firefox version -> 136.0\nGeckoDriver version -> 0.36.0\nShort GeckoDriver version -> 0.36\nTagged selenium/node-firefox:136.0.4-geckodriver-0.36.0-grid-4.31.0-20250414\nTagged selenium/standalone-firefox:136.0.4-geckodriver-0.36.0-grid-4.31.0-20250414\nTagged selenium/node-firefox:136.0.4-geckodriver-0.36.0-20250414\nTagged selenium/standalone-firefox:136.0.4-geckodriver-0.36.0-20250414\nTagged selenium/node-firefox:136.0.4-20250414\nTagged selenium/standalone-firefox:136.0.4-20250414\nTagged selenium/node-firefox:136.0-geckodriver-0.36-grid-4.31.0-20250414\nTagged selenium/standalone-firefox:136.0-geckodriver-0.36-grid-4.31.0-20250414\nTagged selenium/node-firefox:136.0-geckodriver-0.36-20250414\nTagged selenium/standalone-firefox:136.0-geckodriver-0.36-20250414\nTagged selenium/node-firefox:136.0-20250414\nTagged selenium/standalone-firefox:136.0-20250414\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.31.0/firefox_98.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.31.0 20250414 selenium false firefox true\nTagging images for browser firefox, version 4.31.0, build date 20250414, namespace selenium\nSelenium Grid version -> 4.31.0-20250414\nFirefox version -> 98.0.2\nShort Firefox version -> 98.0\nGeckoDriver version -> 0.36.0\nShort GeckoDriver version -> 0.36\nTagged selenium/node-firefox:98.0.2-geckodriver-0.36.0-grid-4.31.0-20250414\nTagged selenium/standalone-firefox:98.0.2-geckodriver-0.36.0-grid-4.31.0-20250414\nTagged selenium/node-firefox:98.0.2-geckodriver-0.36.0-20250414\nTagged selenium/standalone-firefox:98.0.2-geckodriver-0.36.0-20250414\nTagged selenium/node-firefox:98.0.2-20250414\nTagged selenium/standalone-firefox:98.0.2-20250414\nTagged selenium/node-firefox:98.0-geckodriver-0.36-grid-4.31.0-20250414\nTagged selenium/standalone-firefox:98.0-geckodriver-0.36-grid-4.31.0-20250414\nTagged selenium/node-firefox:98.0-geckodriver-0.36-20250414\nTagged selenium/standalone-firefox:98.0-geckodriver-0.36-20250414\nTagged selenium/node-firefox:98.0-20250414\nTagged selenium/standalone-firefox:98.0-20250414\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.31.0/firefox_99.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.31.0 20250414 selenium false firefox true\nTagging images for browser firefox, version 4.31.0, build date 20250414, namespace selenium\nSelenium Grid version -> 4.31.0-20250414\nFirefox version -> 99.0.1\nShort Firefox version -> 99.0\nGeckoDriver version -> 0.36.0\nShort GeckoDriver version -> 0.36\nTagged selenium/node-firefox:99.0.1-geckodriver-0.36.0-grid-4.31.0-20250414\nTagged selenium/standalone-firefox:99.0.1-geckodriver-0.36.0-grid-4.31.0-20250414\nTagged selenium/node-firefox:99.0.1-geckodriver-0.36.0-20250414\nTagged selenium/standalone-firefox:99.0.1-geckodriver-0.36.0-20250414\nTagged selenium/node-firefox:99.0.1-20250414\nTagged selenium/standalone-firefox:99.0.1-20250414\nTagged selenium/node-firefox:99.0-geckodriver-0.36-grid-4.31.0-20250414\nTagged selenium/standalone-firefox:99.0-geckodriver-0.36-grid-4.31.0-20250414\nTagged selenium/node-firefox:99.0-geckodriver-0.36-20250414\nTagged selenium/standalone-firefox:99.0-geckodriver-0.36-20250414\nTagged selenium/node-firefox:99.0-20250414\nTagged selenium/standalone-firefox:99.0-20250414\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.32.0/chrome_100.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.32.0 20250505 selenium false chrome true\nTagging images for browser chrome, version 4.32.0, build date 20250505, namespace selenium\nSelenium Grid version -> 4.32.0-20250505\nChrome version -> 100.0.4896.127\nShort Chrome version -> 100.0\nChromeDriver version -> 100.0.4896.60\nShort ChromeDriver version -> 100.0\nTagged selenium/node-chrome:100.0.4896.127-chromedriver-100.0.4896.60-grid-4.32.0-20250505\nTagged selenium/standalone-chrome:100.0.4896.127-chromedriver-100.0.4896.60-grid-4.32.0-20250505\nTagged selenium/node-chrome:100.0.4896.127-chromedriver-100.0.4896.60-20250505\nTagged selenium/standalone-chrome:100.0.4896.127-chromedriver-100.0.4896.60-20250505\nTagged selenium/node-chrome:100.0.4896.127-20250505\nTagged selenium/standalone-chrome:100.0.4896.127-20250505\nTagged selenium/node-chrome:100.0-chromedriver-100.0-grid-4.32.0-20250505\nTagged selenium/standalone-chrome:100.0-chromedriver-100.0-grid-4.32.0-20250505\nTagged selenium/node-chrome:100.0-chromedriver-100.0-20250505\nTagged selenium/standalone-chrome:100.0-chromedriver-100.0-20250505\nTagged selenium/node-chrome:100.0-20250505\nTagged selenium/standalone-chrome:100.0-20250505\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.32.0/chrome_101.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.32.0 20250515 selenium false chrome true\nTagging images for browser chrome, version 4.32.0, build date 20250515, namespace selenium\nSelenium Grid version -> 4.32.0-20250515\nChrome version -> 101.0.4951.64\nShort Chrome version -> 101.0\nChromeDriver version -> 101.0.4951.41\nShort ChromeDriver version -> 101.0\nTagged selenium/node-chrome:101.0.4951.64-chromedriver-101.0.4951.41-grid-4.32.0-20250515\nTagged selenium/standalone-chrome:101.0.4951.64-chromedriver-101.0.4951.41-grid-4.32.0-20250515\nTagged selenium/node-chrome:101.0.4951.64-chromedriver-101.0.4951.41-20250515\nTagged selenium/standalone-chrome:101.0.4951.64-chromedriver-101.0.4951.41-20250515\nTagged selenium/node-chrome:101.0.4951.64-20250515\nTagged selenium/standalone-chrome:101.0.4951.64-20250515\nTagged selenium/node-chrome:101.0-chromedriver-101.0-grid-4.32.0-20250515\nTagged selenium/standalone-chrome:101.0-chromedriver-101.0-grid-4.32.0-20250515\nTagged selenium/node-chrome:101.0-chromedriver-101.0-20250515\nTagged selenium/standalone-chrome:101.0-chromedriver-101.0-20250515\nTagged selenium/node-chrome:101.0-20250515\nTagged selenium/standalone-chrome:101.0-20250515\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.32.0/chrome_102.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.32.0 20250515 selenium false chrome true\nTagging images for browser chrome, version 4.32.0, build date 20250515, namespace selenium\nSelenium Grid version -> 4.32.0-20250515\nChrome version -> 102.0.5005.115\nShort Chrome version -> 102.0\nChromeDriver version -> 102.0.5005.61\nShort ChromeDriver version -> 102.0\nTagged selenium/node-chrome:102.0.5005.115-chromedriver-102.0.5005.61-grid-4.32.0-20250515\nTagged selenium/standalone-chrome:102.0.5005.115-chromedriver-102.0.5005.61-grid-4.32.0-20250515\nTagged selenium/node-chrome:102.0.5005.115-chromedriver-102.0.5005.61-20250515\nTagged selenium/standalone-chrome:102.0.5005.115-chromedriver-102.0.5005.61-20250515\nTagged selenium/node-chrome:102.0.5005.115-20250515\nTagged selenium/standalone-chrome:102.0.5005.115-20250515\nTagged selenium/node-chrome:102.0-chromedriver-102.0-grid-4.32.0-20250515\nTagged selenium/standalone-chrome:102.0-chromedriver-102.0-grid-4.32.0-20250515\nTagged selenium/node-chrome:102.0-chromedriver-102.0-20250515\nTagged selenium/standalone-chrome:102.0-chromedriver-102.0-20250515\nTagged selenium/node-chrome:102.0-20250515\nTagged selenium/standalone-chrome:102.0-20250515\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.32.0/chrome_103.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.32.0 20250515 selenium false chrome true\nTagging images for browser chrome, version 4.32.0, build date 20250515, namespace selenium\nSelenium Grid version -> 4.32.0-20250515\nChrome version -> 103.0.5060.134\nShort Chrome version -> 103.0\nChromeDriver version -> 103.0.5060.134\nShort ChromeDriver version -> 103.0\nTagged selenium/node-chrome:103.0.5060.134-chromedriver-103.0.5060.134-grid-4.32.0-20250515\nTagged selenium/standalone-chrome:103.0.5060.134-chromedriver-103.0.5060.134-grid-4.32.0-20250515\nTagged selenium/node-chrome:103.0.5060.134-chromedriver-103.0.5060.134-20250515\nTagged selenium/standalone-chrome:103.0.5060.134-chromedriver-103.0.5060.134-20250515\nTagged selenium/node-chrome:103.0.5060.134-20250515\nTagged selenium/standalone-chrome:103.0.5060.134-20250515\nTagged selenium/node-chrome:103.0-chromedriver-103.0-grid-4.32.0-20250515\nTagged selenium/standalone-chrome:103.0-chromedriver-103.0-grid-4.32.0-20250515\nTagged selenium/node-chrome:103.0-chromedriver-103.0-20250515\nTagged selenium/standalone-chrome:103.0-chromedriver-103.0-20250515\nTagged selenium/node-chrome:103.0-20250515\nTagged selenium/standalone-chrome:103.0-20250515\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.32.0/chrome_104.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.32.0 20250515 selenium false chrome true\nTagging images for browser chrome, version 4.32.0, build date 20250515, namespace selenium\nSelenium Grid version -> 4.32.0-20250515\nChrome version -> 104.0.5112.101\nShort Chrome version -> 104.0\nChromeDriver version -> 104.0.5112.79\nShort ChromeDriver version -> 104.0\nTagged selenium/node-chrome:104.0.5112.101-chromedriver-104.0.5112.79-grid-4.32.0-20250515\nTagged selenium/standalone-chrome:104.0.5112.101-chromedriver-104.0.5112.79-grid-4.32.0-20250515\nTagged selenium/node-chrome:104.0.5112.101-chromedriver-104.0.5112.79-20250515\nTagged selenium/standalone-chrome:104.0.5112.101-chromedriver-104.0.5112.79-20250515\nTagged selenium/node-chrome:104.0.5112.101-20250515\nTagged selenium/standalone-chrome:104.0.5112.101-20250515\nTagged selenium/node-chrome:104.0-chromedriver-104.0-grid-4.32.0-20250515\nTagged selenium/standalone-chrome:104.0-chromedriver-104.0-grid-4.32.0-20250515\nTagged selenium/node-chrome:104.0-chromedriver-104.0-20250515\nTagged selenium/standalone-chrome:104.0-chromedriver-104.0-20250515\nTagged selenium/node-chrome:104.0-20250515\nTagged selenium/standalone-chrome:104.0-20250515\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.32.0/chrome_105.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.32.0 20250515 selenium false chrome true\nTagging images for browser chrome, version 4.32.0, build date 20250515, namespace selenium\nSelenium Grid version -> 4.32.0-20250515\nChrome version -> 105.0.5195.125\nShort Chrome version -> 105.0\nChromeDriver version -> 105.0.5195.52\nShort ChromeDriver version -> 105.0\nTagged selenium/node-chrome:105.0.5195.125-chromedriver-105.0.5195.52-grid-4.32.0-20250515\nTagged selenium/standalone-chrome:105.0.5195.125-chromedriver-105.0.5195.52-grid-4.32.0-20250515\nTagged selenium/node-chrome:105.0.5195.125-chromedriver-105.0.5195.52-20250515\nTagged selenium/standalone-chrome:105.0.5195.125-chromedriver-105.0.5195.52-20250515\nTagged selenium/node-chrome:105.0.5195.125-20250515\nTagged selenium/standalone-chrome:105.0.5195.125-20250515\nTagged selenium/node-chrome:105.0-chromedriver-105.0-grid-4.32.0-20250515\nTagged selenium/standalone-chrome:105.0-chromedriver-105.0-grid-4.32.0-20250515\nTagged selenium/node-chrome:105.0-chromedriver-105.0-20250515\nTagged selenium/standalone-chrome:105.0-chromedriver-105.0-20250515\nTagged selenium/node-chrome:105.0-20250515\nTagged selenium/standalone-chrome:105.0-20250515\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.32.0/chrome_106.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.32.0 20250515 selenium false chrome true\nTagging images for browser chrome, version 4.32.0, build date 20250515, namespace selenium\nSelenium Grid version -> 4.32.0-20250515\nChrome version -> 106.0.5249.119\nShort Chrome version -> 106.0\nChromeDriver version -> 106.0.5249.61\nShort ChromeDriver version -> 106.0\nTagged selenium/node-chrome:106.0.5249.119-chromedriver-106.0.5249.61-grid-4.32.0-20250515\nTagged selenium/standalone-chrome:106.0.5249.119-chromedriver-106.0.5249.61-grid-4.32.0-20250515\nTagged selenium/node-chrome:106.0.5249.119-chromedriver-106.0.5249.61-20250515\nTagged selenium/standalone-chrome:106.0.5249.119-chromedriver-106.0.5249.61-20250515\nTagged selenium/node-chrome:106.0.5249.119-20250515\nTagged selenium/standalone-chrome:106.0.5249.119-20250515\nTagged selenium/node-chrome:106.0-chromedriver-106.0-grid-4.32.0-20250515\nTagged selenium/standalone-chrome:106.0-chromedriver-106.0-grid-4.32.0-20250515\nTagged selenium/node-chrome:106.0-chromedriver-106.0-20250515\nTagged selenium/standalone-chrome:106.0-chromedriver-106.0-20250515\nTagged selenium/node-chrome:106.0-20250515\nTagged selenium/standalone-chrome:106.0-20250515\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.32.0/chrome_107.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.32.0 20250515 selenium false chrome true\nTagging images for browser chrome, version 4.32.0, build date 20250515, namespace selenium\nSelenium Grid version -> 4.32.0-20250515\nChrome version -> 107.0.5304.121\nShort Chrome version -> 107.0\nChromeDriver version -> 107.0.5304.62\nShort ChromeDriver version -> 107.0\nTagged selenium/node-chrome:107.0.5304.121-chromedriver-107.0.5304.62-grid-4.32.0-20250515\nTagged selenium/standalone-chrome:107.0.5304.121-chromedriver-107.0.5304.62-grid-4.32.0-20250515\nTagged selenium/node-chrome:107.0.5304.121-chromedriver-107.0.5304.62-20250515\nTagged selenium/standalone-chrome:107.0.5304.121-chromedriver-107.0.5304.62-20250515\nTagged selenium/node-chrome:107.0.5304.121-20250515\nTagged selenium/standalone-chrome:107.0.5304.121-20250515\nTagged selenium/node-chrome:107.0-chromedriver-107.0-grid-4.32.0-20250515\nTagged selenium/standalone-chrome:107.0-chromedriver-107.0-grid-4.32.0-20250515\nTagged selenium/node-chrome:107.0-chromedriver-107.0-20250515\nTagged selenium/standalone-chrome:107.0-chromedriver-107.0-20250515\nTagged selenium/node-chrome:107.0-20250515\nTagged selenium/standalone-chrome:107.0-20250515\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.32.0/chrome_108.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.32.0 20250515 selenium false chrome true\nTagging images for browser chrome, version 4.32.0, build date 20250515, namespace selenium\nSelenium Grid version -> 4.32.0-20250515\nChrome version -> 108.0.5359.124\nShort Chrome version -> 108.0\nChromeDriver version -> 108.0.5359.71\nShort ChromeDriver version -> 108.0\nTagged selenium/node-chrome:108.0.5359.124-chromedriver-108.0.5359.71-grid-4.32.0-20250515\nTagged selenium/standalone-chrome:108.0.5359.124-chromedriver-108.0.5359.71-grid-4.32.0-20250515\nTagged selenium/node-chrome:108.0.5359.124-chromedriver-108.0.5359.71-20250515\nTagged selenium/standalone-chrome:108.0.5359.124-chromedriver-108.0.5359.71-20250515\nTagged selenium/node-chrome:108.0.5359.124-20250515\nTagged selenium/standalone-chrome:108.0.5359.124-20250515\nTagged selenium/node-chrome:108.0-chromedriver-108.0-grid-4.32.0-20250515\nTagged selenium/standalone-chrome:108.0-chromedriver-108.0-grid-4.32.0-20250515\nTagged selenium/node-chrome:108.0-chromedriver-108.0-20250515\nTagged selenium/standalone-chrome:108.0-chromedriver-108.0-20250515\nTagged selenium/node-chrome:108.0-20250515\nTagged selenium/standalone-chrome:108.0-20250515\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.32.0/chrome_109.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.32.0 20250515 selenium false chrome true\nTagging images for browser chrome, version 4.32.0, build date 20250515, namespace selenium\nSelenium Grid version -> 4.32.0-20250515\nChrome version -> 109.0.5414.119\nShort Chrome version -> 109.0\nChromeDriver version -> 109.0.5414.74\nShort ChromeDriver version -> 109.0\nTagged selenium/node-chrome:109.0.5414.119-chromedriver-109.0.5414.74-grid-4.32.0-20250515\nTagged selenium/standalone-chrome:109.0.5414.119-chromedriver-109.0.5414.74-grid-4.32.0-20250515\nTagged selenium/node-chrome:109.0.5414.119-chromedriver-109.0.5414.74-20250515\nTagged selenium/standalone-chrome:109.0.5414.119-chromedriver-109.0.5414.74-20250515\nTagged selenium/node-chrome:109.0.5414.119-20250515\nTagged selenium/standalone-chrome:109.0.5414.119-20250515\nTagged selenium/node-chrome:109.0-chromedriver-109.0-grid-4.32.0-20250515\nTagged selenium/standalone-chrome:109.0-chromedriver-109.0-grid-4.32.0-20250515\nTagged selenium/node-chrome:109.0-chromedriver-109.0-20250515\nTagged selenium/standalone-chrome:109.0-chromedriver-109.0-20250515\nTagged selenium/node-chrome:109.0-20250515\nTagged selenium/standalone-chrome:109.0-20250515\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.32.0/chrome_110.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.32.0 20250515 selenium false chrome true\nTagging images for browser chrome, version 4.32.0, build date 20250515, namespace selenium\nSelenium Grid version -> 4.32.0-20250515\nChrome version -> 110.0.5481.177\nShort Chrome version -> 110.0\nChromeDriver version -> 110.0.5481.77\nShort ChromeDriver version -> 110.0\nTagged selenium/node-chrome:110.0.5481.177-chromedriver-110.0.5481.77-grid-4.32.0-20250515\nTagged selenium/standalone-chrome:110.0.5481.177-chromedriver-110.0.5481.77-grid-4.32.0-20250515\nTagged selenium/node-chrome:110.0.5481.177-chromedriver-110.0.5481.77-20250515\nTagged selenium/standalone-chrome:110.0.5481.177-chromedriver-110.0.5481.77-20250515\nTagged selenium/node-chrome:110.0.5481.177-20250515\nTagged selenium/standalone-chrome:110.0.5481.177-20250515\nTagged selenium/node-chrome:110.0-chromedriver-110.0-grid-4.32.0-20250515\nTagged selenium/standalone-chrome:110.0-chromedriver-110.0-grid-4.32.0-20250515\nTagged selenium/node-chrome:110.0-chromedriver-110.0-20250515\nTagged selenium/standalone-chrome:110.0-chromedriver-110.0-20250515\nTagged selenium/node-chrome:110.0-20250515\nTagged selenium/standalone-chrome:110.0-20250515\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.32.0/chrome_111.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.32.0 20250515 selenium false chrome true\nTagging images for browser chrome, version 4.32.0, build date 20250515, namespace selenium\nSelenium Grid version -> 4.32.0-20250515\nChrome version -> 111.0.5563.146\nShort Chrome version -> 111.0\nChromeDriver version -> 111.0.5563.64\nShort ChromeDriver version -> 111.0\nTagged selenium/node-chrome:111.0.5563.146-chromedriver-111.0.5563.64-grid-4.32.0-20250515\nTagged selenium/standalone-chrome:111.0.5563.146-chromedriver-111.0.5563.64-grid-4.32.0-20250515\nTagged selenium/node-chrome:111.0.5563.146-chromedriver-111.0.5563.64-20250515\nTagged selenium/standalone-chrome:111.0.5563.146-chromedriver-111.0.5563.64-20250515\nTagged selenium/node-chrome:111.0.5563.146-20250515\nTagged selenium/standalone-chrome:111.0.5563.146-20250515\nTagged selenium/node-chrome:111.0-chromedriver-111.0-grid-4.32.0-20250515\nTagged selenium/standalone-chrome:111.0-chromedriver-111.0-grid-4.32.0-20250515\nTagged selenium/node-chrome:111.0-chromedriver-111.0-20250515\nTagged selenium/standalone-chrome:111.0-chromedriver-111.0-20250515\nTagged selenium/node-chrome:111.0-20250515\nTagged selenium/standalone-chrome:111.0-20250515\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.32.0/chrome_112.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.32.0 20250515 selenium false chrome true\nTagging images for browser chrome, version 4.32.0, build date 20250515, namespace selenium\nSelenium Grid version -> 4.32.0-20250515\nChrome version -> 112.0.5615.165\nShort Chrome version -> 112.0\nChromeDriver version -> 112.0.5615.49\nShort ChromeDriver version -> 112.0\nTagged selenium/node-chrome:112.0.5615.165-chromedriver-112.0.5615.49-grid-4.32.0-20250515\nTagged selenium/standalone-chrome:112.0.5615.165-chromedriver-112.0.5615.49-grid-4.32.0-20250515\nTagged selenium/node-chrome:112.0.5615.165-chromedriver-112.0.5615.49-20250515\nTagged selenium/standalone-chrome:112.0.5615.165-chromedriver-112.0.5615.49-20250515\nTagged selenium/node-chrome:112.0.5615.165-20250515\nTagged selenium/standalone-chrome:112.0.5615.165-20250515\nTagged selenium/node-chrome:112.0-chromedriver-112.0-grid-4.32.0-20250515\nTagged selenium/standalone-chrome:112.0-chromedriver-112.0-grid-4.32.0-20250515\nTagged selenium/node-chrome:112.0-chromedriver-112.0-20250515\nTagged selenium/standalone-chrome:112.0-chromedriver-112.0-20250515\nTagged selenium/node-chrome:112.0-20250515\nTagged selenium/standalone-chrome:112.0-20250515\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.32.0/chrome_113.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.32.0 20250515 selenium false chrome true\nTagging images for browser chrome, version 4.32.0, build date 20250515, namespace selenium\nSelenium Grid version -> 4.32.0-20250515\nChrome version -> 113.0.5672.126\nShort Chrome version -> 113.0\nChromeDriver version -> 113.0.5672.63\nShort ChromeDriver version -> 113.0\nTagged selenium/node-chrome:113.0.5672.126-chromedriver-113.0.5672.63-grid-4.32.0-20250515\nTagged selenium/standalone-chrome:113.0.5672.126-chromedriver-113.0.5672.63-grid-4.32.0-20250515\nTagged selenium/node-chrome:113.0.5672.126-chromedriver-113.0.5672.63-20250515\nTagged selenium/standalone-chrome:113.0.5672.126-chromedriver-113.0.5672.63-20250515\nTagged selenium/node-chrome:113.0.5672.126-20250515\nTagged selenium/standalone-chrome:113.0.5672.126-20250515\nTagged selenium/node-chrome:113.0-chromedriver-113.0-grid-4.32.0-20250515\nTagged selenium/standalone-chrome:113.0-chromedriver-113.0-grid-4.32.0-20250515\nTagged selenium/node-chrome:113.0-chromedriver-113.0-20250515\nTagged selenium/standalone-chrome:113.0-chromedriver-113.0-20250515\nTagged selenium/node-chrome:113.0-20250515\nTagged selenium/standalone-chrome:113.0-20250515\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.32.0/chrome_114.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.32.0 20250515 selenium false chrome true\nTagging images for browser chrome, version 4.32.0, build date 20250515, namespace selenium\nSelenium Grid version -> 4.32.0-20250515\nChrome version -> 114.0.5735.198\nShort Chrome version -> 114.0\nChromeDriver version -> 114.0.5735.90\nShort ChromeDriver version -> 114.0\nTagged selenium/node-chrome:114.0.5735.198-chromedriver-114.0.5735.90-grid-4.32.0-20250515\nTagged selenium/standalone-chrome:114.0.5735.198-chromedriver-114.0.5735.90-grid-4.32.0-20250515\nTagged selenium/node-chrome:114.0.5735.198-chromedriver-114.0.5735.90-20250515\nTagged selenium/standalone-chrome:114.0.5735.198-chromedriver-114.0.5735.90-20250515\nTagged selenium/node-chrome:114.0.5735.198-20250515\nTagged selenium/standalone-chrome:114.0.5735.198-20250515\nTagged selenium/node-chrome:114.0-chromedriver-114.0-grid-4.32.0-20250515\nTagged selenium/standalone-chrome:114.0-chromedriver-114.0-grid-4.32.0-20250515\nTagged selenium/node-chrome:114.0-chromedriver-114.0-20250515\nTagged selenium/standalone-chrome:114.0-chromedriver-114.0-20250515\nTagged selenium/node-chrome:114.0-20250515\nTagged selenium/standalone-chrome:114.0-20250515\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.32.0/chrome_115.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.32.0 20250515 selenium false chrome true\nTagging images for browser chrome, version 4.32.0, build date 20250515, namespace selenium\nSelenium Grid version -> 4.32.0-20250515\nChrome version -> 115.0.5790.170\nShort Chrome version -> 115.0\nChromeDriver version -> 115.0.5790.170\nShort ChromeDriver version -> 115.0\nTagged selenium/node-chrome:115.0.5790.170-chromedriver-115.0.5790.170-grid-4.32.0-20250515\nTagged selenium/standalone-chrome:115.0.5790.170-chromedriver-115.0.5790.170-grid-4.32.0-20250515\nTagged selenium/node-chrome:115.0.5790.170-chromedriver-115.0.5790.170-20250515\nTagged selenium/standalone-chrome:115.0.5790.170-chromedriver-115.0.5790.170-20250515\nTagged selenium/node-chrome:115.0.5790.170-20250515\nTagged selenium/standalone-chrome:115.0.5790.170-20250515\nTagged selenium/node-chrome:115.0-chromedriver-115.0-grid-4.32.0-20250515\nTagged selenium/standalone-chrome:115.0-chromedriver-115.0-grid-4.32.0-20250515\nTagged selenium/node-chrome:115.0-chromedriver-115.0-20250515\nTagged selenium/standalone-chrome:115.0-chromedriver-115.0-20250515\nTagged selenium/node-chrome:115.0-20250515\nTagged selenium/standalone-chrome:115.0-20250515\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.32.0/chrome_116.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.32.0 20250515 selenium false chrome true\nTagging images for browser chrome, version 4.32.0, build date 20250515, namespace selenium\nSelenium Grid version -> 4.32.0-20250515\nChrome version -> 116.0.5845.187\nShort Chrome version -> 116.0\nChromeDriver version -> 116.0.5845.96\nShort ChromeDriver version -> 116.0\nTagged selenium/node-chrome:116.0.5845.187-chromedriver-116.0.5845.96-grid-4.32.0-20250515\nTagged selenium/standalone-chrome:116.0.5845.187-chromedriver-116.0.5845.96-grid-4.32.0-20250515\nTagged selenium/node-chrome:116.0.5845.187-chromedriver-116.0.5845.96-20250515\nTagged selenium/standalone-chrome:116.0.5845.187-chromedriver-116.0.5845.96-20250515\nTagged selenium/node-chrome:116.0.5845.187-20250515\nTagged selenium/standalone-chrome:116.0.5845.187-20250515\nTagged selenium/node-chrome:116.0-chromedriver-116.0-grid-4.32.0-20250515\nTagged selenium/standalone-chrome:116.0-chromedriver-116.0-grid-4.32.0-20250515\nTagged selenium/node-chrome:116.0-chromedriver-116.0-20250515\nTagged selenium/standalone-chrome:116.0-chromedriver-116.0-20250515\nTagged selenium/node-chrome:116.0-20250515\nTagged selenium/standalone-chrome:116.0-20250515\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.32.0/chrome_117.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.32.0 20250515 selenium false chrome true\nTagging images for browser chrome, version 4.32.0, build date 20250515, namespace selenium\nSelenium Grid version -> 4.32.0-20250515\nChrome version -> 117.0.5938.149\nShort Chrome version -> 117.0\nChromeDriver version -> 117.0.5938.149\nShort ChromeDriver version -> 117.0\nTagged selenium/node-chrome:117.0.5938.149-chromedriver-117.0.5938.149-grid-4.32.0-20250515\nTagged selenium/standalone-chrome:117.0.5938.149-chromedriver-117.0.5938.149-grid-4.32.0-20250515\nTagged selenium/node-chrome:117.0.5938.149-chromedriver-117.0.5938.149-20250515\nTagged selenium/standalone-chrome:117.0.5938.149-chromedriver-117.0.5938.149-20250515\nTagged selenium/node-chrome:117.0.5938.149-20250515\nTagged selenium/standalone-chrome:117.0.5938.149-20250515\nTagged selenium/node-chrome:117.0-chromedriver-117.0-grid-4.32.0-20250515\nTagged selenium/standalone-chrome:117.0-chromedriver-117.0-grid-4.32.0-20250515\nTagged selenium/node-chrome:117.0-chromedriver-117.0-20250515\nTagged selenium/standalone-chrome:117.0-chromedriver-117.0-20250515\nTagged selenium/node-chrome:117.0-20250515\nTagged selenium/standalone-chrome:117.0-20250515\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.32.0/chrome_118.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.32.0 20250515 selenium false chrome true\nTagging images for browser chrome, version 4.32.0, build date 20250515, namespace selenium\nSelenium Grid version -> 4.32.0-20250515\nChrome version -> 118.0.5993.117\nShort Chrome version -> 118.0\nChromeDriver version -> 118.0.5993.70\nShort ChromeDriver version -> 118.0\nTagged selenium/node-chrome:118.0.5993.117-chromedriver-118.0.5993.70-grid-4.32.0-20250515\nTagged selenium/standalone-chrome:118.0.5993.117-chromedriver-118.0.5993.70-grid-4.32.0-20250515\nTagged selenium/node-chrome:118.0.5993.117-chromedriver-118.0.5993.70-20250515\nTagged selenium/standalone-chrome:118.0.5993.117-chromedriver-118.0.5993.70-20250515\nTagged selenium/node-chrome:118.0.5993.117-20250515\nTagged selenium/standalone-chrome:118.0.5993.117-20250515\nTagged selenium/node-chrome:118.0-chromedriver-118.0-grid-4.32.0-20250515\nTagged selenium/standalone-chrome:118.0-chromedriver-118.0-grid-4.32.0-20250515\nTagged selenium/node-chrome:118.0-chromedriver-118.0-20250515\nTagged selenium/standalone-chrome:118.0-chromedriver-118.0-20250515\nTagged selenium/node-chrome:118.0-20250515\nTagged selenium/standalone-chrome:118.0-20250515\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.32.0/chrome_119.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.32.0 20250515 selenium false chrome true\nTagging images for browser chrome, version 4.32.0, build date 20250515, namespace selenium\nSelenium Grid version -> 4.32.0-20250515\nChrome version -> 119.0.6045.199\nShort Chrome version -> 119.0\nChromeDriver version -> 119.0.6045.105\nShort ChromeDriver version -> 119.0\nTagged selenium/node-chrome:119.0.6045.199-chromedriver-119.0.6045.105-grid-4.32.0-20250515\nTagged selenium/standalone-chrome:119.0.6045.199-chromedriver-119.0.6045.105-grid-4.32.0-20250515\nTagged selenium/node-chrome:119.0.6045.199-chromedriver-119.0.6045.105-20250515\nTagged selenium/standalone-chrome:119.0.6045.199-chromedriver-119.0.6045.105-20250515\nTagged selenium/node-chrome:119.0.6045.199-20250515\nTagged selenium/standalone-chrome:119.0.6045.199-20250515\nTagged selenium/node-chrome:119.0-chromedriver-119.0-grid-4.32.0-20250515\nTagged selenium/standalone-chrome:119.0-chromedriver-119.0-grid-4.32.0-20250515\nTagged selenium/node-chrome:119.0-chromedriver-119.0-20250515\nTagged selenium/standalone-chrome:119.0-chromedriver-119.0-20250515\nTagged selenium/node-chrome:119.0-20250515\nTagged selenium/standalone-chrome:119.0-20250515\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.32.0/chrome_120.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.32.0 20250515 selenium false chrome true\nTagging images for browser chrome, version 4.32.0, build date 20250515, namespace selenium\nSelenium Grid version -> 4.32.0-20250515\nChrome version -> 120.0.6099.224\nShort Chrome version -> 120.0\nChromeDriver version -> 120.0.6099.109\nShort ChromeDriver version -> 120.0\nTagged selenium/node-chrome:120.0.6099.224-chromedriver-120.0.6099.109-grid-4.32.0-20250515\nTagged selenium/standalone-chrome:120.0.6099.224-chromedriver-120.0.6099.109-grid-4.32.0-20250515\nTagged selenium/node-chrome:120.0.6099.224-chromedriver-120.0.6099.109-20250515\nTagged selenium/standalone-chrome:120.0.6099.224-chromedriver-120.0.6099.109-20250515\nTagged selenium/node-chrome:120.0.6099.224-20250515\nTagged selenium/standalone-chrome:120.0.6099.224-20250515\nTagged selenium/node-chrome:120.0-chromedriver-120.0-grid-4.32.0-20250515\nTagged selenium/standalone-chrome:120.0-chromedriver-120.0-grid-4.32.0-20250515\nTagged selenium/node-chrome:120.0-chromedriver-120.0-20250515\nTagged selenium/standalone-chrome:120.0-chromedriver-120.0-20250515\nTagged selenium/node-chrome:120.0-20250515\nTagged selenium/standalone-chrome:120.0-20250515\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.32.0/chrome_121.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.32.0 20250515 selenium false chrome true\nTagging images for browser chrome, version 4.32.0, build date 20250515, namespace selenium\nSelenium Grid version -> 4.32.0-20250515\nChrome version -> 121.0.6167.184\nShort Chrome version -> 121.0\nChromeDriver version -> 121.0.6167.184\nShort ChromeDriver version -> 121.0\nTagged selenium/node-chrome:121.0.6167.184-chromedriver-121.0.6167.184-grid-4.32.0-20250515\nTagged selenium/standalone-chrome:121.0.6167.184-chromedriver-121.0.6167.184-grid-4.32.0-20250515\nTagged selenium/node-chrome:121.0.6167.184-chromedriver-121.0.6167.184-20250515\nTagged selenium/standalone-chrome:121.0.6167.184-chromedriver-121.0.6167.184-20250515\nTagged selenium/node-chrome:121.0.6167.184-20250515\nTagged selenium/standalone-chrome:121.0.6167.184-20250515\nTagged selenium/node-chrome:121.0-chromedriver-121.0-grid-4.32.0-20250515\nTagged selenium/standalone-chrome:121.0-chromedriver-121.0-grid-4.32.0-20250515\nTagged selenium/node-chrome:121.0-chromedriver-121.0-20250515\nTagged selenium/standalone-chrome:121.0-chromedriver-121.0-20250515\nTagged selenium/node-chrome:121.0-20250515\nTagged selenium/standalone-chrome:121.0-20250515\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.32.0/chrome_122.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.32.0 20250515 selenium false chrome true\nTagging images for browser chrome, version 4.32.0, build date 20250515, namespace selenium\nSelenium Grid version -> 4.32.0-20250515\nChrome version -> 122.0.6261.128\nShort Chrome version -> 122.0\nChromeDriver version -> 122.0.6261.128\nShort ChromeDriver version -> 122.0\nTagged selenium/node-chrome:122.0.6261.128-chromedriver-122.0.6261.128-grid-4.32.0-20250515\nTagged selenium/standalone-chrome:122.0.6261.128-chromedriver-122.0.6261.128-grid-4.32.0-20250515\nTagged selenium/node-chrome:122.0.6261.128-chromedriver-122.0.6261.128-20250515\nTagged selenium/standalone-chrome:122.0.6261.128-chromedriver-122.0.6261.128-20250515\nTagged selenium/node-chrome:122.0.6261.128-20250515\nTagged selenium/standalone-chrome:122.0.6261.128-20250515\nTagged selenium/node-chrome:122.0-chromedriver-122.0-grid-4.32.0-20250515\nTagged selenium/standalone-chrome:122.0-chromedriver-122.0-grid-4.32.0-20250515\nTagged selenium/node-chrome:122.0-chromedriver-122.0-20250515\nTagged selenium/standalone-chrome:122.0-chromedriver-122.0-20250515\nTagged selenium/node-chrome:122.0-20250515\nTagged selenium/standalone-chrome:122.0-20250515\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.32.0/chrome_123.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.32.0 20250515 selenium false chrome true\nTagging images for browser chrome, version 4.32.0, build date 20250515, namespace selenium\nSelenium Grid version -> 4.32.0-20250515\nChrome version -> 123.0.6312.122\nShort Chrome version -> 123.0\nChromeDriver version -> 123.0.6312.122\nShort ChromeDriver version -> 123.0\nTagged selenium/node-chrome:123.0.6312.122-chromedriver-123.0.6312.122-grid-4.32.0-20250515\nTagged selenium/standalone-chrome:123.0.6312.122-chromedriver-123.0.6312.122-grid-4.32.0-20250515\nTagged selenium/node-chrome:123.0.6312.122-chromedriver-123.0.6312.122-20250515\nTagged selenium/standalone-chrome:123.0.6312.122-chromedriver-123.0.6312.122-20250515\nTagged selenium/node-chrome:123.0.6312.122-20250515\nTagged selenium/standalone-chrome:123.0.6312.122-20250515\nTagged selenium/node-chrome:123.0-chromedriver-123.0-grid-4.32.0-20250515\nTagged selenium/standalone-chrome:123.0-chromedriver-123.0-grid-4.32.0-20250515\nTagged selenium/node-chrome:123.0-chromedriver-123.0-20250515\nTagged selenium/standalone-chrome:123.0-chromedriver-123.0-20250515\nTagged selenium/node-chrome:123.0-20250515\nTagged selenium/standalone-chrome:123.0-20250515\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.32.0/chrome_124.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.32.0 20250515 selenium false chrome true\nTagging images for browser chrome, version 4.32.0, build date 20250515, namespace selenium\nSelenium Grid version -> 4.32.0-20250515\nChrome version -> 124.0.6367.207\nShort Chrome version -> 124.0\nChromeDriver version -> 124.0.6367.207\nShort ChromeDriver version -> 124.0\nTagged selenium/node-chrome:124.0.6367.207-chromedriver-124.0.6367.207-grid-4.32.0-20250515\nTagged selenium/standalone-chrome:124.0.6367.207-chromedriver-124.0.6367.207-grid-4.32.0-20250515\nTagged selenium/node-chrome:124.0.6367.207-chromedriver-124.0.6367.207-20250515\nTagged selenium/standalone-chrome:124.0.6367.207-chromedriver-124.0.6367.207-20250515\nTagged selenium/node-chrome:124.0.6367.207-20250515\nTagged selenium/standalone-chrome:124.0.6367.207-20250515\nTagged selenium/node-chrome:124.0-chromedriver-124.0-grid-4.32.0-20250515\nTagged selenium/standalone-chrome:124.0-chromedriver-124.0-grid-4.32.0-20250515\nTagged selenium/node-chrome:124.0-chromedriver-124.0-20250515\nTagged selenium/standalone-chrome:124.0-chromedriver-124.0-20250515\nTagged selenium/node-chrome:124.0-20250515\nTagged selenium/standalone-chrome:124.0-20250515\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.32.0/chrome_125.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.32.0 20250515 selenium false chrome true\nTagging images for browser chrome, version 4.32.0, build date 20250515, namespace selenium\nSelenium Grid version -> 4.32.0-20250515\nChrome version -> 125.0.6422.141\nShort Chrome version -> 125.0\nChromeDriver version -> 125.0.6422.141\nShort ChromeDriver version -> 125.0\nTagged selenium/node-chrome:125.0.6422.141-chromedriver-125.0.6422.141-grid-4.32.0-20250515\nTagged selenium/standalone-chrome:125.0.6422.141-chromedriver-125.0.6422.141-grid-4.32.0-20250515\nTagged selenium/node-chrome:125.0.6422.141-chromedriver-125.0.6422.141-20250515\nTagged selenium/standalone-chrome:125.0.6422.141-chromedriver-125.0.6422.141-20250515\nTagged selenium/node-chrome:125.0.6422.141-20250515\nTagged selenium/standalone-chrome:125.0.6422.141-20250515\nTagged selenium/node-chrome:125.0-chromedriver-125.0-grid-4.32.0-20250515\nTagged selenium/standalone-chrome:125.0-chromedriver-125.0-grid-4.32.0-20250515\nTagged selenium/node-chrome:125.0-chromedriver-125.0-20250515\nTagged selenium/standalone-chrome:125.0-chromedriver-125.0-20250515\nTagged selenium/node-chrome:125.0-20250515\nTagged selenium/standalone-chrome:125.0-20250515\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.32.0/chrome_126.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.32.0 20250515 selenium false chrome true\nTagging images for browser chrome, version 4.32.0, build date 20250515, namespace selenium\nSelenium Grid version -> 4.32.0-20250515\nChrome version -> 126.0.6478.182\nShort Chrome version -> 126.0\nChromeDriver version -> 126.0.6478.182\nShort ChromeDriver version -> 126.0\nTagged selenium/node-chrome:126.0.6478.182-chromedriver-126.0.6478.182-grid-4.32.0-20250515\nTagged selenium/standalone-chrome:126.0.6478.182-chromedriver-126.0.6478.182-grid-4.32.0-20250515\nTagged selenium/node-chrome:126.0.6478.182-chromedriver-126.0.6478.182-20250515\nTagged selenium/standalone-chrome:126.0.6478.182-chromedriver-126.0.6478.182-20250515\nTagged selenium/node-chrome:126.0.6478.182-20250515\nTagged selenium/standalone-chrome:126.0.6478.182-20250515\nTagged selenium/node-chrome:126.0-chromedriver-126.0-grid-4.32.0-20250515\nTagged selenium/standalone-chrome:126.0-chromedriver-126.0-grid-4.32.0-20250515\nTagged selenium/node-chrome:126.0-chromedriver-126.0-20250515\nTagged selenium/standalone-chrome:126.0-chromedriver-126.0-20250515\nTagged selenium/node-chrome:126.0-20250515\nTagged selenium/standalone-chrome:126.0-20250515\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.32.0/chrome_127.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.32.0 20250515 selenium false chrome true\nTagging images for browser chrome, version 4.32.0, build date 20250515, namespace selenium\nSelenium Grid version -> 4.32.0-20250515\nChrome version -> 127.0.6533.119\nShort Chrome version -> 127.0\nChromeDriver version -> 127.0.6533.119\nShort ChromeDriver version -> 127.0\nTagged selenium/node-chrome:127.0.6533.119-chromedriver-127.0.6533.119-grid-4.32.0-20250515\nTagged selenium/standalone-chrome:127.0.6533.119-chromedriver-127.0.6533.119-grid-4.32.0-20250515\nTagged selenium/node-chrome:127.0.6533.119-chromedriver-127.0.6533.119-20250515\nTagged selenium/standalone-chrome:127.0.6533.119-chromedriver-127.0.6533.119-20250515\nTagged selenium/node-chrome:127.0.6533.119-20250515\nTagged selenium/standalone-chrome:127.0.6533.119-20250515\nTagged selenium/node-chrome:127.0-chromedriver-127.0-grid-4.32.0-20250515\nTagged selenium/standalone-chrome:127.0-chromedriver-127.0-grid-4.32.0-20250515\nTagged selenium/node-chrome:127.0-chromedriver-127.0-20250515\nTagged selenium/standalone-chrome:127.0-chromedriver-127.0-20250515\nTagged selenium/node-chrome:127.0-20250515\nTagged selenium/standalone-chrome:127.0-20250515\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.32.0/chrome_128.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.32.0 20250515 selenium false chrome true\nTagging images for browser chrome, version 4.32.0, build date 20250515, namespace selenium\nSelenium Grid version -> 4.32.0-20250515\nChrome version -> 128.0.6613.137\nShort Chrome version -> 128.0\nChromeDriver version -> 128.0.6613.137\nShort ChromeDriver version -> 128.0\nTagged selenium/node-chrome:128.0.6613.137-chromedriver-128.0.6613.137-grid-4.32.0-20250515\nTagged selenium/standalone-chrome:128.0.6613.137-chromedriver-128.0.6613.137-grid-4.32.0-20250515\nTagged selenium/node-chrome:128.0.6613.137-chromedriver-128.0.6613.137-20250515\nTagged selenium/standalone-chrome:128.0.6613.137-chromedriver-128.0.6613.137-20250515\nTagged selenium/node-chrome:128.0.6613.137-20250515\nTagged selenium/standalone-chrome:128.0.6613.137-20250515\nTagged selenium/node-chrome:128.0-chromedriver-128.0-grid-4.32.0-20250515\nTagged selenium/standalone-chrome:128.0-chromedriver-128.0-grid-4.32.0-20250515\nTagged selenium/node-chrome:128.0-chromedriver-128.0-20250515\nTagged selenium/standalone-chrome:128.0-chromedriver-128.0-20250515\nTagged selenium/node-chrome:128.0-20250515\nTagged selenium/standalone-chrome:128.0-20250515\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.32.0/chrome_129.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.32.0 20250515 selenium false chrome true\nTagging images for browser chrome, version 4.32.0, build date 20250515, namespace selenium\nSelenium Grid version -> 4.32.0-20250515\nChrome version -> 129.0.6668.100\nShort Chrome version -> 129.0\nChromeDriver version -> 129.0.6668.100\nShort ChromeDriver version -> 129.0\nTagged selenium/node-chrome:129.0.6668.100-chromedriver-129.0.6668.100-grid-4.32.0-20250515\nTagged selenium/standalone-chrome:129.0.6668.100-chromedriver-129.0.6668.100-grid-4.32.0-20250515\nTagged selenium/node-chrome:129.0.6668.100-chromedriver-129.0.6668.100-20250515\nTagged selenium/standalone-chrome:129.0.6668.100-chromedriver-129.0.6668.100-20250515\nTagged selenium/node-chrome:129.0.6668.100-20250515\nTagged selenium/standalone-chrome:129.0.6668.100-20250515\nTagged selenium/node-chrome:129.0-chromedriver-129.0-grid-4.32.0-20250515\nTagged selenium/standalone-chrome:129.0-chromedriver-129.0-grid-4.32.0-20250515\nTagged selenium/node-chrome:129.0-chromedriver-129.0-20250515\nTagged selenium/standalone-chrome:129.0-chromedriver-129.0-20250515\nTagged selenium/node-chrome:129.0-20250515\nTagged selenium/standalone-chrome:129.0-20250515\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.32.0/chrome_130.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.32.0 20250515 selenium false chrome true\nTagging images for browser chrome, version 4.32.0, build date 20250515, namespace selenium\nSelenium Grid version -> 4.32.0-20250515\nChrome version -> 130.0.6723.116\nShort Chrome version -> 130.0\nChromeDriver version -> 130.0.6723.116\nShort ChromeDriver version -> 130.0\nTagged selenium/node-chrome:130.0.6723.116-chromedriver-130.0.6723.116-grid-4.32.0-20250515\nTagged selenium/standalone-chrome:130.0.6723.116-chromedriver-130.0.6723.116-grid-4.32.0-20250515\nTagged selenium/node-chrome:130.0.6723.116-chromedriver-130.0.6723.116-20250515\nTagged selenium/standalone-chrome:130.0.6723.116-chromedriver-130.0.6723.116-20250515\nTagged selenium/node-chrome:130.0.6723.116-20250515\nTagged selenium/standalone-chrome:130.0.6723.116-20250515\nTagged selenium/node-chrome:130.0-chromedriver-130.0-grid-4.32.0-20250515\nTagged selenium/standalone-chrome:130.0-chromedriver-130.0-grid-4.32.0-20250515\nTagged selenium/node-chrome:130.0-chromedriver-130.0-20250515\nTagged selenium/standalone-chrome:130.0-chromedriver-130.0-20250515\nTagged selenium/node-chrome:130.0-20250515\nTagged selenium/standalone-chrome:130.0-20250515\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.32.0/chrome_131.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.32.0 20250515 selenium false chrome true\nTagging images for browser chrome, version 4.32.0, build date 20250515, namespace selenium\nSelenium Grid version -> 4.32.0-20250515\nChrome version -> 131.0.6778.264\nShort Chrome version -> 131.0\nChromeDriver version -> 131.0.6778.264\nShort ChromeDriver version -> 131.0\nTagged selenium/node-chrome:131.0.6778.264-chromedriver-131.0.6778.264-grid-4.32.0-20250515\nTagged selenium/standalone-chrome:131.0.6778.264-chromedriver-131.0.6778.264-grid-4.32.0-20250515\nTagged selenium/node-chrome:131.0.6778.264-chromedriver-131.0.6778.264-20250515\nTagged selenium/standalone-chrome:131.0.6778.264-chromedriver-131.0.6778.264-20250515\nTagged selenium/node-chrome:131.0.6778.264-20250515\nTagged selenium/standalone-chrome:131.0.6778.264-20250515\nTagged selenium/node-chrome:131.0-chromedriver-131.0-grid-4.32.0-20250515\nTagged selenium/standalone-chrome:131.0-chromedriver-131.0-grid-4.32.0-20250515\nTagged selenium/node-chrome:131.0-chromedriver-131.0-20250515\nTagged selenium/standalone-chrome:131.0-chromedriver-131.0-20250515\nTagged selenium/node-chrome:131.0-20250515\nTagged selenium/standalone-chrome:131.0-20250515\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.32.0/chrome_132.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.32.0 20250515 selenium false chrome true\nTagging images for browser chrome, version 4.32.0, build date 20250515, namespace selenium\nSelenium Grid version -> 4.32.0-20250515\nChrome version -> 132.0.6834.159\nShort Chrome version -> 132.0\nChromeDriver version -> 132.0.6834.159\nShort ChromeDriver version -> 132.0\nTagged selenium/node-chrome:132.0.6834.159-chromedriver-132.0.6834.159-grid-4.32.0-20250515\nTagged selenium/standalone-chrome:132.0.6834.159-chromedriver-132.0.6834.159-grid-4.32.0-20250515\nTagged selenium/node-chrome:132.0.6834.159-chromedriver-132.0.6834.159-20250515\nTagged selenium/standalone-chrome:132.0.6834.159-chromedriver-132.0.6834.159-20250515\nTagged selenium/node-chrome:132.0.6834.159-20250515\nTagged selenium/standalone-chrome:132.0.6834.159-20250515\nTagged selenium/node-chrome:132.0-chromedriver-132.0-grid-4.32.0-20250515\nTagged selenium/standalone-chrome:132.0-chromedriver-132.0-grid-4.32.0-20250515\nTagged selenium/node-chrome:132.0-chromedriver-132.0-20250515\nTagged selenium/standalone-chrome:132.0-chromedriver-132.0-20250515\nTagged selenium/node-chrome:132.0-20250515\nTagged selenium/standalone-chrome:132.0-20250515\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.32.0/chrome_133.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.32.0 20250515 selenium false chrome true\nTagging images for browser chrome, version 4.32.0, build date 20250515, namespace selenium\nSelenium Grid version -> 4.32.0-20250515\nChrome version -> 133.0.6943.141\nShort Chrome version -> 133.0\nChromeDriver version -> 133.0.6943.141\nShort ChromeDriver version -> 133.0\nTagged selenium/node-chrome:133.0.6943.141-chromedriver-133.0.6943.141-grid-4.32.0-20250515\nTagged selenium/standalone-chrome:133.0.6943.141-chromedriver-133.0.6943.141-grid-4.32.0-20250515\nTagged selenium/node-chrome:133.0.6943.141-chromedriver-133.0.6943.141-20250515\nTagged selenium/standalone-chrome:133.0.6943.141-chromedriver-133.0.6943.141-20250515\nTagged selenium/node-chrome:133.0.6943.141-20250515\nTagged selenium/standalone-chrome:133.0.6943.141-20250515\nTagged selenium/node-chrome:133.0-chromedriver-133.0-grid-4.32.0-20250515\nTagged selenium/standalone-chrome:133.0-chromedriver-133.0-grid-4.32.0-20250515\nTagged selenium/node-chrome:133.0-chromedriver-133.0-20250515\nTagged selenium/standalone-chrome:133.0-chromedriver-133.0-20250515\nTagged selenium/node-chrome:133.0-20250515\nTagged selenium/standalone-chrome:133.0-20250515\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.32.0/chrome_134.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.32.0 20250515 selenium false chrome true\nTagging images for browser chrome, version 4.32.0, build date 20250515, namespace selenium\nSelenium Grid version -> 4.32.0-20250515\nChrome version -> 134.0.6998.165\nShort Chrome version -> 134.0\nChromeDriver version -> 134.0.6998.165\nShort ChromeDriver version -> 134.0\nTagged selenium/node-chrome:134.0.6998.165-chromedriver-134.0.6998.165-grid-4.32.0-20250515\nTagged selenium/standalone-chrome:134.0.6998.165-chromedriver-134.0.6998.165-grid-4.32.0-20250515\nTagged selenium/node-chrome:134.0.6998.165-chromedriver-134.0.6998.165-20250515\nTagged selenium/standalone-chrome:134.0.6998.165-chromedriver-134.0.6998.165-20250515\nTagged selenium/node-chrome:134.0.6998.165-20250515\nTagged selenium/standalone-chrome:134.0.6998.165-20250515\nTagged selenium/node-chrome:134.0-chromedriver-134.0-grid-4.32.0-20250515\nTagged selenium/standalone-chrome:134.0-chromedriver-134.0-grid-4.32.0-20250515\nTagged selenium/node-chrome:134.0-chromedriver-134.0-20250515\nTagged selenium/standalone-chrome:134.0-chromedriver-134.0-20250515\nTagged selenium/node-chrome:134.0-20250515\nTagged selenium/standalone-chrome:134.0-20250515\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.32.0/chrome_95.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.32.0 20250515 selenium false chrome true\nTagging images for browser chrome, version 4.32.0, build date 20250515, namespace selenium\nSelenium Grid version -> 4.32.0-20250515\nChrome version -> 95.0.4638.69\nShort Chrome version -> 95.0\nChromeDriver version -> 95.0.4638.69\nShort ChromeDriver version -> 95.0\nTagged selenium/node-chrome:95.0.4638.69-chromedriver-95.0.4638.69-grid-4.32.0-20250515\nTagged selenium/standalone-chrome:95.0.4638.69-chromedriver-95.0.4638.69-grid-4.32.0-20250515\nTagged selenium/node-chrome:95.0.4638.69-chromedriver-95.0.4638.69-20250515\nTagged selenium/standalone-chrome:95.0.4638.69-chromedriver-95.0.4638.69-20250515\nTagged selenium/node-chrome:95.0.4638.69-20250515\nTagged selenium/standalone-chrome:95.0.4638.69-20250515\nTagged selenium/node-chrome:95.0-chromedriver-95.0-grid-4.32.0-20250515\nTagged selenium/standalone-chrome:95.0-chromedriver-95.0-grid-4.32.0-20250515\nTagged selenium/node-chrome:95.0-chromedriver-95.0-20250515\nTagged selenium/standalone-chrome:95.0-chromedriver-95.0-20250515\nTagged selenium/node-chrome:95.0-20250515\nTagged selenium/standalone-chrome:95.0-20250515\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.32.0/chrome_96.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.32.0 20250505 selenium false chrome true\nTagging images for browser chrome, version 4.32.0, build date 20250505, namespace selenium\nSelenium Grid version -> 4.32.0-20250505\nChrome version -> 96.0.4664.110\nShort Chrome version -> 96.0\nChromeDriver version -> 96.0.4664.45\nShort ChromeDriver version -> 96.0\nTagged selenium/node-chrome:96.0.4664.110-chromedriver-96.0.4664.45-grid-4.32.0-20250505\nTagged selenium/standalone-chrome:96.0.4664.110-chromedriver-96.0.4664.45-grid-4.32.0-20250505\nTagged selenium/node-chrome:96.0.4664.110-chromedriver-96.0.4664.45-20250505\nTagged selenium/standalone-chrome:96.0.4664.110-chromedriver-96.0.4664.45-20250505\nTagged selenium/node-chrome:96.0.4664.110-20250505\nTagged selenium/standalone-chrome:96.0.4664.110-20250505\nTagged selenium/node-chrome:96.0-chromedriver-96.0-grid-4.32.0-20250505\nTagged selenium/standalone-chrome:96.0-chromedriver-96.0-grid-4.32.0-20250505\nTagged selenium/node-chrome:96.0-chromedriver-96.0-20250505\nTagged selenium/standalone-chrome:96.0-chromedriver-96.0-20250505\nTagged selenium/node-chrome:96.0-20250505\nTagged selenium/standalone-chrome:96.0-20250505\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.32.0/chrome_97.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.32.0 20250515 selenium false chrome true\nTagging images for browser chrome, version 4.32.0, build date 20250515, namespace selenium\nSelenium Grid version -> 4.32.0-20250515\nChrome version -> 97.0.4692.99\nShort Chrome version -> 97.0\nChromeDriver version -> 97.0.4692.71\nShort ChromeDriver version -> 97.0\nTagged selenium/node-chrome:97.0.4692.99-chromedriver-97.0.4692.71-grid-4.32.0-20250515\nTagged selenium/standalone-chrome:97.0.4692.99-chromedriver-97.0.4692.71-grid-4.32.0-20250515\nTagged selenium/node-chrome:97.0.4692.99-chromedriver-97.0.4692.71-20250515\nTagged selenium/standalone-chrome:97.0.4692.99-chromedriver-97.0.4692.71-20250515\nTagged selenium/node-chrome:97.0.4692.99-20250515\nTagged selenium/standalone-chrome:97.0.4692.99-20250515\nTagged selenium/node-chrome:97.0-chromedriver-97.0-grid-4.32.0-20250515\nTagged selenium/standalone-chrome:97.0-chromedriver-97.0-grid-4.32.0-20250515\nTagged selenium/node-chrome:97.0-chromedriver-97.0-20250515\nTagged selenium/standalone-chrome:97.0-chromedriver-97.0-20250515\nTagged selenium/node-chrome:97.0-20250515\nTagged selenium/standalone-chrome:97.0-20250515\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.32.0/chrome_98.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.32.0 20250515 selenium false chrome true\nTagging images for browser chrome, version 4.32.0, build date 20250515, namespace selenium\nSelenium Grid version -> 4.32.0-20250515\nChrome version -> 98.0.4758.102\nShort Chrome version -> 98.0\nChromeDriver version -> 98.0.4758.102\nShort ChromeDriver version -> 98.0\nTagged selenium/node-chrome:98.0.4758.102-chromedriver-98.0.4758.102-grid-4.32.0-20250515\nTagged selenium/standalone-chrome:98.0.4758.102-chromedriver-98.0.4758.102-grid-4.32.0-20250515\nTagged selenium/node-chrome:98.0.4758.102-chromedriver-98.0.4758.102-20250515\nTagged selenium/standalone-chrome:98.0.4758.102-chromedriver-98.0.4758.102-20250515\nTagged selenium/node-chrome:98.0.4758.102-20250515\nTagged selenium/standalone-chrome:98.0.4758.102-20250515\nTagged selenium/node-chrome:98.0-chromedriver-98.0-grid-4.32.0-20250515\nTagged selenium/standalone-chrome:98.0-chromedriver-98.0-grid-4.32.0-20250515\nTagged selenium/node-chrome:98.0-chromedriver-98.0-20250515\nTagged selenium/standalone-chrome:98.0-chromedriver-98.0-20250515\nTagged selenium/node-chrome:98.0-20250515\nTagged selenium/standalone-chrome:98.0-20250515\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.32.0/chrome_99.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.32.0 20250515 selenium false chrome true\nTagging images for browser chrome, version 4.32.0, build date 20250515, namespace selenium\nSelenium Grid version -> 4.32.0-20250515\nChrome version -> 99.0.4844.84\nShort Chrome version -> 99.0\nChromeDriver version -> 99.0.4844.51\nShort ChromeDriver version -> 99.0\nTagged selenium/node-chrome:99.0.4844.84-chromedriver-99.0.4844.51-grid-4.32.0-20250515\nTagged selenium/standalone-chrome:99.0.4844.84-chromedriver-99.0.4844.51-grid-4.32.0-20250515\nTagged selenium/node-chrome:99.0.4844.84-chromedriver-99.0.4844.51-20250515\nTagged selenium/standalone-chrome:99.0.4844.84-chromedriver-99.0.4844.51-20250515\nTagged selenium/node-chrome:99.0.4844.84-20250515\nTagged selenium/standalone-chrome:99.0.4844.84-20250515\nTagged selenium/node-chrome:99.0-chromedriver-99.0-grid-4.32.0-20250515\nTagged selenium/standalone-chrome:99.0-chromedriver-99.0-grid-4.32.0-20250515\nTagged selenium/node-chrome:99.0-chromedriver-99.0-20250515\nTagged selenium/standalone-chrome:99.0-chromedriver-99.0-20250515\nTagged selenium/node-chrome:99.0-20250515\nTagged selenium/standalone-chrome:99.0-20250515\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.32.0/edge_114.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.32.0 20250515 selenium false edge true\nTagging images for browser edge, version 4.32.0, build date 20250515, namespace selenium\nSelenium Grid version -> 4.32.0-20250515\nEdge version -> 114.0.1823.82\nShort Edge version -> 114.0\nEdgeDriver version -> 114.0.1823.82\nShort EdgeDriver version -> 114.0\nTagged selenium/node-edge:114.0.1823.82-edgedriver-114.0.1823.82-grid-4.32.0-20250515\nTagged selenium/standalone-edge:114.0.1823.82-edgedriver-114.0.1823.82-grid-4.32.0-20250515\nTagged selenium/node-edge:114.0.1823.82-edgedriver-114.0.1823.82-20250515\nTagged selenium/standalone-edge:114.0.1823.82-edgedriver-114.0.1823.82-20250515\nTagged selenium/node-edge:114.0.1823.82-20250515\nTagged selenium/standalone-edge:114.0.1823.82-20250515\nTagged selenium/node-edge:114.0-edgedriver-114.0-grid-4.32.0-20250515\nTagged selenium/standalone-edge:114.0-edgedriver-114.0-grid-4.32.0-20250515\nTagged selenium/node-edge:114.0-edgedriver-114.0-20250515\nTagged selenium/standalone-edge:114.0-edgedriver-114.0-20250515\nTagged selenium/node-edge:114.0-20250515\nTagged selenium/standalone-edge:114.0-20250515\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.32.0/edge_115.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.32.0 20250515 selenium false edge true\nTagging images for browser edge, version 4.32.0, build date 20250515, namespace selenium\nSelenium Grid version -> 4.32.0-20250515\nEdge version -> 115.0.1901.203\nShort Edge version -> 115.0\nEdgeDriver version -> 115.0.1901.203\nShort EdgeDriver version -> 115.0\nTagged selenium/node-edge:115.0.1901.203-edgedriver-115.0.1901.203-grid-4.32.0-20250515\nTagged selenium/standalone-edge:115.0.1901.203-edgedriver-115.0.1901.203-grid-4.32.0-20250515\nTagged selenium/node-edge:115.0.1901.203-edgedriver-115.0.1901.203-20250515\nTagged selenium/standalone-edge:115.0.1901.203-edgedriver-115.0.1901.203-20250515\nTagged selenium/node-edge:115.0.1901.203-20250515\nTagged selenium/standalone-edge:115.0.1901.203-20250515\nTagged selenium/node-edge:115.0-edgedriver-115.0-grid-4.32.0-20250515\nTagged selenium/standalone-edge:115.0-edgedriver-115.0-grid-4.32.0-20250515\nTagged selenium/node-edge:115.0-edgedriver-115.0-20250515\nTagged selenium/standalone-edge:115.0-edgedriver-115.0-20250515\nTagged selenium/node-edge:115.0-20250515\nTagged selenium/standalone-edge:115.0-20250515\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.32.0/edge_116.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.32.0 20250515 selenium false edge true\nTagging images for browser edge, version 4.32.0, build date 20250515, namespace selenium\nSelenium Grid version -> 4.32.0-20250515\nEdge version -> 116.0.1938.81\nShort Edge version -> 116.0\nEdgeDriver version -> 116.0.1938.81\nShort EdgeDriver version -> 116.0\nTagged selenium/node-edge:116.0.1938.81-edgedriver-116.0.1938.81-grid-4.32.0-20250515\nTagged selenium/standalone-edge:116.0.1938.81-edgedriver-116.0.1938.81-grid-4.32.0-20250515\nTagged selenium/node-edge:116.0.1938.81-edgedriver-116.0.1938.81-20250515\nTagged selenium/standalone-edge:116.0.1938.81-edgedriver-116.0.1938.81-20250515\nTagged selenium/node-edge:116.0.1938.81-20250515\nTagged selenium/standalone-edge:116.0.1938.81-20250515\nTagged selenium/node-edge:116.0-edgedriver-116.0-grid-4.32.0-20250515\nTagged selenium/standalone-edge:116.0-edgedriver-116.0-grid-4.32.0-20250515\nTagged selenium/node-edge:116.0-edgedriver-116.0-20250515\nTagged selenium/standalone-edge:116.0-edgedriver-116.0-20250515\nTagged selenium/node-edge:116.0-20250515\nTagged selenium/standalone-edge:116.0-20250515\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.32.0/edge_117.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.32.0 20250515 selenium false edge true\nTagging images for browser edge, version 4.32.0, build date 20250515, namespace selenium\nSelenium Grid version -> 4.32.0-20250515\nEdge version -> 117.0.2045.55\nShort Edge version -> 117.0\nEdgeDriver version -> 117.0.2045.55\nShort EdgeDriver version -> 117.0\nTagged selenium/node-edge:117.0.2045.55-edgedriver-117.0.2045.55-grid-4.32.0-20250515\nTagged selenium/standalone-edge:117.0.2045.55-edgedriver-117.0.2045.55-grid-4.32.0-20250515\nTagged selenium/node-edge:117.0.2045.55-edgedriver-117.0.2045.55-20250515\nTagged selenium/standalone-edge:117.0.2045.55-edgedriver-117.0.2045.55-20250515\nTagged selenium/node-edge:117.0.2045.55-20250515\nTagged selenium/standalone-edge:117.0.2045.55-20250515\nTagged selenium/node-edge:117.0-edgedriver-117.0-grid-4.32.0-20250515\nTagged selenium/standalone-edge:117.0-edgedriver-117.0-grid-4.32.0-20250515\nTagged selenium/node-edge:117.0-edgedriver-117.0-20250515\nTagged selenium/standalone-edge:117.0-edgedriver-117.0-20250515\nTagged selenium/node-edge:117.0-20250515\nTagged selenium/standalone-edge:117.0-20250515\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.32.0/edge_118.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.32.0 20250515 selenium false edge true\nTagging images for browser edge, version 4.32.0, build date 20250515, namespace selenium\nSelenium Grid version -> 4.32.0-20250515\nEdge version -> 118.0.2088.76\nShort Edge version -> 118.0\nEdgeDriver version -> 118.0.2088.76\nShort EdgeDriver version -> 118.0\nTagged selenium/node-edge:118.0.2088.76-edgedriver-118.0.2088.76-grid-4.32.0-20250515\nTagged selenium/standalone-edge:118.0.2088.76-edgedriver-118.0.2088.76-grid-4.32.0-20250515\nTagged selenium/node-edge:118.0.2088.76-edgedriver-118.0.2088.76-20250515\nTagged selenium/standalone-edge:118.0.2088.76-edgedriver-118.0.2088.76-20250515\nTagged selenium/node-edge:118.0.2088.76-20250515\nTagged selenium/standalone-edge:118.0.2088.76-20250515\nTagged selenium/node-edge:118.0-edgedriver-118.0-grid-4.32.0-20250515\nTagged selenium/standalone-edge:118.0-edgedriver-118.0-grid-4.32.0-20250515\nTagged selenium/node-edge:118.0-edgedriver-118.0-20250515\nTagged selenium/standalone-edge:118.0-edgedriver-118.0-20250515\nTagged selenium/node-edge:118.0-20250515\nTagged selenium/standalone-edge:118.0-20250515\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.32.0/edge_119.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.32.0 20250515 selenium false edge true\nTagging images for browser edge, version 4.32.0, build date 20250515, namespace selenium\nSelenium Grid version -> 4.32.0-20250515\nEdge version -> 119.0.2151.97\nShort Edge version -> 119.0\nEdgeDriver version -> 119.0.2151.97\nShort EdgeDriver version -> 119.0\nTagged selenium/node-edge:119.0.2151.97-edgedriver-119.0.2151.97-grid-4.32.0-20250515\nTagged selenium/standalone-edge:119.0.2151.97-edgedriver-119.0.2151.97-grid-4.32.0-20250515\nTagged selenium/node-edge:119.0.2151.97-edgedriver-119.0.2151.97-20250515\nTagged selenium/standalone-edge:119.0.2151.97-edgedriver-119.0.2151.97-20250515\nTagged selenium/node-edge:119.0.2151.97-20250515\nTagged selenium/standalone-edge:119.0.2151.97-20250515\nTagged selenium/node-edge:119.0-edgedriver-119.0-grid-4.32.0-20250515\nTagged selenium/standalone-edge:119.0-edgedriver-119.0-grid-4.32.0-20250515\nTagged selenium/node-edge:119.0-edgedriver-119.0-20250515\nTagged selenium/standalone-edge:119.0-edgedriver-119.0-20250515\nTagged selenium/node-edge:119.0-20250515\nTagged selenium/standalone-edge:119.0-20250515\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.32.0/edge_120.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.32.0 20250515 selenium false edge true\nTagging images for browser edge, version 4.32.0, build date 20250515, namespace selenium\nSelenium Grid version -> 4.32.0-20250515\nEdge version -> 120.0.2210.144\nShort Edge version -> 120.0\nEdgeDriver version -> 120.0.2210.144\nShort EdgeDriver version -> 120.0\nTagged selenium/node-edge:120.0.2210.144-edgedriver-120.0.2210.144-grid-4.32.0-20250515\nTagged selenium/standalone-edge:120.0.2210.144-edgedriver-120.0.2210.144-grid-4.32.0-20250515\nTagged selenium/node-edge:120.0.2210.144-edgedriver-120.0.2210.144-20250515\nTagged selenium/standalone-edge:120.0.2210.144-edgedriver-120.0.2210.144-20250515\nTagged selenium/node-edge:120.0.2210.144-20250515\nTagged selenium/standalone-edge:120.0.2210.144-20250515\nTagged selenium/node-edge:120.0-edgedriver-120.0-grid-4.32.0-20250515\nTagged selenium/standalone-edge:120.0-edgedriver-120.0-grid-4.32.0-20250515\nTagged selenium/node-edge:120.0-edgedriver-120.0-20250515\nTagged selenium/standalone-edge:120.0-edgedriver-120.0-20250515\nTagged selenium/node-edge:120.0-20250515\nTagged selenium/standalone-edge:120.0-20250515\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.32.0/edge_121.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.32.0 20250515 selenium false edge true\nTagging images for browser edge, version 4.32.0, build date 20250515, namespace selenium\nSelenium Grid version -> 4.32.0-20250515\nEdge version -> 121.0.2277.128\nShort Edge version -> 121.0\nEdgeDriver version -> 121.0.2277.128\nShort EdgeDriver version -> 121.0\nTagged selenium/node-edge:121.0.2277.128-edgedriver-121.0.2277.128-grid-4.32.0-20250515\nTagged selenium/standalone-edge:121.0.2277.128-edgedriver-121.0.2277.128-grid-4.32.0-20250515\nTagged selenium/node-edge:121.0.2277.128-edgedriver-121.0.2277.128-20250515\nTagged selenium/standalone-edge:121.0.2277.128-edgedriver-121.0.2277.128-20250515\nTagged selenium/node-edge:121.0.2277.128-20250515\nTagged selenium/standalone-edge:121.0.2277.128-20250515\nTagged selenium/node-edge:121.0-edgedriver-121.0-grid-4.32.0-20250515\nTagged selenium/standalone-edge:121.0-edgedriver-121.0-grid-4.32.0-20250515\nTagged selenium/node-edge:121.0-edgedriver-121.0-20250515\nTagged selenium/standalone-edge:121.0-edgedriver-121.0-20250515\nTagged selenium/node-edge:121.0-20250515\nTagged selenium/standalone-edge:121.0-20250515\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.32.0/edge_122.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.32.0 20250515 selenium false edge true\nTagging images for browser edge, version 4.32.0, build date 20250515, namespace selenium\nSelenium Grid version -> 4.32.0-20250515\nEdge version -> 122.0.2365.92\nShort Edge version -> 122.0\nEdgeDriver version -> 122.0.2365.92\nShort EdgeDriver version -> 122.0\nTagged selenium/node-edge:122.0.2365.92-edgedriver-122.0.2365.92-grid-4.32.0-20250515\nTagged selenium/standalone-edge:122.0.2365.92-edgedriver-122.0.2365.92-grid-4.32.0-20250515\nTagged selenium/node-edge:122.0.2365.92-edgedriver-122.0.2365.92-20250515\nTagged selenium/standalone-edge:122.0.2365.92-edgedriver-122.0.2365.92-20250515\nTagged selenium/node-edge:122.0.2365.92-20250515\nTagged selenium/standalone-edge:122.0.2365.92-20250515\nTagged selenium/node-edge:122.0-edgedriver-122.0-grid-4.32.0-20250515\nTagged selenium/standalone-edge:122.0-edgedriver-122.0-grid-4.32.0-20250515\nTagged selenium/node-edge:122.0-edgedriver-122.0-20250515\nTagged selenium/standalone-edge:122.0-edgedriver-122.0-20250515\nTagged selenium/node-edge:122.0-20250515\nTagged selenium/standalone-edge:122.0-20250515\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.32.0/edge_123.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.32.0 20250515 selenium false edge true\nTagging images for browser edge, version 4.32.0, build date 20250515, namespace selenium\nSelenium Grid version -> 4.32.0-20250515\nEdge version -> 123.0.2420.97\nShort Edge version -> 123.0\nEdgeDriver version -> 123.0.2420.97\nShort EdgeDriver version -> 123.0\nTagged selenium/node-edge:123.0.2420.97-edgedriver-123.0.2420.97-grid-4.32.0-20250515\nTagged selenium/standalone-edge:123.0.2420.97-edgedriver-123.0.2420.97-grid-4.32.0-20250515\nTagged selenium/node-edge:123.0.2420.97-edgedriver-123.0.2420.97-20250515\nTagged selenium/standalone-edge:123.0.2420.97-edgedriver-123.0.2420.97-20250515\nTagged selenium/node-edge:123.0.2420.97-20250515\nTagged selenium/standalone-edge:123.0.2420.97-20250515\nTagged selenium/node-edge:123.0-edgedriver-123.0-grid-4.32.0-20250515\nTagged selenium/standalone-edge:123.0-edgedriver-123.0-grid-4.32.0-20250515\nTagged selenium/node-edge:123.0-edgedriver-123.0-20250515\nTagged selenium/standalone-edge:123.0-edgedriver-123.0-20250515\nTagged selenium/node-edge:123.0-20250515\nTagged selenium/standalone-edge:123.0-20250515\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.32.0/edge_124.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.32.0 20250515 selenium false edge true\nTagging images for browser edge, version 4.32.0, build date 20250515, namespace selenium\nSelenium Grid version -> 4.32.0-20250515\nEdge version -> 124.0.2478.109\nShort Edge version -> 124.0\nEdgeDriver version -> 124.0.2478.109\nShort EdgeDriver version -> 124.0\nTagged selenium/node-edge:124.0.2478.109-edgedriver-124.0.2478.109-grid-4.32.0-20250515\nTagged selenium/standalone-edge:124.0.2478.109-edgedriver-124.0.2478.109-grid-4.32.0-20250515\nTagged selenium/node-edge:124.0.2478.109-edgedriver-124.0.2478.109-20250515\nTagged selenium/standalone-edge:124.0.2478.109-edgedriver-124.0.2478.109-20250515\nTagged selenium/node-edge:124.0.2478.109-20250515\nTagged selenium/standalone-edge:124.0.2478.109-20250515\nTagged selenium/node-edge:124.0-edgedriver-124.0-grid-4.32.0-20250515\nTagged selenium/standalone-edge:124.0-edgedriver-124.0-grid-4.32.0-20250515\nTagged selenium/node-edge:124.0-edgedriver-124.0-20250515\nTagged selenium/standalone-edge:124.0-edgedriver-124.0-20250515\nTagged selenium/node-edge:124.0-20250515\nTagged selenium/standalone-edge:124.0-20250515\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.32.0/edge_125.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.32.0 20250515 selenium false edge true\nTagging images for browser edge, version 4.32.0, build date 20250515, namespace selenium\nSelenium Grid version -> 4.32.0-20250515\nEdge version -> 125.0.2535.92\nShort Edge version -> 125.0\nEdgeDriver version -> 125.0.2535.92\nShort EdgeDriver version -> 125.0\nTagged selenium/node-edge:125.0.2535.92-edgedriver-125.0.2535.92-grid-4.32.0-20250515\nTagged selenium/standalone-edge:125.0.2535.92-edgedriver-125.0.2535.92-grid-4.32.0-20250515\nTagged selenium/node-edge:125.0.2535.92-edgedriver-125.0.2535.92-20250515\nTagged selenium/standalone-edge:125.0.2535.92-edgedriver-125.0.2535.92-20250515\nTagged selenium/node-edge:125.0.2535.92-20250515\nTagged selenium/standalone-edge:125.0.2535.92-20250515\nTagged selenium/node-edge:125.0-edgedriver-125.0-grid-4.32.0-20250515\nTagged selenium/standalone-edge:125.0-edgedriver-125.0-grid-4.32.0-20250515\nTagged selenium/node-edge:125.0-edgedriver-125.0-20250515\nTagged selenium/standalone-edge:125.0-edgedriver-125.0-20250515\nTagged selenium/node-edge:125.0-20250515\nTagged selenium/standalone-edge:125.0-20250515\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.32.0/edge_126.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.32.0 20250515 selenium false edge true\nTagging images for browser edge, version 4.32.0, build date 20250515, namespace selenium\nSelenium Grid version -> 4.32.0-20250515\nEdge version -> 126.0.2592.113\nShort Edge version -> 126.0\nEdgeDriver version -> 126.0.2592.123\nShort EdgeDriver version -> 126.0\nTagged selenium/node-edge:126.0.2592.113-edgedriver-126.0.2592.123-grid-4.32.0-20250515\nTagged selenium/standalone-edge:126.0.2592.113-edgedriver-126.0.2592.123-grid-4.32.0-20250515\nTagged selenium/node-edge:126.0.2592.113-edgedriver-126.0.2592.123-20250515\nTagged selenium/standalone-edge:126.0.2592.113-edgedriver-126.0.2592.123-20250515\nTagged selenium/node-edge:126.0.2592.113-20250515\nTagged selenium/standalone-edge:126.0.2592.113-20250515\nTagged selenium/node-edge:126.0-edgedriver-126.0-grid-4.32.0-20250515\nTagged selenium/standalone-edge:126.0-edgedriver-126.0-grid-4.32.0-20250515\nTagged selenium/node-edge:126.0-edgedriver-126.0-20250515\nTagged selenium/standalone-edge:126.0-edgedriver-126.0-20250515\nTagged selenium/node-edge:126.0-20250515\nTagged selenium/standalone-edge:126.0-20250515\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.32.0/edge_127.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.32.0 20250515 selenium false edge true\nTagging images for browser edge, version 4.32.0, build date 20250515, namespace selenium\nSelenium Grid version -> 4.32.0-20250515\nEdge version -> 127.0.2651.105\nShort Edge version -> 127.0\nEdgeDriver version -> 127.0.2651.107\nShort EdgeDriver version -> 127.0\nTagged selenium/node-edge:127.0.2651.105-edgedriver-127.0.2651.107-grid-4.32.0-20250515\nTagged selenium/standalone-edge:127.0.2651.105-edgedriver-127.0.2651.107-grid-4.32.0-20250515\nTagged selenium/node-edge:127.0.2651.105-edgedriver-127.0.2651.107-20250515\nTagged selenium/standalone-edge:127.0.2651.105-edgedriver-127.0.2651.107-20250515\nTagged selenium/node-edge:127.0.2651.105-20250515\nTagged selenium/standalone-edge:127.0.2651.105-20250515\nTagged selenium/node-edge:127.0-edgedriver-127.0-grid-4.32.0-20250515\nTagged selenium/standalone-edge:127.0-edgedriver-127.0-grid-4.32.0-20250515\nTagged selenium/node-edge:127.0-edgedriver-127.0-20250515\nTagged selenium/standalone-edge:127.0-edgedriver-127.0-20250515\nTagged selenium/node-edge:127.0-20250515\nTagged selenium/standalone-edge:127.0-20250515\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.32.0/edge_128.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.32.0 20250515 selenium false edge true\nTagging images for browser edge, version 4.32.0, build date 20250515, namespace selenium\nSelenium Grid version -> 4.32.0-20250515\nEdge version -> 128.0.2739.79\nShort Edge version -> 128.0\nEdgeDriver version -> 128.0.2739.81\nShort EdgeDriver version -> 128.0\nTagged selenium/node-edge:128.0.2739.79-edgedriver-128.0.2739.81-grid-4.32.0-20250515\nTagged selenium/standalone-edge:128.0.2739.79-edgedriver-128.0.2739.81-grid-4.32.0-20250515\nTagged selenium/node-edge:128.0.2739.79-edgedriver-128.0.2739.81-20250515\nTagged selenium/standalone-edge:128.0.2739.79-edgedriver-128.0.2739.81-20250515\nTagged selenium/node-edge:128.0.2739.79-20250515\nTagged selenium/standalone-edge:128.0.2739.79-20250515\nTagged selenium/node-edge:128.0-edgedriver-128.0-grid-4.32.0-20250515\nTagged selenium/standalone-edge:128.0-edgedriver-128.0-grid-4.32.0-20250515\nTagged selenium/node-edge:128.0-edgedriver-128.0-20250515\nTagged selenium/standalone-edge:128.0-edgedriver-128.0-20250515\nTagged selenium/node-edge:128.0-20250515\nTagged selenium/standalone-edge:128.0-20250515\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.32.0/edge_129.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.32.0 20250515 selenium false edge true\nTagging images for browser edge, version 4.32.0, build date 20250515, namespace selenium\nSelenium Grid version -> 4.32.0-20250515\nEdge version -> 129.0.2792.89\nShort Edge version -> 129.0\nEdgeDriver version -> 129.0.2792.98\nShort EdgeDriver version -> 129.0\nTagged selenium/node-edge:129.0.2792.89-edgedriver-129.0.2792.98-grid-4.32.0-20250515\nTagged selenium/standalone-edge:129.0.2792.89-edgedriver-129.0.2792.98-grid-4.32.0-20250515\nTagged selenium/node-edge:129.0.2792.89-edgedriver-129.0.2792.98-20250515\nTagged selenium/standalone-edge:129.0.2792.89-edgedriver-129.0.2792.98-20250515\nTagged selenium/node-edge:129.0.2792.89-20250515\nTagged selenium/standalone-edge:129.0.2792.89-20250515\nTagged selenium/node-edge:129.0-edgedriver-129.0-grid-4.32.0-20250515\nTagged selenium/standalone-edge:129.0-edgedriver-129.0-grid-4.32.0-20250515\nTagged selenium/node-edge:129.0-edgedriver-129.0-20250515\nTagged selenium/standalone-edge:129.0-edgedriver-129.0-20250515\nTagged selenium/node-edge:129.0-20250515\nTagged selenium/standalone-edge:129.0-20250515\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.32.0/edge_130.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.32.0 20250515 selenium false edge true\nTagging images for browser edge, version 4.32.0, build date 20250515, namespace selenium\nSelenium Grid version -> 4.32.0-20250515\nEdge version -> 130.0.2849.80\nShort Edge version -> 130.0\nEdgeDriver version -> 130.0.2849.78\nShort EdgeDriver version -> 130.0\nTagged selenium/node-edge:130.0.2849.80-edgedriver-130.0.2849.78-grid-4.32.0-20250515\nTagged selenium/standalone-edge:130.0.2849.80-edgedriver-130.0.2849.78-grid-4.32.0-20250515\nTagged selenium/node-edge:130.0.2849.80-edgedriver-130.0.2849.78-20250515\nTagged selenium/standalone-edge:130.0.2849.80-edgedriver-130.0.2849.78-20250515\nTagged selenium/node-edge:130.0.2849.80-20250515\nTagged selenium/standalone-edge:130.0.2849.80-20250515\nTagged selenium/node-edge:130.0-edgedriver-130.0-grid-4.32.0-20250515\nTagged selenium/standalone-edge:130.0-edgedriver-130.0-grid-4.32.0-20250515\nTagged selenium/node-edge:130.0-edgedriver-130.0-20250515\nTagged selenium/standalone-edge:130.0-edgedriver-130.0-20250515\nTagged selenium/node-edge:130.0-20250515\nTagged selenium/standalone-edge:130.0-20250515\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.32.0/edge_131.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.32.0 20250515 selenium false edge true\nTagging images for browser edge, version 4.32.0, build date 20250515, namespace selenium\nSelenium Grid version -> 4.32.0-20250515\nEdge version -> 131.0.2903.147\nShort Edge version -> 131.0\nEdgeDriver version -> 131.0.2903.147\nShort EdgeDriver version -> 131.0\nTagged selenium/node-edge:131.0.2903.147-edgedriver-131.0.2903.147-grid-4.32.0-20250515\nTagged selenium/standalone-edge:131.0.2903.147-edgedriver-131.0.2903.147-grid-4.32.0-20250515\nTagged selenium/node-edge:131.0.2903.147-edgedriver-131.0.2903.147-20250515\nTagged selenium/standalone-edge:131.0.2903.147-edgedriver-131.0.2903.147-20250515\nTagged selenium/node-edge:131.0.2903.147-20250515\nTagged selenium/standalone-edge:131.0.2903.147-20250515\nTagged selenium/node-edge:131.0-edgedriver-131.0-grid-4.32.0-20250515\nTagged selenium/standalone-edge:131.0-edgedriver-131.0-grid-4.32.0-20250515\nTagged selenium/node-edge:131.0-edgedriver-131.0-20250515\nTagged selenium/standalone-edge:131.0-edgedriver-131.0-20250515\nTagged selenium/node-edge:131.0-20250515\nTagged selenium/standalone-edge:131.0-20250515\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.32.0/edge_132.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.32.0 20250515 selenium false edge true\nTagging images for browser edge, version 4.32.0, build date 20250515, namespace selenium\nSelenium Grid version -> 4.32.0-20250515\nEdge version -> 132.0.2957.140\nShort Edge version -> 132.0\nEdgeDriver version -> 132.0.2957.140\nShort EdgeDriver version -> 132.0\nTagged selenium/node-edge:132.0.2957.140-edgedriver-132.0.2957.140-grid-4.32.0-20250515\nTagged selenium/standalone-edge:132.0.2957.140-edgedriver-132.0.2957.140-grid-4.32.0-20250515\nTagged selenium/node-edge:132.0.2957.140-edgedriver-132.0.2957.140-20250515\nTagged selenium/standalone-edge:132.0.2957.140-edgedriver-132.0.2957.140-20250515\nTagged selenium/node-edge:132.0.2957.140-20250515\nTagged selenium/standalone-edge:132.0.2957.140-20250515\nTagged selenium/node-edge:132.0-edgedriver-132.0-grid-4.32.0-20250515\nTagged selenium/standalone-edge:132.0-edgedriver-132.0-grid-4.32.0-20250515\nTagged selenium/node-edge:132.0-edgedriver-132.0-20250515\nTagged selenium/standalone-edge:132.0-edgedriver-132.0-20250515\nTagged selenium/node-edge:132.0-20250515\nTagged selenium/standalone-edge:132.0-20250515\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.32.0/edge_133.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.32.0 20250515 selenium false edge true\nTagging images for browser edge, version 4.32.0, build date 20250515, namespace selenium\nSelenium Grid version -> 4.32.0-20250515\nEdge version -> 133.0.3065.92\nShort Edge version -> 133.0\nEdgeDriver version -> 133.0.3065.92\nShort EdgeDriver version -> 133.0\nTagged selenium/node-edge:133.0.3065.92-edgedriver-133.0.3065.92-grid-4.32.0-20250515\nTagged selenium/standalone-edge:133.0.3065.92-edgedriver-133.0.3065.92-grid-4.32.0-20250515\nTagged selenium/node-edge:133.0.3065.92-edgedriver-133.0.3065.92-20250515\nTagged selenium/standalone-edge:133.0.3065.92-edgedriver-133.0.3065.92-20250515\nTagged selenium/node-edge:133.0.3065.92-20250515\nTagged selenium/standalone-edge:133.0.3065.92-20250515\nTagged selenium/node-edge:133.0-edgedriver-133.0-grid-4.32.0-20250515\nTagged selenium/standalone-edge:133.0-edgedriver-133.0-grid-4.32.0-20250515\nTagged selenium/node-edge:133.0-edgedriver-133.0-20250515\nTagged selenium/standalone-edge:133.0-edgedriver-133.0-20250515\nTagged selenium/node-edge:133.0-20250515\nTagged selenium/standalone-edge:133.0-20250515\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.32.0/edge_134.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.32.0 20250515 selenium false edge true\nTagging images for browser edge, version 4.32.0, build date 20250515, namespace selenium\nSelenium Grid version -> 4.32.0-20250515\nEdge version -> 134.0.3124.95\nShort Edge version -> 134.0\nEdgeDriver version -> 134.0.3124.95\nShort EdgeDriver version -> 134.0\nTagged selenium/node-edge:134.0.3124.95-edgedriver-134.0.3124.95-grid-4.32.0-20250515\nTagged selenium/standalone-edge:134.0.3124.95-edgedriver-134.0.3124.95-grid-4.32.0-20250515\nTagged selenium/node-edge:134.0.3124.95-edgedriver-134.0.3124.95-20250515\nTagged selenium/standalone-edge:134.0.3124.95-edgedriver-134.0.3124.95-20250515\nTagged selenium/node-edge:134.0.3124.95-20250515\nTagged selenium/standalone-edge:134.0.3124.95-20250515\nTagged selenium/node-edge:134.0-edgedriver-134.0-grid-4.32.0-20250515\nTagged selenium/standalone-edge:134.0-edgedriver-134.0-grid-4.32.0-20250515\nTagged selenium/node-edge:134.0-edgedriver-134.0-20250515\nTagged selenium/standalone-edge:134.0-edgedriver-134.0-20250515\nTagged selenium/node-edge:134.0-20250515\nTagged selenium/standalone-edge:134.0-20250515\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.32.0/edge_135.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.32.0 20250515 selenium false edge true\nTagging images for browser edge, version 4.32.0, build date 20250515, namespace selenium\nSelenium Grid version -> 4.32.0-20250515\nEdge version -> 135.0.3179.98\nShort Edge version -> 135.0\nEdgeDriver version -> 135.0.3179.98\nShort EdgeDriver version -> 135.0\nTagged selenium/node-edge:135.0.3179.98-edgedriver-135.0.3179.98-grid-4.32.0-20250515\nTagged selenium/standalone-edge:135.0.3179.98-edgedriver-135.0.3179.98-grid-4.32.0-20250515\nTagged selenium/node-edge:135.0.3179.98-edgedriver-135.0.3179.98-20250515\nTagged selenium/standalone-edge:135.0.3179.98-edgedriver-135.0.3179.98-20250515\nTagged selenium/node-edge:135.0.3179.98-20250515\nTagged selenium/standalone-edge:135.0.3179.98-20250515\nTagged selenium/node-edge:135.0-edgedriver-135.0-grid-4.32.0-20250515\nTagged selenium/standalone-edge:135.0-edgedriver-135.0-grid-4.32.0-20250515\nTagged selenium/node-edge:135.0-edgedriver-135.0-20250515\nTagged selenium/standalone-edge:135.0-edgedriver-135.0-20250515\nTagged selenium/node-edge:135.0-20250515\nTagged selenium/standalone-edge:135.0-20250515\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.32.0/firefox_100.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.32.0 20250515 selenium false firefox true\nTagging images for browser firefox, version 4.32.0, build date 20250515, namespace selenium\nSelenium Grid version -> 4.32.0-20250515\nFirefox version -> 100.0.2\nShort Firefox version -> 100.0\nGeckoDriver version -> 0.36.0\nShort GeckoDriver version -> 0.36\nTagged selenium/node-firefox:100.0.2-geckodriver-0.36.0-grid-4.32.0-20250515\nTagged selenium/standalone-firefox:100.0.2-geckodriver-0.36.0-grid-4.32.0-20250515\nTagged selenium/node-firefox:100.0.2-geckodriver-0.36.0-20250515\nTagged selenium/standalone-firefox:100.0.2-geckodriver-0.36.0-20250515\nTagged selenium/node-firefox:100.0.2-20250515\nTagged selenium/standalone-firefox:100.0.2-20250515\nTagged selenium/node-firefox:100.0-geckodriver-0.36-grid-4.32.0-20250515\nTagged selenium/standalone-firefox:100.0-geckodriver-0.36-grid-4.32.0-20250515\nTagged selenium/node-firefox:100.0-geckodriver-0.36-20250515\nTagged selenium/standalone-firefox:100.0-geckodriver-0.36-20250515\nTagged selenium/node-firefox:100.0-20250515\nTagged selenium/standalone-firefox:100.0-20250515\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.32.0/firefox_101.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.32.0 20250515 selenium false firefox true\nTagging images for browser firefox, version 4.32.0, build date 20250515, namespace selenium\nSelenium Grid version -> 4.32.0-20250515\nFirefox version -> 101.0.1\nShort Firefox version -> 101.0\nGeckoDriver version -> 0.36.0\nShort GeckoDriver version -> 0.36\nTagged selenium/node-firefox:101.0.1-geckodriver-0.36.0-grid-4.32.0-20250515\nTagged selenium/standalone-firefox:101.0.1-geckodriver-0.36.0-grid-4.32.0-20250515\nTagged selenium/node-firefox:101.0.1-geckodriver-0.36.0-20250515\nTagged selenium/standalone-firefox:101.0.1-geckodriver-0.36.0-20250515\nTagged selenium/node-firefox:101.0.1-20250515\nTagged selenium/standalone-firefox:101.0.1-20250515\nTagged selenium/node-firefox:101.0-geckodriver-0.36-grid-4.32.0-20250515\nTagged selenium/standalone-firefox:101.0-geckodriver-0.36-grid-4.32.0-20250515\nTagged selenium/node-firefox:101.0-geckodriver-0.36-20250515\nTagged selenium/standalone-firefox:101.0-geckodriver-0.36-20250515\nTagged selenium/node-firefox:101.0-20250515\nTagged selenium/standalone-firefox:101.0-20250515\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.32.0/firefox_102.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.32.0 20250515 selenium false firefox true\nTagging images for browser firefox, version 4.32.0, build date 20250515, namespace selenium\nSelenium Grid version -> 4.32.0-20250515\nFirefox version -> 102.0.1\nShort Firefox version -> 102.0\nGeckoDriver version -> 0.36.0\nShort GeckoDriver version -> 0.36\nTagged selenium/node-firefox:102.0.1-geckodriver-0.36.0-grid-4.32.0-20250515\nTagged selenium/standalone-firefox:102.0.1-geckodriver-0.36.0-grid-4.32.0-20250515\nTagged selenium/node-firefox:102.0.1-geckodriver-0.36.0-20250515\nTagged selenium/standalone-firefox:102.0.1-geckodriver-0.36.0-20250515\nTagged selenium/node-firefox:102.0.1-20250515\nTagged selenium/standalone-firefox:102.0.1-20250515\nTagged selenium/node-firefox:102.0-geckodriver-0.36-grid-4.32.0-20250515\nTagged selenium/standalone-firefox:102.0-geckodriver-0.36-grid-4.32.0-20250515\nTagged selenium/node-firefox:102.0-geckodriver-0.36-20250515\nTagged selenium/standalone-firefox:102.0-geckodriver-0.36-20250515\nTagged selenium/node-firefox:102.0-20250515\nTagged selenium/standalone-firefox:102.0-20250515\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.32.0/firefox_103.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.32.0 20250515 selenium false firefox true\nTagging images for browser firefox, version 4.32.0, build date 20250515, namespace selenium\nSelenium Grid version -> 4.32.0-20250515\nFirefox version -> 103.0.2\nShort Firefox version -> 103.0\nGeckoDriver version -> 0.36.0\nShort GeckoDriver version -> 0.36\nTagged selenium/node-firefox:103.0.2-geckodriver-0.36.0-grid-4.32.0-20250515\nTagged selenium/standalone-firefox:103.0.2-geckodriver-0.36.0-grid-4.32.0-20250515\nTagged selenium/node-firefox:103.0.2-geckodriver-0.36.0-20250515\nTagged selenium/standalone-firefox:103.0.2-geckodriver-0.36.0-20250515\nTagged selenium/node-firefox:103.0.2-20250515\nTagged selenium/standalone-firefox:103.0.2-20250515\nTagged selenium/node-firefox:103.0-geckodriver-0.36-grid-4.32.0-20250515\nTagged selenium/standalone-firefox:103.0-geckodriver-0.36-grid-4.32.0-20250515\nTagged selenium/node-firefox:103.0-geckodriver-0.36-20250515\nTagged selenium/standalone-firefox:103.0-geckodriver-0.36-20250515\nTagged selenium/node-firefox:103.0-20250515\nTagged selenium/standalone-firefox:103.0-20250515\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.32.0/firefox_104.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.32.0 20250515 selenium false firefox true\nTagging images for browser firefox, version 4.32.0, build date 20250515, namespace selenium\nSelenium Grid version -> 4.32.0-20250515\nFirefox version -> 104.0.2\nShort Firefox version -> 104.0\nGeckoDriver version -> 0.36.0\nShort GeckoDriver version -> 0.36\nTagged selenium/node-firefox:104.0.2-geckodriver-0.36.0-grid-4.32.0-20250515\nTagged selenium/standalone-firefox:104.0.2-geckodriver-0.36.0-grid-4.32.0-20250515\nTagged selenium/node-firefox:104.0.2-geckodriver-0.36.0-20250515\nTagged selenium/standalone-firefox:104.0.2-geckodriver-0.36.0-20250515\nTagged selenium/node-firefox:104.0.2-20250515\nTagged selenium/standalone-firefox:104.0.2-20250515\nTagged selenium/node-firefox:104.0-geckodriver-0.36-grid-4.32.0-20250515\nTagged selenium/standalone-firefox:104.0-geckodriver-0.36-grid-4.32.0-20250515\nTagged selenium/node-firefox:104.0-geckodriver-0.36-20250515\nTagged selenium/standalone-firefox:104.0-geckodriver-0.36-20250515\nTagged selenium/node-firefox:104.0-20250515\nTagged selenium/standalone-firefox:104.0-20250515\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.32.0/firefox_105.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.32.0 20250515 selenium false firefox true\nTagging images for browser firefox, version 4.32.0, build date 20250515, namespace selenium\nSelenium Grid version -> 4.32.0-20250515\nFirefox version -> 105.0.3\nShort Firefox version -> 105.0\nGeckoDriver version -> 0.36.0\nShort GeckoDriver version -> 0.36\nTagged selenium/node-firefox:105.0.3-geckodriver-0.36.0-grid-4.32.0-20250515\nTagged selenium/standalone-firefox:105.0.3-geckodriver-0.36.0-grid-4.32.0-20250515\nTagged selenium/node-firefox:105.0.3-geckodriver-0.36.0-20250515\nTagged selenium/standalone-firefox:105.0.3-geckodriver-0.36.0-20250515\nTagged selenium/node-firefox:105.0.3-20250515\nTagged selenium/standalone-firefox:105.0.3-20250515\nTagged selenium/node-firefox:105.0-geckodriver-0.36-grid-4.32.0-20250515\nTagged selenium/standalone-firefox:105.0-geckodriver-0.36-grid-4.32.0-20250515\nTagged selenium/node-firefox:105.0-geckodriver-0.36-20250515\nTagged selenium/standalone-firefox:105.0-geckodriver-0.36-20250515\nTagged selenium/node-firefox:105.0-20250515\nTagged selenium/standalone-firefox:105.0-20250515\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.32.0/firefox_106.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.32.0 20250515 selenium false firefox true\nTagging images for browser firefox, version 4.32.0, build date 20250515, namespace selenium\nSelenium Grid version -> 4.32.0-20250515\nFirefox version -> 106.0.5\nShort Firefox version -> 106.0\nGeckoDriver version -> 0.36.0\nShort GeckoDriver version -> 0.36\nTagged selenium/node-firefox:106.0.5-geckodriver-0.36.0-grid-4.32.0-20250515\nTagged selenium/standalone-firefox:106.0.5-geckodriver-0.36.0-grid-4.32.0-20250515\nTagged selenium/node-firefox:106.0.5-geckodriver-0.36.0-20250515\nTagged selenium/standalone-firefox:106.0.5-geckodriver-0.36.0-20250515\nTagged selenium/node-firefox:106.0.5-20250515\nTagged selenium/standalone-firefox:106.0.5-20250515\nTagged selenium/node-firefox:106.0-geckodriver-0.36-grid-4.32.0-20250515\nTagged selenium/standalone-firefox:106.0-geckodriver-0.36-grid-4.32.0-20250515\nTagged selenium/node-firefox:106.0-geckodriver-0.36-20250515\nTagged selenium/standalone-firefox:106.0-geckodriver-0.36-20250515\nTagged selenium/node-firefox:106.0-20250515\nTagged selenium/standalone-firefox:106.0-20250515\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.32.0/firefox_107.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.32.0 20250505 selenium false firefox true\nTagging images for browser firefox, version 4.32.0, build date 20250505, namespace selenium\nSelenium Grid version -> 4.32.0-20250505\nFirefox version -> 107.0.1\nShort Firefox version -> 107.0\nGeckoDriver version -> 0.36.0\nShort GeckoDriver version -> 0.36\nTagged selenium/node-firefox:107.0.1-geckodriver-0.36.0-grid-4.32.0-20250505\nTagged selenium/standalone-firefox:107.0.1-geckodriver-0.36.0-grid-4.32.0-20250505\nTagged selenium/node-firefox:107.0.1-geckodriver-0.36.0-20250505\nTagged selenium/standalone-firefox:107.0.1-geckodriver-0.36.0-20250505\nTagged selenium/node-firefox:107.0.1-20250505\nTagged selenium/standalone-firefox:107.0.1-20250505\nTagged selenium/node-firefox:107.0-geckodriver-0.36-grid-4.32.0-20250505\nTagged selenium/standalone-firefox:107.0-geckodriver-0.36-grid-4.32.0-20250505\nTagged selenium/node-firefox:107.0-geckodriver-0.36-20250505\nTagged selenium/standalone-firefox:107.0-geckodriver-0.36-20250505\nTagged selenium/node-firefox:107.0-20250505\nTagged selenium/standalone-firefox:107.0-20250505\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.32.0/firefox_108.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.32.0 20250515 selenium false firefox true\nTagging images for browser firefox, version 4.32.0, build date 20250515, namespace selenium\nSelenium Grid version -> 4.32.0-20250515\nFirefox version -> 108.0.2\nShort Firefox version -> 108.0\nGeckoDriver version -> 0.36.0\nShort GeckoDriver version -> 0.36\nTagged selenium/node-firefox:108.0.2-geckodriver-0.36.0-grid-4.32.0-20250515\nTagged selenium/standalone-firefox:108.0.2-geckodriver-0.36.0-grid-4.32.0-20250515\nTagged selenium/node-firefox:108.0.2-geckodriver-0.36.0-20250515\nTagged selenium/standalone-firefox:108.0.2-geckodriver-0.36.0-20250515\nTagged selenium/node-firefox:108.0.2-20250515\nTagged selenium/standalone-firefox:108.0.2-20250515\nTagged selenium/node-firefox:108.0-geckodriver-0.36-grid-4.32.0-20250515\nTagged selenium/standalone-firefox:108.0-geckodriver-0.36-grid-4.32.0-20250515\nTagged selenium/node-firefox:108.0-geckodriver-0.36-20250515\nTagged selenium/standalone-firefox:108.0-geckodriver-0.36-20250515\nTagged selenium/node-firefox:108.0-20250515\nTagged selenium/standalone-firefox:108.0-20250515\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.32.0/firefox_109.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.32.0 20250515 selenium false firefox true\nTagging images for browser firefox, version 4.32.0, build date 20250515, namespace selenium\nSelenium Grid version -> 4.32.0-20250515\nFirefox version -> 109.0.1\nShort Firefox version -> 109.0\nGeckoDriver version -> 0.36.0\nShort GeckoDriver version -> 0.36\nTagged selenium/node-firefox:109.0.1-geckodriver-0.36.0-grid-4.32.0-20250515\nTagged selenium/standalone-firefox:109.0.1-geckodriver-0.36.0-grid-4.32.0-20250515\nTagged selenium/node-firefox:109.0.1-geckodriver-0.36.0-20250515\nTagged selenium/standalone-firefox:109.0.1-geckodriver-0.36.0-20250515\nTagged selenium/node-firefox:109.0.1-20250515\nTagged selenium/standalone-firefox:109.0.1-20250515\nTagged selenium/node-firefox:109.0-geckodriver-0.36-grid-4.32.0-20250515\nTagged selenium/standalone-firefox:109.0-geckodriver-0.36-grid-4.32.0-20250515\nTagged selenium/node-firefox:109.0-geckodriver-0.36-20250515\nTagged selenium/standalone-firefox:109.0-geckodriver-0.36-20250515\nTagged selenium/node-firefox:109.0-20250515\nTagged selenium/standalone-firefox:109.0-20250515\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.32.0/firefox_110.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.32.0 20250515 selenium false firefox true\nTagging images for browser firefox, version 4.32.0, build date 20250515, namespace selenium\nSelenium Grid version -> 4.32.0-20250515\nFirefox version -> 110.0.1\nShort Firefox version -> 110.0\nGeckoDriver version -> 0.36.0\nShort GeckoDriver version -> 0.36\nTagged selenium/node-firefox:110.0.1-geckodriver-0.36.0-grid-4.32.0-20250515\nTagged selenium/standalone-firefox:110.0.1-geckodriver-0.36.0-grid-4.32.0-20250515\nTagged selenium/node-firefox:110.0.1-geckodriver-0.36.0-20250515\nTagged selenium/standalone-firefox:110.0.1-geckodriver-0.36.0-20250515\nTagged selenium/node-firefox:110.0.1-20250515\nTagged selenium/standalone-firefox:110.0.1-20250515\nTagged selenium/node-firefox:110.0-geckodriver-0.36-grid-4.32.0-20250515\nTagged selenium/standalone-firefox:110.0-geckodriver-0.36-grid-4.32.0-20250515\nTagged selenium/node-firefox:110.0-geckodriver-0.36-20250515\nTagged selenium/standalone-firefox:110.0-geckodriver-0.36-20250515\nTagged selenium/node-firefox:110.0-20250515\nTagged selenium/standalone-firefox:110.0-20250515\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.32.0/firefox_111.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.32.0 20250515 selenium false firefox true\nTagging images for browser firefox, version 4.32.0, build date 20250515, namespace selenium\nSelenium Grid version -> 4.32.0-20250515\nFirefox version -> 111.0.1\nShort Firefox version -> 111.0\nGeckoDriver version -> 0.36.0\nShort GeckoDriver version -> 0.36\nTagged selenium/node-firefox:111.0.1-geckodriver-0.36.0-grid-4.32.0-20250515\nTagged selenium/standalone-firefox:111.0.1-geckodriver-0.36.0-grid-4.32.0-20250515\nTagged selenium/node-firefox:111.0.1-geckodriver-0.36.0-20250515\nTagged selenium/standalone-firefox:111.0.1-geckodriver-0.36.0-20250515\nTagged selenium/node-firefox:111.0.1-20250515\nTagged selenium/standalone-firefox:111.0.1-20250515\nTagged selenium/node-firefox:111.0-geckodriver-0.36-grid-4.32.0-20250515\nTagged selenium/standalone-firefox:111.0-geckodriver-0.36-grid-4.32.0-20250515\nTagged selenium/node-firefox:111.0-geckodriver-0.36-20250515\nTagged selenium/standalone-firefox:111.0-geckodriver-0.36-20250515\nTagged selenium/node-firefox:111.0-20250515\nTagged selenium/standalone-firefox:111.0-20250515\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.32.0/firefox_112.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.32.0 20250505 selenium false firefox true\nTagging images for browser firefox, version 4.32.0, build date 20250505, namespace selenium\nSelenium Grid version -> 4.32.0-20250505\nFirefox version -> 112.0.2\nShort Firefox version -> 112.0\nGeckoDriver version -> 0.36.0\nShort GeckoDriver version -> 0.36\nTagged selenium/node-firefox:112.0.2-geckodriver-0.36.0-grid-4.32.0-20250505\nTagged selenium/standalone-firefox:112.0.2-geckodriver-0.36.0-grid-4.32.0-20250505\nTagged selenium/node-firefox:112.0.2-geckodriver-0.36.0-20250505\nTagged selenium/standalone-firefox:112.0.2-geckodriver-0.36.0-20250505\nTagged selenium/node-firefox:112.0.2-20250505\nTagged selenium/standalone-firefox:112.0.2-20250505\nTagged selenium/node-firefox:112.0-geckodriver-0.36-grid-4.32.0-20250505\nTagged selenium/standalone-firefox:112.0-geckodriver-0.36-grid-4.32.0-20250505\nTagged selenium/node-firefox:112.0-geckodriver-0.36-20250505\nTagged selenium/standalone-firefox:112.0-geckodriver-0.36-20250505\nTagged selenium/node-firefox:112.0-20250505\nTagged selenium/standalone-firefox:112.0-20250505\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.32.0/firefox_113.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.32.0 20250515 selenium false firefox true\nTagging images for browser firefox, version 4.32.0, build date 20250515, namespace selenium\nSelenium Grid version -> 4.32.0-20250515\nFirefox version -> 113.0.2\nShort Firefox version -> 113.0\nGeckoDriver version -> 0.36.0\nShort GeckoDriver version -> 0.36\nTagged selenium/node-firefox:113.0.2-geckodriver-0.36.0-grid-4.32.0-20250515\nTagged selenium/standalone-firefox:113.0.2-geckodriver-0.36.0-grid-4.32.0-20250515\nTagged selenium/node-firefox:113.0.2-geckodriver-0.36.0-20250515\nTagged selenium/standalone-firefox:113.0.2-geckodriver-0.36.0-20250515\nTagged selenium/node-firefox:113.0.2-20250515\nTagged selenium/standalone-firefox:113.0.2-20250515\nTagged selenium/node-firefox:113.0-geckodriver-0.36-grid-4.32.0-20250515\nTagged selenium/standalone-firefox:113.0-geckodriver-0.36-grid-4.32.0-20250515\nTagged selenium/node-firefox:113.0-geckodriver-0.36-20250515\nTagged selenium/standalone-firefox:113.0-geckodriver-0.36-20250515\nTagged selenium/node-firefox:113.0-20250515\nTagged selenium/standalone-firefox:113.0-20250515\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.32.0/firefox_114.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.32.0 20250505 selenium false firefox true\nTagging images for browser firefox, version 4.32.0, build date 20250505, namespace selenium\nSelenium Grid version -> 4.32.0-20250505\nFirefox version -> 114.0.2\nShort Firefox version -> 114.0\nGeckoDriver version -> 0.36.0\nShort GeckoDriver version -> 0.36\nTagged selenium/node-firefox:114.0.2-geckodriver-0.36.0-grid-4.32.0-20250505\nTagged selenium/standalone-firefox:114.0.2-geckodriver-0.36.0-grid-4.32.0-20250505\nTagged selenium/node-firefox:114.0.2-geckodriver-0.36.0-20250505\nTagged selenium/standalone-firefox:114.0.2-geckodriver-0.36.0-20250505\nTagged selenium/node-firefox:114.0.2-20250505\nTagged selenium/standalone-firefox:114.0.2-20250505\nTagged selenium/node-firefox:114.0-geckodriver-0.36-grid-4.32.0-20250505\nTagged selenium/standalone-firefox:114.0-geckodriver-0.36-grid-4.32.0-20250505\nTagged selenium/node-firefox:114.0-geckodriver-0.36-20250505\nTagged selenium/standalone-firefox:114.0-geckodriver-0.36-20250505\nTagged selenium/node-firefox:114.0-20250505\nTagged selenium/standalone-firefox:114.0-20250505\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.32.0/firefox_115.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.32.0 20250515 selenium false firefox true\nTagging images for browser firefox, version 4.32.0, build date 20250515, namespace selenium\nSelenium Grid version -> 4.32.0-20250515\nFirefox version -> 115.0.3\nShort Firefox version -> 115.0\nGeckoDriver version -> 0.36.0\nShort GeckoDriver version -> 0.36\nTagged selenium/node-firefox:115.0.3-geckodriver-0.36.0-grid-4.32.0-20250515\nTagged selenium/standalone-firefox:115.0.3-geckodriver-0.36.0-grid-4.32.0-20250515\nTagged selenium/node-firefox:115.0.3-geckodriver-0.36.0-20250515\nTagged selenium/standalone-firefox:115.0.3-geckodriver-0.36.0-20250515\nTagged selenium/node-firefox:115.0.3-20250515\nTagged selenium/standalone-firefox:115.0.3-20250515\nTagged selenium/node-firefox:115.0-geckodriver-0.36-grid-4.32.0-20250515\nTagged selenium/standalone-firefox:115.0-geckodriver-0.36-grid-4.32.0-20250515\nTagged selenium/node-firefox:115.0-geckodriver-0.36-20250515\nTagged selenium/standalone-firefox:115.0-geckodriver-0.36-20250515\nTagged selenium/node-firefox:115.0-20250515\nTagged selenium/standalone-firefox:115.0-20250515\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.32.0/firefox_116.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.32.0 20250515 selenium false firefox true\nTagging images for browser firefox, version 4.32.0, build date 20250515, namespace selenium\nSelenium Grid version -> 4.32.0-20250515\nFirefox version -> 116.0.3\nShort Firefox version -> 116.0\nGeckoDriver version -> 0.36.0\nShort GeckoDriver version -> 0.36\nTagged selenium/node-firefox:116.0.3-geckodriver-0.36.0-grid-4.32.0-20250515\nTagged selenium/standalone-firefox:116.0.3-geckodriver-0.36.0-grid-4.32.0-20250515\nTagged selenium/node-firefox:116.0.3-geckodriver-0.36.0-20250515\nTagged selenium/standalone-firefox:116.0.3-geckodriver-0.36.0-20250515\nTagged selenium/node-firefox:116.0.3-20250515\nTagged selenium/standalone-firefox:116.0.3-20250515\nTagged selenium/node-firefox:116.0-geckodriver-0.36-grid-4.32.0-20250515\nTagged selenium/standalone-firefox:116.0-geckodriver-0.36-grid-4.32.0-20250515\nTagged selenium/node-firefox:116.0-geckodriver-0.36-20250515\nTagged selenium/standalone-firefox:116.0-geckodriver-0.36-20250515\nTagged selenium/node-firefox:116.0-20250515\nTagged selenium/standalone-firefox:116.0-20250515\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.32.0/firefox_117.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.32.0 20250505 selenium false firefox true\nTagging images for browser firefox, version 4.32.0, build date 20250505, namespace selenium\nSelenium Grid version -> 4.32.0-20250505\nFirefox version -> 117.0.1\nShort Firefox version -> 117.0\nGeckoDriver version -> 0.36.0\nShort GeckoDriver version -> 0.36\nTagged selenium/node-firefox:117.0.1-geckodriver-0.36.0-grid-4.32.0-20250505\nTagged selenium/standalone-firefox:117.0.1-geckodriver-0.36.0-grid-4.32.0-20250505\nTagged selenium/node-firefox:117.0.1-geckodriver-0.36.0-20250505\nTagged selenium/standalone-firefox:117.0.1-geckodriver-0.36.0-20250505\nTagged selenium/node-firefox:117.0.1-20250505\nTagged selenium/standalone-firefox:117.0.1-20250505\nTagged selenium/node-firefox:117.0-geckodriver-0.36-grid-4.32.0-20250505\nTagged selenium/standalone-firefox:117.0-geckodriver-0.36-grid-4.32.0-20250505\nTagged selenium/node-firefox:117.0-geckodriver-0.36-20250505\nTagged selenium/standalone-firefox:117.0-geckodriver-0.36-20250505\nTagged selenium/node-firefox:117.0-20250505\nTagged selenium/standalone-firefox:117.0-20250505\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.32.0/firefox_118.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.32.0 20250505 selenium false firefox true\nTagging images for browser firefox, version 4.32.0, build date 20250505, namespace selenium\nSelenium Grid version -> 4.32.0-20250505\nFirefox version -> 118.0.2\nShort Firefox version -> 118.0\nGeckoDriver version -> 0.36.0\nShort GeckoDriver version -> 0.36\nTagged selenium/node-firefox:118.0.2-geckodriver-0.36.0-grid-4.32.0-20250505\nTagged selenium/standalone-firefox:118.0.2-geckodriver-0.36.0-grid-4.32.0-20250505\nTagged selenium/node-firefox:118.0.2-geckodriver-0.36.0-20250505\nTagged selenium/standalone-firefox:118.0.2-geckodriver-0.36.0-20250505\nTagged selenium/node-firefox:118.0.2-20250505\nTagged selenium/standalone-firefox:118.0.2-20250505\nTagged selenium/node-firefox:118.0-geckodriver-0.36-grid-4.32.0-20250505\nTagged selenium/standalone-firefox:118.0-geckodriver-0.36-grid-4.32.0-20250505\nTagged selenium/node-firefox:118.0-geckodriver-0.36-20250505\nTagged selenium/standalone-firefox:118.0-geckodriver-0.36-20250505\nTagged selenium/node-firefox:118.0-20250505\nTagged selenium/standalone-firefox:118.0-20250505\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.32.0/firefox_119.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.32.0 20250515 selenium false firefox true\nTagging images for browser firefox, version 4.32.0, build date 20250515, namespace selenium\nSelenium Grid version -> 4.32.0-20250515\nFirefox version -> 119.0.1\nShort Firefox version -> 119.0\nGeckoDriver version -> 0.36.0\nShort GeckoDriver version -> 0.36\nTagged selenium/node-firefox:119.0.1-geckodriver-0.36.0-grid-4.32.0-20250515\nTagged selenium/standalone-firefox:119.0.1-geckodriver-0.36.0-grid-4.32.0-20250515\nTagged selenium/node-firefox:119.0.1-geckodriver-0.36.0-20250515\nTagged selenium/standalone-firefox:119.0.1-geckodriver-0.36.0-20250515\nTagged selenium/node-firefox:119.0.1-20250515\nTagged selenium/standalone-firefox:119.0.1-20250515\nTagged selenium/node-firefox:119.0-geckodriver-0.36-grid-4.32.0-20250515\nTagged selenium/standalone-firefox:119.0-geckodriver-0.36-grid-4.32.0-20250515\nTagged selenium/node-firefox:119.0-geckodriver-0.36-20250515\nTagged selenium/standalone-firefox:119.0-geckodriver-0.36-20250515\nTagged selenium/node-firefox:119.0-20250515\nTagged selenium/standalone-firefox:119.0-20250515\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.32.0/firefox_120.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.32.0 20250515 selenium false firefox true\nTagging images for browser firefox, version 4.32.0, build date 20250515, namespace selenium\nSelenium Grid version -> 4.32.0-20250515\nFirefox version -> 120.0.1\nShort Firefox version -> 120.0\nGeckoDriver version -> 0.36.0\nShort GeckoDriver version -> 0.36\nTagged selenium/node-firefox:120.0.1-geckodriver-0.36.0-grid-4.32.0-20250515\nTagged selenium/standalone-firefox:120.0.1-geckodriver-0.36.0-grid-4.32.0-20250515\nTagged selenium/node-firefox:120.0.1-geckodriver-0.36.0-20250515\nTagged selenium/standalone-firefox:120.0.1-geckodriver-0.36.0-20250515\nTagged selenium/node-firefox:120.0.1-20250515\nTagged selenium/standalone-firefox:120.0.1-20250515\nTagged selenium/node-firefox:120.0-geckodriver-0.36-grid-4.32.0-20250515\nTagged selenium/standalone-firefox:120.0-geckodriver-0.36-grid-4.32.0-20250515\nTagged selenium/node-firefox:120.0-geckodriver-0.36-20250515\nTagged selenium/standalone-firefox:120.0-geckodriver-0.36-20250515\nTagged selenium/node-firefox:120.0-20250515\nTagged selenium/standalone-firefox:120.0-20250515\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.32.0/firefox_121.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.32.0 20250515 selenium false firefox true\nTagging images for browser firefox, version 4.32.0, build date 20250515, namespace selenium\nSelenium Grid version -> 4.32.0-20250515\nFirefox version -> 121.0.1\nShort Firefox version -> 121.0\nGeckoDriver version -> 0.36.0\nShort GeckoDriver version -> 0.36\nTagged selenium/node-firefox:121.0.1-geckodriver-0.36.0-grid-4.32.0-20250515\nTagged selenium/standalone-firefox:121.0.1-geckodriver-0.36.0-grid-4.32.0-20250515\nTagged selenium/node-firefox:121.0.1-geckodriver-0.36.0-20250515\nTagged selenium/standalone-firefox:121.0.1-geckodriver-0.36.0-20250515\nTagged selenium/node-firefox:121.0.1-20250515\nTagged selenium/standalone-firefox:121.0.1-20250515\nTagged selenium/node-firefox:121.0-geckodriver-0.36-grid-4.32.0-20250515\nTagged selenium/standalone-firefox:121.0-geckodriver-0.36-grid-4.32.0-20250515\nTagged selenium/node-firefox:121.0-geckodriver-0.36-20250515\nTagged selenium/standalone-firefox:121.0-geckodriver-0.36-20250515\nTagged selenium/node-firefox:121.0-20250515\nTagged selenium/standalone-firefox:121.0-20250515\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.32.0/firefox_122.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.32.0 20250505 selenium false firefox true\nTagging images for browser firefox, version 4.32.0, build date 20250505, namespace selenium\nSelenium Grid version -> 4.32.0-20250505\nFirefox version -> 122.0.1\nShort Firefox version -> 122.0\nGeckoDriver version -> 0.36.0\nShort GeckoDriver version -> 0.36\nTagged selenium/node-firefox:122.0.1-geckodriver-0.36.0-grid-4.32.0-20250505\nTagged selenium/standalone-firefox:122.0.1-geckodriver-0.36.0-grid-4.32.0-20250505\nTagged selenium/node-firefox:122.0.1-geckodriver-0.36.0-20250505\nTagged selenium/standalone-firefox:122.0.1-geckodriver-0.36.0-20250505\nTagged selenium/node-firefox:122.0.1-20250505\nTagged selenium/standalone-firefox:122.0.1-20250505\nTagged selenium/node-firefox:122.0-geckodriver-0.36-grid-4.32.0-20250505\nTagged selenium/standalone-firefox:122.0-geckodriver-0.36-grid-4.32.0-20250505\nTagged selenium/node-firefox:122.0-geckodriver-0.36-20250505\nTagged selenium/standalone-firefox:122.0-geckodriver-0.36-20250505\nTagged selenium/node-firefox:122.0-20250505\nTagged selenium/standalone-firefox:122.0-20250505\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.32.0/firefox_123.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.32.0 20250515 selenium false firefox true\nTagging images for browser firefox, version 4.32.0, build date 20250515, namespace selenium\nSelenium Grid version -> 4.32.0-20250515\nFirefox version -> 123.0.1\nShort Firefox version -> 123.0\nGeckoDriver version -> 0.36.0\nShort GeckoDriver version -> 0.36\nTagged selenium/node-firefox:123.0.1-geckodriver-0.36.0-grid-4.32.0-20250515\nTagged selenium/standalone-firefox:123.0.1-geckodriver-0.36.0-grid-4.32.0-20250515\nTagged selenium/node-firefox:123.0.1-geckodriver-0.36.0-20250515\nTagged selenium/standalone-firefox:123.0.1-geckodriver-0.36.0-20250515\nTagged selenium/node-firefox:123.0.1-20250515\nTagged selenium/standalone-firefox:123.0.1-20250515\nTagged selenium/node-firefox:123.0-geckodriver-0.36-grid-4.32.0-20250515\nTagged selenium/standalone-firefox:123.0-geckodriver-0.36-grid-4.32.0-20250515\nTagged selenium/node-firefox:123.0-geckodriver-0.36-20250515\nTagged selenium/standalone-firefox:123.0-geckodriver-0.36-20250515\nTagged selenium/node-firefox:123.0-20250515\nTagged selenium/standalone-firefox:123.0-20250515\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.32.0/firefox_124.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.32.0 20250515 selenium false firefox true\nTagging images for browser firefox, version 4.32.0, build date 20250515, namespace selenium\nSelenium Grid version -> 4.32.0-20250515\nFirefox version -> 124.0.2\nShort Firefox version -> 124.0\nGeckoDriver version -> 0.36.0\nShort GeckoDriver version -> 0.36\nTagged selenium/node-firefox:124.0.2-geckodriver-0.36.0-grid-4.32.0-20250515\nTagged selenium/standalone-firefox:124.0.2-geckodriver-0.36.0-grid-4.32.0-20250515\nTagged selenium/node-firefox:124.0.2-geckodriver-0.36.0-20250515\nTagged selenium/standalone-firefox:124.0.2-geckodriver-0.36.0-20250515\nTagged selenium/node-firefox:124.0.2-20250515\nTagged selenium/standalone-firefox:124.0.2-20250515\nTagged selenium/node-firefox:124.0-geckodriver-0.36-grid-4.32.0-20250515\nTagged selenium/standalone-firefox:124.0-geckodriver-0.36-grid-4.32.0-20250515\nTagged selenium/node-firefox:124.0-geckodriver-0.36-20250515\nTagged selenium/standalone-firefox:124.0-geckodriver-0.36-20250515\nTagged selenium/node-firefox:124.0-20250515\nTagged selenium/standalone-firefox:124.0-20250515\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.32.0/firefox_125.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.32.0 20250505 selenium false firefox true\nTagging images for browser firefox, version 4.32.0, build date 20250505, namespace selenium\nSelenium Grid version -> 4.32.0-20250505\nFirefox version -> 125.0.3\nShort Firefox version -> 125.0\nGeckoDriver version -> 0.36.0\nShort GeckoDriver version -> 0.36\nTagged selenium/node-firefox:125.0.3-geckodriver-0.36.0-grid-4.32.0-20250505\nTagged selenium/standalone-firefox:125.0.3-geckodriver-0.36.0-grid-4.32.0-20250505\nTagged selenium/node-firefox:125.0.3-geckodriver-0.36.0-20250505\nTagged selenium/standalone-firefox:125.0.3-geckodriver-0.36.0-20250505\nTagged selenium/node-firefox:125.0.3-20250505\nTagged selenium/standalone-firefox:125.0.3-20250505\nTagged selenium/node-firefox:125.0-geckodriver-0.36-grid-4.32.0-20250505\nTagged selenium/standalone-firefox:125.0-geckodriver-0.36-grid-4.32.0-20250505\nTagged selenium/node-firefox:125.0-geckodriver-0.36-20250505\nTagged selenium/standalone-firefox:125.0-geckodriver-0.36-20250505\nTagged selenium/node-firefox:125.0-20250505\nTagged selenium/standalone-firefox:125.0-20250505\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.32.0/firefox_126.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.32.0 20250505 selenium false firefox true\nTagging images for browser firefox, version 4.32.0, build date 20250505, namespace selenium\nSelenium Grid version -> 4.32.0-20250505\nFirefox version -> 126.0.1\nShort Firefox version -> 126.0\nGeckoDriver version -> 0.36.0\nShort GeckoDriver version -> 0.36\nTagged selenium/node-firefox:126.0.1-geckodriver-0.36.0-grid-4.32.0-20250505\nTagged selenium/standalone-firefox:126.0.1-geckodriver-0.36.0-grid-4.32.0-20250505\nTagged selenium/node-firefox:126.0.1-geckodriver-0.36.0-20250505\nTagged selenium/standalone-firefox:126.0.1-geckodriver-0.36.0-20250505\nTagged selenium/node-firefox:126.0.1-20250505\nTagged selenium/standalone-firefox:126.0.1-20250505\nTagged selenium/node-firefox:126.0-geckodriver-0.36-grid-4.32.0-20250505\nTagged selenium/standalone-firefox:126.0-geckodriver-0.36-grid-4.32.0-20250505\nTagged selenium/node-firefox:126.0-geckodriver-0.36-20250505\nTagged selenium/standalone-firefox:126.0-geckodriver-0.36-20250505\nTagged selenium/node-firefox:126.0-20250505\nTagged selenium/standalone-firefox:126.0-20250505\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.32.0/firefox_127.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.32.0 20250505 selenium false firefox true\nTagging images for browser firefox, version 4.32.0, build date 20250505, namespace selenium\nSelenium Grid version -> 4.32.0-20250505\nFirefox version -> 127.0.2\nShort Firefox version -> 127.0\nGeckoDriver version -> 0.36.0\nShort GeckoDriver version -> 0.36\nTagged selenium/node-firefox:127.0.2-geckodriver-0.36.0-grid-4.32.0-20250505\nTagged selenium/standalone-firefox:127.0.2-geckodriver-0.36.0-grid-4.32.0-20250505\nTagged selenium/node-firefox:127.0.2-geckodriver-0.36.0-20250505\nTagged selenium/standalone-firefox:127.0.2-geckodriver-0.36.0-20250505\nTagged selenium/node-firefox:127.0.2-20250505\nTagged selenium/standalone-firefox:127.0.2-20250505\nTagged selenium/node-firefox:127.0-geckodriver-0.36-grid-4.32.0-20250505\nTagged selenium/standalone-firefox:127.0-geckodriver-0.36-grid-4.32.0-20250505\nTagged selenium/node-firefox:127.0-geckodriver-0.36-20250505\nTagged selenium/standalone-firefox:127.0-geckodriver-0.36-20250505\nTagged selenium/node-firefox:127.0-20250505\nTagged selenium/standalone-firefox:127.0-20250505\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.32.0/firefox_128.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.32.0 20250505 selenium false firefox true\nTagging images for browser firefox, version 4.32.0, build date 20250505, namespace selenium\nSelenium Grid version -> 4.32.0-20250505\nFirefox version -> 128.0.3\nShort Firefox version -> 128.0\nGeckoDriver version -> 0.36.0\nShort GeckoDriver version -> 0.36\nTagged selenium/node-firefox:128.0.3-geckodriver-0.36.0-grid-4.32.0-20250505\nTagged selenium/standalone-firefox:128.0.3-geckodriver-0.36.0-grid-4.32.0-20250505\nTagged selenium/node-firefox:128.0.3-geckodriver-0.36.0-20250505\nTagged selenium/standalone-firefox:128.0.3-geckodriver-0.36.0-20250505\nTagged selenium/node-firefox:128.0.3-20250505\nTagged selenium/standalone-firefox:128.0.3-20250505\nTagged selenium/node-firefox:128.0-geckodriver-0.36-grid-4.32.0-20250505\nTagged selenium/standalone-firefox:128.0-geckodriver-0.36-grid-4.32.0-20250505\nTagged selenium/node-firefox:128.0-geckodriver-0.36-20250505\nTagged selenium/standalone-firefox:128.0-geckodriver-0.36-20250505\nTagged selenium/node-firefox:128.0-20250505\nTagged selenium/standalone-firefox:128.0-20250505\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.32.0/firefox_129.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.32.0 20250505 selenium false firefox true\nTagging images for browser firefox, version 4.32.0, build date 20250505, namespace selenium\nSelenium Grid version -> 4.32.0-20250505\nFirefox version -> 129.0.2\nShort Firefox version -> 129.0\nGeckoDriver version -> 0.36.0\nShort GeckoDriver version -> 0.36\nTagged selenium/node-firefox:129.0.2-geckodriver-0.36.0-grid-4.32.0-20250505\nTagged selenium/standalone-firefox:129.0.2-geckodriver-0.36.0-grid-4.32.0-20250505\nTagged selenium/node-firefox:129.0.2-geckodriver-0.36.0-20250505\nTagged selenium/standalone-firefox:129.0.2-geckodriver-0.36.0-20250505\nTagged selenium/node-firefox:129.0.2-20250505\nTagged selenium/standalone-firefox:129.0.2-20250505\nTagged selenium/node-firefox:129.0-geckodriver-0.36-grid-4.32.0-20250505\nTagged selenium/standalone-firefox:129.0-geckodriver-0.36-grid-4.32.0-20250505\nTagged selenium/node-firefox:129.0-geckodriver-0.36-20250505\nTagged selenium/standalone-firefox:129.0-geckodriver-0.36-20250505\nTagged selenium/node-firefox:129.0-20250505\nTagged selenium/standalone-firefox:129.0-20250505\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.32.0/firefox_130.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.32.0 20250505 selenium false firefox true\nTagging images for browser firefox, version 4.32.0, build date 20250505, namespace selenium\nSelenium Grid version -> 4.32.0-20250505\nFirefox version -> 130.0.1\nShort Firefox version -> 130.0\nGeckoDriver version -> 0.36.0\nShort GeckoDriver version -> 0.36\nTagged selenium/node-firefox:130.0.1-geckodriver-0.36.0-grid-4.32.0-20250505\nTagged selenium/standalone-firefox:130.0.1-geckodriver-0.36.0-grid-4.32.0-20250505\nTagged selenium/node-firefox:130.0.1-geckodriver-0.36.0-20250505\nTagged selenium/standalone-firefox:130.0.1-geckodriver-0.36.0-20250505\nTagged selenium/node-firefox:130.0.1-20250505\nTagged selenium/standalone-firefox:130.0.1-20250505\nTagged selenium/node-firefox:130.0-geckodriver-0.36-grid-4.32.0-20250505\nTagged selenium/standalone-firefox:130.0-geckodriver-0.36-grid-4.32.0-20250505\nTagged selenium/node-firefox:130.0-geckodriver-0.36-20250505\nTagged selenium/standalone-firefox:130.0-geckodriver-0.36-20250505\nTagged selenium/node-firefox:130.0-20250505\nTagged selenium/standalone-firefox:130.0-20250505\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.32.0/firefox_131.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.32.0 20250505 selenium false firefox true\nTagging images for browser firefox, version 4.32.0, build date 20250505, namespace selenium\nSelenium Grid version -> 4.32.0-20250505\nFirefox version -> 131.0.3\nShort Firefox version -> 131.0\nGeckoDriver version -> 0.36.0\nShort GeckoDriver version -> 0.36\nTagged selenium/node-firefox:131.0.3-geckodriver-0.36.0-grid-4.32.0-20250505\nTagged selenium/standalone-firefox:131.0.3-geckodriver-0.36.0-grid-4.32.0-20250505\nTagged selenium/node-firefox:131.0.3-geckodriver-0.36.0-20250505\nTagged selenium/standalone-firefox:131.0.3-geckodriver-0.36.0-20250505\nTagged selenium/node-firefox:131.0.3-20250505\nTagged selenium/standalone-firefox:131.0.3-20250505\nTagged selenium/node-firefox:131.0-geckodriver-0.36-grid-4.32.0-20250505\nTagged selenium/standalone-firefox:131.0-geckodriver-0.36-grid-4.32.0-20250505\nTagged selenium/node-firefox:131.0-geckodriver-0.36-20250505\nTagged selenium/standalone-firefox:131.0-geckodriver-0.36-20250505\nTagged selenium/node-firefox:131.0-20250505\nTagged selenium/standalone-firefox:131.0-20250505\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.32.0/firefox_132.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.32.0 20250505 selenium false firefox true\nTagging images for browser firefox, version 4.32.0, build date 20250505, namespace selenium\nSelenium Grid version -> 4.32.0-20250505\nFirefox version -> 132.0.2\nShort Firefox version -> 132.0\nGeckoDriver version -> 0.36.0\nShort GeckoDriver version -> 0.36\nTagged selenium/node-firefox:132.0.2-geckodriver-0.36.0-grid-4.32.0-20250505\nTagged selenium/standalone-firefox:132.0.2-geckodriver-0.36.0-grid-4.32.0-20250505\nTagged selenium/node-firefox:132.0.2-geckodriver-0.36.0-20250505\nTagged selenium/standalone-firefox:132.0.2-geckodriver-0.36.0-20250505\nTagged selenium/node-firefox:132.0.2-20250505\nTagged selenium/standalone-firefox:132.0.2-20250505\nTagged selenium/node-firefox:132.0-geckodriver-0.36-grid-4.32.0-20250505\nTagged selenium/standalone-firefox:132.0-geckodriver-0.36-grid-4.32.0-20250505\nTagged selenium/node-firefox:132.0-geckodriver-0.36-20250505\nTagged selenium/standalone-firefox:132.0-geckodriver-0.36-20250505\nTagged selenium/node-firefox:132.0-20250505\nTagged selenium/standalone-firefox:132.0-20250505\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.32.0/firefox_133.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.32.0 20250505 selenium false firefox true\nTagging images for browser firefox, version 4.32.0, build date 20250505, namespace selenium\nSelenium Grid version -> 4.32.0-20250505\nFirefox version -> 133.0.3\nShort Firefox version -> 133.0\nGeckoDriver version -> 0.36.0\nShort GeckoDriver version -> 0.36\nTagged selenium/node-firefox:133.0.3-geckodriver-0.36.0-grid-4.32.0-20250505\nTagged selenium/standalone-firefox:133.0.3-geckodriver-0.36.0-grid-4.32.0-20250505\nTagged selenium/node-firefox:133.0.3-geckodriver-0.36.0-20250505\nTagged selenium/standalone-firefox:133.0.3-geckodriver-0.36.0-20250505\nTagged selenium/node-firefox:133.0.3-20250505\nTagged selenium/standalone-firefox:133.0.3-20250505\nTagged selenium/node-firefox:133.0-geckodriver-0.36-grid-4.32.0-20250505\nTagged selenium/standalone-firefox:133.0-geckodriver-0.36-grid-4.32.0-20250505\nTagged selenium/node-firefox:133.0-geckodriver-0.36-20250505\nTagged selenium/standalone-firefox:133.0-geckodriver-0.36-20250505\nTagged selenium/node-firefox:133.0-20250505\nTagged selenium/standalone-firefox:133.0-20250505\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.32.0/firefox_134.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.32.0 20250505 selenium false firefox true\nTagging images for browser firefox, version 4.32.0, build date 20250505, namespace selenium\nSelenium Grid version -> 4.32.0-20250505\nFirefox version -> 134.0.2\nShort Firefox version -> 134.0\nGeckoDriver version -> 0.36.0\nShort GeckoDriver version -> 0.36\nTagged selenium/node-firefox:134.0.2-geckodriver-0.36.0-grid-4.32.0-20250505\nTagged selenium/standalone-firefox:134.0.2-geckodriver-0.36.0-grid-4.32.0-20250505\nTagged selenium/node-firefox:134.0.2-geckodriver-0.36.0-20250505\nTagged selenium/standalone-firefox:134.0.2-geckodriver-0.36.0-20250505\nTagged selenium/node-firefox:134.0.2-20250505\nTagged selenium/standalone-firefox:134.0.2-20250505\nTagged selenium/node-firefox:134.0-geckodriver-0.36-grid-4.32.0-20250505\nTagged selenium/standalone-firefox:134.0-geckodriver-0.36-grid-4.32.0-20250505\nTagged selenium/node-firefox:134.0-geckodriver-0.36-20250505\nTagged selenium/standalone-firefox:134.0-geckodriver-0.36-20250505\nTagged selenium/node-firefox:134.0-20250505\nTagged selenium/standalone-firefox:134.0-20250505\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.32.0/firefox_135.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.32.0 20250505 selenium false firefox true\nTagging images for browser firefox, version 4.32.0, build date 20250505, namespace selenium\nSelenium Grid version -> 4.32.0-20250505\nFirefox version -> 135.0.1\nShort Firefox version -> 135.0\nGeckoDriver version -> 0.36.0\nShort GeckoDriver version -> 0.36\nTagged selenium/node-firefox:135.0.1-geckodriver-0.36.0-grid-4.32.0-20250505\nTagged selenium/standalone-firefox:135.0.1-geckodriver-0.36.0-grid-4.32.0-20250505\nTagged selenium/node-firefox:135.0.1-geckodriver-0.36.0-20250505\nTagged selenium/standalone-firefox:135.0.1-geckodriver-0.36.0-20250505\nTagged selenium/node-firefox:135.0.1-20250505\nTagged selenium/standalone-firefox:135.0.1-20250505\nTagged selenium/node-firefox:135.0-geckodriver-0.36-grid-4.32.0-20250505\nTagged selenium/standalone-firefox:135.0-geckodriver-0.36-grid-4.32.0-20250505\nTagged selenium/node-firefox:135.0-geckodriver-0.36-20250505\nTagged selenium/standalone-firefox:135.0-geckodriver-0.36-20250505\nTagged selenium/node-firefox:135.0-20250505\nTagged selenium/standalone-firefox:135.0-20250505\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.32.0/firefox_136.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.32.0 20250505 selenium false firefox true\nTagging images for browser firefox, version 4.32.0, build date 20250505, namespace selenium\nSelenium Grid version -> 4.32.0-20250505\nFirefox version -> 136.0.4\nShort Firefox version -> 136.0\nGeckoDriver version -> 0.36.0\nShort GeckoDriver version -> 0.36\nTagged selenium/node-firefox:136.0.4-geckodriver-0.36.0-grid-4.32.0-20250505\nTagged selenium/standalone-firefox:136.0.4-geckodriver-0.36.0-grid-4.32.0-20250505\nTagged selenium/node-firefox:136.0.4-geckodriver-0.36.0-20250505\nTagged selenium/standalone-firefox:136.0.4-geckodriver-0.36.0-20250505\nTagged selenium/node-firefox:136.0.4-20250505\nTagged selenium/standalone-firefox:136.0.4-20250505\nTagged selenium/node-firefox:136.0-geckodriver-0.36-grid-4.32.0-20250505\nTagged selenium/standalone-firefox:136.0-geckodriver-0.36-grid-4.32.0-20250505\nTagged selenium/node-firefox:136.0-geckodriver-0.36-20250505\nTagged selenium/standalone-firefox:136.0-geckodriver-0.36-20250505\nTagged selenium/node-firefox:136.0-20250505\nTagged selenium/standalone-firefox:136.0-20250505\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.32.0/firefox_137.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.32.0 20250505 selenium false firefox true\nTagging images for browser firefox, version 4.32.0, build date 20250505, namespace selenium\nSelenium Grid version -> 4.32.0-20250505\nFirefox version -> 137.0.2\nShort Firefox version -> 137.0\nGeckoDriver version -> 0.36.0\nShort GeckoDriver version -> 0.36\nTagged selenium/node-firefox:137.0.2-geckodriver-0.36.0-grid-4.32.0-20250505\nTagged selenium/standalone-firefox:137.0.2-geckodriver-0.36.0-grid-4.32.0-20250505\nTagged selenium/node-firefox:137.0.2-geckodriver-0.36.0-20250505\nTagged selenium/standalone-firefox:137.0.2-geckodriver-0.36.0-20250505\nTagged selenium/node-firefox:137.0.2-20250505\nTagged selenium/standalone-firefox:137.0.2-20250505\nTagged selenium/node-firefox:137.0-geckodriver-0.36-grid-4.32.0-20250505\nTagged selenium/standalone-firefox:137.0-geckodriver-0.36-grid-4.32.0-20250505\nTagged selenium/node-firefox:137.0-geckodriver-0.36-20250505\nTagged selenium/standalone-firefox:137.0-geckodriver-0.36-20250505\nTagged selenium/node-firefox:137.0-20250505\nTagged selenium/standalone-firefox:137.0-20250505\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.32.0/firefox_98.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.32.0 20250515 selenium false firefox true\nTagging images for browser firefox, version 4.32.0, build date 20250515, namespace selenium\nSelenium Grid version -> 4.32.0-20250515\nFirefox version -> 98.0.2\nShort Firefox version -> 98.0\nGeckoDriver version -> 0.36.0\nShort GeckoDriver version -> 0.36\nTagged selenium/node-firefox:98.0.2-geckodriver-0.36.0-grid-4.32.0-20250515\nTagged selenium/standalone-firefox:98.0.2-geckodriver-0.36.0-grid-4.32.0-20250515\nTagged selenium/node-firefox:98.0.2-geckodriver-0.36.0-20250515\nTagged selenium/standalone-firefox:98.0.2-geckodriver-0.36.0-20250515\nTagged selenium/node-firefox:98.0.2-20250515\nTagged selenium/standalone-firefox:98.0.2-20250515\nTagged selenium/node-firefox:98.0-geckodriver-0.36-grid-4.32.0-20250515\nTagged selenium/standalone-firefox:98.0-geckodriver-0.36-grid-4.32.0-20250515\nTagged selenium/node-firefox:98.0-geckodriver-0.36-20250515\nTagged selenium/standalone-firefox:98.0-geckodriver-0.36-20250515\nTagged selenium/node-firefox:98.0-20250515\nTagged selenium/standalone-firefox:98.0-20250515\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.32.0/firefox_99.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.32.0 20250505 selenium false firefox true\nTagging images for browser firefox, version 4.32.0, build date 20250505, namespace selenium\nSelenium Grid version -> 4.32.0-20250505\nFirefox version -> 99.0.1\nShort Firefox version -> 99.0\nGeckoDriver version -> 0.36.0\nShort GeckoDriver version -> 0.36\nTagged selenium/node-firefox:99.0.1-geckodriver-0.36.0-grid-4.32.0-20250505\nTagged selenium/standalone-firefox:99.0.1-geckodriver-0.36.0-grid-4.32.0-20250505\nTagged selenium/node-firefox:99.0.1-geckodriver-0.36.0-20250505\nTagged selenium/standalone-firefox:99.0.1-geckodriver-0.36.0-20250505\nTagged selenium/node-firefox:99.0.1-20250505\nTagged selenium/standalone-firefox:99.0.1-20250505\nTagged selenium/node-firefox:99.0-geckodriver-0.36-grid-4.32.0-20250505\nTagged selenium/standalone-firefox:99.0-geckodriver-0.36-grid-4.32.0-20250505\nTagged selenium/node-firefox:99.0-geckodriver-0.36-20250505\nTagged selenium/standalone-firefox:99.0-geckodriver-0.36-20250505\nTagged selenium/node-firefox:99.0-20250505\nTagged selenium/standalone-firefox:99.0-20250505\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.33.0/chrome_100.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.33.0 20250606 selenium false chrome true\nTagging images for browser chrome, version 4.33.0, build date 20250606, namespace selenium\nSelenium Grid version -> 4.33.0-20250606\nChrome version -> 100.0.4896.127\nShort Chrome version -> 100.0\nChromeDriver version -> 100.0.4896.60\nShort ChromeDriver version -> 100.0\nTagged selenium/node-chrome:100.0.4896.127-chromedriver-100.0.4896.60-grid-4.33.0-20250606\nTagged selenium/standalone-chrome:100.0.4896.127-chromedriver-100.0.4896.60-grid-4.33.0-20250606\nTagged selenium/node-chrome:100.0.4896.127-chromedriver-100.0.4896.60-20250606\nTagged selenium/standalone-chrome:100.0.4896.127-chromedriver-100.0.4896.60-20250606\nTagged selenium/node-chrome:100.0.4896.127-20250606\nTagged selenium/standalone-chrome:100.0.4896.127-20250606\nTagged selenium/node-chrome:100.0-chromedriver-100.0-grid-4.33.0-20250606\nTagged selenium/standalone-chrome:100.0-chromedriver-100.0-grid-4.33.0-20250606\nTagged selenium/node-chrome:100.0-chromedriver-100.0-20250606\nTagged selenium/standalone-chrome:100.0-chromedriver-100.0-20250606\nTagged selenium/node-chrome:100.0-20250606\nTagged selenium/standalone-chrome:100.0-20250606\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.33.0/chrome_101.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.33.0 20250606 selenium false chrome true\nTagging images for browser chrome, version 4.33.0, build date 20250606, namespace selenium\nSelenium Grid version -> 4.33.0-20250606\nChrome version -> 101.0.4951.64\nShort Chrome version -> 101.0\nChromeDriver version -> 101.0.4951.41\nShort ChromeDriver version -> 101.0\nTagged selenium/node-chrome:101.0.4951.64-chromedriver-101.0.4951.41-grid-4.33.0-20250606\nTagged selenium/standalone-chrome:101.0.4951.64-chromedriver-101.0.4951.41-grid-4.33.0-20250606\nTagged selenium/node-chrome:101.0.4951.64-chromedriver-101.0.4951.41-20250606\nTagged selenium/standalone-chrome:101.0.4951.64-chromedriver-101.0.4951.41-20250606\nTagged selenium/node-chrome:101.0.4951.64-20250606\nTagged selenium/standalone-chrome:101.0.4951.64-20250606\nTagged selenium/node-chrome:101.0-chromedriver-101.0-grid-4.33.0-20250606\nTagged selenium/standalone-chrome:101.0-chromedriver-101.0-grid-4.33.0-20250606\nTagged selenium/node-chrome:101.0-chromedriver-101.0-20250606\nTagged selenium/standalone-chrome:101.0-chromedriver-101.0-20250606\nTagged selenium/node-chrome:101.0-20250606\nTagged selenium/standalone-chrome:101.0-20250606\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.33.0/chrome_102.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.33.0 20250606 selenium false chrome true\nTagging images for browser chrome, version 4.33.0, build date 20250606, namespace selenium\nSelenium Grid version -> 4.33.0-20250606\nChrome version -> 102.0.5005.115\nShort Chrome version -> 102.0\nChromeDriver version -> 102.0.5005.61\nShort ChromeDriver version -> 102.0\nTagged selenium/node-chrome:102.0.5005.115-chromedriver-102.0.5005.61-grid-4.33.0-20250606\nTagged selenium/standalone-chrome:102.0.5005.115-chromedriver-102.0.5005.61-grid-4.33.0-20250606\nTagged selenium/node-chrome:102.0.5005.115-chromedriver-102.0.5005.61-20250606\nTagged selenium/standalone-chrome:102.0.5005.115-chromedriver-102.0.5005.61-20250606\nTagged selenium/node-chrome:102.0.5005.115-20250606\nTagged selenium/standalone-chrome:102.0.5005.115-20250606\nTagged selenium/node-chrome:102.0-chromedriver-102.0-grid-4.33.0-20250606\nTagged selenium/standalone-chrome:102.0-chromedriver-102.0-grid-4.33.0-20250606\nTagged selenium/node-chrome:102.0-chromedriver-102.0-20250606\nTagged selenium/standalone-chrome:102.0-chromedriver-102.0-20250606\nTagged selenium/node-chrome:102.0-20250606\nTagged selenium/standalone-chrome:102.0-20250606\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.33.0/chrome_103.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.33.0 20250606 selenium false chrome true\nTagging images for browser chrome, version 4.33.0, build date 20250606, namespace selenium\nSelenium Grid version -> 4.33.0-20250606\nChrome version -> 103.0.5060.134\nShort Chrome version -> 103.0\nChromeDriver version -> 103.0.5060.134\nShort ChromeDriver version -> 103.0\nTagged selenium/node-chrome:103.0.5060.134-chromedriver-103.0.5060.134-grid-4.33.0-20250606\nTagged selenium/standalone-chrome:103.0.5060.134-chromedriver-103.0.5060.134-grid-4.33.0-20250606\nTagged selenium/node-chrome:103.0.5060.134-chromedriver-103.0.5060.134-20250606\nTagged selenium/standalone-chrome:103.0.5060.134-chromedriver-103.0.5060.134-20250606\nTagged selenium/node-chrome:103.0.5060.134-20250606\nTagged selenium/standalone-chrome:103.0.5060.134-20250606\nTagged selenium/node-chrome:103.0-chromedriver-103.0-grid-4.33.0-20250606\nTagged selenium/standalone-chrome:103.0-chromedriver-103.0-grid-4.33.0-20250606\nTagged selenium/node-chrome:103.0-chromedriver-103.0-20250606\nTagged selenium/standalone-chrome:103.0-chromedriver-103.0-20250606\nTagged selenium/node-chrome:103.0-20250606\nTagged selenium/standalone-chrome:103.0-20250606\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.33.0/chrome_104.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.33.0 20250606 selenium false chrome true\nTagging images for browser chrome, version 4.33.0, build date 20250606, namespace selenium\nSelenium Grid version -> 4.33.0-20250606\nChrome version -> 104.0.5112.101\nShort Chrome version -> 104.0\nChromeDriver version -> 104.0.5112.79\nShort ChromeDriver version -> 104.0\nTagged selenium/node-chrome:104.0.5112.101-chromedriver-104.0.5112.79-grid-4.33.0-20250606\nTagged selenium/standalone-chrome:104.0.5112.101-chromedriver-104.0.5112.79-grid-4.33.0-20250606\nTagged selenium/node-chrome:104.0.5112.101-chromedriver-104.0.5112.79-20250606\nTagged selenium/standalone-chrome:104.0.5112.101-chromedriver-104.0.5112.79-20250606\nTagged selenium/node-chrome:104.0.5112.101-20250606\nTagged selenium/standalone-chrome:104.0.5112.101-20250606\nTagged selenium/node-chrome:104.0-chromedriver-104.0-grid-4.33.0-20250606\nTagged selenium/standalone-chrome:104.0-chromedriver-104.0-grid-4.33.0-20250606\nTagged selenium/node-chrome:104.0-chromedriver-104.0-20250606\nTagged selenium/standalone-chrome:104.0-chromedriver-104.0-20250606\nTagged selenium/node-chrome:104.0-20250606\nTagged selenium/standalone-chrome:104.0-20250606\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.33.0/chrome_105.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.33.0 20250606 selenium false chrome true\nTagging images for browser chrome, version 4.33.0, build date 20250606, namespace selenium\nSelenium Grid version -> 4.33.0-20250606\nChrome version -> 105.0.5195.125\nShort Chrome version -> 105.0\nChromeDriver version -> 105.0.5195.52\nShort ChromeDriver version -> 105.0\nTagged selenium/node-chrome:105.0.5195.125-chromedriver-105.0.5195.52-grid-4.33.0-20250606\nTagged selenium/standalone-chrome:105.0.5195.125-chromedriver-105.0.5195.52-grid-4.33.0-20250606\nTagged selenium/node-chrome:105.0.5195.125-chromedriver-105.0.5195.52-20250606\nTagged selenium/standalone-chrome:105.0.5195.125-chromedriver-105.0.5195.52-20250606\nTagged selenium/node-chrome:105.0.5195.125-20250606\nTagged selenium/standalone-chrome:105.0.5195.125-20250606\nTagged selenium/node-chrome:105.0-chromedriver-105.0-grid-4.33.0-20250606\nTagged selenium/standalone-chrome:105.0-chromedriver-105.0-grid-4.33.0-20250606\nTagged selenium/node-chrome:105.0-chromedriver-105.0-20250606\nTagged selenium/standalone-chrome:105.0-chromedriver-105.0-20250606\nTagged selenium/node-chrome:105.0-20250606\nTagged selenium/standalone-chrome:105.0-20250606\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.33.0/chrome_106.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.33.0 20250606 selenium false chrome true\nTagging images for browser chrome, version 4.33.0, build date 20250606, namespace selenium\nSelenium Grid version -> 4.33.0-20250606\nChrome version -> 106.0.5249.119\nShort Chrome version -> 106.0\nChromeDriver version -> 106.0.5249.61\nShort ChromeDriver version -> 106.0\nTagged selenium/node-chrome:106.0.5249.119-chromedriver-106.0.5249.61-grid-4.33.0-20250606\nTagged selenium/standalone-chrome:106.0.5249.119-chromedriver-106.0.5249.61-grid-4.33.0-20250606\nTagged selenium/node-chrome:106.0.5249.119-chromedriver-106.0.5249.61-20250606\nTagged selenium/standalone-chrome:106.0.5249.119-chromedriver-106.0.5249.61-20250606\nTagged selenium/node-chrome:106.0.5249.119-20250606\nTagged selenium/standalone-chrome:106.0.5249.119-20250606\nTagged selenium/node-chrome:106.0-chromedriver-106.0-grid-4.33.0-20250606\nTagged selenium/standalone-chrome:106.0-chromedriver-106.0-grid-4.33.0-20250606\nTagged selenium/node-chrome:106.0-chromedriver-106.0-20250606\nTagged selenium/standalone-chrome:106.0-chromedriver-106.0-20250606\nTagged selenium/node-chrome:106.0-20250606\nTagged selenium/standalone-chrome:106.0-20250606\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.33.0/chrome_107.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.33.0 20250606 selenium false chrome true\nTagging images for browser chrome, version 4.33.0, build date 20250606, namespace selenium\nSelenium Grid version -> 4.33.0-20250606\nChrome version -> 107.0.5304.121\nShort Chrome version -> 107.0\nChromeDriver version -> 107.0.5304.62\nShort ChromeDriver version -> 107.0\nTagged selenium/node-chrome:107.0.5304.121-chromedriver-107.0.5304.62-grid-4.33.0-20250606\nTagged selenium/standalone-chrome:107.0.5304.121-chromedriver-107.0.5304.62-grid-4.33.0-20250606\nTagged selenium/node-chrome:107.0.5304.121-chromedriver-107.0.5304.62-20250606\nTagged selenium/standalone-chrome:107.0.5304.121-chromedriver-107.0.5304.62-20250606\nTagged selenium/node-chrome:107.0.5304.121-20250606\nTagged selenium/standalone-chrome:107.0.5304.121-20250606\nTagged selenium/node-chrome:107.0-chromedriver-107.0-grid-4.33.0-20250606\nTagged selenium/standalone-chrome:107.0-chromedriver-107.0-grid-4.33.0-20250606\nTagged selenium/node-chrome:107.0-chromedriver-107.0-20250606\nTagged selenium/standalone-chrome:107.0-chromedriver-107.0-20250606\nTagged selenium/node-chrome:107.0-20250606\nTagged selenium/standalone-chrome:107.0-20250606\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.33.0/chrome_108.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.33.0 20250606 selenium false chrome true\nTagging images for browser chrome, version 4.33.0, build date 20250606, namespace selenium\nSelenium Grid version -> 4.33.0-20250606\nChrome version -> 108.0.5359.124\nShort Chrome version -> 108.0\nChromeDriver version -> 108.0.5359.71\nShort ChromeDriver version -> 108.0\nTagged selenium/node-chrome:108.0.5359.124-chromedriver-108.0.5359.71-grid-4.33.0-20250606\nTagged selenium/standalone-chrome:108.0.5359.124-chromedriver-108.0.5359.71-grid-4.33.0-20250606\nTagged selenium/node-chrome:108.0.5359.124-chromedriver-108.0.5359.71-20250606\nTagged selenium/standalone-chrome:108.0.5359.124-chromedriver-108.0.5359.71-20250606\nTagged selenium/node-chrome:108.0.5359.124-20250606\nTagged selenium/standalone-chrome:108.0.5359.124-20250606\nTagged selenium/node-chrome:108.0-chromedriver-108.0-grid-4.33.0-20250606\nTagged selenium/standalone-chrome:108.0-chromedriver-108.0-grid-4.33.0-20250606\nTagged selenium/node-chrome:108.0-chromedriver-108.0-20250606\nTagged selenium/standalone-chrome:108.0-chromedriver-108.0-20250606\nTagged selenium/node-chrome:108.0-20250606\nTagged selenium/standalone-chrome:108.0-20250606\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.33.0/chrome_109.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.33.0 20250606 selenium false chrome true\nTagging images for browser chrome, version 4.33.0, build date 20250606, namespace selenium\nSelenium Grid version -> 4.33.0-20250606\nChrome version -> 109.0.5414.119\nShort Chrome version -> 109.0\nChromeDriver version -> 109.0.5414.74\nShort ChromeDriver version -> 109.0\nTagged selenium/node-chrome:109.0.5414.119-chromedriver-109.0.5414.74-grid-4.33.0-20250606\nTagged selenium/standalone-chrome:109.0.5414.119-chromedriver-109.0.5414.74-grid-4.33.0-20250606\nTagged selenium/node-chrome:109.0.5414.119-chromedriver-109.0.5414.74-20250606\nTagged selenium/standalone-chrome:109.0.5414.119-chromedriver-109.0.5414.74-20250606\nTagged selenium/node-chrome:109.0.5414.119-20250606\nTagged selenium/standalone-chrome:109.0.5414.119-20250606\nTagged selenium/node-chrome:109.0-chromedriver-109.0-grid-4.33.0-20250606\nTagged selenium/standalone-chrome:109.0-chromedriver-109.0-grid-4.33.0-20250606\nTagged selenium/node-chrome:109.0-chromedriver-109.0-20250606\nTagged selenium/standalone-chrome:109.0-chromedriver-109.0-20250606\nTagged selenium/node-chrome:109.0-20250606\nTagged selenium/standalone-chrome:109.0-20250606\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.33.0/chrome_110.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.33.0 20250606 selenium false chrome true\nTagging images for browser chrome, version 4.33.0, build date 20250606, namespace selenium\nSelenium Grid version -> 4.33.0-20250606\nChrome version -> 110.0.5481.177\nShort Chrome version -> 110.0\nChromeDriver version -> 110.0.5481.77\nShort ChromeDriver version -> 110.0\nTagged selenium/node-chrome:110.0.5481.177-chromedriver-110.0.5481.77-grid-4.33.0-20250606\nTagged selenium/standalone-chrome:110.0.5481.177-chromedriver-110.0.5481.77-grid-4.33.0-20250606\nTagged selenium/node-chrome:110.0.5481.177-chromedriver-110.0.5481.77-20250606\nTagged selenium/standalone-chrome:110.0.5481.177-chromedriver-110.0.5481.77-20250606\nTagged selenium/node-chrome:110.0.5481.177-20250606\nTagged selenium/standalone-chrome:110.0.5481.177-20250606\nTagged selenium/node-chrome:110.0-chromedriver-110.0-grid-4.33.0-20250606\nTagged selenium/standalone-chrome:110.0-chromedriver-110.0-grid-4.33.0-20250606\nTagged selenium/node-chrome:110.0-chromedriver-110.0-20250606\nTagged selenium/standalone-chrome:110.0-chromedriver-110.0-20250606\nTagged selenium/node-chrome:110.0-20250606\nTagged selenium/standalone-chrome:110.0-20250606\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.33.0/chrome_111.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.33.0 20250606 selenium false chrome true\nTagging images for browser chrome, version 4.33.0, build date 20250606, namespace selenium\nSelenium Grid version -> 4.33.0-20250606\nChrome version -> 111.0.5563.146\nShort Chrome version -> 111.0\nChromeDriver version -> 111.0.5563.64\nShort ChromeDriver version -> 111.0\nTagged selenium/node-chrome:111.0.5563.146-chromedriver-111.0.5563.64-grid-4.33.0-20250606\nTagged selenium/standalone-chrome:111.0.5563.146-chromedriver-111.0.5563.64-grid-4.33.0-20250606\nTagged selenium/node-chrome:111.0.5563.146-chromedriver-111.0.5563.64-20250606\nTagged selenium/standalone-chrome:111.0.5563.146-chromedriver-111.0.5563.64-20250606\nTagged selenium/node-chrome:111.0.5563.146-20250606\nTagged selenium/standalone-chrome:111.0.5563.146-20250606\nTagged selenium/node-chrome:111.0-chromedriver-111.0-grid-4.33.0-20250606\nTagged selenium/standalone-chrome:111.0-chromedriver-111.0-grid-4.33.0-20250606\nTagged selenium/node-chrome:111.0-chromedriver-111.0-20250606\nTagged selenium/standalone-chrome:111.0-chromedriver-111.0-20250606\nTagged selenium/node-chrome:111.0-20250606\nTagged selenium/standalone-chrome:111.0-20250606\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.33.0/chrome_112.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.33.0 20250606 selenium false chrome true\nTagging images for browser chrome, version 4.33.0, build date 20250606, namespace selenium\nSelenium Grid version -> 4.33.0-20250606\nChrome version -> 112.0.5615.165\nShort Chrome version -> 112.0\nChromeDriver version -> 112.0.5615.49\nShort ChromeDriver version -> 112.0\nTagged selenium/node-chrome:112.0.5615.165-chromedriver-112.0.5615.49-grid-4.33.0-20250606\nTagged selenium/standalone-chrome:112.0.5615.165-chromedriver-112.0.5615.49-grid-4.33.0-20250606\nTagged selenium/node-chrome:112.0.5615.165-chromedriver-112.0.5615.49-20250606\nTagged selenium/standalone-chrome:112.0.5615.165-chromedriver-112.0.5615.49-20250606\nTagged selenium/node-chrome:112.0.5615.165-20250606\nTagged selenium/standalone-chrome:112.0.5615.165-20250606\nTagged selenium/node-chrome:112.0-chromedriver-112.0-grid-4.33.0-20250606\nTagged selenium/standalone-chrome:112.0-chromedriver-112.0-grid-4.33.0-20250606\nTagged selenium/node-chrome:112.0-chromedriver-112.0-20250606\nTagged selenium/standalone-chrome:112.0-chromedriver-112.0-20250606\nTagged selenium/node-chrome:112.0-20250606\nTagged selenium/standalone-chrome:112.0-20250606\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.33.0/chrome_113.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.33.0 20250606 selenium false chrome true\nTagging images for browser chrome, version 4.33.0, build date 20250606, namespace selenium\nSelenium Grid version -> 4.33.0-20250606\nChrome version -> 113.0.5672.126\nShort Chrome version -> 113.0\nChromeDriver version -> 113.0.5672.63\nShort ChromeDriver version -> 113.0\nTagged selenium/node-chrome:113.0.5672.126-chromedriver-113.0.5672.63-grid-4.33.0-20250606\nTagged selenium/standalone-chrome:113.0.5672.126-chromedriver-113.0.5672.63-grid-4.33.0-20250606\nTagged selenium/node-chrome:113.0.5672.126-chromedriver-113.0.5672.63-20250606\nTagged selenium/standalone-chrome:113.0.5672.126-chromedriver-113.0.5672.63-20250606\nTagged selenium/node-chrome:113.0.5672.126-20250606\nTagged selenium/standalone-chrome:113.0.5672.126-20250606\nTagged selenium/node-chrome:113.0-chromedriver-113.0-grid-4.33.0-20250606\nTagged selenium/standalone-chrome:113.0-chromedriver-113.0-grid-4.33.0-20250606\nTagged selenium/node-chrome:113.0-chromedriver-113.0-20250606\nTagged selenium/standalone-chrome:113.0-chromedriver-113.0-20250606\nTagged selenium/node-chrome:113.0-20250606\nTagged selenium/standalone-chrome:113.0-20250606\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.33.0/chrome_114.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.33.0 20250606 selenium false chrome true\nTagging images for browser chrome, version 4.33.0, build date 20250606, namespace selenium\nSelenium Grid version -> 4.33.0-20250606\nChrome version -> 114.0.5735.198\nShort Chrome version -> 114.0\nChromeDriver version -> 114.0.5735.90\nShort ChromeDriver version -> 114.0\nTagged selenium/node-chrome:114.0.5735.198-chromedriver-114.0.5735.90-grid-4.33.0-20250606\nTagged selenium/standalone-chrome:114.0.5735.198-chromedriver-114.0.5735.90-grid-4.33.0-20250606\nTagged selenium/node-chrome:114.0.5735.198-chromedriver-114.0.5735.90-20250606\nTagged selenium/standalone-chrome:114.0.5735.198-chromedriver-114.0.5735.90-20250606\nTagged selenium/node-chrome:114.0.5735.198-20250606\nTagged selenium/standalone-chrome:114.0.5735.198-20250606\nTagged selenium/node-chrome:114.0-chromedriver-114.0-grid-4.33.0-20250606\nTagged selenium/standalone-chrome:114.0-chromedriver-114.0-grid-4.33.0-20250606\nTagged selenium/node-chrome:114.0-chromedriver-114.0-20250606\nTagged selenium/standalone-chrome:114.0-chromedriver-114.0-20250606\nTagged selenium/node-chrome:114.0-20250606\nTagged selenium/standalone-chrome:114.0-20250606\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.33.0/chrome_115.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.33.0 20250606 selenium false chrome true\nTagging images for browser chrome, version 4.33.0, build date 20250606, namespace selenium\nSelenium Grid version -> 4.33.0-20250606\nChrome version -> 115.0.5790.170\nShort Chrome version -> 115.0\nChromeDriver version -> 115.0.5790.170\nShort ChromeDriver version -> 115.0\nTagged selenium/node-chrome:115.0.5790.170-chromedriver-115.0.5790.170-grid-4.33.0-20250606\nTagged selenium/standalone-chrome:115.0.5790.170-chromedriver-115.0.5790.170-grid-4.33.0-20250606\nTagged selenium/node-chrome:115.0.5790.170-chromedriver-115.0.5790.170-20250606\nTagged selenium/standalone-chrome:115.0.5790.170-chromedriver-115.0.5790.170-20250606\nTagged selenium/node-chrome:115.0.5790.170-20250606\nTagged selenium/standalone-chrome:115.0.5790.170-20250606\nTagged selenium/node-chrome:115.0-chromedriver-115.0-grid-4.33.0-20250606\nTagged selenium/standalone-chrome:115.0-chromedriver-115.0-grid-4.33.0-20250606\nTagged selenium/node-chrome:115.0-chromedriver-115.0-20250606\nTagged selenium/standalone-chrome:115.0-chromedriver-115.0-20250606\nTagged selenium/node-chrome:115.0-20250606\nTagged selenium/standalone-chrome:115.0-20250606\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.33.0/chrome_116.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.33.0 20250606 selenium false chrome true\nTagging images for browser chrome, version 4.33.0, build date 20250606, namespace selenium\nSelenium Grid version -> 4.33.0-20250606\nChrome version -> 116.0.5845.187\nShort Chrome version -> 116.0\nChromeDriver version -> 116.0.5845.96\nShort ChromeDriver version -> 116.0\nTagged selenium/node-chrome:116.0.5845.187-chromedriver-116.0.5845.96-grid-4.33.0-20250606\nTagged selenium/standalone-chrome:116.0.5845.187-chromedriver-116.0.5845.96-grid-4.33.0-20250606\nTagged selenium/node-chrome:116.0.5845.187-chromedriver-116.0.5845.96-20250606\nTagged selenium/standalone-chrome:116.0.5845.187-chromedriver-116.0.5845.96-20250606\nTagged selenium/node-chrome:116.0.5845.187-20250606\nTagged selenium/standalone-chrome:116.0.5845.187-20250606\nTagged selenium/node-chrome:116.0-chromedriver-116.0-grid-4.33.0-20250606\nTagged selenium/standalone-chrome:116.0-chromedriver-116.0-grid-4.33.0-20250606\nTagged selenium/node-chrome:116.0-chromedriver-116.0-20250606\nTagged selenium/standalone-chrome:116.0-chromedriver-116.0-20250606\nTagged selenium/node-chrome:116.0-20250606\nTagged selenium/standalone-chrome:116.0-20250606\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.33.0/chrome_117.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.33.0 20250606 selenium false chrome true\nTagging images for browser chrome, version 4.33.0, build date 20250606, namespace selenium\nSelenium Grid version -> 4.33.0-20250606\nChrome version -> 117.0.5938.149\nShort Chrome version -> 117.0\nChromeDriver version -> 117.0.5938.149\nShort ChromeDriver version -> 117.0\nTagged selenium/node-chrome:117.0.5938.149-chromedriver-117.0.5938.149-grid-4.33.0-20250606\nTagged selenium/standalone-chrome:117.0.5938.149-chromedriver-117.0.5938.149-grid-4.33.0-20250606\nTagged selenium/node-chrome:117.0.5938.149-chromedriver-117.0.5938.149-20250606\nTagged selenium/standalone-chrome:117.0.5938.149-chromedriver-117.0.5938.149-20250606\nTagged selenium/node-chrome:117.0.5938.149-20250606\nTagged selenium/standalone-chrome:117.0.5938.149-20250606\nTagged selenium/node-chrome:117.0-chromedriver-117.0-grid-4.33.0-20250606\nTagged selenium/standalone-chrome:117.0-chromedriver-117.0-grid-4.33.0-20250606\nTagged selenium/node-chrome:117.0-chromedriver-117.0-20250606\nTagged selenium/standalone-chrome:117.0-chromedriver-117.0-20250606\nTagged selenium/node-chrome:117.0-20250606\nTagged selenium/standalone-chrome:117.0-20250606\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.33.0/chrome_118.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.33.0 20250606 selenium false chrome true\nTagging images for browser chrome, version 4.33.0, build date 20250606, namespace selenium\nSelenium Grid version -> 4.33.0-20250606\nChrome version -> 118.0.5993.117\nShort Chrome version -> 118.0\nChromeDriver version -> 118.0.5993.70\nShort ChromeDriver version -> 118.0\nTagged selenium/node-chrome:118.0.5993.117-chromedriver-118.0.5993.70-grid-4.33.0-20250606\nTagged selenium/standalone-chrome:118.0.5993.117-chromedriver-118.0.5993.70-grid-4.33.0-20250606\nTagged selenium/node-chrome:118.0.5993.117-chromedriver-118.0.5993.70-20250606\nTagged selenium/standalone-chrome:118.0.5993.117-chromedriver-118.0.5993.70-20250606\nTagged selenium/node-chrome:118.0.5993.117-20250606\nTagged selenium/standalone-chrome:118.0.5993.117-20250606\nTagged selenium/node-chrome:118.0-chromedriver-118.0-grid-4.33.0-20250606\nTagged selenium/standalone-chrome:118.0-chromedriver-118.0-grid-4.33.0-20250606\nTagged selenium/node-chrome:118.0-chromedriver-118.0-20250606\nTagged selenium/standalone-chrome:118.0-chromedriver-118.0-20250606\nTagged selenium/node-chrome:118.0-20250606\nTagged selenium/standalone-chrome:118.0-20250606\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.33.0/chrome_119.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.33.0 20250606 selenium false chrome true\nTagging images for browser chrome, version 4.33.0, build date 20250606, namespace selenium\nSelenium Grid version -> 4.33.0-20250606\nChrome version -> 119.0.6045.199\nShort Chrome version -> 119.0\nChromeDriver version -> 119.0.6045.105\nShort ChromeDriver version -> 119.0\nTagged selenium/node-chrome:119.0.6045.199-chromedriver-119.0.6045.105-grid-4.33.0-20250606\nTagged selenium/standalone-chrome:119.0.6045.199-chromedriver-119.0.6045.105-grid-4.33.0-20250606\nTagged selenium/node-chrome:119.0.6045.199-chromedriver-119.0.6045.105-20250606\nTagged selenium/standalone-chrome:119.0.6045.199-chromedriver-119.0.6045.105-20250606\nTagged selenium/node-chrome:119.0.6045.199-20250606\nTagged selenium/standalone-chrome:119.0.6045.199-20250606\nTagged selenium/node-chrome:119.0-chromedriver-119.0-grid-4.33.0-20250606\nTagged selenium/standalone-chrome:119.0-chromedriver-119.0-grid-4.33.0-20250606\nTagged selenium/node-chrome:119.0-chromedriver-119.0-20250606\nTagged selenium/standalone-chrome:119.0-chromedriver-119.0-20250606\nTagged selenium/node-chrome:119.0-20250606\nTagged selenium/standalone-chrome:119.0-20250606\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.33.0/chrome_120.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.33.0 20250606 selenium false chrome true\nTagging images for browser chrome, version 4.33.0, build date 20250606, namespace selenium\nSelenium Grid version -> 4.33.0-20250606\nChrome version -> 120.0.6099.224\nShort Chrome version -> 120.0\nChromeDriver version -> 120.0.6099.109\nShort ChromeDriver version -> 120.0\nTagged selenium/node-chrome:120.0.6099.224-chromedriver-120.0.6099.109-grid-4.33.0-20250606\nTagged selenium/standalone-chrome:120.0.6099.224-chromedriver-120.0.6099.109-grid-4.33.0-20250606\nTagged selenium/node-chrome:120.0.6099.224-chromedriver-120.0.6099.109-20250606\nTagged selenium/standalone-chrome:120.0.6099.224-chromedriver-120.0.6099.109-20250606\nTagged selenium/node-chrome:120.0.6099.224-20250606\nTagged selenium/standalone-chrome:120.0.6099.224-20250606\nTagged selenium/node-chrome:120.0-chromedriver-120.0-grid-4.33.0-20250606\nTagged selenium/standalone-chrome:120.0-chromedriver-120.0-grid-4.33.0-20250606\nTagged selenium/node-chrome:120.0-chromedriver-120.0-20250606\nTagged selenium/standalone-chrome:120.0-chromedriver-120.0-20250606\nTagged selenium/node-chrome:120.0-20250606\nTagged selenium/standalone-chrome:120.0-20250606\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.33.0/chrome_121.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.33.0 20250606 selenium false chrome true\nTagging images for browser chrome, version 4.33.0, build date 20250606, namespace selenium\nSelenium Grid version -> 4.33.0-20250606\nChrome version -> 121.0.6167.184\nShort Chrome version -> 121.0\nChromeDriver version -> 121.0.6167.184\nShort ChromeDriver version -> 121.0\nTagged selenium/node-chrome:121.0.6167.184-chromedriver-121.0.6167.184-grid-4.33.0-20250606\nTagged selenium/standalone-chrome:121.0.6167.184-chromedriver-121.0.6167.184-grid-4.33.0-20250606\nTagged selenium/node-chrome:121.0.6167.184-chromedriver-121.0.6167.184-20250606\nTagged selenium/standalone-chrome:121.0.6167.184-chromedriver-121.0.6167.184-20250606\nTagged selenium/node-chrome:121.0.6167.184-20250606\nTagged selenium/standalone-chrome:121.0.6167.184-20250606\nTagged selenium/node-chrome:121.0-chromedriver-121.0-grid-4.33.0-20250606\nTagged selenium/standalone-chrome:121.0-chromedriver-121.0-grid-4.33.0-20250606\nTagged selenium/node-chrome:121.0-chromedriver-121.0-20250606\nTagged selenium/standalone-chrome:121.0-chromedriver-121.0-20250606\nTagged selenium/node-chrome:121.0-20250606\nTagged selenium/standalone-chrome:121.0-20250606\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.33.0/chrome_122.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.33.0 20250606 selenium false chrome true\nTagging images for browser chrome, version 4.33.0, build date 20250606, namespace selenium\nSelenium Grid version -> 4.33.0-20250606\nChrome version -> 122.0.6261.128\nShort Chrome version -> 122.0\nChromeDriver version -> 122.0.6261.128\nShort ChromeDriver version -> 122.0\nTagged selenium/node-chrome:122.0.6261.128-chromedriver-122.0.6261.128-grid-4.33.0-20250606\nTagged selenium/standalone-chrome:122.0.6261.128-chromedriver-122.0.6261.128-grid-4.33.0-20250606\nTagged selenium/node-chrome:122.0.6261.128-chromedriver-122.0.6261.128-20250606\nTagged selenium/standalone-chrome:122.0.6261.128-chromedriver-122.0.6261.128-20250606\nTagged selenium/node-chrome:122.0.6261.128-20250606\nTagged selenium/standalone-chrome:122.0.6261.128-20250606\nTagged selenium/node-chrome:122.0-chromedriver-122.0-grid-4.33.0-20250606\nTagged selenium/standalone-chrome:122.0-chromedriver-122.0-grid-4.33.0-20250606\nTagged selenium/node-chrome:122.0-chromedriver-122.0-20250606\nTagged selenium/standalone-chrome:122.0-chromedriver-122.0-20250606\nTagged selenium/node-chrome:122.0-20250606\nTagged selenium/standalone-chrome:122.0-20250606\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.33.0/chrome_123.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.33.0 20250606 selenium false chrome true\nTagging images for browser chrome, version 4.33.0, build date 20250606, namespace selenium\nSelenium Grid version -> 4.33.0-20250606\nChrome version -> 123.0.6312.122\nShort Chrome version -> 123.0\nChromeDriver version -> 123.0.6312.122\nShort ChromeDriver version -> 123.0\nTagged selenium/node-chrome:123.0.6312.122-chromedriver-123.0.6312.122-grid-4.33.0-20250606\nTagged selenium/standalone-chrome:123.0.6312.122-chromedriver-123.0.6312.122-grid-4.33.0-20250606\nTagged selenium/node-chrome:123.0.6312.122-chromedriver-123.0.6312.122-20250606\nTagged selenium/standalone-chrome:123.0.6312.122-chromedriver-123.0.6312.122-20250606\nTagged selenium/node-chrome:123.0.6312.122-20250606\nTagged selenium/standalone-chrome:123.0.6312.122-20250606\nTagged selenium/node-chrome:123.0-chromedriver-123.0-grid-4.33.0-20250606\nTagged selenium/standalone-chrome:123.0-chromedriver-123.0-grid-4.33.0-20250606\nTagged selenium/node-chrome:123.0-chromedriver-123.0-20250606\nTagged selenium/standalone-chrome:123.0-chromedriver-123.0-20250606\nTagged selenium/node-chrome:123.0-20250606\nTagged selenium/standalone-chrome:123.0-20250606\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.33.0/chrome_124.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.33.0 20250606 selenium false chrome true\nTagging images for browser chrome, version 4.33.0, build date 20250606, namespace selenium\nSelenium Grid version -> 4.33.0-20250606\nChrome version -> 124.0.6367.207\nShort Chrome version -> 124.0\nChromeDriver version -> 124.0.6367.207\nShort ChromeDriver version -> 124.0\nTagged selenium/node-chrome:124.0.6367.207-chromedriver-124.0.6367.207-grid-4.33.0-20250606\nTagged selenium/standalone-chrome:124.0.6367.207-chromedriver-124.0.6367.207-grid-4.33.0-20250606\nTagged selenium/node-chrome:124.0.6367.207-chromedriver-124.0.6367.207-20250606\nTagged selenium/standalone-chrome:124.0.6367.207-chromedriver-124.0.6367.207-20250606\nTagged selenium/node-chrome:124.0.6367.207-20250606\nTagged selenium/standalone-chrome:124.0.6367.207-20250606\nTagged selenium/node-chrome:124.0-chromedriver-124.0-grid-4.33.0-20250606\nTagged selenium/standalone-chrome:124.0-chromedriver-124.0-grid-4.33.0-20250606\nTagged selenium/node-chrome:124.0-chromedriver-124.0-20250606\nTagged selenium/standalone-chrome:124.0-chromedriver-124.0-20250606\nTagged selenium/node-chrome:124.0-20250606\nTagged selenium/standalone-chrome:124.0-20250606\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.33.0/chrome_125.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.33.0 20250606 selenium false chrome true\nTagging images for browser chrome, version 4.33.0, build date 20250606, namespace selenium\nSelenium Grid version -> 4.33.0-20250606\nChrome version -> 125.0.6422.141\nShort Chrome version -> 125.0\nChromeDriver version -> 125.0.6422.141\nShort ChromeDriver version -> 125.0\nTagged selenium/node-chrome:125.0.6422.141-chromedriver-125.0.6422.141-grid-4.33.0-20250606\nTagged selenium/standalone-chrome:125.0.6422.141-chromedriver-125.0.6422.141-grid-4.33.0-20250606\nTagged selenium/node-chrome:125.0.6422.141-chromedriver-125.0.6422.141-20250606\nTagged selenium/standalone-chrome:125.0.6422.141-chromedriver-125.0.6422.141-20250606\nTagged selenium/node-chrome:125.0.6422.141-20250606\nTagged selenium/standalone-chrome:125.0.6422.141-20250606\nTagged selenium/node-chrome:125.0-chromedriver-125.0-grid-4.33.0-20250606\nTagged selenium/standalone-chrome:125.0-chromedriver-125.0-grid-4.33.0-20250606\nTagged selenium/node-chrome:125.0-chromedriver-125.0-20250606\nTagged selenium/standalone-chrome:125.0-chromedriver-125.0-20250606\nTagged selenium/node-chrome:125.0-20250606\nTagged selenium/standalone-chrome:125.0-20250606\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.33.0/chrome_126.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.33.0 20250606 selenium false chrome true\nTagging images for browser chrome, version 4.33.0, build date 20250606, namespace selenium\nSelenium Grid version -> 4.33.0-20250606\nChrome version -> 126.0.6478.182\nShort Chrome version -> 126.0\nChromeDriver version -> 126.0.6478.182\nShort ChromeDriver version -> 126.0\nTagged selenium/node-chrome:126.0.6478.182-chromedriver-126.0.6478.182-grid-4.33.0-20250606\nTagged selenium/standalone-chrome:126.0.6478.182-chromedriver-126.0.6478.182-grid-4.33.0-20250606\nTagged selenium/node-chrome:126.0.6478.182-chromedriver-126.0.6478.182-20250606\nTagged selenium/standalone-chrome:126.0.6478.182-chromedriver-126.0.6478.182-20250606\nTagged selenium/node-chrome:126.0.6478.182-20250606\nTagged selenium/standalone-chrome:126.0.6478.182-20250606\nTagged selenium/node-chrome:126.0-chromedriver-126.0-grid-4.33.0-20250606\nTagged selenium/standalone-chrome:126.0-chromedriver-126.0-grid-4.33.0-20250606\nTagged selenium/node-chrome:126.0-chromedriver-126.0-20250606\nTagged selenium/standalone-chrome:126.0-chromedriver-126.0-20250606\nTagged selenium/node-chrome:126.0-20250606\nTagged selenium/standalone-chrome:126.0-20250606\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.33.0/chrome_127.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.33.0 20250606 selenium false chrome true\nTagging images for browser chrome, version 4.33.0, build date 20250606, namespace selenium\nSelenium Grid version -> 4.33.0-20250606\nChrome version -> 127.0.6533.119\nShort Chrome version -> 127.0\nChromeDriver version -> 127.0.6533.119\nShort ChromeDriver version -> 127.0\nTagged selenium/node-chrome:127.0.6533.119-chromedriver-127.0.6533.119-grid-4.33.0-20250606\nTagged selenium/standalone-chrome:127.0.6533.119-chromedriver-127.0.6533.119-grid-4.33.0-20250606\nTagged selenium/node-chrome:127.0.6533.119-chromedriver-127.0.6533.119-20250606\nTagged selenium/standalone-chrome:127.0.6533.119-chromedriver-127.0.6533.119-20250606\nTagged selenium/node-chrome:127.0.6533.119-20250606\nTagged selenium/standalone-chrome:127.0.6533.119-20250606\nTagged selenium/node-chrome:127.0-chromedriver-127.0-grid-4.33.0-20250606\nTagged selenium/standalone-chrome:127.0-chromedriver-127.0-grid-4.33.0-20250606\nTagged selenium/node-chrome:127.0-chromedriver-127.0-20250606\nTagged selenium/standalone-chrome:127.0-chromedriver-127.0-20250606\nTagged selenium/node-chrome:127.0-20250606\nTagged selenium/standalone-chrome:127.0-20250606\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.33.0/chrome_128.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.33.0 20250606 selenium false chrome true\nTagging images for browser chrome, version 4.33.0, build date 20250606, namespace selenium\nSelenium Grid version -> 4.33.0-20250606\nChrome version -> 128.0.6613.137\nShort Chrome version -> 128.0\nChromeDriver version -> 128.0.6613.137\nShort ChromeDriver version -> 128.0\nTagged selenium/node-chrome:128.0.6613.137-chromedriver-128.0.6613.137-grid-4.33.0-20250606\nTagged selenium/standalone-chrome:128.0.6613.137-chromedriver-128.0.6613.137-grid-4.33.0-20250606\nTagged selenium/node-chrome:128.0.6613.137-chromedriver-128.0.6613.137-20250606\nTagged selenium/standalone-chrome:128.0.6613.137-chromedriver-128.0.6613.137-20250606\nTagged selenium/node-chrome:128.0.6613.137-20250606\nTagged selenium/standalone-chrome:128.0.6613.137-20250606\nTagged selenium/node-chrome:128.0-chromedriver-128.0-grid-4.33.0-20250606\nTagged selenium/standalone-chrome:128.0-chromedriver-128.0-grid-4.33.0-20250606\nTagged selenium/node-chrome:128.0-chromedriver-128.0-20250606\nTagged selenium/standalone-chrome:128.0-chromedriver-128.0-20250606\nTagged selenium/node-chrome:128.0-20250606\nTagged selenium/standalone-chrome:128.0-20250606\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.33.0/chrome_129.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.33.0 20250606 selenium false chrome true\nTagging images for browser chrome, version 4.33.0, build date 20250606, namespace selenium\nSelenium Grid version -> 4.33.0-20250606\nChrome version -> 129.0.6668.100\nShort Chrome version -> 129.0\nChromeDriver version -> 129.0.6668.100\nShort ChromeDriver version -> 129.0\nTagged selenium/node-chrome:129.0.6668.100-chromedriver-129.0.6668.100-grid-4.33.0-20250606\nTagged selenium/standalone-chrome:129.0.6668.100-chromedriver-129.0.6668.100-grid-4.33.0-20250606\nTagged selenium/node-chrome:129.0.6668.100-chromedriver-129.0.6668.100-20250606\nTagged selenium/standalone-chrome:129.0.6668.100-chromedriver-129.0.6668.100-20250606\nTagged selenium/node-chrome:129.0.6668.100-20250606\nTagged selenium/standalone-chrome:129.0.6668.100-20250606\nTagged selenium/node-chrome:129.0-chromedriver-129.0-grid-4.33.0-20250606\nTagged selenium/standalone-chrome:129.0-chromedriver-129.0-grid-4.33.0-20250606\nTagged selenium/node-chrome:129.0-chromedriver-129.0-20250606\nTagged selenium/standalone-chrome:129.0-chromedriver-129.0-20250606\nTagged selenium/node-chrome:129.0-20250606\nTagged selenium/standalone-chrome:129.0-20250606\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.33.0/chrome_130.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.33.0 20250606 selenium false chrome true\nTagging images for browser chrome, version 4.33.0, build date 20250606, namespace selenium\nSelenium Grid version -> 4.33.0-20250606\nChrome version -> 130.0.6723.116\nShort Chrome version -> 130.0\nChromeDriver version -> 130.0.6723.116\nShort ChromeDriver version -> 130.0\nTagged selenium/node-chrome:130.0.6723.116-chromedriver-130.0.6723.116-grid-4.33.0-20250606\nTagged selenium/standalone-chrome:130.0.6723.116-chromedriver-130.0.6723.116-grid-4.33.0-20250606\nTagged selenium/node-chrome:130.0.6723.116-chromedriver-130.0.6723.116-20250606\nTagged selenium/standalone-chrome:130.0.6723.116-chromedriver-130.0.6723.116-20250606\nTagged selenium/node-chrome:130.0.6723.116-20250606\nTagged selenium/standalone-chrome:130.0.6723.116-20250606\nTagged selenium/node-chrome:130.0-chromedriver-130.0-grid-4.33.0-20250606\nTagged selenium/standalone-chrome:130.0-chromedriver-130.0-grid-4.33.0-20250606\nTagged selenium/node-chrome:130.0-chromedriver-130.0-20250606\nTagged selenium/standalone-chrome:130.0-chromedriver-130.0-20250606\nTagged selenium/node-chrome:130.0-20250606\nTagged selenium/standalone-chrome:130.0-20250606\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.33.0/chrome_131.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.33.0 20250606 selenium false chrome true\nTagging images for browser chrome, version 4.33.0, build date 20250606, namespace selenium\nSelenium Grid version -> 4.33.0-20250606\nChrome version -> 131.0.6778.264\nShort Chrome version -> 131.0\nChromeDriver version -> 131.0.6778.264\nShort ChromeDriver version -> 131.0\nTagged selenium/node-chrome:131.0.6778.264-chromedriver-131.0.6778.264-grid-4.33.0-20250606\nTagged selenium/standalone-chrome:131.0.6778.264-chromedriver-131.0.6778.264-grid-4.33.0-20250606\nTagged selenium/node-chrome:131.0.6778.264-chromedriver-131.0.6778.264-20250606\nTagged selenium/standalone-chrome:131.0.6778.264-chromedriver-131.0.6778.264-20250606\nTagged selenium/node-chrome:131.0.6778.264-20250606\nTagged selenium/standalone-chrome:131.0.6778.264-20250606\nTagged selenium/node-chrome:131.0-chromedriver-131.0-grid-4.33.0-20250606\nTagged selenium/standalone-chrome:131.0-chromedriver-131.0-grid-4.33.0-20250606\nTagged selenium/node-chrome:131.0-chromedriver-131.0-20250606\nTagged selenium/standalone-chrome:131.0-chromedriver-131.0-20250606\nTagged selenium/node-chrome:131.0-20250606\nTagged selenium/standalone-chrome:131.0-20250606\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.33.0/chrome_132.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.33.0 20250606 selenium false chrome true\nTagging images for browser chrome, version 4.33.0, build date 20250606, namespace selenium\nSelenium Grid version -> 4.33.0-20250606\nChrome version -> 132.0.6834.159\nShort Chrome version -> 132.0\nChromeDriver version -> 132.0.6834.159\nShort ChromeDriver version -> 132.0\nTagged selenium/node-chrome:132.0.6834.159-chromedriver-132.0.6834.159-grid-4.33.0-20250606\nTagged selenium/standalone-chrome:132.0.6834.159-chromedriver-132.0.6834.159-grid-4.33.0-20250606\nTagged selenium/node-chrome:132.0.6834.159-chromedriver-132.0.6834.159-20250606\nTagged selenium/standalone-chrome:132.0.6834.159-chromedriver-132.0.6834.159-20250606\nTagged selenium/node-chrome:132.0.6834.159-20250606\nTagged selenium/standalone-chrome:132.0.6834.159-20250606\nTagged selenium/node-chrome:132.0-chromedriver-132.0-grid-4.33.0-20250606\nTagged selenium/standalone-chrome:132.0-chromedriver-132.0-grid-4.33.0-20250606\nTagged selenium/node-chrome:132.0-chromedriver-132.0-20250606\nTagged selenium/standalone-chrome:132.0-chromedriver-132.0-20250606\nTagged selenium/node-chrome:132.0-20250606\nTagged selenium/standalone-chrome:132.0-20250606\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.33.0/chrome_133.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.33.0 20250606 selenium false chrome true\nTagging images for browser chrome, version 4.33.0, build date 20250606, namespace selenium\nSelenium Grid version -> 4.33.0-20250606\nChrome version -> 133.0.6943.141\nShort Chrome version -> 133.0\nChromeDriver version -> 133.0.6943.141\nShort ChromeDriver version -> 133.0\nTagged selenium/node-chrome:133.0.6943.141-chromedriver-133.0.6943.141-grid-4.33.0-20250606\nTagged selenium/standalone-chrome:133.0.6943.141-chromedriver-133.0.6943.141-grid-4.33.0-20250606\nTagged selenium/node-chrome:133.0.6943.141-chromedriver-133.0.6943.141-20250606\nTagged selenium/standalone-chrome:133.0.6943.141-chromedriver-133.0.6943.141-20250606\nTagged selenium/node-chrome:133.0.6943.141-20250606\nTagged selenium/standalone-chrome:133.0.6943.141-20250606\nTagged selenium/node-chrome:133.0-chromedriver-133.0-grid-4.33.0-20250606\nTagged selenium/standalone-chrome:133.0-chromedriver-133.0-grid-4.33.0-20250606\nTagged selenium/node-chrome:133.0-chromedriver-133.0-20250606\nTagged selenium/standalone-chrome:133.0-chromedriver-133.0-20250606\nTagged selenium/node-chrome:133.0-20250606\nTagged selenium/standalone-chrome:133.0-20250606\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.33.0/chrome_134.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.33.0 20250606 selenium false chrome true\nTagging images for browser chrome, version 4.33.0, build date 20250606, namespace selenium\nSelenium Grid version -> 4.33.0-20250606\nChrome version -> 134.0.6998.165\nShort Chrome version -> 134.0\nChromeDriver version -> 134.0.6998.165\nShort ChromeDriver version -> 134.0\nTagged selenium/node-chrome:134.0.6998.165-chromedriver-134.0.6998.165-grid-4.33.0-20250606\nTagged selenium/standalone-chrome:134.0.6998.165-chromedriver-134.0.6998.165-grid-4.33.0-20250606\nTagged selenium/node-chrome:134.0.6998.165-chromedriver-134.0.6998.165-20250606\nTagged selenium/standalone-chrome:134.0.6998.165-chromedriver-134.0.6998.165-20250606\nTagged selenium/node-chrome:134.0.6998.165-20250606\nTagged selenium/standalone-chrome:134.0.6998.165-20250606\nTagged selenium/node-chrome:134.0-chromedriver-134.0-grid-4.33.0-20250606\nTagged selenium/standalone-chrome:134.0-chromedriver-134.0-grid-4.33.0-20250606\nTagged selenium/node-chrome:134.0-chromedriver-134.0-20250606\nTagged selenium/standalone-chrome:134.0-chromedriver-134.0-20250606\nTagged selenium/node-chrome:134.0-20250606\nTagged selenium/standalone-chrome:134.0-20250606\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.33.0/chrome_136.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.33.0 20250606 selenium false chrome true\nTagging images for browser chrome, version 4.33.0, build date 20250606, namespace selenium\nSelenium Grid version -> 4.33.0-20250606\nChrome version -> 136.0.7103.113\nShort Chrome version -> 136.0\nChromeDriver version -> 136.0.7103.113\nShort ChromeDriver version -> 136.0\nTagged selenium/node-chrome:136.0.7103.113-chromedriver-136.0.7103.113-grid-4.33.0-20250606\nTagged selenium/standalone-chrome:136.0.7103.113-chromedriver-136.0.7103.113-grid-4.33.0-20250606\nTagged selenium/node-chrome:136.0.7103.113-chromedriver-136.0.7103.113-20250606\nTagged selenium/standalone-chrome:136.0.7103.113-chromedriver-136.0.7103.113-20250606\nTagged selenium/node-chrome:136.0.7103.113-20250606\nTagged selenium/standalone-chrome:136.0.7103.113-20250606\nTagged selenium/node-chrome:136.0-chromedriver-136.0-grid-4.33.0-20250606\nTagged selenium/standalone-chrome:136.0-chromedriver-136.0-grid-4.33.0-20250606\nTagged selenium/node-chrome:136.0-chromedriver-136.0-20250606\nTagged selenium/standalone-chrome:136.0-chromedriver-136.0-20250606\nTagged selenium/node-chrome:136.0-20250606\nTagged selenium/standalone-chrome:136.0-20250606\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.33.0/chrome_95.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.33.0 20250606 selenium false chrome true\nTagging images for browser chrome, version 4.33.0, build date 20250606, namespace selenium\nSelenium Grid version -> 4.33.0-20250606\nChrome version -> 95.0.4638.69\nShort Chrome version -> 95.0\nChromeDriver version -> 95.0.4638.69\nShort ChromeDriver version -> 95.0\nTagged selenium/node-chrome:95.0.4638.69-chromedriver-95.0.4638.69-grid-4.33.0-20250606\nTagged selenium/standalone-chrome:95.0.4638.69-chromedriver-95.0.4638.69-grid-4.33.0-20250606\nTagged selenium/node-chrome:95.0.4638.69-chromedriver-95.0.4638.69-20250606\nTagged selenium/standalone-chrome:95.0.4638.69-chromedriver-95.0.4638.69-20250606\nTagged selenium/node-chrome:95.0.4638.69-20250606\nTagged selenium/standalone-chrome:95.0.4638.69-20250606\nTagged selenium/node-chrome:95.0-chromedriver-95.0-grid-4.33.0-20250606\nTagged selenium/standalone-chrome:95.0-chromedriver-95.0-grid-4.33.0-20250606\nTagged selenium/node-chrome:95.0-chromedriver-95.0-20250606\nTagged selenium/standalone-chrome:95.0-chromedriver-95.0-20250606\nTagged selenium/node-chrome:95.0-20250606\nTagged selenium/standalone-chrome:95.0-20250606\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.33.0/chrome_96.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.33.0 20250606 selenium false chrome true\nTagging images for browser chrome, version 4.33.0, build date 20250606, namespace selenium\nSelenium Grid version -> 4.33.0-20250606\nChrome version -> 96.0.4664.110\nShort Chrome version -> 96.0\nChromeDriver version -> 96.0.4664.45\nShort ChromeDriver version -> 96.0\nTagged selenium/node-chrome:96.0.4664.110-chromedriver-96.0.4664.45-grid-4.33.0-20250606\nTagged selenium/standalone-chrome:96.0.4664.110-chromedriver-96.0.4664.45-grid-4.33.0-20250606\nTagged selenium/node-chrome:96.0.4664.110-chromedriver-96.0.4664.45-20250606\nTagged selenium/standalone-chrome:96.0.4664.110-chromedriver-96.0.4664.45-20250606\nTagged selenium/node-chrome:96.0.4664.110-20250606\nTagged selenium/standalone-chrome:96.0.4664.110-20250606\nTagged selenium/node-chrome:96.0-chromedriver-96.0-grid-4.33.0-20250606\nTagged selenium/standalone-chrome:96.0-chromedriver-96.0-grid-4.33.0-20250606\nTagged selenium/node-chrome:96.0-chromedriver-96.0-20250606\nTagged selenium/standalone-chrome:96.0-chromedriver-96.0-20250606\nTagged selenium/node-chrome:96.0-20250606\nTagged selenium/standalone-chrome:96.0-20250606\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.33.0/chrome_97.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.33.0 20250606 selenium false chrome true\nTagging images for browser chrome, version 4.33.0, build date 20250606, namespace selenium\nSelenium Grid version -> 4.33.0-20250606\nChrome version -> 97.0.4692.99\nShort Chrome version -> 97.0\nChromeDriver version -> 97.0.4692.71\nShort ChromeDriver version -> 97.0\nTagged selenium/node-chrome:97.0.4692.99-chromedriver-97.0.4692.71-grid-4.33.0-20250606\nTagged selenium/standalone-chrome:97.0.4692.99-chromedriver-97.0.4692.71-grid-4.33.0-20250606\nTagged selenium/node-chrome:97.0.4692.99-chromedriver-97.0.4692.71-20250606\nTagged selenium/standalone-chrome:97.0.4692.99-chromedriver-97.0.4692.71-20250606\nTagged selenium/node-chrome:97.0.4692.99-20250606\nTagged selenium/standalone-chrome:97.0.4692.99-20250606\nTagged selenium/node-chrome:97.0-chromedriver-97.0-grid-4.33.0-20250606\nTagged selenium/standalone-chrome:97.0-chromedriver-97.0-grid-4.33.0-20250606\nTagged selenium/node-chrome:97.0-chromedriver-97.0-20250606\nTagged selenium/standalone-chrome:97.0-chromedriver-97.0-20250606\nTagged selenium/node-chrome:97.0-20250606\nTagged selenium/standalone-chrome:97.0-20250606\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.33.0/chrome_98.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.33.0 20250606 selenium false chrome true\nTagging images for browser chrome, version 4.33.0, build date 20250606, namespace selenium\nSelenium Grid version -> 4.33.0-20250606\nChrome version -> 98.0.4758.102\nShort Chrome version -> 98.0\nChromeDriver version -> 98.0.4758.102\nShort ChromeDriver version -> 98.0\nTagged selenium/node-chrome:98.0.4758.102-chromedriver-98.0.4758.102-grid-4.33.0-20250606\nTagged selenium/standalone-chrome:98.0.4758.102-chromedriver-98.0.4758.102-grid-4.33.0-20250606\nTagged selenium/node-chrome:98.0.4758.102-chromedriver-98.0.4758.102-20250606\nTagged selenium/standalone-chrome:98.0.4758.102-chromedriver-98.0.4758.102-20250606\nTagged selenium/node-chrome:98.0.4758.102-20250606\nTagged selenium/standalone-chrome:98.0.4758.102-20250606\nTagged selenium/node-chrome:98.0-chromedriver-98.0-grid-4.33.0-20250606\nTagged selenium/standalone-chrome:98.0-chromedriver-98.0-grid-4.33.0-20250606\nTagged selenium/node-chrome:98.0-chromedriver-98.0-20250606\nTagged selenium/standalone-chrome:98.0-chromedriver-98.0-20250606\nTagged selenium/node-chrome:98.0-20250606\nTagged selenium/standalone-chrome:98.0-20250606\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.33.0/chrome_99.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.33.0 20250606 selenium false chrome true\nTagging images for browser chrome, version 4.33.0, build date 20250606, namespace selenium\nSelenium Grid version -> 4.33.0-20250606\nChrome version -> 99.0.4844.84\nShort Chrome version -> 99.0\nChromeDriver version -> 99.0.4844.51\nShort ChromeDriver version -> 99.0\nTagged selenium/node-chrome:99.0.4844.84-chromedriver-99.0.4844.51-grid-4.33.0-20250606\nTagged selenium/standalone-chrome:99.0.4844.84-chromedriver-99.0.4844.51-grid-4.33.0-20250606\nTagged selenium/node-chrome:99.0.4844.84-chromedriver-99.0.4844.51-20250606\nTagged selenium/standalone-chrome:99.0.4844.84-chromedriver-99.0.4844.51-20250606\nTagged selenium/node-chrome:99.0.4844.84-20250606\nTagged selenium/standalone-chrome:99.0.4844.84-20250606\nTagged selenium/node-chrome:99.0-chromedriver-99.0-grid-4.33.0-20250606\nTagged selenium/standalone-chrome:99.0-chromedriver-99.0-grid-4.33.0-20250606\nTagged selenium/node-chrome:99.0-chromedriver-99.0-20250606\nTagged selenium/standalone-chrome:99.0-chromedriver-99.0-20250606\nTagged selenium/node-chrome:99.0-20250606\nTagged selenium/standalone-chrome:99.0-20250606\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.33.0/edge_114.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.33.0 20250606 selenium false edge true\nTagging images for browser edge, version 4.33.0, build date 20250606, namespace selenium\nSelenium Grid version -> 4.33.0-20250606\nEdge version -> 114.0.1823.82\nShort Edge version -> 114.0\nEdgeDriver version -> 114.0.1823.82\nShort EdgeDriver version -> 114.0\nTagged selenium/node-edge:114.0.1823.82-edgedriver-114.0.1823.82-grid-4.33.0-20250606\nTagged selenium/standalone-edge:114.0.1823.82-edgedriver-114.0.1823.82-grid-4.33.0-20250606\nTagged selenium/node-edge:114.0.1823.82-edgedriver-114.0.1823.82-20250606\nTagged selenium/standalone-edge:114.0.1823.82-edgedriver-114.0.1823.82-20250606\nTagged selenium/node-edge:114.0.1823.82-20250606\nTagged selenium/standalone-edge:114.0.1823.82-20250606\nTagged selenium/node-edge:114.0-edgedriver-114.0-grid-4.33.0-20250606\nTagged selenium/standalone-edge:114.0-edgedriver-114.0-grid-4.33.0-20250606\nTagged selenium/node-edge:114.0-edgedriver-114.0-20250606\nTagged selenium/standalone-edge:114.0-edgedriver-114.0-20250606\nTagged selenium/node-edge:114.0-20250606\nTagged selenium/standalone-edge:114.0-20250606\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.33.0/edge_115.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.33.0 20250606 selenium false edge true\nTagging images for browser edge, version 4.33.0, build date 20250606, namespace selenium\nSelenium Grid version -> 4.33.0-20250606\nEdge version -> 115.0.1901.203\nShort Edge version -> 115.0\nEdgeDriver version -> 115.0.1901.203\nShort EdgeDriver version -> 115.0\nTagged selenium/node-edge:115.0.1901.203-edgedriver-115.0.1901.203-grid-4.33.0-20250606\nTagged selenium/standalone-edge:115.0.1901.203-edgedriver-115.0.1901.203-grid-4.33.0-20250606\nTagged selenium/node-edge:115.0.1901.203-edgedriver-115.0.1901.203-20250606\nTagged selenium/standalone-edge:115.0.1901.203-edgedriver-115.0.1901.203-20250606\nTagged selenium/node-edge:115.0.1901.203-20250606\nTagged selenium/standalone-edge:115.0.1901.203-20250606\nTagged selenium/node-edge:115.0-edgedriver-115.0-grid-4.33.0-20250606\nTagged selenium/standalone-edge:115.0-edgedriver-115.0-grid-4.33.0-20250606\nTagged selenium/node-edge:115.0-edgedriver-115.0-20250606\nTagged selenium/standalone-edge:115.0-edgedriver-115.0-20250606\nTagged selenium/node-edge:115.0-20250606\nTagged selenium/standalone-edge:115.0-20250606\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.33.0/edge_116.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.33.0 20250606 selenium false edge true\nTagging images for browser edge, version 4.33.0, build date 20250606, namespace selenium\nSelenium Grid version -> 4.33.0-20250606\nEdge version -> 116.0.1938.81\nShort Edge version -> 116.0\nEdgeDriver version -> 116.0.1938.81\nShort EdgeDriver version -> 116.0\nTagged selenium/node-edge:116.0.1938.81-edgedriver-116.0.1938.81-grid-4.33.0-20250606\nTagged selenium/standalone-edge:116.0.1938.81-edgedriver-116.0.1938.81-grid-4.33.0-20250606\nTagged selenium/node-edge:116.0.1938.81-edgedriver-116.0.1938.81-20250606\nTagged selenium/standalone-edge:116.0.1938.81-edgedriver-116.0.1938.81-20250606\nTagged selenium/node-edge:116.0.1938.81-20250606\nTagged selenium/standalone-edge:116.0.1938.81-20250606\nTagged selenium/node-edge:116.0-edgedriver-116.0-grid-4.33.0-20250606\nTagged selenium/standalone-edge:116.0-edgedriver-116.0-grid-4.33.0-20250606\nTagged selenium/node-edge:116.0-edgedriver-116.0-20250606\nTagged selenium/standalone-edge:116.0-edgedriver-116.0-20250606\nTagged selenium/node-edge:116.0-20250606\nTagged selenium/standalone-edge:116.0-20250606\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.33.0/edge_117.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.33.0 20250606 selenium false edge true\nTagging images for browser edge, version 4.33.0, build date 20250606, namespace selenium\nSelenium Grid version -> 4.33.0-20250606\nEdge version -> 117.0.2045.55\nShort Edge version -> 117.0\nEdgeDriver version -> 117.0.2045.55\nShort EdgeDriver version -> 117.0\nTagged selenium/node-edge:117.0.2045.55-edgedriver-117.0.2045.55-grid-4.33.0-20250606\nTagged selenium/standalone-edge:117.0.2045.55-edgedriver-117.0.2045.55-grid-4.33.0-20250606\nTagged selenium/node-edge:117.0.2045.55-edgedriver-117.0.2045.55-20250606\nTagged selenium/standalone-edge:117.0.2045.55-edgedriver-117.0.2045.55-20250606\nTagged selenium/node-edge:117.0.2045.55-20250606\nTagged selenium/standalone-edge:117.0.2045.55-20250606\nTagged selenium/node-edge:117.0-edgedriver-117.0-grid-4.33.0-20250606\nTagged selenium/standalone-edge:117.0-edgedriver-117.0-grid-4.33.0-20250606\nTagged selenium/node-edge:117.0-edgedriver-117.0-20250606\nTagged selenium/standalone-edge:117.0-edgedriver-117.0-20250606\nTagged selenium/node-edge:117.0-20250606\nTagged selenium/standalone-edge:117.0-20250606\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.33.0/edge_118.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.33.0 20250606 selenium false edge true\nTagging images for browser edge, version 4.33.0, build date 20250606, namespace selenium\nSelenium Grid version -> 4.33.0-20250606\nEdge version -> 118.0.2088.76\nShort Edge version -> 118.0\nEdgeDriver version -> 118.0.2088.76\nShort EdgeDriver version -> 118.0\nTagged selenium/node-edge:118.0.2088.76-edgedriver-118.0.2088.76-grid-4.33.0-20250606\nTagged selenium/standalone-edge:118.0.2088.76-edgedriver-118.0.2088.76-grid-4.33.0-20250606\nTagged selenium/node-edge:118.0.2088.76-edgedriver-118.0.2088.76-20250606\nTagged selenium/standalone-edge:118.0.2088.76-edgedriver-118.0.2088.76-20250606\nTagged selenium/node-edge:118.0.2088.76-20250606\nTagged selenium/standalone-edge:118.0.2088.76-20250606\nTagged selenium/node-edge:118.0-edgedriver-118.0-grid-4.33.0-20250606\nTagged selenium/standalone-edge:118.0-edgedriver-118.0-grid-4.33.0-20250606\nTagged selenium/node-edge:118.0-edgedriver-118.0-20250606\nTagged selenium/standalone-edge:118.0-edgedriver-118.0-20250606\nTagged selenium/node-edge:118.0-20250606\nTagged selenium/standalone-edge:118.0-20250606\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.33.0/edge_119.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.33.0 20250606 selenium false edge true\nTagging images for browser edge, version 4.33.0, build date 20250606, namespace selenium\nSelenium Grid version -> 4.33.0-20250606\nEdge version -> 119.0.2151.97\nShort Edge version -> 119.0\nEdgeDriver version -> 119.0.2151.97\nShort EdgeDriver version -> 119.0\nTagged selenium/node-edge:119.0.2151.97-edgedriver-119.0.2151.97-grid-4.33.0-20250606\nTagged selenium/standalone-edge:119.0.2151.97-edgedriver-119.0.2151.97-grid-4.33.0-20250606\nTagged selenium/node-edge:119.0.2151.97-edgedriver-119.0.2151.97-20250606\nTagged selenium/standalone-edge:119.0.2151.97-edgedriver-119.0.2151.97-20250606\nTagged selenium/node-edge:119.0.2151.97-20250606\nTagged selenium/standalone-edge:119.0.2151.97-20250606\nTagged selenium/node-edge:119.0-edgedriver-119.0-grid-4.33.0-20250606\nTagged selenium/standalone-edge:119.0-edgedriver-119.0-grid-4.33.0-20250606\nTagged selenium/node-edge:119.0-edgedriver-119.0-20250606\nTagged selenium/standalone-edge:119.0-edgedriver-119.0-20250606\nTagged selenium/node-edge:119.0-20250606\nTagged selenium/standalone-edge:119.0-20250606\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.33.0/edge_120.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.33.0 20250606 selenium false edge true\nTagging images for browser edge, version 4.33.0, build date 20250606, namespace selenium\nSelenium Grid version -> 4.33.0-20250606\nEdge version -> 120.0.2210.144\nShort Edge version -> 120.0\nEdgeDriver version -> 120.0.2210.144\nShort EdgeDriver version -> 120.0\nTagged selenium/node-edge:120.0.2210.144-edgedriver-120.0.2210.144-grid-4.33.0-20250606\nTagged selenium/standalone-edge:120.0.2210.144-edgedriver-120.0.2210.144-grid-4.33.0-20250606\nTagged selenium/node-edge:120.0.2210.144-edgedriver-120.0.2210.144-20250606\nTagged selenium/standalone-edge:120.0.2210.144-edgedriver-120.0.2210.144-20250606\nTagged selenium/node-edge:120.0.2210.144-20250606\nTagged selenium/standalone-edge:120.0.2210.144-20250606\nTagged selenium/node-edge:120.0-edgedriver-120.0-grid-4.33.0-20250606\nTagged selenium/standalone-edge:120.0-edgedriver-120.0-grid-4.33.0-20250606\nTagged selenium/node-edge:120.0-edgedriver-120.0-20250606\nTagged selenium/standalone-edge:120.0-edgedriver-120.0-20250606\nTagged selenium/node-edge:120.0-20250606\nTagged selenium/standalone-edge:120.0-20250606\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.33.0/edge_121.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.33.0 20250606 selenium false edge true\nTagging images for browser edge, version 4.33.0, build date 20250606, namespace selenium\nSelenium Grid version -> 4.33.0-20250606\nEdge version -> 121.0.2277.128\nShort Edge version -> 121.0\nEdgeDriver version -> 121.0.2277.128\nShort EdgeDriver version -> 121.0\nTagged selenium/node-edge:121.0.2277.128-edgedriver-121.0.2277.128-grid-4.33.0-20250606\nTagged selenium/standalone-edge:121.0.2277.128-edgedriver-121.0.2277.128-grid-4.33.0-20250606\nTagged selenium/node-edge:121.0.2277.128-edgedriver-121.0.2277.128-20250606\nTagged selenium/standalone-edge:121.0.2277.128-edgedriver-121.0.2277.128-20250606\nTagged selenium/node-edge:121.0.2277.128-20250606\nTagged selenium/standalone-edge:121.0.2277.128-20250606\nTagged selenium/node-edge:121.0-edgedriver-121.0-grid-4.33.0-20250606\nTagged selenium/standalone-edge:121.0-edgedriver-121.0-grid-4.33.0-20250606\nTagged selenium/node-edge:121.0-edgedriver-121.0-20250606\nTagged selenium/standalone-edge:121.0-edgedriver-121.0-20250606\nTagged selenium/node-edge:121.0-20250606\nTagged selenium/standalone-edge:121.0-20250606\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.33.0/edge_122.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.33.0 20250606 selenium false edge true\nTagging images for browser edge, version 4.33.0, build date 20250606, namespace selenium\nSelenium Grid version -> 4.33.0-20250606\nEdge version -> 122.0.2365.92\nShort Edge version -> 122.0\nEdgeDriver version -> 122.0.2365.92\nShort EdgeDriver version -> 122.0\nTagged selenium/node-edge:122.0.2365.92-edgedriver-122.0.2365.92-grid-4.33.0-20250606\nTagged selenium/standalone-edge:122.0.2365.92-edgedriver-122.0.2365.92-grid-4.33.0-20250606\nTagged selenium/node-edge:122.0.2365.92-edgedriver-122.0.2365.92-20250606\nTagged selenium/standalone-edge:122.0.2365.92-edgedriver-122.0.2365.92-20250606\nTagged selenium/node-edge:122.0.2365.92-20250606\nTagged selenium/standalone-edge:122.0.2365.92-20250606\nTagged selenium/node-edge:122.0-edgedriver-122.0-grid-4.33.0-20250606\nTagged selenium/standalone-edge:122.0-edgedriver-122.0-grid-4.33.0-20250606\nTagged selenium/node-edge:122.0-edgedriver-122.0-20250606\nTagged selenium/standalone-edge:122.0-edgedriver-122.0-20250606\nTagged selenium/node-edge:122.0-20250606\nTagged selenium/standalone-edge:122.0-20250606\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.33.0/edge_123.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.33.0 20250606 selenium false edge true\nTagging images for browser edge, version 4.33.0, build date 20250606, namespace selenium\nSelenium Grid version -> 4.33.0-20250606\nEdge version -> 123.0.2420.97\nShort Edge version -> 123.0\nEdgeDriver version -> 123.0.2420.97\nShort EdgeDriver version -> 123.0\nTagged selenium/node-edge:123.0.2420.97-edgedriver-123.0.2420.97-grid-4.33.0-20250606\nTagged selenium/standalone-edge:123.0.2420.97-edgedriver-123.0.2420.97-grid-4.33.0-20250606\nTagged selenium/node-edge:123.0.2420.97-edgedriver-123.0.2420.97-20250606\nTagged selenium/standalone-edge:123.0.2420.97-edgedriver-123.0.2420.97-20250606\nTagged selenium/node-edge:123.0.2420.97-20250606\nTagged selenium/standalone-edge:123.0.2420.97-20250606\nTagged selenium/node-edge:123.0-edgedriver-123.0-grid-4.33.0-20250606\nTagged selenium/standalone-edge:123.0-edgedriver-123.0-grid-4.33.0-20250606\nTagged selenium/node-edge:123.0-edgedriver-123.0-20250606\nTagged selenium/standalone-edge:123.0-edgedriver-123.0-20250606\nTagged selenium/node-edge:123.0-20250606\nTagged selenium/standalone-edge:123.0-20250606\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.33.0/edge_124.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.33.0 20250606 selenium false edge true\nTagging images for browser edge, version 4.33.0, build date 20250606, namespace selenium\nSelenium Grid version -> 4.33.0-20250606\nEdge version -> 124.0.2478.109\nShort Edge version -> 124.0\nEdgeDriver version -> 124.0.2478.109\nShort EdgeDriver version -> 124.0\nTagged selenium/node-edge:124.0.2478.109-edgedriver-124.0.2478.109-grid-4.33.0-20250606\nTagged selenium/standalone-edge:124.0.2478.109-edgedriver-124.0.2478.109-grid-4.33.0-20250606\nTagged selenium/node-edge:124.0.2478.109-edgedriver-124.0.2478.109-20250606\nTagged selenium/standalone-edge:124.0.2478.109-edgedriver-124.0.2478.109-20250606\nTagged selenium/node-edge:124.0.2478.109-20250606\nTagged selenium/standalone-edge:124.0.2478.109-20250606\nTagged selenium/node-edge:124.0-edgedriver-124.0-grid-4.33.0-20250606\nTagged selenium/standalone-edge:124.0-edgedriver-124.0-grid-4.33.0-20250606\nTagged selenium/node-edge:124.0-edgedriver-124.0-20250606\nTagged selenium/standalone-edge:124.0-edgedriver-124.0-20250606\nTagged selenium/node-edge:124.0-20250606\nTagged selenium/standalone-edge:124.0-20250606\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.33.0/edge_125.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.33.0 20250606 selenium false edge true\nTagging images for browser edge, version 4.33.0, build date 20250606, namespace selenium\nSelenium Grid version -> 4.33.0-20250606\nEdge version -> 125.0.2535.92\nShort Edge version -> 125.0\nEdgeDriver version -> 125.0.2535.92\nShort EdgeDriver version -> 125.0\nTagged selenium/node-edge:125.0.2535.92-edgedriver-125.0.2535.92-grid-4.33.0-20250606\nTagged selenium/standalone-edge:125.0.2535.92-edgedriver-125.0.2535.92-grid-4.33.0-20250606\nTagged selenium/node-edge:125.0.2535.92-edgedriver-125.0.2535.92-20250606\nTagged selenium/standalone-edge:125.0.2535.92-edgedriver-125.0.2535.92-20250606\nTagged selenium/node-edge:125.0.2535.92-20250606\nTagged selenium/standalone-edge:125.0.2535.92-20250606\nTagged selenium/node-edge:125.0-edgedriver-125.0-grid-4.33.0-20250606\nTagged selenium/standalone-edge:125.0-edgedriver-125.0-grid-4.33.0-20250606\nTagged selenium/node-edge:125.0-edgedriver-125.0-20250606\nTagged selenium/standalone-edge:125.0-edgedriver-125.0-20250606\nTagged selenium/node-edge:125.0-20250606\nTagged selenium/standalone-edge:125.0-20250606\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.33.0/edge_126.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.33.0 20250606 selenium false edge true\nTagging images for browser edge, version 4.33.0, build date 20250606, namespace selenium\nSelenium Grid version -> 4.33.0-20250606\nEdge version -> 126.0.2592.113\nShort Edge version -> 126.0\nEdgeDriver version -> 126.0.2592.123\nShort EdgeDriver version -> 126.0\nTagged selenium/node-edge:126.0.2592.113-edgedriver-126.0.2592.123-grid-4.33.0-20250606\nTagged selenium/standalone-edge:126.0.2592.113-edgedriver-126.0.2592.123-grid-4.33.0-20250606\nTagged selenium/node-edge:126.0.2592.113-edgedriver-126.0.2592.123-20250606\nTagged selenium/standalone-edge:126.0.2592.113-edgedriver-126.0.2592.123-20250606\nTagged selenium/node-edge:126.0.2592.113-20250606\nTagged selenium/standalone-edge:126.0.2592.113-20250606\nTagged selenium/node-edge:126.0-edgedriver-126.0-grid-4.33.0-20250606\nTagged selenium/standalone-edge:126.0-edgedriver-126.0-grid-4.33.0-20250606\nTagged selenium/node-edge:126.0-edgedriver-126.0-20250606\nTagged selenium/standalone-edge:126.0-edgedriver-126.0-20250606\nTagged selenium/node-edge:126.0-20250606\nTagged selenium/standalone-edge:126.0-20250606\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.33.0/edge_127.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.33.0 20250606 selenium false edge true\nTagging images for browser edge, version 4.33.0, build date 20250606, namespace selenium\nSelenium Grid version -> 4.33.0-20250606\nEdge version -> 127.0.2651.105\nShort Edge version -> 127.0\nEdgeDriver version -> 127.0.2651.107\nShort EdgeDriver version -> 127.0\nTagged selenium/node-edge:127.0.2651.105-edgedriver-127.0.2651.107-grid-4.33.0-20250606\nTagged selenium/standalone-edge:127.0.2651.105-edgedriver-127.0.2651.107-grid-4.33.0-20250606\nTagged selenium/node-edge:127.0.2651.105-edgedriver-127.0.2651.107-20250606\nTagged selenium/standalone-edge:127.0.2651.105-edgedriver-127.0.2651.107-20250606\nTagged selenium/node-edge:127.0.2651.105-20250606\nTagged selenium/standalone-edge:127.0.2651.105-20250606\nTagged selenium/node-edge:127.0-edgedriver-127.0-grid-4.33.0-20250606\nTagged selenium/standalone-edge:127.0-edgedriver-127.0-grid-4.33.0-20250606\nTagged selenium/node-edge:127.0-edgedriver-127.0-20250606\nTagged selenium/standalone-edge:127.0-edgedriver-127.0-20250606\nTagged selenium/node-edge:127.0-20250606\nTagged selenium/standalone-edge:127.0-20250606\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.33.0/edge_128.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.33.0 20250606 selenium false edge true\nTagging images for browser edge, version 4.33.0, build date 20250606, namespace selenium\nSelenium Grid version -> 4.33.0-20250606\nEdge version -> 128.0.2739.79\nShort Edge version -> 128.0\nEdgeDriver version -> 128.0.2739.81\nShort EdgeDriver version -> 128.0\nTagged selenium/node-edge:128.0.2739.79-edgedriver-128.0.2739.81-grid-4.33.0-20250606\nTagged selenium/standalone-edge:128.0.2739.79-edgedriver-128.0.2739.81-grid-4.33.0-20250606\nTagged selenium/node-edge:128.0.2739.79-edgedriver-128.0.2739.81-20250606\nTagged selenium/standalone-edge:128.0.2739.79-edgedriver-128.0.2739.81-20250606\nTagged selenium/node-edge:128.0.2739.79-20250606\nTagged selenium/standalone-edge:128.0.2739.79-20250606\nTagged selenium/node-edge:128.0-edgedriver-128.0-grid-4.33.0-20250606\nTagged selenium/standalone-edge:128.0-edgedriver-128.0-grid-4.33.0-20250606\nTagged selenium/node-edge:128.0-edgedriver-128.0-20250606\nTagged selenium/standalone-edge:128.0-edgedriver-128.0-20250606\nTagged selenium/node-edge:128.0-20250606\nTagged selenium/standalone-edge:128.0-20250606\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.33.0/edge_129.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.33.0 20250606 selenium false edge true\nTagging images for browser edge, version 4.33.0, build date 20250606, namespace selenium\nSelenium Grid version -> 4.33.0-20250606\nEdge version -> 129.0.2792.89\nShort Edge version -> 129.0\nEdgeDriver version -> 129.0.2792.98\nShort EdgeDriver version -> 129.0\nTagged selenium/node-edge:129.0.2792.89-edgedriver-129.0.2792.98-grid-4.33.0-20250606\nTagged selenium/standalone-edge:129.0.2792.89-edgedriver-129.0.2792.98-grid-4.33.0-20250606\nTagged selenium/node-edge:129.0.2792.89-edgedriver-129.0.2792.98-20250606\nTagged selenium/standalone-edge:129.0.2792.89-edgedriver-129.0.2792.98-20250606\nTagged selenium/node-edge:129.0.2792.89-20250606\nTagged selenium/standalone-edge:129.0.2792.89-20250606\nTagged selenium/node-edge:129.0-edgedriver-129.0-grid-4.33.0-20250606\nTagged selenium/standalone-edge:129.0-edgedriver-129.0-grid-4.33.0-20250606\nTagged selenium/node-edge:129.0-edgedriver-129.0-20250606\nTagged selenium/standalone-edge:129.0-edgedriver-129.0-20250606\nTagged selenium/node-edge:129.0-20250606\nTagged selenium/standalone-edge:129.0-20250606\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.33.0/edge_130.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.33.0 20250606 selenium false edge true\nTagging images for browser edge, version 4.33.0, build date 20250606, namespace selenium\nSelenium Grid version -> 4.33.0-20250606\nEdge version -> 130.0.2849.80\nShort Edge version -> 130.0\nEdgeDriver version -> 130.0.2849.78\nShort EdgeDriver version -> 130.0\nTagged selenium/node-edge:130.0.2849.80-edgedriver-130.0.2849.78-grid-4.33.0-20250606\nTagged selenium/standalone-edge:130.0.2849.80-edgedriver-130.0.2849.78-grid-4.33.0-20250606\nTagged selenium/node-edge:130.0.2849.80-edgedriver-130.0.2849.78-20250606\nTagged selenium/standalone-edge:130.0.2849.80-edgedriver-130.0.2849.78-20250606\nTagged selenium/node-edge:130.0.2849.80-20250606\nTagged selenium/standalone-edge:130.0.2849.80-20250606\nTagged selenium/node-edge:130.0-edgedriver-130.0-grid-4.33.0-20250606\nTagged selenium/standalone-edge:130.0-edgedriver-130.0-grid-4.33.0-20250606\nTagged selenium/node-edge:130.0-edgedriver-130.0-20250606\nTagged selenium/standalone-edge:130.0-edgedriver-130.0-20250606\nTagged selenium/node-edge:130.0-20250606\nTagged selenium/standalone-edge:130.0-20250606\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.33.0/edge_131.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.33.0 20250606 selenium false edge true\nTagging images for browser edge, version 4.33.0, build date 20250606, namespace selenium\nSelenium Grid version -> 4.33.0-20250606\nEdge version -> 131.0.2903.147\nShort Edge version -> 131.0\nEdgeDriver version -> 131.0.2903.147\nShort EdgeDriver version -> 131.0\nTagged selenium/node-edge:131.0.2903.147-edgedriver-131.0.2903.147-grid-4.33.0-20250606\nTagged selenium/standalone-edge:131.0.2903.147-edgedriver-131.0.2903.147-grid-4.33.0-20250606\nTagged selenium/node-edge:131.0.2903.147-edgedriver-131.0.2903.147-20250606\nTagged selenium/standalone-edge:131.0.2903.147-edgedriver-131.0.2903.147-20250606\nTagged selenium/node-edge:131.0.2903.147-20250606\nTagged selenium/standalone-edge:131.0.2903.147-20250606\nTagged selenium/node-edge:131.0-edgedriver-131.0-grid-4.33.0-20250606\nTagged selenium/standalone-edge:131.0-edgedriver-131.0-grid-4.33.0-20250606\nTagged selenium/node-edge:131.0-edgedriver-131.0-20250606\nTagged selenium/standalone-edge:131.0-edgedriver-131.0-20250606\nTagged selenium/node-edge:131.0-20250606\nTagged selenium/standalone-edge:131.0-20250606\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.33.0/edge_132.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.33.0 20250606 selenium false edge true\nTagging images for browser edge, version 4.33.0, build date 20250606, namespace selenium\nSelenium Grid version -> 4.33.0-20250606\nEdge version -> 132.0.2957.140\nShort Edge version -> 132.0\nEdgeDriver version -> 132.0.2957.140\nShort EdgeDriver version -> 132.0\nTagged selenium/node-edge:132.0.2957.140-edgedriver-132.0.2957.140-grid-4.33.0-20250606\nTagged selenium/standalone-edge:132.0.2957.140-edgedriver-132.0.2957.140-grid-4.33.0-20250606\nTagged selenium/node-edge:132.0.2957.140-edgedriver-132.0.2957.140-20250606\nTagged selenium/standalone-edge:132.0.2957.140-edgedriver-132.0.2957.140-20250606\nTagged selenium/node-edge:132.0.2957.140-20250606\nTagged selenium/standalone-edge:132.0.2957.140-20250606\nTagged selenium/node-edge:132.0-edgedriver-132.0-grid-4.33.0-20250606\nTagged selenium/standalone-edge:132.0-edgedriver-132.0-grid-4.33.0-20250606\nTagged selenium/node-edge:132.0-edgedriver-132.0-20250606\nTagged selenium/standalone-edge:132.0-edgedriver-132.0-20250606\nTagged selenium/node-edge:132.0-20250606\nTagged selenium/standalone-edge:132.0-20250606\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.33.0/edge_133.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.33.0 20250606 selenium false edge true\nTagging images for browser edge, version 4.33.0, build date 20250606, namespace selenium\nSelenium Grid version -> 4.33.0-20250606\nEdge version -> 133.0.3065.92\nShort Edge version -> 133.0\nEdgeDriver version -> 133.0.3065.92\nShort EdgeDriver version -> 133.0\nTagged selenium/node-edge:133.0.3065.92-edgedriver-133.0.3065.92-grid-4.33.0-20250606\nTagged selenium/standalone-edge:133.0.3065.92-edgedriver-133.0.3065.92-grid-4.33.0-20250606\nTagged selenium/node-edge:133.0.3065.92-edgedriver-133.0.3065.92-20250606\nTagged selenium/standalone-edge:133.0.3065.92-edgedriver-133.0.3065.92-20250606\nTagged selenium/node-edge:133.0.3065.92-20250606\nTagged selenium/standalone-edge:133.0.3065.92-20250606\nTagged selenium/node-edge:133.0-edgedriver-133.0-grid-4.33.0-20250606\nTagged selenium/standalone-edge:133.0-edgedriver-133.0-grid-4.33.0-20250606\nTagged selenium/node-edge:133.0-edgedriver-133.0-20250606\nTagged selenium/standalone-edge:133.0-edgedriver-133.0-20250606\nTagged selenium/node-edge:133.0-20250606\nTagged selenium/standalone-edge:133.0-20250606\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.33.0/edge_134.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.33.0 20250606 selenium false edge true\nTagging images for browser edge, version 4.33.0, build date 20250606, namespace selenium\nSelenium Grid version -> 4.33.0-20250606\nEdge version -> 134.0.3124.95\nShort Edge version -> 134.0\nEdgeDriver version -> 134.0.3124.95\nShort EdgeDriver version -> 134.0\nTagged selenium/node-edge:134.0.3124.95-edgedriver-134.0.3124.95-grid-4.33.0-20250606\nTagged selenium/standalone-edge:134.0.3124.95-edgedriver-134.0.3124.95-grid-4.33.0-20250606\nTagged selenium/node-edge:134.0.3124.95-edgedriver-134.0.3124.95-20250606\nTagged selenium/standalone-edge:134.0.3124.95-edgedriver-134.0.3124.95-20250606\nTagged selenium/node-edge:134.0.3124.95-20250606\nTagged selenium/standalone-edge:134.0.3124.95-20250606\nTagged selenium/node-edge:134.0-edgedriver-134.0-grid-4.33.0-20250606\nTagged selenium/standalone-edge:134.0-edgedriver-134.0-grid-4.33.0-20250606\nTagged selenium/node-edge:134.0-edgedriver-134.0-20250606\nTagged selenium/standalone-edge:134.0-edgedriver-134.0-20250606\nTagged selenium/node-edge:134.0-20250606\nTagged selenium/standalone-edge:134.0-20250606\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.33.0/edge_135.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.33.0 20250606 selenium false edge true\nTagging images for browser edge, version 4.33.0, build date 20250606, namespace selenium\nSelenium Grid version -> 4.33.0-20250606\nEdge version -> 135.0.3179.98\nShort Edge version -> 135.0\nEdgeDriver version -> 135.0.3179.98\nShort EdgeDriver version -> 135.0\nTagged selenium/node-edge:135.0.3179.98-edgedriver-135.0.3179.98-grid-4.33.0-20250606\nTagged selenium/standalone-edge:135.0.3179.98-edgedriver-135.0.3179.98-grid-4.33.0-20250606\nTagged selenium/node-edge:135.0.3179.98-edgedriver-135.0.3179.98-20250606\nTagged selenium/standalone-edge:135.0.3179.98-edgedriver-135.0.3179.98-20250606\nTagged selenium/node-edge:135.0.3179.98-20250606\nTagged selenium/standalone-edge:135.0.3179.98-20250606\nTagged selenium/node-edge:135.0-edgedriver-135.0-grid-4.33.0-20250606\nTagged selenium/standalone-edge:135.0-edgedriver-135.0-grid-4.33.0-20250606\nTagged selenium/node-edge:135.0-edgedriver-135.0-20250606\nTagged selenium/standalone-edge:135.0-edgedriver-135.0-20250606\nTagged selenium/node-edge:135.0-20250606\nTagged selenium/standalone-edge:135.0-20250606\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.33.0/edge_136.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.33.0 20250606 selenium false edge true\nTagging images for browser edge, version 4.33.0, build date 20250606, namespace selenium\nSelenium Grid version -> 4.33.0-20250606\nEdge version -> 136.0.3240.92\nShort Edge version -> 136.0\nEdgeDriver version -> 136.0.3240.92\nShort EdgeDriver version -> 136.0\nTagged selenium/node-edge:136.0.3240.92-edgedriver-136.0.3240.92-grid-4.33.0-20250606\nTagged selenium/standalone-edge:136.0.3240.92-edgedriver-136.0.3240.92-grid-4.33.0-20250606\nTagged selenium/node-edge:136.0.3240.92-edgedriver-136.0.3240.92-20250606\nTagged selenium/standalone-edge:136.0.3240.92-edgedriver-136.0.3240.92-20250606\nTagged selenium/node-edge:136.0.3240.92-20250606\nTagged selenium/standalone-edge:136.0.3240.92-20250606\nTagged selenium/node-edge:136.0-edgedriver-136.0-grid-4.33.0-20250606\nTagged selenium/standalone-edge:136.0-edgedriver-136.0-grid-4.33.0-20250606\nTagged selenium/node-edge:136.0-edgedriver-136.0-20250606\nTagged selenium/standalone-edge:136.0-edgedriver-136.0-20250606\nTagged selenium/node-edge:136.0-20250606\nTagged selenium/standalone-edge:136.0-20250606\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.33.0/firefox_100.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.33.0 20250606 selenium false firefox true\nTagging images for browser firefox, version 4.33.0, build date 20250606, namespace selenium\nSelenium Grid version -> 4.33.0-20250606\nFirefox version -> 100.0.2\nShort Firefox version -> 100.0\nGeckoDriver version -> 0.36.0\nShort GeckoDriver version -> 0.36\nTagged selenium/node-firefox:100.0.2-geckodriver-0.36.0-grid-4.33.0-20250606\nTagged selenium/standalone-firefox:100.0.2-geckodriver-0.36.0-grid-4.33.0-20250606\nTagged selenium/node-firefox:100.0.2-geckodriver-0.36.0-20250606\nTagged selenium/standalone-firefox:100.0.2-geckodriver-0.36.0-20250606\nTagged selenium/node-firefox:100.0.2-20250606\nTagged selenium/standalone-firefox:100.0.2-20250606\nTagged selenium/node-firefox:100.0-geckodriver-0.36-grid-4.33.0-20250606\nTagged selenium/standalone-firefox:100.0-geckodriver-0.36-grid-4.33.0-20250606\nTagged selenium/node-firefox:100.0-geckodriver-0.36-20250606\nTagged selenium/standalone-firefox:100.0-geckodriver-0.36-20250606\nTagged selenium/node-firefox:100.0-20250606\nTagged selenium/standalone-firefox:100.0-20250606\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.33.0/firefox_101.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.33.0 20250606 selenium false firefox true\nTagging images for browser firefox, version 4.33.0, build date 20250606, namespace selenium\nSelenium Grid version -> 4.33.0-20250606\nFirefox version -> 101.0.1\nShort Firefox version -> 101.0\nGeckoDriver version -> 0.36.0\nShort GeckoDriver version -> 0.36\nTagged selenium/node-firefox:101.0.1-geckodriver-0.36.0-grid-4.33.0-20250606\nTagged selenium/standalone-firefox:101.0.1-geckodriver-0.36.0-grid-4.33.0-20250606\nTagged selenium/node-firefox:101.0.1-geckodriver-0.36.0-20250606\nTagged selenium/standalone-firefox:101.0.1-geckodriver-0.36.0-20250606\nTagged selenium/node-firefox:101.0.1-20250606\nTagged selenium/standalone-firefox:101.0.1-20250606\nTagged selenium/node-firefox:101.0-geckodriver-0.36-grid-4.33.0-20250606\nTagged selenium/standalone-firefox:101.0-geckodriver-0.36-grid-4.33.0-20250606\nTagged selenium/node-firefox:101.0-geckodriver-0.36-20250606\nTagged selenium/standalone-firefox:101.0-geckodriver-0.36-20250606\nTagged selenium/node-firefox:101.0-20250606\nTagged selenium/standalone-firefox:101.0-20250606\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.33.0/firefox_102.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.33.0 20250606 selenium false firefox true\nTagging images for browser firefox, version 4.33.0, build date 20250606, namespace selenium\nSelenium Grid version -> 4.33.0-20250606\nFirefox version -> 102.0.1\nShort Firefox version -> 102.0\nGeckoDriver version -> 0.36.0\nShort GeckoDriver version -> 0.36\nTagged selenium/node-firefox:102.0.1-geckodriver-0.36.0-grid-4.33.0-20250606\nTagged selenium/standalone-firefox:102.0.1-geckodriver-0.36.0-grid-4.33.0-20250606\nTagged selenium/node-firefox:102.0.1-geckodriver-0.36.0-20250606\nTagged selenium/standalone-firefox:102.0.1-geckodriver-0.36.0-20250606\nTagged selenium/node-firefox:102.0.1-20250606\nTagged selenium/standalone-firefox:102.0.1-20250606\nTagged selenium/node-firefox:102.0-geckodriver-0.36-grid-4.33.0-20250606\nTagged selenium/standalone-firefox:102.0-geckodriver-0.36-grid-4.33.0-20250606\nTagged selenium/node-firefox:102.0-geckodriver-0.36-20250606\nTagged selenium/standalone-firefox:102.0-geckodriver-0.36-20250606\nTagged selenium/node-firefox:102.0-20250606\nTagged selenium/standalone-firefox:102.0-20250606\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.33.0/firefox_103.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.33.0 20250606 selenium false firefox true\nTagging images for browser firefox, version 4.33.0, build date 20250606, namespace selenium\nSelenium Grid version -> 4.33.0-20250606\nFirefox version -> 103.0.2\nShort Firefox version -> 103.0\nGeckoDriver version -> 0.36.0\nShort GeckoDriver version -> 0.36\nTagged selenium/node-firefox:103.0.2-geckodriver-0.36.0-grid-4.33.0-20250606\nTagged selenium/standalone-firefox:103.0.2-geckodriver-0.36.0-grid-4.33.0-20250606\nTagged selenium/node-firefox:103.0.2-geckodriver-0.36.0-20250606\nTagged selenium/standalone-firefox:103.0.2-geckodriver-0.36.0-20250606\nTagged selenium/node-firefox:103.0.2-20250606\nTagged selenium/standalone-firefox:103.0.2-20250606\nTagged selenium/node-firefox:103.0-geckodriver-0.36-grid-4.33.0-20250606\nTagged selenium/standalone-firefox:103.0-geckodriver-0.36-grid-4.33.0-20250606\nTagged selenium/node-firefox:103.0-geckodriver-0.36-20250606\nTagged selenium/standalone-firefox:103.0-geckodriver-0.36-20250606\nTagged selenium/node-firefox:103.0-20250606\nTagged selenium/standalone-firefox:103.0-20250606\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.33.0/firefox_104.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.33.0 20250606 selenium false firefox true\nTagging images for browser firefox, version 4.33.0, build date 20250606, namespace selenium\nSelenium Grid version -> 4.33.0-20250606\nFirefox version -> 104.0.2\nShort Firefox version -> 104.0\nGeckoDriver version -> 0.36.0\nShort GeckoDriver version -> 0.36\nTagged selenium/node-firefox:104.0.2-geckodriver-0.36.0-grid-4.33.0-20250606\nTagged selenium/standalone-firefox:104.0.2-geckodriver-0.36.0-grid-4.33.0-20250606\nTagged selenium/node-firefox:104.0.2-geckodriver-0.36.0-20250606\nTagged selenium/standalone-firefox:104.0.2-geckodriver-0.36.0-20250606\nTagged selenium/node-firefox:104.0.2-20250606\nTagged selenium/standalone-firefox:104.0.2-20250606\nTagged selenium/node-firefox:104.0-geckodriver-0.36-grid-4.33.0-20250606\nTagged selenium/standalone-firefox:104.0-geckodriver-0.36-grid-4.33.0-20250606\nTagged selenium/node-firefox:104.0-geckodriver-0.36-20250606\nTagged selenium/standalone-firefox:104.0-geckodriver-0.36-20250606\nTagged selenium/node-firefox:104.0-20250606\nTagged selenium/standalone-firefox:104.0-20250606\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.33.0/firefox_105.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.33.0 20250606 selenium false firefox true\nTagging images for browser firefox, version 4.33.0, build date 20250606, namespace selenium\nSelenium Grid version -> 4.33.0-20250606\nFirefox version -> 105.0.3\nShort Firefox version -> 105.0\nGeckoDriver version -> 0.36.0\nShort GeckoDriver version -> 0.36\nTagged selenium/node-firefox:105.0.3-geckodriver-0.36.0-grid-4.33.0-20250606\nTagged selenium/standalone-firefox:105.0.3-geckodriver-0.36.0-grid-4.33.0-20250606\nTagged selenium/node-firefox:105.0.3-geckodriver-0.36.0-20250606\nTagged selenium/standalone-firefox:105.0.3-geckodriver-0.36.0-20250606\nTagged selenium/node-firefox:105.0.3-20250606\nTagged selenium/standalone-firefox:105.0.3-20250606\nTagged selenium/node-firefox:105.0-geckodriver-0.36-grid-4.33.0-20250606\nTagged selenium/standalone-firefox:105.0-geckodriver-0.36-grid-4.33.0-20250606\nTagged selenium/node-firefox:105.0-geckodriver-0.36-20250606\nTagged selenium/standalone-firefox:105.0-geckodriver-0.36-20250606\nTagged selenium/node-firefox:105.0-20250606\nTagged selenium/standalone-firefox:105.0-20250606\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.33.0/firefox_106.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.33.0 20250606 selenium false firefox true\nTagging images for browser firefox, version 4.33.0, build date 20250606, namespace selenium\nSelenium Grid version -> 4.33.0-20250606\nFirefox version -> 106.0.5\nShort Firefox version -> 106.0\nGeckoDriver version -> 0.36.0\nShort GeckoDriver version -> 0.36\nTagged selenium/node-firefox:106.0.5-geckodriver-0.36.0-grid-4.33.0-20250606\nTagged selenium/standalone-firefox:106.0.5-geckodriver-0.36.0-grid-4.33.0-20250606\nTagged selenium/node-firefox:106.0.5-geckodriver-0.36.0-20250606\nTagged selenium/standalone-firefox:106.0.5-geckodriver-0.36.0-20250606\nTagged selenium/node-firefox:106.0.5-20250606\nTagged selenium/standalone-firefox:106.0.5-20250606\nTagged selenium/node-firefox:106.0-geckodriver-0.36-grid-4.33.0-20250606\nTagged selenium/standalone-firefox:106.0-geckodriver-0.36-grid-4.33.0-20250606\nTagged selenium/node-firefox:106.0-geckodriver-0.36-20250606\nTagged selenium/standalone-firefox:106.0-geckodriver-0.36-20250606\nTagged selenium/node-firefox:106.0-20250606\nTagged selenium/standalone-firefox:106.0-20250606\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.33.0/firefox_107.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.33.0 20250606 selenium false firefox true\nTagging images for browser firefox, version 4.33.0, build date 20250606, namespace selenium\nSelenium Grid version -> 4.33.0-20250606\nFirefox version -> 107.0.1\nShort Firefox version -> 107.0\nGeckoDriver version -> 0.36.0\nShort GeckoDriver version -> 0.36\nTagged selenium/node-firefox:107.0.1-geckodriver-0.36.0-grid-4.33.0-20250606\nTagged selenium/standalone-firefox:107.0.1-geckodriver-0.36.0-grid-4.33.0-20250606\nTagged selenium/node-firefox:107.0.1-geckodriver-0.36.0-20250606\nTagged selenium/standalone-firefox:107.0.1-geckodriver-0.36.0-20250606\nTagged selenium/node-firefox:107.0.1-20250606\nTagged selenium/standalone-firefox:107.0.1-20250606\nTagged selenium/node-firefox:107.0-geckodriver-0.36-grid-4.33.0-20250606\nTagged selenium/standalone-firefox:107.0-geckodriver-0.36-grid-4.33.0-20250606\nTagged selenium/node-firefox:107.0-geckodriver-0.36-20250606\nTagged selenium/standalone-firefox:107.0-geckodriver-0.36-20250606\nTagged selenium/node-firefox:107.0-20250606\nTagged selenium/standalone-firefox:107.0-20250606\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.33.0/firefox_108.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.33.0 20250606 selenium false firefox true\nTagging images for browser firefox, version 4.33.0, build date 20250606, namespace selenium\nSelenium Grid version -> 4.33.0-20250606\nFirefox version -> 108.0.2\nShort Firefox version -> 108.0\nGeckoDriver version -> 0.36.0\nShort GeckoDriver version -> 0.36\nTagged selenium/node-firefox:108.0.2-geckodriver-0.36.0-grid-4.33.0-20250606\nTagged selenium/standalone-firefox:108.0.2-geckodriver-0.36.0-grid-4.33.0-20250606\nTagged selenium/node-firefox:108.0.2-geckodriver-0.36.0-20250606\nTagged selenium/standalone-firefox:108.0.2-geckodriver-0.36.0-20250606\nTagged selenium/node-firefox:108.0.2-20250606\nTagged selenium/standalone-firefox:108.0.2-20250606\nTagged selenium/node-firefox:108.0-geckodriver-0.36-grid-4.33.0-20250606\nTagged selenium/standalone-firefox:108.0-geckodriver-0.36-grid-4.33.0-20250606\nTagged selenium/node-firefox:108.0-geckodriver-0.36-20250606\nTagged selenium/standalone-firefox:108.0-geckodriver-0.36-20250606\nTagged selenium/node-firefox:108.0-20250606\nTagged selenium/standalone-firefox:108.0-20250606\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.33.0/firefox_109.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.33.0 20250606 selenium false firefox true\nTagging images for browser firefox, version 4.33.0, build date 20250606, namespace selenium\nSelenium Grid version -> 4.33.0-20250606\nFirefox version -> 109.0.1\nShort Firefox version -> 109.0\nGeckoDriver version -> 0.36.0\nShort GeckoDriver version -> 0.36\nTagged selenium/node-firefox:109.0.1-geckodriver-0.36.0-grid-4.33.0-20250606\nTagged selenium/standalone-firefox:109.0.1-geckodriver-0.36.0-grid-4.33.0-20250606\nTagged selenium/node-firefox:109.0.1-geckodriver-0.36.0-20250606\nTagged selenium/standalone-firefox:109.0.1-geckodriver-0.36.0-20250606\nTagged selenium/node-firefox:109.0.1-20250606\nTagged selenium/standalone-firefox:109.0.1-20250606\nTagged selenium/node-firefox:109.0-geckodriver-0.36-grid-4.33.0-20250606\nTagged selenium/standalone-firefox:109.0-geckodriver-0.36-grid-4.33.0-20250606\nTagged selenium/node-firefox:109.0-geckodriver-0.36-20250606\nTagged selenium/standalone-firefox:109.0-geckodriver-0.36-20250606\nTagged selenium/node-firefox:109.0-20250606\nTagged selenium/standalone-firefox:109.0-20250606\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.33.0/firefox_110.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.33.0 20250606 selenium false firefox true\nTagging images for browser firefox, version 4.33.0, build date 20250606, namespace selenium\nSelenium Grid version -> 4.33.0-20250606\nFirefox version -> 110.0.1\nShort Firefox version -> 110.0\nGeckoDriver version -> 0.36.0\nShort GeckoDriver version -> 0.36\nTagged selenium/node-firefox:110.0.1-geckodriver-0.36.0-grid-4.33.0-20250606\nTagged selenium/standalone-firefox:110.0.1-geckodriver-0.36.0-grid-4.33.0-20250606\nTagged selenium/node-firefox:110.0.1-geckodriver-0.36.0-20250606\nTagged selenium/standalone-firefox:110.0.1-geckodriver-0.36.0-20250606\nTagged selenium/node-firefox:110.0.1-20250606\nTagged selenium/standalone-firefox:110.0.1-20250606\nTagged selenium/node-firefox:110.0-geckodriver-0.36-grid-4.33.0-20250606\nTagged selenium/standalone-firefox:110.0-geckodriver-0.36-grid-4.33.0-20250606\nTagged selenium/node-firefox:110.0-geckodriver-0.36-20250606\nTagged selenium/standalone-firefox:110.0-geckodriver-0.36-20250606\nTagged selenium/node-firefox:110.0-20250606\nTagged selenium/standalone-firefox:110.0-20250606\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.33.0/firefox_111.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.33.0 20250606 selenium false firefox true\nTagging images for browser firefox, version 4.33.0, build date 20250606, namespace selenium\nSelenium Grid version -> 4.33.0-20250606\nFirefox version -> 111.0.1\nShort Firefox version -> 111.0\nGeckoDriver version -> 0.36.0\nShort GeckoDriver version -> 0.36\nTagged selenium/node-firefox:111.0.1-geckodriver-0.36.0-grid-4.33.0-20250606\nTagged selenium/standalone-firefox:111.0.1-geckodriver-0.36.0-grid-4.33.0-20250606\nTagged selenium/node-firefox:111.0.1-geckodriver-0.36.0-20250606\nTagged selenium/standalone-firefox:111.0.1-geckodriver-0.36.0-20250606\nTagged selenium/node-firefox:111.0.1-20250606\nTagged selenium/standalone-firefox:111.0.1-20250606\nTagged selenium/node-firefox:111.0-geckodriver-0.36-grid-4.33.0-20250606\nTagged selenium/standalone-firefox:111.0-geckodriver-0.36-grid-4.33.0-20250606\nTagged selenium/node-firefox:111.0-geckodriver-0.36-20250606\nTagged selenium/standalone-firefox:111.0-geckodriver-0.36-20250606\nTagged selenium/node-firefox:111.0-20250606\nTagged selenium/standalone-firefox:111.0-20250606\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.33.0/firefox_112.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.33.0 20250606 selenium false firefox true\nTagging images for browser firefox, version 4.33.0, build date 20250606, namespace selenium\nSelenium Grid version -> 4.33.0-20250606\nFirefox version -> 112.0.2\nShort Firefox version -> 112.0\nGeckoDriver version -> 0.36.0\nShort GeckoDriver version -> 0.36\nTagged selenium/node-firefox:112.0.2-geckodriver-0.36.0-grid-4.33.0-20250606\nTagged selenium/standalone-firefox:112.0.2-geckodriver-0.36.0-grid-4.33.0-20250606\nTagged selenium/node-firefox:112.0.2-geckodriver-0.36.0-20250606\nTagged selenium/standalone-firefox:112.0.2-geckodriver-0.36.0-20250606\nTagged selenium/node-firefox:112.0.2-20250606\nTagged selenium/standalone-firefox:112.0.2-20250606\nTagged selenium/node-firefox:112.0-geckodriver-0.36-grid-4.33.0-20250606\nTagged selenium/standalone-firefox:112.0-geckodriver-0.36-grid-4.33.0-20250606\nTagged selenium/node-firefox:112.0-geckodriver-0.36-20250606\nTagged selenium/standalone-firefox:112.0-geckodriver-0.36-20250606\nTagged selenium/node-firefox:112.0-20250606\nTagged selenium/standalone-firefox:112.0-20250606\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.33.0/firefox_113.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.33.0 20250606 selenium false firefox true\nTagging images for browser firefox, version 4.33.0, build date 20250606, namespace selenium\nSelenium Grid version -> 4.33.0-20250606\nFirefox version -> 113.0.2\nShort Firefox version -> 113.0\nGeckoDriver version -> 0.36.0\nShort GeckoDriver version -> 0.36\nTagged selenium/node-firefox:113.0.2-geckodriver-0.36.0-grid-4.33.0-20250606\nTagged selenium/standalone-firefox:113.0.2-geckodriver-0.36.0-grid-4.33.0-20250606\nTagged selenium/node-firefox:113.0.2-geckodriver-0.36.0-20250606\nTagged selenium/standalone-firefox:113.0.2-geckodriver-0.36.0-20250606\nTagged selenium/node-firefox:113.0.2-20250606\nTagged selenium/standalone-firefox:113.0.2-20250606\nTagged selenium/node-firefox:113.0-geckodriver-0.36-grid-4.33.0-20250606\nTagged selenium/standalone-firefox:113.0-geckodriver-0.36-grid-4.33.0-20250606\nTagged selenium/node-firefox:113.0-geckodriver-0.36-20250606\nTagged selenium/standalone-firefox:113.0-geckodriver-0.36-20250606\nTagged selenium/node-firefox:113.0-20250606\nTagged selenium/standalone-firefox:113.0-20250606\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.33.0/firefox_114.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.33.0 20250606 selenium false firefox true\nTagging images for browser firefox, version 4.33.0, build date 20250606, namespace selenium\nSelenium Grid version -> 4.33.0-20250606\nFirefox version -> 114.0.2\nShort Firefox version -> 114.0\nGeckoDriver version -> 0.36.0\nShort GeckoDriver version -> 0.36\nTagged selenium/node-firefox:114.0.2-geckodriver-0.36.0-grid-4.33.0-20250606\nTagged selenium/standalone-firefox:114.0.2-geckodriver-0.36.0-grid-4.33.0-20250606\nTagged selenium/node-firefox:114.0.2-geckodriver-0.36.0-20250606\nTagged selenium/standalone-firefox:114.0.2-geckodriver-0.36.0-20250606\nTagged selenium/node-firefox:114.0.2-20250606\nTagged selenium/standalone-firefox:114.0.2-20250606\nTagged selenium/node-firefox:114.0-geckodriver-0.36-grid-4.33.0-20250606\nTagged selenium/standalone-firefox:114.0-geckodriver-0.36-grid-4.33.0-20250606\nTagged selenium/node-firefox:114.0-geckodriver-0.36-20250606\nTagged selenium/standalone-firefox:114.0-geckodriver-0.36-20250606\nTagged selenium/node-firefox:114.0-20250606\nTagged selenium/standalone-firefox:114.0-20250606\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.33.0/firefox_115.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.33.0 20250606 selenium false firefox true\nTagging images for browser firefox, version 4.33.0, build date 20250606, namespace selenium\nSelenium Grid version -> 4.33.0-20250606\nFirefox version -> 115.0.3\nShort Firefox version -> 115.0\nGeckoDriver version -> 0.36.0\nShort GeckoDriver version -> 0.36\nTagged selenium/node-firefox:115.0.3-geckodriver-0.36.0-grid-4.33.0-20250606\nTagged selenium/standalone-firefox:115.0.3-geckodriver-0.36.0-grid-4.33.0-20250606\nTagged selenium/node-firefox:115.0.3-geckodriver-0.36.0-20250606\nTagged selenium/standalone-firefox:115.0.3-geckodriver-0.36.0-20250606\nTagged selenium/node-firefox:115.0.3-20250606\nTagged selenium/standalone-firefox:115.0.3-20250606\nTagged selenium/node-firefox:115.0-geckodriver-0.36-grid-4.33.0-20250606\nTagged selenium/standalone-firefox:115.0-geckodriver-0.36-grid-4.33.0-20250606\nTagged selenium/node-firefox:115.0-geckodriver-0.36-20250606\nTagged selenium/standalone-firefox:115.0-geckodriver-0.36-20250606\nTagged selenium/node-firefox:115.0-20250606\nTagged selenium/standalone-firefox:115.0-20250606\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.33.0/firefox_116.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.33.0 20250606 selenium false firefox true\nTagging images for browser firefox, version 4.33.0, build date 20250606, namespace selenium\nSelenium Grid version -> 4.33.0-20250606\nFirefox version -> 116.0.3\nShort Firefox version -> 116.0\nGeckoDriver version -> 0.36.0\nShort GeckoDriver version -> 0.36\nTagged selenium/node-firefox:116.0.3-geckodriver-0.36.0-grid-4.33.0-20250606\nTagged selenium/standalone-firefox:116.0.3-geckodriver-0.36.0-grid-4.33.0-20250606\nTagged selenium/node-firefox:116.0.3-geckodriver-0.36.0-20250606\nTagged selenium/standalone-firefox:116.0.3-geckodriver-0.36.0-20250606\nTagged selenium/node-firefox:116.0.3-20250606\nTagged selenium/standalone-firefox:116.0.3-20250606\nTagged selenium/node-firefox:116.0-geckodriver-0.36-grid-4.33.0-20250606\nTagged selenium/standalone-firefox:116.0-geckodriver-0.36-grid-4.33.0-20250606\nTagged selenium/node-firefox:116.0-geckodriver-0.36-20250606\nTagged selenium/standalone-firefox:116.0-geckodriver-0.36-20250606\nTagged selenium/node-firefox:116.0-20250606\nTagged selenium/standalone-firefox:116.0-20250606\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.33.0/firefox_117.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.33.0 20250606 selenium false firefox true\nTagging images for browser firefox, version 4.33.0, build date 20250606, namespace selenium\nSelenium Grid version -> 4.33.0-20250606\nFirefox version -> 117.0.1\nShort Firefox version -> 117.0\nGeckoDriver version -> 0.36.0\nShort GeckoDriver version -> 0.36\nTagged selenium/node-firefox:117.0.1-geckodriver-0.36.0-grid-4.33.0-20250606\nTagged selenium/standalone-firefox:117.0.1-geckodriver-0.36.0-grid-4.33.0-20250606\nTagged selenium/node-firefox:117.0.1-geckodriver-0.36.0-20250606\nTagged selenium/standalone-firefox:117.0.1-geckodriver-0.36.0-20250606\nTagged selenium/node-firefox:117.0.1-20250606\nTagged selenium/standalone-firefox:117.0.1-20250606\nTagged selenium/node-firefox:117.0-geckodriver-0.36-grid-4.33.0-20250606\nTagged selenium/standalone-firefox:117.0-geckodriver-0.36-grid-4.33.0-20250606\nTagged selenium/node-firefox:117.0-geckodriver-0.36-20250606\nTagged selenium/standalone-firefox:117.0-geckodriver-0.36-20250606\nTagged selenium/node-firefox:117.0-20250606\nTagged selenium/standalone-firefox:117.0-20250606\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.33.0/firefox_118.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.33.0 20250606 selenium false firefox true\nTagging images for browser firefox, version 4.33.0, build date 20250606, namespace selenium\nSelenium Grid version -> 4.33.0-20250606\nFirefox version -> 118.0.2\nShort Firefox version -> 118.0\nGeckoDriver version -> 0.36.0\nShort GeckoDriver version -> 0.36\nTagged selenium/node-firefox:118.0.2-geckodriver-0.36.0-grid-4.33.0-20250606\nTagged selenium/standalone-firefox:118.0.2-geckodriver-0.36.0-grid-4.33.0-20250606\nTagged selenium/node-firefox:118.0.2-geckodriver-0.36.0-20250606\nTagged selenium/standalone-firefox:118.0.2-geckodriver-0.36.0-20250606\nTagged selenium/node-firefox:118.0.2-20250606\nTagged selenium/standalone-firefox:118.0.2-20250606\nTagged selenium/node-firefox:118.0-geckodriver-0.36-grid-4.33.0-20250606\nTagged selenium/standalone-firefox:118.0-geckodriver-0.36-grid-4.33.0-20250606\nTagged selenium/node-firefox:118.0-geckodriver-0.36-20250606\nTagged selenium/standalone-firefox:118.0-geckodriver-0.36-20250606\nTagged selenium/node-firefox:118.0-20250606\nTagged selenium/standalone-firefox:118.0-20250606\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.33.0/firefox_119.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.33.0 20250606 selenium false firefox true\nTagging images for browser firefox, version 4.33.0, build date 20250606, namespace selenium\nSelenium Grid version -> 4.33.0-20250606\nFirefox version -> 119.0.1\nShort Firefox version -> 119.0\nGeckoDriver version -> 0.36.0\nShort GeckoDriver version -> 0.36\nTagged selenium/node-firefox:119.0.1-geckodriver-0.36.0-grid-4.33.0-20250606\nTagged selenium/standalone-firefox:119.0.1-geckodriver-0.36.0-grid-4.33.0-20250606\nTagged selenium/node-firefox:119.0.1-geckodriver-0.36.0-20250606\nTagged selenium/standalone-firefox:119.0.1-geckodriver-0.36.0-20250606\nTagged selenium/node-firefox:119.0.1-20250606\nTagged selenium/standalone-firefox:119.0.1-20250606\nTagged selenium/node-firefox:119.0-geckodriver-0.36-grid-4.33.0-20250606\nTagged selenium/standalone-firefox:119.0-geckodriver-0.36-grid-4.33.0-20250606\nTagged selenium/node-firefox:119.0-geckodriver-0.36-20250606\nTagged selenium/standalone-firefox:119.0-geckodriver-0.36-20250606\nTagged selenium/node-firefox:119.0-20250606\nTagged selenium/standalone-firefox:119.0-20250606\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.33.0/firefox_120.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.33.0 20250606 selenium false firefox true\nTagging images for browser firefox, version 4.33.0, build date 20250606, namespace selenium\nSelenium Grid version -> 4.33.0-20250606\nFirefox version -> 120.0.1\nShort Firefox version -> 120.0\nGeckoDriver version -> 0.36.0\nShort GeckoDriver version -> 0.36\nTagged selenium/node-firefox:120.0.1-geckodriver-0.36.0-grid-4.33.0-20250606\nTagged selenium/standalone-firefox:120.0.1-geckodriver-0.36.0-grid-4.33.0-20250606\nTagged selenium/node-firefox:120.0.1-geckodriver-0.36.0-20250606\nTagged selenium/standalone-firefox:120.0.1-geckodriver-0.36.0-20250606\nTagged selenium/node-firefox:120.0.1-20250606\nTagged selenium/standalone-firefox:120.0.1-20250606\nTagged selenium/node-firefox:120.0-geckodriver-0.36-grid-4.33.0-20250606\nTagged selenium/standalone-firefox:120.0-geckodriver-0.36-grid-4.33.0-20250606\nTagged selenium/node-firefox:120.0-geckodriver-0.36-20250606\nTagged selenium/standalone-firefox:120.0-geckodriver-0.36-20250606\nTagged selenium/node-firefox:120.0-20250606\nTagged selenium/standalone-firefox:120.0-20250606\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.33.0/firefox_121.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.33.0 20250606 selenium false firefox true\nTagging images for browser firefox, version 4.33.0, build date 20250606, namespace selenium\nSelenium Grid version -> 4.33.0-20250606\nFirefox version -> 121.0.1\nShort Firefox version -> 121.0\nGeckoDriver version -> 0.36.0\nShort GeckoDriver version -> 0.36\nTagged selenium/node-firefox:121.0.1-geckodriver-0.36.0-grid-4.33.0-20250606\nTagged selenium/standalone-firefox:121.0.1-geckodriver-0.36.0-grid-4.33.0-20250606\nTagged selenium/node-firefox:121.0.1-geckodriver-0.36.0-20250606\nTagged selenium/standalone-firefox:121.0.1-geckodriver-0.36.0-20250606\nTagged selenium/node-firefox:121.0.1-20250606\nTagged selenium/standalone-firefox:121.0.1-20250606\nTagged selenium/node-firefox:121.0-geckodriver-0.36-grid-4.33.0-20250606\nTagged selenium/standalone-firefox:121.0-geckodriver-0.36-grid-4.33.0-20250606\nTagged selenium/node-firefox:121.0-geckodriver-0.36-20250606\nTagged selenium/standalone-firefox:121.0-geckodriver-0.36-20250606\nTagged selenium/node-firefox:121.0-20250606\nTagged selenium/standalone-firefox:121.0-20250606\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.33.0/firefox_122.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.33.0 20250606 selenium false firefox true\nTagging images for browser firefox, version 4.33.0, build date 20250606, namespace selenium\nSelenium Grid version -> 4.33.0-20250606\nFirefox version -> 122.0.1\nShort Firefox version -> 122.0\nGeckoDriver version -> 0.36.0\nShort GeckoDriver version -> 0.36\nTagged selenium/node-firefox:122.0.1-geckodriver-0.36.0-grid-4.33.0-20250606\nTagged selenium/standalone-firefox:122.0.1-geckodriver-0.36.0-grid-4.33.0-20250606\nTagged selenium/node-firefox:122.0.1-geckodriver-0.36.0-20250606\nTagged selenium/standalone-firefox:122.0.1-geckodriver-0.36.0-20250606\nTagged selenium/node-firefox:122.0.1-20250606\nTagged selenium/standalone-firefox:122.0.1-20250606\nTagged selenium/node-firefox:122.0-geckodriver-0.36-grid-4.33.0-20250606\nTagged selenium/standalone-firefox:122.0-geckodriver-0.36-grid-4.33.0-20250606\nTagged selenium/node-firefox:122.0-geckodriver-0.36-20250606\nTagged selenium/standalone-firefox:122.0-geckodriver-0.36-20250606\nTagged selenium/node-firefox:122.0-20250606\nTagged selenium/standalone-firefox:122.0-20250606\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.33.0/firefox_123.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.33.0 20250606 selenium false firefox true\nTagging images for browser firefox, version 4.33.0, build date 20250606, namespace selenium\nSelenium Grid version -> 4.33.0-20250606\nFirefox version -> 123.0.1\nShort Firefox version -> 123.0\nGeckoDriver version -> 0.36.0\nShort GeckoDriver version -> 0.36\nTagged selenium/node-firefox:123.0.1-geckodriver-0.36.0-grid-4.33.0-20250606\nTagged selenium/standalone-firefox:123.0.1-geckodriver-0.36.0-grid-4.33.0-20250606\nTagged selenium/node-firefox:123.0.1-geckodriver-0.36.0-20250606\nTagged selenium/standalone-firefox:123.0.1-geckodriver-0.36.0-20250606\nTagged selenium/node-firefox:123.0.1-20250606\nTagged selenium/standalone-firefox:123.0.1-20250606\nTagged selenium/node-firefox:123.0-geckodriver-0.36-grid-4.33.0-20250606\nTagged selenium/standalone-firefox:123.0-geckodriver-0.36-grid-4.33.0-20250606\nTagged selenium/node-firefox:123.0-geckodriver-0.36-20250606\nTagged selenium/standalone-firefox:123.0-geckodriver-0.36-20250606\nTagged selenium/node-firefox:123.0-20250606\nTagged selenium/standalone-firefox:123.0-20250606\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.33.0/firefox_124.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.33.0 20250606 selenium false firefox true\nTagging images for browser firefox, version 4.33.0, build date 20250606, namespace selenium\nSelenium Grid version -> 4.33.0-20250606\nFirefox version -> 124.0.2\nShort Firefox version -> 124.0\nGeckoDriver version -> 0.36.0\nShort GeckoDriver version -> 0.36\nTagged selenium/node-firefox:124.0.2-geckodriver-0.36.0-grid-4.33.0-20250606\nTagged selenium/standalone-firefox:124.0.2-geckodriver-0.36.0-grid-4.33.0-20250606\nTagged selenium/node-firefox:124.0.2-geckodriver-0.36.0-20250606\nTagged selenium/standalone-firefox:124.0.2-geckodriver-0.36.0-20250606\nTagged selenium/node-firefox:124.0.2-20250606\nTagged selenium/standalone-firefox:124.0.2-20250606\nTagged selenium/node-firefox:124.0-geckodriver-0.36-grid-4.33.0-20250606\nTagged selenium/standalone-firefox:124.0-geckodriver-0.36-grid-4.33.0-20250606\nTagged selenium/node-firefox:124.0-geckodriver-0.36-20250606\nTagged selenium/standalone-firefox:124.0-geckodriver-0.36-20250606\nTagged selenium/node-firefox:124.0-20250606\nTagged selenium/standalone-firefox:124.0-20250606\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.33.0/firefox_125.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.33.0 20250606 selenium false firefox true\nTagging images for browser firefox, version 4.33.0, build date 20250606, namespace selenium\nSelenium Grid version -> 4.33.0-20250606\nFirefox version -> 125.0.3\nShort Firefox version -> 125.0\nGeckoDriver version -> 0.36.0\nShort GeckoDriver version -> 0.36\nTagged selenium/node-firefox:125.0.3-geckodriver-0.36.0-grid-4.33.0-20250606\nTagged selenium/standalone-firefox:125.0.3-geckodriver-0.36.0-grid-4.33.0-20250606\nTagged selenium/node-firefox:125.0.3-geckodriver-0.36.0-20250606\nTagged selenium/standalone-firefox:125.0.3-geckodriver-0.36.0-20250606\nTagged selenium/node-firefox:125.0.3-20250606\nTagged selenium/standalone-firefox:125.0.3-20250606\nTagged selenium/node-firefox:125.0-geckodriver-0.36-grid-4.33.0-20250606\nTagged selenium/standalone-firefox:125.0-geckodriver-0.36-grid-4.33.0-20250606\nTagged selenium/node-firefox:125.0-geckodriver-0.36-20250606\nTagged selenium/standalone-firefox:125.0-geckodriver-0.36-20250606\nTagged selenium/node-firefox:125.0-20250606\nTagged selenium/standalone-firefox:125.0-20250606\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.33.0/firefox_126.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.33.0 20250606 selenium false firefox true\nTagging images for browser firefox, version 4.33.0, build date 20250606, namespace selenium\nSelenium Grid version -> 4.33.0-20250606\nFirefox version -> 126.0.1\nShort Firefox version -> 126.0\nGeckoDriver version -> 0.36.0\nShort GeckoDriver version -> 0.36\nTagged selenium/node-firefox:126.0.1-geckodriver-0.36.0-grid-4.33.0-20250606\nTagged selenium/standalone-firefox:126.0.1-geckodriver-0.36.0-grid-4.33.0-20250606\nTagged selenium/node-firefox:126.0.1-geckodriver-0.36.0-20250606\nTagged selenium/standalone-firefox:126.0.1-geckodriver-0.36.0-20250606\nTagged selenium/node-firefox:126.0.1-20250606\nTagged selenium/standalone-firefox:126.0.1-20250606\nTagged selenium/node-firefox:126.0-geckodriver-0.36-grid-4.33.0-20250606\nTagged selenium/standalone-firefox:126.0-geckodriver-0.36-grid-4.33.0-20250606\nTagged selenium/node-firefox:126.0-geckodriver-0.36-20250606\nTagged selenium/standalone-firefox:126.0-geckodriver-0.36-20250606\nTagged selenium/node-firefox:126.0-20250606\nTagged selenium/standalone-firefox:126.0-20250606\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.33.0/firefox_127.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.33.0 20250606 selenium false firefox true\nTagging images for browser firefox, version 4.33.0, build date 20250606, namespace selenium\nSelenium Grid version -> 4.33.0-20250606\nFirefox version -> 127.0.2\nShort Firefox version -> 127.0\nGeckoDriver version -> 0.36.0\nShort GeckoDriver version -> 0.36\nTagged selenium/node-firefox:127.0.2-geckodriver-0.36.0-grid-4.33.0-20250606\nTagged selenium/standalone-firefox:127.0.2-geckodriver-0.36.0-grid-4.33.0-20250606\nTagged selenium/node-firefox:127.0.2-geckodriver-0.36.0-20250606\nTagged selenium/standalone-firefox:127.0.2-geckodriver-0.36.0-20250606\nTagged selenium/node-firefox:127.0.2-20250606\nTagged selenium/standalone-firefox:127.0.2-20250606\nTagged selenium/node-firefox:127.0-geckodriver-0.36-grid-4.33.0-20250606\nTagged selenium/standalone-firefox:127.0-geckodriver-0.36-grid-4.33.0-20250606\nTagged selenium/node-firefox:127.0-geckodriver-0.36-20250606\nTagged selenium/standalone-firefox:127.0-geckodriver-0.36-20250606\nTagged selenium/node-firefox:127.0-20250606\nTagged selenium/standalone-firefox:127.0-20250606\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.33.0/firefox_128.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.33.0 20250606 selenium false firefox true\nTagging images for browser firefox, version 4.33.0, build date 20250606, namespace selenium\nSelenium Grid version -> 4.33.0-20250606\nFirefox version -> 128.0.3\nShort Firefox version -> 128.0\nGeckoDriver version -> 0.36.0\nShort GeckoDriver version -> 0.36\nTagged selenium/node-firefox:128.0.3-geckodriver-0.36.0-grid-4.33.0-20250606\nTagged selenium/standalone-firefox:128.0.3-geckodriver-0.36.0-grid-4.33.0-20250606\nTagged selenium/node-firefox:128.0.3-geckodriver-0.36.0-20250606\nTagged selenium/standalone-firefox:128.0.3-geckodriver-0.36.0-20250606\nTagged selenium/node-firefox:128.0.3-20250606\nTagged selenium/standalone-firefox:128.0.3-20250606\nTagged selenium/node-firefox:128.0-geckodriver-0.36-grid-4.33.0-20250606\nTagged selenium/standalone-firefox:128.0-geckodriver-0.36-grid-4.33.0-20250606\nTagged selenium/node-firefox:128.0-geckodriver-0.36-20250606\nTagged selenium/standalone-firefox:128.0-geckodriver-0.36-20250606\nTagged selenium/node-firefox:128.0-20250606\nTagged selenium/standalone-firefox:128.0-20250606\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.33.0/firefox_129.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.33.0 20250606 selenium false firefox true\nTagging images for browser firefox, version 4.33.0, build date 20250606, namespace selenium\nSelenium Grid version -> 4.33.0-20250606\nFirefox version -> 129.0.2\nShort Firefox version -> 129.0\nGeckoDriver version -> 0.36.0\nShort GeckoDriver version -> 0.36\nTagged selenium/node-firefox:129.0.2-geckodriver-0.36.0-grid-4.33.0-20250606\nTagged selenium/standalone-firefox:129.0.2-geckodriver-0.36.0-grid-4.33.0-20250606\nTagged selenium/node-firefox:129.0.2-geckodriver-0.36.0-20250606\nTagged selenium/standalone-firefox:129.0.2-geckodriver-0.36.0-20250606\nTagged selenium/node-firefox:129.0.2-20250606\nTagged selenium/standalone-firefox:129.0.2-20250606\nTagged selenium/node-firefox:129.0-geckodriver-0.36-grid-4.33.0-20250606\nTagged selenium/standalone-firefox:129.0-geckodriver-0.36-grid-4.33.0-20250606\nTagged selenium/node-firefox:129.0-geckodriver-0.36-20250606\nTagged selenium/standalone-firefox:129.0-geckodriver-0.36-20250606\nTagged selenium/node-firefox:129.0-20250606\nTagged selenium/standalone-firefox:129.0-20250606\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.33.0/firefox_130.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.33.0 20250606 selenium false firefox true\nTagging images for browser firefox, version 4.33.0, build date 20250606, namespace selenium\nSelenium Grid version -> 4.33.0-20250606\nFirefox version -> 130.0.1\nShort Firefox version -> 130.0\nGeckoDriver version -> 0.36.0\nShort GeckoDriver version -> 0.36\nTagged selenium/node-firefox:130.0.1-geckodriver-0.36.0-grid-4.33.0-20250606\nTagged selenium/standalone-firefox:130.0.1-geckodriver-0.36.0-grid-4.33.0-20250606\nTagged selenium/node-firefox:130.0.1-geckodriver-0.36.0-20250606\nTagged selenium/standalone-firefox:130.0.1-geckodriver-0.36.0-20250606\nTagged selenium/node-firefox:130.0.1-20250606\nTagged selenium/standalone-firefox:130.0.1-20250606\nTagged selenium/node-firefox:130.0-geckodriver-0.36-grid-4.33.0-20250606\nTagged selenium/standalone-firefox:130.0-geckodriver-0.36-grid-4.33.0-20250606\nTagged selenium/node-firefox:130.0-geckodriver-0.36-20250606\nTagged selenium/standalone-firefox:130.0-geckodriver-0.36-20250606\nTagged selenium/node-firefox:130.0-20250606\nTagged selenium/standalone-firefox:130.0-20250606\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.33.0/firefox_131.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.33.0 20250606 selenium false firefox true\nTagging images for browser firefox, version 4.33.0, build date 20250606, namespace selenium\nSelenium Grid version -> 4.33.0-20250606\nFirefox version -> 131.0.3\nShort Firefox version -> 131.0\nGeckoDriver version -> 0.36.0\nShort GeckoDriver version -> 0.36\nTagged selenium/node-firefox:131.0.3-geckodriver-0.36.0-grid-4.33.0-20250606\nTagged selenium/standalone-firefox:131.0.3-geckodriver-0.36.0-grid-4.33.0-20250606\nTagged selenium/node-firefox:131.0.3-geckodriver-0.36.0-20250606\nTagged selenium/standalone-firefox:131.0.3-geckodriver-0.36.0-20250606\nTagged selenium/node-firefox:131.0.3-20250606\nTagged selenium/standalone-firefox:131.0.3-20250606\nTagged selenium/node-firefox:131.0-geckodriver-0.36-grid-4.33.0-20250606\nTagged selenium/standalone-firefox:131.0-geckodriver-0.36-grid-4.33.0-20250606\nTagged selenium/node-firefox:131.0-geckodriver-0.36-20250606\nTagged selenium/standalone-firefox:131.0-geckodriver-0.36-20250606\nTagged selenium/node-firefox:131.0-20250606\nTagged selenium/standalone-firefox:131.0-20250606\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.33.0/firefox_132.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.33.0 20250606 selenium false firefox true\nTagging images for browser firefox, version 4.33.0, build date 20250606, namespace selenium\nSelenium Grid version -> 4.33.0-20250606\nFirefox version -> 132.0.2\nShort Firefox version -> 132.0\nGeckoDriver version -> 0.36.0\nShort GeckoDriver version -> 0.36\nTagged selenium/node-firefox:132.0.2-geckodriver-0.36.0-grid-4.33.0-20250606\nTagged selenium/standalone-firefox:132.0.2-geckodriver-0.36.0-grid-4.33.0-20250606\nTagged selenium/node-firefox:132.0.2-geckodriver-0.36.0-20250606\nTagged selenium/standalone-firefox:132.0.2-geckodriver-0.36.0-20250606\nTagged selenium/node-firefox:132.0.2-20250606\nTagged selenium/standalone-firefox:132.0.2-20250606\nTagged selenium/node-firefox:132.0-geckodriver-0.36-grid-4.33.0-20250606\nTagged selenium/standalone-firefox:132.0-geckodriver-0.36-grid-4.33.0-20250606\nTagged selenium/node-firefox:132.0-geckodriver-0.36-20250606\nTagged selenium/standalone-firefox:132.0-geckodriver-0.36-20250606\nTagged selenium/node-firefox:132.0-20250606\nTagged selenium/standalone-firefox:132.0-20250606\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.33.0/firefox_133.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.33.0 20250606 selenium false firefox true\nTagging images for browser firefox, version 4.33.0, build date 20250606, namespace selenium\nSelenium Grid version -> 4.33.0-20250606\nFirefox version -> 133.0.3\nShort Firefox version -> 133.0\nGeckoDriver version -> 0.36.0\nShort GeckoDriver version -> 0.36\nTagged selenium/node-firefox:133.0.3-geckodriver-0.36.0-grid-4.33.0-20250606\nTagged selenium/standalone-firefox:133.0.3-geckodriver-0.36.0-grid-4.33.0-20250606\nTagged selenium/node-firefox:133.0.3-geckodriver-0.36.0-20250606\nTagged selenium/standalone-firefox:133.0.3-geckodriver-0.36.0-20250606\nTagged selenium/node-firefox:133.0.3-20250606\nTagged selenium/standalone-firefox:133.0.3-20250606\nTagged selenium/node-firefox:133.0-geckodriver-0.36-grid-4.33.0-20250606\nTagged selenium/standalone-firefox:133.0-geckodriver-0.36-grid-4.33.0-20250606\nTagged selenium/node-firefox:133.0-geckodriver-0.36-20250606\nTagged selenium/standalone-firefox:133.0-geckodriver-0.36-20250606\nTagged selenium/node-firefox:133.0-20250606\nTagged selenium/standalone-firefox:133.0-20250606\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.33.0/firefox_134.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.33.0 20250606 selenium false firefox true\nTagging images for browser firefox, version 4.33.0, build date 20250606, namespace selenium\nSelenium Grid version -> 4.33.0-20250606\nFirefox version -> 134.0.2\nShort Firefox version -> 134.0\nGeckoDriver version -> 0.36.0\nShort GeckoDriver version -> 0.36\nTagged selenium/node-firefox:134.0.2-geckodriver-0.36.0-grid-4.33.0-20250606\nTagged selenium/standalone-firefox:134.0.2-geckodriver-0.36.0-grid-4.33.0-20250606\nTagged selenium/node-firefox:134.0.2-geckodriver-0.36.0-20250606\nTagged selenium/standalone-firefox:134.0.2-geckodriver-0.36.0-20250606\nTagged selenium/node-firefox:134.0.2-20250606\nTagged selenium/standalone-firefox:134.0.2-20250606\nTagged selenium/node-firefox:134.0-geckodriver-0.36-grid-4.33.0-20250606\nTagged selenium/standalone-firefox:134.0-geckodriver-0.36-grid-4.33.0-20250606\nTagged selenium/node-firefox:134.0-geckodriver-0.36-20250606\nTagged selenium/standalone-firefox:134.0-geckodriver-0.36-20250606\nTagged selenium/node-firefox:134.0-20250606\nTagged selenium/standalone-firefox:134.0-20250606\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.33.0/firefox_135.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.33.0 20250606 selenium false firefox true\nTagging images for browser firefox, version 4.33.0, build date 20250606, namespace selenium\nSelenium Grid version -> 4.33.0-20250606\nFirefox version -> 135.0.1\nShort Firefox version -> 135.0\nGeckoDriver version -> 0.36.0\nShort GeckoDriver version -> 0.36\nTagged selenium/node-firefox:135.0.1-geckodriver-0.36.0-grid-4.33.0-20250606\nTagged selenium/standalone-firefox:135.0.1-geckodriver-0.36.0-grid-4.33.0-20250606\nTagged selenium/node-firefox:135.0.1-geckodriver-0.36.0-20250606\nTagged selenium/standalone-firefox:135.0.1-geckodriver-0.36.0-20250606\nTagged selenium/node-firefox:135.0.1-20250606\nTagged selenium/standalone-firefox:135.0.1-20250606\nTagged selenium/node-firefox:135.0-geckodriver-0.36-grid-4.33.0-20250606\nTagged selenium/standalone-firefox:135.0-geckodriver-0.36-grid-4.33.0-20250606\nTagged selenium/node-firefox:135.0-geckodriver-0.36-20250606\nTagged selenium/standalone-firefox:135.0-geckodriver-0.36-20250606\nTagged selenium/node-firefox:135.0-20250606\nTagged selenium/standalone-firefox:135.0-20250606\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.33.0/firefox_136.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.33.0 20250606 selenium false firefox true\nTagging images for browser firefox, version 4.33.0, build date 20250606, namespace selenium\nSelenium Grid version -> 4.33.0-20250606\nFirefox version -> 136.0.4\nShort Firefox version -> 136.0\nGeckoDriver version -> 0.36.0\nShort GeckoDriver version -> 0.36\nTagged selenium/node-firefox:136.0.4-geckodriver-0.36.0-grid-4.33.0-20250606\nTagged selenium/standalone-firefox:136.0.4-geckodriver-0.36.0-grid-4.33.0-20250606\nTagged selenium/node-firefox:136.0.4-geckodriver-0.36.0-20250606\nTagged selenium/standalone-firefox:136.0.4-geckodriver-0.36.0-20250606\nTagged selenium/node-firefox:136.0.4-20250606\nTagged selenium/standalone-firefox:136.0.4-20250606\nTagged selenium/node-firefox:136.0-geckodriver-0.36-grid-4.33.0-20250606\nTagged selenium/standalone-firefox:136.0-geckodriver-0.36-grid-4.33.0-20250606\nTagged selenium/node-firefox:136.0-geckodriver-0.36-20250606\nTagged selenium/standalone-firefox:136.0-geckodriver-0.36-20250606\nTagged selenium/node-firefox:136.0-20250606\nTagged selenium/standalone-firefox:136.0-20250606\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.33.0/firefox_137.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.33.0 20250606 selenium false firefox true\nTagging images for browser firefox, version 4.33.0, build date 20250606, namespace selenium\nSelenium Grid version -> 4.33.0-20250606\nFirefox version -> 137.0.2\nShort Firefox version -> 137.0\nGeckoDriver version -> 0.36.0\nShort GeckoDriver version -> 0.36\nTagged selenium/node-firefox:137.0.2-geckodriver-0.36.0-grid-4.33.0-20250606\nTagged selenium/standalone-firefox:137.0.2-geckodriver-0.36.0-grid-4.33.0-20250606\nTagged selenium/node-firefox:137.0.2-geckodriver-0.36.0-20250606\nTagged selenium/standalone-firefox:137.0.2-geckodriver-0.36.0-20250606\nTagged selenium/node-firefox:137.0.2-20250606\nTagged selenium/standalone-firefox:137.0.2-20250606\nTagged selenium/node-firefox:137.0-geckodriver-0.36-grid-4.33.0-20250606\nTagged selenium/standalone-firefox:137.0-geckodriver-0.36-grid-4.33.0-20250606\nTagged selenium/node-firefox:137.0-geckodriver-0.36-20250606\nTagged selenium/standalone-firefox:137.0-geckodriver-0.36-20250606\nTagged selenium/node-firefox:137.0-20250606\nTagged selenium/standalone-firefox:137.0-20250606\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.33.0/firefox_138.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.33.0 20250606 selenium false firefox true\nTagging images for browser firefox, version 4.33.0, build date 20250606, namespace selenium\nSelenium Grid version -> 4.33.0-20250606\nFirefox version -> 138.0.4\nShort Firefox version -> 138.0\nGeckoDriver version -> 0.36.0\nShort GeckoDriver version -> 0.36\nTagged selenium/node-firefox:138.0.4-geckodriver-0.36.0-grid-4.33.0-20250606\nTagged selenium/standalone-firefox:138.0.4-geckodriver-0.36.0-grid-4.33.0-20250606\nTagged selenium/node-firefox:138.0.4-geckodriver-0.36.0-20250606\nTagged selenium/standalone-firefox:138.0.4-geckodriver-0.36.0-20250606\nTagged selenium/node-firefox:138.0.4-20250606\nTagged selenium/standalone-firefox:138.0.4-20250606\nTagged selenium/node-firefox:138.0-geckodriver-0.36-grid-4.33.0-20250606\nTagged selenium/standalone-firefox:138.0-geckodriver-0.36-grid-4.33.0-20250606\nTagged selenium/node-firefox:138.0-geckodriver-0.36-20250606\nTagged selenium/standalone-firefox:138.0-geckodriver-0.36-20250606\nTagged selenium/node-firefox:138.0-20250606\nTagged selenium/standalone-firefox:138.0-20250606\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.33.0/firefox_98.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.33.0 20250606 selenium false firefox true\nTagging images for browser firefox, version 4.33.0, build date 20250606, namespace selenium\nSelenium Grid version -> 4.33.0-20250606\nFirefox version -> 98.0.2\nShort Firefox version -> 98.0\nGeckoDriver version -> 0.36.0\nShort GeckoDriver version -> 0.36\nTagged selenium/node-firefox:98.0.2-geckodriver-0.36.0-grid-4.33.0-20250606\nTagged selenium/standalone-firefox:98.0.2-geckodriver-0.36.0-grid-4.33.0-20250606\nTagged selenium/node-firefox:98.0.2-geckodriver-0.36.0-20250606\nTagged selenium/standalone-firefox:98.0.2-geckodriver-0.36.0-20250606\nTagged selenium/node-firefox:98.0.2-20250606\nTagged selenium/standalone-firefox:98.0.2-20250606\nTagged selenium/node-firefox:98.0-geckodriver-0.36-grid-4.33.0-20250606\nTagged selenium/standalone-firefox:98.0-geckodriver-0.36-grid-4.33.0-20250606\nTagged selenium/node-firefox:98.0-geckodriver-0.36-20250606\nTagged selenium/standalone-firefox:98.0-geckodriver-0.36-20250606\nTagged selenium/node-firefox:98.0-20250606\nTagged selenium/standalone-firefox:98.0-20250606\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.33.0/firefox_99.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.33.0 20250606 selenium false firefox true\nTagging images for browser firefox, version 4.33.0, build date 20250606, namespace selenium\nSelenium Grid version -> 4.33.0-20250606\nFirefox version -> 99.0.1\nShort Firefox version -> 99.0\nGeckoDriver version -> 0.36.0\nShort GeckoDriver version -> 0.36\nTagged selenium/node-firefox:99.0.1-geckodriver-0.36.0-grid-4.33.0-20250606\nTagged selenium/standalone-firefox:99.0.1-geckodriver-0.36.0-grid-4.33.0-20250606\nTagged selenium/node-firefox:99.0.1-geckodriver-0.36.0-20250606\nTagged selenium/standalone-firefox:99.0.1-geckodriver-0.36.0-20250606\nTagged selenium/node-firefox:99.0.1-20250606\nTagged selenium/standalone-firefox:99.0.1-20250606\nTagged selenium/node-firefox:99.0-geckodriver-0.36-grid-4.33.0-20250606\nTagged selenium/standalone-firefox:99.0-geckodriver-0.36-grid-4.33.0-20250606\nTagged selenium/node-firefox:99.0-geckodriver-0.36-20250606\nTagged selenium/standalone-firefox:99.0-geckodriver-0.36-20250606\nTagged selenium/node-firefox:99.0-20250606\nTagged selenium/standalone-firefox:99.0-20250606\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.34.0/chrome_100.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.34.0 20250727 selenium false chrome true\nTagging images for browser chrome, version 4.34.0, build date 20250727, namespace selenium\nSelenium Grid version -> 4.34.0-20250727\nChrome version -> 100.0.4896.127\nShort Chrome version -> 100.0\nChromeDriver version -> 100.0.4896.60\nShort ChromeDriver version -> 100.0\nTagged selenium/node-chrome:100.0.4896.127-chromedriver-100.0.4896.60-grid-4.34.0-20250727\nTagged selenium/standalone-chrome:100.0.4896.127-chromedriver-100.0.4896.60-grid-4.34.0-20250727\nTagged selenium/node-chrome:100.0.4896.127-chromedriver-100.0.4896.60-20250727\nTagged selenium/standalone-chrome:100.0.4896.127-chromedriver-100.0.4896.60-20250727\nTagged selenium/node-chrome:100.0.4896.127-20250727\nTagged selenium/standalone-chrome:100.0.4896.127-20250727\nTagged selenium/node-chrome:100.0-chromedriver-100.0-grid-4.34.0-20250727\nTagged selenium/standalone-chrome:100.0-chromedriver-100.0-grid-4.34.0-20250727\nTagged selenium/node-chrome:100.0-chromedriver-100.0-20250727\nTagged selenium/standalone-chrome:100.0-chromedriver-100.0-20250727\nTagged selenium/node-chrome:100.0-20250727\nTagged selenium/standalone-chrome:100.0-20250727\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.34.0/chrome_101.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.34.0 20250727 selenium false chrome true\nTagging images for browser chrome, version 4.34.0, build date 20250727, namespace selenium\nSelenium Grid version -> 4.34.0-20250727\nChrome version -> 101.0.4951.64\nShort Chrome version -> 101.0\nChromeDriver version -> 101.0.4951.41\nShort ChromeDriver version -> 101.0\nTagged selenium/node-chrome:101.0.4951.64-chromedriver-101.0.4951.41-grid-4.34.0-20250727\nTagged selenium/standalone-chrome:101.0.4951.64-chromedriver-101.0.4951.41-grid-4.34.0-20250727\nTagged selenium/node-chrome:101.0.4951.64-chromedriver-101.0.4951.41-20250727\nTagged selenium/standalone-chrome:101.0.4951.64-chromedriver-101.0.4951.41-20250727\nTagged selenium/node-chrome:101.0.4951.64-20250727\nTagged selenium/standalone-chrome:101.0.4951.64-20250727\nTagged selenium/node-chrome:101.0-chromedriver-101.0-grid-4.34.0-20250727\nTagged selenium/standalone-chrome:101.0-chromedriver-101.0-grid-4.34.0-20250727\nTagged selenium/node-chrome:101.0-chromedriver-101.0-20250727\nTagged selenium/standalone-chrome:101.0-chromedriver-101.0-20250727\nTagged selenium/node-chrome:101.0-20250727\nTagged selenium/standalone-chrome:101.0-20250727\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.34.0/chrome_102.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.34.0 20250727 selenium false chrome true\nTagging images for browser chrome, version 4.34.0, build date 20250727, namespace selenium\nSelenium Grid version -> 4.34.0-20250727\nChrome version -> 102.0.5005.115\nShort Chrome version -> 102.0\nChromeDriver version -> 102.0.5005.61\nShort ChromeDriver version -> 102.0\nTagged selenium/node-chrome:102.0.5005.115-chromedriver-102.0.5005.61-grid-4.34.0-20250727\nTagged selenium/standalone-chrome:102.0.5005.115-chromedriver-102.0.5005.61-grid-4.34.0-20250727\nTagged selenium/node-chrome:102.0.5005.115-chromedriver-102.0.5005.61-20250727\nTagged selenium/standalone-chrome:102.0.5005.115-chromedriver-102.0.5005.61-20250727\nTagged selenium/node-chrome:102.0.5005.115-20250727\nTagged selenium/standalone-chrome:102.0.5005.115-20250727\nTagged selenium/node-chrome:102.0-chromedriver-102.0-grid-4.34.0-20250727\nTagged selenium/standalone-chrome:102.0-chromedriver-102.0-grid-4.34.0-20250727\nTagged selenium/node-chrome:102.0-chromedriver-102.0-20250727\nTagged selenium/standalone-chrome:102.0-chromedriver-102.0-20250727\nTagged selenium/node-chrome:102.0-20250727\nTagged selenium/standalone-chrome:102.0-20250727\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.34.0/chrome_103.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.34.0 20250727 selenium false chrome true\nTagging images for browser chrome, version 4.34.0, build date 20250727, namespace selenium\nSelenium Grid version -> 4.34.0-20250727\nChrome version -> 103.0.5060.134\nShort Chrome version -> 103.0\nChromeDriver version -> 103.0.5060.134\nShort ChromeDriver version -> 103.0\nTagged selenium/node-chrome:103.0.5060.134-chromedriver-103.0.5060.134-grid-4.34.0-20250727\nTagged selenium/standalone-chrome:103.0.5060.134-chromedriver-103.0.5060.134-grid-4.34.0-20250727\nTagged selenium/node-chrome:103.0.5060.134-chromedriver-103.0.5060.134-20250727\nTagged selenium/standalone-chrome:103.0.5060.134-chromedriver-103.0.5060.134-20250727\nTagged selenium/node-chrome:103.0.5060.134-20250727\nTagged selenium/standalone-chrome:103.0.5060.134-20250727\nTagged selenium/node-chrome:103.0-chromedriver-103.0-grid-4.34.0-20250727\nTagged selenium/standalone-chrome:103.0-chromedriver-103.0-grid-4.34.0-20250727\nTagged selenium/node-chrome:103.0-chromedriver-103.0-20250727\nTagged selenium/standalone-chrome:103.0-chromedriver-103.0-20250727\nTagged selenium/node-chrome:103.0-20250727\nTagged selenium/standalone-chrome:103.0-20250727\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.34.0/chrome_104.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.34.0 20250727 selenium false chrome true\nTagging images for browser chrome, version 4.34.0, build date 20250727, namespace selenium\nSelenium Grid version -> 4.34.0-20250727\nChrome version -> 104.0.5112.101\nShort Chrome version -> 104.0\nChromeDriver version -> 104.0.5112.79\nShort ChromeDriver version -> 104.0\nTagged selenium/node-chrome:104.0.5112.101-chromedriver-104.0.5112.79-grid-4.34.0-20250727\nTagged selenium/standalone-chrome:104.0.5112.101-chromedriver-104.0.5112.79-grid-4.34.0-20250727\nTagged selenium/node-chrome:104.0.5112.101-chromedriver-104.0.5112.79-20250727\nTagged selenium/standalone-chrome:104.0.5112.101-chromedriver-104.0.5112.79-20250727\nTagged selenium/node-chrome:104.0.5112.101-20250727\nTagged selenium/standalone-chrome:104.0.5112.101-20250727\nTagged selenium/node-chrome:104.0-chromedriver-104.0-grid-4.34.0-20250727\nTagged selenium/standalone-chrome:104.0-chromedriver-104.0-grid-4.34.0-20250727\nTagged selenium/node-chrome:104.0-chromedriver-104.0-20250727\nTagged selenium/standalone-chrome:104.0-chromedriver-104.0-20250727\nTagged selenium/node-chrome:104.0-20250727\nTagged selenium/standalone-chrome:104.0-20250727\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.34.0/chrome_105.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.34.0 20250727 selenium false chrome true\nTagging images for browser chrome, version 4.34.0, build date 20250727, namespace selenium\nSelenium Grid version -> 4.34.0-20250727\nChrome version -> 105.0.5195.125\nShort Chrome version -> 105.0\nChromeDriver version -> 105.0.5195.52\nShort ChromeDriver version -> 105.0\nTagged selenium/node-chrome:105.0.5195.125-chromedriver-105.0.5195.52-grid-4.34.0-20250727\nTagged selenium/standalone-chrome:105.0.5195.125-chromedriver-105.0.5195.52-grid-4.34.0-20250727\nTagged selenium/node-chrome:105.0.5195.125-chromedriver-105.0.5195.52-20250727\nTagged selenium/standalone-chrome:105.0.5195.125-chromedriver-105.0.5195.52-20250727\nTagged selenium/node-chrome:105.0.5195.125-20250727\nTagged selenium/standalone-chrome:105.0.5195.125-20250727\nTagged selenium/node-chrome:105.0-chromedriver-105.0-grid-4.34.0-20250727\nTagged selenium/standalone-chrome:105.0-chromedriver-105.0-grid-4.34.0-20250727\nTagged selenium/node-chrome:105.0-chromedriver-105.0-20250727\nTagged selenium/standalone-chrome:105.0-chromedriver-105.0-20250727\nTagged selenium/node-chrome:105.0-20250727\nTagged selenium/standalone-chrome:105.0-20250727\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.34.0/chrome_106.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.34.0 20250727 selenium false chrome true\nTagging images for browser chrome, version 4.34.0, build date 20250727, namespace selenium\nSelenium Grid version -> 4.34.0-20250727\nChrome version -> 106.0.5249.119\nShort Chrome version -> 106.0\nChromeDriver version -> 106.0.5249.61\nShort ChromeDriver version -> 106.0\nTagged selenium/node-chrome:106.0.5249.119-chromedriver-106.0.5249.61-grid-4.34.0-20250727\nTagged selenium/standalone-chrome:106.0.5249.119-chromedriver-106.0.5249.61-grid-4.34.0-20250727\nTagged selenium/node-chrome:106.0.5249.119-chromedriver-106.0.5249.61-20250727\nTagged selenium/standalone-chrome:106.0.5249.119-chromedriver-106.0.5249.61-20250727\nTagged selenium/node-chrome:106.0.5249.119-20250727\nTagged selenium/standalone-chrome:106.0.5249.119-20250727\nTagged selenium/node-chrome:106.0-chromedriver-106.0-grid-4.34.0-20250727\nTagged selenium/standalone-chrome:106.0-chromedriver-106.0-grid-4.34.0-20250727\nTagged selenium/node-chrome:106.0-chromedriver-106.0-20250727\nTagged selenium/standalone-chrome:106.0-chromedriver-106.0-20250727\nTagged selenium/node-chrome:106.0-20250727\nTagged selenium/standalone-chrome:106.0-20250727\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.34.0/chrome_107.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.34.0 20250727 selenium false chrome true\nTagging images for browser chrome, version 4.34.0, build date 20250727, namespace selenium\nSelenium Grid version -> 4.34.0-20250727\nChrome version -> 107.0.5304.121\nShort Chrome version -> 107.0\nChromeDriver version -> 107.0.5304.62\nShort ChromeDriver version -> 107.0\nTagged selenium/node-chrome:107.0.5304.121-chromedriver-107.0.5304.62-grid-4.34.0-20250727\nTagged selenium/standalone-chrome:107.0.5304.121-chromedriver-107.0.5304.62-grid-4.34.0-20250727\nTagged selenium/node-chrome:107.0.5304.121-chromedriver-107.0.5304.62-20250727\nTagged selenium/standalone-chrome:107.0.5304.121-chromedriver-107.0.5304.62-20250727\nTagged selenium/node-chrome:107.0.5304.121-20250727\nTagged selenium/standalone-chrome:107.0.5304.121-20250727\nTagged selenium/node-chrome:107.0-chromedriver-107.0-grid-4.34.0-20250727\nTagged selenium/standalone-chrome:107.0-chromedriver-107.0-grid-4.34.0-20250727\nTagged selenium/node-chrome:107.0-chromedriver-107.0-20250727\nTagged selenium/standalone-chrome:107.0-chromedriver-107.0-20250727\nTagged selenium/node-chrome:107.0-20250727\nTagged selenium/standalone-chrome:107.0-20250727\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.34.0/chrome_108.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.34.0 20250727 selenium false chrome true\nTagging images for browser chrome, version 4.34.0, build date 20250727, namespace selenium\nSelenium Grid version -> 4.34.0-20250727\nChrome version -> 108.0.5359.124\nShort Chrome version -> 108.0\nChromeDriver version -> 108.0.5359.71\nShort ChromeDriver version -> 108.0\nTagged selenium/node-chrome:108.0.5359.124-chromedriver-108.0.5359.71-grid-4.34.0-20250727\nTagged selenium/standalone-chrome:108.0.5359.124-chromedriver-108.0.5359.71-grid-4.34.0-20250727\nTagged selenium/node-chrome:108.0.5359.124-chromedriver-108.0.5359.71-20250727\nTagged selenium/standalone-chrome:108.0.5359.124-chromedriver-108.0.5359.71-20250727\nTagged selenium/node-chrome:108.0.5359.124-20250727\nTagged selenium/standalone-chrome:108.0.5359.124-20250727\nTagged selenium/node-chrome:108.0-chromedriver-108.0-grid-4.34.0-20250727\nTagged selenium/standalone-chrome:108.0-chromedriver-108.0-grid-4.34.0-20250727\nTagged selenium/node-chrome:108.0-chromedriver-108.0-20250727\nTagged selenium/standalone-chrome:108.0-chromedriver-108.0-20250727\nTagged selenium/node-chrome:108.0-20250727\nTagged selenium/standalone-chrome:108.0-20250727\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.34.0/chrome_109.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.34.0 20250727 selenium false chrome true\nTagging images for browser chrome, version 4.34.0, build date 20250727, namespace selenium\nSelenium Grid version -> 4.34.0-20250727\nChrome version -> 109.0.5414.119\nShort Chrome version -> 109.0\nChromeDriver version -> 109.0.5414.74\nShort ChromeDriver version -> 109.0\nTagged selenium/node-chrome:109.0.5414.119-chromedriver-109.0.5414.74-grid-4.34.0-20250727\nTagged selenium/standalone-chrome:109.0.5414.119-chromedriver-109.0.5414.74-grid-4.34.0-20250727\nTagged selenium/node-chrome:109.0.5414.119-chromedriver-109.0.5414.74-20250727\nTagged selenium/standalone-chrome:109.0.5414.119-chromedriver-109.0.5414.74-20250727\nTagged selenium/node-chrome:109.0.5414.119-20250727\nTagged selenium/standalone-chrome:109.0.5414.119-20250727\nTagged selenium/node-chrome:109.0-chromedriver-109.0-grid-4.34.0-20250727\nTagged selenium/standalone-chrome:109.0-chromedriver-109.0-grid-4.34.0-20250727\nTagged selenium/node-chrome:109.0-chromedriver-109.0-20250727\nTagged selenium/standalone-chrome:109.0-chromedriver-109.0-20250727\nTagged selenium/node-chrome:109.0-20250727\nTagged selenium/standalone-chrome:109.0-20250727\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.34.0/chrome_110.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.34.0 20250727 selenium false chrome true\nTagging images for browser chrome, version 4.34.0, build date 20250727, namespace selenium\nSelenium Grid version -> 4.34.0-20250727\nChrome version -> 110.0.5481.177\nShort Chrome version -> 110.0\nChromeDriver version -> 110.0.5481.77\nShort ChromeDriver version -> 110.0\nTagged selenium/node-chrome:110.0.5481.177-chromedriver-110.0.5481.77-grid-4.34.0-20250727\nTagged selenium/standalone-chrome:110.0.5481.177-chromedriver-110.0.5481.77-grid-4.34.0-20250727\nTagged selenium/node-chrome:110.0.5481.177-chromedriver-110.0.5481.77-20250727\nTagged selenium/standalone-chrome:110.0.5481.177-chromedriver-110.0.5481.77-20250727\nTagged selenium/node-chrome:110.0.5481.177-20250727\nTagged selenium/standalone-chrome:110.0.5481.177-20250727\nTagged selenium/node-chrome:110.0-chromedriver-110.0-grid-4.34.0-20250727\nTagged selenium/standalone-chrome:110.0-chromedriver-110.0-grid-4.34.0-20250727\nTagged selenium/node-chrome:110.0-chromedriver-110.0-20250727\nTagged selenium/standalone-chrome:110.0-chromedriver-110.0-20250727\nTagged selenium/node-chrome:110.0-20250727\nTagged selenium/standalone-chrome:110.0-20250727\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.34.0/chrome_111.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.34.0 20250727 selenium false chrome true\nTagging images for browser chrome, version 4.34.0, build date 20250727, namespace selenium\nSelenium Grid version -> 4.34.0-20250727\nChrome version -> 111.0.5563.146\nShort Chrome version -> 111.0\nChromeDriver version -> 111.0.5563.64\nShort ChromeDriver version -> 111.0\nTagged selenium/node-chrome:111.0.5563.146-chromedriver-111.0.5563.64-grid-4.34.0-20250727\nTagged selenium/standalone-chrome:111.0.5563.146-chromedriver-111.0.5563.64-grid-4.34.0-20250727\nTagged selenium/node-chrome:111.0.5563.146-chromedriver-111.0.5563.64-20250727\nTagged selenium/standalone-chrome:111.0.5563.146-chromedriver-111.0.5563.64-20250727\nTagged selenium/node-chrome:111.0.5563.146-20250727\nTagged selenium/standalone-chrome:111.0.5563.146-20250727\nTagged selenium/node-chrome:111.0-chromedriver-111.0-grid-4.34.0-20250727\nTagged selenium/standalone-chrome:111.0-chromedriver-111.0-grid-4.34.0-20250727\nTagged selenium/node-chrome:111.0-chromedriver-111.0-20250727\nTagged selenium/standalone-chrome:111.0-chromedriver-111.0-20250727\nTagged selenium/node-chrome:111.0-20250727\nTagged selenium/standalone-chrome:111.0-20250727\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.34.0/chrome_112.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.34.0 20250727 selenium false chrome true\nTagging images for browser chrome, version 4.34.0, build date 20250727, namespace selenium\nSelenium Grid version -> 4.34.0-20250727\nChrome version -> 112.0.5615.165\nShort Chrome version -> 112.0\nChromeDriver version -> 112.0.5615.49\nShort ChromeDriver version -> 112.0\nTagged selenium/node-chrome:112.0.5615.165-chromedriver-112.0.5615.49-grid-4.34.0-20250727\nTagged selenium/standalone-chrome:112.0.5615.165-chromedriver-112.0.5615.49-grid-4.34.0-20250727\nTagged selenium/node-chrome:112.0.5615.165-chromedriver-112.0.5615.49-20250727\nTagged selenium/standalone-chrome:112.0.5615.165-chromedriver-112.0.5615.49-20250727\nTagged selenium/node-chrome:112.0.5615.165-20250727\nTagged selenium/standalone-chrome:112.0.5615.165-20250727\nTagged selenium/node-chrome:112.0-chromedriver-112.0-grid-4.34.0-20250727\nTagged selenium/standalone-chrome:112.0-chromedriver-112.0-grid-4.34.0-20250727\nTagged selenium/node-chrome:112.0-chromedriver-112.0-20250727\nTagged selenium/standalone-chrome:112.0-chromedriver-112.0-20250727\nTagged selenium/node-chrome:112.0-20250727\nTagged selenium/standalone-chrome:112.0-20250727\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.34.0/chrome_113.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.34.0 20250727 selenium false chrome true\nTagging images for browser chrome, version 4.34.0, build date 20250727, namespace selenium\nSelenium Grid version -> 4.34.0-20250727\nChrome version -> 113.0.5672.126\nShort Chrome version -> 113.0\nChromeDriver version -> 113.0.5672.63\nShort ChromeDriver version -> 113.0\nTagged selenium/node-chrome:113.0.5672.126-chromedriver-113.0.5672.63-grid-4.34.0-20250727\nTagged selenium/standalone-chrome:113.0.5672.126-chromedriver-113.0.5672.63-grid-4.34.0-20250727\nTagged selenium/node-chrome:113.0.5672.126-chromedriver-113.0.5672.63-20250727\nTagged selenium/standalone-chrome:113.0.5672.126-chromedriver-113.0.5672.63-20250727\nTagged selenium/node-chrome:113.0.5672.126-20250727\nTagged selenium/standalone-chrome:113.0.5672.126-20250727\nTagged selenium/node-chrome:113.0-chromedriver-113.0-grid-4.34.0-20250727\nTagged selenium/standalone-chrome:113.0-chromedriver-113.0-grid-4.34.0-20250727\nTagged selenium/node-chrome:113.0-chromedriver-113.0-20250727\nTagged selenium/standalone-chrome:113.0-chromedriver-113.0-20250727\nTagged selenium/node-chrome:113.0-20250727\nTagged selenium/standalone-chrome:113.0-20250727\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.34.0/chrome_114.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.34.0 20250727 selenium false chrome true\nTagging images for browser chrome, version 4.34.0, build date 20250727, namespace selenium\nSelenium Grid version -> 4.34.0-20250727\nChrome version -> 114.0.5735.198\nShort Chrome version -> 114.0\nChromeDriver version -> 114.0.5735.90\nShort ChromeDriver version -> 114.0\nTagged selenium/node-chrome:114.0.5735.198-chromedriver-114.0.5735.90-grid-4.34.0-20250727\nTagged selenium/standalone-chrome:114.0.5735.198-chromedriver-114.0.5735.90-grid-4.34.0-20250727\nTagged selenium/node-chrome:114.0.5735.198-chromedriver-114.0.5735.90-20250727\nTagged selenium/standalone-chrome:114.0.5735.198-chromedriver-114.0.5735.90-20250727\nTagged selenium/node-chrome:114.0.5735.198-20250727\nTagged selenium/standalone-chrome:114.0.5735.198-20250727\nTagged selenium/node-chrome:114.0-chromedriver-114.0-grid-4.34.0-20250727\nTagged selenium/standalone-chrome:114.0-chromedriver-114.0-grid-4.34.0-20250727\nTagged selenium/node-chrome:114.0-chromedriver-114.0-20250727\nTagged selenium/standalone-chrome:114.0-chromedriver-114.0-20250727\nTagged selenium/node-chrome:114.0-20250727\nTagged selenium/standalone-chrome:114.0-20250727\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.34.0/chrome_115.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.34.0 20250727 selenium false chrome true\nTagging images for browser chrome, version 4.34.0, build date 20250727, namespace selenium\nSelenium Grid version -> 4.34.0-20250727\nChrome version -> 115.0.5790.170\nShort Chrome version -> 115.0\nChromeDriver version -> 115.0.5790.170\nShort ChromeDriver version -> 115.0\nTagged selenium/node-chrome:115.0.5790.170-chromedriver-115.0.5790.170-grid-4.34.0-20250727\nTagged selenium/standalone-chrome:115.0.5790.170-chromedriver-115.0.5790.170-grid-4.34.0-20250727\nTagged selenium/node-chrome:115.0.5790.170-chromedriver-115.0.5790.170-20250727\nTagged selenium/standalone-chrome:115.0.5790.170-chromedriver-115.0.5790.170-20250727\nTagged selenium/node-chrome:115.0.5790.170-20250727\nTagged selenium/standalone-chrome:115.0.5790.170-20250727\nTagged selenium/node-chrome:115.0-chromedriver-115.0-grid-4.34.0-20250727\nTagged selenium/standalone-chrome:115.0-chromedriver-115.0-grid-4.34.0-20250727\nTagged selenium/node-chrome:115.0-chromedriver-115.0-20250727\nTagged selenium/standalone-chrome:115.0-chromedriver-115.0-20250727\nTagged selenium/node-chrome:115.0-20250727\nTagged selenium/standalone-chrome:115.0-20250727\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.34.0/chrome_116.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.34.0 20250727 selenium false chrome true\nTagging images for browser chrome, version 4.34.0, build date 20250727, namespace selenium\nSelenium Grid version -> 4.34.0-20250727\nChrome version -> 116.0.5845.187\nShort Chrome version -> 116.0\nChromeDriver version -> 116.0.5845.96\nShort ChromeDriver version -> 116.0\nTagged selenium/node-chrome:116.0.5845.187-chromedriver-116.0.5845.96-grid-4.34.0-20250727\nTagged selenium/standalone-chrome:116.0.5845.187-chromedriver-116.0.5845.96-grid-4.34.0-20250727\nTagged selenium/node-chrome:116.0.5845.187-chromedriver-116.0.5845.96-20250727\nTagged selenium/standalone-chrome:116.0.5845.187-chromedriver-116.0.5845.96-20250727\nTagged selenium/node-chrome:116.0.5845.187-20250727\nTagged selenium/standalone-chrome:116.0.5845.187-20250727\nTagged selenium/node-chrome:116.0-chromedriver-116.0-grid-4.34.0-20250727\nTagged selenium/standalone-chrome:116.0-chromedriver-116.0-grid-4.34.0-20250727\nTagged selenium/node-chrome:116.0-chromedriver-116.0-20250727\nTagged selenium/standalone-chrome:116.0-chromedriver-116.0-20250727\nTagged selenium/node-chrome:116.0-20250727\nTagged selenium/standalone-chrome:116.0-20250727\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.34.0/chrome_117.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.34.0 20250727 selenium false chrome true\nTagging images for browser chrome, version 4.34.0, build date 20250727, namespace selenium\nSelenium Grid version -> 4.34.0-20250727\nChrome version -> 117.0.5938.149\nShort Chrome version -> 117.0\nChromeDriver version -> 117.0.5938.149\nShort ChromeDriver version -> 117.0\nTagged selenium/node-chrome:117.0.5938.149-chromedriver-117.0.5938.149-grid-4.34.0-20250727\nTagged selenium/standalone-chrome:117.0.5938.149-chromedriver-117.0.5938.149-grid-4.34.0-20250727\nTagged selenium/node-chrome:117.0.5938.149-chromedriver-117.0.5938.149-20250727\nTagged selenium/standalone-chrome:117.0.5938.149-chromedriver-117.0.5938.149-20250727\nTagged selenium/node-chrome:117.0.5938.149-20250727\nTagged selenium/standalone-chrome:117.0.5938.149-20250727\nTagged selenium/node-chrome:117.0-chromedriver-117.0-grid-4.34.0-20250727\nTagged selenium/standalone-chrome:117.0-chromedriver-117.0-grid-4.34.0-20250727\nTagged selenium/node-chrome:117.0-chromedriver-117.0-20250727\nTagged selenium/standalone-chrome:117.0-chromedriver-117.0-20250727\nTagged selenium/node-chrome:117.0-20250727\nTagged selenium/standalone-chrome:117.0-20250727\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.34.0/chrome_118.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.34.0 20250727 selenium false chrome true\nTagging images for browser chrome, version 4.34.0, build date 20250727, namespace selenium\nSelenium Grid version -> 4.34.0-20250727\nChrome version -> 118.0.5993.117\nShort Chrome version -> 118.0\nChromeDriver version -> 118.0.5993.70\nShort ChromeDriver version -> 118.0\nTagged selenium/node-chrome:118.0.5993.117-chromedriver-118.0.5993.70-grid-4.34.0-20250727\nTagged selenium/standalone-chrome:118.0.5993.117-chromedriver-118.0.5993.70-grid-4.34.0-20250727\nTagged selenium/node-chrome:118.0.5993.117-chromedriver-118.0.5993.70-20250727\nTagged selenium/standalone-chrome:118.0.5993.117-chromedriver-118.0.5993.70-20250727\nTagged selenium/node-chrome:118.0.5993.117-20250727\nTagged selenium/standalone-chrome:118.0.5993.117-20250727\nTagged selenium/node-chrome:118.0-chromedriver-118.0-grid-4.34.0-20250727\nTagged selenium/standalone-chrome:118.0-chromedriver-118.0-grid-4.34.0-20250727\nTagged selenium/node-chrome:118.0-chromedriver-118.0-20250727\nTagged selenium/standalone-chrome:118.0-chromedriver-118.0-20250727\nTagged selenium/node-chrome:118.0-20250727\nTagged selenium/standalone-chrome:118.0-20250727\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.34.0/chrome_119.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.34.0 20250727 selenium false chrome true\nTagging images for browser chrome, version 4.34.0, build date 20250727, namespace selenium\nSelenium Grid version -> 4.34.0-20250727\nChrome version -> 119.0.6045.199\nShort Chrome version -> 119.0\nChromeDriver version -> 119.0.6045.105\nShort ChromeDriver version -> 119.0\nTagged selenium/node-chrome:119.0.6045.199-chromedriver-119.0.6045.105-grid-4.34.0-20250727\nTagged selenium/standalone-chrome:119.0.6045.199-chromedriver-119.0.6045.105-grid-4.34.0-20250727\nTagged selenium/node-chrome:119.0.6045.199-chromedriver-119.0.6045.105-20250727\nTagged selenium/standalone-chrome:119.0.6045.199-chromedriver-119.0.6045.105-20250727\nTagged selenium/node-chrome:119.0.6045.199-20250727\nTagged selenium/standalone-chrome:119.0.6045.199-20250727\nTagged selenium/node-chrome:119.0-chromedriver-119.0-grid-4.34.0-20250727\nTagged selenium/standalone-chrome:119.0-chromedriver-119.0-grid-4.34.0-20250727\nTagged selenium/node-chrome:119.0-chromedriver-119.0-20250727\nTagged selenium/standalone-chrome:119.0-chromedriver-119.0-20250727\nTagged selenium/node-chrome:119.0-20250727\nTagged selenium/standalone-chrome:119.0-20250727\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.34.0/chrome_120.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.34.0 20250727 selenium false chrome true\nTagging images for browser chrome, version 4.34.0, build date 20250727, namespace selenium\nSelenium Grid version -> 4.34.0-20250727\nChrome version -> 120.0.6099.224\nShort Chrome version -> 120.0\nChromeDriver version -> 120.0.6099.109\nShort ChromeDriver version -> 120.0\nTagged selenium/node-chrome:120.0.6099.224-chromedriver-120.0.6099.109-grid-4.34.0-20250727\nTagged selenium/standalone-chrome:120.0.6099.224-chromedriver-120.0.6099.109-grid-4.34.0-20250727\nTagged selenium/node-chrome:120.0.6099.224-chromedriver-120.0.6099.109-20250727\nTagged selenium/standalone-chrome:120.0.6099.224-chromedriver-120.0.6099.109-20250727\nTagged selenium/node-chrome:120.0.6099.224-20250727\nTagged selenium/standalone-chrome:120.0.6099.224-20250727\nTagged selenium/node-chrome:120.0-chromedriver-120.0-grid-4.34.0-20250727\nTagged selenium/standalone-chrome:120.0-chromedriver-120.0-grid-4.34.0-20250727\nTagged selenium/node-chrome:120.0-chromedriver-120.0-20250727\nTagged selenium/standalone-chrome:120.0-chromedriver-120.0-20250727\nTagged selenium/node-chrome:120.0-20250727\nTagged selenium/standalone-chrome:120.0-20250727\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.34.0/chrome_121.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.34.0 20250727 selenium false chrome true\nTagging images for browser chrome, version 4.34.0, build date 20250727, namespace selenium\nSelenium Grid version -> 4.34.0-20250727\nChrome version -> 121.0.6167.184\nShort Chrome version -> 121.0\nChromeDriver version -> 121.0.6167.184\nShort ChromeDriver version -> 121.0\nTagged selenium/node-chrome:121.0.6167.184-chromedriver-121.0.6167.184-grid-4.34.0-20250727\nTagged selenium/standalone-chrome:121.0.6167.184-chromedriver-121.0.6167.184-grid-4.34.0-20250727\nTagged selenium/node-chrome:121.0.6167.184-chromedriver-121.0.6167.184-20250727\nTagged selenium/standalone-chrome:121.0.6167.184-chromedriver-121.0.6167.184-20250727\nTagged selenium/node-chrome:121.0.6167.184-20250727\nTagged selenium/standalone-chrome:121.0.6167.184-20250727\nTagged selenium/node-chrome:121.0-chromedriver-121.0-grid-4.34.0-20250727\nTagged selenium/standalone-chrome:121.0-chromedriver-121.0-grid-4.34.0-20250727\nTagged selenium/node-chrome:121.0-chromedriver-121.0-20250727\nTagged selenium/standalone-chrome:121.0-chromedriver-121.0-20250727\nTagged selenium/node-chrome:121.0-20250727\nTagged selenium/standalone-chrome:121.0-20250727\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.34.0/chrome_122.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.34.0 20250727 selenium false chrome true\nTagging images for browser chrome, version 4.34.0, build date 20250727, namespace selenium\nSelenium Grid version -> 4.34.0-20250727\nChrome version -> 122.0.6261.128\nShort Chrome version -> 122.0\nChromeDriver version -> 122.0.6261.128\nShort ChromeDriver version -> 122.0\nTagged selenium/node-chrome:122.0.6261.128-chromedriver-122.0.6261.128-grid-4.34.0-20250727\nTagged selenium/standalone-chrome:122.0.6261.128-chromedriver-122.0.6261.128-grid-4.34.0-20250727\nTagged selenium/node-chrome:122.0.6261.128-chromedriver-122.0.6261.128-20250727\nTagged selenium/standalone-chrome:122.0.6261.128-chromedriver-122.0.6261.128-20250727\nTagged selenium/node-chrome:122.0.6261.128-20250727\nTagged selenium/standalone-chrome:122.0.6261.128-20250727\nTagged selenium/node-chrome:122.0-chromedriver-122.0-grid-4.34.0-20250727\nTagged selenium/standalone-chrome:122.0-chromedriver-122.0-grid-4.34.0-20250727\nTagged selenium/node-chrome:122.0-chromedriver-122.0-20250727\nTagged selenium/standalone-chrome:122.0-chromedriver-122.0-20250727\nTagged selenium/node-chrome:122.0-20250727\nTagged selenium/standalone-chrome:122.0-20250727\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.34.0/chrome_123.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.34.0 20250727 selenium false chrome true\nTagging images for browser chrome, version 4.34.0, build date 20250727, namespace selenium\nSelenium Grid version -> 4.34.0-20250727\nChrome version -> 123.0.6312.122\nShort Chrome version -> 123.0\nChromeDriver version -> 123.0.6312.122\nShort ChromeDriver version -> 123.0\nTagged selenium/node-chrome:123.0.6312.122-chromedriver-123.0.6312.122-grid-4.34.0-20250727\nTagged selenium/standalone-chrome:123.0.6312.122-chromedriver-123.0.6312.122-grid-4.34.0-20250727\nTagged selenium/node-chrome:123.0.6312.122-chromedriver-123.0.6312.122-20250727\nTagged selenium/standalone-chrome:123.0.6312.122-chromedriver-123.0.6312.122-20250727\nTagged selenium/node-chrome:123.0.6312.122-20250727\nTagged selenium/standalone-chrome:123.0.6312.122-20250727\nTagged selenium/node-chrome:123.0-chromedriver-123.0-grid-4.34.0-20250727\nTagged selenium/standalone-chrome:123.0-chromedriver-123.0-grid-4.34.0-20250727\nTagged selenium/node-chrome:123.0-chromedriver-123.0-20250727\nTagged selenium/standalone-chrome:123.0-chromedriver-123.0-20250727\nTagged selenium/node-chrome:123.0-20250727\nTagged selenium/standalone-chrome:123.0-20250727\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.34.0/chrome_124.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.34.0 20250727 selenium false chrome true\nTagging images for browser chrome, version 4.34.0, build date 20250727, namespace selenium\nSelenium Grid version -> 4.34.0-20250727\nChrome version -> 124.0.6367.207\nShort Chrome version -> 124.0\nChromeDriver version -> 124.0.6367.207\nShort ChromeDriver version -> 124.0\nTagged selenium/node-chrome:124.0.6367.207-chromedriver-124.0.6367.207-grid-4.34.0-20250727\nTagged selenium/standalone-chrome:124.0.6367.207-chromedriver-124.0.6367.207-grid-4.34.0-20250727\nTagged selenium/node-chrome:124.0.6367.207-chromedriver-124.0.6367.207-20250727\nTagged selenium/standalone-chrome:124.0.6367.207-chromedriver-124.0.6367.207-20250727\nTagged selenium/node-chrome:124.0.6367.207-20250727\nTagged selenium/standalone-chrome:124.0.6367.207-20250727\nTagged selenium/node-chrome:124.0-chromedriver-124.0-grid-4.34.0-20250727\nTagged selenium/standalone-chrome:124.0-chromedriver-124.0-grid-4.34.0-20250727\nTagged selenium/node-chrome:124.0-chromedriver-124.0-20250727\nTagged selenium/standalone-chrome:124.0-chromedriver-124.0-20250727\nTagged selenium/node-chrome:124.0-20250727\nTagged selenium/standalone-chrome:124.0-20250727\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.34.0/chrome_125.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.34.0 20250727 selenium false chrome true\nTagging images for browser chrome, version 4.34.0, build date 20250727, namespace selenium\nSelenium Grid version -> 4.34.0-20250727\nChrome version -> 125.0.6422.141\nShort Chrome version -> 125.0\nChromeDriver version -> 125.0.6422.141\nShort ChromeDriver version -> 125.0\nTagged selenium/node-chrome:125.0.6422.141-chromedriver-125.0.6422.141-grid-4.34.0-20250727\nTagged selenium/standalone-chrome:125.0.6422.141-chromedriver-125.0.6422.141-grid-4.34.0-20250727\nTagged selenium/node-chrome:125.0.6422.141-chromedriver-125.0.6422.141-20250727\nTagged selenium/standalone-chrome:125.0.6422.141-chromedriver-125.0.6422.141-20250727\nTagged selenium/node-chrome:125.0.6422.141-20250727\nTagged selenium/standalone-chrome:125.0.6422.141-20250727\nTagged selenium/node-chrome:125.0-chromedriver-125.0-grid-4.34.0-20250727\nTagged selenium/standalone-chrome:125.0-chromedriver-125.0-grid-4.34.0-20250727\nTagged selenium/node-chrome:125.0-chromedriver-125.0-20250727\nTagged selenium/standalone-chrome:125.0-chromedriver-125.0-20250727\nTagged selenium/node-chrome:125.0-20250727\nTagged selenium/standalone-chrome:125.0-20250727\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.34.0/chrome_126.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.34.0 20250727 selenium false chrome true\nTagging images for browser chrome, version 4.34.0, build date 20250727, namespace selenium\nSelenium Grid version -> 4.34.0-20250727\nChrome version -> 126.0.6478.182\nShort Chrome version -> 126.0\nChromeDriver version -> 126.0.6478.182\nShort ChromeDriver version -> 126.0\nTagged selenium/node-chrome:126.0.6478.182-chromedriver-126.0.6478.182-grid-4.34.0-20250727\nTagged selenium/standalone-chrome:126.0.6478.182-chromedriver-126.0.6478.182-grid-4.34.0-20250727\nTagged selenium/node-chrome:126.0.6478.182-chromedriver-126.0.6478.182-20250727\nTagged selenium/standalone-chrome:126.0.6478.182-chromedriver-126.0.6478.182-20250727\nTagged selenium/node-chrome:126.0.6478.182-20250727\nTagged selenium/standalone-chrome:126.0.6478.182-20250727\nTagged selenium/node-chrome:126.0-chromedriver-126.0-grid-4.34.0-20250727\nTagged selenium/standalone-chrome:126.0-chromedriver-126.0-grid-4.34.0-20250727\nTagged selenium/node-chrome:126.0-chromedriver-126.0-20250727\nTagged selenium/standalone-chrome:126.0-chromedriver-126.0-20250727\nTagged selenium/node-chrome:126.0-20250727\nTagged selenium/standalone-chrome:126.0-20250727\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.34.0/chrome_127.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.34.0 20250727 selenium false chrome true\nTagging images for browser chrome, version 4.34.0, build date 20250727, namespace selenium\nSelenium Grid version -> 4.34.0-20250727\nChrome version -> 127.0.6533.119\nShort Chrome version -> 127.0\nChromeDriver version -> 127.0.6533.119\nShort ChromeDriver version -> 127.0\nTagged selenium/node-chrome:127.0.6533.119-chromedriver-127.0.6533.119-grid-4.34.0-20250727\nTagged selenium/standalone-chrome:127.0.6533.119-chromedriver-127.0.6533.119-grid-4.34.0-20250727\nTagged selenium/node-chrome:127.0.6533.119-chromedriver-127.0.6533.119-20250727\nTagged selenium/standalone-chrome:127.0.6533.119-chromedriver-127.0.6533.119-20250727\nTagged selenium/node-chrome:127.0.6533.119-20250727\nTagged selenium/standalone-chrome:127.0.6533.119-20250727\nTagged selenium/node-chrome:127.0-chromedriver-127.0-grid-4.34.0-20250727\nTagged selenium/standalone-chrome:127.0-chromedriver-127.0-grid-4.34.0-20250727\nTagged selenium/node-chrome:127.0-chromedriver-127.0-20250727\nTagged selenium/standalone-chrome:127.0-chromedriver-127.0-20250727\nTagged selenium/node-chrome:127.0-20250727\nTagged selenium/standalone-chrome:127.0-20250727\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.34.0/chrome_128.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.34.0 20250727 selenium false chrome true\nTagging images for browser chrome, version 4.34.0, build date 20250727, namespace selenium\nSelenium Grid version -> 4.34.0-20250727\nChrome version -> 128.0.6613.137\nShort Chrome version -> 128.0\nChromeDriver version -> 128.0.6613.137\nShort ChromeDriver version -> 128.0\nTagged selenium/node-chrome:128.0.6613.137-chromedriver-128.0.6613.137-grid-4.34.0-20250727\nTagged selenium/standalone-chrome:128.0.6613.137-chromedriver-128.0.6613.137-grid-4.34.0-20250727\nTagged selenium/node-chrome:128.0.6613.137-chromedriver-128.0.6613.137-20250727\nTagged selenium/standalone-chrome:128.0.6613.137-chromedriver-128.0.6613.137-20250727\nTagged selenium/node-chrome:128.0.6613.137-20250727\nTagged selenium/standalone-chrome:128.0.6613.137-20250727\nTagged selenium/node-chrome:128.0-chromedriver-128.0-grid-4.34.0-20250727\nTagged selenium/standalone-chrome:128.0-chromedriver-128.0-grid-4.34.0-20250727\nTagged selenium/node-chrome:128.0-chromedriver-128.0-20250727\nTagged selenium/standalone-chrome:128.0-chromedriver-128.0-20250727\nTagged selenium/node-chrome:128.0-20250727\nTagged selenium/standalone-chrome:128.0-20250727\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.34.0/chrome_129.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.34.0 20250727 selenium false chrome true\nTagging images for browser chrome, version 4.34.0, build date 20250727, namespace selenium\nSelenium Grid version -> 4.34.0-20250727\nChrome version -> 129.0.6668.100\nShort Chrome version -> 129.0\nChromeDriver version -> 129.0.6668.100\nShort ChromeDriver version -> 129.0\nTagged selenium/node-chrome:129.0.6668.100-chromedriver-129.0.6668.100-grid-4.34.0-20250727\nTagged selenium/standalone-chrome:129.0.6668.100-chromedriver-129.0.6668.100-grid-4.34.0-20250727\nTagged selenium/node-chrome:129.0.6668.100-chromedriver-129.0.6668.100-20250727\nTagged selenium/standalone-chrome:129.0.6668.100-chromedriver-129.0.6668.100-20250727\nTagged selenium/node-chrome:129.0.6668.100-20250727\nTagged selenium/standalone-chrome:129.0.6668.100-20250727\nTagged selenium/node-chrome:129.0-chromedriver-129.0-grid-4.34.0-20250727\nTagged selenium/standalone-chrome:129.0-chromedriver-129.0-grid-4.34.0-20250727\nTagged selenium/node-chrome:129.0-chromedriver-129.0-20250727\nTagged selenium/standalone-chrome:129.0-chromedriver-129.0-20250727\nTagged selenium/node-chrome:129.0-20250727\nTagged selenium/standalone-chrome:129.0-20250727\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.34.0/chrome_130.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.34.0 20250727 selenium false chrome true\nTagging images for browser chrome, version 4.34.0, build date 20250727, namespace selenium\nSelenium Grid version -> 4.34.0-20250727\nChrome version -> 130.0.6723.116\nShort Chrome version -> 130.0\nChromeDriver version -> 130.0.6723.116\nShort ChromeDriver version -> 130.0\nTagged selenium/node-chrome:130.0.6723.116-chromedriver-130.0.6723.116-grid-4.34.0-20250727\nTagged selenium/standalone-chrome:130.0.6723.116-chromedriver-130.0.6723.116-grid-4.34.0-20250727\nTagged selenium/node-chrome:130.0.6723.116-chromedriver-130.0.6723.116-20250727\nTagged selenium/standalone-chrome:130.0.6723.116-chromedriver-130.0.6723.116-20250727\nTagged selenium/node-chrome:130.0.6723.116-20250727\nTagged selenium/standalone-chrome:130.0.6723.116-20250727\nTagged selenium/node-chrome:130.0-chromedriver-130.0-grid-4.34.0-20250727\nTagged selenium/standalone-chrome:130.0-chromedriver-130.0-grid-4.34.0-20250727\nTagged selenium/node-chrome:130.0-chromedriver-130.0-20250727\nTagged selenium/standalone-chrome:130.0-chromedriver-130.0-20250727\nTagged selenium/node-chrome:130.0-20250727\nTagged selenium/standalone-chrome:130.0-20250727\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.34.0/chrome_131.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.34.0 20250727 selenium false chrome true\nTagging images for browser chrome, version 4.34.0, build date 20250727, namespace selenium\nSelenium Grid version -> 4.34.0-20250727\nChrome version -> 131.0.6778.264\nShort Chrome version -> 131.0\nChromeDriver version -> 131.0.6778.264\nShort ChromeDriver version -> 131.0\nTagged selenium/node-chrome:131.0.6778.264-chromedriver-131.0.6778.264-grid-4.34.0-20250727\nTagged selenium/standalone-chrome:131.0.6778.264-chromedriver-131.0.6778.264-grid-4.34.0-20250727\nTagged selenium/node-chrome:131.0.6778.264-chromedriver-131.0.6778.264-20250727\nTagged selenium/standalone-chrome:131.0.6778.264-chromedriver-131.0.6778.264-20250727\nTagged selenium/node-chrome:131.0.6778.264-20250727\nTagged selenium/standalone-chrome:131.0.6778.264-20250727\nTagged selenium/node-chrome:131.0-chromedriver-131.0-grid-4.34.0-20250727\nTagged selenium/standalone-chrome:131.0-chromedriver-131.0-grid-4.34.0-20250727\nTagged selenium/node-chrome:131.0-chromedriver-131.0-20250727\nTagged selenium/standalone-chrome:131.0-chromedriver-131.0-20250727\nTagged selenium/node-chrome:131.0-20250727\nTagged selenium/standalone-chrome:131.0-20250727\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.34.0/chrome_132.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.34.0 20250727 selenium false chrome true\nTagging images for browser chrome, version 4.34.0, build date 20250727, namespace selenium\nSelenium Grid version -> 4.34.0-20250727\nChrome version -> 132.0.6834.159\nShort Chrome version -> 132.0\nChromeDriver version -> 132.0.6834.159\nShort ChromeDriver version -> 132.0\nTagged selenium/node-chrome:132.0.6834.159-chromedriver-132.0.6834.159-grid-4.34.0-20250727\nTagged selenium/standalone-chrome:132.0.6834.159-chromedriver-132.0.6834.159-grid-4.34.0-20250727\nTagged selenium/node-chrome:132.0.6834.159-chromedriver-132.0.6834.159-20250727\nTagged selenium/standalone-chrome:132.0.6834.159-chromedriver-132.0.6834.159-20250727\nTagged selenium/node-chrome:132.0.6834.159-20250727\nTagged selenium/standalone-chrome:132.0.6834.159-20250727\nTagged selenium/node-chrome:132.0-chromedriver-132.0-grid-4.34.0-20250727\nTagged selenium/standalone-chrome:132.0-chromedriver-132.0-grid-4.34.0-20250727\nTagged selenium/node-chrome:132.0-chromedriver-132.0-20250727\nTagged selenium/standalone-chrome:132.0-chromedriver-132.0-20250727\nTagged selenium/node-chrome:132.0-20250727\nTagged selenium/standalone-chrome:132.0-20250727\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.34.0/chrome_133.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.34.0 20250727 selenium false chrome true\nTagging images for browser chrome, version 4.34.0, build date 20250727, namespace selenium\nSelenium Grid version -> 4.34.0-20250727\nChrome version -> 133.0.6943.141\nShort Chrome version -> 133.0\nChromeDriver version -> 133.0.6943.141\nShort ChromeDriver version -> 133.0\nTagged selenium/node-chrome:133.0.6943.141-chromedriver-133.0.6943.141-grid-4.34.0-20250727\nTagged selenium/standalone-chrome:133.0.6943.141-chromedriver-133.0.6943.141-grid-4.34.0-20250727\nTagged selenium/node-chrome:133.0.6943.141-chromedriver-133.0.6943.141-20250727\nTagged selenium/standalone-chrome:133.0.6943.141-chromedriver-133.0.6943.141-20250727\nTagged selenium/node-chrome:133.0.6943.141-20250727\nTagged selenium/standalone-chrome:133.0.6943.141-20250727\nTagged selenium/node-chrome:133.0-chromedriver-133.0-grid-4.34.0-20250727\nTagged selenium/standalone-chrome:133.0-chromedriver-133.0-grid-4.34.0-20250727\nTagged selenium/node-chrome:133.0-chromedriver-133.0-20250727\nTagged selenium/standalone-chrome:133.0-chromedriver-133.0-20250727\nTagged selenium/node-chrome:133.0-20250727\nTagged selenium/standalone-chrome:133.0-20250727\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.34.0/chrome_134.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.34.0 20250727 selenium false chrome true\nTagging images for browser chrome, version 4.34.0, build date 20250727, namespace selenium\nSelenium Grid version -> 4.34.0-20250727\nChrome version -> 134.0.6998.165\nShort Chrome version -> 134.0\nChromeDriver version -> 134.0.6998.165\nShort ChromeDriver version -> 134.0\nTagged selenium/node-chrome:134.0.6998.165-chromedriver-134.0.6998.165-grid-4.34.0-20250727\nTagged selenium/standalone-chrome:134.0.6998.165-chromedriver-134.0.6998.165-grid-4.34.0-20250727\nTagged selenium/node-chrome:134.0.6998.165-chromedriver-134.0.6998.165-20250727\nTagged selenium/standalone-chrome:134.0.6998.165-chromedriver-134.0.6998.165-20250727\nTagged selenium/node-chrome:134.0.6998.165-20250727\nTagged selenium/standalone-chrome:134.0.6998.165-20250727\nTagged selenium/node-chrome:134.0-chromedriver-134.0-grid-4.34.0-20250727\nTagged selenium/standalone-chrome:134.0-chromedriver-134.0-grid-4.34.0-20250727\nTagged selenium/node-chrome:134.0-chromedriver-134.0-20250727\nTagged selenium/standalone-chrome:134.0-chromedriver-134.0-20250727\nTagged selenium/node-chrome:134.0-20250727\nTagged selenium/standalone-chrome:134.0-20250727\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.34.0/chrome_136.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.34.0 20250727 selenium false chrome true\nTagging images for browser chrome, version 4.34.0, build date 20250727, namespace selenium\nSelenium Grid version -> 4.34.0-20250727\nChrome version -> 136.0.7103.113\nShort Chrome version -> 136.0\nChromeDriver version -> 136.0.7103.113\nShort ChromeDriver version -> 136.0\nTagged selenium/node-chrome:136.0.7103.113-chromedriver-136.0.7103.113-grid-4.34.0-20250727\nTagged selenium/standalone-chrome:136.0.7103.113-chromedriver-136.0.7103.113-grid-4.34.0-20250727\nTagged selenium/node-chrome:136.0.7103.113-chromedriver-136.0.7103.113-20250727\nTagged selenium/standalone-chrome:136.0.7103.113-chromedriver-136.0.7103.113-20250727\nTagged selenium/node-chrome:136.0.7103.113-20250727\nTagged selenium/standalone-chrome:136.0.7103.113-20250727\nTagged selenium/node-chrome:136.0-chromedriver-136.0-grid-4.34.0-20250727\nTagged selenium/standalone-chrome:136.0-chromedriver-136.0-grid-4.34.0-20250727\nTagged selenium/node-chrome:136.0-chromedriver-136.0-20250727\nTagged selenium/standalone-chrome:136.0-chromedriver-136.0-20250727\nTagged selenium/node-chrome:136.0-20250727\nTagged selenium/standalone-chrome:136.0-20250727\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.34.0/chrome_137.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.34.0 20250727 selenium false chrome true\nTagging images for browser chrome, version 4.34.0, build date 20250727, namespace selenium\nSelenium Grid version -> 4.34.0-20250727\nChrome version -> 137.0.7151.119\nShort Chrome version -> 137.0\nChromeDriver version -> 137.0.7151.119\nShort ChromeDriver version -> 137.0\nTagged selenium/node-chrome:137.0.7151.119-chromedriver-137.0.7151.119-grid-4.34.0-20250727\nTagged selenium/standalone-chrome:137.0.7151.119-chromedriver-137.0.7151.119-grid-4.34.0-20250727\nTagged selenium/node-chrome:137.0.7151.119-chromedriver-137.0.7151.119-20250727\nTagged selenium/standalone-chrome:137.0.7151.119-chromedriver-137.0.7151.119-20250727\nTagged selenium/node-chrome:137.0.7151.119-20250727\nTagged selenium/standalone-chrome:137.0.7151.119-20250727\nTagged selenium/node-chrome:137.0-chromedriver-137.0-grid-4.34.0-20250727\nTagged selenium/standalone-chrome:137.0-chromedriver-137.0-grid-4.34.0-20250727\nTagged selenium/node-chrome:137.0-chromedriver-137.0-20250727\nTagged selenium/standalone-chrome:137.0-chromedriver-137.0-20250727\nTagged selenium/node-chrome:137.0-20250727\nTagged selenium/standalone-chrome:137.0-20250727\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.34.0/chrome_95.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.34.0 20250727 selenium false chrome true\nTagging images for browser chrome, version 4.34.0, build date 20250727, namespace selenium\nSelenium Grid version -> 4.34.0-20250727\nChrome version -> 95.0.4638.69\nShort Chrome version -> 95.0\nChromeDriver version -> 95.0.4638.69\nShort ChromeDriver version -> 95.0\nTagged selenium/node-chrome:95.0.4638.69-chromedriver-95.0.4638.69-grid-4.34.0-20250727\nTagged selenium/standalone-chrome:95.0.4638.69-chromedriver-95.0.4638.69-grid-4.34.0-20250727\nTagged selenium/node-chrome:95.0.4638.69-chromedriver-95.0.4638.69-20250727\nTagged selenium/standalone-chrome:95.0.4638.69-chromedriver-95.0.4638.69-20250727\nTagged selenium/node-chrome:95.0.4638.69-20250727\nTagged selenium/standalone-chrome:95.0.4638.69-20250727\nTagged selenium/node-chrome:95.0-chromedriver-95.0-grid-4.34.0-20250727\nTagged selenium/standalone-chrome:95.0-chromedriver-95.0-grid-4.34.0-20250727\nTagged selenium/node-chrome:95.0-chromedriver-95.0-20250727\nTagged selenium/standalone-chrome:95.0-chromedriver-95.0-20250727\nTagged selenium/node-chrome:95.0-20250727\nTagged selenium/standalone-chrome:95.0-20250727\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.34.0/chrome_96.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.34.0 20250727 selenium false chrome true\nTagging images for browser chrome, version 4.34.0, build date 20250727, namespace selenium\nSelenium Grid version -> 4.34.0-20250727\nChrome version -> 96.0.4664.110\nShort Chrome version -> 96.0\nChromeDriver version -> 96.0.4664.45\nShort ChromeDriver version -> 96.0\nTagged selenium/node-chrome:96.0.4664.110-chromedriver-96.0.4664.45-grid-4.34.0-20250727\nTagged selenium/standalone-chrome:96.0.4664.110-chromedriver-96.0.4664.45-grid-4.34.0-20250727\nTagged selenium/node-chrome:96.0.4664.110-chromedriver-96.0.4664.45-20250727\nTagged selenium/standalone-chrome:96.0.4664.110-chromedriver-96.0.4664.45-20250727\nTagged selenium/node-chrome:96.0.4664.110-20250727\nTagged selenium/standalone-chrome:96.0.4664.110-20250727\nTagged selenium/node-chrome:96.0-chromedriver-96.0-grid-4.34.0-20250727\nTagged selenium/standalone-chrome:96.0-chromedriver-96.0-grid-4.34.0-20250727\nTagged selenium/node-chrome:96.0-chromedriver-96.0-20250727\nTagged selenium/standalone-chrome:96.0-chromedriver-96.0-20250727\nTagged selenium/node-chrome:96.0-20250727\nTagged selenium/standalone-chrome:96.0-20250727\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.34.0/chrome_97.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.34.0 20250727 selenium false chrome true\nTagging images for browser chrome, version 4.34.0, build date 20250727, namespace selenium\nSelenium Grid version -> 4.34.0-20250727\nChrome version -> 97.0.4692.99\nShort Chrome version -> 97.0\nChromeDriver version -> 97.0.4692.71\nShort ChromeDriver version -> 97.0\nTagged selenium/node-chrome:97.0.4692.99-chromedriver-97.0.4692.71-grid-4.34.0-20250727\nTagged selenium/standalone-chrome:97.0.4692.99-chromedriver-97.0.4692.71-grid-4.34.0-20250727\nTagged selenium/node-chrome:97.0.4692.99-chromedriver-97.0.4692.71-20250727\nTagged selenium/standalone-chrome:97.0.4692.99-chromedriver-97.0.4692.71-20250727\nTagged selenium/node-chrome:97.0.4692.99-20250727\nTagged selenium/standalone-chrome:97.0.4692.99-20250727\nTagged selenium/node-chrome:97.0-chromedriver-97.0-grid-4.34.0-20250727\nTagged selenium/standalone-chrome:97.0-chromedriver-97.0-grid-4.34.0-20250727\nTagged selenium/node-chrome:97.0-chromedriver-97.0-20250727\nTagged selenium/standalone-chrome:97.0-chromedriver-97.0-20250727\nTagged selenium/node-chrome:97.0-20250727\nTagged selenium/standalone-chrome:97.0-20250727\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.34.0/chrome_98.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.34.0 20250727 selenium false chrome true\nTagging images for browser chrome, version 4.34.0, build date 20250727, namespace selenium\nSelenium Grid version -> 4.34.0-20250727\nChrome version -> 98.0.4758.102\nShort Chrome version -> 98.0\nChromeDriver version -> 98.0.4758.102\nShort ChromeDriver version -> 98.0\nTagged selenium/node-chrome:98.0.4758.102-chromedriver-98.0.4758.102-grid-4.34.0-20250727\nTagged selenium/standalone-chrome:98.0.4758.102-chromedriver-98.0.4758.102-grid-4.34.0-20250727\nTagged selenium/node-chrome:98.0.4758.102-chromedriver-98.0.4758.102-20250727\nTagged selenium/standalone-chrome:98.0.4758.102-chromedriver-98.0.4758.102-20250727\nTagged selenium/node-chrome:98.0.4758.102-20250727\nTagged selenium/standalone-chrome:98.0.4758.102-20250727\nTagged selenium/node-chrome:98.0-chromedriver-98.0-grid-4.34.0-20250727\nTagged selenium/standalone-chrome:98.0-chromedriver-98.0-grid-4.34.0-20250727\nTagged selenium/node-chrome:98.0-chromedriver-98.0-20250727\nTagged selenium/standalone-chrome:98.0-chromedriver-98.0-20250727\nTagged selenium/node-chrome:98.0-20250727\nTagged selenium/standalone-chrome:98.0-20250727\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.34.0/chrome_99.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.34.0 20250727 selenium false chrome true\nTagging images for browser chrome, version 4.34.0, build date 20250727, namespace selenium\nSelenium Grid version -> 4.34.0-20250727\nChrome version -> 99.0.4844.84\nShort Chrome version -> 99.0\nChromeDriver version -> 99.0.4844.51\nShort ChromeDriver version -> 99.0\nTagged selenium/node-chrome:99.0.4844.84-chromedriver-99.0.4844.51-grid-4.34.0-20250727\nTagged selenium/standalone-chrome:99.0.4844.84-chromedriver-99.0.4844.51-grid-4.34.0-20250727\nTagged selenium/node-chrome:99.0.4844.84-chromedriver-99.0.4844.51-20250727\nTagged selenium/standalone-chrome:99.0.4844.84-chromedriver-99.0.4844.51-20250727\nTagged selenium/node-chrome:99.0.4844.84-20250727\nTagged selenium/standalone-chrome:99.0.4844.84-20250727\nTagged selenium/node-chrome:99.0-chromedriver-99.0-grid-4.34.0-20250727\nTagged selenium/standalone-chrome:99.0-chromedriver-99.0-grid-4.34.0-20250727\nTagged selenium/node-chrome:99.0-chromedriver-99.0-20250727\nTagged selenium/standalone-chrome:99.0-chromedriver-99.0-20250727\nTagged selenium/node-chrome:99.0-20250727\nTagged selenium/standalone-chrome:99.0-20250727\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.34.0/edge_114.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.34.0 20250727 selenium false edge true\nTagging images for browser edge, version 4.34.0, build date 20250727, namespace selenium\nSelenium Grid version -> 4.34.0-20250727\nEdge version -> 114.0.1823.82\nShort Edge version -> 114.0\nEdgeDriver version -> 114.0.1823.82\nShort EdgeDriver version -> 114.0\nTagged selenium/node-edge:114.0.1823.82-edgedriver-114.0.1823.82-grid-4.34.0-20250727\nTagged selenium/standalone-edge:114.0.1823.82-edgedriver-114.0.1823.82-grid-4.34.0-20250727\nTagged selenium/node-edge:114.0.1823.82-edgedriver-114.0.1823.82-20250727\nTagged selenium/standalone-edge:114.0.1823.82-edgedriver-114.0.1823.82-20250727\nTagged selenium/node-edge:114.0.1823.82-20250727\nTagged selenium/standalone-edge:114.0.1823.82-20250727\nTagged selenium/node-edge:114.0-edgedriver-114.0-grid-4.34.0-20250727\nTagged selenium/standalone-edge:114.0-edgedriver-114.0-grid-4.34.0-20250727\nTagged selenium/node-edge:114.0-edgedriver-114.0-20250727\nTagged selenium/standalone-edge:114.0-edgedriver-114.0-20250727\nTagged selenium/node-edge:114.0-20250727\nTagged selenium/standalone-edge:114.0-20250727\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.34.0/edge_115.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.34.0 20250727 selenium false edge true\nTagging images for browser edge, version 4.34.0, build date 20250727, namespace selenium\nSelenium Grid version -> 4.34.0-20250727\nEdge version -> 115.0.1901.203\nShort Edge version -> 115.0\nEdgeDriver version -> 115.0.1901.203\nShort EdgeDriver version -> 115.0\nTagged selenium/node-edge:115.0.1901.203-edgedriver-115.0.1901.203-grid-4.34.0-20250727\nTagged selenium/standalone-edge:115.0.1901.203-edgedriver-115.0.1901.203-grid-4.34.0-20250727\nTagged selenium/node-edge:115.0.1901.203-edgedriver-115.0.1901.203-20250727\nTagged selenium/standalone-edge:115.0.1901.203-edgedriver-115.0.1901.203-20250727\nTagged selenium/node-edge:115.0.1901.203-20250727\nTagged selenium/standalone-edge:115.0.1901.203-20250727\nTagged selenium/node-edge:115.0-edgedriver-115.0-grid-4.34.0-20250727\nTagged selenium/standalone-edge:115.0-edgedriver-115.0-grid-4.34.0-20250727\nTagged selenium/node-edge:115.0-edgedriver-115.0-20250727\nTagged selenium/standalone-edge:115.0-edgedriver-115.0-20250727\nTagged selenium/node-edge:115.0-20250727\nTagged selenium/standalone-edge:115.0-20250727\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.34.0/edge_116.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.34.0 20250727 selenium false edge true\nTagging images for browser edge, version 4.34.0, build date 20250727, namespace selenium\nSelenium Grid version -> 4.34.0-20250727\nEdge version -> 116.0.1938.81\nShort Edge version -> 116.0\nEdgeDriver version -> 116.0.1938.81\nShort EdgeDriver version -> 116.0\nTagged selenium/node-edge:116.0.1938.81-edgedriver-116.0.1938.81-grid-4.34.0-20250727\nTagged selenium/standalone-edge:116.0.1938.81-edgedriver-116.0.1938.81-grid-4.34.0-20250727\nTagged selenium/node-edge:116.0.1938.81-edgedriver-116.0.1938.81-20250727\nTagged selenium/standalone-edge:116.0.1938.81-edgedriver-116.0.1938.81-20250727\nTagged selenium/node-edge:116.0.1938.81-20250727\nTagged selenium/standalone-edge:116.0.1938.81-20250727\nTagged selenium/node-edge:116.0-edgedriver-116.0-grid-4.34.0-20250727\nTagged selenium/standalone-edge:116.0-edgedriver-116.0-grid-4.34.0-20250727\nTagged selenium/node-edge:116.0-edgedriver-116.0-20250727\nTagged selenium/standalone-edge:116.0-edgedriver-116.0-20250727\nTagged selenium/node-edge:116.0-20250727\nTagged selenium/standalone-edge:116.0-20250727\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.34.0/edge_117.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.34.0 20250727 selenium false edge true\nTagging images for browser edge, version 4.34.0, build date 20250727, namespace selenium\nSelenium Grid version -> 4.34.0-20250727\nEdge version -> 117.0.2045.55\nShort Edge version -> 117.0\nEdgeDriver version -> 117.0.2045.55\nShort EdgeDriver version -> 117.0\nTagged selenium/node-edge:117.0.2045.55-edgedriver-117.0.2045.55-grid-4.34.0-20250727\nTagged selenium/standalone-edge:117.0.2045.55-edgedriver-117.0.2045.55-grid-4.34.0-20250727\nTagged selenium/node-edge:117.0.2045.55-edgedriver-117.0.2045.55-20250727\nTagged selenium/standalone-edge:117.0.2045.55-edgedriver-117.0.2045.55-20250727\nTagged selenium/node-edge:117.0.2045.55-20250727\nTagged selenium/standalone-edge:117.0.2045.55-20250727\nTagged selenium/node-edge:117.0-edgedriver-117.0-grid-4.34.0-20250727\nTagged selenium/standalone-edge:117.0-edgedriver-117.0-grid-4.34.0-20250727\nTagged selenium/node-edge:117.0-edgedriver-117.0-20250727\nTagged selenium/standalone-edge:117.0-edgedriver-117.0-20250727\nTagged selenium/node-edge:117.0-20250727\nTagged selenium/standalone-edge:117.0-20250727\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.34.0/edge_118.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.34.0 20250727 selenium false edge true\nTagging images for browser edge, version 4.34.0, build date 20250727, namespace selenium\nSelenium Grid version -> 4.34.0-20250727\nEdge version -> 118.0.2088.76\nShort Edge version -> 118.0\nEdgeDriver version -> 118.0.2088.76\nShort EdgeDriver version -> 118.0\nTagged selenium/node-edge:118.0.2088.76-edgedriver-118.0.2088.76-grid-4.34.0-20250727\nTagged selenium/standalone-edge:118.0.2088.76-edgedriver-118.0.2088.76-grid-4.34.0-20250727\nTagged selenium/node-edge:118.0.2088.76-edgedriver-118.0.2088.76-20250727\nTagged selenium/standalone-edge:118.0.2088.76-edgedriver-118.0.2088.76-20250727\nTagged selenium/node-edge:118.0.2088.76-20250727\nTagged selenium/standalone-edge:118.0.2088.76-20250727\nTagged selenium/node-edge:118.0-edgedriver-118.0-grid-4.34.0-20250727\nTagged selenium/standalone-edge:118.0-edgedriver-118.0-grid-4.34.0-20250727\nTagged selenium/node-edge:118.0-edgedriver-118.0-20250727\nTagged selenium/standalone-edge:118.0-edgedriver-118.0-20250727\nTagged selenium/node-edge:118.0-20250727\nTagged selenium/standalone-edge:118.0-20250727\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.34.0/edge_119.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.34.0 20250727 selenium false edge true\nTagging images for browser edge, version 4.34.0, build date 20250727, namespace selenium\nSelenium Grid version -> 4.34.0-20250727\nEdge version -> 119.0.2151.97\nShort Edge version -> 119.0\nEdgeDriver version -> 119.0.2151.97\nShort EdgeDriver version -> 119.0\nTagged selenium/node-edge:119.0.2151.97-edgedriver-119.0.2151.97-grid-4.34.0-20250727\nTagged selenium/standalone-edge:119.0.2151.97-edgedriver-119.0.2151.97-grid-4.34.0-20250727\nTagged selenium/node-edge:119.0.2151.97-edgedriver-119.0.2151.97-20250727\nTagged selenium/standalone-edge:119.0.2151.97-edgedriver-119.0.2151.97-20250727\nTagged selenium/node-edge:119.0.2151.97-20250727\nTagged selenium/standalone-edge:119.0.2151.97-20250727\nTagged selenium/node-edge:119.0-edgedriver-119.0-grid-4.34.0-20250727\nTagged selenium/standalone-edge:119.0-edgedriver-119.0-grid-4.34.0-20250727\nTagged selenium/node-edge:119.0-edgedriver-119.0-20250727\nTagged selenium/standalone-edge:119.0-edgedriver-119.0-20250727\nTagged selenium/node-edge:119.0-20250727\nTagged selenium/standalone-edge:119.0-20250727\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.34.0/edge_120.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.34.0 20250727 selenium false edge true\nTagging images for browser edge, version 4.34.0, build date 20250727, namespace selenium\nSelenium Grid version -> 4.34.0-20250727\nEdge version -> 120.0.2210.144\nShort Edge version -> 120.0\nEdgeDriver version -> 120.0.2210.144\nShort EdgeDriver version -> 120.0\nTagged selenium/node-edge:120.0.2210.144-edgedriver-120.0.2210.144-grid-4.34.0-20250727\nTagged selenium/standalone-edge:120.0.2210.144-edgedriver-120.0.2210.144-grid-4.34.0-20250727\nTagged selenium/node-edge:120.0.2210.144-edgedriver-120.0.2210.144-20250727\nTagged selenium/standalone-edge:120.0.2210.144-edgedriver-120.0.2210.144-20250727\nTagged selenium/node-edge:120.0.2210.144-20250727\nTagged selenium/standalone-edge:120.0.2210.144-20250727\nTagged selenium/node-edge:120.0-edgedriver-120.0-grid-4.34.0-20250727\nTagged selenium/standalone-edge:120.0-edgedriver-120.0-grid-4.34.0-20250727\nTagged selenium/node-edge:120.0-edgedriver-120.0-20250727\nTagged selenium/standalone-edge:120.0-edgedriver-120.0-20250727\nTagged selenium/node-edge:120.0-20250727\nTagged selenium/standalone-edge:120.0-20250727\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.34.0/edge_121.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.34.0 20250727 selenium false edge true\nTagging images for browser edge, version 4.34.0, build date 20250727, namespace selenium\nSelenium Grid version -> 4.34.0-20250727\nEdge version -> 121.0.2277.128\nShort Edge version -> 121.0\nEdgeDriver version -> 121.0.2277.128\nShort EdgeDriver version -> 121.0\nTagged selenium/node-edge:121.0.2277.128-edgedriver-121.0.2277.128-grid-4.34.0-20250727\nTagged selenium/standalone-edge:121.0.2277.128-edgedriver-121.0.2277.128-grid-4.34.0-20250727\nTagged selenium/node-edge:121.0.2277.128-edgedriver-121.0.2277.128-20250727\nTagged selenium/standalone-edge:121.0.2277.128-edgedriver-121.0.2277.128-20250727\nTagged selenium/node-edge:121.0.2277.128-20250727\nTagged selenium/standalone-edge:121.0.2277.128-20250727\nTagged selenium/node-edge:121.0-edgedriver-121.0-grid-4.34.0-20250727\nTagged selenium/standalone-edge:121.0-edgedriver-121.0-grid-4.34.0-20250727\nTagged selenium/node-edge:121.0-edgedriver-121.0-20250727\nTagged selenium/standalone-edge:121.0-edgedriver-121.0-20250727\nTagged selenium/node-edge:121.0-20250727\nTagged selenium/standalone-edge:121.0-20250727\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.34.0/edge_122.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.34.0 20250727 selenium false edge true\nTagging images for browser edge, version 4.34.0, build date 20250727, namespace selenium\nSelenium Grid version -> 4.34.0-20250727\nEdge version -> 122.0.2365.92\nShort Edge version -> 122.0\nEdgeDriver version -> 122.0.2365.92\nShort EdgeDriver version -> 122.0\nTagged selenium/node-edge:122.0.2365.92-edgedriver-122.0.2365.92-grid-4.34.0-20250727\nTagged selenium/standalone-edge:122.0.2365.92-edgedriver-122.0.2365.92-grid-4.34.0-20250727\nTagged selenium/node-edge:122.0.2365.92-edgedriver-122.0.2365.92-20250727\nTagged selenium/standalone-edge:122.0.2365.92-edgedriver-122.0.2365.92-20250727\nTagged selenium/node-edge:122.0.2365.92-20250727\nTagged selenium/standalone-edge:122.0.2365.92-20250727\nTagged selenium/node-edge:122.0-edgedriver-122.0-grid-4.34.0-20250727\nTagged selenium/standalone-edge:122.0-edgedriver-122.0-grid-4.34.0-20250727\nTagged selenium/node-edge:122.0-edgedriver-122.0-20250727\nTagged selenium/standalone-edge:122.0-edgedriver-122.0-20250727\nTagged selenium/node-edge:122.0-20250727\nTagged selenium/standalone-edge:122.0-20250727\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.34.0/edge_123.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.34.0 20250727 selenium false edge true\nTagging images for browser edge, version 4.34.0, build date 20250727, namespace selenium\nSelenium Grid version -> 4.34.0-20250727\nEdge version -> 123.0.2420.97\nShort Edge version -> 123.0\nEdgeDriver version -> 123.0.2420.97\nShort EdgeDriver version -> 123.0\nTagged selenium/node-edge:123.0.2420.97-edgedriver-123.0.2420.97-grid-4.34.0-20250727\nTagged selenium/standalone-edge:123.0.2420.97-edgedriver-123.0.2420.97-grid-4.34.0-20250727\nTagged selenium/node-edge:123.0.2420.97-edgedriver-123.0.2420.97-20250727\nTagged selenium/standalone-edge:123.0.2420.97-edgedriver-123.0.2420.97-20250727\nTagged selenium/node-edge:123.0.2420.97-20250727\nTagged selenium/standalone-edge:123.0.2420.97-20250727\nTagged selenium/node-edge:123.0-edgedriver-123.0-grid-4.34.0-20250727\nTagged selenium/standalone-edge:123.0-edgedriver-123.0-grid-4.34.0-20250727\nTagged selenium/node-edge:123.0-edgedriver-123.0-20250727\nTagged selenium/standalone-edge:123.0-edgedriver-123.0-20250727\nTagged selenium/node-edge:123.0-20250727\nTagged selenium/standalone-edge:123.0-20250727\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.34.0/edge_124.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.34.0 20250727 selenium false edge true\nTagging images for browser edge, version 4.34.0, build date 20250727, namespace selenium\nSelenium Grid version -> 4.34.0-20250727\nEdge version -> 124.0.2478.109\nShort Edge version -> 124.0\nEdgeDriver version -> 124.0.2478.109\nShort EdgeDriver version -> 124.0\nTagged selenium/node-edge:124.0.2478.109-edgedriver-124.0.2478.109-grid-4.34.0-20250727\nTagged selenium/standalone-edge:124.0.2478.109-edgedriver-124.0.2478.109-grid-4.34.0-20250727\nTagged selenium/node-edge:124.0.2478.109-edgedriver-124.0.2478.109-20250727\nTagged selenium/standalone-edge:124.0.2478.109-edgedriver-124.0.2478.109-20250727\nTagged selenium/node-edge:124.0.2478.109-20250727\nTagged selenium/standalone-edge:124.0.2478.109-20250727\nTagged selenium/node-edge:124.0-edgedriver-124.0-grid-4.34.0-20250727\nTagged selenium/standalone-edge:124.0-edgedriver-124.0-grid-4.34.0-20250727\nTagged selenium/node-edge:124.0-edgedriver-124.0-20250727\nTagged selenium/standalone-edge:124.0-edgedriver-124.0-20250727\nTagged selenium/node-edge:124.0-20250727\nTagged selenium/standalone-edge:124.0-20250727\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.34.0/edge_125.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.34.0 20250727 selenium false edge true\nTagging images for browser edge, version 4.34.0, build date 20250727, namespace selenium\nSelenium Grid version -> 4.34.0-20250727\nEdge version -> 125.0.2535.92\nShort Edge version -> 125.0\nEdgeDriver version -> 125.0.2535.92\nShort EdgeDriver version -> 125.0\nTagged selenium/node-edge:125.0.2535.92-edgedriver-125.0.2535.92-grid-4.34.0-20250727\nTagged selenium/standalone-edge:125.0.2535.92-edgedriver-125.0.2535.92-grid-4.34.0-20250727\nTagged selenium/node-edge:125.0.2535.92-edgedriver-125.0.2535.92-20250727\nTagged selenium/standalone-edge:125.0.2535.92-edgedriver-125.0.2535.92-20250727\nTagged selenium/node-edge:125.0.2535.92-20250727\nTagged selenium/standalone-edge:125.0.2535.92-20250727\nTagged selenium/node-edge:125.0-edgedriver-125.0-grid-4.34.0-20250727\nTagged selenium/standalone-edge:125.0-edgedriver-125.0-grid-4.34.0-20250727\nTagged selenium/node-edge:125.0-edgedriver-125.0-20250727\nTagged selenium/standalone-edge:125.0-edgedriver-125.0-20250727\nTagged selenium/node-edge:125.0-20250727\nTagged selenium/standalone-edge:125.0-20250727\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.34.0/edge_126.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.34.0 20250727 selenium false edge true\nTagging images for browser edge, version 4.34.0, build date 20250727, namespace selenium\nSelenium Grid version -> 4.34.0-20250727\nEdge version -> 126.0.2592.113\nShort Edge version -> 126.0\nEdgeDriver version -> 126.0.2592.123\nShort EdgeDriver version -> 126.0\nTagged selenium/node-edge:126.0.2592.113-edgedriver-126.0.2592.123-grid-4.34.0-20250727\nTagged selenium/standalone-edge:126.0.2592.113-edgedriver-126.0.2592.123-grid-4.34.0-20250727\nTagged selenium/node-edge:126.0.2592.113-edgedriver-126.0.2592.123-20250727\nTagged selenium/standalone-edge:126.0.2592.113-edgedriver-126.0.2592.123-20250727\nTagged selenium/node-edge:126.0.2592.113-20250727\nTagged selenium/standalone-edge:126.0.2592.113-20250727\nTagged selenium/node-edge:126.0-edgedriver-126.0-grid-4.34.0-20250727\nTagged selenium/standalone-edge:126.0-edgedriver-126.0-grid-4.34.0-20250727\nTagged selenium/node-edge:126.0-edgedriver-126.0-20250727\nTagged selenium/standalone-edge:126.0-edgedriver-126.0-20250727\nTagged selenium/node-edge:126.0-20250727\nTagged selenium/standalone-edge:126.0-20250727\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.34.0/edge_127.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.34.0 20250727 selenium false edge true\nTagging images for browser edge, version 4.34.0, build date 20250727, namespace selenium\nSelenium Grid version -> 4.34.0-20250727\nEdge version -> 127.0.2651.105\nShort Edge version -> 127.0\nEdgeDriver version -> 127.0.2651.107\nShort EdgeDriver version -> 127.0\nTagged selenium/node-edge:127.0.2651.105-edgedriver-127.0.2651.107-grid-4.34.0-20250727\nTagged selenium/standalone-edge:127.0.2651.105-edgedriver-127.0.2651.107-grid-4.34.0-20250727\nTagged selenium/node-edge:127.0.2651.105-edgedriver-127.0.2651.107-20250727\nTagged selenium/standalone-edge:127.0.2651.105-edgedriver-127.0.2651.107-20250727\nTagged selenium/node-edge:127.0.2651.105-20250727\nTagged selenium/standalone-edge:127.0.2651.105-20250727\nTagged selenium/node-edge:127.0-edgedriver-127.0-grid-4.34.0-20250727\nTagged selenium/standalone-edge:127.0-edgedriver-127.0-grid-4.34.0-20250727\nTagged selenium/node-edge:127.0-edgedriver-127.0-20250727\nTagged selenium/standalone-edge:127.0-edgedriver-127.0-20250727\nTagged selenium/node-edge:127.0-20250727\nTagged selenium/standalone-edge:127.0-20250727\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.34.0/edge_128.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.34.0 20250727 selenium false edge true\nTagging images for browser edge, version 4.34.0, build date 20250727, namespace selenium\nSelenium Grid version -> 4.34.0-20250727\nEdge version -> 128.0.2739.79\nShort Edge version -> 128.0\nEdgeDriver version -> 128.0.2739.81\nShort EdgeDriver version -> 128.0\nTagged selenium/node-edge:128.0.2739.79-edgedriver-128.0.2739.81-grid-4.34.0-20250727\nTagged selenium/standalone-edge:128.0.2739.79-edgedriver-128.0.2739.81-grid-4.34.0-20250727\nTagged selenium/node-edge:128.0.2739.79-edgedriver-128.0.2739.81-20250727\nTagged selenium/standalone-edge:128.0.2739.79-edgedriver-128.0.2739.81-20250727\nTagged selenium/node-edge:128.0.2739.79-20250727\nTagged selenium/standalone-edge:128.0.2739.79-20250727\nTagged selenium/node-edge:128.0-edgedriver-128.0-grid-4.34.0-20250727\nTagged selenium/standalone-edge:128.0-edgedriver-128.0-grid-4.34.0-20250727\nTagged selenium/node-edge:128.0-edgedriver-128.0-20250727\nTagged selenium/standalone-edge:128.0-edgedriver-128.0-20250727\nTagged selenium/node-edge:128.0-20250727\nTagged selenium/standalone-edge:128.0-20250727\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.34.0/edge_129.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.34.0 20250727 selenium false edge true\nTagging images for browser edge, version 4.34.0, build date 20250727, namespace selenium\nSelenium Grid version -> 4.34.0-20250727\nEdge version -> 129.0.2792.89\nShort Edge version -> 129.0\nEdgeDriver version -> 129.0.2792.98\nShort EdgeDriver version -> 129.0\nTagged selenium/node-edge:129.0.2792.89-edgedriver-129.0.2792.98-grid-4.34.0-20250727\nTagged selenium/standalone-edge:129.0.2792.89-edgedriver-129.0.2792.98-grid-4.34.0-20250727\nTagged selenium/node-edge:129.0.2792.89-edgedriver-129.0.2792.98-20250727\nTagged selenium/standalone-edge:129.0.2792.89-edgedriver-129.0.2792.98-20250727\nTagged selenium/node-edge:129.0.2792.89-20250727\nTagged selenium/standalone-edge:129.0.2792.89-20250727\nTagged selenium/node-edge:129.0-edgedriver-129.0-grid-4.34.0-20250727\nTagged selenium/standalone-edge:129.0-edgedriver-129.0-grid-4.34.0-20250727\nTagged selenium/node-edge:129.0-edgedriver-129.0-20250727\nTagged selenium/standalone-edge:129.0-edgedriver-129.0-20250727\nTagged selenium/node-edge:129.0-20250727\nTagged selenium/standalone-edge:129.0-20250727\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.34.0/edge_130.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.34.0 20250727 selenium false edge true\nTagging images for browser edge, version 4.34.0, build date 20250727, namespace selenium\nSelenium Grid version -> 4.34.0-20250727\nEdge version -> 130.0.2849.80\nShort Edge version -> 130.0\nEdgeDriver version -> 130.0.2849.78\nShort EdgeDriver version -> 130.0\nTagged selenium/node-edge:130.0.2849.80-edgedriver-130.0.2849.78-grid-4.34.0-20250727\nTagged selenium/standalone-edge:130.0.2849.80-edgedriver-130.0.2849.78-grid-4.34.0-20250727\nTagged selenium/node-edge:130.0.2849.80-edgedriver-130.0.2849.78-20250727\nTagged selenium/standalone-edge:130.0.2849.80-edgedriver-130.0.2849.78-20250727\nTagged selenium/node-edge:130.0.2849.80-20250727\nTagged selenium/standalone-edge:130.0.2849.80-20250727\nTagged selenium/node-edge:130.0-edgedriver-130.0-grid-4.34.0-20250727\nTagged selenium/standalone-edge:130.0-edgedriver-130.0-grid-4.34.0-20250727\nTagged selenium/node-edge:130.0-edgedriver-130.0-20250727\nTagged selenium/standalone-edge:130.0-edgedriver-130.0-20250727\nTagged selenium/node-edge:130.0-20250727\nTagged selenium/standalone-edge:130.0-20250727\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.34.0/edge_131.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.34.0 20250727 selenium false edge true\nTagging images for browser edge, version 4.34.0, build date 20250727, namespace selenium\nSelenium Grid version -> 4.34.0-20250727\nEdge version -> 131.0.2903.147\nShort Edge version -> 131.0\nEdgeDriver version -> 131.0.2903.147\nShort EdgeDriver version -> 131.0\nTagged selenium/node-edge:131.0.2903.147-edgedriver-131.0.2903.147-grid-4.34.0-20250727\nTagged selenium/standalone-edge:131.0.2903.147-edgedriver-131.0.2903.147-grid-4.34.0-20250727\nTagged selenium/node-edge:131.0.2903.147-edgedriver-131.0.2903.147-20250727\nTagged selenium/standalone-edge:131.0.2903.147-edgedriver-131.0.2903.147-20250727\nTagged selenium/node-edge:131.0.2903.147-20250727\nTagged selenium/standalone-edge:131.0.2903.147-20250727\nTagged selenium/node-edge:131.0-edgedriver-131.0-grid-4.34.0-20250727\nTagged selenium/standalone-edge:131.0-edgedriver-131.0-grid-4.34.0-20250727\nTagged selenium/node-edge:131.0-edgedriver-131.0-20250727\nTagged selenium/standalone-edge:131.0-edgedriver-131.0-20250727\nTagged selenium/node-edge:131.0-20250727\nTagged selenium/standalone-edge:131.0-20250727\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.34.0/edge_132.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.34.0 20250727 selenium false edge true\nTagging images for browser edge, version 4.34.0, build date 20250727, namespace selenium\nSelenium Grid version -> 4.34.0-20250727\nEdge version -> 132.0.2957.140\nShort Edge version -> 132.0\nEdgeDriver version -> 132.0.2957.140\nShort EdgeDriver version -> 132.0\nTagged selenium/node-edge:132.0.2957.140-edgedriver-132.0.2957.140-grid-4.34.0-20250727\nTagged selenium/standalone-edge:132.0.2957.140-edgedriver-132.0.2957.140-grid-4.34.0-20250727\nTagged selenium/node-edge:132.0.2957.140-edgedriver-132.0.2957.140-20250727\nTagged selenium/standalone-edge:132.0.2957.140-edgedriver-132.0.2957.140-20250727\nTagged selenium/node-edge:132.0.2957.140-20250727\nTagged selenium/standalone-edge:132.0.2957.140-20250727\nTagged selenium/node-edge:132.0-edgedriver-132.0-grid-4.34.0-20250727\nTagged selenium/standalone-edge:132.0-edgedriver-132.0-grid-4.34.0-20250727\nTagged selenium/node-edge:132.0-edgedriver-132.0-20250727\nTagged selenium/standalone-edge:132.0-edgedriver-132.0-20250727\nTagged selenium/node-edge:132.0-20250727\nTagged selenium/standalone-edge:132.0-20250727\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.34.0/edge_133.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.34.0 20250727 selenium false edge true\nTagging images for browser edge, version 4.34.0, build date 20250727, namespace selenium\nSelenium Grid version -> 4.34.0-20250727\nEdge version -> 133.0.3065.92\nShort Edge version -> 133.0\nEdgeDriver version -> 133.0.3065.92\nShort EdgeDriver version -> 133.0\nTagged selenium/node-edge:133.0.3065.92-edgedriver-133.0.3065.92-grid-4.34.0-20250727\nTagged selenium/standalone-edge:133.0.3065.92-edgedriver-133.0.3065.92-grid-4.34.0-20250727\nTagged selenium/node-edge:133.0.3065.92-edgedriver-133.0.3065.92-20250727\nTagged selenium/standalone-edge:133.0.3065.92-edgedriver-133.0.3065.92-20250727\nTagged selenium/node-edge:133.0.3065.92-20250727\nTagged selenium/standalone-edge:133.0.3065.92-20250727\nTagged selenium/node-edge:133.0-edgedriver-133.0-grid-4.34.0-20250727\nTagged selenium/standalone-edge:133.0-edgedriver-133.0-grid-4.34.0-20250727\nTagged selenium/node-edge:133.0-edgedriver-133.0-20250727\nTagged selenium/standalone-edge:133.0-edgedriver-133.0-20250727\nTagged selenium/node-edge:133.0-20250727\nTagged selenium/standalone-edge:133.0-20250727\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.34.0/edge_134.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.34.0 20250727 selenium false edge true\nTagging images for browser edge, version 4.34.0, build date 20250727, namespace selenium\nSelenium Grid version -> 4.34.0-20250727\nEdge version -> 134.0.3124.95\nShort Edge version -> 134.0\nEdgeDriver version -> 134.0.3124.95\nShort EdgeDriver version -> 134.0\nTagged selenium/node-edge:134.0.3124.95-edgedriver-134.0.3124.95-grid-4.34.0-20250727\nTagged selenium/standalone-edge:134.0.3124.95-edgedriver-134.0.3124.95-grid-4.34.0-20250727\nTagged selenium/node-edge:134.0.3124.95-edgedriver-134.0.3124.95-20250727\nTagged selenium/standalone-edge:134.0.3124.95-edgedriver-134.0.3124.95-20250727\nTagged selenium/node-edge:134.0.3124.95-20250727\nTagged selenium/standalone-edge:134.0.3124.95-20250727\nTagged selenium/node-edge:134.0-edgedriver-134.0-grid-4.34.0-20250727\nTagged selenium/standalone-edge:134.0-edgedriver-134.0-grid-4.34.0-20250727\nTagged selenium/node-edge:134.0-edgedriver-134.0-20250727\nTagged selenium/standalone-edge:134.0-edgedriver-134.0-20250727\nTagged selenium/node-edge:134.0-20250727\nTagged selenium/standalone-edge:134.0-20250727\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.34.0/edge_135.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.34.0 20250727 selenium false edge true\nTagging images for browser edge, version 4.34.0, build date 20250727, namespace selenium\nSelenium Grid version -> 4.34.0-20250727\nEdge version -> 135.0.3179.98\nShort Edge version -> 135.0\nEdgeDriver version -> 135.0.3179.98\nShort EdgeDriver version -> 135.0\nTagged selenium/node-edge:135.0.3179.98-edgedriver-135.0.3179.98-grid-4.34.0-20250727\nTagged selenium/standalone-edge:135.0.3179.98-edgedriver-135.0.3179.98-grid-4.34.0-20250727\nTagged selenium/node-edge:135.0.3179.98-edgedriver-135.0.3179.98-20250727\nTagged selenium/standalone-edge:135.0.3179.98-edgedriver-135.0.3179.98-20250727\nTagged selenium/node-edge:135.0.3179.98-20250727\nTagged selenium/standalone-edge:135.0.3179.98-20250727\nTagged selenium/node-edge:135.0-edgedriver-135.0-grid-4.34.0-20250727\nTagged selenium/standalone-edge:135.0-edgedriver-135.0-grid-4.34.0-20250727\nTagged selenium/node-edge:135.0-edgedriver-135.0-20250727\nTagged selenium/standalone-edge:135.0-edgedriver-135.0-20250727\nTagged selenium/node-edge:135.0-20250727\nTagged selenium/standalone-edge:135.0-20250727\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.34.0/edge_136.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.34.0 20250727 selenium false edge true\nTagging images for browser edge, version 4.34.0, build date 20250727, namespace selenium\nSelenium Grid version -> 4.34.0-20250727\nEdge version -> 136.0.3240.92\nShort Edge version -> 136.0\nEdgeDriver version -> 136.0.3240.92\nShort EdgeDriver version -> 136.0\nTagged selenium/node-edge:136.0.3240.92-edgedriver-136.0.3240.92-grid-4.34.0-20250727\nTagged selenium/standalone-edge:136.0.3240.92-edgedriver-136.0.3240.92-grid-4.34.0-20250727\nTagged selenium/node-edge:136.0.3240.92-edgedriver-136.0.3240.92-20250727\nTagged selenium/standalone-edge:136.0.3240.92-edgedriver-136.0.3240.92-20250727\nTagged selenium/node-edge:136.0.3240.92-20250727\nTagged selenium/standalone-edge:136.0.3240.92-20250727\nTagged selenium/node-edge:136.0-edgedriver-136.0-grid-4.34.0-20250727\nTagged selenium/standalone-edge:136.0-edgedriver-136.0-grid-4.34.0-20250727\nTagged selenium/node-edge:136.0-edgedriver-136.0-20250727\nTagged selenium/standalone-edge:136.0-edgedriver-136.0-20250727\nTagged selenium/node-edge:136.0-20250727\nTagged selenium/standalone-edge:136.0-20250727\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.34.0/edge_137.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.34.0 20250727 selenium false edge true\nTagging images for browser edge, version 4.34.0, build date 20250727, namespace selenium\nSelenium Grid version -> 4.34.0-20250727\nEdge version -> 137.0.3296.93\nShort Edge version -> 137.0\nEdgeDriver version -> 137.0.3296.93\nShort EdgeDriver version -> 137.0\nTagged selenium/node-edge:137.0.3296.93-edgedriver-137.0.3296.93-grid-4.34.0-20250727\nTagged selenium/standalone-edge:137.0.3296.93-edgedriver-137.0.3296.93-grid-4.34.0-20250727\nTagged selenium/node-edge:137.0.3296.93-edgedriver-137.0.3296.93-20250727\nTagged selenium/standalone-edge:137.0.3296.93-edgedriver-137.0.3296.93-20250727\nTagged selenium/node-edge:137.0.3296.93-20250727\nTagged selenium/standalone-edge:137.0.3296.93-20250727\nTagged selenium/node-edge:137.0-edgedriver-137.0-grid-4.34.0-20250727\nTagged selenium/standalone-edge:137.0-edgedriver-137.0-grid-4.34.0-20250727\nTagged selenium/node-edge:137.0-edgedriver-137.0-20250727\nTagged selenium/standalone-edge:137.0-edgedriver-137.0-20250727\nTagged selenium/node-edge:137.0-20250727\nTagged selenium/standalone-edge:137.0-20250727\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.34.0/firefox_100.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.34.0 20250727 selenium false firefox true\nTagging images for browser firefox, version 4.34.0, build date 20250727, namespace selenium\nSelenium Grid version -> 4.34.0-20250727\nFirefox version -> 100.0.2\nShort Firefox version -> 100.0\nGeckoDriver version -> 0.36.0\nShort GeckoDriver version -> 0.36\nTagged selenium/node-firefox:100.0.2-geckodriver-0.36.0-grid-4.34.0-20250727\nTagged selenium/standalone-firefox:100.0.2-geckodriver-0.36.0-grid-4.34.0-20250727\nTagged selenium/node-firefox:100.0.2-geckodriver-0.36.0-20250727\nTagged selenium/standalone-firefox:100.0.2-geckodriver-0.36.0-20250727\nTagged selenium/node-firefox:100.0.2-20250727\nTagged selenium/standalone-firefox:100.0.2-20250727\nTagged selenium/node-firefox:100.0-geckodriver-0.36-grid-4.34.0-20250727\nTagged selenium/standalone-firefox:100.0-geckodriver-0.36-grid-4.34.0-20250727\nTagged selenium/node-firefox:100.0-geckodriver-0.36-20250727\nTagged selenium/standalone-firefox:100.0-geckodriver-0.36-20250727\nTagged selenium/node-firefox:100.0-20250727\nTagged selenium/standalone-firefox:100.0-20250727\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.34.0/firefox_101.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.34.0 20250727 selenium false firefox true\nTagging images for browser firefox, version 4.34.0, build date 20250727, namespace selenium\nSelenium Grid version -> 4.34.0-20250727\nFirefox version -> 101.0.1\nShort Firefox version -> 101.0\nGeckoDriver version -> 0.36.0\nShort GeckoDriver version -> 0.36\nTagged selenium/node-firefox:101.0.1-geckodriver-0.36.0-grid-4.34.0-20250727\nTagged selenium/standalone-firefox:101.0.1-geckodriver-0.36.0-grid-4.34.0-20250727\nTagged selenium/node-firefox:101.0.1-geckodriver-0.36.0-20250727\nTagged selenium/standalone-firefox:101.0.1-geckodriver-0.36.0-20250727\nTagged selenium/node-firefox:101.0.1-20250727\nTagged selenium/standalone-firefox:101.0.1-20250727\nTagged selenium/node-firefox:101.0-geckodriver-0.36-grid-4.34.0-20250727\nTagged selenium/standalone-firefox:101.0-geckodriver-0.36-grid-4.34.0-20250727\nTagged selenium/node-firefox:101.0-geckodriver-0.36-20250727\nTagged selenium/standalone-firefox:101.0-geckodriver-0.36-20250727\nTagged selenium/node-firefox:101.0-20250727\nTagged selenium/standalone-firefox:101.0-20250727\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.34.0/firefox_102.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.34.0 20250727 selenium false firefox true\nTagging images for browser firefox, version 4.34.0, build date 20250727, namespace selenium\nSelenium Grid version -> 4.34.0-20250727\nFirefox version -> 102.0.1\nShort Firefox version -> 102.0\nGeckoDriver version -> 0.36.0\nShort GeckoDriver version -> 0.36\nTagged selenium/node-firefox:102.0.1-geckodriver-0.36.0-grid-4.34.0-20250727\nTagged selenium/standalone-firefox:102.0.1-geckodriver-0.36.0-grid-4.34.0-20250727\nTagged selenium/node-firefox:102.0.1-geckodriver-0.36.0-20250727\nTagged selenium/standalone-firefox:102.0.1-geckodriver-0.36.0-20250727\nTagged selenium/node-firefox:102.0.1-20250727\nTagged selenium/standalone-firefox:102.0.1-20250727\nTagged selenium/node-firefox:102.0-geckodriver-0.36-grid-4.34.0-20250727\nTagged selenium/standalone-firefox:102.0-geckodriver-0.36-grid-4.34.0-20250727\nTagged selenium/node-firefox:102.0-geckodriver-0.36-20250727\nTagged selenium/standalone-firefox:102.0-geckodriver-0.36-20250727\nTagged selenium/node-firefox:102.0-20250727\nTagged selenium/standalone-firefox:102.0-20250727\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.34.0/firefox_103.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.34.0 20250727 selenium false firefox true\nTagging images for browser firefox, version 4.34.0, build date 20250727, namespace selenium\nSelenium Grid version -> 4.34.0-20250727\nFirefox version -> 103.0.2\nShort Firefox version -> 103.0\nGeckoDriver version -> 0.36.0\nShort GeckoDriver version -> 0.36\nTagged selenium/node-firefox:103.0.2-geckodriver-0.36.0-grid-4.34.0-20250727\nTagged selenium/standalone-firefox:103.0.2-geckodriver-0.36.0-grid-4.34.0-20250727\nTagged selenium/node-firefox:103.0.2-geckodriver-0.36.0-20250727\nTagged selenium/standalone-firefox:103.0.2-geckodriver-0.36.0-20250727\nTagged selenium/node-firefox:103.0.2-20250727\nTagged selenium/standalone-firefox:103.0.2-20250727\nTagged selenium/node-firefox:103.0-geckodriver-0.36-grid-4.34.0-20250727\nTagged selenium/standalone-firefox:103.0-geckodriver-0.36-grid-4.34.0-20250727\nTagged selenium/node-firefox:103.0-geckodriver-0.36-20250727\nTagged selenium/standalone-firefox:103.0-geckodriver-0.36-20250727\nTagged selenium/node-firefox:103.0-20250727\nTagged selenium/standalone-firefox:103.0-20250727\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.34.0/firefox_104.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.34.0 20250727 selenium false firefox true\nTagging images for browser firefox, version 4.34.0, build date 20250727, namespace selenium\nSelenium Grid version -> 4.34.0-20250727\nFirefox version -> 104.0.2\nShort Firefox version -> 104.0\nGeckoDriver version -> 0.36.0\nShort GeckoDriver version -> 0.36\nTagged selenium/node-firefox:104.0.2-geckodriver-0.36.0-grid-4.34.0-20250727\nTagged selenium/standalone-firefox:104.0.2-geckodriver-0.36.0-grid-4.34.0-20250727\nTagged selenium/node-firefox:104.0.2-geckodriver-0.36.0-20250727\nTagged selenium/standalone-firefox:104.0.2-geckodriver-0.36.0-20250727\nTagged selenium/node-firefox:104.0.2-20250727\nTagged selenium/standalone-firefox:104.0.2-20250727\nTagged selenium/node-firefox:104.0-geckodriver-0.36-grid-4.34.0-20250727\nTagged selenium/standalone-firefox:104.0-geckodriver-0.36-grid-4.34.0-20250727\nTagged selenium/node-firefox:104.0-geckodriver-0.36-20250727\nTagged selenium/standalone-firefox:104.0-geckodriver-0.36-20250727\nTagged selenium/node-firefox:104.0-20250727\nTagged selenium/standalone-firefox:104.0-20250727\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.34.0/firefox_105.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.34.0 20250727 selenium false firefox true\nTagging images for browser firefox, version 4.34.0, build date 20250727, namespace selenium\nSelenium Grid version -> 4.34.0-20250727\nFirefox version -> 105.0.3\nShort Firefox version -> 105.0\nGeckoDriver version -> 0.36.0\nShort GeckoDriver version -> 0.36\nTagged selenium/node-firefox:105.0.3-geckodriver-0.36.0-grid-4.34.0-20250727\nTagged selenium/standalone-firefox:105.0.3-geckodriver-0.36.0-grid-4.34.0-20250727\nTagged selenium/node-firefox:105.0.3-geckodriver-0.36.0-20250727\nTagged selenium/standalone-firefox:105.0.3-geckodriver-0.36.0-20250727\nTagged selenium/node-firefox:105.0.3-20250727\nTagged selenium/standalone-firefox:105.0.3-20250727\nTagged selenium/node-firefox:105.0-geckodriver-0.36-grid-4.34.0-20250727\nTagged selenium/standalone-firefox:105.0-geckodriver-0.36-grid-4.34.0-20250727\nTagged selenium/node-firefox:105.0-geckodriver-0.36-20250727\nTagged selenium/standalone-firefox:105.0-geckodriver-0.36-20250727\nTagged selenium/node-firefox:105.0-20250727\nTagged selenium/standalone-firefox:105.0-20250727\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.34.0/firefox_106.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.34.0 20250727 selenium false firefox true\nTagging images for browser firefox, version 4.34.0, build date 20250727, namespace selenium\nSelenium Grid version -> 4.34.0-20250727\nFirefox version -> 106.0.5\nShort Firefox version -> 106.0\nGeckoDriver version -> 0.36.0\nShort GeckoDriver version -> 0.36\nTagged selenium/node-firefox:106.0.5-geckodriver-0.36.0-grid-4.34.0-20250727\nTagged selenium/standalone-firefox:106.0.5-geckodriver-0.36.0-grid-4.34.0-20250727\nTagged selenium/node-firefox:106.0.5-geckodriver-0.36.0-20250727\nTagged selenium/standalone-firefox:106.0.5-geckodriver-0.36.0-20250727\nTagged selenium/node-firefox:106.0.5-20250727\nTagged selenium/standalone-firefox:106.0.5-20250727\nTagged selenium/node-firefox:106.0-geckodriver-0.36-grid-4.34.0-20250727\nTagged selenium/standalone-firefox:106.0-geckodriver-0.36-grid-4.34.0-20250727\nTagged selenium/node-firefox:106.0-geckodriver-0.36-20250727\nTagged selenium/standalone-firefox:106.0-geckodriver-0.36-20250727\nTagged selenium/node-firefox:106.0-20250727\nTagged selenium/standalone-firefox:106.0-20250727\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.34.0/firefox_107.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.34.0 20250727 selenium false firefox true\nTagging images for browser firefox, version 4.34.0, build date 20250727, namespace selenium\nSelenium Grid version -> 4.34.0-20250727\nFirefox version -> 107.0.1\nShort Firefox version -> 107.0\nGeckoDriver version -> 0.36.0\nShort GeckoDriver version -> 0.36\nTagged selenium/node-firefox:107.0.1-geckodriver-0.36.0-grid-4.34.0-20250727\nTagged selenium/standalone-firefox:107.0.1-geckodriver-0.36.0-grid-4.34.0-20250727\nTagged selenium/node-firefox:107.0.1-geckodriver-0.36.0-20250727\nTagged selenium/standalone-firefox:107.0.1-geckodriver-0.36.0-20250727\nTagged selenium/node-firefox:107.0.1-20250727\nTagged selenium/standalone-firefox:107.0.1-20250727\nTagged selenium/node-firefox:107.0-geckodriver-0.36-grid-4.34.0-20250727\nTagged selenium/standalone-firefox:107.0-geckodriver-0.36-grid-4.34.0-20250727\nTagged selenium/node-firefox:107.0-geckodriver-0.36-20250727\nTagged selenium/standalone-firefox:107.0-geckodriver-0.36-20250727\nTagged selenium/node-firefox:107.0-20250727\nTagged selenium/standalone-firefox:107.0-20250727\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.34.0/firefox_108.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.34.0 20250727 selenium false firefox true\nTagging images for browser firefox, version 4.34.0, build date 20250727, namespace selenium\nSelenium Grid version -> 4.34.0-20250727\nFirefox version -> 108.0.2\nShort Firefox version -> 108.0\nGeckoDriver version -> 0.36.0\nShort GeckoDriver version -> 0.36\nTagged selenium/node-firefox:108.0.2-geckodriver-0.36.0-grid-4.34.0-20250727\nTagged selenium/standalone-firefox:108.0.2-geckodriver-0.36.0-grid-4.34.0-20250727\nTagged selenium/node-firefox:108.0.2-geckodriver-0.36.0-20250727\nTagged selenium/standalone-firefox:108.0.2-geckodriver-0.36.0-20250727\nTagged selenium/node-firefox:108.0.2-20250727\nTagged selenium/standalone-firefox:108.0.2-20250727\nTagged selenium/node-firefox:108.0-geckodriver-0.36-grid-4.34.0-20250727\nTagged selenium/standalone-firefox:108.0-geckodriver-0.36-grid-4.34.0-20250727\nTagged selenium/node-firefox:108.0-geckodriver-0.36-20250727\nTagged selenium/standalone-firefox:108.0-geckodriver-0.36-20250727\nTagged selenium/node-firefox:108.0-20250727\nTagged selenium/standalone-firefox:108.0-20250727\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.34.0/firefox_109.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.34.0 20250727 selenium false firefox true\nTagging images for browser firefox, version 4.34.0, build date 20250727, namespace selenium\nSelenium Grid version -> 4.34.0-20250727\nFirefox version -> 109.0.1\nShort Firefox version -> 109.0\nGeckoDriver version -> 0.36.0\nShort GeckoDriver version -> 0.36\nTagged selenium/node-firefox:109.0.1-geckodriver-0.36.0-grid-4.34.0-20250727\nTagged selenium/standalone-firefox:109.0.1-geckodriver-0.36.0-grid-4.34.0-20250727\nTagged selenium/node-firefox:109.0.1-geckodriver-0.36.0-20250727\nTagged selenium/standalone-firefox:109.0.1-geckodriver-0.36.0-20250727\nTagged selenium/node-firefox:109.0.1-20250727\nTagged selenium/standalone-firefox:109.0.1-20250727\nTagged selenium/node-firefox:109.0-geckodriver-0.36-grid-4.34.0-20250727\nTagged selenium/standalone-firefox:109.0-geckodriver-0.36-grid-4.34.0-20250727\nTagged selenium/node-firefox:109.0-geckodriver-0.36-20250727\nTagged selenium/standalone-firefox:109.0-geckodriver-0.36-20250727\nTagged selenium/node-firefox:109.0-20250727\nTagged selenium/standalone-firefox:109.0-20250727\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.34.0/firefox_110.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.34.0 20250727 selenium false firefox true\nTagging images for browser firefox, version 4.34.0, build date 20250727, namespace selenium\nSelenium Grid version -> 4.34.0-20250727\nFirefox version -> 110.0.1\nShort Firefox version -> 110.0\nGeckoDriver version -> 0.36.0\nShort GeckoDriver version -> 0.36\nTagged selenium/node-firefox:110.0.1-geckodriver-0.36.0-grid-4.34.0-20250727\nTagged selenium/standalone-firefox:110.0.1-geckodriver-0.36.0-grid-4.34.0-20250727\nTagged selenium/node-firefox:110.0.1-geckodriver-0.36.0-20250727\nTagged selenium/standalone-firefox:110.0.1-geckodriver-0.36.0-20250727\nTagged selenium/node-firefox:110.0.1-20250727\nTagged selenium/standalone-firefox:110.0.1-20250727\nTagged selenium/node-firefox:110.0-geckodriver-0.36-grid-4.34.0-20250727\nTagged selenium/standalone-firefox:110.0-geckodriver-0.36-grid-4.34.0-20250727\nTagged selenium/node-firefox:110.0-geckodriver-0.36-20250727\nTagged selenium/standalone-firefox:110.0-geckodriver-0.36-20250727\nTagged selenium/node-firefox:110.0-20250727\nTagged selenium/standalone-firefox:110.0-20250727\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.34.0/firefox_111.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.34.0 20250727 selenium false firefox true\nTagging images for browser firefox, version 4.34.0, build date 20250727, namespace selenium\nSelenium Grid version -> 4.34.0-20250727\nFirefox version -> 111.0.1\nShort Firefox version -> 111.0\nGeckoDriver version -> 0.36.0\nShort GeckoDriver version -> 0.36\nTagged selenium/node-firefox:111.0.1-geckodriver-0.36.0-grid-4.34.0-20250727\nTagged selenium/standalone-firefox:111.0.1-geckodriver-0.36.0-grid-4.34.0-20250727\nTagged selenium/node-firefox:111.0.1-geckodriver-0.36.0-20250727\nTagged selenium/standalone-firefox:111.0.1-geckodriver-0.36.0-20250727\nTagged selenium/node-firefox:111.0.1-20250727\nTagged selenium/standalone-firefox:111.0.1-20250727\nTagged selenium/node-firefox:111.0-geckodriver-0.36-grid-4.34.0-20250727\nTagged selenium/standalone-firefox:111.0-geckodriver-0.36-grid-4.34.0-20250727\nTagged selenium/node-firefox:111.0-geckodriver-0.36-20250727\nTagged selenium/standalone-firefox:111.0-geckodriver-0.36-20250727\nTagged selenium/node-firefox:111.0-20250727\nTagged selenium/standalone-firefox:111.0-20250727\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.34.0/firefox_112.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.34.0 20250727 selenium false firefox true\nTagging images for browser firefox, version 4.34.0, build date 20250727, namespace selenium\nSelenium Grid version -> 4.34.0-20250727\nFirefox version -> 112.0.2\nShort Firefox version -> 112.0\nGeckoDriver version -> 0.36.0\nShort GeckoDriver version -> 0.36\nTagged selenium/node-firefox:112.0.2-geckodriver-0.36.0-grid-4.34.0-20250727\nTagged selenium/standalone-firefox:112.0.2-geckodriver-0.36.0-grid-4.34.0-20250727\nTagged selenium/node-firefox:112.0.2-geckodriver-0.36.0-20250727\nTagged selenium/standalone-firefox:112.0.2-geckodriver-0.36.0-20250727\nTagged selenium/node-firefox:112.0.2-20250727\nTagged selenium/standalone-firefox:112.0.2-20250727\nTagged selenium/node-firefox:112.0-geckodriver-0.36-grid-4.34.0-20250727\nTagged selenium/standalone-firefox:112.0-geckodriver-0.36-grid-4.34.0-20250727\nTagged selenium/node-firefox:112.0-geckodriver-0.36-20250727\nTagged selenium/standalone-firefox:112.0-geckodriver-0.36-20250727\nTagged selenium/node-firefox:112.0-20250727\nTagged selenium/standalone-firefox:112.0-20250727\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.34.0/firefox_113.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.34.0 20250727 selenium false firefox true\nTagging images for browser firefox, version 4.34.0, build date 20250727, namespace selenium\nSelenium Grid version -> 4.34.0-20250727\nFirefox version -> 113.0.2\nShort Firefox version -> 113.0\nGeckoDriver version -> 0.36.0\nShort GeckoDriver version -> 0.36\nTagged selenium/node-firefox:113.0.2-geckodriver-0.36.0-grid-4.34.0-20250727\nTagged selenium/standalone-firefox:113.0.2-geckodriver-0.36.0-grid-4.34.0-20250727\nTagged selenium/node-firefox:113.0.2-geckodriver-0.36.0-20250727\nTagged selenium/standalone-firefox:113.0.2-geckodriver-0.36.0-20250727\nTagged selenium/node-firefox:113.0.2-20250727\nTagged selenium/standalone-firefox:113.0.2-20250727\nTagged selenium/node-firefox:113.0-geckodriver-0.36-grid-4.34.0-20250727\nTagged selenium/standalone-firefox:113.0-geckodriver-0.36-grid-4.34.0-20250727\nTagged selenium/node-firefox:113.0-geckodriver-0.36-20250727\nTagged selenium/standalone-firefox:113.0-geckodriver-0.36-20250727\nTagged selenium/node-firefox:113.0-20250727\nTagged selenium/standalone-firefox:113.0-20250727\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.34.0/firefox_114.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.34.0 20250727 selenium false firefox true\nTagging images for browser firefox, version 4.34.0, build date 20250727, namespace selenium\nSelenium Grid version -> 4.34.0-20250727\nFirefox version -> 114.0.2\nShort Firefox version -> 114.0\nGeckoDriver version -> 0.36.0\nShort GeckoDriver version -> 0.36\nTagged selenium/node-firefox:114.0.2-geckodriver-0.36.0-grid-4.34.0-20250727\nTagged selenium/standalone-firefox:114.0.2-geckodriver-0.36.0-grid-4.34.0-20250727\nTagged selenium/node-firefox:114.0.2-geckodriver-0.36.0-20250727\nTagged selenium/standalone-firefox:114.0.2-geckodriver-0.36.0-20250727\nTagged selenium/node-firefox:114.0.2-20250727\nTagged selenium/standalone-firefox:114.0.2-20250727\nTagged selenium/node-firefox:114.0-geckodriver-0.36-grid-4.34.0-20250727\nTagged selenium/standalone-firefox:114.0-geckodriver-0.36-grid-4.34.0-20250727\nTagged selenium/node-firefox:114.0-geckodriver-0.36-20250727\nTagged selenium/standalone-firefox:114.0-geckodriver-0.36-20250727\nTagged selenium/node-firefox:114.0-20250727\nTagged selenium/standalone-firefox:114.0-20250727\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.34.0/firefox_115.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.34.0 20250727 selenium false firefox true\nTagging images for browser firefox, version 4.34.0, build date 20250727, namespace selenium\nSelenium Grid version -> 4.34.0-20250727\nFirefox version -> 115.0.3\nShort Firefox version -> 115.0\nGeckoDriver version -> 0.36.0\nShort GeckoDriver version -> 0.36\nTagged selenium/node-firefox:115.0.3-geckodriver-0.36.0-grid-4.34.0-20250727\nTagged selenium/standalone-firefox:115.0.3-geckodriver-0.36.0-grid-4.34.0-20250727\nTagged selenium/node-firefox:115.0.3-geckodriver-0.36.0-20250727\nTagged selenium/standalone-firefox:115.0.3-geckodriver-0.36.0-20250727\nTagged selenium/node-firefox:115.0.3-20250727\nTagged selenium/standalone-firefox:115.0.3-20250727\nTagged selenium/node-firefox:115.0-geckodriver-0.36-grid-4.34.0-20250727\nTagged selenium/standalone-firefox:115.0-geckodriver-0.36-grid-4.34.0-20250727\nTagged selenium/node-firefox:115.0-geckodriver-0.36-20250727\nTagged selenium/standalone-firefox:115.0-geckodriver-0.36-20250727\nTagged selenium/node-firefox:115.0-20250727\nTagged selenium/standalone-firefox:115.0-20250727\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.34.0/firefox_116.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.34.0 20250727 selenium false firefox true\nTagging images for browser firefox, version 4.34.0, build date 20250727, namespace selenium\nSelenium Grid version -> 4.34.0-20250727\nFirefox version -> 116.0.3\nShort Firefox version -> 116.0\nGeckoDriver version -> 0.36.0\nShort GeckoDriver version -> 0.36\nTagged selenium/node-firefox:116.0.3-geckodriver-0.36.0-grid-4.34.0-20250727\nTagged selenium/standalone-firefox:116.0.3-geckodriver-0.36.0-grid-4.34.0-20250727\nTagged selenium/node-firefox:116.0.3-geckodriver-0.36.0-20250727\nTagged selenium/standalone-firefox:116.0.3-geckodriver-0.36.0-20250727\nTagged selenium/node-firefox:116.0.3-20250727\nTagged selenium/standalone-firefox:116.0.3-20250727\nTagged selenium/node-firefox:116.0-geckodriver-0.36-grid-4.34.0-20250727\nTagged selenium/standalone-firefox:116.0-geckodriver-0.36-grid-4.34.0-20250727\nTagged selenium/node-firefox:116.0-geckodriver-0.36-20250727\nTagged selenium/standalone-firefox:116.0-geckodriver-0.36-20250727\nTagged selenium/node-firefox:116.0-20250727\nTagged selenium/standalone-firefox:116.0-20250727\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.34.0/firefox_117.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.34.0 20250727 selenium false firefox true\nTagging images for browser firefox, version 4.34.0, build date 20250727, namespace selenium\nSelenium Grid version -> 4.34.0-20250727\nFirefox version -> 117.0.1\nShort Firefox version -> 117.0\nGeckoDriver version -> 0.36.0\nShort GeckoDriver version -> 0.36\nTagged selenium/node-firefox:117.0.1-geckodriver-0.36.0-grid-4.34.0-20250727\nTagged selenium/standalone-firefox:117.0.1-geckodriver-0.36.0-grid-4.34.0-20250727\nTagged selenium/node-firefox:117.0.1-geckodriver-0.36.0-20250727\nTagged selenium/standalone-firefox:117.0.1-geckodriver-0.36.0-20250727\nTagged selenium/node-firefox:117.0.1-20250727\nTagged selenium/standalone-firefox:117.0.1-20250727\nTagged selenium/node-firefox:117.0-geckodriver-0.36-grid-4.34.0-20250727\nTagged selenium/standalone-firefox:117.0-geckodriver-0.36-grid-4.34.0-20250727\nTagged selenium/node-firefox:117.0-geckodriver-0.36-20250727\nTagged selenium/standalone-firefox:117.0-geckodriver-0.36-20250727\nTagged selenium/node-firefox:117.0-20250727\nTagged selenium/standalone-firefox:117.0-20250727\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.34.0/firefox_118.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.34.0 20250727 selenium false firefox true\nTagging images for browser firefox, version 4.34.0, build date 20250727, namespace selenium\nSelenium Grid version -> 4.34.0-20250727\nFirefox version -> 118.0.2\nShort Firefox version -> 118.0\nGeckoDriver version -> 0.36.0\nShort GeckoDriver version -> 0.36\nTagged selenium/node-firefox:118.0.2-geckodriver-0.36.0-grid-4.34.0-20250727\nTagged selenium/standalone-firefox:118.0.2-geckodriver-0.36.0-grid-4.34.0-20250727\nTagged selenium/node-firefox:118.0.2-geckodriver-0.36.0-20250727\nTagged selenium/standalone-firefox:118.0.2-geckodriver-0.36.0-20250727\nTagged selenium/node-firefox:118.0.2-20250727\nTagged selenium/standalone-firefox:118.0.2-20250727\nTagged selenium/node-firefox:118.0-geckodriver-0.36-grid-4.34.0-20250727\nTagged selenium/standalone-firefox:118.0-geckodriver-0.36-grid-4.34.0-20250727\nTagged selenium/node-firefox:118.0-geckodriver-0.36-20250727\nTagged selenium/standalone-firefox:118.0-geckodriver-0.36-20250727\nTagged selenium/node-firefox:118.0-20250727\nTagged selenium/standalone-firefox:118.0-20250727\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.34.0/firefox_119.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.34.0 20250727 selenium false firefox true\nTagging images for browser firefox, version 4.34.0, build date 20250727, namespace selenium\nSelenium Grid version -> 4.34.0-20250727\nFirefox version -> 119.0.1\nShort Firefox version -> 119.0\nGeckoDriver version -> 0.36.0\nShort GeckoDriver version -> 0.36\nTagged selenium/node-firefox:119.0.1-geckodriver-0.36.0-grid-4.34.0-20250727\nTagged selenium/standalone-firefox:119.0.1-geckodriver-0.36.0-grid-4.34.0-20250727\nTagged selenium/node-firefox:119.0.1-geckodriver-0.36.0-20250727\nTagged selenium/standalone-firefox:119.0.1-geckodriver-0.36.0-20250727\nTagged selenium/node-firefox:119.0.1-20250727\nTagged selenium/standalone-firefox:119.0.1-20250727\nTagged selenium/node-firefox:119.0-geckodriver-0.36-grid-4.34.0-20250727\nTagged selenium/standalone-firefox:119.0-geckodriver-0.36-grid-4.34.0-20250727\nTagged selenium/node-firefox:119.0-geckodriver-0.36-20250727\nTagged selenium/standalone-firefox:119.0-geckodriver-0.36-20250727\nTagged selenium/node-firefox:119.0-20250727\nTagged selenium/standalone-firefox:119.0-20250727\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.34.0/firefox_120.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.34.0 20250727 selenium false firefox true\nTagging images for browser firefox, version 4.34.0, build date 20250727, namespace selenium\nSelenium Grid version -> 4.34.0-20250727\nFirefox version -> 120.0.1\nShort Firefox version -> 120.0\nGeckoDriver version -> 0.36.0\nShort GeckoDriver version -> 0.36\nTagged selenium/node-firefox:120.0.1-geckodriver-0.36.0-grid-4.34.0-20250727\nTagged selenium/standalone-firefox:120.0.1-geckodriver-0.36.0-grid-4.34.0-20250727\nTagged selenium/node-firefox:120.0.1-geckodriver-0.36.0-20250727\nTagged selenium/standalone-firefox:120.0.1-geckodriver-0.36.0-20250727\nTagged selenium/node-firefox:120.0.1-20250727\nTagged selenium/standalone-firefox:120.0.1-20250727\nTagged selenium/node-firefox:120.0-geckodriver-0.36-grid-4.34.0-20250727\nTagged selenium/standalone-firefox:120.0-geckodriver-0.36-grid-4.34.0-20250727\nTagged selenium/node-firefox:120.0-geckodriver-0.36-20250727\nTagged selenium/standalone-firefox:120.0-geckodriver-0.36-20250727\nTagged selenium/node-firefox:120.0-20250727\nTagged selenium/standalone-firefox:120.0-20250727\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.34.0/firefox_121.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.34.0 20250727 selenium false firefox true\nTagging images for browser firefox, version 4.34.0, build date 20250727, namespace selenium\nSelenium Grid version -> 4.34.0-20250727\nFirefox version -> 121.0.1\nShort Firefox version -> 121.0\nGeckoDriver version -> 0.36.0\nShort GeckoDriver version -> 0.36\nTagged selenium/node-firefox:121.0.1-geckodriver-0.36.0-grid-4.34.0-20250727\nTagged selenium/standalone-firefox:121.0.1-geckodriver-0.36.0-grid-4.34.0-20250727\nTagged selenium/node-firefox:121.0.1-geckodriver-0.36.0-20250727\nTagged selenium/standalone-firefox:121.0.1-geckodriver-0.36.0-20250727\nTagged selenium/node-firefox:121.0.1-20250727\nTagged selenium/standalone-firefox:121.0.1-20250727\nTagged selenium/node-firefox:121.0-geckodriver-0.36-grid-4.34.0-20250727\nTagged selenium/standalone-firefox:121.0-geckodriver-0.36-grid-4.34.0-20250727\nTagged selenium/node-firefox:121.0-geckodriver-0.36-20250727\nTagged selenium/standalone-firefox:121.0-geckodriver-0.36-20250727\nTagged selenium/node-firefox:121.0-20250727\nTagged selenium/standalone-firefox:121.0-20250727\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.34.0/firefox_122.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.34.0 20250727 selenium false firefox true\nTagging images for browser firefox, version 4.34.0, build date 20250727, namespace selenium\nSelenium Grid version -> 4.34.0-20250727\nFirefox version -> 122.0.1\nShort Firefox version -> 122.0\nGeckoDriver version -> 0.36.0\nShort GeckoDriver version -> 0.36\nTagged selenium/node-firefox:122.0.1-geckodriver-0.36.0-grid-4.34.0-20250727\nTagged selenium/standalone-firefox:122.0.1-geckodriver-0.36.0-grid-4.34.0-20250727\nTagged selenium/node-firefox:122.0.1-geckodriver-0.36.0-20250727\nTagged selenium/standalone-firefox:122.0.1-geckodriver-0.36.0-20250727\nTagged selenium/node-firefox:122.0.1-20250727\nTagged selenium/standalone-firefox:122.0.1-20250727\nTagged selenium/node-firefox:122.0-geckodriver-0.36-grid-4.34.0-20250727\nTagged selenium/standalone-firefox:122.0-geckodriver-0.36-grid-4.34.0-20250727\nTagged selenium/node-firefox:122.0-geckodriver-0.36-20250727\nTagged selenium/standalone-firefox:122.0-geckodriver-0.36-20250727\nTagged selenium/node-firefox:122.0-20250727\nTagged selenium/standalone-firefox:122.0-20250727\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.34.0/firefox_123.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.34.0 20250727 selenium false firefox true\nTagging images for browser firefox, version 4.34.0, build date 20250727, namespace selenium\nSelenium Grid version -> 4.34.0-20250727\nFirefox version -> 123.0.1\nShort Firefox version -> 123.0\nGeckoDriver version -> 0.36.0\nShort GeckoDriver version -> 0.36\nTagged selenium/node-firefox:123.0.1-geckodriver-0.36.0-grid-4.34.0-20250727\nTagged selenium/standalone-firefox:123.0.1-geckodriver-0.36.0-grid-4.34.0-20250727\nTagged selenium/node-firefox:123.0.1-geckodriver-0.36.0-20250727\nTagged selenium/standalone-firefox:123.0.1-geckodriver-0.36.0-20250727\nTagged selenium/node-firefox:123.0.1-20250727\nTagged selenium/standalone-firefox:123.0.1-20250727\nTagged selenium/node-firefox:123.0-geckodriver-0.36-grid-4.34.0-20250727\nTagged selenium/standalone-firefox:123.0-geckodriver-0.36-grid-4.34.0-20250727\nTagged selenium/node-firefox:123.0-geckodriver-0.36-20250727\nTagged selenium/standalone-firefox:123.0-geckodriver-0.36-20250727\nTagged selenium/node-firefox:123.0-20250727\nTagged selenium/standalone-firefox:123.0-20250727\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.34.0/firefox_124.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.34.0 20250727 selenium false firefox true\nTagging images for browser firefox, version 4.34.0, build date 20250727, namespace selenium\nSelenium Grid version -> 4.34.0-20250727\nFirefox version -> 124.0.2\nShort Firefox version -> 124.0\nGeckoDriver version -> 0.36.0\nShort GeckoDriver version -> 0.36\nTagged selenium/node-firefox:124.0.2-geckodriver-0.36.0-grid-4.34.0-20250727\nTagged selenium/standalone-firefox:124.0.2-geckodriver-0.36.0-grid-4.34.0-20250727\nTagged selenium/node-firefox:124.0.2-geckodriver-0.36.0-20250727\nTagged selenium/standalone-firefox:124.0.2-geckodriver-0.36.0-20250727\nTagged selenium/node-firefox:124.0.2-20250727\nTagged selenium/standalone-firefox:124.0.2-20250727\nTagged selenium/node-firefox:124.0-geckodriver-0.36-grid-4.34.0-20250727\nTagged selenium/standalone-firefox:124.0-geckodriver-0.36-grid-4.34.0-20250727\nTagged selenium/node-firefox:124.0-geckodriver-0.36-20250727\nTagged selenium/standalone-firefox:124.0-geckodriver-0.36-20250727\nTagged selenium/node-firefox:124.0-20250727\nTagged selenium/standalone-firefox:124.0-20250727\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.34.0/firefox_125.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.34.0 20250727 selenium false firefox true\nTagging images for browser firefox, version 4.34.0, build date 20250727, namespace selenium\nSelenium Grid version -> 4.34.0-20250727\nFirefox version -> 125.0.3\nShort Firefox version -> 125.0\nGeckoDriver version -> 0.36.0\nShort GeckoDriver version -> 0.36\nTagged selenium/node-firefox:125.0.3-geckodriver-0.36.0-grid-4.34.0-20250727\nTagged selenium/standalone-firefox:125.0.3-geckodriver-0.36.0-grid-4.34.0-20250727\nTagged selenium/node-firefox:125.0.3-geckodriver-0.36.0-20250727\nTagged selenium/standalone-firefox:125.0.3-geckodriver-0.36.0-20250727\nTagged selenium/node-firefox:125.0.3-20250727\nTagged selenium/standalone-firefox:125.0.3-20250727\nTagged selenium/node-firefox:125.0-geckodriver-0.36-grid-4.34.0-20250727\nTagged selenium/standalone-firefox:125.0-geckodriver-0.36-grid-4.34.0-20250727\nTagged selenium/node-firefox:125.0-geckodriver-0.36-20250727\nTagged selenium/standalone-firefox:125.0-geckodriver-0.36-20250727\nTagged selenium/node-firefox:125.0-20250727\nTagged selenium/standalone-firefox:125.0-20250727\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.34.0/firefox_126.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.34.0 20250727 selenium false firefox true\nTagging images for browser firefox, version 4.34.0, build date 20250727, namespace selenium\nSelenium Grid version -> 4.34.0-20250727\nFirefox version -> 126.0.1\nShort Firefox version -> 126.0\nGeckoDriver version -> 0.36.0\nShort GeckoDriver version -> 0.36\nTagged selenium/node-firefox:126.0.1-geckodriver-0.36.0-grid-4.34.0-20250727\nTagged selenium/standalone-firefox:126.0.1-geckodriver-0.36.0-grid-4.34.0-20250727\nTagged selenium/node-firefox:126.0.1-geckodriver-0.36.0-20250727\nTagged selenium/standalone-firefox:126.0.1-geckodriver-0.36.0-20250727\nTagged selenium/node-firefox:126.0.1-20250727\nTagged selenium/standalone-firefox:126.0.1-20250727\nTagged selenium/node-firefox:126.0-geckodriver-0.36-grid-4.34.0-20250727\nTagged selenium/standalone-firefox:126.0-geckodriver-0.36-grid-4.34.0-20250727\nTagged selenium/node-firefox:126.0-geckodriver-0.36-20250727\nTagged selenium/standalone-firefox:126.0-geckodriver-0.36-20250727\nTagged selenium/node-firefox:126.0-20250727\nTagged selenium/standalone-firefox:126.0-20250727\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.34.0/firefox_127.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.34.0 20250727 selenium false firefox true\nTagging images for browser firefox, version 4.34.0, build date 20250727, namespace selenium\nSelenium Grid version -> 4.34.0-20250727\nFirefox version -> 127.0.2\nShort Firefox version -> 127.0\nGeckoDriver version -> 0.36.0\nShort GeckoDriver version -> 0.36\nTagged selenium/node-firefox:127.0.2-geckodriver-0.36.0-grid-4.34.0-20250727\nTagged selenium/standalone-firefox:127.0.2-geckodriver-0.36.0-grid-4.34.0-20250727\nTagged selenium/node-firefox:127.0.2-geckodriver-0.36.0-20250727\nTagged selenium/standalone-firefox:127.0.2-geckodriver-0.36.0-20250727\nTagged selenium/node-firefox:127.0.2-20250727\nTagged selenium/standalone-firefox:127.0.2-20250727\nTagged selenium/node-firefox:127.0-geckodriver-0.36-grid-4.34.0-20250727\nTagged selenium/standalone-firefox:127.0-geckodriver-0.36-grid-4.34.0-20250727\nTagged selenium/node-firefox:127.0-geckodriver-0.36-20250727\nTagged selenium/standalone-firefox:127.0-geckodriver-0.36-20250727\nTagged selenium/node-firefox:127.0-20250727\nTagged selenium/standalone-firefox:127.0-20250727\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.34.0/firefox_128.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.34.0 20250727 selenium false firefox true\nTagging images for browser firefox, version 4.34.0, build date 20250727, namespace selenium\nSelenium Grid version -> 4.34.0-20250727\nFirefox version -> 128.0.3\nShort Firefox version -> 128.0\nGeckoDriver version -> 0.36.0\nShort GeckoDriver version -> 0.36\nTagged selenium/node-firefox:128.0.3-geckodriver-0.36.0-grid-4.34.0-20250727\nTagged selenium/standalone-firefox:128.0.3-geckodriver-0.36.0-grid-4.34.0-20250727\nTagged selenium/node-firefox:128.0.3-geckodriver-0.36.0-20250727\nTagged selenium/standalone-firefox:128.0.3-geckodriver-0.36.0-20250727\nTagged selenium/node-firefox:128.0.3-20250727\nTagged selenium/standalone-firefox:128.0.3-20250727\nTagged selenium/node-firefox:128.0-geckodriver-0.36-grid-4.34.0-20250727\nTagged selenium/standalone-firefox:128.0-geckodriver-0.36-grid-4.34.0-20250727\nTagged selenium/node-firefox:128.0-geckodriver-0.36-20250727\nTagged selenium/standalone-firefox:128.0-geckodriver-0.36-20250727\nTagged selenium/node-firefox:128.0-20250727\nTagged selenium/standalone-firefox:128.0-20250727\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.34.0/firefox_129.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.34.0 20250727 selenium false firefox true\nTagging images for browser firefox, version 4.34.0, build date 20250727, namespace selenium\nSelenium Grid version -> 4.34.0-20250727\nFirefox version -> 129.0.2\nShort Firefox version -> 129.0\nGeckoDriver version -> 0.36.0\nShort GeckoDriver version -> 0.36\nTagged selenium/node-firefox:129.0.2-geckodriver-0.36.0-grid-4.34.0-20250727\nTagged selenium/standalone-firefox:129.0.2-geckodriver-0.36.0-grid-4.34.0-20250727\nTagged selenium/node-firefox:129.0.2-geckodriver-0.36.0-20250727\nTagged selenium/standalone-firefox:129.0.2-geckodriver-0.36.0-20250727\nTagged selenium/node-firefox:129.0.2-20250727\nTagged selenium/standalone-firefox:129.0.2-20250727\nTagged selenium/node-firefox:129.0-geckodriver-0.36-grid-4.34.0-20250727\nTagged selenium/standalone-firefox:129.0-geckodriver-0.36-grid-4.34.0-20250727\nTagged selenium/node-firefox:129.0-geckodriver-0.36-20250727\nTagged selenium/standalone-firefox:129.0-geckodriver-0.36-20250727\nTagged selenium/node-firefox:129.0-20250727\nTagged selenium/standalone-firefox:129.0-20250727\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.34.0/firefox_130.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.34.0 20250727 selenium false firefox true\nTagging images for browser firefox, version 4.34.0, build date 20250727, namespace selenium\nSelenium Grid version -> 4.34.0-20250727\nFirefox version -> 130.0.1\nShort Firefox version -> 130.0\nGeckoDriver version -> 0.36.0\nShort GeckoDriver version -> 0.36\nTagged selenium/node-firefox:130.0.1-geckodriver-0.36.0-grid-4.34.0-20250727\nTagged selenium/standalone-firefox:130.0.1-geckodriver-0.36.0-grid-4.34.0-20250727\nTagged selenium/node-firefox:130.0.1-geckodriver-0.36.0-20250727\nTagged selenium/standalone-firefox:130.0.1-geckodriver-0.36.0-20250727\nTagged selenium/node-firefox:130.0.1-20250727\nTagged selenium/standalone-firefox:130.0.1-20250727\nTagged selenium/node-firefox:130.0-geckodriver-0.36-grid-4.34.0-20250727\nTagged selenium/standalone-firefox:130.0-geckodriver-0.36-grid-4.34.0-20250727\nTagged selenium/node-firefox:130.0-geckodriver-0.36-20250727\nTagged selenium/standalone-firefox:130.0-geckodriver-0.36-20250727\nTagged selenium/node-firefox:130.0-20250727\nTagged selenium/standalone-firefox:130.0-20250727\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.34.0/firefox_131.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.34.0 20250727 selenium false firefox true\nTagging images for browser firefox, version 4.34.0, build date 20250727, namespace selenium\nSelenium Grid version -> 4.34.0-20250727\nFirefox version -> 131.0.3\nShort Firefox version -> 131.0\nGeckoDriver version -> 0.36.0\nShort GeckoDriver version -> 0.36\nTagged selenium/node-firefox:131.0.3-geckodriver-0.36.0-grid-4.34.0-20250727\nTagged selenium/standalone-firefox:131.0.3-geckodriver-0.36.0-grid-4.34.0-20250727\nTagged selenium/node-firefox:131.0.3-geckodriver-0.36.0-20250727\nTagged selenium/standalone-firefox:131.0.3-geckodriver-0.36.0-20250727\nTagged selenium/node-firefox:131.0.3-20250727\nTagged selenium/standalone-firefox:131.0.3-20250727\nTagged selenium/node-firefox:131.0-geckodriver-0.36-grid-4.34.0-20250727\nTagged selenium/standalone-firefox:131.0-geckodriver-0.36-grid-4.34.0-20250727\nTagged selenium/node-firefox:131.0-geckodriver-0.36-20250727\nTagged selenium/standalone-firefox:131.0-geckodriver-0.36-20250727\nTagged selenium/node-firefox:131.0-20250727\nTagged selenium/standalone-firefox:131.0-20250727\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.34.0/firefox_132.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.34.0 20250727 selenium false firefox true\nTagging images for browser firefox, version 4.34.0, build date 20250727, namespace selenium\nSelenium Grid version -> 4.34.0-20250727\nFirefox version -> 132.0.2\nShort Firefox version -> 132.0\nGeckoDriver version -> 0.36.0\nShort GeckoDriver version -> 0.36\nTagged selenium/node-firefox:132.0.2-geckodriver-0.36.0-grid-4.34.0-20250727\nTagged selenium/standalone-firefox:132.0.2-geckodriver-0.36.0-grid-4.34.0-20250727\nTagged selenium/node-firefox:132.0.2-geckodriver-0.36.0-20250727\nTagged selenium/standalone-firefox:132.0.2-geckodriver-0.36.0-20250727\nTagged selenium/node-firefox:132.0.2-20250727\nTagged selenium/standalone-firefox:132.0.2-20250727\nTagged selenium/node-firefox:132.0-geckodriver-0.36-grid-4.34.0-20250727\nTagged selenium/standalone-firefox:132.0-geckodriver-0.36-grid-4.34.0-20250727\nTagged selenium/node-firefox:132.0-geckodriver-0.36-20250727\nTagged selenium/standalone-firefox:132.0-geckodriver-0.36-20250727\nTagged selenium/node-firefox:132.0-20250727\nTagged selenium/standalone-firefox:132.0-20250727\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.34.0/firefox_133.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.34.0 20250727 selenium false firefox true\nTagging images for browser firefox, version 4.34.0, build date 20250727, namespace selenium\nSelenium Grid version -> 4.34.0-20250727\nFirefox version -> 133.0.3\nShort Firefox version -> 133.0\nGeckoDriver version -> 0.36.0\nShort GeckoDriver version -> 0.36\nTagged selenium/node-firefox:133.0.3-geckodriver-0.36.0-grid-4.34.0-20250727\nTagged selenium/standalone-firefox:133.0.3-geckodriver-0.36.0-grid-4.34.0-20250727\nTagged selenium/node-firefox:133.0.3-geckodriver-0.36.0-20250727\nTagged selenium/standalone-firefox:133.0.3-geckodriver-0.36.0-20250727\nTagged selenium/node-firefox:133.0.3-20250727\nTagged selenium/standalone-firefox:133.0.3-20250727\nTagged selenium/node-firefox:133.0-geckodriver-0.36-grid-4.34.0-20250727\nTagged selenium/standalone-firefox:133.0-geckodriver-0.36-grid-4.34.0-20250727\nTagged selenium/node-firefox:133.0-geckodriver-0.36-20250727\nTagged selenium/standalone-firefox:133.0-geckodriver-0.36-20250727\nTagged selenium/node-firefox:133.0-20250727\nTagged selenium/standalone-firefox:133.0-20250727\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.34.0/firefox_134.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.34.0 20250727 selenium false firefox true\nTagging images for browser firefox, version 4.34.0, build date 20250727, namespace selenium\nSelenium Grid version -> 4.34.0-20250727\nFirefox version -> 134.0.2\nShort Firefox version -> 134.0\nGeckoDriver version -> 0.36.0\nShort GeckoDriver version -> 0.36\nTagged selenium/node-firefox:134.0.2-geckodriver-0.36.0-grid-4.34.0-20250727\nTagged selenium/standalone-firefox:134.0.2-geckodriver-0.36.0-grid-4.34.0-20250727\nTagged selenium/node-firefox:134.0.2-geckodriver-0.36.0-20250727\nTagged selenium/standalone-firefox:134.0.2-geckodriver-0.36.0-20250727\nTagged selenium/node-firefox:134.0.2-20250727\nTagged selenium/standalone-firefox:134.0.2-20250727\nTagged selenium/node-firefox:134.0-geckodriver-0.36-grid-4.34.0-20250727\nTagged selenium/standalone-firefox:134.0-geckodriver-0.36-grid-4.34.0-20250727\nTagged selenium/node-firefox:134.0-geckodriver-0.36-20250727\nTagged selenium/standalone-firefox:134.0-geckodriver-0.36-20250727\nTagged selenium/node-firefox:134.0-20250727\nTagged selenium/standalone-firefox:134.0-20250727\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.34.0/firefox_135.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.34.0 20250727 selenium false firefox true\nTagging images for browser firefox, version 4.34.0, build date 20250727, namespace selenium\nSelenium Grid version -> 4.34.0-20250727\nFirefox version -> 135.0.1\nShort Firefox version -> 135.0\nGeckoDriver version -> 0.36.0\nShort GeckoDriver version -> 0.36\nTagged selenium/node-firefox:135.0.1-geckodriver-0.36.0-grid-4.34.0-20250727\nTagged selenium/standalone-firefox:135.0.1-geckodriver-0.36.0-grid-4.34.0-20250727\nTagged selenium/node-firefox:135.0.1-geckodriver-0.36.0-20250727\nTagged selenium/standalone-firefox:135.0.1-geckodriver-0.36.0-20250727\nTagged selenium/node-firefox:135.0.1-20250727\nTagged selenium/standalone-firefox:135.0.1-20250727\nTagged selenium/node-firefox:135.0-geckodriver-0.36-grid-4.34.0-20250727\nTagged selenium/standalone-firefox:135.0-geckodriver-0.36-grid-4.34.0-20250727\nTagged selenium/node-firefox:135.0-geckodriver-0.36-20250727\nTagged selenium/standalone-firefox:135.0-geckodriver-0.36-20250727\nTagged selenium/node-firefox:135.0-20250727\nTagged selenium/standalone-firefox:135.0-20250727\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.34.0/firefox_136.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.34.0 20250727 selenium false firefox true\nTagging images for browser firefox, version 4.34.0, build date 20250727, namespace selenium\nSelenium Grid version -> 4.34.0-20250727\nFirefox version -> 136.0.4\nShort Firefox version -> 136.0\nGeckoDriver version -> 0.36.0\nShort GeckoDriver version -> 0.36\nTagged selenium/node-firefox:136.0.4-geckodriver-0.36.0-grid-4.34.0-20250727\nTagged selenium/standalone-firefox:136.0.4-geckodriver-0.36.0-grid-4.34.0-20250727\nTagged selenium/node-firefox:136.0.4-geckodriver-0.36.0-20250727\nTagged selenium/standalone-firefox:136.0.4-geckodriver-0.36.0-20250727\nTagged selenium/node-firefox:136.0.4-20250727\nTagged selenium/standalone-firefox:136.0.4-20250727\nTagged selenium/node-firefox:136.0-geckodriver-0.36-grid-4.34.0-20250727\nTagged selenium/standalone-firefox:136.0-geckodriver-0.36-grid-4.34.0-20250727\nTagged selenium/node-firefox:136.0-geckodriver-0.36-20250727\nTagged selenium/standalone-firefox:136.0-geckodriver-0.36-20250727\nTagged selenium/node-firefox:136.0-20250727\nTagged selenium/standalone-firefox:136.0-20250727\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.34.0/firefox_137.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.34.0 20250727 selenium false firefox true\nTagging images for browser firefox, version 4.34.0, build date 20250727, namespace selenium\nSelenium Grid version -> 4.34.0-20250727\nFirefox version -> 137.0.2\nShort Firefox version -> 137.0\nGeckoDriver version -> 0.36.0\nShort GeckoDriver version -> 0.36\nTagged selenium/node-firefox:137.0.2-geckodriver-0.36.0-grid-4.34.0-20250727\nTagged selenium/standalone-firefox:137.0.2-geckodriver-0.36.0-grid-4.34.0-20250727\nTagged selenium/node-firefox:137.0.2-geckodriver-0.36.0-20250727\nTagged selenium/standalone-firefox:137.0.2-geckodriver-0.36.0-20250727\nTagged selenium/node-firefox:137.0.2-20250727\nTagged selenium/standalone-firefox:137.0.2-20250727\nTagged selenium/node-firefox:137.0-geckodriver-0.36-grid-4.34.0-20250727\nTagged selenium/standalone-firefox:137.0-geckodriver-0.36-grid-4.34.0-20250727\nTagged selenium/node-firefox:137.0-geckodriver-0.36-20250727\nTagged selenium/standalone-firefox:137.0-geckodriver-0.36-20250727\nTagged selenium/node-firefox:137.0-20250727\nTagged selenium/standalone-firefox:137.0-20250727\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.34.0/firefox_138.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.34.0 20250727 selenium false firefox true\nTagging images for browser firefox, version 4.34.0, build date 20250727, namespace selenium\nSelenium Grid version -> 4.34.0-20250727\nFirefox version -> 138.0.4\nShort Firefox version -> 138.0\nGeckoDriver version -> 0.36.0\nShort GeckoDriver version -> 0.36\nTagged selenium/node-firefox:138.0.4-geckodriver-0.36.0-grid-4.34.0-20250727\nTagged selenium/standalone-firefox:138.0.4-geckodriver-0.36.0-grid-4.34.0-20250727\nTagged selenium/node-firefox:138.0.4-geckodriver-0.36.0-20250727\nTagged selenium/standalone-firefox:138.0.4-geckodriver-0.36.0-20250727\nTagged selenium/node-firefox:138.0.4-20250727\nTagged selenium/standalone-firefox:138.0.4-20250727\nTagged selenium/node-firefox:138.0-geckodriver-0.36-grid-4.34.0-20250727\nTagged selenium/standalone-firefox:138.0-geckodriver-0.36-grid-4.34.0-20250727\nTagged selenium/node-firefox:138.0-geckodriver-0.36-20250727\nTagged selenium/standalone-firefox:138.0-geckodriver-0.36-20250727\nTagged selenium/node-firefox:138.0-20250727\nTagged selenium/standalone-firefox:138.0-20250727\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.34.0/firefox_139.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.34.0 20250727 selenium false firefox true\nTagging images for browser firefox, version 4.34.0, build date 20250727, namespace selenium\nSelenium Grid version -> 4.34.0-20250727\nFirefox version -> 139.0.4\nShort Firefox version -> 139.0\nGeckoDriver version -> 0.36.0\nShort GeckoDriver version -> 0.36\nTagged selenium/node-firefox:139.0.4-geckodriver-0.36.0-grid-4.34.0-20250727\nTagged selenium/standalone-firefox:139.0.4-geckodriver-0.36.0-grid-4.34.0-20250727\nTagged selenium/node-firefox:139.0.4-geckodriver-0.36.0-20250727\nTagged selenium/standalone-firefox:139.0.4-geckodriver-0.36.0-20250727\nTagged selenium/node-firefox:139.0.4-20250727\nTagged selenium/standalone-firefox:139.0.4-20250727\nTagged selenium/node-firefox:139.0-geckodriver-0.36-grid-4.34.0-20250727\nTagged selenium/standalone-firefox:139.0-geckodriver-0.36-grid-4.34.0-20250727\nTagged selenium/node-firefox:139.0-geckodriver-0.36-20250727\nTagged selenium/standalone-firefox:139.0-geckodriver-0.36-20250727\nTagged selenium/node-firefox:139.0-20250727\nTagged selenium/standalone-firefox:139.0-20250727\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.34.0/firefox_98.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.34.0 20250727 selenium false firefox true\nTagging images for browser firefox, version 4.34.0, build date 20250727, namespace selenium\nSelenium Grid version -> 4.34.0-20250727\nFirefox version -> 98.0.2\nShort Firefox version -> 98.0\nGeckoDriver version -> 0.36.0\nShort GeckoDriver version -> 0.36\nTagged selenium/node-firefox:98.0.2-geckodriver-0.36.0-grid-4.34.0-20250727\nTagged selenium/standalone-firefox:98.0.2-geckodriver-0.36.0-grid-4.34.0-20250727\nTagged selenium/node-firefox:98.0.2-geckodriver-0.36.0-20250727\nTagged selenium/standalone-firefox:98.0.2-geckodriver-0.36.0-20250727\nTagged selenium/node-firefox:98.0.2-20250727\nTagged selenium/standalone-firefox:98.0.2-20250727\nTagged selenium/node-firefox:98.0-geckodriver-0.36-grid-4.34.0-20250727\nTagged selenium/standalone-firefox:98.0-geckodriver-0.36-grid-4.34.0-20250727\nTagged selenium/node-firefox:98.0-geckodriver-0.36-20250727\nTagged selenium/standalone-firefox:98.0-geckodriver-0.36-20250727\nTagged selenium/node-firefox:98.0-20250727\nTagged selenium/standalone-firefox:98.0-20250727\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.34.0/firefox_99.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.34.0 20250727 selenium false firefox true\nTagging images for browser firefox, version 4.34.0, build date 20250727, namespace selenium\nSelenium Grid version -> 4.34.0-20250727\nFirefox version -> 99.0.1\nShort Firefox version -> 99.0\nGeckoDriver version -> 0.36.0\nShort GeckoDriver version -> 0.36\nTagged selenium/node-firefox:99.0.1-geckodriver-0.36.0-grid-4.34.0-20250727\nTagged selenium/standalone-firefox:99.0.1-geckodriver-0.36.0-grid-4.34.0-20250727\nTagged selenium/node-firefox:99.0.1-geckodriver-0.36.0-20250727\nTagged selenium/standalone-firefox:99.0.1-geckodriver-0.36.0-20250727\nTagged selenium/node-firefox:99.0.1-20250727\nTagged selenium/standalone-firefox:99.0.1-20250727\nTagged selenium/node-firefox:99.0-geckodriver-0.36-grid-4.34.0-20250727\nTagged selenium/standalone-firefox:99.0-geckodriver-0.36-grid-4.34.0-20250727\nTagged selenium/node-firefox:99.0-geckodriver-0.36-20250727\nTagged selenium/standalone-firefox:99.0-geckodriver-0.36-20250727\nTagged selenium/node-firefox:99.0-20250727\nTagged selenium/standalone-firefox:99.0-20250727\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.35.0/chrome_100.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.35.0 20250909 selenium false chrome true\nTagging images for browser chrome, version 4.35.0, build date 20250909, namespace selenium\nSelenium Grid version -> 4.35.0-20250909\nChrome version -> 100.0.4896.127\nShort Chrome version -> 100.0\nChromeDriver version -> 100.0.4896.60\nShort ChromeDriver version -> 100.0\nTagged selenium/node-chrome:100.0.4896.127-chromedriver-100.0.4896.60-grid-4.35.0-20250909\nTagged selenium/standalone-chrome:100.0.4896.127-chromedriver-100.0.4896.60-grid-4.35.0-20250909\nTagged selenium/node-chrome:100.0.4896.127-chromedriver-100.0.4896.60-20250909\nTagged selenium/standalone-chrome:100.0.4896.127-chromedriver-100.0.4896.60-20250909\nTagged selenium/node-chrome:100.0.4896.127-20250909\nTagged selenium/standalone-chrome:100.0.4896.127-20250909\nTagged selenium/node-chrome:100.0-chromedriver-100.0-grid-4.35.0-20250909\nTagged selenium/standalone-chrome:100.0-chromedriver-100.0-grid-4.35.0-20250909\nTagged selenium/node-chrome:100.0-chromedriver-100.0-20250909\nTagged selenium/standalone-chrome:100.0-chromedriver-100.0-20250909\nTagged selenium/node-chrome:100.0-20250909\nTagged selenium/standalone-chrome:100.0-20250909\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.35.0/chrome_101.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.35.0 20250909 selenium false chrome true\nTagging images for browser chrome, version 4.35.0, build date 20250909, namespace selenium\nSelenium Grid version -> 4.35.0-20250909\nChrome version -> 101.0.4951.64\nShort Chrome version -> 101.0\nChromeDriver version -> 101.0.4951.41\nShort ChromeDriver version -> 101.0\nTagged selenium/node-chrome:101.0.4951.64-chromedriver-101.0.4951.41-grid-4.35.0-20250909\nTagged selenium/standalone-chrome:101.0.4951.64-chromedriver-101.0.4951.41-grid-4.35.0-20250909\nTagged selenium/node-chrome:101.0.4951.64-chromedriver-101.0.4951.41-20250909\nTagged selenium/standalone-chrome:101.0.4951.64-chromedriver-101.0.4951.41-20250909\nTagged selenium/node-chrome:101.0.4951.64-20250909\nTagged selenium/standalone-chrome:101.0.4951.64-20250909\nTagged selenium/node-chrome:101.0-chromedriver-101.0-grid-4.35.0-20250909\nTagged selenium/standalone-chrome:101.0-chromedriver-101.0-grid-4.35.0-20250909\nTagged selenium/node-chrome:101.0-chromedriver-101.0-20250909\nTagged selenium/standalone-chrome:101.0-chromedriver-101.0-20250909\nTagged selenium/node-chrome:101.0-20250909\nTagged selenium/standalone-chrome:101.0-20250909\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.35.0/chrome_102.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.35.0 20250909 selenium false chrome true\nTagging images for browser chrome, version 4.35.0, build date 20250909, namespace selenium\nSelenium Grid version -> 4.35.0-20250909\nChrome version -> 102.0.5005.115\nShort Chrome version -> 102.0\nChromeDriver version -> 102.0.5005.61\nShort ChromeDriver version -> 102.0\nTagged selenium/node-chrome:102.0.5005.115-chromedriver-102.0.5005.61-grid-4.35.0-20250909\nTagged selenium/standalone-chrome:102.0.5005.115-chromedriver-102.0.5005.61-grid-4.35.0-20250909\nTagged selenium/node-chrome:102.0.5005.115-chromedriver-102.0.5005.61-20250909\nTagged selenium/standalone-chrome:102.0.5005.115-chromedriver-102.0.5005.61-20250909\nTagged selenium/node-chrome:102.0.5005.115-20250909\nTagged selenium/standalone-chrome:102.0.5005.115-20250909\nTagged selenium/node-chrome:102.0-chromedriver-102.0-grid-4.35.0-20250909\nTagged selenium/standalone-chrome:102.0-chromedriver-102.0-grid-4.35.0-20250909\nTagged selenium/node-chrome:102.0-chromedriver-102.0-20250909\nTagged selenium/standalone-chrome:102.0-chromedriver-102.0-20250909\nTagged selenium/node-chrome:102.0-20250909\nTagged selenium/standalone-chrome:102.0-20250909\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.35.0/chrome_103.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.35.0 20250909 selenium false chrome true\nTagging images for browser chrome, version 4.35.0, build date 20250909, namespace selenium\nSelenium Grid version -> 4.35.0-20250909\nChrome version -> 103.0.5060.134\nShort Chrome version -> 103.0\nChromeDriver version -> 103.0.5060.134\nShort ChromeDriver version -> 103.0\nTagged selenium/node-chrome:103.0.5060.134-chromedriver-103.0.5060.134-grid-4.35.0-20250909\nTagged selenium/standalone-chrome:103.0.5060.134-chromedriver-103.0.5060.134-grid-4.35.0-20250909\nTagged selenium/node-chrome:103.0.5060.134-chromedriver-103.0.5060.134-20250909\nTagged selenium/standalone-chrome:103.0.5060.134-chromedriver-103.0.5060.134-20250909\nTagged selenium/node-chrome:103.0.5060.134-20250909\nTagged selenium/standalone-chrome:103.0.5060.134-20250909\nTagged selenium/node-chrome:103.0-chromedriver-103.0-grid-4.35.0-20250909\nTagged selenium/standalone-chrome:103.0-chromedriver-103.0-grid-4.35.0-20250909\nTagged selenium/node-chrome:103.0-chromedriver-103.0-20250909\nTagged selenium/standalone-chrome:103.0-chromedriver-103.0-20250909\nTagged selenium/node-chrome:103.0-20250909\nTagged selenium/standalone-chrome:103.0-20250909\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.35.0/chrome_104.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.35.0 20250909 selenium false chrome true\nTagging images for browser chrome, version 4.35.0, build date 20250909, namespace selenium\nSelenium Grid version -> 4.35.0-20250909\nChrome version -> 104.0.5112.101\nShort Chrome version -> 104.0\nChromeDriver version -> 104.0.5112.79\nShort ChromeDriver version -> 104.0\nTagged selenium/node-chrome:104.0.5112.101-chromedriver-104.0.5112.79-grid-4.35.0-20250909\nTagged selenium/standalone-chrome:104.0.5112.101-chromedriver-104.0.5112.79-grid-4.35.0-20250909\nTagged selenium/node-chrome:104.0.5112.101-chromedriver-104.0.5112.79-20250909\nTagged selenium/standalone-chrome:104.0.5112.101-chromedriver-104.0.5112.79-20250909\nTagged selenium/node-chrome:104.0.5112.101-20250909\nTagged selenium/standalone-chrome:104.0.5112.101-20250909\nTagged selenium/node-chrome:104.0-chromedriver-104.0-grid-4.35.0-20250909\nTagged selenium/standalone-chrome:104.0-chromedriver-104.0-grid-4.35.0-20250909\nTagged selenium/node-chrome:104.0-chromedriver-104.0-20250909\nTagged selenium/standalone-chrome:104.0-chromedriver-104.0-20250909\nTagged selenium/node-chrome:104.0-20250909\nTagged selenium/standalone-chrome:104.0-20250909\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.35.0/chrome_105.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.35.0 20250909 selenium false chrome true\nTagging images for browser chrome, version 4.35.0, build date 20250909, namespace selenium\nSelenium Grid version -> 4.35.0-20250909\nChrome version -> 105.0.5195.125\nShort Chrome version -> 105.0\nChromeDriver version -> 105.0.5195.52\nShort ChromeDriver version -> 105.0\nTagged selenium/node-chrome:105.0.5195.125-chromedriver-105.0.5195.52-grid-4.35.0-20250909\nTagged selenium/standalone-chrome:105.0.5195.125-chromedriver-105.0.5195.52-grid-4.35.0-20250909\nTagged selenium/node-chrome:105.0.5195.125-chromedriver-105.0.5195.52-20250909\nTagged selenium/standalone-chrome:105.0.5195.125-chromedriver-105.0.5195.52-20250909\nTagged selenium/node-chrome:105.0.5195.125-20250909\nTagged selenium/standalone-chrome:105.0.5195.125-20250909\nTagged selenium/node-chrome:105.0-chromedriver-105.0-grid-4.35.0-20250909\nTagged selenium/standalone-chrome:105.0-chromedriver-105.0-grid-4.35.0-20250909\nTagged selenium/node-chrome:105.0-chromedriver-105.0-20250909\nTagged selenium/standalone-chrome:105.0-chromedriver-105.0-20250909\nTagged selenium/node-chrome:105.0-20250909\nTagged selenium/standalone-chrome:105.0-20250909\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.35.0/chrome_106.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.35.0 20250909 selenium false chrome true\nTagging images for browser chrome, version 4.35.0, build date 20250909, namespace selenium\nSelenium Grid version -> 4.35.0-20250909\nChrome version -> 106.0.5249.119\nShort Chrome version -> 106.0\nChromeDriver version -> 106.0.5249.61\nShort ChromeDriver version -> 106.0\nTagged selenium/node-chrome:106.0.5249.119-chromedriver-106.0.5249.61-grid-4.35.0-20250909\nTagged selenium/standalone-chrome:106.0.5249.119-chromedriver-106.0.5249.61-grid-4.35.0-20250909\nTagged selenium/node-chrome:106.0.5249.119-chromedriver-106.0.5249.61-20250909\nTagged selenium/standalone-chrome:106.0.5249.119-chromedriver-106.0.5249.61-20250909\nTagged selenium/node-chrome:106.0.5249.119-20250909\nTagged selenium/standalone-chrome:106.0.5249.119-20250909\nTagged selenium/node-chrome:106.0-chromedriver-106.0-grid-4.35.0-20250909\nTagged selenium/standalone-chrome:106.0-chromedriver-106.0-grid-4.35.0-20250909\nTagged selenium/node-chrome:106.0-chromedriver-106.0-20250909\nTagged selenium/standalone-chrome:106.0-chromedriver-106.0-20250909\nTagged selenium/node-chrome:106.0-20250909\nTagged selenium/standalone-chrome:106.0-20250909\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.35.0/chrome_107.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.35.0 20250909 selenium false chrome true\nTagging images for browser chrome, version 4.35.0, build date 20250909, namespace selenium\nSelenium Grid version -> 4.35.0-20250909\nChrome version -> 107.0.5304.121\nShort Chrome version -> 107.0\nChromeDriver version -> 107.0.5304.62\nShort ChromeDriver version -> 107.0\nTagged selenium/node-chrome:107.0.5304.121-chromedriver-107.0.5304.62-grid-4.35.0-20250909\nTagged selenium/standalone-chrome:107.0.5304.121-chromedriver-107.0.5304.62-grid-4.35.0-20250909\nTagged selenium/node-chrome:107.0.5304.121-chromedriver-107.0.5304.62-20250909\nTagged selenium/standalone-chrome:107.0.5304.121-chromedriver-107.0.5304.62-20250909\nTagged selenium/node-chrome:107.0.5304.121-20250909\nTagged selenium/standalone-chrome:107.0.5304.121-20250909\nTagged selenium/node-chrome:107.0-chromedriver-107.0-grid-4.35.0-20250909\nTagged selenium/standalone-chrome:107.0-chromedriver-107.0-grid-4.35.0-20250909\nTagged selenium/node-chrome:107.0-chromedriver-107.0-20250909\nTagged selenium/standalone-chrome:107.0-chromedriver-107.0-20250909\nTagged selenium/node-chrome:107.0-20250909\nTagged selenium/standalone-chrome:107.0-20250909\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.35.0/chrome_108.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.35.0 20250909 selenium false chrome true\nTagging images for browser chrome, version 4.35.0, build date 20250909, namespace selenium\nSelenium Grid version -> 4.35.0-20250909\nChrome version -> 108.0.5359.124\nShort Chrome version -> 108.0\nChromeDriver version -> 108.0.5359.71\nShort ChromeDriver version -> 108.0\nTagged selenium/node-chrome:108.0.5359.124-chromedriver-108.0.5359.71-grid-4.35.0-20250909\nTagged selenium/standalone-chrome:108.0.5359.124-chromedriver-108.0.5359.71-grid-4.35.0-20250909\nTagged selenium/node-chrome:108.0.5359.124-chromedriver-108.0.5359.71-20250909\nTagged selenium/standalone-chrome:108.0.5359.124-chromedriver-108.0.5359.71-20250909\nTagged selenium/node-chrome:108.0.5359.124-20250909\nTagged selenium/standalone-chrome:108.0.5359.124-20250909\nTagged selenium/node-chrome:108.0-chromedriver-108.0-grid-4.35.0-20250909\nTagged selenium/standalone-chrome:108.0-chromedriver-108.0-grid-4.35.0-20250909\nTagged selenium/node-chrome:108.0-chromedriver-108.0-20250909\nTagged selenium/standalone-chrome:108.0-chromedriver-108.0-20250909\nTagged selenium/node-chrome:108.0-20250909\nTagged selenium/standalone-chrome:108.0-20250909\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.35.0/chrome_109.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.35.0 20250909 selenium false chrome true\nTagging images for browser chrome, version 4.35.0, build date 20250909, namespace selenium\nSelenium Grid version -> 4.35.0-20250909\nChrome version -> 109.0.5414.119\nShort Chrome version -> 109.0\nChromeDriver version -> 109.0.5414.74\nShort ChromeDriver version -> 109.0\nTagged selenium/node-chrome:109.0.5414.119-chromedriver-109.0.5414.74-grid-4.35.0-20250909\nTagged selenium/standalone-chrome:109.0.5414.119-chromedriver-109.0.5414.74-grid-4.35.0-20250909\nTagged selenium/node-chrome:109.0.5414.119-chromedriver-109.0.5414.74-20250909\nTagged selenium/standalone-chrome:109.0.5414.119-chromedriver-109.0.5414.74-20250909\nTagged selenium/node-chrome:109.0.5414.119-20250909\nTagged selenium/standalone-chrome:109.0.5414.119-20250909\nTagged selenium/node-chrome:109.0-chromedriver-109.0-grid-4.35.0-20250909\nTagged selenium/standalone-chrome:109.0-chromedriver-109.0-grid-4.35.0-20250909\nTagged selenium/node-chrome:109.0-chromedriver-109.0-20250909\nTagged selenium/standalone-chrome:109.0-chromedriver-109.0-20250909\nTagged selenium/node-chrome:109.0-20250909\nTagged selenium/standalone-chrome:109.0-20250909\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.35.0/chrome_110.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.35.0 20250909 selenium false chrome true\nTagging images for browser chrome, version 4.35.0, build date 20250909, namespace selenium\nSelenium Grid version -> 4.35.0-20250909\nChrome version -> 110.0.5481.177\nShort Chrome version -> 110.0\nChromeDriver version -> 110.0.5481.77\nShort ChromeDriver version -> 110.0\nTagged selenium/node-chrome:110.0.5481.177-chromedriver-110.0.5481.77-grid-4.35.0-20250909\nTagged selenium/standalone-chrome:110.0.5481.177-chromedriver-110.0.5481.77-grid-4.35.0-20250909\nTagged selenium/node-chrome:110.0.5481.177-chromedriver-110.0.5481.77-20250909\nTagged selenium/standalone-chrome:110.0.5481.177-chromedriver-110.0.5481.77-20250909\nTagged selenium/node-chrome:110.0.5481.177-20250909\nTagged selenium/standalone-chrome:110.0.5481.177-20250909\nTagged selenium/node-chrome:110.0-chromedriver-110.0-grid-4.35.0-20250909\nTagged selenium/standalone-chrome:110.0-chromedriver-110.0-grid-4.35.0-20250909\nTagged selenium/node-chrome:110.0-chromedriver-110.0-20250909\nTagged selenium/standalone-chrome:110.0-chromedriver-110.0-20250909\nTagged selenium/node-chrome:110.0-20250909\nTagged selenium/standalone-chrome:110.0-20250909\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.35.0/chrome_111.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.35.0 20250909 selenium false chrome true\nTagging images for browser chrome, version 4.35.0, build date 20250909, namespace selenium\nSelenium Grid version -> 4.35.0-20250909\nChrome version -> 111.0.5563.146\nShort Chrome version -> 111.0\nChromeDriver version -> 111.0.5563.64\nShort ChromeDriver version -> 111.0\nTagged selenium/node-chrome:111.0.5563.146-chromedriver-111.0.5563.64-grid-4.35.0-20250909\nTagged selenium/standalone-chrome:111.0.5563.146-chromedriver-111.0.5563.64-grid-4.35.0-20250909\nTagged selenium/node-chrome:111.0.5563.146-chromedriver-111.0.5563.64-20250909\nTagged selenium/standalone-chrome:111.0.5563.146-chromedriver-111.0.5563.64-20250909\nTagged selenium/node-chrome:111.0.5563.146-20250909\nTagged selenium/standalone-chrome:111.0.5563.146-20250909\nTagged selenium/node-chrome:111.0-chromedriver-111.0-grid-4.35.0-20250909\nTagged selenium/standalone-chrome:111.0-chromedriver-111.0-grid-4.35.0-20250909\nTagged selenium/node-chrome:111.0-chromedriver-111.0-20250909\nTagged selenium/standalone-chrome:111.0-chromedriver-111.0-20250909\nTagged selenium/node-chrome:111.0-20250909\nTagged selenium/standalone-chrome:111.0-20250909\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.35.0/chrome_112.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.35.0 20250909 selenium false chrome true\nTagging images for browser chrome, version 4.35.0, build date 20250909, namespace selenium\nSelenium Grid version -> 4.35.0-20250909\nChrome version -> 112.0.5615.165\nShort Chrome version -> 112.0\nChromeDriver version -> 112.0.5615.49\nShort ChromeDriver version -> 112.0\nTagged selenium/node-chrome:112.0.5615.165-chromedriver-112.0.5615.49-grid-4.35.0-20250909\nTagged selenium/standalone-chrome:112.0.5615.165-chromedriver-112.0.5615.49-grid-4.35.0-20250909\nTagged selenium/node-chrome:112.0.5615.165-chromedriver-112.0.5615.49-20250909\nTagged selenium/standalone-chrome:112.0.5615.165-chromedriver-112.0.5615.49-20250909\nTagged selenium/node-chrome:112.0.5615.165-20250909\nTagged selenium/standalone-chrome:112.0.5615.165-20250909\nTagged selenium/node-chrome:112.0-chromedriver-112.0-grid-4.35.0-20250909\nTagged selenium/standalone-chrome:112.0-chromedriver-112.0-grid-4.35.0-20250909\nTagged selenium/node-chrome:112.0-chromedriver-112.0-20250909\nTagged selenium/standalone-chrome:112.0-chromedriver-112.0-20250909\nTagged selenium/node-chrome:112.0-20250909\nTagged selenium/standalone-chrome:112.0-20250909\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.35.0/chrome_113.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.35.0 20250909 selenium false chrome true\nTagging images for browser chrome, version 4.35.0, build date 20250909, namespace selenium\nSelenium Grid version -> 4.35.0-20250909\nChrome version -> 113.0.5672.126\nShort Chrome version -> 113.0\nChromeDriver version -> 113.0.5672.63\nShort ChromeDriver version -> 113.0\nTagged selenium/node-chrome:113.0.5672.126-chromedriver-113.0.5672.63-grid-4.35.0-20250909\nTagged selenium/standalone-chrome:113.0.5672.126-chromedriver-113.0.5672.63-grid-4.35.0-20250909\nTagged selenium/node-chrome:113.0.5672.126-chromedriver-113.0.5672.63-20250909\nTagged selenium/standalone-chrome:113.0.5672.126-chromedriver-113.0.5672.63-20250909\nTagged selenium/node-chrome:113.0.5672.126-20250909\nTagged selenium/standalone-chrome:113.0.5672.126-20250909\nTagged selenium/node-chrome:113.0-chromedriver-113.0-grid-4.35.0-20250909\nTagged selenium/standalone-chrome:113.0-chromedriver-113.0-grid-4.35.0-20250909\nTagged selenium/node-chrome:113.0-chromedriver-113.0-20250909\nTagged selenium/standalone-chrome:113.0-chromedriver-113.0-20250909\nTagged selenium/node-chrome:113.0-20250909\nTagged selenium/standalone-chrome:113.0-20250909\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.35.0/chrome_114.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.35.0 20250909 selenium false chrome true\nTagging images for browser chrome, version 4.35.0, build date 20250909, namespace selenium\nSelenium Grid version -> 4.35.0-20250909\nChrome version -> 114.0.5735.198\nShort Chrome version -> 114.0\nChromeDriver version -> 114.0.5735.90\nShort ChromeDriver version -> 114.0\nTagged selenium/node-chrome:114.0.5735.198-chromedriver-114.0.5735.90-grid-4.35.0-20250909\nTagged selenium/standalone-chrome:114.0.5735.198-chromedriver-114.0.5735.90-grid-4.35.0-20250909\nTagged selenium/node-chrome:114.0.5735.198-chromedriver-114.0.5735.90-20250909\nTagged selenium/standalone-chrome:114.0.5735.198-chromedriver-114.0.5735.90-20250909\nTagged selenium/node-chrome:114.0.5735.198-20250909\nTagged selenium/standalone-chrome:114.0.5735.198-20250909\nTagged selenium/node-chrome:114.0-chromedriver-114.0-grid-4.35.0-20250909\nTagged selenium/standalone-chrome:114.0-chromedriver-114.0-grid-4.35.0-20250909\nTagged selenium/node-chrome:114.0-chromedriver-114.0-20250909\nTagged selenium/standalone-chrome:114.0-chromedriver-114.0-20250909\nTagged selenium/node-chrome:114.0-20250909\nTagged selenium/standalone-chrome:114.0-20250909\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.35.0/chrome_115.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.35.0 20250909 selenium false chrome true\nTagging images for browser chrome, version 4.35.0, build date 20250909, namespace selenium\nSelenium Grid version -> 4.35.0-20250909\nChrome version -> 115.0.5790.170\nShort Chrome version -> 115.0\nChromeDriver version -> 115.0.5790.170\nShort ChromeDriver version -> 115.0\nTagged selenium/node-chrome:115.0.5790.170-chromedriver-115.0.5790.170-grid-4.35.0-20250909\nTagged selenium/standalone-chrome:115.0.5790.170-chromedriver-115.0.5790.170-grid-4.35.0-20250909\nTagged selenium/node-chrome:115.0.5790.170-chromedriver-115.0.5790.170-20250909\nTagged selenium/standalone-chrome:115.0.5790.170-chromedriver-115.0.5790.170-20250909\nTagged selenium/node-chrome:115.0.5790.170-20250909\nTagged selenium/standalone-chrome:115.0.5790.170-20250909\nTagged selenium/node-chrome:115.0-chromedriver-115.0-grid-4.35.0-20250909\nTagged selenium/standalone-chrome:115.0-chromedriver-115.0-grid-4.35.0-20250909\nTagged selenium/node-chrome:115.0-chromedriver-115.0-20250909\nTagged selenium/standalone-chrome:115.0-chromedriver-115.0-20250909\nTagged selenium/node-chrome:115.0-20250909\nTagged selenium/standalone-chrome:115.0-20250909\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.35.0/chrome_116.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.35.0 20250909 selenium false chrome true\nTagging images for browser chrome, version 4.35.0, build date 20250909, namespace selenium\nSelenium Grid version -> 4.35.0-20250909\nChrome version -> 116.0.5845.187\nShort Chrome version -> 116.0\nChromeDriver version -> 116.0.5845.96\nShort ChromeDriver version -> 116.0\nTagged selenium/node-chrome:116.0.5845.187-chromedriver-116.0.5845.96-grid-4.35.0-20250909\nTagged selenium/standalone-chrome:116.0.5845.187-chromedriver-116.0.5845.96-grid-4.35.0-20250909\nTagged selenium/node-chrome:116.0.5845.187-chromedriver-116.0.5845.96-20250909\nTagged selenium/standalone-chrome:116.0.5845.187-chromedriver-116.0.5845.96-20250909\nTagged selenium/node-chrome:116.0.5845.187-20250909\nTagged selenium/standalone-chrome:116.0.5845.187-20250909\nTagged selenium/node-chrome:116.0-chromedriver-116.0-grid-4.35.0-20250909\nTagged selenium/standalone-chrome:116.0-chromedriver-116.0-grid-4.35.0-20250909\nTagged selenium/node-chrome:116.0-chromedriver-116.0-20250909\nTagged selenium/standalone-chrome:116.0-chromedriver-116.0-20250909\nTagged selenium/node-chrome:116.0-20250909\nTagged selenium/standalone-chrome:116.0-20250909\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.35.0/chrome_117.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.35.0 20250909 selenium false chrome true\nTagging images for browser chrome, version 4.35.0, build date 20250909, namespace selenium\nSelenium Grid version -> 4.35.0-20250909\nChrome version -> 117.0.5938.149\nShort Chrome version -> 117.0\nChromeDriver version -> 117.0.5938.149\nShort ChromeDriver version -> 117.0\nTagged selenium/node-chrome:117.0.5938.149-chromedriver-117.0.5938.149-grid-4.35.0-20250909\nTagged selenium/standalone-chrome:117.0.5938.149-chromedriver-117.0.5938.149-grid-4.35.0-20250909\nTagged selenium/node-chrome:117.0.5938.149-chromedriver-117.0.5938.149-20250909\nTagged selenium/standalone-chrome:117.0.5938.149-chromedriver-117.0.5938.149-20250909\nTagged selenium/node-chrome:117.0.5938.149-20250909\nTagged selenium/standalone-chrome:117.0.5938.149-20250909\nTagged selenium/node-chrome:117.0-chromedriver-117.0-grid-4.35.0-20250909\nTagged selenium/standalone-chrome:117.0-chromedriver-117.0-grid-4.35.0-20250909\nTagged selenium/node-chrome:117.0-chromedriver-117.0-20250909\nTagged selenium/standalone-chrome:117.0-chromedriver-117.0-20250909\nTagged selenium/node-chrome:117.0-20250909\nTagged selenium/standalone-chrome:117.0-20250909\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.35.0/chrome_118.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.35.0 20250909 selenium false chrome true\nTagging images for browser chrome, version 4.35.0, build date 20250909, namespace selenium\nSelenium Grid version -> 4.35.0-20250909\nChrome version -> 118.0.5993.117\nShort Chrome version -> 118.0\nChromeDriver version -> 118.0.5993.70\nShort ChromeDriver version -> 118.0\nTagged selenium/node-chrome:118.0.5993.117-chromedriver-118.0.5993.70-grid-4.35.0-20250909\nTagged selenium/standalone-chrome:118.0.5993.117-chromedriver-118.0.5993.70-grid-4.35.0-20250909\nTagged selenium/node-chrome:118.0.5993.117-chromedriver-118.0.5993.70-20250909\nTagged selenium/standalone-chrome:118.0.5993.117-chromedriver-118.0.5993.70-20250909\nTagged selenium/node-chrome:118.0.5993.117-20250909\nTagged selenium/standalone-chrome:118.0.5993.117-20250909\nTagged selenium/node-chrome:118.0-chromedriver-118.0-grid-4.35.0-20250909\nTagged selenium/standalone-chrome:118.0-chromedriver-118.0-grid-4.35.0-20250909\nTagged selenium/node-chrome:118.0-chromedriver-118.0-20250909\nTagged selenium/standalone-chrome:118.0-chromedriver-118.0-20250909\nTagged selenium/node-chrome:118.0-20250909\nTagged selenium/standalone-chrome:118.0-20250909\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.35.0/chrome_119.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.35.0 20250909 selenium false chrome true\nTagging images for browser chrome, version 4.35.0, build date 20250909, namespace selenium\nSelenium Grid version -> 4.35.0-20250909\nChrome version -> 119.0.6045.199\nShort Chrome version -> 119.0\nChromeDriver version -> 119.0.6045.105\nShort ChromeDriver version -> 119.0\nTagged selenium/node-chrome:119.0.6045.199-chromedriver-119.0.6045.105-grid-4.35.0-20250909\nTagged selenium/standalone-chrome:119.0.6045.199-chromedriver-119.0.6045.105-grid-4.35.0-20250909\nTagged selenium/node-chrome:119.0.6045.199-chromedriver-119.0.6045.105-20250909\nTagged selenium/standalone-chrome:119.0.6045.199-chromedriver-119.0.6045.105-20250909\nTagged selenium/node-chrome:119.0.6045.199-20250909\nTagged selenium/standalone-chrome:119.0.6045.199-20250909\nTagged selenium/node-chrome:119.0-chromedriver-119.0-grid-4.35.0-20250909\nTagged selenium/standalone-chrome:119.0-chromedriver-119.0-grid-4.35.0-20250909\nTagged selenium/node-chrome:119.0-chromedriver-119.0-20250909\nTagged selenium/standalone-chrome:119.0-chromedriver-119.0-20250909\nTagged selenium/node-chrome:119.0-20250909\nTagged selenium/standalone-chrome:119.0-20250909\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.35.0/chrome_120.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.35.0 20250909 selenium false chrome true\nTagging images for browser chrome, version 4.35.0, build date 20250909, namespace selenium\nSelenium Grid version -> 4.35.0-20250909\nChrome version -> 120.0.6099.224\nShort Chrome version -> 120.0\nChromeDriver version -> 120.0.6099.109\nShort ChromeDriver version -> 120.0\nTagged selenium/node-chrome:120.0.6099.224-chromedriver-120.0.6099.109-grid-4.35.0-20250909\nTagged selenium/standalone-chrome:120.0.6099.224-chromedriver-120.0.6099.109-grid-4.35.0-20250909\nTagged selenium/node-chrome:120.0.6099.224-chromedriver-120.0.6099.109-20250909\nTagged selenium/standalone-chrome:120.0.6099.224-chromedriver-120.0.6099.109-20250909\nTagged selenium/node-chrome:120.0.6099.224-20250909\nTagged selenium/standalone-chrome:120.0.6099.224-20250909\nTagged selenium/node-chrome:120.0-chromedriver-120.0-grid-4.35.0-20250909\nTagged selenium/standalone-chrome:120.0-chromedriver-120.0-grid-4.35.0-20250909\nTagged selenium/node-chrome:120.0-chromedriver-120.0-20250909\nTagged selenium/standalone-chrome:120.0-chromedriver-120.0-20250909\nTagged selenium/node-chrome:120.0-20250909\nTagged selenium/standalone-chrome:120.0-20250909\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.35.0/chrome_121.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.35.0 20250909 selenium false chrome true\nTagging images for browser chrome, version 4.35.0, build date 20250909, namespace selenium\nSelenium Grid version -> 4.35.0-20250909\nChrome version -> 121.0.6167.184\nShort Chrome version -> 121.0\nChromeDriver version -> 121.0.6167.184\nShort ChromeDriver version -> 121.0\nTagged selenium/node-chrome:121.0.6167.184-chromedriver-121.0.6167.184-grid-4.35.0-20250909\nTagged selenium/standalone-chrome:121.0.6167.184-chromedriver-121.0.6167.184-grid-4.35.0-20250909\nTagged selenium/node-chrome:121.0.6167.184-chromedriver-121.0.6167.184-20250909\nTagged selenium/standalone-chrome:121.0.6167.184-chromedriver-121.0.6167.184-20250909\nTagged selenium/node-chrome:121.0.6167.184-20250909\nTagged selenium/standalone-chrome:121.0.6167.184-20250909\nTagged selenium/node-chrome:121.0-chromedriver-121.0-grid-4.35.0-20250909\nTagged selenium/standalone-chrome:121.0-chromedriver-121.0-grid-4.35.0-20250909\nTagged selenium/node-chrome:121.0-chromedriver-121.0-20250909\nTagged selenium/standalone-chrome:121.0-chromedriver-121.0-20250909\nTagged selenium/node-chrome:121.0-20250909\nTagged selenium/standalone-chrome:121.0-20250909\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.35.0/chrome_122.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.35.0 20250909 selenium false chrome true\nTagging images for browser chrome, version 4.35.0, build date 20250909, namespace selenium\nSelenium Grid version -> 4.35.0-20250909\nChrome version -> 122.0.6261.128\nShort Chrome version -> 122.0\nChromeDriver version -> 122.0.6261.128\nShort ChromeDriver version -> 122.0\nTagged selenium/node-chrome:122.0.6261.128-chromedriver-122.0.6261.128-grid-4.35.0-20250909\nTagged selenium/standalone-chrome:122.0.6261.128-chromedriver-122.0.6261.128-grid-4.35.0-20250909\nTagged selenium/node-chrome:122.0.6261.128-chromedriver-122.0.6261.128-20250909\nTagged selenium/standalone-chrome:122.0.6261.128-chromedriver-122.0.6261.128-20250909\nTagged selenium/node-chrome:122.0.6261.128-20250909\nTagged selenium/standalone-chrome:122.0.6261.128-20250909\nTagged selenium/node-chrome:122.0-chromedriver-122.0-grid-4.35.0-20250909\nTagged selenium/standalone-chrome:122.0-chromedriver-122.0-grid-4.35.0-20250909\nTagged selenium/node-chrome:122.0-chromedriver-122.0-20250909\nTagged selenium/standalone-chrome:122.0-chromedriver-122.0-20250909\nTagged selenium/node-chrome:122.0-20250909\nTagged selenium/standalone-chrome:122.0-20250909\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.35.0/chrome_123.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.35.0 20250909 selenium false chrome true\nTagging images for browser chrome, version 4.35.0, build date 20250909, namespace selenium\nSelenium Grid version -> 4.35.0-20250909\nChrome version -> 123.0.6312.122\nShort Chrome version -> 123.0\nChromeDriver version -> 123.0.6312.122\nShort ChromeDriver version -> 123.0\nTagged selenium/node-chrome:123.0.6312.122-chromedriver-123.0.6312.122-grid-4.35.0-20250909\nTagged selenium/standalone-chrome:123.0.6312.122-chromedriver-123.0.6312.122-grid-4.35.0-20250909\nTagged selenium/node-chrome:123.0.6312.122-chromedriver-123.0.6312.122-20250909\nTagged selenium/standalone-chrome:123.0.6312.122-chromedriver-123.0.6312.122-20250909\nTagged selenium/node-chrome:123.0.6312.122-20250909\nTagged selenium/standalone-chrome:123.0.6312.122-20250909\nTagged selenium/node-chrome:123.0-chromedriver-123.0-grid-4.35.0-20250909\nTagged selenium/standalone-chrome:123.0-chromedriver-123.0-grid-4.35.0-20250909\nTagged selenium/node-chrome:123.0-chromedriver-123.0-20250909\nTagged selenium/standalone-chrome:123.0-chromedriver-123.0-20250909\nTagged selenium/node-chrome:123.0-20250909\nTagged selenium/standalone-chrome:123.0-20250909\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.35.0/chrome_124.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.35.0 20250909 selenium false chrome true\nTagging images for browser chrome, version 4.35.0, build date 20250909, namespace selenium\nSelenium Grid version -> 4.35.0-20250909\nChrome version -> 124.0.6367.207\nShort Chrome version -> 124.0\nChromeDriver version -> 124.0.6367.207\nShort ChromeDriver version -> 124.0\nTagged selenium/node-chrome:124.0.6367.207-chromedriver-124.0.6367.207-grid-4.35.0-20250909\nTagged selenium/standalone-chrome:124.0.6367.207-chromedriver-124.0.6367.207-grid-4.35.0-20250909\nTagged selenium/node-chrome:124.0.6367.207-chromedriver-124.0.6367.207-20250909\nTagged selenium/standalone-chrome:124.0.6367.207-chromedriver-124.0.6367.207-20250909\nTagged selenium/node-chrome:124.0.6367.207-20250909\nTagged selenium/standalone-chrome:124.0.6367.207-20250909\nTagged selenium/node-chrome:124.0-chromedriver-124.0-grid-4.35.0-20250909\nTagged selenium/standalone-chrome:124.0-chromedriver-124.0-grid-4.35.0-20250909\nTagged selenium/node-chrome:124.0-chromedriver-124.0-20250909\nTagged selenium/standalone-chrome:124.0-chromedriver-124.0-20250909\nTagged selenium/node-chrome:124.0-20250909\nTagged selenium/standalone-chrome:124.0-20250909\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.35.0/chrome_125.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.35.0 20250909 selenium false chrome true\nTagging images for browser chrome, version 4.35.0, build date 20250909, namespace selenium\nSelenium Grid version -> 4.35.0-20250909\nChrome version -> 125.0.6422.141\nShort Chrome version -> 125.0\nChromeDriver version -> 125.0.6422.141\nShort ChromeDriver version -> 125.0\nTagged selenium/node-chrome:125.0.6422.141-chromedriver-125.0.6422.141-grid-4.35.0-20250909\nTagged selenium/standalone-chrome:125.0.6422.141-chromedriver-125.0.6422.141-grid-4.35.0-20250909\nTagged selenium/node-chrome:125.0.6422.141-chromedriver-125.0.6422.141-20250909\nTagged selenium/standalone-chrome:125.0.6422.141-chromedriver-125.0.6422.141-20250909\nTagged selenium/node-chrome:125.0.6422.141-20250909\nTagged selenium/standalone-chrome:125.0.6422.141-20250909\nTagged selenium/node-chrome:125.0-chromedriver-125.0-grid-4.35.0-20250909\nTagged selenium/standalone-chrome:125.0-chromedriver-125.0-grid-4.35.0-20250909\nTagged selenium/node-chrome:125.0-chromedriver-125.0-20250909\nTagged selenium/standalone-chrome:125.0-chromedriver-125.0-20250909\nTagged selenium/node-chrome:125.0-20250909\nTagged selenium/standalone-chrome:125.0-20250909\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.35.0/chrome_126.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.35.0 20250909 selenium false chrome true\nTagging images for browser chrome, version 4.35.0, build date 20250909, namespace selenium\nSelenium Grid version -> 4.35.0-20250909\nChrome version -> 126.0.6478.182\nShort Chrome version -> 126.0\nChromeDriver version -> 126.0.6478.182\nShort ChromeDriver version -> 126.0\nTagged selenium/node-chrome:126.0.6478.182-chromedriver-126.0.6478.182-grid-4.35.0-20250909\nTagged selenium/standalone-chrome:126.0.6478.182-chromedriver-126.0.6478.182-grid-4.35.0-20250909\nTagged selenium/node-chrome:126.0.6478.182-chromedriver-126.0.6478.182-20250909\nTagged selenium/standalone-chrome:126.0.6478.182-chromedriver-126.0.6478.182-20250909\nTagged selenium/node-chrome:126.0.6478.182-20250909\nTagged selenium/standalone-chrome:126.0.6478.182-20250909\nTagged selenium/node-chrome:126.0-chromedriver-126.0-grid-4.35.0-20250909\nTagged selenium/standalone-chrome:126.0-chromedriver-126.0-grid-4.35.0-20250909\nTagged selenium/node-chrome:126.0-chromedriver-126.0-20250909\nTagged selenium/standalone-chrome:126.0-chromedriver-126.0-20250909\nTagged selenium/node-chrome:126.0-20250909\nTagged selenium/standalone-chrome:126.0-20250909\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.35.0/chrome_127.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.35.0 20250909 selenium false chrome true\nTagging images for browser chrome, version 4.35.0, build date 20250909, namespace selenium\nSelenium Grid version -> 4.35.0-20250909\nChrome version -> 127.0.6533.119\nShort Chrome version -> 127.0\nChromeDriver version -> 127.0.6533.119\nShort ChromeDriver version -> 127.0\nTagged selenium/node-chrome:127.0.6533.119-chromedriver-127.0.6533.119-grid-4.35.0-20250909\nTagged selenium/standalone-chrome:127.0.6533.119-chromedriver-127.0.6533.119-grid-4.35.0-20250909\nTagged selenium/node-chrome:127.0.6533.119-chromedriver-127.0.6533.119-20250909\nTagged selenium/standalone-chrome:127.0.6533.119-chromedriver-127.0.6533.119-20250909\nTagged selenium/node-chrome:127.0.6533.119-20250909\nTagged selenium/standalone-chrome:127.0.6533.119-20250909\nTagged selenium/node-chrome:127.0-chromedriver-127.0-grid-4.35.0-20250909\nTagged selenium/standalone-chrome:127.0-chromedriver-127.0-grid-4.35.0-20250909\nTagged selenium/node-chrome:127.0-chromedriver-127.0-20250909\nTagged selenium/standalone-chrome:127.0-chromedriver-127.0-20250909\nTagged selenium/node-chrome:127.0-20250909\nTagged selenium/standalone-chrome:127.0-20250909\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.35.0/chrome_128.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.35.0 20250909 selenium false chrome true\nTagging images for browser chrome, version 4.35.0, build date 20250909, namespace selenium\nSelenium Grid version -> 4.35.0-20250909\nChrome version -> 128.0.6613.137\nShort Chrome version -> 128.0\nChromeDriver version -> 128.0.6613.137\nShort ChromeDriver version -> 128.0\nTagged selenium/node-chrome:128.0.6613.137-chromedriver-128.0.6613.137-grid-4.35.0-20250909\nTagged selenium/standalone-chrome:128.0.6613.137-chromedriver-128.0.6613.137-grid-4.35.0-20250909\nTagged selenium/node-chrome:128.0.6613.137-chromedriver-128.0.6613.137-20250909\nTagged selenium/standalone-chrome:128.0.6613.137-chromedriver-128.0.6613.137-20250909\nTagged selenium/node-chrome:128.0.6613.137-20250909\nTagged selenium/standalone-chrome:128.0.6613.137-20250909\nTagged selenium/node-chrome:128.0-chromedriver-128.0-grid-4.35.0-20250909\nTagged selenium/standalone-chrome:128.0-chromedriver-128.0-grid-4.35.0-20250909\nTagged selenium/node-chrome:128.0-chromedriver-128.0-20250909\nTagged selenium/standalone-chrome:128.0-chromedriver-128.0-20250909\nTagged selenium/node-chrome:128.0-20250909\nTagged selenium/standalone-chrome:128.0-20250909\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.35.0/chrome_129.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.35.0 20250909 selenium false chrome true\nTagging images for browser chrome, version 4.35.0, build date 20250909, namespace selenium\nSelenium Grid version -> 4.35.0-20250909\nChrome version -> 129.0.6668.100\nShort Chrome version -> 129.0\nChromeDriver version -> 129.0.6668.100\nShort ChromeDriver version -> 129.0\nTagged selenium/node-chrome:129.0.6668.100-chromedriver-129.0.6668.100-grid-4.35.0-20250909\nTagged selenium/standalone-chrome:129.0.6668.100-chromedriver-129.0.6668.100-grid-4.35.0-20250909\nTagged selenium/node-chrome:129.0.6668.100-chromedriver-129.0.6668.100-20250909\nTagged selenium/standalone-chrome:129.0.6668.100-chromedriver-129.0.6668.100-20250909\nTagged selenium/node-chrome:129.0.6668.100-20250909\nTagged selenium/standalone-chrome:129.0.6668.100-20250909\nTagged selenium/node-chrome:129.0-chromedriver-129.0-grid-4.35.0-20250909\nTagged selenium/standalone-chrome:129.0-chromedriver-129.0-grid-4.35.0-20250909\nTagged selenium/node-chrome:129.0-chromedriver-129.0-20250909\nTagged selenium/standalone-chrome:129.0-chromedriver-129.0-20250909\nTagged selenium/node-chrome:129.0-20250909\nTagged selenium/standalone-chrome:129.0-20250909\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.35.0/chrome_130.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.35.0 20250909 selenium false chrome true\nTagging images for browser chrome, version 4.35.0, build date 20250909, namespace selenium\nSelenium Grid version -> 4.35.0-20250909\nChrome version -> 130.0.6723.116\nShort Chrome version -> 130.0\nChromeDriver version -> 130.0.6723.116\nShort ChromeDriver version -> 130.0\nTagged selenium/node-chrome:130.0.6723.116-chromedriver-130.0.6723.116-grid-4.35.0-20250909\nTagged selenium/standalone-chrome:130.0.6723.116-chromedriver-130.0.6723.116-grid-4.35.0-20250909\nTagged selenium/node-chrome:130.0.6723.116-chromedriver-130.0.6723.116-20250909\nTagged selenium/standalone-chrome:130.0.6723.116-chromedriver-130.0.6723.116-20250909\nTagged selenium/node-chrome:130.0.6723.116-20250909\nTagged selenium/standalone-chrome:130.0.6723.116-20250909\nTagged selenium/node-chrome:130.0-chromedriver-130.0-grid-4.35.0-20250909\nTagged selenium/standalone-chrome:130.0-chromedriver-130.0-grid-4.35.0-20250909\nTagged selenium/node-chrome:130.0-chromedriver-130.0-20250909\nTagged selenium/standalone-chrome:130.0-chromedriver-130.0-20250909\nTagged selenium/node-chrome:130.0-20250909\nTagged selenium/standalone-chrome:130.0-20250909\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.35.0/chrome_131.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.35.0 20250909 selenium false chrome true\nTagging images for browser chrome, version 4.35.0, build date 20250909, namespace selenium\nSelenium Grid version -> 4.35.0-20250909\nChrome version -> 131.0.6778.264\nShort Chrome version -> 131.0\nChromeDriver version -> 131.0.6778.264\nShort ChromeDriver version -> 131.0\nTagged selenium/node-chrome:131.0.6778.264-chromedriver-131.0.6778.264-grid-4.35.0-20250909\nTagged selenium/standalone-chrome:131.0.6778.264-chromedriver-131.0.6778.264-grid-4.35.0-20250909\nTagged selenium/node-chrome:131.0.6778.264-chromedriver-131.0.6778.264-20250909\nTagged selenium/standalone-chrome:131.0.6778.264-chromedriver-131.0.6778.264-20250909\nTagged selenium/node-chrome:131.0.6778.264-20250909\nTagged selenium/standalone-chrome:131.0.6778.264-20250909\nTagged selenium/node-chrome:131.0-chromedriver-131.0-grid-4.35.0-20250909\nTagged selenium/standalone-chrome:131.0-chromedriver-131.0-grid-4.35.0-20250909\nTagged selenium/node-chrome:131.0-chromedriver-131.0-20250909\nTagged selenium/standalone-chrome:131.0-chromedriver-131.0-20250909\nTagged selenium/node-chrome:131.0-20250909\nTagged selenium/standalone-chrome:131.0-20250909\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.35.0/chrome_132.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.35.0 20250909 selenium false chrome true\nTagging images for browser chrome, version 4.35.0, build date 20250909, namespace selenium\nSelenium Grid version -> 4.35.0-20250909\nChrome version -> 132.0.6834.159\nShort Chrome version -> 132.0\nChromeDriver version -> 132.0.6834.159\nShort ChromeDriver version -> 132.0\nTagged selenium/node-chrome:132.0.6834.159-chromedriver-132.0.6834.159-grid-4.35.0-20250909\nTagged selenium/standalone-chrome:132.0.6834.159-chromedriver-132.0.6834.159-grid-4.35.0-20250909\nTagged selenium/node-chrome:132.0.6834.159-chromedriver-132.0.6834.159-20250909\nTagged selenium/standalone-chrome:132.0.6834.159-chromedriver-132.0.6834.159-20250909\nTagged selenium/node-chrome:132.0.6834.159-20250909\nTagged selenium/standalone-chrome:132.0.6834.159-20250909\nTagged selenium/node-chrome:132.0-chromedriver-132.0-grid-4.35.0-20250909\nTagged selenium/standalone-chrome:132.0-chromedriver-132.0-grid-4.35.0-20250909\nTagged selenium/node-chrome:132.0-chromedriver-132.0-20250909\nTagged selenium/standalone-chrome:132.0-chromedriver-132.0-20250909\nTagged selenium/node-chrome:132.0-20250909\nTagged selenium/standalone-chrome:132.0-20250909\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.35.0/chrome_133.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.35.0 20250909 selenium false chrome true\nTagging images for browser chrome, version 4.35.0, build date 20250909, namespace selenium\nSelenium Grid version -> 4.35.0-20250909\nChrome version -> 133.0.6943.141\nShort Chrome version -> 133.0\nChromeDriver version -> 133.0.6943.141\nShort ChromeDriver version -> 133.0\nTagged selenium/node-chrome:133.0.6943.141-chromedriver-133.0.6943.141-grid-4.35.0-20250909\nTagged selenium/standalone-chrome:133.0.6943.141-chromedriver-133.0.6943.141-grid-4.35.0-20250909\nTagged selenium/node-chrome:133.0.6943.141-chromedriver-133.0.6943.141-20250909\nTagged selenium/standalone-chrome:133.0.6943.141-chromedriver-133.0.6943.141-20250909\nTagged selenium/node-chrome:133.0.6943.141-20250909\nTagged selenium/standalone-chrome:133.0.6943.141-20250909\nTagged selenium/node-chrome:133.0-chromedriver-133.0-grid-4.35.0-20250909\nTagged selenium/standalone-chrome:133.0-chromedriver-133.0-grid-4.35.0-20250909\nTagged selenium/node-chrome:133.0-chromedriver-133.0-20250909\nTagged selenium/standalone-chrome:133.0-chromedriver-133.0-20250909\nTagged selenium/node-chrome:133.0-20250909\nTagged selenium/standalone-chrome:133.0-20250909\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.35.0/chrome_134.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.35.0 20250909 selenium false chrome true\nTagging images for browser chrome, version 4.35.0, build date 20250909, namespace selenium\nSelenium Grid version -> 4.35.0-20250909\nChrome version -> 134.0.6998.165\nShort Chrome version -> 134.0\nChromeDriver version -> 134.0.6998.165\nShort ChromeDriver version -> 134.0\nTagged selenium/node-chrome:134.0.6998.165-chromedriver-134.0.6998.165-grid-4.35.0-20250909\nTagged selenium/standalone-chrome:134.0.6998.165-chromedriver-134.0.6998.165-grid-4.35.0-20250909\nTagged selenium/node-chrome:134.0.6998.165-chromedriver-134.0.6998.165-20250909\nTagged selenium/standalone-chrome:134.0.6998.165-chromedriver-134.0.6998.165-20250909\nTagged selenium/node-chrome:134.0.6998.165-20250909\nTagged selenium/standalone-chrome:134.0.6998.165-20250909\nTagged selenium/node-chrome:134.0-chromedriver-134.0-grid-4.35.0-20250909\nTagged selenium/standalone-chrome:134.0-chromedriver-134.0-grid-4.35.0-20250909\nTagged selenium/node-chrome:134.0-chromedriver-134.0-20250909\nTagged selenium/standalone-chrome:134.0-chromedriver-134.0-20250909\nTagged selenium/node-chrome:134.0-20250909\nTagged selenium/standalone-chrome:134.0-20250909\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.35.0/chrome_135.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.35.0 20250909 selenium false chrome true\nTagging images for browser chrome, version 4.35.0, build date 20250909, namespace selenium\nSelenium Grid version -> 4.35.0-20250909\nChrome version -> 135.0.7049.114\nShort Chrome version -> 135.0\nChromeDriver version -> 135.0.7049.114\nShort ChromeDriver version -> 135.0\nTagged selenium/node-chrome:135.0.7049.114-chromedriver-135.0.7049.114-grid-4.35.0-20250909\nTagged selenium/standalone-chrome:135.0.7049.114-chromedriver-135.0.7049.114-grid-4.35.0-20250909\nTagged selenium/node-chrome:135.0.7049.114-chromedriver-135.0.7049.114-20250909\nTagged selenium/standalone-chrome:135.0.7049.114-chromedriver-135.0.7049.114-20250909\nTagged selenium/node-chrome:135.0.7049.114-20250909\nTagged selenium/standalone-chrome:135.0.7049.114-20250909\nTagged selenium/node-chrome:135.0-chromedriver-135.0-grid-4.35.0-20250909\nTagged selenium/standalone-chrome:135.0-chromedriver-135.0-grid-4.35.0-20250909\nTagged selenium/node-chrome:135.0-chromedriver-135.0-20250909\nTagged selenium/standalone-chrome:135.0-chromedriver-135.0-20250909\nTagged selenium/node-chrome:135.0-20250909\nTagged selenium/standalone-chrome:135.0-20250909\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.35.0/chrome_136.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.35.0 20250909 selenium false chrome true\nTagging images for browser chrome, version 4.35.0, build date 20250909, namespace selenium\nSelenium Grid version -> 4.35.0-20250909\nChrome version -> 136.0.7103.113\nShort Chrome version -> 136.0\nChromeDriver version -> 136.0.7103.113\nShort ChromeDriver version -> 136.0\nTagged selenium/node-chrome:136.0.7103.113-chromedriver-136.0.7103.113-grid-4.35.0-20250909\nTagged selenium/standalone-chrome:136.0.7103.113-chromedriver-136.0.7103.113-grid-4.35.0-20250909\nTagged selenium/node-chrome:136.0.7103.113-chromedriver-136.0.7103.113-20250909\nTagged selenium/standalone-chrome:136.0.7103.113-chromedriver-136.0.7103.113-20250909\nTagged selenium/node-chrome:136.0.7103.113-20250909\nTagged selenium/standalone-chrome:136.0.7103.113-20250909\nTagged selenium/node-chrome:136.0-chromedriver-136.0-grid-4.35.0-20250909\nTagged selenium/standalone-chrome:136.0-chromedriver-136.0-grid-4.35.0-20250909\nTagged selenium/node-chrome:136.0-chromedriver-136.0-20250909\nTagged selenium/standalone-chrome:136.0-chromedriver-136.0-20250909\nTagged selenium/node-chrome:136.0-20250909\nTagged selenium/standalone-chrome:136.0-20250909\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.35.0/chrome_137.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.35.0 20250909 selenium false chrome true\nTagging images for browser chrome, version 4.35.0, build date 20250909, namespace selenium\nSelenium Grid version -> 4.35.0-20250909\nChrome version -> 137.0.7151.119\nShort Chrome version -> 137.0\nChromeDriver version -> 137.0.7151.119\nShort ChromeDriver version -> 137.0\nTagged selenium/node-chrome:137.0.7151.119-chromedriver-137.0.7151.119-grid-4.35.0-20250909\nTagged selenium/standalone-chrome:137.0.7151.119-chromedriver-137.0.7151.119-grid-4.35.0-20250909\nTagged selenium/node-chrome:137.0.7151.119-chromedriver-137.0.7151.119-20250909\nTagged selenium/standalone-chrome:137.0.7151.119-chromedriver-137.0.7151.119-20250909\nTagged selenium/node-chrome:137.0.7151.119-20250909\nTagged selenium/standalone-chrome:137.0.7151.119-20250909\nTagged selenium/node-chrome:137.0-chromedriver-137.0-grid-4.35.0-20250909\nTagged selenium/standalone-chrome:137.0-chromedriver-137.0-grid-4.35.0-20250909\nTagged selenium/node-chrome:137.0-chromedriver-137.0-20250909\nTagged selenium/standalone-chrome:137.0-chromedriver-137.0-20250909\nTagged selenium/node-chrome:137.0-20250909\nTagged selenium/standalone-chrome:137.0-20250909\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.35.0/chrome_138.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.35.0 20250909 selenium false chrome true\nTagging images for browser chrome, version 4.35.0, build date 20250909, namespace selenium\nSelenium Grid version -> 4.35.0-20250909\nChrome version -> 138.0.7204.183\nShort Chrome version -> 138.0\nChromeDriver version -> 138.0.7204.183\nShort ChromeDriver version -> 138.0\nTagged selenium/node-chrome:138.0.7204.183-chromedriver-138.0.7204.183-grid-4.35.0-20250909\nTagged selenium/standalone-chrome:138.0.7204.183-chromedriver-138.0.7204.183-grid-4.35.0-20250909\nTagged selenium/node-chrome:138.0.7204.183-chromedriver-138.0.7204.183-20250909\nTagged selenium/standalone-chrome:138.0.7204.183-chromedriver-138.0.7204.183-20250909\nTagged selenium/node-chrome:138.0.7204.183-20250909\nTagged selenium/standalone-chrome:138.0.7204.183-20250909\nTagged selenium/node-chrome:138.0-chromedriver-138.0-grid-4.35.0-20250909\nTagged selenium/standalone-chrome:138.0-chromedriver-138.0-grid-4.35.0-20250909\nTagged selenium/node-chrome:138.0-chromedriver-138.0-20250909\nTagged selenium/standalone-chrome:138.0-chromedriver-138.0-20250909\nTagged selenium/node-chrome:138.0-20250909\nTagged selenium/standalone-chrome:138.0-20250909\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.35.0/chrome_139.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.35.0 20250909 selenium false chrome true\nTagging images for browser chrome, version 4.35.0, build date 20250909, namespace selenium\nSelenium Grid version -> 4.35.0-20250909\nChrome version -> 139.0.7258.154\nShort Chrome version -> 139.0\nChromeDriver version -> 139.0.7258.154\nShort ChromeDriver version -> 139.0\nTagged selenium/node-chrome:139.0.7258.154-chromedriver-139.0.7258.154-grid-4.35.0-20250909\nTagged selenium/standalone-chrome:139.0.7258.154-chromedriver-139.0.7258.154-grid-4.35.0-20250909\nTagged selenium/node-chrome:139.0.7258.154-chromedriver-139.0.7258.154-20250909\nTagged selenium/standalone-chrome:139.0.7258.154-chromedriver-139.0.7258.154-20250909\nTagged selenium/node-chrome:139.0.7258.154-20250909\nTagged selenium/standalone-chrome:139.0.7258.154-20250909\nTagged selenium/node-chrome:139.0-chromedriver-139.0-grid-4.35.0-20250909\nTagged selenium/standalone-chrome:139.0-chromedriver-139.0-grid-4.35.0-20250909\nTagged selenium/node-chrome:139.0-chromedriver-139.0-20250909\nTagged selenium/standalone-chrome:139.0-chromedriver-139.0-20250909\nTagged selenium/node-chrome:139.0-20250909\nTagged selenium/standalone-chrome:139.0-20250909\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.35.0/chrome_95.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.35.0 20250909 selenium false chrome true\nTagging images for browser chrome, version 4.35.0, build date 20250909, namespace selenium\nSelenium Grid version -> 4.35.0-20250909\nChrome version -> 95.0.4638.69\nShort Chrome version -> 95.0\nChromeDriver version -> 95.0.4638.69\nShort ChromeDriver version -> 95.0\nTagged selenium/node-chrome:95.0.4638.69-chromedriver-95.0.4638.69-grid-4.35.0-20250909\nTagged selenium/standalone-chrome:95.0.4638.69-chromedriver-95.0.4638.69-grid-4.35.0-20250909\nTagged selenium/node-chrome:95.0.4638.69-chromedriver-95.0.4638.69-20250909\nTagged selenium/standalone-chrome:95.0.4638.69-chromedriver-95.0.4638.69-20250909\nTagged selenium/node-chrome:95.0.4638.69-20250909\nTagged selenium/standalone-chrome:95.0.4638.69-20250909\nTagged selenium/node-chrome:95.0-chromedriver-95.0-grid-4.35.0-20250909\nTagged selenium/standalone-chrome:95.0-chromedriver-95.0-grid-4.35.0-20250909\nTagged selenium/node-chrome:95.0-chromedriver-95.0-20250909\nTagged selenium/standalone-chrome:95.0-chromedriver-95.0-20250909\nTagged selenium/node-chrome:95.0-20250909\nTagged selenium/standalone-chrome:95.0-20250909\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.35.0/chrome_96.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.35.0 20250909 selenium false chrome true\nTagging images for browser chrome, version 4.35.0, build date 20250909, namespace selenium\nSelenium Grid version -> 4.35.0-20250909\nChrome version -> 96.0.4664.110\nShort Chrome version -> 96.0\nChromeDriver version -> 96.0.4664.45\nShort ChromeDriver version -> 96.0\nTagged selenium/node-chrome:96.0.4664.110-chromedriver-96.0.4664.45-grid-4.35.0-20250909\nTagged selenium/standalone-chrome:96.0.4664.110-chromedriver-96.0.4664.45-grid-4.35.0-20250909\nTagged selenium/node-chrome:96.0.4664.110-chromedriver-96.0.4664.45-20250909\nTagged selenium/standalone-chrome:96.0.4664.110-chromedriver-96.0.4664.45-20250909\nTagged selenium/node-chrome:96.0.4664.110-20250909\nTagged selenium/standalone-chrome:96.0.4664.110-20250909\nTagged selenium/node-chrome:96.0-chromedriver-96.0-grid-4.35.0-20250909\nTagged selenium/standalone-chrome:96.0-chromedriver-96.0-grid-4.35.0-20250909\nTagged selenium/node-chrome:96.0-chromedriver-96.0-20250909\nTagged selenium/standalone-chrome:96.0-chromedriver-96.0-20250909\nTagged selenium/node-chrome:96.0-20250909\nTagged selenium/standalone-chrome:96.0-20250909\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.35.0/chrome_97.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.35.0 20250909 selenium false chrome true\nTagging images for browser chrome, version 4.35.0, build date 20250909, namespace selenium\nSelenium Grid version -> 4.35.0-20250909\nChrome version -> 97.0.4692.99\nShort Chrome version -> 97.0\nChromeDriver version -> 97.0.4692.71\nShort ChromeDriver version -> 97.0\nTagged selenium/node-chrome:97.0.4692.99-chromedriver-97.0.4692.71-grid-4.35.0-20250909\nTagged selenium/standalone-chrome:97.0.4692.99-chromedriver-97.0.4692.71-grid-4.35.0-20250909\nTagged selenium/node-chrome:97.0.4692.99-chromedriver-97.0.4692.71-20250909\nTagged selenium/standalone-chrome:97.0.4692.99-chromedriver-97.0.4692.71-20250909\nTagged selenium/node-chrome:97.0.4692.99-20250909\nTagged selenium/standalone-chrome:97.0.4692.99-20250909\nTagged selenium/node-chrome:97.0-chromedriver-97.0-grid-4.35.0-20250909\nTagged selenium/standalone-chrome:97.0-chromedriver-97.0-grid-4.35.0-20250909\nTagged selenium/node-chrome:97.0-chromedriver-97.0-20250909\nTagged selenium/standalone-chrome:97.0-chromedriver-97.0-20250909\nTagged selenium/node-chrome:97.0-20250909\nTagged selenium/standalone-chrome:97.0-20250909\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.35.0/chrome_98.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.35.0 20250909 selenium false chrome true\nTagging images for browser chrome, version 4.35.0, build date 20250909, namespace selenium\nSelenium Grid version -> 4.35.0-20250909\nChrome version -> 98.0.4758.102\nShort Chrome version -> 98.0\nChromeDriver version -> 98.0.4758.102\nShort ChromeDriver version -> 98.0\nTagged selenium/node-chrome:98.0.4758.102-chromedriver-98.0.4758.102-grid-4.35.0-20250909\nTagged selenium/standalone-chrome:98.0.4758.102-chromedriver-98.0.4758.102-grid-4.35.0-20250909\nTagged selenium/node-chrome:98.0.4758.102-chromedriver-98.0.4758.102-20250909\nTagged selenium/standalone-chrome:98.0.4758.102-chromedriver-98.0.4758.102-20250909\nTagged selenium/node-chrome:98.0.4758.102-20250909\nTagged selenium/standalone-chrome:98.0.4758.102-20250909\nTagged selenium/node-chrome:98.0-chromedriver-98.0-grid-4.35.0-20250909\nTagged selenium/standalone-chrome:98.0-chromedriver-98.0-grid-4.35.0-20250909\nTagged selenium/node-chrome:98.0-chromedriver-98.0-20250909\nTagged selenium/standalone-chrome:98.0-chromedriver-98.0-20250909\nTagged selenium/node-chrome:98.0-20250909\nTagged selenium/standalone-chrome:98.0-20250909\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.35.0/chrome_99.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.35.0 20250909 selenium false chrome true\nTagging images for browser chrome, version 4.35.0, build date 20250909, namespace selenium\nSelenium Grid version -> 4.35.0-20250909\nChrome version -> 99.0.4844.84\nShort Chrome version -> 99.0\nChromeDriver version -> 99.0.4844.51\nShort ChromeDriver version -> 99.0\nTagged selenium/node-chrome:99.0.4844.84-chromedriver-99.0.4844.51-grid-4.35.0-20250909\nTagged selenium/standalone-chrome:99.0.4844.84-chromedriver-99.0.4844.51-grid-4.35.0-20250909\nTagged selenium/node-chrome:99.0.4844.84-chromedriver-99.0.4844.51-20250909\nTagged selenium/standalone-chrome:99.0.4844.84-chromedriver-99.0.4844.51-20250909\nTagged selenium/node-chrome:99.0.4844.84-20250909\nTagged selenium/standalone-chrome:99.0.4844.84-20250909\nTagged selenium/node-chrome:99.0-chromedriver-99.0-grid-4.35.0-20250909\nTagged selenium/standalone-chrome:99.0-chromedriver-99.0-grid-4.35.0-20250909\nTagged selenium/node-chrome:99.0-chromedriver-99.0-20250909\nTagged selenium/standalone-chrome:99.0-chromedriver-99.0-20250909\nTagged selenium/node-chrome:99.0-20250909\nTagged selenium/standalone-chrome:99.0-20250909\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.35.0/edge_114.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.35.0 20250909 selenium false edge true\nTagging images for browser edge, version 4.35.0, build date 20250909, namespace selenium\nSelenium Grid version -> 4.35.0-20250909\nEdge version -> 114.0.1823.82\nShort Edge version -> 114.0\nEdgeDriver version -> 114.0.1823.82\nShort EdgeDriver version -> 114.0\nTagged selenium/node-edge:114.0.1823.82-edgedriver-114.0.1823.82-grid-4.35.0-20250909\nTagged selenium/standalone-edge:114.0.1823.82-edgedriver-114.0.1823.82-grid-4.35.0-20250909\nTagged selenium/node-edge:114.0.1823.82-edgedriver-114.0.1823.82-20250909\nTagged selenium/standalone-edge:114.0.1823.82-edgedriver-114.0.1823.82-20250909\nTagged selenium/node-edge:114.0.1823.82-20250909\nTagged selenium/standalone-edge:114.0.1823.82-20250909\nTagged selenium/node-edge:114.0-edgedriver-114.0-grid-4.35.0-20250909\nTagged selenium/standalone-edge:114.0-edgedriver-114.0-grid-4.35.0-20250909\nTagged selenium/node-edge:114.0-edgedriver-114.0-20250909\nTagged selenium/standalone-edge:114.0-edgedriver-114.0-20250909\nTagged selenium/node-edge:114.0-20250909\nTagged selenium/standalone-edge:114.0-20250909\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.35.0/edge_115.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.35.0 20250909 selenium false edge true\nTagging images for browser edge, version 4.35.0, build date 20250909, namespace selenium\nSelenium Grid version -> 4.35.0-20250909\nEdge version -> 115.0.1901.203\nShort Edge version -> 115.0\nEdgeDriver version -> 115.0.1901.203\nShort EdgeDriver version -> 115.0\nTagged selenium/node-edge:115.0.1901.203-edgedriver-115.0.1901.203-grid-4.35.0-20250909\nTagged selenium/standalone-edge:115.0.1901.203-edgedriver-115.0.1901.203-grid-4.35.0-20250909\nTagged selenium/node-edge:115.0.1901.203-edgedriver-115.0.1901.203-20250909\nTagged selenium/standalone-edge:115.0.1901.203-edgedriver-115.0.1901.203-20250909\nTagged selenium/node-edge:115.0.1901.203-20250909\nTagged selenium/standalone-edge:115.0.1901.203-20250909\nTagged selenium/node-edge:115.0-edgedriver-115.0-grid-4.35.0-20250909\nTagged selenium/standalone-edge:115.0-edgedriver-115.0-grid-4.35.0-20250909\nTagged selenium/node-edge:115.0-edgedriver-115.0-20250909\nTagged selenium/standalone-edge:115.0-edgedriver-115.0-20250909\nTagged selenium/node-edge:115.0-20250909\nTagged selenium/standalone-edge:115.0-20250909\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.35.0/edge_116.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.35.0 20250909 selenium false edge true\nTagging images for browser edge, version 4.35.0, build date 20250909, namespace selenium\nSelenium Grid version -> 4.35.0-20250909\nEdge version -> 116.0.1938.81\nShort Edge version -> 116.0\nEdgeDriver version -> 116.0.1938.81\nShort EdgeDriver version -> 116.0\nTagged selenium/node-edge:116.0.1938.81-edgedriver-116.0.1938.81-grid-4.35.0-20250909\nTagged selenium/standalone-edge:116.0.1938.81-edgedriver-116.0.1938.81-grid-4.35.0-20250909\nTagged selenium/node-edge:116.0.1938.81-edgedriver-116.0.1938.81-20250909\nTagged selenium/standalone-edge:116.0.1938.81-edgedriver-116.0.1938.81-20250909\nTagged selenium/node-edge:116.0.1938.81-20250909\nTagged selenium/standalone-edge:116.0.1938.81-20250909\nTagged selenium/node-edge:116.0-edgedriver-116.0-grid-4.35.0-20250909\nTagged selenium/standalone-edge:116.0-edgedriver-116.0-grid-4.35.0-20250909\nTagged selenium/node-edge:116.0-edgedriver-116.0-20250909\nTagged selenium/standalone-edge:116.0-edgedriver-116.0-20250909\nTagged selenium/node-edge:116.0-20250909\nTagged selenium/standalone-edge:116.0-20250909\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.35.0/edge_117.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.35.0 20250909 selenium false edge true\nTagging images for browser edge, version 4.35.0, build date 20250909, namespace selenium\nSelenium Grid version -> 4.35.0-20250909\nEdge version -> 117.0.2045.55\nShort Edge version -> 117.0\nEdgeDriver version -> 117.0.2045.55\nShort EdgeDriver version -> 117.0\nTagged selenium/node-edge:117.0.2045.55-edgedriver-117.0.2045.55-grid-4.35.0-20250909\nTagged selenium/standalone-edge:117.0.2045.55-edgedriver-117.0.2045.55-grid-4.35.0-20250909\nTagged selenium/node-edge:117.0.2045.55-edgedriver-117.0.2045.55-20250909\nTagged selenium/standalone-edge:117.0.2045.55-edgedriver-117.0.2045.55-20250909\nTagged selenium/node-edge:117.0.2045.55-20250909\nTagged selenium/standalone-edge:117.0.2045.55-20250909\nTagged selenium/node-edge:117.0-edgedriver-117.0-grid-4.35.0-20250909\nTagged selenium/standalone-edge:117.0-edgedriver-117.0-grid-4.35.0-20250909\nTagged selenium/node-edge:117.0-edgedriver-117.0-20250909\nTagged selenium/standalone-edge:117.0-edgedriver-117.0-20250909\nTagged selenium/node-edge:117.0-20250909\nTagged selenium/standalone-edge:117.0-20250909\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.35.0/edge_118.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.35.0 20250909 selenium false edge true\nTagging images for browser edge, version 4.35.0, build date 20250909, namespace selenium\nSelenium Grid version -> 4.35.0-20250909\nEdge version -> 118.0.2088.76\nShort Edge version -> 118.0\nEdgeDriver version -> 118.0.2088.76\nShort EdgeDriver version -> 118.0\nTagged selenium/node-edge:118.0.2088.76-edgedriver-118.0.2088.76-grid-4.35.0-20250909\nTagged selenium/standalone-edge:118.0.2088.76-edgedriver-118.0.2088.76-grid-4.35.0-20250909\nTagged selenium/node-edge:118.0.2088.76-edgedriver-118.0.2088.76-20250909\nTagged selenium/standalone-edge:118.0.2088.76-edgedriver-118.0.2088.76-20250909\nTagged selenium/node-edge:118.0.2088.76-20250909\nTagged selenium/standalone-edge:118.0.2088.76-20250909\nTagged selenium/node-edge:118.0-edgedriver-118.0-grid-4.35.0-20250909\nTagged selenium/standalone-edge:118.0-edgedriver-118.0-grid-4.35.0-20250909\nTagged selenium/node-edge:118.0-edgedriver-118.0-20250909\nTagged selenium/standalone-edge:118.0-edgedriver-118.0-20250909\nTagged selenium/node-edge:118.0-20250909\nTagged selenium/standalone-edge:118.0-20250909\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.35.0/edge_119.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.35.0 20250909 selenium false edge true\nTagging images for browser edge, version 4.35.0, build date 20250909, namespace selenium\nSelenium Grid version -> 4.35.0-20250909\nEdge version -> 119.0.2151.97\nShort Edge version -> 119.0\nEdgeDriver version -> 119.0.2151.97\nShort EdgeDriver version -> 119.0\nTagged selenium/node-edge:119.0.2151.97-edgedriver-119.0.2151.97-grid-4.35.0-20250909\nTagged selenium/standalone-edge:119.0.2151.97-edgedriver-119.0.2151.97-grid-4.35.0-20250909\nTagged selenium/node-edge:119.0.2151.97-edgedriver-119.0.2151.97-20250909\nTagged selenium/standalone-edge:119.0.2151.97-edgedriver-119.0.2151.97-20250909\nTagged selenium/node-edge:119.0.2151.97-20250909\nTagged selenium/standalone-edge:119.0.2151.97-20250909\nTagged selenium/node-edge:119.0-edgedriver-119.0-grid-4.35.0-20250909\nTagged selenium/standalone-edge:119.0-edgedriver-119.0-grid-4.35.0-20250909\nTagged selenium/node-edge:119.0-edgedriver-119.0-20250909\nTagged selenium/standalone-edge:119.0-edgedriver-119.0-20250909\nTagged selenium/node-edge:119.0-20250909\nTagged selenium/standalone-edge:119.0-20250909\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.35.0/edge_120.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.35.0 20250909 selenium false edge true\nTagging images for browser edge, version 4.35.0, build date 20250909, namespace selenium\nSelenium Grid version -> 4.35.0-20250909\nEdge version -> 120.0.2210.144\nShort Edge version -> 120.0\nEdgeDriver version -> 120.0.2210.144\nShort EdgeDriver version -> 120.0\nTagged selenium/node-edge:120.0.2210.144-edgedriver-120.0.2210.144-grid-4.35.0-20250909\nTagged selenium/standalone-edge:120.0.2210.144-edgedriver-120.0.2210.144-grid-4.35.0-20250909\nTagged selenium/node-edge:120.0.2210.144-edgedriver-120.0.2210.144-20250909\nTagged selenium/standalone-edge:120.0.2210.144-edgedriver-120.0.2210.144-20250909\nTagged selenium/node-edge:120.0.2210.144-20250909\nTagged selenium/standalone-edge:120.0.2210.144-20250909\nTagged selenium/node-edge:120.0-edgedriver-120.0-grid-4.35.0-20250909\nTagged selenium/standalone-edge:120.0-edgedriver-120.0-grid-4.35.0-20250909\nTagged selenium/node-edge:120.0-edgedriver-120.0-20250909\nTagged selenium/standalone-edge:120.0-edgedriver-120.0-20250909\nTagged selenium/node-edge:120.0-20250909\nTagged selenium/standalone-edge:120.0-20250909\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.35.0/edge_121.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.35.0 20250909 selenium false edge true\nTagging images for browser edge, version 4.35.0, build date 20250909, namespace selenium\nSelenium Grid version -> 4.35.0-20250909\nEdge version -> 121.0.2277.128\nShort Edge version -> 121.0\nEdgeDriver version -> 121.0.2277.128\nShort EdgeDriver version -> 121.0\nTagged selenium/node-edge:121.0.2277.128-edgedriver-121.0.2277.128-grid-4.35.0-20250909\nTagged selenium/standalone-edge:121.0.2277.128-edgedriver-121.0.2277.128-grid-4.35.0-20250909\nTagged selenium/node-edge:121.0.2277.128-edgedriver-121.0.2277.128-20250909\nTagged selenium/standalone-edge:121.0.2277.128-edgedriver-121.0.2277.128-20250909\nTagged selenium/node-edge:121.0.2277.128-20250909\nTagged selenium/standalone-edge:121.0.2277.128-20250909\nTagged selenium/node-edge:121.0-edgedriver-121.0-grid-4.35.0-20250909\nTagged selenium/standalone-edge:121.0-edgedriver-121.0-grid-4.35.0-20250909\nTagged selenium/node-edge:121.0-edgedriver-121.0-20250909\nTagged selenium/standalone-edge:121.0-edgedriver-121.0-20250909\nTagged selenium/node-edge:121.0-20250909\nTagged selenium/standalone-edge:121.0-20250909\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.35.0/edge_122.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.35.0 20250909 selenium false edge true\nTagging images for browser edge, version 4.35.0, build date 20250909, namespace selenium\nSelenium Grid version -> 4.35.0-20250909\nEdge version -> 122.0.2365.92\nShort Edge version -> 122.0\nEdgeDriver version -> 122.0.2365.92\nShort EdgeDriver version -> 122.0\nTagged selenium/node-edge:122.0.2365.92-edgedriver-122.0.2365.92-grid-4.35.0-20250909\nTagged selenium/standalone-edge:122.0.2365.92-edgedriver-122.0.2365.92-grid-4.35.0-20250909\nTagged selenium/node-edge:122.0.2365.92-edgedriver-122.0.2365.92-20250909\nTagged selenium/standalone-edge:122.0.2365.92-edgedriver-122.0.2365.92-20250909\nTagged selenium/node-edge:122.0.2365.92-20250909\nTagged selenium/standalone-edge:122.0.2365.92-20250909\nTagged selenium/node-edge:122.0-edgedriver-122.0-grid-4.35.0-20250909\nTagged selenium/standalone-edge:122.0-edgedriver-122.0-grid-4.35.0-20250909\nTagged selenium/node-edge:122.0-edgedriver-122.0-20250909\nTagged selenium/standalone-edge:122.0-edgedriver-122.0-20250909\nTagged selenium/node-edge:122.0-20250909\nTagged selenium/standalone-edge:122.0-20250909\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.35.0/edge_123.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.35.0 20250909 selenium false edge true\nTagging images for browser edge, version 4.35.0, build date 20250909, namespace selenium\nSelenium Grid version -> 4.35.0-20250909\nEdge version -> 123.0.2420.97\nShort Edge version -> 123.0\nEdgeDriver version -> 123.0.2420.97\nShort EdgeDriver version -> 123.0\nTagged selenium/node-edge:123.0.2420.97-edgedriver-123.0.2420.97-grid-4.35.0-20250909\nTagged selenium/standalone-edge:123.0.2420.97-edgedriver-123.0.2420.97-grid-4.35.0-20250909\nTagged selenium/node-edge:123.0.2420.97-edgedriver-123.0.2420.97-20250909\nTagged selenium/standalone-edge:123.0.2420.97-edgedriver-123.0.2420.97-20250909\nTagged selenium/node-edge:123.0.2420.97-20250909\nTagged selenium/standalone-edge:123.0.2420.97-20250909\nTagged selenium/node-edge:123.0-edgedriver-123.0-grid-4.35.0-20250909\nTagged selenium/standalone-edge:123.0-edgedriver-123.0-grid-4.35.0-20250909\nTagged selenium/node-edge:123.0-edgedriver-123.0-20250909\nTagged selenium/standalone-edge:123.0-edgedriver-123.0-20250909\nTagged selenium/node-edge:123.0-20250909\nTagged selenium/standalone-edge:123.0-20250909\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.35.0/edge_124.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.35.0 20250909 selenium false edge true\nTagging images for browser edge, version 4.35.0, build date 20250909, namespace selenium\nSelenium Grid version -> 4.35.0-20250909\nEdge version -> 124.0.2478.109\nShort Edge version -> 124.0\nEdgeDriver version -> 124.0.2478.109\nShort EdgeDriver version -> 124.0\nTagged selenium/node-edge:124.0.2478.109-edgedriver-124.0.2478.109-grid-4.35.0-20250909\nTagged selenium/standalone-edge:124.0.2478.109-edgedriver-124.0.2478.109-grid-4.35.0-20250909\nTagged selenium/node-edge:124.0.2478.109-edgedriver-124.0.2478.109-20250909\nTagged selenium/standalone-edge:124.0.2478.109-edgedriver-124.0.2478.109-20250909\nTagged selenium/node-edge:124.0.2478.109-20250909\nTagged selenium/standalone-edge:124.0.2478.109-20250909\nTagged selenium/node-edge:124.0-edgedriver-124.0-grid-4.35.0-20250909\nTagged selenium/standalone-edge:124.0-edgedriver-124.0-grid-4.35.0-20250909\nTagged selenium/node-edge:124.0-edgedriver-124.0-20250909\nTagged selenium/standalone-edge:124.0-edgedriver-124.0-20250909\nTagged selenium/node-edge:124.0-20250909\nTagged selenium/standalone-edge:124.0-20250909\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.35.0/edge_125.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.35.0 20250909 selenium false edge true\nTagging images for browser edge, version 4.35.0, build date 20250909, namespace selenium\nSelenium Grid version -> 4.35.0-20250909\nEdge version -> 125.0.2535.92\nShort Edge version -> 125.0\nEdgeDriver version -> 125.0.2535.92\nShort EdgeDriver version -> 125.0\nTagged selenium/node-edge:125.0.2535.92-edgedriver-125.0.2535.92-grid-4.35.0-20250909\nTagged selenium/standalone-edge:125.0.2535.92-edgedriver-125.0.2535.92-grid-4.35.0-20250909\nTagged selenium/node-edge:125.0.2535.92-edgedriver-125.0.2535.92-20250909\nTagged selenium/standalone-edge:125.0.2535.92-edgedriver-125.0.2535.92-20250909\nTagged selenium/node-edge:125.0.2535.92-20250909\nTagged selenium/standalone-edge:125.0.2535.92-20250909\nTagged selenium/node-edge:125.0-edgedriver-125.0-grid-4.35.0-20250909\nTagged selenium/standalone-edge:125.0-edgedriver-125.0-grid-4.35.0-20250909\nTagged selenium/node-edge:125.0-edgedriver-125.0-20250909\nTagged selenium/standalone-edge:125.0-edgedriver-125.0-20250909\nTagged selenium/node-edge:125.0-20250909\nTagged selenium/standalone-edge:125.0-20250909\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.35.0/edge_126.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.35.0 20250909 selenium false edge true\nTagging images for browser edge, version 4.35.0, build date 20250909, namespace selenium\nSelenium Grid version -> 4.35.0-20250909\nEdge version -> 126.0.2592.113\nShort Edge version -> 126.0\nEdgeDriver version -> 126.0.2592.123\nShort EdgeDriver version -> 126.0\nTagged selenium/node-edge:126.0.2592.113-edgedriver-126.0.2592.123-grid-4.35.0-20250909\nTagged selenium/standalone-edge:126.0.2592.113-edgedriver-126.0.2592.123-grid-4.35.0-20250909\nTagged selenium/node-edge:126.0.2592.113-edgedriver-126.0.2592.123-20250909\nTagged selenium/standalone-edge:126.0.2592.113-edgedriver-126.0.2592.123-20250909\nTagged selenium/node-edge:126.0.2592.113-20250909\nTagged selenium/standalone-edge:126.0.2592.113-20250909\nTagged selenium/node-edge:126.0-edgedriver-126.0-grid-4.35.0-20250909\nTagged selenium/standalone-edge:126.0-edgedriver-126.0-grid-4.35.0-20250909\nTagged selenium/node-edge:126.0-edgedriver-126.0-20250909\nTagged selenium/standalone-edge:126.0-edgedriver-126.0-20250909\nTagged selenium/node-edge:126.0-20250909\nTagged selenium/standalone-edge:126.0-20250909\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.35.0/edge_127.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.35.0 20250909 selenium false edge true\nTagging images for browser edge, version 4.35.0, build date 20250909, namespace selenium\nSelenium Grid version -> 4.35.0-20250909\nEdge version -> 127.0.2651.105\nShort Edge version -> 127.0\nEdgeDriver version -> 127.0.2651.107\nShort EdgeDriver version -> 127.0\nTagged selenium/node-edge:127.0.2651.105-edgedriver-127.0.2651.107-grid-4.35.0-20250909\nTagged selenium/standalone-edge:127.0.2651.105-edgedriver-127.0.2651.107-grid-4.35.0-20250909\nTagged selenium/node-edge:127.0.2651.105-edgedriver-127.0.2651.107-20250909\nTagged selenium/standalone-edge:127.0.2651.105-edgedriver-127.0.2651.107-20250909\nTagged selenium/node-edge:127.0.2651.105-20250909\nTagged selenium/standalone-edge:127.0.2651.105-20250909\nTagged selenium/node-edge:127.0-edgedriver-127.0-grid-4.35.0-20250909\nTagged selenium/standalone-edge:127.0-edgedriver-127.0-grid-4.35.0-20250909\nTagged selenium/node-edge:127.0-edgedriver-127.0-20250909\nTagged selenium/standalone-edge:127.0-edgedriver-127.0-20250909\nTagged selenium/node-edge:127.0-20250909\nTagged selenium/standalone-edge:127.0-20250909\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.35.0/edge_128.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.35.0 20250909 selenium false edge true\nTagging images for browser edge, version 4.35.0, build date 20250909, namespace selenium\nSelenium Grid version -> 4.35.0-20250909\nEdge version -> 128.0.2739.79\nShort Edge version -> 128.0\nEdgeDriver version -> 128.0.2739.81\nShort EdgeDriver version -> 128.0\nTagged selenium/node-edge:128.0.2739.79-edgedriver-128.0.2739.81-grid-4.35.0-20250909\nTagged selenium/standalone-edge:128.0.2739.79-edgedriver-128.0.2739.81-grid-4.35.0-20250909\nTagged selenium/node-edge:128.0.2739.79-edgedriver-128.0.2739.81-20250909\nTagged selenium/standalone-edge:128.0.2739.79-edgedriver-128.0.2739.81-20250909\nTagged selenium/node-edge:128.0.2739.79-20250909\nTagged selenium/standalone-edge:128.0.2739.79-20250909\nTagged selenium/node-edge:128.0-edgedriver-128.0-grid-4.35.0-20250909\nTagged selenium/standalone-edge:128.0-edgedriver-128.0-grid-4.35.0-20250909\nTagged selenium/node-edge:128.0-edgedriver-128.0-20250909\nTagged selenium/standalone-edge:128.0-edgedriver-128.0-20250909\nTagged selenium/node-edge:128.0-20250909\nTagged selenium/standalone-edge:128.0-20250909\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.35.0/edge_129.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.35.0 20250909 selenium false edge true\nTagging images for browser edge, version 4.35.0, build date 20250909, namespace selenium\nSelenium Grid version -> 4.35.0-20250909\nEdge version -> 129.0.2792.89\nShort Edge version -> 129.0\nEdgeDriver version -> 129.0.2792.98\nShort EdgeDriver version -> 129.0\nTagged selenium/node-edge:129.0.2792.89-edgedriver-129.0.2792.98-grid-4.35.0-20250909\nTagged selenium/standalone-edge:129.0.2792.89-edgedriver-129.0.2792.98-grid-4.35.0-20250909\nTagged selenium/node-edge:129.0.2792.89-edgedriver-129.0.2792.98-20250909\nTagged selenium/standalone-edge:129.0.2792.89-edgedriver-129.0.2792.98-20250909\nTagged selenium/node-edge:129.0.2792.89-20250909\nTagged selenium/standalone-edge:129.0.2792.89-20250909\nTagged selenium/node-edge:129.0-edgedriver-129.0-grid-4.35.0-20250909\nTagged selenium/standalone-edge:129.0-edgedriver-129.0-grid-4.35.0-20250909\nTagged selenium/node-edge:129.0-edgedriver-129.0-20250909\nTagged selenium/standalone-edge:129.0-edgedriver-129.0-20250909\nTagged selenium/node-edge:129.0-20250909\nTagged selenium/standalone-edge:129.0-20250909\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.35.0/edge_130.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.35.0 20250909 selenium false edge true\nTagging images for browser edge, version 4.35.0, build date 20250909, namespace selenium\nSelenium Grid version -> 4.35.0-20250909\nEdge version -> 130.0.2849.80\nShort Edge version -> 130.0\nEdgeDriver version -> 130.0.2849.78\nShort EdgeDriver version -> 130.0\nTagged selenium/node-edge:130.0.2849.80-edgedriver-130.0.2849.78-grid-4.35.0-20250909\nTagged selenium/standalone-edge:130.0.2849.80-edgedriver-130.0.2849.78-grid-4.35.0-20250909\nTagged selenium/node-edge:130.0.2849.80-edgedriver-130.0.2849.78-20250909\nTagged selenium/standalone-edge:130.0.2849.80-edgedriver-130.0.2849.78-20250909\nTagged selenium/node-edge:130.0.2849.80-20250909\nTagged selenium/standalone-edge:130.0.2849.80-20250909\nTagged selenium/node-edge:130.0-edgedriver-130.0-grid-4.35.0-20250909\nTagged selenium/standalone-edge:130.0-edgedriver-130.0-grid-4.35.0-20250909\nTagged selenium/node-edge:130.0-edgedriver-130.0-20250909\nTagged selenium/standalone-edge:130.0-edgedriver-130.0-20250909\nTagged selenium/node-edge:130.0-20250909\nTagged selenium/standalone-edge:130.0-20250909\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.35.0/edge_131.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.35.0 20250909 selenium false edge true\nTagging images for browser edge, version 4.35.0, build date 20250909, namespace selenium\nSelenium Grid version -> 4.35.0-20250909\nEdge version -> 131.0.2903.147\nShort Edge version -> 131.0\nEdgeDriver version -> 131.0.2903.147\nShort EdgeDriver version -> 131.0\nTagged selenium/node-edge:131.0.2903.147-edgedriver-131.0.2903.147-grid-4.35.0-20250909\nTagged selenium/standalone-edge:131.0.2903.147-edgedriver-131.0.2903.147-grid-4.35.0-20250909\nTagged selenium/node-edge:131.0.2903.147-edgedriver-131.0.2903.147-20250909\nTagged selenium/standalone-edge:131.0.2903.147-edgedriver-131.0.2903.147-20250909\nTagged selenium/node-edge:131.0.2903.147-20250909\nTagged selenium/standalone-edge:131.0.2903.147-20250909\nTagged selenium/node-edge:131.0-edgedriver-131.0-grid-4.35.0-20250909\nTagged selenium/standalone-edge:131.0-edgedriver-131.0-grid-4.35.0-20250909\nTagged selenium/node-edge:131.0-edgedriver-131.0-20250909\nTagged selenium/standalone-edge:131.0-edgedriver-131.0-20250909\nTagged selenium/node-edge:131.0-20250909\nTagged selenium/standalone-edge:131.0-20250909\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.35.0/edge_132.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.35.0 20250909 selenium false edge true\nTagging images for browser edge, version 4.35.0, build date 20250909, namespace selenium\nSelenium Grid version -> 4.35.0-20250909\nEdge version -> 132.0.2957.140\nShort Edge version -> 132.0\nEdgeDriver version -> 132.0.2957.140\nShort EdgeDriver version -> 132.0\nTagged selenium/node-edge:132.0.2957.140-edgedriver-132.0.2957.140-grid-4.35.0-20250909\nTagged selenium/standalone-edge:132.0.2957.140-edgedriver-132.0.2957.140-grid-4.35.0-20250909\nTagged selenium/node-edge:132.0.2957.140-edgedriver-132.0.2957.140-20250909\nTagged selenium/standalone-edge:132.0.2957.140-edgedriver-132.0.2957.140-20250909\nTagged selenium/node-edge:132.0.2957.140-20250909\nTagged selenium/standalone-edge:132.0.2957.140-20250909\nTagged selenium/node-edge:132.0-edgedriver-132.0-grid-4.35.0-20250909\nTagged selenium/standalone-edge:132.0-edgedriver-132.0-grid-4.35.0-20250909\nTagged selenium/node-edge:132.0-edgedriver-132.0-20250909\nTagged selenium/standalone-edge:132.0-edgedriver-132.0-20250909\nTagged selenium/node-edge:132.0-20250909\nTagged selenium/standalone-edge:132.0-20250909\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.35.0/edge_133.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.35.0 20250909 selenium false edge true\nTagging images for browser edge, version 4.35.0, build date 20250909, namespace selenium\nSelenium Grid version -> 4.35.0-20250909\nEdge version -> 133.0.3065.92\nShort Edge version -> 133.0\nEdgeDriver version -> 133.0.3065.92\nShort EdgeDriver version -> 133.0\nTagged selenium/node-edge:133.0.3065.92-edgedriver-133.0.3065.92-grid-4.35.0-20250909\nTagged selenium/standalone-edge:133.0.3065.92-edgedriver-133.0.3065.92-grid-4.35.0-20250909\nTagged selenium/node-edge:133.0.3065.92-edgedriver-133.0.3065.92-20250909\nTagged selenium/standalone-edge:133.0.3065.92-edgedriver-133.0.3065.92-20250909\nTagged selenium/node-edge:133.0.3065.92-20250909\nTagged selenium/standalone-edge:133.0.3065.92-20250909\nTagged selenium/node-edge:133.0-edgedriver-133.0-grid-4.35.0-20250909\nTagged selenium/standalone-edge:133.0-edgedriver-133.0-grid-4.35.0-20250909\nTagged selenium/node-edge:133.0-edgedriver-133.0-20250909\nTagged selenium/standalone-edge:133.0-edgedriver-133.0-20250909\nTagged selenium/node-edge:133.0-20250909\nTagged selenium/standalone-edge:133.0-20250909\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.35.0/edge_134.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.35.0 20250909 selenium false edge true\nTagging images for browser edge, version 4.35.0, build date 20250909, namespace selenium\nSelenium Grid version -> 4.35.0-20250909\nEdge version -> 134.0.3124.95\nShort Edge version -> 134.0\nEdgeDriver version -> 134.0.3124.95\nShort EdgeDriver version -> 134.0\nTagged selenium/node-edge:134.0.3124.95-edgedriver-134.0.3124.95-grid-4.35.0-20250909\nTagged selenium/standalone-edge:134.0.3124.95-edgedriver-134.0.3124.95-grid-4.35.0-20250909\nTagged selenium/node-edge:134.0.3124.95-edgedriver-134.0.3124.95-20250909\nTagged selenium/standalone-edge:134.0.3124.95-edgedriver-134.0.3124.95-20250909\nTagged selenium/node-edge:134.0.3124.95-20250909\nTagged selenium/standalone-edge:134.0.3124.95-20250909\nTagged selenium/node-edge:134.0-edgedriver-134.0-grid-4.35.0-20250909\nTagged selenium/standalone-edge:134.0-edgedriver-134.0-grid-4.35.0-20250909\nTagged selenium/node-edge:134.0-edgedriver-134.0-20250909\nTagged selenium/standalone-edge:134.0-edgedriver-134.0-20250909\nTagged selenium/node-edge:134.0-20250909\nTagged selenium/standalone-edge:134.0-20250909\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.35.0/edge_135.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.35.0 20250909 selenium false edge true\nTagging images for browser edge, version 4.35.0, build date 20250909, namespace selenium\nSelenium Grid version -> 4.35.0-20250909\nEdge version -> 135.0.3179.98\nShort Edge version -> 135.0\nEdgeDriver version -> 135.0.3179.98\nShort EdgeDriver version -> 135.0\nTagged selenium/node-edge:135.0.3179.98-edgedriver-135.0.3179.98-grid-4.35.0-20250909\nTagged selenium/standalone-edge:135.0.3179.98-edgedriver-135.0.3179.98-grid-4.35.0-20250909\nTagged selenium/node-edge:135.0.3179.98-edgedriver-135.0.3179.98-20250909\nTagged selenium/standalone-edge:135.0.3179.98-edgedriver-135.0.3179.98-20250909\nTagged selenium/node-edge:135.0.3179.98-20250909\nTagged selenium/standalone-edge:135.0.3179.98-20250909\nTagged selenium/node-edge:135.0-edgedriver-135.0-grid-4.35.0-20250909\nTagged selenium/standalone-edge:135.0-edgedriver-135.0-grid-4.35.0-20250909\nTagged selenium/node-edge:135.0-edgedriver-135.0-20250909\nTagged selenium/standalone-edge:135.0-edgedriver-135.0-20250909\nTagged selenium/node-edge:135.0-20250909\nTagged selenium/standalone-edge:135.0-20250909\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.35.0/edge_136.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.35.0 20250909 selenium false edge true\nTagging images for browser edge, version 4.35.0, build date 20250909, namespace selenium\nSelenium Grid version -> 4.35.0-20250909\nEdge version -> 136.0.3240.92\nShort Edge version -> 136.0\nEdgeDriver version -> 136.0.3240.92\nShort EdgeDriver version -> 136.0\nTagged selenium/node-edge:136.0.3240.92-edgedriver-136.0.3240.92-grid-4.35.0-20250909\nTagged selenium/standalone-edge:136.0.3240.92-edgedriver-136.0.3240.92-grid-4.35.0-20250909\nTagged selenium/node-edge:136.0.3240.92-edgedriver-136.0.3240.92-20250909\nTagged selenium/standalone-edge:136.0.3240.92-edgedriver-136.0.3240.92-20250909\nTagged selenium/node-edge:136.0.3240.92-20250909\nTagged selenium/standalone-edge:136.0.3240.92-20250909\nTagged selenium/node-edge:136.0-edgedriver-136.0-grid-4.35.0-20250909\nTagged selenium/standalone-edge:136.0-edgedriver-136.0-grid-4.35.0-20250909\nTagged selenium/node-edge:136.0-edgedriver-136.0-20250909\nTagged selenium/standalone-edge:136.0-edgedriver-136.0-20250909\nTagged selenium/node-edge:136.0-20250909\nTagged selenium/standalone-edge:136.0-20250909\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.35.0/edge_137.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.35.0 20250909 selenium false edge true\nTagging images for browser edge, version 4.35.0, build date 20250909, namespace selenium\nSelenium Grid version -> 4.35.0-20250909\nEdge version -> 137.0.3296.93\nShort Edge version -> 137.0\nEdgeDriver version -> 137.0.3296.93\nShort EdgeDriver version -> 137.0\nTagged selenium/node-edge:137.0.3296.93-edgedriver-137.0.3296.93-grid-4.35.0-20250909\nTagged selenium/standalone-edge:137.0.3296.93-edgedriver-137.0.3296.93-grid-4.35.0-20250909\nTagged selenium/node-edge:137.0.3296.93-edgedriver-137.0.3296.93-20250909\nTagged selenium/standalone-edge:137.0.3296.93-edgedriver-137.0.3296.93-20250909\nTagged selenium/node-edge:137.0.3296.93-20250909\nTagged selenium/standalone-edge:137.0.3296.93-20250909\nTagged selenium/node-edge:137.0-edgedriver-137.0-grid-4.35.0-20250909\nTagged selenium/standalone-edge:137.0-edgedriver-137.0-grid-4.35.0-20250909\nTagged selenium/node-edge:137.0-edgedriver-137.0-20250909\nTagged selenium/standalone-edge:137.0-edgedriver-137.0-20250909\nTagged selenium/node-edge:137.0-20250909\nTagged selenium/standalone-edge:137.0-20250909\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.35.0/edge_138.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.35.0 20250909 selenium false edge true\nTagging images for browser edge, version 4.35.0, build date 20250909, namespace selenium\nSelenium Grid version -> 4.35.0-20250909\nEdge version -> 138.0.3351.121\nShort Edge version -> 138.0\nEdgeDriver version -> 138.0.3351.121\nShort EdgeDriver version -> 138.0\nTagged selenium/node-edge:138.0.3351.121-edgedriver-138.0.3351.121-grid-4.35.0-20250909\nTagged selenium/standalone-edge:138.0.3351.121-edgedriver-138.0.3351.121-grid-4.35.0-20250909\nTagged selenium/node-edge:138.0.3351.121-edgedriver-138.0.3351.121-20250909\nTagged selenium/standalone-edge:138.0.3351.121-edgedriver-138.0.3351.121-20250909\nTagged selenium/node-edge:138.0.3351.121-20250909\nTagged selenium/standalone-edge:138.0.3351.121-20250909\nTagged selenium/node-edge:138.0-edgedriver-138.0-grid-4.35.0-20250909\nTagged selenium/standalone-edge:138.0-edgedriver-138.0-grid-4.35.0-20250909\nTagged selenium/node-edge:138.0-edgedriver-138.0-20250909\nTagged selenium/standalone-edge:138.0-edgedriver-138.0-20250909\nTagged selenium/node-edge:138.0-20250909\nTagged selenium/standalone-edge:138.0-20250909\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.35.0/edge_139.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.35.0 20250909 selenium false edge true\nTagging images for browser edge, version 4.35.0, build date 20250909, namespace selenium\nSelenium Grid version -> 4.35.0-20250909\nEdge version -> 139.0.3405.125\nShort Edge version -> 139.0\nEdgeDriver version -> 139.0.3405.125\nShort EdgeDriver version -> 139.0\nTagged selenium/node-edge:139.0.3405.125-edgedriver-139.0.3405.125-grid-4.35.0-20250909\nTagged selenium/standalone-edge:139.0.3405.125-edgedriver-139.0.3405.125-grid-4.35.0-20250909\nTagged selenium/node-edge:139.0.3405.125-edgedriver-139.0.3405.125-20250909\nTagged selenium/standalone-edge:139.0.3405.125-edgedriver-139.0.3405.125-20250909\nTagged selenium/node-edge:139.0.3405.125-20250909\nTagged selenium/standalone-edge:139.0.3405.125-20250909\nTagged selenium/node-edge:139.0-edgedriver-139.0-grid-4.35.0-20250909\nTagged selenium/standalone-edge:139.0-edgedriver-139.0-grid-4.35.0-20250909\nTagged selenium/node-edge:139.0-edgedriver-139.0-20250909\nTagged selenium/standalone-edge:139.0-edgedriver-139.0-20250909\nTagged selenium/node-edge:139.0-20250909\nTagged selenium/standalone-edge:139.0-20250909\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.35.0/firefox_100.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.35.0 20250909 selenium false firefox true\nTagging images for browser firefox, version 4.35.0, build date 20250909, namespace selenium\nSelenium Grid version -> 4.35.0-20250909\nFirefox version -> 100.0.2\nShort Firefox version -> 100.0\nGeckoDriver version -> 0.36.0\nShort GeckoDriver version -> 0.36\nTagged selenium/node-firefox:100.0.2-geckodriver-0.36.0-grid-4.35.0-20250909\nTagged selenium/standalone-firefox:100.0.2-geckodriver-0.36.0-grid-4.35.0-20250909\nTagged selenium/node-firefox:100.0.2-geckodriver-0.36.0-20250909\nTagged selenium/standalone-firefox:100.0.2-geckodriver-0.36.0-20250909\nTagged selenium/node-firefox:100.0.2-20250909\nTagged selenium/standalone-firefox:100.0.2-20250909\nTagged selenium/node-firefox:100.0-geckodriver-0.36-grid-4.35.0-20250909\nTagged selenium/standalone-firefox:100.0-geckodriver-0.36-grid-4.35.0-20250909\nTagged selenium/node-firefox:100.0-geckodriver-0.36-20250909\nTagged selenium/standalone-firefox:100.0-geckodriver-0.36-20250909\nTagged selenium/node-firefox:100.0-20250909\nTagged selenium/standalone-firefox:100.0-20250909\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.35.0/firefox_101.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.35.0 20250909 selenium false firefox true\nTagging images for browser firefox, version 4.35.0, build date 20250909, namespace selenium\nSelenium Grid version -> 4.35.0-20250909\nFirefox version -> 101.0.1\nShort Firefox version -> 101.0\nGeckoDriver version -> 0.36.0\nShort GeckoDriver version -> 0.36\nTagged selenium/node-firefox:101.0.1-geckodriver-0.36.0-grid-4.35.0-20250909\nTagged selenium/standalone-firefox:101.0.1-geckodriver-0.36.0-grid-4.35.0-20250909\nTagged selenium/node-firefox:101.0.1-geckodriver-0.36.0-20250909\nTagged selenium/standalone-firefox:101.0.1-geckodriver-0.36.0-20250909\nTagged selenium/node-firefox:101.0.1-20250909\nTagged selenium/standalone-firefox:101.0.1-20250909\nTagged selenium/node-firefox:101.0-geckodriver-0.36-grid-4.35.0-20250909\nTagged selenium/standalone-firefox:101.0-geckodriver-0.36-grid-4.35.0-20250909\nTagged selenium/node-firefox:101.0-geckodriver-0.36-20250909\nTagged selenium/standalone-firefox:101.0-geckodriver-0.36-20250909\nTagged selenium/node-firefox:101.0-20250909\nTagged selenium/standalone-firefox:101.0-20250909\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.35.0/firefox_102.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.35.0 20250909 selenium false firefox true\nTagging images for browser firefox, version 4.35.0, build date 20250909, namespace selenium\nSelenium Grid version -> 4.35.0-20250909\nFirefox version -> 102.0.1\nShort Firefox version -> 102.0\nGeckoDriver version -> 0.36.0\nShort GeckoDriver version -> 0.36\nTagged selenium/node-firefox:102.0.1-geckodriver-0.36.0-grid-4.35.0-20250909\nTagged selenium/standalone-firefox:102.0.1-geckodriver-0.36.0-grid-4.35.0-20250909\nTagged selenium/node-firefox:102.0.1-geckodriver-0.36.0-20250909\nTagged selenium/standalone-firefox:102.0.1-geckodriver-0.36.0-20250909\nTagged selenium/node-firefox:102.0.1-20250909\nTagged selenium/standalone-firefox:102.0.1-20250909\nTagged selenium/node-firefox:102.0-geckodriver-0.36-grid-4.35.0-20250909\nTagged selenium/standalone-firefox:102.0-geckodriver-0.36-grid-4.35.0-20250909\nTagged selenium/node-firefox:102.0-geckodriver-0.36-20250909\nTagged selenium/standalone-firefox:102.0-geckodriver-0.36-20250909\nTagged selenium/node-firefox:102.0-20250909\nTagged selenium/standalone-firefox:102.0-20250909\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.35.0/firefox_103.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.35.0 20250909 selenium false firefox true\nTagging images for browser firefox, version 4.35.0, build date 20250909, namespace selenium\nSelenium Grid version -> 4.35.0-20250909\nFirefox version -> 103.0.2\nShort Firefox version -> 103.0\nGeckoDriver version -> 0.36.0\nShort GeckoDriver version -> 0.36\nTagged selenium/node-firefox:103.0.2-geckodriver-0.36.0-grid-4.35.0-20250909\nTagged selenium/standalone-firefox:103.0.2-geckodriver-0.36.0-grid-4.35.0-20250909\nTagged selenium/node-firefox:103.0.2-geckodriver-0.36.0-20250909\nTagged selenium/standalone-firefox:103.0.2-geckodriver-0.36.0-20250909\nTagged selenium/node-firefox:103.0.2-20250909\nTagged selenium/standalone-firefox:103.0.2-20250909\nTagged selenium/node-firefox:103.0-geckodriver-0.36-grid-4.35.0-20250909\nTagged selenium/standalone-firefox:103.0-geckodriver-0.36-grid-4.35.0-20250909\nTagged selenium/node-firefox:103.0-geckodriver-0.36-20250909\nTagged selenium/standalone-firefox:103.0-geckodriver-0.36-20250909\nTagged selenium/node-firefox:103.0-20250909\nTagged selenium/standalone-firefox:103.0-20250909\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.35.0/firefox_104.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.35.0 20250909 selenium false firefox true\nTagging images for browser firefox, version 4.35.0, build date 20250909, namespace selenium\nSelenium Grid version -> 4.35.0-20250909\nFirefox version -> 104.0.2\nShort Firefox version -> 104.0\nGeckoDriver version -> 0.36.0\nShort GeckoDriver version -> 0.36\nTagged selenium/node-firefox:104.0.2-geckodriver-0.36.0-grid-4.35.0-20250909\nTagged selenium/standalone-firefox:104.0.2-geckodriver-0.36.0-grid-4.35.0-20250909\nTagged selenium/node-firefox:104.0.2-geckodriver-0.36.0-20250909\nTagged selenium/standalone-firefox:104.0.2-geckodriver-0.36.0-20250909\nTagged selenium/node-firefox:104.0.2-20250909\nTagged selenium/standalone-firefox:104.0.2-20250909\nTagged selenium/node-firefox:104.0-geckodriver-0.36-grid-4.35.0-20250909\nTagged selenium/standalone-firefox:104.0-geckodriver-0.36-grid-4.35.0-20250909\nTagged selenium/node-firefox:104.0-geckodriver-0.36-20250909\nTagged selenium/standalone-firefox:104.0-geckodriver-0.36-20250909\nTagged selenium/node-firefox:104.0-20250909\nTagged selenium/standalone-firefox:104.0-20250909\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.35.0/firefox_105.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.35.0 20250909 selenium false firefox true\nTagging images for browser firefox, version 4.35.0, build date 20250909, namespace selenium\nSelenium Grid version -> 4.35.0-20250909\nFirefox version -> 105.0.3\nShort Firefox version -> 105.0\nGeckoDriver version -> 0.36.0\nShort GeckoDriver version -> 0.36\nTagged selenium/node-firefox:105.0.3-geckodriver-0.36.0-grid-4.35.0-20250909\nTagged selenium/standalone-firefox:105.0.3-geckodriver-0.36.0-grid-4.35.0-20250909\nTagged selenium/node-firefox:105.0.3-geckodriver-0.36.0-20250909\nTagged selenium/standalone-firefox:105.0.3-geckodriver-0.36.0-20250909\nTagged selenium/node-firefox:105.0.3-20250909\nTagged selenium/standalone-firefox:105.0.3-20250909\nTagged selenium/node-firefox:105.0-geckodriver-0.36-grid-4.35.0-20250909\nTagged selenium/standalone-firefox:105.0-geckodriver-0.36-grid-4.35.0-20250909\nTagged selenium/node-firefox:105.0-geckodriver-0.36-20250909\nTagged selenium/standalone-firefox:105.0-geckodriver-0.36-20250909\nTagged selenium/node-firefox:105.0-20250909\nTagged selenium/standalone-firefox:105.0-20250909\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.35.0/firefox_106.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.35.0 20250909 selenium false firefox true\nTagging images for browser firefox, version 4.35.0, build date 20250909, namespace selenium\nSelenium Grid version -> 4.35.0-20250909\nFirefox version -> 106.0.5\nShort Firefox version -> 106.0\nGeckoDriver version -> 0.36.0\nShort GeckoDriver version -> 0.36\nTagged selenium/node-firefox:106.0.5-geckodriver-0.36.0-grid-4.35.0-20250909\nTagged selenium/standalone-firefox:106.0.5-geckodriver-0.36.0-grid-4.35.0-20250909\nTagged selenium/node-firefox:106.0.5-geckodriver-0.36.0-20250909\nTagged selenium/standalone-firefox:106.0.5-geckodriver-0.36.0-20250909\nTagged selenium/node-firefox:106.0.5-20250909\nTagged selenium/standalone-firefox:106.0.5-20250909\nTagged selenium/node-firefox:106.0-geckodriver-0.36-grid-4.35.0-20250909\nTagged selenium/standalone-firefox:106.0-geckodriver-0.36-grid-4.35.0-20250909\nTagged selenium/node-firefox:106.0-geckodriver-0.36-20250909\nTagged selenium/standalone-firefox:106.0-geckodriver-0.36-20250909\nTagged selenium/node-firefox:106.0-20250909\nTagged selenium/standalone-firefox:106.0-20250909\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.35.0/firefox_107.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.35.0 20250909 selenium false firefox true\nTagging images for browser firefox, version 4.35.0, build date 20250909, namespace selenium\nSelenium Grid version -> 4.35.0-20250909\nFirefox version -> 107.0.1\nShort Firefox version -> 107.0\nGeckoDriver version -> 0.36.0\nShort GeckoDriver version -> 0.36\nTagged selenium/node-firefox:107.0.1-geckodriver-0.36.0-grid-4.35.0-20250909\nTagged selenium/standalone-firefox:107.0.1-geckodriver-0.36.0-grid-4.35.0-20250909\nTagged selenium/node-firefox:107.0.1-geckodriver-0.36.0-20250909\nTagged selenium/standalone-firefox:107.0.1-geckodriver-0.36.0-20250909\nTagged selenium/node-firefox:107.0.1-20250909\nTagged selenium/standalone-firefox:107.0.1-20250909\nTagged selenium/node-firefox:107.0-geckodriver-0.36-grid-4.35.0-20250909\nTagged selenium/standalone-firefox:107.0-geckodriver-0.36-grid-4.35.0-20250909\nTagged selenium/node-firefox:107.0-geckodriver-0.36-20250909\nTagged selenium/standalone-firefox:107.0-geckodriver-0.36-20250909\nTagged selenium/node-firefox:107.0-20250909\nTagged selenium/standalone-firefox:107.0-20250909\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.35.0/firefox_108.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.35.0 20250909 selenium false firefox true\nTagging images for browser firefox, version 4.35.0, build date 20250909, namespace selenium\nSelenium Grid version -> 4.35.0-20250909\nFirefox version -> 108.0.2\nShort Firefox version -> 108.0\nGeckoDriver version -> 0.36.0\nShort GeckoDriver version -> 0.36\nTagged selenium/node-firefox:108.0.2-geckodriver-0.36.0-grid-4.35.0-20250909\nTagged selenium/standalone-firefox:108.0.2-geckodriver-0.36.0-grid-4.35.0-20250909\nTagged selenium/node-firefox:108.0.2-geckodriver-0.36.0-20250909\nTagged selenium/standalone-firefox:108.0.2-geckodriver-0.36.0-20250909\nTagged selenium/node-firefox:108.0.2-20250909\nTagged selenium/standalone-firefox:108.0.2-20250909\nTagged selenium/node-firefox:108.0-geckodriver-0.36-grid-4.35.0-20250909\nTagged selenium/standalone-firefox:108.0-geckodriver-0.36-grid-4.35.0-20250909\nTagged selenium/node-firefox:108.0-geckodriver-0.36-20250909\nTagged selenium/standalone-firefox:108.0-geckodriver-0.36-20250909\nTagged selenium/node-firefox:108.0-20250909\nTagged selenium/standalone-firefox:108.0-20250909\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.35.0/firefox_109.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.35.0 20250909 selenium false firefox true\nTagging images for browser firefox, version 4.35.0, build date 20250909, namespace selenium\nSelenium Grid version -> 4.35.0-20250909\nFirefox version -> 109.0.1\nShort Firefox version -> 109.0\nGeckoDriver version -> 0.36.0\nShort GeckoDriver version -> 0.36\nTagged selenium/node-firefox:109.0.1-geckodriver-0.36.0-grid-4.35.0-20250909\nTagged selenium/standalone-firefox:109.0.1-geckodriver-0.36.0-grid-4.35.0-20250909\nTagged selenium/node-firefox:109.0.1-geckodriver-0.36.0-20250909\nTagged selenium/standalone-firefox:109.0.1-geckodriver-0.36.0-20250909\nTagged selenium/node-firefox:109.0.1-20250909\nTagged selenium/standalone-firefox:109.0.1-20250909\nTagged selenium/node-firefox:109.0-geckodriver-0.36-grid-4.35.0-20250909\nTagged selenium/standalone-firefox:109.0-geckodriver-0.36-grid-4.35.0-20250909\nTagged selenium/node-firefox:109.0-geckodriver-0.36-20250909\nTagged selenium/standalone-firefox:109.0-geckodriver-0.36-20250909\nTagged selenium/node-firefox:109.0-20250909\nTagged selenium/standalone-firefox:109.0-20250909\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.35.0/firefox_110.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.35.0 20250909 selenium false firefox true\nTagging images for browser firefox, version 4.35.0, build date 20250909, namespace selenium\nSelenium Grid version -> 4.35.0-20250909\nFirefox version -> 110.0.1\nShort Firefox version -> 110.0\nGeckoDriver version -> 0.36.0\nShort GeckoDriver version -> 0.36\nTagged selenium/node-firefox:110.0.1-geckodriver-0.36.0-grid-4.35.0-20250909\nTagged selenium/standalone-firefox:110.0.1-geckodriver-0.36.0-grid-4.35.0-20250909\nTagged selenium/node-firefox:110.0.1-geckodriver-0.36.0-20250909\nTagged selenium/standalone-firefox:110.0.1-geckodriver-0.36.0-20250909\nTagged selenium/node-firefox:110.0.1-20250909\nTagged selenium/standalone-firefox:110.0.1-20250909\nTagged selenium/node-firefox:110.0-geckodriver-0.36-grid-4.35.0-20250909\nTagged selenium/standalone-firefox:110.0-geckodriver-0.36-grid-4.35.0-20250909\nTagged selenium/node-firefox:110.0-geckodriver-0.36-20250909\nTagged selenium/standalone-firefox:110.0-geckodriver-0.36-20250909\nTagged selenium/node-firefox:110.0-20250909\nTagged selenium/standalone-firefox:110.0-20250909\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.35.0/firefox_111.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.35.0 20250909 selenium false firefox true\nTagging images for browser firefox, version 4.35.0, build date 20250909, namespace selenium\nSelenium Grid version -> 4.35.0-20250909\nFirefox version -> 111.0.1\nShort Firefox version -> 111.0\nGeckoDriver version -> 0.36.0\nShort GeckoDriver version -> 0.36\nTagged selenium/node-firefox:111.0.1-geckodriver-0.36.0-grid-4.35.0-20250909\nTagged selenium/standalone-firefox:111.0.1-geckodriver-0.36.0-grid-4.35.0-20250909\nTagged selenium/node-firefox:111.0.1-geckodriver-0.36.0-20250909\nTagged selenium/standalone-firefox:111.0.1-geckodriver-0.36.0-20250909\nTagged selenium/node-firefox:111.0.1-20250909\nTagged selenium/standalone-firefox:111.0.1-20250909\nTagged selenium/node-firefox:111.0-geckodriver-0.36-grid-4.35.0-20250909\nTagged selenium/standalone-firefox:111.0-geckodriver-0.36-grid-4.35.0-20250909\nTagged selenium/node-firefox:111.0-geckodriver-0.36-20250909\nTagged selenium/standalone-firefox:111.0-geckodriver-0.36-20250909\nTagged selenium/node-firefox:111.0-20250909\nTagged selenium/standalone-firefox:111.0-20250909\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.35.0/firefox_112.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.35.0 20250909 selenium false firefox true\nTagging images for browser firefox, version 4.35.0, build date 20250909, namespace selenium\nSelenium Grid version -> 4.35.0-20250909\nFirefox version -> 112.0.2\nShort Firefox version -> 112.0\nGeckoDriver version -> 0.36.0\nShort GeckoDriver version -> 0.36\nTagged selenium/node-firefox:112.0.2-geckodriver-0.36.0-grid-4.35.0-20250909\nTagged selenium/standalone-firefox:112.0.2-geckodriver-0.36.0-grid-4.35.0-20250909\nTagged selenium/node-firefox:112.0.2-geckodriver-0.36.0-20250909\nTagged selenium/standalone-firefox:112.0.2-geckodriver-0.36.0-20250909\nTagged selenium/node-firefox:112.0.2-20250909\nTagged selenium/standalone-firefox:112.0.2-20250909\nTagged selenium/node-firefox:112.0-geckodriver-0.36-grid-4.35.0-20250909\nTagged selenium/standalone-firefox:112.0-geckodriver-0.36-grid-4.35.0-20250909\nTagged selenium/node-firefox:112.0-geckodriver-0.36-20250909\nTagged selenium/standalone-firefox:112.0-geckodriver-0.36-20250909\nTagged selenium/node-firefox:112.0-20250909\nTagged selenium/standalone-firefox:112.0-20250909\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.35.0/firefox_113.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.35.0 20250909 selenium false firefox true\nTagging images for browser firefox, version 4.35.0, build date 20250909, namespace selenium\nSelenium Grid version -> 4.35.0-20250909\nFirefox version -> 113.0.2\nShort Firefox version -> 113.0\nGeckoDriver version -> 0.36.0\nShort GeckoDriver version -> 0.36\nTagged selenium/node-firefox:113.0.2-geckodriver-0.36.0-grid-4.35.0-20250909\nTagged selenium/standalone-firefox:113.0.2-geckodriver-0.36.0-grid-4.35.0-20250909\nTagged selenium/node-firefox:113.0.2-geckodriver-0.36.0-20250909\nTagged selenium/standalone-firefox:113.0.2-geckodriver-0.36.0-20250909\nTagged selenium/node-firefox:113.0.2-20250909\nTagged selenium/standalone-firefox:113.0.2-20250909\nTagged selenium/node-firefox:113.0-geckodriver-0.36-grid-4.35.0-20250909\nTagged selenium/standalone-firefox:113.0-geckodriver-0.36-grid-4.35.0-20250909\nTagged selenium/node-firefox:113.0-geckodriver-0.36-20250909\nTagged selenium/standalone-firefox:113.0-geckodriver-0.36-20250909\nTagged selenium/node-firefox:113.0-20250909\nTagged selenium/standalone-firefox:113.0-20250909\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.35.0/firefox_114.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.35.0 20250909 selenium false firefox true\nTagging images for browser firefox, version 4.35.0, build date 20250909, namespace selenium\nSelenium Grid version -> 4.35.0-20250909\nFirefox version -> 114.0.2\nShort Firefox version -> 114.0\nGeckoDriver version -> 0.36.0\nShort GeckoDriver version -> 0.36\nTagged selenium/node-firefox:114.0.2-geckodriver-0.36.0-grid-4.35.0-20250909\nTagged selenium/standalone-firefox:114.0.2-geckodriver-0.36.0-grid-4.35.0-20250909\nTagged selenium/node-firefox:114.0.2-geckodriver-0.36.0-20250909\nTagged selenium/standalone-firefox:114.0.2-geckodriver-0.36.0-20250909\nTagged selenium/node-firefox:114.0.2-20250909\nTagged selenium/standalone-firefox:114.0.2-20250909\nTagged selenium/node-firefox:114.0-geckodriver-0.36-grid-4.35.0-20250909\nTagged selenium/standalone-firefox:114.0-geckodriver-0.36-grid-4.35.0-20250909\nTagged selenium/node-firefox:114.0-geckodriver-0.36-20250909\nTagged selenium/standalone-firefox:114.0-geckodriver-0.36-20250909\nTagged selenium/node-firefox:114.0-20250909\nTagged selenium/standalone-firefox:114.0-20250909\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.35.0/firefox_115.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.35.0 20250909 selenium false firefox true\nTagging images for browser firefox, version 4.35.0, build date 20250909, namespace selenium\nSelenium Grid version -> 4.35.0-20250909\nFirefox version -> 115.0.3\nShort Firefox version -> 115.0\nGeckoDriver version -> 0.36.0\nShort GeckoDriver version -> 0.36\nTagged selenium/node-firefox:115.0.3-geckodriver-0.36.0-grid-4.35.0-20250909\nTagged selenium/standalone-firefox:115.0.3-geckodriver-0.36.0-grid-4.35.0-20250909\nTagged selenium/node-firefox:115.0.3-geckodriver-0.36.0-20250909\nTagged selenium/standalone-firefox:115.0.3-geckodriver-0.36.0-20250909\nTagged selenium/node-firefox:115.0.3-20250909\nTagged selenium/standalone-firefox:115.0.3-20250909\nTagged selenium/node-firefox:115.0-geckodriver-0.36-grid-4.35.0-20250909\nTagged selenium/standalone-firefox:115.0-geckodriver-0.36-grid-4.35.0-20250909\nTagged selenium/node-firefox:115.0-geckodriver-0.36-20250909\nTagged selenium/standalone-firefox:115.0-geckodriver-0.36-20250909\nTagged selenium/node-firefox:115.0-20250909\nTagged selenium/standalone-firefox:115.0-20250909\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.35.0/firefox_116.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.35.0 20250909 selenium false firefox true\nTagging images for browser firefox, version 4.35.0, build date 20250909, namespace selenium\nSelenium Grid version -> 4.35.0-20250909\nFirefox version -> 116.0.3\nShort Firefox version -> 116.0\nGeckoDriver version -> 0.36.0\nShort GeckoDriver version -> 0.36\nTagged selenium/node-firefox:116.0.3-geckodriver-0.36.0-grid-4.35.0-20250909\nTagged selenium/standalone-firefox:116.0.3-geckodriver-0.36.0-grid-4.35.0-20250909\nTagged selenium/node-firefox:116.0.3-geckodriver-0.36.0-20250909\nTagged selenium/standalone-firefox:116.0.3-geckodriver-0.36.0-20250909\nTagged selenium/node-firefox:116.0.3-20250909\nTagged selenium/standalone-firefox:116.0.3-20250909\nTagged selenium/node-firefox:116.0-geckodriver-0.36-grid-4.35.0-20250909\nTagged selenium/standalone-firefox:116.0-geckodriver-0.36-grid-4.35.0-20250909\nTagged selenium/node-firefox:116.0-geckodriver-0.36-20250909\nTagged selenium/standalone-firefox:116.0-geckodriver-0.36-20250909\nTagged selenium/node-firefox:116.0-20250909\nTagged selenium/standalone-firefox:116.0-20250909\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.35.0/firefox_117.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.35.0 20250909 selenium false firefox true\nTagging images for browser firefox, version 4.35.0, build date 20250909, namespace selenium\nSelenium Grid version -> 4.35.0-20250909\nFirefox version -> 117.0.1\nShort Firefox version -> 117.0\nGeckoDriver version -> 0.36.0\nShort GeckoDriver version -> 0.36\nTagged selenium/node-firefox:117.0.1-geckodriver-0.36.0-grid-4.35.0-20250909\nTagged selenium/standalone-firefox:117.0.1-geckodriver-0.36.0-grid-4.35.0-20250909\nTagged selenium/node-firefox:117.0.1-geckodriver-0.36.0-20250909\nTagged selenium/standalone-firefox:117.0.1-geckodriver-0.36.0-20250909\nTagged selenium/node-firefox:117.0.1-20250909\nTagged selenium/standalone-firefox:117.0.1-20250909\nTagged selenium/node-firefox:117.0-geckodriver-0.36-grid-4.35.0-20250909\nTagged selenium/standalone-firefox:117.0-geckodriver-0.36-grid-4.35.0-20250909\nTagged selenium/node-firefox:117.0-geckodriver-0.36-20250909\nTagged selenium/standalone-firefox:117.0-geckodriver-0.36-20250909\nTagged selenium/node-firefox:117.0-20250909\nTagged selenium/standalone-firefox:117.0-20250909\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.35.0/firefox_118.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.35.0 20250909 selenium false firefox true\nTagging images for browser firefox, version 4.35.0, build date 20250909, namespace selenium\nSelenium Grid version -> 4.35.0-20250909\nFirefox version -> 118.0.2\nShort Firefox version -> 118.0\nGeckoDriver version -> 0.36.0\nShort GeckoDriver version -> 0.36\nTagged selenium/node-firefox:118.0.2-geckodriver-0.36.0-grid-4.35.0-20250909\nTagged selenium/standalone-firefox:118.0.2-geckodriver-0.36.0-grid-4.35.0-20250909\nTagged selenium/node-firefox:118.0.2-geckodriver-0.36.0-20250909\nTagged selenium/standalone-firefox:118.0.2-geckodriver-0.36.0-20250909\nTagged selenium/node-firefox:118.0.2-20250909\nTagged selenium/standalone-firefox:118.0.2-20250909\nTagged selenium/node-firefox:118.0-geckodriver-0.36-grid-4.35.0-20250909\nTagged selenium/standalone-firefox:118.0-geckodriver-0.36-grid-4.35.0-20250909\nTagged selenium/node-firefox:118.0-geckodriver-0.36-20250909\nTagged selenium/standalone-firefox:118.0-geckodriver-0.36-20250909\nTagged selenium/node-firefox:118.0-20250909\nTagged selenium/standalone-firefox:118.0-20250909\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.35.0/firefox_119.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.35.0 20250909 selenium false firefox true\nTagging images for browser firefox, version 4.35.0, build date 20250909, namespace selenium\nSelenium Grid version -> 4.35.0-20250909\nFirefox version -> 119.0.1\nShort Firefox version -> 119.0\nGeckoDriver version -> 0.36.0\nShort GeckoDriver version -> 0.36\nTagged selenium/node-firefox:119.0.1-geckodriver-0.36.0-grid-4.35.0-20250909\nTagged selenium/standalone-firefox:119.0.1-geckodriver-0.36.0-grid-4.35.0-20250909\nTagged selenium/node-firefox:119.0.1-geckodriver-0.36.0-20250909\nTagged selenium/standalone-firefox:119.0.1-geckodriver-0.36.0-20250909\nTagged selenium/node-firefox:119.0.1-20250909\nTagged selenium/standalone-firefox:119.0.1-20250909\nTagged selenium/node-firefox:119.0-geckodriver-0.36-grid-4.35.0-20250909\nTagged selenium/standalone-firefox:119.0-geckodriver-0.36-grid-4.35.0-20250909\nTagged selenium/node-firefox:119.0-geckodriver-0.36-20250909\nTagged selenium/standalone-firefox:119.0-geckodriver-0.36-20250909\nTagged selenium/node-firefox:119.0-20250909\nTagged selenium/standalone-firefox:119.0-20250909\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.35.0/firefox_120.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.35.0 20250909 selenium false firefox true\nTagging images for browser firefox, version 4.35.0, build date 20250909, namespace selenium\nSelenium Grid version -> 4.35.0-20250909\nFirefox version -> 120.0.1\nShort Firefox version -> 120.0\nGeckoDriver version -> 0.36.0\nShort GeckoDriver version -> 0.36\nTagged selenium/node-firefox:120.0.1-geckodriver-0.36.0-grid-4.35.0-20250909\nTagged selenium/standalone-firefox:120.0.1-geckodriver-0.36.0-grid-4.35.0-20250909\nTagged selenium/node-firefox:120.0.1-geckodriver-0.36.0-20250909\nTagged selenium/standalone-firefox:120.0.1-geckodriver-0.36.0-20250909\nTagged selenium/node-firefox:120.0.1-20250909\nTagged selenium/standalone-firefox:120.0.1-20250909\nTagged selenium/node-firefox:120.0-geckodriver-0.36-grid-4.35.0-20250909\nTagged selenium/standalone-firefox:120.0-geckodriver-0.36-grid-4.35.0-20250909\nTagged selenium/node-firefox:120.0-geckodriver-0.36-20250909\nTagged selenium/standalone-firefox:120.0-geckodriver-0.36-20250909\nTagged selenium/node-firefox:120.0-20250909\nTagged selenium/standalone-firefox:120.0-20250909\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.35.0/firefox_121.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.35.0 20250909 selenium false firefox true\nTagging images for browser firefox, version 4.35.0, build date 20250909, namespace selenium\nSelenium Grid version -> 4.35.0-20250909\nFirefox version -> 121.0.1\nShort Firefox version -> 121.0\nGeckoDriver version -> 0.36.0\nShort GeckoDriver version -> 0.36\nTagged selenium/node-firefox:121.0.1-geckodriver-0.36.0-grid-4.35.0-20250909\nTagged selenium/standalone-firefox:121.0.1-geckodriver-0.36.0-grid-4.35.0-20250909\nTagged selenium/node-firefox:121.0.1-geckodriver-0.36.0-20250909\nTagged selenium/standalone-firefox:121.0.1-geckodriver-0.36.0-20250909\nTagged selenium/node-firefox:121.0.1-20250909\nTagged selenium/standalone-firefox:121.0.1-20250909\nTagged selenium/node-firefox:121.0-geckodriver-0.36-grid-4.35.0-20250909\nTagged selenium/standalone-firefox:121.0-geckodriver-0.36-grid-4.35.0-20250909\nTagged selenium/node-firefox:121.0-geckodriver-0.36-20250909\nTagged selenium/standalone-firefox:121.0-geckodriver-0.36-20250909\nTagged selenium/node-firefox:121.0-20250909\nTagged selenium/standalone-firefox:121.0-20250909\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.35.0/firefox_122.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.35.0 20250909 selenium false firefox true\nTagging images for browser firefox, version 4.35.0, build date 20250909, namespace selenium\nSelenium Grid version -> 4.35.0-20250909\nFirefox version -> 122.0.1\nShort Firefox version -> 122.0\nGeckoDriver version -> 0.36.0\nShort GeckoDriver version -> 0.36\nTagged selenium/node-firefox:122.0.1-geckodriver-0.36.0-grid-4.35.0-20250909\nTagged selenium/standalone-firefox:122.0.1-geckodriver-0.36.0-grid-4.35.0-20250909\nTagged selenium/node-firefox:122.0.1-geckodriver-0.36.0-20250909\nTagged selenium/standalone-firefox:122.0.1-geckodriver-0.36.0-20250909\nTagged selenium/node-firefox:122.0.1-20250909\nTagged selenium/standalone-firefox:122.0.1-20250909\nTagged selenium/node-firefox:122.0-geckodriver-0.36-grid-4.35.0-20250909\nTagged selenium/standalone-firefox:122.0-geckodriver-0.36-grid-4.35.0-20250909\nTagged selenium/node-firefox:122.0-geckodriver-0.36-20250909\nTagged selenium/standalone-firefox:122.0-geckodriver-0.36-20250909\nTagged selenium/node-firefox:122.0-20250909\nTagged selenium/standalone-firefox:122.0-20250909\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.35.0/firefox_123.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.35.0 20250909 selenium false firefox true\nTagging images for browser firefox, version 4.35.0, build date 20250909, namespace selenium\nSelenium Grid version -> 4.35.0-20250909\nFirefox version -> 123.0.1\nShort Firefox version -> 123.0\nGeckoDriver version -> 0.36.0\nShort GeckoDriver version -> 0.36\nTagged selenium/node-firefox:123.0.1-geckodriver-0.36.0-grid-4.35.0-20250909\nTagged selenium/standalone-firefox:123.0.1-geckodriver-0.36.0-grid-4.35.0-20250909\nTagged selenium/node-firefox:123.0.1-geckodriver-0.36.0-20250909\nTagged selenium/standalone-firefox:123.0.1-geckodriver-0.36.0-20250909\nTagged selenium/node-firefox:123.0.1-20250909\nTagged selenium/standalone-firefox:123.0.1-20250909\nTagged selenium/node-firefox:123.0-geckodriver-0.36-grid-4.35.0-20250909\nTagged selenium/standalone-firefox:123.0-geckodriver-0.36-grid-4.35.0-20250909\nTagged selenium/node-firefox:123.0-geckodriver-0.36-20250909\nTagged selenium/standalone-firefox:123.0-geckodriver-0.36-20250909\nTagged selenium/node-firefox:123.0-20250909\nTagged selenium/standalone-firefox:123.0-20250909\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.35.0/firefox_124.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.35.0 20250909 selenium false firefox true\nTagging images for browser firefox, version 4.35.0, build date 20250909, namespace selenium\nSelenium Grid version -> 4.35.0-20250909\nFirefox version -> 124.0.2\nShort Firefox version -> 124.0\nGeckoDriver version -> 0.36.0\nShort GeckoDriver version -> 0.36\nTagged selenium/node-firefox:124.0.2-geckodriver-0.36.0-grid-4.35.0-20250909\nTagged selenium/standalone-firefox:124.0.2-geckodriver-0.36.0-grid-4.35.0-20250909\nTagged selenium/node-firefox:124.0.2-geckodriver-0.36.0-20250909\nTagged selenium/standalone-firefox:124.0.2-geckodriver-0.36.0-20250909\nTagged selenium/node-firefox:124.0.2-20250909\nTagged selenium/standalone-firefox:124.0.2-20250909\nTagged selenium/node-firefox:124.0-geckodriver-0.36-grid-4.35.0-20250909\nTagged selenium/standalone-firefox:124.0-geckodriver-0.36-grid-4.35.0-20250909\nTagged selenium/node-firefox:124.0-geckodriver-0.36-20250909\nTagged selenium/standalone-firefox:124.0-geckodriver-0.36-20250909\nTagged selenium/node-firefox:124.0-20250909\nTagged selenium/standalone-firefox:124.0-20250909\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.35.0/firefox_125.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.35.0 20250909 selenium false firefox true\nTagging images for browser firefox, version 4.35.0, build date 20250909, namespace selenium\nSelenium Grid version -> 4.35.0-20250909\nFirefox version -> 125.0.3\nShort Firefox version -> 125.0\nGeckoDriver version -> 0.36.0\nShort GeckoDriver version -> 0.36\nTagged selenium/node-firefox:125.0.3-geckodriver-0.36.0-grid-4.35.0-20250909\nTagged selenium/standalone-firefox:125.0.3-geckodriver-0.36.0-grid-4.35.0-20250909\nTagged selenium/node-firefox:125.0.3-geckodriver-0.36.0-20250909\nTagged selenium/standalone-firefox:125.0.3-geckodriver-0.36.0-20250909\nTagged selenium/node-firefox:125.0.3-20250909\nTagged selenium/standalone-firefox:125.0.3-20250909\nTagged selenium/node-firefox:125.0-geckodriver-0.36-grid-4.35.0-20250909\nTagged selenium/standalone-firefox:125.0-geckodriver-0.36-grid-4.35.0-20250909\nTagged selenium/node-firefox:125.0-geckodriver-0.36-20250909\nTagged selenium/standalone-firefox:125.0-geckodriver-0.36-20250909\nTagged selenium/node-firefox:125.0-20250909\nTagged selenium/standalone-firefox:125.0-20250909\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.35.0/firefox_126.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.35.0 20250909 selenium false firefox true\nTagging images for browser firefox, version 4.35.0, build date 20250909, namespace selenium\nSelenium Grid version -> 4.35.0-20250909\nFirefox version -> 126.0.1\nShort Firefox version -> 126.0\nGeckoDriver version -> 0.36.0\nShort GeckoDriver version -> 0.36\nTagged selenium/node-firefox:126.0.1-geckodriver-0.36.0-grid-4.35.0-20250909\nTagged selenium/standalone-firefox:126.0.1-geckodriver-0.36.0-grid-4.35.0-20250909\nTagged selenium/node-firefox:126.0.1-geckodriver-0.36.0-20250909\nTagged selenium/standalone-firefox:126.0.1-geckodriver-0.36.0-20250909\nTagged selenium/node-firefox:126.0.1-20250909\nTagged selenium/standalone-firefox:126.0.1-20250909\nTagged selenium/node-firefox:126.0-geckodriver-0.36-grid-4.35.0-20250909\nTagged selenium/standalone-firefox:126.0-geckodriver-0.36-grid-4.35.0-20250909\nTagged selenium/node-firefox:126.0-geckodriver-0.36-20250909\nTagged selenium/standalone-firefox:126.0-geckodriver-0.36-20250909\nTagged selenium/node-firefox:126.0-20250909\nTagged selenium/standalone-firefox:126.0-20250909\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.35.0/firefox_127.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.35.0 20250909 selenium false firefox true\nTagging images for browser firefox, version 4.35.0, build date 20250909, namespace selenium\nSelenium Grid version -> 4.35.0-20250909\nFirefox version -> 127.0.2\nShort Firefox version -> 127.0\nGeckoDriver version -> 0.36.0\nShort GeckoDriver version -> 0.36\nTagged selenium/node-firefox:127.0.2-geckodriver-0.36.0-grid-4.35.0-20250909\nTagged selenium/standalone-firefox:127.0.2-geckodriver-0.36.0-grid-4.35.0-20250909\nTagged selenium/node-firefox:127.0.2-geckodriver-0.36.0-20250909\nTagged selenium/standalone-firefox:127.0.2-geckodriver-0.36.0-20250909\nTagged selenium/node-firefox:127.0.2-20250909\nTagged selenium/standalone-firefox:127.0.2-20250909\nTagged selenium/node-firefox:127.0-geckodriver-0.36-grid-4.35.0-20250909\nTagged selenium/standalone-firefox:127.0-geckodriver-0.36-grid-4.35.0-20250909\nTagged selenium/node-firefox:127.0-geckodriver-0.36-20250909\nTagged selenium/standalone-firefox:127.0-geckodriver-0.36-20250909\nTagged selenium/node-firefox:127.0-20250909\nTagged selenium/standalone-firefox:127.0-20250909\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.35.0/firefox_128.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.35.0 20250909 selenium false firefox true\nTagging images for browser firefox, version 4.35.0, build date 20250909, namespace selenium\nSelenium Grid version -> 4.35.0-20250909\nFirefox version -> 128.0.3\nShort Firefox version -> 128.0\nGeckoDriver version -> 0.36.0\nShort GeckoDriver version -> 0.36\nTagged selenium/node-firefox:128.0.3-geckodriver-0.36.0-grid-4.35.0-20250909\nTagged selenium/standalone-firefox:128.0.3-geckodriver-0.36.0-grid-4.35.0-20250909\nTagged selenium/node-firefox:128.0.3-geckodriver-0.36.0-20250909\nTagged selenium/standalone-firefox:128.0.3-geckodriver-0.36.0-20250909\nTagged selenium/node-firefox:128.0.3-20250909\nTagged selenium/standalone-firefox:128.0.3-20250909\nTagged selenium/node-firefox:128.0-geckodriver-0.36-grid-4.35.0-20250909\nTagged selenium/standalone-firefox:128.0-geckodriver-0.36-grid-4.35.0-20250909\nTagged selenium/node-firefox:128.0-geckodriver-0.36-20250909\nTagged selenium/standalone-firefox:128.0-geckodriver-0.36-20250909\nTagged selenium/node-firefox:128.0-20250909\nTagged selenium/standalone-firefox:128.0-20250909\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.35.0/firefox_129.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.35.0 20250909 selenium false firefox true\nTagging images for browser firefox, version 4.35.0, build date 20250909, namespace selenium\nSelenium Grid version -> 4.35.0-20250909\nFirefox version -> 129.0.2\nShort Firefox version -> 129.0\nGeckoDriver version -> 0.36.0\nShort GeckoDriver version -> 0.36\nTagged selenium/node-firefox:129.0.2-geckodriver-0.36.0-grid-4.35.0-20250909\nTagged selenium/standalone-firefox:129.0.2-geckodriver-0.36.0-grid-4.35.0-20250909\nTagged selenium/node-firefox:129.0.2-geckodriver-0.36.0-20250909\nTagged selenium/standalone-firefox:129.0.2-geckodriver-0.36.0-20250909\nTagged selenium/node-firefox:129.0.2-20250909\nTagged selenium/standalone-firefox:129.0.2-20250909\nTagged selenium/node-firefox:129.0-geckodriver-0.36-grid-4.35.0-20250909\nTagged selenium/standalone-firefox:129.0-geckodriver-0.36-grid-4.35.0-20250909\nTagged selenium/node-firefox:129.0-geckodriver-0.36-20250909\nTagged selenium/standalone-firefox:129.0-geckodriver-0.36-20250909\nTagged selenium/node-firefox:129.0-20250909\nTagged selenium/standalone-firefox:129.0-20250909\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.35.0/firefox_130.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.35.0 20250909 selenium false firefox true\nTagging images for browser firefox, version 4.35.0, build date 20250909, namespace selenium\nSelenium Grid version -> 4.35.0-20250909\nFirefox version -> 130.0.1\nShort Firefox version -> 130.0\nGeckoDriver version -> 0.36.0\nShort GeckoDriver version -> 0.36\nTagged selenium/node-firefox:130.0.1-geckodriver-0.36.0-grid-4.35.0-20250909\nTagged selenium/standalone-firefox:130.0.1-geckodriver-0.36.0-grid-4.35.0-20250909\nTagged selenium/node-firefox:130.0.1-geckodriver-0.36.0-20250909\nTagged selenium/standalone-firefox:130.0.1-geckodriver-0.36.0-20250909\nTagged selenium/node-firefox:130.0.1-20250909\nTagged selenium/standalone-firefox:130.0.1-20250909\nTagged selenium/node-firefox:130.0-geckodriver-0.36-grid-4.35.0-20250909\nTagged selenium/standalone-firefox:130.0-geckodriver-0.36-grid-4.35.0-20250909\nTagged selenium/node-firefox:130.0-geckodriver-0.36-20250909\nTagged selenium/standalone-firefox:130.0-geckodriver-0.36-20250909\nTagged selenium/node-firefox:130.0-20250909\nTagged selenium/standalone-firefox:130.0-20250909\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.35.0/firefox_131.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.35.0 20250909 selenium false firefox true\nTagging images for browser firefox, version 4.35.0, build date 20250909, namespace selenium\nSelenium Grid version -> 4.35.0-20250909\nFirefox version -> 131.0.3\nShort Firefox version -> 131.0\nGeckoDriver version -> 0.36.0\nShort GeckoDriver version -> 0.36\nTagged selenium/node-firefox:131.0.3-geckodriver-0.36.0-grid-4.35.0-20250909\nTagged selenium/standalone-firefox:131.0.3-geckodriver-0.36.0-grid-4.35.0-20250909\nTagged selenium/node-firefox:131.0.3-geckodriver-0.36.0-20250909\nTagged selenium/standalone-firefox:131.0.3-geckodriver-0.36.0-20250909\nTagged selenium/node-firefox:131.0.3-20250909\nTagged selenium/standalone-firefox:131.0.3-20250909\nTagged selenium/node-firefox:131.0-geckodriver-0.36-grid-4.35.0-20250909\nTagged selenium/standalone-firefox:131.0-geckodriver-0.36-grid-4.35.0-20250909\nTagged selenium/node-firefox:131.0-geckodriver-0.36-20250909\nTagged selenium/standalone-firefox:131.0-geckodriver-0.36-20250909\nTagged selenium/node-firefox:131.0-20250909\nTagged selenium/standalone-firefox:131.0-20250909\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.35.0/firefox_132.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.35.0 20250909 selenium false firefox true\nTagging images for browser firefox, version 4.35.0, build date 20250909, namespace selenium\nSelenium Grid version -> 4.35.0-20250909\nFirefox version -> 132.0.2\nShort Firefox version -> 132.0\nGeckoDriver version -> 0.36.0\nShort GeckoDriver version -> 0.36\nTagged selenium/node-firefox:132.0.2-geckodriver-0.36.0-grid-4.35.0-20250909\nTagged selenium/standalone-firefox:132.0.2-geckodriver-0.36.0-grid-4.35.0-20250909\nTagged selenium/node-firefox:132.0.2-geckodriver-0.36.0-20250909\nTagged selenium/standalone-firefox:132.0.2-geckodriver-0.36.0-20250909\nTagged selenium/node-firefox:132.0.2-20250909\nTagged selenium/standalone-firefox:132.0.2-20250909\nTagged selenium/node-firefox:132.0-geckodriver-0.36-grid-4.35.0-20250909\nTagged selenium/standalone-firefox:132.0-geckodriver-0.36-grid-4.35.0-20250909\nTagged selenium/node-firefox:132.0-geckodriver-0.36-20250909\nTagged selenium/standalone-firefox:132.0-geckodriver-0.36-20250909\nTagged selenium/node-firefox:132.0-20250909\nTagged selenium/standalone-firefox:132.0-20250909\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.35.0/firefox_133.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.35.0 20250909 selenium false firefox true\nTagging images for browser firefox, version 4.35.0, build date 20250909, namespace selenium\nSelenium Grid version -> 4.35.0-20250909\nFirefox version -> 133.0.3\nShort Firefox version -> 133.0\nGeckoDriver version -> 0.36.0\nShort GeckoDriver version -> 0.36\nTagged selenium/node-firefox:133.0.3-geckodriver-0.36.0-grid-4.35.0-20250909\nTagged selenium/standalone-firefox:133.0.3-geckodriver-0.36.0-grid-4.35.0-20250909\nTagged selenium/node-firefox:133.0.3-geckodriver-0.36.0-20250909\nTagged selenium/standalone-firefox:133.0.3-geckodriver-0.36.0-20250909\nTagged selenium/node-firefox:133.0.3-20250909\nTagged selenium/standalone-firefox:133.0.3-20250909\nTagged selenium/node-firefox:133.0-geckodriver-0.36-grid-4.35.0-20250909\nTagged selenium/standalone-firefox:133.0-geckodriver-0.36-grid-4.35.0-20250909\nTagged selenium/node-firefox:133.0-geckodriver-0.36-20250909\nTagged selenium/standalone-firefox:133.0-geckodriver-0.36-20250909\nTagged selenium/node-firefox:133.0-20250909\nTagged selenium/standalone-firefox:133.0-20250909\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.35.0/firefox_134.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.35.0 20250909 selenium false firefox true\nTagging images for browser firefox, version 4.35.0, build date 20250909, namespace selenium\nSelenium Grid version -> 4.35.0-20250909\nFirefox version -> 134.0.2\nShort Firefox version -> 134.0\nGeckoDriver version -> 0.36.0\nShort GeckoDriver version -> 0.36\nTagged selenium/node-firefox:134.0.2-geckodriver-0.36.0-grid-4.35.0-20250909\nTagged selenium/standalone-firefox:134.0.2-geckodriver-0.36.0-grid-4.35.0-20250909\nTagged selenium/node-firefox:134.0.2-geckodriver-0.36.0-20250909\nTagged selenium/standalone-firefox:134.0.2-geckodriver-0.36.0-20250909\nTagged selenium/node-firefox:134.0.2-20250909\nTagged selenium/standalone-firefox:134.0.2-20250909\nTagged selenium/node-firefox:134.0-geckodriver-0.36-grid-4.35.0-20250909\nTagged selenium/standalone-firefox:134.0-geckodriver-0.36-grid-4.35.0-20250909\nTagged selenium/node-firefox:134.0-geckodriver-0.36-20250909\nTagged selenium/standalone-firefox:134.0-geckodriver-0.36-20250909\nTagged selenium/node-firefox:134.0-20250909\nTagged selenium/standalone-firefox:134.0-20250909\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.35.0/firefox_135.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.35.0 20250909 selenium false firefox true\nTagging images for browser firefox, version 4.35.0, build date 20250909, namespace selenium\nSelenium Grid version -> 4.35.0-20250909\nFirefox version -> 135.0.1\nShort Firefox version -> 135.0\nGeckoDriver version -> 0.36.0\nShort GeckoDriver version -> 0.36\nTagged selenium/node-firefox:135.0.1-geckodriver-0.36.0-grid-4.35.0-20250909\nTagged selenium/standalone-firefox:135.0.1-geckodriver-0.36.0-grid-4.35.0-20250909\nTagged selenium/node-firefox:135.0.1-geckodriver-0.36.0-20250909\nTagged selenium/standalone-firefox:135.0.1-geckodriver-0.36.0-20250909\nTagged selenium/node-firefox:135.0.1-20250909\nTagged selenium/standalone-firefox:135.0.1-20250909\nTagged selenium/node-firefox:135.0-geckodriver-0.36-grid-4.35.0-20250909\nTagged selenium/standalone-firefox:135.0-geckodriver-0.36-grid-4.35.0-20250909\nTagged selenium/node-firefox:135.0-geckodriver-0.36-20250909\nTagged selenium/standalone-firefox:135.0-geckodriver-0.36-20250909\nTagged selenium/node-firefox:135.0-20250909\nTagged selenium/standalone-firefox:135.0-20250909\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.35.0/firefox_136.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.35.0 20250909 selenium false firefox true\nTagging images for browser firefox, version 4.35.0, build date 20250909, namespace selenium\nSelenium Grid version -> 4.35.0-20250909\nFirefox version -> 136.0.4\nShort Firefox version -> 136.0\nGeckoDriver version -> 0.36.0\nShort GeckoDriver version -> 0.36\nTagged selenium/node-firefox:136.0.4-geckodriver-0.36.0-grid-4.35.0-20250909\nTagged selenium/standalone-firefox:136.0.4-geckodriver-0.36.0-grid-4.35.0-20250909\nTagged selenium/node-firefox:136.0.4-geckodriver-0.36.0-20250909\nTagged selenium/standalone-firefox:136.0.4-geckodriver-0.36.0-20250909\nTagged selenium/node-firefox:136.0.4-20250909\nTagged selenium/standalone-firefox:136.0.4-20250909\nTagged selenium/node-firefox:136.0-geckodriver-0.36-grid-4.35.0-20250909\nTagged selenium/standalone-firefox:136.0-geckodriver-0.36-grid-4.35.0-20250909\nTagged selenium/node-firefox:136.0-geckodriver-0.36-20250909\nTagged selenium/standalone-firefox:136.0-geckodriver-0.36-20250909\nTagged selenium/node-firefox:136.0-20250909\nTagged selenium/standalone-firefox:136.0-20250909\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.35.0/firefox_137.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.35.0 20250909 selenium false firefox true\nTagging images for browser firefox, version 4.35.0, build date 20250909, namespace selenium\nSelenium Grid version -> 4.35.0-20250909\nFirefox version -> 137.0.2\nShort Firefox version -> 137.0\nGeckoDriver version -> 0.36.0\nShort GeckoDriver version -> 0.36\nTagged selenium/node-firefox:137.0.2-geckodriver-0.36.0-grid-4.35.0-20250909\nTagged selenium/standalone-firefox:137.0.2-geckodriver-0.36.0-grid-4.35.0-20250909\nTagged selenium/node-firefox:137.0.2-geckodriver-0.36.0-20250909\nTagged selenium/standalone-firefox:137.0.2-geckodriver-0.36.0-20250909\nTagged selenium/node-firefox:137.0.2-20250909\nTagged selenium/standalone-firefox:137.0.2-20250909\nTagged selenium/node-firefox:137.0-geckodriver-0.36-grid-4.35.0-20250909\nTagged selenium/standalone-firefox:137.0-geckodriver-0.36-grid-4.35.0-20250909\nTagged selenium/node-firefox:137.0-geckodriver-0.36-20250909\nTagged selenium/standalone-firefox:137.0-geckodriver-0.36-20250909\nTagged selenium/node-firefox:137.0-20250909\nTagged selenium/standalone-firefox:137.0-20250909\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.35.0/firefox_138.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.35.0 20250909 selenium false firefox true\nTagging images for browser firefox, version 4.35.0, build date 20250909, namespace selenium\nSelenium Grid version -> 4.35.0-20250909\nFirefox version -> 138.0.4\nShort Firefox version -> 138.0\nGeckoDriver version -> 0.36.0\nShort GeckoDriver version -> 0.36\nTagged selenium/node-firefox:138.0.4-geckodriver-0.36.0-grid-4.35.0-20250909\nTagged selenium/standalone-firefox:138.0.4-geckodriver-0.36.0-grid-4.35.0-20250909\nTagged selenium/node-firefox:138.0.4-geckodriver-0.36.0-20250909\nTagged selenium/standalone-firefox:138.0.4-geckodriver-0.36.0-20250909\nTagged selenium/node-firefox:138.0.4-20250909\nTagged selenium/standalone-firefox:138.0.4-20250909\nTagged selenium/node-firefox:138.0-geckodriver-0.36-grid-4.35.0-20250909\nTagged selenium/standalone-firefox:138.0-geckodriver-0.36-grid-4.35.0-20250909\nTagged selenium/node-firefox:138.0-geckodriver-0.36-20250909\nTagged selenium/standalone-firefox:138.0-geckodriver-0.36-20250909\nTagged selenium/node-firefox:138.0-20250909\nTagged selenium/standalone-firefox:138.0-20250909\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.35.0/firefox_139.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.35.0 20250909 selenium false firefox true\nTagging images for browser firefox, version 4.35.0, build date 20250909, namespace selenium\nSelenium Grid version -> 4.35.0-20250909\nFirefox version -> 139.0.4\nShort Firefox version -> 139.0\nGeckoDriver version -> 0.36.0\nShort GeckoDriver version -> 0.36\nTagged selenium/node-firefox:139.0.4-geckodriver-0.36.0-grid-4.35.0-20250909\nTagged selenium/standalone-firefox:139.0.4-geckodriver-0.36.0-grid-4.35.0-20250909\nTagged selenium/node-firefox:139.0.4-geckodriver-0.36.0-20250909\nTagged selenium/standalone-firefox:139.0.4-geckodriver-0.36.0-20250909\nTagged selenium/node-firefox:139.0.4-20250909\nTagged selenium/standalone-firefox:139.0.4-20250909\nTagged selenium/node-firefox:139.0-geckodriver-0.36-grid-4.35.0-20250909\nTagged selenium/standalone-firefox:139.0-geckodriver-0.36-grid-4.35.0-20250909\nTagged selenium/node-firefox:139.0-geckodriver-0.36-20250909\nTagged selenium/standalone-firefox:139.0-geckodriver-0.36-20250909\nTagged selenium/node-firefox:139.0-20250909\nTagged selenium/standalone-firefox:139.0-20250909\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.35.0/firefox_140.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.35.0 20250909 selenium false firefox true\nTagging images for browser firefox, version 4.35.0, build date 20250909, namespace selenium\nSelenium Grid version -> 4.35.0-20250909\nFirefox version -> 140.0.4\nShort Firefox version -> 140.0\nGeckoDriver version -> 0.36.0\nShort GeckoDriver version -> 0.36\nTagged selenium/node-firefox:140.0.4-geckodriver-0.36.0-grid-4.35.0-20250909\nTagged selenium/standalone-firefox:140.0.4-geckodriver-0.36.0-grid-4.35.0-20250909\nTagged selenium/node-firefox:140.0.4-geckodriver-0.36.0-20250909\nTagged selenium/standalone-firefox:140.0.4-geckodriver-0.36.0-20250909\nTagged selenium/node-firefox:140.0.4-20250909\nTagged selenium/standalone-firefox:140.0.4-20250909\nTagged selenium/node-firefox:140.0-geckodriver-0.36-grid-4.35.0-20250909\nTagged selenium/standalone-firefox:140.0-geckodriver-0.36-grid-4.35.0-20250909\nTagged selenium/node-firefox:140.0-geckodriver-0.36-20250909\nTagged selenium/standalone-firefox:140.0-geckodriver-0.36-20250909\nTagged selenium/node-firefox:140.0-20250909\nTagged selenium/standalone-firefox:140.0-20250909\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.35.0/firefox_141.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.35.0 20250909 selenium false firefox true\nTagging images for browser firefox, version 4.35.0, build date 20250909, namespace selenium\nSelenium Grid version -> 4.35.0-20250909\nFirefox version -> 141.0.3\nShort Firefox version -> 141.0\nGeckoDriver version -> 0.36.0\nShort GeckoDriver version -> 0.36\nTagged selenium/node-firefox:141.0.3-geckodriver-0.36.0-grid-4.35.0-20250909\nTagged selenium/standalone-firefox:141.0.3-geckodriver-0.36.0-grid-4.35.0-20250909\nTagged selenium/node-firefox:141.0.3-geckodriver-0.36.0-20250909\nTagged selenium/standalone-firefox:141.0.3-geckodriver-0.36.0-20250909\nTagged selenium/node-firefox:141.0.3-20250909\nTagged selenium/standalone-firefox:141.0.3-20250909\nTagged selenium/node-firefox:141.0-geckodriver-0.36-grid-4.35.0-20250909\nTagged selenium/standalone-firefox:141.0-geckodriver-0.36-grid-4.35.0-20250909\nTagged selenium/node-firefox:141.0-geckodriver-0.36-20250909\nTagged selenium/standalone-firefox:141.0-geckodriver-0.36-20250909\nTagged selenium/node-firefox:141.0-20250909\nTagged selenium/standalone-firefox:141.0-20250909\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.35.0/firefox_142.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.35.0 20250909 selenium false firefox true\nTagging images for browser firefox, version 4.35.0, build date 20250909, namespace selenium\nSelenium Grid version -> 4.35.0-20250909\nFirefox version -> 142.0.1\nShort Firefox version -> 142.0\nGeckoDriver version -> 0.36.0\nShort GeckoDriver version -> 0.36\nTagged selenium/node-firefox:142.0.1-geckodriver-0.36.0-grid-4.35.0-20250909\nTagged selenium/standalone-firefox:142.0.1-geckodriver-0.36.0-grid-4.35.0-20250909\nTagged selenium/node-firefox:142.0.1-geckodriver-0.36.0-20250909\nTagged selenium/standalone-firefox:142.0.1-geckodriver-0.36.0-20250909\nTagged selenium/node-firefox:142.0.1-20250909\nTagged selenium/standalone-firefox:142.0.1-20250909\nTagged selenium/node-firefox:142.0-geckodriver-0.36-grid-4.35.0-20250909\nTagged selenium/standalone-firefox:142.0-geckodriver-0.36-grid-4.35.0-20250909\nTagged selenium/node-firefox:142.0-geckodriver-0.36-20250909\nTagged selenium/standalone-firefox:142.0-geckodriver-0.36-20250909\nTagged selenium/node-firefox:142.0-20250909\nTagged selenium/standalone-firefox:142.0-20250909\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.35.0/firefox_98.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.35.0 20250909 selenium false firefox true\nTagging images for browser firefox, version 4.35.0, build date 20250909, namespace selenium\nSelenium Grid version -> 4.35.0-20250909\nFirefox version -> 98.0.2\nShort Firefox version -> 98.0\nGeckoDriver version -> 0.36.0\nShort GeckoDriver version -> 0.36\nTagged selenium/node-firefox:98.0.2-geckodriver-0.36.0-grid-4.35.0-20250909\nTagged selenium/standalone-firefox:98.0.2-geckodriver-0.36.0-grid-4.35.0-20250909\nTagged selenium/node-firefox:98.0.2-geckodriver-0.36.0-20250909\nTagged selenium/standalone-firefox:98.0.2-geckodriver-0.36.0-20250909\nTagged selenium/node-firefox:98.0.2-20250909\nTagged selenium/standalone-firefox:98.0.2-20250909\nTagged selenium/node-firefox:98.0-geckodriver-0.36-grid-4.35.0-20250909\nTagged selenium/standalone-firefox:98.0-geckodriver-0.36-grid-4.35.0-20250909\nTagged selenium/node-firefox:98.0-geckodriver-0.36-20250909\nTagged selenium/standalone-firefox:98.0-geckodriver-0.36-20250909\nTagged selenium/node-firefox:98.0-20250909\nTagged selenium/standalone-firefox:98.0-20250909\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.35.0/firefox_99.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.35.0 20250909 selenium false firefox true\nTagging images for browser firefox, version 4.35.0, build date 20250909, namespace selenium\nSelenium Grid version -> 4.35.0-20250909\nFirefox version -> 99.0.1\nShort Firefox version -> 99.0\nGeckoDriver version -> 0.36.0\nShort GeckoDriver version -> 0.36\nTagged selenium/node-firefox:99.0.1-geckodriver-0.36.0-grid-4.35.0-20250909\nTagged selenium/standalone-firefox:99.0.1-geckodriver-0.36.0-grid-4.35.0-20250909\nTagged selenium/node-firefox:99.0.1-geckodriver-0.36.0-20250909\nTagged selenium/standalone-firefox:99.0.1-geckodriver-0.36.0-20250909\nTagged selenium/node-firefox:99.0.1-20250909\nTagged selenium/standalone-firefox:99.0.1-20250909\nTagged selenium/node-firefox:99.0-geckodriver-0.36-grid-4.35.0-20250909\nTagged selenium/standalone-firefox:99.0-geckodriver-0.36-grid-4.35.0-20250909\nTagged selenium/node-firefox:99.0-geckodriver-0.36-20250909\nTagged selenium/standalone-firefox:99.0-geckodriver-0.36-20250909\nTagged selenium/node-firefox:99.0-20250909\nTagged selenium/standalone-firefox:99.0-20250909\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.36.0/chrome_100.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.36.0 20251001 selenium false chrome true\nTagging images for browser chrome, version 4.36.0, build date 20251001, namespace selenium\nSelenium Grid version -> 4.36.0-20251001\nChrome version -> 100.0.4896.127\nShort Chrome version -> 100.0\nChromeDriver version -> 100.0.4896.60\nShort ChromeDriver version -> 100.0\nTagged selenium/node-chrome:100.0.4896.127-chromedriver-100.0.4896.60-grid-4.36.0-20251001\nTagged selenium/standalone-chrome:100.0.4896.127-chromedriver-100.0.4896.60-grid-4.36.0-20251001\nTagged selenium/node-chrome:100.0.4896.127-chromedriver-100.0.4896.60-20251001\nTagged selenium/standalone-chrome:100.0.4896.127-chromedriver-100.0.4896.60-20251001\nTagged selenium/node-chrome:100.0.4896.127-20251001\nTagged selenium/standalone-chrome:100.0.4896.127-20251001\nTagged selenium/node-chrome:100.0-chromedriver-100.0-grid-4.36.0-20251001\nTagged selenium/standalone-chrome:100.0-chromedriver-100.0-grid-4.36.0-20251001\nTagged selenium/node-chrome:100.0-chromedriver-100.0-20251001\nTagged selenium/standalone-chrome:100.0-chromedriver-100.0-20251001\nTagged selenium/node-chrome:100.0-20251001\nTagged selenium/standalone-chrome:100.0-20251001\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.36.0/chrome_101.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.36.0 20251001 selenium false chrome true\nTagging images for browser chrome, version 4.36.0, build date 20251001, namespace selenium\nSelenium Grid version -> 4.36.0-20251001\nChrome version -> 101.0.4951.64\nShort Chrome version -> 101.0\nChromeDriver version -> 101.0.4951.41\nShort ChromeDriver version -> 101.0\nTagged selenium/node-chrome:101.0.4951.64-chromedriver-101.0.4951.41-grid-4.36.0-20251001\nTagged selenium/standalone-chrome:101.0.4951.64-chromedriver-101.0.4951.41-grid-4.36.0-20251001\nTagged selenium/node-chrome:101.0.4951.64-chromedriver-101.0.4951.41-20251001\nTagged selenium/standalone-chrome:101.0.4951.64-chromedriver-101.0.4951.41-20251001\nTagged selenium/node-chrome:101.0.4951.64-20251001\nTagged selenium/standalone-chrome:101.0.4951.64-20251001\nTagged selenium/node-chrome:101.0-chromedriver-101.0-grid-4.36.0-20251001\nTagged selenium/standalone-chrome:101.0-chromedriver-101.0-grid-4.36.0-20251001\nTagged selenium/node-chrome:101.0-chromedriver-101.0-20251001\nTagged selenium/standalone-chrome:101.0-chromedriver-101.0-20251001\nTagged selenium/node-chrome:101.0-20251001\nTagged selenium/standalone-chrome:101.0-20251001\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.36.0/chrome_102.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.36.0 20251001 selenium false chrome true\nTagging images for browser chrome, version 4.36.0, build date 20251001, namespace selenium\nSelenium Grid version -> 4.36.0-20251001\nChrome version -> 102.0.5005.115\nShort Chrome version -> 102.0\nChromeDriver version -> 102.0.5005.61\nShort ChromeDriver version -> 102.0\nTagged selenium/node-chrome:102.0.5005.115-chromedriver-102.0.5005.61-grid-4.36.0-20251001\nTagged selenium/standalone-chrome:102.0.5005.115-chromedriver-102.0.5005.61-grid-4.36.0-20251001\nTagged selenium/node-chrome:102.0.5005.115-chromedriver-102.0.5005.61-20251001\nTagged selenium/standalone-chrome:102.0.5005.115-chromedriver-102.0.5005.61-20251001\nTagged selenium/node-chrome:102.0.5005.115-20251001\nTagged selenium/standalone-chrome:102.0.5005.115-20251001\nTagged selenium/node-chrome:102.0-chromedriver-102.0-grid-4.36.0-20251001\nTagged selenium/standalone-chrome:102.0-chromedriver-102.0-grid-4.36.0-20251001\nTagged selenium/node-chrome:102.0-chromedriver-102.0-20251001\nTagged selenium/standalone-chrome:102.0-chromedriver-102.0-20251001\nTagged selenium/node-chrome:102.0-20251001\nTagged selenium/standalone-chrome:102.0-20251001\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.36.0/chrome_103.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.36.0 20251001 selenium false chrome true\nTagging images for browser chrome, version 4.36.0, build date 20251001, namespace selenium\nSelenium Grid version -> 4.36.0-20251001\nChrome version -> 103.0.5060.134\nShort Chrome version -> 103.0\nChromeDriver version -> 103.0.5060.134\nShort ChromeDriver version -> 103.0\nTagged selenium/node-chrome:103.0.5060.134-chromedriver-103.0.5060.134-grid-4.36.0-20251001\nTagged selenium/standalone-chrome:103.0.5060.134-chromedriver-103.0.5060.134-grid-4.36.0-20251001\nTagged selenium/node-chrome:103.0.5060.134-chromedriver-103.0.5060.134-20251001\nTagged selenium/standalone-chrome:103.0.5060.134-chromedriver-103.0.5060.134-20251001\nTagged selenium/node-chrome:103.0.5060.134-20251001\nTagged selenium/standalone-chrome:103.0.5060.134-20251001\nTagged selenium/node-chrome:103.0-chromedriver-103.0-grid-4.36.0-20251001\nTagged selenium/standalone-chrome:103.0-chromedriver-103.0-grid-4.36.0-20251001\nTagged selenium/node-chrome:103.0-chromedriver-103.0-20251001\nTagged selenium/standalone-chrome:103.0-chromedriver-103.0-20251001\nTagged selenium/node-chrome:103.0-20251001\nTagged selenium/standalone-chrome:103.0-20251001\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.36.0/chrome_104.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.36.0 20251001 selenium false chrome true\nTagging images for browser chrome, version 4.36.0, build date 20251001, namespace selenium\nSelenium Grid version -> 4.36.0-20251001\nChrome version -> 104.0.5112.101\nShort Chrome version -> 104.0\nChromeDriver version -> 104.0.5112.79\nShort ChromeDriver version -> 104.0\nTagged selenium/node-chrome:104.0.5112.101-chromedriver-104.0.5112.79-grid-4.36.0-20251001\nTagged selenium/standalone-chrome:104.0.5112.101-chromedriver-104.0.5112.79-grid-4.36.0-20251001\nTagged selenium/node-chrome:104.0.5112.101-chromedriver-104.0.5112.79-20251001\nTagged selenium/standalone-chrome:104.0.5112.101-chromedriver-104.0.5112.79-20251001\nTagged selenium/node-chrome:104.0.5112.101-20251001\nTagged selenium/standalone-chrome:104.0.5112.101-20251001\nTagged selenium/node-chrome:104.0-chromedriver-104.0-grid-4.36.0-20251001\nTagged selenium/standalone-chrome:104.0-chromedriver-104.0-grid-4.36.0-20251001\nTagged selenium/node-chrome:104.0-chromedriver-104.0-20251001\nTagged selenium/standalone-chrome:104.0-chromedriver-104.0-20251001\nTagged selenium/node-chrome:104.0-20251001\nTagged selenium/standalone-chrome:104.0-20251001\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.36.0/chrome_105.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.36.0 20251001 selenium false chrome true\nTagging images for browser chrome, version 4.36.0, build date 20251001, namespace selenium\nSelenium Grid version -> 4.36.0-20251001\nChrome version -> 105.0.5195.125\nShort Chrome version -> 105.0\nChromeDriver version -> 105.0.5195.52\nShort ChromeDriver version -> 105.0\nTagged selenium/node-chrome:105.0.5195.125-chromedriver-105.0.5195.52-grid-4.36.0-20251001\nTagged selenium/standalone-chrome:105.0.5195.125-chromedriver-105.0.5195.52-grid-4.36.0-20251001\nTagged selenium/node-chrome:105.0.5195.125-chromedriver-105.0.5195.52-20251001\nTagged selenium/standalone-chrome:105.0.5195.125-chromedriver-105.0.5195.52-20251001\nTagged selenium/node-chrome:105.0.5195.125-20251001\nTagged selenium/standalone-chrome:105.0.5195.125-20251001\nTagged selenium/node-chrome:105.0-chromedriver-105.0-grid-4.36.0-20251001\nTagged selenium/standalone-chrome:105.0-chromedriver-105.0-grid-4.36.0-20251001\nTagged selenium/node-chrome:105.0-chromedriver-105.0-20251001\nTagged selenium/standalone-chrome:105.0-chromedriver-105.0-20251001\nTagged selenium/node-chrome:105.0-20251001\nTagged selenium/standalone-chrome:105.0-20251001\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.36.0/chrome_106.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.36.0 20251001 selenium false chrome true\nTagging images for browser chrome, version 4.36.0, build date 20251001, namespace selenium\nSelenium Grid version -> 4.36.0-20251001\nChrome version -> 106.0.5249.119\nShort Chrome version -> 106.0\nChromeDriver version -> 106.0.5249.61\nShort ChromeDriver version -> 106.0\nTagged selenium/node-chrome:106.0.5249.119-chromedriver-106.0.5249.61-grid-4.36.0-20251001\nTagged selenium/standalone-chrome:106.0.5249.119-chromedriver-106.0.5249.61-grid-4.36.0-20251001\nTagged selenium/node-chrome:106.0.5249.119-chromedriver-106.0.5249.61-20251001\nTagged selenium/standalone-chrome:106.0.5249.119-chromedriver-106.0.5249.61-20251001\nTagged selenium/node-chrome:106.0.5249.119-20251001\nTagged selenium/standalone-chrome:106.0.5249.119-20251001\nTagged selenium/node-chrome:106.0-chromedriver-106.0-grid-4.36.0-20251001\nTagged selenium/standalone-chrome:106.0-chromedriver-106.0-grid-4.36.0-20251001\nTagged selenium/node-chrome:106.0-chromedriver-106.0-20251001\nTagged selenium/standalone-chrome:106.0-chromedriver-106.0-20251001\nTagged selenium/node-chrome:106.0-20251001\nTagged selenium/standalone-chrome:106.0-20251001\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.36.0/chrome_107.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.36.0 20251001 selenium false chrome true\nTagging images for browser chrome, version 4.36.0, build date 20251001, namespace selenium\nSelenium Grid version -> 4.36.0-20251001\nChrome version -> 107.0.5304.121\nShort Chrome version -> 107.0\nChromeDriver version -> 107.0.5304.62\nShort ChromeDriver version -> 107.0\nTagged selenium/node-chrome:107.0.5304.121-chromedriver-107.0.5304.62-grid-4.36.0-20251001\nTagged selenium/standalone-chrome:107.0.5304.121-chromedriver-107.0.5304.62-grid-4.36.0-20251001\nTagged selenium/node-chrome:107.0.5304.121-chromedriver-107.0.5304.62-20251001\nTagged selenium/standalone-chrome:107.0.5304.121-chromedriver-107.0.5304.62-20251001\nTagged selenium/node-chrome:107.0.5304.121-20251001\nTagged selenium/standalone-chrome:107.0.5304.121-20251001\nTagged selenium/node-chrome:107.0-chromedriver-107.0-grid-4.36.0-20251001\nTagged selenium/standalone-chrome:107.0-chromedriver-107.0-grid-4.36.0-20251001\nTagged selenium/node-chrome:107.0-chromedriver-107.0-20251001\nTagged selenium/standalone-chrome:107.0-chromedriver-107.0-20251001\nTagged selenium/node-chrome:107.0-20251001\nTagged selenium/standalone-chrome:107.0-20251001\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.36.0/chrome_108.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.36.0 20251001 selenium false chrome true\nTagging images for browser chrome, version 4.36.0, build date 20251001, namespace selenium\nSelenium Grid version -> 4.36.0-20251001\nChrome version -> 108.0.5359.124\nShort Chrome version -> 108.0\nChromeDriver version -> 108.0.5359.71\nShort ChromeDriver version -> 108.0\nTagged selenium/node-chrome:108.0.5359.124-chromedriver-108.0.5359.71-grid-4.36.0-20251001\nTagged selenium/standalone-chrome:108.0.5359.124-chromedriver-108.0.5359.71-grid-4.36.0-20251001\nTagged selenium/node-chrome:108.0.5359.124-chromedriver-108.0.5359.71-20251001\nTagged selenium/standalone-chrome:108.0.5359.124-chromedriver-108.0.5359.71-20251001\nTagged selenium/node-chrome:108.0.5359.124-20251001\nTagged selenium/standalone-chrome:108.0.5359.124-20251001\nTagged selenium/node-chrome:108.0-chromedriver-108.0-grid-4.36.0-20251001\nTagged selenium/standalone-chrome:108.0-chromedriver-108.0-grid-4.36.0-20251001\nTagged selenium/node-chrome:108.0-chromedriver-108.0-20251001\nTagged selenium/standalone-chrome:108.0-chromedriver-108.0-20251001\nTagged selenium/node-chrome:108.0-20251001\nTagged selenium/standalone-chrome:108.0-20251001\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.36.0/chrome_109.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.36.0 20251001 selenium false chrome true\nTagging images for browser chrome, version 4.36.0, build date 20251001, namespace selenium\nSelenium Grid version -> 4.36.0-20251001\nChrome version -> 109.0.5414.119\nShort Chrome version -> 109.0\nChromeDriver version -> 109.0.5414.74\nShort ChromeDriver version -> 109.0\nTagged selenium/node-chrome:109.0.5414.119-chromedriver-109.0.5414.74-grid-4.36.0-20251001\nTagged selenium/standalone-chrome:109.0.5414.119-chromedriver-109.0.5414.74-grid-4.36.0-20251001\nTagged selenium/node-chrome:109.0.5414.119-chromedriver-109.0.5414.74-20251001\nTagged selenium/standalone-chrome:109.0.5414.119-chromedriver-109.0.5414.74-20251001\nTagged selenium/node-chrome:109.0.5414.119-20251001\nTagged selenium/standalone-chrome:109.0.5414.119-20251001\nTagged selenium/node-chrome:109.0-chromedriver-109.0-grid-4.36.0-20251001\nTagged selenium/standalone-chrome:109.0-chromedriver-109.0-grid-4.36.0-20251001\nTagged selenium/node-chrome:109.0-chromedriver-109.0-20251001\nTagged selenium/standalone-chrome:109.0-chromedriver-109.0-20251001\nTagged selenium/node-chrome:109.0-20251001\nTagged selenium/standalone-chrome:109.0-20251001\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.36.0/chrome_110.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.36.0 20251001 selenium false chrome true\nTagging images for browser chrome, version 4.36.0, build date 20251001, namespace selenium\nSelenium Grid version -> 4.36.0-20251001\nChrome version -> 110.0.5481.177\nShort Chrome version -> 110.0\nChromeDriver version -> 110.0.5481.77\nShort ChromeDriver version -> 110.0\nTagged selenium/node-chrome:110.0.5481.177-chromedriver-110.0.5481.77-grid-4.36.0-20251001\nTagged selenium/standalone-chrome:110.0.5481.177-chromedriver-110.0.5481.77-grid-4.36.0-20251001\nTagged selenium/node-chrome:110.0.5481.177-chromedriver-110.0.5481.77-20251001\nTagged selenium/standalone-chrome:110.0.5481.177-chromedriver-110.0.5481.77-20251001\nTagged selenium/node-chrome:110.0.5481.177-20251001\nTagged selenium/standalone-chrome:110.0.5481.177-20251001\nTagged selenium/node-chrome:110.0-chromedriver-110.0-grid-4.36.0-20251001\nTagged selenium/standalone-chrome:110.0-chromedriver-110.0-grid-4.36.0-20251001\nTagged selenium/node-chrome:110.0-chromedriver-110.0-20251001\nTagged selenium/standalone-chrome:110.0-chromedriver-110.0-20251001\nTagged selenium/node-chrome:110.0-20251001\nTagged selenium/standalone-chrome:110.0-20251001\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.36.0/chrome_111.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.36.0 20251001 selenium false chrome true\nTagging images for browser chrome, version 4.36.0, build date 20251001, namespace selenium\nSelenium Grid version -> 4.36.0-20251001\nChrome version -> 111.0.5563.146\nShort Chrome version -> 111.0\nChromeDriver version -> 111.0.5563.64\nShort ChromeDriver version -> 111.0\nTagged selenium/node-chrome:111.0.5563.146-chromedriver-111.0.5563.64-grid-4.36.0-20251001\nTagged selenium/standalone-chrome:111.0.5563.146-chromedriver-111.0.5563.64-grid-4.36.0-20251001\nTagged selenium/node-chrome:111.0.5563.146-chromedriver-111.0.5563.64-20251001\nTagged selenium/standalone-chrome:111.0.5563.146-chromedriver-111.0.5563.64-20251001\nTagged selenium/node-chrome:111.0.5563.146-20251001\nTagged selenium/standalone-chrome:111.0.5563.146-20251001\nTagged selenium/node-chrome:111.0-chromedriver-111.0-grid-4.36.0-20251001\nTagged selenium/standalone-chrome:111.0-chromedriver-111.0-grid-4.36.0-20251001\nTagged selenium/node-chrome:111.0-chromedriver-111.0-20251001\nTagged selenium/standalone-chrome:111.0-chromedriver-111.0-20251001\nTagged selenium/node-chrome:111.0-20251001\nTagged selenium/standalone-chrome:111.0-20251001\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.36.0/chrome_112.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.36.0 20251001 selenium false chrome true\nTagging images for browser chrome, version 4.36.0, build date 20251001, namespace selenium\nSelenium Grid version -> 4.36.0-20251001\nChrome version -> 112.0.5615.165\nShort Chrome version -> 112.0\nChromeDriver version -> 112.0.5615.49\nShort ChromeDriver version -> 112.0\nTagged selenium/node-chrome:112.0.5615.165-chromedriver-112.0.5615.49-grid-4.36.0-20251001\nTagged selenium/standalone-chrome:112.0.5615.165-chromedriver-112.0.5615.49-grid-4.36.0-20251001\nTagged selenium/node-chrome:112.0.5615.165-chromedriver-112.0.5615.49-20251001\nTagged selenium/standalone-chrome:112.0.5615.165-chromedriver-112.0.5615.49-20251001\nTagged selenium/node-chrome:112.0.5615.165-20251001\nTagged selenium/standalone-chrome:112.0.5615.165-20251001\nTagged selenium/node-chrome:112.0-chromedriver-112.0-grid-4.36.0-20251001\nTagged selenium/standalone-chrome:112.0-chromedriver-112.0-grid-4.36.0-20251001\nTagged selenium/node-chrome:112.0-chromedriver-112.0-20251001\nTagged selenium/standalone-chrome:112.0-chromedriver-112.0-20251001\nTagged selenium/node-chrome:112.0-20251001\nTagged selenium/standalone-chrome:112.0-20251001\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.36.0/chrome_113.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.36.0 20251001 selenium false chrome true\nTagging images for browser chrome, version 4.36.0, build date 20251001, namespace selenium\nSelenium Grid version -> 4.36.0-20251001\nChrome version -> 113.0.5672.126\nShort Chrome version -> 113.0\nChromeDriver version -> 113.0.5672.63\nShort ChromeDriver version -> 113.0\nTagged selenium/node-chrome:113.0.5672.126-chromedriver-113.0.5672.63-grid-4.36.0-20251001\nTagged selenium/standalone-chrome:113.0.5672.126-chromedriver-113.0.5672.63-grid-4.36.0-20251001\nTagged selenium/node-chrome:113.0.5672.126-chromedriver-113.0.5672.63-20251001\nTagged selenium/standalone-chrome:113.0.5672.126-chromedriver-113.0.5672.63-20251001\nTagged selenium/node-chrome:113.0.5672.126-20251001\nTagged selenium/standalone-chrome:113.0.5672.126-20251001\nTagged selenium/node-chrome:113.0-chromedriver-113.0-grid-4.36.0-20251001\nTagged selenium/standalone-chrome:113.0-chromedriver-113.0-grid-4.36.0-20251001\nTagged selenium/node-chrome:113.0-chromedriver-113.0-20251001\nTagged selenium/standalone-chrome:113.0-chromedriver-113.0-20251001\nTagged selenium/node-chrome:113.0-20251001\nTagged selenium/standalone-chrome:113.0-20251001\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.36.0/chrome_114.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.36.0 20251001 selenium false chrome true\nTagging images for browser chrome, version 4.36.0, build date 20251001, namespace selenium\nSelenium Grid version -> 4.36.0-20251001\nChrome version -> 114.0.5735.198\nShort Chrome version -> 114.0\nChromeDriver version -> 114.0.5735.90\nShort ChromeDriver version -> 114.0\nTagged selenium/node-chrome:114.0.5735.198-chromedriver-114.0.5735.90-grid-4.36.0-20251001\nTagged selenium/standalone-chrome:114.0.5735.198-chromedriver-114.0.5735.90-grid-4.36.0-20251001\nTagged selenium/node-chrome:114.0.5735.198-chromedriver-114.0.5735.90-20251001\nTagged selenium/standalone-chrome:114.0.5735.198-chromedriver-114.0.5735.90-20251001\nTagged selenium/node-chrome:114.0.5735.198-20251001\nTagged selenium/standalone-chrome:114.0.5735.198-20251001\nTagged selenium/node-chrome:114.0-chromedriver-114.0-grid-4.36.0-20251001\nTagged selenium/standalone-chrome:114.0-chromedriver-114.0-grid-4.36.0-20251001\nTagged selenium/node-chrome:114.0-chromedriver-114.0-20251001\nTagged selenium/standalone-chrome:114.0-chromedriver-114.0-20251001\nTagged selenium/node-chrome:114.0-20251001\nTagged selenium/standalone-chrome:114.0-20251001\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.36.0/chrome_115.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.36.0 20251001 selenium false chrome true\nTagging images for browser chrome, version 4.36.0, build date 20251001, namespace selenium\nSelenium Grid version -> 4.36.0-20251001\nChrome version -> 115.0.5790.170\nShort Chrome version -> 115.0\nChromeDriver version -> 115.0.5790.170\nShort ChromeDriver version -> 115.0\nTagged selenium/node-chrome:115.0.5790.170-chromedriver-115.0.5790.170-grid-4.36.0-20251001\nTagged selenium/standalone-chrome:115.0.5790.170-chromedriver-115.0.5790.170-grid-4.36.0-20251001\nTagged selenium/node-chrome:115.0.5790.170-chromedriver-115.0.5790.170-20251001\nTagged selenium/standalone-chrome:115.0.5790.170-chromedriver-115.0.5790.170-20251001\nTagged selenium/node-chrome:115.0.5790.170-20251001\nTagged selenium/standalone-chrome:115.0.5790.170-20251001\nTagged selenium/node-chrome:115.0-chromedriver-115.0-grid-4.36.0-20251001\nTagged selenium/standalone-chrome:115.0-chromedriver-115.0-grid-4.36.0-20251001\nTagged selenium/node-chrome:115.0-chromedriver-115.0-20251001\nTagged selenium/standalone-chrome:115.0-chromedriver-115.0-20251001\nTagged selenium/node-chrome:115.0-20251001\nTagged selenium/standalone-chrome:115.0-20251001\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.36.0/chrome_116.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.36.0 20251001 selenium false chrome true\nTagging images for browser chrome, version 4.36.0, build date 20251001, namespace selenium\nSelenium Grid version -> 4.36.0-20251001\nChrome version -> 116.0.5845.187\nShort Chrome version -> 116.0\nChromeDriver version -> 116.0.5845.96\nShort ChromeDriver version -> 116.0\nTagged selenium/node-chrome:116.0.5845.187-chromedriver-116.0.5845.96-grid-4.36.0-20251001\nTagged selenium/standalone-chrome:116.0.5845.187-chromedriver-116.0.5845.96-grid-4.36.0-20251001\nTagged selenium/node-chrome:116.0.5845.187-chromedriver-116.0.5845.96-20251001\nTagged selenium/standalone-chrome:116.0.5845.187-chromedriver-116.0.5845.96-20251001\nTagged selenium/node-chrome:116.0.5845.187-20251001\nTagged selenium/standalone-chrome:116.0.5845.187-20251001\nTagged selenium/node-chrome:116.0-chromedriver-116.0-grid-4.36.0-20251001\nTagged selenium/standalone-chrome:116.0-chromedriver-116.0-grid-4.36.0-20251001\nTagged selenium/node-chrome:116.0-chromedriver-116.0-20251001\nTagged selenium/standalone-chrome:116.0-chromedriver-116.0-20251001\nTagged selenium/node-chrome:116.0-20251001\nTagged selenium/standalone-chrome:116.0-20251001\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.36.0/chrome_117.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.36.0 20251001 selenium false chrome true\nTagging images for browser chrome, version 4.36.0, build date 20251001, namespace selenium\nSelenium Grid version -> 4.36.0-20251001\nChrome version -> 117.0.5938.149\nShort Chrome version -> 117.0\nChromeDriver version -> 117.0.5938.149\nShort ChromeDriver version -> 117.0\nTagged selenium/node-chrome:117.0.5938.149-chromedriver-117.0.5938.149-grid-4.36.0-20251001\nTagged selenium/standalone-chrome:117.0.5938.149-chromedriver-117.0.5938.149-grid-4.36.0-20251001\nTagged selenium/node-chrome:117.0.5938.149-chromedriver-117.0.5938.149-20251001\nTagged selenium/standalone-chrome:117.0.5938.149-chromedriver-117.0.5938.149-20251001\nTagged selenium/node-chrome:117.0.5938.149-20251001\nTagged selenium/standalone-chrome:117.0.5938.149-20251001\nTagged selenium/node-chrome:117.0-chromedriver-117.0-grid-4.36.0-20251001\nTagged selenium/standalone-chrome:117.0-chromedriver-117.0-grid-4.36.0-20251001\nTagged selenium/node-chrome:117.0-chromedriver-117.0-20251001\nTagged selenium/standalone-chrome:117.0-chromedriver-117.0-20251001\nTagged selenium/node-chrome:117.0-20251001\nTagged selenium/standalone-chrome:117.0-20251001\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.36.0/chrome_118.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.36.0 20251001 selenium false chrome true\nTagging images for browser chrome, version 4.36.0, build date 20251001, namespace selenium\nSelenium Grid version -> 4.36.0-20251001\nChrome version -> 118.0.5993.117\nShort Chrome version -> 118.0\nChromeDriver version -> 118.0.5993.70\nShort ChromeDriver version -> 118.0\nTagged selenium/node-chrome:118.0.5993.117-chromedriver-118.0.5993.70-grid-4.36.0-20251001\nTagged selenium/standalone-chrome:118.0.5993.117-chromedriver-118.0.5993.70-grid-4.36.0-20251001\nTagged selenium/node-chrome:118.0.5993.117-chromedriver-118.0.5993.70-20251001\nTagged selenium/standalone-chrome:118.0.5993.117-chromedriver-118.0.5993.70-20251001\nTagged selenium/node-chrome:118.0.5993.117-20251001\nTagged selenium/standalone-chrome:118.0.5993.117-20251001\nTagged selenium/node-chrome:118.0-chromedriver-118.0-grid-4.36.0-20251001\nTagged selenium/standalone-chrome:118.0-chromedriver-118.0-grid-4.36.0-20251001\nTagged selenium/node-chrome:118.0-chromedriver-118.0-20251001\nTagged selenium/standalone-chrome:118.0-chromedriver-118.0-20251001\nTagged selenium/node-chrome:118.0-20251001\nTagged selenium/standalone-chrome:118.0-20251001\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.36.0/chrome_119.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.36.0 20251001 selenium false chrome true\nTagging images for browser chrome, version 4.36.0, build date 20251001, namespace selenium\nSelenium Grid version -> 4.36.0-20251001\nChrome version -> 119.0.6045.199\nShort Chrome version -> 119.0\nChromeDriver version -> 119.0.6045.105\nShort ChromeDriver version -> 119.0\nTagged selenium/node-chrome:119.0.6045.199-chromedriver-119.0.6045.105-grid-4.36.0-20251001\nTagged selenium/standalone-chrome:119.0.6045.199-chromedriver-119.0.6045.105-grid-4.36.0-20251001\nTagged selenium/node-chrome:119.0.6045.199-chromedriver-119.0.6045.105-20251001\nTagged selenium/standalone-chrome:119.0.6045.199-chromedriver-119.0.6045.105-20251001\nTagged selenium/node-chrome:119.0.6045.199-20251001\nTagged selenium/standalone-chrome:119.0.6045.199-20251001\nTagged selenium/node-chrome:119.0-chromedriver-119.0-grid-4.36.0-20251001\nTagged selenium/standalone-chrome:119.0-chromedriver-119.0-grid-4.36.0-20251001\nTagged selenium/node-chrome:119.0-chromedriver-119.0-20251001\nTagged selenium/standalone-chrome:119.0-chromedriver-119.0-20251001\nTagged selenium/node-chrome:119.0-20251001\nTagged selenium/standalone-chrome:119.0-20251001\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.36.0/chrome_120.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.36.0 20251001 selenium false chrome true\nTagging images for browser chrome, version 4.36.0, build date 20251001, namespace selenium\nSelenium Grid version -> 4.36.0-20251001\nChrome version -> 120.0.6099.224\nShort Chrome version -> 120.0\nChromeDriver version -> 120.0.6099.109\nShort ChromeDriver version -> 120.0\nTagged selenium/node-chrome:120.0.6099.224-chromedriver-120.0.6099.109-grid-4.36.0-20251001\nTagged selenium/standalone-chrome:120.0.6099.224-chromedriver-120.0.6099.109-grid-4.36.0-20251001\nTagged selenium/node-chrome:120.0.6099.224-chromedriver-120.0.6099.109-20251001\nTagged selenium/standalone-chrome:120.0.6099.224-chromedriver-120.0.6099.109-20251001\nTagged selenium/node-chrome:120.0.6099.224-20251001\nTagged selenium/standalone-chrome:120.0.6099.224-20251001\nTagged selenium/node-chrome:120.0-chromedriver-120.0-grid-4.36.0-20251001\nTagged selenium/standalone-chrome:120.0-chromedriver-120.0-grid-4.36.0-20251001\nTagged selenium/node-chrome:120.0-chromedriver-120.0-20251001\nTagged selenium/standalone-chrome:120.0-chromedriver-120.0-20251001\nTagged selenium/node-chrome:120.0-20251001\nTagged selenium/standalone-chrome:120.0-20251001\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.36.0/chrome_121.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.36.0 20251001 selenium false chrome true\nTagging images for browser chrome, version 4.36.0, build date 20251001, namespace selenium\nSelenium Grid version -> 4.36.0-20251001\nChrome version -> 121.0.6167.184\nShort Chrome version -> 121.0\nChromeDriver version -> 121.0.6167.184\nShort ChromeDriver version -> 121.0\nTagged selenium/node-chrome:121.0.6167.184-chromedriver-121.0.6167.184-grid-4.36.0-20251001\nTagged selenium/standalone-chrome:121.0.6167.184-chromedriver-121.0.6167.184-grid-4.36.0-20251001\nTagged selenium/node-chrome:121.0.6167.184-chromedriver-121.0.6167.184-20251001\nTagged selenium/standalone-chrome:121.0.6167.184-chromedriver-121.0.6167.184-20251001\nTagged selenium/node-chrome:121.0.6167.184-20251001\nTagged selenium/standalone-chrome:121.0.6167.184-20251001\nTagged selenium/node-chrome:121.0-chromedriver-121.0-grid-4.36.0-20251001\nTagged selenium/standalone-chrome:121.0-chromedriver-121.0-grid-4.36.0-20251001\nTagged selenium/node-chrome:121.0-chromedriver-121.0-20251001\nTagged selenium/standalone-chrome:121.0-chromedriver-121.0-20251001\nTagged selenium/node-chrome:121.0-20251001\nTagged selenium/standalone-chrome:121.0-20251001\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.36.0/chrome_122.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.36.0 20251001 selenium false chrome true\nTagging images for browser chrome, version 4.36.0, build date 20251001, namespace selenium\nSelenium Grid version -> 4.36.0-20251001\nChrome version -> 122.0.6261.128\nShort Chrome version -> 122.0\nChromeDriver version -> 122.0.6261.128\nShort ChromeDriver version -> 122.0\nTagged selenium/node-chrome:122.0.6261.128-chromedriver-122.0.6261.128-grid-4.36.0-20251001\nTagged selenium/standalone-chrome:122.0.6261.128-chromedriver-122.0.6261.128-grid-4.36.0-20251001\nTagged selenium/node-chrome:122.0.6261.128-chromedriver-122.0.6261.128-20251001\nTagged selenium/standalone-chrome:122.0.6261.128-chromedriver-122.0.6261.128-20251001\nTagged selenium/node-chrome:122.0.6261.128-20251001\nTagged selenium/standalone-chrome:122.0.6261.128-20251001\nTagged selenium/node-chrome:122.0-chromedriver-122.0-grid-4.36.0-20251001\nTagged selenium/standalone-chrome:122.0-chromedriver-122.0-grid-4.36.0-20251001\nTagged selenium/node-chrome:122.0-chromedriver-122.0-20251001\nTagged selenium/standalone-chrome:122.0-chromedriver-122.0-20251001\nTagged selenium/node-chrome:122.0-20251001\nTagged selenium/standalone-chrome:122.0-20251001\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.36.0/chrome_123.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.36.0 20251001 selenium false chrome true\nTagging images for browser chrome, version 4.36.0, build date 20251001, namespace selenium\nSelenium Grid version -> 4.36.0-20251001\nChrome version -> 123.0.6312.122\nShort Chrome version -> 123.0\nChromeDriver version -> 123.0.6312.122\nShort ChromeDriver version -> 123.0\nTagged selenium/node-chrome:123.0.6312.122-chromedriver-123.0.6312.122-grid-4.36.0-20251001\nTagged selenium/standalone-chrome:123.0.6312.122-chromedriver-123.0.6312.122-grid-4.36.0-20251001\nTagged selenium/node-chrome:123.0.6312.122-chromedriver-123.0.6312.122-20251001\nTagged selenium/standalone-chrome:123.0.6312.122-chromedriver-123.0.6312.122-20251001\nTagged selenium/node-chrome:123.0.6312.122-20251001\nTagged selenium/standalone-chrome:123.0.6312.122-20251001\nTagged selenium/node-chrome:123.0-chromedriver-123.0-grid-4.36.0-20251001\nTagged selenium/standalone-chrome:123.0-chromedriver-123.0-grid-4.36.0-20251001\nTagged selenium/node-chrome:123.0-chromedriver-123.0-20251001\nTagged selenium/standalone-chrome:123.0-chromedriver-123.0-20251001\nTagged selenium/node-chrome:123.0-20251001\nTagged selenium/standalone-chrome:123.0-20251001\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.36.0/chrome_124.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.36.0 20251001 selenium false chrome true\nTagging images for browser chrome, version 4.36.0, build date 20251001, namespace selenium\nSelenium Grid version -> 4.36.0-20251001\nChrome version -> 124.0.6367.207\nShort Chrome version -> 124.0\nChromeDriver version -> 124.0.6367.207\nShort ChromeDriver version -> 124.0\nTagged selenium/node-chrome:124.0.6367.207-chromedriver-124.0.6367.207-grid-4.36.0-20251001\nTagged selenium/standalone-chrome:124.0.6367.207-chromedriver-124.0.6367.207-grid-4.36.0-20251001\nTagged selenium/node-chrome:124.0.6367.207-chromedriver-124.0.6367.207-20251001\nTagged selenium/standalone-chrome:124.0.6367.207-chromedriver-124.0.6367.207-20251001\nTagged selenium/node-chrome:124.0.6367.207-20251001\nTagged selenium/standalone-chrome:124.0.6367.207-20251001\nTagged selenium/node-chrome:124.0-chromedriver-124.0-grid-4.36.0-20251001\nTagged selenium/standalone-chrome:124.0-chromedriver-124.0-grid-4.36.0-20251001\nTagged selenium/node-chrome:124.0-chromedriver-124.0-20251001\nTagged selenium/standalone-chrome:124.0-chromedriver-124.0-20251001\nTagged selenium/node-chrome:124.0-20251001\nTagged selenium/standalone-chrome:124.0-20251001\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.36.0/chrome_125.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.36.0 20251001 selenium false chrome true\nTagging images for browser chrome, version 4.36.0, build date 20251001, namespace selenium\nSelenium Grid version -> 4.36.0-20251001\nChrome version -> 125.0.6422.141\nShort Chrome version -> 125.0\nChromeDriver version -> 125.0.6422.141\nShort ChromeDriver version -> 125.0\nTagged selenium/node-chrome:125.0.6422.141-chromedriver-125.0.6422.141-grid-4.36.0-20251001\nTagged selenium/standalone-chrome:125.0.6422.141-chromedriver-125.0.6422.141-grid-4.36.0-20251001\nTagged selenium/node-chrome:125.0.6422.141-chromedriver-125.0.6422.141-20251001\nTagged selenium/standalone-chrome:125.0.6422.141-chromedriver-125.0.6422.141-20251001\nTagged selenium/node-chrome:125.0.6422.141-20251001\nTagged selenium/standalone-chrome:125.0.6422.141-20251001\nTagged selenium/node-chrome:125.0-chromedriver-125.0-grid-4.36.0-20251001\nTagged selenium/standalone-chrome:125.0-chromedriver-125.0-grid-4.36.0-20251001\nTagged selenium/node-chrome:125.0-chromedriver-125.0-20251001\nTagged selenium/standalone-chrome:125.0-chromedriver-125.0-20251001\nTagged selenium/node-chrome:125.0-20251001\nTagged selenium/standalone-chrome:125.0-20251001\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.36.0/chrome_126.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.36.0 20251001 selenium false chrome true\nTagging images for browser chrome, version 4.36.0, build date 20251001, namespace selenium\nSelenium Grid version -> 4.36.0-20251001\nChrome version -> 126.0.6478.182\nShort Chrome version -> 126.0\nChromeDriver version -> 126.0.6478.182\nShort ChromeDriver version -> 126.0\nTagged selenium/node-chrome:126.0.6478.182-chromedriver-126.0.6478.182-grid-4.36.0-20251001\nTagged selenium/standalone-chrome:126.0.6478.182-chromedriver-126.0.6478.182-grid-4.36.0-20251001\nTagged selenium/node-chrome:126.0.6478.182-chromedriver-126.0.6478.182-20251001\nTagged selenium/standalone-chrome:126.0.6478.182-chromedriver-126.0.6478.182-20251001\nTagged selenium/node-chrome:126.0.6478.182-20251001\nTagged selenium/standalone-chrome:126.0.6478.182-20251001\nTagged selenium/node-chrome:126.0-chromedriver-126.0-grid-4.36.0-20251001\nTagged selenium/standalone-chrome:126.0-chromedriver-126.0-grid-4.36.0-20251001\nTagged selenium/node-chrome:126.0-chromedriver-126.0-20251001\nTagged selenium/standalone-chrome:126.0-chromedriver-126.0-20251001\nTagged selenium/node-chrome:126.0-20251001\nTagged selenium/standalone-chrome:126.0-20251001\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.36.0/chrome_127.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.36.0 20251001 selenium false chrome true\nTagging images for browser chrome, version 4.36.0, build date 20251001, namespace selenium\nSelenium Grid version -> 4.36.0-20251001\nChrome version -> 127.0.6533.119\nShort Chrome version -> 127.0\nChromeDriver version -> 127.0.6533.119\nShort ChromeDriver version -> 127.0\nTagged selenium/node-chrome:127.0.6533.119-chromedriver-127.0.6533.119-grid-4.36.0-20251001\nTagged selenium/standalone-chrome:127.0.6533.119-chromedriver-127.0.6533.119-grid-4.36.0-20251001\nTagged selenium/node-chrome:127.0.6533.119-chromedriver-127.0.6533.119-20251001\nTagged selenium/standalone-chrome:127.0.6533.119-chromedriver-127.0.6533.119-20251001\nTagged selenium/node-chrome:127.0.6533.119-20251001\nTagged selenium/standalone-chrome:127.0.6533.119-20251001\nTagged selenium/node-chrome:127.0-chromedriver-127.0-grid-4.36.0-20251001\nTagged selenium/standalone-chrome:127.0-chromedriver-127.0-grid-4.36.0-20251001\nTagged selenium/node-chrome:127.0-chromedriver-127.0-20251001\nTagged selenium/standalone-chrome:127.0-chromedriver-127.0-20251001\nTagged selenium/node-chrome:127.0-20251001\nTagged selenium/standalone-chrome:127.0-20251001\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.36.0/chrome_128.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.36.0 20251001 selenium false chrome true\nTagging images for browser chrome, version 4.36.0, build date 20251001, namespace selenium\nSelenium Grid version -> 4.36.0-20251001\nChrome version -> 128.0.6613.137\nShort Chrome version -> 128.0\nChromeDriver version -> 128.0.6613.137\nShort ChromeDriver version -> 128.0\nTagged selenium/node-chrome:128.0.6613.137-chromedriver-128.0.6613.137-grid-4.36.0-20251001\nTagged selenium/standalone-chrome:128.0.6613.137-chromedriver-128.0.6613.137-grid-4.36.0-20251001\nTagged selenium/node-chrome:128.0.6613.137-chromedriver-128.0.6613.137-20251001\nTagged selenium/standalone-chrome:128.0.6613.137-chromedriver-128.0.6613.137-20251001\nTagged selenium/node-chrome:128.0.6613.137-20251001\nTagged selenium/standalone-chrome:128.0.6613.137-20251001\nTagged selenium/node-chrome:128.0-chromedriver-128.0-grid-4.36.0-20251001\nTagged selenium/standalone-chrome:128.0-chromedriver-128.0-grid-4.36.0-20251001\nTagged selenium/node-chrome:128.0-chromedriver-128.0-20251001\nTagged selenium/standalone-chrome:128.0-chromedriver-128.0-20251001\nTagged selenium/node-chrome:128.0-20251001\nTagged selenium/standalone-chrome:128.0-20251001\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.36.0/chrome_129.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.36.0 20251001 selenium false chrome true\nTagging images for browser chrome, version 4.36.0, build date 20251001, namespace selenium\nSelenium Grid version -> 4.36.0-20251001\nChrome version -> 129.0.6668.100\nShort Chrome version -> 129.0\nChromeDriver version -> 129.0.6668.100\nShort ChromeDriver version -> 129.0\nTagged selenium/node-chrome:129.0.6668.100-chromedriver-129.0.6668.100-grid-4.36.0-20251001\nTagged selenium/standalone-chrome:129.0.6668.100-chromedriver-129.0.6668.100-grid-4.36.0-20251001\nTagged selenium/node-chrome:129.0.6668.100-chromedriver-129.0.6668.100-20251001\nTagged selenium/standalone-chrome:129.0.6668.100-chromedriver-129.0.6668.100-20251001\nTagged selenium/node-chrome:129.0.6668.100-20251001\nTagged selenium/standalone-chrome:129.0.6668.100-20251001\nTagged selenium/node-chrome:129.0-chromedriver-129.0-grid-4.36.0-20251001\nTagged selenium/standalone-chrome:129.0-chromedriver-129.0-grid-4.36.0-20251001\nTagged selenium/node-chrome:129.0-chromedriver-129.0-20251001\nTagged selenium/standalone-chrome:129.0-chromedriver-129.0-20251001\nTagged selenium/node-chrome:129.0-20251001\nTagged selenium/standalone-chrome:129.0-20251001\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.36.0/chrome_130.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.36.0 20251001 selenium false chrome true\nTagging images for browser chrome, version 4.36.0, build date 20251001, namespace selenium\nSelenium Grid version -> 4.36.0-20251001\nChrome version -> 130.0.6723.116\nShort Chrome version -> 130.0\nChromeDriver version -> 130.0.6723.116\nShort ChromeDriver version -> 130.0\nTagged selenium/node-chrome:130.0.6723.116-chromedriver-130.0.6723.116-grid-4.36.0-20251001\nTagged selenium/standalone-chrome:130.0.6723.116-chromedriver-130.0.6723.116-grid-4.36.0-20251001\nTagged selenium/node-chrome:130.0.6723.116-chromedriver-130.0.6723.116-20251001\nTagged selenium/standalone-chrome:130.0.6723.116-chromedriver-130.0.6723.116-20251001\nTagged selenium/node-chrome:130.0.6723.116-20251001\nTagged selenium/standalone-chrome:130.0.6723.116-20251001\nTagged selenium/node-chrome:130.0-chromedriver-130.0-grid-4.36.0-20251001\nTagged selenium/standalone-chrome:130.0-chromedriver-130.0-grid-4.36.0-20251001\nTagged selenium/node-chrome:130.0-chromedriver-130.0-20251001\nTagged selenium/standalone-chrome:130.0-chromedriver-130.0-20251001\nTagged selenium/node-chrome:130.0-20251001\nTagged selenium/standalone-chrome:130.0-20251001\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.36.0/chrome_131.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.36.0 20251001 selenium false chrome true\nTagging images for browser chrome, version 4.36.0, build date 20251001, namespace selenium\nSelenium Grid version -> 4.36.0-20251001\nChrome version -> 131.0.6778.264\nShort Chrome version -> 131.0\nChromeDriver version -> 131.0.6778.264\nShort ChromeDriver version -> 131.0\nTagged selenium/node-chrome:131.0.6778.264-chromedriver-131.0.6778.264-grid-4.36.0-20251001\nTagged selenium/standalone-chrome:131.0.6778.264-chromedriver-131.0.6778.264-grid-4.36.0-20251001\nTagged selenium/node-chrome:131.0.6778.264-chromedriver-131.0.6778.264-20251001\nTagged selenium/standalone-chrome:131.0.6778.264-chromedriver-131.0.6778.264-20251001\nTagged selenium/node-chrome:131.0.6778.264-20251001\nTagged selenium/standalone-chrome:131.0.6778.264-20251001\nTagged selenium/node-chrome:131.0-chromedriver-131.0-grid-4.36.0-20251001\nTagged selenium/standalone-chrome:131.0-chromedriver-131.0-grid-4.36.0-20251001\nTagged selenium/node-chrome:131.0-chromedriver-131.0-20251001\nTagged selenium/standalone-chrome:131.0-chromedriver-131.0-20251001\nTagged selenium/node-chrome:131.0-20251001\nTagged selenium/standalone-chrome:131.0-20251001\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.36.0/chrome_132.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.36.0 20251001 selenium false chrome true\nTagging images for browser chrome, version 4.36.0, build date 20251001, namespace selenium\nSelenium Grid version -> 4.36.0-20251001\nChrome version -> 132.0.6834.159\nShort Chrome version -> 132.0\nChromeDriver version -> 132.0.6834.159\nShort ChromeDriver version -> 132.0\nTagged selenium/node-chrome:132.0.6834.159-chromedriver-132.0.6834.159-grid-4.36.0-20251001\nTagged selenium/standalone-chrome:132.0.6834.159-chromedriver-132.0.6834.159-grid-4.36.0-20251001\nTagged selenium/node-chrome:132.0.6834.159-chromedriver-132.0.6834.159-20251001\nTagged selenium/standalone-chrome:132.0.6834.159-chromedriver-132.0.6834.159-20251001\nTagged selenium/node-chrome:132.0.6834.159-20251001\nTagged selenium/standalone-chrome:132.0.6834.159-20251001\nTagged selenium/node-chrome:132.0-chromedriver-132.0-grid-4.36.0-20251001\nTagged selenium/standalone-chrome:132.0-chromedriver-132.0-grid-4.36.0-20251001\nTagged selenium/node-chrome:132.0-chromedriver-132.0-20251001\nTagged selenium/standalone-chrome:132.0-chromedriver-132.0-20251001\nTagged selenium/node-chrome:132.0-20251001\nTagged selenium/standalone-chrome:132.0-20251001\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.36.0/chrome_133.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.36.0 20251001 selenium false chrome true\nTagging images for browser chrome, version 4.36.0, build date 20251001, namespace selenium\nSelenium Grid version -> 4.36.0-20251001\nChrome version -> 133.0.6943.141\nShort Chrome version -> 133.0\nChromeDriver version -> 133.0.6943.141\nShort ChromeDriver version -> 133.0\nTagged selenium/node-chrome:133.0.6943.141-chromedriver-133.0.6943.141-grid-4.36.0-20251001\nTagged selenium/standalone-chrome:133.0.6943.141-chromedriver-133.0.6943.141-grid-4.36.0-20251001\nTagged selenium/node-chrome:133.0.6943.141-chromedriver-133.0.6943.141-20251001\nTagged selenium/standalone-chrome:133.0.6943.141-chromedriver-133.0.6943.141-20251001\nTagged selenium/node-chrome:133.0.6943.141-20251001\nTagged selenium/standalone-chrome:133.0.6943.141-20251001\nTagged selenium/node-chrome:133.0-chromedriver-133.0-grid-4.36.0-20251001\nTagged selenium/standalone-chrome:133.0-chromedriver-133.0-grid-4.36.0-20251001\nTagged selenium/node-chrome:133.0-chromedriver-133.0-20251001\nTagged selenium/standalone-chrome:133.0-chromedriver-133.0-20251001\nTagged selenium/node-chrome:133.0-20251001\nTagged selenium/standalone-chrome:133.0-20251001\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.36.0/chrome_134.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.36.0 20251001 selenium false chrome true\nTagging images for browser chrome, version 4.36.0, build date 20251001, namespace selenium\nSelenium Grid version -> 4.36.0-20251001\nChrome version -> 134.0.6998.165\nShort Chrome version -> 134.0\nChromeDriver version -> 134.0.6998.165\nShort ChromeDriver version -> 134.0\nTagged selenium/node-chrome:134.0.6998.165-chromedriver-134.0.6998.165-grid-4.36.0-20251001\nTagged selenium/standalone-chrome:134.0.6998.165-chromedriver-134.0.6998.165-grid-4.36.0-20251001\nTagged selenium/node-chrome:134.0.6998.165-chromedriver-134.0.6998.165-20251001\nTagged selenium/standalone-chrome:134.0.6998.165-chromedriver-134.0.6998.165-20251001\nTagged selenium/node-chrome:134.0.6998.165-20251001\nTagged selenium/standalone-chrome:134.0.6998.165-20251001\nTagged selenium/node-chrome:134.0-chromedriver-134.0-grid-4.36.0-20251001\nTagged selenium/standalone-chrome:134.0-chromedriver-134.0-grid-4.36.0-20251001\nTagged selenium/node-chrome:134.0-chromedriver-134.0-20251001\nTagged selenium/standalone-chrome:134.0-chromedriver-134.0-20251001\nTagged selenium/node-chrome:134.0-20251001\nTagged selenium/standalone-chrome:134.0-20251001\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.36.0/chrome_135.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.36.0 20251001 selenium false chrome true\nTagging images for browser chrome, version 4.36.0, build date 20251001, namespace selenium\nSelenium Grid version -> 4.36.0-20251001\nChrome version -> 135.0.7049.114\nShort Chrome version -> 135.0\nChromeDriver version -> 135.0.7049.114\nShort ChromeDriver version -> 135.0\nTagged selenium/node-chrome:135.0.7049.114-chromedriver-135.0.7049.114-grid-4.36.0-20251001\nTagged selenium/standalone-chrome:135.0.7049.114-chromedriver-135.0.7049.114-grid-4.36.0-20251001\nTagged selenium/node-chrome:135.0.7049.114-chromedriver-135.0.7049.114-20251001\nTagged selenium/standalone-chrome:135.0.7049.114-chromedriver-135.0.7049.114-20251001\nTagged selenium/node-chrome:135.0.7049.114-20251001\nTagged selenium/standalone-chrome:135.0.7049.114-20251001\nTagged selenium/node-chrome:135.0-chromedriver-135.0-grid-4.36.0-20251001\nTagged selenium/standalone-chrome:135.0-chromedriver-135.0-grid-4.36.0-20251001\nTagged selenium/node-chrome:135.0-chromedriver-135.0-20251001\nTagged selenium/standalone-chrome:135.0-chromedriver-135.0-20251001\nTagged selenium/node-chrome:135.0-20251001\nTagged selenium/standalone-chrome:135.0-20251001\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.36.0/chrome_136.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.36.0 20251001 selenium false chrome true\nTagging images for browser chrome, version 4.36.0, build date 20251001, namespace selenium\nSelenium Grid version -> 4.36.0-20251001\nChrome version -> 136.0.7103.113\nShort Chrome version -> 136.0\nChromeDriver version -> 136.0.7103.113\nShort ChromeDriver version -> 136.0\nTagged selenium/node-chrome:136.0.7103.113-chromedriver-136.0.7103.113-grid-4.36.0-20251001\nTagged selenium/standalone-chrome:136.0.7103.113-chromedriver-136.0.7103.113-grid-4.36.0-20251001\nTagged selenium/node-chrome:136.0.7103.113-chromedriver-136.0.7103.113-20251001\nTagged selenium/standalone-chrome:136.0.7103.113-chromedriver-136.0.7103.113-20251001\nTagged selenium/node-chrome:136.0.7103.113-20251001\nTagged selenium/standalone-chrome:136.0.7103.113-20251001\nTagged selenium/node-chrome:136.0-chromedriver-136.0-grid-4.36.0-20251001\nTagged selenium/standalone-chrome:136.0-chromedriver-136.0-grid-4.36.0-20251001\nTagged selenium/node-chrome:136.0-chromedriver-136.0-20251001\nTagged selenium/standalone-chrome:136.0-chromedriver-136.0-20251001\nTagged selenium/node-chrome:136.0-20251001\nTagged selenium/standalone-chrome:136.0-20251001\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.36.0/chrome_137.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.36.0 20251001 selenium false chrome true\nTagging images for browser chrome, version 4.36.0, build date 20251001, namespace selenium\nSelenium Grid version -> 4.36.0-20251001\nChrome version -> 137.0.7151.119\nShort Chrome version -> 137.0\nChromeDriver version -> 137.0.7151.119\nShort ChromeDriver version -> 137.0\nTagged selenium/node-chrome:137.0.7151.119-chromedriver-137.0.7151.119-grid-4.36.0-20251001\nTagged selenium/standalone-chrome:137.0.7151.119-chromedriver-137.0.7151.119-grid-4.36.0-20251001\nTagged selenium/node-chrome:137.0.7151.119-chromedriver-137.0.7151.119-20251001\nTagged selenium/standalone-chrome:137.0.7151.119-chromedriver-137.0.7151.119-20251001\nTagged selenium/node-chrome:137.0.7151.119-20251001\nTagged selenium/standalone-chrome:137.0.7151.119-20251001\nTagged selenium/node-chrome:137.0-chromedriver-137.0-grid-4.36.0-20251001\nTagged selenium/standalone-chrome:137.0-chromedriver-137.0-grid-4.36.0-20251001\nTagged selenium/node-chrome:137.0-chromedriver-137.0-20251001\nTagged selenium/standalone-chrome:137.0-chromedriver-137.0-20251001\nTagged selenium/node-chrome:137.0-20251001\nTagged selenium/standalone-chrome:137.0-20251001\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.36.0/chrome_138.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.36.0 20251001 selenium false chrome true\nTagging images for browser chrome, version 4.36.0, build date 20251001, namespace selenium\nSelenium Grid version -> 4.36.0-20251001\nChrome version -> 138.0.7204.183\nShort Chrome version -> 138.0\nChromeDriver version -> 138.0.7204.183\nShort ChromeDriver version -> 138.0\nTagged selenium/node-chrome:138.0.7204.183-chromedriver-138.0.7204.183-grid-4.36.0-20251001\nTagged selenium/standalone-chrome:138.0.7204.183-chromedriver-138.0.7204.183-grid-4.36.0-20251001\nTagged selenium/node-chrome:138.0.7204.183-chromedriver-138.0.7204.183-20251001\nTagged selenium/standalone-chrome:138.0.7204.183-chromedriver-138.0.7204.183-20251001\nTagged selenium/node-chrome:138.0.7204.183-20251001\nTagged selenium/standalone-chrome:138.0.7204.183-20251001\nTagged selenium/node-chrome:138.0-chromedriver-138.0-grid-4.36.0-20251001\nTagged selenium/standalone-chrome:138.0-chromedriver-138.0-grid-4.36.0-20251001\nTagged selenium/node-chrome:138.0-chromedriver-138.0-20251001\nTagged selenium/standalone-chrome:138.0-chromedriver-138.0-20251001\nTagged selenium/node-chrome:138.0-20251001\nTagged selenium/standalone-chrome:138.0-20251001\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.36.0/chrome_139.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.36.0 20251001 selenium false chrome true\nTagging images for browser chrome, version 4.36.0, build date 20251001, namespace selenium\nSelenium Grid version -> 4.36.0-20251001\nChrome version -> 139.0.7258.154\nShort Chrome version -> 139.0\nChromeDriver version -> 139.0.7258.154\nShort ChromeDriver version -> 139.0\nTagged selenium/node-chrome:139.0.7258.154-chromedriver-139.0.7258.154-grid-4.36.0-20251001\nTagged selenium/standalone-chrome:139.0.7258.154-chromedriver-139.0.7258.154-grid-4.36.0-20251001\nTagged selenium/node-chrome:139.0.7258.154-chromedriver-139.0.7258.154-20251001\nTagged selenium/standalone-chrome:139.0.7258.154-chromedriver-139.0.7258.154-20251001\nTagged selenium/node-chrome:139.0.7258.154-20251001\nTagged selenium/standalone-chrome:139.0.7258.154-20251001\nTagged selenium/node-chrome:139.0-chromedriver-139.0-grid-4.36.0-20251001\nTagged selenium/standalone-chrome:139.0-chromedriver-139.0-grid-4.36.0-20251001\nTagged selenium/node-chrome:139.0-chromedriver-139.0-20251001\nTagged selenium/standalone-chrome:139.0-chromedriver-139.0-20251001\nTagged selenium/node-chrome:139.0-20251001\nTagged selenium/standalone-chrome:139.0-20251001\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.36.0/chrome_140.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.36.0 20251001 selenium false chrome true\nTagging images for browser chrome, version 4.36.0, build date 20251001, namespace selenium\nSelenium Grid version -> 4.36.0-20251001\nChrome version -> 140.0.7339.207\nShort Chrome version -> 140.0\nChromeDriver version -> 140.0.7339.207\nShort ChromeDriver version -> 140.0\nTagged selenium/node-chrome:140.0.7339.207-chromedriver-140.0.7339.207-grid-4.36.0-20251001\nTagged selenium/standalone-chrome:140.0.7339.207-chromedriver-140.0.7339.207-grid-4.36.0-20251001\nTagged selenium/node-chrome:140.0.7339.207-chromedriver-140.0.7339.207-20251001\nTagged selenium/standalone-chrome:140.0.7339.207-chromedriver-140.0.7339.207-20251001\nTagged selenium/node-chrome:140.0.7339.207-20251001\nTagged selenium/standalone-chrome:140.0.7339.207-20251001\nTagged selenium/node-chrome:140.0-chromedriver-140.0-grid-4.36.0-20251001\nTagged selenium/standalone-chrome:140.0-chromedriver-140.0-grid-4.36.0-20251001\nTagged selenium/node-chrome:140.0-chromedriver-140.0-20251001\nTagged selenium/standalone-chrome:140.0-chromedriver-140.0-20251001\nTagged selenium/node-chrome:140.0-20251001\nTagged selenium/standalone-chrome:140.0-20251001\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.36.0/chrome_95.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.36.0 20251001 selenium false chrome true\nTagging images for browser chrome, version 4.36.0, build date 20251001, namespace selenium\nSelenium Grid version -> 4.36.0-20251001\nChrome version -> 95.0.4638.69\nShort Chrome version -> 95.0\nChromeDriver version -> 95.0.4638.69\nShort ChromeDriver version -> 95.0\nTagged selenium/node-chrome:95.0.4638.69-chromedriver-95.0.4638.69-grid-4.36.0-20251001\nTagged selenium/standalone-chrome:95.0.4638.69-chromedriver-95.0.4638.69-grid-4.36.0-20251001\nTagged selenium/node-chrome:95.0.4638.69-chromedriver-95.0.4638.69-20251001\nTagged selenium/standalone-chrome:95.0.4638.69-chromedriver-95.0.4638.69-20251001\nTagged selenium/node-chrome:95.0.4638.69-20251001\nTagged selenium/standalone-chrome:95.0.4638.69-20251001\nTagged selenium/node-chrome:95.0-chromedriver-95.0-grid-4.36.0-20251001\nTagged selenium/standalone-chrome:95.0-chromedriver-95.0-grid-4.36.0-20251001\nTagged selenium/node-chrome:95.0-chromedriver-95.0-20251001\nTagged selenium/standalone-chrome:95.0-chromedriver-95.0-20251001\nTagged selenium/node-chrome:95.0-20251001\nTagged selenium/standalone-chrome:95.0-20251001\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.36.0/chrome_96.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.36.0 20251001 selenium false chrome true\nTagging images for browser chrome, version 4.36.0, build date 20251001, namespace selenium\nSelenium Grid version -> 4.36.0-20251001\nChrome version -> 96.0.4664.110\nShort Chrome version -> 96.0\nChromeDriver version -> 96.0.4664.45\nShort ChromeDriver version -> 96.0\nTagged selenium/node-chrome:96.0.4664.110-chromedriver-96.0.4664.45-grid-4.36.0-20251001\nTagged selenium/standalone-chrome:96.0.4664.110-chromedriver-96.0.4664.45-grid-4.36.0-20251001\nTagged selenium/node-chrome:96.0.4664.110-chromedriver-96.0.4664.45-20251001\nTagged selenium/standalone-chrome:96.0.4664.110-chromedriver-96.0.4664.45-20251001\nTagged selenium/node-chrome:96.0.4664.110-20251001\nTagged selenium/standalone-chrome:96.0.4664.110-20251001\nTagged selenium/node-chrome:96.0-chromedriver-96.0-grid-4.36.0-20251001\nTagged selenium/standalone-chrome:96.0-chromedriver-96.0-grid-4.36.0-20251001\nTagged selenium/node-chrome:96.0-chromedriver-96.0-20251001\nTagged selenium/standalone-chrome:96.0-chromedriver-96.0-20251001\nTagged selenium/node-chrome:96.0-20251001\nTagged selenium/standalone-chrome:96.0-20251001\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.36.0/chrome_97.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.36.0 20251001 selenium false chrome true\nTagging images for browser chrome, version 4.36.0, build date 20251001, namespace selenium\nSelenium Grid version -> 4.36.0-20251001\nChrome version -> 97.0.4692.99\nShort Chrome version -> 97.0\nChromeDriver version -> 97.0.4692.71\nShort ChromeDriver version -> 97.0\nTagged selenium/node-chrome:97.0.4692.99-chromedriver-97.0.4692.71-grid-4.36.0-20251001\nTagged selenium/standalone-chrome:97.0.4692.99-chromedriver-97.0.4692.71-grid-4.36.0-20251001\nTagged selenium/node-chrome:97.0.4692.99-chromedriver-97.0.4692.71-20251001\nTagged selenium/standalone-chrome:97.0.4692.99-chromedriver-97.0.4692.71-20251001\nTagged selenium/node-chrome:97.0.4692.99-20251001\nTagged selenium/standalone-chrome:97.0.4692.99-20251001\nTagged selenium/node-chrome:97.0-chromedriver-97.0-grid-4.36.0-20251001\nTagged selenium/standalone-chrome:97.0-chromedriver-97.0-grid-4.36.0-20251001\nTagged selenium/node-chrome:97.0-chromedriver-97.0-20251001\nTagged selenium/standalone-chrome:97.0-chromedriver-97.0-20251001\nTagged selenium/node-chrome:97.0-20251001\nTagged selenium/standalone-chrome:97.0-20251001\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.36.0/chrome_98.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.36.0 20251001 selenium false chrome true\nTagging images for browser chrome, version 4.36.0, build date 20251001, namespace selenium\nSelenium Grid version -> 4.36.0-20251001\nChrome version -> 98.0.4758.102\nShort Chrome version -> 98.0\nChromeDriver version -> 98.0.4758.102\nShort ChromeDriver version -> 98.0\nTagged selenium/node-chrome:98.0.4758.102-chromedriver-98.0.4758.102-grid-4.36.0-20251001\nTagged selenium/standalone-chrome:98.0.4758.102-chromedriver-98.0.4758.102-grid-4.36.0-20251001\nTagged selenium/node-chrome:98.0.4758.102-chromedriver-98.0.4758.102-20251001\nTagged selenium/standalone-chrome:98.0.4758.102-chromedriver-98.0.4758.102-20251001\nTagged selenium/node-chrome:98.0.4758.102-20251001\nTagged selenium/standalone-chrome:98.0.4758.102-20251001\nTagged selenium/node-chrome:98.0-chromedriver-98.0-grid-4.36.0-20251001\nTagged selenium/standalone-chrome:98.0-chromedriver-98.0-grid-4.36.0-20251001\nTagged selenium/node-chrome:98.0-chromedriver-98.0-20251001\nTagged selenium/standalone-chrome:98.0-chromedriver-98.0-20251001\nTagged selenium/node-chrome:98.0-20251001\nTagged selenium/standalone-chrome:98.0-20251001\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.36.0/chrome_99.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.36.0 20251001 selenium false chrome true\nTagging images for browser chrome, version 4.36.0, build date 20251001, namespace selenium\nSelenium Grid version -> 4.36.0-20251001\nChrome version -> 99.0.4844.84\nShort Chrome version -> 99.0\nChromeDriver version -> 99.0.4844.51\nShort ChromeDriver version -> 99.0\nTagged selenium/node-chrome:99.0.4844.84-chromedriver-99.0.4844.51-grid-4.36.0-20251001\nTagged selenium/standalone-chrome:99.0.4844.84-chromedriver-99.0.4844.51-grid-4.36.0-20251001\nTagged selenium/node-chrome:99.0.4844.84-chromedriver-99.0.4844.51-20251001\nTagged selenium/standalone-chrome:99.0.4844.84-chromedriver-99.0.4844.51-20251001\nTagged selenium/node-chrome:99.0.4844.84-20251001\nTagged selenium/standalone-chrome:99.0.4844.84-20251001\nTagged selenium/node-chrome:99.0-chromedriver-99.0-grid-4.36.0-20251001\nTagged selenium/standalone-chrome:99.0-chromedriver-99.0-grid-4.36.0-20251001\nTagged selenium/node-chrome:99.0-chromedriver-99.0-20251001\nTagged selenium/standalone-chrome:99.0-chromedriver-99.0-20251001\nTagged selenium/node-chrome:99.0-20251001\nTagged selenium/standalone-chrome:99.0-20251001\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.36.0/edge_114.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.36.0 20251001 selenium false edge true\nTagging images for browser edge, version 4.36.0, build date 20251001, namespace selenium\nSelenium Grid version -> 4.36.0-20251001\nEdge version -> 114.0.1823.82\nShort Edge version -> 114.0\nEdgeDriver version -> 114.0.1823.82\nShort EdgeDriver version -> 114.0\nTagged selenium/node-edge:114.0.1823.82-edgedriver-114.0.1823.82-grid-4.36.0-20251001\nTagged selenium/standalone-edge:114.0.1823.82-edgedriver-114.0.1823.82-grid-4.36.0-20251001\nTagged selenium/node-edge:114.0.1823.82-edgedriver-114.0.1823.82-20251001\nTagged selenium/standalone-edge:114.0.1823.82-edgedriver-114.0.1823.82-20251001\nTagged selenium/node-edge:114.0.1823.82-20251001\nTagged selenium/standalone-edge:114.0.1823.82-20251001\nTagged selenium/node-edge:114.0-edgedriver-114.0-grid-4.36.0-20251001\nTagged selenium/standalone-edge:114.0-edgedriver-114.0-grid-4.36.0-20251001\nTagged selenium/node-edge:114.0-edgedriver-114.0-20251001\nTagged selenium/standalone-edge:114.0-edgedriver-114.0-20251001\nTagged selenium/node-edge:114.0-20251001\nTagged selenium/standalone-edge:114.0-20251001\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.36.0/edge_115.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.36.0 20251001 selenium false edge true\nTagging images for browser edge, version 4.36.0, build date 20251001, namespace selenium\nSelenium Grid version -> 4.36.0-20251001\nEdge version -> 115.0.1901.203\nShort Edge version -> 115.0\nEdgeDriver version -> 115.0.1901.203\nShort EdgeDriver version -> 115.0\nTagged selenium/node-edge:115.0.1901.203-edgedriver-115.0.1901.203-grid-4.36.0-20251001\nTagged selenium/standalone-edge:115.0.1901.203-edgedriver-115.0.1901.203-grid-4.36.0-20251001\nTagged selenium/node-edge:115.0.1901.203-edgedriver-115.0.1901.203-20251001\nTagged selenium/standalone-edge:115.0.1901.203-edgedriver-115.0.1901.203-20251001\nTagged selenium/node-edge:115.0.1901.203-20251001\nTagged selenium/standalone-edge:115.0.1901.203-20251001\nTagged selenium/node-edge:115.0-edgedriver-115.0-grid-4.36.0-20251001\nTagged selenium/standalone-edge:115.0-edgedriver-115.0-grid-4.36.0-20251001\nTagged selenium/node-edge:115.0-edgedriver-115.0-20251001\nTagged selenium/standalone-edge:115.0-edgedriver-115.0-20251001\nTagged selenium/node-edge:115.0-20251001\nTagged selenium/standalone-edge:115.0-20251001\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.36.0/edge_116.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.36.0 20251001 selenium false edge true\nTagging images for browser edge, version 4.36.0, build date 20251001, namespace selenium\nSelenium Grid version -> 4.36.0-20251001\nEdge version -> 116.0.1938.81\nShort Edge version -> 116.0\nEdgeDriver version -> 116.0.1938.81\nShort EdgeDriver version -> 116.0\nTagged selenium/node-edge:116.0.1938.81-edgedriver-116.0.1938.81-grid-4.36.0-20251001\nTagged selenium/standalone-edge:116.0.1938.81-edgedriver-116.0.1938.81-grid-4.36.0-20251001\nTagged selenium/node-edge:116.0.1938.81-edgedriver-116.0.1938.81-20251001\nTagged selenium/standalone-edge:116.0.1938.81-edgedriver-116.0.1938.81-20251001\nTagged selenium/node-edge:116.0.1938.81-20251001\nTagged selenium/standalone-edge:116.0.1938.81-20251001\nTagged selenium/node-edge:116.0-edgedriver-116.0-grid-4.36.0-20251001\nTagged selenium/standalone-edge:116.0-edgedriver-116.0-grid-4.36.0-20251001\nTagged selenium/node-edge:116.0-edgedriver-116.0-20251001\nTagged selenium/standalone-edge:116.0-edgedriver-116.0-20251001\nTagged selenium/node-edge:116.0-20251001\nTagged selenium/standalone-edge:116.0-20251001\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.36.0/edge_117.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.36.0 20251001 selenium false edge true\nTagging images for browser edge, version 4.36.0, build date 20251001, namespace selenium\nSelenium Grid version -> 4.36.0-20251001\nEdge version -> 117.0.2045.55\nShort Edge version -> 117.0\nEdgeDriver version -> 117.0.2045.55\nShort EdgeDriver version -> 117.0\nTagged selenium/node-edge:117.0.2045.55-edgedriver-117.0.2045.55-grid-4.36.0-20251001\nTagged selenium/standalone-edge:117.0.2045.55-edgedriver-117.0.2045.55-grid-4.36.0-20251001\nTagged selenium/node-edge:117.0.2045.55-edgedriver-117.0.2045.55-20251001\nTagged selenium/standalone-edge:117.0.2045.55-edgedriver-117.0.2045.55-20251001\nTagged selenium/node-edge:117.0.2045.55-20251001\nTagged selenium/standalone-edge:117.0.2045.55-20251001\nTagged selenium/node-edge:117.0-edgedriver-117.0-grid-4.36.0-20251001\nTagged selenium/standalone-edge:117.0-edgedriver-117.0-grid-4.36.0-20251001\nTagged selenium/node-edge:117.0-edgedriver-117.0-20251001\nTagged selenium/standalone-edge:117.0-edgedriver-117.0-20251001\nTagged selenium/node-edge:117.0-20251001\nTagged selenium/standalone-edge:117.0-20251001\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.36.0/edge_118.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.36.0 20251001 selenium false edge true\nTagging images for browser edge, version 4.36.0, build date 20251001, namespace selenium\nSelenium Grid version -> 4.36.0-20251001\nEdge version -> 118.0.2088.76\nShort Edge version -> 118.0\nEdgeDriver version -> 118.0.2088.76\nShort EdgeDriver version -> 118.0\nTagged selenium/node-edge:118.0.2088.76-edgedriver-118.0.2088.76-grid-4.36.0-20251001\nTagged selenium/standalone-edge:118.0.2088.76-edgedriver-118.0.2088.76-grid-4.36.0-20251001\nTagged selenium/node-edge:118.0.2088.76-edgedriver-118.0.2088.76-20251001\nTagged selenium/standalone-edge:118.0.2088.76-edgedriver-118.0.2088.76-20251001\nTagged selenium/node-edge:118.0.2088.76-20251001\nTagged selenium/standalone-edge:118.0.2088.76-20251001\nTagged selenium/node-edge:118.0-edgedriver-118.0-grid-4.36.0-20251001\nTagged selenium/standalone-edge:118.0-edgedriver-118.0-grid-4.36.0-20251001\nTagged selenium/node-edge:118.0-edgedriver-118.0-20251001\nTagged selenium/standalone-edge:118.0-edgedriver-118.0-20251001\nTagged selenium/node-edge:118.0-20251001\nTagged selenium/standalone-edge:118.0-20251001\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.36.0/edge_119.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.36.0 20251001 selenium false edge true\nTagging images for browser edge, version 4.36.0, build date 20251001, namespace selenium\nSelenium Grid version -> 4.36.0-20251001\nEdge version -> 119.0.2151.97\nShort Edge version -> 119.0\nEdgeDriver version -> 119.0.2151.97\nShort EdgeDriver version -> 119.0\nTagged selenium/node-edge:119.0.2151.97-edgedriver-119.0.2151.97-grid-4.36.0-20251001\nTagged selenium/standalone-edge:119.0.2151.97-edgedriver-119.0.2151.97-grid-4.36.0-20251001\nTagged selenium/node-edge:119.0.2151.97-edgedriver-119.0.2151.97-20251001\nTagged selenium/standalone-edge:119.0.2151.97-edgedriver-119.0.2151.97-20251001\nTagged selenium/node-edge:119.0.2151.97-20251001\nTagged selenium/standalone-edge:119.0.2151.97-20251001\nTagged selenium/node-edge:119.0-edgedriver-119.0-grid-4.36.0-20251001\nTagged selenium/standalone-edge:119.0-edgedriver-119.0-grid-4.36.0-20251001\nTagged selenium/node-edge:119.0-edgedriver-119.0-20251001\nTagged selenium/standalone-edge:119.0-edgedriver-119.0-20251001\nTagged selenium/node-edge:119.0-20251001\nTagged selenium/standalone-edge:119.0-20251001\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.36.0/edge_120.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.36.0 20251001 selenium false edge true\nTagging images for browser edge, version 4.36.0, build date 20251001, namespace selenium\nSelenium Grid version -> 4.36.0-20251001\nEdge version -> 120.0.2210.144\nShort Edge version -> 120.0\nEdgeDriver version -> 120.0.2210.144\nShort EdgeDriver version -> 120.0\nTagged selenium/node-edge:120.0.2210.144-edgedriver-120.0.2210.144-grid-4.36.0-20251001\nTagged selenium/standalone-edge:120.0.2210.144-edgedriver-120.0.2210.144-grid-4.36.0-20251001\nTagged selenium/node-edge:120.0.2210.144-edgedriver-120.0.2210.144-20251001\nTagged selenium/standalone-edge:120.0.2210.144-edgedriver-120.0.2210.144-20251001\nTagged selenium/node-edge:120.0.2210.144-20251001\nTagged selenium/standalone-edge:120.0.2210.144-20251001\nTagged selenium/node-edge:120.0-edgedriver-120.0-grid-4.36.0-20251001\nTagged selenium/standalone-edge:120.0-edgedriver-120.0-grid-4.36.0-20251001\nTagged selenium/node-edge:120.0-edgedriver-120.0-20251001\nTagged selenium/standalone-edge:120.0-edgedriver-120.0-20251001\nTagged selenium/node-edge:120.0-20251001\nTagged selenium/standalone-edge:120.0-20251001\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.36.0/edge_121.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.36.0 20251001 selenium false edge true\nTagging images for browser edge, version 4.36.0, build date 20251001, namespace selenium\nSelenium Grid version -> 4.36.0-20251001\nEdge version -> 121.0.2277.128\nShort Edge version -> 121.0\nEdgeDriver version -> 121.0.2277.128\nShort EdgeDriver version -> 121.0\nTagged selenium/node-edge:121.0.2277.128-edgedriver-121.0.2277.128-grid-4.36.0-20251001\nTagged selenium/standalone-edge:121.0.2277.128-edgedriver-121.0.2277.128-grid-4.36.0-20251001\nTagged selenium/node-edge:121.0.2277.128-edgedriver-121.0.2277.128-20251001\nTagged selenium/standalone-edge:121.0.2277.128-edgedriver-121.0.2277.128-20251001\nTagged selenium/node-edge:121.0.2277.128-20251001\nTagged selenium/standalone-edge:121.0.2277.128-20251001\nTagged selenium/node-edge:121.0-edgedriver-121.0-grid-4.36.0-20251001\nTagged selenium/standalone-edge:121.0-edgedriver-121.0-grid-4.36.0-20251001\nTagged selenium/node-edge:121.0-edgedriver-121.0-20251001\nTagged selenium/standalone-edge:121.0-edgedriver-121.0-20251001\nTagged selenium/node-edge:121.0-20251001\nTagged selenium/standalone-edge:121.0-20251001\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.36.0/edge_122.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.36.0 20251001 selenium false edge true\nTagging images for browser edge, version 4.36.0, build date 20251001, namespace selenium\nSelenium Grid version -> 4.36.0-20251001\nEdge version -> 122.0.2365.92\nShort Edge version -> 122.0\nEdgeDriver version -> 122.0.2365.92\nShort EdgeDriver version -> 122.0\nTagged selenium/node-edge:122.0.2365.92-edgedriver-122.0.2365.92-grid-4.36.0-20251001\nTagged selenium/standalone-edge:122.0.2365.92-edgedriver-122.0.2365.92-grid-4.36.0-20251001\nTagged selenium/node-edge:122.0.2365.92-edgedriver-122.0.2365.92-20251001\nTagged selenium/standalone-edge:122.0.2365.92-edgedriver-122.0.2365.92-20251001\nTagged selenium/node-edge:122.0.2365.92-20251001\nTagged selenium/standalone-edge:122.0.2365.92-20251001\nTagged selenium/node-edge:122.0-edgedriver-122.0-grid-4.36.0-20251001\nTagged selenium/standalone-edge:122.0-edgedriver-122.0-grid-4.36.0-20251001\nTagged selenium/node-edge:122.0-edgedriver-122.0-20251001\nTagged selenium/standalone-edge:122.0-edgedriver-122.0-20251001\nTagged selenium/node-edge:122.0-20251001\nTagged selenium/standalone-edge:122.0-20251001\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.36.0/edge_123.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.36.0 20251001 selenium false edge true\nTagging images for browser edge, version 4.36.0, build date 20251001, namespace selenium\nSelenium Grid version -> 4.36.0-20251001\nEdge version -> 123.0.2420.97\nShort Edge version -> 123.0\nEdgeDriver version -> 123.0.2420.97\nShort EdgeDriver version -> 123.0\nTagged selenium/node-edge:123.0.2420.97-edgedriver-123.0.2420.97-grid-4.36.0-20251001\nTagged selenium/standalone-edge:123.0.2420.97-edgedriver-123.0.2420.97-grid-4.36.0-20251001\nTagged selenium/node-edge:123.0.2420.97-edgedriver-123.0.2420.97-20251001\nTagged selenium/standalone-edge:123.0.2420.97-edgedriver-123.0.2420.97-20251001\nTagged selenium/node-edge:123.0.2420.97-20251001\nTagged selenium/standalone-edge:123.0.2420.97-20251001\nTagged selenium/node-edge:123.0-edgedriver-123.0-grid-4.36.0-20251001\nTagged selenium/standalone-edge:123.0-edgedriver-123.0-grid-4.36.0-20251001\nTagged selenium/node-edge:123.0-edgedriver-123.0-20251001\nTagged selenium/standalone-edge:123.0-edgedriver-123.0-20251001\nTagged selenium/node-edge:123.0-20251001\nTagged selenium/standalone-edge:123.0-20251001\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.36.0/edge_124.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.36.0 20251001 selenium false edge true\nTagging images for browser edge, version 4.36.0, build date 20251001, namespace selenium\nSelenium Grid version -> 4.36.0-20251001\nEdge version -> 124.0.2478.109\nShort Edge version -> 124.0\nEdgeDriver version -> 124.0.2478.109\nShort EdgeDriver version -> 124.0\nTagged selenium/node-edge:124.0.2478.109-edgedriver-124.0.2478.109-grid-4.36.0-20251001\nTagged selenium/standalone-edge:124.0.2478.109-edgedriver-124.0.2478.109-grid-4.36.0-20251001\nTagged selenium/node-edge:124.0.2478.109-edgedriver-124.0.2478.109-20251001\nTagged selenium/standalone-edge:124.0.2478.109-edgedriver-124.0.2478.109-20251001\nTagged selenium/node-edge:124.0.2478.109-20251001\nTagged selenium/standalone-edge:124.0.2478.109-20251001\nTagged selenium/node-edge:124.0-edgedriver-124.0-grid-4.36.0-20251001\nTagged selenium/standalone-edge:124.0-edgedriver-124.0-grid-4.36.0-20251001\nTagged selenium/node-edge:124.0-edgedriver-124.0-20251001\nTagged selenium/standalone-edge:124.0-edgedriver-124.0-20251001\nTagged selenium/node-edge:124.0-20251001\nTagged selenium/standalone-edge:124.0-20251001\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.36.0/edge_125.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.36.0 20251001 selenium false edge true\nTagging images for browser edge, version 4.36.0, build date 20251001, namespace selenium\nSelenium Grid version -> 4.36.0-20251001\nEdge version -> 125.0.2535.92\nShort Edge version -> 125.0\nEdgeDriver version -> 125.0.2535.92\nShort EdgeDriver version -> 125.0\nTagged selenium/node-edge:125.0.2535.92-edgedriver-125.0.2535.92-grid-4.36.0-20251001\nTagged selenium/standalone-edge:125.0.2535.92-edgedriver-125.0.2535.92-grid-4.36.0-20251001\nTagged selenium/node-edge:125.0.2535.92-edgedriver-125.0.2535.92-20251001\nTagged selenium/standalone-edge:125.0.2535.92-edgedriver-125.0.2535.92-20251001\nTagged selenium/node-edge:125.0.2535.92-20251001\nTagged selenium/standalone-edge:125.0.2535.92-20251001\nTagged selenium/node-edge:125.0-edgedriver-125.0-grid-4.36.0-20251001\nTagged selenium/standalone-edge:125.0-edgedriver-125.0-grid-4.36.0-20251001\nTagged selenium/node-edge:125.0-edgedriver-125.0-20251001\nTagged selenium/standalone-edge:125.0-edgedriver-125.0-20251001\nTagged selenium/node-edge:125.0-20251001\nTagged selenium/standalone-edge:125.0-20251001\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.36.0/edge_126.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.36.0 20251001 selenium false edge true\nTagging images for browser edge, version 4.36.0, build date 20251001, namespace selenium\nSelenium Grid version -> 4.36.0-20251001\nEdge version -> 126.0.2592.113\nShort Edge version -> 126.0\nEdgeDriver version -> 126.0.2592.123\nShort EdgeDriver version -> 126.0\nTagged selenium/node-edge:126.0.2592.113-edgedriver-126.0.2592.123-grid-4.36.0-20251001\nTagged selenium/standalone-edge:126.0.2592.113-edgedriver-126.0.2592.123-grid-4.36.0-20251001\nTagged selenium/node-edge:126.0.2592.113-edgedriver-126.0.2592.123-20251001\nTagged selenium/standalone-edge:126.0.2592.113-edgedriver-126.0.2592.123-20251001\nTagged selenium/node-edge:126.0.2592.113-20251001\nTagged selenium/standalone-edge:126.0.2592.113-20251001\nTagged selenium/node-edge:126.0-edgedriver-126.0-grid-4.36.0-20251001\nTagged selenium/standalone-edge:126.0-edgedriver-126.0-grid-4.36.0-20251001\nTagged selenium/node-edge:126.0-edgedriver-126.0-20251001\nTagged selenium/standalone-edge:126.0-edgedriver-126.0-20251001\nTagged selenium/node-edge:126.0-20251001\nTagged selenium/standalone-edge:126.0-20251001\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.36.0/edge_127.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.36.0 20251001 selenium false edge true\nTagging images for browser edge, version 4.36.0, build date 20251001, namespace selenium\nSelenium Grid version -> 4.36.0-20251001\nEdge version -> 127.0.2651.105\nShort Edge version -> 127.0\nEdgeDriver version -> 127.0.2651.107\nShort EdgeDriver version -> 127.0\nTagged selenium/node-edge:127.0.2651.105-edgedriver-127.0.2651.107-grid-4.36.0-20251001\nTagged selenium/standalone-edge:127.0.2651.105-edgedriver-127.0.2651.107-grid-4.36.0-20251001\nTagged selenium/node-edge:127.0.2651.105-edgedriver-127.0.2651.107-20251001\nTagged selenium/standalone-edge:127.0.2651.105-edgedriver-127.0.2651.107-20251001\nTagged selenium/node-edge:127.0.2651.105-20251001\nTagged selenium/standalone-edge:127.0.2651.105-20251001\nTagged selenium/node-edge:127.0-edgedriver-127.0-grid-4.36.0-20251001\nTagged selenium/standalone-edge:127.0-edgedriver-127.0-grid-4.36.0-20251001\nTagged selenium/node-edge:127.0-edgedriver-127.0-20251001\nTagged selenium/standalone-edge:127.0-edgedriver-127.0-20251001\nTagged selenium/node-edge:127.0-20251001\nTagged selenium/standalone-edge:127.0-20251001\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.36.0/edge_128.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.36.0 20251001 selenium false edge true\nTagging images for browser edge, version 4.36.0, build date 20251001, namespace selenium\nSelenium Grid version -> 4.36.0-20251001\nEdge version -> 128.0.2739.79\nShort Edge version -> 128.0\nEdgeDriver version -> 128.0.2739.81\nShort EdgeDriver version -> 128.0\nTagged selenium/node-edge:128.0.2739.79-edgedriver-128.0.2739.81-grid-4.36.0-20251001\nTagged selenium/standalone-edge:128.0.2739.79-edgedriver-128.0.2739.81-grid-4.36.0-20251001\nTagged selenium/node-edge:128.0.2739.79-edgedriver-128.0.2739.81-20251001\nTagged selenium/standalone-edge:128.0.2739.79-edgedriver-128.0.2739.81-20251001\nTagged selenium/node-edge:128.0.2739.79-20251001\nTagged selenium/standalone-edge:128.0.2739.79-20251001\nTagged selenium/node-edge:128.0-edgedriver-128.0-grid-4.36.0-20251001\nTagged selenium/standalone-edge:128.0-edgedriver-128.0-grid-4.36.0-20251001\nTagged selenium/node-edge:128.0-edgedriver-128.0-20251001\nTagged selenium/standalone-edge:128.0-edgedriver-128.0-20251001\nTagged selenium/node-edge:128.0-20251001\nTagged selenium/standalone-edge:128.0-20251001\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.36.0/edge_129.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.36.0 20251001 selenium false edge true\nTagging images for browser edge, version 4.36.0, build date 20251001, namespace selenium\nSelenium Grid version -> 4.36.0-20251001\nEdge version -> 129.0.2792.89\nShort Edge version -> 129.0\nEdgeDriver version -> 129.0.2792.98\nShort EdgeDriver version -> 129.0\nTagged selenium/node-edge:129.0.2792.89-edgedriver-129.0.2792.98-grid-4.36.0-20251001\nTagged selenium/standalone-edge:129.0.2792.89-edgedriver-129.0.2792.98-grid-4.36.0-20251001\nTagged selenium/node-edge:129.0.2792.89-edgedriver-129.0.2792.98-20251001\nTagged selenium/standalone-edge:129.0.2792.89-edgedriver-129.0.2792.98-20251001\nTagged selenium/node-edge:129.0.2792.89-20251001\nTagged selenium/standalone-edge:129.0.2792.89-20251001\nTagged selenium/node-edge:129.0-edgedriver-129.0-grid-4.36.0-20251001\nTagged selenium/standalone-edge:129.0-edgedriver-129.0-grid-4.36.0-20251001\nTagged selenium/node-edge:129.0-edgedriver-129.0-20251001\nTagged selenium/standalone-edge:129.0-edgedriver-129.0-20251001\nTagged selenium/node-edge:129.0-20251001\nTagged selenium/standalone-edge:129.0-20251001\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.36.0/edge_130.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.36.0 20251001 selenium false edge true\nTagging images for browser edge, version 4.36.0, build date 20251001, namespace selenium\nSelenium Grid version -> 4.36.0-20251001\nEdge version -> 130.0.2849.80\nShort Edge version -> 130.0\nEdgeDriver version -> 130.0.2849.78\nShort EdgeDriver version -> 130.0\nTagged selenium/node-edge:130.0.2849.80-edgedriver-130.0.2849.78-grid-4.36.0-20251001\nTagged selenium/standalone-edge:130.0.2849.80-edgedriver-130.0.2849.78-grid-4.36.0-20251001\nTagged selenium/node-edge:130.0.2849.80-edgedriver-130.0.2849.78-20251001\nTagged selenium/standalone-edge:130.0.2849.80-edgedriver-130.0.2849.78-20251001\nTagged selenium/node-edge:130.0.2849.80-20251001\nTagged selenium/standalone-edge:130.0.2849.80-20251001\nTagged selenium/node-edge:130.0-edgedriver-130.0-grid-4.36.0-20251001\nTagged selenium/standalone-edge:130.0-edgedriver-130.0-grid-4.36.0-20251001\nTagged selenium/node-edge:130.0-edgedriver-130.0-20251001\nTagged selenium/standalone-edge:130.0-edgedriver-130.0-20251001\nTagged selenium/node-edge:130.0-20251001\nTagged selenium/standalone-edge:130.0-20251001\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.36.0/edge_131.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.36.0 20251001 selenium false edge true\nTagging images for browser edge, version 4.36.0, build date 20251001, namespace selenium\nSelenium Grid version -> 4.36.0-20251001\nEdge version -> 131.0.2903.147\nShort Edge version -> 131.0\nEdgeDriver version -> 131.0.2903.147\nShort EdgeDriver version -> 131.0\nTagged selenium/node-edge:131.0.2903.147-edgedriver-131.0.2903.147-grid-4.36.0-20251001\nTagged selenium/standalone-edge:131.0.2903.147-edgedriver-131.0.2903.147-grid-4.36.0-20251001\nTagged selenium/node-edge:131.0.2903.147-edgedriver-131.0.2903.147-20251001\nTagged selenium/standalone-edge:131.0.2903.147-edgedriver-131.0.2903.147-20251001\nTagged selenium/node-edge:131.0.2903.147-20251001\nTagged selenium/standalone-edge:131.0.2903.147-20251001\nTagged selenium/node-edge:131.0-edgedriver-131.0-grid-4.36.0-20251001\nTagged selenium/standalone-edge:131.0-edgedriver-131.0-grid-4.36.0-20251001\nTagged selenium/node-edge:131.0-edgedriver-131.0-20251001\nTagged selenium/standalone-edge:131.0-edgedriver-131.0-20251001\nTagged selenium/node-edge:131.0-20251001\nTagged selenium/standalone-edge:131.0-20251001\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.36.0/edge_132.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.36.0 20251001 selenium false edge true\nTagging images for browser edge, version 4.36.0, build date 20251001, namespace selenium\nSelenium Grid version -> 4.36.0-20251001\nEdge version -> 132.0.2957.140\nShort Edge version -> 132.0\nEdgeDriver version -> 132.0.2957.140\nShort EdgeDriver version -> 132.0\nTagged selenium/node-edge:132.0.2957.140-edgedriver-132.0.2957.140-grid-4.36.0-20251001\nTagged selenium/standalone-edge:132.0.2957.140-edgedriver-132.0.2957.140-grid-4.36.0-20251001\nTagged selenium/node-edge:132.0.2957.140-edgedriver-132.0.2957.140-20251001\nTagged selenium/standalone-edge:132.0.2957.140-edgedriver-132.0.2957.140-20251001\nTagged selenium/node-edge:132.0.2957.140-20251001\nTagged selenium/standalone-edge:132.0.2957.140-20251001\nTagged selenium/node-edge:132.0-edgedriver-132.0-grid-4.36.0-20251001\nTagged selenium/standalone-edge:132.0-edgedriver-132.0-grid-4.36.0-20251001\nTagged selenium/node-edge:132.0-edgedriver-132.0-20251001\nTagged selenium/standalone-edge:132.0-edgedriver-132.0-20251001\nTagged selenium/node-edge:132.0-20251001\nTagged selenium/standalone-edge:132.0-20251001\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.36.0/edge_133.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.36.0 20251001 selenium false edge true\nTagging images for browser edge, version 4.36.0, build date 20251001, namespace selenium\nSelenium Grid version -> 4.36.0-20251001\nEdge version -> 133.0.3065.92\nShort Edge version -> 133.0\nEdgeDriver version -> 133.0.3065.92\nShort EdgeDriver version -> 133.0\nTagged selenium/node-edge:133.0.3065.92-edgedriver-133.0.3065.92-grid-4.36.0-20251001\nTagged selenium/standalone-edge:133.0.3065.92-edgedriver-133.0.3065.92-grid-4.36.0-20251001\nTagged selenium/node-edge:133.0.3065.92-edgedriver-133.0.3065.92-20251001\nTagged selenium/standalone-edge:133.0.3065.92-edgedriver-133.0.3065.92-20251001\nTagged selenium/node-edge:133.0.3065.92-20251001\nTagged selenium/standalone-edge:133.0.3065.92-20251001\nTagged selenium/node-edge:133.0-edgedriver-133.0-grid-4.36.0-20251001\nTagged selenium/standalone-edge:133.0-edgedriver-133.0-grid-4.36.0-20251001\nTagged selenium/node-edge:133.0-edgedriver-133.0-20251001\nTagged selenium/standalone-edge:133.0-edgedriver-133.0-20251001\nTagged selenium/node-edge:133.0-20251001\nTagged selenium/standalone-edge:133.0-20251001\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.36.0/edge_134.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.36.0 20251001 selenium false edge true\nTagging images for browser edge, version 4.36.0, build date 20251001, namespace selenium\nSelenium Grid version -> 4.36.0-20251001\nEdge version -> 134.0.3124.95\nShort Edge version -> 134.0\nEdgeDriver version -> 134.0.3124.95\nShort EdgeDriver version -> 134.0\nTagged selenium/node-edge:134.0.3124.95-edgedriver-134.0.3124.95-grid-4.36.0-20251001\nTagged selenium/standalone-edge:134.0.3124.95-edgedriver-134.0.3124.95-grid-4.36.0-20251001\nTagged selenium/node-edge:134.0.3124.95-edgedriver-134.0.3124.95-20251001\nTagged selenium/standalone-edge:134.0.3124.95-edgedriver-134.0.3124.95-20251001\nTagged selenium/node-edge:134.0.3124.95-20251001\nTagged selenium/standalone-edge:134.0.3124.95-20251001\nTagged selenium/node-edge:134.0-edgedriver-134.0-grid-4.36.0-20251001\nTagged selenium/standalone-edge:134.0-edgedriver-134.0-grid-4.36.0-20251001\nTagged selenium/node-edge:134.0-edgedriver-134.0-20251001\nTagged selenium/standalone-edge:134.0-edgedriver-134.0-20251001\nTagged selenium/node-edge:134.0-20251001\nTagged selenium/standalone-edge:134.0-20251001\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.36.0/edge_135.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.36.0 20251001 selenium false edge true\nTagging images for browser edge, version 4.36.0, build date 20251001, namespace selenium\nSelenium Grid version -> 4.36.0-20251001\nEdge version -> 135.0.3179.98\nShort Edge version -> 135.0\nEdgeDriver version -> 135.0.3179.98\nShort EdgeDriver version -> 135.0\nTagged selenium/node-edge:135.0.3179.98-edgedriver-135.0.3179.98-grid-4.36.0-20251001\nTagged selenium/standalone-edge:135.0.3179.98-edgedriver-135.0.3179.98-grid-4.36.0-20251001\nTagged selenium/node-edge:135.0.3179.98-edgedriver-135.0.3179.98-20251001\nTagged selenium/standalone-edge:135.0.3179.98-edgedriver-135.0.3179.98-20251001\nTagged selenium/node-edge:135.0.3179.98-20251001\nTagged selenium/standalone-edge:135.0.3179.98-20251001\nTagged selenium/node-edge:135.0-edgedriver-135.0-grid-4.36.0-20251001\nTagged selenium/standalone-edge:135.0-edgedriver-135.0-grid-4.36.0-20251001\nTagged selenium/node-edge:135.0-edgedriver-135.0-20251001\nTagged selenium/standalone-edge:135.0-edgedriver-135.0-20251001\nTagged selenium/node-edge:135.0-20251001\nTagged selenium/standalone-edge:135.0-20251001\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.36.0/edge_136.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.36.0 20251001 selenium false edge true\nTagging images for browser edge, version 4.36.0, build date 20251001, namespace selenium\nSelenium Grid version -> 4.36.0-20251001\nEdge version -> 136.0.3240.92\nShort Edge version -> 136.0\nEdgeDriver version -> 136.0.3240.92\nShort EdgeDriver version -> 136.0\nTagged selenium/node-edge:136.0.3240.92-edgedriver-136.0.3240.92-grid-4.36.0-20251001\nTagged selenium/standalone-edge:136.0.3240.92-edgedriver-136.0.3240.92-grid-4.36.0-20251001\nTagged selenium/node-edge:136.0.3240.92-edgedriver-136.0.3240.92-20251001\nTagged selenium/standalone-edge:136.0.3240.92-edgedriver-136.0.3240.92-20251001\nTagged selenium/node-edge:136.0.3240.92-20251001\nTagged selenium/standalone-edge:136.0.3240.92-20251001\nTagged selenium/node-edge:136.0-edgedriver-136.0-grid-4.36.0-20251001\nTagged selenium/standalone-edge:136.0-edgedriver-136.0-grid-4.36.0-20251001\nTagged selenium/node-edge:136.0-edgedriver-136.0-20251001\nTagged selenium/standalone-edge:136.0-edgedriver-136.0-20251001\nTagged selenium/node-edge:136.0-20251001\nTagged selenium/standalone-edge:136.0-20251001\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.36.0/edge_137.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.36.0 20251001 selenium false edge true\nTagging images for browser edge, version 4.36.0, build date 20251001, namespace selenium\nSelenium Grid version -> 4.36.0-20251001\nEdge version -> 137.0.3296.93\nShort Edge version -> 137.0\nEdgeDriver version -> 137.0.3296.93\nShort EdgeDriver version -> 137.0\nTagged selenium/node-edge:137.0.3296.93-edgedriver-137.0.3296.93-grid-4.36.0-20251001\nTagged selenium/standalone-edge:137.0.3296.93-edgedriver-137.0.3296.93-grid-4.36.0-20251001\nTagged selenium/node-edge:137.0.3296.93-edgedriver-137.0.3296.93-20251001\nTagged selenium/standalone-edge:137.0.3296.93-edgedriver-137.0.3296.93-20251001\nTagged selenium/node-edge:137.0.3296.93-20251001\nTagged selenium/standalone-edge:137.0.3296.93-20251001\nTagged selenium/node-edge:137.0-edgedriver-137.0-grid-4.36.0-20251001\nTagged selenium/standalone-edge:137.0-edgedriver-137.0-grid-4.36.0-20251001\nTagged selenium/node-edge:137.0-edgedriver-137.0-20251001\nTagged selenium/standalone-edge:137.0-edgedriver-137.0-20251001\nTagged selenium/node-edge:137.0-20251001\nTagged selenium/standalone-edge:137.0-20251001\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.36.0/edge_138.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.36.0 20251001 selenium false edge true\nTagging images for browser edge, version 4.36.0, build date 20251001, namespace selenium\nSelenium Grid version -> 4.36.0-20251001\nEdge version -> 138.0.3351.121\nShort Edge version -> 138.0\nEdgeDriver version -> 138.0.3351.121\nShort EdgeDriver version -> 138.0\nTagged selenium/node-edge:138.0.3351.121-edgedriver-138.0.3351.121-grid-4.36.0-20251001\nTagged selenium/standalone-edge:138.0.3351.121-edgedriver-138.0.3351.121-grid-4.36.0-20251001\nTagged selenium/node-edge:138.0.3351.121-edgedriver-138.0.3351.121-20251001\nTagged selenium/standalone-edge:138.0.3351.121-edgedriver-138.0.3351.121-20251001\nTagged selenium/node-edge:138.0.3351.121-20251001\nTagged selenium/standalone-edge:138.0.3351.121-20251001\nTagged selenium/node-edge:138.0-edgedriver-138.0-grid-4.36.0-20251001\nTagged selenium/standalone-edge:138.0-edgedriver-138.0-grid-4.36.0-20251001\nTagged selenium/node-edge:138.0-edgedriver-138.0-20251001\nTagged selenium/standalone-edge:138.0-edgedriver-138.0-20251001\nTagged selenium/node-edge:138.0-20251001\nTagged selenium/standalone-edge:138.0-20251001\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.36.0/edge_139.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.36.0 20251001 selenium false edge true\nTagging images for browser edge, version 4.36.0, build date 20251001, namespace selenium\nSelenium Grid version -> 4.36.0-20251001\nEdge version -> 139.0.3405.125\nShort Edge version -> 139.0\nEdgeDriver version -> 139.0.3405.125\nShort EdgeDriver version -> 139.0\nTagged selenium/node-edge:139.0.3405.125-edgedriver-139.0.3405.125-grid-4.36.0-20251001\nTagged selenium/standalone-edge:139.0.3405.125-edgedriver-139.0.3405.125-grid-4.36.0-20251001\nTagged selenium/node-edge:139.0.3405.125-edgedriver-139.0.3405.125-20251001\nTagged selenium/standalone-edge:139.0.3405.125-edgedriver-139.0.3405.125-20251001\nTagged selenium/node-edge:139.0.3405.125-20251001\nTagged selenium/standalone-edge:139.0.3405.125-20251001\nTagged selenium/node-edge:139.0-edgedriver-139.0-grid-4.36.0-20251001\nTagged selenium/standalone-edge:139.0-edgedriver-139.0-grid-4.36.0-20251001\nTagged selenium/node-edge:139.0-edgedriver-139.0-20251001\nTagged selenium/standalone-edge:139.0-edgedriver-139.0-20251001\nTagged selenium/node-edge:139.0-20251001\nTagged selenium/standalone-edge:139.0-20251001\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.36.0/edge_140.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.36.0 20251001 selenium false edge true\nTagging images for browser edge, version 4.36.0, build date 20251001, namespace selenium\nSelenium Grid version -> 4.36.0-20251001\nEdge version -> 140.0.3485.94\nShort Edge version -> 140.0\nEdgeDriver version -> 140.0.3485.94\nShort EdgeDriver version -> 140.0\nTagged selenium/node-edge:140.0.3485.94-edgedriver-140.0.3485.94-grid-4.36.0-20251001\nTagged selenium/standalone-edge:140.0.3485.94-edgedriver-140.0.3485.94-grid-4.36.0-20251001\nTagged selenium/node-edge:140.0.3485.94-edgedriver-140.0.3485.94-20251001\nTagged selenium/standalone-edge:140.0.3485.94-edgedriver-140.0.3485.94-20251001\nTagged selenium/node-edge:140.0.3485.94-20251001\nTagged selenium/standalone-edge:140.0.3485.94-20251001\nTagged selenium/node-edge:140.0-edgedriver-140.0-grid-4.36.0-20251001\nTagged selenium/standalone-edge:140.0-edgedriver-140.0-grid-4.36.0-20251001\nTagged selenium/node-edge:140.0-edgedriver-140.0-20251001\nTagged selenium/standalone-edge:140.0-edgedriver-140.0-20251001\nTagged selenium/node-edge:140.0-20251001\nTagged selenium/standalone-edge:140.0-20251001\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.36.0/firefox_100.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.36.0 20251001 selenium false firefox true\nTagging images for browser firefox, version 4.36.0, build date 20251001, namespace selenium\nSelenium Grid version -> 4.36.0-20251001\nFirefox version -> 100.0.2\nShort Firefox version -> 100.0\nGeckoDriver version -> 0.36.0\nShort GeckoDriver version -> 0.36\nTagged selenium/node-firefox:100.0.2-geckodriver-0.36.0-grid-4.36.0-20251001\nTagged selenium/standalone-firefox:100.0.2-geckodriver-0.36.0-grid-4.36.0-20251001\nTagged selenium/node-firefox:100.0.2-geckodriver-0.36.0-20251001\nTagged selenium/standalone-firefox:100.0.2-geckodriver-0.36.0-20251001\nTagged selenium/node-firefox:100.0.2-20251001\nTagged selenium/standalone-firefox:100.0.2-20251001\nTagged selenium/node-firefox:100.0-geckodriver-0.36-grid-4.36.0-20251001\nTagged selenium/standalone-firefox:100.0-geckodriver-0.36-grid-4.36.0-20251001\nTagged selenium/node-firefox:100.0-geckodriver-0.36-20251001\nTagged selenium/standalone-firefox:100.0-geckodriver-0.36-20251001\nTagged selenium/node-firefox:100.0-20251001\nTagged selenium/standalone-firefox:100.0-20251001\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.36.0/firefox_101.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.36.0 20251001 selenium false firefox true\nTagging images for browser firefox, version 4.36.0, build date 20251001, namespace selenium\nSelenium Grid version -> 4.36.0-20251001\nFirefox version -> 101.0.1\nShort Firefox version -> 101.0\nGeckoDriver version -> 0.36.0\nShort GeckoDriver version -> 0.36\nTagged selenium/node-firefox:101.0.1-geckodriver-0.36.0-grid-4.36.0-20251001\nTagged selenium/standalone-firefox:101.0.1-geckodriver-0.36.0-grid-4.36.0-20251001\nTagged selenium/node-firefox:101.0.1-geckodriver-0.36.0-20251001\nTagged selenium/standalone-firefox:101.0.1-geckodriver-0.36.0-20251001\nTagged selenium/node-firefox:101.0.1-20251001\nTagged selenium/standalone-firefox:101.0.1-20251001\nTagged selenium/node-firefox:101.0-geckodriver-0.36-grid-4.36.0-20251001\nTagged selenium/standalone-firefox:101.0-geckodriver-0.36-grid-4.36.0-20251001\nTagged selenium/node-firefox:101.0-geckodriver-0.36-20251001\nTagged selenium/standalone-firefox:101.0-geckodriver-0.36-20251001\nTagged selenium/node-firefox:101.0-20251001\nTagged selenium/standalone-firefox:101.0-20251001\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.36.0/firefox_102.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.36.0 20251001 selenium false firefox true\nTagging images for browser firefox, version 4.36.0, build date 20251001, namespace selenium\nSelenium Grid version -> 4.36.0-20251001\nFirefox version -> 102.0.1\nShort Firefox version -> 102.0\nGeckoDriver version -> 0.36.0\nShort GeckoDriver version -> 0.36\nTagged selenium/node-firefox:102.0.1-geckodriver-0.36.0-grid-4.36.0-20251001\nTagged selenium/standalone-firefox:102.0.1-geckodriver-0.36.0-grid-4.36.0-20251001\nTagged selenium/node-firefox:102.0.1-geckodriver-0.36.0-20251001\nTagged selenium/standalone-firefox:102.0.1-geckodriver-0.36.0-20251001\nTagged selenium/node-firefox:102.0.1-20251001\nTagged selenium/standalone-firefox:102.0.1-20251001\nTagged selenium/node-firefox:102.0-geckodriver-0.36-grid-4.36.0-20251001\nTagged selenium/standalone-firefox:102.0-geckodriver-0.36-grid-4.36.0-20251001\nTagged selenium/node-firefox:102.0-geckodriver-0.36-20251001\nTagged selenium/standalone-firefox:102.0-geckodriver-0.36-20251001\nTagged selenium/node-firefox:102.0-20251001\nTagged selenium/standalone-firefox:102.0-20251001\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.36.0/firefox_103.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.36.0 20251001 selenium false firefox true\nTagging images for browser firefox, version 4.36.0, build date 20251001, namespace selenium\nSelenium Grid version -> 4.36.0-20251001\nFirefox version -> 103.0.2\nShort Firefox version -> 103.0\nGeckoDriver version -> 0.36.0\nShort GeckoDriver version -> 0.36\nTagged selenium/node-firefox:103.0.2-geckodriver-0.36.0-grid-4.36.0-20251001\nTagged selenium/standalone-firefox:103.0.2-geckodriver-0.36.0-grid-4.36.0-20251001\nTagged selenium/node-firefox:103.0.2-geckodriver-0.36.0-20251001\nTagged selenium/standalone-firefox:103.0.2-geckodriver-0.36.0-20251001\nTagged selenium/node-firefox:103.0.2-20251001\nTagged selenium/standalone-firefox:103.0.2-20251001\nTagged selenium/node-firefox:103.0-geckodriver-0.36-grid-4.36.0-20251001\nTagged selenium/standalone-firefox:103.0-geckodriver-0.36-grid-4.36.0-20251001\nTagged selenium/node-firefox:103.0-geckodriver-0.36-20251001\nTagged selenium/standalone-firefox:103.0-geckodriver-0.36-20251001\nTagged selenium/node-firefox:103.0-20251001\nTagged selenium/standalone-firefox:103.0-20251001\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.36.0/firefox_104.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.36.0 20251001 selenium false firefox true\nTagging images for browser firefox, version 4.36.0, build date 20251001, namespace selenium\nSelenium Grid version -> 4.36.0-20251001\nFirefox version -> 104.0.2\nShort Firefox version -> 104.0\nGeckoDriver version -> 0.36.0\nShort GeckoDriver version -> 0.36\nTagged selenium/node-firefox:104.0.2-geckodriver-0.36.0-grid-4.36.0-20251001\nTagged selenium/standalone-firefox:104.0.2-geckodriver-0.36.0-grid-4.36.0-20251001\nTagged selenium/node-firefox:104.0.2-geckodriver-0.36.0-20251001\nTagged selenium/standalone-firefox:104.0.2-geckodriver-0.36.0-20251001\nTagged selenium/node-firefox:104.0.2-20251001\nTagged selenium/standalone-firefox:104.0.2-20251001\nTagged selenium/node-firefox:104.0-geckodriver-0.36-grid-4.36.0-20251001\nTagged selenium/standalone-firefox:104.0-geckodriver-0.36-grid-4.36.0-20251001\nTagged selenium/node-firefox:104.0-geckodriver-0.36-20251001\nTagged selenium/standalone-firefox:104.0-geckodriver-0.36-20251001\nTagged selenium/node-firefox:104.0-20251001\nTagged selenium/standalone-firefox:104.0-20251001\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.36.0/firefox_105.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.36.0 20251001 selenium false firefox true\nTagging images for browser firefox, version 4.36.0, build date 20251001, namespace selenium\nSelenium Grid version -> 4.36.0-20251001\nFirefox version -> 105.0.3\nShort Firefox version -> 105.0\nGeckoDriver version -> 0.36.0\nShort GeckoDriver version -> 0.36\nTagged selenium/node-firefox:105.0.3-geckodriver-0.36.0-grid-4.36.0-20251001\nTagged selenium/standalone-firefox:105.0.3-geckodriver-0.36.0-grid-4.36.0-20251001\nTagged selenium/node-firefox:105.0.3-geckodriver-0.36.0-20251001\nTagged selenium/standalone-firefox:105.0.3-geckodriver-0.36.0-20251001\nTagged selenium/node-firefox:105.0.3-20251001\nTagged selenium/standalone-firefox:105.0.3-20251001\nTagged selenium/node-firefox:105.0-geckodriver-0.36-grid-4.36.0-20251001\nTagged selenium/standalone-firefox:105.0-geckodriver-0.36-grid-4.36.0-20251001\nTagged selenium/node-firefox:105.0-geckodriver-0.36-20251001\nTagged selenium/standalone-firefox:105.0-geckodriver-0.36-20251001\nTagged selenium/node-firefox:105.0-20251001\nTagged selenium/standalone-firefox:105.0-20251001\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.36.0/firefox_106.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.36.0 20251001 selenium false firefox true\nTagging images for browser firefox, version 4.36.0, build date 20251001, namespace selenium\nSelenium Grid version -> 4.36.0-20251001\nFirefox version -> 106.0.5\nShort Firefox version -> 106.0\nGeckoDriver version -> 0.36.0\nShort GeckoDriver version -> 0.36\nTagged selenium/node-firefox:106.0.5-geckodriver-0.36.0-grid-4.36.0-20251001\nTagged selenium/standalone-firefox:106.0.5-geckodriver-0.36.0-grid-4.36.0-20251001\nTagged selenium/node-firefox:106.0.5-geckodriver-0.36.0-20251001\nTagged selenium/standalone-firefox:106.0.5-geckodriver-0.36.0-20251001\nTagged selenium/node-firefox:106.0.5-20251001\nTagged selenium/standalone-firefox:106.0.5-20251001\nTagged selenium/node-firefox:106.0-geckodriver-0.36-grid-4.36.0-20251001\nTagged selenium/standalone-firefox:106.0-geckodriver-0.36-grid-4.36.0-20251001\nTagged selenium/node-firefox:106.0-geckodriver-0.36-20251001\nTagged selenium/standalone-firefox:106.0-geckodriver-0.36-20251001\nTagged selenium/node-firefox:106.0-20251001\nTagged selenium/standalone-firefox:106.0-20251001\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.36.0/firefox_107.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.36.0 20251001 selenium false firefox true\nTagging images for browser firefox, version 4.36.0, build date 20251001, namespace selenium\nSelenium Grid version -> 4.36.0-20251001\nFirefox version -> 107.0.1\nShort Firefox version -> 107.0\nGeckoDriver version -> 0.36.0\nShort GeckoDriver version -> 0.36\nTagged selenium/node-firefox:107.0.1-geckodriver-0.36.0-grid-4.36.0-20251001\nTagged selenium/standalone-firefox:107.0.1-geckodriver-0.36.0-grid-4.36.0-20251001\nTagged selenium/node-firefox:107.0.1-geckodriver-0.36.0-20251001\nTagged selenium/standalone-firefox:107.0.1-geckodriver-0.36.0-20251001\nTagged selenium/node-firefox:107.0.1-20251001\nTagged selenium/standalone-firefox:107.0.1-20251001\nTagged selenium/node-firefox:107.0-geckodriver-0.36-grid-4.36.0-20251001\nTagged selenium/standalone-firefox:107.0-geckodriver-0.36-grid-4.36.0-20251001\nTagged selenium/node-firefox:107.0-geckodriver-0.36-20251001\nTagged selenium/standalone-firefox:107.0-geckodriver-0.36-20251001\nTagged selenium/node-firefox:107.0-20251001\nTagged selenium/standalone-firefox:107.0-20251001\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.36.0/firefox_108.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.36.0 20251001 selenium false firefox true\nTagging images for browser firefox, version 4.36.0, build date 20251001, namespace selenium\nSelenium Grid version -> 4.36.0-20251001\nFirefox version -> 108.0.2\nShort Firefox version -> 108.0\nGeckoDriver version -> 0.36.0\nShort GeckoDriver version -> 0.36\nTagged selenium/node-firefox:108.0.2-geckodriver-0.36.0-grid-4.36.0-20251001\nTagged selenium/standalone-firefox:108.0.2-geckodriver-0.36.0-grid-4.36.0-20251001\nTagged selenium/node-firefox:108.0.2-geckodriver-0.36.0-20251001\nTagged selenium/standalone-firefox:108.0.2-geckodriver-0.36.0-20251001\nTagged selenium/node-firefox:108.0.2-20251001\nTagged selenium/standalone-firefox:108.0.2-20251001\nTagged selenium/node-firefox:108.0-geckodriver-0.36-grid-4.36.0-20251001\nTagged selenium/standalone-firefox:108.0-geckodriver-0.36-grid-4.36.0-20251001\nTagged selenium/node-firefox:108.0-geckodriver-0.36-20251001\nTagged selenium/standalone-firefox:108.0-geckodriver-0.36-20251001\nTagged selenium/node-firefox:108.0-20251001\nTagged selenium/standalone-firefox:108.0-20251001\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.36.0/firefox_109.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.36.0 20251001 selenium false firefox true\nTagging images for browser firefox, version 4.36.0, build date 20251001, namespace selenium\nSelenium Grid version -> 4.36.0-20251001\nFirefox version -> 109.0.1\nShort Firefox version -> 109.0\nGeckoDriver version -> 0.36.0\nShort GeckoDriver version -> 0.36\nTagged selenium/node-firefox:109.0.1-geckodriver-0.36.0-grid-4.36.0-20251001\nTagged selenium/standalone-firefox:109.0.1-geckodriver-0.36.0-grid-4.36.0-20251001\nTagged selenium/node-firefox:109.0.1-geckodriver-0.36.0-20251001\nTagged selenium/standalone-firefox:109.0.1-geckodriver-0.36.0-20251001\nTagged selenium/node-firefox:109.0.1-20251001\nTagged selenium/standalone-firefox:109.0.1-20251001\nTagged selenium/node-firefox:109.0-geckodriver-0.36-grid-4.36.0-20251001\nTagged selenium/standalone-firefox:109.0-geckodriver-0.36-grid-4.36.0-20251001\nTagged selenium/node-firefox:109.0-geckodriver-0.36-20251001\nTagged selenium/standalone-firefox:109.0-geckodriver-0.36-20251001\nTagged selenium/node-firefox:109.0-20251001\nTagged selenium/standalone-firefox:109.0-20251001\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.36.0/firefox_110.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.36.0 20251001 selenium false firefox true\nTagging images for browser firefox, version 4.36.0, build date 20251001, namespace selenium\nSelenium Grid version -> 4.36.0-20251001\nFirefox version -> 110.0.1\nShort Firefox version -> 110.0\nGeckoDriver version -> 0.36.0\nShort GeckoDriver version -> 0.36\nTagged selenium/node-firefox:110.0.1-geckodriver-0.36.0-grid-4.36.0-20251001\nTagged selenium/standalone-firefox:110.0.1-geckodriver-0.36.0-grid-4.36.0-20251001\nTagged selenium/node-firefox:110.0.1-geckodriver-0.36.0-20251001\nTagged selenium/standalone-firefox:110.0.1-geckodriver-0.36.0-20251001\nTagged selenium/node-firefox:110.0.1-20251001\nTagged selenium/standalone-firefox:110.0.1-20251001\nTagged selenium/node-firefox:110.0-geckodriver-0.36-grid-4.36.0-20251001\nTagged selenium/standalone-firefox:110.0-geckodriver-0.36-grid-4.36.0-20251001\nTagged selenium/node-firefox:110.0-geckodriver-0.36-20251001\nTagged selenium/standalone-firefox:110.0-geckodriver-0.36-20251001\nTagged selenium/node-firefox:110.0-20251001\nTagged selenium/standalone-firefox:110.0-20251001\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.36.0/firefox_111.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.36.0 20251001 selenium false firefox true\nTagging images for browser firefox, version 4.36.0, build date 20251001, namespace selenium\nSelenium Grid version -> 4.36.0-20251001\nFirefox version -> 111.0.1\nShort Firefox version -> 111.0\nGeckoDriver version -> 0.36.0\nShort GeckoDriver version -> 0.36\nTagged selenium/node-firefox:111.0.1-geckodriver-0.36.0-grid-4.36.0-20251001\nTagged selenium/standalone-firefox:111.0.1-geckodriver-0.36.0-grid-4.36.0-20251001\nTagged selenium/node-firefox:111.0.1-geckodriver-0.36.0-20251001\nTagged selenium/standalone-firefox:111.0.1-geckodriver-0.36.0-20251001\nTagged selenium/node-firefox:111.0.1-20251001\nTagged selenium/standalone-firefox:111.0.1-20251001\nTagged selenium/node-firefox:111.0-geckodriver-0.36-grid-4.36.0-20251001\nTagged selenium/standalone-firefox:111.0-geckodriver-0.36-grid-4.36.0-20251001\nTagged selenium/node-firefox:111.0-geckodriver-0.36-20251001\nTagged selenium/standalone-firefox:111.0-geckodriver-0.36-20251001\nTagged selenium/node-firefox:111.0-20251001\nTagged selenium/standalone-firefox:111.0-20251001\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.36.0/firefox_112.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.36.0 20251001 selenium false firefox true\nTagging images for browser firefox, version 4.36.0, build date 20251001, namespace selenium\nSelenium Grid version -> 4.36.0-20251001\nFirefox version -> 112.0.2\nShort Firefox version -> 112.0\nGeckoDriver version -> 0.36.0\nShort GeckoDriver version -> 0.36\nTagged selenium/node-firefox:112.0.2-geckodriver-0.36.0-grid-4.36.0-20251001\nTagged selenium/standalone-firefox:112.0.2-geckodriver-0.36.0-grid-4.36.0-20251001\nTagged selenium/node-firefox:112.0.2-geckodriver-0.36.0-20251001\nTagged selenium/standalone-firefox:112.0.2-geckodriver-0.36.0-20251001\nTagged selenium/node-firefox:112.0.2-20251001\nTagged selenium/standalone-firefox:112.0.2-20251001\nTagged selenium/node-firefox:112.0-geckodriver-0.36-grid-4.36.0-20251001\nTagged selenium/standalone-firefox:112.0-geckodriver-0.36-grid-4.36.0-20251001\nTagged selenium/node-firefox:112.0-geckodriver-0.36-20251001\nTagged selenium/standalone-firefox:112.0-geckodriver-0.36-20251001\nTagged selenium/node-firefox:112.0-20251001\nTagged selenium/standalone-firefox:112.0-20251001\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.36.0/firefox_113.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.36.0 20251001 selenium false firefox true\nTagging images for browser firefox, version 4.36.0, build date 20251001, namespace selenium\nSelenium Grid version -> 4.36.0-20251001\nFirefox version -> 113.0.2\nShort Firefox version -> 113.0\nGeckoDriver version -> 0.36.0\nShort GeckoDriver version -> 0.36\nTagged selenium/node-firefox:113.0.2-geckodriver-0.36.0-grid-4.36.0-20251001\nTagged selenium/standalone-firefox:113.0.2-geckodriver-0.36.0-grid-4.36.0-20251001\nTagged selenium/node-firefox:113.0.2-geckodriver-0.36.0-20251001\nTagged selenium/standalone-firefox:113.0.2-geckodriver-0.36.0-20251001\nTagged selenium/node-firefox:113.0.2-20251001\nTagged selenium/standalone-firefox:113.0.2-20251001\nTagged selenium/node-firefox:113.0-geckodriver-0.36-grid-4.36.0-20251001\nTagged selenium/standalone-firefox:113.0-geckodriver-0.36-grid-4.36.0-20251001\nTagged selenium/node-firefox:113.0-geckodriver-0.36-20251001\nTagged selenium/standalone-firefox:113.0-geckodriver-0.36-20251001\nTagged selenium/node-firefox:113.0-20251001\nTagged selenium/standalone-firefox:113.0-20251001\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.36.0/firefox_114.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.36.0 20251001 selenium false firefox true\nTagging images for browser firefox, version 4.36.0, build date 20251001, namespace selenium\nSelenium Grid version -> 4.36.0-20251001\nFirefox version -> 114.0.2\nShort Firefox version -> 114.0\nGeckoDriver version -> 0.36.0\nShort GeckoDriver version -> 0.36\nTagged selenium/node-firefox:114.0.2-geckodriver-0.36.0-grid-4.36.0-20251001\nTagged selenium/standalone-firefox:114.0.2-geckodriver-0.36.0-grid-4.36.0-20251001\nTagged selenium/node-firefox:114.0.2-geckodriver-0.36.0-20251001\nTagged selenium/standalone-firefox:114.0.2-geckodriver-0.36.0-20251001\nTagged selenium/node-firefox:114.0.2-20251001\nTagged selenium/standalone-firefox:114.0.2-20251001\nTagged selenium/node-firefox:114.0-geckodriver-0.36-grid-4.36.0-20251001\nTagged selenium/standalone-firefox:114.0-geckodriver-0.36-grid-4.36.0-20251001\nTagged selenium/node-firefox:114.0-geckodriver-0.36-20251001\nTagged selenium/standalone-firefox:114.0-geckodriver-0.36-20251001\nTagged selenium/node-firefox:114.0-20251001\nTagged selenium/standalone-firefox:114.0-20251001\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.36.0/firefox_115.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.36.0 20251001 selenium false firefox true\nTagging images for browser firefox, version 4.36.0, build date 20251001, namespace selenium\nSelenium Grid version -> 4.36.0-20251001\nFirefox version -> 115.0.3\nShort Firefox version -> 115.0\nGeckoDriver version -> 0.36.0\nShort GeckoDriver version -> 0.36\nTagged selenium/node-firefox:115.0.3-geckodriver-0.36.0-grid-4.36.0-20251001\nTagged selenium/standalone-firefox:115.0.3-geckodriver-0.36.0-grid-4.36.0-20251001\nTagged selenium/node-firefox:115.0.3-geckodriver-0.36.0-20251001\nTagged selenium/standalone-firefox:115.0.3-geckodriver-0.36.0-20251001\nTagged selenium/node-firefox:115.0.3-20251001\nTagged selenium/standalone-firefox:115.0.3-20251001\nTagged selenium/node-firefox:115.0-geckodriver-0.36-grid-4.36.0-20251001\nTagged selenium/standalone-firefox:115.0-geckodriver-0.36-grid-4.36.0-20251001\nTagged selenium/node-firefox:115.0-geckodriver-0.36-20251001\nTagged selenium/standalone-firefox:115.0-geckodriver-0.36-20251001\nTagged selenium/node-firefox:115.0-20251001\nTagged selenium/standalone-firefox:115.0-20251001\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.36.0/firefox_116.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.36.0 20251001 selenium false firefox true\nTagging images for browser firefox, version 4.36.0, build date 20251001, namespace selenium\nSelenium Grid version -> 4.36.0-20251001\nFirefox version -> 116.0.3\nShort Firefox version -> 116.0\nGeckoDriver version -> 0.36.0\nShort GeckoDriver version -> 0.36\nTagged selenium/node-firefox:116.0.3-geckodriver-0.36.0-grid-4.36.0-20251001\nTagged selenium/standalone-firefox:116.0.3-geckodriver-0.36.0-grid-4.36.0-20251001\nTagged selenium/node-firefox:116.0.3-geckodriver-0.36.0-20251001\nTagged selenium/standalone-firefox:116.0.3-geckodriver-0.36.0-20251001\nTagged selenium/node-firefox:116.0.3-20251001\nTagged selenium/standalone-firefox:116.0.3-20251001\nTagged selenium/node-firefox:116.0-geckodriver-0.36-grid-4.36.0-20251001\nTagged selenium/standalone-firefox:116.0-geckodriver-0.36-grid-4.36.0-20251001\nTagged selenium/node-firefox:116.0-geckodriver-0.36-20251001\nTagged selenium/standalone-firefox:116.0-geckodriver-0.36-20251001\nTagged selenium/node-firefox:116.0-20251001\nTagged selenium/standalone-firefox:116.0-20251001\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.36.0/firefox_117.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.36.0 20251001 selenium false firefox true\nTagging images for browser firefox, version 4.36.0, build date 20251001, namespace selenium\nSelenium Grid version -> 4.36.0-20251001\nFirefox version -> 117.0.1\nShort Firefox version -> 117.0\nGeckoDriver version -> 0.36.0\nShort GeckoDriver version -> 0.36\nTagged selenium/node-firefox:117.0.1-geckodriver-0.36.0-grid-4.36.0-20251001\nTagged selenium/standalone-firefox:117.0.1-geckodriver-0.36.0-grid-4.36.0-20251001\nTagged selenium/node-firefox:117.0.1-geckodriver-0.36.0-20251001\nTagged selenium/standalone-firefox:117.0.1-geckodriver-0.36.0-20251001\nTagged selenium/node-firefox:117.0.1-20251001\nTagged selenium/standalone-firefox:117.0.1-20251001\nTagged selenium/node-firefox:117.0-geckodriver-0.36-grid-4.36.0-20251001\nTagged selenium/standalone-firefox:117.0-geckodriver-0.36-grid-4.36.0-20251001\nTagged selenium/node-firefox:117.0-geckodriver-0.36-20251001\nTagged selenium/standalone-firefox:117.0-geckodriver-0.36-20251001\nTagged selenium/node-firefox:117.0-20251001\nTagged selenium/standalone-firefox:117.0-20251001\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.36.0/firefox_118.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.36.0 20251001 selenium false firefox true\nTagging images for browser firefox, version 4.36.0, build date 20251001, namespace selenium\nSelenium Grid version -> 4.36.0-20251001\nFirefox version -> 118.0.2\nShort Firefox version -> 118.0\nGeckoDriver version -> 0.36.0\nShort GeckoDriver version -> 0.36\nTagged selenium/node-firefox:118.0.2-geckodriver-0.36.0-grid-4.36.0-20251001\nTagged selenium/standalone-firefox:118.0.2-geckodriver-0.36.0-grid-4.36.0-20251001\nTagged selenium/node-firefox:118.0.2-geckodriver-0.36.0-20251001\nTagged selenium/standalone-firefox:118.0.2-geckodriver-0.36.0-20251001\nTagged selenium/node-firefox:118.0.2-20251001\nTagged selenium/standalone-firefox:118.0.2-20251001\nTagged selenium/node-firefox:118.0-geckodriver-0.36-grid-4.36.0-20251001\nTagged selenium/standalone-firefox:118.0-geckodriver-0.36-grid-4.36.0-20251001\nTagged selenium/node-firefox:118.0-geckodriver-0.36-20251001\nTagged selenium/standalone-firefox:118.0-geckodriver-0.36-20251001\nTagged selenium/node-firefox:118.0-20251001\nTagged selenium/standalone-firefox:118.0-20251001\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.36.0/firefox_119.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.36.0 20251001 selenium false firefox true\nTagging images for browser firefox, version 4.36.0, build date 20251001, namespace selenium\nSelenium Grid version -> 4.36.0-20251001\nFirefox version -> 119.0.1\nShort Firefox version -> 119.0\nGeckoDriver version -> 0.36.0\nShort GeckoDriver version -> 0.36\nTagged selenium/node-firefox:119.0.1-geckodriver-0.36.0-grid-4.36.0-20251001\nTagged selenium/standalone-firefox:119.0.1-geckodriver-0.36.0-grid-4.36.0-20251001\nTagged selenium/node-firefox:119.0.1-geckodriver-0.36.0-20251001\nTagged selenium/standalone-firefox:119.0.1-geckodriver-0.36.0-20251001\nTagged selenium/node-firefox:119.0.1-20251001\nTagged selenium/standalone-firefox:119.0.1-20251001\nTagged selenium/node-firefox:119.0-geckodriver-0.36-grid-4.36.0-20251001\nTagged selenium/standalone-firefox:119.0-geckodriver-0.36-grid-4.36.0-20251001\nTagged selenium/node-firefox:119.0-geckodriver-0.36-20251001\nTagged selenium/standalone-firefox:119.0-geckodriver-0.36-20251001\nTagged selenium/node-firefox:119.0-20251001\nTagged selenium/standalone-firefox:119.0-20251001\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.36.0/firefox_120.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.36.0 20251001 selenium false firefox true\nTagging images for browser firefox, version 4.36.0, build date 20251001, namespace selenium\nSelenium Grid version -> 4.36.0-20251001\nFirefox version -> 120.0.1\nShort Firefox version -> 120.0\nGeckoDriver version -> 0.36.0\nShort GeckoDriver version -> 0.36\nTagged selenium/node-firefox:120.0.1-geckodriver-0.36.0-grid-4.36.0-20251001\nTagged selenium/standalone-firefox:120.0.1-geckodriver-0.36.0-grid-4.36.0-20251001\nTagged selenium/node-firefox:120.0.1-geckodriver-0.36.0-20251001\nTagged selenium/standalone-firefox:120.0.1-geckodriver-0.36.0-20251001\nTagged selenium/node-firefox:120.0.1-20251001\nTagged selenium/standalone-firefox:120.0.1-20251001\nTagged selenium/node-firefox:120.0-geckodriver-0.36-grid-4.36.0-20251001\nTagged selenium/standalone-firefox:120.0-geckodriver-0.36-grid-4.36.0-20251001\nTagged selenium/node-firefox:120.0-geckodriver-0.36-20251001\nTagged selenium/standalone-firefox:120.0-geckodriver-0.36-20251001\nTagged selenium/node-firefox:120.0-20251001\nTagged selenium/standalone-firefox:120.0-20251001\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.36.0/firefox_121.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.36.0 20251001 selenium false firefox true\nTagging images for browser firefox, version 4.36.0, build date 20251001, namespace selenium\nSelenium Grid version -> 4.36.0-20251001\nFirefox version -> 121.0.1\nShort Firefox version -> 121.0\nGeckoDriver version -> 0.36.0\nShort GeckoDriver version -> 0.36\nTagged selenium/node-firefox:121.0.1-geckodriver-0.36.0-grid-4.36.0-20251001\nTagged selenium/standalone-firefox:121.0.1-geckodriver-0.36.0-grid-4.36.0-20251001\nTagged selenium/node-firefox:121.0.1-geckodriver-0.36.0-20251001\nTagged selenium/standalone-firefox:121.0.1-geckodriver-0.36.0-20251001\nTagged selenium/node-firefox:121.0.1-20251001\nTagged selenium/standalone-firefox:121.0.1-20251001\nTagged selenium/node-firefox:121.0-geckodriver-0.36-grid-4.36.0-20251001\nTagged selenium/standalone-firefox:121.0-geckodriver-0.36-grid-4.36.0-20251001\nTagged selenium/node-firefox:121.0-geckodriver-0.36-20251001\nTagged selenium/standalone-firefox:121.0-geckodriver-0.36-20251001\nTagged selenium/node-firefox:121.0-20251001\nTagged selenium/standalone-firefox:121.0-20251001\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.36.0/firefox_122.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.36.0 20251001 selenium false firefox true\nTagging images for browser firefox, version 4.36.0, build date 20251001, namespace selenium\nSelenium Grid version -> 4.36.0-20251001\nFirefox version -> 122.0.1\nShort Firefox version -> 122.0\nGeckoDriver version -> 0.36.0\nShort GeckoDriver version -> 0.36\nTagged selenium/node-firefox:122.0.1-geckodriver-0.36.0-grid-4.36.0-20251001\nTagged selenium/standalone-firefox:122.0.1-geckodriver-0.36.0-grid-4.36.0-20251001\nTagged selenium/node-firefox:122.0.1-geckodriver-0.36.0-20251001\nTagged selenium/standalone-firefox:122.0.1-geckodriver-0.36.0-20251001\nTagged selenium/node-firefox:122.0.1-20251001\nTagged selenium/standalone-firefox:122.0.1-20251001\nTagged selenium/node-firefox:122.0-geckodriver-0.36-grid-4.36.0-20251001\nTagged selenium/standalone-firefox:122.0-geckodriver-0.36-grid-4.36.0-20251001\nTagged selenium/node-firefox:122.0-geckodriver-0.36-20251001\nTagged selenium/standalone-firefox:122.0-geckodriver-0.36-20251001\nTagged selenium/node-firefox:122.0-20251001\nTagged selenium/standalone-firefox:122.0-20251001\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.36.0/firefox_123.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.36.0 20251001 selenium false firefox true\nTagging images for browser firefox, version 4.36.0, build date 20251001, namespace selenium\nSelenium Grid version -> 4.36.0-20251001\nFirefox version -> 123.0.1\nShort Firefox version -> 123.0\nGeckoDriver version -> 0.36.0\nShort GeckoDriver version -> 0.36\nTagged selenium/node-firefox:123.0.1-geckodriver-0.36.0-grid-4.36.0-20251001\nTagged selenium/standalone-firefox:123.0.1-geckodriver-0.36.0-grid-4.36.0-20251001\nTagged selenium/node-firefox:123.0.1-geckodriver-0.36.0-20251001\nTagged selenium/standalone-firefox:123.0.1-geckodriver-0.36.0-20251001\nTagged selenium/node-firefox:123.0.1-20251001\nTagged selenium/standalone-firefox:123.0.1-20251001\nTagged selenium/node-firefox:123.0-geckodriver-0.36-grid-4.36.0-20251001\nTagged selenium/standalone-firefox:123.0-geckodriver-0.36-grid-4.36.0-20251001\nTagged selenium/node-firefox:123.0-geckodriver-0.36-20251001\nTagged selenium/standalone-firefox:123.0-geckodriver-0.36-20251001\nTagged selenium/node-firefox:123.0-20251001\nTagged selenium/standalone-firefox:123.0-20251001\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.36.0/firefox_124.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.36.0 20251001 selenium false firefox true\nTagging images for browser firefox, version 4.36.0, build date 20251001, namespace selenium\nSelenium Grid version -> 4.36.0-20251001\nFirefox version -> 124.0.2\nShort Firefox version -> 124.0\nGeckoDriver version -> 0.36.0\nShort GeckoDriver version -> 0.36\nTagged selenium/node-firefox:124.0.2-geckodriver-0.36.0-grid-4.36.0-20251001\nTagged selenium/standalone-firefox:124.0.2-geckodriver-0.36.0-grid-4.36.0-20251001\nTagged selenium/node-firefox:124.0.2-geckodriver-0.36.0-20251001\nTagged selenium/standalone-firefox:124.0.2-geckodriver-0.36.0-20251001\nTagged selenium/node-firefox:124.0.2-20251001\nTagged selenium/standalone-firefox:124.0.2-20251001\nTagged selenium/node-firefox:124.0-geckodriver-0.36-grid-4.36.0-20251001\nTagged selenium/standalone-firefox:124.0-geckodriver-0.36-grid-4.36.0-20251001\nTagged selenium/node-firefox:124.0-geckodriver-0.36-20251001\nTagged selenium/standalone-firefox:124.0-geckodriver-0.36-20251001\nTagged selenium/node-firefox:124.0-20251001\nTagged selenium/standalone-firefox:124.0-20251001\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.36.0/firefox_125.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.36.0 20251001 selenium false firefox true\nTagging images for browser firefox, version 4.36.0, build date 20251001, namespace selenium\nSelenium Grid version -> 4.36.0-20251001\nFirefox version -> 125.0.3\nShort Firefox version -> 125.0\nGeckoDriver version -> 0.36.0\nShort GeckoDriver version -> 0.36\nTagged selenium/node-firefox:125.0.3-geckodriver-0.36.0-grid-4.36.0-20251001\nTagged selenium/standalone-firefox:125.0.3-geckodriver-0.36.0-grid-4.36.0-20251001\nTagged selenium/node-firefox:125.0.3-geckodriver-0.36.0-20251001\nTagged selenium/standalone-firefox:125.0.3-geckodriver-0.36.0-20251001\nTagged selenium/node-firefox:125.0.3-20251001\nTagged selenium/standalone-firefox:125.0.3-20251001\nTagged selenium/node-firefox:125.0-geckodriver-0.36-grid-4.36.0-20251001\nTagged selenium/standalone-firefox:125.0-geckodriver-0.36-grid-4.36.0-20251001\nTagged selenium/node-firefox:125.0-geckodriver-0.36-20251001\nTagged selenium/standalone-firefox:125.0-geckodriver-0.36-20251001\nTagged selenium/node-firefox:125.0-20251001\nTagged selenium/standalone-firefox:125.0-20251001\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.36.0/firefox_126.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.36.0 20251001 selenium false firefox true\nTagging images for browser firefox, version 4.36.0, build date 20251001, namespace selenium\nSelenium Grid version -> 4.36.0-20251001\nFirefox version -> 126.0.1\nShort Firefox version -> 126.0\nGeckoDriver version -> 0.36.0\nShort GeckoDriver version -> 0.36\nTagged selenium/node-firefox:126.0.1-geckodriver-0.36.0-grid-4.36.0-20251001\nTagged selenium/standalone-firefox:126.0.1-geckodriver-0.36.0-grid-4.36.0-20251001\nTagged selenium/node-firefox:126.0.1-geckodriver-0.36.0-20251001\nTagged selenium/standalone-firefox:126.0.1-geckodriver-0.36.0-20251001\nTagged selenium/node-firefox:126.0.1-20251001\nTagged selenium/standalone-firefox:126.0.1-20251001\nTagged selenium/node-firefox:126.0-geckodriver-0.36-grid-4.36.0-20251001\nTagged selenium/standalone-firefox:126.0-geckodriver-0.36-grid-4.36.0-20251001\nTagged selenium/node-firefox:126.0-geckodriver-0.36-20251001\nTagged selenium/standalone-firefox:126.0-geckodriver-0.36-20251001\nTagged selenium/node-firefox:126.0-20251001\nTagged selenium/standalone-firefox:126.0-20251001\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.36.0/firefox_127.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.36.0 20251001 selenium false firefox true\nTagging images for browser firefox, version 4.36.0, build date 20251001, namespace selenium\nSelenium Grid version -> 4.36.0-20251001\nFirefox version -> 127.0.2\nShort Firefox version -> 127.0\nGeckoDriver version -> 0.36.0\nShort GeckoDriver version -> 0.36\nTagged selenium/node-firefox:127.0.2-geckodriver-0.36.0-grid-4.36.0-20251001\nTagged selenium/standalone-firefox:127.0.2-geckodriver-0.36.0-grid-4.36.0-20251001\nTagged selenium/node-firefox:127.0.2-geckodriver-0.36.0-20251001\nTagged selenium/standalone-firefox:127.0.2-geckodriver-0.36.0-20251001\nTagged selenium/node-firefox:127.0.2-20251001\nTagged selenium/standalone-firefox:127.0.2-20251001\nTagged selenium/node-firefox:127.0-geckodriver-0.36-grid-4.36.0-20251001\nTagged selenium/standalone-firefox:127.0-geckodriver-0.36-grid-4.36.0-20251001\nTagged selenium/node-firefox:127.0-geckodriver-0.36-20251001\nTagged selenium/standalone-firefox:127.0-geckodriver-0.36-20251001\nTagged selenium/node-firefox:127.0-20251001\nTagged selenium/standalone-firefox:127.0-20251001\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.36.0/firefox_128.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.36.0 20251001 selenium false firefox true\nTagging images for browser firefox, version 4.36.0, build date 20251001, namespace selenium\nSelenium Grid version -> 4.36.0-20251001\nFirefox version -> 128.0.3\nShort Firefox version -> 128.0\nGeckoDriver version -> 0.36.0\nShort GeckoDriver version -> 0.36\nTagged selenium/node-firefox:128.0.3-geckodriver-0.36.0-grid-4.36.0-20251001\nTagged selenium/standalone-firefox:128.0.3-geckodriver-0.36.0-grid-4.36.0-20251001\nTagged selenium/node-firefox:128.0.3-geckodriver-0.36.0-20251001\nTagged selenium/standalone-firefox:128.0.3-geckodriver-0.36.0-20251001\nTagged selenium/node-firefox:128.0.3-20251001\nTagged selenium/standalone-firefox:128.0.3-20251001\nTagged selenium/node-firefox:128.0-geckodriver-0.36-grid-4.36.0-20251001\nTagged selenium/standalone-firefox:128.0-geckodriver-0.36-grid-4.36.0-20251001\nTagged selenium/node-firefox:128.0-geckodriver-0.36-20251001\nTagged selenium/standalone-firefox:128.0-geckodriver-0.36-20251001\nTagged selenium/node-firefox:128.0-20251001\nTagged selenium/standalone-firefox:128.0-20251001\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.36.0/firefox_129.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.36.0 20251001 selenium false firefox true\nTagging images for browser firefox, version 4.36.0, build date 20251001, namespace selenium\nSelenium Grid version -> 4.36.0-20251001\nFirefox version -> 129.0.2\nShort Firefox version -> 129.0\nGeckoDriver version -> 0.36.0\nShort GeckoDriver version -> 0.36\nTagged selenium/node-firefox:129.0.2-geckodriver-0.36.0-grid-4.36.0-20251001\nTagged selenium/standalone-firefox:129.0.2-geckodriver-0.36.0-grid-4.36.0-20251001\nTagged selenium/node-firefox:129.0.2-geckodriver-0.36.0-20251001\nTagged selenium/standalone-firefox:129.0.2-geckodriver-0.36.0-20251001\nTagged selenium/node-firefox:129.0.2-20251001\nTagged selenium/standalone-firefox:129.0.2-20251001\nTagged selenium/node-firefox:129.0-geckodriver-0.36-grid-4.36.0-20251001\nTagged selenium/standalone-firefox:129.0-geckodriver-0.36-grid-4.36.0-20251001\nTagged selenium/node-firefox:129.0-geckodriver-0.36-20251001\nTagged selenium/standalone-firefox:129.0-geckodriver-0.36-20251001\nTagged selenium/node-firefox:129.0-20251001\nTagged selenium/standalone-firefox:129.0-20251001\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.36.0/firefox_130.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.36.0 20251001 selenium false firefox true\nTagging images for browser firefox, version 4.36.0, build date 20251001, namespace selenium\nSelenium Grid version -> 4.36.0-20251001\nFirefox version -> 130.0.1\nShort Firefox version -> 130.0\nGeckoDriver version -> 0.36.0\nShort GeckoDriver version -> 0.36\nTagged selenium/node-firefox:130.0.1-geckodriver-0.36.0-grid-4.36.0-20251001\nTagged selenium/standalone-firefox:130.0.1-geckodriver-0.36.0-grid-4.36.0-20251001\nTagged selenium/node-firefox:130.0.1-geckodriver-0.36.0-20251001\nTagged selenium/standalone-firefox:130.0.1-geckodriver-0.36.0-20251001\nTagged selenium/node-firefox:130.0.1-20251001\nTagged selenium/standalone-firefox:130.0.1-20251001\nTagged selenium/node-firefox:130.0-geckodriver-0.36-grid-4.36.0-20251001\nTagged selenium/standalone-firefox:130.0-geckodriver-0.36-grid-4.36.0-20251001\nTagged selenium/node-firefox:130.0-geckodriver-0.36-20251001\nTagged selenium/standalone-firefox:130.0-geckodriver-0.36-20251001\nTagged selenium/node-firefox:130.0-20251001\nTagged selenium/standalone-firefox:130.0-20251001\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.36.0/firefox_131.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.36.0 20251001 selenium false firefox true\nTagging images for browser firefox, version 4.36.0, build date 20251001, namespace selenium\nSelenium Grid version -> 4.36.0-20251001\nFirefox version -> 131.0.3\nShort Firefox version -> 131.0\nGeckoDriver version -> 0.36.0\nShort GeckoDriver version -> 0.36\nTagged selenium/node-firefox:131.0.3-geckodriver-0.36.0-grid-4.36.0-20251001\nTagged selenium/standalone-firefox:131.0.3-geckodriver-0.36.0-grid-4.36.0-20251001\nTagged selenium/node-firefox:131.0.3-geckodriver-0.36.0-20251001\nTagged selenium/standalone-firefox:131.0.3-geckodriver-0.36.0-20251001\nTagged selenium/node-firefox:131.0.3-20251001\nTagged selenium/standalone-firefox:131.0.3-20251001\nTagged selenium/node-firefox:131.0-geckodriver-0.36-grid-4.36.0-20251001\nTagged selenium/standalone-firefox:131.0-geckodriver-0.36-grid-4.36.0-20251001\nTagged selenium/node-firefox:131.0-geckodriver-0.36-20251001\nTagged selenium/standalone-firefox:131.0-geckodriver-0.36-20251001\nTagged selenium/node-firefox:131.0-20251001\nTagged selenium/standalone-firefox:131.0-20251001\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.36.0/firefox_132.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.36.0 20251001 selenium false firefox true\nTagging images for browser firefox, version 4.36.0, build date 20251001, namespace selenium\nSelenium Grid version -> 4.36.0-20251001\nFirefox version -> 132.0.2\nShort Firefox version -> 132.0\nGeckoDriver version -> 0.36.0\nShort GeckoDriver version -> 0.36\nTagged selenium/node-firefox:132.0.2-geckodriver-0.36.0-grid-4.36.0-20251001\nTagged selenium/standalone-firefox:132.0.2-geckodriver-0.36.0-grid-4.36.0-20251001\nTagged selenium/node-firefox:132.0.2-geckodriver-0.36.0-20251001\nTagged selenium/standalone-firefox:132.0.2-geckodriver-0.36.0-20251001\nTagged selenium/node-firefox:132.0.2-20251001\nTagged selenium/standalone-firefox:132.0.2-20251001\nTagged selenium/node-firefox:132.0-geckodriver-0.36-grid-4.36.0-20251001\nTagged selenium/standalone-firefox:132.0-geckodriver-0.36-grid-4.36.0-20251001\nTagged selenium/node-firefox:132.0-geckodriver-0.36-20251001\nTagged selenium/standalone-firefox:132.0-geckodriver-0.36-20251001\nTagged selenium/node-firefox:132.0-20251001\nTagged selenium/standalone-firefox:132.0-20251001\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.36.0/firefox_133.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.36.0 20251001 selenium false firefox true\nTagging images for browser firefox, version 4.36.0, build date 20251001, namespace selenium\nSelenium Grid version -> 4.36.0-20251001\nFirefox version -> 133.0.3\nShort Firefox version -> 133.0\nGeckoDriver version -> 0.36.0\nShort GeckoDriver version -> 0.36\nTagged selenium/node-firefox:133.0.3-geckodriver-0.36.0-grid-4.36.0-20251001\nTagged selenium/standalone-firefox:133.0.3-geckodriver-0.36.0-grid-4.36.0-20251001\nTagged selenium/node-firefox:133.0.3-geckodriver-0.36.0-20251001\nTagged selenium/standalone-firefox:133.0.3-geckodriver-0.36.0-20251001\nTagged selenium/node-firefox:133.0.3-20251001\nTagged selenium/standalone-firefox:133.0.3-20251001\nTagged selenium/node-firefox:133.0-geckodriver-0.36-grid-4.36.0-20251001\nTagged selenium/standalone-firefox:133.0-geckodriver-0.36-grid-4.36.0-20251001\nTagged selenium/node-firefox:133.0-geckodriver-0.36-20251001\nTagged selenium/standalone-firefox:133.0-geckodriver-0.36-20251001\nTagged selenium/node-firefox:133.0-20251001\nTagged selenium/standalone-firefox:133.0-20251001\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.36.0/firefox_134.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.36.0 20251001 selenium false firefox true\nTagging images for browser firefox, version 4.36.0, build date 20251001, namespace selenium\nSelenium Grid version -> 4.36.0-20251001\nFirefox version -> 134.0.2\nShort Firefox version -> 134.0\nGeckoDriver version -> 0.36.0\nShort GeckoDriver version -> 0.36\nTagged selenium/node-firefox:134.0.2-geckodriver-0.36.0-grid-4.36.0-20251001\nTagged selenium/standalone-firefox:134.0.2-geckodriver-0.36.0-grid-4.36.0-20251001\nTagged selenium/node-firefox:134.0.2-geckodriver-0.36.0-20251001\nTagged selenium/standalone-firefox:134.0.2-geckodriver-0.36.0-20251001\nTagged selenium/node-firefox:134.0.2-20251001\nTagged selenium/standalone-firefox:134.0.2-20251001\nTagged selenium/node-firefox:134.0-geckodriver-0.36-grid-4.36.0-20251001\nTagged selenium/standalone-firefox:134.0-geckodriver-0.36-grid-4.36.0-20251001\nTagged selenium/node-firefox:134.0-geckodriver-0.36-20251001\nTagged selenium/standalone-firefox:134.0-geckodriver-0.36-20251001\nTagged selenium/node-firefox:134.0-20251001\nTagged selenium/standalone-firefox:134.0-20251001\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.36.0/firefox_135.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.36.0 20251001 selenium false firefox true\nTagging images for browser firefox, version 4.36.0, build date 20251001, namespace selenium\nSelenium Grid version -> 4.36.0-20251001\nFirefox version -> 135.0.1\nShort Firefox version -> 135.0\nGeckoDriver version -> 0.36.0\nShort GeckoDriver version -> 0.36\nTagged selenium/node-firefox:135.0.1-geckodriver-0.36.0-grid-4.36.0-20251001\nTagged selenium/standalone-firefox:135.0.1-geckodriver-0.36.0-grid-4.36.0-20251001\nTagged selenium/node-firefox:135.0.1-geckodriver-0.36.0-20251001\nTagged selenium/standalone-firefox:135.0.1-geckodriver-0.36.0-20251001\nTagged selenium/node-firefox:135.0.1-20251001\nTagged selenium/standalone-firefox:135.0.1-20251001\nTagged selenium/node-firefox:135.0-geckodriver-0.36-grid-4.36.0-20251001\nTagged selenium/standalone-firefox:135.0-geckodriver-0.36-grid-4.36.0-20251001\nTagged selenium/node-firefox:135.0-geckodriver-0.36-20251001\nTagged selenium/standalone-firefox:135.0-geckodriver-0.36-20251001\nTagged selenium/node-firefox:135.0-20251001\nTagged selenium/standalone-firefox:135.0-20251001\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.36.0/firefox_136.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.36.0 20251001 selenium false firefox true\nTagging images for browser firefox, version 4.36.0, build date 20251001, namespace selenium\nSelenium Grid version -> 4.36.0-20251001\nFirefox version -> 136.0.4\nShort Firefox version -> 136.0\nGeckoDriver version -> 0.36.0\nShort GeckoDriver version -> 0.36\nTagged selenium/node-firefox:136.0.4-geckodriver-0.36.0-grid-4.36.0-20251001\nTagged selenium/standalone-firefox:136.0.4-geckodriver-0.36.0-grid-4.36.0-20251001\nTagged selenium/node-firefox:136.0.4-geckodriver-0.36.0-20251001\nTagged selenium/standalone-firefox:136.0.4-geckodriver-0.36.0-20251001\nTagged selenium/node-firefox:136.0.4-20251001\nTagged selenium/standalone-firefox:136.0.4-20251001\nTagged selenium/node-firefox:136.0-geckodriver-0.36-grid-4.36.0-20251001\nTagged selenium/standalone-firefox:136.0-geckodriver-0.36-grid-4.36.0-20251001\nTagged selenium/node-firefox:136.0-geckodriver-0.36-20251001\nTagged selenium/standalone-firefox:136.0-geckodriver-0.36-20251001\nTagged selenium/node-firefox:136.0-20251001\nTagged selenium/standalone-firefox:136.0-20251001\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.36.0/firefox_137.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.36.0 20251001 selenium false firefox true\nTagging images for browser firefox, version 4.36.0, build date 20251001, namespace selenium\nSelenium Grid version -> 4.36.0-20251001\nFirefox version -> 137.0.2\nShort Firefox version -> 137.0\nGeckoDriver version -> 0.36.0\nShort GeckoDriver version -> 0.36\nTagged selenium/node-firefox:137.0.2-geckodriver-0.36.0-grid-4.36.0-20251001\nTagged selenium/standalone-firefox:137.0.2-geckodriver-0.36.0-grid-4.36.0-20251001\nTagged selenium/node-firefox:137.0.2-geckodriver-0.36.0-20251001\nTagged selenium/standalone-firefox:137.0.2-geckodriver-0.36.0-20251001\nTagged selenium/node-firefox:137.0.2-20251001\nTagged selenium/standalone-firefox:137.0.2-20251001\nTagged selenium/node-firefox:137.0-geckodriver-0.36-grid-4.36.0-20251001\nTagged selenium/standalone-firefox:137.0-geckodriver-0.36-grid-4.36.0-20251001\nTagged selenium/node-firefox:137.0-geckodriver-0.36-20251001\nTagged selenium/standalone-firefox:137.0-geckodriver-0.36-20251001\nTagged selenium/node-firefox:137.0-20251001\nTagged selenium/standalone-firefox:137.0-20251001\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.36.0/firefox_138.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.36.0 20251001 selenium false firefox true\nTagging images for browser firefox, version 4.36.0, build date 20251001, namespace selenium\nSelenium Grid version -> 4.36.0-20251001\nFirefox version -> 138.0.4\nShort Firefox version -> 138.0\nGeckoDriver version -> 0.36.0\nShort GeckoDriver version -> 0.36\nTagged selenium/node-firefox:138.0.4-geckodriver-0.36.0-grid-4.36.0-20251001\nTagged selenium/standalone-firefox:138.0.4-geckodriver-0.36.0-grid-4.36.0-20251001\nTagged selenium/node-firefox:138.0.4-geckodriver-0.36.0-20251001\nTagged selenium/standalone-firefox:138.0.4-geckodriver-0.36.0-20251001\nTagged selenium/node-firefox:138.0.4-20251001\nTagged selenium/standalone-firefox:138.0.4-20251001\nTagged selenium/node-firefox:138.0-geckodriver-0.36-grid-4.36.0-20251001\nTagged selenium/standalone-firefox:138.0-geckodriver-0.36-grid-4.36.0-20251001\nTagged selenium/node-firefox:138.0-geckodriver-0.36-20251001\nTagged selenium/standalone-firefox:138.0-geckodriver-0.36-20251001\nTagged selenium/node-firefox:138.0-20251001\nTagged selenium/standalone-firefox:138.0-20251001\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.36.0/firefox_139.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.36.0 20251001 selenium false firefox true\nTagging images for browser firefox, version 4.36.0, build date 20251001, namespace selenium\nSelenium Grid version -> 4.36.0-20251001\nFirefox version -> 139.0.4\nShort Firefox version -> 139.0\nGeckoDriver version -> 0.36.0\nShort GeckoDriver version -> 0.36\nTagged selenium/node-firefox:139.0.4-geckodriver-0.36.0-grid-4.36.0-20251001\nTagged selenium/standalone-firefox:139.0.4-geckodriver-0.36.0-grid-4.36.0-20251001\nTagged selenium/node-firefox:139.0.4-geckodriver-0.36.0-20251001\nTagged selenium/standalone-firefox:139.0.4-geckodriver-0.36.0-20251001\nTagged selenium/node-firefox:139.0.4-20251001\nTagged selenium/standalone-firefox:139.0.4-20251001\nTagged selenium/node-firefox:139.0-geckodriver-0.36-grid-4.36.0-20251001\nTagged selenium/standalone-firefox:139.0-geckodriver-0.36-grid-4.36.0-20251001\nTagged selenium/node-firefox:139.0-geckodriver-0.36-20251001\nTagged selenium/standalone-firefox:139.0-geckodriver-0.36-20251001\nTagged selenium/node-firefox:139.0-20251001\nTagged selenium/standalone-firefox:139.0-20251001\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.36.0/firefox_140.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.36.0 20251001 selenium false firefox true\nTagging images for browser firefox, version 4.36.0, build date 20251001, namespace selenium\nSelenium Grid version -> 4.36.0-20251001\nFirefox version -> 140.0.4\nShort Firefox version -> 140.0\nGeckoDriver version -> 0.36.0\nShort GeckoDriver version -> 0.36\nTagged selenium/node-firefox:140.0.4-geckodriver-0.36.0-grid-4.36.0-20251001\nTagged selenium/standalone-firefox:140.0.4-geckodriver-0.36.0-grid-4.36.0-20251001\nTagged selenium/node-firefox:140.0.4-geckodriver-0.36.0-20251001\nTagged selenium/standalone-firefox:140.0.4-geckodriver-0.36.0-20251001\nTagged selenium/node-firefox:140.0.4-20251001\nTagged selenium/standalone-firefox:140.0.4-20251001\nTagged selenium/node-firefox:140.0-geckodriver-0.36-grid-4.36.0-20251001\nTagged selenium/standalone-firefox:140.0-geckodriver-0.36-grid-4.36.0-20251001\nTagged selenium/node-firefox:140.0-geckodriver-0.36-20251001\nTagged selenium/standalone-firefox:140.0-geckodriver-0.36-20251001\nTagged selenium/node-firefox:140.0-20251001\nTagged selenium/standalone-firefox:140.0-20251001\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.36.0/firefox_141.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.36.0 20251001 selenium false firefox true\nTagging images for browser firefox, version 4.36.0, build date 20251001, namespace selenium\nSelenium Grid version -> 4.36.0-20251001\nFirefox version -> 141.0.3\nShort Firefox version -> 141.0\nGeckoDriver version -> 0.36.0\nShort GeckoDriver version -> 0.36\nTagged selenium/node-firefox:141.0.3-geckodriver-0.36.0-grid-4.36.0-20251001\nTagged selenium/standalone-firefox:141.0.3-geckodriver-0.36.0-grid-4.36.0-20251001\nTagged selenium/node-firefox:141.0.3-geckodriver-0.36.0-20251001\nTagged selenium/standalone-firefox:141.0.3-geckodriver-0.36.0-20251001\nTagged selenium/node-firefox:141.0.3-20251001\nTagged selenium/standalone-firefox:141.0.3-20251001\nTagged selenium/node-firefox:141.0-geckodriver-0.36-grid-4.36.0-20251001\nTagged selenium/standalone-firefox:141.0-geckodriver-0.36-grid-4.36.0-20251001\nTagged selenium/node-firefox:141.0-geckodriver-0.36-20251001\nTagged selenium/standalone-firefox:141.0-geckodriver-0.36-20251001\nTagged selenium/node-firefox:141.0-20251001\nTagged selenium/standalone-firefox:141.0-20251001\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.36.0/firefox_142.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.36.0 20251001 selenium false firefox true\nTagging images for browser firefox, version 4.36.0, build date 20251001, namespace selenium\nSelenium Grid version -> 4.36.0-20251001\nFirefox version -> 142.0.1\nShort Firefox version -> 142.0\nGeckoDriver version -> 0.36.0\nShort GeckoDriver version -> 0.36\nTagged selenium/node-firefox:142.0.1-geckodriver-0.36.0-grid-4.36.0-20251001\nTagged selenium/standalone-firefox:142.0.1-geckodriver-0.36.0-grid-4.36.0-20251001\nTagged selenium/node-firefox:142.0.1-geckodriver-0.36.0-20251001\nTagged selenium/standalone-firefox:142.0.1-geckodriver-0.36.0-20251001\nTagged selenium/node-firefox:142.0.1-20251001\nTagged selenium/standalone-firefox:142.0.1-20251001\nTagged selenium/node-firefox:142.0-geckodriver-0.36-grid-4.36.0-20251001\nTagged selenium/standalone-firefox:142.0-geckodriver-0.36-grid-4.36.0-20251001\nTagged selenium/node-firefox:142.0-geckodriver-0.36-20251001\nTagged selenium/standalone-firefox:142.0-geckodriver-0.36-20251001\nTagged selenium/node-firefox:142.0-20251001\nTagged selenium/standalone-firefox:142.0-20251001\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.36.0/firefox_98.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.36.0 20251001 selenium false firefox true\nTagging images for browser firefox, version 4.36.0, build date 20251001, namespace selenium\nSelenium Grid version -> 4.36.0-20251001\nFirefox version -> 98.0.2\nShort Firefox version -> 98.0\nGeckoDriver version -> 0.36.0\nShort GeckoDriver version -> 0.36\nTagged selenium/node-firefox:98.0.2-geckodriver-0.36.0-grid-4.36.0-20251001\nTagged selenium/standalone-firefox:98.0.2-geckodriver-0.36.0-grid-4.36.0-20251001\nTagged selenium/node-firefox:98.0.2-geckodriver-0.36.0-20251001\nTagged selenium/standalone-firefox:98.0.2-geckodriver-0.36.0-20251001\nTagged selenium/node-firefox:98.0.2-20251001\nTagged selenium/standalone-firefox:98.0.2-20251001\nTagged selenium/node-firefox:98.0-geckodriver-0.36-grid-4.36.0-20251001\nTagged selenium/standalone-firefox:98.0-geckodriver-0.36-grid-4.36.0-20251001\nTagged selenium/node-firefox:98.0-geckodriver-0.36-20251001\nTagged selenium/standalone-firefox:98.0-geckodriver-0.36-20251001\nTagged selenium/node-firefox:98.0-20251001\nTagged selenium/standalone-firefox:98.0-20251001\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.36.0/firefox_99.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.36.0 20251001 selenium false firefox true\nTagging images for browser firefox, version 4.36.0, build date 20251001, namespace selenium\nSelenium Grid version -> 4.36.0-20251001\nFirefox version -> 99.0.1\nShort Firefox version -> 99.0\nGeckoDriver version -> 0.36.0\nShort GeckoDriver version -> 0.36\nTagged selenium/node-firefox:99.0.1-geckodriver-0.36.0-grid-4.36.0-20251001\nTagged selenium/standalone-firefox:99.0.1-geckodriver-0.36.0-grid-4.36.0-20251001\nTagged selenium/node-firefox:99.0.1-geckodriver-0.36.0-20251001\nTagged selenium/standalone-firefox:99.0.1-geckodriver-0.36.0-20251001\nTagged selenium/node-firefox:99.0.1-20251001\nTagged selenium/standalone-firefox:99.0.1-20251001\nTagged selenium/node-firefox:99.0-geckodriver-0.36-grid-4.36.0-20251001\nTagged selenium/standalone-firefox:99.0-geckodriver-0.36-grid-4.36.0-20251001\nTagged selenium/node-firefox:99.0-geckodriver-0.36-20251001\nTagged selenium/standalone-firefox:99.0-geckodriver-0.36-20251001\nTagged selenium/node-firefox:99.0-20251001\nTagged selenium/standalone-firefox:99.0-20251001\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.37.0/chrome_100.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.37.0 20251020 selenium false chrome true\nTagging images for browser chrome, version 4.37.0, build date 20251020, namespace selenium\nSelenium Grid version -> 4.37.0-20251020\nChrome version -> 100.0.4896.127\nShort Chrome version -> 100.0\nChromeDriver version -> 100.0.4896.60\nShort ChromeDriver version -> 100.0\nTagged selenium/node-chrome:100.0.4896.127-chromedriver-100.0.4896.60-grid-4.37.0-20251020\nTagged selenium/standalone-chrome:100.0.4896.127-chromedriver-100.0.4896.60-grid-4.37.0-20251020\nTagged selenium/node-chrome:100.0.4896.127-chromedriver-100.0.4896.60-20251020\nTagged selenium/standalone-chrome:100.0.4896.127-chromedriver-100.0.4896.60-20251020\nTagged selenium/node-chrome:100.0.4896.127-20251020\nTagged selenium/standalone-chrome:100.0.4896.127-20251020\nTagged selenium/node-chrome:100.0-chromedriver-100.0-grid-4.37.0-20251020\nTagged selenium/standalone-chrome:100.0-chromedriver-100.0-grid-4.37.0-20251020\nTagged selenium/node-chrome:100.0-chromedriver-100.0-20251020\nTagged selenium/standalone-chrome:100.0-chromedriver-100.0-20251020\nTagged selenium/node-chrome:100.0-20251020\nTagged selenium/standalone-chrome:100.0-20251020\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.37.0/chrome_101.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.37.0 20251020 selenium false chrome true\nTagging images for browser chrome, version 4.37.0, build date 20251020, namespace selenium\nSelenium Grid version -> 4.37.0-20251020\nChrome version -> 101.0.4951.64\nShort Chrome version -> 101.0\nChromeDriver version -> 101.0.4951.41\nShort ChromeDriver version -> 101.0\nTagged selenium/node-chrome:101.0.4951.64-chromedriver-101.0.4951.41-grid-4.37.0-20251020\nTagged selenium/standalone-chrome:101.0.4951.64-chromedriver-101.0.4951.41-grid-4.37.0-20251020\nTagged selenium/node-chrome:101.0.4951.64-chromedriver-101.0.4951.41-20251020\nTagged selenium/standalone-chrome:101.0.4951.64-chromedriver-101.0.4951.41-20251020\nTagged selenium/node-chrome:101.0.4951.64-20251020\nTagged selenium/standalone-chrome:101.0.4951.64-20251020\nTagged selenium/node-chrome:101.0-chromedriver-101.0-grid-4.37.0-20251020\nTagged selenium/standalone-chrome:101.0-chromedriver-101.0-grid-4.37.0-20251020\nTagged selenium/node-chrome:101.0-chromedriver-101.0-20251020\nTagged selenium/standalone-chrome:101.0-chromedriver-101.0-20251020\nTagged selenium/node-chrome:101.0-20251020\nTagged selenium/standalone-chrome:101.0-20251020\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.37.0/chrome_102.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.37.0 20251020 selenium false chrome true\nTagging images for browser chrome, version 4.37.0, build date 20251020, namespace selenium\nSelenium Grid version -> 4.37.0-20251020\nChrome version -> 102.0.5005.115\nShort Chrome version -> 102.0\nChromeDriver version -> 102.0.5005.61\nShort ChromeDriver version -> 102.0\nTagged selenium/node-chrome:102.0.5005.115-chromedriver-102.0.5005.61-grid-4.37.0-20251020\nTagged selenium/standalone-chrome:102.0.5005.115-chromedriver-102.0.5005.61-grid-4.37.0-20251020\nTagged selenium/node-chrome:102.0.5005.115-chromedriver-102.0.5005.61-20251020\nTagged selenium/standalone-chrome:102.0.5005.115-chromedriver-102.0.5005.61-20251020\nTagged selenium/node-chrome:102.0.5005.115-20251020\nTagged selenium/standalone-chrome:102.0.5005.115-20251020\nTagged selenium/node-chrome:102.0-chromedriver-102.0-grid-4.37.0-20251020\nTagged selenium/standalone-chrome:102.0-chromedriver-102.0-grid-4.37.0-20251020\nTagged selenium/node-chrome:102.0-chromedriver-102.0-20251020\nTagged selenium/standalone-chrome:102.0-chromedriver-102.0-20251020\nTagged selenium/node-chrome:102.0-20251020\nTagged selenium/standalone-chrome:102.0-20251020\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.37.0/chrome_103.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.37.0 20251020 selenium false chrome true\nTagging images for browser chrome, version 4.37.0, build date 20251020, namespace selenium\nSelenium Grid version -> 4.37.0-20251020\nChrome version -> 103.0.5060.134\nShort Chrome version -> 103.0\nChromeDriver version -> 103.0.5060.134\nShort ChromeDriver version -> 103.0\nTagged selenium/node-chrome:103.0.5060.134-chromedriver-103.0.5060.134-grid-4.37.0-20251020\nTagged selenium/standalone-chrome:103.0.5060.134-chromedriver-103.0.5060.134-grid-4.37.0-20251020\nTagged selenium/node-chrome:103.0.5060.134-chromedriver-103.0.5060.134-20251020\nTagged selenium/standalone-chrome:103.0.5060.134-chromedriver-103.0.5060.134-20251020\nTagged selenium/node-chrome:103.0.5060.134-20251020\nTagged selenium/standalone-chrome:103.0.5060.134-20251020\nTagged selenium/node-chrome:103.0-chromedriver-103.0-grid-4.37.0-20251020\nTagged selenium/standalone-chrome:103.0-chromedriver-103.0-grid-4.37.0-20251020\nTagged selenium/node-chrome:103.0-chromedriver-103.0-20251020\nTagged selenium/standalone-chrome:103.0-chromedriver-103.0-20251020\nTagged selenium/node-chrome:103.0-20251020\nTagged selenium/standalone-chrome:103.0-20251020\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.37.0/chrome_104.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.37.0 20251020 selenium false chrome true\nTagging images for browser chrome, version 4.37.0, build date 20251020, namespace selenium\nSelenium Grid version -> 4.37.0-20251020\nChrome version -> 104.0.5112.101\nShort Chrome version -> 104.0\nChromeDriver version -> 104.0.5112.79\nShort ChromeDriver version -> 104.0\nTagged selenium/node-chrome:104.0.5112.101-chromedriver-104.0.5112.79-grid-4.37.0-20251020\nTagged selenium/standalone-chrome:104.0.5112.101-chromedriver-104.0.5112.79-grid-4.37.0-20251020\nTagged selenium/node-chrome:104.0.5112.101-chromedriver-104.0.5112.79-20251020\nTagged selenium/standalone-chrome:104.0.5112.101-chromedriver-104.0.5112.79-20251020\nTagged selenium/node-chrome:104.0.5112.101-20251020\nTagged selenium/standalone-chrome:104.0.5112.101-20251020\nTagged selenium/node-chrome:104.0-chromedriver-104.0-grid-4.37.0-20251020\nTagged selenium/standalone-chrome:104.0-chromedriver-104.0-grid-4.37.0-20251020\nTagged selenium/node-chrome:104.0-chromedriver-104.0-20251020\nTagged selenium/standalone-chrome:104.0-chromedriver-104.0-20251020\nTagged selenium/node-chrome:104.0-20251020\nTagged selenium/standalone-chrome:104.0-20251020\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.37.0/chrome_105.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.37.0 20251020 selenium false chrome true\nTagging images for browser chrome, version 4.37.0, build date 20251020, namespace selenium\nSelenium Grid version -> 4.37.0-20251020\nChrome version -> 105.0.5195.125\nShort Chrome version -> 105.0\nChromeDriver version -> 105.0.5195.52\nShort ChromeDriver version -> 105.0\nTagged selenium/node-chrome:105.0.5195.125-chromedriver-105.0.5195.52-grid-4.37.0-20251020\nTagged selenium/standalone-chrome:105.0.5195.125-chromedriver-105.0.5195.52-grid-4.37.0-20251020\nTagged selenium/node-chrome:105.0.5195.125-chromedriver-105.0.5195.52-20251020\nTagged selenium/standalone-chrome:105.0.5195.125-chromedriver-105.0.5195.52-20251020\nTagged selenium/node-chrome:105.0.5195.125-20251020\nTagged selenium/standalone-chrome:105.0.5195.125-20251020\nTagged selenium/node-chrome:105.0-chromedriver-105.0-grid-4.37.0-20251020\nTagged selenium/standalone-chrome:105.0-chromedriver-105.0-grid-4.37.0-20251020\nTagged selenium/node-chrome:105.0-chromedriver-105.0-20251020\nTagged selenium/standalone-chrome:105.0-chromedriver-105.0-20251020\nTagged selenium/node-chrome:105.0-20251020\nTagged selenium/standalone-chrome:105.0-20251020\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.37.0/chrome_106.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.37.0 20251020 selenium false chrome true\nTagging images for browser chrome, version 4.37.0, build date 20251020, namespace selenium\nSelenium Grid version -> 4.37.0-20251020\nChrome version -> 106.0.5249.119\nShort Chrome version -> 106.0\nChromeDriver version -> 106.0.5249.61\nShort ChromeDriver version -> 106.0\nTagged selenium/node-chrome:106.0.5249.119-chromedriver-106.0.5249.61-grid-4.37.0-20251020\nTagged selenium/standalone-chrome:106.0.5249.119-chromedriver-106.0.5249.61-grid-4.37.0-20251020\nTagged selenium/node-chrome:106.0.5249.119-chromedriver-106.0.5249.61-20251020\nTagged selenium/standalone-chrome:106.0.5249.119-chromedriver-106.0.5249.61-20251020\nTagged selenium/node-chrome:106.0.5249.119-20251020\nTagged selenium/standalone-chrome:106.0.5249.119-20251020\nTagged selenium/node-chrome:106.0-chromedriver-106.0-grid-4.37.0-20251020\nTagged selenium/standalone-chrome:106.0-chromedriver-106.0-grid-4.37.0-20251020\nTagged selenium/node-chrome:106.0-chromedriver-106.0-20251020\nTagged selenium/standalone-chrome:106.0-chromedriver-106.0-20251020\nTagged selenium/node-chrome:106.0-20251020\nTagged selenium/standalone-chrome:106.0-20251020\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.37.0/chrome_107.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.37.0 20251020 selenium false chrome true\nTagging images for browser chrome, version 4.37.0, build date 20251020, namespace selenium\nSelenium Grid version -> 4.37.0-20251020\nChrome version -> 107.0.5304.121\nShort Chrome version -> 107.0\nChromeDriver version -> 107.0.5304.62\nShort ChromeDriver version -> 107.0\nTagged selenium/node-chrome:107.0.5304.121-chromedriver-107.0.5304.62-grid-4.37.0-20251020\nTagged selenium/standalone-chrome:107.0.5304.121-chromedriver-107.0.5304.62-grid-4.37.0-20251020\nTagged selenium/node-chrome:107.0.5304.121-chromedriver-107.0.5304.62-20251020\nTagged selenium/standalone-chrome:107.0.5304.121-chromedriver-107.0.5304.62-20251020\nTagged selenium/node-chrome:107.0.5304.121-20251020\nTagged selenium/standalone-chrome:107.0.5304.121-20251020\nTagged selenium/node-chrome:107.0-chromedriver-107.0-grid-4.37.0-20251020\nTagged selenium/standalone-chrome:107.0-chromedriver-107.0-grid-4.37.0-20251020\nTagged selenium/node-chrome:107.0-chromedriver-107.0-20251020\nTagged selenium/standalone-chrome:107.0-chromedriver-107.0-20251020\nTagged selenium/node-chrome:107.0-20251020\nTagged selenium/standalone-chrome:107.0-20251020\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.37.0/chrome_108.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.37.0 20251020 selenium false chrome true\nTagging images for browser chrome, version 4.37.0, build date 20251020, namespace selenium\nSelenium Grid version -> 4.37.0-20251020\nChrome version -> 108.0.5359.124\nShort Chrome version -> 108.0\nChromeDriver version -> 108.0.5359.71\nShort ChromeDriver version -> 108.0\nTagged selenium/node-chrome:108.0.5359.124-chromedriver-108.0.5359.71-grid-4.37.0-20251020\nTagged selenium/standalone-chrome:108.0.5359.124-chromedriver-108.0.5359.71-grid-4.37.0-20251020\nTagged selenium/node-chrome:108.0.5359.124-chromedriver-108.0.5359.71-20251020\nTagged selenium/standalone-chrome:108.0.5359.124-chromedriver-108.0.5359.71-20251020\nTagged selenium/node-chrome:108.0.5359.124-20251020\nTagged selenium/standalone-chrome:108.0.5359.124-20251020\nTagged selenium/node-chrome:108.0-chromedriver-108.0-grid-4.37.0-20251020\nTagged selenium/standalone-chrome:108.0-chromedriver-108.0-grid-4.37.0-20251020\nTagged selenium/node-chrome:108.0-chromedriver-108.0-20251020\nTagged selenium/standalone-chrome:108.0-chromedriver-108.0-20251020\nTagged selenium/node-chrome:108.0-20251020\nTagged selenium/standalone-chrome:108.0-20251020\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.37.0/chrome_109.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.37.0 20251020 selenium false chrome true\nTagging images for browser chrome, version 4.37.0, build date 20251020, namespace selenium\nSelenium Grid version -> 4.37.0-20251020\nChrome version -> 109.0.5414.119\nShort Chrome version -> 109.0\nChromeDriver version -> 109.0.5414.74\nShort ChromeDriver version -> 109.0\nTagged selenium/node-chrome:109.0.5414.119-chromedriver-109.0.5414.74-grid-4.37.0-20251020\nTagged selenium/standalone-chrome:109.0.5414.119-chromedriver-109.0.5414.74-grid-4.37.0-20251020\nTagged selenium/node-chrome:109.0.5414.119-chromedriver-109.0.5414.74-20251020\nTagged selenium/standalone-chrome:109.0.5414.119-chromedriver-109.0.5414.74-20251020\nTagged selenium/node-chrome:109.0.5414.119-20251020\nTagged selenium/standalone-chrome:109.0.5414.119-20251020\nTagged selenium/node-chrome:109.0-chromedriver-109.0-grid-4.37.0-20251020\nTagged selenium/standalone-chrome:109.0-chromedriver-109.0-grid-4.37.0-20251020\nTagged selenium/node-chrome:109.0-chromedriver-109.0-20251020\nTagged selenium/standalone-chrome:109.0-chromedriver-109.0-20251020\nTagged selenium/node-chrome:109.0-20251020\nTagged selenium/standalone-chrome:109.0-20251020\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.37.0/chrome_110.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.37.0 20251020 selenium false chrome true\nTagging images for browser chrome, version 4.37.0, build date 20251020, namespace selenium\nSelenium Grid version -> 4.37.0-20251020\nChrome version -> 110.0.5481.177\nShort Chrome version -> 110.0\nChromeDriver version -> 110.0.5481.77\nShort ChromeDriver version -> 110.0\nTagged selenium/node-chrome:110.0.5481.177-chromedriver-110.0.5481.77-grid-4.37.0-20251020\nTagged selenium/standalone-chrome:110.0.5481.177-chromedriver-110.0.5481.77-grid-4.37.0-20251020\nTagged selenium/node-chrome:110.0.5481.177-chromedriver-110.0.5481.77-20251020\nTagged selenium/standalone-chrome:110.0.5481.177-chromedriver-110.0.5481.77-20251020\nTagged selenium/node-chrome:110.0.5481.177-20251020\nTagged selenium/standalone-chrome:110.0.5481.177-20251020\nTagged selenium/node-chrome:110.0-chromedriver-110.0-grid-4.37.0-20251020\nTagged selenium/standalone-chrome:110.0-chromedriver-110.0-grid-4.37.0-20251020\nTagged selenium/node-chrome:110.0-chromedriver-110.0-20251020\nTagged selenium/standalone-chrome:110.0-chromedriver-110.0-20251020\nTagged selenium/node-chrome:110.0-20251020\nTagged selenium/standalone-chrome:110.0-20251020\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.37.0/chrome_111.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.37.0 20251020 selenium false chrome true\nTagging images for browser chrome, version 4.37.0, build date 20251020, namespace selenium\nSelenium Grid version -> 4.37.0-20251020\nChrome version -> 111.0.5563.146\nShort Chrome version -> 111.0\nChromeDriver version -> 111.0.5563.64\nShort ChromeDriver version -> 111.0\nTagged selenium/node-chrome:111.0.5563.146-chromedriver-111.0.5563.64-grid-4.37.0-20251020\nTagged selenium/standalone-chrome:111.0.5563.146-chromedriver-111.0.5563.64-grid-4.37.0-20251020\nTagged selenium/node-chrome:111.0.5563.146-chromedriver-111.0.5563.64-20251020\nTagged selenium/standalone-chrome:111.0.5563.146-chromedriver-111.0.5563.64-20251020\nTagged selenium/node-chrome:111.0.5563.146-20251020\nTagged selenium/standalone-chrome:111.0.5563.146-20251020\nTagged selenium/node-chrome:111.0-chromedriver-111.0-grid-4.37.0-20251020\nTagged selenium/standalone-chrome:111.0-chromedriver-111.0-grid-4.37.0-20251020\nTagged selenium/node-chrome:111.0-chromedriver-111.0-20251020\nTagged selenium/standalone-chrome:111.0-chromedriver-111.0-20251020\nTagged selenium/node-chrome:111.0-20251020\nTagged selenium/standalone-chrome:111.0-20251020\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.37.0/chrome_112.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.37.0 20251020 selenium false chrome true\nTagging images for browser chrome, version 4.37.0, build date 20251020, namespace selenium\nSelenium Grid version -> 4.37.0-20251020\nChrome version -> 112.0.5615.165\nShort Chrome version -> 112.0\nChromeDriver version -> 112.0.5615.49\nShort ChromeDriver version -> 112.0\nTagged selenium/node-chrome:112.0.5615.165-chromedriver-112.0.5615.49-grid-4.37.0-20251020\nTagged selenium/standalone-chrome:112.0.5615.165-chromedriver-112.0.5615.49-grid-4.37.0-20251020\nTagged selenium/node-chrome:112.0.5615.165-chromedriver-112.0.5615.49-20251020\nTagged selenium/standalone-chrome:112.0.5615.165-chromedriver-112.0.5615.49-20251020\nTagged selenium/node-chrome:112.0.5615.165-20251020\nTagged selenium/standalone-chrome:112.0.5615.165-20251020\nTagged selenium/node-chrome:112.0-chromedriver-112.0-grid-4.37.0-20251020\nTagged selenium/standalone-chrome:112.0-chromedriver-112.0-grid-4.37.0-20251020\nTagged selenium/node-chrome:112.0-chromedriver-112.0-20251020\nTagged selenium/standalone-chrome:112.0-chromedriver-112.0-20251020\nTagged selenium/node-chrome:112.0-20251020\nTagged selenium/standalone-chrome:112.0-20251020\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.37.0/chrome_113.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.37.0 20251020 selenium false chrome true\nTagging images for browser chrome, version 4.37.0, build date 20251020, namespace selenium\nSelenium Grid version -> 4.37.0-20251020\nChrome version -> 113.0.5672.126\nShort Chrome version -> 113.0\nChromeDriver version -> 113.0.5672.63\nShort ChromeDriver version -> 113.0\nTagged selenium/node-chrome:113.0.5672.126-chromedriver-113.0.5672.63-grid-4.37.0-20251020\nTagged selenium/standalone-chrome:113.0.5672.126-chromedriver-113.0.5672.63-grid-4.37.0-20251020\nTagged selenium/node-chrome:113.0.5672.126-chromedriver-113.0.5672.63-20251020\nTagged selenium/standalone-chrome:113.0.5672.126-chromedriver-113.0.5672.63-20251020\nTagged selenium/node-chrome:113.0.5672.126-20251020\nTagged selenium/standalone-chrome:113.0.5672.126-20251020\nTagged selenium/node-chrome:113.0-chromedriver-113.0-grid-4.37.0-20251020\nTagged selenium/standalone-chrome:113.0-chromedriver-113.0-grid-4.37.0-20251020\nTagged selenium/node-chrome:113.0-chromedriver-113.0-20251020\nTagged selenium/standalone-chrome:113.0-chromedriver-113.0-20251020\nTagged selenium/node-chrome:113.0-20251020\nTagged selenium/standalone-chrome:113.0-20251020\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.37.0/chrome_114.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.37.0 20251020 selenium false chrome true\nTagging images for browser chrome, version 4.37.0, build date 20251020, namespace selenium\nSelenium Grid version -> 4.37.0-20251020\nChrome version -> 114.0.5735.198\nShort Chrome version -> 114.0\nChromeDriver version -> 114.0.5735.90\nShort ChromeDriver version -> 114.0\nTagged selenium/node-chrome:114.0.5735.198-chromedriver-114.0.5735.90-grid-4.37.0-20251020\nTagged selenium/standalone-chrome:114.0.5735.198-chromedriver-114.0.5735.90-grid-4.37.0-20251020\nTagged selenium/node-chrome:114.0.5735.198-chromedriver-114.0.5735.90-20251020\nTagged selenium/standalone-chrome:114.0.5735.198-chromedriver-114.0.5735.90-20251020\nTagged selenium/node-chrome:114.0.5735.198-20251020\nTagged selenium/standalone-chrome:114.0.5735.198-20251020\nTagged selenium/node-chrome:114.0-chromedriver-114.0-grid-4.37.0-20251020\nTagged selenium/standalone-chrome:114.0-chromedriver-114.0-grid-4.37.0-20251020\nTagged selenium/node-chrome:114.0-chromedriver-114.0-20251020\nTagged selenium/standalone-chrome:114.0-chromedriver-114.0-20251020\nTagged selenium/node-chrome:114.0-20251020\nTagged selenium/standalone-chrome:114.0-20251020\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.37.0/chrome_115.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.37.0 20251020 selenium false chrome true\nTagging images for browser chrome, version 4.37.0, build date 20251020, namespace selenium\nSelenium Grid version -> 4.37.0-20251020\nChrome version -> 115.0.5790.170\nShort Chrome version -> 115.0\nChromeDriver version -> 115.0.5790.170\nShort ChromeDriver version -> 115.0\nTagged selenium/node-chrome:115.0.5790.170-chromedriver-115.0.5790.170-grid-4.37.0-20251020\nTagged selenium/standalone-chrome:115.0.5790.170-chromedriver-115.0.5790.170-grid-4.37.0-20251020\nTagged selenium/node-chrome:115.0.5790.170-chromedriver-115.0.5790.170-20251020\nTagged selenium/standalone-chrome:115.0.5790.170-chromedriver-115.0.5790.170-20251020\nTagged selenium/node-chrome:115.0.5790.170-20251020\nTagged selenium/standalone-chrome:115.0.5790.170-20251020\nTagged selenium/node-chrome:115.0-chromedriver-115.0-grid-4.37.0-20251020\nTagged selenium/standalone-chrome:115.0-chromedriver-115.0-grid-4.37.0-20251020\nTagged selenium/node-chrome:115.0-chromedriver-115.0-20251020\nTagged selenium/standalone-chrome:115.0-chromedriver-115.0-20251020\nTagged selenium/node-chrome:115.0-20251020\nTagged selenium/standalone-chrome:115.0-20251020\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.37.0/chrome_116.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.37.0 20251020 selenium false chrome true\nTagging images for browser chrome, version 4.37.0, build date 20251020, namespace selenium\nSelenium Grid version -> 4.37.0-20251020\nChrome version -> 116.0.5845.187\nShort Chrome version -> 116.0\nChromeDriver version -> 116.0.5845.96\nShort ChromeDriver version -> 116.0\nTagged selenium/node-chrome:116.0.5845.187-chromedriver-116.0.5845.96-grid-4.37.0-20251020\nTagged selenium/standalone-chrome:116.0.5845.187-chromedriver-116.0.5845.96-grid-4.37.0-20251020\nTagged selenium/node-chrome:116.0.5845.187-chromedriver-116.0.5845.96-20251020\nTagged selenium/standalone-chrome:116.0.5845.187-chromedriver-116.0.5845.96-20251020\nTagged selenium/node-chrome:116.0.5845.187-20251020\nTagged selenium/standalone-chrome:116.0.5845.187-20251020\nTagged selenium/node-chrome:116.0-chromedriver-116.0-grid-4.37.0-20251020\nTagged selenium/standalone-chrome:116.0-chromedriver-116.0-grid-4.37.0-20251020\nTagged selenium/node-chrome:116.0-chromedriver-116.0-20251020\nTagged selenium/standalone-chrome:116.0-chromedriver-116.0-20251020\nTagged selenium/node-chrome:116.0-20251020\nTagged selenium/standalone-chrome:116.0-20251020\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.37.0/chrome_117.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.37.0 20251020 selenium false chrome true\nTagging images for browser chrome, version 4.37.0, build date 20251020, namespace selenium\nSelenium Grid version -> 4.37.0-20251020\nChrome version -> 117.0.5938.149\nShort Chrome version -> 117.0\nChromeDriver version -> 117.0.5938.149\nShort ChromeDriver version -> 117.0\nTagged selenium/node-chrome:117.0.5938.149-chromedriver-117.0.5938.149-grid-4.37.0-20251020\nTagged selenium/standalone-chrome:117.0.5938.149-chromedriver-117.0.5938.149-grid-4.37.0-20251020\nTagged selenium/node-chrome:117.0.5938.149-chromedriver-117.0.5938.149-20251020\nTagged selenium/standalone-chrome:117.0.5938.149-chromedriver-117.0.5938.149-20251020\nTagged selenium/node-chrome:117.0.5938.149-20251020\nTagged selenium/standalone-chrome:117.0.5938.149-20251020\nTagged selenium/node-chrome:117.0-chromedriver-117.0-grid-4.37.0-20251020\nTagged selenium/standalone-chrome:117.0-chromedriver-117.0-grid-4.37.0-20251020\nTagged selenium/node-chrome:117.0-chromedriver-117.0-20251020\nTagged selenium/standalone-chrome:117.0-chromedriver-117.0-20251020\nTagged selenium/node-chrome:117.0-20251020\nTagged selenium/standalone-chrome:117.0-20251020\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.37.0/chrome_118.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.37.0 20251020 selenium false chrome true\nTagging images for browser chrome, version 4.37.0, build date 20251020, namespace selenium\nSelenium Grid version -> 4.37.0-20251020\nChrome version -> 118.0.5993.117\nShort Chrome version -> 118.0\nChromeDriver version -> 118.0.5993.70\nShort ChromeDriver version -> 118.0\nTagged selenium/node-chrome:118.0.5993.117-chromedriver-118.0.5993.70-grid-4.37.0-20251020\nTagged selenium/standalone-chrome:118.0.5993.117-chromedriver-118.0.5993.70-grid-4.37.0-20251020\nTagged selenium/node-chrome:118.0.5993.117-chromedriver-118.0.5993.70-20251020\nTagged selenium/standalone-chrome:118.0.5993.117-chromedriver-118.0.5993.70-20251020\nTagged selenium/node-chrome:118.0.5993.117-20251020\nTagged selenium/standalone-chrome:118.0.5993.117-20251020\nTagged selenium/node-chrome:118.0-chromedriver-118.0-grid-4.37.0-20251020\nTagged selenium/standalone-chrome:118.0-chromedriver-118.0-grid-4.37.0-20251020\nTagged selenium/node-chrome:118.0-chromedriver-118.0-20251020\nTagged selenium/standalone-chrome:118.0-chromedriver-118.0-20251020\nTagged selenium/node-chrome:118.0-20251020\nTagged selenium/standalone-chrome:118.0-20251020\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.37.0/chrome_119.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.37.0 20251020 selenium false chrome true\nTagging images for browser chrome, version 4.37.0, build date 20251020, namespace selenium\nSelenium Grid version -> 4.37.0-20251020\nChrome version -> 119.0.6045.199\nShort Chrome version -> 119.0\nChromeDriver version -> 119.0.6045.105\nShort ChromeDriver version -> 119.0\nTagged selenium/node-chrome:119.0.6045.199-chromedriver-119.0.6045.105-grid-4.37.0-20251020\nTagged selenium/standalone-chrome:119.0.6045.199-chromedriver-119.0.6045.105-grid-4.37.0-20251020\nTagged selenium/node-chrome:119.0.6045.199-chromedriver-119.0.6045.105-20251020\nTagged selenium/standalone-chrome:119.0.6045.199-chromedriver-119.0.6045.105-20251020\nTagged selenium/node-chrome:119.0.6045.199-20251020\nTagged selenium/standalone-chrome:119.0.6045.199-20251020\nTagged selenium/node-chrome:119.0-chromedriver-119.0-grid-4.37.0-20251020\nTagged selenium/standalone-chrome:119.0-chromedriver-119.0-grid-4.37.0-20251020\nTagged selenium/node-chrome:119.0-chromedriver-119.0-20251020\nTagged selenium/standalone-chrome:119.0-chromedriver-119.0-20251020\nTagged selenium/node-chrome:119.0-20251020\nTagged selenium/standalone-chrome:119.0-20251020\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.37.0/chrome_120.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.37.0 20251020 selenium false chrome true\nTagging images for browser chrome, version 4.37.0, build date 20251020, namespace selenium\nSelenium Grid version -> 4.37.0-20251020\nChrome version -> 120.0.6099.224\nShort Chrome version -> 120.0\nChromeDriver version -> 120.0.6099.109\nShort ChromeDriver version -> 120.0\nTagged selenium/node-chrome:120.0.6099.224-chromedriver-120.0.6099.109-grid-4.37.0-20251020\nTagged selenium/standalone-chrome:120.0.6099.224-chromedriver-120.0.6099.109-grid-4.37.0-20251020\nTagged selenium/node-chrome:120.0.6099.224-chromedriver-120.0.6099.109-20251020\nTagged selenium/standalone-chrome:120.0.6099.224-chromedriver-120.0.6099.109-20251020\nTagged selenium/node-chrome:120.0.6099.224-20251020\nTagged selenium/standalone-chrome:120.0.6099.224-20251020\nTagged selenium/node-chrome:120.0-chromedriver-120.0-grid-4.37.0-20251020\nTagged selenium/standalone-chrome:120.0-chromedriver-120.0-grid-4.37.0-20251020\nTagged selenium/node-chrome:120.0-chromedriver-120.0-20251020\nTagged selenium/standalone-chrome:120.0-chromedriver-120.0-20251020\nTagged selenium/node-chrome:120.0-20251020\nTagged selenium/standalone-chrome:120.0-20251020\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.37.0/chrome_121.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.37.0 20251020 selenium false chrome true\nTagging images for browser chrome, version 4.37.0, build date 20251020, namespace selenium\nSelenium Grid version -> 4.37.0-20251020\nChrome version -> 121.0.6167.184\nShort Chrome version -> 121.0\nChromeDriver version -> 121.0.6167.184\nShort ChromeDriver version -> 121.0\nTagged selenium/node-chrome:121.0.6167.184-chromedriver-121.0.6167.184-grid-4.37.0-20251020\nTagged selenium/standalone-chrome:121.0.6167.184-chromedriver-121.0.6167.184-grid-4.37.0-20251020\nTagged selenium/node-chrome:121.0.6167.184-chromedriver-121.0.6167.184-20251020\nTagged selenium/standalone-chrome:121.0.6167.184-chromedriver-121.0.6167.184-20251020\nTagged selenium/node-chrome:121.0.6167.184-20251020\nTagged selenium/standalone-chrome:121.0.6167.184-20251020\nTagged selenium/node-chrome:121.0-chromedriver-121.0-grid-4.37.0-20251020\nTagged selenium/standalone-chrome:121.0-chromedriver-121.0-grid-4.37.0-20251020\nTagged selenium/node-chrome:121.0-chromedriver-121.0-20251020\nTagged selenium/standalone-chrome:121.0-chromedriver-121.0-20251020\nTagged selenium/node-chrome:121.0-20251020\nTagged selenium/standalone-chrome:121.0-20251020\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.37.0/chrome_122.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.37.0 20251020 selenium false chrome true\nTagging images for browser chrome, version 4.37.0, build date 20251020, namespace selenium\nSelenium Grid version -> 4.37.0-20251020\nChrome version -> 122.0.6261.128\nShort Chrome version -> 122.0\nChromeDriver version -> 122.0.6261.128\nShort ChromeDriver version -> 122.0\nTagged selenium/node-chrome:122.0.6261.128-chromedriver-122.0.6261.128-grid-4.37.0-20251020\nTagged selenium/standalone-chrome:122.0.6261.128-chromedriver-122.0.6261.128-grid-4.37.0-20251020\nTagged selenium/node-chrome:122.0.6261.128-chromedriver-122.0.6261.128-20251020\nTagged selenium/standalone-chrome:122.0.6261.128-chromedriver-122.0.6261.128-20251020\nTagged selenium/node-chrome:122.0.6261.128-20251020\nTagged selenium/standalone-chrome:122.0.6261.128-20251020\nTagged selenium/node-chrome:122.0-chromedriver-122.0-grid-4.37.0-20251020\nTagged selenium/standalone-chrome:122.0-chromedriver-122.0-grid-4.37.0-20251020\nTagged selenium/node-chrome:122.0-chromedriver-122.0-20251020\nTagged selenium/standalone-chrome:122.0-chromedriver-122.0-20251020\nTagged selenium/node-chrome:122.0-20251020\nTagged selenium/standalone-chrome:122.0-20251020\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.37.0/chrome_123.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.37.0 20251020 selenium false chrome true\nTagging images for browser chrome, version 4.37.0, build date 20251020, namespace selenium\nSelenium Grid version -> 4.37.0-20251020\nChrome version -> 123.0.6312.122\nShort Chrome version -> 123.0\nChromeDriver version -> 123.0.6312.122\nShort ChromeDriver version -> 123.0\nTagged selenium/node-chrome:123.0.6312.122-chromedriver-123.0.6312.122-grid-4.37.0-20251020\nTagged selenium/standalone-chrome:123.0.6312.122-chromedriver-123.0.6312.122-grid-4.37.0-20251020\nTagged selenium/node-chrome:123.0.6312.122-chromedriver-123.0.6312.122-20251020\nTagged selenium/standalone-chrome:123.0.6312.122-chromedriver-123.0.6312.122-20251020\nTagged selenium/node-chrome:123.0.6312.122-20251020\nTagged selenium/standalone-chrome:123.0.6312.122-20251020\nTagged selenium/node-chrome:123.0-chromedriver-123.0-grid-4.37.0-20251020\nTagged selenium/standalone-chrome:123.0-chromedriver-123.0-grid-4.37.0-20251020\nTagged selenium/node-chrome:123.0-chromedriver-123.0-20251020\nTagged selenium/standalone-chrome:123.0-chromedriver-123.0-20251020\nTagged selenium/node-chrome:123.0-20251020\nTagged selenium/standalone-chrome:123.0-20251020\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.37.0/chrome_124.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.37.0 20251020 selenium false chrome true\nTagging images for browser chrome, version 4.37.0, build date 20251020, namespace selenium\nSelenium Grid version -> 4.37.0-20251020\nChrome version -> 124.0.6367.207\nShort Chrome version -> 124.0\nChromeDriver version -> 124.0.6367.207\nShort ChromeDriver version -> 124.0\nTagged selenium/node-chrome:124.0.6367.207-chromedriver-124.0.6367.207-grid-4.37.0-20251020\nTagged selenium/standalone-chrome:124.0.6367.207-chromedriver-124.0.6367.207-grid-4.37.0-20251020\nTagged selenium/node-chrome:124.0.6367.207-chromedriver-124.0.6367.207-20251020\nTagged selenium/standalone-chrome:124.0.6367.207-chromedriver-124.0.6367.207-20251020\nTagged selenium/node-chrome:124.0.6367.207-20251020\nTagged selenium/standalone-chrome:124.0.6367.207-20251020\nTagged selenium/node-chrome:124.0-chromedriver-124.0-grid-4.37.0-20251020\nTagged selenium/standalone-chrome:124.0-chromedriver-124.0-grid-4.37.0-20251020\nTagged selenium/node-chrome:124.0-chromedriver-124.0-20251020\nTagged selenium/standalone-chrome:124.0-chromedriver-124.0-20251020\nTagged selenium/node-chrome:124.0-20251020\nTagged selenium/standalone-chrome:124.0-20251020\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.37.0/chrome_125.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.37.0 20251020 selenium false chrome true\nTagging images for browser chrome, version 4.37.0, build date 20251020, namespace selenium\nSelenium Grid version -> 4.37.0-20251020\nChrome version -> 125.0.6422.141\nShort Chrome version -> 125.0\nChromeDriver version -> 125.0.6422.141\nShort ChromeDriver version -> 125.0\nTagged selenium/node-chrome:125.0.6422.141-chromedriver-125.0.6422.141-grid-4.37.0-20251020\nTagged selenium/standalone-chrome:125.0.6422.141-chromedriver-125.0.6422.141-grid-4.37.0-20251020\nTagged selenium/node-chrome:125.0.6422.141-chromedriver-125.0.6422.141-20251020\nTagged selenium/standalone-chrome:125.0.6422.141-chromedriver-125.0.6422.141-20251020\nTagged selenium/node-chrome:125.0.6422.141-20251020\nTagged selenium/standalone-chrome:125.0.6422.141-20251020\nTagged selenium/node-chrome:125.0-chromedriver-125.0-grid-4.37.0-20251020\nTagged selenium/standalone-chrome:125.0-chromedriver-125.0-grid-4.37.0-20251020\nTagged selenium/node-chrome:125.0-chromedriver-125.0-20251020\nTagged selenium/standalone-chrome:125.0-chromedriver-125.0-20251020\nTagged selenium/node-chrome:125.0-20251020\nTagged selenium/standalone-chrome:125.0-20251020\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.37.0/chrome_126.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.37.0 20251020 selenium false chrome true\nTagging images for browser chrome, version 4.37.0, build date 20251020, namespace selenium\nSelenium Grid version -> 4.37.0-20251020\nChrome version -> 126.0.6478.182\nShort Chrome version -> 126.0\nChromeDriver version -> 126.0.6478.182\nShort ChromeDriver version -> 126.0\nTagged selenium/node-chrome:126.0.6478.182-chromedriver-126.0.6478.182-grid-4.37.0-20251020\nTagged selenium/standalone-chrome:126.0.6478.182-chromedriver-126.0.6478.182-grid-4.37.0-20251020\nTagged selenium/node-chrome:126.0.6478.182-chromedriver-126.0.6478.182-20251020\nTagged selenium/standalone-chrome:126.0.6478.182-chromedriver-126.0.6478.182-20251020\nTagged selenium/node-chrome:126.0.6478.182-20251020\nTagged selenium/standalone-chrome:126.0.6478.182-20251020\nTagged selenium/node-chrome:126.0-chromedriver-126.0-grid-4.37.0-20251020\nTagged selenium/standalone-chrome:126.0-chromedriver-126.0-grid-4.37.0-20251020\nTagged selenium/node-chrome:126.0-chromedriver-126.0-20251020\nTagged selenium/standalone-chrome:126.0-chromedriver-126.0-20251020\nTagged selenium/node-chrome:126.0-20251020\nTagged selenium/standalone-chrome:126.0-20251020\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.37.0/chrome_127.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.37.0 20251020 selenium false chrome true\nTagging images for browser chrome, version 4.37.0, build date 20251020, namespace selenium\nSelenium Grid version -> 4.37.0-20251020\nChrome version -> 127.0.6533.119\nShort Chrome version -> 127.0\nChromeDriver version -> 127.0.6533.119\nShort ChromeDriver version -> 127.0\nTagged selenium/node-chrome:127.0.6533.119-chromedriver-127.0.6533.119-grid-4.37.0-20251020\nTagged selenium/standalone-chrome:127.0.6533.119-chromedriver-127.0.6533.119-grid-4.37.0-20251020\nTagged selenium/node-chrome:127.0.6533.119-chromedriver-127.0.6533.119-20251020\nTagged selenium/standalone-chrome:127.0.6533.119-chromedriver-127.0.6533.119-20251020\nTagged selenium/node-chrome:127.0.6533.119-20251020\nTagged selenium/standalone-chrome:127.0.6533.119-20251020\nTagged selenium/node-chrome:127.0-chromedriver-127.0-grid-4.37.0-20251020\nTagged selenium/standalone-chrome:127.0-chromedriver-127.0-grid-4.37.0-20251020\nTagged selenium/node-chrome:127.0-chromedriver-127.0-20251020\nTagged selenium/standalone-chrome:127.0-chromedriver-127.0-20251020\nTagged selenium/node-chrome:127.0-20251020\nTagged selenium/standalone-chrome:127.0-20251020\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.37.0/chrome_128.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.37.0 20251020 selenium false chrome true\nTagging images for browser chrome, version 4.37.0, build date 20251020, namespace selenium\nSelenium Grid version -> 4.37.0-20251020\nChrome version -> 128.0.6613.137\nShort Chrome version -> 128.0\nChromeDriver version -> 128.0.6613.137\nShort ChromeDriver version -> 128.0\nTagged selenium/node-chrome:128.0.6613.137-chromedriver-128.0.6613.137-grid-4.37.0-20251020\nTagged selenium/standalone-chrome:128.0.6613.137-chromedriver-128.0.6613.137-grid-4.37.0-20251020\nTagged selenium/node-chrome:128.0.6613.137-chromedriver-128.0.6613.137-20251020\nTagged selenium/standalone-chrome:128.0.6613.137-chromedriver-128.0.6613.137-20251020\nTagged selenium/node-chrome:128.0.6613.137-20251020\nTagged selenium/standalone-chrome:128.0.6613.137-20251020\nTagged selenium/node-chrome:128.0-chromedriver-128.0-grid-4.37.0-20251020\nTagged selenium/standalone-chrome:128.0-chromedriver-128.0-grid-4.37.0-20251020\nTagged selenium/node-chrome:128.0-chromedriver-128.0-20251020\nTagged selenium/standalone-chrome:128.0-chromedriver-128.0-20251020\nTagged selenium/node-chrome:128.0-20251020\nTagged selenium/standalone-chrome:128.0-20251020\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.37.0/chrome_129.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.37.0 20251020 selenium false chrome true\nTagging images for browser chrome, version 4.37.0, build date 20251020, namespace selenium\nSelenium Grid version -> 4.37.0-20251020\nChrome version -> 129.0.6668.100\nShort Chrome version -> 129.0\nChromeDriver version -> 129.0.6668.100\nShort ChromeDriver version -> 129.0\nTagged selenium/node-chrome:129.0.6668.100-chromedriver-129.0.6668.100-grid-4.37.0-20251020\nTagged selenium/standalone-chrome:129.0.6668.100-chromedriver-129.0.6668.100-grid-4.37.0-20251020\nTagged selenium/node-chrome:129.0.6668.100-chromedriver-129.0.6668.100-20251020\nTagged selenium/standalone-chrome:129.0.6668.100-chromedriver-129.0.6668.100-20251020\nTagged selenium/node-chrome:129.0.6668.100-20251020\nTagged selenium/standalone-chrome:129.0.6668.100-20251020\nTagged selenium/node-chrome:129.0-chromedriver-129.0-grid-4.37.0-20251020\nTagged selenium/standalone-chrome:129.0-chromedriver-129.0-grid-4.37.0-20251020\nTagged selenium/node-chrome:129.0-chromedriver-129.0-20251020\nTagged selenium/standalone-chrome:129.0-chromedriver-129.0-20251020\nTagged selenium/node-chrome:129.0-20251020\nTagged selenium/standalone-chrome:129.0-20251020\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.37.0/chrome_130.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.37.0 20251020 selenium false chrome true\nTagging images for browser chrome, version 4.37.0, build date 20251020, namespace selenium\nSelenium Grid version -> 4.37.0-20251020\nChrome version -> 130.0.6723.116\nShort Chrome version -> 130.0\nChromeDriver version -> 130.0.6723.116\nShort ChromeDriver version -> 130.0\nTagged selenium/node-chrome:130.0.6723.116-chromedriver-130.0.6723.116-grid-4.37.0-20251020\nTagged selenium/standalone-chrome:130.0.6723.116-chromedriver-130.0.6723.116-grid-4.37.0-20251020\nTagged selenium/node-chrome:130.0.6723.116-chromedriver-130.0.6723.116-20251020\nTagged selenium/standalone-chrome:130.0.6723.116-chromedriver-130.0.6723.116-20251020\nTagged selenium/node-chrome:130.0.6723.116-20251020\nTagged selenium/standalone-chrome:130.0.6723.116-20251020\nTagged selenium/node-chrome:130.0-chromedriver-130.0-grid-4.37.0-20251020\nTagged selenium/standalone-chrome:130.0-chromedriver-130.0-grid-4.37.0-20251020\nTagged selenium/node-chrome:130.0-chromedriver-130.0-20251020\nTagged selenium/standalone-chrome:130.0-chromedriver-130.0-20251020\nTagged selenium/node-chrome:130.0-20251020\nTagged selenium/standalone-chrome:130.0-20251020\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.37.0/chrome_131.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.37.0 20251020 selenium false chrome true\nTagging images for browser chrome, version 4.37.0, build date 20251020, namespace selenium\nSelenium Grid version -> 4.37.0-20251020\nChrome version -> 131.0.6778.264\nShort Chrome version -> 131.0\nChromeDriver version -> 131.0.6778.264\nShort ChromeDriver version -> 131.0\nTagged selenium/node-chrome:131.0.6778.264-chromedriver-131.0.6778.264-grid-4.37.0-20251020\nTagged selenium/standalone-chrome:131.0.6778.264-chromedriver-131.0.6778.264-grid-4.37.0-20251020\nTagged selenium/node-chrome:131.0.6778.264-chromedriver-131.0.6778.264-20251020\nTagged selenium/standalone-chrome:131.0.6778.264-chromedriver-131.0.6778.264-20251020\nTagged selenium/node-chrome:131.0.6778.264-20251020\nTagged selenium/standalone-chrome:131.0.6778.264-20251020\nTagged selenium/node-chrome:131.0-chromedriver-131.0-grid-4.37.0-20251020\nTagged selenium/standalone-chrome:131.0-chromedriver-131.0-grid-4.37.0-20251020\nTagged selenium/node-chrome:131.0-chromedriver-131.0-20251020\nTagged selenium/standalone-chrome:131.0-chromedriver-131.0-20251020\nTagged selenium/node-chrome:131.0-20251020\nTagged selenium/standalone-chrome:131.0-20251020\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.37.0/chrome_132.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.37.0 20251020 selenium false chrome true\nTagging images for browser chrome, version 4.37.0, build date 20251020, namespace selenium\nSelenium Grid version -> 4.37.0-20251020\nChrome version -> 132.0.6834.159\nShort Chrome version -> 132.0\nChromeDriver version -> 132.0.6834.159\nShort ChromeDriver version -> 132.0\nTagged selenium/node-chrome:132.0.6834.159-chromedriver-132.0.6834.159-grid-4.37.0-20251020\nTagged selenium/standalone-chrome:132.0.6834.159-chromedriver-132.0.6834.159-grid-4.37.0-20251020\nTagged selenium/node-chrome:132.0.6834.159-chromedriver-132.0.6834.159-20251020\nTagged selenium/standalone-chrome:132.0.6834.159-chromedriver-132.0.6834.159-20251020\nTagged selenium/node-chrome:132.0.6834.159-20251020\nTagged selenium/standalone-chrome:132.0.6834.159-20251020\nTagged selenium/node-chrome:132.0-chromedriver-132.0-grid-4.37.0-20251020\nTagged selenium/standalone-chrome:132.0-chromedriver-132.0-grid-4.37.0-20251020\nTagged selenium/node-chrome:132.0-chromedriver-132.0-20251020\nTagged selenium/standalone-chrome:132.0-chromedriver-132.0-20251020\nTagged selenium/node-chrome:132.0-20251020\nTagged selenium/standalone-chrome:132.0-20251020\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.37.0/chrome_133.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.37.0 20251020 selenium false chrome true\nTagging images for browser chrome, version 4.37.0, build date 20251020, namespace selenium\nSelenium Grid version -> 4.37.0-20251020\nChrome version -> 133.0.6943.141\nShort Chrome version -> 133.0\nChromeDriver version -> 133.0.6943.141\nShort ChromeDriver version -> 133.0\nTagged selenium/node-chrome:133.0.6943.141-chromedriver-133.0.6943.141-grid-4.37.0-20251020\nTagged selenium/standalone-chrome:133.0.6943.141-chromedriver-133.0.6943.141-grid-4.37.0-20251020\nTagged selenium/node-chrome:133.0.6943.141-chromedriver-133.0.6943.141-20251020\nTagged selenium/standalone-chrome:133.0.6943.141-chromedriver-133.0.6943.141-20251020\nTagged selenium/node-chrome:133.0.6943.141-20251020\nTagged selenium/standalone-chrome:133.0.6943.141-20251020\nTagged selenium/node-chrome:133.0-chromedriver-133.0-grid-4.37.0-20251020\nTagged selenium/standalone-chrome:133.0-chromedriver-133.0-grid-4.37.0-20251020\nTagged selenium/node-chrome:133.0-chromedriver-133.0-20251020\nTagged selenium/standalone-chrome:133.0-chromedriver-133.0-20251020\nTagged selenium/node-chrome:133.0-20251020\nTagged selenium/standalone-chrome:133.0-20251020\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.37.0/chrome_134.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.37.0 20251020 selenium false chrome true\nTagging images for browser chrome, version 4.37.0, build date 20251020, namespace selenium\nSelenium Grid version -> 4.37.0-20251020\nChrome version -> 134.0.6998.165\nShort Chrome version -> 134.0\nChromeDriver version -> 134.0.6998.165\nShort ChromeDriver version -> 134.0\nTagged selenium/node-chrome:134.0.6998.165-chromedriver-134.0.6998.165-grid-4.37.0-20251020\nTagged selenium/standalone-chrome:134.0.6998.165-chromedriver-134.0.6998.165-grid-4.37.0-20251020\nTagged selenium/node-chrome:134.0.6998.165-chromedriver-134.0.6998.165-20251020\nTagged selenium/standalone-chrome:134.0.6998.165-chromedriver-134.0.6998.165-20251020\nTagged selenium/node-chrome:134.0.6998.165-20251020\nTagged selenium/standalone-chrome:134.0.6998.165-20251020\nTagged selenium/node-chrome:134.0-chromedriver-134.0-grid-4.37.0-20251020\nTagged selenium/standalone-chrome:134.0-chromedriver-134.0-grid-4.37.0-20251020\nTagged selenium/node-chrome:134.0-chromedriver-134.0-20251020\nTagged selenium/standalone-chrome:134.0-chromedriver-134.0-20251020\nTagged selenium/node-chrome:134.0-20251020\nTagged selenium/standalone-chrome:134.0-20251020\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.37.0/chrome_135.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.37.0 20251020 selenium false chrome true\nTagging images for browser chrome, version 4.37.0, build date 20251020, namespace selenium\nSelenium Grid version -> 4.37.0-20251020\nChrome version -> 135.0.7049.114\nShort Chrome version -> 135.0\nChromeDriver version -> 135.0.7049.114\nShort ChromeDriver version -> 135.0\nTagged selenium/node-chrome:135.0.7049.114-chromedriver-135.0.7049.114-grid-4.37.0-20251020\nTagged selenium/standalone-chrome:135.0.7049.114-chromedriver-135.0.7049.114-grid-4.37.0-20251020\nTagged selenium/node-chrome:135.0.7049.114-chromedriver-135.0.7049.114-20251020\nTagged selenium/standalone-chrome:135.0.7049.114-chromedriver-135.0.7049.114-20251020\nTagged selenium/node-chrome:135.0.7049.114-20251020\nTagged selenium/standalone-chrome:135.0.7049.114-20251020\nTagged selenium/node-chrome:135.0-chromedriver-135.0-grid-4.37.0-20251020\nTagged selenium/standalone-chrome:135.0-chromedriver-135.0-grid-4.37.0-20251020\nTagged selenium/node-chrome:135.0-chromedriver-135.0-20251020\nTagged selenium/standalone-chrome:135.0-chromedriver-135.0-20251020\nTagged selenium/node-chrome:135.0-20251020\nTagged selenium/standalone-chrome:135.0-20251020\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.37.0/chrome_136.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.37.0 20251020 selenium false chrome true\nTagging images for browser chrome, version 4.37.0, build date 20251020, namespace selenium\nSelenium Grid version -> 4.37.0-20251020\nChrome version -> 136.0.7103.113\nShort Chrome version -> 136.0\nChromeDriver version -> 136.0.7103.113\nShort ChromeDriver version -> 136.0\nTagged selenium/node-chrome:136.0.7103.113-chromedriver-136.0.7103.113-grid-4.37.0-20251020\nTagged selenium/standalone-chrome:136.0.7103.113-chromedriver-136.0.7103.113-grid-4.37.0-20251020\nTagged selenium/node-chrome:136.0.7103.113-chromedriver-136.0.7103.113-20251020\nTagged selenium/standalone-chrome:136.0.7103.113-chromedriver-136.0.7103.113-20251020\nTagged selenium/node-chrome:136.0.7103.113-20251020\nTagged selenium/standalone-chrome:136.0.7103.113-20251020\nTagged selenium/node-chrome:136.0-chromedriver-136.0-grid-4.37.0-20251020\nTagged selenium/standalone-chrome:136.0-chromedriver-136.0-grid-4.37.0-20251020\nTagged selenium/node-chrome:136.0-chromedriver-136.0-20251020\nTagged selenium/standalone-chrome:136.0-chromedriver-136.0-20251020\nTagged selenium/node-chrome:136.0-20251020\nTagged selenium/standalone-chrome:136.0-20251020\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.37.0/chrome_137.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.37.0 20251020 selenium false chrome true\nTagging images for browser chrome, version 4.37.0, build date 20251020, namespace selenium\nSelenium Grid version -> 4.37.0-20251020\nChrome version -> 137.0.7151.119\nShort Chrome version -> 137.0\nChromeDriver version -> 137.0.7151.119\nShort ChromeDriver version -> 137.0\nTagged selenium/node-chrome:137.0.7151.119-chromedriver-137.0.7151.119-grid-4.37.0-20251020\nTagged selenium/standalone-chrome:137.0.7151.119-chromedriver-137.0.7151.119-grid-4.37.0-20251020\nTagged selenium/node-chrome:137.0.7151.119-chromedriver-137.0.7151.119-20251020\nTagged selenium/standalone-chrome:137.0.7151.119-chromedriver-137.0.7151.119-20251020\nTagged selenium/node-chrome:137.0.7151.119-20251020\nTagged selenium/standalone-chrome:137.0.7151.119-20251020\nTagged selenium/node-chrome:137.0-chromedriver-137.0-grid-4.37.0-20251020\nTagged selenium/standalone-chrome:137.0-chromedriver-137.0-grid-4.37.0-20251020\nTagged selenium/node-chrome:137.0-chromedriver-137.0-20251020\nTagged selenium/standalone-chrome:137.0-chromedriver-137.0-20251020\nTagged selenium/node-chrome:137.0-20251020\nTagged selenium/standalone-chrome:137.0-20251020\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.37.0/chrome_138.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.37.0 20251020 selenium false chrome true\nTagging images for browser chrome, version 4.37.0, build date 20251020, namespace selenium\nSelenium Grid version -> 4.37.0-20251020\nChrome version -> 138.0.7204.183\nShort Chrome version -> 138.0\nChromeDriver version -> 138.0.7204.183\nShort ChromeDriver version -> 138.0\nTagged selenium/node-chrome:138.0.7204.183-chromedriver-138.0.7204.183-grid-4.37.0-20251020\nTagged selenium/standalone-chrome:138.0.7204.183-chromedriver-138.0.7204.183-grid-4.37.0-20251020\nTagged selenium/node-chrome:138.0.7204.183-chromedriver-138.0.7204.183-20251020\nTagged selenium/standalone-chrome:138.0.7204.183-chromedriver-138.0.7204.183-20251020\nTagged selenium/node-chrome:138.0.7204.183-20251020\nTagged selenium/standalone-chrome:138.0.7204.183-20251020\nTagged selenium/node-chrome:138.0-chromedriver-138.0-grid-4.37.0-20251020\nTagged selenium/standalone-chrome:138.0-chromedriver-138.0-grid-4.37.0-20251020\nTagged selenium/node-chrome:138.0-chromedriver-138.0-20251020\nTagged selenium/standalone-chrome:138.0-chromedriver-138.0-20251020\nTagged selenium/node-chrome:138.0-20251020\nTagged selenium/standalone-chrome:138.0-20251020\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.37.0/chrome_139.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.37.0 20251020 selenium false chrome true\nTagging images for browser chrome, version 4.37.0, build date 20251020, namespace selenium\nSelenium Grid version -> 4.37.0-20251020\nChrome version -> 139.0.7258.154\nShort Chrome version -> 139.0\nChromeDriver version -> 139.0.7258.154\nShort ChromeDriver version -> 139.0\nTagged selenium/node-chrome:139.0.7258.154-chromedriver-139.0.7258.154-grid-4.37.0-20251020\nTagged selenium/standalone-chrome:139.0.7258.154-chromedriver-139.0.7258.154-grid-4.37.0-20251020\nTagged selenium/node-chrome:139.0.7258.154-chromedriver-139.0.7258.154-20251020\nTagged selenium/standalone-chrome:139.0.7258.154-chromedriver-139.0.7258.154-20251020\nTagged selenium/node-chrome:139.0.7258.154-20251020\nTagged selenium/standalone-chrome:139.0.7258.154-20251020\nTagged selenium/node-chrome:139.0-chromedriver-139.0-grid-4.37.0-20251020\nTagged selenium/standalone-chrome:139.0-chromedriver-139.0-grid-4.37.0-20251020\nTagged selenium/node-chrome:139.0-chromedriver-139.0-20251020\nTagged selenium/standalone-chrome:139.0-chromedriver-139.0-20251020\nTagged selenium/node-chrome:139.0-20251020\nTagged selenium/standalone-chrome:139.0-20251020\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.37.0/chrome_140.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.37.0 20251020 selenium false chrome true\nTagging images for browser chrome, version 4.37.0, build date 20251020, namespace selenium\nSelenium Grid version -> 4.37.0-20251020\nChrome version -> 140.0.7339.207\nShort Chrome version -> 140.0\nChromeDriver version -> 140.0.7339.207\nShort ChromeDriver version -> 140.0\nTagged selenium/node-chrome:140.0.7339.207-chromedriver-140.0.7339.207-grid-4.37.0-20251020\nTagged selenium/standalone-chrome:140.0.7339.207-chromedriver-140.0.7339.207-grid-4.37.0-20251020\nTagged selenium/node-chrome:140.0.7339.207-chromedriver-140.0.7339.207-20251020\nTagged selenium/standalone-chrome:140.0.7339.207-chromedriver-140.0.7339.207-20251020\nTagged selenium/node-chrome:140.0.7339.207-20251020\nTagged selenium/standalone-chrome:140.0.7339.207-20251020\nTagged selenium/node-chrome:140.0-chromedriver-140.0-grid-4.37.0-20251020\nTagged selenium/standalone-chrome:140.0-chromedriver-140.0-grid-4.37.0-20251020\nTagged selenium/node-chrome:140.0-chromedriver-140.0-20251020\nTagged selenium/standalone-chrome:140.0-chromedriver-140.0-20251020\nTagged selenium/node-chrome:140.0-20251020\nTagged selenium/standalone-chrome:140.0-20251020\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.37.0/chrome_95.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.37.0 20251020 selenium false chrome true\nTagging images for browser chrome, version 4.37.0, build date 20251020, namespace selenium\nSelenium Grid version -> 4.37.0-20251020\nChrome version -> 95.0.4638.69\nShort Chrome version -> 95.0\nChromeDriver version -> 95.0.4638.69\nShort ChromeDriver version -> 95.0\nTagged selenium/node-chrome:95.0.4638.69-chromedriver-95.0.4638.69-grid-4.37.0-20251020\nTagged selenium/standalone-chrome:95.0.4638.69-chromedriver-95.0.4638.69-grid-4.37.0-20251020\nTagged selenium/node-chrome:95.0.4638.69-chromedriver-95.0.4638.69-20251020\nTagged selenium/standalone-chrome:95.0.4638.69-chromedriver-95.0.4638.69-20251020\nTagged selenium/node-chrome:95.0.4638.69-20251020\nTagged selenium/standalone-chrome:95.0.4638.69-20251020\nTagged selenium/node-chrome:95.0-chromedriver-95.0-grid-4.37.0-20251020\nTagged selenium/standalone-chrome:95.0-chromedriver-95.0-grid-4.37.0-20251020\nTagged selenium/node-chrome:95.0-chromedriver-95.0-20251020\nTagged selenium/standalone-chrome:95.0-chromedriver-95.0-20251020\nTagged selenium/node-chrome:95.0-20251020\nTagged selenium/standalone-chrome:95.0-20251020\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.37.0/chrome_96.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.37.0 20251020 selenium false chrome true\nTagging images for browser chrome, version 4.37.0, build date 20251020, namespace selenium\nSelenium Grid version -> 4.37.0-20251020\nChrome version -> 96.0.4664.110\nShort Chrome version -> 96.0\nChromeDriver version -> 96.0.4664.45\nShort ChromeDriver version -> 96.0\nTagged selenium/node-chrome:96.0.4664.110-chromedriver-96.0.4664.45-grid-4.37.0-20251020\nTagged selenium/standalone-chrome:96.0.4664.110-chromedriver-96.0.4664.45-grid-4.37.0-20251020\nTagged selenium/node-chrome:96.0.4664.110-chromedriver-96.0.4664.45-20251020\nTagged selenium/standalone-chrome:96.0.4664.110-chromedriver-96.0.4664.45-20251020\nTagged selenium/node-chrome:96.0.4664.110-20251020\nTagged selenium/standalone-chrome:96.0.4664.110-20251020\nTagged selenium/node-chrome:96.0-chromedriver-96.0-grid-4.37.0-20251020\nTagged selenium/standalone-chrome:96.0-chromedriver-96.0-grid-4.37.0-20251020\nTagged selenium/node-chrome:96.0-chromedriver-96.0-20251020\nTagged selenium/standalone-chrome:96.0-chromedriver-96.0-20251020\nTagged selenium/node-chrome:96.0-20251020\nTagged selenium/standalone-chrome:96.0-20251020\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.37.0/chrome_97.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.37.0 20251020 selenium false chrome true\nTagging images for browser chrome, version 4.37.0, build date 20251020, namespace selenium\nSelenium Grid version -> 4.37.0-20251020\nChrome version -> 97.0.4692.99\nShort Chrome version -> 97.0\nChromeDriver version -> 97.0.4692.71\nShort ChromeDriver version -> 97.0\nTagged selenium/node-chrome:97.0.4692.99-chromedriver-97.0.4692.71-grid-4.37.0-20251020\nTagged selenium/standalone-chrome:97.0.4692.99-chromedriver-97.0.4692.71-grid-4.37.0-20251020\nTagged selenium/node-chrome:97.0.4692.99-chromedriver-97.0.4692.71-20251020\nTagged selenium/standalone-chrome:97.0.4692.99-chromedriver-97.0.4692.71-20251020\nTagged selenium/node-chrome:97.0.4692.99-20251020\nTagged selenium/standalone-chrome:97.0.4692.99-20251020\nTagged selenium/node-chrome:97.0-chromedriver-97.0-grid-4.37.0-20251020\nTagged selenium/standalone-chrome:97.0-chromedriver-97.0-grid-4.37.0-20251020\nTagged selenium/node-chrome:97.0-chromedriver-97.0-20251020\nTagged selenium/standalone-chrome:97.0-chromedriver-97.0-20251020\nTagged selenium/node-chrome:97.0-20251020\nTagged selenium/standalone-chrome:97.0-20251020\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.37.0/chrome_98.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.37.0 20251020 selenium false chrome true\nTagging images for browser chrome, version 4.37.0, build date 20251020, namespace selenium\nSelenium Grid version -> 4.37.0-20251020\nChrome version -> 98.0.4758.102\nShort Chrome version -> 98.0\nChromeDriver version -> 98.0.4758.102\nShort ChromeDriver version -> 98.0\nTagged selenium/node-chrome:98.0.4758.102-chromedriver-98.0.4758.102-grid-4.37.0-20251020\nTagged selenium/standalone-chrome:98.0.4758.102-chromedriver-98.0.4758.102-grid-4.37.0-20251020\nTagged selenium/node-chrome:98.0.4758.102-chromedriver-98.0.4758.102-20251020\nTagged selenium/standalone-chrome:98.0.4758.102-chromedriver-98.0.4758.102-20251020\nTagged selenium/node-chrome:98.0.4758.102-20251020\nTagged selenium/standalone-chrome:98.0.4758.102-20251020\nTagged selenium/node-chrome:98.0-chromedriver-98.0-grid-4.37.0-20251020\nTagged selenium/standalone-chrome:98.0-chromedriver-98.0-grid-4.37.0-20251020\nTagged selenium/node-chrome:98.0-chromedriver-98.0-20251020\nTagged selenium/standalone-chrome:98.0-chromedriver-98.0-20251020\nTagged selenium/node-chrome:98.0-20251020\nTagged selenium/standalone-chrome:98.0-20251020\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.37.0/chrome_99.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.37.0 20251020 selenium false chrome true\nTagging images for browser chrome, version 4.37.0, build date 20251020, namespace selenium\nSelenium Grid version -> 4.37.0-20251020\nChrome version -> 99.0.4844.84\nShort Chrome version -> 99.0\nChromeDriver version -> 99.0.4844.51\nShort ChromeDriver version -> 99.0\nTagged selenium/node-chrome:99.0.4844.84-chromedriver-99.0.4844.51-grid-4.37.0-20251020\nTagged selenium/standalone-chrome:99.0.4844.84-chromedriver-99.0.4844.51-grid-4.37.0-20251020\nTagged selenium/node-chrome:99.0.4844.84-chromedriver-99.0.4844.51-20251020\nTagged selenium/standalone-chrome:99.0.4844.84-chromedriver-99.0.4844.51-20251020\nTagged selenium/node-chrome:99.0.4844.84-20251020\nTagged selenium/standalone-chrome:99.0.4844.84-20251020\nTagged selenium/node-chrome:99.0-chromedriver-99.0-grid-4.37.0-20251020\nTagged selenium/standalone-chrome:99.0-chromedriver-99.0-grid-4.37.0-20251020\nTagged selenium/node-chrome:99.0-chromedriver-99.0-20251020\nTagged selenium/standalone-chrome:99.0-chromedriver-99.0-20251020\nTagged selenium/node-chrome:99.0-20251020\nTagged selenium/standalone-chrome:99.0-20251020\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.37.0/edge_114.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.37.0 20251020 selenium false edge true\nTagging images for browser edge, version 4.37.0, build date 20251020, namespace selenium\nSelenium Grid version -> 4.37.0-20251020\nEdge version -> 114.0.1823.82\nShort Edge version -> 114.0\nEdgeDriver version -> 114.0.1823.82\nShort EdgeDriver version -> 114.0\nTagged selenium/node-edge:114.0.1823.82-edgedriver-114.0.1823.82-grid-4.37.0-20251020\nTagged selenium/standalone-edge:114.0.1823.82-edgedriver-114.0.1823.82-grid-4.37.0-20251020\nTagged selenium/node-edge:114.0.1823.82-edgedriver-114.0.1823.82-20251020\nTagged selenium/standalone-edge:114.0.1823.82-edgedriver-114.0.1823.82-20251020\nTagged selenium/node-edge:114.0.1823.82-20251020\nTagged selenium/standalone-edge:114.0.1823.82-20251020\nTagged selenium/node-edge:114.0-edgedriver-114.0-grid-4.37.0-20251020\nTagged selenium/standalone-edge:114.0-edgedriver-114.0-grid-4.37.0-20251020\nTagged selenium/node-edge:114.0-edgedriver-114.0-20251020\nTagged selenium/standalone-edge:114.0-edgedriver-114.0-20251020\nTagged selenium/node-edge:114.0-20251020\nTagged selenium/standalone-edge:114.0-20251020\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.37.0/edge_115.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.37.0 20251020 selenium false edge true\nTagging images for browser edge, version 4.37.0, build date 20251020, namespace selenium\nSelenium Grid version -> 4.37.0-20251020\nEdge version -> 115.0.1901.203\nShort Edge version -> 115.0\nEdgeDriver version -> 115.0.1901.203\nShort EdgeDriver version -> 115.0\nTagged selenium/node-edge:115.0.1901.203-edgedriver-115.0.1901.203-grid-4.37.0-20251020\nTagged selenium/standalone-edge:115.0.1901.203-edgedriver-115.0.1901.203-grid-4.37.0-20251020\nTagged selenium/node-edge:115.0.1901.203-edgedriver-115.0.1901.203-20251020\nTagged selenium/standalone-edge:115.0.1901.203-edgedriver-115.0.1901.203-20251020\nTagged selenium/node-edge:115.0.1901.203-20251020\nTagged selenium/standalone-edge:115.0.1901.203-20251020\nTagged selenium/node-edge:115.0-edgedriver-115.0-grid-4.37.0-20251020\nTagged selenium/standalone-edge:115.0-edgedriver-115.0-grid-4.37.0-20251020\nTagged selenium/node-edge:115.0-edgedriver-115.0-20251020\nTagged selenium/standalone-edge:115.0-edgedriver-115.0-20251020\nTagged selenium/node-edge:115.0-20251020\nTagged selenium/standalone-edge:115.0-20251020\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.37.0/edge_116.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.37.0 20251020 selenium false edge true\nTagging images for browser edge, version 4.37.0, build date 20251020, namespace selenium\nSelenium Grid version -> 4.37.0-20251020\nEdge version -> 116.0.1938.81\nShort Edge version -> 116.0\nEdgeDriver version -> 116.0.1938.81\nShort EdgeDriver version -> 116.0\nTagged selenium/node-edge:116.0.1938.81-edgedriver-116.0.1938.81-grid-4.37.0-20251020\nTagged selenium/standalone-edge:116.0.1938.81-edgedriver-116.0.1938.81-grid-4.37.0-20251020\nTagged selenium/node-edge:116.0.1938.81-edgedriver-116.0.1938.81-20251020\nTagged selenium/standalone-edge:116.0.1938.81-edgedriver-116.0.1938.81-20251020\nTagged selenium/node-edge:116.0.1938.81-20251020\nTagged selenium/standalone-edge:116.0.1938.81-20251020\nTagged selenium/node-edge:116.0-edgedriver-116.0-grid-4.37.0-20251020\nTagged selenium/standalone-edge:116.0-edgedriver-116.0-grid-4.37.0-20251020\nTagged selenium/node-edge:116.0-edgedriver-116.0-20251020\nTagged selenium/standalone-edge:116.0-edgedriver-116.0-20251020\nTagged selenium/node-edge:116.0-20251020\nTagged selenium/standalone-edge:116.0-20251020\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.37.0/edge_117.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.37.0 20251020 selenium false edge true\nTagging images for browser edge, version 4.37.0, build date 20251020, namespace selenium\nSelenium Grid version -> 4.37.0-20251020\nEdge version -> 117.0.2045.55\nShort Edge version -> 117.0\nEdgeDriver version -> 117.0.2045.55\nShort EdgeDriver version -> 117.0\nTagged selenium/node-edge:117.0.2045.55-edgedriver-117.0.2045.55-grid-4.37.0-20251020\nTagged selenium/standalone-edge:117.0.2045.55-edgedriver-117.0.2045.55-grid-4.37.0-20251020\nTagged selenium/node-edge:117.0.2045.55-edgedriver-117.0.2045.55-20251020\nTagged selenium/standalone-edge:117.0.2045.55-edgedriver-117.0.2045.55-20251020\nTagged selenium/node-edge:117.0.2045.55-20251020\nTagged selenium/standalone-edge:117.0.2045.55-20251020\nTagged selenium/node-edge:117.0-edgedriver-117.0-grid-4.37.0-20251020\nTagged selenium/standalone-edge:117.0-edgedriver-117.0-grid-4.37.0-20251020\nTagged selenium/node-edge:117.0-edgedriver-117.0-20251020\nTagged selenium/standalone-edge:117.0-edgedriver-117.0-20251020\nTagged selenium/node-edge:117.0-20251020\nTagged selenium/standalone-edge:117.0-20251020\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.37.0/edge_118.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.37.0 20251020 selenium false edge true\nTagging images for browser edge, version 4.37.0, build date 20251020, namespace selenium\nSelenium Grid version -> 4.37.0-20251020\nEdge version -> 118.0.2088.76\nShort Edge version -> 118.0\nEdgeDriver version -> 118.0.2088.76\nShort EdgeDriver version -> 118.0\nTagged selenium/node-edge:118.0.2088.76-edgedriver-118.0.2088.76-grid-4.37.0-20251020\nTagged selenium/standalone-edge:118.0.2088.76-edgedriver-118.0.2088.76-grid-4.37.0-20251020\nTagged selenium/node-edge:118.0.2088.76-edgedriver-118.0.2088.76-20251020\nTagged selenium/standalone-edge:118.0.2088.76-edgedriver-118.0.2088.76-20251020\nTagged selenium/node-edge:118.0.2088.76-20251020\nTagged selenium/standalone-edge:118.0.2088.76-20251020\nTagged selenium/node-edge:118.0-edgedriver-118.0-grid-4.37.0-20251020\nTagged selenium/standalone-edge:118.0-edgedriver-118.0-grid-4.37.0-20251020\nTagged selenium/node-edge:118.0-edgedriver-118.0-20251020\nTagged selenium/standalone-edge:118.0-edgedriver-118.0-20251020\nTagged selenium/node-edge:118.0-20251020\nTagged selenium/standalone-edge:118.0-20251020\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.37.0/edge_119.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.37.0 20251020 selenium false edge true\nTagging images for browser edge, version 4.37.0, build date 20251020, namespace selenium\nSelenium Grid version -> 4.37.0-20251020\nEdge version -> 119.0.2151.97\nShort Edge version -> 119.0\nEdgeDriver version -> 119.0.2151.97\nShort EdgeDriver version -> 119.0\nTagged selenium/node-edge:119.0.2151.97-edgedriver-119.0.2151.97-grid-4.37.0-20251020\nTagged selenium/standalone-edge:119.0.2151.97-edgedriver-119.0.2151.97-grid-4.37.0-20251020\nTagged selenium/node-edge:119.0.2151.97-edgedriver-119.0.2151.97-20251020\nTagged selenium/standalone-edge:119.0.2151.97-edgedriver-119.0.2151.97-20251020\nTagged selenium/node-edge:119.0.2151.97-20251020\nTagged selenium/standalone-edge:119.0.2151.97-20251020\nTagged selenium/node-edge:119.0-edgedriver-119.0-grid-4.37.0-20251020\nTagged selenium/standalone-edge:119.0-edgedriver-119.0-grid-4.37.0-20251020\nTagged selenium/node-edge:119.0-edgedriver-119.0-20251020\nTagged selenium/standalone-edge:119.0-edgedriver-119.0-20251020\nTagged selenium/node-edge:119.0-20251020\nTagged selenium/standalone-edge:119.0-20251020\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.37.0/edge_120.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.37.0 20251020 selenium false edge true\nTagging images for browser edge, version 4.37.0, build date 20251020, namespace selenium\nSelenium Grid version -> 4.37.0-20251020\nEdge version -> 120.0.2210.144\nShort Edge version -> 120.0\nEdgeDriver version -> 120.0.2210.144\nShort EdgeDriver version -> 120.0\nTagged selenium/node-edge:120.0.2210.144-edgedriver-120.0.2210.144-grid-4.37.0-20251020\nTagged selenium/standalone-edge:120.0.2210.144-edgedriver-120.0.2210.144-grid-4.37.0-20251020\nTagged selenium/node-edge:120.0.2210.144-edgedriver-120.0.2210.144-20251020\nTagged selenium/standalone-edge:120.0.2210.144-edgedriver-120.0.2210.144-20251020\nTagged selenium/node-edge:120.0.2210.144-20251020\nTagged selenium/standalone-edge:120.0.2210.144-20251020\nTagged selenium/node-edge:120.0-edgedriver-120.0-grid-4.37.0-20251020\nTagged selenium/standalone-edge:120.0-edgedriver-120.0-grid-4.37.0-20251020\nTagged selenium/node-edge:120.0-edgedriver-120.0-20251020\nTagged selenium/standalone-edge:120.0-edgedriver-120.0-20251020\nTagged selenium/node-edge:120.0-20251020\nTagged selenium/standalone-edge:120.0-20251020\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.37.0/edge_121.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.37.0 20251020 selenium false edge true\nTagging images for browser edge, version 4.37.0, build date 20251020, namespace selenium\nSelenium Grid version -> 4.37.0-20251020\nEdge version -> 121.0.2277.128\nShort Edge version -> 121.0\nEdgeDriver version -> 121.0.2277.128\nShort EdgeDriver version -> 121.0\nTagged selenium/node-edge:121.0.2277.128-edgedriver-121.0.2277.128-grid-4.37.0-20251020\nTagged selenium/standalone-edge:121.0.2277.128-edgedriver-121.0.2277.128-grid-4.37.0-20251020\nTagged selenium/node-edge:121.0.2277.128-edgedriver-121.0.2277.128-20251020\nTagged selenium/standalone-edge:121.0.2277.128-edgedriver-121.0.2277.128-20251020\nTagged selenium/node-edge:121.0.2277.128-20251020\nTagged selenium/standalone-edge:121.0.2277.128-20251020\nTagged selenium/node-edge:121.0-edgedriver-121.0-grid-4.37.0-20251020\nTagged selenium/standalone-edge:121.0-edgedriver-121.0-grid-4.37.0-20251020\nTagged selenium/node-edge:121.0-edgedriver-121.0-20251020\nTagged selenium/standalone-edge:121.0-edgedriver-121.0-20251020\nTagged selenium/node-edge:121.0-20251020\nTagged selenium/standalone-edge:121.0-20251020\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.37.0/edge_122.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.37.0 20251020 selenium false edge true\nTagging images for browser edge, version 4.37.0, build date 20251020, namespace selenium\nSelenium Grid version -> 4.37.0-20251020\nEdge version -> 122.0.2365.92\nShort Edge version -> 122.0\nEdgeDriver version -> 122.0.2365.92\nShort EdgeDriver version -> 122.0\nTagged selenium/node-edge:122.0.2365.92-edgedriver-122.0.2365.92-grid-4.37.0-20251020\nTagged selenium/standalone-edge:122.0.2365.92-edgedriver-122.0.2365.92-grid-4.37.0-20251020\nTagged selenium/node-edge:122.0.2365.92-edgedriver-122.0.2365.92-20251020\nTagged selenium/standalone-edge:122.0.2365.92-edgedriver-122.0.2365.92-20251020\nTagged selenium/node-edge:122.0.2365.92-20251020\nTagged selenium/standalone-edge:122.0.2365.92-20251020\nTagged selenium/node-edge:122.0-edgedriver-122.0-grid-4.37.0-20251020\nTagged selenium/standalone-edge:122.0-edgedriver-122.0-grid-4.37.0-20251020\nTagged selenium/node-edge:122.0-edgedriver-122.0-20251020\nTagged selenium/standalone-edge:122.0-edgedriver-122.0-20251020\nTagged selenium/node-edge:122.0-20251020\nTagged selenium/standalone-edge:122.0-20251020\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.37.0/edge_123.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.37.0 20251020 selenium false edge true\nTagging images for browser edge, version 4.37.0, build date 20251020, namespace selenium\nSelenium Grid version -> 4.37.0-20251020\nEdge version -> 123.0.2420.97\nShort Edge version -> 123.0\nEdgeDriver version -> 123.0.2420.97\nShort EdgeDriver version -> 123.0\nTagged selenium/node-edge:123.0.2420.97-edgedriver-123.0.2420.97-grid-4.37.0-20251020\nTagged selenium/standalone-edge:123.0.2420.97-edgedriver-123.0.2420.97-grid-4.37.0-20251020\nTagged selenium/node-edge:123.0.2420.97-edgedriver-123.0.2420.97-20251020\nTagged selenium/standalone-edge:123.0.2420.97-edgedriver-123.0.2420.97-20251020\nTagged selenium/node-edge:123.0.2420.97-20251020\nTagged selenium/standalone-edge:123.0.2420.97-20251020\nTagged selenium/node-edge:123.0-edgedriver-123.0-grid-4.37.0-20251020\nTagged selenium/standalone-edge:123.0-edgedriver-123.0-grid-4.37.0-20251020\nTagged selenium/node-edge:123.0-edgedriver-123.0-20251020\nTagged selenium/standalone-edge:123.0-edgedriver-123.0-20251020\nTagged selenium/node-edge:123.0-20251020\nTagged selenium/standalone-edge:123.0-20251020\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.37.0/edge_124.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.37.0 20251020 selenium false edge true\nTagging images for browser edge, version 4.37.0, build date 20251020, namespace selenium\nSelenium Grid version -> 4.37.0-20251020\nEdge version -> 124.0.2478.109\nShort Edge version -> 124.0\nEdgeDriver version -> 124.0.2478.109\nShort EdgeDriver version -> 124.0\nTagged selenium/node-edge:124.0.2478.109-edgedriver-124.0.2478.109-grid-4.37.0-20251020\nTagged selenium/standalone-edge:124.0.2478.109-edgedriver-124.0.2478.109-grid-4.37.0-20251020\nTagged selenium/node-edge:124.0.2478.109-edgedriver-124.0.2478.109-20251020\nTagged selenium/standalone-edge:124.0.2478.109-edgedriver-124.0.2478.109-20251020\nTagged selenium/node-edge:124.0.2478.109-20251020\nTagged selenium/standalone-edge:124.0.2478.109-20251020\nTagged selenium/node-edge:124.0-edgedriver-124.0-grid-4.37.0-20251020\nTagged selenium/standalone-edge:124.0-edgedriver-124.0-grid-4.37.0-20251020\nTagged selenium/node-edge:124.0-edgedriver-124.0-20251020\nTagged selenium/standalone-edge:124.0-edgedriver-124.0-20251020\nTagged selenium/node-edge:124.0-20251020\nTagged selenium/standalone-edge:124.0-20251020\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.37.0/edge_125.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.37.0 20251020 selenium false edge true\nTagging images for browser edge, version 4.37.0, build date 20251020, namespace selenium\nSelenium Grid version -> 4.37.0-20251020\nEdge version -> 125.0.2535.92\nShort Edge version -> 125.0\nEdgeDriver version -> 125.0.2535.92\nShort EdgeDriver version -> 125.0\nTagged selenium/node-edge:125.0.2535.92-edgedriver-125.0.2535.92-grid-4.37.0-20251020\nTagged selenium/standalone-edge:125.0.2535.92-edgedriver-125.0.2535.92-grid-4.37.0-20251020\nTagged selenium/node-edge:125.0.2535.92-edgedriver-125.0.2535.92-20251020\nTagged selenium/standalone-edge:125.0.2535.92-edgedriver-125.0.2535.92-20251020\nTagged selenium/node-edge:125.0.2535.92-20251020\nTagged selenium/standalone-edge:125.0.2535.92-20251020\nTagged selenium/node-edge:125.0-edgedriver-125.0-grid-4.37.0-20251020\nTagged selenium/standalone-edge:125.0-edgedriver-125.0-grid-4.37.0-20251020\nTagged selenium/node-edge:125.0-edgedriver-125.0-20251020\nTagged selenium/standalone-edge:125.0-edgedriver-125.0-20251020\nTagged selenium/node-edge:125.0-20251020\nTagged selenium/standalone-edge:125.0-20251020\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.37.0/edge_126.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.37.0 20251020 selenium false edge true\nTagging images for browser edge, version 4.37.0, build date 20251020, namespace selenium\nSelenium Grid version -> 4.37.0-20251020\nEdge version -> 126.0.2592.113\nShort Edge version -> 126.0\nEdgeDriver version -> 126.0.2592.123\nShort EdgeDriver version -> 126.0\nTagged selenium/node-edge:126.0.2592.113-edgedriver-126.0.2592.123-grid-4.37.0-20251020\nTagged selenium/standalone-edge:126.0.2592.113-edgedriver-126.0.2592.123-grid-4.37.0-20251020\nTagged selenium/node-edge:126.0.2592.113-edgedriver-126.0.2592.123-20251020\nTagged selenium/standalone-edge:126.0.2592.113-edgedriver-126.0.2592.123-20251020\nTagged selenium/node-edge:126.0.2592.113-20251020\nTagged selenium/standalone-edge:126.0.2592.113-20251020\nTagged selenium/node-edge:126.0-edgedriver-126.0-grid-4.37.0-20251020\nTagged selenium/standalone-edge:126.0-edgedriver-126.0-grid-4.37.0-20251020\nTagged selenium/node-edge:126.0-edgedriver-126.0-20251020\nTagged selenium/standalone-edge:126.0-edgedriver-126.0-20251020\nTagged selenium/node-edge:126.0-20251020\nTagged selenium/standalone-edge:126.0-20251020\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.37.0/edge_127.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.37.0 20251020 selenium false edge true\nTagging images for browser edge, version 4.37.0, build date 20251020, namespace selenium\nSelenium Grid version -> 4.37.0-20251020\nEdge version -> 127.0.2651.105\nShort Edge version -> 127.0\nEdgeDriver version -> 127.0.2651.107\nShort EdgeDriver version -> 127.0\nTagged selenium/node-edge:127.0.2651.105-edgedriver-127.0.2651.107-grid-4.37.0-20251020\nTagged selenium/standalone-edge:127.0.2651.105-edgedriver-127.0.2651.107-grid-4.37.0-20251020\nTagged selenium/node-edge:127.0.2651.105-edgedriver-127.0.2651.107-20251020\nTagged selenium/standalone-edge:127.0.2651.105-edgedriver-127.0.2651.107-20251020\nTagged selenium/node-edge:127.0.2651.105-20251020\nTagged selenium/standalone-edge:127.0.2651.105-20251020\nTagged selenium/node-edge:127.0-edgedriver-127.0-grid-4.37.0-20251020\nTagged selenium/standalone-edge:127.0-edgedriver-127.0-grid-4.37.0-20251020\nTagged selenium/node-edge:127.0-edgedriver-127.0-20251020\nTagged selenium/standalone-edge:127.0-edgedriver-127.0-20251020\nTagged selenium/node-edge:127.0-20251020\nTagged selenium/standalone-edge:127.0-20251020\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.37.0/edge_128.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.37.0 20251020 selenium false edge true\nTagging images for browser edge, version 4.37.0, build date 20251020, namespace selenium\nSelenium Grid version -> 4.37.0-20251020\nEdge version -> 128.0.2739.79\nShort Edge version -> 128.0\nEdgeDriver version -> 128.0.2739.81\nShort EdgeDriver version -> 128.0\nTagged selenium/node-edge:128.0.2739.79-edgedriver-128.0.2739.81-grid-4.37.0-20251020\nTagged selenium/standalone-edge:128.0.2739.79-edgedriver-128.0.2739.81-grid-4.37.0-20251020\nTagged selenium/node-edge:128.0.2739.79-edgedriver-128.0.2739.81-20251020\nTagged selenium/standalone-edge:128.0.2739.79-edgedriver-128.0.2739.81-20251020\nTagged selenium/node-edge:128.0.2739.79-20251020\nTagged selenium/standalone-edge:128.0.2739.79-20251020\nTagged selenium/node-edge:128.0-edgedriver-128.0-grid-4.37.0-20251020\nTagged selenium/standalone-edge:128.0-edgedriver-128.0-grid-4.37.0-20251020\nTagged selenium/node-edge:128.0-edgedriver-128.0-20251020\nTagged selenium/standalone-edge:128.0-edgedriver-128.0-20251020\nTagged selenium/node-edge:128.0-20251020\nTagged selenium/standalone-edge:128.0-20251020\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.37.0/edge_129.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.37.0 20251020 selenium false edge true\nTagging images for browser edge, version 4.37.0, build date 20251020, namespace selenium\nSelenium Grid version -> 4.37.0-20251020\nEdge version -> 129.0.2792.89\nShort Edge version -> 129.0\nEdgeDriver version -> 129.0.2792.98\nShort EdgeDriver version -> 129.0\nTagged selenium/node-edge:129.0.2792.89-edgedriver-129.0.2792.98-grid-4.37.0-20251020\nTagged selenium/standalone-edge:129.0.2792.89-edgedriver-129.0.2792.98-grid-4.37.0-20251020\nTagged selenium/node-edge:129.0.2792.89-edgedriver-129.0.2792.98-20251020\nTagged selenium/standalone-edge:129.0.2792.89-edgedriver-129.0.2792.98-20251020\nTagged selenium/node-edge:129.0.2792.89-20251020\nTagged selenium/standalone-edge:129.0.2792.89-20251020\nTagged selenium/node-edge:129.0-edgedriver-129.0-grid-4.37.0-20251020\nTagged selenium/standalone-edge:129.0-edgedriver-129.0-grid-4.37.0-20251020\nTagged selenium/node-edge:129.0-edgedriver-129.0-20251020\nTagged selenium/standalone-edge:129.0-edgedriver-129.0-20251020\nTagged selenium/node-edge:129.0-20251020\nTagged selenium/standalone-edge:129.0-20251020\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.37.0/edge_130.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.37.0 20251020 selenium false edge true\nTagging images for browser edge, version 4.37.0, build date 20251020, namespace selenium\nSelenium Grid version -> 4.37.0-20251020\nEdge version -> 130.0.2849.80\nShort Edge version -> 130.0\nEdgeDriver version -> 130.0.2849.78\nShort EdgeDriver version -> 130.0\nTagged selenium/node-edge:130.0.2849.80-edgedriver-130.0.2849.78-grid-4.37.0-20251020\nTagged selenium/standalone-edge:130.0.2849.80-edgedriver-130.0.2849.78-grid-4.37.0-20251020\nTagged selenium/node-edge:130.0.2849.80-edgedriver-130.0.2849.78-20251020\nTagged selenium/standalone-edge:130.0.2849.80-edgedriver-130.0.2849.78-20251020\nTagged selenium/node-edge:130.0.2849.80-20251020\nTagged selenium/standalone-edge:130.0.2849.80-20251020\nTagged selenium/node-edge:130.0-edgedriver-130.0-grid-4.37.0-20251020\nTagged selenium/standalone-edge:130.0-edgedriver-130.0-grid-4.37.0-20251020\nTagged selenium/node-edge:130.0-edgedriver-130.0-20251020\nTagged selenium/standalone-edge:130.0-edgedriver-130.0-20251020\nTagged selenium/node-edge:130.0-20251020\nTagged selenium/standalone-edge:130.0-20251020\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.37.0/edge_131.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.37.0 20251020 selenium false edge true\nTagging images for browser edge, version 4.37.0, build date 20251020, namespace selenium\nSelenium Grid version -> 4.37.0-20251020\nEdge version -> 131.0.2903.147\nShort Edge version -> 131.0\nEdgeDriver version -> 131.0.2903.147\nShort EdgeDriver version -> 131.0\nTagged selenium/node-edge:131.0.2903.147-edgedriver-131.0.2903.147-grid-4.37.0-20251020\nTagged selenium/standalone-edge:131.0.2903.147-edgedriver-131.0.2903.147-grid-4.37.0-20251020\nTagged selenium/node-edge:131.0.2903.147-edgedriver-131.0.2903.147-20251020\nTagged selenium/standalone-edge:131.0.2903.147-edgedriver-131.0.2903.147-20251020\nTagged selenium/node-edge:131.0.2903.147-20251020\nTagged selenium/standalone-edge:131.0.2903.147-20251020\nTagged selenium/node-edge:131.0-edgedriver-131.0-grid-4.37.0-20251020\nTagged selenium/standalone-edge:131.0-edgedriver-131.0-grid-4.37.0-20251020\nTagged selenium/node-edge:131.0-edgedriver-131.0-20251020\nTagged selenium/standalone-edge:131.0-edgedriver-131.0-20251020\nTagged selenium/node-edge:131.0-20251020\nTagged selenium/standalone-edge:131.0-20251020\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.37.0/edge_132.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.37.0 20251020 selenium false edge true\nTagging images for browser edge, version 4.37.0, build date 20251020, namespace selenium\nSelenium Grid version -> 4.37.0-20251020\nEdge version -> 132.0.2957.140\nShort Edge version -> 132.0\nEdgeDriver version -> 132.0.2957.140\nShort EdgeDriver version -> 132.0\nTagged selenium/node-edge:132.0.2957.140-edgedriver-132.0.2957.140-grid-4.37.0-20251020\nTagged selenium/standalone-edge:132.0.2957.140-edgedriver-132.0.2957.140-grid-4.37.0-20251020\nTagged selenium/node-edge:132.0.2957.140-edgedriver-132.0.2957.140-20251020\nTagged selenium/standalone-edge:132.0.2957.140-edgedriver-132.0.2957.140-20251020\nTagged selenium/node-edge:132.0.2957.140-20251020\nTagged selenium/standalone-edge:132.0.2957.140-20251020\nTagged selenium/node-edge:132.0-edgedriver-132.0-grid-4.37.0-20251020\nTagged selenium/standalone-edge:132.0-edgedriver-132.0-grid-4.37.0-20251020\nTagged selenium/node-edge:132.0-edgedriver-132.0-20251020\nTagged selenium/standalone-edge:132.0-edgedriver-132.0-20251020\nTagged selenium/node-edge:132.0-20251020\nTagged selenium/standalone-edge:132.0-20251020\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.37.0/edge_133.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.37.0 20251020 selenium false edge true\nTagging images for browser edge, version 4.37.0, build date 20251020, namespace selenium\nSelenium Grid version -> 4.37.0-20251020\nEdge version -> 133.0.3065.92\nShort Edge version -> 133.0\nEdgeDriver version -> 133.0.3065.92\nShort EdgeDriver version -> 133.0\nTagged selenium/node-edge:133.0.3065.92-edgedriver-133.0.3065.92-grid-4.37.0-20251020\nTagged selenium/standalone-edge:133.0.3065.92-edgedriver-133.0.3065.92-grid-4.37.0-20251020\nTagged selenium/node-edge:133.0.3065.92-edgedriver-133.0.3065.92-20251020\nTagged selenium/standalone-edge:133.0.3065.92-edgedriver-133.0.3065.92-20251020\nTagged selenium/node-edge:133.0.3065.92-20251020\nTagged selenium/standalone-edge:133.0.3065.92-20251020\nTagged selenium/node-edge:133.0-edgedriver-133.0-grid-4.37.0-20251020\nTagged selenium/standalone-edge:133.0-edgedriver-133.0-grid-4.37.0-20251020\nTagged selenium/node-edge:133.0-edgedriver-133.0-20251020\nTagged selenium/standalone-edge:133.0-edgedriver-133.0-20251020\nTagged selenium/node-edge:133.0-20251020\nTagged selenium/standalone-edge:133.0-20251020\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.37.0/edge_134.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.37.0 20251020 selenium false edge true\nTagging images for browser edge, version 4.37.0, build date 20251020, namespace selenium\nSelenium Grid version -> 4.37.0-20251020\nEdge version -> 134.0.3124.95\nShort Edge version -> 134.0\nEdgeDriver version -> 134.0.3124.95\nShort EdgeDriver version -> 134.0\nTagged selenium/node-edge:134.0.3124.95-edgedriver-134.0.3124.95-grid-4.37.0-20251020\nTagged selenium/standalone-edge:134.0.3124.95-edgedriver-134.0.3124.95-grid-4.37.0-20251020\nTagged selenium/node-edge:134.0.3124.95-edgedriver-134.0.3124.95-20251020\nTagged selenium/standalone-edge:134.0.3124.95-edgedriver-134.0.3124.95-20251020\nTagged selenium/node-edge:134.0.3124.95-20251020\nTagged selenium/standalone-edge:134.0.3124.95-20251020\nTagged selenium/node-edge:134.0-edgedriver-134.0-grid-4.37.0-20251020\nTagged selenium/standalone-edge:134.0-edgedriver-134.0-grid-4.37.0-20251020\nTagged selenium/node-edge:134.0-edgedriver-134.0-20251020\nTagged selenium/standalone-edge:134.0-edgedriver-134.0-20251020\nTagged selenium/node-edge:134.0-20251020\nTagged selenium/standalone-edge:134.0-20251020\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.37.0/edge_135.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.37.0 20251020 selenium false edge true\nTagging images for browser edge, version 4.37.0, build date 20251020, namespace selenium\nSelenium Grid version -> 4.37.0-20251020\nEdge version -> 135.0.3179.98\nShort Edge version -> 135.0\nEdgeDriver version -> 135.0.3179.98\nShort EdgeDriver version -> 135.0\nTagged selenium/node-edge:135.0.3179.98-edgedriver-135.0.3179.98-grid-4.37.0-20251020\nTagged selenium/standalone-edge:135.0.3179.98-edgedriver-135.0.3179.98-grid-4.37.0-20251020\nTagged selenium/node-edge:135.0.3179.98-edgedriver-135.0.3179.98-20251020\nTagged selenium/standalone-edge:135.0.3179.98-edgedriver-135.0.3179.98-20251020\nTagged selenium/node-edge:135.0.3179.98-20251020\nTagged selenium/standalone-edge:135.0.3179.98-20251020\nTagged selenium/node-edge:135.0-edgedriver-135.0-grid-4.37.0-20251020\nTagged selenium/standalone-edge:135.0-edgedriver-135.0-grid-4.37.0-20251020\nTagged selenium/node-edge:135.0-edgedriver-135.0-20251020\nTagged selenium/standalone-edge:135.0-edgedriver-135.0-20251020\nTagged selenium/node-edge:135.0-20251020\nTagged selenium/standalone-edge:135.0-20251020\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.37.0/edge_136.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.37.0 20251020 selenium false edge true\nTagging images for browser edge, version 4.37.0, build date 20251020, namespace selenium\nSelenium Grid version -> 4.37.0-20251020\nEdge version -> 136.0.3240.92\nShort Edge version -> 136.0\nEdgeDriver version -> 136.0.3240.92\nShort EdgeDriver version -> 136.0\nTagged selenium/node-edge:136.0.3240.92-edgedriver-136.0.3240.92-grid-4.37.0-20251020\nTagged selenium/standalone-edge:136.0.3240.92-edgedriver-136.0.3240.92-grid-4.37.0-20251020\nTagged selenium/node-edge:136.0.3240.92-edgedriver-136.0.3240.92-20251020\nTagged selenium/standalone-edge:136.0.3240.92-edgedriver-136.0.3240.92-20251020\nTagged selenium/node-edge:136.0.3240.92-20251020\nTagged selenium/standalone-edge:136.0.3240.92-20251020\nTagged selenium/node-edge:136.0-edgedriver-136.0-grid-4.37.0-20251020\nTagged selenium/standalone-edge:136.0-edgedriver-136.0-grid-4.37.0-20251020\nTagged selenium/node-edge:136.0-edgedriver-136.0-20251020\nTagged selenium/standalone-edge:136.0-edgedriver-136.0-20251020\nTagged selenium/node-edge:136.0-20251020\nTagged selenium/standalone-edge:136.0-20251020\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.37.0/edge_137.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.37.0 20251020 selenium false edge true\nTagging images for browser edge, version 4.37.0, build date 20251020, namespace selenium\nSelenium Grid version -> 4.37.0-20251020\nEdge version -> 137.0.3296.93\nShort Edge version -> 137.0\nEdgeDriver version -> 137.0.3296.93\nShort EdgeDriver version -> 137.0\nTagged selenium/node-edge:137.0.3296.93-edgedriver-137.0.3296.93-grid-4.37.0-20251020\nTagged selenium/standalone-edge:137.0.3296.93-edgedriver-137.0.3296.93-grid-4.37.0-20251020\nTagged selenium/node-edge:137.0.3296.93-edgedriver-137.0.3296.93-20251020\nTagged selenium/standalone-edge:137.0.3296.93-edgedriver-137.0.3296.93-20251020\nTagged selenium/node-edge:137.0.3296.93-20251020\nTagged selenium/standalone-edge:137.0.3296.93-20251020\nTagged selenium/node-edge:137.0-edgedriver-137.0-grid-4.37.0-20251020\nTagged selenium/standalone-edge:137.0-edgedriver-137.0-grid-4.37.0-20251020\nTagged selenium/node-edge:137.0-edgedriver-137.0-20251020\nTagged selenium/standalone-edge:137.0-edgedriver-137.0-20251020\nTagged selenium/node-edge:137.0-20251020\nTagged selenium/standalone-edge:137.0-20251020\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.37.0/edge_138.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.37.0 20251020 selenium false edge true\nTagging images for browser edge, version 4.37.0, build date 20251020, namespace selenium\nSelenium Grid version -> 4.37.0-20251020\nEdge version -> 138.0.3351.121\nShort Edge version -> 138.0\nEdgeDriver version -> 138.0.3351.121\nShort EdgeDriver version -> 138.0\nTagged selenium/node-edge:138.0.3351.121-edgedriver-138.0.3351.121-grid-4.37.0-20251020\nTagged selenium/standalone-edge:138.0.3351.121-edgedriver-138.0.3351.121-grid-4.37.0-20251020\nTagged selenium/node-edge:138.0.3351.121-edgedriver-138.0.3351.121-20251020\nTagged selenium/standalone-edge:138.0.3351.121-edgedriver-138.0.3351.121-20251020\nTagged selenium/node-edge:138.0.3351.121-20251020\nTagged selenium/standalone-edge:138.0.3351.121-20251020\nTagged selenium/node-edge:138.0-edgedriver-138.0-grid-4.37.0-20251020\nTagged selenium/standalone-edge:138.0-edgedriver-138.0-grid-4.37.0-20251020\nTagged selenium/node-edge:138.0-edgedriver-138.0-20251020\nTagged selenium/standalone-edge:138.0-edgedriver-138.0-20251020\nTagged selenium/node-edge:138.0-20251020\nTagged selenium/standalone-edge:138.0-20251020\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.37.0/edge_139.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.37.0 20251020 selenium false edge true\nTagging images for browser edge, version 4.37.0, build date 20251020, namespace selenium\nSelenium Grid version -> 4.37.0-20251020\nEdge version -> 139.0.3405.125\nShort Edge version -> 139.0\nEdgeDriver version -> 139.0.3405.125\nShort EdgeDriver version -> 139.0\nTagged selenium/node-edge:139.0.3405.125-edgedriver-139.0.3405.125-grid-4.37.0-20251020\nTagged selenium/standalone-edge:139.0.3405.125-edgedriver-139.0.3405.125-grid-4.37.0-20251020\nTagged selenium/node-edge:139.0.3405.125-edgedriver-139.0.3405.125-20251020\nTagged selenium/standalone-edge:139.0.3405.125-edgedriver-139.0.3405.125-20251020\nTagged selenium/node-edge:139.0.3405.125-20251020\nTagged selenium/standalone-edge:139.0.3405.125-20251020\nTagged selenium/node-edge:139.0-edgedriver-139.0-grid-4.37.0-20251020\nTagged selenium/standalone-edge:139.0-edgedriver-139.0-grid-4.37.0-20251020\nTagged selenium/node-edge:139.0-edgedriver-139.0-20251020\nTagged selenium/standalone-edge:139.0-edgedriver-139.0-20251020\nTagged selenium/node-edge:139.0-20251020\nTagged selenium/standalone-edge:139.0-20251020\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.37.0/edge_140.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.37.0 20251020 selenium false edge true\nTagging images for browser edge, version 4.37.0, build date 20251020, namespace selenium\nSelenium Grid version -> 4.37.0-20251020\nEdge version -> 140.0.3485.94\nShort Edge version -> 140.0\nEdgeDriver version -> 140.0.3485.94\nShort EdgeDriver version -> 140.0\nTagged selenium/node-edge:140.0.3485.94-edgedriver-140.0.3485.94-grid-4.37.0-20251020\nTagged selenium/standalone-edge:140.0.3485.94-edgedriver-140.0.3485.94-grid-4.37.0-20251020\nTagged selenium/node-edge:140.0.3485.94-edgedriver-140.0.3485.94-20251020\nTagged selenium/standalone-edge:140.0.3485.94-edgedriver-140.0.3485.94-20251020\nTagged selenium/node-edge:140.0.3485.94-20251020\nTagged selenium/standalone-edge:140.0.3485.94-20251020\nTagged selenium/node-edge:140.0-edgedriver-140.0-grid-4.37.0-20251020\nTagged selenium/standalone-edge:140.0-edgedriver-140.0-grid-4.37.0-20251020\nTagged selenium/node-edge:140.0-edgedriver-140.0-20251020\nTagged selenium/standalone-edge:140.0-edgedriver-140.0-20251020\nTagged selenium/node-edge:140.0-20251020\nTagged selenium/standalone-edge:140.0-20251020\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.37.0/firefox_100.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.37.0 20251020 selenium false firefox true\nTagging images for browser firefox, version 4.37.0, build date 20251020, namespace selenium\nSelenium Grid version -> 4.37.0-20251020\nFirefox version -> 100.0.2\nShort Firefox version -> 100.0\nGeckoDriver version -> 0.36.0\nShort GeckoDriver version -> 0.36\nTagged selenium/node-firefox:100.0.2-geckodriver-0.36.0-grid-4.37.0-20251020\nTagged selenium/standalone-firefox:100.0.2-geckodriver-0.36.0-grid-4.37.0-20251020\nTagged selenium/node-firefox:100.0.2-geckodriver-0.36.0-20251020\nTagged selenium/standalone-firefox:100.0.2-geckodriver-0.36.0-20251020\nTagged selenium/node-firefox:100.0.2-20251020\nTagged selenium/standalone-firefox:100.0.2-20251020\nTagged selenium/node-firefox:100.0-geckodriver-0.36-grid-4.37.0-20251020\nTagged selenium/standalone-firefox:100.0-geckodriver-0.36-grid-4.37.0-20251020\nTagged selenium/node-firefox:100.0-geckodriver-0.36-20251020\nTagged selenium/standalone-firefox:100.0-geckodriver-0.36-20251020\nTagged selenium/node-firefox:100.0-20251020\nTagged selenium/standalone-firefox:100.0-20251020\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.37.0/firefox_101.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.37.0 20251020 selenium false firefox true\nTagging images for browser firefox, version 4.37.0, build date 20251020, namespace selenium\nSelenium Grid version -> 4.37.0-20251020\nFirefox version -> 101.0.1\nShort Firefox version -> 101.0\nGeckoDriver version -> 0.36.0\nShort GeckoDriver version -> 0.36\nTagged selenium/node-firefox:101.0.1-geckodriver-0.36.0-grid-4.37.0-20251020\nTagged selenium/standalone-firefox:101.0.1-geckodriver-0.36.0-grid-4.37.0-20251020\nTagged selenium/node-firefox:101.0.1-geckodriver-0.36.0-20251020\nTagged selenium/standalone-firefox:101.0.1-geckodriver-0.36.0-20251020\nTagged selenium/node-firefox:101.0.1-20251020\nTagged selenium/standalone-firefox:101.0.1-20251020\nTagged selenium/node-firefox:101.0-geckodriver-0.36-grid-4.37.0-20251020\nTagged selenium/standalone-firefox:101.0-geckodriver-0.36-grid-4.37.0-20251020\nTagged selenium/node-firefox:101.0-geckodriver-0.36-20251020\nTagged selenium/standalone-firefox:101.0-geckodriver-0.36-20251020\nTagged selenium/node-firefox:101.0-20251020\nTagged selenium/standalone-firefox:101.0-20251020\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.37.0/firefox_102.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.37.0 20251020 selenium false firefox true\nTagging images for browser firefox, version 4.37.0, build date 20251020, namespace selenium\nSelenium Grid version -> 4.37.0-20251020\nFirefox version -> 102.0.1\nShort Firefox version -> 102.0\nGeckoDriver version -> 0.36.0\nShort GeckoDriver version -> 0.36\nTagged selenium/node-firefox:102.0.1-geckodriver-0.36.0-grid-4.37.0-20251020\nTagged selenium/standalone-firefox:102.0.1-geckodriver-0.36.0-grid-4.37.0-20251020\nTagged selenium/node-firefox:102.0.1-geckodriver-0.36.0-20251020\nTagged selenium/standalone-firefox:102.0.1-geckodriver-0.36.0-20251020\nTagged selenium/node-firefox:102.0.1-20251020\nTagged selenium/standalone-firefox:102.0.1-20251020\nTagged selenium/node-firefox:102.0-geckodriver-0.36-grid-4.37.0-20251020\nTagged selenium/standalone-firefox:102.0-geckodriver-0.36-grid-4.37.0-20251020\nTagged selenium/node-firefox:102.0-geckodriver-0.36-20251020\nTagged selenium/standalone-firefox:102.0-geckodriver-0.36-20251020\nTagged selenium/node-firefox:102.0-20251020\nTagged selenium/standalone-firefox:102.0-20251020\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.37.0/firefox_103.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.37.0 20251020 selenium false firefox true\nTagging images for browser firefox, version 4.37.0, build date 20251020, namespace selenium\nSelenium Grid version -> 4.37.0-20251020\nFirefox version -> 103.0.2\nShort Firefox version -> 103.0\nGeckoDriver version -> 0.36.0\nShort GeckoDriver version -> 0.36\nTagged selenium/node-firefox:103.0.2-geckodriver-0.36.0-grid-4.37.0-20251020\nTagged selenium/standalone-firefox:103.0.2-geckodriver-0.36.0-grid-4.37.0-20251020\nTagged selenium/node-firefox:103.0.2-geckodriver-0.36.0-20251020\nTagged selenium/standalone-firefox:103.0.2-geckodriver-0.36.0-20251020\nTagged selenium/node-firefox:103.0.2-20251020\nTagged selenium/standalone-firefox:103.0.2-20251020\nTagged selenium/node-firefox:103.0-geckodriver-0.36-grid-4.37.0-20251020\nTagged selenium/standalone-firefox:103.0-geckodriver-0.36-grid-4.37.0-20251020\nTagged selenium/node-firefox:103.0-geckodriver-0.36-20251020\nTagged selenium/standalone-firefox:103.0-geckodriver-0.36-20251020\nTagged selenium/node-firefox:103.0-20251020\nTagged selenium/standalone-firefox:103.0-20251020\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.37.0/firefox_104.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.37.0 20251020 selenium false firefox true\nTagging images for browser firefox, version 4.37.0, build date 20251020, namespace selenium\nSelenium Grid version -> 4.37.0-20251020\nFirefox version -> 104.0.2\nShort Firefox version -> 104.0\nGeckoDriver version -> 0.36.0\nShort GeckoDriver version -> 0.36\nTagged selenium/node-firefox:104.0.2-geckodriver-0.36.0-grid-4.37.0-20251020\nTagged selenium/standalone-firefox:104.0.2-geckodriver-0.36.0-grid-4.37.0-20251020\nTagged selenium/node-firefox:104.0.2-geckodriver-0.36.0-20251020\nTagged selenium/standalone-firefox:104.0.2-geckodriver-0.36.0-20251020\nTagged selenium/node-firefox:104.0.2-20251020\nTagged selenium/standalone-firefox:104.0.2-20251020\nTagged selenium/node-firefox:104.0-geckodriver-0.36-grid-4.37.0-20251020\nTagged selenium/standalone-firefox:104.0-geckodriver-0.36-grid-4.37.0-20251020\nTagged selenium/node-firefox:104.0-geckodriver-0.36-20251020\nTagged selenium/standalone-firefox:104.0-geckodriver-0.36-20251020\nTagged selenium/node-firefox:104.0-20251020\nTagged selenium/standalone-firefox:104.0-20251020\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.37.0/firefox_105.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.37.0 20251020 selenium false firefox true\nTagging images for browser firefox, version 4.37.0, build date 20251020, namespace selenium\nSelenium Grid version -> 4.37.0-20251020\nFirefox version -> 105.0.3\nShort Firefox version -> 105.0\nGeckoDriver version -> 0.36.0\nShort GeckoDriver version -> 0.36\nTagged selenium/node-firefox:105.0.3-geckodriver-0.36.0-grid-4.37.0-20251020\nTagged selenium/standalone-firefox:105.0.3-geckodriver-0.36.0-grid-4.37.0-20251020\nTagged selenium/node-firefox:105.0.3-geckodriver-0.36.0-20251020\nTagged selenium/standalone-firefox:105.0.3-geckodriver-0.36.0-20251020\nTagged selenium/node-firefox:105.0.3-20251020\nTagged selenium/standalone-firefox:105.0.3-20251020\nTagged selenium/node-firefox:105.0-geckodriver-0.36-grid-4.37.0-20251020\nTagged selenium/standalone-firefox:105.0-geckodriver-0.36-grid-4.37.0-20251020\nTagged selenium/node-firefox:105.0-geckodriver-0.36-20251020\nTagged selenium/standalone-firefox:105.0-geckodriver-0.36-20251020\nTagged selenium/node-firefox:105.0-20251020\nTagged selenium/standalone-firefox:105.0-20251020\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.37.0/firefox_106.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.37.0 20251020 selenium false firefox true\nTagging images for browser firefox, version 4.37.0, build date 20251020, namespace selenium\nSelenium Grid version -> 4.37.0-20251020\nFirefox version -> 106.0.5\nShort Firefox version -> 106.0\nGeckoDriver version -> 0.36.0\nShort GeckoDriver version -> 0.36\nTagged selenium/node-firefox:106.0.5-geckodriver-0.36.0-grid-4.37.0-20251020\nTagged selenium/standalone-firefox:106.0.5-geckodriver-0.36.0-grid-4.37.0-20251020\nTagged selenium/node-firefox:106.0.5-geckodriver-0.36.0-20251020\nTagged selenium/standalone-firefox:106.0.5-geckodriver-0.36.0-20251020\nTagged selenium/node-firefox:106.0.5-20251020\nTagged selenium/standalone-firefox:106.0.5-20251020\nTagged selenium/node-firefox:106.0-geckodriver-0.36-grid-4.37.0-20251020\nTagged selenium/standalone-firefox:106.0-geckodriver-0.36-grid-4.37.0-20251020\nTagged selenium/node-firefox:106.0-geckodriver-0.36-20251020\nTagged selenium/standalone-firefox:106.0-geckodriver-0.36-20251020\nTagged selenium/node-firefox:106.0-20251020\nTagged selenium/standalone-firefox:106.0-20251020\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.37.0/firefox_107.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.37.0 20251020 selenium false firefox true\nTagging images for browser firefox, version 4.37.0, build date 20251020, namespace selenium\nSelenium Grid version -> 4.37.0-20251020\nFirefox version -> 107.0.1\nShort Firefox version -> 107.0\nGeckoDriver version -> 0.36.0\nShort GeckoDriver version -> 0.36\nTagged selenium/node-firefox:107.0.1-geckodriver-0.36.0-grid-4.37.0-20251020\nTagged selenium/standalone-firefox:107.0.1-geckodriver-0.36.0-grid-4.37.0-20251020\nTagged selenium/node-firefox:107.0.1-geckodriver-0.36.0-20251020\nTagged selenium/standalone-firefox:107.0.1-geckodriver-0.36.0-20251020\nTagged selenium/node-firefox:107.0.1-20251020\nTagged selenium/standalone-firefox:107.0.1-20251020\nTagged selenium/node-firefox:107.0-geckodriver-0.36-grid-4.37.0-20251020\nTagged selenium/standalone-firefox:107.0-geckodriver-0.36-grid-4.37.0-20251020\nTagged selenium/node-firefox:107.0-geckodriver-0.36-20251020\nTagged selenium/standalone-firefox:107.0-geckodriver-0.36-20251020\nTagged selenium/node-firefox:107.0-20251020\nTagged selenium/standalone-firefox:107.0-20251020\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.37.0/firefox_108.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.37.0 20251020 selenium false firefox true\nTagging images for browser firefox, version 4.37.0, build date 20251020, namespace selenium\nSelenium Grid version -> 4.37.0-20251020\nFirefox version -> 108.0.2\nShort Firefox version -> 108.0\nGeckoDriver version -> 0.36.0\nShort GeckoDriver version -> 0.36\nTagged selenium/node-firefox:108.0.2-geckodriver-0.36.0-grid-4.37.0-20251020\nTagged selenium/standalone-firefox:108.0.2-geckodriver-0.36.0-grid-4.37.0-20251020\nTagged selenium/node-firefox:108.0.2-geckodriver-0.36.0-20251020\nTagged selenium/standalone-firefox:108.0.2-geckodriver-0.36.0-20251020\nTagged selenium/node-firefox:108.0.2-20251020\nTagged selenium/standalone-firefox:108.0.2-20251020\nTagged selenium/node-firefox:108.0-geckodriver-0.36-grid-4.37.0-20251020\nTagged selenium/standalone-firefox:108.0-geckodriver-0.36-grid-4.37.0-20251020\nTagged selenium/node-firefox:108.0-geckodriver-0.36-20251020\nTagged selenium/standalone-firefox:108.0-geckodriver-0.36-20251020\nTagged selenium/node-firefox:108.0-20251020\nTagged selenium/standalone-firefox:108.0-20251020\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.37.0/firefox_109.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.37.0 20251020 selenium false firefox true\nTagging images for browser firefox, version 4.37.0, build date 20251020, namespace selenium\nSelenium Grid version -> 4.37.0-20251020\nFirefox version -> 109.0.1\nShort Firefox version -> 109.0\nGeckoDriver version -> 0.36.0\nShort GeckoDriver version -> 0.36\nTagged selenium/node-firefox:109.0.1-geckodriver-0.36.0-grid-4.37.0-20251020\nTagged selenium/standalone-firefox:109.0.1-geckodriver-0.36.0-grid-4.37.0-20251020\nTagged selenium/node-firefox:109.0.1-geckodriver-0.36.0-20251020\nTagged selenium/standalone-firefox:109.0.1-geckodriver-0.36.0-20251020\nTagged selenium/node-firefox:109.0.1-20251020\nTagged selenium/standalone-firefox:109.0.1-20251020\nTagged selenium/node-firefox:109.0-geckodriver-0.36-grid-4.37.0-20251020\nTagged selenium/standalone-firefox:109.0-geckodriver-0.36-grid-4.37.0-20251020\nTagged selenium/node-firefox:109.0-geckodriver-0.36-20251020\nTagged selenium/standalone-firefox:109.0-geckodriver-0.36-20251020\nTagged selenium/node-firefox:109.0-20251020\nTagged selenium/standalone-firefox:109.0-20251020\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.37.0/firefox_110.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.37.0 20251020 selenium false firefox true\nTagging images for browser firefox, version 4.37.0, build date 20251020, namespace selenium\nSelenium Grid version -> 4.37.0-20251020\nFirefox version -> 110.0.1\nShort Firefox version -> 110.0\nGeckoDriver version -> 0.36.0\nShort GeckoDriver version -> 0.36\nTagged selenium/node-firefox:110.0.1-geckodriver-0.36.0-grid-4.37.0-20251020\nTagged selenium/standalone-firefox:110.0.1-geckodriver-0.36.0-grid-4.37.0-20251020\nTagged selenium/node-firefox:110.0.1-geckodriver-0.36.0-20251020\nTagged selenium/standalone-firefox:110.0.1-geckodriver-0.36.0-20251020\nTagged selenium/node-firefox:110.0.1-20251020\nTagged selenium/standalone-firefox:110.0.1-20251020\nTagged selenium/node-firefox:110.0-geckodriver-0.36-grid-4.37.0-20251020\nTagged selenium/standalone-firefox:110.0-geckodriver-0.36-grid-4.37.0-20251020\nTagged selenium/node-firefox:110.0-geckodriver-0.36-20251020\nTagged selenium/standalone-firefox:110.0-geckodriver-0.36-20251020\nTagged selenium/node-firefox:110.0-20251020\nTagged selenium/standalone-firefox:110.0-20251020\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.37.0/firefox_111.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.37.0 20251020 selenium false firefox true\nTagging images for browser firefox, version 4.37.0, build date 20251020, namespace selenium\nSelenium Grid version -> 4.37.0-20251020\nFirefox version -> 111.0.1\nShort Firefox version -> 111.0\nGeckoDriver version -> 0.36.0\nShort GeckoDriver version -> 0.36\nTagged selenium/node-firefox:111.0.1-geckodriver-0.36.0-grid-4.37.0-20251020\nTagged selenium/standalone-firefox:111.0.1-geckodriver-0.36.0-grid-4.37.0-20251020\nTagged selenium/node-firefox:111.0.1-geckodriver-0.36.0-20251020\nTagged selenium/standalone-firefox:111.0.1-geckodriver-0.36.0-20251020\nTagged selenium/node-firefox:111.0.1-20251020\nTagged selenium/standalone-firefox:111.0.1-20251020\nTagged selenium/node-firefox:111.0-geckodriver-0.36-grid-4.37.0-20251020\nTagged selenium/standalone-firefox:111.0-geckodriver-0.36-grid-4.37.0-20251020\nTagged selenium/node-firefox:111.0-geckodriver-0.36-20251020\nTagged selenium/standalone-firefox:111.0-geckodriver-0.36-20251020\nTagged selenium/node-firefox:111.0-20251020\nTagged selenium/standalone-firefox:111.0-20251020\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.37.0/firefox_112.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.37.0 20251020 selenium false firefox true\nTagging images for browser firefox, version 4.37.0, build date 20251020, namespace selenium\nSelenium Grid version -> 4.37.0-20251020\nFirefox version -> 112.0.2\nShort Firefox version -> 112.0\nGeckoDriver version -> 0.36.0\nShort GeckoDriver version -> 0.36\nTagged selenium/node-firefox:112.0.2-geckodriver-0.36.0-grid-4.37.0-20251020\nTagged selenium/standalone-firefox:112.0.2-geckodriver-0.36.0-grid-4.37.0-20251020\nTagged selenium/node-firefox:112.0.2-geckodriver-0.36.0-20251020\nTagged selenium/standalone-firefox:112.0.2-geckodriver-0.36.0-20251020\nTagged selenium/node-firefox:112.0.2-20251020\nTagged selenium/standalone-firefox:112.0.2-20251020\nTagged selenium/node-firefox:112.0-geckodriver-0.36-grid-4.37.0-20251020\nTagged selenium/standalone-firefox:112.0-geckodriver-0.36-grid-4.37.0-20251020\nTagged selenium/node-firefox:112.0-geckodriver-0.36-20251020\nTagged selenium/standalone-firefox:112.0-geckodriver-0.36-20251020\nTagged selenium/node-firefox:112.0-20251020\nTagged selenium/standalone-firefox:112.0-20251020\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.37.0/firefox_113.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.37.0 20251020 selenium false firefox true\nTagging images for browser firefox, version 4.37.0, build date 20251020, namespace selenium\nSelenium Grid version -> 4.37.0-20251020\nFirefox version -> 113.0.2\nShort Firefox version -> 113.0\nGeckoDriver version -> 0.36.0\nShort GeckoDriver version -> 0.36\nTagged selenium/node-firefox:113.0.2-geckodriver-0.36.0-grid-4.37.0-20251020\nTagged selenium/standalone-firefox:113.0.2-geckodriver-0.36.0-grid-4.37.0-20251020\nTagged selenium/node-firefox:113.0.2-geckodriver-0.36.0-20251020\nTagged selenium/standalone-firefox:113.0.2-geckodriver-0.36.0-20251020\nTagged selenium/node-firefox:113.0.2-20251020\nTagged selenium/standalone-firefox:113.0.2-20251020\nTagged selenium/node-firefox:113.0-geckodriver-0.36-grid-4.37.0-20251020\nTagged selenium/standalone-firefox:113.0-geckodriver-0.36-grid-4.37.0-20251020\nTagged selenium/node-firefox:113.0-geckodriver-0.36-20251020\nTagged selenium/standalone-firefox:113.0-geckodriver-0.36-20251020\nTagged selenium/node-firefox:113.0-20251020\nTagged selenium/standalone-firefox:113.0-20251020\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.37.0/firefox_114.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.37.0 20251020 selenium false firefox true\nTagging images for browser firefox, version 4.37.0, build date 20251020, namespace selenium\nSelenium Grid version -> 4.37.0-20251020\nFirefox version -> 114.0.2\nShort Firefox version -> 114.0\nGeckoDriver version -> 0.36.0\nShort GeckoDriver version -> 0.36\nTagged selenium/node-firefox:114.0.2-geckodriver-0.36.0-grid-4.37.0-20251020\nTagged selenium/standalone-firefox:114.0.2-geckodriver-0.36.0-grid-4.37.0-20251020\nTagged selenium/node-firefox:114.0.2-geckodriver-0.36.0-20251020\nTagged selenium/standalone-firefox:114.0.2-geckodriver-0.36.0-20251020\nTagged selenium/node-firefox:114.0.2-20251020\nTagged selenium/standalone-firefox:114.0.2-20251020\nTagged selenium/node-firefox:114.0-geckodriver-0.36-grid-4.37.0-20251020\nTagged selenium/standalone-firefox:114.0-geckodriver-0.36-grid-4.37.0-20251020\nTagged selenium/node-firefox:114.0-geckodriver-0.36-20251020\nTagged selenium/standalone-firefox:114.0-geckodriver-0.36-20251020\nTagged selenium/node-firefox:114.0-20251020\nTagged selenium/standalone-firefox:114.0-20251020\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.37.0/firefox_115.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.37.0 20251020 selenium false firefox true\nTagging images for browser firefox, version 4.37.0, build date 20251020, namespace selenium\nSelenium Grid version -> 4.37.0-20251020\nFirefox version -> 115.0.3\nShort Firefox version -> 115.0\nGeckoDriver version -> 0.36.0\nShort GeckoDriver version -> 0.36\nTagged selenium/node-firefox:115.0.3-geckodriver-0.36.0-grid-4.37.0-20251020\nTagged selenium/standalone-firefox:115.0.3-geckodriver-0.36.0-grid-4.37.0-20251020\nTagged selenium/node-firefox:115.0.3-geckodriver-0.36.0-20251020\nTagged selenium/standalone-firefox:115.0.3-geckodriver-0.36.0-20251020\nTagged selenium/node-firefox:115.0.3-20251020\nTagged selenium/standalone-firefox:115.0.3-20251020\nTagged selenium/node-firefox:115.0-geckodriver-0.36-grid-4.37.0-20251020\nTagged selenium/standalone-firefox:115.0-geckodriver-0.36-grid-4.37.0-20251020\nTagged selenium/node-firefox:115.0-geckodriver-0.36-20251020\nTagged selenium/standalone-firefox:115.0-geckodriver-0.36-20251020\nTagged selenium/node-firefox:115.0-20251020\nTagged selenium/standalone-firefox:115.0-20251020\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.37.0/firefox_116.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.37.0 20251020 selenium false firefox true\nTagging images for browser firefox, version 4.37.0, build date 20251020, namespace selenium\nSelenium Grid version -> 4.37.0-20251020\nFirefox version -> 116.0.3\nShort Firefox version -> 116.0\nGeckoDriver version -> 0.36.0\nShort GeckoDriver version -> 0.36\nTagged selenium/node-firefox:116.0.3-geckodriver-0.36.0-grid-4.37.0-20251020\nTagged selenium/standalone-firefox:116.0.3-geckodriver-0.36.0-grid-4.37.0-20251020\nTagged selenium/node-firefox:116.0.3-geckodriver-0.36.0-20251020\nTagged selenium/standalone-firefox:116.0.3-geckodriver-0.36.0-20251020\nTagged selenium/node-firefox:116.0.3-20251020\nTagged selenium/standalone-firefox:116.0.3-20251020\nTagged selenium/node-firefox:116.0-geckodriver-0.36-grid-4.37.0-20251020\nTagged selenium/standalone-firefox:116.0-geckodriver-0.36-grid-4.37.0-20251020\nTagged selenium/node-firefox:116.0-geckodriver-0.36-20251020\nTagged selenium/standalone-firefox:116.0-geckodriver-0.36-20251020\nTagged selenium/node-firefox:116.0-20251020\nTagged selenium/standalone-firefox:116.0-20251020\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.37.0/firefox_117.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.37.0 20251020 selenium false firefox true\nTagging images for browser firefox, version 4.37.0, build date 20251020, namespace selenium\nSelenium Grid version -> 4.37.0-20251020\nFirefox version -> 117.0.1\nShort Firefox version -> 117.0\nGeckoDriver version -> 0.36.0\nShort GeckoDriver version -> 0.36\nTagged selenium/node-firefox:117.0.1-geckodriver-0.36.0-grid-4.37.0-20251020\nTagged selenium/standalone-firefox:117.0.1-geckodriver-0.36.0-grid-4.37.0-20251020\nTagged selenium/node-firefox:117.0.1-geckodriver-0.36.0-20251020\nTagged selenium/standalone-firefox:117.0.1-geckodriver-0.36.0-20251020\nTagged selenium/node-firefox:117.0.1-20251020\nTagged selenium/standalone-firefox:117.0.1-20251020\nTagged selenium/node-firefox:117.0-geckodriver-0.36-grid-4.37.0-20251020\nTagged selenium/standalone-firefox:117.0-geckodriver-0.36-grid-4.37.0-20251020\nTagged selenium/node-firefox:117.0-geckodriver-0.36-20251020\nTagged selenium/standalone-firefox:117.0-geckodriver-0.36-20251020\nTagged selenium/node-firefox:117.0-20251020\nTagged selenium/standalone-firefox:117.0-20251020\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.37.0/firefox_118.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.37.0 20251020 selenium false firefox true\nTagging images for browser firefox, version 4.37.0, build date 20251020, namespace selenium\nSelenium Grid version -> 4.37.0-20251020\nFirefox version -> 118.0.2\nShort Firefox version -> 118.0\nGeckoDriver version -> 0.36.0\nShort GeckoDriver version -> 0.36\nTagged selenium/node-firefox:118.0.2-geckodriver-0.36.0-grid-4.37.0-20251020\nTagged selenium/standalone-firefox:118.0.2-geckodriver-0.36.0-grid-4.37.0-20251020\nTagged selenium/node-firefox:118.0.2-geckodriver-0.36.0-20251020\nTagged selenium/standalone-firefox:118.0.2-geckodriver-0.36.0-20251020\nTagged selenium/node-firefox:118.0.2-20251020\nTagged selenium/standalone-firefox:118.0.2-20251020\nTagged selenium/node-firefox:118.0-geckodriver-0.36-grid-4.37.0-20251020\nTagged selenium/standalone-firefox:118.0-geckodriver-0.36-grid-4.37.0-20251020\nTagged selenium/node-firefox:118.0-geckodriver-0.36-20251020\nTagged selenium/standalone-firefox:118.0-geckodriver-0.36-20251020\nTagged selenium/node-firefox:118.0-20251020\nTagged selenium/standalone-firefox:118.0-20251020\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.37.0/firefox_119.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.37.0 20251020 selenium false firefox true\nTagging images for browser firefox, version 4.37.0, build date 20251020, namespace selenium\nSelenium Grid version -> 4.37.0-20251020\nFirefox version -> 119.0.1\nShort Firefox version -> 119.0\nGeckoDriver version -> 0.36.0\nShort GeckoDriver version -> 0.36\nTagged selenium/node-firefox:119.0.1-geckodriver-0.36.0-grid-4.37.0-20251020\nTagged selenium/standalone-firefox:119.0.1-geckodriver-0.36.0-grid-4.37.0-20251020\nTagged selenium/node-firefox:119.0.1-geckodriver-0.36.0-20251020\nTagged selenium/standalone-firefox:119.0.1-geckodriver-0.36.0-20251020\nTagged selenium/node-firefox:119.0.1-20251020\nTagged selenium/standalone-firefox:119.0.1-20251020\nTagged selenium/node-firefox:119.0-geckodriver-0.36-grid-4.37.0-20251020\nTagged selenium/standalone-firefox:119.0-geckodriver-0.36-grid-4.37.0-20251020\nTagged selenium/node-firefox:119.0-geckodriver-0.36-20251020\nTagged selenium/standalone-firefox:119.0-geckodriver-0.36-20251020\nTagged selenium/node-firefox:119.0-20251020\nTagged selenium/standalone-firefox:119.0-20251020\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.37.0/firefox_120.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.37.0 20251020 selenium false firefox true\nTagging images for browser firefox, version 4.37.0, build date 20251020, namespace selenium\nSelenium Grid version -> 4.37.0-20251020\nFirefox version -> 120.0.1\nShort Firefox version -> 120.0\nGeckoDriver version -> 0.36.0\nShort GeckoDriver version -> 0.36\nTagged selenium/node-firefox:120.0.1-geckodriver-0.36.0-grid-4.37.0-20251020\nTagged selenium/standalone-firefox:120.0.1-geckodriver-0.36.0-grid-4.37.0-20251020\nTagged selenium/node-firefox:120.0.1-geckodriver-0.36.0-20251020\nTagged selenium/standalone-firefox:120.0.1-geckodriver-0.36.0-20251020\nTagged selenium/node-firefox:120.0.1-20251020\nTagged selenium/standalone-firefox:120.0.1-20251020\nTagged selenium/node-firefox:120.0-geckodriver-0.36-grid-4.37.0-20251020\nTagged selenium/standalone-firefox:120.0-geckodriver-0.36-grid-4.37.0-20251020\nTagged selenium/node-firefox:120.0-geckodriver-0.36-20251020\nTagged selenium/standalone-firefox:120.0-geckodriver-0.36-20251020\nTagged selenium/node-firefox:120.0-20251020\nTagged selenium/standalone-firefox:120.0-20251020\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.37.0/firefox_121.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.37.0 20251020 selenium false firefox true\nTagging images for browser firefox, version 4.37.0, build date 20251020, namespace selenium\nSelenium Grid version -> 4.37.0-20251020\nFirefox version -> 121.0.1\nShort Firefox version -> 121.0\nGeckoDriver version -> 0.36.0\nShort GeckoDriver version -> 0.36\nTagged selenium/node-firefox:121.0.1-geckodriver-0.36.0-grid-4.37.0-20251020\nTagged selenium/standalone-firefox:121.0.1-geckodriver-0.36.0-grid-4.37.0-20251020\nTagged selenium/node-firefox:121.0.1-geckodriver-0.36.0-20251020\nTagged selenium/standalone-firefox:121.0.1-geckodriver-0.36.0-20251020\nTagged selenium/node-firefox:121.0.1-20251020\nTagged selenium/standalone-firefox:121.0.1-20251020\nTagged selenium/node-firefox:121.0-geckodriver-0.36-grid-4.37.0-20251020\nTagged selenium/standalone-firefox:121.0-geckodriver-0.36-grid-4.37.0-20251020\nTagged selenium/node-firefox:121.0-geckodriver-0.36-20251020\nTagged selenium/standalone-firefox:121.0-geckodriver-0.36-20251020\nTagged selenium/node-firefox:121.0-20251020\nTagged selenium/standalone-firefox:121.0-20251020\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.37.0/firefox_122.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.37.0 20251020 selenium false firefox true\nTagging images for browser firefox, version 4.37.0, build date 20251020, namespace selenium\nSelenium Grid version -> 4.37.0-20251020\nFirefox version -> 122.0.1\nShort Firefox version -> 122.0\nGeckoDriver version -> 0.36.0\nShort GeckoDriver version -> 0.36\nTagged selenium/node-firefox:122.0.1-geckodriver-0.36.0-grid-4.37.0-20251020\nTagged selenium/standalone-firefox:122.0.1-geckodriver-0.36.0-grid-4.37.0-20251020\nTagged selenium/node-firefox:122.0.1-geckodriver-0.36.0-20251020\nTagged selenium/standalone-firefox:122.0.1-geckodriver-0.36.0-20251020\nTagged selenium/node-firefox:122.0.1-20251020\nTagged selenium/standalone-firefox:122.0.1-20251020\nTagged selenium/node-firefox:122.0-geckodriver-0.36-grid-4.37.0-20251020\nTagged selenium/standalone-firefox:122.0-geckodriver-0.36-grid-4.37.0-20251020\nTagged selenium/node-firefox:122.0-geckodriver-0.36-20251020\nTagged selenium/standalone-firefox:122.0-geckodriver-0.36-20251020\nTagged selenium/node-firefox:122.0-20251020\nTagged selenium/standalone-firefox:122.0-20251020\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.37.0/firefox_123.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.37.0 20251020 selenium false firefox true\nTagging images for browser firefox, version 4.37.0, build date 20251020, namespace selenium\nSelenium Grid version -> 4.37.0-20251020\nFirefox version -> 123.0.1\nShort Firefox version -> 123.0\nGeckoDriver version -> 0.36.0\nShort GeckoDriver version -> 0.36\nTagged selenium/node-firefox:123.0.1-geckodriver-0.36.0-grid-4.37.0-20251020\nTagged selenium/standalone-firefox:123.0.1-geckodriver-0.36.0-grid-4.37.0-20251020\nTagged selenium/node-firefox:123.0.1-geckodriver-0.36.0-20251020\nTagged selenium/standalone-firefox:123.0.1-geckodriver-0.36.0-20251020\nTagged selenium/node-firefox:123.0.1-20251020\nTagged selenium/standalone-firefox:123.0.1-20251020\nTagged selenium/node-firefox:123.0-geckodriver-0.36-grid-4.37.0-20251020\nTagged selenium/standalone-firefox:123.0-geckodriver-0.36-grid-4.37.0-20251020\nTagged selenium/node-firefox:123.0-geckodriver-0.36-20251020\nTagged selenium/standalone-firefox:123.0-geckodriver-0.36-20251020\nTagged selenium/node-firefox:123.0-20251020\nTagged selenium/standalone-firefox:123.0-20251020\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.37.0/firefox_124.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.37.0 20251020 selenium false firefox true\nTagging images for browser firefox, version 4.37.0, build date 20251020, namespace selenium\nSelenium Grid version -> 4.37.0-20251020\nFirefox version -> 124.0.2\nShort Firefox version -> 124.0\nGeckoDriver version -> 0.36.0\nShort GeckoDriver version -> 0.36\nTagged selenium/node-firefox:124.0.2-geckodriver-0.36.0-grid-4.37.0-20251020\nTagged selenium/standalone-firefox:124.0.2-geckodriver-0.36.0-grid-4.37.0-20251020\nTagged selenium/node-firefox:124.0.2-geckodriver-0.36.0-20251020\nTagged selenium/standalone-firefox:124.0.2-geckodriver-0.36.0-20251020\nTagged selenium/node-firefox:124.0.2-20251020\nTagged selenium/standalone-firefox:124.0.2-20251020\nTagged selenium/node-firefox:124.0-geckodriver-0.36-grid-4.37.0-20251020\nTagged selenium/standalone-firefox:124.0-geckodriver-0.36-grid-4.37.0-20251020\nTagged selenium/node-firefox:124.0-geckodriver-0.36-20251020\nTagged selenium/standalone-firefox:124.0-geckodriver-0.36-20251020\nTagged selenium/node-firefox:124.0-20251020\nTagged selenium/standalone-firefox:124.0-20251020\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.37.0/firefox_125.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.37.0 20251020 selenium false firefox true\nTagging images for browser firefox, version 4.37.0, build date 20251020, namespace selenium\nSelenium Grid version -> 4.37.0-20251020\nFirefox version -> 125.0.3\nShort Firefox version -> 125.0\nGeckoDriver version -> 0.36.0\nShort GeckoDriver version -> 0.36\nTagged selenium/node-firefox:125.0.3-geckodriver-0.36.0-grid-4.37.0-20251020\nTagged selenium/standalone-firefox:125.0.3-geckodriver-0.36.0-grid-4.37.0-20251020\nTagged selenium/node-firefox:125.0.3-geckodriver-0.36.0-20251020\nTagged selenium/standalone-firefox:125.0.3-geckodriver-0.36.0-20251020\nTagged selenium/node-firefox:125.0.3-20251020\nTagged selenium/standalone-firefox:125.0.3-20251020\nTagged selenium/node-firefox:125.0-geckodriver-0.36-grid-4.37.0-20251020\nTagged selenium/standalone-firefox:125.0-geckodriver-0.36-grid-4.37.0-20251020\nTagged selenium/node-firefox:125.0-geckodriver-0.36-20251020\nTagged selenium/standalone-firefox:125.0-geckodriver-0.36-20251020\nTagged selenium/node-firefox:125.0-20251020\nTagged selenium/standalone-firefox:125.0-20251020\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.37.0/firefox_126.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.37.0 20251020 selenium false firefox true\nTagging images for browser firefox, version 4.37.0, build date 20251020, namespace selenium\nSelenium Grid version -> 4.37.0-20251020\nFirefox version -> 126.0.1\nShort Firefox version -> 126.0\nGeckoDriver version -> 0.36.0\nShort GeckoDriver version -> 0.36\nTagged selenium/node-firefox:126.0.1-geckodriver-0.36.0-grid-4.37.0-20251020\nTagged selenium/standalone-firefox:126.0.1-geckodriver-0.36.0-grid-4.37.0-20251020\nTagged selenium/node-firefox:126.0.1-geckodriver-0.36.0-20251020\nTagged selenium/standalone-firefox:126.0.1-geckodriver-0.36.0-20251020\nTagged selenium/node-firefox:126.0.1-20251020\nTagged selenium/standalone-firefox:126.0.1-20251020\nTagged selenium/node-firefox:126.0-geckodriver-0.36-grid-4.37.0-20251020\nTagged selenium/standalone-firefox:126.0-geckodriver-0.36-grid-4.37.0-20251020\nTagged selenium/node-firefox:126.0-geckodriver-0.36-20251020\nTagged selenium/standalone-firefox:126.0-geckodriver-0.36-20251020\nTagged selenium/node-firefox:126.0-20251020\nTagged selenium/standalone-firefox:126.0-20251020\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.37.0/firefox_127.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.37.0 20251020 selenium false firefox true\nTagging images for browser firefox, version 4.37.0, build date 20251020, namespace selenium\nSelenium Grid version -> 4.37.0-20251020\nFirefox version -> 127.0.2\nShort Firefox version -> 127.0\nGeckoDriver version -> 0.36.0\nShort GeckoDriver version -> 0.36\nTagged selenium/node-firefox:127.0.2-geckodriver-0.36.0-grid-4.37.0-20251020\nTagged selenium/standalone-firefox:127.0.2-geckodriver-0.36.0-grid-4.37.0-20251020\nTagged selenium/node-firefox:127.0.2-geckodriver-0.36.0-20251020\nTagged selenium/standalone-firefox:127.0.2-geckodriver-0.36.0-20251020\nTagged selenium/node-firefox:127.0.2-20251020\nTagged selenium/standalone-firefox:127.0.2-20251020\nTagged selenium/node-firefox:127.0-geckodriver-0.36-grid-4.37.0-20251020\nTagged selenium/standalone-firefox:127.0-geckodriver-0.36-grid-4.37.0-20251020\nTagged selenium/node-firefox:127.0-geckodriver-0.36-20251020\nTagged selenium/standalone-firefox:127.0-geckodriver-0.36-20251020\nTagged selenium/node-firefox:127.0-20251020\nTagged selenium/standalone-firefox:127.0-20251020\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.37.0/firefox_128.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.37.0 20251020 selenium false firefox true\nTagging images for browser firefox, version 4.37.0, build date 20251020, namespace selenium\nSelenium Grid version -> 4.37.0-20251020\nFirefox version -> 128.0.3\nShort Firefox version -> 128.0\nGeckoDriver version -> 0.36.0\nShort GeckoDriver version -> 0.36\nTagged selenium/node-firefox:128.0.3-geckodriver-0.36.0-grid-4.37.0-20251020\nTagged selenium/standalone-firefox:128.0.3-geckodriver-0.36.0-grid-4.37.0-20251020\nTagged selenium/node-firefox:128.0.3-geckodriver-0.36.0-20251020\nTagged selenium/standalone-firefox:128.0.3-geckodriver-0.36.0-20251020\nTagged selenium/node-firefox:128.0.3-20251020\nTagged selenium/standalone-firefox:128.0.3-20251020\nTagged selenium/node-firefox:128.0-geckodriver-0.36-grid-4.37.0-20251020\nTagged selenium/standalone-firefox:128.0-geckodriver-0.36-grid-4.37.0-20251020\nTagged selenium/node-firefox:128.0-geckodriver-0.36-20251020\nTagged selenium/standalone-firefox:128.0-geckodriver-0.36-20251020\nTagged selenium/node-firefox:128.0-20251020\nTagged selenium/standalone-firefox:128.0-20251020\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.37.0/firefox_129.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.37.0 20251020 selenium false firefox true\nTagging images for browser firefox, version 4.37.0, build date 20251020, namespace selenium\nSelenium Grid version -> 4.37.0-20251020\nFirefox version -> 129.0.2\nShort Firefox version -> 129.0\nGeckoDriver version -> 0.36.0\nShort GeckoDriver version -> 0.36\nTagged selenium/node-firefox:129.0.2-geckodriver-0.36.0-grid-4.37.0-20251020\nTagged selenium/standalone-firefox:129.0.2-geckodriver-0.36.0-grid-4.37.0-20251020\nTagged selenium/node-firefox:129.0.2-geckodriver-0.36.0-20251020\nTagged selenium/standalone-firefox:129.0.2-geckodriver-0.36.0-20251020\nTagged selenium/node-firefox:129.0.2-20251020\nTagged selenium/standalone-firefox:129.0.2-20251020\nTagged selenium/node-firefox:129.0-geckodriver-0.36-grid-4.37.0-20251020\nTagged selenium/standalone-firefox:129.0-geckodriver-0.36-grid-4.37.0-20251020\nTagged selenium/node-firefox:129.0-geckodriver-0.36-20251020\nTagged selenium/standalone-firefox:129.0-geckodriver-0.36-20251020\nTagged selenium/node-firefox:129.0-20251020\nTagged selenium/standalone-firefox:129.0-20251020\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.37.0/firefox_130.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.37.0 20251020 selenium false firefox true\nTagging images for browser firefox, version 4.37.0, build date 20251020, namespace selenium\nSelenium Grid version -> 4.37.0-20251020\nFirefox version -> 130.0.1\nShort Firefox version -> 130.0\nGeckoDriver version -> 0.36.0\nShort GeckoDriver version -> 0.36\nTagged selenium/node-firefox:130.0.1-geckodriver-0.36.0-grid-4.37.0-20251020\nTagged selenium/standalone-firefox:130.0.1-geckodriver-0.36.0-grid-4.37.0-20251020\nTagged selenium/node-firefox:130.0.1-geckodriver-0.36.0-20251020\nTagged selenium/standalone-firefox:130.0.1-geckodriver-0.36.0-20251020\nTagged selenium/node-firefox:130.0.1-20251020\nTagged selenium/standalone-firefox:130.0.1-20251020\nTagged selenium/node-firefox:130.0-geckodriver-0.36-grid-4.37.0-20251020\nTagged selenium/standalone-firefox:130.0-geckodriver-0.36-grid-4.37.0-20251020\nTagged selenium/node-firefox:130.0-geckodriver-0.36-20251020\nTagged selenium/standalone-firefox:130.0-geckodriver-0.36-20251020\nTagged selenium/node-firefox:130.0-20251020\nTagged selenium/standalone-firefox:130.0-20251020\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.37.0/firefox_131.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.37.0 20251020 selenium false firefox true\nTagging images for browser firefox, version 4.37.0, build date 20251020, namespace selenium\nSelenium Grid version -> 4.37.0-20251020\nFirefox version -> 131.0.3\nShort Firefox version -> 131.0\nGeckoDriver version -> 0.36.0\nShort GeckoDriver version -> 0.36\nTagged selenium/node-firefox:131.0.3-geckodriver-0.36.0-grid-4.37.0-20251020\nTagged selenium/standalone-firefox:131.0.3-geckodriver-0.36.0-grid-4.37.0-20251020\nTagged selenium/node-firefox:131.0.3-geckodriver-0.36.0-20251020\nTagged selenium/standalone-firefox:131.0.3-geckodriver-0.36.0-20251020\nTagged selenium/node-firefox:131.0.3-20251020\nTagged selenium/standalone-firefox:131.0.3-20251020\nTagged selenium/node-firefox:131.0-geckodriver-0.36-grid-4.37.0-20251020\nTagged selenium/standalone-firefox:131.0-geckodriver-0.36-grid-4.37.0-20251020\nTagged selenium/node-firefox:131.0-geckodriver-0.36-20251020\nTagged selenium/standalone-firefox:131.0-geckodriver-0.36-20251020\nTagged selenium/node-firefox:131.0-20251020\nTagged selenium/standalone-firefox:131.0-20251020\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.37.0/firefox_132.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.37.0 20251020 selenium false firefox true\nTagging images for browser firefox, version 4.37.0, build date 20251020, namespace selenium\nSelenium Grid version -> 4.37.0-20251020\nFirefox version -> 132.0.2\nShort Firefox version -> 132.0\nGeckoDriver version -> 0.36.0\nShort GeckoDriver version -> 0.36\nTagged selenium/node-firefox:132.0.2-geckodriver-0.36.0-grid-4.37.0-20251020\nTagged selenium/standalone-firefox:132.0.2-geckodriver-0.36.0-grid-4.37.0-20251020\nTagged selenium/node-firefox:132.0.2-geckodriver-0.36.0-20251020\nTagged selenium/standalone-firefox:132.0.2-geckodriver-0.36.0-20251020\nTagged selenium/node-firefox:132.0.2-20251020\nTagged selenium/standalone-firefox:132.0.2-20251020\nTagged selenium/node-firefox:132.0-geckodriver-0.36-grid-4.37.0-20251020\nTagged selenium/standalone-firefox:132.0-geckodriver-0.36-grid-4.37.0-20251020\nTagged selenium/node-firefox:132.0-geckodriver-0.36-20251020\nTagged selenium/standalone-firefox:132.0-geckodriver-0.36-20251020\nTagged selenium/node-firefox:132.0-20251020\nTagged selenium/standalone-firefox:132.0-20251020\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.37.0/firefox_133.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.37.0 20251020 selenium false firefox true\nTagging images for browser firefox, version 4.37.0, build date 20251020, namespace selenium\nSelenium Grid version -> 4.37.0-20251020\nFirefox version -> 133.0.3\nShort Firefox version -> 133.0\nGeckoDriver version -> 0.36.0\nShort GeckoDriver version -> 0.36\nTagged selenium/node-firefox:133.0.3-geckodriver-0.36.0-grid-4.37.0-20251020\nTagged selenium/standalone-firefox:133.0.3-geckodriver-0.36.0-grid-4.37.0-20251020\nTagged selenium/node-firefox:133.0.3-geckodriver-0.36.0-20251020\nTagged selenium/standalone-firefox:133.0.3-geckodriver-0.36.0-20251020\nTagged selenium/node-firefox:133.0.3-20251020\nTagged selenium/standalone-firefox:133.0.3-20251020\nTagged selenium/node-firefox:133.0-geckodriver-0.36-grid-4.37.0-20251020\nTagged selenium/standalone-firefox:133.0-geckodriver-0.36-grid-4.37.0-20251020\nTagged selenium/node-firefox:133.0-geckodriver-0.36-20251020\nTagged selenium/standalone-firefox:133.0-geckodriver-0.36-20251020\nTagged selenium/node-firefox:133.0-20251020\nTagged selenium/standalone-firefox:133.0-20251020\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.37.0/firefox_134.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.37.0 20251020 selenium false firefox true\nTagging images for browser firefox, version 4.37.0, build date 20251020, namespace selenium\nSelenium Grid version -> 4.37.0-20251020\nFirefox version -> 134.0.2\nShort Firefox version -> 134.0\nGeckoDriver version -> 0.36.0\nShort GeckoDriver version -> 0.36\nTagged selenium/node-firefox:134.0.2-geckodriver-0.36.0-grid-4.37.0-20251020\nTagged selenium/standalone-firefox:134.0.2-geckodriver-0.36.0-grid-4.37.0-20251020\nTagged selenium/node-firefox:134.0.2-geckodriver-0.36.0-20251020\nTagged selenium/standalone-firefox:134.0.2-geckodriver-0.36.0-20251020\nTagged selenium/node-firefox:134.0.2-20251020\nTagged selenium/standalone-firefox:134.0.2-20251020\nTagged selenium/node-firefox:134.0-geckodriver-0.36-grid-4.37.0-20251020\nTagged selenium/standalone-firefox:134.0-geckodriver-0.36-grid-4.37.0-20251020\nTagged selenium/node-firefox:134.0-geckodriver-0.36-20251020\nTagged selenium/standalone-firefox:134.0-geckodriver-0.36-20251020\nTagged selenium/node-firefox:134.0-20251020\nTagged selenium/standalone-firefox:134.0-20251020\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.37.0/firefox_135.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.37.0 20251020 selenium false firefox true\nTagging images for browser firefox, version 4.37.0, build date 20251020, namespace selenium\nSelenium Grid version -> 4.37.0-20251020\nFirefox version -> 135.0.1\nShort Firefox version -> 135.0\nGeckoDriver version -> 0.36.0\nShort GeckoDriver version -> 0.36\nTagged selenium/node-firefox:135.0.1-geckodriver-0.36.0-grid-4.37.0-20251020\nTagged selenium/standalone-firefox:135.0.1-geckodriver-0.36.0-grid-4.37.0-20251020\nTagged selenium/node-firefox:135.0.1-geckodriver-0.36.0-20251020\nTagged selenium/standalone-firefox:135.0.1-geckodriver-0.36.0-20251020\nTagged selenium/node-firefox:135.0.1-20251020\nTagged selenium/standalone-firefox:135.0.1-20251020\nTagged selenium/node-firefox:135.0-geckodriver-0.36-grid-4.37.0-20251020\nTagged selenium/standalone-firefox:135.0-geckodriver-0.36-grid-4.37.0-20251020\nTagged selenium/node-firefox:135.0-geckodriver-0.36-20251020\nTagged selenium/standalone-firefox:135.0-geckodriver-0.36-20251020\nTagged selenium/node-firefox:135.0-20251020\nTagged selenium/standalone-firefox:135.0-20251020\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.37.0/firefox_136.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.37.0 20251020 selenium false firefox true\nTagging images for browser firefox, version 4.37.0, build date 20251020, namespace selenium\nSelenium Grid version -> 4.37.0-20251020\nFirefox version -> 136.0.4\nShort Firefox version -> 136.0\nGeckoDriver version -> 0.36.0\nShort GeckoDriver version -> 0.36\nTagged selenium/node-firefox:136.0.4-geckodriver-0.36.0-grid-4.37.0-20251020\nTagged selenium/standalone-firefox:136.0.4-geckodriver-0.36.0-grid-4.37.0-20251020\nTagged selenium/node-firefox:136.0.4-geckodriver-0.36.0-20251020\nTagged selenium/standalone-firefox:136.0.4-geckodriver-0.36.0-20251020\nTagged selenium/node-firefox:136.0.4-20251020\nTagged selenium/standalone-firefox:136.0.4-20251020\nTagged selenium/node-firefox:136.0-geckodriver-0.36-grid-4.37.0-20251020\nTagged selenium/standalone-firefox:136.0-geckodriver-0.36-grid-4.37.0-20251020\nTagged selenium/node-firefox:136.0-geckodriver-0.36-20251020\nTagged selenium/standalone-firefox:136.0-geckodriver-0.36-20251020\nTagged selenium/node-firefox:136.0-20251020\nTagged selenium/standalone-firefox:136.0-20251020\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.37.0/firefox_137.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.37.0 20251020 selenium false firefox true\nTagging images for browser firefox, version 4.37.0, build date 20251020, namespace selenium\nSelenium Grid version -> 4.37.0-20251020\nFirefox version -> 137.0.2\nShort Firefox version -> 137.0\nGeckoDriver version -> 0.36.0\nShort GeckoDriver version -> 0.36\nTagged selenium/node-firefox:137.0.2-geckodriver-0.36.0-grid-4.37.0-20251020\nTagged selenium/standalone-firefox:137.0.2-geckodriver-0.36.0-grid-4.37.0-20251020\nTagged selenium/node-firefox:137.0.2-geckodriver-0.36.0-20251020\nTagged selenium/standalone-firefox:137.0.2-geckodriver-0.36.0-20251020\nTagged selenium/node-firefox:137.0.2-20251020\nTagged selenium/standalone-firefox:137.0.2-20251020\nTagged selenium/node-firefox:137.0-geckodriver-0.36-grid-4.37.0-20251020\nTagged selenium/standalone-firefox:137.0-geckodriver-0.36-grid-4.37.0-20251020\nTagged selenium/node-firefox:137.0-geckodriver-0.36-20251020\nTagged selenium/standalone-firefox:137.0-geckodriver-0.36-20251020\nTagged selenium/node-firefox:137.0-20251020\nTagged selenium/standalone-firefox:137.0-20251020\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.37.0/firefox_138.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.37.0 20251020 selenium false firefox true\nTagging images for browser firefox, version 4.37.0, build date 20251020, namespace selenium\nSelenium Grid version -> 4.37.0-20251020\nFirefox version -> 138.0.4\nShort Firefox version -> 138.0\nGeckoDriver version -> 0.36.0\nShort GeckoDriver version -> 0.36\nTagged selenium/node-firefox:138.0.4-geckodriver-0.36.0-grid-4.37.0-20251020\nTagged selenium/standalone-firefox:138.0.4-geckodriver-0.36.0-grid-4.37.0-20251020\nTagged selenium/node-firefox:138.0.4-geckodriver-0.36.0-20251020\nTagged selenium/standalone-firefox:138.0.4-geckodriver-0.36.0-20251020\nTagged selenium/node-firefox:138.0.4-20251020\nTagged selenium/standalone-firefox:138.0.4-20251020\nTagged selenium/node-firefox:138.0-geckodriver-0.36-grid-4.37.0-20251020\nTagged selenium/standalone-firefox:138.0-geckodriver-0.36-grid-4.37.0-20251020\nTagged selenium/node-firefox:138.0-geckodriver-0.36-20251020\nTagged selenium/standalone-firefox:138.0-geckodriver-0.36-20251020\nTagged selenium/node-firefox:138.0-20251020\nTagged selenium/standalone-firefox:138.0-20251020\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.37.0/firefox_139.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.37.0 20251020 selenium false firefox true\nTagging images for browser firefox, version 4.37.0, build date 20251020, namespace selenium\nSelenium Grid version -> 4.37.0-20251020\nFirefox version -> 139.0.4\nShort Firefox version -> 139.0\nGeckoDriver version -> 0.36.0\nShort GeckoDriver version -> 0.36\nTagged selenium/node-firefox:139.0.4-geckodriver-0.36.0-grid-4.37.0-20251020\nTagged selenium/standalone-firefox:139.0.4-geckodriver-0.36.0-grid-4.37.0-20251020\nTagged selenium/node-firefox:139.0.4-geckodriver-0.36.0-20251020\nTagged selenium/standalone-firefox:139.0.4-geckodriver-0.36.0-20251020\nTagged selenium/node-firefox:139.0.4-20251020\nTagged selenium/standalone-firefox:139.0.4-20251020\nTagged selenium/node-firefox:139.0-geckodriver-0.36-grid-4.37.0-20251020\nTagged selenium/standalone-firefox:139.0-geckodriver-0.36-grid-4.37.0-20251020\nTagged selenium/node-firefox:139.0-geckodriver-0.36-20251020\nTagged selenium/standalone-firefox:139.0-geckodriver-0.36-20251020\nTagged selenium/node-firefox:139.0-20251020\nTagged selenium/standalone-firefox:139.0-20251020\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.37.0/firefox_140.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.37.0 20251020 selenium false firefox true\nTagging images for browser firefox, version 4.37.0, build date 20251020, namespace selenium\nSelenium Grid version -> 4.37.0-20251020\nFirefox version -> 140.0.4\nShort Firefox version -> 140.0\nGeckoDriver version -> 0.36.0\nShort GeckoDriver version -> 0.36\nTagged selenium/node-firefox:140.0.4-geckodriver-0.36.0-grid-4.37.0-20251020\nTagged selenium/standalone-firefox:140.0.4-geckodriver-0.36.0-grid-4.37.0-20251020\nTagged selenium/node-firefox:140.0.4-geckodriver-0.36.0-20251020\nTagged selenium/standalone-firefox:140.0.4-geckodriver-0.36.0-20251020\nTagged selenium/node-firefox:140.0.4-20251020\nTagged selenium/standalone-firefox:140.0.4-20251020\nTagged selenium/node-firefox:140.0-geckodriver-0.36-grid-4.37.0-20251020\nTagged selenium/standalone-firefox:140.0-geckodriver-0.36-grid-4.37.0-20251020\nTagged selenium/node-firefox:140.0-geckodriver-0.36-20251020\nTagged selenium/standalone-firefox:140.0-geckodriver-0.36-20251020\nTagged selenium/node-firefox:140.0-20251020\nTagged selenium/standalone-firefox:140.0-20251020\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.37.0/firefox_141.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.37.0 20251020 selenium false firefox true\nTagging images for browser firefox, version 4.37.0, build date 20251020, namespace selenium\nSelenium Grid version -> 4.37.0-20251020\nFirefox version -> 141.0.3\nShort Firefox version -> 141.0\nGeckoDriver version -> 0.36.0\nShort GeckoDriver version -> 0.36\nTagged selenium/node-firefox:141.0.3-geckodriver-0.36.0-grid-4.37.0-20251020\nTagged selenium/standalone-firefox:141.0.3-geckodriver-0.36.0-grid-4.37.0-20251020\nTagged selenium/node-firefox:141.0.3-geckodriver-0.36.0-20251020\nTagged selenium/standalone-firefox:141.0.3-geckodriver-0.36.0-20251020\nTagged selenium/node-firefox:141.0.3-20251020\nTagged selenium/standalone-firefox:141.0.3-20251020\nTagged selenium/node-firefox:141.0-geckodriver-0.36-grid-4.37.0-20251020\nTagged selenium/standalone-firefox:141.0-geckodriver-0.36-grid-4.37.0-20251020\nTagged selenium/node-firefox:141.0-geckodriver-0.36-20251020\nTagged selenium/standalone-firefox:141.0-geckodriver-0.36-20251020\nTagged selenium/node-firefox:141.0-20251020\nTagged selenium/standalone-firefox:141.0-20251020\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.37.0/firefox_142.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.37.0 20251020 selenium false firefox true\nTagging images for browser firefox, version 4.37.0, build date 20251020, namespace selenium\nSelenium Grid version -> 4.37.0-20251020\nFirefox version -> 142.0.1\nShort Firefox version -> 142.0\nGeckoDriver version -> 0.36.0\nShort GeckoDriver version -> 0.36\nTagged selenium/node-firefox:142.0.1-geckodriver-0.36.0-grid-4.37.0-20251020\nTagged selenium/standalone-firefox:142.0.1-geckodriver-0.36.0-grid-4.37.0-20251020\nTagged selenium/node-firefox:142.0.1-geckodriver-0.36.0-20251020\nTagged selenium/standalone-firefox:142.0.1-geckodriver-0.36.0-20251020\nTagged selenium/node-firefox:142.0.1-20251020\nTagged selenium/standalone-firefox:142.0.1-20251020\nTagged selenium/node-firefox:142.0-geckodriver-0.36-grid-4.37.0-20251020\nTagged selenium/standalone-firefox:142.0-geckodriver-0.36-grid-4.37.0-20251020\nTagged selenium/node-firefox:142.0-geckodriver-0.36-20251020\nTagged selenium/standalone-firefox:142.0-geckodriver-0.36-20251020\nTagged selenium/node-firefox:142.0-20251020\nTagged selenium/standalone-firefox:142.0-20251020\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.37.0/firefox_143.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.37.0 20251020 selenium false firefox true\nTagging images for browser firefox, version 4.37.0, build date 20251020, namespace selenium\nSelenium Grid version -> 4.37.0-20251020\nFirefox version -> 143.0.4\nShort Firefox version -> 143.0\nGeckoDriver version -> 0.36.0\nShort GeckoDriver version -> 0.36\nTagged selenium/node-firefox:143.0.4-geckodriver-0.36.0-grid-4.37.0-20251020\nTagged selenium/standalone-firefox:143.0.4-geckodriver-0.36.0-grid-4.37.0-20251020\nTagged selenium/node-firefox:143.0.4-geckodriver-0.36.0-20251020\nTagged selenium/standalone-firefox:143.0.4-geckodriver-0.36.0-20251020\nTagged selenium/node-firefox:143.0.4-20251020\nTagged selenium/standalone-firefox:143.0.4-20251020\nTagged selenium/node-firefox:143.0-geckodriver-0.36-grid-4.37.0-20251020\nTagged selenium/standalone-firefox:143.0-geckodriver-0.36-grid-4.37.0-20251020\nTagged selenium/node-firefox:143.0-geckodriver-0.36-20251020\nTagged selenium/standalone-firefox:143.0-geckodriver-0.36-20251020\nTagged selenium/node-firefox:143.0-20251020\nTagged selenium/standalone-firefox:143.0-20251020\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.37.0/firefox_98.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.37.0 20251020 selenium false firefox true\nTagging images for browser firefox, version 4.37.0, build date 20251020, namespace selenium\nSelenium Grid version -> 4.37.0-20251020\nFirefox version -> 98.0.2\nShort Firefox version -> 98.0\nGeckoDriver version -> 0.36.0\nShort GeckoDriver version -> 0.36\nTagged selenium/node-firefox:98.0.2-geckodriver-0.36.0-grid-4.37.0-20251020\nTagged selenium/standalone-firefox:98.0.2-geckodriver-0.36.0-grid-4.37.0-20251020\nTagged selenium/node-firefox:98.0.2-geckodriver-0.36.0-20251020\nTagged selenium/standalone-firefox:98.0.2-geckodriver-0.36.0-20251020\nTagged selenium/node-firefox:98.0.2-20251020\nTagged selenium/standalone-firefox:98.0.2-20251020\nTagged selenium/node-firefox:98.0-geckodriver-0.36-grid-4.37.0-20251020\nTagged selenium/standalone-firefox:98.0-geckodriver-0.36-grid-4.37.0-20251020\nTagged selenium/node-firefox:98.0-geckodriver-0.36-20251020\nTagged selenium/standalone-firefox:98.0-geckodriver-0.36-20251020\nTagged selenium/node-firefox:98.0-20251020\nTagged selenium/standalone-firefox:98.0-20251020\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.37.0/firefox_99.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.37.0 20251020 selenium false firefox true\nTagging images for browser firefox, version 4.37.0, build date 20251020, namespace selenium\nSelenium Grid version -> 4.37.0-20251020\nFirefox version -> 99.0.1\nShort Firefox version -> 99.0\nGeckoDriver version -> 0.36.0\nShort GeckoDriver version -> 0.36\nTagged selenium/node-firefox:99.0.1-geckodriver-0.36.0-grid-4.37.0-20251020\nTagged selenium/standalone-firefox:99.0.1-geckodriver-0.36.0-grid-4.37.0-20251020\nTagged selenium/node-firefox:99.0.1-geckodriver-0.36.0-20251020\nTagged selenium/standalone-firefox:99.0.1-geckodriver-0.36.0-20251020\nTagged selenium/node-firefox:99.0.1-20251020\nTagged selenium/standalone-firefox:99.0.1-20251020\nTagged selenium/node-firefox:99.0-geckodriver-0.36-grid-4.37.0-20251020\nTagged selenium/standalone-firefox:99.0-geckodriver-0.36-grid-4.37.0-20251020\nTagged selenium/node-firefox:99.0-geckodriver-0.36-20251020\nTagged selenium/standalone-firefox:99.0-geckodriver-0.36-20251020\nTagged selenium/node-firefox:99.0-20251020\nTagged selenium/standalone-firefox:99.0-20251020\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.38.0/chrome-for-testing_113.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.38.0 20251101 selenium false chrome-for-testing true\nTagging images for browser chrome-for-testing, version 4.38.0, build date 20251101, namespace selenium\nSelenium Grid version -> 4.38.0-20251101\nChrome for Testing version -> 113.0.5672.63\nShort Chrome for Testing version -> 113.0\nChromeDriver version -> 113.0.5672.63\nShort ChromeDriver version -> 113.0\nTagged selenium/node-chrome-for-testing:113.0.5672.63-chromedriver-113.0.5672.63-grid-4.38.0-20251101\nTagged selenium/standalone-chrome-for-testing:113.0.5672.63-chromedriver-113.0.5672.63-grid-4.38.0-20251101\nTagged selenium/node-chrome-for-testing:113.0.5672.63-chromedriver-113.0.5672.63-20251101\nTagged selenium/standalone-chrome-for-testing:113.0.5672.63-chromedriver-113.0.5672.63-20251101\nTagged selenium/node-chrome-for-testing:113.0.5672.63-20251101\nTagged selenium/standalone-chrome-for-testing:113.0.5672.63-20251101\nTagged selenium/node-chrome-for-testing:113.0-chromedriver-113.0-grid-4.38.0-20251101\nTagged selenium/standalone-chrome-for-testing:113.0-chromedriver-113.0-grid-4.38.0-20251101\nTagged selenium/node-chrome-for-testing:113.0-chromedriver-113.0-20251101\nTagged selenium/standalone-chrome-for-testing:113.0-chromedriver-113.0-20251101\nTagged selenium/node-chrome-for-testing:113.0-20251101\nTagged selenium/standalone-chrome-for-testing:113.0-20251101\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.38.0/chrome-for-testing_114.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.38.0 20251101 selenium false chrome-for-testing true\nTagging images for browser chrome-for-testing, version 4.38.0, build date 20251101, namespace selenium\nSelenium Grid version -> 4.38.0-20251101\nChrome for Testing version -> 114.0.5735.133\nShort Chrome for Testing version -> 114.0\nChromeDriver version -> 114.0.5735.90\nShort ChromeDriver version -> 114.0\nTagged selenium/node-chrome-for-testing:114.0.5735.133-chromedriver-114.0.5735.90-grid-4.38.0-20251101\nTagged selenium/standalone-chrome-for-testing:114.0.5735.133-chromedriver-114.0.5735.90-grid-4.38.0-20251101\nTagged selenium/node-chrome-for-testing:114.0.5735.133-chromedriver-114.0.5735.90-20251101\nTagged selenium/standalone-chrome-for-testing:114.0.5735.133-chromedriver-114.0.5735.90-20251101\nTagged selenium/node-chrome-for-testing:114.0.5735.133-20251101\nTagged selenium/standalone-chrome-for-testing:114.0.5735.133-20251101\nTagged selenium/node-chrome-for-testing:114.0-chromedriver-114.0-grid-4.38.0-20251101\nTagged selenium/standalone-chrome-for-testing:114.0-chromedriver-114.0-grid-4.38.0-20251101\nTagged selenium/node-chrome-for-testing:114.0-chromedriver-114.0-20251101\nTagged selenium/standalone-chrome-for-testing:114.0-chromedriver-114.0-20251101\nTagged selenium/node-chrome-for-testing:114.0-20251101\nTagged selenium/standalone-chrome-for-testing:114.0-20251101\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.38.0/chrome-for-testing_115.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.38.0 20251101 selenium false chrome-for-testing true\nTagging images for browser chrome-for-testing, version 4.38.0, build date 20251101, namespace selenium\nSelenium Grid version -> 4.38.0-20251101\nChrome for Testing version -> 115.0.5790.170\nShort Chrome for Testing version -> 115.0\nChromeDriver version -> 115.0.5790.170\nShort ChromeDriver version -> 115.0\nTagged selenium/node-chrome-for-testing:115.0.5790.170-chromedriver-115.0.5790.170-grid-4.38.0-20251101\nTagged selenium/standalone-chrome-for-testing:115.0.5790.170-chromedriver-115.0.5790.170-grid-4.38.0-20251101\nTagged selenium/node-chrome-for-testing:115.0.5790.170-chromedriver-115.0.5790.170-20251101\nTagged selenium/standalone-chrome-for-testing:115.0.5790.170-chromedriver-115.0.5790.170-20251101\nTagged selenium/node-chrome-for-testing:115.0.5790.170-20251101\nTagged selenium/standalone-chrome-for-testing:115.0.5790.170-20251101\nTagged selenium/node-chrome-for-testing:115.0-chromedriver-115.0-grid-4.38.0-20251101\nTagged selenium/standalone-chrome-for-testing:115.0-chromedriver-115.0-grid-4.38.0-20251101\nTagged selenium/node-chrome-for-testing:115.0-chromedriver-115.0-20251101\nTagged selenium/standalone-chrome-for-testing:115.0-chromedriver-115.0-20251101\nTagged selenium/node-chrome-for-testing:115.0-20251101\nTagged selenium/standalone-chrome-for-testing:115.0-20251101\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.38.0/chrome-for-testing_116.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.38.0 20251101 selenium false chrome-for-testing true\nTagging images for browser chrome-for-testing, version 4.38.0, build date 20251101, namespace selenium\nSelenium Grid version -> 4.38.0-20251101\nChrome for Testing version -> 116.0.5845.96\nShort Chrome for Testing version -> 116.0\nChromeDriver version -> 116.0.5845.96\nShort ChromeDriver version -> 116.0\nTagged selenium/node-chrome-for-testing:116.0.5845.96-chromedriver-116.0.5845.96-grid-4.38.0-20251101\nTagged selenium/standalone-chrome-for-testing:116.0.5845.96-chromedriver-116.0.5845.96-grid-4.38.0-20251101\nTagged selenium/node-chrome-for-testing:116.0.5845.96-chromedriver-116.0.5845.96-20251101\nTagged selenium/standalone-chrome-for-testing:116.0.5845.96-chromedriver-116.0.5845.96-20251101\nTagged selenium/node-chrome-for-testing:116.0.5845.96-20251101\nTagged selenium/standalone-chrome-for-testing:116.0.5845.96-20251101\nTagged selenium/node-chrome-for-testing:116.0-chromedriver-116.0-grid-4.38.0-20251101\nTagged selenium/standalone-chrome-for-testing:116.0-chromedriver-116.0-grid-4.38.0-20251101\nTagged selenium/node-chrome-for-testing:116.0-chromedriver-116.0-20251101\nTagged selenium/standalone-chrome-for-testing:116.0-chromedriver-116.0-20251101\nTagged selenium/node-chrome-for-testing:116.0-20251101\nTagged selenium/standalone-chrome-for-testing:116.0-20251101\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.38.0/chrome-for-testing_117.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.38.0 20251101 selenium false chrome-for-testing true\nTagging images for browser chrome-for-testing, version 4.38.0, build date 20251101, namespace selenium\nSelenium Grid version -> 4.38.0-20251101\nChrome for Testing version -> 117.0.5938.149\nShort Chrome for Testing version -> 117.0\nChromeDriver version -> 117.0.5938.149\nShort ChromeDriver version -> 117.0\nTagged selenium/node-chrome-for-testing:117.0.5938.149-chromedriver-117.0.5938.149-grid-4.38.0-20251101\nTagged selenium/standalone-chrome-for-testing:117.0.5938.149-chromedriver-117.0.5938.149-grid-4.38.0-20251101\nTagged selenium/node-chrome-for-testing:117.0.5938.149-chromedriver-117.0.5938.149-20251101\nTagged selenium/standalone-chrome-for-testing:117.0.5938.149-chromedriver-117.0.5938.149-20251101\nTagged selenium/node-chrome-for-testing:117.0.5938.149-20251101\nTagged selenium/standalone-chrome-for-testing:117.0.5938.149-20251101\nTagged selenium/node-chrome-for-testing:117.0-chromedriver-117.0-grid-4.38.0-20251101\nTagged selenium/standalone-chrome-for-testing:117.0-chromedriver-117.0-grid-4.38.0-20251101\nTagged selenium/node-chrome-for-testing:117.0-chromedriver-117.0-20251101\nTagged selenium/standalone-chrome-for-testing:117.0-chromedriver-117.0-20251101\nTagged selenium/node-chrome-for-testing:117.0-20251101\nTagged selenium/standalone-chrome-for-testing:117.0-20251101\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.38.0/chrome-for-testing_118.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.38.0 20251101 selenium false chrome-for-testing true\nTagging images for browser chrome-for-testing, version 4.38.0, build date 20251101, namespace selenium\nSelenium Grid version -> 4.38.0-20251101\nChrome for Testing version -> 118.0.5993.70\nShort Chrome for Testing version -> 118.0\nChromeDriver version -> 118.0.5993.70\nShort ChromeDriver version -> 118.0\nTagged selenium/node-chrome-for-testing:118.0.5993.70-chromedriver-118.0.5993.70-grid-4.38.0-20251101\nTagged selenium/standalone-chrome-for-testing:118.0.5993.70-chromedriver-118.0.5993.70-grid-4.38.0-20251101\nTagged selenium/node-chrome-for-testing:118.0.5993.70-chromedriver-118.0.5993.70-20251101\nTagged selenium/standalone-chrome-for-testing:118.0.5993.70-chromedriver-118.0.5993.70-20251101\nTagged selenium/node-chrome-for-testing:118.0.5993.70-20251101\nTagged selenium/standalone-chrome-for-testing:118.0.5993.70-20251101\nTagged selenium/node-chrome-for-testing:118.0-chromedriver-118.0-grid-4.38.0-20251101\nTagged selenium/standalone-chrome-for-testing:118.0-chromedriver-118.0-grid-4.38.0-20251101\nTagged selenium/node-chrome-for-testing:118.0-chromedriver-118.0-20251101\nTagged selenium/standalone-chrome-for-testing:118.0-chromedriver-118.0-20251101\nTagged selenium/node-chrome-for-testing:118.0-20251101\nTagged selenium/standalone-chrome-for-testing:118.0-20251101\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.38.0/chrome-for-testing_119.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.38.0 20251101 selenium false chrome-for-testing true\nTagging images for browser chrome-for-testing, version 4.38.0, build date 20251101, namespace selenium\nSelenium Grid version -> 4.38.0-20251101\nChrome for Testing version -> 119.0.6045.105\nShort Chrome for Testing version -> 119.0\nChromeDriver version -> 119.0.6045.105\nShort ChromeDriver version -> 119.0\nTagged selenium/node-chrome-for-testing:119.0.6045.105-chromedriver-119.0.6045.105-grid-4.38.0-20251101\nTagged selenium/standalone-chrome-for-testing:119.0.6045.105-chromedriver-119.0.6045.105-grid-4.38.0-20251101\nTagged selenium/node-chrome-for-testing:119.0.6045.105-chromedriver-119.0.6045.105-20251101\nTagged selenium/standalone-chrome-for-testing:119.0.6045.105-chromedriver-119.0.6045.105-20251101\nTagged selenium/node-chrome-for-testing:119.0.6045.105-20251101\nTagged selenium/standalone-chrome-for-testing:119.0.6045.105-20251101\nTagged selenium/node-chrome-for-testing:119.0-chromedriver-119.0-grid-4.38.0-20251101\nTagged selenium/standalone-chrome-for-testing:119.0-chromedriver-119.0-grid-4.38.0-20251101\nTagged selenium/node-chrome-for-testing:119.0-chromedriver-119.0-20251101\nTagged selenium/standalone-chrome-for-testing:119.0-chromedriver-119.0-20251101\nTagged selenium/node-chrome-for-testing:119.0-20251101\nTagged selenium/standalone-chrome-for-testing:119.0-20251101\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.38.0/chrome-for-testing_120.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.38.0 20251101 selenium false chrome-for-testing true\nTagging images for browser chrome-for-testing, version 4.38.0, build date 20251101, namespace selenium\nSelenium Grid version -> 4.38.0-20251101\nChrome for Testing version -> 120.0.6099.109\nShort Chrome for Testing version -> 120.0\nChromeDriver version -> 120.0.6099.109\nShort ChromeDriver version -> 120.0\nTagged selenium/node-chrome-for-testing:120.0.6099.109-chromedriver-120.0.6099.109-grid-4.38.0-20251101\nTagged selenium/standalone-chrome-for-testing:120.0.6099.109-chromedriver-120.0.6099.109-grid-4.38.0-20251101\nTagged selenium/node-chrome-for-testing:120.0.6099.109-chromedriver-120.0.6099.109-20251101\nTagged selenium/standalone-chrome-for-testing:120.0.6099.109-chromedriver-120.0.6099.109-20251101\nTagged selenium/node-chrome-for-testing:120.0.6099.109-20251101\nTagged selenium/standalone-chrome-for-testing:120.0.6099.109-20251101\nTagged selenium/node-chrome-for-testing:120.0-chromedriver-120.0-grid-4.38.0-20251101\nTagged selenium/standalone-chrome-for-testing:120.0-chromedriver-120.0-grid-4.38.0-20251101\nTagged selenium/node-chrome-for-testing:120.0-chromedriver-120.0-20251101\nTagged selenium/standalone-chrome-for-testing:120.0-chromedriver-120.0-20251101\nTagged selenium/node-chrome-for-testing:120.0-20251101\nTagged selenium/standalone-chrome-for-testing:120.0-20251101\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.38.0/chrome-for-testing_121.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.38.0 20251101 selenium false chrome-for-testing true\nTagging images for browser chrome-for-testing, version 4.38.0, build date 20251101, namespace selenium\nSelenium Grid version -> 4.38.0-20251101\nChrome for Testing version -> 121.0.6167.184\nShort Chrome for Testing version -> 121.0\nChromeDriver version -> 121.0.6167.184\nShort ChromeDriver version -> 121.0\nTagged selenium/node-chrome-for-testing:121.0.6167.184-chromedriver-121.0.6167.184-grid-4.38.0-20251101\nTagged selenium/standalone-chrome-for-testing:121.0.6167.184-chromedriver-121.0.6167.184-grid-4.38.0-20251101\nTagged selenium/node-chrome-for-testing:121.0.6167.184-chromedriver-121.0.6167.184-20251101\nTagged selenium/standalone-chrome-for-testing:121.0.6167.184-chromedriver-121.0.6167.184-20251101\nTagged selenium/node-chrome-for-testing:121.0.6167.184-20251101\nTagged selenium/standalone-chrome-for-testing:121.0.6167.184-20251101\nTagged selenium/node-chrome-for-testing:121.0-chromedriver-121.0-grid-4.38.0-20251101\nTagged selenium/standalone-chrome-for-testing:121.0-chromedriver-121.0-grid-4.38.0-20251101\nTagged selenium/node-chrome-for-testing:121.0-chromedriver-121.0-20251101\nTagged selenium/standalone-chrome-for-testing:121.0-chromedriver-121.0-20251101\nTagged selenium/node-chrome-for-testing:121.0-20251101\nTagged selenium/standalone-chrome-for-testing:121.0-20251101\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.38.0/chrome-for-testing_122.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.38.0 20251101 selenium false chrome-for-testing true\nTagging images for browser chrome-for-testing, version 4.38.0, build date 20251101, namespace selenium\nSelenium Grid version -> 4.38.0-20251101\nChrome for Testing version -> 122.0.6261.128\nShort Chrome for Testing version -> 122.0\nChromeDriver version -> 122.0.6261.128\nShort ChromeDriver version -> 122.0\nTagged selenium/node-chrome-for-testing:122.0.6261.128-chromedriver-122.0.6261.128-grid-4.38.0-20251101\nTagged selenium/standalone-chrome-for-testing:122.0.6261.128-chromedriver-122.0.6261.128-grid-4.38.0-20251101\nTagged selenium/node-chrome-for-testing:122.0.6261.128-chromedriver-122.0.6261.128-20251101\nTagged selenium/standalone-chrome-for-testing:122.0.6261.128-chromedriver-122.0.6261.128-20251101\nTagged selenium/node-chrome-for-testing:122.0.6261.128-20251101\nTagged selenium/standalone-chrome-for-testing:122.0.6261.128-20251101\nTagged selenium/node-chrome-for-testing:122.0-chromedriver-122.0-grid-4.38.0-20251101\nTagged selenium/standalone-chrome-for-testing:122.0-chromedriver-122.0-grid-4.38.0-20251101\nTagged selenium/node-chrome-for-testing:122.0-chromedriver-122.0-20251101\nTagged selenium/standalone-chrome-for-testing:122.0-chromedriver-122.0-20251101\nTagged selenium/node-chrome-for-testing:122.0-20251101\nTagged selenium/standalone-chrome-for-testing:122.0-20251101\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.38.0/chrome-for-testing_123.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.38.0 20251101 selenium false chrome-for-testing true\nTagging images for browser chrome-for-testing, version 4.38.0, build date 20251101, namespace selenium\nSelenium Grid version -> 4.38.0-20251101\nChrome for Testing version -> 123.0.6312.122\nShort Chrome for Testing version -> 123.0\nChromeDriver version -> 123.0.6312.122\nShort ChromeDriver version -> 123.0\nTagged selenium/node-chrome-for-testing:123.0.6312.122-chromedriver-123.0.6312.122-grid-4.38.0-20251101\nTagged selenium/standalone-chrome-for-testing:123.0.6312.122-chromedriver-123.0.6312.122-grid-4.38.0-20251101\nTagged selenium/node-chrome-for-testing:123.0.6312.122-chromedriver-123.0.6312.122-20251101\nTagged selenium/standalone-chrome-for-testing:123.0.6312.122-chromedriver-123.0.6312.122-20251101\nTagged selenium/node-chrome-for-testing:123.0.6312.122-20251101\nTagged selenium/standalone-chrome-for-testing:123.0.6312.122-20251101\nTagged selenium/node-chrome-for-testing:123.0-chromedriver-123.0-grid-4.38.0-20251101\nTagged selenium/standalone-chrome-for-testing:123.0-chromedriver-123.0-grid-4.38.0-20251101\nTagged selenium/node-chrome-for-testing:123.0-chromedriver-123.0-20251101\nTagged selenium/standalone-chrome-for-testing:123.0-chromedriver-123.0-20251101\nTagged selenium/node-chrome-for-testing:123.0-20251101\nTagged selenium/standalone-chrome-for-testing:123.0-20251101\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.38.0/chrome-for-testing_124.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.38.0 20251101 selenium false chrome-for-testing true\nTagging images for browser chrome-for-testing, version 4.38.0, build date 20251101, namespace selenium\nSelenium Grid version -> 4.38.0-20251101\nChrome for Testing version -> 124.0.6367.207\nShort Chrome for Testing version -> 124.0\nChromeDriver version -> 124.0.6367.207\nShort ChromeDriver version -> 124.0\nTagged selenium/node-chrome-for-testing:124.0.6367.207-chromedriver-124.0.6367.207-grid-4.38.0-20251101\nTagged selenium/standalone-chrome-for-testing:124.0.6367.207-chromedriver-124.0.6367.207-grid-4.38.0-20251101\nTagged selenium/node-chrome-for-testing:124.0.6367.207-chromedriver-124.0.6367.207-20251101\nTagged selenium/standalone-chrome-for-testing:124.0.6367.207-chromedriver-124.0.6367.207-20251101\nTagged selenium/node-chrome-for-testing:124.0.6367.207-20251101\nTagged selenium/standalone-chrome-for-testing:124.0.6367.207-20251101\nTagged selenium/node-chrome-for-testing:124.0-chromedriver-124.0-grid-4.38.0-20251101\nTagged selenium/standalone-chrome-for-testing:124.0-chromedriver-124.0-grid-4.38.0-20251101\nTagged selenium/node-chrome-for-testing:124.0-chromedriver-124.0-20251101\nTagged selenium/standalone-chrome-for-testing:124.0-chromedriver-124.0-20251101\nTagged selenium/node-chrome-for-testing:124.0-20251101\nTagged selenium/standalone-chrome-for-testing:124.0-20251101\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.38.0/chrome-for-testing_125.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.38.0 20251101 selenium false chrome-for-testing true\nTagging images for browser chrome-for-testing, version 4.38.0, build date 20251101, namespace selenium\nSelenium Grid version -> 4.38.0-20251101\nChrome for Testing version -> 125.0.6422.141\nShort Chrome for Testing version -> 125.0\nChromeDriver version -> 125.0.6422.141\nShort ChromeDriver version -> 125.0\nTagged selenium/node-chrome-for-testing:125.0.6422.141-chromedriver-125.0.6422.141-grid-4.38.0-20251101\nTagged selenium/standalone-chrome-for-testing:125.0.6422.141-chromedriver-125.0.6422.141-grid-4.38.0-20251101\nTagged selenium/node-chrome-for-testing:125.0.6422.141-chromedriver-125.0.6422.141-20251101\nTagged selenium/standalone-chrome-for-testing:125.0.6422.141-chromedriver-125.0.6422.141-20251101\nTagged selenium/node-chrome-for-testing:125.0.6422.141-20251101\nTagged selenium/standalone-chrome-for-testing:125.0.6422.141-20251101\nTagged selenium/node-chrome-for-testing:125.0-chromedriver-125.0-grid-4.38.0-20251101\nTagged selenium/standalone-chrome-for-testing:125.0-chromedriver-125.0-grid-4.38.0-20251101\nTagged selenium/node-chrome-for-testing:125.0-chromedriver-125.0-20251101\nTagged selenium/standalone-chrome-for-testing:125.0-chromedriver-125.0-20251101\nTagged selenium/node-chrome-for-testing:125.0-20251101\nTagged selenium/standalone-chrome-for-testing:125.0-20251101\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.38.0/chrome-for-testing_126.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.38.0 20251101 selenium false chrome-for-testing true\nTagging images for browser chrome-for-testing, version 4.38.0, build date 20251101, namespace selenium\nSelenium Grid version -> 4.38.0-20251101\nChrome for Testing version -> 126.0.6478.182\nShort Chrome for Testing version -> 126.0\nChromeDriver version -> 126.0.6478.182\nShort ChromeDriver version -> 126.0\nTagged selenium/node-chrome-for-testing:126.0.6478.182-chromedriver-126.0.6478.182-grid-4.38.0-20251101\nTagged selenium/standalone-chrome-for-testing:126.0.6478.182-chromedriver-126.0.6478.182-grid-4.38.0-20251101\nTagged selenium/node-chrome-for-testing:126.0.6478.182-chromedriver-126.0.6478.182-20251101\nTagged selenium/standalone-chrome-for-testing:126.0.6478.182-chromedriver-126.0.6478.182-20251101\nTagged selenium/node-chrome-for-testing:126.0.6478.182-20251101\nTagged selenium/standalone-chrome-for-testing:126.0.6478.182-20251101\nTagged selenium/node-chrome-for-testing:126.0-chromedriver-126.0-grid-4.38.0-20251101\nTagged selenium/standalone-chrome-for-testing:126.0-chromedriver-126.0-grid-4.38.0-20251101\nTagged selenium/node-chrome-for-testing:126.0-chromedriver-126.0-20251101\nTagged selenium/standalone-chrome-for-testing:126.0-chromedriver-126.0-20251101\nTagged selenium/node-chrome-for-testing:126.0-20251101\nTagged selenium/standalone-chrome-for-testing:126.0-20251101\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.38.0/chrome-for-testing_127.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.38.0 20251101 selenium false chrome-for-testing true\nTagging images for browser chrome-for-testing, version 4.38.0, build date 20251101, namespace selenium\nSelenium Grid version -> 4.38.0-20251101\nChrome for Testing version -> 127.0.6533.119\nShort Chrome for Testing version -> 127.0\nChromeDriver version -> 127.0.6533.119\nShort ChromeDriver version -> 127.0\nTagged selenium/node-chrome-for-testing:127.0.6533.119-chromedriver-127.0.6533.119-grid-4.38.0-20251101\nTagged selenium/standalone-chrome-for-testing:127.0.6533.119-chromedriver-127.0.6533.119-grid-4.38.0-20251101\nTagged selenium/node-chrome-for-testing:127.0.6533.119-chromedriver-127.0.6533.119-20251101\nTagged selenium/standalone-chrome-for-testing:127.0.6533.119-chromedriver-127.0.6533.119-20251101\nTagged selenium/node-chrome-for-testing:127.0.6533.119-20251101\nTagged selenium/standalone-chrome-for-testing:127.0.6533.119-20251101\nTagged selenium/node-chrome-for-testing:127.0-chromedriver-127.0-grid-4.38.0-20251101\nTagged selenium/standalone-chrome-for-testing:127.0-chromedriver-127.0-grid-4.38.0-20251101\nTagged selenium/node-chrome-for-testing:127.0-chromedriver-127.0-20251101\nTagged selenium/standalone-chrome-for-testing:127.0-chromedriver-127.0-20251101\nTagged selenium/node-chrome-for-testing:127.0-20251101\nTagged selenium/standalone-chrome-for-testing:127.0-20251101\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.38.0/chrome-for-testing_128.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.38.0 20251101 selenium false chrome-for-testing true\nTagging images for browser chrome-for-testing, version 4.38.0, build date 20251101, namespace selenium\nSelenium Grid version -> 4.38.0-20251101\nChrome for Testing version -> 128.0.6613.137\nShort Chrome for Testing version -> 128.0\nChromeDriver version -> 128.0.6613.137\nShort ChromeDriver version -> 128.0\nTagged selenium/node-chrome-for-testing:128.0.6613.137-chromedriver-128.0.6613.137-grid-4.38.0-20251101\nTagged selenium/standalone-chrome-for-testing:128.0.6613.137-chromedriver-128.0.6613.137-grid-4.38.0-20251101\nTagged selenium/node-chrome-for-testing:128.0.6613.137-chromedriver-128.0.6613.137-20251101\nTagged selenium/standalone-chrome-for-testing:128.0.6613.137-chromedriver-128.0.6613.137-20251101\nTagged selenium/node-chrome-for-testing:128.0.6613.137-20251101\nTagged selenium/standalone-chrome-for-testing:128.0.6613.137-20251101\nTagged selenium/node-chrome-for-testing:128.0-chromedriver-128.0-grid-4.38.0-20251101\nTagged selenium/standalone-chrome-for-testing:128.0-chromedriver-128.0-grid-4.38.0-20251101\nTagged selenium/node-chrome-for-testing:128.0-chromedriver-128.0-20251101\nTagged selenium/standalone-chrome-for-testing:128.0-chromedriver-128.0-20251101\nTagged selenium/node-chrome-for-testing:128.0-20251101\nTagged selenium/standalone-chrome-for-testing:128.0-20251101\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.38.0/chrome-for-testing_129.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.38.0 20251101 selenium false chrome-for-testing true\nTagging images for browser chrome-for-testing, version 4.38.0, build date 20251101, namespace selenium\nSelenium Grid version -> 4.38.0-20251101\nChrome for Testing version -> 129.0.6668.100\nShort Chrome for Testing version -> 129.0\nChromeDriver version -> 129.0.6668.100\nShort ChromeDriver version -> 129.0\nTagged selenium/node-chrome-for-testing:129.0.6668.100-chromedriver-129.0.6668.100-grid-4.38.0-20251101\nTagged selenium/standalone-chrome-for-testing:129.0.6668.100-chromedriver-129.0.6668.100-grid-4.38.0-20251101\nTagged selenium/node-chrome-for-testing:129.0.6668.100-chromedriver-129.0.6668.100-20251101\nTagged selenium/standalone-chrome-for-testing:129.0.6668.100-chromedriver-129.0.6668.100-20251101\nTagged selenium/node-chrome-for-testing:129.0.6668.100-20251101\nTagged selenium/standalone-chrome-for-testing:129.0.6668.100-20251101\nTagged selenium/node-chrome-for-testing:129.0-chromedriver-129.0-grid-4.38.0-20251101\nTagged selenium/standalone-chrome-for-testing:129.0-chromedriver-129.0-grid-4.38.0-20251101\nTagged selenium/node-chrome-for-testing:129.0-chromedriver-129.0-20251101\nTagged selenium/standalone-chrome-for-testing:129.0-chromedriver-129.0-20251101\nTagged selenium/node-chrome-for-testing:129.0-20251101\nTagged selenium/standalone-chrome-for-testing:129.0-20251101\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.38.0/chrome-for-testing_130.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.38.0 20251101 selenium false chrome-for-testing true\nTagging images for browser chrome-for-testing, version 4.38.0, build date 20251101, namespace selenium\nSelenium Grid version -> 4.38.0-20251101\nChrome for Testing version -> 130.0.6723.116\nShort Chrome for Testing version -> 130.0\nChromeDriver version -> 130.0.6723.116\nShort ChromeDriver version -> 130.0\nTagged selenium/node-chrome-for-testing:130.0.6723.116-chromedriver-130.0.6723.116-grid-4.38.0-20251101\nTagged selenium/standalone-chrome-for-testing:130.0.6723.116-chromedriver-130.0.6723.116-grid-4.38.0-20251101\nTagged selenium/node-chrome-for-testing:130.0.6723.116-chromedriver-130.0.6723.116-20251101\nTagged selenium/standalone-chrome-for-testing:130.0.6723.116-chromedriver-130.0.6723.116-20251101\nTagged selenium/node-chrome-for-testing:130.0.6723.116-20251101\nTagged selenium/standalone-chrome-for-testing:130.0.6723.116-20251101\nTagged selenium/node-chrome-for-testing:130.0-chromedriver-130.0-grid-4.38.0-20251101\nTagged selenium/standalone-chrome-for-testing:130.0-chromedriver-130.0-grid-4.38.0-20251101\nTagged selenium/node-chrome-for-testing:130.0-chromedriver-130.0-20251101\nTagged selenium/standalone-chrome-for-testing:130.0-chromedriver-130.0-20251101\nTagged selenium/node-chrome-for-testing:130.0-20251101\nTagged selenium/standalone-chrome-for-testing:130.0-20251101\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.38.0/chrome-for-testing_131.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.38.0 20251101 selenium false chrome-for-testing true\nTagging images for browser chrome-for-testing, version 4.38.0, build date 20251101, namespace selenium\nSelenium Grid version -> 4.38.0-20251101\nChrome for Testing version -> 131.0.6778.264\nShort Chrome for Testing version -> 131.0\nChromeDriver version -> 131.0.6778.264\nShort ChromeDriver version -> 131.0\nTagged selenium/node-chrome-for-testing:131.0.6778.264-chromedriver-131.0.6778.264-grid-4.38.0-20251101\nTagged selenium/standalone-chrome-for-testing:131.0.6778.264-chromedriver-131.0.6778.264-grid-4.38.0-20251101\nTagged selenium/node-chrome-for-testing:131.0.6778.264-chromedriver-131.0.6778.264-20251101\nTagged selenium/standalone-chrome-for-testing:131.0.6778.264-chromedriver-131.0.6778.264-20251101\nTagged selenium/node-chrome-for-testing:131.0.6778.264-20251101\nTagged selenium/standalone-chrome-for-testing:131.0.6778.264-20251101\nTagged selenium/node-chrome-for-testing:131.0-chromedriver-131.0-grid-4.38.0-20251101\nTagged selenium/standalone-chrome-for-testing:131.0-chromedriver-131.0-grid-4.38.0-20251101\nTagged selenium/node-chrome-for-testing:131.0-chromedriver-131.0-20251101\nTagged selenium/standalone-chrome-for-testing:131.0-chromedriver-131.0-20251101\nTagged selenium/node-chrome-for-testing:131.0-20251101\nTagged selenium/standalone-chrome-for-testing:131.0-20251101\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.38.0/chrome-for-testing_132.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.38.0 20251101 selenium false chrome-for-testing true\nTagging images for browser chrome-for-testing, version 4.38.0, build date 20251101, namespace selenium\nSelenium Grid version -> 4.38.0-20251101\nChrome for Testing version -> 132.0.6834.159\nShort Chrome for Testing version -> 132.0\nChromeDriver version -> 132.0.6834.159\nShort ChromeDriver version -> 132.0\nTagged selenium/node-chrome-for-testing:132.0.6834.159-chromedriver-132.0.6834.159-grid-4.38.0-20251101\nTagged selenium/standalone-chrome-for-testing:132.0.6834.159-chromedriver-132.0.6834.159-grid-4.38.0-20251101\nTagged selenium/node-chrome-for-testing:132.0.6834.159-chromedriver-132.0.6834.159-20251101\nTagged selenium/standalone-chrome-for-testing:132.0.6834.159-chromedriver-132.0.6834.159-20251101\nTagged selenium/node-chrome-for-testing:132.0.6834.159-20251101\nTagged selenium/standalone-chrome-for-testing:132.0.6834.159-20251101\nTagged selenium/node-chrome-for-testing:132.0-chromedriver-132.0-grid-4.38.0-20251101\nTagged selenium/standalone-chrome-for-testing:132.0-chromedriver-132.0-grid-4.38.0-20251101\nTagged selenium/node-chrome-for-testing:132.0-chromedriver-132.0-20251101\nTagged selenium/standalone-chrome-for-testing:132.0-chromedriver-132.0-20251101\nTagged selenium/node-chrome-for-testing:132.0-20251101\nTagged selenium/standalone-chrome-for-testing:132.0-20251101\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.38.0/chrome-for-testing_133.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.38.0 20251101 selenium false chrome-for-testing true\nTagging images for browser chrome-for-testing, version 4.38.0, build date 20251101, namespace selenium\nSelenium Grid version -> 4.38.0-20251101\nChrome for Testing version -> 133.0.6943.141\nShort Chrome for Testing version -> 133.0\nChromeDriver version -> 133.0.6943.141\nShort ChromeDriver version -> 133.0\nTagged selenium/node-chrome-for-testing:133.0.6943.141-chromedriver-133.0.6943.141-grid-4.38.0-20251101\nTagged selenium/standalone-chrome-for-testing:133.0.6943.141-chromedriver-133.0.6943.141-grid-4.38.0-20251101\nTagged selenium/node-chrome-for-testing:133.0.6943.141-chromedriver-133.0.6943.141-20251101\nTagged selenium/standalone-chrome-for-testing:133.0.6943.141-chromedriver-133.0.6943.141-20251101\nTagged selenium/node-chrome-for-testing:133.0.6943.141-20251101\nTagged selenium/standalone-chrome-for-testing:133.0.6943.141-20251101\nTagged selenium/node-chrome-for-testing:133.0-chromedriver-133.0-grid-4.38.0-20251101\nTagged selenium/standalone-chrome-for-testing:133.0-chromedriver-133.0-grid-4.38.0-20251101\nTagged selenium/node-chrome-for-testing:133.0-chromedriver-133.0-20251101\nTagged selenium/standalone-chrome-for-testing:133.0-chromedriver-133.0-20251101\nTagged selenium/node-chrome-for-testing:133.0-20251101\nTagged selenium/standalone-chrome-for-testing:133.0-20251101\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.38.0/chrome-for-testing_134.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.38.0 20251101 selenium false chrome-for-testing true\nTagging images for browser chrome-for-testing, version 4.38.0, build date 20251101, namespace selenium\nSelenium Grid version -> 4.38.0-20251101\nChrome for Testing version -> 134.0.6998.165\nShort Chrome for Testing version -> 134.0\nChromeDriver version -> 134.0.6998.165\nShort ChromeDriver version -> 134.0\nTagged selenium/node-chrome-for-testing:134.0.6998.165-chromedriver-134.0.6998.165-grid-4.38.0-20251101\nTagged selenium/standalone-chrome-for-testing:134.0.6998.165-chromedriver-134.0.6998.165-grid-4.38.0-20251101\nTagged selenium/node-chrome-for-testing:134.0.6998.165-chromedriver-134.0.6998.165-20251101\nTagged selenium/standalone-chrome-for-testing:134.0.6998.165-chromedriver-134.0.6998.165-20251101\nTagged selenium/node-chrome-for-testing:134.0.6998.165-20251101\nTagged selenium/standalone-chrome-for-testing:134.0.6998.165-20251101\nTagged selenium/node-chrome-for-testing:134.0-chromedriver-134.0-grid-4.38.0-20251101\nTagged selenium/standalone-chrome-for-testing:134.0-chromedriver-134.0-grid-4.38.0-20251101\nTagged selenium/node-chrome-for-testing:134.0-chromedriver-134.0-20251101\nTagged selenium/standalone-chrome-for-testing:134.0-chromedriver-134.0-20251101\nTagged selenium/node-chrome-for-testing:134.0-20251101\nTagged selenium/standalone-chrome-for-testing:134.0-20251101\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.38.0/chrome-for-testing_135.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.38.0 20251101 selenium false chrome-for-testing true\nTagging images for browser chrome-for-testing, version 4.38.0, build date 20251101, namespace selenium\nSelenium Grid version -> 4.38.0-20251101\nChrome for Testing version -> 135.0.7049.114\nShort Chrome for Testing version -> 135.0\nChromeDriver version -> 135.0.7049.114\nShort ChromeDriver version -> 135.0\nTagged selenium/node-chrome-for-testing:135.0.7049.114-chromedriver-135.0.7049.114-grid-4.38.0-20251101\nTagged selenium/standalone-chrome-for-testing:135.0.7049.114-chromedriver-135.0.7049.114-grid-4.38.0-20251101\nTagged selenium/node-chrome-for-testing:135.0.7049.114-chromedriver-135.0.7049.114-20251101\nTagged selenium/standalone-chrome-for-testing:135.0.7049.114-chromedriver-135.0.7049.114-20251101\nTagged selenium/node-chrome-for-testing:135.0.7049.114-20251101\nTagged selenium/standalone-chrome-for-testing:135.0.7049.114-20251101\nTagged selenium/node-chrome-for-testing:135.0-chromedriver-135.0-grid-4.38.0-20251101\nTagged selenium/standalone-chrome-for-testing:135.0-chromedriver-135.0-grid-4.38.0-20251101\nTagged selenium/node-chrome-for-testing:135.0-chromedriver-135.0-20251101\nTagged selenium/standalone-chrome-for-testing:135.0-chromedriver-135.0-20251101\nTagged selenium/node-chrome-for-testing:135.0-20251101\nTagged selenium/standalone-chrome-for-testing:135.0-20251101\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.38.0/chrome-for-testing_136.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.38.0 20251101 selenium false chrome-for-testing true\nTagging images for browser chrome-for-testing, version 4.38.0, build date 20251101, namespace selenium\nSelenium Grid version -> 4.38.0-20251101\nChrome for Testing version -> 136.0.7103.113\nShort Chrome for Testing version -> 136.0\nChromeDriver version -> 136.0.7103.113\nShort ChromeDriver version -> 136.0\nTagged selenium/node-chrome-for-testing:136.0.7103.113-chromedriver-136.0.7103.113-grid-4.38.0-20251101\nTagged selenium/standalone-chrome-for-testing:136.0.7103.113-chromedriver-136.0.7103.113-grid-4.38.0-20251101\nTagged selenium/node-chrome-for-testing:136.0.7103.113-chromedriver-136.0.7103.113-20251101\nTagged selenium/standalone-chrome-for-testing:136.0.7103.113-chromedriver-136.0.7103.113-20251101\nTagged selenium/node-chrome-for-testing:136.0.7103.113-20251101\nTagged selenium/standalone-chrome-for-testing:136.0.7103.113-20251101\nTagged selenium/node-chrome-for-testing:136.0-chromedriver-136.0-grid-4.38.0-20251101\nTagged selenium/standalone-chrome-for-testing:136.0-chromedriver-136.0-grid-4.38.0-20251101\nTagged selenium/node-chrome-for-testing:136.0-chromedriver-136.0-20251101\nTagged selenium/standalone-chrome-for-testing:136.0-chromedriver-136.0-20251101\nTagged selenium/node-chrome-for-testing:136.0-20251101\nTagged selenium/standalone-chrome-for-testing:136.0-20251101\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.38.0/chrome-for-testing_137.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.38.0 20251101 selenium false chrome-for-testing true\nTagging images for browser chrome-for-testing, version 4.38.0, build date 20251101, namespace selenium\nSelenium Grid version -> 4.38.0-20251101\nChrome for Testing version -> 137.0.7151.119\nShort Chrome for Testing version -> 137.0\nChromeDriver version -> 137.0.7151.119\nShort ChromeDriver version -> 137.0\nTagged selenium/node-chrome-for-testing:137.0.7151.119-chromedriver-137.0.7151.119-grid-4.38.0-20251101\nTagged selenium/standalone-chrome-for-testing:137.0.7151.119-chromedriver-137.0.7151.119-grid-4.38.0-20251101\nTagged selenium/node-chrome-for-testing:137.0.7151.119-chromedriver-137.0.7151.119-20251101\nTagged selenium/standalone-chrome-for-testing:137.0.7151.119-chromedriver-137.0.7151.119-20251101\nTagged selenium/node-chrome-for-testing:137.0.7151.119-20251101\nTagged selenium/standalone-chrome-for-testing:137.0.7151.119-20251101\nTagged selenium/node-chrome-for-testing:137.0-chromedriver-137.0-grid-4.38.0-20251101\nTagged selenium/standalone-chrome-for-testing:137.0-chromedriver-137.0-grid-4.38.0-20251101\nTagged selenium/node-chrome-for-testing:137.0-chromedriver-137.0-20251101\nTagged selenium/standalone-chrome-for-testing:137.0-chromedriver-137.0-20251101\nTagged selenium/node-chrome-for-testing:137.0-20251101\nTagged selenium/standalone-chrome-for-testing:137.0-20251101\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.38.0/chrome-for-testing_138.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.38.0 20251101 selenium false chrome-for-testing true\nTagging images for browser chrome-for-testing, version 4.38.0, build date 20251101, namespace selenium\nSelenium Grid version -> 4.38.0-20251101\nChrome for Testing version -> 138.0.7204.183\nShort Chrome for Testing version -> 138.0\nChromeDriver version -> 138.0.7204.183\nShort ChromeDriver version -> 138.0\nTagged selenium/node-chrome-for-testing:138.0.7204.183-chromedriver-138.0.7204.183-grid-4.38.0-20251101\nTagged selenium/standalone-chrome-for-testing:138.0.7204.183-chromedriver-138.0.7204.183-grid-4.38.0-20251101\nTagged selenium/node-chrome-for-testing:138.0.7204.183-chromedriver-138.0.7204.183-20251101\nTagged selenium/standalone-chrome-for-testing:138.0.7204.183-chromedriver-138.0.7204.183-20251101\nTagged selenium/node-chrome-for-testing:138.0.7204.183-20251101\nTagged selenium/standalone-chrome-for-testing:138.0.7204.183-20251101\nTagged selenium/node-chrome-for-testing:138.0-chromedriver-138.0-grid-4.38.0-20251101\nTagged selenium/standalone-chrome-for-testing:138.0-chromedriver-138.0-grid-4.38.0-20251101\nTagged selenium/node-chrome-for-testing:138.0-chromedriver-138.0-20251101\nTagged selenium/standalone-chrome-for-testing:138.0-chromedriver-138.0-20251101\nTagged selenium/node-chrome-for-testing:138.0-20251101\nTagged selenium/standalone-chrome-for-testing:138.0-20251101\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.38.0/chrome-for-testing_139.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.38.0 20251101 selenium false chrome-for-testing true\nTagging images for browser chrome-for-testing, version 4.38.0, build date 20251101, namespace selenium\nSelenium Grid version -> 4.38.0-20251101\nChrome for Testing version -> 139.0.7258.154\nShort Chrome for Testing version -> 139.0\nChromeDriver version -> 139.0.7258.154\nShort ChromeDriver version -> 139.0\nTagged selenium/node-chrome-for-testing:139.0.7258.154-chromedriver-139.0.7258.154-grid-4.38.0-20251101\nTagged selenium/standalone-chrome-for-testing:139.0.7258.154-chromedriver-139.0.7258.154-grid-4.38.0-20251101\nTagged selenium/node-chrome-for-testing:139.0.7258.154-chromedriver-139.0.7258.154-20251101\nTagged selenium/standalone-chrome-for-testing:139.0.7258.154-chromedriver-139.0.7258.154-20251101\nTagged selenium/node-chrome-for-testing:139.0.7258.154-20251101\nTagged selenium/standalone-chrome-for-testing:139.0.7258.154-20251101\nTagged selenium/node-chrome-for-testing:139.0-chromedriver-139.0-grid-4.38.0-20251101\nTagged selenium/standalone-chrome-for-testing:139.0-chromedriver-139.0-grid-4.38.0-20251101\nTagged selenium/node-chrome-for-testing:139.0-chromedriver-139.0-20251101\nTagged selenium/standalone-chrome-for-testing:139.0-chromedriver-139.0-20251101\nTagged selenium/node-chrome-for-testing:139.0-20251101\nTagged selenium/standalone-chrome-for-testing:139.0-20251101\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.38.0/chrome-for-testing_140.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.38.0 20251101 selenium false chrome-for-testing true\nTagging images for browser chrome-for-testing, version 4.38.0, build date 20251101, namespace selenium\nSelenium Grid version -> 4.38.0-20251101\nChrome for Testing version -> 140.0.7339.207\nShort Chrome for Testing version -> 140.0\nChromeDriver version -> 140.0.7339.207\nShort ChromeDriver version -> 140.0\nTagged selenium/node-chrome-for-testing:140.0.7339.207-chromedriver-140.0.7339.207-grid-4.38.0-20251101\nTagged selenium/standalone-chrome-for-testing:140.0.7339.207-chromedriver-140.0.7339.207-grid-4.38.0-20251101\nTagged selenium/node-chrome-for-testing:140.0.7339.207-chromedriver-140.0.7339.207-20251101\nTagged selenium/standalone-chrome-for-testing:140.0.7339.207-chromedriver-140.0.7339.207-20251101\nTagged selenium/node-chrome-for-testing:140.0.7339.207-20251101\nTagged selenium/standalone-chrome-for-testing:140.0.7339.207-20251101\nTagged selenium/node-chrome-for-testing:140.0-chromedriver-140.0-grid-4.38.0-20251101\nTagged selenium/standalone-chrome-for-testing:140.0-chromedriver-140.0-grid-4.38.0-20251101\nTagged selenium/node-chrome-for-testing:140.0-chromedriver-140.0-20251101\nTagged selenium/standalone-chrome-for-testing:140.0-chromedriver-140.0-20251101\nTagged selenium/node-chrome-for-testing:140.0-20251101\nTagged selenium/standalone-chrome-for-testing:140.0-20251101\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.38.0/chrome-for-testing_141.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.38.0 20251101 selenium false chrome-for-testing true\nTagging images for browser chrome-for-testing, version 4.38.0, build date 20251101, namespace selenium\nSelenium Grid version -> 4.38.0-20251101\nChrome for Testing version -> 141.0.7390.122\nShort Chrome for Testing version -> 141.0\nChromeDriver version -> 141.0.7390.122\nShort ChromeDriver version -> 141.0\nTagged selenium/node-chrome-for-testing:141.0.7390.122-chromedriver-141.0.7390.122-grid-4.38.0-20251101\nTagged selenium/standalone-chrome-for-testing:141.0.7390.122-chromedriver-141.0.7390.122-grid-4.38.0-20251101\nTagged selenium/node-chrome-for-testing:141.0.7390.122-chromedriver-141.0.7390.122-20251101\nTagged selenium/standalone-chrome-for-testing:141.0.7390.122-chromedriver-141.0.7390.122-20251101\nTagged selenium/node-chrome-for-testing:141.0.7390.122-20251101\nTagged selenium/standalone-chrome-for-testing:141.0.7390.122-20251101\nTagged selenium/node-chrome-for-testing:141.0-chromedriver-141.0-grid-4.38.0-20251101\nTagged selenium/standalone-chrome-for-testing:141.0-chromedriver-141.0-grid-4.38.0-20251101\nTagged selenium/node-chrome-for-testing:141.0-chromedriver-141.0-20251101\nTagged selenium/standalone-chrome-for-testing:141.0-chromedriver-141.0-20251101\nTagged selenium/node-chrome-for-testing:141.0-20251101\nTagged selenium/standalone-chrome-for-testing:141.0-20251101\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.38.0/chrome-for-testing_142.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.38.0 20251101 selenium false chrome-for-testing true\nTagging images for browser chrome-for-testing, version 4.38.0, build date 20251101, namespace selenium\nSelenium Grid version -> 4.38.0-20251101\nChrome for Testing version -> 142.0.7444.59\nShort Chrome for Testing version -> 142.0\nChromeDriver version -> 142.0.7444.59\nShort ChromeDriver version -> 142.0\nTagged selenium/node-chrome-for-testing:142.0.7444.59-chromedriver-142.0.7444.59-grid-4.38.0-20251101\nTagged selenium/standalone-chrome-for-testing:142.0.7444.59-chromedriver-142.0.7444.59-grid-4.38.0-20251101\nTagged selenium/node-chrome-for-testing:142.0.7444.59-chromedriver-142.0.7444.59-20251101\nTagged selenium/standalone-chrome-for-testing:142.0.7444.59-chromedriver-142.0.7444.59-20251101\nTagged selenium/node-chrome-for-testing:142.0.7444.59-20251101\nTagged selenium/standalone-chrome-for-testing:142.0.7444.59-20251101\nTagged selenium/node-chrome-for-testing:142.0-chromedriver-142.0-grid-4.38.0-20251101\nTagged selenium/standalone-chrome-for-testing:142.0-chromedriver-142.0-grid-4.38.0-20251101\nTagged selenium/node-chrome-for-testing:142.0-chromedriver-142.0-20251101\nTagged selenium/standalone-chrome-for-testing:142.0-chromedriver-142.0-20251101\nTagged selenium/node-chrome-for-testing:142.0-20251101\nTagged selenium/standalone-chrome-for-testing:142.0-20251101\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.38.0/chrome_100.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.38.0 20251101 selenium false chrome true\nTagging images for browser chrome, version 4.38.0, build date 20251101, namespace selenium\nSelenium Grid version -> 4.38.0-20251101\nChrome version -> 100.0.4896.127\nShort Chrome version -> 100.0\nChromeDriver version -> 100.0.4896.60\nShort ChromeDriver version -> 100.0\nTagged selenium/node-chrome:100.0.4896.127-chromedriver-100.0.4896.60-grid-4.38.0-20251101\nTagged selenium/standalone-chrome:100.0.4896.127-chromedriver-100.0.4896.60-grid-4.38.0-20251101\nTagged selenium/node-chrome:100.0.4896.127-chromedriver-100.0.4896.60-20251101\nTagged selenium/standalone-chrome:100.0.4896.127-chromedriver-100.0.4896.60-20251101\nTagged selenium/node-chrome:100.0.4896.127-20251101\nTagged selenium/standalone-chrome:100.0.4896.127-20251101\nTagged selenium/node-chrome:100.0-chromedriver-100.0-grid-4.38.0-20251101\nTagged selenium/standalone-chrome:100.0-chromedriver-100.0-grid-4.38.0-20251101\nTagged selenium/node-chrome:100.0-chromedriver-100.0-20251101\nTagged selenium/standalone-chrome:100.0-chromedriver-100.0-20251101\nTagged selenium/node-chrome:100.0-20251101\nTagged selenium/standalone-chrome:100.0-20251101\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.38.0/chrome_101.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.38.0 20251101 selenium false chrome true\nTagging images for browser chrome, version 4.38.0, build date 20251101, namespace selenium\nSelenium Grid version -> 4.38.0-20251101\nChrome version -> 101.0.4951.64\nShort Chrome version -> 101.0\nChromeDriver version -> 101.0.4951.41\nShort ChromeDriver version -> 101.0\nTagged selenium/node-chrome:101.0.4951.64-chromedriver-101.0.4951.41-grid-4.38.0-20251101\nTagged selenium/standalone-chrome:101.0.4951.64-chromedriver-101.0.4951.41-grid-4.38.0-20251101\nTagged selenium/node-chrome:101.0.4951.64-chromedriver-101.0.4951.41-20251101\nTagged selenium/standalone-chrome:101.0.4951.64-chromedriver-101.0.4951.41-20251101\nTagged selenium/node-chrome:101.0.4951.64-20251101\nTagged selenium/standalone-chrome:101.0.4951.64-20251101\nTagged selenium/node-chrome:101.0-chromedriver-101.0-grid-4.38.0-20251101\nTagged selenium/standalone-chrome:101.0-chromedriver-101.0-grid-4.38.0-20251101\nTagged selenium/node-chrome:101.0-chromedriver-101.0-20251101\nTagged selenium/standalone-chrome:101.0-chromedriver-101.0-20251101\nTagged selenium/node-chrome:101.0-20251101\nTagged selenium/standalone-chrome:101.0-20251101\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.38.0/chrome_102.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.38.0 20251101 selenium false chrome true\nTagging images for browser chrome, version 4.38.0, build date 20251101, namespace selenium\nSelenium Grid version -> 4.38.0-20251101\nChrome version -> 102.0.5005.115\nShort Chrome version -> 102.0\nChromeDriver version -> 102.0.5005.61\nShort ChromeDriver version -> 102.0\nTagged selenium/node-chrome:102.0.5005.115-chromedriver-102.0.5005.61-grid-4.38.0-20251101\nTagged selenium/standalone-chrome:102.0.5005.115-chromedriver-102.0.5005.61-grid-4.38.0-20251101\nTagged selenium/node-chrome:102.0.5005.115-chromedriver-102.0.5005.61-20251101\nTagged selenium/standalone-chrome:102.0.5005.115-chromedriver-102.0.5005.61-20251101\nTagged selenium/node-chrome:102.0.5005.115-20251101\nTagged selenium/standalone-chrome:102.0.5005.115-20251101\nTagged selenium/node-chrome:102.0-chromedriver-102.0-grid-4.38.0-20251101\nTagged selenium/standalone-chrome:102.0-chromedriver-102.0-grid-4.38.0-20251101\nTagged selenium/node-chrome:102.0-chromedriver-102.0-20251101\nTagged selenium/standalone-chrome:102.0-chromedriver-102.0-20251101\nTagged selenium/node-chrome:102.0-20251101\nTagged selenium/standalone-chrome:102.0-20251101\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.38.0/chrome_103.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.38.0 20251101 selenium false chrome true\nTagging images for browser chrome, version 4.38.0, build date 20251101, namespace selenium\nSelenium Grid version -> 4.38.0-20251101\nChrome version -> 103.0.5060.134\nShort Chrome version -> 103.0\nChromeDriver version -> 103.0.5060.134\nShort ChromeDriver version -> 103.0\nTagged selenium/node-chrome:103.0.5060.134-chromedriver-103.0.5060.134-grid-4.38.0-20251101\nTagged selenium/standalone-chrome:103.0.5060.134-chromedriver-103.0.5060.134-grid-4.38.0-20251101\nTagged selenium/node-chrome:103.0.5060.134-chromedriver-103.0.5060.134-20251101\nTagged selenium/standalone-chrome:103.0.5060.134-chromedriver-103.0.5060.134-20251101\nTagged selenium/node-chrome:103.0.5060.134-20251101\nTagged selenium/standalone-chrome:103.0.5060.134-20251101\nTagged selenium/node-chrome:103.0-chromedriver-103.0-grid-4.38.0-20251101\nTagged selenium/standalone-chrome:103.0-chromedriver-103.0-grid-4.38.0-20251101\nTagged selenium/node-chrome:103.0-chromedriver-103.0-20251101\nTagged selenium/standalone-chrome:103.0-chromedriver-103.0-20251101\nTagged selenium/node-chrome:103.0-20251101\nTagged selenium/standalone-chrome:103.0-20251101\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.38.0/chrome_104.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.38.0 20251101 selenium false chrome true\nTagging images for browser chrome, version 4.38.0, build date 20251101, namespace selenium\nSelenium Grid version -> 4.38.0-20251101\nChrome version -> 104.0.5112.101\nShort Chrome version -> 104.0\nChromeDriver version -> 104.0.5112.79\nShort ChromeDriver version -> 104.0\nTagged selenium/node-chrome:104.0.5112.101-chromedriver-104.0.5112.79-grid-4.38.0-20251101\nTagged selenium/standalone-chrome:104.0.5112.101-chromedriver-104.0.5112.79-grid-4.38.0-20251101\nTagged selenium/node-chrome:104.0.5112.101-chromedriver-104.0.5112.79-20251101\nTagged selenium/standalone-chrome:104.0.5112.101-chromedriver-104.0.5112.79-20251101\nTagged selenium/node-chrome:104.0.5112.101-20251101\nTagged selenium/standalone-chrome:104.0.5112.101-20251101\nTagged selenium/node-chrome:104.0-chromedriver-104.0-grid-4.38.0-20251101\nTagged selenium/standalone-chrome:104.0-chromedriver-104.0-grid-4.38.0-20251101\nTagged selenium/node-chrome:104.0-chromedriver-104.0-20251101\nTagged selenium/standalone-chrome:104.0-chromedriver-104.0-20251101\nTagged selenium/node-chrome:104.0-20251101\nTagged selenium/standalone-chrome:104.0-20251101\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.38.0/chrome_105.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.38.0 20251101 selenium false chrome true\nTagging images for browser chrome, version 4.38.0, build date 20251101, namespace selenium\nSelenium Grid version -> 4.38.0-20251101\nChrome version -> 105.0.5195.125\nShort Chrome version -> 105.0\nChromeDriver version -> 105.0.5195.52\nShort ChromeDriver version -> 105.0\nTagged selenium/node-chrome:105.0.5195.125-chromedriver-105.0.5195.52-grid-4.38.0-20251101\nTagged selenium/standalone-chrome:105.0.5195.125-chromedriver-105.0.5195.52-grid-4.38.0-20251101\nTagged selenium/node-chrome:105.0.5195.125-chromedriver-105.0.5195.52-20251101\nTagged selenium/standalone-chrome:105.0.5195.125-chromedriver-105.0.5195.52-20251101\nTagged selenium/node-chrome:105.0.5195.125-20251101\nTagged selenium/standalone-chrome:105.0.5195.125-20251101\nTagged selenium/node-chrome:105.0-chromedriver-105.0-grid-4.38.0-20251101\nTagged selenium/standalone-chrome:105.0-chromedriver-105.0-grid-4.38.0-20251101\nTagged selenium/node-chrome:105.0-chromedriver-105.0-20251101\nTagged selenium/standalone-chrome:105.0-chromedriver-105.0-20251101\nTagged selenium/node-chrome:105.0-20251101\nTagged selenium/standalone-chrome:105.0-20251101\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.38.0/chrome_106.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.38.0 20251101 selenium false chrome true\nTagging images for browser chrome, version 4.38.0, build date 20251101, namespace selenium\nSelenium Grid version -> 4.38.0-20251101\nChrome version -> 106.0.5249.119\nShort Chrome version -> 106.0\nChromeDriver version -> 106.0.5249.61\nShort ChromeDriver version -> 106.0\nTagged selenium/node-chrome:106.0.5249.119-chromedriver-106.0.5249.61-grid-4.38.0-20251101\nTagged selenium/standalone-chrome:106.0.5249.119-chromedriver-106.0.5249.61-grid-4.38.0-20251101\nTagged selenium/node-chrome:106.0.5249.119-chromedriver-106.0.5249.61-20251101\nTagged selenium/standalone-chrome:106.0.5249.119-chromedriver-106.0.5249.61-20251101\nTagged selenium/node-chrome:106.0.5249.119-20251101\nTagged selenium/standalone-chrome:106.0.5249.119-20251101\nTagged selenium/node-chrome:106.0-chromedriver-106.0-grid-4.38.0-20251101\nTagged selenium/standalone-chrome:106.0-chromedriver-106.0-grid-4.38.0-20251101\nTagged selenium/node-chrome:106.0-chromedriver-106.0-20251101\nTagged selenium/standalone-chrome:106.0-chromedriver-106.0-20251101\nTagged selenium/node-chrome:106.0-20251101\nTagged selenium/standalone-chrome:106.0-20251101\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.38.0/chrome_107.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.38.0 20251101 selenium false chrome true\nTagging images for browser chrome, version 4.38.0, build date 20251101, namespace selenium\nSelenium Grid version -> 4.38.0-20251101\nChrome version -> 107.0.5304.121\nShort Chrome version -> 107.0\nChromeDriver version -> 107.0.5304.62\nShort ChromeDriver version -> 107.0\nTagged selenium/node-chrome:107.0.5304.121-chromedriver-107.0.5304.62-grid-4.38.0-20251101\nTagged selenium/standalone-chrome:107.0.5304.121-chromedriver-107.0.5304.62-grid-4.38.0-20251101\nTagged selenium/node-chrome:107.0.5304.121-chromedriver-107.0.5304.62-20251101\nTagged selenium/standalone-chrome:107.0.5304.121-chromedriver-107.0.5304.62-20251101\nTagged selenium/node-chrome:107.0.5304.121-20251101\nTagged selenium/standalone-chrome:107.0.5304.121-20251101\nTagged selenium/node-chrome:107.0-chromedriver-107.0-grid-4.38.0-20251101\nTagged selenium/standalone-chrome:107.0-chromedriver-107.0-grid-4.38.0-20251101\nTagged selenium/node-chrome:107.0-chromedriver-107.0-20251101\nTagged selenium/standalone-chrome:107.0-chromedriver-107.0-20251101\nTagged selenium/node-chrome:107.0-20251101\nTagged selenium/standalone-chrome:107.0-20251101\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.38.0/chrome_108.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.38.0 20251101 selenium false chrome true\nTagging images for browser chrome, version 4.38.0, build date 20251101, namespace selenium\nSelenium Grid version -> 4.38.0-20251101\nChrome version -> 108.0.5359.124\nShort Chrome version -> 108.0\nChromeDriver version -> 108.0.5359.71\nShort ChromeDriver version -> 108.0\nTagged selenium/node-chrome:108.0.5359.124-chromedriver-108.0.5359.71-grid-4.38.0-20251101\nTagged selenium/standalone-chrome:108.0.5359.124-chromedriver-108.0.5359.71-grid-4.38.0-20251101\nTagged selenium/node-chrome:108.0.5359.124-chromedriver-108.0.5359.71-20251101\nTagged selenium/standalone-chrome:108.0.5359.124-chromedriver-108.0.5359.71-20251101\nTagged selenium/node-chrome:108.0.5359.124-20251101\nTagged selenium/standalone-chrome:108.0.5359.124-20251101\nTagged selenium/node-chrome:108.0-chromedriver-108.0-grid-4.38.0-20251101\nTagged selenium/standalone-chrome:108.0-chromedriver-108.0-grid-4.38.0-20251101\nTagged selenium/node-chrome:108.0-chromedriver-108.0-20251101\nTagged selenium/standalone-chrome:108.0-chromedriver-108.0-20251101\nTagged selenium/node-chrome:108.0-20251101\nTagged selenium/standalone-chrome:108.0-20251101\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.38.0/chrome_109.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.38.0 20251101 selenium false chrome true\nTagging images for browser chrome, version 4.38.0, build date 20251101, namespace selenium\nSelenium Grid version -> 4.38.0-20251101\nChrome version -> 109.0.5414.119\nShort Chrome version -> 109.0\nChromeDriver version -> 109.0.5414.74\nShort ChromeDriver version -> 109.0\nTagged selenium/node-chrome:109.0.5414.119-chromedriver-109.0.5414.74-grid-4.38.0-20251101\nTagged selenium/standalone-chrome:109.0.5414.119-chromedriver-109.0.5414.74-grid-4.38.0-20251101\nTagged selenium/node-chrome:109.0.5414.119-chromedriver-109.0.5414.74-20251101\nTagged selenium/standalone-chrome:109.0.5414.119-chromedriver-109.0.5414.74-20251101\nTagged selenium/node-chrome:109.0.5414.119-20251101\nTagged selenium/standalone-chrome:109.0.5414.119-20251101\nTagged selenium/node-chrome:109.0-chromedriver-109.0-grid-4.38.0-20251101\nTagged selenium/standalone-chrome:109.0-chromedriver-109.0-grid-4.38.0-20251101\nTagged selenium/node-chrome:109.0-chromedriver-109.0-20251101\nTagged selenium/standalone-chrome:109.0-chromedriver-109.0-20251101\nTagged selenium/node-chrome:109.0-20251101\nTagged selenium/standalone-chrome:109.0-20251101\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.38.0/chrome_110.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.38.0 20251101 selenium false chrome true\nTagging images for browser chrome, version 4.38.0, build date 20251101, namespace selenium\nSelenium Grid version -> 4.38.0-20251101\nChrome version -> 110.0.5481.177\nShort Chrome version -> 110.0\nChromeDriver version -> 110.0.5481.77\nShort ChromeDriver version -> 110.0\nTagged selenium/node-chrome:110.0.5481.177-chromedriver-110.0.5481.77-grid-4.38.0-20251101\nTagged selenium/standalone-chrome:110.0.5481.177-chromedriver-110.0.5481.77-grid-4.38.0-20251101\nTagged selenium/node-chrome:110.0.5481.177-chromedriver-110.0.5481.77-20251101\nTagged selenium/standalone-chrome:110.0.5481.177-chromedriver-110.0.5481.77-20251101\nTagged selenium/node-chrome:110.0.5481.177-20251101\nTagged selenium/standalone-chrome:110.0.5481.177-20251101\nTagged selenium/node-chrome:110.0-chromedriver-110.0-grid-4.38.0-20251101\nTagged selenium/standalone-chrome:110.0-chromedriver-110.0-grid-4.38.0-20251101\nTagged selenium/node-chrome:110.0-chromedriver-110.0-20251101\nTagged selenium/standalone-chrome:110.0-chromedriver-110.0-20251101\nTagged selenium/node-chrome:110.0-20251101\nTagged selenium/standalone-chrome:110.0-20251101\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.38.0/chrome_111.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.38.0 20251101 selenium false chrome true\nTagging images for browser chrome, version 4.38.0, build date 20251101, namespace selenium\nSelenium Grid version -> 4.38.0-20251101\nChrome version -> 111.0.5563.146\nShort Chrome version -> 111.0\nChromeDriver version -> 111.0.5563.64\nShort ChromeDriver version -> 111.0\nTagged selenium/node-chrome:111.0.5563.146-chromedriver-111.0.5563.64-grid-4.38.0-20251101\nTagged selenium/standalone-chrome:111.0.5563.146-chromedriver-111.0.5563.64-grid-4.38.0-20251101\nTagged selenium/node-chrome:111.0.5563.146-chromedriver-111.0.5563.64-20251101\nTagged selenium/standalone-chrome:111.0.5563.146-chromedriver-111.0.5563.64-20251101\nTagged selenium/node-chrome:111.0.5563.146-20251101\nTagged selenium/standalone-chrome:111.0.5563.146-20251101\nTagged selenium/node-chrome:111.0-chromedriver-111.0-grid-4.38.0-20251101\nTagged selenium/standalone-chrome:111.0-chromedriver-111.0-grid-4.38.0-20251101\nTagged selenium/node-chrome:111.0-chromedriver-111.0-20251101\nTagged selenium/standalone-chrome:111.0-chromedriver-111.0-20251101\nTagged selenium/node-chrome:111.0-20251101\nTagged selenium/standalone-chrome:111.0-20251101\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.38.0/chrome_112.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.38.0 20251101 selenium false chrome true\nTagging images for browser chrome, version 4.38.0, build date 20251101, namespace selenium\nSelenium Grid version -> 4.38.0-20251101\nChrome version -> 112.0.5615.165\nShort Chrome version -> 112.0\nChromeDriver version -> 112.0.5615.49\nShort ChromeDriver version -> 112.0\nTagged selenium/node-chrome:112.0.5615.165-chromedriver-112.0.5615.49-grid-4.38.0-20251101\nTagged selenium/standalone-chrome:112.0.5615.165-chromedriver-112.0.5615.49-grid-4.38.0-20251101\nTagged selenium/node-chrome:112.0.5615.165-chromedriver-112.0.5615.49-20251101\nTagged selenium/standalone-chrome:112.0.5615.165-chromedriver-112.0.5615.49-20251101\nTagged selenium/node-chrome:112.0.5615.165-20251101\nTagged selenium/standalone-chrome:112.0.5615.165-20251101\nTagged selenium/node-chrome:112.0-chromedriver-112.0-grid-4.38.0-20251101\nTagged selenium/standalone-chrome:112.0-chromedriver-112.0-grid-4.38.0-20251101\nTagged selenium/node-chrome:112.0-chromedriver-112.0-20251101\nTagged selenium/standalone-chrome:112.0-chromedriver-112.0-20251101\nTagged selenium/node-chrome:112.0-20251101\nTagged selenium/standalone-chrome:112.0-20251101\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.38.0/chrome_113.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.38.0 20251101 selenium false chrome true\nTagging images for browser chrome, version 4.38.0, build date 20251101, namespace selenium\nSelenium Grid version -> 4.38.0-20251101\nChrome version -> 113.0.5672.126\nShort Chrome version -> 113.0\nChromeDriver version -> 113.0.5672.63\nShort ChromeDriver version -> 113.0\nTagged selenium/node-chrome:113.0.5672.126-chromedriver-113.0.5672.63-grid-4.38.0-20251101\nTagged selenium/standalone-chrome:113.0.5672.126-chromedriver-113.0.5672.63-grid-4.38.0-20251101\nTagged selenium/node-chrome:113.0.5672.126-chromedriver-113.0.5672.63-20251101\nTagged selenium/standalone-chrome:113.0.5672.126-chromedriver-113.0.5672.63-20251101\nTagged selenium/node-chrome:113.0.5672.126-20251101\nTagged selenium/standalone-chrome:113.0.5672.126-20251101\nTagged selenium/node-chrome:113.0-chromedriver-113.0-grid-4.38.0-20251101\nTagged selenium/standalone-chrome:113.0-chromedriver-113.0-grid-4.38.0-20251101\nTagged selenium/node-chrome:113.0-chromedriver-113.0-20251101\nTagged selenium/standalone-chrome:113.0-chromedriver-113.0-20251101\nTagged selenium/node-chrome:113.0-20251101\nTagged selenium/standalone-chrome:113.0-20251101\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.38.0/chrome_114.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.38.0 20251101 selenium false chrome true\nTagging images for browser chrome, version 4.38.0, build date 20251101, namespace selenium\nSelenium Grid version -> 4.38.0-20251101\nChrome version -> 114.0.5735.198\nShort Chrome version -> 114.0\nChromeDriver version -> 114.0.5735.90\nShort ChromeDriver version -> 114.0\nTagged selenium/node-chrome:114.0.5735.198-chromedriver-114.0.5735.90-grid-4.38.0-20251101\nTagged selenium/standalone-chrome:114.0.5735.198-chromedriver-114.0.5735.90-grid-4.38.0-20251101\nTagged selenium/node-chrome:114.0.5735.198-chromedriver-114.0.5735.90-20251101\nTagged selenium/standalone-chrome:114.0.5735.198-chromedriver-114.0.5735.90-20251101\nTagged selenium/node-chrome:114.0.5735.198-20251101\nTagged selenium/standalone-chrome:114.0.5735.198-20251101\nTagged selenium/node-chrome:114.0-chromedriver-114.0-grid-4.38.0-20251101\nTagged selenium/standalone-chrome:114.0-chromedriver-114.0-grid-4.38.0-20251101\nTagged selenium/node-chrome:114.0-chromedriver-114.0-20251101\nTagged selenium/standalone-chrome:114.0-chromedriver-114.0-20251101\nTagged selenium/node-chrome:114.0-20251101\nTagged selenium/standalone-chrome:114.0-20251101\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.38.0/chrome_115.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.38.0 20251101 selenium false chrome true\nTagging images for browser chrome, version 4.38.0, build date 20251101, namespace selenium\nSelenium Grid version -> 4.38.0-20251101\nChrome version -> 115.0.5790.170\nShort Chrome version -> 115.0\nChromeDriver version -> 115.0.5790.170\nShort ChromeDriver version -> 115.0\nTagged selenium/node-chrome:115.0.5790.170-chromedriver-115.0.5790.170-grid-4.38.0-20251101\nTagged selenium/standalone-chrome:115.0.5790.170-chromedriver-115.0.5790.170-grid-4.38.0-20251101\nTagged selenium/node-chrome:115.0.5790.170-chromedriver-115.0.5790.170-20251101\nTagged selenium/standalone-chrome:115.0.5790.170-chromedriver-115.0.5790.170-20251101\nTagged selenium/node-chrome:115.0.5790.170-20251101\nTagged selenium/standalone-chrome:115.0.5790.170-20251101\nTagged selenium/node-chrome:115.0-chromedriver-115.0-grid-4.38.0-20251101\nTagged selenium/standalone-chrome:115.0-chromedriver-115.0-grid-4.38.0-20251101\nTagged selenium/node-chrome:115.0-chromedriver-115.0-20251101\nTagged selenium/standalone-chrome:115.0-chromedriver-115.0-20251101\nTagged selenium/node-chrome:115.0-20251101\nTagged selenium/standalone-chrome:115.0-20251101\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.38.0/chrome_116.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.38.0 20251101 selenium false chrome true\nTagging images for browser chrome, version 4.38.0, build date 20251101, namespace selenium\nSelenium Grid version -> 4.38.0-20251101\nChrome version -> 116.0.5845.187\nShort Chrome version -> 116.0\nChromeDriver version -> 116.0.5845.96\nShort ChromeDriver version -> 116.0\nTagged selenium/node-chrome:116.0.5845.187-chromedriver-116.0.5845.96-grid-4.38.0-20251101\nTagged selenium/standalone-chrome:116.0.5845.187-chromedriver-116.0.5845.96-grid-4.38.0-20251101\nTagged selenium/node-chrome:116.0.5845.187-chromedriver-116.0.5845.96-20251101\nTagged selenium/standalone-chrome:116.0.5845.187-chromedriver-116.0.5845.96-20251101\nTagged selenium/node-chrome:116.0.5845.187-20251101\nTagged selenium/standalone-chrome:116.0.5845.187-20251101\nTagged selenium/node-chrome:116.0-chromedriver-116.0-grid-4.38.0-20251101\nTagged selenium/standalone-chrome:116.0-chromedriver-116.0-grid-4.38.0-20251101\nTagged selenium/node-chrome:116.0-chromedriver-116.0-20251101\nTagged selenium/standalone-chrome:116.0-chromedriver-116.0-20251101\nTagged selenium/node-chrome:116.0-20251101\nTagged selenium/standalone-chrome:116.0-20251101\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.38.0/chrome_117.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.38.0 20251101 selenium false chrome true\nTagging images for browser chrome, version 4.38.0, build date 20251101, namespace selenium\nSelenium Grid version -> 4.38.0-20251101\nChrome version -> 117.0.5938.149\nShort Chrome version -> 117.0\nChromeDriver version -> 117.0.5938.149\nShort ChromeDriver version -> 117.0\nTagged selenium/node-chrome:117.0.5938.149-chromedriver-117.0.5938.149-grid-4.38.0-20251101\nTagged selenium/standalone-chrome:117.0.5938.149-chromedriver-117.0.5938.149-grid-4.38.0-20251101\nTagged selenium/node-chrome:117.0.5938.149-chromedriver-117.0.5938.149-20251101\nTagged selenium/standalone-chrome:117.0.5938.149-chromedriver-117.0.5938.149-20251101\nTagged selenium/node-chrome:117.0.5938.149-20251101\nTagged selenium/standalone-chrome:117.0.5938.149-20251101\nTagged selenium/node-chrome:117.0-chromedriver-117.0-grid-4.38.0-20251101\nTagged selenium/standalone-chrome:117.0-chromedriver-117.0-grid-4.38.0-20251101\nTagged selenium/node-chrome:117.0-chromedriver-117.0-20251101\nTagged selenium/standalone-chrome:117.0-chromedriver-117.0-20251101\nTagged selenium/node-chrome:117.0-20251101\nTagged selenium/standalone-chrome:117.0-20251101\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.38.0/chrome_118.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.38.0 20251101 selenium false chrome true\nTagging images for browser chrome, version 4.38.0, build date 20251101, namespace selenium\nSelenium Grid version -> 4.38.0-20251101\nChrome version -> 118.0.5993.117\nShort Chrome version -> 118.0\nChromeDriver version -> 118.0.5993.70\nShort ChromeDriver version -> 118.0\nTagged selenium/node-chrome:118.0.5993.117-chromedriver-118.0.5993.70-grid-4.38.0-20251101\nTagged selenium/standalone-chrome:118.0.5993.117-chromedriver-118.0.5993.70-grid-4.38.0-20251101\nTagged selenium/node-chrome:118.0.5993.117-chromedriver-118.0.5993.70-20251101\nTagged selenium/standalone-chrome:118.0.5993.117-chromedriver-118.0.5993.70-20251101\nTagged selenium/node-chrome:118.0.5993.117-20251101\nTagged selenium/standalone-chrome:118.0.5993.117-20251101\nTagged selenium/node-chrome:118.0-chromedriver-118.0-grid-4.38.0-20251101\nTagged selenium/standalone-chrome:118.0-chromedriver-118.0-grid-4.38.0-20251101\nTagged selenium/node-chrome:118.0-chromedriver-118.0-20251101\nTagged selenium/standalone-chrome:118.0-chromedriver-118.0-20251101\nTagged selenium/node-chrome:118.0-20251101\nTagged selenium/standalone-chrome:118.0-20251101\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.38.0/chrome_119.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.38.0 20251101 selenium false chrome true\nTagging images for browser chrome, version 4.38.0, build date 20251101, namespace selenium\nSelenium Grid version -> 4.38.0-20251101\nChrome version -> 119.0.6045.199\nShort Chrome version -> 119.0\nChromeDriver version -> 119.0.6045.105\nShort ChromeDriver version -> 119.0\nTagged selenium/node-chrome:119.0.6045.199-chromedriver-119.0.6045.105-grid-4.38.0-20251101\nTagged selenium/standalone-chrome:119.0.6045.199-chromedriver-119.0.6045.105-grid-4.38.0-20251101\nTagged selenium/node-chrome:119.0.6045.199-chromedriver-119.0.6045.105-20251101\nTagged selenium/standalone-chrome:119.0.6045.199-chromedriver-119.0.6045.105-20251101\nTagged selenium/node-chrome:119.0.6045.199-20251101\nTagged selenium/standalone-chrome:119.0.6045.199-20251101\nTagged selenium/node-chrome:119.0-chromedriver-119.0-grid-4.38.0-20251101\nTagged selenium/standalone-chrome:119.0-chromedriver-119.0-grid-4.38.0-20251101\nTagged selenium/node-chrome:119.0-chromedriver-119.0-20251101\nTagged selenium/standalone-chrome:119.0-chromedriver-119.0-20251101\nTagged selenium/node-chrome:119.0-20251101\nTagged selenium/standalone-chrome:119.0-20251101\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.38.0/chrome_120.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.38.0 20251101 selenium false chrome true\nTagging images for browser chrome, version 4.38.0, build date 20251101, namespace selenium\nSelenium Grid version -> 4.38.0-20251101\nChrome version -> 120.0.6099.224\nShort Chrome version -> 120.0\nChromeDriver version -> 120.0.6099.109\nShort ChromeDriver version -> 120.0\nTagged selenium/node-chrome:120.0.6099.224-chromedriver-120.0.6099.109-grid-4.38.0-20251101\nTagged selenium/standalone-chrome:120.0.6099.224-chromedriver-120.0.6099.109-grid-4.38.0-20251101\nTagged selenium/node-chrome:120.0.6099.224-chromedriver-120.0.6099.109-20251101\nTagged selenium/standalone-chrome:120.0.6099.224-chromedriver-120.0.6099.109-20251101\nTagged selenium/node-chrome:120.0.6099.224-20251101\nTagged selenium/standalone-chrome:120.0.6099.224-20251101\nTagged selenium/node-chrome:120.0-chromedriver-120.0-grid-4.38.0-20251101\nTagged selenium/standalone-chrome:120.0-chromedriver-120.0-grid-4.38.0-20251101\nTagged selenium/node-chrome:120.0-chromedriver-120.0-20251101\nTagged selenium/standalone-chrome:120.0-chromedriver-120.0-20251101\nTagged selenium/node-chrome:120.0-20251101\nTagged selenium/standalone-chrome:120.0-20251101\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.38.0/chrome_121.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.38.0 20251101 selenium false chrome true\nTagging images for browser chrome, version 4.38.0, build date 20251101, namespace selenium\nSelenium Grid version -> 4.38.0-20251101\nChrome version -> 121.0.6167.184\nShort Chrome version -> 121.0\nChromeDriver version -> 121.0.6167.184\nShort ChromeDriver version -> 121.0\nTagged selenium/node-chrome:121.0.6167.184-chromedriver-121.0.6167.184-grid-4.38.0-20251101\nTagged selenium/standalone-chrome:121.0.6167.184-chromedriver-121.0.6167.184-grid-4.38.0-20251101\nTagged selenium/node-chrome:121.0.6167.184-chromedriver-121.0.6167.184-20251101\nTagged selenium/standalone-chrome:121.0.6167.184-chromedriver-121.0.6167.184-20251101\nTagged selenium/node-chrome:121.0.6167.184-20251101\nTagged selenium/standalone-chrome:121.0.6167.184-20251101\nTagged selenium/node-chrome:121.0-chromedriver-121.0-grid-4.38.0-20251101\nTagged selenium/standalone-chrome:121.0-chromedriver-121.0-grid-4.38.0-20251101\nTagged selenium/node-chrome:121.0-chromedriver-121.0-20251101\nTagged selenium/standalone-chrome:121.0-chromedriver-121.0-20251101\nTagged selenium/node-chrome:121.0-20251101\nTagged selenium/standalone-chrome:121.0-20251101\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.38.0/chrome_122.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.38.0 20251101 selenium false chrome true\nTagging images for browser chrome, version 4.38.0, build date 20251101, namespace selenium\nSelenium Grid version -> 4.38.0-20251101\nChrome version -> 122.0.6261.128\nShort Chrome version -> 122.0\nChromeDriver version -> 122.0.6261.128\nShort ChromeDriver version -> 122.0\nTagged selenium/node-chrome:122.0.6261.128-chromedriver-122.0.6261.128-grid-4.38.0-20251101\nTagged selenium/standalone-chrome:122.0.6261.128-chromedriver-122.0.6261.128-grid-4.38.0-20251101\nTagged selenium/node-chrome:122.0.6261.128-chromedriver-122.0.6261.128-20251101\nTagged selenium/standalone-chrome:122.0.6261.128-chromedriver-122.0.6261.128-20251101\nTagged selenium/node-chrome:122.0.6261.128-20251101\nTagged selenium/standalone-chrome:122.0.6261.128-20251101\nTagged selenium/node-chrome:122.0-chromedriver-122.0-grid-4.38.0-20251101\nTagged selenium/standalone-chrome:122.0-chromedriver-122.0-grid-4.38.0-20251101\nTagged selenium/node-chrome:122.0-chromedriver-122.0-20251101\nTagged selenium/standalone-chrome:122.0-chromedriver-122.0-20251101\nTagged selenium/node-chrome:122.0-20251101\nTagged selenium/standalone-chrome:122.0-20251101\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.38.0/chrome_123.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.38.0 20251101 selenium false chrome true\nTagging images for browser chrome, version 4.38.0, build date 20251101, namespace selenium\nSelenium Grid version -> 4.38.0-20251101\nChrome version -> 123.0.6312.122\nShort Chrome version -> 123.0\nChromeDriver version -> 123.0.6312.122\nShort ChromeDriver version -> 123.0\nTagged selenium/node-chrome:123.0.6312.122-chromedriver-123.0.6312.122-grid-4.38.0-20251101\nTagged selenium/standalone-chrome:123.0.6312.122-chromedriver-123.0.6312.122-grid-4.38.0-20251101\nTagged selenium/node-chrome:123.0.6312.122-chromedriver-123.0.6312.122-20251101\nTagged selenium/standalone-chrome:123.0.6312.122-chromedriver-123.0.6312.122-20251101\nTagged selenium/node-chrome:123.0.6312.122-20251101\nTagged selenium/standalone-chrome:123.0.6312.122-20251101\nTagged selenium/node-chrome:123.0-chromedriver-123.0-grid-4.38.0-20251101\nTagged selenium/standalone-chrome:123.0-chromedriver-123.0-grid-4.38.0-20251101\nTagged selenium/node-chrome:123.0-chromedriver-123.0-20251101\nTagged selenium/standalone-chrome:123.0-chromedriver-123.0-20251101\nTagged selenium/node-chrome:123.0-20251101\nTagged selenium/standalone-chrome:123.0-20251101\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.38.0/chrome_124.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.38.0 20251101 selenium false chrome true\nTagging images for browser chrome, version 4.38.0, build date 20251101, namespace selenium\nSelenium Grid version -> 4.38.0-20251101\nChrome version -> 124.0.6367.207\nShort Chrome version -> 124.0\nChromeDriver version -> 124.0.6367.207\nShort ChromeDriver version -> 124.0\nTagged selenium/node-chrome:124.0.6367.207-chromedriver-124.0.6367.207-grid-4.38.0-20251101\nTagged selenium/standalone-chrome:124.0.6367.207-chromedriver-124.0.6367.207-grid-4.38.0-20251101\nTagged selenium/node-chrome:124.0.6367.207-chromedriver-124.0.6367.207-20251101\nTagged selenium/standalone-chrome:124.0.6367.207-chromedriver-124.0.6367.207-20251101\nTagged selenium/node-chrome:124.0.6367.207-20251101\nTagged selenium/standalone-chrome:124.0.6367.207-20251101\nTagged selenium/node-chrome:124.0-chromedriver-124.0-grid-4.38.0-20251101\nTagged selenium/standalone-chrome:124.0-chromedriver-124.0-grid-4.38.0-20251101\nTagged selenium/node-chrome:124.0-chromedriver-124.0-20251101\nTagged selenium/standalone-chrome:124.0-chromedriver-124.0-20251101\nTagged selenium/node-chrome:124.0-20251101\nTagged selenium/standalone-chrome:124.0-20251101\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.38.0/chrome_125.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.38.0 20251101 selenium false chrome true\nTagging images for browser chrome, version 4.38.0, build date 20251101, namespace selenium\nSelenium Grid version -> 4.38.0-20251101\nChrome version -> 125.0.6422.141\nShort Chrome version -> 125.0\nChromeDriver version -> 125.0.6422.141\nShort ChromeDriver version -> 125.0\nTagged selenium/node-chrome:125.0.6422.141-chromedriver-125.0.6422.141-grid-4.38.0-20251101\nTagged selenium/standalone-chrome:125.0.6422.141-chromedriver-125.0.6422.141-grid-4.38.0-20251101\nTagged selenium/node-chrome:125.0.6422.141-chromedriver-125.0.6422.141-20251101\nTagged selenium/standalone-chrome:125.0.6422.141-chromedriver-125.0.6422.141-20251101\nTagged selenium/node-chrome:125.0.6422.141-20251101\nTagged selenium/standalone-chrome:125.0.6422.141-20251101\nTagged selenium/node-chrome:125.0-chromedriver-125.0-grid-4.38.0-20251101\nTagged selenium/standalone-chrome:125.0-chromedriver-125.0-grid-4.38.0-20251101\nTagged selenium/node-chrome:125.0-chromedriver-125.0-20251101\nTagged selenium/standalone-chrome:125.0-chromedriver-125.0-20251101\nTagged selenium/node-chrome:125.0-20251101\nTagged selenium/standalone-chrome:125.0-20251101\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.38.0/chrome_126.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.38.0 20251101 selenium false chrome true\nTagging images for browser chrome, version 4.38.0, build date 20251101, namespace selenium\nSelenium Grid version -> 4.38.0-20251101\nChrome version -> 126.0.6478.182\nShort Chrome version -> 126.0\nChromeDriver version -> 126.0.6478.182\nShort ChromeDriver version -> 126.0\nTagged selenium/node-chrome:126.0.6478.182-chromedriver-126.0.6478.182-grid-4.38.0-20251101\nTagged selenium/standalone-chrome:126.0.6478.182-chromedriver-126.0.6478.182-grid-4.38.0-20251101\nTagged selenium/node-chrome:126.0.6478.182-chromedriver-126.0.6478.182-20251101\nTagged selenium/standalone-chrome:126.0.6478.182-chromedriver-126.0.6478.182-20251101\nTagged selenium/node-chrome:126.0.6478.182-20251101\nTagged selenium/standalone-chrome:126.0.6478.182-20251101\nTagged selenium/node-chrome:126.0-chromedriver-126.0-grid-4.38.0-20251101\nTagged selenium/standalone-chrome:126.0-chromedriver-126.0-grid-4.38.0-20251101\nTagged selenium/node-chrome:126.0-chromedriver-126.0-20251101\nTagged selenium/standalone-chrome:126.0-chromedriver-126.0-20251101\nTagged selenium/node-chrome:126.0-20251101\nTagged selenium/standalone-chrome:126.0-20251101\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.38.0/chrome_127.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.38.0 20251101 selenium false chrome true\nTagging images for browser chrome, version 4.38.0, build date 20251101, namespace selenium\nSelenium Grid version -> 4.38.0-20251101\nChrome version -> 127.0.6533.119\nShort Chrome version -> 127.0\nChromeDriver version -> 127.0.6533.119\nShort ChromeDriver version -> 127.0\nTagged selenium/node-chrome:127.0.6533.119-chromedriver-127.0.6533.119-grid-4.38.0-20251101\nTagged selenium/standalone-chrome:127.0.6533.119-chromedriver-127.0.6533.119-grid-4.38.0-20251101\nTagged selenium/node-chrome:127.0.6533.119-chromedriver-127.0.6533.119-20251101\nTagged selenium/standalone-chrome:127.0.6533.119-chromedriver-127.0.6533.119-20251101\nTagged selenium/node-chrome:127.0.6533.119-20251101\nTagged selenium/standalone-chrome:127.0.6533.119-20251101\nTagged selenium/node-chrome:127.0-chromedriver-127.0-grid-4.38.0-20251101\nTagged selenium/standalone-chrome:127.0-chromedriver-127.0-grid-4.38.0-20251101\nTagged selenium/node-chrome:127.0-chromedriver-127.0-20251101\nTagged selenium/standalone-chrome:127.0-chromedriver-127.0-20251101\nTagged selenium/node-chrome:127.0-20251101\nTagged selenium/standalone-chrome:127.0-20251101\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.38.0/chrome_128.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.38.0 20251101 selenium false chrome true\nTagging images for browser chrome, version 4.38.0, build date 20251101, namespace selenium\nSelenium Grid version -> 4.38.0-20251101\nChrome version -> 128.0.6613.137\nShort Chrome version -> 128.0\nChromeDriver version -> 128.0.6613.137\nShort ChromeDriver version -> 128.0\nTagged selenium/node-chrome:128.0.6613.137-chromedriver-128.0.6613.137-grid-4.38.0-20251101\nTagged selenium/standalone-chrome:128.0.6613.137-chromedriver-128.0.6613.137-grid-4.38.0-20251101\nTagged selenium/node-chrome:128.0.6613.137-chromedriver-128.0.6613.137-20251101\nTagged selenium/standalone-chrome:128.0.6613.137-chromedriver-128.0.6613.137-20251101\nTagged selenium/node-chrome:128.0.6613.137-20251101\nTagged selenium/standalone-chrome:128.0.6613.137-20251101\nTagged selenium/node-chrome:128.0-chromedriver-128.0-grid-4.38.0-20251101\nTagged selenium/standalone-chrome:128.0-chromedriver-128.0-grid-4.38.0-20251101\nTagged selenium/node-chrome:128.0-chromedriver-128.0-20251101\nTagged selenium/standalone-chrome:128.0-chromedriver-128.0-20251101\nTagged selenium/node-chrome:128.0-20251101\nTagged selenium/standalone-chrome:128.0-20251101\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.38.0/chrome_129.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.38.0 20251101 selenium false chrome true\nTagging images for browser chrome, version 4.38.0, build date 20251101, namespace selenium\nSelenium Grid version -> 4.38.0-20251101\nChrome version -> 129.0.6668.100\nShort Chrome version -> 129.0\nChromeDriver version -> 129.0.6668.100\nShort ChromeDriver version -> 129.0\nTagged selenium/node-chrome:129.0.6668.100-chromedriver-129.0.6668.100-grid-4.38.0-20251101\nTagged selenium/standalone-chrome:129.0.6668.100-chromedriver-129.0.6668.100-grid-4.38.0-20251101\nTagged selenium/node-chrome:129.0.6668.100-chromedriver-129.0.6668.100-20251101\nTagged selenium/standalone-chrome:129.0.6668.100-chromedriver-129.0.6668.100-20251101\nTagged selenium/node-chrome:129.0.6668.100-20251101\nTagged selenium/standalone-chrome:129.0.6668.100-20251101\nTagged selenium/node-chrome:129.0-chromedriver-129.0-grid-4.38.0-20251101\nTagged selenium/standalone-chrome:129.0-chromedriver-129.0-grid-4.38.0-20251101\nTagged selenium/node-chrome:129.0-chromedriver-129.0-20251101\nTagged selenium/standalone-chrome:129.0-chromedriver-129.0-20251101\nTagged selenium/node-chrome:129.0-20251101\nTagged selenium/standalone-chrome:129.0-20251101\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.38.0/chrome_130.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.38.0 20251101 selenium false chrome true\nTagging images for browser chrome, version 4.38.0, build date 20251101, namespace selenium\nSelenium Grid version -> 4.38.0-20251101\nChrome version -> 130.0.6723.116\nShort Chrome version -> 130.0\nChromeDriver version -> 130.0.6723.116\nShort ChromeDriver version -> 130.0\nTagged selenium/node-chrome:130.0.6723.116-chromedriver-130.0.6723.116-grid-4.38.0-20251101\nTagged selenium/standalone-chrome:130.0.6723.116-chromedriver-130.0.6723.116-grid-4.38.0-20251101\nTagged selenium/node-chrome:130.0.6723.116-chromedriver-130.0.6723.116-20251101\nTagged selenium/standalone-chrome:130.0.6723.116-chromedriver-130.0.6723.116-20251101\nTagged selenium/node-chrome:130.0.6723.116-20251101\nTagged selenium/standalone-chrome:130.0.6723.116-20251101\nTagged selenium/node-chrome:130.0-chromedriver-130.0-grid-4.38.0-20251101\nTagged selenium/standalone-chrome:130.0-chromedriver-130.0-grid-4.38.0-20251101\nTagged selenium/node-chrome:130.0-chromedriver-130.0-20251101\nTagged selenium/standalone-chrome:130.0-chromedriver-130.0-20251101\nTagged selenium/node-chrome:130.0-20251101\nTagged selenium/standalone-chrome:130.0-20251101\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.38.0/chrome_131.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.38.0 20251101 selenium false chrome true\nTagging images for browser chrome, version 4.38.0, build date 20251101, namespace selenium\nSelenium Grid version -> 4.38.0-20251101\nChrome version -> 131.0.6778.264\nShort Chrome version -> 131.0\nChromeDriver version -> 131.0.6778.264\nShort ChromeDriver version -> 131.0\nTagged selenium/node-chrome:131.0.6778.264-chromedriver-131.0.6778.264-grid-4.38.0-20251101\nTagged selenium/standalone-chrome:131.0.6778.264-chromedriver-131.0.6778.264-grid-4.38.0-20251101\nTagged selenium/node-chrome:131.0.6778.264-chromedriver-131.0.6778.264-20251101\nTagged selenium/standalone-chrome:131.0.6778.264-chromedriver-131.0.6778.264-20251101\nTagged selenium/node-chrome:131.0.6778.264-20251101\nTagged selenium/standalone-chrome:131.0.6778.264-20251101\nTagged selenium/node-chrome:131.0-chromedriver-131.0-grid-4.38.0-20251101\nTagged selenium/standalone-chrome:131.0-chromedriver-131.0-grid-4.38.0-20251101\nTagged selenium/node-chrome:131.0-chromedriver-131.0-20251101\nTagged selenium/standalone-chrome:131.0-chromedriver-131.0-20251101\nTagged selenium/node-chrome:131.0-20251101\nTagged selenium/standalone-chrome:131.0-20251101\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.38.0/chrome_132.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.38.0 20251101 selenium false chrome true\nTagging images for browser chrome, version 4.38.0, build date 20251101, namespace selenium\nSelenium Grid version -> 4.38.0-20251101\nChrome version -> 132.0.6834.159\nShort Chrome version -> 132.0\nChromeDriver version -> 132.0.6834.159\nShort ChromeDriver version -> 132.0\nTagged selenium/node-chrome:132.0.6834.159-chromedriver-132.0.6834.159-grid-4.38.0-20251101\nTagged selenium/standalone-chrome:132.0.6834.159-chromedriver-132.0.6834.159-grid-4.38.0-20251101\nTagged selenium/node-chrome:132.0.6834.159-chromedriver-132.0.6834.159-20251101\nTagged selenium/standalone-chrome:132.0.6834.159-chromedriver-132.0.6834.159-20251101\nTagged selenium/node-chrome:132.0.6834.159-20251101\nTagged selenium/standalone-chrome:132.0.6834.159-20251101\nTagged selenium/node-chrome:132.0-chromedriver-132.0-grid-4.38.0-20251101\nTagged selenium/standalone-chrome:132.0-chromedriver-132.0-grid-4.38.0-20251101\nTagged selenium/node-chrome:132.0-chromedriver-132.0-20251101\nTagged selenium/standalone-chrome:132.0-chromedriver-132.0-20251101\nTagged selenium/node-chrome:132.0-20251101\nTagged selenium/standalone-chrome:132.0-20251101\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.38.0/chrome_133.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.38.0 20251101 selenium false chrome true\nTagging images for browser chrome, version 4.38.0, build date 20251101, namespace selenium\nSelenium Grid version -> 4.38.0-20251101\nChrome version -> 133.0.6943.141\nShort Chrome version -> 133.0\nChromeDriver version -> 133.0.6943.141\nShort ChromeDriver version -> 133.0\nTagged selenium/node-chrome:133.0.6943.141-chromedriver-133.0.6943.141-grid-4.38.0-20251101\nTagged selenium/standalone-chrome:133.0.6943.141-chromedriver-133.0.6943.141-grid-4.38.0-20251101\nTagged selenium/node-chrome:133.0.6943.141-chromedriver-133.0.6943.141-20251101\nTagged selenium/standalone-chrome:133.0.6943.141-chromedriver-133.0.6943.141-20251101\nTagged selenium/node-chrome:133.0.6943.141-20251101\nTagged selenium/standalone-chrome:133.0.6943.141-20251101\nTagged selenium/node-chrome:133.0-chromedriver-133.0-grid-4.38.0-20251101\nTagged selenium/standalone-chrome:133.0-chromedriver-133.0-grid-4.38.0-20251101\nTagged selenium/node-chrome:133.0-chromedriver-133.0-20251101\nTagged selenium/standalone-chrome:133.0-chromedriver-133.0-20251101\nTagged selenium/node-chrome:133.0-20251101\nTagged selenium/standalone-chrome:133.0-20251101\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.38.0/chrome_134.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.38.0 20251101 selenium false chrome true\nTagging images for browser chrome, version 4.38.0, build date 20251101, namespace selenium\nSelenium Grid version -> 4.38.0-20251101\nChrome version -> 134.0.6998.165\nShort Chrome version -> 134.0\nChromeDriver version -> 134.0.6998.165\nShort ChromeDriver version -> 134.0\nTagged selenium/node-chrome:134.0.6998.165-chromedriver-134.0.6998.165-grid-4.38.0-20251101\nTagged selenium/standalone-chrome:134.0.6998.165-chromedriver-134.0.6998.165-grid-4.38.0-20251101\nTagged selenium/node-chrome:134.0.6998.165-chromedriver-134.0.6998.165-20251101\nTagged selenium/standalone-chrome:134.0.6998.165-chromedriver-134.0.6998.165-20251101\nTagged selenium/node-chrome:134.0.6998.165-20251101\nTagged selenium/standalone-chrome:134.0.6998.165-20251101\nTagged selenium/node-chrome:134.0-chromedriver-134.0-grid-4.38.0-20251101\nTagged selenium/standalone-chrome:134.0-chromedriver-134.0-grid-4.38.0-20251101\nTagged selenium/node-chrome:134.0-chromedriver-134.0-20251101\nTagged selenium/standalone-chrome:134.0-chromedriver-134.0-20251101\nTagged selenium/node-chrome:134.0-20251101\nTagged selenium/standalone-chrome:134.0-20251101\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.38.0/chrome_135.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.38.0 20251101 selenium false chrome true\nTagging images for browser chrome, version 4.38.0, build date 20251101, namespace selenium\nSelenium Grid version -> 4.38.0-20251101\nChrome version -> 135.0.7049.114\nShort Chrome version -> 135.0\nChromeDriver version -> 135.0.7049.114\nShort ChromeDriver version -> 135.0\nTagged selenium/node-chrome:135.0.7049.114-chromedriver-135.0.7049.114-grid-4.38.0-20251101\nTagged selenium/standalone-chrome:135.0.7049.114-chromedriver-135.0.7049.114-grid-4.38.0-20251101\nTagged selenium/node-chrome:135.0.7049.114-chromedriver-135.0.7049.114-20251101\nTagged selenium/standalone-chrome:135.0.7049.114-chromedriver-135.0.7049.114-20251101\nTagged selenium/node-chrome:135.0.7049.114-20251101\nTagged selenium/standalone-chrome:135.0.7049.114-20251101\nTagged selenium/node-chrome:135.0-chromedriver-135.0-grid-4.38.0-20251101\nTagged selenium/standalone-chrome:135.0-chromedriver-135.0-grid-4.38.0-20251101\nTagged selenium/node-chrome:135.0-chromedriver-135.0-20251101\nTagged selenium/standalone-chrome:135.0-chromedriver-135.0-20251101\nTagged selenium/node-chrome:135.0-20251101\nTagged selenium/standalone-chrome:135.0-20251101\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.38.0/chrome_136.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.38.0 20251101 selenium false chrome true\nTagging images for browser chrome, version 4.38.0, build date 20251101, namespace selenium\nSelenium Grid version -> 4.38.0-20251101\nChrome version -> 136.0.7103.113\nShort Chrome version -> 136.0\nChromeDriver version -> 136.0.7103.113\nShort ChromeDriver version -> 136.0\nTagged selenium/node-chrome:136.0.7103.113-chromedriver-136.0.7103.113-grid-4.38.0-20251101\nTagged selenium/standalone-chrome:136.0.7103.113-chromedriver-136.0.7103.113-grid-4.38.0-20251101\nTagged selenium/node-chrome:136.0.7103.113-chromedriver-136.0.7103.113-20251101\nTagged selenium/standalone-chrome:136.0.7103.113-chromedriver-136.0.7103.113-20251101\nTagged selenium/node-chrome:136.0.7103.113-20251101\nTagged selenium/standalone-chrome:136.0.7103.113-20251101\nTagged selenium/node-chrome:136.0-chromedriver-136.0-grid-4.38.0-20251101\nTagged selenium/standalone-chrome:136.0-chromedriver-136.0-grid-4.38.0-20251101\nTagged selenium/node-chrome:136.0-chromedriver-136.0-20251101\nTagged selenium/standalone-chrome:136.0-chromedriver-136.0-20251101\nTagged selenium/node-chrome:136.0-20251101\nTagged selenium/standalone-chrome:136.0-20251101\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.38.0/chrome_137.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.38.0 20251101 selenium false chrome true\nTagging images for browser chrome, version 4.38.0, build date 20251101, namespace selenium\nSelenium Grid version -> 4.38.0-20251101\nChrome version -> 137.0.7151.119\nShort Chrome version -> 137.0\nChromeDriver version -> 137.0.7151.119\nShort ChromeDriver version -> 137.0\nTagged selenium/node-chrome:137.0.7151.119-chromedriver-137.0.7151.119-grid-4.38.0-20251101\nTagged selenium/standalone-chrome:137.0.7151.119-chromedriver-137.0.7151.119-grid-4.38.0-20251101\nTagged selenium/node-chrome:137.0.7151.119-chromedriver-137.0.7151.119-20251101\nTagged selenium/standalone-chrome:137.0.7151.119-chromedriver-137.0.7151.119-20251101\nTagged selenium/node-chrome:137.0.7151.119-20251101\nTagged selenium/standalone-chrome:137.0.7151.119-20251101\nTagged selenium/node-chrome:137.0-chromedriver-137.0-grid-4.38.0-20251101\nTagged selenium/standalone-chrome:137.0-chromedriver-137.0-grid-4.38.0-20251101\nTagged selenium/node-chrome:137.0-chromedriver-137.0-20251101\nTagged selenium/standalone-chrome:137.0-chromedriver-137.0-20251101\nTagged selenium/node-chrome:137.0-20251101\nTagged selenium/standalone-chrome:137.0-20251101\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.38.0/chrome_138.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.38.0 20251101 selenium false chrome true\nTagging images for browser chrome, version 4.38.0, build date 20251101, namespace selenium\nSelenium Grid version -> 4.38.0-20251101\nChrome version -> 138.0.7204.183\nShort Chrome version -> 138.0\nChromeDriver version -> 138.0.7204.183\nShort ChromeDriver version -> 138.0\nTagged selenium/node-chrome:138.0.7204.183-chromedriver-138.0.7204.183-grid-4.38.0-20251101\nTagged selenium/standalone-chrome:138.0.7204.183-chromedriver-138.0.7204.183-grid-4.38.0-20251101\nTagged selenium/node-chrome:138.0.7204.183-chromedriver-138.0.7204.183-20251101\nTagged selenium/standalone-chrome:138.0.7204.183-chromedriver-138.0.7204.183-20251101\nTagged selenium/node-chrome:138.0.7204.183-20251101\nTagged selenium/standalone-chrome:138.0.7204.183-20251101\nTagged selenium/node-chrome:138.0-chromedriver-138.0-grid-4.38.0-20251101\nTagged selenium/standalone-chrome:138.0-chromedriver-138.0-grid-4.38.0-20251101\nTagged selenium/node-chrome:138.0-chromedriver-138.0-20251101\nTagged selenium/standalone-chrome:138.0-chromedriver-138.0-20251101\nTagged selenium/node-chrome:138.0-20251101\nTagged selenium/standalone-chrome:138.0-20251101\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.38.0/chrome_139.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.38.0 20251101 selenium false chrome true\nTagging images for browser chrome, version 4.38.0, build date 20251101, namespace selenium\nSelenium Grid version -> 4.38.0-20251101\nChrome version -> 139.0.7258.154\nShort Chrome version -> 139.0\nChromeDriver version -> 139.0.7258.154\nShort ChromeDriver version -> 139.0\nTagged selenium/node-chrome:139.0.7258.154-chromedriver-139.0.7258.154-grid-4.38.0-20251101\nTagged selenium/standalone-chrome:139.0.7258.154-chromedriver-139.0.7258.154-grid-4.38.0-20251101\nTagged selenium/node-chrome:139.0.7258.154-chromedriver-139.0.7258.154-20251101\nTagged selenium/standalone-chrome:139.0.7258.154-chromedriver-139.0.7258.154-20251101\nTagged selenium/node-chrome:139.0.7258.154-20251101\nTagged selenium/standalone-chrome:139.0.7258.154-20251101\nTagged selenium/node-chrome:139.0-chromedriver-139.0-grid-4.38.0-20251101\nTagged selenium/standalone-chrome:139.0-chromedriver-139.0-grid-4.38.0-20251101\nTagged selenium/node-chrome:139.0-chromedriver-139.0-20251101\nTagged selenium/standalone-chrome:139.0-chromedriver-139.0-20251101\nTagged selenium/node-chrome:139.0-20251101\nTagged selenium/standalone-chrome:139.0-20251101\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.38.0/chrome_140.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.38.0 20251101 selenium false chrome true\nTagging images for browser chrome, version 4.38.0, build date 20251101, namespace selenium\nSelenium Grid version -> 4.38.0-20251101\nChrome version -> 140.0.7339.207\nShort Chrome version -> 140.0\nChromeDriver version -> 140.0.7339.207\nShort ChromeDriver version -> 140.0\nTagged selenium/node-chrome:140.0.7339.207-chromedriver-140.0.7339.207-grid-4.38.0-20251101\nTagged selenium/standalone-chrome:140.0.7339.207-chromedriver-140.0.7339.207-grid-4.38.0-20251101\nTagged selenium/node-chrome:140.0.7339.207-chromedriver-140.0.7339.207-20251101\nTagged selenium/standalone-chrome:140.0.7339.207-chromedriver-140.0.7339.207-20251101\nTagged selenium/node-chrome:140.0.7339.207-20251101\nTagged selenium/standalone-chrome:140.0.7339.207-20251101\nTagged selenium/node-chrome:140.0-chromedriver-140.0-grid-4.38.0-20251101\nTagged selenium/standalone-chrome:140.0-chromedriver-140.0-grid-4.38.0-20251101\nTagged selenium/node-chrome:140.0-chromedriver-140.0-20251101\nTagged selenium/standalone-chrome:140.0-chromedriver-140.0-20251101\nTagged selenium/node-chrome:140.0-20251101\nTagged selenium/standalone-chrome:140.0-20251101\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.38.0/chrome_141.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.38.0 20251101 selenium false chrome true\nTagging images for browser chrome, version 4.38.0, build date 20251101, namespace selenium\nSelenium Grid version -> 4.38.0-20251101\nChrome version -> 141.0.7390.122\nShort Chrome version -> 141.0\nChromeDriver version -> 141.0.7390.122\nShort ChromeDriver version -> 141.0\nTagged selenium/node-chrome:141.0.7390.122-chromedriver-141.0.7390.122-grid-4.38.0-20251101\nTagged selenium/standalone-chrome:141.0.7390.122-chromedriver-141.0.7390.122-grid-4.38.0-20251101\nTagged selenium/node-chrome:141.0.7390.122-chromedriver-141.0.7390.122-20251101\nTagged selenium/standalone-chrome:141.0.7390.122-chromedriver-141.0.7390.122-20251101\nTagged selenium/node-chrome:141.0.7390.122-20251101\nTagged selenium/standalone-chrome:141.0.7390.122-20251101\nTagged selenium/node-chrome:141.0-chromedriver-141.0-grid-4.38.0-20251101\nTagged selenium/standalone-chrome:141.0-chromedriver-141.0-grid-4.38.0-20251101\nTagged selenium/node-chrome:141.0-chromedriver-141.0-20251101\nTagged selenium/standalone-chrome:141.0-chromedriver-141.0-20251101\nTagged selenium/node-chrome:141.0-20251101\nTagged selenium/standalone-chrome:141.0-20251101\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.38.0/chrome_142.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.38.0 20251101 selenium false chrome true\nTagging images for browser chrome, version 4.38.0, build date 20251101, namespace selenium\nSelenium Grid version -> 4.38.0-20251101\nChrome version -> 142.0.7444.59\nShort Chrome version -> 142.0\nChromeDriver version -> 142.0.7444.59\nShort ChromeDriver version -> 142.0\nTagged selenium/node-chrome:142.0.7444.59-chromedriver-142.0.7444.59-grid-4.38.0-20251101\nTagged selenium/standalone-chrome:142.0.7444.59-chromedriver-142.0.7444.59-grid-4.38.0-20251101\nTagged selenium/node-chrome:142.0.7444.59-chromedriver-142.0.7444.59-20251101\nTagged selenium/standalone-chrome:142.0.7444.59-chromedriver-142.0.7444.59-20251101\nTagged selenium/node-chrome:142.0.7444.59-20251101\nTagged selenium/standalone-chrome:142.0.7444.59-20251101\nTagged selenium/node-chrome:142.0-chromedriver-142.0-grid-4.38.0-20251101\nTagged selenium/standalone-chrome:142.0-chromedriver-142.0-grid-4.38.0-20251101\nTagged selenium/node-chrome:142.0-chromedriver-142.0-20251101\nTagged selenium/standalone-chrome:142.0-chromedriver-142.0-20251101\nTagged selenium/node-chrome:142.0-20251101\nTagged selenium/standalone-chrome:142.0-20251101\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.38.0/chrome_95.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.38.0 20251101 selenium false chrome true\nTagging images for browser chrome, version 4.38.0, build date 20251101, namespace selenium\nSelenium Grid version -> 4.38.0-20251101\nChrome version -> 95.0.4638.69\nShort Chrome version -> 95.0\nChromeDriver version -> 95.0.4638.69\nShort ChromeDriver version -> 95.0\nTagged selenium/node-chrome:95.0.4638.69-chromedriver-95.0.4638.69-grid-4.38.0-20251101\nTagged selenium/standalone-chrome:95.0.4638.69-chromedriver-95.0.4638.69-grid-4.38.0-20251101\nTagged selenium/node-chrome:95.0.4638.69-chromedriver-95.0.4638.69-20251101\nTagged selenium/standalone-chrome:95.0.4638.69-chromedriver-95.0.4638.69-20251101\nTagged selenium/node-chrome:95.0.4638.69-20251101\nTagged selenium/standalone-chrome:95.0.4638.69-20251101\nTagged selenium/node-chrome:95.0-chromedriver-95.0-grid-4.38.0-20251101\nTagged selenium/standalone-chrome:95.0-chromedriver-95.0-grid-4.38.0-20251101\nTagged selenium/node-chrome:95.0-chromedriver-95.0-20251101\nTagged selenium/standalone-chrome:95.0-chromedriver-95.0-20251101\nTagged selenium/node-chrome:95.0-20251101\nTagged selenium/standalone-chrome:95.0-20251101\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.38.0/chrome_96.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.38.0 20251101 selenium false chrome true\nTagging images for browser chrome, version 4.38.0, build date 20251101, namespace selenium\nSelenium Grid version -> 4.38.0-20251101\nChrome version -> 96.0.4664.110\nShort Chrome version -> 96.0\nChromeDriver version -> 96.0.4664.45\nShort ChromeDriver version -> 96.0\nTagged selenium/node-chrome:96.0.4664.110-chromedriver-96.0.4664.45-grid-4.38.0-20251101\nTagged selenium/standalone-chrome:96.0.4664.110-chromedriver-96.0.4664.45-grid-4.38.0-20251101\nTagged selenium/node-chrome:96.0.4664.110-chromedriver-96.0.4664.45-20251101\nTagged selenium/standalone-chrome:96.0.4664.110-chromedriver-96.0.4664.45-20251101\nTagged selenium/node-chrome:96.0.4664.110-20251101\nTagged selenium/standalone-chrome:96.0.4664.110-20251101\nTagged selenium/node-chrome:96.0-chromedriver-96.0-grid-4.38.0-20251101\nTagged selenium/standalone-chrome:96.0-chromedriver-96.0-grid-4.38.0-20251101\nTagged selenium/node-chrome:96.0-chromedriver-96.0-20251101\nTagged selenium/standalone-chrome:96.0-chromedriver-96.0-20251101\nTagged selenium/node-chrome:96.0-20251101\nTagged selenium/standalone-chrome:96.0-20251101\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.38.0/chrome_97.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.38.0 20251101 selenium false chrome true\nTagging images for browser chrome, version 4.38.0, build date 20251101, namespace selenium\nSelenium Grid version -> 4.38.0-20251101\nChrome version -> 97.0.4692.99\nShort Chrome version -> 97.0\nChromeDriver version -> 97.0.4692.71\nShort ChromeDriver version -> 97.0\nTagged selenium/node-chrome:97.0.4692.99-chromedriver-97.0.4692.71-grid-4.38.0-20251101\nTagged selenium/standalone-chrome:97.0.4692.99-chromedriver-97.0.4692.71-grid-4.38.0-20251101\nTagged selenium/node-chrome:97.0.4692.99-chromedriver-97.0.4692.71-20251101\nTagged selenium/standalone-chrome:97.0.4692.99-chromedriver-97.0.4692.71-20251101\nTagged selenium/node-chrome:97.0.4692.99-20251101\nTagged selenium/standalone-chrome:97.0.4692.99-20251101\nTagged selenium/node-chrome:97.0-chromedriver-97.0-grid-4.38.0-20251101\nTagged selenium/standalone-chrome:97.0-chromedriver-97.0-grid-4.38.0-20251101\nTagged selenium/node-chrome:97.0-chromedriver-97.0-20251101\nTagged selenium/standalone-chrome:97.0-chromedriver-97.0-20251101\nTagged selenium/node-chrome:97.0-20251101\nTagged selenium/standalone-chrome:97.0-20251101\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.38.0/chrome_98.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.38.0 20251101 selenium false chrome true\nTagging images for browser chrome, version 4.38.0, build date 20251101, namespace selenium\nSelenium Grid version -> 4.38.0-20251101\nChrome version -> 98.0.4758.102\nShort Chrome version -> 98.0\nChromeDriver version -> 98.0.4758.102\nShort ChromeDriver version -> 98.0\nTagged selenium/node-chrome:98.0.4758.102-chromedriver-98.0.4758.102-grid-4.38.0-20251101\nTagged selenium/standalone-chrome:98.0.4758.102-chromedriver-98.0.4758.102-grid-4.38.0-20251101\nTagged selenium/node-chrome:98.0.4758.102-chromedriver-98.0.4758.102-20251101\nTagged selenium/standalone-chrome:98.0.4758.102-chromedriver-98.0.4758.102-20251101\nTagged selenium/node-chrome:98.0.4758.102-20251101\nTagged selenium/standalone-chrome:98.0.4758.102-20251101\nTagged selenium/node-chrome:98.0-chromedriver-98.0-grid-4.38.0-20251101\nTagged selenium/standalone-chrome:98.0-chromedriver-98.0-grid-4.38.0-20251101\nTagged selenium/node-chrome:98.0-chromedriver-98.0-20251101\nTagged selenium/standalone-chrome:98.0-chromedriver-98.0-20251101\nTagged selenium/node-chrome:98.0-20251101\nTagged selenium/standalone-chrome:98.0-20251101\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.38.0/chrome_99.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.38.0 20251101 selenium false chrome true\nTagging images for browser chrome, version 4.38.0, build date 20251101, namespace selenium\nSelenium Grid version -> 4.38.0-20251101\nChrome version -> 99.0.4844.84\nShort Chrome version -> 99.0\nChromeDriver version -> 99.0.4844.51\nShort ChromeDriver version -> 99.0\nTagged selenium/node-chrome:99.0.4844.84-chromedriver-99.0.4844.51-grid-4.38.0-20251101\nTagged selenium/standalone-chrome:99.0.4844.84-chromedriver-99.0.4844.51-grid-4.38.0-20251101\nTagged selenium/node-chrome:99.0.4844.84-chromedriver-99.0.4844.51-20251101\nTagged selenium/standalone-chrome:99.0.4844.84-chromedriver-99.0.4844.51-20251101\nTagged selenium/node-chrome:99.0.4844.84-20251101\nTagged selenium/standalone-chrome:99.0.4844.84-20251101\nTagged selenium/node-chrome:99.0-chromedriver-99.0-grid-4.38.0-20251101\nTagged selenium/standalone-chrome:99.0-chromedriver-99.0-grid-4.38.0-20251101\nTagged selenium/node-chrome:99.0-chromedriver-99.0-20251101\nTagged selenium/standalone-chrome:99.0-chromedriver-99.0-20251101\nTagged selenium/node-chrome:99.0-20251101\nTagged selenium/standalone-chrome:99.0-20251101\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.38.0/edge_114.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.38.0 20251101 selenium false edge true\nTagging images for browser edge, version 4.38.0, build date 20251101, namespace selenium\nSelenium Grid version -> 4.38.0-20251101\nEdge version -> 114.0.1823.82\nShort Edge version -> 114.0\nEdgeDriver version -> 114.0.1823.82\nShort EdgeDriver version -> 114.0\nTagged selenium/node-edge:114.0.1823.82-edgedriver-114.0.1823.82-grid-4.38.0-20251101\nTagged selenium/standalone-edge:114.0.1823.82-edgedriver-114.0.1823.82-grid-4.38.0-20251101\nTagged selenium/node-edge:114.0.1823.82-edgedriver-114.0.1823.82-20251101\nTagged selenium/standalone-edge:114.0.1823.82-edgedriver-114.0.1823.82-20251101\nTagged selenium/node-edge:114.0.1823.82-20251101\nTagged selenium/standalone-edge:114.0.1823.82-20251101\nTagged selenium/node-edge:114.0-edgedriver-114.0-grid-4.38.0-20251101\nTagged selenium/standalone-edge:114.0-edgedriver-114.0-grid-4.38.0-20251101\nTagged selenium/node-edge:114.0-edgedriver-114.0-20251101\nTagged selenium/standalone-edge:114.0-edgedriver-114.0-20251101\nTagged selenium/node-edge:114.0-20251101\nTagged selenium/standalone-edge:114.0-20251101\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.38.0/edge_115.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.38.0 20251101 selenium false edge true\nTagging images for browser edge, version 4.38.0, build date 20251101, namespace selenium\nSelenium Grid version -> 4.38.0-20251101\nEdge version -> 115.0.1901.203\nShort Edge version -> 115.0\nEdgeDriver version -> 115.0.1901.203\nShort EdgeDriver version -> 115.0\nTagged selenium/node-edge:115.0.1901.203-edgedriver-115.0.1901.203-grid-4.38.0-20251101\nTagged selenium/standalone-edge:115.0.1901.203-edgedriver-115.0.1901.203-grid-4.38.0-20251101\nTagged selenium/node-edge:115.0.1901.203-edgedriver-115.0.1901.203-20251101\nTagged selenium/standalone-edge:115.0.1901.203-edgedriver-115.0.1901.203-20251101\nTagged selenium/node-edge:115.0.1901.203-20251101\nTagged selenium/standalone-edge:115.0.1901.203-20251101\nTagged selenium/node-edge:115.0-edgedriver-115.0-grid-4.38.0-20251101\nTagged selenium/standalone-edge:115.0-edgedriver-115.0-grid-4.38.0-20251101\nTagged selenium/node-edge:115.0-edgedriver-115.0-20251101\nTagged selenium/standalone-edge:115.0-edgedriver-115.0-20251101\nTagged selenium/node-edge:115.0-20251101\nTagged selenium/standalone-edge:115.0-20251101\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.38.0/edge_116.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.38.0 20251101 selenium false edge true\nTagging images for browser edge, version 4.38.0, build date 20251101, namespace selenium\nSelenium Grid version -> 4.38.0-20251101\nEdge version -> 116.0.1938.81\nShort Edge version -> 116.0\nEdgeDriver version -> 116.0.1938.81\nShort EdgeDriver version -> 116.0\nTagged selenium/node-edge:116.0.1938.81-edgedriver-116.0.1938.81-grid-4.38.0-20251101\nTagged selenium/standalone-edge:116.0.1938.81-edgedriver-116.0.1938.81-grid-4.38.0-20251101\nTagged selenium/node-edge:116.0.1938.81-edgedriver-116.0.1938.81-20251101\nTagged selenium/standalone-edge:116.0.1938.81-edgedriver-116.0.1938.81-20251101\nTagged selenium/node-edge:116.0.1938.81-20251101\nTagged selenium/standalone-edge:116.0.1938.81-20251101\nTagged selenium/node-edge:116.0-edgedriver-116.0-grid-4.38.0-20251101\nTagged selenium/standalone-edge:116.0-edgedriver-116.0-grid-4.38.0-20251101\nTagged selenium/node-edge:116.0-edgedriver-116.0-20251101\nTagged selenium/standalone-edge:116.0-edgedriver-116.0-20251101\nTagged selenium/node-edge:116.0-20251101\nTagged selenium/standalone-edge:116.0-20251101\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.38.0/edge_117.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.38.0 20251101 selenium false edge true\nTagging images for browser edge, version 4.38.0, build date 20251101, namespace selenium\nSelenium Grid version -> 4.38.0-20251101\nEdge version -> 117.0.2045.55\nShort Edge version -> 117.0\nEdgeDriver version -> 117.0.2045.55\nShort EdgeDriver version -> 117.0\nTagged selenium/node-edge:117.0.2045.55-edgedriver-117.0.2045.55-grid-4.38.0-20251101\nTagged selenium/standalone-edge:117.0.2045.55-edgedriver-117.0.2045.55-grid-4.38.0-20251101\nTagged selenium/node-edge:117.0.2045.55-edgedriver-117.0.2045.55-20251101\nTagged selenium/standalone-edge:117.0.2045.55-edgedriver-117.0.2045.55-20251101\nTagged selenium/node-edge:117.0.2045.55-20251101\nTagged selenium/standalone-edge:117.0.2045.55-20251101\nTagged selenium/node-edge:117.0-edgedriver-117.0-grid-4.38.0-20251101\nTagged selenium/standalone-edge:117.0-edgedriver-117.0-grid-4.38.0-20251101\nTagged selenium/node-edge:117.0-edgedriver-117.0-20251101\nTagged selenium/standalone-edge:117.0-edgedriver-117.0-20251101\nTagged selenium/node-edge:117.0-20251101\nTagged selenium/standalone-edge:117.0-20251101\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.38.0/edge_118.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.38.0 20251101 selenium false edge true\nTagging images for browser edge, version 4.38.0, build date 20251101, namespace selenium\nSelenium Grid version -> 4.38.0-20251101\nEdge version -> 118.0.2088.76\nShort Edge version -> 118.0\nEdgeDriver version -> 118.0.2088.76\nShort EdgeDriver version -> 118.0\nTagged selenium/node-edge:118.0.2088.76-edgedriver-118.0.2088.76-grid-4.38.0-20251101\nTagged selenium/standalone-edge:118.0.2088.76-edgedriver-118.0.2088.76-grid-4.38.0-20251101\nTagged selenium/node-edge:118.0.2088.76-edgedriver-118.0.2088.76-20251101\nTagged selenium/standalone-edge:118.0.2088.76-edgedriver-118.0.2088.76-20251101\nTagged selenium/node-edge:118.0.2088.76-20251101\nTagged selenium/standalone-edge:118.0.2088.76-20251101\nTagged selenium/node-edge:118.0-edgedriver-118.0-grid-4.38.0-20251101\nTagged selenium/standalone-edge:118.0-edgedriver-118.0-grid-4.38.0-20251101\nTagged selenium/node-edge:118.0-edgedriver-118.0-20251101\nTagged selenium/standalone-edge:118.0-edgedriver-118.0-20251101\nTagged selenium/node-edge:118.0-20251101\nTagged selenium/standalone-edge:118.0-20251101\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.38.0/edge_119.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.38.0 20251101 selenium false edge true\nTagging images for browser edge, version 4.38.0, build date 20251101, namespace selenium\nSelenium Grid version -> 4.38.0-20251101\nEdge version -> 119.0.2151.97\nShort Edge version -> 119.0\nEdgeDriver version -> 119.0.2151.97\nShort EdgeDriver version -> 119.0\nTagged selenium/node-edge:119.0.2151.97-edgedriver-119.0.2151.97-grid-4.38.0-20251101\nTagged selenium/standalone-edge:119.0.2151.97-edgedriver-119.0.2151.97-grid-4.38.0-20251101\nTagged selenium/node-edge:119.0.2151.97-edgedriver-119.0.2151.97-20251101\nTagged selenium/standalone-edge:119.0.2151.97-edgedriver-119.0.2151.97-20251101\nTagged selenium/node-edge:119.0.2151.97-20251101\nTagged selenium/standalone-edge:119.0.2151.97-20251101\nTagged selenium/node-edge:119.0-edgedriver-119.0-grid-4.38.0-20251101\nTagged selenium/standalone-edge:119.0-edgedriver-119.0-grid-4.38.0-20251101\nTagged selenium/node-edge:119.0-edgedriver-119.0-20251101\nTagged selenium/standalone-edge:119.0-edgedriver-119.0-20251101\nTagged selenium/node-edge:119.0-20251101\nTagged selenium/standalone-edge:119.0-20251101\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.38.0/edge_120.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.38.0 20251101 selenium false edge true\nTagging images for browser edge, version 4.38.0, build date 20251101, namespace selenium\nSelenium Grid version -> 4.38.0-20251101\nEdge version -> 120.0.2210.144\nShort Edge version -> 120.0\nEdgeDriver version -> 120.0.2210.144\nShort EdgeDriver version -> 120.0\nTagged selenium/node-edge:120.0.2210.144-edgedriver-120.0.2210.144-grid-4.38.0-20251101\nTagged selenium/standalone-edge:120.0.2210.144-edgedriver-120.0.2210.144-grid-4.38.0-20251101\nTagged selenium/node-edge:120.0.2210.144-edgedriver-120.0.2210.144-20251101\nTagged selenium/standalone-edge:120.0.2210.144-edgedriver-120.0.2210.144-20251101\nTagged selenium/node-edge:120.0.2210.144-20251101\nTagged selenium/standalone-edge:120.0.2210.144-20251101\nTagged selenium/node-edge:120.0-edgedriver-120.0-grid-4.38.0-20251101\nTagged selenium/standalone-edge:120.0-edgedriver-120.0-grid-4.38.0-20251101\nTagged selenium/node-edge:120.0-edgedriver-120.0-20251101\nTagged selenium/standalone-edge:120.0-edgedriver-120.0-20251101\nTagged selenium/node-edge:120.0-20251101\nTagged selenium/standalone-edge:120.0-20251101\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.38.0/edge_121.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.38.0 20251101 selenium false edge true\nTagging images for browser edge, version 4.38.0, build date 20251101, namespace selenium\nSelenium Grid version -> 4.38.0-20251101\nEdge version -> 121.0.2277.128\nShort Edge version -> 121.0\nEdgeDriver version -> 121.0.2277.128\nShort EdgeDriver version -> 121.0\nTagged selenium/node-edge:121.0.2277.128-edgedriver-121.0.2277.128-grid-4.38.0-20251101\nTagged selenium/standalone-edge:121.0.2277.128-edgedriver-121.0.2277.128-grid-4.38.0-20251101\nTagged selenium/node-edge:121.0.2277.128-edgedriver-121.0.2277.128-20251101\nTagged selenium/standalone-edge:121.0.2277.128-edgedriver-121.0.2277.128-20251101\nTagged selenium/node-edge:121.0.2277.128-20251101\nTagged selenium/standalone-edge:121.0.2277.128-20251101\nTagged selenium/node-edge:121.0-edgedriver-121.0-grid-4.38.0-20251101\nTagged selenium/standalone-edge:121.0-edgedriver-121.0-grid-4.38.0-20251101\nTagged selenium/node-edge:121.0-edgedriver-121.0-20251101\nTagged selenium/standalone-edge:121.0-edgedriver-121.0-20251101\nTagged selenium/node-edge:121.0-20251101\nTagged selenium/standalone-edge:121.0-20251101\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.38.0/edge_122.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.38.0 20251101 selenium false edge true\nTagging images for browser edge, version 4.38.0, build date 20251101, namespace selenium\nSelenium Grid version -> 4.38.0-20251101\nEdge version -> 122.0.2365.92\nShort Edge version -> 122.0\nEdgeDriver version -> 122.0.2365.92\nShort EdgeDriver version -> 122.0\nTagged selenium/node-edge:122.0.2365.92-edgedriver-122.0.2365.92-grid-4.38.0-20251101\nTagged selenium/standalone-edge:122.0.2365.92-edgedriver-122.0.2365.92-grid-4.38.0-20251101\nTagged selenium/node-edge:122.0.2365.92-edgedriver-122.0.2365.92-20251101\nTagged selenium/standalone-edge:122.0.2365.92-edgedriver-122.0.2365.92-20251101\nTagged selenium/node-edge:122.0.2365.92-20251101\nTagged selenium/standalone-edge:122.0.2365.92-20251101\nTagged selenium/node-edge:122.0-edgedriver-122.0-grid-4.38.0-20251101\nTagged selenium/standalone-edge:122.0-edgedriver-122.0-grid-4.38.0-20251101\nTagged selenium/node-edge:122.0-edgedriver-122.0-20251101\nTagged selenium/standalone-edge:122.0-edgedriver-122.0-20251101\nTagged selenium/node-edge:122.0-20251101\nTagged selenium/standalone-edge:122.0-20251101\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.38.0/edge_123.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.38.0 20251101 selenium false edge true\nTagging images for browser edge, version 4.38.0, build date 20251101, namespace selenium\nSelenium Grid version -> 4.38.0-20251101\nEdge version -> 123.0.2420.97\nShort Edge version -> 123.0\nEdgeDriver version -> 123.0.2420.97\nShort EdgeDriver version -> 123.0\nTagged selenium/node-edge:123.0.2420.97-edgedriver-123.0.2420.97-grid-4.38.0-20251101\nTagged selenium/standalone-edge:123.0.2420.97-edgedriver-123.0.2420.97-grid-4.38.0-20251101\nTagged selenium/node-edge:123.0.2420.97-edgedriver-123.0.2420.97-20251101\nTagged selenium/standalone-edge:123.0.2420.97-edgedriver-123.0.2420.97-20251101\nTagged selenium/node-edge:123.0.2420.97-20251101\nTagged selenium/standalone-edge:123.0.2420.97-20251101\nTagged selenium/node-edge:123.0-edgedriver-123.0-grid-4.38.0-20251101\nTagged selenium/standalone-edge:123.0-edgedriver-123.0-grid-4.38.0-20251101\nTagged selenium/node-edge:123.0-edgedriver-123.0-20251101\nTagged selenium/standalone-edge:123.0-edgedriver-123.0-20251101\nTagged selenium/node-edge:123.0-20251101\nTagged selenium/standalone-edge:123.0-20251101\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.38.0/edge_124.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.38.0 20251101 selenium false edge true\nTagging images for browser edge, version 4.38.0, build date 20251101, namespace selenium\nSelenium Grid version -> 4.38.0-20251101\nEdge version -> 124.0.2478.109\nShort Edge version -> 124.0\nEdgeDriver version -> 124.0.2478.109\nShort EdgeDriver version -> 124.0\nTagged selenium/node-edge:124.0.2478.109-edgedriver-124.0.2478.109-grid-4.38.0-20251101\nTagged selenium/standalone-edge:124.0.2478.109-edgedriver-124.0.2478.109-grid-4.38.0-20251101\nTagged selenium/node-edge:124.0.2478.109-edgedriver-124.0.2478.109-20251101\nTagged selenium/standalone-edge:124.0.2478.109-edgedriver-124.0.2478.109-20251101\nTagged selenium/node-edge:124.0.2478.109-20251101\nTagged selenium/standalone-edge:124.0.2478.109-20251101\nTagged selenium/node-edge:124.0-edgedriver-124.0-grid-4.38.0-20251101\nTagged selenium/standalone-edge:124.0-edgedriver-124.0-grid-4.38.0-20251101\nTagged selenium/node-edge:124.0-edgedriver-124.0-20251101\nTagged selenium/standalone-edge:124.0-edgedriver-124.0-20251101\nTagged selenium/node-edge:124.0-20251101\nTagged selenium/standalone-edge:124.0-20251101\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.38.0/edge_125.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.38.0 20251101 selenium false edge true\nTagging images for browser edge, version 4.38.0, build date 20251101, namespace selenium\nSelenium Grid version -> 4.38.0-20251101\nEdge version -> 125.0.2535.92\nShort Edge version -> 125.0\nEdgeDriver version -> 125.0.2535.92\nShort EdgeDriver version -> 125.0\nTagged selenium/node-edge:125.0.2535.92-edgedriver-125.0.2535.92-grid-4.38.0-20251101\nTagged selenium/standalone-edge:125.0.2535.92-edgedriver-125.0.2535.92-grid-4.38.0-20251101\nTagged selenium/node-edge:125.0.2535.92-edgedriver-125.0.2535.92-20251101\nTagged selenium/standalone-edge:125.0.2535.92-edgedriver-125.0.2535.92-20251101\nTagged selenium/node-edge:125.0.2535.92-20251101\nTagged selenium/standalone-edge:125.0.2535.92-20251101\nTagged selenium/node-edge:125.0-edgedriver-125.0-grid-4.38.0-20251101\nTagged selenium/standalone-edge:125.0-edgedriver-125.0-grid-4.38.0-20251101\nTagged selenium/node-edge:125.0-edgedriver-125.0-20251101\nTagged selenium/standalone-edge:125.0-edgedriver-125.0-20251101\nTagged selenium/node-edge:125.0-20251101\nTagged selenium/standalone-edge:125.0-20251101\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.38.0/edge_126.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.38.0 20251101 selenium false edge true\nTagging images for browser edge, version 4.38.0, build date 20251101, namespace selenium\nSelenium Grid version -> 4.38.0-20251101\nEdge version -> 126.0.2592.113\nShort Edge version -> 126.0\nEdgeDriver version -> 126.0.2592.123\nShort EdgeDriver version -> 126.0\nTagged selenium/node-edge:126.0.2592.113-edgedriver-126.0.2592.123-grid-4.38.0-20251101\nTagged selenium/standalone-edge:126.0.2592.113-edgedriver-126.0.2592.123-grid-4.38.0-20251101\nTagged selenium/node-edge:126.0.2592.113-edgedriver-126.0.2592.123-20251101\nTagged selenium/standalone-edge:126.0.2592.113-edgedriver-126.0.2592.123-20251101\nTagged selenium/node-edge:126.0.2592.113-20251101\nTagged selenium/standalone-edge:126.0.2592.113-20251101\nTagged selenium/node-edge:126.0-edgedriver-126.0-grid-4.38.0-20251101\nTagged selenium/standalone-edge:126.0-edgedriver-126.0-grid-4.38.0-20251101\nTagged selenium/node-edge:126.0-edgedriver-126.0-20251101\nTagged selenium/standalone-edge:126.0-edgedriver-126.0-20251101\nTagged selenium/node-edge:126.0-20251101\nTagged selenium/standalone-edge:126.0-20251101\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.38.0/edge_127.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.38.0 20251101 selenium false edge true\nTagging images for browser edge, version 4.38.0, build date 20251101, namespace selenium\nSelenium Grid version -> 4.38.0-20251101\nEdge version -> 127.0.2651.105\nShort Edge version -> 127.0\nEdgeDriver version -> 127.0.2651.107\nShort EdgeDriver version -> 127.0\nTagged selenium/node-edge:127.0.2651.105-edgedriver-127.0.2651.107-grid-4.38.0-20251101\nTagged selenium/standalone-edge:127.0.2651.105-edgedriver-127.0.2651.107-grid-4.38.0-20251101\nTagged selenium/node-edge:127.0.2651.105-edgedriver-127.0.2651.107-20251101\nTagged selenium/standalone-edge:127.0.2651.105-edgedriver-127.0.2651.107-20251101\nTagged selenium/node-edge:127.0.2651.105-20251101\nTagged selenium/standalone-edge:127.0.2651.105-20251101\nTagged selenium/node-edge:127.0-edgedriver-127.0-grid-4.38.0-20251101\nTagged selenium/standalone-edge:127.0-edgedriver-127.0-grid-4.38.0-20251101\nTagged selenium/node-edge:127.0-edgedriver-127.0-20251101\nTagged selenium/standalone-edge:127.0-edgedriver-127.0-20251101\nTagged selenium/node-edge:127.0-20251101\nTagged selenium/standalone-edge:127.0-20251101\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.38.0/edge_128.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.38.0 20251101 selenium false edge true\nTagging images for browser edge, version 4.38.0, build date 20251101, namespace selenium\nSelenium Grid version -> 4.38.0-20251101\nEdge version -> 128.0.2739.79\nShort Edge version -> 128.0\nEdgeDriver version -> 128.0.2739.81\nShort EdgeDriver version -> 128.0\nTagged selenium/node-edge:128.0.2739.79-edgedriver-128.0.2739.81-grid-4.38.0-20251101\nTagged selenium/standalone-edge:128.0.2739.79-edgedriver-128.0.2739.81-grid-4.38.0-20251101\nTagged selenium/node-edge:128.0.2739.79-edgedriver-128.0.2739.81-20251101\nTagged selenium/standalone-edge:128.0.2739.79-edgedriver-128.0.2739.81-20251101\nTagged selenium/node-edge:128.0.2739.79-20251101\nTagged selenium/standalone-edge:128.0.2739.79-20251101\nTagged selenium/node-edge:128.0-edgedriver-128.0-grid-4.38.0-20251101\nTagged selenium/standalone-edge:128.0-edgedriver-128.0-grid-4.38.0-20251101\nTagged selenium/node-edge:128.0-edgedriver-128.0-20251101\nTagged selenium/standalone-edge:128.0-edgedriver-128.0-20251101\nTagged selenium/node-edge:128.0-20251101\nTagged selenium/standalone-edge:128.0-20251101\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.38.0/edge_129.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.38.0 20251101 selenium false edge true\nTagging images for browser edge, version 4.38.0, build date 20251101, namespace selenium\nSelenium Grid version -> 4.38.0-20251101\nEdge version -> 129.0.2792.89\nShort Edge version -> 129.0\nEdgeDriver version -> 129.0.2792.98\nShort EdgeDriver version -> 129.0\nTagged selenium/node-edge:129.0.2792.89-edgedriver-129.0.2792.98-grid-4.38.0-20251101\nTagged selenium/standalone-edge:129.0.2792.89-edgedriver-129.0.2792.98-grid-4.38.0-20251101\nTagged selenium/node-edge:129.0.2792.89-edgedriver-129.0.2792.98-20251101\nTagged selenium/standalone-edge:129.0.2792.89-edgedriver-129.0.2792.98-20251101\nTagged selenium/node-edge:129.0.2792.89-20251101\nTagged selenium/standalone-edge:129.0.2792.89-20251101\nTagged selenium/node-edge:129.0-edgedriver-129.0-grid-4.38.0-20251101\nTagged selenium/standalone-edge:129.0-edgedriver-129.0-grid-4.38.0-20251101\nTagged selenium/node-edge:129.0-edgedriver-129.0-20251101\nTagged selenium/standalone-edge:129.0-edgedriver-129.0-20251101\nTagged selenium/node-edge:129.0-20251101\nTagged selenium/standalone-edge:129.0-20251101\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.38.0/edge_130.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.38.0 20251101 selenium false edge true\nTagging images for browser edge, version 4.38.0, build date 20251101, namespace selenium\nSelenium Grid version -> 4.38.0-20251101\nEdge version -> 130.0.2849.80\nShort Edge version -> 130.0\nEdgeDriver version -> 130.0.2849.78\nShort EdgeDriver version -> 130.0\nTagged selenium/node-edge:130.0.2849.80-edgedriver-130.0.2849.78-grid-4.38.0-20251101\nTagged selenium/standalone-edge:130.0.2849.80-edgedriver-130.0.2849.78-grid-4.38.0-20251101\nTagged selenium/node-edge:130.0.2849.80-edgedriver-130.0.2849.78-20251101\nTagged selenium/standalone-edge:130.0.2849.80-edgedriver-130.0.2849.78-20251101\nTagged selenium/node-edge:130.0.2849.80-20251101\nTagged selenium/standalone-edge:130.0.2849.80-20251101\nTagged selenium/node-edge:130.0-edgedriver-130.0-grid-4.38.0-20251101\nTagged selenium/standalone-edge:130.0-edgedriver-130.0-grid-4.38.0-20251101\nTagged selenium/node-edge:130.0-edgedriver-130.0-20251101\nTagged selenium/standalone-edge:130.0-edgedriver-130.0-20251101\nTagged selenium/node-edge:130.0-20251101\nTagged selenium/standalone-edge:130.0-20251101\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.38.0/edge_131.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.38.0 20251101 selenium false edge true\nTagging images for browser edge, version 4.38.0, build date 20251101, namespace selenium\nSelenium Grid version -> 4.38.0-20251101\nEdge version -> 131.0.2903.147\nShort Edge version -> 131.0\nEdgeDriver version -> 131.0.2903.147\nShort EdgeDriver version -> 131.0\nTagged selenium/node-edge:131.0.2903.147-edgedriver-131.0.2903.147-grid-4.38.0-20251101\nTagged selenium/standalone-edge:131.0.2903.147-edgedriver-131.0.2903.147-grid-4.38.0-20251101\nTagged selenium/node-edge:131.0.2903.147-edgedriver-131.0.2903.147-20251101\nTagged selenium/standalone-edge:131.0.2903.147-edgedriver-131.0.2903.147-20251101\nTagged selenium/node-edge:131.0.2903.147-20251101\nTagged selenium/standalone-edge:131.0.2903.147-20251101\nTagged selenium/node-edge:131.0-edgedriver-131.0-grid-4.38.0-20251101\nTagged selenium/standalone-edge:131.0-edgedriver-131.0-grid-4.38.0-20251101\nTagged selenium/node-edge:131.0-edgedriver-131.0-20251101\nTagged selenium/standalone-edge:131.0-edgedriver-131.0-20251101\nTagged selenium/node-edge:131.0-20251101\nTagged selenium/standalone-edge:131.0-20251101\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.38.0/edge_132.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.38.0 20251101 selenium false edge true\nTagging images for browser edge, version 4.38.0, build date 20251101, namespace selenium\nSelenium Grid version -> 4.38.0-20251101\nEdge version -> 132.0.2957.140\nShort Edge version -> 132.0\nEdgeDriver version -> 132.0.2957.140\nShort EdgeDriver version -> 132.0\nTagged selenium/node-edge:132.0.2957.140-edgedriver-132.0.2957.140-grid-4.38.0-20251101\nTagged selenium/standalone-edge:132.0.2957.140-edgedriver-132.0.2957.140-grid-4.38.0-20251101\nTagged selenium/node-edge:132.0.2957.140-edgedriver-132.0.2957.140-20251101\nTagged selenium/standalone-edge:132.0.2957.140-edgedriver-132.0.2957.140-20251101\nTagged selenium/node-edge:132.0.2957.140-20251101\nTagged selenium/standalone-edge:132.0.2957.140-20251101\nTagged selenium/node-edge:132.0-edgedriver-132.0-grid-4.38.0-20251101\nTagged selenium/standalone-edge:132.0-edgedriver-132.0-grid-4.38.0-20251101\nTagged selenium/node-edge:132.0-edgedriver-132.0-20251101\nTagged selenium/standalone-edge:132.0-edgedriver-132.0-20251101\nTagged selenium/node-edge:132.0-20251101\nTagged selenium/standalone-edge:132.0-20251101\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.38.0/edge_133.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.38.0 20251101 selenium false edge true\nTagging images for browser edge, version 4.38.0, build date 20251101, namespace selenium\nSelenium Grid version -> 4.38.0-20251101\nEdge version -> 133.0.3065.92\nShort Edge version -> 133.0\nEdgeDriver version -> 133.0.3065.92\nShort EdgeDriver version -> 133.0\nTagged selenium/node-edge:133.0.3065.92-edgedriver-133.0.3065.92-grid-4.38.0-20251101\nTagged selenium/standalone-edge:133.0.3065.92-edgedriver-133.0.3065.92-grid-4.38.0-20251101\nTagged selenium/node-edge:133.0.3065.92-edgedriver-133.0.3065.92-20251101\nTagged selenium/standalone-edge:133.0.3065.92-edgedriver-133.0.3065.92-20251101\nTagged selenium/node-edge:133.0.3065.92-20251101\nTagged selenium/standalone-edge:133.0.3065.92-20251101\nTagged selenium/node-edge:133.0-edgedriver-133.0-grid-4.38.0-20251101\nTagged selenium/standalone-edge:133.0-edgedriver-133.0-grid-4.38.0-20251101\nTagged selenium/node-edge:133.0-edgedriver-133.0-20251101\nTagged selenium/standalone-edge:133.0-edgedriver-133.0-20251101\nTagged selenium/node-edge:133.0-20251101\nTagged selenium/standalone-edge:133.0-20251101\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.38.0/edge_134.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.38.0 20251101 selenium false edge true\nTagging images for browser edge, version 4.38.0, build date 20251101, namespace selenium\nSelenium Grid version -> 4.38.0-20251101\nEdge version -> 134.0.3124.95\nShort Edge version -> 134.0\nEdgeDriver version -> 134.0.3124.95\nShort EdgeDriver version -> 134.0\nTagged selenium/node-edge:134.0.3124.95-edgedriver-134.0.3124.95-grid-4.38.0-20251101\nTagged selenium/standalone-edge:134.0.3124.95-edgedriver-134.0.3124.95-grid-4.38.0-20251101\nTagged selenium/node-edge:134.0.3124.95-edgedriver-134.0.3124.95-20251101\nTagged selenium/standalone-edge:134.0.3124.95-edgedriver-134.0.3124.95-20251101\nTagged selenium/node-edge:134.0.3124.95-20251101\nTagged selenium/standalone-edge:134.0.3124.95-20251101\nTagged selenium/node-edge:134.0-edgedriver-134.0-grid-4.38.0-20251101\nTagged selenium/standalone-edge:134.0-edgedriver-134.0-grid-4.38.0-20251101\nTagged selenium/node-edge:134.0-edgedriver-134.0-20251101\nTagged selenium/standalone-edge:134.0-edgedriver-134.0-20251101\nTagged selenium/node-edge:134.0-20251101\nTagged selenium/standalone-edge:134.0-20251101\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.38.0/edge_135.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.38.0 20251101 selenium false edge true\nTagging images for browser edge, version 4.38.0, build date 20251101, namespace selenium\nSelenium Grid version -> 4.38.0-20251101\nEdge version -> 135.0.3179.98\nShort Edge version -> 135.0\nEdgeDriver version -> 135.0.3179.98\nShort EdgeDriver version -> 135.0\nTagged selenium/node-edge:135.0.3179.98-edgedriver-135.0.3179.98-grid-4.38.0-20251101\nTagged selenium/standalone-edge:135.0.3179.98-edgedriver-135.0.3179.98-grid-4.38.0-20251101\nTagged selenium/node-edge:135.0.3179.98-edgedriver-135.0.3179.98-20251101\nTagged selenium/standalone-edge:135.0.3179.98-edgedriver-135.0.3179.98-20251101\nTagged selenium/node-edge:135.0.3179.98-20251101\nTagged selenium/standalone-edge:135.0.3179.98-20251101\nTagged selenium/node-edge:135.0-edgedriver-135.0-grid-4.38.0-20251101\nTagged selenium/standalone-edge:135.0-edgedriver-135.0-grid-4.38.0-20251101\nTagged selenium/node-edge:135.0-edgedriver-135.0-20251101\nTagged selenium/standalone-edge:135.0-edgedriver-135.0-20251101\nTagged selenium/node-edge:135.0-20251101\nTagged selenium/standalone-edge:135.0-20251101\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.38.0/edge_136.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.38.0 20251101 selenium false edge true\nTagging images for browser edge, version 4.38.0, build date 20251101, namespace selenium\nSelenium Grid version -> 4.38.0-20251101\nEdge version -> 136.0.3240.92\nShort Edge version -> 136.0\nEdgeDriver version -> 136.0.3240.92\nShort EdgeDriver version -> 136.0\nTagged selenium/node-edge:136.0.3240.92-edgedriver-136.0.3240.92-grid-4.38.0-20251101\nTagged selenium/standalone-edge:136.0.3240.92-edgedriver-136.0.3240.92-grid-4.38.0-20251101\nTagged selenium/node-edge:136.0.3240.92-edgedriver-136.0.3240.92-20251101\nTagged selenium/standalone-edge:136.0.3240.92-edgedriver-136.0.3240.92-20251101\nTagged selenium/node-edge:136.0.3240.92-20251101\nTagged selenium/standalone-edge:136.0.3240.92-20251101\nTagged selenium/node-edge:136.0-edgedriver-136.0-grid-4.38.0-20251101\nTagged selenium/standalone-edge:136.0-edgedriver-136.0-grid-4.38.0-20251101\nTagged selenium/node-edge:136.0-edgedriver-136.0-20251101\nTagged selenium/standalone-edge:136.0-edgedriver-136.0-20251101\nTagged selenium/node-edge:136.0-20251101\nTagged selenium/standalone-edge:136.0-20251101\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.38.0/edge_137.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.38.0 20251101 selenium false edge true\nTagging images for browser edge, version 4.38.0, build date 20251101, namespace selenium\nSelenium Grid version -> 4.38.0-20251101\nEdge version -> 137.0.3296.93\nShort Edge version -> 137.0\nEdgeDriver version -> 137.0.3296.93\nShort EdgeDriver version -> 137.0\nTagged selenium/node-edge:137.0.3296.93-edgedriver-137.0.3296.93-grid-4.38.0-20251101\nTagged selenium/standalone-edge:137.0.3296.93-edgedriver-137.0.3296.93-grid-4.38.0-20251101\nTagged selenium/node-edge:137.0.3296.93-edgedriver-137.0.3296.93-20251101\nTagged selenium/standalone-edge:137.0.3296.93-edgedriver-137.0.3296.93-20251101\nTagged selenium/node-edge:137.0.3296.93-20251101\nTagged selenium/standalone-edge:137.0.3296.93-20251101\nTagged selenium/node-edge:137.0-edgedriver-137.0-grid-4.38.0-20251101\nTagged selenium/standalone-edge:137.0-edgedriver-137.0-grid-4.38.0-20251101\nTagged selenium/node-edge:137.0-edgedriver-137.0-20251101\nTagged selenium/standalone-edge:137.0-edgedriver-137.0-20251101\nTagged selenium/node-edge:137.0-20251101\nTagged selenium/standalone-edge:137.0-20251101\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.38.0/edge_138.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.38.0 20251101 selenium false edge true\nTagging images for browser edge, version 4.38.0, build date 20251101, namespace selenium\nSelenium Grid version -> 4.38.0-20251101\nEdge version -> 138.0.3351.121\nShort Edge version -> 138.0\nEdgeDriver version -> 138.0.3351.121\nShort EdgeDriver version -> 138.0\nTagged selenium/node-edge:138.0.3351.121-edgedriver-138.0.3351.121-grid-4.38.0-20251101\nTagged selenium/standalone-edge:138.0.3351.121-edgedriver-138.0.3351.121-grid-4.38.0-20251101\nTagged selenium/node-edge:138.0.3351.121-edgedriver-138.0.3351.121-20251101\nTagged selenium/standalone-edge:138.0.3351.121-edgedriver-138.0.3351.121-20251101\nTagged selenium/node-edge:138.0.3351.121-20251101\nTagged selenium/standalone-edge:138.0.3351.121-20251101\nTagged selenium/node-edge:138.0-edgedriver-138.0-grid-4.38.0-20251101\nTagged selenium/standalone-edge:138.0-edgedriver-138.0-grid-4.38.0-20251101\nTagged selenium/node-edge:138.0-edgedriver-138.0-20251101\nTagged selenium/standalone-edge:138.0-edgedriver-138.0-20251101\nTagged selenium/node-edge:138.0-20251101\nTagged selenium/standalone-edge:138.0-20251101\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.38.0/edge_139.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.38.0 20251101 selenium false edge true\nTagging images for browser edge, version 4.38.0, build date 20251101, namespace selenium\nSelenium Grid version -> 4.38.0-20251101\nEdge version -> 139.0.3405.125\nShort Edge version -> 139.0\nEdgeDriver version -> 139.0.3405.125\nShort EdgeDriver version -> 139.0\nTagged selenium/node-edge:139.0.3405.125-edgedriver-139.0.3405.125-grid-4.38.0-20251101\nTagged selenium/standalone-edge:139.0.3405.125-edgedriver-139.0.3405.125-grid-4.38.0-20251101\nTagged selenium/node-edge:139.0.3405.125-edgedriver-139.0.3405.125-20251101\nTagged selenium/standalone-edge:139.0.3405.125-edgedriver-139.0.3405.125-20251101\nTagged selenium/node-edge:139.0.3405.125-20251101\nTagged selenium/standalone-edge:139.0.3405.125-20251101\nTagged selenium/node-edge:139.0-edgedriver-139.0-grid-4.38.0-20251101\nTagged selenium/standalone-edge:139.0-edgedriver-139.0-grid-4.38.0-20251101\nTagged selenium/node-edge:139.0-edgedriver-139.0-20251101\nTagged selenium/standalone-edge:139.0-edgedriver-139.0-20251101\nTagged selenium/node-edge:139.0-20251101\nTagged selenium/standalone-edge:139.0-20251101\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.38.0/edge_140.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.38.0 20251101 selenium false edge true\nTagging images for browser edge, version 4.38.0, build date 20251101, namespace selenium\nSelenium Grid version -> 4.38.0-20251101\nEdge version -> 140.0.3485.94\nShort Edge version -> 140.0\nEdgeDriver version -> 140.0.3485.94\nShort EdgeDriver version -> 140.0\nTagged selenium/node-edge:140.0.3485.94-edgedriver-140.0.3485.94-grid-4.38.0-20251101\nTagged selenium/standalone-edge:140.0.3485.94-edgedriver-140.0.3485.94-grid-4.38.0-20251101\nTagged selenium/node-edge:140.0.3485.94-edgedriver-140.0.3485.94-20251101\nTagged selenium/standalone-edge:140.0.3485.94-edgedriver-140.0.3485.94-20251101\nTagged selenium/node-edge:140.0.3485.94-20251101\nTagged selenium/standalone-edge:140.0.3485.94-20251101\nTagged selenium/node-edge:140.0-edgedriver-140.0-grid-4.38.0-20251101\nTagged selenium/standalone-edge:140.0-edgedriver-140.0-grid-4.38.0-20251101\nTagged selenium/node-edge:140.0-edgedriver-140.0-20251101\nTagged selenium/standalone-edge:140.0-edgedriver-140.0-20251101\nTagged selenium/node-edge:140.0-20251101\nTagged selenium/standalone-edge:140.0-20251101\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.38.0/edge_141.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.38.0 20251101 selenium false edge true\nTagging images for browser edge, version 4.38.0, build date 20251101, namespace selenium\nSelenium Grid version -> 4.38.0-20251101\nEdge version -> 141.0.3537.99\nShort Edge version -> 141.0\nEdgeDriver version -> 141.0.3537.99\nShort EdgeDriver version -> 141.0\nTagged selenium/node-edge:141.0.3537.99-edgedriver-141.0.3537.99-grid-4.38.0-20251101\nTagged selenium/standalone-edge:141.0.3537.99-edgedriver-141.0.3537.99-grid-4.38.0-20251101\nTagged selenium/node-edge:141.0.3537.99-edgedriver-141.0.3537.99-20251101\nTagged selenium/standalone-edge:141.0.3537.99-edgedriver-141.0.3537.99-20251101\nTagged selenium/node-edge:141.0.3537.99-20251101\nTagged selenium/standalone-edge:141.0.3537.99-20251101\nTagged selenium/node-edge:141.0-edgedriver-141.0-grid-4.38.0-20251101\nTagged selenium/standalone-edge:141.0-edgedriver-141.0-grid-4.38.0-20251101\nTagged selenium/node-edge:141.0-edgedriver-141.0-20251101\nTagged selenium/standalone-edge:141.0-edgedriver-141.0-20251101\nTagged selenium/node-edge:141.0-20251101\nTagged selenium/standalone-edge:141.0-20251101\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.38.0/edge_142.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.38.0 20251101 selenium false edge true\nTagging images for browser edge, version 4.38.0, build date 20251101, namespace selenium\nSelenium Grid version -> 4.38.0-20251101\nEdge version -> 142.0.3595.53\nShort Edge version -> 142.0\nEdgeDriver version -> 142.0.3595.53\nShort EdgeDriver version -> 142.0\nTagged selenium/node-edge:142.0.3595.53-edgedriver-142.0.3595.53-grid-4.38.0-20251101\nTagged selenium/standalone-edge:142.0.3595.53-edgedriver-142.0.3595.53-grid-4.38.0-20251101\nTagged selenium/node-edge:142.0.3595.53-edgedriver-142.0.3595.53-20251101\nTagged selenium/standalone-edge:142.0.3595.53-edgedriver-142.0.3595.53-20251101\nTagged selenium/node-edge:142.0.3595.53-20251101\nTagged selenium/standalone-edge:142.0.3595.53-20251101\nTagged selenium/node-edge:142.0-edgedriver-142.0-grid-4.38.0-20251101\nTagged selenium/standalone-edge:142.0-edgedriver-142.0-grid-4.38.0-20251101\nTagged selenium/node-edge:142.0-edgedriver-142.0-20251101\nTagged selenium/standalone-edge:142.0-edgedriver-142.0-20251101\nTagged selenium/node-edge:142.0-20251101\nTagged selenium/standalone-edge:142.0-20251101\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.38.0/firefox_100.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.38.0 20251101 selenium false firefox true\nTagging images for browser firefox, version 4.38.0, build date 20251101, namespace selenium\nSelenium Grid version -> 4.38.0-20251101\nFirefox version -> 100.0.2\nShort Firefox version -> 100.0\nGeckoDriver version -> 0.36.0\nShort GeckoDriver version -> 0.36\nTagged selenium/node-firefox:100.0.2-geckodriver-0.36.0-grid-4.38.0-20251101\nTagged selenium/standalone-firefox:100.0.2-geckodriver-0.36.0-grid-4.38.0-20251101\nTagged selenium/node-firefox:100.0.2-geckodriver-0.36.0-20251101\nTagged selenium/standalone-firefox:100.0.2-geckodriver-0.36.0-20251101\nTagged selenium/node-firefox:100.0.2-20251101\nTagged selenium/standalone-firefox:100.0.2-20251101\nTagged selenium/node-firefox:100.0-geckodriver-0.36-grid-4.38.0-20251101\nTagged selenium/standalone-firefox:100.0-geckodriver-0.36-grid-4.38.0-20251101\nTagged selenium/node-firefox:100.0-geckodriver-0.36-20251101\nTagged selenium/standalone-firefox:100.0-geckodriver-0.36-20251101\nTagged selenium/node-firefox:100.0-20251101\nTagged selenium/standalone-firefox:100.0-20251101\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.38.0/firefox_101.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.38.0 20251101 selenium false firefox true\nTagging images for browser firefox, version 4.38.0, build date 20251101, namespace selenium\nSelenium Grid version -> 4.38.0-20251101\nFirefox version -> 101.0.1\nShort Firefox version -> 101.0\nGeckoDriver version -> 0.36.0\nShort GeckoDriver version -> 0.36\nTagged selenium/node-firefox:101.0.1-geckodriver-0.36.0-grid-4.38.0-20251101\nTagged selenium/standalone-firefox:101.0.1-geckodriver-0.36.0-grid-4.38.0-20251101\nTagged selenium/node-firefox:101.0.1-geckodriver-0.36.0-20251101\nTagged selenium/standalone-firefox:101.0.1-geckodriver-0.36.0-20251101\nTagged selenium/node-firefox:101.0.1-20251101\nTagged selenium/standalone-firefox:101.0.1-20251101\nTagged selenium/node-firefox:101.0-geckodriver-0.36-grid-4.38.0-20251101\nTagged selenium/standalone-firefox:101.0-geckodriver-0.36-grid-4.38.0-20251101\nTagged selenium/node-firefox:101.0-geckodriver-0.36-20251101\nTagged selenium/standalone-firefox:101.0-geckodriver-0.36-20251101\nTagged selenium/node-firefox:101.0-20251101\nTagged selenium/standalone-firefox:101.0-20251101\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.38.0/firefox_102.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.38.0 20251101 selenium false firefox true\nTagging images for browser firefox, version 4.38.0, build date 20251101, namespace selenium\nSelenium Grid version -> 4.38.0-20251101\nFirefox version -> 102.0.1\nShort Firefox version -> 102.0\nGeckoDriver version -> 0.36.0\nShort GeckoDriver version -> 0.36\nTagged selenium/node-firefox:102.0.1-geckodriver-0.36.0-grid-4.38.0-20251101\nTagged selenium/standalone-firefox:102.0.1-geckodriver-0.36.0-grid-4.38.0-20251101\nTagged selenium/node-firefox:102.0.1-geckodriver-0.36.0-20251101\nTagged selenium/standalone-firefox:102.0.1-geckodriver-0.36.0-20251101\nTagged selenium/node-firefox:102.0.1-20251101\nTagged selenium/standalone-firefox:102.0.1-20251101\nTagged selenium/node-firefox:102.0-geckodriver-0.36-grid-4.38.0-20251101\nTagged selenium/standalone-firefox:102.0-geckodriver-0.36-grid-4.38.0-20251101\nTagged selenium/node-firefox:102.0-geckodriver-0.36-20251101\nTagged selenium/standalone-firefox:102.0-geckodriver-0.36-20251101\nTagged selenium/node-firefox:102.0-20251101\nTagged selenium/standalone-firefox:102.0-20251101\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.38.0/firefox_103.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.38.0 20251101 selenium false firefox true\nTagging images for browser firefox, version 4.38.0, build date 20251101, namespace selenium\nSelenium Grid version -> 4.38.0-20251101\nFirefox version -> 103.0.2\nShort Firefox version -> 103.0\nGeckoDriver version -> 0.36.0\nShort GeckoDriver version -> 0.36\nTagged selenium/node-firefox:103.0.2-geckodriver-0.36.0-grid-4.38.0-20251101\nTagged selenium/standalone-firefox:103.0.2-geckodriver-0.36.0-grid-4.38.0-20251101\nTagged selenium/node-firefox:103.0.2-geckodriver-0.36.0-20251101\nTagged selenium/standalone-firefox:103.0.2-geckodriver-0.36.0-20251101\nTagged selenium/node-firefox:103.0.2-20251101\nTagged selenium/standalone-firefox:103.0.2-20251101\nTagged selenium/node-firefox:103.0-geckodriver-0.36-grid-4.38.0-20251101\nTagged selenium/standalone-firefox:103.0-geckodriver-0.36-grid-4.38.0-20251101\nTagged selenium/node-firefox:103.0-geckodriver-0.36-20251101\nTagged selenium/standalone-firefox:103.0-geckodriver-0.36-20251101\nTagged selenium/node-firefox:103.0-20251101\nTagged selenium/standalone-firefox:103.0-20251101\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.38.0/firefox_104.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.38.0 20251101 selenium false firefox true\nTagging images for browser firefox, version 4.38.0, build date 20251101, namespace selenium\nSelenium Grid version -> 4.38.0-20251101\nFirefox version -> 104.0.2\nShort Firefox version -> 104.0\nGeckoDriver version -> 0.36.0\nShort GeckoDriver version -> 0.36\nTagged selenium/node-firefox:104.0.2-geckodriver-0.36.0-grid-4.38.0-20251101\nTagged selenium/standalone-firefox:104.0.2-geckodriver-0.36.0-grid-4.38.0-20251101\nTagged selenium/node-firefox:104.0.2-geckodriver-0.36.0-20251101\nTagged selenium/standalone-firefox:104.0.2-geckodriver-0.36.0-20251101\nTagged selenium/node-firefox:104.0.2-20251101\nTagged selenium/standalone-firefox:104.0.2-20251101\nTagged selenium/node-firefox:104.0-geckodriver-0.36-grid-4.38.0-20251101\nTagged selenium/standalone-firefox:104.0-geckodriver-0.36-grid-4.38.0-20251101\nTagged selenium/node-firefox:104.0-geckodriver-0.36-20251101\nTagged selenium/standalone-firefox:104.0-geckodriver-0.36-20251101\nTagged selenium/node-firefox:104.0-20251101\nTagged selenium/standalone-firefox:104.0-20251101\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.38.0/firefox_105.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.38.0 20251101 selenium false firefox true\nTagging images for browser firefox, version 4.38.0, build date 20251101, namespace selenium\nSelenium Grid version -> 4.38.0-20251101\nFirefox version -> 105.0.3\nShort Firefox version -> 105.0\nGeckoDriver version -> 0.36.0\nShort GeckoDriver version -> 0.36\nTagged selenium/node-firefox:105.0.3-geckodriver-0.36.0-grid-4.38.0-20251101\nTagged selenium/standalone-firefox:105.0.3-geckodriver-0.36.0-grid-4.38.0-20251101\nTagged selenium/node-firefox:105.0.3-geckodriver-0.36.0-20251101\nTagged selenium/standalone-firefox:105.0.3-geckodriver-0.36.0-20251101\nTagged selenium/node-firefox:105.0.3-20251101\nTagged selenium/standalone-firefox:105.0.3-20251101\nTagged selenium/node-firefox:105.0-geckodriver-0.36-grid-4.38.0-20251101\nTagged selenium/standalone-firefox:105.0-geckodriver-0.36-grid-4.38.0-20251101\nTagged selenium/node-firefox:105.0-geckodriver-0.36-20251101\nTagged selenium/standalone-firefox:105.0-geckodriver-0.36-20251101\nTagged selenium/node-firefox:105.0-20251101\nTagged selenium/standalone-firefox:105.0-20251101\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.38.0/firefox_106.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.38.0 20251101 selenium false firefox true\nTagging images for browser firefox, version 4.38.0, build date 20251101, namespace selenium\nSelenium Grid version -> 4.38.0-20251101\nFirefox version -> 106.0.5\nShort Firefox version -> 106.0\nGeckoDriver version -> 0.36.0\nShort GeckoDriver version -> 0.36\nTagged selenium/node-firefox:106.0.5-geckodriver-0.36.0-grid-4.38.0-20251101\nTagged selenium/standalone-firefox:106.0.5-geckodriver-0.36.0-grid-4.38.0-20251101\nTagged selenium/node-firefox:106.0.5-geckodriver-0.36.0-20251101\nTagged selenium/standalone-firefox:106.0.5-geckodriver-0.36.0-20251101\nTagged selenium/node-firefox:106.0.5-20251101\nTagged selenium/standalone-firefox:106.0.5-20251101\nTagged selenium/node-firefox:106.0-geckodriver-0.36-grid-4.38.0-20251101\nTagged selenium/standalone-firefox:106.0-geckodriver-0.36-grid-4.38.0-20251101\nTagged selenium/node-firefox:106.0-geckodriver-0.36-20251101\nTagged selenium/standalone-firefox:106.0-geckodriver-0.36-20251101\nTagged selenium/node-firefox:106.0-20251101\nTagged selenium/standalone-firefox:106.0-20251101\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.38.0/firefox_107.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.38.0 20251101 selenium false firefox true\nTagging images for browser firefox, version 4.38.0, build date 20251101, namespace selenium\nSelenium Grid version -> 4.38.0-20251101\nFirefox version -> 107.0.1\nShort Firefox version -> 107.0\nGeckoDriver version -> 0.36.0\nShort GeckoDriver version -> 0.36\nTagged selenium/node-firefox:107.0.1-geckodriver-0.36.0-grid-4.38.0-20251101\nTagged selenium/standalone-firefox:107.0.1-geckodriver-0.36.0-grid-4.38.0-20251101\nTagged selenium/node-firefox:107.0.1-geckodriver-0.36.0-20251101\nTagged selenium/standalone-firefox:107.0.1-geckodriver-0.36.0-20251101\nTagged selenium/node-firefox:107.0.1-20251101\nTagged selenium/standalone-firefox:107.0.1-20251101\nTagged selenium/node-firefox:107.0-geckodriver-0.36-grid-4.38.0-20251101\nTagged selenium/standalone-firefox:107.0-geckodriver-0.36-grid-4.38.0-20251101\nTagged selenium/node-firefox:107.0-geckodriver-0.36-20251101\nTagged selenium/standalone-firefox:107.0-geckodriver-0.36-20251101\nTagged selenium/node-firefox:107.0-20251101\nTagged selenium/standalone-firefox:107.0-20251101\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.38.0/firefox_108.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.38.0 20251101 selenium false firefox true\nTagging images for browser firefox, version 4.38.0, build date 20251101, namespace selenium\nSelenium Grid version -> 4.38.0-20251101\nFirefox version -> 108.0.2\nShort Firefox version -> 108.0\nGeckoDriver version -> 0.36.0\nShort GeckoDriver version -> 0.36\nTagged selenium/node-firefox:108.0.2-geckodriver-0.36.0-grid-4.38.0-20251101\nTagged selenium/standalone-firefox:108.0.2-geckodriver-0.36.0-grid-4.38.0-20251101\nTagged selenium/node-firefox:108.0.2-geckodriver-0.36.0-20251101\nTagged selenium/standalone-firefox:108.0.2-geckodriver-0.36.0-20251101\nTagged selenium/node-firefox:108.0.2-20251101\nTagged selenium/standalone-firefox:108.0.2-20251101\nTagged selenium/node-firefox:108.0-geckodriver-0.36-grid-4.38.0-20251101\nTagged selenium/standalone-firefox:108.0-geckodriver-0.36-grid-4.38.0-20251101\nTagged selenium/node-firefox:108.0-geckodriver-0.36-20251101\nTagged selenium/standalone-firefox:108.0-geckodriver-0.36-20251101\nTagged selenium/node-firefox:108.0-20251101\nTagged selenium/standalone-firefox:108.0-20251101\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.38.0/firefox_109.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.38.0 20251101 selenium false firefox true\nTagging images for browser firefox, version 4.38.0, build date 20251101, namespace selenium\nSelenium Grid version -> 4.38.0-20251101\nFirefox version -> 109.0.1\nShort Firefox version -> 109.0\nGeckoDriver version -> 0.36.0\nShort GeckoDriver version -> 0.36\nTagged selenium/node-firefox:109.0.1-geckodriver-0.36.0-grid-4.38.0-20251101\nTagged selenium/standalone-firefox:109.0.1-geckodriver-0.36.0-grid-4.38.0-20251101\nTagged selenium/node-firefox:109.0.1-geckodriver-0.36.0-20251101\nTagged selenium/standalone-firefox:109.0.1-geckodriver-0.36.0-20251101\nTagged selenium/node-firefox:109.0.1-20251101\nTagged selenium/standalone-firefox:109.0.1-20251101\nTagged selenium/node-firefox:109.0-geckodriver-0.36-grid-4.38.0-20251101\nTagged selenium/standalone-firefox:109.0-geckodriver-0.36-grid-4.38.0-20251101\nTagged selenium/node-firefox:109.0-geckodriver-0.36-20251101\nTagged selenium/standalone-firefox:109.0-geckodriver-0.36-20251101\nTagged selenium/node-firefox:109.0-20251101\nTagged selenium/standalone-firefox:109.0-20251101\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.38.0/firefox_110.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.38.0 20251101 selenium false firefox true\nTagging images for browser firefox, version 4.38.0, build date 20251101, namespace selenium\nSelenium Grid version -> 4.38.0-20251101\nFirefox version -> 110.0.1\nShort Firefox version -> 110.0\nGeckoDriver version -> 0.36.0\nShort GeckoDriver version -> 0.36\nTagged selenium/node-firefox:110.0.1-geckodriver-0.36.0-grid-4.38.0-20251101\nTagged selenium/standalone-firefox:110.0.1-geckodriver-0.36.0-grid-4.38.0-20251101\nTagged selenium/node-firefox:110.0.1-geckodriver-0.36.0-20251101\nTagged selenium/standalone-firefox:110.0.1-geckodriver-0.36.0-20251101\nTagged selenium/node-firefox:110.0.1-20251101\nTagged selenium/standalone-firefox:110.0.1-20251101\nTagged selenium/node-firefox:110.0-geckodriver-0.36-grid-4.38.0-20251101\nTagged selenium/standalone-firefox:110.0-geckodriver-0.36-grid-4.38.0-20251101\nTagged selenium/node-firefox:110.0-geckodriver-0.36-20251101\nTagged selenium/standalone-firefox:110.0-geckodriver-0.36-20251101\nTagged selenium/node-firefox:110.0-20251101\nTagged selenium/standalone-firefox:110.0-20251101\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.38.0/firefox_111.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.38.0 20251101 selenium false firefox true\nTagging images for browser firefox, version 4.38.0, build date 20251101, namespace selenium\nSelenium Grid version -> 4.38.0-20251101\nFirefox version -> 111.0.1\nShort Firefox version -> 111.0\nGeckoDriver version -> 0.36.0\nShort GeckoDriver version -> 0.36\nTagged selenium/node-firefox:111.0.1-geckodriver-0.36.0-grid-4.38.0-20251101\nTagged selenium/standalone-firefox:111.0.1-geckodriver-0.36.0-grid-4.38.0-20251101\nTagged selenium/node-firefox:111.0.1-geckodriver-0.36.0-20251101\nTagged selenium/standalone-firefox:111.0.1-geckodriver-0.36.0-20251101\nTagged selenium/node-firefox:111.0.1-20251101\nTagged selenium/standalone-firefox:111.0.1-20251101\nTagged selenium/node-firefox:111.0-geckodriver-0.36-grid-4.38.0-20251101\nTagged selenium/standalone-firefox:111.0-geckodriver-0.36-grid-4.38.0-20251101\nTagged selenium/node-firefox:111.0-geckodriver-0.36-20251101\nTagged selenium/standalone-firefox:111.0-geckodriver-0.36-20251101\nTagged selenium/node-firefox:111.0-20251101\nTagged selenium/standalone-firefox:111.0-20251101\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.38.0/firefox_112.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.38.0 20251101 selenium false firefox true\nTagging images for browser firefox, version 4.38.0, build date 20251101, namespace selenium\nSelenium Grid version -> 4.38.0-20251101\nFirefox version -> 112.0.2\nShort Firefox version -> 112.0\nGeckoDriver version -> 0.36.0\nShort GeckoDriver version -> 0.36\nTagged selenium/node-firefox:112.0.2-geckodriver-0.36.0-grid-4.38.0-20251101\nTagged selenium/standalone-firefox:112.0.2-geckodriver-0.36.0-grid-4.38.0-20251101\nTagged selenium/node-firefox:112.0.2-geckodriver-0.36.0-20251101\nTagged selenium/standalone-firefox:112.0.2-geckodriver-0.36.0-20251101\nTagged selenium/node-firefox:112.0.2-20251101\nTagged selenium/standalone-firefox:112.0.2-20251101\nTagged selenium/node-firefox:112.0-geckodriver-0.36-grid-4.38.0-20251101\nTagged selenium/standalone-firefox:112.0-geckodriver-0.36-grid-4.38.0-20251101\nTagged selenium/node-firefox:112.0-geckodriver-0.36-20251101\nTagged selenium/standalone-firefox:112.0-geckodriver-0.36-20251101\nTagged selenium/node-firefox:112.0-20251101\nTagged selenium/standalone-firefox:112.0-20251101\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.38.0/firefox_113.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.38.0 20251101 selenium false firefox true\nTagging images for browser firefox, version 4.38.0, build date 20251101, namespace selenium\nSelenium Grid version -> 4.38.0-20251101\nFirefox version -> 113.0.2\nShort Firefox version -> 113.0\nGeckoDriver version -> 0.36.0\nShort GeckoDriver version -> 0.36\nTagged selenium/node-firefox:113.0.2-geckodriver-0.36.0-grid-4.38.0-20251101\nTagged selenium/standalone-firefox:113.0.2-geckodriver-0.36.0-grid-4.38.0-20251101\nTagged selenium/node-firefox:113.0.2-geckodriver-0.36.0-20251101\nTagged selenium/standalone-firefox:113.0.2-geckodriver-0.36.0-20251101\nTagged selenium/node-firefox:113.0.2-20251101\nTagged selenium/standalone-firefox:113.0.2-20251101\nTagged selenium/node-firefox:113.0-geckodriver-0.36-grid-4.38.0-20251101\nTagged selenium/standalone-firefox:113.0-geckodriver-0.36-grid-4.38.0-20251101\nTagged selenium/node-firefox:113.0-geckodriver-0.36-20251101\nTagged selenium/standalone-firefox:113.0-geckodriver-0.36-20251101\nTagged selenium/node-firefox:113.0-20251101\nTagged selenium/standalone-firefox:113.0-20251101\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.38.0/firefox_114.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.38.0 20251101 selenium false firefox true\nTagging images for browser firefox, version 4.38.0, build date 20251101, namespace selenium\nSelenium Grid version -> 4.38.0-20251101\nFirefox version -> 114.0.2\nShort Firefox version -> 114.0\nGeckoDriver version -> 0.36.0\nShort GeckoDriver version -> 0.36\nTagged selenium/node-firefox:114.0.2-geckodriver-0.36.0-grid-4.38.0-20251101\nTagged selenium/standalone-firefox:114.0.2-geckodriver-0.36.0-grid-4.38.0-20251101\nTagged selenium/node-firefox:114.0.2-geckodriver-0.36.0-20251101\nTagged selenium/standalone-firefox:114.0.2-geckodriver-0.36.0-20251101\nTagged selenium/node-firefox:114.0.2-20251101\nTagged selenium/standalone-firefox:114.0.2-20251101\nTagged selenium/node-firefox:114.0-geckodriver-0.36-grid-4.38.0-20251101\nTagged selenium/standalone-firefox:114.0-geckodriver-0.36-grid-4.38.0-20251101\nTagged selenium/node-firefox:114.0-geckodriver-0.36-20251101\nTagged selenium/standalone-firefox:114.0-geckodriver-0.36-20251101\nTagged selenium/node-firefox:114.0-20251101\nTagged selenium/standalone-firefox:114.0-20251101\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.38.0/firefox_115.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.38.0 20251101 selenium false firefox true\nTagging images for browser firefox, version 4.38.0, build date 20251101, namespace selenium\nSelenium Grid version -> 4.38.0-20251101\nFirefox version -> 115.0.3\nShort Firefox version -> 115.0\nGeckoDriver version -> 0.36.0\nShort GeckoDriver version -> 0.36\nTagged selenium/node-firefox:115.0.3-geckodriver-0.36.0-grid-4.38.0-20251101\nTagged selenium/standalone-firefox:115.0.3-geckodriver-0.36.0-grid-4.38.0-20251101\nTagged selenium/node-firefox:115.0.3-geckodriver-0.36.0-20251101\nTagged selenium/standalone-firefox:115.0.3-geckodriver-0.36.0-20251101\nTagged selenium/node-firefox:115.0.3-20251101\nTagged selenium/standalone-firefox:115.0.3-20251101\nTagged selenium/node-firefox:115.0-geckodriver-0.36-grid-4.38.0-20251101\nTagged selenium/standalone-firefox:115.0-geckodriver-0.36-grid-4.38.0-20251101\nTagged selenium/node-firefox:115.0-geckodriver-0.36-20251101\nTagged selenium/standalone-firefox:115.0-geckodriver-0.36-20251101\nTagged selenium/node-firefox:115.0-20251101\nTagged selenium/standalone-firefox:115.0-20251101\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.38.0/firefox_116.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.38.0 20251101 selenium false firefox true\nTagging images for browser firefox, version 4.38.0, build date 20251101, namespace selenium\nSelenium Grid version -> 4.38.0-20251101\nFirefox version -> 116.0.3\nShort Firefox version -> 116.0\nGeckoDriver version -> 0.36.0\nShort GeckoDriver version -> 0.36\nTagged selenium/node-firefox:116.0.3-geckodriver-0.36.0-grid-4.38.0-20251101\nTagged selenium/standalone-firefox:116.0.3-geckodriver-0.36.0-grid-4.38.0-20251101\nTagged selenium/node-firefox:116.0.3-geckodriver-0.36.0-20251101\nTagged selenium/standalone-firefox:116.0.3-geckodriver-0.36.0-20251101\nTagged selenium/node-firefox:116.0.3-20251101\nTagged selenium/standalone-firefox:116.0.3-20251101\nTagged selenium/node-firefox:116.0-geckodriver-0.36-grid-4.38.0-20251101\nTagged selenium/standalone-firefox:116.0-geckodriver-0.36-grid-4.38.0-20251101\nTagged selenium/node-firefox:116.0-geckodriver-0.36-20251101\nTagged selenium/standalone-firefox:116.0-geckodriver-0.36-20251101\nTagged selenium/node-firefox:116.0-20251101\nTagged selenium/standalone-firefox:116.0-20251101\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.38.0/firefox_117.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.38.0 20251101 selenium false firefox true\nTagging images for browser firefox, version 4.38.0, build date 20251101, namespace selenium\nSelenium Grid version -> 4.38.0-20251101\nFirefox version -> 117.0.1\nShort Firefox version -> 117.0\nGeckoDriver version -> 0.36.0\nShort GeckoDriver version -> 0.36\nTagged selenium/node-firefox:117.0.1-geckodriver-0.36.0-grid-4.38.0-20251101\nTagged selenium/standalone-firefox:117.0.1-geckodriver-0.36.0-grid-4.38.0-20251101\nTagged selenium/node-firefox:117.0.1-geckodriver-0.36.0-20251101\nTagged selenium/standalone-firefox:117.0.1-geckodriver-0.36.0-20251101\nTagged selenium/node-firefox:117.0.1-20251101\nTagged selenium/standalone-firefox:117.0.1-20251101\nTagged selenium/node-firefox:117.0-geckodriver-0.36-grid-4.38.0-20251101\nTagged selenium/standalone-firefox:117.0-geckodriver-0.36-grid-4.38.0-20251101\nTagged selenium/node-firefox:117.0-geckodriver-0.36-20251101\nTagged selenium/standalone-firefox:117.0-geckodriver-0.36-20251101\nTagged selenium/node-firefox:117.0-20251101\nTagged selenium/standalone-firefox:117.0-20251101\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.38.0/firefox_118.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.38.0 20251101 selenium false firefox true\nTagging images for browser firefox, version 4.38.0, build date 20251101, namespace selenium\nSelenium Grid version -> 4.38.0-20251101\nFirefox version -> 118.0.2\nShort Firefox version -> 118.0\nGeckoDriver version -> 0.36.0\nShort GeckoDriver version -> 0.36\nTagged selenium/node-firefox:118.0.2-geckodriver-0.36.0-grid-4.38.0-20251101\nTagged selenium/standalone-firefox:118.0.2-geckodriver-0.36.0-grid-4.38.0-20251101\nTagged selenium/node-firefox:118.0.2-geckodriver-0.36.0-20251101\nTagged selenium/standalone-firefox:118.0.2-geckodriver-0.36.0-20251101\nTagged selenium/node-firefox:118.0.2-20251101\nTagged selenium/standalone-firefox:118.0.2-20251101\nTagged selenium/node-firefox:118.0-geckodriver-0.36-grid-4.38.0-20251101\nTagged selenium/standalone-firefox:118.0-geckodriver-0.36-grid-4.38.0-20251101\nTagged selenium/node-firefox:118.0-geckodriver-0.36-20251101\nTagged selenium/standalone-firefox:118.0-geckodriver-0.36-20251101\nTagged selenium/node-firefox:118.0-20251101\nTagged selenium/standalone-firefox:118.0-20251101\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.38.0/firefox_119.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.38.0 20251101 selenium false firefox true\nTagging images for browser firefox, version 4.38.0, build date 20251101, namespace selenium\nSelenium Grid version -> 4.38.0-20251101\nFirefox version -> 119.0.1\nShort Firefox version -> 119.0\nGeckoDriver version -> 0.36.0\nShort GeckoDriver version -> 0.36\nTagged selenium/node-firefox:119.0.1-geckodriver-0.36.0-grid-4.38.0-20251101\nTagged selenium/standalone-firefox:119.0.1-geckodriver-0.36.0-grid-4.38.0-20251101\nTagged selenium/node-firefox:119.0.1-geckodriver-0.36.0-20251101\nTagged selenium/standalone-firefox:119.0.1-geckodriver-0.36.0-20251101\nTagged selenium/node-firefox:119.0.1-20251101\nTagged selenium/standalone-firefox:119.0.1-20251101\nTagged selenium/node-firefox:119.0-geckodriver-0.36-grid-4.38.0-20251101\nTagged selenium/standalone-firefox:119.0-geckodriver-0.36-grid-4.38.0-20251101\nTagged selenium/node-firefox:119.0-geckodriver-0.36-20251101\nTagged selenium/standalone-firefox:119.0-geckodriver-0.36-20251101\nTagged selenium/node-firefox:119.0-20251101\nTagged selenium/standalone-firefox:119.0-20251101\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.38.0/firefox_120.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.38.0 20251101 selenium false firefox true\nTagging images for browser firefox, version 4.38.0, build date 20251101, namespace selenium\nSelenium Grid version -> 4.38.0-20251101\nFirefox version -> 120.0.1\nShort Firefox version -> 120.0\nGeckoDriver version -> 0.36.0\nShort GeckoDriver version -> 0.36\nTagged selenium/node-firefox:120.0.1-geckodriver-0.36.0-grid-4.38.0-20251101\nTagged selenium/standalone-firefox:120.0.1-geckodriver-0.36.0-grid-4.38.0-20251101\nTagged selenium/node-firefox:120.0.1-geckodriver-0.36.0-20251101\nTagged selenium/standalone-firefox:120.0.1-geckodriver-0.36.0-20251101\nTagged selenium/node-firefox:120.0.1-20251101\nTagged selenium/standalone-firefox:120.0.1-20251101\nTagged selenium/node-firefox:120.0-geckodriver-0.36-grid-4.38.0-20251101\nTagged selenium/standalone-firefox:120.0-geckodriver-0.36-grid-4.38.0-20251101\nTagged selenium/node-firefox:120.0-geckodriver-0.36-20251101\nTagged selenium/standalone-firefox:120.0-geckodriver-0.36-20251101\nTagged selenium/node-firefox:120.0-20251101\nTagged selenium/standalone-firefox:120.0-20251101\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.38.0/firefox_121.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.38.0 20251101 selenium false firefox true\nTagging images for browser firefox, version 4.38.0, build date 20251101, namespace selenium\nSelenium Grid version -> 4.38.0-20251101\nFirefox version -> 121.0.1\nShort Firefox version -> 121.0\nGeckoDriver version -> 0.36.0\nShort GeckoDriver version -> 0.36\nTagged selenium/node-firefox:121.0.1-geckodriver-0.36.0-grid-4.38.0-20251101\nTagged selenium/standalone-firefox:121.0.1-geckodriver-0.36.0-grid-4.38.0-20251101\nTagged selenium/node-firefox:121.0.1-geckodriver-0.36.0-20251101\nTagged selenium/standalone-firefox:121.0.1-geckodriver-0.36.0-20251101\nTagged selenium/node-firefox:121.0.1-20251101\nTagged selenium/standalone-firefox:121.0.1-20251101\nTagged selenium/node-firefox:121.0-geckodriver-0.36-grid-4.38.0-20251101\nTagged selenium/standalone-firefox:121.0-geckodriver-0.36-grid-4.38.0-20251101\nTagged selenium/node-firefox:121.0-geckodriver-0.36-20251101\nTagged selenium/standalone-firefox:121.0-geckodriver-0.36-20251101\nTagged selenium/node-firefox:121.0-20251101\nTagged selenium/standalone-firefox:121.0-20251101\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.38.0/firefox_122.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.38.0 20251101 selenium false firefox true\nTagging images for browser firefox, version 4.38.0, build date 20251101, namespace selenium\nSelenium Grid version -> 4.38.0-20251101\nFirefox version -> 122.0.1\nShort Firefox version -> 122.0\nGeckoDriver version -> 0.36.0\nShort GeckoDriver version -> 0.36\nTagged selenium/node-firefox:122.0.1-geckodriver-0.36.0-grid-4.38.0-20251101\nTagged selenium/standalone-firefox:122.0.1-geckodriver-0.36.0-grid-4.38.0-20251101\nTagged selenium/node-firefox:122.0.1-geckodriver-0.36.0-20251101\nTagged selenium/standalone-firefox:122.0.1-geckodriver-0.36.0-20251101\nTagged selenium/node-firefox:122.0.1-20251101\nTagged selenium/standalone-firefox:122.0.1-20251101\nTagged selenium/node-firefox:122.0-geckodriver-0.36-grid-4.38.0-20251101\nTagged selenium/standalone-firefox:122.0-geckodriver-0.36-grid-4.38.0-20251101\nTagged selenium/node-firefox:122.0-geckodriver-0.36-20251101\nTagged selenium/standalone-firefox:122.0-geckodriver-0.36-20251101\nTagged selenium/node-firefox:122.0-20251101\nTagged selenium/standalone-firefox:122.0-20251101\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.38.0/firefox_123.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.38.0 20251101 selenium false firefox true\nTagging images for browser firefox, version 4.38.0, build date 20251101, namespace selenium\nSelenium Grid version -> 4.38.0-20251101\nFirefox version -> 123.0.1\nShort Firefox version -> 123.0\nGeckoDriver version -> 0.36.0\nShort GeckoDriver version -> 0.36\nTagged selenium/node-firefox:123.0.1-geckodriver-0.36.0-grid-4.38.0-20251101\nTagged selenium/standalone-firefox:123.0.1-geckodriver-0.36.0-grid-4.38.0-20251101\nTagged selenium/node-firefox:123.0.1-geckodriver-0.36.0-20251101\nTagged selenium/standalone-firefox:123.0.1-geckodriver-0.36.0-20251101\nTagged selenium/node-firefox:123.0.1-20251101\nTagged selenium/standalone-firefox:123.0.1-20251101\nTagged selenium/node-firefox:123.0-geckodriver-0.36-grid-4.38.0-20251101\nTagged selenium/standalone-firefox:123.0-geckodriver-0.36-grid-4.38.0-20251101\nTagged selenium/node-firefox:123.0-geckodriver-0.36-20251101\nTagged selenium/standalone-firefox:123.0-geckodriver-0.36-20251101\nTagged selenium/node-firefox:123.0-20251101\nTagged selenium/standalone-firefox:123.0-20251101\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.38.0/firefox_124.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.38.0 20251101 selenium false firefox true\nTagging images for browser firefox, version 4.38.0, build date 20251101, namespace selenium\nSelenium Grid version -> 4.38.0-20251101\nFirefox version -> 124.0.2\nShort Firefox version -> 124.0\nGeckoDriver version -> 0.36.0\nShort GeckoDriver version -> 0.36\nTagged selenium/node-firefox:124.0.2-geckodriver-0.36.0-grid-4.38.0-20251101\nTagged selenium/standalone-firefox:124.0.2-geckodriver-0.36.0-grid-4.38.0-20251101\nTagged selenium/node-firefox:124.0.2-geckodriver-0.36.0-20251101\nTagged selenium/standalone-firefox:124.0.2-geckodriver-0.36.0-20251101\nTagged selenium/node-firefox:124.0.2-20251101\nTagged selenium/standalone-firefox:124.0.2-20251101\nTagged selenium/node-firefox:124.0-geckodriver-0.36-grid-4.38.0-20251101\nTagged selenium/standalone-firefox:124.0-geckodriver-0.36-grid-4.38.0-20251101\nTagged selenium/node-firefox:124.0-geckodriver-0.36-20251101\nTagged selenium/standalone-firefox:124.0-geckodriver-0.36-20251101\nTagged selenium/node-firefox:124.0-20251101\nTagged selenium/standalone-firefox:124.0-20251101\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.38.0/firefox_125.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.38.0 20251101 selenium false firefox true\nTagging images for browser firefox, version 4.38.0, build date 20251101, namespace selenium\nSelenium Grid version -> 4.38.0-20251101\nFirefox version -> 125.0.3\nShort Firefox version -> 125.0\nGeckoDriver version -> 0.36.0\nShort GeckoDriver version -> 0.36\nTagged selenium/node-firefox:125.0.3-geckodriver-0.36.0-grid-4.38.0-20251101\nTagged selenium/standalone-firefox:125.0.3-geckodriver-0.36.0-grid-4.38.0-20251101\nTagged selenium/node-firefox:125.0.3-geckodriver-0.36.0-20251101\nTagged selenium/standalone-firefox:125.0.3-geckodriver-0.36.0-20251101\nTagged selenium/node-firefox:125.0.3-20251101\nTagged selenium/standalone-firefox:125.0.3-20251101\nTagged selenium/node-firefox:125.0-geckodriver-0.36-grid-4.38.0-20251101\nTagged selenium/standalone-firefox:125.0-geckodriver-0.36-grid-4.38.0-20251101\nTagged selenium/node-firefox:125.0-geckodriver-0.36-20251101\nTagged selenium/standalone-firefox:125.0-geckodriver-0.36-20251101\nTagged selenium/node-firefox:125.0-20251101\nTagged selenium/standalone-firefox:125.0-20251101\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.38.0/firefox_126.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.38.0 20251101 selenium false firefox true\nTagging images for browser firefox, version 4.38.0, build date 20251101, namespace selenium\nSelenium Grid version -> 4.38.0-20251101\nFirefox version -> 126.0.1\nShort Firefox version -> 126.0\nGeckoDriver version -> 0.36.0\nShort GeckoDriver version -> 0.36\nTagged selenium/node-firefox:126.0.1-geckodriver-0.36.0-grid-4.38.0-20251101\nTagged selenium/standalone-firefox:126.0.1-geckodriver-0.36.0-grid-4.38.0-20251101\nTagged selenium/node-firefox:126.0.1-geckodriver-0.36.0-20251101\nTagged selenium/standalone-firefox:126.0.1-geckodriver-0.36.0-20251101\nTagged selenium/node-firefox:126.0.1-20251101\nTagged selenium/standalone-firefox:126.0.1-20251101\nTagged selenium/node-firefox:126.0-geckodriver-0.36-grid-4.38.0-20251101\nTagged selenium/standalone-firefox:126.0-geckodriver-0.36-grid-4.38.0-20251101\nTagged selenium/node-firefox:126.0-geckodriver-0.36-20251101\nTagged selenium/standalone-firefox:126.0-geckodriver-0.36-20251101\nTagged selenium/node-firefox:126.0-20251101\nTagged selenium/standalone-firefox:126.0-20251101\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.38.0/firefox_127.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.38.0 20251101 selenium false firefox true\nTagging images for browser firefox, version 4.38.0, build date 20251101, namespace selenium\nSelenium Grid version -> 4.38.0-20251101\nFirefox version -> 127.0.2\nShort Firefox version -> 127.0\nGeckoDriver version -> 0.36.0\nShort GeckoDriver version -> 0.36\nTagged selenium/node-firefox:127.0.2-geckodriver-0.36.0-grid-4.38.0-20251101\nTagged selenium/standalone-firefox:127.0.2-geckodriver-0.36.0-grid-4.38.0-20251101\nTagged selenium/node-firefox:127.0.2-geckodriver-0.36.0-20251101\nTagged selenium/standalone-firefox:127.0.2-geckodriver-0.36.0-20251101\nTagged selenium/node-firefox:127.0.2-20251101\nTagged selenium/standalone-firefox:127.0.2-20251101\nTagged selenium/node-firefox:127.0-geckodriver-0.36-grid-4.38.0-20251101\nTagged selenium/standalone-firefox:127.0-geckodriver-0.36-grid-4.38.0-20251101\nTagged selenium/node-firefox:127.0-geckodriver-0.36-20251101\nTagged selenium/standalone-firefox:127.0-geckodriver-0.36-20251101\nTagged selenium/node-firefox:127.0-20251101\nTagged selenium/standalone-firefox:127.0-20251101\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.38.0/firefox_128.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.38.0 20251101 selenium false firefox true\nTagging images for browser firefox, version 4.38.0, build date 20251101, namespace selenium\nSelenium Grid version -> 4.38.0-20251101\nFirefox version -> 128.0.3\nShort Firefox version -> 128.0\nGeckoDriver version -> 0.36.0\nShort GeckoDriver version -> 0.36\nTagged selenium/node-firefox:128.0.3-geckodriver-0.36.0-grid-4.38.0-20251101\nTagged selenium/standalone-firefox:128.0.3-geckodriver-0.36.0-grid-4.38.0-20251101\nTagged selenium/node-firefox:128.0.3-geckodriver-0.36.0-20251101\nTagged selenium/standalone-firefox:128.0.3-geckodriver-0.36.0-20251101\nTagged selenium/node-firefox:128.0.3-20251101\nTagged selenium/standalone-firefox:128.0.3-20251101\nTagged selenium/node-firefox:128.0-geckodriver-0.36-grid-4.38.0-20251101\nTagged selenium/standalone-firefox:128.0-geckodriver-0.36-grid-4.38.0-20251101\nTagged selenium/node-firefox:128.0-geckodriver-0.36-20251101\nTagged selenium/standalone-firefox:128.0-geckodriver-0.36-20251101\nTagged selenium/node-firefox:128.0-20251101\nTagged selenium/standalone-firefox:128.0-20251101\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.38.0/firefox_129.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.38.0 20251101 selenium false firefox true\nTagging images for browser firefox, version 4.38.0, build date 20251101, namespace selenium\nSelenium Grid version -> 4.38.0-20251101\nFirefox version -> 129.0.2\nShort Firefox version -> 129.0\nGeckoDriver version -> 0.36.0\nShort GeckoDriver version -> 0.36\nTagged selenium/node-firefox:129.0.2-geckodriver-0.36.0-grid-4.38.0-20251101\nTagged selenium/standalone-firefox:129.0.2-geckodriver-0.36.0-grid-4.38.0-20251101\nTagged selenium/node-firefox:129.0.2-geckodriver-0.36.0-20251101\nTagged selenium/standalone-firefox:129.0.2-geckodriver-0.36.0-20251101\nTagged selenium/node-firefox:129.0.2-20251101\nTagged selenium/standalone-firefox:129.0.2-20251101\nTagged selenium/node-firefox:129.0-geckodriver-0.36-grid-4.38.0-20251101\nTagged selenium/standalone-firefox:129.0-geckodriver-0.36-grid-4.38.0-20251101\nTagged selenium/node-firefox:129.0-geckodriver-0.36-20251101\nTagged selenium/standalone-firefox:129.0-geckodriver-0.36-20251101\nTagged selenium/node-firefox:129.0-20251101\nTagged selenium/standalone-firefox:129.0-20251101\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.38.0/firefox_130.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.38.0 20251101 selenium false firefox true\nTagging images for browser firefox, version 4.38.0, build date 20251101, namespace selenium\nSelenium Grid version -> 4.38.0-20251101\nFirefox version -> 130.0.1\nShort Firefox version -> 130.0\nGeckoDriver version -> 0.36.0\nShort GeckoDriver version -> 0.36\nTagged selenium/node-firefox:130.0.1-geckodriver-0.36.0-grid-4.38.0-20251101\nTagged selenium/standalone-firefox:130.0.1-geckodriver-0.36.0-grid-4.38.0-20251101\nTagged selenium/node-firefox:130.0.1-geckodriver-0.36.0-20251101\nTagged selenium/standalone-firefox:130.0.1-geckodriver-0.36.0-20251101\nTagged selenium/node-firefox:130.0.1-20251101\nTagged selenium/standalone-firefox:130.0.1-20251101\nTagged selenium/node-firefox:130.0-geckodriver-0.36-grid-4.38.0-20251101\nTagged selenium/standalone-firefox:130.0-geckodriver-0.36-grid-4.38.0-20251101\nTagged selenium/node-firefox:130.0-geckodriver-0.36-20251101\nTagged selenium/standalone-firefox:130.0-geckodriver-0.36-20251101\nTagged selenium/node-firefox:130.0-20251101\nTagged selenium/standalone-firefox:130.0-20251101\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.38.0/firefox_131.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.38.0 20251101 selenium false firefox true\nTagging images for browser firefox, version 4.38.0, build date 20251101, namespace selenium\nSelenium Grid version -> 4.38.0-20251101\nFirefox version -> 131.0.3\nShort Firefox version -> 131.0\nGeckoDriver version -> 0.36.0\nShort GeckoDriver version -> 0.36\nTagged selenium/node-firefox:131.0.3-geckodriver-0.36.0-grid-4.38.0-20251101\nTagged selenium/standalone-firefox:131.0.3-geckodriver-0.36.0-grid-4.38.0-20251101\nTagged selenium/node-firefox:131.0.3-geckodriver-0.36.0-20251101\nTagged selenium/standalone-firefox:131.0.3-geckodriver-0.36.0-20251101\nTagged selenium/node-firefox:131.0.3-20251101\nTagged selenium/standalone-firefox:131.0.3-20251101\nTagged selenium/node-firefox:131.0-geckodriver-0.36-grid-4.38.0-20251101\nTagged selenium/standalone-firefox:131.0-geckodriver-0.36-grid-4.38.0-20251101\nTagged selenium/node-firefox:131.0-geckodriver-0.36-20251101\nTagged selenium/standalone-firefox:131.0-geckodriver-0.36-20251101\nTagged selenium/node-firefox:131.0-20251101\nTagged selenium/standalone-firefox:131.0-20251101\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.38.0/firefox_132.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.38.0 20251101 selenium false firefox true\nTagging images for browser firefox, version 4.38.0, build date 20251101, namespace selenium\nSelenium Grid version -> 4.38.0-20251101\nFirefox version -> 132.0.2\nShort Firefox version -> 132.0\nGeckoDriver version -> 0.36.0\nShort GeckoDriver version -> 0.36\nTagged selenium/node-firefox:132.0.2-geckodriver-0.36.0-grid-4.38.0-20251101\nTagged selenium/standalone-firefox:132.0.2-geckodriver-0.36.0-grid-4.38.0-20251101\nTagged selenium/node-firefox:132.0.2-geckodriver-0.36.0-20251101\nTagged selenium/standalone-firefox:132.0.2-geckodriver-0.36.0-20251101\nTagged selenium/node-firefox:132.0.2-20251101\nTagged selenium/standalone-firefox:132.0.2-20251101\nTagged selenium/node-firefox:132.0-geckodriver-0.36-grid-4.38.0-20251101\nTagged selenium/standalone-firefox:132.0-geckodriver-0.36-grid-4.38.0-20251101\nTagged selenium/node-firefox:132.0-geckodriver-0.36-20251101\nTagged selenium/standalone-firefox:132.0-geckodriver-0.36-20251101\nTagged selenium/node-firefox:132.0-20251101\nTagged selenium/standalone-firefox:132.0-20251101\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.38.0/firefox_133.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.38.0 20251101 selenium false firefox true\nTagging images for browser firefox, version 4.38.0, build date 20251101, namespace selenium\nSelenium Grid version -> 4.38.0-20251101\nFirefox version -> 133.0.3\nShort Firefox version -> 133.0\nGeckoDriver version -> 0.36.0\nShort GeckoDriver version -> 0.36\nTagged selenium/node-firefox:133.0.3-geckodriver-0.36.0-grid-4.38.0-20251101\nTagged selenium/standalone-firefox:133.0.3-geckodriver-0.36.0-grid-4.38.0-20251101\nTagged selenium/node-firefox:133.0.3-geckodriver-0.36.0-20251101\nTagged selenium/standalone-firefox:133.0.3-geckodriver-0.36.0-20251101\nTagged selenium/node-firefox:133.0.3-20251101\nTagged selenium/standalone-firefox:133.0.3-20251101\nTagged selenium/node-firefox:133.0-geckodriver-0.36-grid-4.38.0-20251101\nTagged selenium/standalone-firefox:133.0-geckodriver-0.36-grid-4.38.0-20251101\nTagged selenium/node-firefox:133.0-geckodriver-0.36-20251101\nTagged selenium/standalone-firefox:133.0-geckodriver-0.36-20251101\nTagged selenium/node-firefox:133.0-20251101\nTagged selenium/standalone-firefox:133.0-20251101\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.38.0/firefox_134.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.38.0 20251101 selenium false firefox true\nTagging images for browser firefox, version 4.38.0, build date 20251101, namespace selenium\nSelenium Grid version -> 4.38.0-20251101\nFirefox version -> 134.0.2\nShort Firefox version -> 134.0\nGeckoDriver version -> 0.36.0\nShort GeckoDriver version -> 0.36\nTagged selenium/node-firefox:134.0.2-geckodriver-0.36.0-grid-4.38.0-20251101\nTagged selenium/standalone-firefox:134.0.2-geckodriver-0.36.0-grid-4.38.0-20251101\nTagged selenium/node-firefox:134.0.2-geckodriver-0.36.0-20251101\nTagged selenium/standalone-firefox:134.0.2-geckodriver-0.36.0-20251101\nTagged selenium/node-firefox:134.0.2-20251101\nTagged selenium/standalone-firefox:134.0.2-20251101\nTagged selenium/node-firefox:134.0-geckodriver-0.36-grid-4.38.0-20251101\nTagged selenium/standalone-firefox:134.0-geckodriver-0.36-grid-4.38.0-20251101\nTagged selenium/node-firefox:134.0-geckodriver-0.36-20251101\nTagged selenium/standalone-firefox:134.0-geckodriver-0.36-20251101\nTagged selenium/node-firefox:134.0-20251101\nTagged selenium/standalone-firefox:134.0-20251101\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.38.0/firefox_135.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.38.0 20251101 selenium false firefox true\nTagging images for browser firefox, version 4.38.0, build date 20251101, namespace selenium\nSelenium Grid version -> 4.38.0-20251101\nFirefox version -> 135.0.1\nShort Firefox version -> 135.0\nGeckoDriver version -> 0.36.0\nShort GeckoDriver version -> 0.36\nTagged selenium/node-firefox:135.0.1-geckodriver-0.36.0-grid-4.38.0-20251101\nTagged selenium/standalone-firefox:135.0.1-geckodriver-0.36.0-grid-4.38.0-20251101\nTagged selenium/node-firefox:135.0.1-geckodriver-0.36.0-20251101\nTagged selenium/standalone-firefox:135.0.1-geckodriver-0.36.0-20251101\nTagged selenium/node-firefox:135.0.1-20251101\nTagged selenium/standalone-firefox:135.0.1-20251101\nTagged selenium/node-firefox:135.0-geckodriver-0.36-grid-4.38.0-20251101\nTagged selenium/standalone-firefox:135.0-geckodriver-0.36-grid-4.38.0-20251101\nTagged selenium/node-firefox:135.0-geckodriver-0.36-20251101\nTagged selenium/standalone-firefox:135.0-geckodriver-0.36-20251101\nTagged selenium/node-firefox:135.0-20251101\nTagged selenium/standalone-firefox:135.0-20251101\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.38.0/firefox_136.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.38.0 20251101 selenium false firefox true\nTagging images for browser firefox, version 4.38.0, build date 20251101, namespace selenium\nSelenium Grid version -> 4.38.0-20251101\nFirefox version -> 136.0.4\nShort Firefox version -> 136.0\nGeckoDriver version -> 0.36.0\nShort GeckoDriver version -> 0.36\nTagged selenium/node-firefox:136.0.4-geckodriver-0.36.0-grid-4.38.0-20251101\nTagged selenium/standalone-firefox:136.0.4-geckodriver-0.36.0-grid-4.38.0-20251101\nTagged selenium/node-firefox:136.0.4-geckodriver-0.36.0-20251101\nTagged selenium/standalone-firefox:136.0.4-geckodriver-0.36.0-20251101\nTagged selenium/node-firefox:136.0.4-20251101\nTagged selenium/standalone-firefox:136.0.4-20251101\nTagged selenium/node-firefox:136.0-geckodriver-0.36-grid-4.38.0-20251101\nTagged selenium/standalone-firefox:136.0-geckodriver-0.36-grid-4.38.0-20251101\nTagged selenium/node-firefox:136.0-geckodriver-0.36-20251101\nTagged selenium/standalone-firefox:136.0-geckodriver-0.36-20251101\nTagged selenium/node-firefox:136.0-20251101\nTagged selenium/standalone-firefox:136.0-20251101\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.38.0/firefox_137.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.38.0 20251101 selenium false firefox true\nTagging images for browser firefox, version 4.38.0, build date 20251101, namespace selenium\nSelenium Grid version -> 4.38.0-20251101\nFirefox version -> 137.0.2\nShort Firefox version -> 137.0\nGeckoDriver version -> 0.36.0\nShort GeckoDriver version -> 0.36\nTagged selenium/node-firefox:137.0.2-geckodriver-0.36.0-grid-4.38.0-20251101\nTagged selenium/standalone-firefox:137.0.2-geckodriver-0.36.0-grid-4.38.0-20251101\nTagged selenium/node-firefox:137.0.2-geckodriver-0.36.0-20251101\nTagged selenium/standalone-firefox:137.0.2-geckodriver-0.36.0-20251101\nTagged selenium/node-firefox:137.0.2-20251101\nTagged selenium/standalone-firefox:137.0.2-20251101\nTagged selenium/node-firefox:137.0-geckodriver-0.36-grid-4.38.0-20251101\nTagged selenium/standalone-firefox:137.0-geckodriver-0.36-grid-4.38.0-20251101\nTagged selenium/node-firefox:137.0-geckodriver-0.36-20251101\nTagged selenium/standalone-firefox:137.0-geckodriver-0.36-20251101\nTagged selenium/node-firefox:137.0-20251101\nTagged selenium/standalone-firefox:137.0-20251101\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.38.0/firefox_138.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.38.0 20251101 selenium false firefox true\nTagging images for browser firefox, version 4.38.0, build date 20251101, namespace selenium\nSelenium Grid version -> 4.38.0-20251101\nFirefox version -> 138.0.4\nShort Firefox version -> 138.0\nGeckoDriver version -> 0.36.0\nShort GeckoDriver version -> 0.36\nTagged selenium/node-firefox:138.0.4-geckodriver-0.36.0-grid-4.38.0-20251101\nTagged selenium/standalone-firefox:138.0.4-geckodriver-0.36.0-grid-4.38.0-20251101\nTagged selenium/node-firefox:138.0.4-geckodriver-0.36.0-20251101\nTagged selenium/standalone-firefox:138.0.4-geckodriver-0.36.0-20251101\nTagged selenium/node-firefox:138.0.4-20251101\nTagged selenium/standalone-firefox:138.0.4-20251101\nTagged selenium/node-firefox:138.0-geckodriver-0.36-grid-4.38.0-20251101\nTagged selenium/standalone-firefox:138.0-geckodriver-0.36-grid-4.38.0-20251101\nTagged selenium/node-firefox:138.0-geckodriver-0.36-20251101\nTagged selenium/standalone-firefox:138.0-geckodriver-0.36-20251101\nTagged selenium/node-firefox:138.0-20251101\nTagged selenium/standalone-firefox:138.0-20251101\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.38.0/firefox_139.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.38.0 20251101 selenium false firefox true\nTagging images for browser firefox, version 4.38.0, build date 20251101, namespace selenium\nSelenium Grid version -> 4.38.0-20251101\nFirefox version -> 139.0.4\nShort Firefox version -> 139.0\nGeckoDriver version -> 0.36.0\nShort GeckoDriver version -> 0.36\nTagged selenium/node-firefox:139.0.4-geckodriver-0.36.0-grid-4.38.0-20251101\nTagged selenium/standalone-firefox:139.0.4-geckodriver-0.36.0-grid-4.38.0-20251101\nTagged selenium/node-firefox:139.0.4-geckodriver-0.36.0-20251101\nTagged selenium/standalone-firefox:139.0.4-geckodriver-0.36.0-20251101\nTagged selenium/node-firefox:139.0.4-20251101\nTagged selenium/standalone-firefox:139.0.4-20251101\nTagged selenium/node-firefox:139.0-geckodriver-0.36-grid-4.38.0-20251101\nTagged selenium/standalone-firefox:139.0-geckodriver-0.36-grid-4.38.0-20251101\nTagged selenium/node-firefox:139.0-geckodriver-0.36-20251101\nTagged selenium/standalone-firefox:139.0-geckodriver-0.36-20251101\nTagged selenium/node-firefox:139.0-20251101\nTagged selenium/standalone-firefox:139.0-20251101\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.38.0/firefox_140.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.38.0 20251101 selenium false firefox true\nTagging images for browser firefox, version 4.38.0, build date 20251101, namespace selenium\nSelenium Grid version -> 4.38.0-20251101\nFirefox version -> 140.0.4\nShort Firefox version -> 140.0\nGeckoDriver version -> 0.36.0\nShort GeckoDriver version -> 0.36\nTagged selenium/node-firefox:140.0.4-geckodriver-0.36.0-grid-4.38.0-20251101\nTagged selenium/standalone-firefox:140.0.4-geckodriver-0.36.0-grid-4.38.0-20251101\nTagged selenium/node-firefox:140.0.4-geckodriver-0.36.0-20251101\nTagged selenium/standalone-firefox:140.0.4-geckodriver-0.36.0-20251101\nTagged selenium/node-firefox:140.0.4-20251101\nTagged selenium/standalone-firefox:140.0.4-20251101\nTagged selenium/node-firefox:140.0-geckodriver-0.36-grid-4.38.0-20251101\nTagged selenium/standalone-firefox:140.0-geckodriver-0.36-grid-4.38.0-20251101\nTagged selenium/node-firefox:140.0-geckodriver-0.36-20251101\nTagged selenium/standalone-firefox:140.0-geckodriver-0.36-20251101\nTagged selenium/node-firefox:140.0-20251101\nTagged selenium/standalone-firefox:140.0-20251101\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.38.0/firefox_141.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.38.0 20251101 selenium false firefox true\nTagging images for browser firefox, version 4.38.0, build date 20251101, namespace selenium\nSelenium Grid version -> 4.38.0-20251101\nFirefox version -> 141.0.3\nShort Firefox version -> 141.0\nGeckoDriver version -> 0.36.0\nShort GeckoDriver version -> 0.36\nTagged selenium/node-firefox:141.0.3-geckodriver-0.36.0-grid-4.38.0-20251101\nTagged selenium/standalone-firefox:141.0.3-geckodriver-0.36.0-grid-4.38.0-20251101\nTagged selenium/node-firefox:141.0.3-geckodriver-0.36.0-20251101\nTagged selenium/standalone-firefox:141.0.3-geckodriver-0.36.0-20251101\nTagged selenium/node-firefox:141.0.3-20251101\nTagged selenium/standalone-firefox:141.0.3-20251101\nTagged selenium/node-firefox:141.0-geckodriver-0.36-grid-4.38.0-20251101\nTagged selenium/standalone-firefox:141.0-geckodriver-0.36-grid-4.38.0-20251101\nTagged selenium/node-firefox:141.0-geckodriver-0.36-20251101\nTagged selenium/standalone-firefox:141.0-geckodriver-0.36-20251101\nTagged selenium/node-firefox:141.0-20251101\nTagged selenium/standalone-firefox:141.0-20251101\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.38.0/firefox_142.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.38.0 20251101 selenium false firefox true\nTagging images for browser firefox, version 4.38.0, build date 20251101, namespace selenium\nSelenium Grid version -> 4.38.0-20251101\nFirefox version -> 142.0.1\nShort Firefox version -> 142.0\nGeckoDriver version -> 0.36.0\nShort GeckoDriver version -> 0.36\nTagged selenium/node-firefox:142.0.1-geckodriver-0.36.0-grid-4.38.0-20251101\nTagged selenium/standalone-firefox:142.0.1-geckodriver-0.36.0-grid-4.38.0-20251101\nTagged selenium/node-firefox:142.0.1-geckodriver-0.36.0-20251101\nTagged selenium/standalone-firefox:142.0.1-geckodriver-0.36.0-20251101\nTagged selenium/node-firefox:142.0.1-20251101\nTagged selenium/standalone-firefox:142.0.1-20251101\nTagged selenium/node-firefox:142.0-geckodriver-0.36-grid-4.38.0-20251101\nTagged selenium/standalone-firefox:142.0-geckodriver-0.36-grid-4.38.0-20251101\nTagged selenium/node-firefox:142.0-geckodriver-0.36-20251101\nTagged selenium/standalone-firefox:142.0-geckodriver-0.36-20251101\nTagged selenium/node-firefox:142.0-20251101\nTagged selenium/standalone-firefox:142.0-20251101\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.38.0/firefox_143.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.38.0 20251101 selenium false firefox true\nTagging images for browser firefox, version 4.38.0, build date 20251101, namespace selenium\nSelenium Grid version -> 4.38.0-20251101\nFirefox version -> 143.0.4\nShort Firefox version -> 143.0\nGeckoDriver version -> 0.36.0\nShort GeckoDriver version -> 0.36\nTagged selenium/node-firefox:143.0.4-geckodriver-0.36.0-grid-4.38.0-20251101\nTagged selenium/standalone-firefox:143.0.4-geckodriver-0.36.0-grid-4.38.0-20251101\nTagged selenium/node-firefox:143.0.4-geckodriver-0.36.0-20251101\nTagged selenium/standalone-firefox:143.0.4-geckodriver-0.36.0-20251101\nTagged selenium/node-firefox:143.0.4-20251101\nTagged selenium/standalone-firefox:143.0.4-20251101\nTagged selenium/node-firefox:143.0-geckodriver-0.36-grid-4.38.0-20251101\nTagged selenium/standalone-firefox:143.0-geckodriver-0.36-grid-4.38.0-20251101\nTagged selenium/node-firefox:143.0-geckodriver-0.36-20251101\nTagged selenium/standalone-firefox:143.0-geckodriver-0.36-20251101\nTagged selenium/node-firefox:143.0-20251101\nTagged selenium/standalone-firefox:143.0-20251101\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.38.0/firefox_144.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.38.0 20251101 selenium false firefox true\nTagging images for browser firefox, version 4.38.0, build date 20251101, namespace selenium\nSelenium Grid version -> 4.38.0-20251101\nFirefox version -> 144.0.2\nShort Firefox version -> 144.0\nGeckoDriver version -> 0.36.0\nShort GeckoDriver version -> 0.36\nTagged selenium/node-firefox:144.0.2-geckodriver-0.36.0-grid-4.38.0-20251101\nTagged selenium/standalone-firefox:144.0.2-geckodriver-0.36.0-grid-4.38.0-20251101\nTagged selenium/node-firefox:144.0.2-geckodriver-0.36.0-20251101\nTagged selenium/standalone-firefox:144.0.2-geckodriver-0.36.0-20251101\nTagged selenium/node-firefox:144.0.2-20251101\nTagged selenium/standalone-firefox:144.0.2-20251101\nTagged selenium/node-firefox:144.0-geckodriver-0.36-grid-4.38.0-20251101\nTagged selenium/standalone-firefox:144.0-geckodriver-0.36-grid-4.38.0-20251101\nTagged selenium/node-firefox:144.0-geckodriver-0.36-20251101\nTagged selenium/standalone-firefox:144.0-geckodriver-0.36-20251101\nTagged selenium/node-firefox:144.0-20251101\nTagged selenium/standalone-firefox:144.0-20251101\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.38.0/firefox_98.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.38.0 20251101 selenium false firefox true\nTagging images for browser firefox, version 4.38.0, build date 20251101, namespace selenium\nSelenium Grid version -> 4.38.0-20251101\nFirefox version -> 98.0.2\nShort Firefox version -> 98.0\nGeckoDriver version -> 0.36.0\nShort GeckoDriver version -> 0.36\nTagged selenium/node-firefox:98.0.2-geckodriver-0.36.0-grid-4.38.0-20251101\nTagged selenium/standalone-firefox:98.0.2-geckodriver-0.36.0-grid-4.38.0-20251101\nTagged selenium/node-firefox:98.0.2-geckodriver-0.36.0-20251101\nTagged selenium/standalone-firefox:98.0.2-geckodriver-0.36.0-20251101\nTagged selenium/node-firefox:98.0.2-20251101\nTagged selenium/standalone-firefox:98.0.2-20251101\nTagged selenium/node-firefox:98.0-geckodriver-0.36-grid-4.38.0-20251101\nTagged selenium/standalone-firefox:98.0-geckodriver-0.36-grid-4.38.0-20251101\nTagged selenium/node-firefox:98.0-geckodriver-0.36-20251101\nTagged selenium/standalone-firefox:98.0-geckodriver-0.36-20251101\nTagged selenium/node-firefox:98.0-20251101\nTagged selenium/standalone-firefox:98.0-20251101\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.38.0/firefox_99.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.38.0 20251101 selenium false firefox true\nTagging images for browser firefox, version 4.38.0, build date 20251101, namespace selenium\nSelenium Grid version -> 4.38.0-20251101\nFirefox version -> 99.0.1\nShort Firefox version -> 99.0\nGeckoDriver version -> 0.36.0\nShort GeckoDriver version -> 0.36\nTagged selenium/node-firefox:99.0.1-geckodriver-0.36.0-grid-4.38.0-20251101\nTagged selenium/standalone-firefox:99.0.1-geckodriver-0.36.0-grid-4.38.0-20251101\nTagged selenium/node-firefox:99.0.1-geckodriver-0.36.0-20251101\nTagged selenium/standalone-firefox:99.0.1-geckodriver-0.36.0-20251101\nTagged selenium/node-firefox:99.0.1-20251101\nTagged selenium/standalone-firefox:99.0.1-20251101\nTagged selenium/node-firefox:99.0-geckodriver-0.36-grid-4.38.0-20251101\nTagged selenium/standalone-firefox:99.0-geckodriver-0.36-grid-4.38.0-20251101\nTagged selenium/node-firefox:99.0-geckodriver-0.36-20251101\nTagged selenium/standalone-firefox:99.0-geckodriver-0.36-20251101\nTagged selenium/node-firefox:99.0-20251101\nTagged selenium/standalone-firefox:99.0-20251101\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.39.0/chrome-for-testing_113.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.39.0 20251212 selenium false chrome-for-testing true\nTagging images for browser chrome-for-testing, version 4.39.0, build date 20251212, namespace selenium\nSelenium Grid version -> 4.39.0-20251212\nChrome for Testing version -> 113.0.5672.63\nShort Chrome for Testing version -> 113.0\nChromeDriver version -> 113.0.5672.63\nShort ChromeDriver version -> 113.0\nTagged selenium/node-chrome-for-testing:113.0.5672.63-chromedriver-113.0.5672.63-grid-4.39.0-20251212\nTagged selenium/standalone-chrome-for-testing:113.0.5672.63-chromedriver-113.0.5672.63-grid-4.39.0-20251212\nTagged selenium/node-chrome-for-testing:113.0.5672.63-chromedriver-113.0.5672.63-20251212\nTagged selenium/standalone-chrome-for-testing:113.0.5672.63-chromedriver-113.0.5672.63-20251212\nTagged selenium/node-chrome-for-testing:113.0.5672.63-20251212\nTagged selenium/standalone-chrome-for-testing:113.0.5672.63-20251212\nTagged selenium/node-chrome-for-testing:113.0-chromedriver-113.0-grid-4.39.0-20251212\nTagged selenium/standalone-chrome-for-testing:113.0-chromedriver-113.0-grid-4.39.0-20251212\nTagged selenium/node-chrome-for-testing:113.0-chromedriver-113.0-20251212\nTagged selenium/standalone-chrome-for-testing:113.0-chromedriver-113.0-20251212\nTagged selenium/node-chrome-for-testing:113.0-20251212\nTagged selenium/standalone-chrome-for-testing:113.0-20251212\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.39.0/chrome-for-testing_114.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.39.0 20251212 selenium false chrome-for-testing true\nTagging images for browser chrome-for-testing, version 4.39.0, build date 20251212, namespace selenium\nSelenium Grid version -> 4.39.0-20251212\nChrome for Testing version -> 114.0.5735.133\nShort Chrome for Testing version -> 114.0\nChromeDriver version -> 114.0.5735.90\nShort ChromeDriver version -> 114.0\nTagged selenium/node-chrome-for-testing:114.0.5735.133-chromedriver-114.0.5735.90-grid-4.39.0-20251212\nTagged selenium/standalone-chrome-for-testing:114.0.5735.133-chromedriver-114.0.5735.90-grid-4.39.0-20251212\nTagged selenium/node-chrome-for-testing:114.0.5735.133-chromedriver-114.0.5735.90-20251212\nTagged selenium/standalone-chrome-for-testing:114.0.5735.133-chromedriver-114.0.5735.90-20251212\nTagged selenium/node-chrome-for-testing:114.0.5735.133-20251212\nTagged selenium/standalone-chrome-for-testing:114.0.5735.133-20251212\nTagged selenium/node-chrome-for-testing:114.0-chromedriver-114.0-grid-4.39.0-20251212\nTagged selenium/standalone-chrome-for-testing:114.0-chromedriver-114.0-grid-4.39.0-20251212\nTagged selenium/node-chrome-for-testing:114.0-chromedriver-114.0-20251212\nTagged selenium/standalone-chrome-for-testing:114.0-chromedriver-114.0-20251212\nTagged selenium/node-chrome-for-testing:114.0-20251212\nTagged selenium/standalone-chrome-for-testing:114.0-20251212\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.39.0/chrome-for-testing_115.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.39.0 20251212 selenium false chrome-for-testing true\nTagging images for browser chrome-for-testing, version 4.39.0, build date 20251212, namespace selenium\nSelenium Grid version -> 4.39.0-20251212\nChrome for Testing version -> 115.0.5790.170\nShort Chrome for Testing version -> 115.0\nChromeDriver version -> 115.0.5790.170\nShort ChromeDriver version -> 115.0\nTagged selenium/node-chrome-for-testing:115.0.5790.170-chromedriver-115.0.5790.170-grid-4.39.0-20251212\nTagged selenium/standalone-chrome-for-testing:115.0.5790.170-chromedriver-115.0.5790.170-grid-4.39.0-20251212\nTagged selenium/node-chrome-for-testing:115.0.5790.170-chromedriver-115.0.5790.170-20251212\nTagged selenium/standalone-chrome-for-testing:115.0.5790.170-chromedriver-115.0.5790.170-20251212\nTagged selenium/node-chrome-for-testing:115.0.5790.170-20251212\nTagged selenium/standalone-chrome-for-testing:115.0.5790.170-20251212\nTagged selenium/node-chrome-for-testing:115.0-chromedriver-115.0-grid-4.39.0-20251212\nTagged selenium/standalone-chrome-for-testing:115.0-chromedriver-115.0-grid-4.39.0-20251212\nTagged selenium/node-chrome-for-testing:115.0-chromedriver-115.0-20251212\nTagged selenium/standalone-chrome-for-testing:115.0-chromedriver-115.0-20251212\nTagged selenium/node-chrome-for-testing:115.0-20251212\nTagged selenium/standalone-chrome-for-testing:115.0-20251212\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.39.0/chrome-for-testing_116.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.39.0 20251212 selenium false chrome-for-testing true\nTagging images for browser chrome-for-testing, version 4.39.0, build date 20251212, namespace selenium\nSelenium Grid version -> 4.39.0-20251212\nChrome for Testing version -> 116.0.5845.96\nShort Chrome for Testing version -> 116.0\nChromeDriver version -> 116.0.5845.96\nShort ChromeDriver version -> 116.0\nTagged selenium/node-chrome-for-testing:116.0.5845.96-chromedriver-116.0.5845.96-grid-4.39.0-20251212\nTagged selenium/standalone-chrome-for-testing:116.0.5845.96-chromedriver-116.0.5845.96-grid-4.39.0-20251212\nTagged selenium/node-chrome-for-testing:116.0.5845.96-chromedriver-116.0.5845.96-20251212\nTagged selenium/standalone-chrome-for-testing:116.0.5845.96-chromedriver-116.0.5845.96-20251212\nTagged selenium/node-chrome-for-testing:116.0.5845.96-20251212\nTagged selenium/standalone-chrome-for-testing:116.0.5845.96-20251212\nTagged selenium/node-chrome-for-testing:116.0-chromedriver-116.0-grid-4.39.0-20251212\nTagged selenium/standalone-chrome-for-testing:116.0-chromedriver-116.0-grid-4.39.0-20251212\nTagged selenium/node-chrome-for-testing:116.0-chromedriver-116.0-20251212\nTagged selenium/standalone-chrome-for-testing:116.0-chromedriver-116.0-20251212\nTagged selenium/node-chrome-for-testing:116.0-20251212\nTagged selenium/standalone-chrome-for-testing:116.0-20251212\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.39.0/chrome-for-testing_117.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.39.0 20251212 selenium false chrome-for-testing true\nTagging images for browser chrome-for-testing, version 4.39.0, build date 20251212, namespace selenium\nSelenium Grid version -> 4.39.0-20251212\nChrome for Testing version -> 117.0.5938.149\nShort Chrome for Testing version -> 117.0\nChromeDriver version -> 117.0.5938.149\nShort ChromeDriver version -> 117.0\nTagged selenium/node-chrome-for-testing:117.0.5938.149-chromedriver-117.0.5938.149-grid-4.39.0-20251212\nTagged selenium/standalone-chrome-for-testing:117.0.5938.149-chromedriver-117.0.5938.149-grid-4.39.0-20251212\nTagged selenium/node-chrome-for-testing:117.0.5938.149-chromedriver-117.0.5938.149-20251212\nTagged selenium/standalone-chrome-for-testing:117.0.5938.149-chromedriver-117.0.5938.149-20251212\nTagged selenium/node-chrome-for-testing:117.0.5938.149-20251212\nTagged selenium/standalone-chrome-for-testing:117.0.5938.149-20251212\nTagged selenium/node-chrome-for-testing:117.0-chromedriver-117.0-grid-4.39.0-20251212\nTagged selenium/standalone-chrome-for-testing:117.0-chromedriver-117.0-grid-4.39.0-20251212\nTagged selenium/node-chrome-for-testing:117.0-chromedriver-117.0-20251212\nTagged selenium/standalone-chrome-for-testing:117.0-chromedriver-117.0-20251212\nTagged selenium/node-chrome-for-testing:117.0-20251212\nTagged selenium/standalone-chrome-for-testing:117.0-20251212\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.39.0/chrome-for-testing_118.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.39.0 20251212 selenium false chrome-for-testing true\nTagging images for browser chrome-for-testing, version 4.39.0, build date 20251212, namespace selenium\nSelenium Grid version -> 4.39.0-20251212\nChrome for Testing version -> 118.0.5993.70\nShort Chrome for Testing version -> 118.0\nChromeDriver version -> 118.0.5993.70\nShort ChromeDriver version -> 118.0\nTagged selenium/node-chrome-for-testing:118.0.5993.70-chromedriver-118.0.5993.70-grid-4.39.0-20251212\nTagged selenium/standalone-chrome-for-testing:118.0.5993.70-chromedriver-118.0.5993.70-grid-4.39.0-20251212\nTagged selenium/node-chrome-for-testing:118.0.5993.70-chromedriver-118.0.5993.70-20251212\nTagged selenium/standalone-chrome-for-testing:118.0.5993.70-chromedriver-118.0.5993.70-20251212\nTagged selenium/node-chrome-for-testing:118.0.5993.70-20251212\nTagged selenium/standalone-chrome-for-testing:118.0.5993.70-20251212\nTagged selenium/node-chrome-for-testing:118.0-chromedriver-118.0-grid-4.39.0-20251212\nTagged selenium/standalone-chrome-for-testing:118.0-chromedriver-118.0-grid-4.39.0-20251212\nTagged selenium/node-chrome-for-testing:118.0-chromedriver-118.0-20251212\nTagged selenium/standalone-chrome-for-testing:118.0-chromedriver-118.0-20251212\nTagged selenium/node-chrome-for-testing:118.0-20251212\nTagged selenium/standalone-chrome-for-testing:118.0-20251212\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.39.0/chrome-for-testing_119.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.39.0 20251212 selenium false chrome-for-testing true\nTagging images for browser chrome-for-testing, version 4.39.0, build date 20251212, namespace selenium\nSelenium Grid version -> 4.39.0-20251212\nChrome for Testing version -> 119.0.6045.105\nShort Chrome for Testing version -> 119.0\nChromeDriver version -> 119.0.6045.105\nShort ChromeDriver version -> 119.0\nTagged selenium/node-chrome-for-testing:119.0.6045.105-chromedriver-119.0.6045.105-grid-4.39.0-20251212\nTagged selenium/standalone-chrome-for-testing:119.0.6045.105-chromedriver-119.0.6045.105-grid-4.39.0-20251212\nTagged selenium/node-chrome-for-testing:119.0.6045.105-chromedriver-119.0.6045.105-20251212\nTagged selenium/standalone-chrome-for-testing:119.0.6045.105-chromedriver-119.0.6045.105-20251212\nTagged selenium/node-chrome-for-testing:119.0.6045.105-20251212\nTagged selenium/standalone-chrome-for-testing:119.0.6045.105-20251212\nTagged selenium/node-chrome-for-testing:119.0-chromedriver-119.0-grid-4.39.0-20251212\nTagged selenium/standalone-chrome-for-testing:119.0-chromedriver-119.0-grid-4.39.0-20251212\nTagged selenium/node-chrome-for-testing:119.0-chromedriver-119.0-20251212\nTagged selenium/standalone-chrome-for-testing:119.0-chromedriver-119.0-20251212\nTagged selenium/node-chrome-for-testing:119.0-20251212\nTagged selenium/standalone-chrome-for-testing:119.0-20251212\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.39.0/chrome-for-testing_120.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.39.0 20251212 selenium false chrome-for-testing true\nTagging images for browser chrome-for-testing, version 4.39.0, build date 20251212, namespace selenium\nSelenium Grid version -> 4.39.0-20251212\nChrome for Testing version -> 120.0.6099.109\nShort Chrome for Testing version -> 120.0\nChromeDriver version -> 120.0.6099.109\nShort ChromeDriver version -> 120.0\nTagged selenium/node-chrome-for-testing:120.0.6099.109-chromedriver-120.0.6099.109-grid-4.39.0-20251212\nTagged selenium/standalone-chrome-for-testing:120.0.6099.109-chromedriver-120.0.6099.109-grid-4.39.0-20251212\nTagged selenium/node-chrome-for-testing:120.0.6099.109-chromedriver-120.0.6099.109-20251212\nTagged selenium/standalone-chrome-for-testing:120.0.6099.109-chromedriver-120.0.6099.109-20251212\nTagged selenium/node-chrome-for-testing:120.0.6099.109-20251212\nTagged selenium/standalone-chrome-for-testing:120.0.6099.109-20251212\nTagged selenium/node-chrome-for-testing:120.0-chromedriver-120.0-grid-4.39.0-20251212\nTagged selenium/standalone-chrome-for-testing:120.0-chromedriver-120.0-grid-4.39.0-20251212\nTagged selenium/node-chrome-for-testing:120.0-chromedriver-120.0-20251212\nTagged selenium/standalone-chrome-for-testing:120.0-chromedriver-120.0-20251212\nTagged selenium/node-chrome-for-testing:120.0-20251212\nTagged selenium/standalone-chrome-for-testing:120.0-20251212\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.39.0/chrome-for-testing_121.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.39.0 20251212 selenium false chrome-for-testing true\nTagging images for browser chrome-for-testing, version 4.39.0, build date 20251212, namespace selenium\nSelenium Grid version -> 4.39.0-20251212\nChrome for Testing version -> 121.0.6167.184\nShort Chrome for Testing version -> 121.0\nChromeDriver version -> 121.0.6167.184\nShort ChromeDriver version -> 121.0\nTagged selenium/node-chrome-for-testing:121.0.6167.184-chromedriver-121.0.6167.184-grid-4.39.0-20251212\nTagged selenium/standalone-chrome-for-testing:121.0.6167.184-chromedriver-121.0.6167.184-grid-4.39.0-20251212\nTagged selenium/node-chrome-for-testing:121.0.6167.184-chromedriver-121.0.6167.184-20251212\nTagged selenium/standalone-chrome-for-testing:121.0.6167.184-chromedriver-121.0.6167.184-20251212\nTagged selenium/node-chrome-for-testing:121.0.6167.184-20251212\nTagged selenium/standalone-chrome-for-testing:121.0.6167.184-20251212\nTagged selenium/node-chrome-for-testing:121.0-chromedriver-121.0-grid-4.39.0-20251212\nTagged selenium/standalone-chrome-for-testing:121.0-chromedriver-121.0-grid-4.39.0-20251212\nTagged selenium/node-chrome-for-testing:121.0-chromedriver-121.0-20251212\nTagged selenium/standalone-chrome-for-testing:121.0-chromedriver-121.0-20251212\nTagged selenium/node-chrome-for-testing:121.0-20251212\nTagged selenium/standalone-chrome-for-testing:121.0-20251212\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.39.0/chrome-for-testing_122.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.39.0 20251212 selenium false chrome-for-testing true\nTagging images for browser chrome-for-testing, version 4.39.0, build date 20251212, namespace selenium\nSelenium Grid version -> 4.39.0-20251212\nChrome for Testing version -> 122.0.6261.128\nShort Chrome for Testing version -> 122.0\nChromeDriver version -> 122.0.6261.128\nShort ChromeDriver version -> 122.0\nTagged selenium/node-chrome-for-testing:122.0.6261.128-chromedriver-122.0.6261.128-grid-4.39.0-20251212\nTagged selenium/standalone-chrome-for-testing:122.0.6261.128-chromedriver-122.0.6261.128-grid-4.39.0-20251212\nTagged selenium/node-chrome-for-testing:122.0.6261.128-chromedriver-122.0.6261.128-20251212\nTagged selenium/standalone-chrome-for-testing:122.0.6261.128-chromedriver-122.0.6261.128-20251212\nTagged selenium/node-chrome-for-testing:122.0.6261.128-20251212\nTagged selenium/standalone-chrome-for-testing:122.0.6261.128-20251212\nTagged selenium/node-chrome-for-testing:122.0-chromedriver-122.0-grid-4.39.0-20251212\nTagged selenium/standalone-chrome-for-testing:122.0-chromedriver-122.0-grid-4.39.0-20251212\nTagged selenium/node-chrome-for-testing:122.0-chromedriver-122.0-20251212\nTagged selenium/standalone-chrome-for-testing:122.0-chromedriver-122.0-20251212\nTagged selenium/node-chrome-for-testing:122.0-20251212\nTagged selenium/standalone-chrome-for-testing:122.0-20251212\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.39.0/chrome-for-testing_123.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.39.0 20251212 selenium false chrome-for-testing true\nTagging images for browser chrome-for-testing, version 4.39.0, build date 20251212, namespace selenium\nSelenium Grid version -> 4.39.0-20251212\nChrome for Testing version -> 123.0.6312.122\nShort Chrome for Testing version -> 123.0\nChromeDriver version -> 123.0.6312.122\nShort ChromeDriver version -> 123.0\nTagged selenium/node-chrome-for-testing:123.0.6312.122-chromedriver-123.0.6312.122-grid-4.39.0-20251212\nTagged selenium/standalone-chrome-for-testing:123.0.6312.122-chromedriver-123.0.6312.122-grid-4.39.0-20251212\nTagged selenium/node-chrome-for-testing:123.0.6312.122-chromedriver-123.0.6312.122-20251212\nTagged selenium/standalone-chrome-for-testing:123.0.6312.122-chromedriver-123.0.6312.122-20251212\nTagged selenium/node-chrome-for-testing:123.0.6312.122-20251212\nTagged selenium/standalone-chrome-for-testing:123.0.6312.122-20251212\nTagged selenium/node-chrome-for-testing:123.0-chromedriver-123.0-grid-4.39.0-20251212\nTagged selenium/standalone-chrome-for-testing:123.0-chromedriver-123.0-grid-4.39.0-20251212\nTagged selenium/node-chrome-for-testing:123.0-chromedriver-123.0-20251212\nTagged selenium/standalone-chrome-for-testing:123.0-chromedriver-123.0-20251212\nTagged selenium/node-chrome-for-testing:123.0-20251212\nTagged selenium/standalone-chrome-for-testing:123.0-20251212\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.39.0/chrome-for-testing_124.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.39.0 20251212 selenium false chrome-for-testing true\nTagging images for browser chrome-for-testing, version 4.39.0, build date 20251212, namespace selenium\nSelenium Grid version -> 4.39.0-20251212\nChrome for Testing version -> 124.0.6367.207\nShort Chrome for Testing version -> 124.0\nChromeDriver version -> 124.0.6367.207\nShort ChromeDriver version -> 124.0\nTagged selenium/node-chrome-for-testing:124.0.6367.207-chromedriver-124.0.6367.207-grid-4.39.0-20251212\nTagged selenium/standalone-chrome-for-testing:124.0.6367.207-chromedriver-124.0.6367.207-grid-4.39.0-20251212\nTagged selenium/node-chrome-for-testing:124.0.6367.207-chromedriver-124.0.6367.207-20251212\nTagged selenium/standalone-chrome-for-testing:124.0.6367.207-chromedriver-124.0.6367.207-20251212\nTagged selenium/node-chrome-for-testing:124.0.6367.207-20251212\nTagged selenium/standalone-chrome-for-testing:124.0.6367.207-20251212\nTagged selenium/node-chrome-for-testing:124.0-chromedriver-124.0-grid-4.39.0-20251212\nTagged selenium/standalone-chrome-for-testing:124.0-chromedriver-124.0-grid-4.39.0-20251212\nTagged selenium/node-chrome-for-testing:124.0-chromedriver-124.0-20251212\nTagged selenium/standalone-chrome-for-testing:124.0-chromedriver-124.0-20251212\nTagged selenium/node-chrome-for-testing:124.0-20251212\nTagged selenium/standalone-chrome-for-testing:124.0-20251212\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.39.0/chrome-for-testing_125.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.39.0 20251212 selenium false chrome-for-testing true\nTagging images for browser chrome-for-testing, version 4.39.0, build date 20251212, namespace selenium\nSelenium Grid version -> 4.39.0-20251212\nChrome for Testing version -> 125.0.6422.141\nShort Chrome for Testing version -> 125.0\nChromeDriver version -> 125.0.6422.141\nShort ChromeDriver version -> 125.0\nTagged selenium/node-chrome-for-testing:125.0.6422.141-chromedriver-125.0.6422.141-grid-4.39.0-20251212\nTagged selenium/standalone-chrome-for-testing:125.0.6422.141-chromedriver-125.0.6422.141-grid-4.39.0-20251212\nTagged selenium/node-chrome-for-testing:125.0.6422.141-chromedriver-125.0.6422.141-20251212\nTagged selenium/standalone-chrome-for-testing:125.0.6422.141-chromedriver-125.0.6422.141-20251212\nTagged selenium/node-chrome-for-testing:125.0.6422.141-20251212\nTagged selenium/standalone-chrome-for-testing:125.0.6422.141-20251212\nTagged selenium/node-chrome-for-testing:125.0-chromedriver-125.0-grid-4.39.0-20251212\nTagged selenium/standalone-chrome-for-testing:125.0-chromedriver-125.0-grid-4.39.0-20251212\nTagged selenium/node-chrome-for-testing:125.0-chromedriver-125.0-20251212\nTagged selenium/standalone-chrome-for-testing:125.0-chromedriver-125.0-20251212\nTagged selenium/node-chrome-for-testing:125.0-20251212\nTagged selenium/standalone-chrome-for-testing:125.0-20251212\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.39.0/chrome-for-testing_126.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.39.0 20251212 selenium false chrome-for-testing true\nTagging images for browser chrome-for-testing, version 4.39.0, build date 20251212, namespace selenium\nSelenium Grid version -> 4.39.0-20251212\nChrome for Testing version -> 126.0.6478.182\nShort Chrome for Testing version -> 126.0\nChromeDriver version -> 126.0.6478.182\nShort ChromeDriver version -> 126.0\nTagged selenium/node-chrome-for-testing:126.0.6478.182-chromedriver-126.0.6478.182-grid-4.39.0-20251212\nTagged selenium/standalone-chrome-for-testing:126.0.6478.182-chromedriver-126.0.6478.182-grid-4.39.0-20251212\nTagged selenium/node-chrome-for-testing:126.0.6478.182-chromedriver-126.0.6478.182-20251212\nTagged selenium/standalone-chrome-for-testing:126.0.6478.182-chromedriver-126.0.6478.182-20251212\nTagged selenium/node-chrome-for-testing:126.0.6478.182-20251212\nTagged selenium/standalone-chrome-for-testing:126.0.6478.182-20251212\nTagged selenium/node-chrome-for-testing:126.0-chromedriver-126.0-grid-4.39.0-20251212\nTagged selenium/standalone-chrome-for-testing:126.0-chromedriver-126.0-grid-4.39.0-20251212\nTagged selenium/node-chrome-for-testing:126.0-chromedriver-126.0-20251212\nTagged selenium/standalone-chrome-for-testing:126.0-chromedriver-126.0-20251212\nTagged selenium/node-chrome-for-testing:126.0-20251212\nTagged selenium/standalone-chrome-for-testing:126.0-20251212\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.39.0/chrome-for-testing_127.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.39.0 20251212 selenium false chrome-for-testing true\nTagging images for browser chrome-for-testing, version 4.39.0, build date 20251212, namespace selenium\nSelenium Grid version -> 4.39.0-20251212\nChrome for Testing version -> 127.0.6533.119\nShort Chrome for Testing version -> 127.0\nChromeDriver version -> 127.0.6533.119\nShort ChromeDriver version -> 127.0\nTagged selenium/node-chrome-for-testing:127.0.6533.119-chromedriver-127.0.6533.119-grid-4.39.0-20251212\nTagged selenium/standalone-chrome-for-testing:127.0.6533.119-chromedriver-127.0.6533.119-grid-4.39.0-20251212\nTagged selenium/node-chrome-for-testing:127.0.6533.119-chromedriver-127.0.6533.119-20251212\nTagged selenium/standalone-chrome-for-testing:127.0.6533.119-chromedriver-127.0.6533.119-20251212\nTagged selenium/node-chrome-for-testing:127.0.6533.119-20251212\nTagged selenium/standalone-chrome-for-testing:127.0.6533.119-20251212\nTagged selenium/node-chrome-for-testing:127.0-chromedriver-127.0-grid-4.39.0-20251212\nTagged selenium/standalone-chrome-for-testing:127.0-chromedriver-127.0-grid-4.39.0-20251212\nTagged selenium/node-chrome-for-testing:127.0-chromedriver-127.0-20251212\nTagged selenium/standalone-chrome-for-testing:127.0-chromedriver-127.0-20251212\nTagged selenium/node-chrome-for-testing:127.0-20251212\nTagged selenium/standalone-chrome-for-testing:127.0-20251212\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.39.0/chrome-for-testing_128.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.39.0 20251212 selenium false chrome-for-testing true\nTagging images for browser chrome-for-testing, version 4.39.0, build date 20251212, namespace selenium\nSelenium Grid version -> 4.39.0-20251212\nChrome for Testing version -> 128.0.6613.137\nShort Chrome for Testing version -> 128.0\nChromeDriver version -> 128.0.6613.137\nShort ChromeDriver version -> 128.0\nTagged selenium/node-chrome-for-testing:128.0.6613.137-chromedriver-128.0.6613.137-grid-4.39.0-20251212\nTagged selenium/standalone-chrome-for-testing:128.0.6613.137-chromedriver-128.0.6613.137-grid-4.39.0-20251212\nTagged selenium/node-chrome-for-testing:128.0.6613.137-chromedriver-128.0.6613.137-20251212\nTagged selenium/standalone-chrome-for-testing:128.0.6613.137-chromedriver-128.0.6613.137-20251212\nTagged selenium/node-chrome-for-testing:128.0.6613.137-20251212\nTagged selenium/standalone-chrome-for-testing:128.0.6613.137-20251212\nTagged selenium/node-chrome-for-testing:128.0-chromedriver-128.0-grid-4.39.0-20251212\nTagged selenium/standalone-chrome-for-testing:128.0-chromedriver-128.0-grid-4.39.0-20251212\nTagged selenium/node-chrome-for-testing:128.0-chromedriver-128.0-20251212\nTagged selenium/standalone-chrome-for-testing:128.0-chromedriver-128.0-20251212\nTagged selenium/node-chrome-for-testing:128.0-20251212\nTagged selenium/standalone-chrome-for-testing:128.0-20251212\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.39.0/chrome-for-testing_129.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.39.0 20251212 selenium false chrome-for-testing true\nTagging images for browser chrome-for-testing, version 4.39.0, build date 20251212, namespace selenium\nSelenium Grid version -> 4.39.0-20251212\nChrome for Testing version -> 129.0.6668.100\nShort Chrome for Testing version -> 129.0\nChromeDriver version -> 129.0.6668.100\nShort ChromeDriver version -> 129.0\nTagged selenium/node-chrome-for-testing:129.0.6668.100-chromedriver-129.0.6668.100-grid-4.39.0-20251212\nTagged selenium/standalone-chrome-for-testing:129.0.6668.100-chromedriver-129.0.6668.100-grid-4.39.0-20251212\nTagged selenium/node-chrome-for-testing:129.0.6668.100-chromedriver-129.0.6668.100-20251212\nTagged selenium/standalone-chrome-for-testing:129.0.6668.100-chromedriver-129.0.6668.100-20251212\nTagged selenium/node-chrome-for-testing:129.0.6668.100-20251212\nTagged selenium/standalone-chrome-for-testing:129.0.6668.100-20251212\nTagged selenium/node-chrome-for-testing:129.0-chromedriver-129.0-grid-4.39.0-20251212\nTagged selenium/standalone-chrome-for-testing:129.0-chromedriver-129.0-grid-4.39.0-20251212\nTagged selenium/node-chrome-for-testing:129.0-chromedriver-129.0-20251212\nTagged selenium/standalone-chrome-for-testing:129.0-chromedriver-129.0-20251212\nTagged selenium/node-chrome-for-testing:129.0-20251212\nTagged selenium/standalone-chrome-for-testing:129.0-20251212\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.39.0/chrome-for-testing_130.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.39.0 20251212 selenium false chrome-for-testing true\nTagging images for browser chrome-for-testing, version 4.39.0, build date 20251212, namespace selenium\nSelenium Grid version -> 4.39.0-20251212\nChrome for Testing version -> 130.0.6723.116\nShort Chrome for Testing version -> 130.0\nChromeDriver version -> 130.0.6723.116\nShort ChromeDriver version -> 130.0\nTagged selenium/node-chrome-for-testing:130.0.6723.116-chromedriver-130.0.6723.116-grid-4.39.0-20251212\nTagged selenium/standalone-chrome-for-testing:130.0.6723.116-chromedriver-130.0.6723.116-grid-4.39.0-20251212\nTagged selenium/node-chrome-for-testing:130.0.6723.116-chromedriver-130.0.6723.116-20251212\nTagged selenium/standalone-chrome-for-testing:130.0.6723.116-chromedriver-130.0.6723.116-20251212\nTagged selenium/node-chrome-for-testing:130.0.6723.116-20251212\nTagged selenium/standalone-chrome-for-testing:130.0.6723.116-20251212\nTagged selenium/node-chrome-for-testing:130.0-chromedriver-130.0-grid-4.39.0-20251212\nTagged selenium/standalone-chrome-for-testing:130.0-chromedriver-130.0-grid-4.39.0-20251212\nTagged selenium/node-chrome-for-testing:130.0-chromedriver-130.0-20251212\nTagged selenium/standalone-chrome-for-testing:130.0-chromedriver-130.0-20251212\nTagged selenium/node-chrome-for-testing:130.0-20251212\nTagged selenium/standalone-chrome-for-testing:130.0-20251212\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.39.0/chrome-for-testing_131.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.39.0 20251212 selenium false chrome-for-testing true\nTagging images for browser chrome-for-testing, version 4.39.0, build date 20251212, namespace selenium\nSelenium Grid version -> 4.39.0-20251212\nChrome for Testing version -> 131.0.6778.264\nShort Chrome for Testing version -> 131.0\nChromeDriver version -> 131.0.6778.264\nShort ChromeDriver version -> 131.0\nTagged selenium/node-chrome-for-testing:131.0.6778.264-chromedriver-131.0.6778.264-grid-4.39.0-20251212\nTagged selenium/standalone-chrome-for-testing:131.0.6778.264-chromedriver-131.0.6778.264-grid-4.39.0-20251212\nTagged selenium/node-chrome-for-testing:131.0.6778.264-chromedriver-131.0.6778.264-20251212\nTagged selenium/standalone-chrome-for-testing:131.0.6778.264-chromedriver-131.0.6778.264-20251212\nTagged selenium/node-chrome-for-testing:131.0.6778.264-20251212\nTagged selenium/standalone-chrome-for-testing:131.0.6778.264-20251212\nTagged selenium/node-chrome-for-testing:131.0-chromedriver-131.0-grid-4.39.0-20251212\nTagged selenium/standalone-chrome-for-testing:131.0-chromedriver-131.0-grid-4.39.0-20251212\nTagged selenium/node-chrome-for-testing:131.0-chromedriver-131.0-20251212\nTagged selenium/standalone-chrome-for-testing:131.0-chromedriver-131.0-20251212\nTagged selenium/node-chrome-for-testing:131.0-20251212\nTagged selenium/standalone-chrome-for-testing:131.0-20251212\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.39.0/chrome-for-testing_132.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.39.0 20251212 selenium false chrome-for-testing true\nTagging images for browser chrome-for-testing, version 4.39.0, build date 20251212, namespace selenium\nSelenium Grid version -> 4.39.0-20251212\nChrome for Testing version -> 132.0.6834.159\nShort Chrome for Testing version -> 132.0\nChromeDriver version -> 132.0.6834.159\nShort ChromeDriver version -> 132.0\nTagged selenium/node-chrome-for-testing:132.0.6834.159-chromedriver-132.0.6834.159-grid-4.39.0-20251212\nTagged selenium/standalone-chrome-for-testing:132.0.6834.159-chromedriver-132.0.6834.159-grid-4.39.0-20251212\nTagged selenium/node-chrome-for-testing:132.0.6834.159-chromedriver-132.0.6834.159-20251212\nTagged selenium/standalone-chrome-for-testing:132.0.6834.159-chromedriver-132.0.6834.159-20251212\nTagged selenium/node-chrome-for-testing:132.0.6834.159-20251212\nTagged selenium/standalone-chrome-for-testing:132.0.6834.159-20251212\nTagged selenium/node-chrome-for-testing:132.0-chromedriver-132.0-grid-4.39.0-20251212\nTagged selenium/standalone-chrome-for-testing:132.0-chromedriver-132.0-grid-4.39.0-20251212\nTagged selenium/node-chrome-for-testing:132.0-chromedriver-132.0-20251212\nTagged selenium/standalone-chrome-for-testing:132.0-chromedriver-132.0-20251212\nTagged selenium/node-chrome-for-testing:132.0-20251212\nTagged selenium/standalone-chrome-for-testing:132.0-20251212\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.39.0/chrome-for-testing_133.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.39.0 20251212 selenium false chrome-for-testing true\nTagging images for browser chrome-for-testing, version 4.39.0, build date 20251212, namespace selenium\nSelenium Grid version -> 4.39.0-20251212\nChrome for Testing version -> 133.0.6943.141\nShort Chrome for Testing version -> 133.0\nChromeDriver version -> 133.0.6943.141\nShort ChromeDriver version -> 133.0\nTagged selenium/node-chrome-for-testing:133.0.6943.141-chromedriver-133.0.6943.141-grid-4.39.0-20251212\nTagged selenium/standalone-chrome-for-testing:133.0.6943.141-chromedriver-133.0.6943.141-grid-4.39.0-20251212\nTagged selenium/node-chrome-for-testing:133.0.6943.141-chromedriver-133.0.6943.141-20251212\nTagged selenium/standalone-chrome-for-testing:133.0.6943.141-chromedriver-133.0.6943.141-20251212\nTagged selenium/node-chrome-for-testing:133.0.6943.141-20251212\nTagged selenium/standalone-chrome-for-testing:133.0.6943.141-20251212\nTagged selenium/node-chrome-for-testing:133.0-chromedriver-133.0-grid-4.39.0-20251212\nTagged selenium/standalone-chrome-for-testing:133.0-chromedriver-133.0-grid-4.39.0-20251212\nTagged selenium/node-chrome-for-testing:133.0-chromedriver-133.0-20251212\nTagged selenium/standalone-chrome-for-testing:133.0-chromedriver-133.0-20251212\nTagged selenium/node-chrome-for-testing:133.0-20251212\nTagged selenium/standalone-chrome-for-testing:133.0-20251212\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.39.0/chrome-for-testing_134.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.39.0 20251212 selenium false chrome-for-testing true\nTagging images for browser chrome-for-testing, version 4.39.0, build date 20251212, namespace selenium\nSelenium Grid version -> 4.39.0-20251212\nChrome for Testing version -> 134.0.6998.165\nShort Chrome for Testing version -> 134.0\nChromeDriver version -> 134.0.6998.165\nShort ChromeDriver version -> 134.0\nTagged selenium/node-chrome-for-testing:134.0.6998.165-chromedriver-134.0.6998.165-grid-4.39.0-20251212\nTagged selenium/standalone-chrome-for-testing:134.0.6998.165-chromedriver-134.0.6998.165-grid-4.39.0-20251212\nTagged selenium/node-chrome-for-testing:134.0.6998.165-chromedriver-134.0.6998.165-20251212\nTagged selenium/standalone-chrome-for-testing:134.0.6998.165-chromedriver-134.0.6998.165-20251212\nTagged selenium/node-chrome-for-testing:134.0.6998.165-20251212\nTagged selenium/standalone-chrome-for-testing:134.0.6998.165-20251212\nTagged selenium/node-chrome-for-testing:134.0-chromedriver-134.0-grid-4.39.0-20251212\nTagged selenium/standalone-chrome-for-testing:134.0-chromedriver-134.0-grid-4.39.0-20251212\nTagged selenium/node-chrome-for-testing:134.0-chromedriver-134.0-20251212\nTagged selenium/standalone-chrome-for-testing:134.0-chromedriver-134.0-20251212\nTagged selenium/node-chrome-for-testing:134.0-20251212\nTagged selenium/standalone-chrome-for-testing:134.0-20251212\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.39.0/chrome-for-testing_135.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.39.0 20251212 selenium false chrome-for-testing true\nTagging images for browser chrome-for-testing, version 4.39.0, build date 20251212, namespace selenium\nSelenium Grid version -> 4.39.0-20251212\nChrome for Testing version -> 135.0.7049.114\nShort Chrome for Testing version -> 135.0\nChromeDriver version -> 135.0.7049.114\nShort ChromeDriver version -> 135.0\nTagged selenium/node-chrome-for-testing:135.0.7049.114-chromedriver-135.0.7049.114-grid-4.39.0-20251212\nTagged selenium/standalone-chrome-for-testing:135.0.7049.114-chromedriver-135.0.7049.114-grid-4.39.0-20251212\nTagged selenium/node-chrome-for-testing:135.0.7049.114-chromedriver-135.0.7049.114-20251212\nTagged selenium/standalone-chrome-for-testing:135.0.7049.114-chromedriver-135.0.7049.114-20251212\nTagged selenium/node-chrome-for-testing:135.0.7049.114-20251212\nTagged selenium/standalone-chrome-for-testing:135.0.7049.114-20251212\nTagged selenium/node-chrome-for-testing:135.0-chromedriver-135.0-grid-4.39.0-20251212\nTagged selenium/standalone-chrome-for-testing:135.0-chromedriver-135.0-grid-4.39.0-20251212\nTagged selenium/node-chrome-for-testing:135.0-chromedriver-135.0-20251212\nTagged selenium/standalone-chrome-for-testing:135.0-chromedriver-135.0-20251212\nTagged selenium/node-chrome-for-testing:135.0-20251212\nTagged selenium/standalone-chrome-for-testing:135.0-20251212\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.39.0/chrome-for-testing_136.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.39.0 20251212 selenium false chrome-for-testing true\nTagging images for browser chrome-for-testing, version 4.39.0, build date 20251212, namespace selenium\nSelenium Grid version -> 4.39.0-20251212\nChrome for Testing version -> 136.0.7103.113\nShort Chrome for Testing version -> 136.0\nChromeDriver version -> 136.0.7103.113\nShort ChromeDriver version -> 136.0\nTagged selenium/node-chrome-for-testing:136.0.7103.113-chromedriver-136.0.7103.113-grid-4.39.0-20251212\nTagged selenium/standalone-chrome-for-testing:136.0.7103.113-chromedriver-136.0.7103.113-grid-4.39.0-20251212\nTagged selenium/node-chrome-for-testing:136.0.7103.113-chromedriver-136.0.7103.113-20251212\nTagged selenium/standalone-chrome-for-testing:136.0.7103.113-chromedriver-136.0.7103.113-20251212\nTagged selenium/node-chrome-for-testing:136.0.7103.113-20251212\nTagged selenium/standalone-chrome-for-testing:136.0.7103.113-20251212\nTagged selenium/node-chrome-for-testing:136.0-chromedriver-136.0-grid-4.39.0-20251212\nTagged selenium/standalone-chrome-for-testing:136.0-chromedriver-136.0-grid-4.39.0-20251212\nTagged selenium/node-chrome-for-testing:136.0-chromedriver-136.0-20251212\nTagged selenium/standalone-chrome-for-testing:136.0-chromedriver-136.0-20251212\nTagged selenium/node-chrome-for-testing:136.0-20251212\nTagged selenium/standalone-chrome-for-testing:136.0-20251212\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.39.0/chrome-for-testing_137.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.39.0 20251212 selenium false chrome-for-testing true\nTagging images for browser chrome-for-testing, version 4.39.0, build date 20251212, namespace selenium\nSelenium Grid version -> 4.39.0-20251212\nChrome for Testing version -> 137.0.7151.119\nShort Chrome for Testing version -> 137.0\nChromeDriver version -> 137.0.7151.119\nShort ChromeDriver version -> 137.0\nTagged selenium/node-chrome-for-testing:137.0.7151.119-chromedriver-137.0.7151.119-grid-4.39.0-20251212\nTagged selenium/standalone-chrome-for-testing:137.0.7151.119-chromedriver-137.0.7151.119-grid-4.39.0-20251212\nTagged selenium/node-chrome-for-testing:137.0.7151.119-chromedriver-137.0.7151.119-20251212\nTagged selenium/standalone-chrome-for-testing:137.0.7151.119-chromedriver-137.0.7151.119-20251212\nTagged selenium/node-chrome-for-testing:137.0.7151.119-20251212\nTagged selenium/standalone-chrome-for-testing:137.0.7151.119-20251212\nTagged selenium/node-chrome-for-testing:137.0-chromedriver-137.0-grid-4.39.0-20251212\nTagged selenium/standalone-chrome-for-testing:137.0-chromedriver-137.0-grid-4.39.0-20251212\nTagged selenium/node-chrome-for-testing:137.0-chromedriver-137.0-20251212\nTagged selenium/standalone-chrome-for-testing:137.0-chromedriver-137.0-20251212\nTagged selenium/node-chrome-for-testing:137.0-20251212\nTagged selenium/standalone-chrome-for-testing:137.0-20251212\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.39.0/chrome-for-testing_138.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.39.0 20251212 selenium false chrome-for-testing true\nTagging images for browser chrome-for-testing, version 4.39.0, build date 20251212, namespace selenium\nSelenium Grid version -> 4.39.0-20251212\nChrome for Testing version -> 138.0.7204.183\nShort Chrome for Testing version -> 138.0\nChromeDriver version -> 138.0.7204.183\nShort ChromeDriver version -> 138.0\nTagged selenium/node-chrome-for-testing:138.0.7204.183-chromedriver-138.0.7204.183-grid-4.39.0-20251212\nTagged selenium/standalone-chrome-for-testing:138.0.7204.183-chromedriver-138.0.7204.183-grid-4.39.0-20251212\nTagged selenium/node-chrome-for-testing:138.0.7204.183-chromedriver-138.0.7204.183-20251212\nTagged selenium/standalone-chrome-for-testing:138.0.7204.183-chromedriver-138.0.7204.183-20251212\nTagged selenium/node-chrome-for-testing:138.0.7204.183-20251212\nTagged selenium/standalone-chrome-for-testing:138.0.7204.183-20251212\nTagged selenium/node-chrome-for-testing:138.0-chromedriver-138.0-grid-4.39.0-20251212\nTagged selenium/standalone-chrome-for-testing:138.0-chromedriver-138.0-grid-4.39.0-20251212\nTagged selenium/node-chrome-for-testing:138.0-chromedriver-138.0-20251212\nTagged selenium/standalone-chrome-for-testing:138.0-chromedriver-138.0-20251212\nTagged selenium/node-chrome-for-testing:138.0-20251212\nTagged selenium/standalone-chrome-for-testing:138.0-20251212\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.39.0/chrome-for-testing_139.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.39.0 20251212 selenium false chrome-for-testing true\nTagging images for browser chrome-for-testing, version 4.39.0, build date 20251212, namespace selenium\nSelenium Grid version -> 4.39.0-20251212\nChrome for Testing version -> 139.0.7258.154\nShort Chrome for Testing version -> 139.0\nChromeDriver version -> 139.0.7258.154\nShort ChromeDriver version -> 139.0\nTagged selenium/node-chrome-for-testing:139.0.7258.154-chromedriver-139.0.7258.154-grid-4.39.0-20251212\nTagged selenium/standalone-chrome-for-testing:139.0.7258.154-chromedriver-139.0.7258.154-grid-4.39.0-20251212\nTagged selenium/node-chrome-for-testing:139.0.7258.154-chromedriver-139.0.7258.154-20251212\nTagged selenium/standalone-chrome-for-testing:139.0.7258.154-chromedriver-139.0.7258.154-20251212\nTagged selenium/node-chrome-for-testing:139.0.7258.154-20251212\nTagged selenium/standalone-chrome-for-testing:139.0.7258.154-20251212\nTagged selenium/node-chrome-for-testing:139.0-chromedriver-139.0-grid-4.39.0-20251212\nTagged selenium/standalone-chrome-for-testing:139.0-chromedriver-139.0-grid-4.39.0-20251212\nTagged selenium/node-chrome-for-testing:139.0-chromedriver-139.0-20251212\nTagged selenium/standalone-chrome-for-testing:139.0-chromedriver-139.0-20251212\nTagged selenium/node-chrome-for-testing:139.0-20251212\nTagged selenium/standalone-chrome-for-testing:139.0-20251212\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.39.0/chrome-for-testing_140.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.39.0 20251212 selenium false chrome-for-testing true\nTagging images for browser chrome-for-testing, version 4.39.0, build date 20251212, namespace selenium\nSelenium Grid version -> 4.39.0-20251212\nChrome for Testing version -> 140.0.7339.207\nShort Chrome for Testing version -> 140.0\nChromeDriver version -> 140.0.7339.207\nShort ChromeDriver version -> 140.0\nTagged selenium/node-chrome-for-testing:140.0.7339.207-chromedriver-140.0.7339.207-grid-4.39.0-20251212\nTagged selenium/standalone-chrome-for-testing:140.0.7339.207-chromedriver-140.0.7339.207-grid-4.39.0-20251212\nTagged selenium/node-chrome-for-testing:140.0.7339.207-chromedriver-140.0.7339.207-20251212\nTagged selenium/standalone-chrome-for-testing:140.0.7339.207-chromedriver-140.0.7339.207-20251212\nTagged selenium/node-chrome-for-testing:140.0.7339.207-20251212\nTagged selenium/standalone-chrome-for-testing:140.0.7339.207-20251212\nTagged selenium/node-chrome-for-testing:140.0-chromedriver-140.0-grid-4.39.0-20251212\nTagged selenium/standalone-chrome-for-testing:140.0-chromedriver-140.0-grid-4.39.0-20251212\nTagged selenium/node-chrome-for-testing:140.0-chromedriver-140.0-20251212\nTagged selenium/standalone-chrome-for-testing:140.0-chromedriver-140.0-20251212\nTagged selenium/node-chrome-for-testing:140.0-20251212\nTagged selenium/standalone-chrome-for-testing:140.0-20251212\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.39.0/chrome-for-testing_141.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.39.0 20251212 selenium false chrome-for-testing true\nTagging images for browser chrome-for-testing, version 4.39.0, build date 20251212, namespace selenium\nSelenium Grid version -> 4.39.0-20251212\nChrome for Testing version -> 141.0.7390.122\nShort Chrome for Testing version -> 141.0\nChromeDriver version -> 141.0.7390.122\nShort ChromeDriver version -> 141.0\nTagged selenium/node-chrome-for-testing:141.0.7390.122-chromedriver-141.0.7390.122-grid-4.39.0-20251212\nTagged selenium/standalone-chrome-for-testing:141.0.7390.122-chromedriver-141.0.7390.122-grid-4.39.0-20251212\nTagged selenium/node-chrome-for-testing:141.0.7390.122-chromedriver-141.0.7390.122-20251212\nTagged selenium/standalone-chrome-for-testing:141.0.7390.122-chromedriver-141.0.7390.122-20251212\nTagged selenium/node-chrome-for-testing:141.0.7390.122-20251212\nTagged selenium/standalone-chrome-for-testing:141.0.7390.122-20251212\nTagged selenium/node-chrome-for-testing:141.0-chromedriver-141.0-grid-4.39.0-20251212\nTagged selenium/standalone-chrome-for-testing:141.0-chromedriver-141.0-grid-4.39.0-20251212\nTagged selenium/node-chrome-for-testing:141.0-chromedriver-141.0-20251212\nTagged selenium/standalone-chrome-for-testing:141.0-chromedriver-141.0-20251212\nTagged selenium/node-chrome-for-testing:141.0-20251212\nTagged selenium/standalone-chrome-for-testing:141.0-20251212\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.39.0/chrome-for-testing_142.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.39.0 20251212 selenium false chrome-for-testing true\nTagging images for browser chrome-for-testing, version 4.39.0, build date 20251212, namespace selenium\nSelenium Grid version -> 4.39.0-20251212\nChrome for Testing version -> 142.0.7444.175\nShort Chrome for Testing version -> 142.0\nChromeDriver version -> 142.0.7444.175\nShort ChromeDriver version -> 142.0\nTagged selenium/node-chrome-for-testing:142.0.7444.175-chromedriver-142.0.7444.175-grid-4.39.0-20251212\nTagged selenium/standalone-chrome-for-testing:142.0.7444.175-chromedriver-142.0.7444.175-grid-4.39.0-20251212\nTagged selenium/node-chrome-for-testing:142.0.7444.175-chromedriver-142.0.7444.175-20251212\nTagged selenium/standalone-chrome-for-testing:142.0.7444.175-chromedriver-142.0.7444.175-20251212\nTagged selenium/node-chrome-for-testing:142.0.7444.175-20251212\nTagged selenium/standalone-chrome-for-testing:142.0.7444.175-20251212\nTagged selenium/node-chrome-for-testing:142.0-chromedriver-142.0-grid-4.39.0-20251212\nTagged selenium/standalone-chrome-for-testing:142.0-chromedriver-142.0-grid-4.39.0-20251212\nTagged selenium/node-chrome-for-testing:142.0-chromedriver-142.0-20251212\nTagged selenium/standalone-chrome-for-testing:142.0-chromedriver-142.0-20251212\nTagged selenium/node-chrome-for-testing:142.0-20251212\nTagged selenium/standalone-chrome-for-testing:142.0-20251212\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.39.0/chrome-for-testing_143.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.39.0 20251212 selenium false chrome-for-testing true\nTagging images for browser chrome-for-testing, version 4.39.0, build date 20251212, namespace selenium\nSelenium Grid version -> 4.39.0-20251212\nChrome for Testing version -> 143.0.7499.169\nShort Chrome for Testing version -> 143.0\nChromeDriver version -> 143.0.7499.169\nShort ChromeDriver version -> 143.0\nTagged selenium/node-chrome-for-testing:143.0.7499.169-chromedriver-143.0.7499.169-grid-4.39.0-20251212\nTagged selenium/standalone-chrome-for-testing:143.0.7499.169-chromedriver-143.0.7499.169-grid-4.39.0-20251212\nTagged selenium/node-chrome-for-testing:143.0.7499.169-chromedriver-143.0.7499.169-20251212\nTagged selenium/standalone-chrome-for-testing:143.0.7499.169-chromedriver-143.0.7499.169-20251212\nTagged selenium/node-chrome-for-testing:143.0.7499.169-20251212\nTagged selenium/standalone-chrome-for-testing:143.0.7499.169-20251212\nTagged selenium/node-chrome-for-testing:143.0-chromedriver-143.0-grid-4.39.0-20251212\nTagged selenium/standalone-chrome-for-testing:143.0-chromedriver-143.0-grid-4.39.0-20251212\nTagged selenium/node-chrome-for-testing:143.0-chromedriver-143.0-20251212\nTagged selenium/standalone-chrome-for-testing:143.0-chromedriver-143.0-20251212\nTagged selenium/node-chrome-for-testing:143.0-20251212\nTagged selenium/standalone-chrome-for-testing:143.0-20251212\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.39.0/chrome_100.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.39.0 20251212 selenium false chrome true\nTagging images for browser chrome, version 4.39.0, build date 20251212, namespace selenium\nSelenium Grid version -> 4.39.0-20251212\nChrome version -> 100.0.4896.127\nShort Chrome version -> 100.0\nChromeDriver version -> 100.0.4896.60\nShort ChromeDriver version -> 100.0\nTagged selenium/node-chrome:100.0.4896.127-chromedriver-100.0.4896.60-grid-4.39.0-20251212\nTagged selenium/standalone-chrome:100.0.4896.127-chromedriver-100.0.4896.60-grid-4.39.0-20251212\nTagged selenium/node-chrome:100.0.4896.127-chromedriver-100.0.4896.60-20251212\nTagged selenium/standalone-chrome:100.0.4896.127-chromedriver-100.0.4896.60-20251212\nTagged selenium/node-chrome:100.0.4896.127-20251212\nTagged selenium/standalone-chrome:100.0.4896.127-20251212\nTagged selenium/node-chrome:100.0-chromedriver-100.0-grid-4.39.0-20251212\nTagged selenium/standalone-chrome:100.0-chromedriver-100.0-grid-4.39.0-20251212\nTagged selenium/node-chrome:100.0-chromedriver-100.0-20251212\nTagged selenium/standalone-chrome:100.0-chromedriver-100.0-20251212\nTagged selenium/node-chrome:100.0-20251212\nTagged selenium/standalone-chrome:100.0-20251212\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.39.0/chrome_101.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.39.0 20251212 selenium false chrome true\nTagging images for browser chrome, version 4.39.0, build date 20251212, namespace selenium\nSelenium Grid version -> 4.39.0-20251212\nChrome version -> 101.0.4951.64\nShort Chrome version -> 101.0\nChromeDriver version -> 101.0.4951.41\nShort ChromeDriver version -> 101.0\nTagged selenium/node-chrome:101.0.4951.64-chromedriver-101.0.4951.41-grid-4.39.0-20251212\nTagged selenium/standalone-chrome:101.0.4951.64-chromedriver-101.0.4951.41-grid-4.39.0-20251212\nTagged selenium/node-chrome:101.0.4951.64-chromedriver-101.0.4951.41-20251212\nTagged selenium/standalone-chrome:101.0.4951.64-chromedriver-101.0.4951.41-20251212\nTagged selenium/node-chrome:101.0.4951.64-20251212\nTagged selenium/standalone-chrome:101.0.4951.64-20251212\nTagged selenium/node-chrome:101.0-chromedriver-101.0-grid-4.39.0-20251212\nTagged selenium/standalone-chrome:101.0-chromedriver-101.0-grid-4.39.0-20251212\nTagged selenium/node-chrome:101.0-chromedriver-101.0-20251212\nTagged selenium/standalone-chrome:101.0-chromedriver-101.0-20251212\nTagged selenium/node-chrome:101.0-20251212\nTagged selenium/standalone-chrome:101.0-20251212\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.39.0/chrome_102.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.39.0 20251212 selenium false chrome true\nTagging images for browser chrome, version 4.39.0, build date 20251212, namespace selenium\nSelenium Grid version -> 4.39.0-20251212\nChrome version -> 102.0.5005.115\nShort Chrome version -> 102.0\nChromeDriver version -> 102.0.5005.61\nShort ChromeDriver version -> 102.0\nTagged selenium/node-chrome:102.0.5005.115-chromedriver-102.0.5005.61-grid-4.39.0-20251212\nTagged selenium/standalone-chrome:102.0.5005.115-chromedriver-102.0.5005.61-grid-4.39.0-20251212\nTagged selenium/node-chrome:102.0.5005.115-chromedriver-102.0.5005.61-20251212\nTagged selenium/standalone-chrome:102.0.5005.115-chromedriver-102.0.5005.61-20251212\nTagged selenium/node-chrome:102.0.5005.115-20251212\nTagged selenium/standalone-chrome:102.0.5005.115-20251212\nTagged selenium/node-chrome:102.0-chromedriver-102.0-grid-4.39.0-20251212\nTagged selenium/standalone-chrome:102.0-chromedriver-102.0-grid-4.39.0-20251212\nTagged selenium/node-chrome:102.0-chromedriver-102.0-20251212\nTagged selenium/standalone-chrome:102.0-chromedriver-102.0-20251212\nTagged selenium/node-chrome:102.0-20251212\nTagged selenium/standalone-chrome:102.0-20251212\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.39.0/chrome_103.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.39.0 20251212 selenium false chrome true\nTagging images for browser chrome, version 4.39.0, build date 20251212, namespace selenium\nSelenium Grid version -> 4.39.0-20251212\nChrome version -> 103.0.5060.134\nShort Chrome version -> 103.0\nChromeDriver version -> 103.0.5060.134\nShort ChromeDriver version -> 103.0\nTagged selenium/node-chrome:103.0.5060.134-chromedriver-103.0.5060.134-grid-4.39.0-20251212\nTagged selenium/standalone-chrome:103.0.5060.134-chromedriver-103.0.5060.134-grid-4.39.0-20251212\nTagged selenium/node-chrome:103.0.5060.134-chromedriver-103.0.5060.134-20251212\nTagged selenium/standalone-chrome:103.0.5060.134-chromedriver-103.0.5060.134-20251212\nTagged selenium/node-chrome:103.0.5060.134-20251212\nTagged selenium/standalone-chrome:103.0.5060.134-20251212\nTagged selenium/node-chrome:103.0-chromedriver-103.0-grid-4.39.0-20251212\nTagged selenium/standalone-chrome:103.0-chromedriver-103.0-grid-4.39.0-20251212\nTagged selenium/node-chrome:103.0-chromedriver-103.0-20251212\nTagged selenium/standalone-chrome:103.0-chromedriver-103.0-20251212\nTagged selenium/node-chrome:103.0-20251212\nTagged selenium/standalone-chrome:103.0-20251212\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.39.0/chrome_104.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.39.0 20251212 selenium false chrome true\nTagging images for browser chrome, version 4.39.0, build date 20251212, namespace selenium\nSelenium Grid version -> 4.39.0-20251212\nChrome version -> 104.0.5112.101\nShort Chrome version -> 104.0\nChromeDriver version -> 104.0.5112.79\nShort ChromeDriver version -> 104.0\nTagged selenium/node-chrome:104.0.5112.101-chromedriver-104.0.5112.79-grid-4.39.0-20251212\nTagged selenium/standalone-chrome:104.0.5112.101-chromedriver-104.0.5112.79-grid-4.39.0-20251212\nTagged selenium/node-chrome:104.0.5112.101-chromedriver-104.0.5112.79-20251212\nTagged selenium/standalone-chrome:104.0.5112.101-chromedriver-104.0.5112.79-20251212\nTagged selenium/node-chrome:104.0.5112.101-20251212\nTagged selenium/standalone-chrome:104.0.5112.101-20251212\nTagged selenium/node-chrome:104.0-chromedriver-104.0-grid-4.39.0-20251212\nTagged selenium/standalone-chrome:104.0-chromedriver-104.0-grid-4.39.0-20251212\nTagged selenium/node-chrome:104.0-chromedriver-104.0-20251212\nTagged selenium/standalone-chrome:104.0-chromedriver-104.0-20251212\nTagged selenium/node-chrome:104.0-20251212\nTagged selenium/standalone-chrome:104.0-20251212\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.39.0/chrome_105.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.39.0 20251212 selenium false chrome true\nTagging images for browser chrome, version 4.39.0, build date 20251212, namespace selenium\nSelenium Grid version -> 4.39.0-20251212\nChrome version -> 105.0.5195.125\nShort Chrome version -> 105.0\nChromeDriver version -> 105.0.5195.52\nShort ChromeDriver version -> 105.0\nTagged selenium/node-chrome:105.0.5195.125-chromedriver-105.0.5195.52-grid-4.39.0-20251212\nTagged selenium/standalone-chrome:105.0.5195.125-chromedriver-105.0.5195.52-grid-4.39.0-20251212\nTagged selenium/node-chrome:105.0.5195.125-chromedriver-105.0.5195.52-20251212\nTagged selenium/standalone-chrome:105.0.5195.125-chromedriver-105.0.5195.52-20251212\nTagged selenium/node-chrome:105.0.5195.125-20251212\nTagged selenium/standalone-chrome:105.0.5195.125-20251212\nTagged selenium/node-chrome:105.0-chromedriver-105.0-grid-4.39.0-20251212\nTagged selenium/standalone-chrome:105.0-chromedriver-105.0-grid-4.39.0-20251212\nTagged selenium/node-chrome:105.0-chromedriver-105.0-20251212\nTagged selenium/standalone-chrome:105.0-chromedriver-105.0-20251212\nTagged selenium/node-chrome:105.0-20251212\nTagged selenium/standalone-chrome:105.0-20251212\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.39.0/chrome_106.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.39.0 20251212 selenium false chrome true\nTagging images for browser chrome, version 4.39.0, build date 20251212, namespace selenium\nSelenium Grid version -> 4.39.0-20251212\nChrome version -> 106.0.5249.119\nShort Chrome version -> 106.0\nChromeDriver version -> 106.0.5249.61\nShort ChromeDriver version -> 106.0\nTagged selenium/node-chrome:106.0.5249.119-chromedriver-106.0.5249.61-grid-4.39.0-20251212\nTagged selenium/standalone-chrome:106.0.5249.119-chromedriver-106.0.5249.61-grid-4.39.0-20251212\nTagged selenium/node-chrome:106.0.5249.119-chromedriver-106.0.5249.61-20251212\nTagged selenium/standalone-chrome:106.0.5249.119-chromedriver-106.0.5249.61-20251212\nTagged selenium/node-chrome:106.0.5249.119-20251212\nTagged selenium/standalone-chrome:106.0.5249.119-20251212\nTagged selenium/node-chrome:106.0-chromedriver-106.0-grid-4.39.0-20251212\nTagged selenium/standalone-chrome:106.0-chromedriver-106.0-grid-4.39.0-20251212\nTagged selenium/node-chrome:106.0-chromedriver-106.0-20251212\nTagged selenium/standalone-chrome:106.0-chromedriver-106.0-20251212\nTagged selenium/node-chrome:106.0-20251212\nTagged selenium/standalone-chrome:106.0-20251212\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.39.0/chrome_107.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.39.0 20251212 selenium false chrome true\nTagging images for browser chrome, version 4.39.0, build date 20251212, namespace selenium\nSelenium Grid version -> 4.39.0-20251212\nChrome version -> 107.0.5304.121\nShort Chrome version -> 107.0\nChromeDriver version -> 107.0.5304.62\nShort ChromeDriver version -> 107.0\nTagged selenium/node-chrome:107.0.5304.121-chromedriver-107.0.5304.62-grid-4.39.0-20251212\nTagged selenium/standalone-chrome:107.0.5304.121-chromedriver-107.0.5304.62-grid-4.39.0-20251212\nTagged selenium/node-chrome:107.0.5304.121-chromedriver-107.0.5304.62-20251212\nTagged selenium/standalone-chrome:107.0.5304.121-chromedriver-107.0.5304.62-20251212\nTagged selenium/node-chrome:107.0.5304.121-20251212\nTagged selenium/standalone-chrome:107.0.5304.121-20251212\nTagged selenium/node-chrome:107.0-chromedriver-107.0-grid-4.39.0-20251212\nTagged selenium/standalone-chrome:107.0-chromedriver-107.0-grid-4.39.0-20251212\nTagged selenium/node-chrome:107.0-chromedriver-107.0-20251212\nTagged selenium/standalone-chrome:107.0-chromedriver-107.0-20251212\nTagged selenium/node-chrome:107.0-20251212\nTagged selenium/standalone-chrome:107.0-20251212\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.39.0/chrome_108.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.39.0 20251212 selenium false chrome true\nTagging images for browser chrome, version 4.39.0, build date 20251212, namespace selenium\nSelenium Grid version -> 4.39.0-20251212\nChrome version -> 108.0.5359.124\nShort Chrome version -> 108.0\nChromeDriver version -> 108.0.5359.71\nShort ChromeDriver version -> 108.0\nTagged selenium/node-chrome:108.0.5359.124-chromedriver-108.0.5359.71-grid-4.39.0-20251212\nTagged selenium/standalone-chrome:108.0.5359.124-chromedriver-108.0.5359.71-grid-4.39.0-20251212\nTagged selenium/node-chrome:108.0.5359.124-chromedriver-108.0.5359.71-20251212\nTagged selenium/standalone-chrome:108.0.5359.124-chromedriver-108.0.5359.71-20251212\nTagged selenium/node-chrome:108.0.5359.124-20251212\nTagged selenium/standalone-chrome:108.0.5359.124-20251212\nTagged selenium/node-chrome:108.0-chromedriver-108.0-grid-4.39.0-20251212\nTagged selenium/standalone-chrome:108.0-chromedriver-108.0-grid-4.39.0-20251212\nTagged selenium/node-chrome:108.0-chromedriver-108.0-20251212\nTagged selenium/standalone-chrome:108.0-chromedriver-108.0-20251212\nTagged selenium/node-chrome:108.0-20251212\nTagged selenium/standalone-chrome:108.0-20251212\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.39.0/chrome_109.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.39.0 20251212 selenium false chrome true\nTagging images for browser chrome, version 4.39.0, build date 20251212, namespace selenium\nSelenium Grid version -> 4.39.0-20251212\nChrome version -> 109.0.5414.119\nShort Chrome version -> 109.0\nChromeDriver version -> 109.0.5414.74\nShort ChromeDriver version -> 109.0\nTagged selenium/node-chrome:109.0.5414.119-chromedriver-109.0.5414.74-grid-4.39.0-20251212\nTagged selenium/standalone-chrome:109.0.5414.119-chromedriver-109.0.5414.74-grid-4.39.0-20251212\nTagged selenium/node-chrome:109.0.5414.119-chromedriver-109.0.5414.74-20251212\nTagged selenium/standalone-chrome:109.0.5414.119-chromedriver-109.0.5414.74-20251212\nTagged selenium/node-chrome:109.0.5414.119-20251212\nTagged selenium/standalone-chrome:109.0.5414.119-20251212\nTagged selenium/node-chrome:109.0-chromedriver-109.0-grid-4.39.0-20251212\nTagged selenium/standalone-chrome:109.0-chromedriver-109.0-grid-4.39.0-20251212\nTagged selenium/node-chrome:109.0-chromedriver-109.0-20251212\nTagged selenium/standalone-chrome:109.0-chromedriver-109.0-20251212\nTagged selenium/node-chrome:109.0-20251212\nTagged selenium/standalone-chrome:109.0-20251212\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.39.0/chrome_110.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.39.0 20251212 selenium false chrome true\nTagging images for browser chrome, version 4.39.0, build date 20251212, namespace selenium\nSelenium Grid version -> 4.39.0-20251212\nChrome version -> 110.0.5481.177\nShort Chrome version -> 110.0\nChromeDriver version -> 110.0.5481.77\nShort ChromeDriver version -> 110.0\nTagged selenium/node-chrome:110.0.5481.177-chromedriver-110.0.5481.77-grid-4.39.0-20251212\nTagged selenium/standalone-chrome:110.0.5481.177-chromedriver-110.0.5481.77-grid-4.39.0-20251212\nTagged selenium/node-chrome:110.0.5481.177-chromedriver-110.0.5481.77-20251212\nTagged selenium/standalone-chrome:110.0.5481.177-chromedriver-110.0.5481.77-20251212\nTagged selenium/node-chrome:110.0.5481.177-20251212\nTagged selenium/standalone-chrome:110.0.5481.177-20251212\nTagged selenium/node-chrome:110.0-chromedriver-110.0-grid-4.39.0-20251212\nTagged selenium/standalone-chrome:110.0-chromedriver-110.0-grid-4.39.0-20251212\nTagged selenium/node-chrome:110.0-chromedriver-110.0-20251212\nTagged selenium/standalone-chrome:110.0-chromedriver-110.0-20251212\nTagged selenium/node-chrome:110.0-20251212\nTagged selenium/standalone-chrome:110.0-20251212\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.39.0/chrome_111.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.39.0 20251212 selenium false chrome true\nTagging images for browser chrome, version 4.39.0, build date 20251212, namespace selenium\nSelenium Grid version -> 4.39.0-20251212\nChrome version -> 111.0.5563.146\nShort Chrome version -> 111.0\nChromeDriver version -> 111.0.5563.64\nShort ChromeDriver version -> 111.0\nTagged selenium/node-chrome:111.0.5563.146-chromedriver-111.0.5563.64-grid-4.39.0-20251212\nTagged selenium/standalone-chrome:111.0.5563.146-chromedriver-111.0.5563.64-grid-4.39.0-20251212\nTagged selenium/node-chrome:111.0.5563.146-chromedriver-111.0.5563.64-20251212\nTagged selenium/standalone-chrome:111.0.5563.146-chromedriver-111.0.5563.64-20251212\nTagged selenium/node-chrome:111.0.5563.146-20251212\nTagged selenium/standalone-chrome:111.0.5563.146-20251212\nTagged selenium/node-chrome:111.0-chromedriver-111.0-grid-4.39.0-20251212\nTagged selenium/standalone-chrome:111.0-chromedriver-111.0-grid-4.39.0-20251212\nTagged selenium/node-chrome:111.0-chromedriver-111.0-20251212\nTagged selenium/standalone-chrome:111.0-chromedriver-111.0-20251212\nTagged selenium/node-chrome:111.0-20251212\nTagged selenium/standalone-chrome:111.0-20251212\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.39.0/chrome_112.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.39.0 20251212 selenium false chrome true\nTagging images for browser chrome, version 4.39.0, build date 20251212, namespace selenium\nSelenium Grid version -> 4.39.0-20251212\nChrome version -> 112.0.5615.165\nShort Chrome version -> 112.0\nChromeDriver version -> 112.0.5615.49\nShort ChromeDriver version -> 112.0\nTagged selenium/node-chrome:112.0.5615.165-chromedriver-112.0.5615.49-grid-4.39.0-20251212\nTagged selenium/standalone-chrome:112.0.5615.165-chromedriver-112.0.5615.49-grid-4.39.0-20251212\nTagged selenium/node-chrome:112.0.5615.165-chromedriver-112.0.5615.49-20251212\nTagged selenium/standalone-chrome:112.0.5615.165-chromedriver-112.0.5615.49-20251212\nTagged selenium/node-chrome:112.0.5615.165-20251212\nTagged selenium/standalone-chrome:112.0.5615.165-20251212\nTagged selenium/node-chrome:112.0-chromedriver-112.0-grid-4.39.0-20251212\nTagged selenium/standalone-chrome:112.0-chromedriver-112.0-grid-4.39.0-20251212\nTagged selenium/node-chrome:112.0-chromedriver-112.0-20251212\nTagged selenium/standalone-chrome:112.0-chromedriver-112.0-20251212\nTagged selenium/node-chrome:112.0-20251212\nTagged selenium/standalone-chrome:112.0-20251212\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.39.0/chrome_113.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.39.0 20251212 selenium false chrome true\nTagging images for browser chrome, version 4.39.0, build date 20251212, namespace selenium\nSelenium Grid version -> 4.39.0-20251212\nChrome version -> 113.0.5672.126\nShort Chrome version -> 113.0\nChromeDriver version -> 113.0.5672.63\nShort ChromeDriver version -> 113.0\nTagged selenium/node-chrome:113.0.5672.126-chromedriver-113.0.5672.63-grid-4.39.0-20251212\nTagged selenium/standalone-chrome:113.0.5672.126-chromedriver-113.0.5672.63-grid-4.39.0-20251212\nTagged selenium/node-chrome:113.0.5672.126-chromedriver-113.0.5672.63-20251212\nTagged selenium/standalone-chrome:113.0.5672.126-chromedriver-113.0.5672.63-20251212\nTagged selenium/node-chrome:113.0.5672.126-20251212\nTagged selenium/standalone-chrome:113.0.5672.126-20251212\nTagged selenium/node-chrome:113.0-chromedriver-113.0-grid-4.39.0-20251212\nTagged selenium/standalone-chrome:113.0-chromedriver-113.0-grid-4.39.0-20251212\nTagged selenium/node-chrome:113.0-chromedriver-113.0-20251212\nTagged selenium/standalone-chrome:113.0-chromedriver-113.0-20251212\nTagged selenium/node-chrome:113.0-20251212\nTagged selenium/standalone-chrome:113.0-20251212\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.39.0/chrome_114.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.39.0 20251212 selenium false chrome true\nTagging images for browser chrome, version 4.39.0, build date 20251212, namespace selenium\nSelenium Grid version -> 4.39.0-20251212\nChrome version -> 114.0.5735.198\nShort Chrome version -> 114.0\nChromeDriver version -> 114.0.5735.90\nShort ChromeDriver version -> 114.0\nTagged selenium/node-chrome:114.0.5735.198-chromedriver-114.0.5735.90-grid-4.39.0-20251212\nTagged selenium/standalone-chrome:114.0.5735.198-chromedriver-114.0.5735.90-grid-4.39.0-20251212\nTagged selenium/node-chrome:114.0.5735.198-chromedriver-114.0.5735.90-20251212\nTagged selenium/standalone-chrome:114.0.5735.198-chromedriver-114.0.5735.90-20251212\nTagged selenium/node-chrome:114.0.5735.198-20251212\nTagged selenium/standalone-chrome:114.0.5735.198-20251212\nTagged selenium/node-chrome:114.0-chromedriver-114.0-grid-4.39.0-20251212\nTagged selenium/standalone-chrome:114.0-chromedriver-114.0-grid-4.39.0-20251212\nTagged selenium/node-chrome:114.0-chromedriver-114.0-20251212\nTagged selenium/standalone-chrome:114.0-chromedriver-114.0-20251212\nTagged selenium/node-chrome:114.0-20251212\nTagged selenium/standalone-chrome:114.0-20251212\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.39.0/chrome_115.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.39.0 20251212 selenium false chrome true\nTagging images for browser chrome, version 4.39.0, build date 20251212, namespace selenium\nSelenium Grid version -> 4.39.0-20251212\nChrome version -> 115.0.5790.170\nShort Chrome version -> 115.0\nChromeDriver version -> 115.0.5790.170\nShort ChromeDriver version -> 115.0\nTagged selenium/node-chrome:115.0.5790.170-chromedriver-115.0.5790.170-grid-4.39.0-20251212\nTagged selenium/standalone-chrome:115.0.5790.170-chromedriver-115.0.5790.170-grid-4.39.0-20251212\nTagged selenium/node-chrome:115.0.5790.170-chromedriver-115.0.5790.170-20251212\nTagged selenium/standalone-chrome:115.0.5790.170-chromedriver-115.0.5790.170-20251212\nTagged selenium/node-chrome:115.0.5790.170-20251212\nTagged selenium/standalone-chrome:115.0.5790.170-20251212\nTagged selenium/node-chrome:115.0-chromedriver-115.0-grid-4.39.0-20251212\nTagged selenium/standalone-chrome:115.0-chromedriver-115.0-grid-4.39.0-20251212\nTagged selenium/node-chrome:115.0-chromedriver-115.0-20251212\nTagged selenium/standalone-chrome:115.0-chromedriver-115.0-20251212\nTagged selenium/node-chrome:115.0-20251212\nTagged selenium/standalone-chrome:115.0-20251212\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.39.0/chrome_116.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.39.0 20251212 selenium false chrome true\nTagging images for browser chrome, version 4.39.0, build date 20251212, namespace selenium\nSelenium Grid version -> 4.39.0-20251212\nChrome version -> 116.0.5845.187\nShort Chrome version -> 116.0\nChromeDriver version -> 116.0.5845.96\nShort ChromeDriver version -> 116.0\nTagged selenium/node-chrome:116.0.5845.187-chromedriver-116.0.5845.96-grid-4.39.0-20251212\nTagged selenium/standalone-chrome:116.0.5845.187-chromedriver-116.0.5845.96-grid-4.39.0-20251212\nTagged selenium/node-chrome:116.0.5845.187-chromedriver-116.0.5845.96-20251212\nTagged selenium/standalone-chrome:116.0.5845.187-chromedriver-116.0.5845.96-20251212\nTagged selenium/node-chrome:116.0.5845.187-20251212\nTagged selenium/standalone-chrome:116.0.5845.187-20251212\nTagged selenium/node-chrome:116.0-chromedriver-116.0-grid-4.39.0-20251212\nTagged selenium/standalone-chrome:116.0-chromedriver-116.0-grid-4.39.0-20251212\nTagged selenium/node-chrome:116.0-chromedriver-116.0-20251212\nTagged selenium/standalone-chrome:116.0-chromedriver-116.0-20251212\nTagged selenium/node-chrome:116.0-20251212\nTagged selenium/standalone-chrome:116.0-20251212\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.39.0/chrome_117.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.39.0 20251212 selenium false chrome true\nTagging images for browser chrome, version 4.39.0, build date 20251212, namespace selenium\nSelenium Grid version -> 4.39.0-20251212\nChrome version -> 117.0.5938.149\nShort Chrome version -> 117.0\nChromeDriver version -> 117.0.5938.149\nShort ChromeDriver version -> 117.0\nTagged selenium/node-chrome:117.0.5938.149-chromedriver-117.0.5938.149-grid-4.39.0-20251212\nTagged selenium/standalone-chrome:117.0.5938.149-chromedriver-117.0.5938.149-grid-4.39.0-20251212\nTagged selenium/node-chrome:117.0.5938.149-chromedriver-117.0.5938.149-20251212\nTagged selenium/standalone-chrome:117.0.5938.149-chromedriver-117.0.5938.149-20251212\nTagged selenium/node-chrome:117.0.5938.149-20251212\nTagged selenium/standalone-chrome:117.0.5938.149-20251212\nTagged selenium/node-chrome:117.0-chromedriver-117.0-grid-4.39.0-20251212\nTagged selenium/standalone-chrome:117.0-chromedriver-117.0-grid-4.39.0-20251212\nTagged selenium/node-chrome:117.0-chromedriver-117.0-20251212\nTagged selenium/standalone-chrome:117.0-chromedriver-117.0-20251212\nTagged selenium/node-chrome:117.0-20251212\nTagged selenium/standalone-chrome:117.0-20251212\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.39.0/chrome_118.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.39.0 20251212 selenium false chrome true\nTagging images for browser chrome, version 4.39.0, build date 20251212, namespace selenium\nSelenium Grid version -> 4.39.0-20251212\nChrome version -> 118.0.5993.117\nShort Chrome version -> 118.0\nChromeDriver version -> 118.0.5993.70\nShort ChromeDriver version -> 118.0\nTagged selenium/node-chrome:118.0.5993.117-chromedriver-118.0.5993.70-grid-4.39.0-20251212\nTagged selenium/standalone-chrome:118.0.5993.117-chromedriver-118.0.5993.70-grid-4.39.0-20251212\nTagged selenium/node-chrome:118.0.5993.117-chromedriver-118.0.5993.70-20251212\nTagged selenium/standalone-chrome:118.0.5993.117-chromedriver-118.0.5993.70-20251212\nTagged selenium/node-chrome:118.0.5993.117-20251212\nTagged selenium/standalone-chrome:118.0.5993.117-20251212\nTagged selenium/node-chrome:118.0-chromedriver-118.0-grid-4.39.0-20251212\nTagged selenium/standalone-chrome:118.0-chromedriver-118.0-grid-4.39.0-20251212\nTagged selenium/node-chrome:118.0-chromedriver-118.0-20251212\nTagged selenium/standalone-chrome:118.0-chromedriver-118.0-20251212\nTagged selenium/node-chrome:118.0-20251212\nTagged selenium/standalone-chrome:118.0-20251212\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.39.0/chrome_119.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.39.0 20251212 selenium false chrome true\nTagging images for browser chrome, version 4.39.0, build date 20251212, namespace selenium\nSelenium Grid version -> 4.39.0-20251212\nChrome version -> 119.0.6045.199\nShort Chrome version -> 119.0\nChromeDriver version -> 119.0.6045.105\nShort ChromeDriver version -> 119.0\nTagged selenium/node-chrome:119.0.6045.199-chromedriver-119.0.6045.105-grid-4.39.0-20251212\nTagged selenium/standalone-chrome:119.0.6045.199-chromedriver-119.0.6045.105-grid-4.39.0-20251212\nTagged selenium/node-chrome:119.0.6045.199-chromedriver-119.0.6045.105-20251212\nTagged selenium/standalone-chrome:119.0.6045.199-chromedriver-119.0.6045.105-20251212\nTagged selenium/node-chrome:119.0.6045.199-20251212\nTagged selenium/standalone-chrome:119.0.6045.199-20251212\nTagged selenium/node-chrome:119.0-chromedriver-119.0-grid-4.39.0-20251212\nTagged selenium/standalone-chrome:119.0-chromedriver-119.0-grid-4.39.0-20251212\nTagged selenium/node-chrome:119.0-chromedriver-119.0-20251212\nTagged selenium/standalone-chrome:119.0-chromedriver-119.0-20251212\nTagged selenium/node-chrome:119.0-20251212\nTagged selenium/standalone-chrome:119.0-20251212\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.39.0/chrome_120.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.39.0 20251212 selenium false chrome true\nTagging images for browser chrome, version 4.39.0, build date 20251212, namespace selenium\nSelenium Grid version -> 4.39.0-20251212\nChrome version -> 120.0.6099.224\nShort Chrome version -> 120.0\nChromeDriver version -> 120.0.6099.109\nShort ChromeDriver version -> 120.0\nTagged selenium/node-chrome:120.0.6099.224-chromedriver-120.0.6099.109-grid-4.39.0-20251212\nTagged selenium/standalone-chrome:120.0.6099.224-chromedriver-120.0.6099.109-grid-4.39.0-20251212\nTagged selenium/node-chrome:120.0.6099.224-chromedriver-120.0.6099.109-20251212\nTagged selenium/standalone-chrome:120.0.6099.224-chromedriver-120.0.6099.109-20251212\nTagged selenium/node-chrome:120.0.6099.224-20251212\nTagged selenium/standalone-chrome:120.0.6099.224-20251212\nTagged selenium/node-chrome:120.0-chromedriver-120.0-grid-4.39.0-20251212\nTagged selenium/standalone-chrome:120.0-chromedriver-120.0-grid-4.39.0-20251212\nTagged selenium/node-chrome:120.0-chromedriver-120.0-20251212\nTagged selenium/standalone-chrome:120.0-chromedriver-120.0-20251212\nTagged selenium/node-chrome:120.0-20251212\nTagged selenium/standalone-chrome:120.0-20251212\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.39.0/chrome_121.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.39.0 20251212 selenium false chrome true\nTagging images for browser chrome, version 4.39.0, build date 20251212, namespace selenium\nSelenium Grid version -> 4.39.0-20251212\nChrome version -> 121.0.6167.184\nShort Chrome version -> 121.0\nChromeDriver version -> 121.0.6167.184\nShort ChromeDriver version -> 121.0\nTagged selenium/node-chrome:121.0.6167.184-chromedriver-121.0.6167.184-grid-4.39.0-20251212\nTagged selenium/standalone-chrome:121.0.6167.184-chromedriver-121.0.6167.184-grid-4.39.0-20251212\nTagged selenium/node-chrome:121.0.6167.184-chromedriver-121.0.6167.184-20251212\nTagged selenium/standalone-chrome:121.0.6167.184-chromedriver-121.0.6167.184-20251212\nTagged selenium/node-chrome:121.0.6167.184-20251212\nTagged selenium/standalone-chrome:121.0.6167.184-20251212\nTagged selenium/node-chrome:121.0-chromedriver-121.0-grid-4.39.0-20251212\nTagged selenium/standalone-chrome:121.0-chromedriver-121.0-grid-4.39.0-20251212\nTagged selenium/node-chrome:121.0-chromedriver-121.0-20251212\nTagged selenium/standalone-chrome:121.0-chromedriver-121.0-20251212\nTagged selenium/node-chrome:121.0-20251212\nTagged selenium/standalone-chrome:121.0-20251212\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.39.0/chrome_122.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.39.0 20251212 selenium false chrome true\nTagging images for browser chrome, version 4.39.0, build date 20251212, namespace selenium\nSelenium Grid version -> 4.39.0-20251212\nChrome version -> 122.0.6261.128\nShort Chrome version -> 122.0\nChromeDriver version -> 122.0.6261.128\nShort ChromeDriver version -> 122.0\nTagged selenium/node-chrome:122.0.6261.128-chromedriver-122.0.6261.128-grid-4.39.0-20251212\nTagged selenium/standalone-chrome:122.0.6261.128-chromedriver-122.0.6261.128-grid-4.39.0-20251212\nTagged selenium/node-chrome:122.0.6261.128-chromedriver-122.0.6261.128-20251212\nTagged selenium/standalone-chrome:122.0.6261.128-chromedriver-122.0.6261.128-20251212\nTagged selenium/node-chrome:122.0.6261.128-20251212\nTagged selenium/standalone-chrome:122.0.6261.128-20251212\nTagged selenium/node-chrome:122.0-chromedriver-122.0-grid-4.39.0-20251212\nTagged selenium/standalone-chrome:122.0-chromedriver-122.0-grid-4.39.0-20251212\nTagged selenium/node-chrome:122.0-chromedriver-122.0-20251212\nTagged selenium/standalone-chrome:122.0-chromedriver-122.0-20251212\nTagged selenium/node-chrome:122.0-20251212\nTagged selenium/standalone-chrome:122.0-20251212\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.39.0/chrome_123.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.39.0 20251212 selenium false chrome true\nTagging images for browser chrome, version 4.39.0, build date 20251212, namespace selenium\nSelenium Grid version -> 4.39.0-20251212\nChrome version -> 123.0.6312.122\nShort Chrome version -> 123.0\nChromeDriver version -> 123.0.6312.122\nShort ChromeDriver version -> 123.0\nTagged selenium/node-chrome:123.0.6312.122-chromedriver-123.0.6312.122-grid-4.39.0-20251212\nTagged selenium/standalone-chrome:123.0.6312.122-chromedriver-123.0.6312.122-grid-4.39.0-20251212\nTagged selenium/node-chrome:123.0.6312.122-chromedriver-123.0.6312.122-20251212\nTagged selenium/standalone-chrome:123.0.6312.122-chromedriver-123.0.6312.122-20251212\nTagged selenium/node-chrome:123.0.6312.122-20251212\nTagged selenium/standalone-chrome:123.0.6312.122-20251212\nTagged selenium/node-chrome:123.0-chromedriver-123.0-grid-4.39.0-20251212\nTagged selenium/standalone-chrome:123.0-chromedriver-123.0-grid-4.39.0-20251212\nTagged selenium/node-chrome:123.0-chromedriver-123.0-20251212\nTagged selenium/standalone-chrome:123.0-chromedriver-123.0-20251212\nTagged selenium/node-chrome:123.0-20251212\nTagged selenium/standalone-chrome:123.0-20251212\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.39.0/chrome_124.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.39.0 20251212 selenium false chrome true\nTagging images for browser chrome, version 4.39.0, build date 20251212, namespace selenium\nSelenium Grid version -> 4.39.0-20251212\nChrome version -> 124.0.6367.207\nShort Chrome version -> 124.0\nChromeDriver version -> 124.0.6367.207\nShort ChromeDriver version -> 124.0\nTagged selenium/node-chrome:124.0.6367.207-chromedriver-124.0.6367.207-grid-4.39.0-20251212\nTagged selenium/standalone-chrome:124.0.6367.207-chromedriver-124.0.6367.207-grid-4.39.0-20251212\nTagged selenium/node-chrome:124.0.6367.207-chromedriver-124.0.6367.207-20251212\nTagged selenium/standalone-chrome:124.0.6367.207-chromedriver-124.0.6367.207-20251212\nTagged selenium/node-chrome:124.0.6367.207-20251212\nTagged selenium/standalone-chrome:124.0.6367.207-20251212\nTagged selenium/node-chrome:124.0-chromedriver-124.0-grid-4.39.0-20251212\nTagged selenium/standalone-chrome:124.0-chromedriver-124.0-grid-4.39.0-20251212\nTagged selenium/node-chrome:124.0-chromedriver-124.0-20251212\nTagged selenium/standalone-chrome:124.0-chromedriver-124.0-20251212\nTagged selenium/node-chrome:124.0-20251212\nTagged selenium/standalone-chrome:124.0-20251212\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.39.0/chrome_125.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.39.0 20251212 selenium false chrome true\nTagging images for browser chrome, version 4.39.0, build date 20251212, namespace selenium\nSelenium Grid version -> 4.39.0-20251212\nChrome version -> 125.0.6422.141\nShort Chrome version -> 125.0\nChromeDriver version -> 125.0.6422.141\nShort ChromeDriver version -> 125.0\nTagged selenium/node-chrome:125.0.6422.141-chromedriver-125.0.6422.141-grid-4.39.0-20251212\nTagged selenium/standalone-chrome:125.0.6422.141-chromedriver-125.0.6422.141-grid-4.39.0-20251212\nTagged selenium/node-chrome:125.0.6422.141-chromedriver-125.0.6422.141-20251212\nTagged selenium/standalone-chrome:125.0.6422.141-chromedriver-125.0.6422.141-20251212\nTagged selenium/node-chrome:125.0.6422.141-20251212\nTagged selenium/standalone-chrome:125.0.6422.141-20251212\nTagged selenium/node-chrome:125.0-chromedriver-125.0-grid-4.39.0-20251212\nTagged selenium/standalone-chrome:125.0-chromedriver-125.0-grid-4.39.0-20251212\nTagged selenium/node-chrome:125.0-chromedriver-125.0-20251212\nTagged selenium/standalone-chrome:125.0-chromedriver-125.0-20251212\nTagged selenium/node-chrome:125.0-20251212\nTagged selenium/standalone-chrome:125.0-20251212\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.39.0/chrome_126.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.39.0 20251212 selenium false chrome true\nTagging images for browser chrome, version 4.39.0, build date 20251212, namespace selenium\nSelenium Grid version -> 4.39.0-20251212\nChrome version -> 126.0.6478.182\nShort Chrome version -> 126.0\nChromeDriver version -> 126.0.6478.182\nShort ChromeDriver version -> 126.0\nTagged selenium/node-chrome:126.0.6478.182-chromedriver-126.0.6478.182-grid-4.39.0-20251212\nTagged selenium/standalone-chrome:126.0.6478.182-chromedriver-126.0.6478.182-grid-4.39.0-20251212\nTagged selenium/node-chrome:126.0.6478.182-chromedriver-126.0.6478.182-20251212\nTagged selenium/standalone-chrome:126.0.6478.182-chromedriver-126.0.6478.182-20251212\nTagged selenium/node-chrome:126.0.6478.182-20251212\nTagged selenium/standalone-chrome:126.0.6478.182-20251212\nTagged selenium/node-chrome:126.0-chromedriver-126.0-grid-4.39.0-20251212\nTagged selenium/standalone-chrome:126.0-chromedriver-126.0-grid-4.39.0-20251212\nTagged selenium/node-chrome:126.0-chromedriver-126.0-20251212\nTagged selenium/standalone-chrome:126.0-chromedriver-126.0-20251212\nTagged selenium/node-chrome:126.0-20251212\nTagged selenium/standalone-chrome:126.0-20251212\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.39.0/chrome_127.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.39.0 20251212 selenium false chrome true\nTagging images for browser chrome, version 4.39.0, build date 20251212, namespace selenium\nSelenium Grid version -> 4.39.0-20251212\nChrome version -> 127.0.6533.119\nShort Chrome version -> 127.0\nChromeDriver version -> 127.0.6533.119\nShort ChromeDriver version -> 127.0\nTagged selenium/node-chrome:127.0.6533.119-chromedriver-127.0.6533.119-grid-4.39.0-20251212\nTagged selenium/standalone-chrome:127.0.6533.119-chromedriver-127.0.6533.119-grid-4.39.0-20251212\nTagged selenium/node-chrome:127.0.6533.119-chromedriver-127.0.6533.119-20251212\nTagged selenium/standalone-chrome:127.0.6533.119-chromedriver-127.0.6533.119-20251212\nTagged selenium/node-chrome:127.0.6533.119-20251212\nTagged selenium/standalone-chrome:127.0.6533.119-20251212\nTagged selenium/node-chrome:127.0-chromedriver-127.0-grid-4.39.0-20251212\nTagged selenium/standalone-chrome:127.0-chromedriver-127.0-grid-4.39.0-20251212\nTagged selenium/node-chrome:127.0-chromedriver-127.0-20251212\nTagged selenium/standalone-chrome:127.0-chromedriver-127.0-20251212\nTagged selenium/node-chrome:127.0-20251212\nTagged selenium/standalone-chrome:127.0-20251212\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.39.0/chrome_128.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.39.0 20251212 selenium false chrome true\nTagging images for browser chrome, version 4.39.0, build date 20251212, namespace selenium\nSelenium Grid version -> 4.39.0-20251212\nChrome version -> 128.0.6613.137\nShort Chrome version -> 128.0\nChromeDriver version -> 128.0.6613.137\nShort ChromeDriver version -> 128.0\nTagged selenium/node-chrome:128.0.6613.137-chromedriver-128.0.6613.137-grid-4.39.0-20251212\nTagged selenium/standalone-chrome:128.0.6613.137-chromedriver-128.0.6613.137-grid-4.39.0-20251212\nTagged selenium/node-chrome:128.0.6613.137-chromedriver-128.0.6613.137-20251212\nTagged selenium/standalone-chrome:128.0.6613.137-chromedriver-128.0.6613.137-20251212\nTagged selenium/node-chrome:128.0.6613.137-20251212\nTagged selenium/standalone-chrome:128.0.6613.137-20251212\nTagged selenium/node-chrome:128.0-chromedriver-128.0-grid-4.39.0-20251212\nTagged selenium/standalone-chrome:128.0-chromedriver-128.0-grid-4.39.0-20251212\nTagged selenium/node-chrome:128.0-chromedriver-128.0-20251212\nTagged selenium/standalone-chrome:128.0-chromedriver-128.0-20251212\nTagged selenium/node-chrome:128.0-20251212\nTagged selenium/standalone-chrome:128.0-20251212\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.39.0/chrome_129.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.39.0 20251212 selenium false chrome true\nTagging images for browser chrome, version 4.39.0, build date 20251212, namespace selenium\nSelenium Grid version -> 4.39.0-20251212\nChrome version -> 129.0.6668.100\nShort Chrome version -> 129.0\nChromeDriver version -> 129.0.6668.100\nShort ChromeDriver version -> 129.0\nTagged selenium/node-chrome:129.0.6668.100-chromedriver-129.0.6668.100-grid-4.39.0-20251212\nTagged selenium/standalone-chrome:129.0.6668.100-chromedriver-129.0.6668.100-grid-4.39.0-20251212\nTagged selenium/node-chrome:129.0.6668.100-chromedriver-129.0.6668.100-20251212\nTagged selenium/standalone-chrome:129.0.6668.100-chromedriver-129.0.6668.100-20251212\nTagged selenium/node-chrome:129.0.6668.100-20251212\nTagged selenium/standalone-chrome:129.0.6668.100-20251212\nTagged selenium/node-chrome:129.0-chromedriver-129.0-grid-4.39.0-20251212\nTagged selenium/standalone-chrome:129.0-chromedriver-129.0-grid-4.39.0-20251212\nTagged selenium/node-chrome:129.0-chromedriver-129.0-20251212\nTagged selenium/standalone-chrome:129.0-chromedriver-129.0-20251212\nTagged selenium/node-chrome:129.0-20251212\nTagged selenium/standalone-chrome:129.0-20251212\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.39.0/chrome_130.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.39.0 20251212 selenium false chrome true\nTagging images for browser chrome, version 4.39.0, build date 20251212, namespace selenium\nSelenium Grid version -> 4.39.0-20251212\nChrome version -> 130.0.6723.116\nShort Chrome version -> 130.0\nChromeDriver version -> 130.0.6723.116\nShort ChromeDriver version -> 130.0\nTagged selenium/node-chrome:130.0.6723.116-chromedriver-130.0.6723.116-grid-4.39.0-20251212\nTagged selenium/standalone-chrome:130.0.6723.116-chromedriver-130.0.6723.116-grid-4.39.0-20251212\nTagged selenium/node-chrome:130.0.6723.116-chromedriver-130.0.6723.116-20251212\nTagged selenium/standalone-chrome:130.0.6723.116-chromedriver-130.0.6723.116-20251212\nTagged selenium/node-chrome:130.0.6723.116-20251212\nTagged selenium/standalone-chrome:130.0.6723.116-20251212\nTagged selenium/node-chrome:130.0-chromedriver-130.0-grid-4.39.0-20251212\nTagged selenium/standalone-chrome:130.0-chromedriver-130.0-grid-4.39.0-20251212\nTagged selenium/node-chrome:130.0-chromedriver-130.0-20251212\nTagged selenium/standalone-chrome:130.0-chromedriver-130.0-20251212\nTagged selenium/node-chrome:130.0-20251212\nTagged selenium/standalone-chrome:130.0-20251212\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.39.0/chrome_131.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.39.0 20251212 selenium false chrome true\nTagging images for browser chrome, version 4.39.0, build date 20251212, namespace selenium\nSelenium Grid version -> 4.39.0-20251212\nChrome version -> 131.0.6778.264\nShort Chrome version -> 131.0\nChromeDriver version -> 131.0.6778.264\nShort ChromeDriver version -> 131.0\nTagged selenium/node-chrome:131.0.6778.264-chromedriver-131.0.6778.264-grid-4.39.0-20251212\nTagged selenium/standalone-chrome:131.0.6778.264-chromedriver-131.0.6778.264-grid-4.39.0-20251212\nTagged selenium/node-chrome:131.0.6778.264-chromedriver-131.0.6778.264-20251212\nTagged selenium/standalone-chrome:131.0.6778.264-chromedriver-131.0.6778.264-20251212\nTagged selenium/node-chrome:131.0.6778.264-20251212\nTagged selenium/standalone-chrome:131.0.6778.264-20251212\nTagged selenium/node-chrome:131.0-chromedriver-131.0-grid-4.39.0-20251212\nTagged selenium/standalone-chrome:131.0-chromedriver-131.0-grid-4.39.0-20251212\nTagged selenium/node-chrome:131.0-chromedriver-131.0-20251212\nTagged selenium/standalone-chrome:131.0-chromedriver-131.0-20251212\nTagged selenium/node-chrome:131.0-20251212\nTagged selenium/standalone-chrome:131.0-20251212\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.39.0/chrome_132.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.39.0 20251212 selenium false chrome true\nTagging images for browser chrome, version 4.39.0, build date 20251212, namespace selenium\nSelenium Grid version -> 4.39.0-20251212\nChrome version -> 132.0.6834.159\nShort Chrome version -> 132.0\nChromeDriver version -> 132.0.6834.159\nShort ChromeDriver version -> 132.0\nTagged selenium/node-chrome:132.0.6834.159-chromedriver-132.0.6834.159-grid-4.39.0-20251212\nTagged selenium/standalone-chrome:132.0.6834.159-chromedriver-132.0.6834.159-grid-4.39.0-20251212\nTagged selenium/node-chrome:132.0.6834.159-chromedriver-132.0.6834.159-20251212\nTagged selenium/standalone-chrome:132.0.6834.159-chromedriver-132.0.6834.159-20251212\nTagged selenium/node-chrome:132.0.6834.159-20251212\nTagged selenium/standalone-chrome:132.0.6834.159-20251212\nTagged selenium/node-chrome:132.0-chromedriver-132.0-grid-4.39.0-20251212\nTagged selenium/standalone-chrome:132.0-chromedriver-132.0-grid-4.39.0-20251212\nTagged selenium/node-chrome:132.0-chromedriver-132.0-20251212\nTagged selenium/standalone-chrome:132.0-chromedriver-132.0-20251212\nTagged selenium/node-chrome:132.0-20251212\nTagged selenium/standalone-chrome:132.0-20251212\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.39.0/chrome_133.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.39.0 20251212 selenium false chrome true\nTagging images for browser chrome, version 4.39.0, build date 20251212, namespace selenium\nSelenium Grid version -> 4.39.0-20251212\nChrome version -> 133.0.6943.141\nShort Chrome version -> 133.0\nChromeDriver version -> 133.0.6943.141\nShort ChromeDriver version -> 133.0\nTagged selenium/node-chrome:133.0.6943.141-chromedriver-133.0.6943.141-grid-4.39.0-20251212\nTagged selenium/standalone-chrome:133.0.6943.141-chromedriver-133.0.6943.141-grid-4.39.0-20251212\nTagged selenium/node-chrome:133.0.6943.141-chromedriver-133.0.6943.141-20251212\nTagged selenium/standalone-chrome:133.0.6943.141-chromedriver-133.0.6943.141-20251212\nTagged selenium/node-chrome:133.0.6943.141-20251212\nTagged selenium/standalone-chrome:133.0.6943.141-20251212\nTagged selenium/node-chrome:133.0-chromedriver-133.0-grid-4.39.0-20251212\nTagged selenium/standalone-chrome:133.0-chromedriver-133.0-grid-4.39.0-20251212\nTagged selenium/node-chrome:133.0-chromedriver-133.0-20251212\nTagged selenium/standalone-chrome:133.0-chromedriver-133.0-20251212\nTagged selenium/node-chrome:133.0-20251212\nTagged selenium/standalone-chrome:133.0-20251212\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.39.0/chrome_134.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.39.0 20251212 selenium false chrome true\nTagging images for browser chrome, version 4.39.0, build date 20251212, namespace selenium\nSelenium Grid version -> 4.39.0-20251212\nChrome version -> 134.0.6998.165\nShort Chrome version -> 134.0\nChromeDriver version -> 134.0.6998.165\nShort ChromeDriver version -> 134.0\nTagged selenium/node-chrome:134.0.6998.165-chromedriver-134.0.6998.165-grid-4.39.0-20251212\nTagged selenium/standalone-chrome:134.0.6998.165-chromedriver-134.0.6998.165-grid-4.39.0-20251212\nTagged selenium/node-chrome:134.0.6998.165-chromedriver-134.0.6998.165-20251212\nTagged selenium/standalone-chrome:134.0.6998.165-chromedriver-134.0.6998.165-20251212\nTagged selenium/node-chrome:134.0.6998.165-20251212\nTagged selenium/standalone-chrome:134.0.6998.165-20251212\nTagged selenium/node-chrome:134.0-chromedriver-134.0-grid-4.39.0-20251212\nTagged selenium/standalone-chrome:134.0-chromedriver-134.0-grid-4.39.0-20251212\nTagged selenium/node-chrome:134.0-chromedriver-134.0-20251212\nTagged selenium/standalone-chrome:134.0-chromedriver-134.0-20251212\nTagged selenium/node-chrome:134.0-20251212\nTagged selenium/standalone-chrome:134.0-20251212\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.39.0/chrome_135.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.39.0 20251212 selenium false chrome true\nTagging images for browser chrome, version 4.39.0, build date 20251212, namespace selenium\nSelenium Grid version -> 4.39.0-20251212\nChrome version -> 135.0.7049.114\nShort Chrome version -> 135.0\nChromeDriver version -> 135.0.7049.114\nShort ChromeDriver version -> 135.0\nTagged selenium/node-chrome:135.0.7049.114-chromedriver-135.0.7049.114-grid-4.39.0-20251212\nTagged selenium/standalone-chrome:135.0.7049.114-chromedriver-135.0.7049.114-grid-4.39.0-20251212\nTagged selenium/node-chrome:135.0.7049.114-chromedriver-135.0.7049.114-20251212\nTagged selenium/standalone-chrome:135.0.7049.114-chromedriver-135.0.7049.114-20251212\nTagged selenium/node-chrome:135.0.7049.114-20251212\nTagged selenium/standalone-chrome:135.0.7049.114-20251212\nTagged selenium/node-chrome:135.0-chromedriver-135.0-grid-4.39.0-20251212\nTagged selenium/standalone-chrome:135.0-chromedriver-135.0-grid-4.39.0-20251212\nTagged selenium/node-chrome:135.0-chromedriver-135.0-20251212\nTagged selenium/standalone-chrome:135.0-chromedriver-135.0-20251212\nTagged selenium/node-chrome:135.0-20251212\nTagged selenium/standalone-chrome:135.0-20251212\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.39.0/chrome_136.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.39.0 20251212 selenium false chrome true\nTagging images for browser chrome, version 4.39.0, build date 20251212, namespace selenium\nSelenium Grid version -> 4.39.0-20251212\nChrome version -> 136.0.7103.113\nShort Chrome version -> 136.0\nChromeDriver version -> 136.0.7103.113\nShort ChromeDriver version -> 136.0\nTagged selenium/node-chrome:136.0.7103.113-chromedriver-136.0.7103.113-grid-4.39.0-20251212\nTagged selenium/standalone-chrome:136.0.7103.113-chromedriver-136.0.7103.113-grid-4.39.0-20251212\nTagged selenium/node-chrome:136.0.7103.113-chromedriver-136.0.7103.113-20251212\nTagged selenium/standalone-chrome:136.0.7103.113-chromedriver-136.0.7103.113-20251212\nTagged selenium/node-chrome:136.0.7103.113-20251212\nTagged selenium/standalone-chrome:136.0.7103.113-20251212\nTagged selenium/node-chrome:136.0-chromedriver-136.0-grid-4.39.0-20251212\nTagged selenium/standalone-chrome:136.0-chromedriver-136.0-grid-4.39.0-20251212\nTagged selenium/node-chrome:136.0-chromedriver-136.0-20251212\nTagged selenium/standalone-chrome:136.0-chromedriver-136.0-20251212\nTagged selenium/node-chrome:136.0-20251212\nTagged selenium/standalone-chrome:136.0-20251212\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.39.0/chrome_137.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.39.0 20251212 selenium false chrome true\nTagging images for browser chrome, version 4.39.0, build date 20251212, namespace selenium\nSelenium Grid version -> 4.39.0-20251212\nChrome version -> 137.0.7151.119\nShort Chrome version -> 137.0\nChromeDriver version -> 137.0.7151.119\nShort ChromeDriver version -> 137.0\nTagged selenium/node-chrome:137.0.7151.119-chromedriver-137.0.7151.119-grid-4.39.0-20251212\nTagged selenium/standalone-chrome:137.0.7151.119-chromedriver-137.0.7151.119-grid-4.39.0-20251212\nTagged selenium/node-chrome:137.0.7151.119-chromedriver-137.0.7151.119-20251212\nTagged selenium/standalone-chrome:137.0.7151.119-chromedriver-137.0.7151.119-20251212\nTagged selenium/node-chrome:137.0.7151.119-20251212\nTagged selenium/standalone-chrome:137.0.7151.119-20251212\nTagged selenium/node-chrome:137.0-chromedriver-137.0-grid-4.39.0-20251212\nTagged selenium/standalone-chrome:137.0-chromedriver-137.0-grid-4.39.0-20251212\nTagged selenium/node-chrome:137.0-chromedriver-137.0-20251212\nTagged selenium/standalone-chrome:137.0-chromedriver-137.0-20251212\nTagged selenium/node-chrome:137.0-20251212\nTagged selenium/standalone-chrome:137.0-20251212\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.39.0/chrome_138.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.39.0 20251212 selenium false chrome true\nTagging images for browser chrome, version 4.39.0, build date 20251212, namespace selenium\nSelenium Grid version -> 4.39.0-20251212\nChrome version -> 138.0.7204.183\nShort Chrome version -> 138.0\nChromeDriver version -> 138.0.7204.183\nShort ChromeDriver version -> 138.0\nTagged selenium/node-chrome:138.0.7204.183-chromedriver-138.0.7204.183-grid-4.39.0-20251212\nTagged selenium/standalone-chrome:138.0.7204.183-chromedriver-138.0.7204.183-grid-4.39.0-20251212\nTagged selenium/node-chrome:138.0.7204.183-chromedriver-138.0.7204.183-20251212\nTagged selenium/standalone-chrome:138.0.7204.183-chromedriver-138.0.7204.183-20251212\nTagged selenium/node-chrome:138.0.7204.183-20251212\nTagged selenium/standalone-chrome:138.0.7204.183-20251212\nTagged selenium/node-chrome:138.0-chromedriver-138.0-grid-4.39.0-20251212\nTagged selenium/standalone-chrome:138.0-chromedriver-138.0-grid-4.39.0-20251212\nTagged selenium/node-chrome:138.0-chromedriver-138.0-20251212\nTagged selenium/standalone-chrome:138.0-chromedriver-138.0-20251212\nTagged selenium/node-chrome:138.0-20251212\nTagged selenium/standalone-chrome:138.0-20251212\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.39.0/chrome_139.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.39.0 20251212 selenium false chrome true\nTagging images for browser chrome, version 4.39.0, build date 20251212, namespace selenium\nSelenium Grid version -> 4.39.0-20251212\nChrome version -> 139.0.7258.154\nShort Chrome version -> 139.0\nChromeDriver version -> 139.0.7258.154\nShort ChromeDriver version -> 139.0\nTagged selenium/node-chrome:139.0.7258.154-chromedriver-139.0.7258.154-grid-4.39.0-20251212\nTagged selenium/standalone-chrome:139.0.7258.154-chromedriver-139.0.7258.154-grid-4.39.0-20251212\nTagged selenium/node-chrome:139.0.7258.154-chromedriver-139.0.7258.154-20251212\nTagged selenium/standalone-chrome:139.0.7258.154-chromedriver-139.0.7258.154-20251212\nTagged selenium/node-chrome:139.0.7258.154-20251212\nTagged selenium/standalone-chrome:139.0.7258.154-20251212\nTagged selenium/node-chrome:139.0-chromedriver-139.0-grid-4.39.0-20251212\nTagged selenium/standalone-chrome:139.0-chromedriver-139.0-grid-4.39.0-20251212\nTagged selenium/node-chrome:139.0-chromedriver-139.0-20251212\nTagged selenium/standalone-chrome:139.0-chromedriver-139.0-20251212\nTagged selenium/node-chrome:139.0-20251212\nTagged selenium/standalone-chrome:139.0-20251212\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.39.0/chrome_140.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.39.0 20251212 selenium false chrome true\nTagging images for browser chrome, version 4.39.0, build date 20251212, namespace selenium\nSelenium Grid version -> 4.39.0-20251212\nChrome version -> 140.0.7339.207\nShort Chrome version -> 140.0\nChromeDriver version -> 140.0.7339.207\nShort ChromeDriver version -> 140.0\nTagged selenium/node-chrome:140.0.7339.207-chromedriver-140.0.7339.207-grid-4.39.0-20251212\nTagged selenium/standalone-chrome:140.0.7339.207-chromedriver-140.0.7339.207-grid-4.39.0-20251212\nTagged selenium/node-chrome:140.0.7339.207-chromedriver-140.0.7339.207-20251212\nTagged selenium/standalone-chrome:140.0.7339.207-chromedriver-140.0.7339.207-20251212\nTagged selenium/node-chrome:140.0.7339.207-20251212\nTagged selenium/standalone-chrome:140.0.7339.207-20251212\nTagged selenium/node-chrome:140.0-chromedriver-140.0-grid-4.39.0-20251212\nTagged selenium/standalone-chrome:140.0-chromedriver-140.0-grid-4.39.0-20251212\nTagged selenium/node-chrome:140.0-chromedriver-140.0-20251212\nTagged selenium/standalone-chrome:140.0-chromedriver-140.0-20251212\nTagged selenium/node-chrome:140.0-20251212\nTagged selenium/standalone-chrome:140.0-20251212\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.39.0/chrome_141.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.39.0 20251212 selenium false chrome true\nTagging images for browser chrome, version 4.39.0, build date 20251212, namespace selenium\nSelenium Grid version -> 4.39.0-20251212\nChrome version -> 141.0.7390.122\nShort Chrome version -> 141.0\nChromeDriver version -> 141.0.7390.122\nShort ChromeDriver version -> 141.0\nTagged selenium/node-chrome:141.0.7390.122-chromedriver-141.0.7390.122-grid-4.39.0-20251212\nTagged selenium/standalone-chrome:141.0.7390.122-chromedriver-141.0.7390.122-grid-4.39.0-20251212\nTagged selenium/node-chrome:141.0.7390.122-chromedriver-141.0.7390.122-20251212\nTagged selenium/standalone-chrome:141.0.7390.122-chromedriver-141.0.7390.122-20251212\nTagged selenium/node-chrome:141.0.7390.122-20251212\nTagged selenium/standalone-chrome:141.0.7390.122-20251212\nTagged selenium/node-chrome:141.0-chromedriver-141.0-grid-4.39.0-20251212\nTagged selenium/standalone-chrome:141.0-chromedriver-141.0-grid-4.39.0-20251212\nTagged selenium/node-chrome:141.0-chromedriver-141.0-20251212\nTagged selenium/standalone-chrome:141.0-chromedriver-141.0-20251212\nTagged selenium/node-chrome:141.0-20251212\nTagged selenium/standalone-chrome:141.0-20251212\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.39.0/chrome_142.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.39.0 20251212 selenium false chrome true\nTagging images for browser chrome, version 4.39.0, build date 20251212, namespace selenium\nSelenium Grid version -> 4.39.0-20251212\nChrome version -> 142.0.7444.175\nShort Chrome version -> 142.0\nChromeDriver version -> 142.0.7444.175\nShort ChromeDriver version -> 142.0\nTagged selenium/node-chrome:142.0.7444.175-chromedriver-142.0.7444.175-grid-4.39.0-20251212\nTagged selenium/standalone-chrome:142.0.7444.175-chromedriver-142.0.7444.175-grid-4.39.0-20251212\nTagged selenium/node-chrome:142.0.7444.175-chromedriver-142.0.7444.175-20251212\nTagged selenium/standalone-chrome:142.0.7444.175-chromedriver-142.0.7444.175-20251212\nTagged selenium/node-chrome:142.0.7444.175-20251212\nTagged selenium/standalone-chrome:142.0.7444.175-20251212\nTagged selenium/node-chrome:142.0-chromedriver-142.0-grid-4.39.0-20251212\nTagged selenium/standalone-chrome:142.0-chromedriver-142.0-grid-4.39.0-20251212\nTagged selenium/node-chrome:142.0-chromedriver-142.0-20251212\nTagged selenium/standalone-chrome:142.0-chromedriver-142.0-20251212\nTagged selenium/node-chrome:142.0-20251212\nTagged selenium/standalone-chrome:142.0-20251212\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.39.0/chrome_143.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.39.0 20251212 selenium false chrome true\nTagging images for browser chrome, version 4.39.0, build date 20251212, namespace selenium\nSelenium Grid version -> 4.39.0-20251212\nChrome version -> 143.0.7499.169\nShort Chrome version -> 143.0\nChromeDriver version -> 143.0.7499.169\nShort ChromeDriver version -> 143.0\nTagged selenium/node-chrome:143.0.7499.169-chromedriver-143.0.7499.169-grid-4.39.0-20251212\nTagged selenium/standalone-chrome:143.0.7499.169-chromedriver-143.0.7499.169-grid-4.39.0-20251212\nTagged selenium/node-chrome:143.0.7499.169-chromedriver-143.0.7499.169-20251212\nTagged selenium/standalone-chrome:143.0.7499.169-chromedriver-143.0.7499.169-20251212\nTagged selenium/node-chrome:143.0.7499.169-20251212\nTagged selenium/standalone-chrome:143.0.7499.169-20251212\nTagged selenium/node-chrome:143.0-chromedriver-143.0-grid-4.39.0-20251212\nTagged selenium/standalone-chrome:143.0-chromedriver-143.0-grid-4.39.0-20251212\nTagged selenium/node-chrome:143.0-chromedriver-143.0-20251212\nTagged selenium/standalone-chrome:143.0-chromedriver-143.0-20251212\nTagged selenium/node-chrome:143.0-20251212\nTagged selenium/standalone-chrome:143.0-20251212\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.39.0/chrome_95.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.39.0 20251212 selenium false chrome true\nTagging images for browser chrome, version 4.39.0, build date 20251212, namespace selenium\nSelenium Grid version -> 4.39.0-20251212\nChrome version -> 95.0.4638.69\nShort Chrome version -> 95.0\nChromeDriver version -> 95.0.4638.69\nShort ChromeDriver version -> 95.0\nTagged selenium/node-chrome:95.0.4638.69-chromedriver-95.0.4638.69-grid-4.39.0-20251212\nTagged selenium/standalone-chrome:95.0.4638.69-chromedriver-95.0.4638.69-grid-4.39.0-20251212\nTagged selenium/node-chrome:95.0.4638.69-chromedriver-95.0.4638.69-20251212\nTagged selenium/standalone-chrome:95.0.4638.69-chromedriver-95.0.4638.69-20251212\nTagged selenium/node-chrome:95.0.4638.69-20251212\nTagged selenium/standalone-chrome:95.0.4638.69-20251212\nTagged selenium/node-chrome:95.0-chromedriver-95.0-grid-4.39.0-20251212\nTagged selenium/standalone-chrome:95.0-chromedriver-95.0-grid-4.39.0-20251212\nTagged selenium/node-chrome:95.0-chromedriver-95.0-20251212\nTagged selenium/standalone-chrome:95.0-chromedriver-95.0-20251212\nTagged selenium/node-chrome:95.0-20251212\nTagged selenium/standalone-chrome:95.0-20251212\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.39.0/chrome_96.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.39.0 20251212 selenium false chrome true\nTagging images for browser chrome, version 4.39.0, build date 20251212, namespace selenium\nSelenium Grid version -> 4.39.0-20251212\nChrome version -> 96.0.4664.110\nShort Chrome version -> 96.0\nChromeDriver version -> 96.0.4664.45\nShort ChromeDriver version -> 96.0\nTagged selenium/node-chrome:96.0.4664.110-chromedriver-96.0.4664.45-grid-4.39.0-20251212\nTagged selenium/standalone-chrome:96.0.4664.110-chromedriver-96.0.4664.45-grid-4.39.0-20251212\nTagged selenium/node-chrome:96.0.4664.110-chromedriver-96.0.4664.45-20251212\nTagged selenium/standalone-chrome:96.0.4664.110-chromedriver-96.0.4664.45-20251212\nTagged selenium/node-chrome:96.0.4664.110-20251212\nTagged selenium/standalone-chrome:96.0.4664.110-20251212\nTagged selenium/node-chrome:96.0-chromedriver-96.0-grid-4.39.0-20251212\nTagged selenium/standalone-chrome:96.0-chromedriver-96.0-grid-4.39.0-20251212\nTagged selenium/node-chrome:96.0-chromedriver-96.0-20251212\nTagged selenium/standalone-chrome:96.0-chromedriver-96.0-20251212\nTagged selenium/node-chrome:96.0-20251212\nTagged selenium/standalone-chrome:96.0-20251212\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.39.0/chrome_97.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.39.0 20251212 selenium false chrome true\nTagging images for browser chrome, version 4.39.0, build date 20251212, namespace selenium\nSelenium Grid version -> 4.39.0-20251212\nChrome version -> 97.0.4692.99\nShort Chrome version -> 97.0\nChromeDriver version -> 97.0.4692.71\nShort ChromeDriver version -> 97.0\nTagged selenium/node-chrome:97.0.4692.99-chromedriver-97.0.4692.71-grid-4.39.0-20251212\nTagged selenium/standalone-chrome:97.0.4692.99-chromedriver-97.0.4692.71-grid-4.39.0-20251212\nTagged selenium/node-chrome:97.0.4692.99-chromedriver-97.0.4692.71-20251212\nTagged selenium/standalone-chrome:97.0.4692.99-chromedriver-97.0.4692.71-20251212\nTagged selenium/node-chrome:97.0.4692.99-20251212\nTagged selenium/standalone-chrome:97.0.4692.99-20251212\nTagged selenium/node-chrome:97.0-chromedriver-97.0-grid-4.39.0-20251212\nTagged selenium/standalone-chrome:97.0-chromedriver-97.0-grid-4.39.0-20251212\nTagged selenium/node-chrome:97.0-chromedriver-97.0-20251212\nTagged selenium/standalone-chrome:97.0-chromedriver-97.0-20251212\nTagged selenium/node-chrome:97.0-20251212\nTagged selenium/standalone-chrome:97.0-20251212\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.39.0/chrome_98.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.39.0 20251212 selenium false chrome true\nTagging images for browser chrome, version 4.39.0, build date 20251212, namespace selenium\nSelenium Grid version -> 4.39.0-20251212\nChrome version -> 98.0.4758.102\nShort Chrome version -> 98.0\nChromeDriver version -> 98.0.4758.102\nShort ChromeDriver version -> 98.0\nTagged selenium/node-chrome:98.0.4758.102-chromedriver-98.0.4758.102-grid-4.39.0-20251212\nTagged selenium/standalone-chrome:98.0.4758.102-chromedriver-98.0.4758.102-grid-4.39.0-20251212\nTagged selenium/node-chrome:98.0.4758.102-chromedriver-98.0.4758.102-20251212\nTagged selenium/standalone-chrome:98.0.4758.102-chromedriver-98.0.4758.102-20251212\nTagged selenium/node-chrome:98.0.4758.102-20251212\nTagged selenium/standalone-chrome:98.0.4758.102-20251212\nTagged selenium/node-chrome:98.0-chromedriver-98.0-grid-4.39.0-20251212\nTagged selenium/standalone-chrome:98.0-chromedriver-98.0-grid-4.39.0-20251212\nTagged selenium/node-chrome:98.0-chromedriver-98.0-20251212\nTagged selenium/standalone-chrome:98.0-chromedriver-98.0-20251212\nTagged selenium/node-chrome:98.0-20251212\nTagged selenium/standalone-chrome:98.0-20251212\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.39.0/chrome_99.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.39.0 20251212 selenium false chrome true\nTagging images for browser chrome, version 4.39.0, build date 20251212, namespace selenium\nSelenium Grid version -> 4.39.0-20251212\nChrome version -> 99.0.4844.84\nShort Chrome version -> 99.0\nChromeDriver version -> 99.0.4844.51\nShort ChromeDriver version -> 99.0\nTagged selenium/node-chrome:99.0.4844.84-chromedriver-99.0.4844.51-grid-4.39.0-20251212\nTagged selenium/standalone-chrome:99.0.4844.84-chromedriver-99.0.4844.51-grid-4.39.0-20251212\nTagged selenium/node-chrome:99.0.4844.84-chromedriver-99.0.4844.51-20251212\nTagged selenium/standalone-chrome:99.0.4844.84-chromedriver-99.0.4844.51-20251212\nTagged selenium/node-chrome:99.0.4844.84-20251212\nTagged selenium/standalone-chrome:99.0.4844.84-20251212\nTagged selenium/node-chrome:99.0-chromedriver-99.0-grid-4.39.0-20251212\nTagged selenium/standalone-chrome:99.0-chromedriver-99.0-grid-4.39.0-20251212\nTagged selenium/node-chrome:99.0-chromedriver-99.0-20251212\nTagged selenium/standalone-chrome:99.0-chromedriver-99.0-20251212\nTagged selenium/node-chrome:99.0-20251212\nTagged selenium/standalone-chrome:99.0-20251212\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.39.0/edge_114.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.39.0 20251212 selenium false edge true\nTagging images for browser edge, version 4.39.0, build date 20251212, namespace selenium\nSelenium Grid version -> 4.39.0-20251212\nEdge version -> 114.0.1823.82\nShort Edge version -> 114.0\nEdgeDriver version -> 114.0.1823.82\nShort EdgeDriver version -> 114.0\nTagged selenium/node-edge:114.0.1823.82-edgedriver-114.0.1823.82-grid-4.39.0-20251212\nTagged selenium/standalone-edge:114.0.1823.82-edgedriver-114.0.1823.82-grid-4.39.0-20251212\nTagged selenium/node-edge:114.0.1823.82-edgedriver-114.0.1823.82-20251212\nTagged selenium/standalone-edge:114.0.1823.82-edgedriver-114.0.1823.82-20251212\nTagged selenium/node-edge:114.0.1823.82-20251212\nTagged selenium/standalone-edge:114.0.1823.82-20251212\nTagged selenium/node-edge:114.0-edgedriver-114.0-grid-4.39.0-20251212\nTagged selenium/standalone-edge:114.0-edgedriver-114.0-grid-4.39.0-20251212\nTagged selenium/node-edge:114.0-edgedriver-114.0-20251212\nTagged selenium/standalone-edge:114.0-edgedriver-114.0-20251212\nTagged selenium/node-edge:114.0-20251212\nTagged selenium/standalone-edge:114.0-20251212\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.39.0/edge_115.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.39.0 20251212 selenium false edge true\nTagging images for browser edge, version 4.39.0, build date 20251212, namespace selenium\nSelenium Grid version -> 4.39.0-20251212\nEdge version -> 115.0.1901.203\nShort Edge version -> 115.0\nEdgeDriver version -> 115.0.1901.203\nShort EdgeDriver version -> 115.0\nTagged selenium/node-edge:115.0.1901.203-edgedriver-115.0.1901.203-grid-4.39.0-20251212\nTagged selenium/standalone-edge:115.0.1901.203-edgedriver-115.0.1901.203-grid-4.39.0-20251212\nTagged selenium/node-edge:115.0.1901.203-edgedriver-115.0.1901.203-20251212\nTagged selenium/standalone-edge:115.0.1901.203-edgedriver-115.0.1901.203-20251212\nTagged selenium/node-edge:115.0.1901.203-20251212\nTagged selenium/standalone-edge:115.0.1901.203-20251212\nTagged selenium/node-edge:115.0-edgedriver-115.0-grid-4.39.0-20251212\nTagged selenium/standalone-edge:115.0-edgedriver-115.0-grid-4.39.0-20251212\nTagged selenium/node-edge:115.0-edgedriver-115.0-20251212\nTagged selenium/standalone-edge:115.0-edgedriver-115.0-20251212\nTagged selenium/node-edge:115.0-20251212\nTagged selenium/standalone-edge:115.0-20251212\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.39.0/edge_116.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.39.0 20251212 selenium false edge true\nTagging images for browser edge, version 4.39.0, build date 20251212, namespace selenium\nSelenium Grid version -> 4.39.0-20251212\nEdge version -> 116.0.1938.81\nShort Edge version -> 116.0\nEdgeDriver version -> 116.0.1938.81\nShort EdgeDriver version -> 116.0\nTagged selenium/node-edge:116.0.1938.81-edgedriver-116.0.1938.81-grid-4.39.0-20251212\nTagged selenium/standalone-edge:116.0.1938.81-edgedriver-116.0.1938.81-grid-4.39.0-20251212\nTagged selenium/node-edge:116.0.1938.81-edgedriver-116.0.1938.81-20251212\nTagged selenium/standalone-edge:116.0.1938.81-edgedriver-116.0.1938.81-20251212\nTagged selenium/node-edge:116.0.1938.81-20251212\nTagged selenium/standalone-edge:116.0.1938.81-20251212\nTagged selenium/node-edge:116.0-edgedriver-116.0-grid-4.39.0-20251212\nTagged selenium/standalone-edge:116.0-edgedriver-116.0-grid-4.39.0-20251212\nTagged selenium/node-edge:116.0-edgedriver-116.0-20251212\nTagged selenium/standalone-edge:116.0-edgedriver-116.0-20251212\nTagged selenium/node-edge:116.0-20251212\nTagged selenium/standalone-edge:116.0-20251212\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.39.0/edge_117.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.39.0 20251212 selenium false edge true\nTagging images for browser edge, version 4.39.0, build date 20251212, namespace selenium\nSelenium Grid version -> 4.39.0-20251212\nEdge version -> 117.0.2045.55\nShort Edge version -> 117.0\nEdgeDriver version -> 117.0.2045.55\nShort EdgeDriver version -> 117.0\nTagged selenium/node-edge:117.0.2045.55-edgedriver-117.0.2045.55-grid-4.39.0-20251212\nTagged selenium/standalone-edge:117.0.2045.55-edgedriver-117.0.2045.55-grid-4.39.0-20251212\nTagged selenium/node-edge:117.0.2045.55-edgedriver-117.0.2045.55-20251212\nTagged selenium/standalone-edge:117.0.2045.55-edgedriver-117.0.2045.55-20251212\nTagged selenium/node-edge:117.0.2045.55-20251212\nTagged selenium/standalone-edge:117.0.2045.55-20251212\nTagged selenium/node-edge:117.0-edgedriver-117.0-grid-4.39.0-20251212\nTagged selenium/standalone-edge:117.0-edgedriver-117.0-grid-4.39.0-20251212\nTagged selenium/node-edge:117.0-edgedriver-117.0-20251212\nTagged selenium/standalone-edge:117.0-edgedriver-117.0-20251212\nTagged selenium/node-edge:117.0-20251212\nTagged selenium/standalone-edge:117.0-20251212\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.39.0/edge_118.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.39.0 20251212 selenium false edge true\nTagging images for browser edge, version 4.39.0, build date 20251212, namespace selenium\nSelenium Grid version -> 4.39.0-20251212\nEdge version -> 118.0.2088.76\nShort Edge version -> 118.0\nEdgeDriver version -> 118.0.2088.76\nShort EdgeDriver version -> 118.0\nTagged selenium/node-edge:118.0.2088.76-edgedriver-118.0.2088.76-grid-4.39.0-20251212\nTagged selenium/standalone-edge:118.0.2088.76-edgedriver-118.0.2088.76-grid-4.39.0-20251212\nTagged selenium/node-edge:118.0.2088.76-edgedriver-118.0.2088.76-20251212\nTagged selenium/standalone-edge:118.0.2088.76-edgedriver-118.0.2088.76-20251212\nTagged selenium/node-edge:118.0.2088.76-20251212\nTagged selenium/standalone-edge:118.0.2088.76-20251212\nTagged selenium/node-edge:118.0-edgedriver-118.0-grid-4.39.0-20251212\nTagged selenium/standalone-edge:118.0-edgedriver-118.0-grid-4.39.0-20251212\nTagged selenium/node-edge:118.0-edgedriver-118.0-20251212\nTagged selenium/standalone-edge:118.0-edgedriver-118.0-20251212\nTagged selenium/node-edge:118.0-20251212\nTagged selenium/standalone-edge:118.0-20251212\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.39.0/edge_119.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.39.0 20251212 selenium false edge true\nTagging images for browser edge, version 4.39.0, build date 20251212, namespace selenium\nSelenium Grid version -> 4.39.0-20251212\nEdge version -> 119.0.2151.97\nShort Edge version -> 119.0\nEdgeDriver version -> 119.0.2151.97\nShort EdgeDriver version -> 119.0\nTagged selenium/node-edge:119.0.2151.97-edgedriver-119.0.2151.97-grid-4.39.0-20251212\nTagged selenium/standalone-edge:119.0.2151.97-edgedriver-119.0.2151.97-grid-4.39.0-20251212\nTagged selenium/node-edge:119.0.2151.97-edgedriver-119.0.2151.97-20251212\nTagged selenium/standalone-edge:119.0.2151.97-edgedriver-119.0.2151.97-20251212\nTagged selenium/node-edge:119.0.2151.97-20251212\nTagged selenium/standalone-edge:119.0.2151.97-20251212\nTagged selenium/node-edge:119.0-edgedriver-119.0-grid-4.39.0-20251212\nTagged selenium/standalone-edge:119.0-edgedriver-119.0-grid-4.39.0-20251212\nTagged selenium/node-edge:119.0-edgedriver-119.0-20251212\nTagged selenium/standalone-edge:119.0-edgedriver-119.0-20251212\nTagged selenium/node-edge:119.0-20251212\nTagged selenium/standalone-edge:119.0-20251212\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.39.0/edge_120.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.39.0 20251212 selenium false edge true\nTagging images for browser edge, version 4.39.0, build date 20251212, namespace selenium\nSelenium Grid version -> 4.39.0-20251212\nEdge version -> 120.0.2210.144\nShort Edge version -> 120.0\nEdgeDriver version -> 120.0.2210.144\nShort EdgeDriver version -> 120.0\nTagged selenium/node-edge:120.0.2210.144-edgedriver-120.0.2210.144-grid-4.39.0-20251212\nTagged selenium/standalone-edge:120.0.2210.144-edgedriver-120.0.2210.144-grid-4.39.0-20251212\nTagged selenium/node-edge:120.0.2210.144-edgedriver-120.0.2210.144-20251212\nTagged selenium/standalone-edge:120.0.2210.144-edgedriver-120.0.2210.144-20251212\nTagged selenium/node-edge:120.0.2210.144-20251212\nTagged selenium/standalone-edge:120.0.2210.144-20251212\nTagged selenium/node-edge:120.0-edgedriver-120.0-grid-4.39.0-20251212\nTagged selenium/standalone-edge:120.0-edgedriver-120.0-grid-4.39.0-20251212\nTagged selenium/node-edge:120.0-edgedriver-120.0-20251212\nTagged selenium/standalone-edge:120.0-edgedriver-120.0-20251212\nTagged selenium/node-edge:120.0-20251212\nTagged selenium/standalone-edge:120.0-20251212\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.39.0/edge_121.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.39.0 20251212 selenium false edge true\nTagging images for browser edge, version 4.39.0, build date 20251212, namespace selenium\nSelenium Grid version -> 4.39.0-20251212\nEdge version -> 121.0.2277.128\nShort Edge version -> 121.0\nEdgeDriver version -> 121.0.2277.128\nShort EdgeDriver version -> 121.0\nTagged selenium/node-edge:121.0.2277.128-edgedriver-121.0.2277.128-grid-4.39.0-20251212\nTagged selenium/standalone-edge:121.0.2277.128-edgedriver-121.0.2277.128-grid-4.39.0-20251212\nTagged selenium/node-edge:121.0.2277.128-edgedriver-121.0.2277.128-20251212\nTagged selenium/standalone-edge:121.0.2277.128-edgedriver-121.0.2277.128-20251212\nTagged selenium/node-edge:121.0.2277.128-20251212\nTagged selenium/standalone-edge:121.0.2277.128-20251212\nTagged selenium/node-edge:121.0-edgedriver-121.0-grid-4.39.0-20251212\nTagged selenium/standalone-edge:121.0-edgedriver-121.0-grid-4.39.0-20251212\nTagged selenium/node-edge:121.0-edgedriver-121.0-20251212\nTagged selenium/standalone-edge:121.0-edgedriver-121.0-20251212\nTagged selenium/node-edge:121.0-20251212\nTagged selenium/standalone-edge:121.0-20251212\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.39.0/edge_122.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.39.0 20251212 selenium false edge true\nTagging images for browser edge, version 4.39.0, build date 20251212, namespace selenium\nSelenium Grid version -> 4.39.0-20251212\nEdge version -> 122.0.2365.92\nShort Edge version -> 122.0\nEdgeDriver version -> 122.0.2365.92\nShort EdgeDriver version -> 122.0\nTagged selenium/node-edge:122.0.2365.92-edgedriver-122.0.2365.92-grid-4.39.0-20251212\nTagged selenium/standalone-edge:122.0.2365.92-edgedriver-122.0.2365.92-grid-4.39.0-20251212\nTagged selenium/node-edge:122.0.2365.92-edgedriver-122.0.2365.92-20251212\nTagged selenium/standalone-edge:122.0.2365.92-edgedriver-122.0.2365.92-20251212\nTagged selenium/node-edge:122.0.2365.92-20251212\nTagged selenium/standalone-edge:122.0.2365.92-20251212\nTagged selenium/node-edge:122.0-edgedriver-122.0-grid-4.39.0-20251212\nTagged selenium/standalone-edge:122.0-edgedriver-122.0-grid-4.39.0-20251212\nTagged selenium/node-edge:122.0-edgedriver-122.0-20251212\nTagged selenium/standalone-edge:122.0-edgedriver-122.0-20251212\nTagged selenium/node-edge:122.0-20251212\nTagged selenium/standalone-edge:122.0-20251212\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.39.0/edge_123.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.39.0 20251212 selenium false edge true\nTagging images for browser edge, version 4.39.0, build date 20251212, namespace selenium\nSelenium Grid version -> 4.39.0-20251212\nEdge version -> 123.0.2420.97\nShort Edge version -> 123.0\nEdgeDriver version -> 123.0.2420.97\nShort EdgeDriver version -> 123.0\nTagged selenium/node-edge:123.0.2420.97-edgedriver-123.0.2420.97-grid-4.39.0-20251212\nTagged selenium/standalone-edge:123.0.2420.97-edgedriver-123.0.2420.97-grid-4.39.0-20251212\nTagged selenium/node-edge:123.0.2420.97-edgedriver-123.0.2420.97-20251212\nTagged selenium/standalone-edge:123.0.2420.97-edgedriver-123.0.2420.97-20251212\nTagged selenium/node-edge:123.0.2420.97-20251212\nTagged selenium/standalone-edge:123.0.2420.97-20251212\nTagged selenium/node-edge:123.0-edgedriver-123.0-grid-4.39.0-20251212\nTagged selenium/standalone-edge:123.0-edgedriver-123.0-grid-4.39.0-20251212\nTagged selenium/node-edge:123.0-edgedriver-123.0-20251212\nTagged selenium/standalone-edge:123.0-edgedriver-123.0-20251212\nTagged selenium/node-edge:123.0-20251212\nTagged selenium/standalone-edge:123.0-20251212\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.39.0/edge_124.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.39.0 20251212 selenium false edge true\nTagging images for browser edge, version 4.39.0, build date 20251212, namespace selenium\nSelenium Grid version -> 4.39.0-20251212\nEdge version -> 124.0.2478.109\nShort Edge version -> 124.0\nEdgeDriver version -> 124.0.2478.109\nShort EdgeDriver version -> 124.0\nTagged selenium/node-edge:124.0.2478.109-edgedriver-124.0.2478.109-grid-4.39.0-20251212\nTagged selenium/standalone-edge:124.0.2478.109-edgedriver-124.0.2478.109-grid-4.39.0-20251212\nTagged selenium/node-edge:124.0.2478.109-edgedriver-124.0.2478.109-20251212\nTagged selenium/standalone-edge:124.0.2478.109-edgedriver-124.0.2478.109-20251212\nTagged selenium/node-edge:124.0.2478.109-20251212\nTagged selenium/standalone-edge:124.0.2478.109-20251212\nTagged selenium/node-edge:124.0-edgedriver-124.0-grid-4.39.0-20251212\nTagged selenium/standalone-edge:124.0-edgedriver-124.0-grid-4.39.0-20251212\nTagged selenium/node-edge:124.0-edgedriver-124.0-20251212\nTagged selenium/standalone-edge:124.0-edgedriver-124.0-20251212\nTagged selenium/node-edge:124.0-20251212\nTagged selenium/standalone-edge:124.0-20251212\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.39.0/edge_125.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.39.0 20251212 selenium false edge true\nTagging images for browser edge, version 4.39.0, build date 20251212, namespace selenium\nSelenium Grid version -> 4.39.0-20251212\nEdge version -> 125.0.2535.92\nShort Edge version -> 125.0\nEdgeDriver version -> 125.0.2535.92\nShort EdgeDriver version -> 125.0\nTagged selenium/node-edge:125.0.2535.92-edgedriver-125.0.2535.92-grid-4.39.0-20251212\nTagged selenium/standalone-edge:125.0.2535.92-edgedriver-125.0.2535.92-grid-4.39.0-20251212\nTagged selenium/node-edge:125.0.2535.92-edgedriver-125.0.2535.92-20251212\nTagged selenium/standalone-edge:125.0.2535.92-edgedriver-125.0.2535.92-20251212\nTagged selenium/node-edge:125.0.2535.92-20251212\nTagged selenium/standalone-edge:125.0.2535.92-20251212\nTagged selenium/node-edge:125.0-edgedriver-125.0-grid-4.39.0-20251212\nTagged selenium/standalone-edge:125.0-edgedriver-125.0-grid-4.39.0-20251212\nTagged selenium/node-edge:125.0-edgedriver-125.0-20251212\nTagged selenium/standalone-edge:125.0-edgedriver-125.0-20251212\nTagged selenium/node-edge:125.0-20251212\nTagged selenium/standalone-edge:125.0-20251212\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.39.0/edge_126.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.39.0 20251212 selenium false edge true\nTagging images for browser edge, version 4.39.0, build date 20251212, namespace selenium\nSelenium Grid version -> 4.39.0-20251212\nEdge version -> 126.0.2592.113\nShort Edge version -> 126.0\nEdgeDriver version -> 126.0.2592.123\nShort EdgeDriver version -> 126.0\nTagged selenium/node-edge:126.0.2592.113-edgedriver-126.0.2592.123-grid-4.39.0-20251212\nTagged selenium/standalone-edge:126.0.2592.113-edgedriver-126.0.2592.123-grid-4.39.0-20251212\nTagged selenium/node-edge:126.0.2592.113-edgedriver-126.0.2592.123-20251212\nTagged selenium/standalone-edge:126.0.2592.113-edgedriver-126.0.2592.123-20251212\nTagged selenium/node-edge:126.0.2592.113-20251212\nTagged selenium/standalone-edge:126.0.2592.113-20251212\nTagged selenium/node-edge:126.0-edgedriver-126.0-grid-4.39.0-20251212\nTagged selenium/standalone-edge:126.0-edgedriver-126.0-grid-4.39.0-20251212\nTagged selenium/node-edge:126.0-edgedriver-126.0-20251212\nTagged selenium/standalone-edge:126.0-edgedriver-126.0-20251212\nTagged selenium/node-edge:126.0-20251212\nTagged selenium/standalone-edge:126.0-20251212\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.39.0/edge_127.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.39.0 20251212 selenium false edge true\nTagging images for browser edge, version 4.39.0, build date 20251212, namespace selenium\nSelenium Grid version -> 4.39.0-20251212\nEdge version -> 127.0.2651.105\nShort Edge version -> 127.0\nEdgeDriver version -> 127.0.2651.107\nShort EdgeDriver version -> 127.0\nTagged selenium/node-edge:127.0.2651.105-edgedriver-127.0.2651.107-grid-4.39.0-20251212\nTagged selenium/standalone-edge:127.0.2651.105-edgedriver-127.0.2651.107-grid-4.39.0-20251212\nTagged selenium/node-edge:127.0.2651.105-edgedriver-127.0.2651.107-20251212\nTagged selenium/standalone-edge:127.0.2651.105-edgedriver-127.0.2651.107-20251212\nTagged selenium/node-edge:127.0.2651.105-20251212\nTagged selenium/standalone-edge:127.0.2651.105-20251212\nTagged selenium/node-edge:127.0-edgedriver-127.0-grid-4.39.0-20251212\nTagged selenium/standalone-edge:127.0-edgedriver-127.0-grid-4.39.0-20251212\nTagged selenium/node-edge:127.0-edgedriver-127.0-20251212\nTagged selenium/standalone-edge:127.0-edgedriver-127.0-20251212\nTagged selenium/node-edge:127.0-20251212\nTagged selenium/standalone-edge:127.0-20251212\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.39.0/edge_128.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.39.0 20251212 selenium false edge true\nTagging images for browser edge, version 4.39.0, build date 20251212, namespace selenium\nSelenium Grid version -> 4.39.0-20251212\nEdge version -> 128.0.2739.79\nShort Edge version -> 128.0\nEdgeDriver version -> 128.0.2739.81\nShort EdgeDriver version -> 128.0\nTagged selenium/node-edge:128.0.2739.79-edgedriver-128.0.2739.81-grid-4.39.0-20251212\nTagged selenium/standalone-edge:128.0.2739.79-edgedriver-128.0.2739.81-grid-4.39.0-20251212\nTagged selenium/node-edge:128.0.2739.79-edgedriver-128.0.2739.81-20251212\nTagged selenium/standalone-edge:128.0.2739.79-edgedriver-128.0.2739.81-20251212\nTagged selenium/node-edge:128.0.2739.79-20251212\nTagged selenium/standalone-edge:128.0.2739.79-20251212\nTagged selenium/node-edge:128.0-edgedriver-128.0-grid-4.39.0-20251212\nTagged selenium/standalone-edge:128.0-edgedriver-128.0-grid-4.39.0-20251212\nTagged selenium/node-edge:128.0-edgedriver-128.0-20251212\nTagged selenium/standalone-edge:128.0-edgedriver-128.0-20251212\nTagged selenium/node-edge:128.0-20251212\nTagged selenium/standalone-edge:128.0-20251212\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.39.0/edge_129.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.39.0 20251212 selenium false edge true\nTagging images for browser edge, version 4.39.0, build date 20251212, namespace selenium\nSelenium Grid version -> 4.39.0-20251212\nEdge version -> 129.0.2792.89\nShort Edge version -> 129.0\nEdgeDriver version -> 129.0.2792.98\nShort EdgeDriver version -> 129.0\nTagged selenium/node-edge:129.0.2792.89-edgedriver-129.0.2792.98-grid-4.39.0-20251212\nTagged selenium/standalone-edge:129.0.2792.89-edgedriver-129.0.2792.98-grid-4.39.0-20251212\nTagged selenium/node-edge:129.0.2792.89-edgedriver-129.0.2792.98-20251212\nTagged selenium/standalone-edge:129.0.2792.89-edgedriver-129.0.2792.98-20251212\nTagged selenium/node-edge:129.0.2792.89-20251212\nTagged selenium/standalone-edge:129.0.2792.89-20251212\nTagged selenium/node-edge:129.0-edgedriver-129.0-grid-4.39.0-20251212\nTagged selenium/standalone-edge:129.0-edgedriver-129.0-grid-4.39.0-20251212\nTagged selenium/node-edge:129.0-edgedriver-129.0-20251212\nTagged selenium/standalone-edge:129.0-edgedriver-129.0-20251212\nTagged selenium/node-edge:129.0-20251212\nTagged selenium/standalone-edge:129.0-20251212\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.39.0/edge_130.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.39.0 20251212 selenium false edge true\nTagging images for browser edge, version 4.39.0, build date 20251212, namespace selenium\nSelenium Grid version -> 4.39.0-20251212\nEdge version -> 130.0.2849.80\nShort Edge version -> 130.0\nEdgeDriver version -> 130.0.2849.78\nShort EdgeDriver version -> 130.0\nTagged selenium/node-edge:130.0.2849.80-edgedriver-130.0.2849.78-grid-4.39.0-20251212\nTagged selenium/standalone-edge:130.0.2849.80-edgedriver-130.0.2849.78-grid-4.39.0-20251212\nTagged selenium/node-edge:130.0.2849.80-edgedriver-130.0.2849.78-20251212\nTagged selenium/standalone-edge:130.0.2849.80-edgedriver-130.0.2849.78-20251212\nTagged selenium/node-edge:130.0.2849.80-20251212\nTagged selenium/standalone-edge:130.0.2849.80-20251212\nTagged selenium/node-edge:130.0-edgedriver-130.0-grid-4.39.0-20251212\nTagged selenium/standalone-edge:130.0-edgedriver-130.0-grid-4.39.0-20251212\nTagged selenium/node-edge:130.0-edgedriver-130.0-20251212\nTagged selenium/standalone-edge:130.0-edgedriver-130.0-20251212\nTagged selenium/node-edge:130.0-20251212\nTagged selenium/standalone-edge:130.0-20251212\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.39.0/edge_131.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.39.0 20251212 selenium false edge true\nTagging images for browser edge, version 4.39.0, build date 20251212, namespace selenium\nSelenium Grid version -> 4.39.0-20251212\nEdge version -> 131.0.2903.147\nShort Edge version -> 131.0\nEdgeDriver version -> 131.0.2903.147\nShort EdgeDriver version -> 131.0\nTagged selenium/node-edge:131.0.2903.147-edgedriver-131.0.2903.147-grid-4.39.0-20251212\nTagged selenium/standalone-edge:131.0.2903.147-edgedriver-131.0.2903.147-grid-4.39.0-20251212\nTagged selenium/node-edge:131.0.2903.147-edgedriver-131.0.2903.147-20251212\nTagged selenium/standalone-edge:131.0.2903.147-edgedriver-131.0.2903.147-20251212\nTagged selenium/node-edge:131.0.2903.147-20251212\nTagged selenium/standalone-edge:131.0.2903.147-20251212\nTagged selenium/node-edge:131.0-edgedriver-131.0-grid-4.39.0-20251212\nTagged selenium/standalone-edge:131.0-edgedriver-131.0-grid-4.39.0-20251212\nTagged selenium/node-edge:131.0-edgedriver-131.0-20251212\nTagged selenium/standalone-edge:131.0-edgedriver-131.0-20251212\nTagged selenium/node-edge:131.0-20251212\nTagged selenium/standalone-edge:131.0-20251212\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.39.0/edge_132.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.39.0 20251212 selenium false edge true\nTagging images for browser edge, version 4.39.0, build date 20251212, namespace selenium\nSelenium Grid version -> 4.39.0-20251212\nEdge version -> 132.0.2957.140\nShort Edge version -> 132.0\nEdgeDriver version -> 132.0.2957.140\nShort EdgeDriver version -> 132.0\nTagged selenium/node-edge:132.0.2957.140-edgedriver-132.0.2957.140-grid-4.39.0-20251212\nTagged selenium/standalone-edge:132.0.2957.140-edgedriver-132.0.2957.140-grid-4.39.0-20251212\nTagged selenium/node-edge:132.0.2957.140-edgedriver-132.0.2957.140-20251212\nTagged selenium/standalone-edge:132.0.2957.140-edgedriver-132.0.2957.140-20251212\nTagged selenium/node-edge:132.0.2957.140-20251212\nTagged selenium/standalone-edge:132.0.2957.140-20251212\nTagged selenium/node-edge:132.0-edgedriver-132.0-grid-4.39.0-20251212\nTagged selenium/standalone-edge:132.0-edgedriver-132.0-grid-4.39.0-20251212\nTagged selenium/node-edge:132.0-edgedriver-132.0-20251212\nTagged selenium/standalone-edge:132.0-edgedriver-132.0-20251212\nTagged selenium/node-edge:132.0-20251212\nTagged selenium/standalone-edge:132.0-20251212\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.39.0/edge_133.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.39.0 20251212 selenium false edge true\nTagging images for browser edge, version 4.39.0, build date 20251212, namespace selenium\nSelenium Grid version -> 4.39.0-20251212\nEdge version -> 133.0.3065.92\nShort Edge version -> 133.0\nEdgeDriver version -> 133.0.3065.92\nShort EdgeDriver version -> 133.0\nTagged selenium/node-edge:133.0.3065.92-edgedriver-133.0.3065.92-grid-4.39.0-20251212\nTagged selenium/standalone-edge:133.0.3065.92-edgedriver-133.0.3065.92-grid-4.39.0-20251212\nTagged selenium/node-edge:133.0.3065.92-edgedriver-133.0.3065.92-20251212\nTagged selenium/standalone-edge:133.0.3065.92-edgedriver-133.0.3065.92-20251212\nTagged selenium/node-edge:133.0.3065.92-20251212\nTagged selenium/standalone-edge:133.0.3065.92-20251212\nTagged selenium/node-edge:133.0-edgedriver-133.0-grid-4.39.0-20251212\nTagged selenium/standalone-edge:133.0-edgedriver-133.0-grid-4.39.0-20251212\nTagged selenium/node-edge:133.0-edgedriver-133.0-20251212\nTagged selenium/standalone-edge:133.0-edgedriver-133.0-20251212\nTagged selenium/node-edge:133.0-20251212\nTagged selenium/standalone-edge:133.0-20251212\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.39.0/edge_134.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.39.0 20251212 selenium false edge true\nTagging images for browser edge, version 4.39.0, build date 20251212, namespace selenium\nSelenium Grid version -> 4.39.0-20251212\nEdge version -> 134.0.3124.95\nShort Edge version -> 134.0\nEdgeDriver version -> 134.0.3124.95\nShort EdgeDriver version -> 134.0\nTagged selenium/node-edge:134.0.3124.95-edgedriver-134.0.3124.95-grid-4.39.0-20251212\nTagged selenium/standalone-edge:134.0.3124.95-edgedriver-134.0.3124.95-grid-4.39.0-20251212\nTagged selenium/node-edge:134.0.3124.95-edgedriver-134.0.3124.95-20251212\nTagged selenium/standalone-edge:134.0.3124.95-edgedriver-134.0.3124.95-20251212\nTagged selenium/node-edge:134.0.3124.95-20251212\nTagged selenium/standalone-edge:134.0.3124.95-20251212\nTagged selenium/node-edge:134.0-edgedriver-134.0-grid-4.39.0-20251212\nTagged selenium/standalone-edge:134.0-edgedriver-134.0-grid-4.39.0-20251212\nTagged selenium/node-edge:134.0-edgedriver-134.0-20251212\nTagged selenium/standalone-edge:134.0-edgedriver-134.0-20251212\nTagged selenium/node-edge:134.0-20251212\nTagged selenium/standalone-edge:134.0-20251212\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.39.0/edge_135.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.39.0 20251212 selenium false edge true\nTagging images for browser edge, version 4.39.0, build date 20251212, namespace selenium\nSelenium Grid version -> 4.39.0-20251212\nEdge version -> 135.0.3179.98\nShort Edge version -> 135.0\nEdgeDriver version -> 135.0.3179.98\nShort EdgeDriver version -> 135.0\nTagged selenium/node-edge:135.0.3179.98-edgedriver-135.0.3179.98-grid-4.39.0-20251212\nTagged selenium/standalone-edge:135.0.3179.98-edgedriver-135.0.3179.98-grid-4.39.0-20251212\nTagged selenium/node-edge:135.0.3179.98-edgedriver-135.0.3179.98-20251212\nTagged selenium/standalone-edge:135.0.3179.98-edgedriver-135.0.3179.98-20251212\nTagged selenium/node-edge:135.0.3179.98-20251212\nTagged selenium/standalone-edge:135.0.3179.98-20251212\nTagged selenium/node-edge:135.0-edgedriver-135.0-grid-4.39.0-20251212\nTagged selenium/standalone-edge:135.0-edgedriver-135.0-grid-4.39.0-20251212\nTagged selenium/node-edge:135.0-edgedriver-135.0-20251212\nTagged selenium/standalone-edge:135.0-edgedriver-135.0-20251212\nTagged selenium/node-edge:135.0-20251212\nTagged selenium/standalone-edge:135.0-20251212\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.39.0/edge_136.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.39.0 20251212 selenium false edge true\nTagging images for browser edge, version 4.39.0, build date 20251212, namespace selenium\nSelenium Grid version -> 4.39.0-20251212\nEdge version -> 136.0.3240.92\nShort Edge version -> 136.0\nEdgeDriver version -> 136.0.3240.92\nShort EdgeDriver version -> 136.0\nTagged selenium/node-edge:136.0.3240.92-edgedriver-136.0.3240.92-grid-4.39.0-20251212\nTagged selenium/standalone-edge:136.0.3240.92-edgedriver-136.0.3240.92-grid-4.39.0-20251212\nTagged selenium/node-edge:136.0.3240.92-edgedriver-136.0.3240.92-20251212\nTagged selenium/standalone-edge:136.0.3240.92-edgedriver-136.0.3240.92-20251212\nTagged selenium/node-edge:136.0.3240.92-20251212\nTagged selenium/standalone-edge:136.0.3240.92-20251212\nTagged selenium/node-edge:136.0-edgedriver-136.0-grid-4.39.0-20251212\nTagged selenium/standalone-edge:136.0-edgedriver-136.0-grid-4.39.0-20251212\nTagged selenium/node-edge:136.0-edgedriver-136.0-20251212\nTagged selenium/standalone-edge:136.0-edgedriver-136.0-20251212\nTagged selenium/node-edge:136.0-20251212\nTagged selenium/standalone-edge:136.0-20251212\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.39.0/edge_137.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.39.0 20251212 selenium false edge true\nTagging images for browser edge, version 4.39.0, build date 20251212, namespace selenium\nSelenium Grid version -> 4.39.0-20251212\nEdge version -> 137.0.3296.93\nShort Edge version -> 137.0\nEdgeDriver version -> 137.0.3296.93\nShort EdgeDriver version -> 137.0\nTagged selenium/node-edge:137.0.3296.93-edgedriver-137.0.3296.93-grid-4.39.0-20251212\nTagged selenium/standalone-edge:137.0.3296.93-edgedriver-137.0.3296.93-grid-4.39.0-20251212\nTagged selenium/node-edge:137.0.3296.93-edgedriver-137.0.3296.93-20251212\nTagged selenium/standalone-edge:137.0.3296.93-edgedriver-137.0.3296.93-20251212\nTagged selenium/node-edge:137.0.3296.93-20251212\nTagged selenium/standalone-edge:137.0.3296.93-20251212\nTagged selenium/node-edge:137.0-edgedriver-137.0-grid-4.39.0-20251212\nTagged selenium/standalone-edge:137.0-edgedriver-137.0-grid-4.39.0-20251212\nTagged selenium/node-edge:137.0-edgedriver-137.0-20251212\nTagged selenium/standalone-edge:137.0-edgedriver-137.0-20251212\nTagged selenium/node-edge:137.0-20251212\nTagged selenium/standalone-edge:137.0-20251212\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.39.0/edge_138.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.39.0 20251212 selenium false edge true\nTagging images for browser edge, version 4.39.0, build date 20251212, namespace selenium\nSelenium Grid version -> 4.39.0-20251212\nEdge version -> 138.0.3351.121\nShort Edge version -> 138.0\nEdgeDriver version -> 138.0.3351.121\nShort EdgeDriver version -> 138.0\nTagged selenium/node-edge:138.0.3351.121-edgedriver-138.0.3351.121-grid-4.39.0-20251212\nTagged selenium/standalone-edge:138.0.3351.121-edgedriver-138.0.3351.121-grid-4.39.0-20251212\nTagged selenium/node-edge:138.0.3351.121-edgedriver-138.0.3351.121-20251212\nTagged selenium/standalone-edge:138.0.3351.121-edgedriver-138.0.3351.121-20251212\nTagged selenium/node-edge:138.0.3351.121-20251212\nTagged selenium/standalone-edge:138.0.3351.121-20251212\nTagged selenium/node-edge:138.0-edgedriver-138.0-grid-4.39.0-20251212\nTagged selenium/standalone-edge:138.0-edgedriver-138.0-grid-4.39.0-20251212\nTagged selenium/node-edge:138.0-edgedriver-138.0-20251212\nTagged selenium/standalone-edge:138.0-edgedriver-138.0-20251212\nTagged selenium/node-edge:138.0-20251212\nTagged selenium/standalone-edge:138.0-20251212\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.39.0/edge_139.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.39.0 20251212 selenium false edge true\nTagging images for browser edge, version 4.39.0, build date 20251212, namespace selenium\nSelenium Grid version -> 4.39.0-20251212\nEdge version -> 139.0.3405.125\nShort Edge version -> 139.0\nEdgeDriver version -> 139.0.3405.125\nShort EdgeDriver version -> 139.0\nTagged selenium/node-edge:139.0.3405.125-edgedriver-139.0.3405.125-grid-4.39.0-20251212\nTagged selenium/standalone-edge:139.0.3405.125-edgedriver-139.0.3405.125-grid-4.39.0-20251212\nTagged selenium/node-edge:139.0.3405.125-edgedriver-139.0.3405.125-20251212\nTagged selenium/standalone-edge:139.0.3405.125-edgedriver-139.0.3405.125-20251212\nTagged selenium/node-edge:139.0.3405.125-20251212\nTagged selenium/standalone-edge:139.0.3405.125-20251212\nTagged selenium/node-edge:139.0-edgedriver-139.0-grid-4.39.0-20251212\nTagged selenium/standalone-edge:139.0-edgedriver-139.0-grid-4.39.0-20251212\nTagged selenium/node-edge:139.0-edgedriver-139.0-20251212\nTagged selenium/standalone-edge:139.0-edgedriver-139.0-20251212\nTagged selenium/node-edge:139.0-20251212\nTagged selenium/standalone-edge:139.0-20251212\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.39.0/edge_140.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.39.0 20251212 selenium false edge true\nTagging images for browser edge, version 4.39.0, build date 20251212, namespace selenium\nSelenium Grid version -> 4.39.0-20251212\nEdge version -> 140.0.3485.94\nShort Edge version -> 140.0\nEdgeDriver version -> 140.0.3485.94\nShort EdgeDriver version -> 140.0\nTagged selenium/node-edge:140.0.3485.94-edgedriver-140.0.3485.94-grid-4.39.0-20251212\nTagged selenium/standalone-edge:140.0.3485.94-edgedriver-140.0.3485.94-grid-4.39.0-20251212\nTagged selenium/node-edge:140.0.3485.94-edgedriver-140.0.3485.94-20251212\nTagged selenium/standalone-edge:140.0.3485.94-edgedriver-140.0.3485.94-20251212\nTagged selenium/node-edge:140.0.3485.94-20251212\nTagged selenium/standalone-edge:140.0.3485.94-20251212\nTagged selenium/node-edge:140.0-edgedriver-140.0-grid-4.39.0-20251212\nTagged selenium/standalone-edge:140.0-edgedriver-140.0-grid-4.39.0-20251212\nTagged selenium/node-edge:140.0-edgedriver-140.0-20251212\nTagged selenium/standalone-edge:140.0-edgedriver-140.0-20251212\nTagged selenium/node-edge:140.0-20251212\nTagged selenium/standalone-edge:140.0-20251212\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.39.0/edge_141.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.39.0 20251212 selenium false edge true\nTagging images for browser edge, version 4.39.0, build date 20251212, namespace selenium\nSelenium Grid version -> 4.39.0-20251212\nEdge version -> 141.0.3537.99\nShort Edge version -> 141.0\nEdgeDriver version -> 141.0.3537.99\nShort EdgeDriver version -> 141.0\nTagged selenium/node-edge:141.0.3537.99-edgedriver-141.0.3537.99-grid-4.39.0-20251212\nTagged selenium/standalone-edge:141.0.3537.99-edgedriver-141.0.3537.99-grid-4.39.0-20251212\nTagged selenium/node-edge:141.0.3537.99-edgedriver-141.0.3537.99-20251212\nTagged selenium/standalone-edge:141.0.3537.99-edgedriver-141.0.3537.99-20251212\nTagged selenium/node-edge:141.0.3537.99-20251212\nTagged selenium/standalone-edge:141.0.3537.99-20251212\nTagged selenium/node-edge:141.0-edgedriver-141.0-grid-4.39.0-20251212\nTagged selenium/standalone-edge:141.0-edgedriver-141.0-grid-4.39.0-20251212\nTagged selenium/node-edge:141.0-edgedriver-141.0-20251212\nTagged selenium/standalone-edge:141.0-edgedriver-141.0-20251212\nTagged selenium/node-edge:141.0-20251212\nTagged selenium/standalone-edge:141.0-20251212\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.39.0/edge_142.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.39.0 20251212 selenium false edge true\nTagging images for browser edge, version 4.39.0, build date 20251212, namespace selenium\nSelenium Grid version -> 4.39.0-20251212\nEdge version -> 142.0.3595.94\nShort Edge version -> 142.0\nEdgeDriver version -> 142.0.3595.94\nShort EdgeDriver version -> 142.0\nTagged selenium/node-edge:142.0.3595.94-edgedriver-142.0.3595.94-grid-4.39.0-20251212\nTagged selenium/standalone-edge:142.0.3595.94-edgedriver-142.0.3595.94-grid-4.39.0-20251212\nTagged selenium/node-edge:142.0.3595.94-edgedriver-142.0.3595.94-20251212\nTagged selenium/standalone-edge:142.0.3595.94-edgedriver-142.0.3595.94-20251212\nTagged selenium/node-edge:142.0.3595.94-20251212\nTagged selenium/standalone-edge:142.0.3595.94-20251212\nTagged selenium/node-edge:142.0-edgedriver-142.0-grid-4.39.0-20251212\nTagged selenium/standalone-edge:142.0-edgedriver-142.0-grid-4.39.0-20251212\nTagged selenium/node-edge:142.0-edgedriver-142.0-20251212\nTagged selenium/standalone-edge:142.0-edgedriver-142.0-20251212\nTagged selenium/node-edge:142.0-20251212\nTagged selenium/standalone-edge:142.0-20251212\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.39.0/edge_143.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.39.0 20251212 selenium false edge true\nTagging images for browser edge, version 4.39.0, build date 20251212, namespace selenium\nSelenium Grid version -> 4.39.0-20251212\nEdge version -> 143.0.3650.96\nShort Edge version -> 143.0\nEdgeDriver version -> 143.0.3650.96\nShort EdgeDriver version -> 143.0\nTagged selenium/node-edge:143.0.3650.96-edgedriver-143.0.3650.96-grid-4.39.0-20251212\nTagged selenium/standalone-edge:143.0.3650.96-edgedriver-143.0.3650.96-grid-4.39.0-20251212\nTagged selenium/node-edge:143.0.3650.96-edgedriver-143.0.3650.96-20251212\nTagged selenium/standalone-edge:143.0.3650.96-edgedriver-143.0.3650.96-20251212\nTagged selenium/node-edge:143.0.3650.96-20251212\nTagged selenium/standalone-edge:143.0.3650.96-20251212\nTagged selenium/node-edge:143.0-edgedriver-143.0-grid-4.39.0-20251212\nTagged selenium/standalone-edge:143.0-edgedriver-143.0-grid-4.39.0-20251212\nTagged selenium/node-edge:143.0-edgedriver-143.0-20251212\nTagged selenium/standalone-edge:143.0-edgedriver-143.0-20251212\nTagged selenium/node-edge:143.0-20251212\nTagged selenium/standalone-edge:143.0-20251212\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.39.0/firefox_100.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.39.0 20251212 selenium false firefox true\nTagging images for browser firefox, version 4.39.0, build date 20251212, namespace selenium\nSelenium Grid version -> 4.39.0-20251212\nFirefox version -> 100.0.2\nShort Firefox version -> 100.0\nGeckoDriver version -> 0.36.0\nShort GeckoDriver version -> 0.36\nTagged selenium/node-firefox:100.0.2-geckodriver-0.36.0-grid-4.39.0-20251212\nTagged selenium/standalone-firefox:100.0.2-geckodriver-0.36.0-grid-4.39.0-20251212\nTagged selenium/node-firefox:100.0.2-geckodriver-0.36.0-20251212\nTagged selenium/standalone-firefox:100.0.2-geckodriver-0.36.0-20251212\nTagged selenium/node-firefox:100.0.2-20251212\nTagged selenium/standalone-firefox:100.0.2-20251212\nTagged selenium/node-firefox:100.0-geckodriver-0.36-grid-4.39.0-20251212\nTagged selenium/standalone-firefox:100.0-geckodriver-0.36-grid-4.39.0-20251212\nTagged selenium/node-firefox:100.0-geckodriver-0.36-20251212\nTagged selenium/standalone-firefox:100.0-geckodriver-0.36-20251212\nTagged selenium/node-firefox:100.0-20251212\nTagged selenium/standalone-firefox:100.0-20251212\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.39.0/firefox_101.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.39.0 20251212 selenium false firefox true\nTagging images for browser firefox, version 4.39.0, build date 20251212, namespace selenium\nSelenium Grid version -> 4.39.0-20251212\nFirefox version -> 101.0.1\nShort Firefox version -> 101.0\nGeckoDriver version -> 0.36.0\nShort GeckoDriver version -> 0.36\nTagged selenium/node-firefox:101.0.1-geckodriver-0.36.0-grid-4.39.0-20251212\nTagged selenium/standalone-firefox:101.0.1-geckodriver-0.36.0-grid-4.39.0-20251212\nTagged selenium/node-firefox:101.0.1-geckodriver-0.36.0-20251212\nTagged selenium/standalone-firefox:101.0.1-geckodriver-0.36.0-20251212\nTagged selenium/node-firefox:101.0.1-20251212\nTagged selenium/standalone-firefox:101.0.1-20251212\nTagged selenium/node-firefox:101.0-geckodriver-0.36-grid-4.39.0-20251212\nTagged selenium/standalone-firefox:101.0-geckodriver-0.36-grid-4.39.0-20251212\nTagged selenium/node-firefox:101.0-geckodriver-0.36-20251212\nTagged selenium/standalone-firefox:101.0-geckodriver-0.36-20251212\nTagged selenium/node-firefox:101.0-20251212\nTagged selenium/standalone-firefox:101.0-20251212\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.39.0/firefox_102.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.39.0 20251212 selenium false firefox true\nTagging images for browser firefox, version 4.39.0, build date 20251212, namespace selenium\nSelenium Grid version -> 4.39.0-20251212\nFirefox version -> 102.0.1\nShort Firefox version -> 102.0\nGeckoDriver version -> 0.36.0\nShort GeckoDriver version -> 0.36\nTagged selenium/node-firefox:102.0.1-geckodriver-0.36.0-grid-4.39.0-20251212\nTagged selenium/standalone-firefox:102.0.1-geckodriver-0.36.0-grid-4.39.0-20251212\nTagged selenium/node-firefox:102.0.1-geckodriver-0.36.0-20251212\nTagged selenium/standalone-firefox:102.0.1-geckodriver-0.36.0-20251212\nTagged selenium/node-firefox:102.0.1-20251212\nTagged selenium/standalone-firefox:102.0.1-20251212\nTagged selenium/node-firefox:102.0-geckodriver-0.36-grid-4.39.0-20251212\nTagged selenium/standalone-firefox:102.0-geckodriver-0.36-grid-4.39.0-20251212\nTagged selenium/node-firefox:102.0-geckodriver-0.36-20251212\nTagged selenium/standalone-firefox:102.0-geckodriver-0.36-20251212\nTagged selenium/node-firefox:102.0-20251212\nTagged selenium/standalone-firefox:102.0-20251212\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.39.0/firefox_103.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.39.0 20251212 selenium false firefox true\nTagging images for browser firefox, version 4.39.0, build date 20251212, namespace selenium\nSelenium Grid version -> 4.39.0-20251212\nFirefox version -> 103.0.2\nShort Firefox version -> 103.0\nGeckoDriver version -> 0.36.0\nShort GeckoDriver version -> 0.36\nTagged selenium/node-firefox:103.0.2-geckodriver-0.36.0-grid-4.39.0-20251212\nTagged selenium/standalone-firefox:103.0.2-geckodriver-0.36.0-grid-4.39.0-20251212\nTagged selenium/node-firefox:103.0.2-geckodriver-0.36.0-20251212\nTagged selenium/standalone-firefox:103.0.2-geckodriver-0.36.0-20251212\nTagged selenium/node-firefox:103.0.2-20251212\nTagged selenium/standalone-firefox:103.0.2-20251212\nTagged selenium/node-firefox:103.0-geckodriver-0.36-grid-4.39.0-20251212\nTagged selenium/standalone-firefox:103.0-geckodriver-0.36-grid-4.39.0-20251212\nTagged selenium/node-firefox:103.0-geckodriver-0.36-20251212\nTagged selenium/standalone-firefox:103.0-geckodriver-0.36-20251212\nTagged selenium/node-firefox:103.0-20251212\nTagged selenium/standalone-firefox:103.0-20251212\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.39.0/firefox_104.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.39.0 20251212 selenium false firefox true\nTagging images for browser firefox, version 4.39.0, build date 20251212, namespace selenium\nSelenium Grid version -> 4.39.0-20251212\nFirefox version -> 104.0.2\nShort Firefox version -> 104.0\nGeckoDriver version -> 0.36.0\nShort GeckoDriver version -> 0.36\nTagged selenium/node-firefox:104.0.2-geckodriver-0.36.0-grid-4.39.0-20251212\nTagged selenium/standalone-firefox:104.0.2-geckodriver-0.36.0-grid-4.39.0-20251212\nTagged selenium/node-firefox:104.0.2-geckodriver-0.36.0-20251212\nTagged selenium/standalone-firefox:104.0.2-geckodriver-0.36.0-20251212\nTagged selenium/node-firefox:104.0.2-20251212\nTagged selenium/standalone-firefox:104.0.2-20251212\nTagged selenium/node-firefox:104.0-geckodriver-0.36-grid-4.39.0-20251212\nTagged selenium/standalone-firefox:104.0-geckodriver-0.36-grid-4.39.0-20251212\nTagged selenium/node-firefox:104.0-geckodriver-0.36-20251212\nTagged selenium/standalone-firefox:104.0-geckodriver-0.36-20251212\nTagged selenium/node-firefox:104.0-20251212\nTagged selenium/standalone-firefox:104.0-20251212\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.39.0/firefox_105.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.39.0 20251212 selenium false firefox true\nTagging images for browser firefox, version 4.39.0, build date 20251212, namespace selenium\nSelenium Grid version -> 4.39.0-20251212\nFirefox version -> 105.0.3\nShort Firefox version -> 105.0\nGeckoDriver version -> 0.36.0\nShort GeckoDriver version -> 0.36\nTagged selenium/node-firefox:105.0.3-geckodriver-0.36.0-grid-4.39.0-20251212\nTagged selenium/standalone-firefox:105.0.3-geckodriver-0.36.0-grid-4.39.0-20251212\nTagged selenium/node-firefox:105.0.3-geckodriver-0.36.0-20251212\nTagged selenium/standalone-firefox:105.0.3-geckodriver-0.36.0-20251212\nTagged selenium/node-firefox:105.0.3-20251212\nTagged selenium/standalone-firefox:105.0.3-20251212\nTagged selenium/node-firefox:105.0-geckodriver-0.36-grid-4.39.0-20251212\nTagged selenium/standalone-firefox:105.0-geckodriver-0.36-grid-4.39.0-20251212\nTagged selenium/node-firefox:105.0-geckodriver-0.36-20251212\nTagged selenium/standalone-firefox:105.0-geckodriver-0.36-20251212\nTagged selenium/node-firefox:105.0-20251212\nTagged selenium/standalone-firefox:105.0-20251212\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.39.0/firefox_106.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.39.0 20251212 selenium false firefox true\nTagging images for browser firefox, version 4.39.0, build date 20251212, namespace selenium\nSelenium Grid version -> 4.39.0-20251212\nFirefox version -> 106.0.5\nShort Firefox version -> 106.0\nGeckoDriver version -> 0.36.0\nShort GeckoDriver version -> 0.36\nTagged selenium/node-firefox:106.0.5-geckodriver-0.36.0-grid-4.39.0-20251212\nTagged selenium/standalone-firefox:106.0.5-geckodriver-0.36.0-grid-4.39.0-20251212\nTagged selenium/node-firefox:106.0.5-geckodriver-0.36.0-20251212\nTagged selenium/standalone-firefox:106.0.5-geckodriver-0.36.0-20251212\nTagged selenium/node-firefox:106.0.5-20251212\nTagged selenium/standalone-firefox:106.0.5-20251212\nTagged selenium/node-firefox:106.0-geckodriver-0.36-grid-4.39.0-20251212\nTagged selenium/standalone-firefox:106.0-geckodriver-0.36-grid-4.39.0-20251212\nTagged selenium/node-firefox:106.0-geckodriver-0.36-20251212\nTagged selenium/standalone-firefox:106.0-geckodriver-0.36-20251212\nTagged selenium/node-firefox:106.0-20251212\nTagged selenium/standalone-firefox:106.0-20251212\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.39.0/firefox_107.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.39.0 20251212 selenium false firefox true\nTagging images for browser firefox, version 4.39.0, build date 20251212, namespace selenium\nSelenium Grid version -> 4.39.0-20251212\nFirefox version -> 107.0.1\nShort Firefox version -> 107.0\nGeckoDriver version -> 0.36.0\nShort GeckoDriver version -> 0.36\nTagged selenium/node-firefox:107.0.1-geckodriver-0.36.0-grid-4.39.0-20251212\nTagged selenium/standalone-firefox:107.0.1-geckodriver-0.36.0-grid-4.39.0-20251212\nTagged selenium/node-firefox:107.0.1-geckodriver-0.36.0-20251212\nTagged selenium/standalone-firefox:107.0.1-geckodriver-0.36.0-20251212\nTagged selenium/node-firefox:107.0.1-20251212\nTagged selenium/standalone-firefox:107.0.1-20251212\nTagged selenium/node-firefox:107.0-geckodriver-0.36-grid-4.39.0-20251212\nTagged selenium/standalone-firefox:107.0-geckodriver-0.36-grid-4.39.0-20251212\nTagged selenium/node-firefox:107.0-geckodriver-0.36-20251212\nTagged selenium/standalone-firefox:107.0-geckodriver-0.36-20251212\nTagged selenium/node-firefox:107.0-20251212\nTagged selenium/standalone-firefox:107.0-20251212\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.39.0/firefox_108.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.39.0 20251212 selenium false firefox true\nTagging images for browser firefox, version 4.39.0, build date 20251212, namespace selenium\nSelenium Grid version -> 4.39.0-20251212\nFirefox version -> 108.0.2\nShort Firefox version -> 108.0\nGeckoDriver version -> 0.36.0\nShort GeckoDriver version -> 0.36\nTagged selenium/node-firefox:108.0.2-geckodriver-0.36.0-grid-4.39.0-20251212\nTagged selenium/standalone-firefox:108.0.2-geckodriver-0.36.0-grid-4.39.0-20251212\nTagged selenium/node-firefox:108.0.2-geckodriver-0.36.0-20251212\nTagged selenium/standalone-firefox:108.0.2-geckodriver-0.36.0-20251212\nTagged selenium/node-firefox:108.0.2-20251212\nTagged selenium/standalone-firefox:108.0.2-20251212\nTagged selenium/node-firefox:108.0-geckodriver-0.36-grid-4.39.0-20251212\nTagged selenium/standalone-firefox:108.0-geckodriver-0.36-grid-4.39.0-20251212\nTagged selenium/node-firefox:108.0-geckodriver-0.36-20251212\nTagged selenium/standalone-firefox:108.0-geckodriver-0.36-20251212\nTagged selenium/node-firefox:108.0-20251212\nTagged selenium/standalone-firefox:108.0-20251212\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.39.0/firefox_109.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.39.0 20251212 selenium false firefox true\nTagging images for browser firefox, version 4.39.0, build date 20251212, namespace selenium\nSelenium Grid version -> 4.39.0-20251212\nFirefox version -> 109.0.1\nShort Firefox version -> 109.0\nGeckoDriver version -> 0.36.0\nShort GeckoDriver version -> 0.36\nTagged selenium/node-firefox:109.0.1-geckodriver-0.36.0-grid-4.39.0-20251212\nTagged selenium/standalone-firefox:109.0.1-geckodriver-0.36.0-grid-4.39.0-20251212\nTagged selenium/node-firefox:109.0.1-geckodriver-0.36.0-20251212\nTagged selenium/standalone-firefox:109.0.1-geckodriver-0.36.0-20251212\nTagged selenium/node-firefox:109.0.1-20251212\nTagged selenium/standalone-firefox:109.0.1-20251212\nTagged selenium/node-firefox:109.0-geckodriver-0.36-grid-4.39.0-20251212\nTagged selenium/standalone-firefox:109.0-geckodriver-0.36-grid-4.39.0-20251212\nTagged selenium/node-firefox:109.0-geckodriver-0.36-20251212\nTagged selenium/standalone-firefox:109.0-geckodriver-0.36-20251212\nTagged selenium/node-firefox:109.0-20251212\nTagged selenium/standalone-firefox:109.0-20251212\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.39.0/firefox_110.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.39.0 20251212 selenium false firefox true\nTagging images for browser firefox, version 4.39.0, build date 20251212, namespace selenium\nSelenium Grid version -> 4.39.0-20251212\nFirefox version -> 110.0.1\nShort Firefox version -> 110.0\nGeckoDriver version -> 0.36.0\nShort GeckoDriver version -> 0.36\nTagged selenium/node-firefox:110.0.1-geckodriver-0.36.0-grid-4.39.0-20251212\nTagged selenium/standalone-firefox:110.0.1-geckodriver-0.36.0-grid-4.39.0-20251212\nTagged selenium/node-firefox:110.0.1-geckodriver-0.36.0-20251212\nTagged selenium/standalone-firefox:110.0.1-geckodriver-0.36.0-20251212\nTagged selenium/node-firefox:110.0.1-20251212\nTagged selenium/standalone-firefox:110.0.1-20251212\nTagged selenium/node-firefox:110.0-geckodriver-0.36-grid-4.39.0-20251212\nTagged selenium/standalone-firefox:110.0-geckodriver-0.36-grid-4.39.0-20251212\nTagged selenium/node-firefox:110.0-geckodriver-0.36-20251212\nTagged selenium/standalone-firefox:110.0-geckodriver-0.36-20251212\nTagged selenium/node-firefox:110.0-20251212\nTagged selenium/standalone-firefox:110.0-20251212\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.39.0/firefox_111.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.39.0 20251212 selenium false firefox true\nTagging images for browser firefox, version 4.39.0, build date 20251212, namespace selenium\nSelenium Grid version -> 4.39.0-20251212\nFirefox version -> 111.0.1\nShort Firefox version -> 111.0\nGeckoDriver version -> 0.36.0\nShort GeckoDriver version -> 0.36\nTagged selenium/node-firefox:111.0.1-geckodriver-0.36.0-grid-4.39.0-20251212\nTagged selenium/standalone-firefox:111.0.1-geckodriver-0.36.0-grid-4.39.0-20251212\nTagged selenium/node-firefox:111.0.1-geckodriver-0.36.0-20251212\nTagged selenium/standalone-firefox:111.0.1-geckodriver-0.36.0-20251212\nTagged selenium/node-firefox:111.0.1-20251212\nTagged selenium/standalone-firefox:111.0.1-20251212\nTagged selenium/node-firefox:111.0-geckodriver-0.36-grid-4.39.0-20251212\nTagged selenium/standalone-firefox:111.0-geckodriver-0.36-grid-4.39.0-20251212\nTagged selenium/node-firefox:111.0-geckodriver-0.36-20251212\nTagged selenium/standalone-firefox:111.0-geckodriver-0.36-20251212\nTagged selenium/node-firefox:111.0-20251212\nTagged selenium/standalone-firefox:111.0-20251212\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.39.0/firefox_112.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.39.0 20251212 selenium false firefox true\nTagging images for browser firefox, version 4.39.0, build date 20251212, namespace selenium\nSelenium Grid version -> 4.39.0-20251212\nFirefox version -> 112.0.2\nShort Firefox version -> 112.0\nGeckoDriver version -> 0.36.0\nShort GeckoDriver version -> 0.36\nTagged selenium/node-firefox:112.0.2-geckodriver-0.36.0-grid-4.39.0-20251212\nTagged selenium/standalone-firefox:112.0.2-geckodriver-0.36.0-grid-4.39.0-20251212\nTagged selenium/node-firefox:112.0.2-geckodriver-0.36.0-20251212\nTagged selenium/standalone-firefox:112.0.2-geckodriver-0.36.0-20251212\nTagged selenium/node-firefox:112.0.2-20251212\nTagged selenium/standalone-firefox:112.0.2-20251212\nTagged selenium/node-firefox:112.0-geckodriver-0.36-grid-4.39.0-20251212\nTagged selenium/standalone-firefox:112.0-geckodriver-0.36-grid-4.39.0-20251212\nTagged selenium/node-firefox:112.0-geckodriver-0.36-20251212\nTagged selenium/standalone-firefox:112.0-geckodriver-0.36-20251212\nTagged selenium/node-firefox:112.0-20251212\nTagged selenium/standalone-firefox:112.0-20251212\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.39.0/firefox_113.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.39.0 20251212 selenium false firefox true\nTagging images for browser firefox, version 4.39.0, build date 20251212, namespace selenium\nSelenium Grid version -> 4.39.0-20251212\nFirefox version -> 113.0.2\nShort Firefox version -> 113.0\nGeckoDriver version -> 0.36.0\nShort GeckoDriver version -> 0.36\nTagged selenium/node-firefox:113.0.2-geckodriver-0.36.0-grid-4.39.0-20251212\nTagged selenium/standalone-firefox:113.0.2-geckodriver-0.36.0-grid-4.39.0-20251212\nTagged selenium/node-firefox:113.0.2-geckodriver-0.36.0-20251212\nTagged selenium/standalone-firefox:113.0.2-geckodriver-0.36.0-20251212\nTagged selenium/node-firefox:113.0.2-20251212\nTagged selenium/standalone-firefox:113.0.2-20251212\nTagged selenium/node-firefox:113.0-geckodriver-0.36-grid-4.39.0-20251212\nTagged selenium/standalone-firefox:113.0-geckodriver-0.36-grid-4.39.0-20251212\nTagged selenium/node-firefox:113.0-geckodriver-0.36-20251212\nTagged selenium/standalone-firefox:113.0-geckodriver-0.36-20251212\nTagged selenium/node-firefox:113.0-20251212\nTagged selenium/standalone-firefox:113.0-20251212\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.39.0/firefox_114.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.39.0 20251212 selenium false firefox true\nTagging images for browser firefox, version 4.39.0, build date 20251212, namespace selenium\nSelenium Grid version -> 4.39.0-20251212\nFirefox version -> 114.0.2\nShort Firefox version -> 114.0\nGeckoDriver version -> 0.36.0\nShort GeckoDriver version -> 0.36\nTagged selenium/node-firefox:114.0.2-geckodriver-0.36.0-grid-4.39.0-20251212\nTagged selenium/standalone-firefox:114.0.2-geckodriver-0.36.0-grid-4.39.0-20251212\nTagged selenium/node-firefox:114.0.2-geckodriver-0.36.0-20251212\nTagged selenium/standalone-firefox:114.0.2-geckodriver-0.36.0-20251212\nTagged selenium/node-firefox:114.0.2-20251212\nTagged selenium/standalone-firefox:114.0.2-20251212\nTagged selenium/node-firefox:114.0-geckodriver-0.36-grid-4.39.0-20251212\nTagged selenium/standalone-firefox:114.0-geckodriver-0.36-grid-4.39.0-20251212\nTagged selenium/node-firefox:114.0-geckodriver-0.36-20251212\nTagged selenium/standalone-firefox:114.0-geckodriver-0.36-20251212\nTagged selenium/node-firefox:114.0-20251212\nTagged selenium/standalone-firefox:114.0-20251212\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.39.0/firefox_115.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.39.0 20251212 selenium false firefox true\nTagging images for browser firefox, version 4.39.0, build date 20251212, namespace selenium\nSelenium Grid version -> 4.39.0-20251212\nFirefox version -> 115.0.3\nShort Firefox version -> 115.0\nGeckoDriver version -> 0.36.0\nShort GeckoDriver version -> 0.36\nTagged selenium/node-firefox:115.0.3-geckodriver-0.36.0-grid-4.39.0-20251212\nTagged selenium/standalone-firefox:115.0.3-geckodriver-0.36.0-grid-4.39.0-20251212\nTagged selenium/node-firefox:115.0.3-geckodriver-0.36.0-20251212\nTagged selenium/standalone-firefox:115.0.3-geckodriver-0.36.0-20251212\nTagged selenium/node-firefox:115.0.3-20251212\nTagged selenium/standalone-firefox:115.0.3-20251212\nTagged selenium/node-firefox:115.0-geckodriver-0.36-grid-4.39.0-20251212\nTagged selenium/standalone-firefox:115.0-geckodriver-0.36-grid-4.39.0-20251212\nTagged selenium/node-firefox:115.0-geckodriver-0.36-20251212\nTagged selenium/standalone-firefox:115.0-geckodriver-0.36-20251212\nTagged selenium/node-firefox:115.0-20251212\nTagged selenium/standalone-firefox:115.0-20251212\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.39.0/firefox_116.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.39.0 20251212 selenium false firefox true\nTagging images for browser firefox, version 4.39.0, build date 20251212, namespace selenium\nSelenium Grid version -> 4.39.0-20251212\nFirefox version -> 116.0.3\nShort Firefox version -> 116.0\nGeckoDriver version -> 0.36.0\nShort GeckoDriver version -> 0.36\nTagged selenium/node-firefox:116.0.3-geckodriver-0.36.0-grid-4.39.0-20251212\nTagged selenium/standalone-firefox:116.0.3-geckodriver-0.36.0-grid-4.39.0-20251212\nTagged selenium/node-firefox:116.0.3-geckodriver-0.36.0-20251212\nTagged selenium/standalone-firefox:116.0.3-geckodriver-0.36.0-20251212\nTagged selenium/node-firefox:116.0.3-20251212\nTagged selenium/standalone-firefox:116.0.3-20251212\nTagged selenium/node-firefox:116.0-geckodriver-0.36-grid-4.39.0-20251212\nTagged selenium/standalone-firefox:116.0-geckodriver-0.36-grid-4.39.0-20251212\nTagged selenium/node-firefox:116.0-geckodriver-0.36-20251212\nTagged selenium/standalone-firefox:116.0-geckodriver-0.36-20251212\nTagged selenium/node-firefox:116.0-20251212\nTagged selenium/standalone-firefox:116.0-20251212\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.39.0/firefox_117.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.39.0 20251212 selenium false firefox true\nTagging images for browser firefox, version 4.39.0, build date 20251212, namespace selenium\nSelenium Grid version -> 4.39.0-20251212\nFirefox version -> 117.0.1\nShort Firefox version -> 117.0\nGeckoDriver version -> 0.36.0\nShort GeckoDriver version -> 0.36\nTagged selenium/node-firefox:117.0.1-geckodriver-0.36.0-grid-4.39.0-20251212\nTagged selenium/standalone-firefox:117.0.1-geckodriver-0.36.0-grid-4.39.0-20251212\nTagged selenium/node-firefox:117.0.1-geckodriver-0.36.0-20251212\nTagged selenium/standalone-firefox:117.0.1-geckodriver-0.36.0-20251212\nTagged selenium/node-firefox:117.0.1-20251212\nTagged selenium/standalone-firefox:117.0.1-20251212\nTagged selenium/node-firefox:117.0-geckodriver-0.36-grid-4.39.0-20251212\nTagged selenium/standalone-firefox:117.0-geckodriver-0.36-grid-4.39.0-20251212\nTagged selenium/node-firefox:117.0-geckodriver-0.36-20251212\nTagged selenium/standalone-firefox:117.0-geckodriver-0.36-20251212\nTagged selenium/node-firefox:117.0-20251212\nTagged selenium/standalone-firefox:117.0-20251212\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.39.0/firefox_118.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.39.0 20251212 selenium false firefox true\nTagging images for browser firefox, version 4.39.0, build date 20251212, namespace selenium\nSelenium Grid version -> 4.39.0-20251212\nFirefox version -> 118.0.2\nShort Firefox version -> 118.0\nGeckoDriver version -> 0.36.0\nShort GeckoDriver version -> 0.36\nTagged selenium/node-firefox:118.0.2-geckodriver-0.36.0-grid-4.39.0-20251212\nTagged selenium/standalone-firefox:118.0.2-geckodriver-0.36.0-grid-4.39.0-20251212\nTagged selenium/node-firefox:118.0.2-geckodriver-0.36.0-20251212\nTagged selenium/standalone-firefox:118.0.2-geckodriver-0.36.0-20251212\nTagged selenium/node-firefox:118.0.2-20251212\nTagged selenium/standalone-firefox:118.0.2-20251212\nTagged selenium/node-firefox:118.0-geckodriver-0.36-grid-4.39.0-20251212\nTagged selenium/standalone-firefox:118.0-geckodriver-0.36-grid-4.39.0-20251212\nTagged selenium/node-firefox:118.0-geckodriver-0.36-20251212\nTagged selenium/standalone-firefox:118.0-geckodriver-0.36-20251212\nTagged selenium/node-firefox:118.0-20251212\nTagged selenium/standalone-firefox:118.0-20251212\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.39.0/firefox_119.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.39.0 20251212 selenium false firefox true\nTagging images for browser firefox, version 4.39.0, build date 20251212, namespace selenium\nSelenium Grid version -> 4.39.0-20251212\nFirefox version -> 119.0.1\nShort Firefox version -> 119.0\nGeckoDriver version -> 0.36.0\nShort GeckoDriver version -> 0.36\nTagged selenium/node-firefox:119.0.1-geckodriver-0.36.0-grid-4.39.0-20251212\nTagged selenium/standalone-firefox:119.0.1-geckodriver-0.36.0-grid-4.39.0-20251212\nTagged selenium/node-firefox:119.0.1-geckodriver-0.36.0-20251212\nTagged selenium/standalone-firefox:119.0.1-geckodriver-0.36.0-20251212\nTagged selenium/node-firefox:119.0.1-20251212\nTagged selenium/standalone-firefox:119.0.1-20251212\nTagged selenium/node-firefox:119.0-geckodriver-0.36-grid-4.39.0-20251212\nTagged selenium/standalone-firefox:119.0-geckodriver-0.36-grid-4.39.0-20251212\nTagged selenium/node-firefox:119.0-geckodriver-0.36-20251212\nTagged selenium/standalone-firefox:119.0-geckodriver-0.36-20251212\nTagged selenium/node-firefox:119.0-20251212\nTagged selenium/standalone-firefox:119.0-20251212\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.39.0/firefox_120.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.39.0 20251212 selenium false firefox true\nTagging images for browser firefox, version 4.39.0, build date 20251212, namespace selenium\nSelenium Grid version -> 4.39.0-20251212\nFirefox version -> 120.0.1\nShort Firefox version -> 120.0\nGeckoDriver version -> 0.36.0\nShort GeckoDriver version -> 0.36\nTagged selenium/node-firefox:120.0.1-geckodriver-0.36.0-grid-4.39.0-20251212\nTagged selenium/standalone-firefox:120.0.1-geckodriver-0.36.0-grid-4.39.0-20251212\nTagged selenium/node-firefox:120.0.1-geckodriver-0.36.0-20251212\nTagged selenium/standalone-firefox:120.0.1-geckodriver-0.36.0-20251212\nTagged selenium/node-firefox:120.0.1-20251212\nTagged selenium/standalone-firefox:120.0.1-20251212\nTagged selenium/node-firefox:120.0-geckodriver-0.36-grid-4.39.0-20251212\nTagged selenium/standalone-firefox:120.0-geckodriver-0.36-grid-4.39.0-20251212\nTagged selenium/node-firefox:120.0-geckodriver-0.36-20251212\nTagged selenium/standalone-firefox:120.0-geckodriver-0.36-20251212\nTagged selenium/node-firefox:120.0-20251212\nTagged selenium/standalone-firefox:120.0-20251212\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.39.0/firefox_121.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.39.0 20251212 selenium false firefox true\nTagging images for browser firefox, version 4.39.0, build date 20251212, namespace selenium\nSelenium Grid version -> 4.39.0-20251212\nFirefox version -> 121.0.1\nShort Firefox version -> 121.0\nGeckoDriver version -> 0.36.0\nShort GeckoDriver version -> 0.36\nTagged selenium/node-firefox:121.0.1-geckodriver-0.36.0-grid-4.39.0-20251212\nTagged selenium/standalone-firefox:121.0.1-geckodriver-0.36.0-grid-4.39.0-20251212\nTagged selenium/node-firefox:121.0.1-geckodriver-0.36.0-20251212\nTagged selenium/standalone-firefox:121.0.1-geckodriver-0.36.0-20251212\nTagged selenium/node-firefox:121.0.1-20251212\nTagged selenium/standalone-firefox:121.0.1-20251212\nTagged selenium/node-firefox:121.0-geckodriver-0.36-grid-4.39.0-20251212\nTagged selenium/standalone-firefox:121.0-geckodriver-0.36-grid-4.39.0-20251212\nTagged selenium/node-firefox:121.0-geckodriver-0.36-20251212\nTagged selenium/standalone-firefox:121.0-geckodriver-0.36-20251212\nTagged selenium/node-firefox:121.0-20251212\nTagged selenium/standalone-firefox:121.0-20251212\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.39.0/firefox_122.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.39.0 20251212 selenium false firefox true\nTagging images for browser firefox, version 4.39.0, build date 20251212, namespace selenium\nSelenium Grid version -> 4.39.0-20251212\nFirefox version -> 122.0.1\nShort Firefox version -> 122.0\nGeckoDriver version -> 0.36.0\nShort GeckoDriver version -> 0.36\nTagged selenium/node-firefox:122.0.1-geckodriver-0.36.0-grid-4.39.0-20251212\nTagged selenium/standalone-firefox:122.0.1-geckodriver-0.36.0-grid-4.39.0-20251212\nTagged selenium/node-firefox:122.0.1-geckodriver-0.36.0-20251212\nTagged selenium/standalone-firefox:122.0.1-geckodriver-0.36.0-20251212\nTagged selenium/node-firefox:122.0.1-20251212\nTagged selenium/standalone-firefox:122.0.1-20251212\nTagged selenium/node-firefox:122.0-geckodriver-0.36-grid-4.39.0-20251212\nTagged selenium/standalone-firefox:122.0-geckodriver-0.36-grid-4.39.0-20251212\nTagged selenium/node-firefox:122.0-geckodriver-0.36-20251212\nTagged selenium/standalone-firefox:122.0-geckodriver-0.36-20251212\nTagged selenium/node-firefox:122.0-20251212\nTagged selenium/standalone-firefox:122.0-20251212\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.39.0/firefox_123.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.39.0 20251212 selenium false firefox true\nTagging images for browser firefox, version 4.39.0, build date 20251212, namespace selenium\nSelenium Grid version -> 4.39.0-20251212\nFirefox version -> 123.0.1\nShort Firefox version -> 123.0\nGeckoDriver version -> 0.36.0\nShort GeckoDriver version -> 0.36\nTagged selenium/node-firefox:123.0.1-geckodriver-0.36.0-grid-4.39.0-20251212\nTagged selenium/standalone-firefox:123.0.1-geckodriver-0.36.0-grid-4.39.0-20251212\nTagged selenium/node-firefox:123.0.1-geckodriver-0.36.0-20251212\nTagged selenium/standalone-firefox:123.0.1-geckodriver-0.36.0-20251212\nTagged selenium/node-firefox:123.0.1-20251212\nTagged selenium/standalone-firefox:123.0.1-20251212\nTagged selenium/node-firefox:123.0-geckodriver-0.36-grid-4.39.0-20251212\nTagged selenium/standalone-firefox:123.0-geckodriver-0.36-grid-4.39.0-20251212\nTagged selenium/node-firefox:123.0-geckodriver-0.36-20251212\nTagged selenium/standalone-firefox:123.0-geckodriver-0.36-20251212\nTagged selenium/node-firefox:123.0-20251212\nTagged selenium/standalone-firefox:123.0-20251212\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.39.0/firefox_124.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.39.0 20251212 selenium false firefox true\nTagging images for browser firefox, version 4.39.0, build date 20251212, namespace selenium\nSelenium Grid version -> 4.39.0-20251212\nFirefox version -> 124.0.2\nShort Firefox version -> 124.0\nGeckoDriver version -> 0.36.0\nShort GeckoDriver version -> 0.36\nTagged selenium/node-firefox:124.0.2-geckodriver-0.36.0-grid-4.39.0-20251212\nTagged selenium/standalone-firefox:124.0.2-geckodriver-0.36.0-grid-4.39.0-20251212\nTagged selenium/node-firefox:124.0.2-geckodriver-0.36.0-20251212\nTagged selenium/standalone-firefox:124.0.2-geckodriver-0.36.0-20251212\nTagged selenium/node-firefox:124.0.2-20251212\nTagged selenium/standalone-firefox:124.0.2-20251212\nTagged selenium/node-firefox:124.0-geckodriver-0.36-grid-4.39.0-20251212\nTagged selenium/standalone-firefox:124.0-geckodriver-0.36-grid-4.39.0-20251212\nTagged selenium/node-firefox:124.0-geckodriver-0.36-20251212\nTagged selenium/standalone-firefox:124.0-geckodriver-0.36-20251212\nTagged selenium/node-firefox:124.0-20251212\nTagged selenium/standalone-firefox:124.0-20251212\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.39.0/firefox_125.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.39.0 20251212 selenium false firefox true\nTagging images for browser firefox, version 4.39.0, build date 20251212, namespace selenium\nSelenium Grid version -> 4.39.0-20251212\nFirefox version -> 125.0.3\nShort Firefox version -> 125.0\nGeckoDriver version -> 0.36.0\nShort GeckoDriver version -> 0.36\nTagged selenium/node-firefox:125.0.3-geckodriver-0.36.0-grid-4.39.0-20251212\nTagged selenium/standalone-firefox:125.0.3-geckodriver-0.36.0-grid-4.39.0-20251212\nTagged selenium/node-firefox:125.0.3-geckodriver-0.36.0-20251212\nTagged selenium/standalone-firefox:125.0.3-geckodriver-0.36.0-20251212\nTagged selenium/node-firefox:125.0.3-20251212\nTagged selenium/standalone-firefox:125.0.3-20251212\nTagged selenium/node-firefox:125.0-geckodriver-0.36-grid-4.39.0-20251212\nTagged selenium/standalone-firefox:125.0-geckodriver-0.36-grid-4.39.0-20251212\nTagged selenium/node-firefox:125.0-geckodriver-0.36-20251212\nTagged selenium/standalone-firefox:125.0-geckodriver-0.36-20251212\nTagged selenium/node-firefox:125.0-20251212\nTagged selenium/standalone-firefox:125.0-20251212\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.39.0/firefox_126.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.39.0 20251212 selenium false firefox true\nTagging images for browser firefox, version 4.39.0, build date 20251212, namespace selenium\nSelenium Grid version -> 4.39.0-20251212\nFirefox version -> 126.0.1\nShort Firefox version -> 126.0\nGeckoDriver version -> 0.36.0\nShort GeckoDriver version -> 0.36\nTagged selenium/node-firefox:126.0.1-geckodriver-0.36.0-grid-4.39.0-20251212\nTagged selenium/standalone-firefox:126.0.1-geckodriver-0.36.0-grid-4.39.0-20251212\nTagged selenium/node-firefox:126.0.1-geckodriver-0.36.0-20251212\nTagged selenium/standalone-firefox:126.0.1-geckodriver-0.36.0-20251212\nTagged selenium/node-firefox:126.0.1-20251212\nTagged selenium/standalone-firefox:126.0.1-20251212\nTagged selenium/node-firefox:126.0-geckodriver-0.36-grid-4.39.0-20251212\nTagged selenium/standalone-firefox:126.0-geckodriver-0.36-grid-4.39.0-20251212\nTagged selenium/node-firefox:126.0-geckodriver-0.36-20251212\nTagged selenium/standalone-firefox:126.0-geckodriver-0.36-20251212\nTagged selenium/node-firefox:126.0-20251212\nTagged selenium/standalone-firefox:126.0-20251212\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.39.0/firefox_127.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.39.0 20251212 selenium false firefox true\nTagging images for browser firefox, version 4.39.0, build date 20251212, namespace selenium\nSelenium Grid version -> 4.39.0-20251212\nFirefox version -> 127.0.2\nShort Firefox version -> 127.0\nGeckoDriver version -> 0.36.0\nShort GeckoDriver version -> 0.36\nTagged selenium/node-firefox:127.0.2-geckodriver-0.36.0-grid-4.39.0-20251212\nTagged selenium/standalone-firefox:127.0.2-geckodriver-0.36.0-grid-4.39.0-20251212\nTagged selenium/node-firefox:127.0.2-geckodriver-0.36.0-20251212\nTagged selenium/standalone-firefox:127.0.2-geckodriver-0.36.0-20251212\nTagged selenium/node-firefox:127.0.2-20251212\nTagged selenium/standalone-firefox:127.0.2-20251212\nTagged selenium/node-firefox:127.0-geckodriver-0.36-grid-4.39.0-20251212\nTagged selenium/standalone-firefox:127.0-geckodriver-0.36-grid-4.39.0-20251212\nTagged selenium/node-firefox:127.0-geckodriver-0.36-20251212\nTagged selenium/standalone-firefox:127.0-geckodriver-0.36-20251212\nTagged selenium/node-firefox:127.0-20251212\nTagged selenium/standalone-firefox:127.0-20251212\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.39.0/firefox_128.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.39.0 20251212 selenium false firefox true\nTagging images for browser firefox, version 4.39.0, build date 20251212, namespace selenium\nSelenium Grid version -> 4.39.0-20251212\nFirefox version -> 128.0.3\nShort Firefox version -> 128.0\nGeckoDriver version -> 0.36.0\nShort GeckoDriver version -> 0.36\nTagged selenium/node-firefox:128.0.3-geckodriver-0.36.0-grid-4.39.0-20251212\nTagged selenium/standalone-firefox:128.0.3-geckodriver-0.36.0-grid-4.39.0-20251212\nTagged selenium/node-firefox:128.0.3-geckodriver-0.36.0-20251212\nTagged selenium/standalone-firefox:128.0.3-geckodriver-0.36.0-20251212\nTagged selenium/node-firefox:128.0.3-20251212\nTagged selenium/standalone-firefox:128.0.3-20251212\nTagged selenium/node-firefox:128.0-geckodriver-0.36-grid-4.39.0-20251212\nTagged selenium/standalone-firefox:128.0-geckodriver-0.36-grid-4.39.0-20251212\nTagged selenium/node-firefox:128.0-geckodriver-0.36-20251212\nTagged selenium/standalone-firefox:128.0-geckodriver-0.36-20251212\nTagged selenium/node-firefox:128.0-20251212\nTagged selenium/standalone-firefox:128.0-20251212\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.39.0/firefox_129.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.39.0 20251212 selenium false firefox true\nTagging images for browser firefox, version 4.39.0, build date 20251212, namespace selenium\nSelenium Grid version -> 4.39.0-20251212\nFirefox version -> 129.0.2\nShort Firefox version -> 129.0\nGeckoDriver version -> 0.36.0\nShort GeckoDriver version -> 0.36\nTagged selenium/node-firefox:129.0.2-geckodriver-0.36.0-grid-4.39.0-20251212\nTagged selenium/standalone-firefox:129.0.2-geckodriver-0.36.0-grid-4.39.0-20251212\nTagged selenium/node-firefox:129.0.2-geckodriver-0.36.0-20251212\nTagged selenium/standalone-firefox:129.0.2-geckodriver-0.36.0-20251212\nTagged selenium/node-firefox:129.0.2-20251212\nTagged selenium/standalone-firefox:129.0.2-20251212\nTagged selenium/node-firefox:129.0-geckodriver-0.36-grid-4.39.0-20251212\nTagged selenium/standalone-firefox:129.0-geckodriver-0.36-grid-4.39.0-20251212\nTagged selenium/node-firefox:129.0-geckodriver-0.36-20251212\nTagged selenium/standalone-firefox:129.0-geckodriver-0.36-20251212\nTagged selenium/node-firefox:129.0-20251212\nTagged selenium/standalone-firefox:129.0-20251212\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.39.0/firefox_130.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.39.0 20251212 selenium false firefox true\nTagging images for browser firefox, version 4.39.0, build date 20251212, namespace selenium\nSelenium Grid version -> 4.39.0-20251212\nFirefox version -> 130.0.1\nShort Firefox version -> 130.0\nGeckoDriver version -> 0.36.0\nShort GeckoDriver version -> 0.36\nTagged selenium/node-firefox:130.0.1-geckodriver-0.36.0-grid-4.39.0-20251212\nTagged selenium/standalone-firefox:130.0.1-geckodriver-0.36.0-grid-4.39.0-20251212\nTagged selenium/node-firefox:130.0.1-geckodriver-0.36.0-20251212\nTagged selenium/standalone-firefox:130.0.1-geckodriver-0.36.0-20251212\nTagged selenium/node-firefox:130.0.1-20251212\nTagged selenium/standalone-firefox:130.0.1-20251212\nTagged selenium/node-firefox:130.0-geckodriver-0.36-grid-4.39.0-20251212\nTagged selenium/standalone-firefox:130.0-geckodriver-0.36-grid-4.39.0-20251212\nTagged selenium/node-firefox:130.0-geckodriver-0.36-20251212\nTagged selenium/standalone-firefox:130.0-geckodriver-0.36-20251212\nTagged selenium/node-firefox:130.0-20251212\nTagged selenium/standalone-firefox:130.0-20251212\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.39.0/firefox_131.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.39.0 20251212 selenium false firefox true\nTagging images for browser firefox, version 4.39.0, build date 20251212, namespace selenium\nSelenium Grid version -> 4.39.0-20251212\nFirefox version -> 131.0.3\nShort Firefox version -> 131.0\nGeckoDriver version -> 0.36.0\nShort GeckoDriver version -> 0.36\nTagged selenium/node-firefox:131.0.3-geckodriver-0.36.0-grid-4.39.0-20251212\nTagged selenium/standalone-firefox:131.0.3-geckodriver-0.36.0-grid-4.39.0-20251212\nTagged selenium/node-firefox:131.0.3-geckodriver-0.36.0-20251212\nTagged selenium/standalone-firefox:131.0.3-geckodriver-0.36.0-20251212\nTagged selenium/node-firefox:131.0.3-20251212\nTagged selenium/standalone-firefox:131.0.3-20251212\nTagged selenium/node-firefox:131.0-geckodriver-0.36-grid-4.39.0-20251212\nTagged selenium/standalone-firefox:131.0-geckodriver-0.36-grid-4.39.0-20251212\nTagged selenium/node-firefox:131.0-geckodriver-0.36-20251212\nTagged selenium/standalone-firefox:131.0-geckodriver-0.36-20251212\nTagged selenium/node-firefox:131.0-20251212\nTagged selenium/standalone-firefox:131.0-20251212\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.39.0/firefox_132.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.39.0 20251212 selenium false firefox true\nTagging images for browser firefox, version 4.39.0, build date 20251212, namespace selenium\nSelenium Grid version -> 4.39.0-20251212\nFirefox version -> 132.0.2\nShort Firefox version -> 132.0\nGeckoDriver version -> 0.36.0\nShort GeckoDriver version -> 0.36\nTagged selenium/node-firefox:132.0.2-geckodriver-0.36.0-grid-4.39.0-20251212\nTagged selenium/standalone-firefox:132.0.2-geckodriver-0.36.0-grid-4.39.0-20251212\nTagged selenium/node-firefox:132.0.2-geckodriver-0.36.0-20251212\nTagged selenium/standalone-firefox:132.0.2-geckodriver-0.36.0-20251212\nTagged selenium/node-firefox:132.0.2-20251212\nTagged selenium/standalone-firefox:132.0.2-20251212\nTagged selenium/node-firefox:132.0-geckodriver-0.36-grid-4.39.0-20251212\nTagged selenium/standalone-firefox:132.0-geckodriver-0.36-grid-4.39.0-20251212\nTagged selenium/node-firefox:132.0-geckodriver-0.36-20251212\nTagged selenium/standalone-firefox:132.0-geckodriver-0.36-20251212\nTagged selenium/node-firefox:132.0-20251212\nTagged selenium/standalone-firefox:132.0-20251212\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.39.0/firefox_133.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.39.0 20251212 selenium false firefox true\nTagging images for browser firefox, version 4.39.0, build date 20251212, namespace selenium\nSelenium Grid version -> 4.39.0-20251212\nFirefox version -> 133.0.3\nShort Firefox version -> 133.0\nGeckoDriver version -> 0.36.0\nShort GeckoDriver version -> 0.36\nTagged selenium/node-firefox:133.0.3-geckodriver-0.36.0-grid-4.39.0-20251212\nTagged selenium/standalone-firefox:133.0.3-geckodriver-0.36.0-grid-4.39.0-20251212\nTagged selenium/node-firefox:133.0.3-geckodriver-0.36.0-20251212\nTagged selenium/standalone-firefox:133.0.3-geckodriver-0.36.0-20251212\nTagged selenium/node-firefox:133.0.3-20251212\nTagged selenium/standalone-firefox:133.0.3-20251212\nTagged selenium/node-firefox:133.0-geckodriver-0.36-grid-4.39.0-20251212\nTagged selenium/standalone-firefox:133.0-geckodriver-0.36-grid-4.39.0-20251212\nTagged selenium/node-firefox:133.0-geckodriver-0.36-20251212\nTagged selenium/standalone-firefox:133.0-geckodriver-0.36-20251212\nTagged selenium/node-firefox:133.0-20251212\nTagged selenium/standalone-firefox:133.0-20251212\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.39.0/firefox_134.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.39.0 20251212 selenium false firefox true\nTagging images for browser firefox, version 4.39.0, build date 20251212, namespace selenium\nSelenium Grid version -> 4.39.0-20251212\nFirefox version -> 134.0.2\nShort Firefox version -> 134.0\nGeckoDriver version -> 0.36.0\nShort GeckoDriver version -> 0.36\nTagged selenium/node-firefox:134.0.2-geckodriver-0.36.0-grid-4.39.0-20251212\nTagged selenium/standalone-firefox:134.0.2-geckodriver-0.36.0-grid-4.39.0-20251212\nTagged selenium/node-firefox:134.0.2-geckodriver-0.36.0-20251212\nTagged selenium/standalone-firefox:134.0.2-geckodriver-0.36.0-20251212\nTagged selenium/node-firefox:134.0.2-20251212\nTagged selenium/standalone-firefox:134.0.2-20251212\nTagged selenium/node-firefox:134.0-geckodriver-0.36-grid-4.39.0-20251212\nTagged selenium/standalone-firefox:134.0-geckodriver-0.36-grid-4.39.0-20251212\nTagged selenium/node-firefox:134.0-geckodriver-0.36-20251212\nTagged selenium/standalone-firefox:134.0-geckodriver-0.36-20251212\nTagged selenium/node-firefox:134.0-20251212\nTagged selenium/standalone-firefox:134.0-20251212\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.39.0/firefox_135.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.39.0 20251212 selenium false firefox true\nTagging images for browser firefox, version 4.39.0, build date 20251212, namespace selenium\nSelenium Grid version -> 4.39.0-20251212\nFirefox version -> 135.0.1\nShort Firefox version -> 135.0\nGeckoDriver version -> 0.36.0\nShort GeckoDriver version -> 0.36\nTagged selenium/node-firefox:135.0.1-geckodriver-0.36.0-grid-4.39.0-20251212\nTagged selenium/standalone-firefox:135.0.1-geckodriver-0.36.0-grid-4.39.0-20251212\nTagged selenium/node-firefox:135.0.1-geckodriver-0.36.0-20251212\nTagged selenium/standalone-firefox:135.0.1-geckodriver-0.36.0-20251212\nTagged selenium/node-firefox:135.0.1-20251212\nTagged selenium/standalone-firefox:135.0.1-20251212\nTagged selenium/node-firefox:135.0-geckodriver-0.36-grid-4.39.0-20251212\nTagged selenium/standalone-firefox:135.0-geckodriver-0.36-grid-4.39.0-20251212\nTagged selenium/node-firefox:135.0-geckodriver-0.36-20251212\nTagged selenium/standalone-firefox:135.0-geckodriver-0.36-20251212\nTagged selenium/node-firefox:135.0-20251212\nTagged selenium/standalone-firefox:135.0-20251212\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.39.0/firefox_136.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.39.0 20251212 selenium false firefox true\nTagging images for browser firefox, version 4.39.0, build date 20251212, namespace selenium\nSelenium Grid version -> 4.39.0-20251212\nFirefox version -> 136.0.4\nShort Firefox version -> 136.0\nGeckoDriver version -> 0.36.0\nShort GeckoDriver version -> 0.36\nTagged selenium/node-firefox:136.0.4-geckodriver-0.36.0-grid-4.39.0-20251212\nTagged selenium/standalone-firefox:136.0.4-geckodriver-0.36.0-grid-4.39.0-20251212\nTagged selenium/node-firefox:136.0.4-geckodriver-0.36.0-20251212\nTagged selenium/standalone-firefox:136.0.4-geckodriver-0.36.0-20251212\nTagged selenium/node-firefox:136.0.4-20251212\nTagged selenium/standalone-firefox:136.0.4-20251212\nTagged selenium/node-firefox:136.0-geckodriver-0.36-grid-4.39.0-20251212\nTagged selenium/standalone-firefox:136.0-geckodriver-0.36-grid-4.39.0-20251212\nTagged selenium/node-firefox:136.0-geckodriver-0.36-20251212\nTagged selenium/standalone-firefox:136.0-geckodriver-0.36-20251212\nTagged selenium/node-firefox:136.0-20251212\nTagged selenium/standalone-firefox:136.0-20251212\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.39.0/firefox_137.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.39.0 20251212 selenium false firefox true\nTagging images for browser firefox, version 4.39.0, build date 20251212, namespace selenium\nSelenium Grid version -> 4.39.0-20251212\nFirefox version -> 137.0.2\nShort Firefox version -> 137.0\nGeckoDriver version -> 0.36.0\nShort GeckoDriver version -> 0.36\nTagged selenium/node-firefox:137.0.2-geckodriver-0.36.0-grid-4.39.0-20251212\nTagged selenium/standalone-firefox:137.0.2-geckodriver-0.36.0-grid-4.39.0-20251212\nTagged selenium/node-firefox:137.0.2-geckodriver-0.36.0-20251212\nTagged selenium/standalone-firefox:137.0.2-geckodriver-0.36.0-20251212\nTagged selenium/node-firefox:137.0.2-20251212\nTagged selenium/standalone-firefox:137.0.2-20251212\nTagged selenium/node-firefox:137.0-geckodriver-0.36-grid-4.39.0-20251212\nTagged selenium/standalone-firefox:137.0-geckodriver-0.36-grid-4.39.0-20251212\nTagged selenium/node-firefox:137.0-geckodriver-0.36-20251212\nTagged selenium/standalone-firefox:137.0-geckodriver-0.36-20251212\nTagged selenium/node-firefox:137.0-20251212\nTagged selenium/standalone-firefox:137.0-20251212\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.39.0/firefox_138.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.39.0 20251212 selenium false firefox true\nTagging images for browser firefox, version 4.39.0, build date 20251212, namespace selenium\nSelenium Grid version -> 4.39.0-20251212\nFirefox version -> 138.0.4\nShort Firefox version -> 138.0\nGeckoDriver version -> 0.36.0\nShort GeckoDriver version -> 0.36\nTagged selenium/node-firefox:138.0.4-geckodriver-0.36.0-grid-4.39.0-20251212\nTagged selenium/standalone-firefox:138.0.4-geckodriver-0.36.0-grid-4.39.0-20251212\nTagged selenium/node-firefox:138.0.4-geckodriver-0.36.0-20251212\nTagged selenium/standalone-firefox:138.0.4-geckodriver-0.36.0-20251212\nTagged selenium/node-firefox:138.0.4-20251212\nTagged selenium/standalone-firefox:138.0.4-20251212\nTagged selenium/node-firefox:138.0-geckodriver-0.36-grid-4.39.0-20251212\nTagged selenium/standalone-firefox:138.0-geckodriver-0.36-grid-4.39.0-20251212\nTagged selenium/node-firefox:138.0-geckodriver-0.36-20251212\nTagged selenium/standalone-firefox:138.0-geckodriver-0.36-20251212\nTagged selenium/node-firefox:138.0-20251212\nTagged selenium/standalone-firefox:138.0-20251212\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.39.0/firefox_139.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.39.0 20251212 selenium false firefox true\nTagging images for browser firefox, version 4.39.0, build date 20251212, namespace selenium\nSelenium Grid version -> 4.39.0-20251212\nFirefox version -> 139.0.4\nShort Firefox version -> 139.0\nGeckoDriver version -> 0.36.0\nShort GeckoDriver version -> 0.36\nTagged selenium/node-firefox:139.0.4-geckodriver-0.36.0-grid-4.39.0-20251212\nTagged selenium/standalone-firefox:139.0.4-geckodriver-0.36.0-grid-4.39.0-20251212\nTagged selenium/node-firefox:139.0.4-geckodriver-0.36.0-20251212\nTagged selenium/standalone-firefox:139.0.4-geckodriver-0.36.0-20251212\nTagged selenium/node-firefox:139.0.4-20251212\nTagged selenium/standalone-firefox:139.0.4-20251212\nTagged selenium/node-firefox:139.0-geckodriver-0.36-grid-4.39.0-20251212\nTagged selenium/standalone-firefox:139.0-geckodriver-0.36-grid-4.39.0-20251212\nTagged selenium/node-firefox:139.0-geckodriver-0.36-20251212\nTagged selenium/standalone-firefox:139.0-geckodriver-0.36-20251212\nTagged selenium/node-firefox:139.0-20251212\nTagged selenium/standalone-firefox:139.0-20251212\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.39.0/firefox_140.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.39.0 20251212 selenium false firefox true\nTagging images for browser firefox, version 4.39.0, build date 20251212, namespace selenium\nSelenium Grid version -> 4.39.0-20251212\nFirefox version -> 140.0.4\nShort Firefox version -> 140.0\nGeckoDriver version -> 0.36.0\nShort GeckoDriver version -> 0.36\nTagged selenium/node-firefox:140.0.4-geckodriver-0.36.0-grid-4.39.0-20251212\nTagged selenium/standalone-firefox:140.0.4-geckodriver-0.36.0-grid-4.39.0-20251212\nTagged selenium/node-firefox:140.0.4-geckodriver-0.36.0-20251212\nTagged selenium/standalone-firefox:140.0.4-geckodriver-0.36.0-20251212\nTagged selenium/node-firefox:140.0.4-20251212\nTagged selenium/standalone-firefox:140.0.4-20251212\nTagged selenium/node-firefox:140.0-geckodriver-0.36-grid-4.39.0-20251212\nTagged selenium/standalone-firefox:140.0-geckodriver-0.36-grid-4.39.0-20251212\nTagged selenium/node-firefox:140.0-geckodriver-0.36-20251212\nTagged selenium/standalone-firefox:140.0-geckodriver-0.36-20251212\nTagged selenium/node-firefox:140.0-20251212\nTagged selenium/standalone-firefox:140.0-20251212\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.39.0/firefox_141.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.39.0 20251212 selenium false firefox true\nTagging images for browser firefox, version 4.39.0, build date 20251212, namespace selenium\nSelenium Grid version -> 4.39.0-20251212\nFirefox version -> 141.0.3\nShort Firefox version -> 141.0\nGeckoDriver version -> 0.36.0\nShort GeckoDriver version -> 0.36\nTagged selenium/node-firefox:141.0.3-geckodriver-0.36.0-grid-4.39.0-20251212\nTagged selenium/standalone-firefox:141.0.3-geckodriver-0.36.0-grid-4.39.0-20251212\nTagged selenium/node-firefox:141.0.3-geckodriver-0.36.0-20251212\nTagged selenium/standalone-firefox:141.0.3-geckodriver-0.36.0-20251212\nTagged selenium/node-firefox:141.0.3-20251212\nTagged selenium/standalone-firefox:141.0.3-20251212\nTagged selenium/node-firefox:141.0-geckodriver-0.36-grid-4.39.0-20251212\nTagged selenium/standalone-firefox:141.0-geckodriver-0.36-grid-4.39.0-20251212\nTagged selenium/node-firefox:141.0-geckodriver-0.36-20251212\nTagged selenium/standalone-firefox:141.0-geckodriver-0.36-20251212\nTagged selenium/node-firefox:141.0-20251212\nTagged selenium/standalone-firefox:141.0-20251212\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.39.0/firefox_142.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.39.0 20251212 selenium false firefox true\nTagging images for browser firefox, version 4.39.0, build date 20251212, namespace selenium\nSelenium Grid version -> 4.39.0-20251212\nFirefox version -> 142.0.1\nShort Firefox version -> 142.0\nGeckoDriver version -> 0.36.0\nShort GeckoDriver version -> 0.36\nTagged selenium/node-firefox:142.0.1-geckodriver-0.36.0-grid-4.39.0-20251212\nTagged selenium/standalone-firefox:142.0.1-geckodriver-0.36.0-grid-4.39.0-20251212\nTagged selenium/node-firefox:142.0.1-geckodriver-0.36.0-20251212\nTagged selenium/standalone-firefox:142.0.1-geckodriver-0.36.0-20251212\nTagged selenium/node-firefox:142.0.1-20251212\nTagged selenium/standalone-firefox:142.0.1-20251212\nTagged selenium/node-firefox:142.0-geckodriver-0.36-grid-4.39.0-20251212\nTagged selenium/standalone-firefox:142.0-geckodriver-0.36-grid-4.39.0-20251212\nTagged selenium/node-firefox:142.0-geckodriver-0.36-20251212\nTagged selenium/standalone-firefox:142.0-geckodriver-0.36-20251212\nTagged selenium/node-firefox:142.0-20251212\nTagged selenium/standalone-firefox:142.0-20251212\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.39.0/firefox_143.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.39.0 20251212 selenium false firefox true\nTagging images for browser firefox, version 4.39.0, build date 20251212, namespace selenium\nSelenium Grid version -> 4.39.0-20251212\nFirefox version -> 143.0.4\nShort Firefox version -> 143.0\nGeckoDriver version -> 0.36.0\nShort GeckoDriver version -> 0.36\nTagged selenium/node-firefox:143.0.4-geckodriver-0.36.0-grid-4.39.0-20251212\nTagged selenium/standalone-firefox:143.0.4-geckodriver-0.36.0-grid-4.39.0-20251212\nTagged selenium/node-firefox:143.0.4-geckodriver-0.36.0-20251212\nTagged selenium/standalone-firefox:143.0.4-geckodriver-0.36.0-20251212\nTagged selenium/node-firefox:143.0.4-20251212\nTagged selenium/standalone-firefox:143.0.4-20251212\nTagged selenium/node-firefox:143.0-geckodriver-0.36-grid-4.39.0-20251212\nTagged selenium/standalone-firefox:143.0-geckodriver-0.36-grid-4.39.0-20251212\nTagged selenium/node-firefox:143.0-geckodriver-0.36-20251212\nTagged selenium/standalone-firefox:143.0-geckodriver-0.36-20251212\nTagged selenium/node-firefox:143.0-20251212\nTagged selenium/standalone-firefox:143.0-20251212\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.39.0/firefox_144.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.39.0 20251212 selenium false firefox true\nTagging images for browser firefox, version 4.39.0, build date 20251212, namespace selenium\nSelenium Grid version -> 4.39.0-20251212\nFirefox version -> 144.0.2\nShort Firefox version -> 144.0\nGeckoDriver version -> 0.36.0\nShort GeckoDriver version -> 0.36\nTagged selenium/node-firefox:144.0.2-geckodriver-0.36.0-grid-4.39.0-20251212\nTagged selenium/standalone-firefox:144.0.2-geckodriver-0.36.0-grid-4.39.0-20251212\nTagged selenium/node-firefox:144.0.2-geckodriver-0.36.0-20251212\nTagged selenium/standalone-firefox:144.0.2-geckodriver-0.36.0-20251212\nTagged selenium/node-firefox:144.0.2-20251212\nTagged selenium/standalone-firefox:144.0.2-20251212\nTagged selenium/node-firefox:144.0-geckodriver-0.36-grid-4.39.0-20251212\nTagged selenium/standalone-firefox:144.0-geckodriver-0.36-grid-4.39.0-20251212\nTagged selenium/node-firefox:144.0-geckodriver-0.36-20251212\nTagged selenium/standalone-firefox:144.0-geckodriver-0.36-20251212\nTagged selenium/node-firefox:144.0-20251212\nTagged selenium/standalone-firefox:144.0-20251212\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.39.0/firefox_145.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.39.0 20251212 selenium false firefox true\nTagging images for browser firefox, version 4.39.0, build date 20251212, namespace selenium\nSelenium Grid version -> 4.39.0-20251212\nFirefox version -> 145.0.2\nShort Firefox version -> 145.0\nGeckoDriver version -> 0.36.0\nShort GeckoDriver version -> 0.36\nTagged selenium/node-firefox:145.0.2-geckodriver-0.36.0-grid-4.39.0-20251212\nTagged selenium/standalone-firefox:145.0.2-geckodriver-0.36.0-grid-4.39.0-20251212\nTagged selenium/node-firefox:145.0.2-geckodriver-0.36.0-20251212\nTagged selenium/standalone-firefox:145.0.2-geckodriver-0.36.0-20251212\nTagged selenium/node-firefox:145.0.2-20251212\nTagged selenium/standalone-firefox:145.0.2-20251212\nTagged selenium/node-firefox:145.0-geckodriver-0.36-grid-4.39.0-20251212\nTagged selenium/standalone-firefox:145.0-geckodriver-0.36-grid-4.39.0-20251212\nTagged selenium/node-firefox:145.0-geckodriver-0.36-20251212\nTagged selenium/standalone-firefox:145.0-geckodriver-0.36-20251212\nTagged selenium/node-firefox:145.0-20251212\nTagged selenium/standalone-firefox:145.0-20251212\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.39.0/firefox_146.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.39.0 20251212 selenium false firefox true\nTagging images for browser firefox, version 4.39.0, build date 20251212, namespace selenium\nSelenium Grid version -> 4.39.0-20251212\nFirefox version -> 146.0.1\nShort Firefox version -> 146.0\nGeckoDriver version -> 0.36.0\nShort GeckoDriver version -> 0.36\nTagged selenium/node-firefox:146.0.1-geckodriver-0.36.0-grid-4.39.0-20251212\nTagged selenium/standalone-firefox:146.0.1-geckodriver-0.36.0-grid-4.39.0-20251212\nTagged selenium/node-firefox:146.0.1-geckodriver-0.36.0-20251212\nTagged selenium/standalone-firefox:146.0.1-geckodriver-0.36.0-20251212\nTagged selenium/node-firefox:146.0.1-20251212\nTagged selenium/standalone-firefox:146.0.1-20251212\nTagged selenium/node-firefox:146.0-geckodriver-0.36-grid-4.39.0-20251212\nTagged selenium/standalone-firefox:146.0-geckodriver-0.36-grid-4.39.0-20251212\nTagged selenium/node-firefox:146.0-geckodriver-0.36-20251212\nTagged selenium/standalone-firefox:146.0-geckodriver-0.36-20251212\nTagged selenium/node-firefox:146.0-20251212\nTagged selenium/standalone-firefox:146.0-20251212\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.39.0/firefox_98.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.39.0 20251212 selenium false firefox true\nTagging images for browser firefox, version 4.39.0, build date 20251212, namespace selenium\nSelenium Grid version -> 4.39.0-20251212\nFirefox version -> 98.0.2\nShort Firefox version -> 98.0\nGeckoDriver version -> 0.36.0\nShort GeckoDriver version -> 0.36\nTagged selenium/node-firefox:98.0.2-geckodriver-0.36.0-grid-4.39.0-20251212\nTagged selenium/standalone-firefox:98.0.2-geckodriver-0.36.0-grid-4.39.0-20251212\nTagged selenium/node-firefox:98.0.2-geckodriver-0.36.0-20251212\nTagged selenium/standalone-firefox:98.0.2-geckodriver-0.36.0-20251212\nTagged selenium/node-firefox:98.0.2-20251212\nTagged selenium/standalone-firefox:98.0.2-20251212\nTagged selenium/node-firefox:98.0-geckodriver-0.36-grid-4.39.0-20251212\nTagged selenium/standalone-firefox:98.0-geckodriver-0.36-grid-4.39.0-20251212\nTagged selenium/node-firefox:98.0-geckodriver-0.36-20251212\nTagged selenium/standalone-firefox:98.0-geckodriver-0.36-20251212\nTagged selenium/node-firefox:98.0-20251212\nTagged selenium/standalone-firefox:98.0-20251212\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.39.0/firefox_99.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.39.0 20251212 selenium false firefox true\nTagging images for browser firefox, version 4.39.0, build date 20251212, namespace selenium\nSelenium Grid version -> 4.39.0-20251212\nFirefox version -> 99.0.1\nShort Firefox version -> 99.0\nGeckoDriver version -> 0.36.0\nShort GeckoDriver version -> 0.36\nTagged selenium/node-firefox:99.0.1-geckodriver-0.36.0-grid-4.39.0-20251212\nTagged selenium/standalone-firefox:99.0.1-geckodriver-0.36.0-grid-4.39.0-20251212\nTagged selenium/node-firefox:99.0.1-geckodriver-0.36.0-20251212\nTagged selenium/standalone-firefox:99.0.1-geckodriver-0.36.0-20251212\nTagged selenium/node-firefox:99.0.1-20251212\nTagged selenium/standalone-firefox:99.0.1-20251212\nTagged selenium/node-firefox:99.0-geckodriver-0.36-grid-4.39.0-20251212\nTagged selenium/standalone-firefox:99.0-geckodriver-0.36-grid-4.39.0-20251212\nTagged selenium/node-firefox:99.0-geckodriver-0.36-20251212\nTagged selenium/standalone-firefox:99.0-geckodriver-0.36-20251212\nTagged selenium/node-firefox:99.0-20251212\nTagged selenium/standalone-firefox:99.0-20251212\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.40.0/chrome-for-testing_113.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.40.0 20260202 selenium false chrome-for-testing true\nTagging images for browser chrome-for-testing, version 4.40.0, build date 20260202, namespace selenium\nSelenium Grid version -> 4.40.0-20260202\nChrome for Testing version -> 113.0.5672.63\nShort Chrome for Testing version -> 113.0\nChromeDriver version -> 113.0.5672.63\nShort ChromeDriver version -> 113.0\nTagged selenium/node-chrome-for-testing:113.0.5672.63-chromedriver-113.0.5672.63-grid-4.40.0-20260202\nTagged selenium/standalone-chrome-for-testing:113.0.5672.63-chromedriver-113.0.5672.63-grid-4.40.0-20260202\nTagged selenium/node-chrome-for-testing:113.0.5672.63-chromedriver-113.0.5672.63-20260202\nTagged selenium/standalone-chrome-for-testing:113.0.5672.63-chromedriver-113.0.5672.63-20260202\nTagged selenium/node-chrome-for-testing:113.0.5672.63-20260202\nTagged selenium/standalone-chrome-for-testing:113.0.5672.63-20260202\nTagged selenium/node-chrome-for-testing:113.0-chromedriver-113.0-grid-4.40.0-20260202\nTagged selenium/standalone-chrome-for-testing:113.0-chromedriver-113.0-grid-4.40.0-20260202\nTagged selenium/node-chrome-for-testing:113.0-chromedriver-113.0-20260202\nTagged selenium/standalone-chrome-for-testing:113.0-chromedriver-113.0-20260202\nTagged selenium/node-chrome-for-testing:113.0-20260202\nTagged selenium/standalone-chrome-for-testing:113.0-20260202\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.40.0/chrome-for-testing_114.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.40.0 20260202 selenium false chrome-for-testing true\nTagging images for browser chrome-for-testing, version 4.40.0, build date 20260202, namespace selenium\nSelenium Grid version -> 4.40.0-20260202\nChrome for Testing version -> 114.0.5735.133\nShort Chrome for Testing version -> 114.0\nChromeDriver version -> 114.0.5735.90\nShort ChromeDriver version -> 114.0\nTagged selenium/node-chrome-for-testing:114.0.5735.133-chromedriver-114.0.5735.90-grid-4.40.0-20260202\nTagged selenium/standalone-chrome-for-testing:114.0.5735.133-chromedriver-114.0.5735.90-grid-4.40.0-20260202\nTagged selenium/node-chrome-for-testing:114.0.5735.133-chromedriver-114.0.5735.90-20260202\nTagged selenium/standalone-chrome-for-testing:114.0.5735.133-chromedriver-114.0.5735.90-20260202\nTagged selenium/node-chrome-for-testing:114.0.5735.133-20260202\nTagged selenium/standalone-chrome-for-testing:114.0.5735.133-20260202\nTagged selenium/node-chrome-for-testing:114.0-chromedriver-114.0-grid-4.40.0-20260202\nTagged selenium/standalone-chrome-for-testing:114.0-chromedriver-114.0-grid-4.40.0-20260202\nTagged selenium/node-chrome-for-testing:114.0-chromedriver-114.0-20260202\nTagged selenium/standalone-chrome-for-testing:114.0-chromedriver-114.0-20260202\nTagged selenium/node-chrome-for-testing:114.0-20260202\nTagged selenium/standalone-chrome-for-testing:114.0-20260202\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.40.0/chrome-for-testing_115.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.40.0 20260202 selenium false chrome-for-testing true\nTagging images for browser chrome-for-testing, version 4.40.0, build date 20260202, namespace selenium\nSelenium Grid version -> 4.40.0-20260202\nChrome for Testing version -> 115.0.5790.170\nShort Chrome for Testing version -> 115.0\nChromeDriver version -> 115.0.5790.170\nShort ChromeDriver version -> 115.0\nTagged selenium/node-chrome-for-testing:115.0.5790.170-chromedriver-115.0.5790.170-grid-4.40.0-20260202\nTagged selenium/standalone-chrome-for-testing:115.0.5790.170-chromedriver-115.0.5790.170-grid-4.40.0-20260202\nTagged selenium/node-chrome-for-testing:115.0.5790.170-chromedriver-115.0.5790.170-20260202\nTagged selenium/standalone-chrome-for-testing:115.0.5790.170-chromedriver-115.0.5790.170-20260202\nTagged selenium/node-chrome-for-testing:115.0.5790.170-20260202\nTagged selenium/standalone-chrome-for-testing:115.0.5790.170-20260202\nTagged selenium/node-chrome-for-testing:115.0-chromedriver-115.0-grid-4.40.0-20260202\nTagged selenium/standalone-chrome-for-testing:115.0-chromedriver-115.0-grid-4.40.0-20260202\nTagged selenium/node-chrome-for-testing:115.0-chromedriver-115.0-20260202\nTagged selenium/standalone-chrome-for-testing:115.0-chromedriver-115.0-20260202\nTagged selenium/node-chrome-for-testing:115.0-20260202\nTagged selenium/standalone-chrome-for-testing:115.0-20260202\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.40.0/chrome-for-testing_116.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.40.0 20260202 selenium false chrome-for-testing true\nTagging images for browser chrome-for-testing, version 4.40.0, build date 20260202, namespace selenium\nSelenium Grid version -> 4.40.0-20260202\nChrome for Testing version -> 116.0.5845.96\nShort Chrome for Testing version -> 116.0\nChromeDriver version -> 116.0.5845.96\nShort ChromeDriver version -> 116.0\nTagged selenium/node-chrome-for-testing:116.0.5845.96-chromedriver-116.0.5845.96-grid-4.40.0-20260202\nTagged selenium/standalone-chrome-for-testing:116.0.5845.96-chromedriver-116.0.5845.96-grid-4.40.0-20260202\nTagged selenium/node-chrome-for-testing:116.0.5845.96-chromedriver-116.0.5845.96-20260202\nTagged selenium/standalone-chrome-for-testing:116.0.5845.96-chromedriver-116.0.5845.96-20260202\nTagged selenium/node-chrome-for-testing:116.0.5845.96-20260202\nTagged selenium/standalone-chrome-for-testing:116.0.5845.96-20260202\nTagged selenium/node-chrome-for-testing:116.0-chromedriver-116.0-grid-4.40.0-20260202\nTagged selenium/standalone-chrome-for-testing:116.0-chromedriver-116.0-grid-4.40.0-20260202\nTagged selenium/node-chrome-for-testing:116.0-chromedriver-116.0-20260202\nTagged selenium/standalone-chrome-for-testing:116.0-chromedriver-116.0-20260202\nTagged selenium/node-chrome-for-testing:116.0-20260202\nTagged selenium/standalone-chrome-for-testing:116.0-20260202\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.40.0/chrome-for-testing_117.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.40.0 20260202 selenium false chrome-for-testing true\nTagging images for browser chrome-for-testing, version 4.40.0, build date 20260202, namespace selenium\nSelenium Grid version -> 4.40.0-20260202\nChrome for Testing version -> 117.0.5938.149\nShort Chrome for Testing version -> 117.0\nChromeDriver version -> 117.0.5938.149\nShort ChromeDriver version -> 117.0\nTagged selenium/node-chrome-for-testing:117.0.5938.149-chromedriver-117.0.5938.149-grid-4.40.0-20260202\nTagged selenium/standalone-chrome-for-testing:117.0.5938.149-chromedriver-117.0.5938.149-grid-4.40.0-20260202\nTagged selenium/node-chrome-for-testing:117.0.5938.149-chromedriver-117.0.5938.149-20260202\nTagged selenium/standalone-chrome-for-testing:117.0.5938.149-chromedriver-117.0.5938.149-20260202\nTagged selenium/node-chrome-for-testing:117.0.5938.149-20260202\nTagged selenium/standalone-chrome-for-testing:117.0.5938.149-20260202\nTagged selenium/node-chrome-for-testing:117.0-chromedriver-117.0-grid-4.40.0-20260202\nTagged selenium/standalone-chrome-for-testing:117.0-chromedriver-117.0-grid-4.40.0-20260202\nTagged selenium/node-chrome-for-testing:117.0-chromedriver-117.0-20260202\nTagged selenium/standalone-chrome-for-testing:117.0-chromedriver-117.0-20260202\nTagged selenium/node-chrome-for-testing:117.0-20260202\nTagged selenium/standalone-chrome-for-testing:117.0-20260202\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.40.0/chrome-for-testing_118.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.40.0 20260202 selenium false chrome-for-testing true\nTagging images for browser chrome-for-testing, version 4.40.0, build date 20260202, namespace selenium\nSelenium Grid version -> 4.40.0-20260202\nChrome for Testing version -> 118.0.5993.70\nShort Chrome for Testing version -> 118.0\nChromeDriver version -> 118.0.5993.70\nShort ChromeDriver version -> 118.0\nTagged selenium/node-chrome-for-testing:118.0.5993.70-chromedriver-118.0.5993.70-grid-4.40.0-20260202\nTagged selenium/standalone-chrome-for-testing:118.0.5993.70-chromedriver-118.0.5993.70-grid-4.40.0-20260202\nTagged selenium/node-chrome-for-testing:118.0.5993.70-chromedriver-118.0.5993.70-20260202\nTagged selenium/standalone-chrome-for-testing:118.0.5993.70-chromedriver-118.0.5993.70-20260202\nTagged selenium/node-chrome-for-testing:118.0.5993.70-20260202\nTagged selenium/standalone-chrome-for-testing:118.0.5993.70-20260202\nTagged selenium/node-chrome-for-testing:118.0-chromedriver-118.0-grid-4.40.0-20260202\nTagged selenium/standalone-chrome-for-testing:118.0-chromedriver-118.0-grid-4.40.0-20260202\nTagged selenium/node-chrome-for-testing:118.0-chromedriver-118.0-20260202\nTagged selenium/standalone-chrome-for-testing:118.0-chromedriver-118.0-20260202\nTagged selenium/node-chrome-for-testing:118.0-20260202\nTagged selenium/standalone-chrome-for-testing:118.0-20260202\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.40.0/chrome-for-testing_119.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.40.0 20260202 selenium false chrome-for-testing true\nTagging images for browser chrome-for-testing, version 4.40.0, build date 20260202, namespace selenium\nSelenium Grid version -> 4.40.0-20260202\nChrome for Testing version -> 119.0.6045.105\nShort Chrome for Testing version -> 119.0\nChromeDriver version -> 119.0.6045.105\nShort ChromeDriver version -> 119.0\nTagged selenium/node-chrome-for-testing:119.0.6045.105-chromedriver-119.0.6045.105-grid-4.40.0-20260202\nTagged selenium/standalone-chrome-for-testing:119.0.6045.105-chromedriver-119.0.6045.105-grid-4.40.0-20260202\nTagged selenium/node-chrome-for-testing:119.0.6045.105-chromedriver-119.0.6045.105-20260202\nTagged selenium/standalone-chrome-for-testing:119.0.6045.105-chromedriver-119.0.6045.105-20260202\nTagged selenium/node-chrome-for-testing:119.0.6045.105-20260202\nTagged selenium/standalone-chrome-for-testing:119.0.6045.105-20260202\nTagged selenium/node-chrome-for-testing:119.0-chromedriver-119.0-grid-4.40.0-20260202\nTagged selenium/standalone-chrome-for-testing:119.0-chromedriver-119.0-grid-4.40.0-20260202\nTagged selenium/node-chrome-for-testing:119.0-chromedriver-119.0-20260202\nTagged selenium/standalone-chrome-for-testing:119.0-chromedriver-119.0-20260202\nTagged selenium/node-chrome-for-testing:119.0-20260202\nTagged selenium/standalone-chrome-for-testing:119.0-20260202\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.40.0/chrome-for-testing_120.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.40.0 20260202 selenium false chrome-for-testing true\nTagging images for browser chrome-for-testing, version 4.40.0, build date 20260202, namespace selenium\nSelenium Grid version -> 4.40.0-20260202\nChrome for Testing version -> 120.0.6099.109\nShort Chrome for Testing version -> 120.0\nChromeDriver version -> 120.0.6099.109\nShort ChromeDriver version -> 120.0\nTagged selenium/node-chrome-for-testing:120.0.6099.109-chromedriver-120.0.6099.109-grid-4.40.0-20260202\nTagged selenium/standalone-chrome-for-testing:120.0.6099.109-chromedriver-120.0.6099.109-grid-4.40.0-20260202\nTagged selenium/node-chrome-for-testing:120.0.6099.109-chromedriver-120.0.6099.109-20260202\nTagged selenium/standalone-chrome-for-testing:120.0.6099.109-chromedriver-120.0.6099.109-20260202\nTagged selenium/node-chrome-for-testing:120.0.6099.109-20260202\nTagged selenium/standalone-chrome-for-testing:120.0.6099.109-20260202\nTagged selenium/node-chrome-for-testing:120.0-chromedriver-120.0-grid-4.40.0-20260202\nTagged selenium/standalone-chrome-for-testing:120.0-chromedriver-120.0-grid-4.40.0-20260202\nTagged selenium/node-chrome-for-testing:120.0-chromedriver-120.0-20260202\nTagged selenium/standalone-chrome-for-testing:120.0-chromedriver-120.0-20260202\nTagged selenium/node-chrome-for-testing:120.0-20260202\nTagged selenium/standalone-chrome-for-testing:120.0-20260202\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.40.0/chrome-for-testing_121.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.40.0 20260202 selenium false chrome-for-testing true\nTagging images for browser chrome-for-testing, version 4.40.0, build date 20260202, namespace selenium\nSelenium Grid version -> 4.40.0-20260202\nChrome for Testing version -> 121.0.6167.184\nShort Chrome for Testing version -> 121.0\nChromeDriver version -> 121.0.6167.184\nShort ChromeDriver version -> 121.0\nTagged selenium/node-chrome-for-testing:121.0.6167.184-chromedriver-121.0.6167.184-grid-4.40.0-20260202\nTagged selenium/standalone-chrome-for-testing:121.0.6167.184-chromedriver-121.0.6167.184-grid-4.40.0-20260202\nTagged selenium/node-chrome-for-testing:121.0.6167.184-chromedriver-121.0.6167.184-20260202\nTagged selenium/standalone-chrome-for-testing:121.0.6167.184-chromedriver-121.0.6167.184-20260202\nTagged selenium/node-chrome-for-testing:121.0.6167.184-20260202\nTagged selenium/standalone-chrome-for-testing:121.0.6167.184-20260202\nTagged selenium/node-chrome-for-testing:121.0-chromedriver-121.0-grid-4.40.0-20260202\nTagged selenium/standalone-chrome-for-testing:121.0-chromedriver-121.0-grid-4.40.0-20260202\nTagged selenium/node-chrome-for-testing:121.0-chromedriver-121.0-20260202\nTagged selenium/standalone-chrome-for-testing:121.0-chromedriver-121.0-20260202\nTagged selenium/node-chrome-for-testing:121.0-20260202\nTagged selenium/standalone-chrome-for-testing:121.0-20260202\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.40.0/chrome-for-testing_122.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.40.0 20260202 selenium false chrome-for-testing true\nTagging images for browser chrome-for-testing, version 4.40.0, build date 20260202, namespace selenium\nSelenium Grid version -> 4.40.0-20260202\nChrome for Testing version -> 122.0.6261.128\nShort Chrome for Testing version -> 122.0\nChromeDriver version -> 122.0.6261.128\nShort ChromeDriver version -> 122.0\nTagged selenium/node-chrome-for-testing:122.0.6261.128-chromedriver-122.0.6261.128-grid-4.40.0-20260202\nTagged selenium/standalone-chrome-for-testing:122.0.6261.128-chromedriver-122.0.6261.128-grid-4.40.0-20260202\nTagged selenium/node-chrome-for-testing:122.0.6261.128-chromedriver-122.0.6261.128-20260202\nTagged selenium/standalone-chrome-for-testing:122.0.6261.128-chromedriver-122.0.6261.128-20260202\nTagged selenium/node-chrome-for-testing:122.0.6261.128-20260202\nTagged selenium/standalone-chrome-for-testing:122.0.6261.128-20260202\nTagged selenium/node-chrome-for-testing:122.0-chromedriver-122.0-grid-4.40.0-20260202\nTagged selenium/standalone-chrome-for-testing:122.0-chromedriver-122.0-grid-4.40.0-20260202\nTagged selenium/node-chrome-for-testing:122.0-chromedriver-122.0-20260202\nTagged selenium/standalone-chrome-for-testing:122.0-chromedriver-122.0-20260202\nTagged selenium/node-chrome-for-testing:122.0-20260202\nTagged selenium/standalone-chrome-for-testing:122.0-20260202\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.40.0/chrome-for-testing_123.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.40.0 20260202 selenium false chrome-for-testing true\nTagging images for browser chrome-for-testing, version 4.40.0, build date 20260202, namespace selenium\nSelenium Grid version -> 4.40.0-20260202\nChrome for Testing version -> 123.0.6312.122\nShort Chrome for Testing version -> 123.0\nChromeDriver version -> 123.0.6312.122\nShort ChromeDriver version -> 123.0\nTagged selenium/node-chrome-for-testing:123.0.6312.122-chromedriver-123.0.6312.122-grid-4.40.0-20260202\nTagged selenium/standalone-chrome-for-testing:123.0.6312.122-chromedriver-123.0.6312.122-grid-4.40.0-20260202\nTagged selenium/node-chrome-for-testing:123.0.6312.122-chromedriver-123.0.6312.122-20260202\nTagged selenium/standalone-chrome-for-testing:123.0.6312.122-chromedriver-123.0.6312.122-20260202\nTagged selenium/node-chrome-for-testing:123.0.6312.122-20260202\nTagged selenium/standalone-chrome-for-testing:123.0.6312.122-20260202\nTagged selenium/node-chrome-for-testing:123.0-chromedriver-123.0-grid-4.40.0-20260202\nTagged selenium/standalone-chrome-for-testing:123.0-chromedriver-123.0-grid-4.40.0-20260202\nTagged selenium/node-chrome-for-testing:123.0-chromedriver-123.0-20260202\nTagged selenium/standalone-chrome-for-testing:123.0-chromedriver-123.0-20260202\nTagged selenium/node-chrome-for-testing:123.0-20260202\nTagged selenium/standalone-chrome-for-testing:123.0-20260202\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.40.0/chrome-for-testing_124.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.40.0 20260202 selenium false chrome-for-testing true\nTagging images for browser chrome-for-testing, version 4.40.0, build date 20260202, namespace selenium\nSelenium Grid version -> 4.40.0-20260202\nChrome for Testing version -> 124.0.6367.207\nShort Chrome for Testing version -> 124.0\nChromeDriver version -> 124.0.6367.207\nShort ChromeDriver version -> 124.0\nTagged selenium/node-chrome-for-testing:124.0.6367.207-chromedriver-124.0.6367.207-grid-4.40.0-20260202\nTagged selenium/standalone-chrome-for-testing:124.0.6367.207-chromedriver-124.0.6367.207-grid-4.40.0-20260202\nTagged selenium/node-chrome-for-testing:124.0.6367.207-chromedriver-124.0.6367.207-20260202\nTagged selenium/standalone-chrome-for-testing:124.0.6367.207-chromedriver-124.0.6367.207-20260202\nTagged selenium/node-chrome-for-testing:124.0.6367.207-20260202\nTagged selenium/standalone-chrome-for-testing:124.0.6367.207-20260202\nTagged selenium/node-chrome-for-testing:124.0-chromedriver-124.0-grid-4.40.0-20260202\nTagged selenium/standalone-chrome-for-testing:124.0-chromedriver-124.0-grid-4.40.0-20260202\nTagged selenium/node-chrome-for-testing:124.0-chromedriver-124.0-20260202\nTagged selenium/standalone-chrome-for-testing:124.0-chromedriver-124.0-20260202\nTagged selenium/node-chrome-for-testing:124.0-20260202\nTagged selenium/standalone-chrome-for-testing:124.0-20260202\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.40.0/chrome-for-testing_125.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.40.0 20260202 selenium false chrome-for-testing true\nTagging images for browser chrome-for-testing, version 4.40.0, build date 20260202, namespace selenium\nSelenium Grid version -> 4.40.0-20260202\nChrome for Testing version -> 125.0.6422.141\nShort Chrome for Testing version -> 125.0\nChromeDriver version -> 125.0.6422.141\nShort ChromeDriver version -> 125.0\nTagged selenium/node-chrome-for-testing:125.0.6422.141-chromedriver-125.0.6422.141-grid-4.40.0-20260202\nTagged selenium/standalone-chrome-for-testing:125.0.6422.141-chromedriver-125.0.6422.141-grid-4.40.0-20260202\nTagged selenium/node-chrome-for-testing:125.0.6422.141-chromedriver-125.0.6422.141-20260202\nTagged selenium/standalone-chrome-for-testing:125.0.6422.141-chromedriver-125.0.6422.141-20260202\nTagged selenium/node-chrome-for-testing:125.0.6422.141-20260202\nTagged selenium/standalone-chrome-for-testing:125.0.6422.141-20260202\nTagged selenium/node-chrome-for-testing:125.0-chromedriver-125.0-grid-4.40.0-20260202\nTagged selenium/standalone-chrome-for-testing:125.0-chromedriver-125.0-grid-4.40.0-20260202\nTagged selenium/node-chrome-for-testing:125.0-chromedriver-125.0-20260202\nTagged selenium/standalone-chrome-for-testing:125.0-chromedriver-125.0-20260202\nTagged selenium/node-chrome-for-testing:125.0-20260202\nTagged selenium/standalone-chrome-for-testing:125.0-20260202\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.40.0/chrome-for-testing_126.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.40.0 20260202 selenium false chrome-for-testing true\nTagging images for browser chrome-for-testing, version 4.40.0, build date 20260202, namespace selenium\nSelenium Grid version -> 4.40.0-20260202\nChrome for Testing version -> 126.0.6478.182\nShort Chrome for Testing version -> 126.0\nChromeDriver version -> 126.0.6478.182\nShort ChromeDriver version -> 126.0\nTagged selenium/node-chrome-for-testing:126.0.6478.182-chromedriver-126.0.6478.182-grid-4.40.0-20260202\nTagged selenium/standalone-chrome-for-testing:126.0.6478.182-chromedriver-126.0.6478.182-grid-4.40.0-20260202\nTagged selenium/node-chrome-for-testing:126.0.6478.182-chromedriver-126.0.6478.182-20260202\nTagged selenium/standalone-chrome-for-testing:126.0.6478.182-chromedriver-126.0.6478.182-20260202\nTagged selenium/node-chrome-for-testing:126.0.6478.182-20260202\nTagged selenium/standalone-chrome-for-testing:126.0.6478.182-20260202\nTagged selenium/node-chrome-for-testing:126.0-chromedriver-126.0-grid-4.40.0-20260202\nTagged selenium/standalone-chrome-for-testing:126.0-chromedriver-126.0-grid-4.40.0-20260202\nTagged selenium/node-chrome-for-testing:126.0-chromedriver-126.0-20260202\nTagged selenium/standalone-chrome-for-testing:126.0-chromedriver-126.0-20260202\nTagged selenium/node-chrome-for-testing:126.0-20260202\nTagged selenium/standalone-chrome-for-testing:126.0-20260202\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.40.0/chrome-for-testing_127.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.40.0 20260202 selenium false chrome-for-testing true\nTagging images for browser chrome-for-testing, version 4.40.0, build date 20260202, namespace selenium\nSelenium Grid version -> 4.40.0-20260202\nChrome for Testing version -> 127.0.6533.119\nShort Chrome for Testing version -> 127.0\nChromeDriver version -> 127.0.6533.119\nShort ChromeDriver version -> 127.0\nTagged selenium/node-chrome-for-testing:127.0.6533.119-chromedriver-127.0.6533.119-grid-4.40.0-20260202\nTagged selenium/standalone-chrome-for-testing:127.0.6533.119-chromedriver-127.0.6533.119-grid-4.40.0-20260202\nTagged selenium/node-chrome-for-testing:127.0.6533.119-chromedriver-127.0.6533.119-20260202\nTagged selenium/standalone-chrome-for-testing:127.0.6533.119-chromedriver-127.0.6533.119-20260202\nTagged selenium/node-chrome-for-testing:127.0.6533.119-20260202\nTagged selenium/standalone-chrome-for-testing:127.0.6533.119-20260202\nTagged selenium/node-chrome-for-testing:127.0-chromedriver-127.0-grid-4.40.0-20260202\nTagged selenium/standalone-chrome-for-testing:127.0-chromedriver-127.0-grid-4.40.0-20260202\nTagged selenium/node-chrome-for-testing:127.0-chromedriver-127.0-20260202\nTagged selenium/standalone-chrome-for-testing:127.0-chromedriver-127.0-20260202\nTagged selenium/node-chrome-for-testing:127.0-20260202\nTagged selenium/standalone-chrome-for-testing:127.0-20260202\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.40.0/chrome-for-testing_128.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.40.0 20260202 selenium false chrome-for-testing true\nTagging images for browser chrome-for-testing, version 4.40.0, build date 20260202, namespace selenium\nSelenium Grid version -> 4.40.0-20260202\nChrome for Testing version -> 128.0.6613.137\nShort Chrome for Testing version -> 128.0\nChromeDriver version -> 128.0.6613.137\nShort ChromeDriver version -> 128.0\nTagged selenium/node-chrome-for-testing:128.0.6613.137-chromedriver-128.0.6613.137-grid-4.40.0-20260202\nTagged selenium/standalone-chrome-for-testing:128.0.6613.137-chromedriver-128.0.6613.137-grid-4.40.0-20260202\nTagged selenium/node-chrome-for-testing:128.0.6613.137-chromedriver-128.0.6613.137-20260202\nTagged selenium/standalone-chrome-for-testing:128.0.6613.137-chromedriver-128.0.6613.137-20260202\nTagged selenium/node-chrome-for-testing:128.0.6613.137-20260202\nTagged selenium/standalone-chrome-for-testing:128.0.6613.137-20260202\nTagged selenium/node-chrome-for-testing:128.0-chromedriver-128.0-grid-4.40.0-20260202\nTagged selenium/standalone-chrome-for-testing:128.0-chromedriver-128.0-grid-4.40.0-20260202\nTagged selenium/node-chrome-for-testing:128.0-chromedriver-128.0-20260202\nTagged selenium/standalone-chrome-for-testing:128.0-chromedriver-128.0-20260202\nTagged selenium/node-chrome-for-testing:128.0-20260202\nTagged selenium/standalone-chrome-for-testing:128.0-20260202\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.40.0/chrome-for-testing_129.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.40.0 20260202 selenium false chrome-for-testing true\nTagging images for browser chrome-for-testing, version 4.40.0, build date 20260202, namespace selenium\nSelenium Grid version -> 4.40.0-20260202\nChrome for Testing version -> 129.0.6668.100\nShort Chrome for Testing version -> 129.0\nChromeDriver version -> 129.0.6668.100\nShort ChromeDriver version -> 129.0\nTagged selenium/node-chrome-for-testing:129.0.6668.100-chromedriver-129.0.6668.100-grid-4.40.0-20260202\nTagged selenium/standalone-chrome-for-testing:129.0.6668.100-chromedriver-129.0.6668.100-grid-4.40.0-20260202\nTagged selenium/node-chrome-for-testing:129.0.6668.100-chromedriver-129.0.6668.100-20260202\nTagged selenium/standalone-chrome-for-testing:129.0.6668.100-chromedriver-129.0.6668.100-20260202\nTagged selenium/node-chrome-for-testing:129.0.6668.100-20260202\nTagged selenium/standalone-chrome-for-testing:129.0.6668.100-20260202\nTagged selenium/node-chrome-for-testing:129.0-chromedriver-129.0-grid-4.40.0-20260202\nTagged selenium/standalone-chrome-for-testing:129.0-chromedriver-129.0-grid-4.40.0-20260202\nTagged selenium/node-chrome-for-testing:129.0-chromedriver-129.0-20260202\nTagged selenium/standalone-chrome-for-testing:129.0-chromedriver-129.0-20260202\nTagged selenium/node-chrome-for-testing:129.0-20260202\nTagged selenium/standalone-chrome-for-testing:129.0-20260202\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.40.0/chrome-for-testing_130.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.40.0 20260202 selenium false chrome-for-testing true\nTagging images for browser chrome-for-testing, version 4.40.0, build date 20260202, namespace selenium\nSelenium Grid version -> 4.40.0-20260202\nChrome for Testing version -> 130.0.6723.116\nShort Chrome for Testing version -> 130.0\nChromeDriver version -> 130.0.6723.116\nShort ChromeDriver version -> 130.0\nTagged selenium/node-chrome-for-testing:130.0.6723.116-chromedriver-130.0.6723.116-grid-4.40.0-20260202\nTagged selenium/standalone-chrome-for-testing:130.0.6723.116-chromedriver-130.0.6723.116-grid-4.40.0-20260202\nTagged selenium/node-chrome-for-testing:130.0.6723.116-chromedriver-130.0.6723.116-20260202\nTagged selenium/standalone-chrome-for-testing:130.0.6723.116-chromedriver-130.0.6723.116-20260202\nTagged selenium/node-chrome-for-testing:130.0.6723.116-20260202\nTagged selenium/standalone-chrome-for-testing:130.0.6723.116-20260202\nTagged selenium/node-chrome-for-testing:130.0-chromedriver-130.0-grid-4.40.0-20260202\nTagged selenium/standalone-chrome-for-testing:130.0-chromedriver-130.0-grid-4.40.0-20260202\nTagged selenium/node-chrome-for-testing:130.0-chromedriver-130.0-20260202\nTagged selenium/standalone-chrome-for-testing:130.0-chromedriver-130.0-20260202\nTagged selenium/node-chrome-for-testing:130.0-20260202\nTagged selenium/standalone-chrome-for-testing:130.0-20260202\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.40.0/chrome-for-testing_131.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.40.0 20260202 selenium false chrome-for-testing true\nTagging images for browser chrome-for-testing, version 4.40.0, build date 20260202, namespace selenium\nSelenium Grid version -> 4.40.0-20260202\nChrome for Testing version -> 131.0.6778.264\nShort Chrome for Testing version -> 131.0\nChromeDriver version -> 131.0.6778.264\nShort ChromeDriver version -> 131.0\nTagged selenium/node-chrome-for-testing:131.0.6778.264-chromedriver-131.0.6778.264-grid-4.40.0-20260202\nTagged selenium/standalone-chrome-for-testing:131.0.6778.264-chromedriver-131.0.6778.264-grid-4.40.0-20260202\nTagged selenium/node-chrome-for-testing:131.0.6778.264-chromedriver-131.0.6778.264-20260202\nTagged selenium/standalone-chrome-for-testing:131.0.6778.264-chromedriver-131.0.6778.264-20260202\nTagged selenium/node-chrome-for-testing:131.0.6778.264-20260202\nTagged selenium/standalone-chrome-for-testing:131.0.6778.264-20260202\nTagged selenium/node-chrome-for-testing:131.0-chromedriver-131.0-grid-4.40.0-20260202\nTagged selenium/standalone-chrome-for-testing:131.0-chromedriver-131.0-grid-4.40.0-20260202\nTagged selenium/node-chrome-for-testing:131.0-chromedriver-131.0-20260202\nTagged selenium/standalone-chrome-for-testing:131.0-chromedriver-131.0-20260202\nTagged selenium/node-chrome-for-testing:131.0-20260202\nTagged selenium/standalone-chrome-for-testing:131.0-20260202\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.40.0/chrome-for-testing_132.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.40.0 20260202 selenium false chrome-for-testing true\nTagging images for browser chrome-for-testing, version 4.40.0, build date 20260202, namespace selenium\nSelenium Grid version -> 4.40.0-20260202\nChrome for Testing version -> 132.0.6834.159\nShort Chrome for Testing version -> 132.0\nChromeDriver version -> 132.0.6834.159\nShort ChromeDriver version -> 132.0\nTagged selenium/node-chrome-for-testing:132.0.6834.159-chromedriver-132.0.6834.159-grid-4.40.0-20260202\nTagged selenium/standalone-chrome-for-testing:132.0.6834.159-chromedriver-132.0.6834.159-grid-4.40.0-20260202\nTagged selenium/node-chrome-for-testing:132.0.6834.159-chromedriver-132.0.6834.159-20260202\nTagged selenium/standalone-chrome-for-testing:132.0.6834.159-chromedriver-132.0.6834.159-20260202\nTagged selenium/node-chrome-for-testing:132.0.6834.159-20260202\nTagged selenium/standalone-chrome-for-testing:132.0.6834.159-20260202\nTagged selenium/node-chrome-for-testing:132.0-chromedriver-132.0-grid-4.40.0-20260202\nTagged selenium/standalone-chrome-for-testing:132.0-chromedriver-132.0-grid-4.40.0-20260202\nTagged selenium/node-chrome-for-testing:132.0-chromedriver-132.0-20260202\nTagged selenium/standalone-chrome-for-testing:132.0-chromedriver-132.0-20260202\nTagged selenium/node-chrome-for-testing:132.0-20260202\nTagged selenium/standalone-chrome-for-testing:132.0-20260202\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.40.0/chrome-for-testing_133.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.40.0 20260202 selenium false chrome-for-testing true\nTagging images for browser chrome-for-testing, version 4.40.0, build date 20260202, namespace selenium\nSelenium Grid version -> 4.40.0-20260202\nChrome for Testing version -> 133.0.6943.141\nShort Chrome for Testing version -> 133.0\nChromeDriver version -> 133.0.6943.141\nShort ChromeDriver version -> 133.0\nTagged selenium/node-chrome-for-testing:133.0.6943.141-chromedriver-133.0.6943.141-grid-4.40.0-20260202\nTagged selenium/standalone-chrome-for-testing:133.0.6943.141-chromedriver-133.0.6943.141-grid-4.40.0-20260202\nTagged selenium/node-chrome-for-testing:133.0.6943.141-chromedriver-133.0.6943.141-20260202\nTagged selenium/standalone-chrome-for-testing:133.0.6943.141-chromedriver-133.0.6943.141-20260202\nTagged selenium/node-chrome-for-testing:133.0.6943.141-20260202\nTagged selenium/standalone-chrome-for-testing:133.0.6943.141-20260202\nTagged selenium/node-chrome-for-testing:133.0-chromedriver-133.0-grid-4.40.0-20260202\nTagged selenium/standalone-chrome-for-testing:133.0-chromedriver-133.0-grid-4.40.0-20260202\nTagged selenium/node-chrome-for-testing:133.0-chromedriver-133.0-20260202\nTagged selenium/standalone-chrome-for-testing:133.0-chromedriver-133.0-20260202\nTagged selenium/node-chrome-for-testing:133.0-20260202\nTagged selenium/standalone-chrome-for-testing:133.0-20260202\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.40.0/chrome-for-testing_134.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.40.0 20260202 selenium false chrome-for-testing true\nTagging images for browser chrome-for-testing, version 4.40.0, build date 20260202, namespace selenium\nSelenium Grid version -> 4.40.0-20260202\nChrome for Testing version -> 134.0.6998.165\nShort Chrome for Testing version -> 134.0\nChromeDriver version -> 134.0.6998.165\nShort ChromeDriver version -> 134.0\nTagged selenium/node-chrome-for-testing:134.0.6998.165-chromedriver-134.0.6998.165-grid-4.40.0-20260202\nTagged selenium/standalone-chrome-for-testing:134.0.6998.165-chromedriver-134.0.6998.165-grid-4.40.0-20260202\nTagged selenium/node-chrome-for-testing:134.0.6998.165-chromedriver-134.0.6998.165-20260202\nTagged selenium/standalone-chrome-for-testing:134.0.6998.165-chromedriver-134.0.6998.165-20260202\nTagged selenium/node-chrome-for-testing:134.0.6998.165-20260202\nTagged selenium/standalone-chrome-for-testing:134.0.6998.165-20260202\nTagged selenium/node-chrome-for-testing:134.0-chromedriver-134.0-grid-4.40.0-20260202\nTagged selenium/standalone-chrome-for-testing:134.0-chromedriver-134.0-grid-4.40.0-20260202\nTagged selenium/node-chrome-for-testing:134.0-chromedriver-134.0-20260202\nTagged selenium/standalone-chrome-for-testing:134.0-chromedriver-134.0-20260202\nTagged selenium/node-chrome-for-testing:134.0-20260202\nTagged selenium/standalone-chrome-for-testing:134.0-20260202\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.40.0/chrome-for-testing_135.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.40.0 20260202 selenium false chrome-for-testing true\nTagging images for browser chrome-for-testing, version 4.40.0, build date 20260202, namespace selenium\nSelenium Grid version -> 4.40.0-20260202\nChrome for Testing version -> 135.0.7049.114\nShort Chrome for Testing version -> 135.0\nChromeDriver version -> 135.0.7049.114\nShort ChromeDriver version -> 135.0\nTagged selenium/node-chrome-for-testing:135.0.7049.114-chromedriver-135.0.7049.114-grid-4.40.0-20260202\nTagged selenium/standalone-chrome-for-testing:135.0.7049.114-chromedriver-135.0.7049.114-grid-4.40.0-20260202\nTagged selenium/node-chrome-for-testing:135.0.7049.114-chromedriver-135.0.7049.114-20260202\nTagged selenium/standalone-chrome-for-testing:135.0.7049.114-chromedriver-135.0.7049.114-20260202\nTagged selenium/node-chrome-for-testing:135.0.7049.114-20260202\nTagged selenium/standalone-chrome-for-testing:135.0.7049.114-20260202\nTagged selenium/node-chrome-for-testing:135.0-chromedriver-135.0-grid-4.40.0-20260202\nTagged selenium/standalone-chrome-for-testing:135.0-chromedriver-135.0-grid-4.40.0-20260202\nTagged selenium/node-chrome-for-testing:135.0-chromedriver-135.0-20260202\nTagged selenium/standalone-chrome-for-testing:135.0-chromedriver-135.0-20260202\nTagged selenium/node-chrome-for-testing:135.0-20260202\nTagged selenium/standalone-chrome-for-testing:135.0-20260202\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.40.0/chrome-for-testing_136.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.40.0 20260202 selenium false chrome-for-testing true\nTagging images for browser chrome-for-testing, version 4.40.0, build date 20260202, namespace selenium\nSelenium Grid version -> 4.40.0-20260202\nChrome for Testing version -> 136.0.7103.113\nShort Chrome for Testing version -> 136.0\nChromeDriver version -> 136.0.7103.113\nShort ChromeDriver version -> 136.0\nTagged selenium/node-chrome-for-testing:136.0.7103.113-chromedriver-136.0.7103.113-grid-4.40.0-20260202\nTagged selenium/standalone-chrome-for-testing:136.0.7103.113-chromedriver-136.0.7103.113-grid-4.40.0-20260202\nTagged selenium/node-chrome-for-testing:136.0.7103.113-chromedriver-136.0.7103.113-20260202\nTagged selenium/standalone-chrome-for-testing:136.0.7103.113-chromedriver-136.0.7103.113-20260202\nTagged selenium/node-chrome-for-testing:136.0.7103.113-20260202\nTagged selenium/standalone-chrome-for-testing:136.0.7103.113-20260202\nTagged selenium/node-chrome-for-testing:136.0-chromedriver-136.0-grid-4.40.0-20260202\nTagged selenium/standalone-chrome-for-testing:136.0-chromedriver-136.0-grid-4.40.0-20260202\nTagged selenium/node-chrome-for-testing:136.0-chromedriver-136.0-20260202\nTagged selenium/standalone-chrome-for-testing:136.0-chromedriver-136.0-20260202\nTagged selenium/node-chrome-for-testing:136.0-20260202\nTagged selenium/standalone-chrome-for-testing:136.0-20260202\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.40.0/chrome-for-testing_137.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.40.0 20260202 selenium false chrome-for-testing true\nTagging images for browser chrome-for-testing, version 4.40.0, build date 20260202, namespace selenium\nSelenium Grid version -> 4.40.0-20260202\nChrome for Testing version -> 137.0.7151.119\nShort Chrome for Testing version -> 137.0\nChromeDriver version -> 137.0.7151.119\nShort ChromeDriver version -> 137.0\nTagged selenium/node-chrome-for-testing:137.0.7151.119-chromedriver-137.0.7151.119-grid-4.40.0-20260202\nTagged selenium/standalone-chrome-for-testing:137.0.7151.119-chromedriver-137.0.7151.119-grid-4.40.0-20260202\nTagged selenium/node-chrome-for-testing:137.0.7151.119-chromedriver-137.0.7151.119-20260202\nTagged selenium/standalone-chrome-for-testing:137.0.7151.119-chromedriver-137.0.7151.119-20260202\nTagged selenium/node-chrome-for-testing:137.0.7151.119-20260202\nTagged selenium/standalone-chrome-for-testing:137.0.7151.119-20260202\nTagged selenium/node-chrome-for-testing:137.0-chromedriver-137.0-grid-4.40.0-20260202\nTagged selenium/standalone-chrome-for-testing:137.0-chromedriver-137.0-grid-4.40.0-20260202\nTagged selenium/node-chrome-for-testing:137.0-chromedriver-137.0-20260202\nTagged selenium/standalone-chrome-for-testing:137.0-chromedriver-137.0-20260202\nTagged selenium/node-chrome-for-testing:137.0-20260202\nTagged selenium/standalone-chrome-for-testing:137.0-20260202\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.40.0/chrome-for-testing_138.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.40.0 20260202 selenium false chrome-for-testing true\nTagging images for browser chrome-for-testing, version 4.40.0, build date 20260202, namespace selenium\nSelenium Grid version -> 4.40.0-20260202\nChrome for Testing version -> 138.0.7204.183\nShort Chrome for Testing version -> 138.0\nChromeDriver version -> 138.0.7204.183\nShort ChromeDriver version -> 138.0\nTagged selenium/node-chrome-for-testing:138.0.7204.183-chromedriver-138.0.7204.183-grid-4.40.0-20260202\nTagged selenium/standalone-chrome-for-testing:138.0.7204.183-chromedriver-138.0.7204.183-grid-4.40.0-20260202\nTagged selenium/node-chrome-for-testing:138.0.7204.183-chromedriver-138.0.7204.183-20260202\nTagged selenium/standalone-chrome-for-testing:138.0.7204.183-chromedriver-138.0.7204.183-20260202\nTagged selenium/node-chrome-for-testing:138.0.7204.183-20260202\nTagged selenium/standalone-chrome-for-testing:138.0.7204.183-20260202\nTagged selenium/node-chrome-for-testing:138.0-chromedriver-138.0-grid-4.40.0-20260202\nTagged selenium/standalone-chrome-for-testing:138.0-chromedriver-138.0-grid-4.40.0-20260202\nTagged selenium/node-chrome-for-testing:138.0-chromedriver-138.0-20260202\nTagged selenium/standalone-chrome-for-testing:138.0-chromedriver-138.0-20260202\nTagged selenium/node-chrome-for-testing:138.0-20260202\nTagged selenium/standalone-chrome-for-testing:138.0-20260202\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.40.0/chrome-for-testing_139.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.40.0 20260202 selenium false chrome-for-testing true\nTagging images for browser chrome-for-testing, version 4.40.0, build date 20260202, namespace selenium\nSelenium Grid version -> 4.40.0-20260202\nChrome for Testing version -> 139.0.7258.154\nShort Chrome for Testing version -> 139.0\nChromeDriver version -> 139.0.7258.154\nShort ChromeDriver version -> 139.0\nTagged selenium/node-chrome-for-testing:139.0.7258.154-chromedriver-139.0.7258.154-grid-4.40.0-20260202\nTagged selenium/standalone-chrome-for-testing:139.0.7258.154-chromedriver-139.0.7258.154-grid-4.40.0-20260202\nTagged selenium/node-chrome-for-testing:139.0.7258.154-chromedriver-139.0.7258.154-20260202\nTagged selenium/standalone-chrome-for-testing:139.0.7258.154-chromedriver-139.0.7258.154-20260202\nTagged selenium/node-chrome-for-testing:139.0.7258.154-20260202\nTagged selenium/standalone-chrome-for-testing:139.0.7258.154-20260202\nTagged selenium/node-chrome-for-testing:139.0-chromedriver-139.0-grid-4.40.0-20260202\nTagged selenium/standalone-chrome-for-testing:139.0-chromedriver-139.0-grid-4.40.0-20260202\nTagged selenium/node-chrome-for-testing:139.0-chromedriver-139.0-20260202\nTagged selenium/standalone-chrome-for-testing:139.0-chromedriver-139.0-20260202\nTagged selenium/node-chrome-for-testing:139.0-20260202\nTagged selenium/standalone-chrome-for-testing:139.0-20260202\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.40.0/chrome-for-testing_140.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.40.0 20260202 selenium false chrome-for-testing true\nTagging images for browser chrome-for-testing, version 4.40.0, build date 20260202, namespace selenium\nSelenium Grid version -> 4.40.0-20260202\nChrome for Testing version -> 140.0.7339.207\nShort Chrome for Testing version -> 140.0\nChromeDriver version -> 140.0.7339.207\nShort ChromeDriver version -> 140.0\nTagged selenium/node-chrome-for-testing:140.0.7339.207-chromedriver-140.0.7339.207-grid-4.40.0-20260202\nTagged selenium/standalone-chrome-for-testing:140.0.7339.207-chromedriver-140.0.7339.207-grid-4.40.0-20260202\nTagged selenium/node-chrome-for-testing:140.0.7339.207-chromedriver-140.0.7339.207-20260202\nTagged selenium/standalone-chrome-for-testing:140.0.7339.207-chromedriver-140.0.7339.207-20260202\nTagged selenium/node-chrome-for-testing:140.0.7339.207-20260202\nTagged selenium/standalone-chrome-for-testing:140.0.7339.207-20260202\nTagged selenium/node-chrome-for-testing:140.0-chromedriver-140.0-grid-4.40.0-20260202\nTagged selenium/standalone-chrome-for-testing:140.0-chromedriver-140.0-grid-4.40.0-20260202\nTagged selenium/node-chrome-for-testing:140.0-chromedriver-140.0-20260202\nTagged selenium/standalone-chrome-for-testing:140.0-chromedriver-140.0-20260202\nTagged selenium/node-chrome-for-testing:140.0-20260202\nTagged selenium/standalone-chrome-for-testing:140.0-20260202\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.40.0/chrome-for-testing_141.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.40.0 20260202 selenium false chrome-for-testing true\nTagging images for browser chrome-for-testing, version 4.40.0, build date 20260202, namespace selenium\nSelenium Grid version -> 4.40.0-20260202\nChrome for Testing version -> 141.0.7390.122\nShort Chrome for Testing version -> 141.0\nChromeDriver version -> 141.0.7390.122\nShort ChromeDriver version -> 141.0\nTagged selenium/node-chrome-for-testing:141.0.7390.122-chromedriver-141.0.7390.122-grid-4.40.0-20260202\nTagged selenium/standalone-chrome-for-testing:141.0.7390.122-chromedriver-141.0.7390.122-grid-4.40.0-20260202\nTagged selenium/node-chrome-for-testing:141.0.7390.122-chromedriver-141.0.7390.122-20260202\nTagged selenium/standalone-chrome-for-testing:141.0.7390.122-chromedriver-141.0.7390.122-20260202\nTagged selenium/node-chrome-for-testing:141.0.7390.122-20260202\nTagged selenium/standalone-chrome-for-testing:141.0.7390.122-20260202\nTagged selenium/node-chrome-for-testing:141.0-chromedriver-141.0-grid-4.40.0-20260202\nTagged selenium/standalone-chrome-for-testing:141.0-chromedriver-141.0-grid-4.40.0-20260202\nTagged selenium/node-chrome-for-testing:141.0-chromedriver-141.0-20260202\nTagged selenium/standalone-chrome-for-testing:141.0-chromedriver-141.0-20260202\nTagged selenium/node-chrome-for-testing:141.0-20260202\nTagged selenium/standalone-chrome-for-testing:141.0-20260202\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.40.0/chrome-for-testing_142.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.40.0 20260202 selenium false chrome-for-testing true\nTagging images for browser chrome-for-testing, version 4.40.0, build date 20260202, namespace selenium\nSelenium Grid version -> 4.40.0-20260202\nChrome for Testing version -> 142.0.7444.175\nShort Chrome for Testing version -> 142.0\nChromeDriver version -> 142.0.7444.175\nShort ChromeDriver version -> 142.0\nTagged selenium/node-chrome-for-testing:142.0.7444.175-chromedriver-142.0.7444.175-grid-4.40.0-20260202\nTagged selenium/standalone-chrome-for-testing:142.0.7444.175-chromedriver-142.0.7444.175-grid-4.40.0-20260202\nTagged selenium/node-chrome-for-testing:142.0.7444.175-chromedriver-142.0.7444.175-20260202\nTagged selenium/standalone-chrome-for-testing:142.0.7444.175-chromedriver-142.0.7444.175-20260202\nTagged selenium/node-chrome-for-testing:142.0.7444.175-20260202\nTagged selenium/standalone-chrome-for-testing:142.0.7444.175-20260202\nTagged selenium/node-chrome-for-testing:142.0-chromedriver-142.0-grid-4.40.0-20260202\nTagged selenium/standalone-chrome-for-testing:142.0-chromedriver-142.0-grid-4.40.0-20260202\nTagged selenium/node-chrome-for-testing:142.0-chromedriver-142.0-20260202\nTagged selenium/standalone-chrome-for-testing:142.0-chromedriver-142.0-20260202\nTagged selenium/node-chrome-for-testing:142.0-20260202\nTagged selenium/standalone-chrome-for-testing:142.0-20260202\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.40.0/chrome-for-testing_143.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.40.0 20260202 selenium false chrome-for-testing true\nTagging images for browser chrome-for-testing, version 4.40.0, build date 20260202, namespace selenium\nSelenium Grid version -> 4.40.0-20260202\nChrome for Testing version -> 143.0.7499.192\nShort Chrome for Testing version -> 143.0\nChromeDriver version -> 143.0.7499.192\nShort ChromeDriver version -> 143.0\nTagged selenium/node-chrome-for-testing:143.0.7499.192-chromedriver-143.0.7499.192-grid-4.40.0-20260202\nTagged selenium/standalone-chrome-for-testing:143.0.7499.192-chromedriver-143.0.7499.192-grid-4.40.0-20260202\nTagged selenium/node-chrome-for-testing:143.0.7499.192-chromedriver-143.0.7499.192-20260202\nTagged selenium/standalone-chrome-for-testing:143.0.7499.192-chromedriver-143.0.7499.192-20260202\nTagged selenium/node-chrome-for-testing:143.0.7499.192-20260202\nTagged selenium/standalone-chrome-for-testing:143.0.7499.192-20260202\nTagged selenium/node-chrome-for-testing:143.0-chromedriver-143.0-grid-4.40.0-20260202\nTagged selenium/standalone-chrome-for-testing:143.0-chromedriver-143.0-grid-4.40.0-20260202\nTagged selenium/node-chrome-for-testing:143.0-chromedriver-143.0-20260202\nTagged selenium/standalone-chrome-for-testing:143.0-chromedriver-143.0-20260202\nTagged selenium/node-chrome-for-testing:143.0-20260202\nTagged selenium/standalone-chrome-for-testing:143.0-20260202\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.40.0/chrome-for-testing_144.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.40.0 20260202 selenium false chrome-for-testing true\nTagging images for browser chrome-for-testing, version 4.40.0, build date 20260202, namespace selenium\nSelenium Grid version -> 4.40.0-20260202\nChrome for Testing version -> 144.0.7559.109\nShort Chrome for Testing version -> 144.0\nChromeDriver version -> 144.0.7559.109\nShort ChromeDriver version -> 144.0\nTagged selenium/node-chrome-for-testing:144.0.7559.109-chromedriver-144.0.7559.109-grid-4.40.0-20260202\nTagged selenium/standalone-chrome-for-testing:144.0.7559.109-chromedriver-144.0.7559.109-grid-4.40.0-20260202\nTagged selenium/node-chrome-for-testing:144.0.7559.109-chromedriver-144.0.7559.109-20260202\nTagged selenium/standalone-chrome-for-testing:144.0.7559.109-chromedriver-144.0.7559.109-20260202\nTagged selenium/node-chrome-for-testing:144.0.7559.109-20260202\nTagged selenium/standalone-chrome-for-testing:144.0.7559.109-20260202\nTagged selenium/node-chrome-for-testing:144.0-chromedriver-144.0-grid-4.40.0-20260202\nTagged selenium/standalone-chrome-for-testing:144.0-chromedriver-144.0-grid-4.40.0-20260202\nTagged selenium/node-chrome-for-testing:144.0-chromedriver-144.0-20260202\nTagged selenium/standalone-chrome-for-testing:144.0-chromedriver-144.0-20260202\nTagged selenium/node-chrome-for-testing:144.0-20260202\nTagged selenium/standalone-chrome-for-testing:144.0-20260202\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.40.0/chrome-for-testing_145.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.40.0 20260202 selenium false chrome-for-testing true\nTagging images for browser chrome-for-testing, version 4.40.0, build date 20260202, namespace selenium\nSelenium Grid version -> 4.40.0-20260202\nChrome for Testing version -> 145.0.7632.26\nShort Chrome for Testing version -> 145.0\nChromeDriver version -> 145.0.7632.26\nShort ChromeDriver version -> 145.0\nTagged selenium/node-chrome-for-testing:145.0.7632.26-chromedriver-145.0.7632.26-grid-4.40.0-20260202\nTagged selenium/standalone-chrome-for-testing:145.0.7632.26-chromedriver-145.0.7632.26-grid-4.40.0-20260202\nTagged selenium/node-chrome-for-testing:145.0.7632.26-chromedriver-145.0.7632.26-20260202\nTagged selenium/standalone-chrome-for-testing:145.0.7632.26-chromedriver-145.0.7632.26-20260202\nTagged selenium/node-chrome-for-testing:145.0.7632.26-20260202\nTagged selenium/standalone-chrome-for-testing:145.0.7632.26-20260202\nTagged selenium/node-chrome-for-testing:145.0-chromedriver-145.0-grid-4.40.0-20260202\nTagged selenium/standalone-chrome-for-testing:145.0-chromedriver-145.0-grid-4.40.0-20260202\nTagged selenium/node-chrome-for-testing:145.0-chromedriver-145.0-20260202\nTagged selenium/standalone-chrome-for-testing:145.0-chromedriver-145.0-20260202\nTagged selenium/node-chrome-for-testing:145.0-20260202\nTagged selenium/standalone-chrome-for-testing:145.0-20260202\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.40.0/chrome_100.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.40.0 20260202 selenium false chrome true\nTagging images for browser chrome, version 4.40.0, build date 20260202, namespace selenium\nSelenium Grid version -> 4.40.0-20260202\nChrome version -> 100.0.4896.127\nShort Chrome version -> 100.0\nChromeDriver version -> 100.0.4896.60\nShort ChromeDriver version -> 100.0\nTagged selenium/node-chrome:100.0.4896.127-chromedriver-100.0.4896.60-grid-4.40.0-20260202\nTagged selenium/standalone-chrome:100.0.4896.127-chromedriver-100.0.4896.60-grid-4.40.0-20260202\nTagged selenium/node-chrome:100.0.4896.127-chromedriver-100.0.4896.60-20260202\nTagged selenium/standalone-chrome:100.0.4896.127-chromedriver-100.0.4896.60-20260202\nTagged selenium/node-chrome:100.0.4896.127-20260202\nTagged selenium/standalone-chrome:100.0.4896.127-20260202\nTagged selenium/node-chrome:100.0-chromedriver-100.0-grid-4.40.0-20260202\nTagged selenium/standalone-chrome:100.0-chromedriver-100.0-grid-4.40.0-20260202\nTagged selenium/node-chrome:100.0-chromedriver-100.0-20260202\nTagged selenium/standalone-chrome:100.0-chromedriver-100.0-20260202\nTagged selenium/node-chrome:100.0-20260202\nTagged selenium/standalone-chrome:100.0-20260202\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.40.0/chrome_101.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.40.0 20260202 selenium false chrome true\nTagging images for browser chrome, version 4.40.0, build date 20260202, namespace selenium\nSelenium Grid version -> 4.40.0-20260202\nChrome version -> 101.0.4951.64\nShort Chrome version -> 101.0\nChromeDriver version -> 101.0.4951.41\nShort ChromeDriver version -> 101.0\nTagged selenium/node-chrome:101.0.4951.64-chromedriver-101.0.4951.41-grid-4.40.0-20260202\nTagged selenium/standalone-chrome:101.0.4951.64-chromedriver-101.0.4951.41-grid-4.40.0-20260202\nTagged selenium/node-chrome:101.0.4951.64-chromedriver-101.0.4951.41-20260202\nTagged selenium/standalone-chrome:101.0.4951.64-chromedriver-101.0.4951.41-20260202\nTagged selenium/node-chrome:101.0.4951.64-20260202\nTagged selenium/standalone-chrome:101.0.4951.64-20260202\nTagged selenium/node-chrome:101.0-chromedriver-101.0-grid-4.40.0-20260202\nTagged selenium/standalone-chrome:101.0-chromedriver-101.0-grid-4.40.0-20260202\nTagged selenium/node-chrome:101.0-chromedriver-101.0-20260202\nTagged selenium/standalone-chrome:101.0-chromedriver-101.0-20260202\nTagged selenium/node-chrome:101.0-20260202\nTagged selenium/standalone-chrome:101.0-20260202\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.40.0/chrome_102.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.40.0 20260202 selenium false chrome true\nTagging images for browser chrome, version 4.40.0, build date 20260202, namespace selenium\nSelenium Grid version -> 4.40.0-20260202\nChrome version -> 102.0.5005.115\nShort Chrome version -> 102.0\nChromeDriver version -> 102.0.5005.61\nShort ChromeDriver version -> 102.0\nTagged selenium/node-chrome:102.0.5005.115-chromedriver-102.0.5005.61-grid-4.40.0-20260202\nTagged selenium/standalone-chrome:102.0.5005.115-chromedriver-102.0.5005.61-grid-4.40.0-20260202\nTagged selenium/node-chrome:102.0.5005.115-chromedriver-102.0.5005.61-20260202\nTagged selenium/standalone-chrome:102.0.5005.115-chromedriver-102.0.5005.61-20260202\nTagged selenium/node-chrome:102.0.5005.115-20260202\nTagged selenium/standalone-chrome:102.0.5005.115-20260202\nTagged selenium/node-chrome:102.0-chromedriver-102.0-grid-4.40.0-20260202\nTagged selenium/standalone-chrome:102.0-chromedriver-102.0-grid-4.40.0-20260202\nTagged selenium/node-chrome:102.0-chromedriver-102.0-20260202\nTagged selenium/standalone-chrome:102.0-chromedriver-102.0-20260202\nTagged selenium/node-chrome:102.0-20260202\nTagged selenium/standalone-chrome:102.0-20260202\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.40.0/chrome_103.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.40.0 20260202 selenium false chrome true\nTagging images for browser chrome, version 4.40.0, build date 20260202, namespace selenium\nSelenium Grid version -> 4.40.0-20260202\nChrome version -> 103.0.5060.134\nShort Chrome version -> 103.0\nChromeDriver version -> 103.0.5060.134\nShort ChromeDriver version -> 103.0\nTagged selenium/node-chrome:103.0.5060.134-chromedriver-103.0.5060.134-grid-4.40.0-20260202\nTagged selenium/standalone-chrome:103.0.5060.134-chromedriver-103.0.5060.134-grid-4.40.0-20260202\nTagged selenium/node-chrome:103.0.5060.134-chromedriver-103.0.5060.134-20260202\nTagged selenium/standalone-chrome:103.0.5060.134-chromedriver-103.0.5060.134-20260202\nTagged selenium/node-chrome:103.0.5060.134-20260202\nTagged selenium/standalone-chrome:103.0.5060.134-20260202\nTagged selenium/node-chrome:103.0-chromedriver-103.0-grid-4.40.0-20260202\nTagged selenium/standalone-chrome:103.0-chromedriver-103.0-grid-4.40.0-20260202\nTagged selenium/node-chrome:103.0-chromedriver-103.0-20260202\nTagged selenium/standalone-chrome:103.0-chromedriver-103.0-20260202\nTagged selenium/node-chrome:103.0-20260202\nTagged selenium/standalone-chrome:103.0-20260202\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.40.0/chrome_104.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.40.0 20260202 selenium false chrome true\nTagging images for browser chrome, version 4.40.0, build date 20260202, namespace selenium\nSelenium Grid version -> 4.40.0-20260202\nChrome version -> 104.0.5112.101\nShort Chrome version -> 104.0\nChromeDriver version -> 104.0.5112.79\nShort ChromeDriver version -> 104.0\nTagged selenium/node-chrome:104.0.5112.101-chromedriver-104.0.5112.79-grid-4.40.0-20260202\nTagged selenium/standalone-chrome:104.0.5112.101-chromedriver-104.0.5112.79-grid-4.40.0-20260202\nTagged selenium/node-chrome:104.0.5112.101-chromedriver-104.0.5112.79-20260202\nTagged selenium/standalone-chrome:104.0.5112.101-chromedriver-104.0.5112.79-20260202\nTagged selenium/node-chrome:104.0.5112.101-20260202\nTagged selenium/standalone-chrome:104.0.5112.101-20260202\nTagged selenium/node-chrome:104.0-chromedriver-104.0-grid-4.40.0-20260202\nTagged selenium/standalone-chrome:104.0-chromedriver-104.0-grid-4.40.0-20260202\nTagged selenium/node-chrome:104.0-chromedriver-104.0-20260202\nTagged selenium/standalone-chrome:104.0-chromedriver-104.0-20260202\nTagged selenium/node-chrome:104.0-20260202\nTagged selenium/standalone-chrome:104.0-20260202\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.40.0/chrome_105.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.40.0 20260202 selenium false chrome true\nTagging images for browser chrome, version 4.40.0, build date 20260202, namespace selenium\nSelenium Grid version -> 4.40.0-20260202\nChrome version -> 105.0.5195.125\nShort Chrome version -> 105.0\nChromeDriver version -> 105.0.5195.52\nShort ChromeDriver version -> 105.0\nTagged selenium/node-chrome:105.0.5195.125-chromedriver-105.0.5195.52-grid-4.40.0-20260202\nTagged selenium/standalone-chrome:105.0.5195.125-chromedriver-105.0.5195.52-grid-4.40.0-20260202\nTagged selenium/node-chrome:105.0.5195.125-chromedriver-105.0.5195.52-20260202\nTagged selenium/standalone-chrome:105.0.5195.125-chromedriver-105.0.5195.52-20260202\nTagged selenium/node-chrome:105.0.5195.125-20260202\nTagged selenium/standalone-chrome:105.0.5195.125-20260202\nTagged selenium/node-chrome:105.0-chromedriver-105.0-grid-4.40.0-20260202\nTagged selenium/standalone-chrome:105.0-chromedriver-105.0-grid-4.40.0-20260202\nTagged selenium/node-chrome:105.0-chromedriver-105.0-20260202\nTagged selenium/standalone-chrome:105.0-chromedriver-105.0-20260202\nTagged selenium/node-chrome:105.0-20260202\nTagged selenium/standalone-chrome:105.0-20260202\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.40.0/chrome_106.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.40.0 20260202 selenium false chrome true\nTagging images for browser chrome, version 4.40.0, build date 20260202, namespace selenium\nSelenium Grid version -> 4.40.0-20260202\nChrome version -> 106.0.5249.119\nShort Chrome version -> 106.0\nChromeDriver version -> 106.0.5249.61\nShort ChromeDriver version -> 106.0\nTagged selenium/node-chrome:106.0.5249.119-chromedriver-106.0.5249.61-grid-4.40.0-20260202\nTagged selenium/standalone-chrome:106.0.5249.119-chromedriver-106.0.5249.61-grid-4.40.0-20260202\nTagged selenium/node-chrome:106.0.5249.119-chromedriver-106.0.5249.61-20260202\nTagged selenium/standalone-chrome:106.0.5249.119-chromedriver-106.0.5249.61-20260202\nTagged selenium/node-chrome:106.0.5249.119-20260202\nTagged selenium/standalone-chrome:106.0.5249.119-20260202\nTagged selenium/node-chrome:106.0-chromedriver-106.0-grid-4.40.0-20260202\nTagged selenium/standalone-chrome:106.0-chromedriver-106.0-grid-4.40.0-20260202\nTagged selenium/node-chrome:106.0-chromedriver-106.0-20260202\nTagged selenium/standalone-chrome:106.0-chromedriver-106.0-20260202\nTagged selenium/node-chrome:106.0-20260202\nTagged selenium/standalone-chrome:106.0-20260202\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.40.0/chrome_107.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.40.0 20260202 selenium false chrome true\nTagging images for browser chrome, version 4.40.0, build date 20260202, namespace selenium\nSelenium Grid version -> 4.40.0-20260202\nChrome version -> 107.0.5304.121\nShort Chrome version -> 107.0\nChromeDriver version -> 107.0.5304.62\nShort ChromeDriver version -> 107.0\nTagged selenium/node-chrome:107.0.5304.121-chromedriver-107.0.5304.62-grid-4.40.0-20260202\nTagged selenium/standalone-chrome:107.0.5304.121-chromedriver-107.0.5304.62-grid-4.40.0-20260202\nTagged selenium/node-chrome:107.0.5304.121-chromedriver-107.0.5304.62-20260202\nTagged selenium/standalone-chrome:107.0.5304.121-chromedriver-107.0.5304.62-20260202\nTagged selenium/node-chrome:107.0.5304.121-20260202\nTagged selenium/standalone-chrome:107.0.5304.121-20260202\nTagged selenium/node-chrome:107.0-chromedriver-107.0-grid-4.40.0-20260202\nTagged selenium/standalone-chrome:107.0-chromedriver-107.0-grid-4.40.0-20260202\nTagged selenium/node-chrome:107.0-chromedriver-107.0-20260202\nTagged selenium/standalone-chrome:107.0-chromedriver-107.0-20260202\nTagged selenium/node-chrome:107.0-20260202\nTagged selenium/standalone-chrome:107.0-20260202\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.40.0/chrome_108.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.40.0 20260202 selenium false chrome true\nTagging images for browser chrome, version 4.40.0, build date 20260202, namespace selenium\nSelenium Grid version -> 4.40.0-20260202\nChrome version -> 108.0.5359.124\nShort Chrome version -> 108.0\nChromeDriver version -> 108.0.5359.71\nShort ChromeDriver version -> 108.0\nTagged selenium/node-chrome:108.0.5359.124-chromedriver-108.0.5359.71-grid-4.40.0-20260202\nTagged selenium/standalone-chrome:108.0.5359.124-chromedriver-108.0.5359.71-grid-4.40.0-20260202\nTagged selenium/node-chrome:108.0.5359.124-chromedriver-108.0.5359.71-20260202\nTagged selenium/standalone-chrome:108.0.5359.124-chromedriver-108.0.5359.71-20260202\nTagged selenium/node-chrome:108.0.5359.124-20260202\nTagged selenium/standalone-chrome:108.0.5359.124-20260202\nTagged selenium/node-chrome:108.0-chromedriver-108.0-grid-4.40.0-20260202\nTagged selenium/standalone-chrome:108.0-chromedriver-108.0-grid-4.40.0-20260202\nTagged selenium/node-chrome:108.0-chromedriver-108.0-20260202\nTagged selenium/standalone-chrome:108.0-chromedriver-108.0-20260202\nTagged selenium/node-chrome:108.0-20260202\nTagged selenium/standalone-chrome:108.0-20260202\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.40.0/chrome_109.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.40.0 20260202 selenium false chrome true\nTagging images for browser chrome, version 4.40.0, build date 20260202, namespace selenium\nSelenium Grid version -> 4.40.0-20260202\nChrome version -> 109.0.5414.119\nShort Chrome version -> 109.0\nChromeDriver version -> 109.0.5414.74\nShort ChromeDriver version -> 109.0\nTagged selenium/node-chrome:109.0.5414.119-chromedriver-109.0.5414.74-grid-4.40.0-20260202\nTagged selenium/standalone-chrome:109.0.5414.119-chromedriver-109.0.5414.74-grid-4.40.0-20260202\nTagged selenium/node-chrome:109.0.5414.119-chromedriver-109.0.5414.74-20260202\nTagged selenium/standalone-chrome:109.0.5414.119-chromedriver-109.0.5414.74-20260202\nTagged selenium/node-chrome:109.0.5414.119-20260202\nTagged selenium/standalone-chrome:109.0.5414.119-20260202\nTagged selenium/node-chrome:109.0-chromedriver-109.0-grid-4.40.0-20260202\nTagged selenium/standalone-chrome:109.0-chromedriver-109.0-grid-4.40.0-20260202\nTagged selenium/node-chrome:109.0-chromedriver-109.0-20260202\nTagged selenium/standalone-chrome:109.0-chromedriver-109.0-20260202\nTagged selenium/node-chrome:109.0-20260202\nTagged selenium/standalone-chrome:109.0-20260202\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.40.0/chrome_110.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.40.0 20260202 selenium false chrome true\nTagging images for browser chrome, version 4.40.0, build date 20260202, namespace selenium\nSelenium Grid version -> 4.40.0-20260202\nChrome version -> 110.0.5481.177\nShort Chrome version -> 110.0\nChromeDriver version -> 110.0.5481.77\nShort ChromeDriver version -> 110.0\nTagged selenium/node-chrome:110.0.5481.177-chromedriver-110.0.5481.77-grid-4.40.0-20260202\nTagged selenium/standalone-chrome:110.0.5481.177-chromedriver-110.0.5481.77-grid-4.40.0-20260202\nTagged selenium/node-chrome:110.0.5481.177-chromedriver-110.0.5481.77-20260202\nTagged selenium/standalone-chrome:110.0.5481.177-chromedriver-110.0.5481.77-20260202\nTagged selenium/node-chrome:110.0.5481.177-20260202\nTagged selenium/standalone-chrome:110.0.5481.177-20260202\nTagged selenium/node-chrome:110.0-chromedriver-110.0-grid-4.40.0-20260202\nTagged selenium/standalone-chrome:110.0-chromedriver-110.0-grid-4.40.0-20260202\nTagged selenium/node-chrome:110.0-chromedriver-110.0-20260202\nTagged selenium/standalone-chrome:110.0-chromedriver-110.0-20260202\nTagged selenium/node-chrome:110.0-20260202\nTagged selenium/standalone-chrome:110.0-20260202\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.40.0/chrome_111.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.40.0 20260202 selenium false chrome true\nTagging images for browser chrome, version 4.40.0, build date 20260202, namespace selenium\nSelenium Grid version -> 4.40.0-20260202\nChrome version -> 111.0.5563.146\nShort Chrome version -> 111.0\nChromeDriver version -> 111.0.5563.64\nShort ChromeDriver version -> 111.0\nTagged selenium/node-chrome:111.0.5563.146-chromedriver-111.0.5563.64-grid-4.40.0-20260202\nTagged selenium/standalone-chrome:111.0.5563.146-chromedriver-111.0.5563.64-grid-4.40.0-20260202\nTagged selenium/node-chrome:111.0.5563.146-chromedriver-111.0.5563.64-20260202\nTagged selenium/standalone-chrome:111.0.5563.146-chromedriver-111.0.5563.64-20260202\nTagged selenium/node-chrome:111.0.5563.146-20260202\nTagged selenium/standalone-chrome:111.0.5563.146-20260202\nTagged selenium/node-chrome:111.0-chromedriver-111.0-grid-4.40.0-20260202\nTagged selenium/standalone-chrome:111.0-chromedriver-111.0-grid-4.40.0-20260202\nTagged selenium/node-chrome:111.0-chromedriver-111.0-20260202\nTagged selenium/standalone-chrome:111.0-chromedriver-111.0-20260202\nTagged selenium/node-chrome:111.0-20260202\nTagged selenium/standalone-chrome:111.0-20260202\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.40.0/chrome_112.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.40.0 20260202 selenium false chrome true\nTagging images for browser chrome, version 4.40.0, build date 20260202, namespace selenium\nSelenium Grid version -> 4.40.0-20260202\nChrome version -> 112.0.5615.165\nShort Chrome version -> 112.0\nChromeDriver version -> 112.0.5615.49\nShort ChromeDriver version -> 112.0\nTagged selenium/node-chrome:112.0.5615.165-chromedriver-112.0.5615.49-grid-4.40.0-20260202\nTagged selenium/standalone-chrome:112.0.5615.165-chromedriver-112.0.5615.49-grid-4.40.0-20260202\nTagged selenium/node-chrome:112.0.5615.165-chromedriver-112.0.5615.49-20260202\nTagged selenium/standalone-chrome:112.0.5615.165-chromedriver-112.0.5615.49-20260202\nTagged selenium/node-chrome:112.0.5615.165-20260202\nTagged selenium/standalone-chrome:112.0.5615.165-20260202\nTagged selenium/node-chrome:112.0-chromedriver-112.0-grid-4.40.0-20260202\nTagged selenium/standalone-chrome:112.0-chromedriver-112.0-grid-4.40.0-20260202\nTagged selenium/node-chrome:112.0-chromedriver-112.0-20260202\nTagged selenium/standalone-chrome:112.0-chromedriver-112.0-20260202\nTagged selenium/node-chrome:112.0-20260202\nTagged selenium/standalone-chrome:112.0-20260202\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.40.0/chrome_113.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.40.0 20260202 selenium false chrome true\nTagging images for browser chrome, version 4.40.0, build date 20260202, namespace selenium\nSelenium Grid version -> 4.40.0-20260202\nChrome version -> 113.0.5672.126\nShort Chrome version -> 113.0\nChromeDriver version -> 113.0.5672.63\nShort ChromeDriver version -> 113.0\nTagged selenium/node-chrome:113.0.5672.126-chromedriver-113.0.5672.63-grid-4.40.0-20260202\nTagged selenium/standalone-chrome:113.0.5672.126-chromedriver-113.0.5672.63-grid-4.40.0-20260202\nTagged selenium/node-chrome:113.0.5672.126-chromedriver-113.0.5672.63-20260202\nTagged selenium/standalone-chrome:113.0.5672.126-chromedriver-113.0.5672.63-20260202\nTagged selenium/node-chrome:113.0.5672.126-20260202\nTagged selenium/standalone-chrome:113.0.5672.126-20260202\nTagged selenium/node-chrome:113.0-chromedriver-113.0-grid-4.40.0-20260202\nTagged selenium/standalone-chrome:113.0-chromedriver-113.0-grid-4.40.0-20260202\nTagged selenium/node-chrome:113.0-chromedriver-113.0-20260202\nTagged selenium/standalone-chrome:113.0-chromedriver-113.0-20260202\nTagged selenium/node-chrome:113.0-20260202\nTagged selenium/standalone-chrome:113.0-20260202\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.40.0/chrome_114.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.40.0 20260202 selenium false chrome true\nTagging images for browser chrome, version 4.40.0, build date 20260202, namespace selenium\nSelenium Grid version -> 4.40.0-20260202\nChrome version -> 114.0.5735.198\nShort Chrome version -> 114.0\nChromeDriver version -> 114.0.5735.90\nShort ChromeDriver version -> 114.0\nTagged selenium/node-chrome:114.0.5735.198-chromedriver-114.0.5735.90-grid-4.40.0-20260202\nTagged selenium/standalone-chrome:114.0.5735.198-chromedriver-114.0.5735.90-grid-4.40.0-20260202\nTagged selenium/node-chrome:114.0.5735.198-chromedriver-114.0.5735.90-20260202\nTagged selenium/standalone-chrome:114.0.5735.198-chromedriver-114.0.5735.90-20260202\nTagged selenium/node-chrome:114.0.5735.198-20260202\nTagged selenium/standalone-chrome:114.0.5735.198-20260202\nTagged selenium/node-chrome:114.0-chromedriver-114.0-grid-4.40.0-20260202\nTagged selenium/standalone-chrome:114.0-chromedriver-114.0-grid-4.40.0-20260202\nTagged selenium/node-chrome:114.0-chromedriver-114.0-20260202\nTagged selenium/standalone-chrome:114.0-chromedriver-114.0-20260202\nTagged selenium/node-chrome:114.0-20260202\nTagged selenium/standalone-chrome:114.0-20260202\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.40.0/chrome_115.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.40.0 20260202 selenium false chrome true\nTagging images for browser chrome, version 4.40.0, build date 20260202, namespace selenium\nSelenium Grid version -> 4.40.0-20260202\nChrome version -> 115.0.5790.170\nShort Chrome version -> 115.0\nChromeDriver version -> 115.0.5790.170\nShort ChromeDriver version -> 115.0\nTagged selenium/node-chrome:115.0.5790.170-chromedriver-115.0.5790.170-grid-4.40.0-20260202\nTagged selenium/standalone-chrome:115.0.5790.170-chromedriver-115.0.5790.170-grid-4.40.0-20260202\nTagged selenium/node-chrome:115.0.5790.170-chromedriver-115.0.5790.170-20260202\nTagged selenium/standalone-chrome:115.0.5790.170-chromedriver-115.0.5790.170-20260202\nTagged selenium/node-chrome:115.0.5790.170-20260202\nTagged selenium/standalone-chrome:115.0.5790.170-20260202\nTagged selenium/node-chrome:115.0-chromedriver-115.0-grid-4.40.0-20260202\nTagged selenium/standalone-chrome:115.0-chromedriver-115.0-grid-4.40.0-20260202\nTagged selenium/node-chrome:115.0-chromedriver-115.0-20260202\nTagged selenium/standalone-chrome:115.0-chromedriver-115.0-20260202\nTagged selenium/node-chrome:115.0-20260202\nTagged selenium/standalone-chrome:115.0-20260202\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.40.0/chrome_116.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.40.0 20260202 selenium false chrome true\nTagging images for browser chrome, version 4.40.0, build date 20260202, namespace selenium\nSelenium Grid version -> 4.40.0-20260202\nChrome version -> 116.0.5845.187\nShort Chrome version -> 116.0\nChromeDriver version -> 116.0.5845.96\nShort ChromeDriver version -> 116.0\nTagged selenium/node-chrome:116.0.5845.187-chromedriver-116.0.5845.96-grid-4.40.0-20260202\nTagged selenium/standalone-chrome:116.0.5845.187-chromedriver-116.0.5845.96-grid-4.40.0-20260202\nTagged selenium/node-chrome:116.0.5845.187-chromedriver-116.0.5845.96-20260202\nTagged selenium/standalone-chrome:116.0.5845.187-chromedriver-116.0.5845.96-20260202\nTagged selenium/node-chrome:116.0.5845.187-20260202\nTagged selenium/standalone-chrome:116.0.5845.187-20260202\nTagged selenium/node-chrome:116.0-chromedriver-116.0-grid-4.40.0-20260202\nTagged selenium/standalone-chrome:116.0-chromedriver-116.0-grid-4.40.0-20260202\nTagged selenium/node-chrome:116.0-chromedriver-116.0-20260202\nTagged selenium/standalone-chrome:116.0-chromedriver-116.0-20260202\nTagged selenium/node-chrome:116.0-20260202\nTagged selenium/standalone-chrome:116.0-20260202\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.40.0/chrome_117.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.40.0 20260202 selenium false chrome true\nTagging images for browser chrome, version 4.40.0, build date 20260202, namespace selenium\nSelenium Grid version -> 4.40.0-20260202\nChrome version -> 117.0.5938.149\nShort Chrome version -> 117.0\nChromeDriver version -> 117.0.5938.149\nShort ChromeDriver version -> 117.0\nTagged selenium/node-chrome:117.0.5938.149-chromedriver-117.0.5938.149-grid-4.40.0-20260202\nTagged selenium/standalone-chrome:117.0.5938.149-chromedriver-117.0.5938.149-grid-4.40.0-20260202\nTagged selenium/node-chrome:117.0.5938.149-chromedriver-117.0.5938.149-20260202\nTagged selenium/standalone-chrome:117.0.5938.149-chromedriver-117.0.5938.149-20260202\nTagged selenium/node-chrome:117.0.5938.149-20260202\nTagged selenium/standalone-chrome:117.0.5938.149-20260202\nTagged selenium/node-chrome:117.0-chromedriver-117.0-grid-4.40.0-20260202\nTagged selenium/standalone-chrome:117.0-chromedriver-117.0-grid-4.40.0-20260202\nTagged selenium/node-chrome:117.0-chromedriver-117.0-20260202\nTagged selenium/standalone-chrome:117.0-chromedriver-117.0-20260202\nTagged selenium/node-chrome:117.0-20260202\nTagged selenium/standalone-chrome:117.0-20260202\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.40.0/chrome_118.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.40.0 20260202 selenium false chrome true\nTagging images for browser chrome, version 4.40.0, build date 20260202, namespace selenium\nSelenium Grid version -> 4.40.0-20260202\nChrome version -> 118.0.5993.117\nShort Chrome version -> 118.0\nChromeDriver version -> 118.0.5993.70\nShort ChromeDriver version -> 118.0\nTagged selenium/node-chrome:118.0.5993.117-chromedriver-118.0.5993.70-grid-4.40.0-20260202\nTagged selenium/standalone-chrome:118.0.5993.117-chromedriver-118.0.5993.70-grid-4.40.0-20260202\nTagged selenium/node-chrome:118.0.5993.117-chromedriver-118.0.5993.70-20260202\nTagged selenium/standalone-chrome:118.0.5993.117-chromedriver-118.0.5993.70-20260202\nTagged selenium/node-chrome:118.0.5993.117-20260202\nTagged selenium/standalone-chrome:118.0.5993.117-20260202\nTagged selenium/node-chrome:118.0-chromedriver-118.0-grid-4.40.0-20260202\nTagged selenium/standalone-chrome:118.0-chromedriver-118.0-grid-4.40.0-20260202\nTagged selenium/node-chrome:118.0-chromedriver-118.0-20260202\nTagged selenium/standalone-chrome:118.0-chromedriver-118.0-20260202\nTagged selenium/node-chrome:118.0-20260202\nTagged selenium/standalone-chrome:118.0-20260202\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.40.0/chrome_119.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.40.0 20260202 selenium false chrome true\nTagging images for browser chrome, version 4.40.0, build date 20260202, namespace selenium\nSelenium Grid version -> 4.40.0-20260202\nChrome version -> 119.0.6045.199\nShort Chrome version -> 119.0\nChromeDriver version -> 119.0.6045.105\nShort ChromeDriver version -> 119.0\nTagged selenium/node-chrome:119.0.6045.199-chromedriver-119.0.6045.105-grid-4.40.0-20260202\nTagged selenium/standalone-chrome:119.0.6045.199-chromedriver-119.0.6045.105-grid-4.40.0-20260202\nTagged selenium/node-chrome:119.0.6045.199-chromedriver-119.0.6045.105-20260202\nTagged selenium/standalone-chrome:119.0.6045.199-chromedriver-119.0.6045.105-20260202\nTagged selenium/node-chrome:119.0.6045.199-20260202\nTagged selenium/standalone-chrome:119.0.6045.199-20260202\nTagged selenium/node-chrome:119.0-chromedriver-119.0-grid-4.40.0-20260202\nTagged selenium/standalone-chrome:119.0-chromedriver-119.0-grid-4.40.0-20260202\nTagged selenium/node-chrome:119.0-chromedriver-119.0-20260202\nTagged selenium/standalone-chrome:119.0-chromedriver-119.0-20260202\nTagged selenium/node-chrome:119.0-20260202\nTagged selenium/standalone-chrome:119.0-20260202\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.40.0/chrome_120.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.40.0 20260202 selenium false chrome true\nTagging images for browser chrome, version 4.40.0, build date 20260202, namespace selenium\nSelenium Grid version -> 4.40.0-20260202\nChrome version -> 120.0.6099.224\nShort Chrome version -> 120.0\nChromeDriver version -> 120.0.6099.109\nShort ChromeDriver version -> 120.0\nTagged selenium/node-chrome:120.0.6099.224-chromedriver-120.0.6099.109-grid-4.40.0-20260202\nTagged selenium/standalone-chrome:120.0.6099.224-chromedriver-120.0.6099.109-grid-4.40.0-20260202\nTagged selenium/node-chrome:120.0.6099.224-chromedriver-120.0.6099.109-20260202\nTagged selenium/standalone-chrome:120.0.6099.224-chromedriver-120.0.6099.109-20260202\nTagged selenium/node-chrome:120.0.6099.224-20260202\nTagged selenium/standalone-chrome:120.0.6099.224-20260202\nTagged selenium/node-chrome:120.0-chromedriver-120.0-grid-4.40.0-20260202\nTagged selenium/standalone-chrome:120.0-chromedriver-120.0-grid-4.40.0-20260202\nTagged selenium/node-chrome:120.0-chromedriver-120.0-20260202\nTagged selenium/standalone-chrome:120.0-chromedriver-120.0-20260202\nTagged selenium/node-chrome:120.0-20260202\nTagged selenium/standalone-chrome:120.0-20260202\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.40.0/chrome_121.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.40.0 20260202 selenium false chrome true\nTagging images for browser chrome, version 4.40.0, build date 20260202, namespace selenium\nSelenium Grid version -> 4.40.0-20260202\nChrome version -> 121.0.6167.184\nShort Chrome version -> 121.0\nChromeDriver version -> 121.0.6167.184\nShort ChromeDriver version -> 121.0\nTagged selenium/node-chrome:121.0.6167.184-chromedriver-121.0.6167.184-grid-4.40.0-20260202\nTagged selenium/standalone-chrome:121.0.6167.184-chromedriver-121.0.6167.184-grid-4.40.0-20260202\nTagged selenium/node-chrome:121.0.6167.184-chromedriver-121.0.6167.184-20260202\nTagged selenium/standalone-chrome:121.0.6167.184-chromedriver-121.0.6167.184-20260202\nTagged selenium/node-chrome:121.0.6167.184-20260202\nTagged selenium/standalone-chrome:121.0.6167.184-20260202\nTagged selenium/node-chrome:121.0-chromedriver-121.0-grid-4.40.0-20260202\nTagged selenium/standalone-chrome:121.0-chromedriver-121.0-grid-4.40.0-20260202\nTagged selenium/node-chrome:121.0-chromedriver-121.0-20260202\nTagged selenium/standalone-chrome:121.0-chromedriver-121.0-20260202\nTagged selenium/node-chrome:121.0-20260202\nTagged selenium/standalone-chrome:121.0-20260202\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.40.0/chrome_122.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.40.0 20260202 selenium false chrome true\nTagging images for browser chrome, version 4.40.0, build date 20260202, namespace selenium\nSelenium Grid version -> 4.40.0-20260202\nChrome version -> 122.0.6261.128\nShort Chrome version -> 122.0\nChromeDriver version -> 122.0.6261.128\nShort ChromeDriver version -> 122.0\nTagged selenium/node-chrome:122.0.6261.128-chromedriver-122.0.6261.128-grid-4.40.0-20260202\nTagged selenium/standalone-chrome:122.0.6261.128-chromedriver-122.0.6261.128-grid-4.40.0-20260202\nTagged selenium/node-chrome:122.0.6261.128-chromedriver-122.0.6261.128-20260202\nTagged selenium/standalone-chrome:122.0.6261.128-chromedriver-122.0.6261.128-20260202\nTagged selenium/node-chrome:122.0.6261.128-20260202\nTagged selenium/standalone-chrome:122.0.6261.128-20260202\nTagged selenium/node-chrome:122.0-chromedriver-122.0-grid-4.40.0-20260202\nTagged selenium/standalone-chrome:122.0-chromedriver-122.0-grid-4.40.0-20260202\nTagged selenium/node-chrome:122.0-chromedriver-122.0-20260202\nTagged selenium/standalone-chrome:122.0-chromedriver-122.0-20260202\nTagged selenium/node-chrome:122.0-20260202\nTagged selenium/standalone-chrome:122.0-20260202\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.40.0/chrome_123.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.40.0 20260202 selenium false chrome true\nTagging images for browser chrome, version 4.40.0, build date 20260202, namespace selenium\nSelenium Grid version -> 4.40.0-20260202\nChrome version -> 123.0.6312.122\nShort Chrome version -> 123.0\nChromeDriver version -> 123.0.6312.122\nShort ChromeDriver version -> 123.0\nTagged selenium/node-chrome:123.0.6312.122-chromedriver-123.0.6312.122-grid-4.40.0-20260202\nTagged selenium/standalone-chrome:123.0.6312.122-chromedriver-123.0.6312.122-grid-4.40.0-20260202\nTagged selenium/node-chrome:123.0.6312.122-chromedriver-123.0.6312.122-20260202\nTagged selenium/standalone-chrome:123.0.6312.122-chromedriver-123.0.6312.122-20260202\nTagged selenium/node-chrome:123.0.6312.122-20260202\nTagged selenium/standalone-chrome:123.0.6312.122-20260202\nTagged selenium/node-chrome:123.0-chromedriver-123.0-grid-4.40.0-20260202\nTagged selenium/standalone-chrome:123.0-chromedriver-123.0-grid-4.40.0-20260202\nTagged selenium/node-chrome:123.0-chromedriver-123.0-20260202\nTagged selenium/standalone-chrome:123.0-chromedriver-123.0-20260202\nTagged selenium/node-chrome:123.0-20260202\nTagged selenium/standalone-chrome:123.0-20260202\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.40.0/chrome_124.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.40.0 20260202 selenium false chrome true\nTagging images for browser chrome, version 4.40.0, build date 20260202, namespace selenium\nSelenium Grid version -> 4.40.0-20260202\nChrome version -> 124.0.6367.207\nShort Chrome version -> 124.0\nChromeDriver version -> 124.0.6367.207\nShort ChromeDriver version -> 124.0\nTagged selenium/node-chrome:124.0.6367.207-chromedriver-124.0.6367.207-grid-4.40.0-20260202\nTagged selenium/standalone-chrome:124.0.6367.207-chromedriver-124.0.6367.207-grid-4.40.0-20260202\nTagged selenium/node-chrome:124.0.6367.207-chromedriver-124.0.6367.207-20260202\nTagged selenium/standalone-chrome:124.0.6367.207-chromedriver-124.0.6367.207-20260202\nTagged selenium/node-chrome:124.0.6367.207-20260202\nTagged selenium/standalone-chrome:124.0.6367.207-20260202\nTagged selenium/node-chrome:124.0-chromedriver-124.0-grid-4.40.0-20260202\nTagged selenium/standalone-chrome:124.0-chromedriver-124.0-grid-4.40.0-20260202\nTagged selenium/node-chrome:124.0-chromedriver-124.0-20260202\nTagged selenium/standalone-chrome:124.0-chromedriver-124.0-20260202\nTagged selenium/node-chrome:124.0-20260202\nTagged selenium/standalone-chrome:124.0-20260202\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.40.0/chrome_125.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.40.0 20260202 selenium false chrome true\nTagging images for browser chrome, version 4.40.0, build date 20260202, namespace selenium\nSelenium Grid version -> 4.40.0-20260202\nChrome version -> 125.0.6422.141\nShort Chrome version -> 125.0\nChromeDriver version -> 125.0.6422.141\nShort ChromeDriver version -> 125.0\nTagged selenium/node-chrome:125.0.6422.141-chromedriver-125.0.6422.141-grid-4.40.0-20260202\nTagged selenium/standalone-chrome:125.0.6422.141-chromedriver-125.0.6422.141-grid-4.40.0-20260202\nTagged selenium/node-chrome:125.0.6422.141-chromedriver-125.0.6422.141-20260202\nTagged selenium/standalone-chrome:125.0.6422.141-chromedriver-125.0.6422.141-20260202\nTagged selenium/node-chrome:125.0.6422.141-20260202\nTagged selenium/standalone-chrome:125.0.6422.141-20260202\nTagged selenium/node-chrome:125.0-chromedriver-125.0-grid-4.40.0-20260202\nTagged selenium/standalone-chrome:125.0-chromedriver-125.0-grid-4.40.0-20260202\nTagged selenium/node-chrome:125.0-chromedriver-125.0-20260202\nTagged selenium/standalone-chrome:125.0-chromedriver-125.0-20260202\nTagged selenium/node-chrome:125.0-20260202\nTagged selenium/standalone-chrome:125.0-20260202\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.40.0/chrome_126.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.40.0 20260202 selenium false chrome true\nTagging images for browser chrome, version 4.40.0, build date 20260202, namespace selenium\nSelenium Grid version -> 4.40.0-20260202\nChrome version -> 126.0.6478.182\nShort Chrome version -> 126.0\nChromeDriver version -> 126.0.6478.182\nShort ChromeDriver version -> 126.0\nTagged selenium/node-chrome:126.0.6478.182-chromedriver-126.0.6478.182-grid-4.40.0-20260202\nTagged selenium/standalone-chrome:126.0.6478.182-chromedriver-126.0.6478.182-grid-4.40.0-20260202\nTagged selenium/node-chrome:126.0.6478.182-chromedriver-126.0.6478.182-20260202\nTagged selenium/standalone-chrome:126.0.6478.182-chromedriver-126.0.6478.182-20260202\nTagged selenium/node-chrome:126.0.6478.182-20260202\nTagged selenium/standalone-chrome:126.0.6478.182-20260202\nTagged selenium/node-chrome:126.0-chromedriver-126.0-grid-4.40.0-20260202\nTagged selenium/standalone-chrome:126.0-chromedriver-126.0-grid-4.40.0-20260202\nTagged selenium/node-chrome:126.0-chromedriver-126.0-20260202\nTagged selenium/standalone-chrome:126.0-chromedriver-126.0-20260202\nTagged selenium/node-chrome:126.0-20260202\nTagged selenium/standalone-chrome:126.0-20260202\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.40.0/chrome_127.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.40.0 20260202 selenium false chrome true\nTagging images for browser chrome, version 4.40.0, build date 20260202, namespace selenium\nSelenium Grid version -> 4.40.0-20260202\nChrome version -> 127.0.6533.119\nShort Chrome version -> 127.0\nChromeDriver version -> 127.0.6533.119\nShort ChromeDriver version -> 127.0\nTagged selenium/node-chrome:127.0.6533.119-chromedriver-127.0.6533.119-grid-4.40.0-20260202\nTagged selenium/standalone-chrome:127.0.6533.119-chromedriver-127.0.6533.119-grid-4.40.0-20260202\nTagged selenium/node-chrome:127.0.6533.119-chromedriver-127.0.6533.119-20260202\nTagged selenium/standalone-chrome:127.0.6533.119-chromedriver-127.0.6533.119-20260202\nTagged selenium/node-chrome:127.0.6533.119-20260202\nTagged selenium/standalone-chrome:127.0.6533.119-20260202\nTagged selenium/node-chrome:127.0-chromedriver-127.0-grid-4.40.0-20260202\nTagged selenium/standalone-chrome:127.0-chromedriver-127.0-grid-4.40.0-20260202\nTagged selenium/node-chrome:127.0-chromedriver-127.0-20260202\nTagged selenium/standalone-chrome:127.0-chromedriver-127.0-20260202\nTagged selenium/node-chrome:127.0-20260202\nTagged selenium/standalone-chrome:127.0-20260202\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.40.0/chrome_128.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.40.0 20260202 selenium false chrome true\nTagging images for browser chrome, version 4.40.0, build date 20260202, namespace selenium\nSelenium Grid version -> 4.40.0-20260202\nChrome version -> 128.0.6613.137\nShort Chrome version -> 128.0\nChromeDriver version -> 128.0.6613.137\nShort ChromeDriver version -> 128.0\nTagged selenium/node-chrome:128.0.6613.137-chromedriver-128.0.6613.137-grid-4.40.0-20260202\nTagged selenium/standalone-chrome:128.0.6613.137-chromedriver-128.0.6613.137-grid-4.40.0-20260202\nTagged selenium/node-chrome:128.0.6613.137-chromedriver-128.0.6613.137-20260202\nTagged selenium/standalone-chrome:128.0.6613.137-chromedriver-128.0.6613.137-20260202\nTagged selenium/node-chrome:128.0.6613.137-20260202\nTagged selenium/standalone-chrome:128.0.6613.137-20260202\nTagged selenium/node-chrome:128.0-chromedriver-128.0-grid-4.40.0-20260202\nTagged selenium/standalone-chrome:128.0-chromedriver-128.0-grid-4.40.0-20260202\nTagged selenium/node-chrome:128.0-chromedriver-128.0-20260202\nTagged selenium/standalone-chrome:128.0-chromedriver-128.0-20260202\nTagged selenium/node-chrome:128.0-20260202\nTagged selenium/standalone-chrome:128.0-20260202\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.40.0/chrome_129.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.40.0 20260202 selenium false chrome true\nTagging images for browser chrome, version 4.40.0, build date 20260202, namespace selenium\nSelenium Grid version -> 4.40.0-20260202\nChrome version -> 129.0.6668.100\nShort Chrome version -> 129.0\nChromeDriver version -> 129.0.6668.100\nShort ChromeDriver version -> 129.0\nTagged selenium/node-chrome:129.0.6668.100-chromedriver-129.0.6668.100-grid-4.40.0-20260202\nTagged selenium/standalone-chrome:129.0.6668.100-chromedriver-129.0.6668.100-grid-4.40.0-20260202\nTagged selenium/node-chrome:129.0.6668.100-chromedriver-129.0.6668.100-20260202\nTagged selenium/standalone-chrome:129.0.6668.100-chromedriver-129.0.6668.100-20260202\nTagged selenium/node-chrome:129.0.6668.100-20260202\nTagged selenium/standalone-chrome:129.0.6668.100-20260202\nTagged selenium/node-chrome:129.0-chromedriver-129.0-grid-4.40.0-20260202\nTagged selenium/standalone-chrome:129.0-chromedriver-129.0-grid-4.40.0-20260202\nTagged selenium/node-chrome:129.0-chromedriver-129.0-20260202\nTagged selenium/standalone-chrome:129.0-chromedriver-129.0-20260202\nTagged selenium/node-chrome:129.0-20260202\nTagged selenium/standalone-chrome:129.0-20260202\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.40.0/chrome_130.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.40.0 20260202 selenium false chrome true\nTagging images for browser chrome, version 4.40.0, build date 20260202, namespace selenium\nSelenium Grid version -> 4.40.0-20260202\nChrome version -> 130.0.6723.116\nShort Chrome version -> 130.0\nChromeDriver version -> 130.0.6723.116\nShort ChromeDriver version -> 130.0\nTagged selenium/node-chrome:130.0.6723.116-chromedriver-130.0.6723.116-grid-4.40.0-20260202\nTagged selenium/standalone-chrome:130.0.6723.116-chromedriver-130.0.6723.116-grid-4.40.0-20260202\nTagged selenium/node-chrome:130.0.6723.116-chromedriver-130.0.6723.116-20260202\nTagged selenium/standalone-chrome:130.0.6723.116-chromedriver-130.0.6723.116-20260202\nTagged selenium/node-chrome:130.0.6723.116-20260202\nTagged selenium/standalone-chrome:130.0.6723.116-20260202\nTagged selenium/node-chrome:130.0-chromedriver-130.0-grid-4.40.0-20260202\nTagged selenium/standalone-chrome:130.0-chromedriver-130.0-grid-4.40.0-20260202\nTagged selenium/node-chrome:130.0-chromedriver-130.0-20260202\nTagged selenium/standalone-chrome:130.0-chromedriver-130.0-20260202\nTagged selenium/node-chrome:130.0-20260202\nTagged selenium/standalone-chrome:130.0-20260202\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.40.0/chrome_131.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.40.0 20260202 selenium false chrome true\nTagging images for browser chrome, version 4.40.0, build date 20260202, namespace selenium\nSelenium Grid version -> 4.40.0-20260202\nChrome version -> 131.0.6778.264\nShort Chrome version -> 131.0\nChromeDriver version -> 131.0.6778.264\nShort ChromeDriver version -> 131.0\nTagged selenium/node-chrome:131.0.6778.264-chromedriver-131.0.6778.264-grid-4.40.0-20260202\nTagged selenium/standalone-chrome:131.0.6778.264-chromedriver-131.0.6778.264-grid-4.40.0-20260202\nTagged selenium/node-chrome:131.0.6778.264-chromedriver-131.0.6778.264-20260202\nTagged selenium/standalone-chrome:131.0.6778.264-chromedriver-131.0.6778.264-20260202\nTagged selenium/node-chrome:131.0.6778.264-20260202\nTagged selenium/standalone-chrome:131.0.6778.264-20260202\nTagged selenium/node-chrome:131.0-chromedriver-131.0-grid-4.40.0-20260202\nTagged selenium/standalone-chrome:131.0-chromedriver-131.0-grid-4.40.0-20260202\nTagged selenium/node-chrome:131.0-chromedriver-131.0-20260202\nTagged selenium/standalone-chrome:131.0-chromedriver-131.0-20260202\nTagged selenium/node-chrome:131.0-20260202\nTagged selenium/standalone-chrome:131.0-20260202\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.40.0/chrome_132.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.40.0 20260202 selenium false chrome true\nTagging images for browser chrome, version 4.40.0, build date 20260202, namespace selenium\nSelenium Grid version -> 4.40.0-20260202\nChrome version -> 132.0.6834.159\nShort Chrome version -> 132.0\nChromeDriver version -> 132.0.6834.159\nShort ChromeDriver version -> 132.0\nTagged selenium/node-chrome:132.0.6834.159-chromedriver-132.0.6834.159-grid-4.40.0-20260202\nTagged selenium/standalone-chrome:132.0.6834.159-chromedriver-132.0.6834.159-grid-4.40.0-20260202\nTagged selenium/node-chrome:132.0.6834.159-chromedriver-132.0.6834.159-20260202\nTagged selenium/standalone-chrome:132.0.6834.159-chromedriver-132.0.6834.159-20260202\nTagged selenium/node-chrome:132.0.6834.159-20260202\nTagged selenium/standalone-chrome:132.0.6834.159-20260202\nTagged selenium/node-chrome:132.0-chromedriver-132.0-grid-4.40.0-20260202\nTagged selenium/standalone-chrome:132.0-chromedriver-132.0-grid-4.40.0-20260202\nTagged selenium/node-chrome:132.0-chromedriver-132.0-20260202\nTagged selenium/standalone-chrome:132.0-chromedriver-132.0-20260202\nTagged selenium/node-chrome:132.0-20260202\nTagged selenium/standalone-chrome:132.0-20260202\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.40.0/chrome_133.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.40.0 20260202 selenium false chrome true\nTagging images for browser chrome, version 4.40.0, build date 20260202, namespace selenium\nSelenium Grid version -> 4.40.0-20260202\nChrome version -> 133.0.6943.141\nShort Chrome version -> 133.0\nChromeDriver version -> 133.0.6943.141\nShort ChromeDriver version -> 133.0\nTagged selenium/node-chrome:133.0.6943.141-chromedriver-133.0.6943.141-grid-4.40.0-20260202\nTagged selenium/standalone-chrome:133.0.6943.141-chromedriver-133.0.6943.141-grid-4.40.0-20260202\nTagged selenium/node-chrome:133.0.6943.141-chromedriver-133.0.6943.141-20260202\nTagged selenium/standalone-chrome:133.0.6943.141-chromedriver-133.0.6943.141-20260202\nTagged selenium/node-chrome:133.0.6943.141-20260202\nTagged selenium/standalone-chrome:133.0.6943.141-20260202\nTagged selenium/node-chrome:133.0-chromedriver-133.0-grid-4.40.0-20260202\nTagged selenium/standalone-chrome:133.0-chromedriver-133.0-grid-4.40.0-20260202\nTagged selenium/node-chrome:133.0-chromedriver-133.0-20260202\nTagged selenium/standalone-chrome:133.0-chromedriver-133.0-20260202\nTagged selenium/node-chrome:133.0-20260202\nTagged selenium/standalone-chrome:133.0-20260202\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.40.0/chrome_134.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.40.0 20260202 selenium false chrome true\nTagging images for browser chrome, version 4.40.0, build date 20260202, namespace selenium\nSelenium Grid version -> 4.40.0-20260202\nChrome version -> 134.0.6998.165\nShort Chrome version -> 134.0\nChromeDriver version -> 134.0.6998.165\nShort ChromeDriver version -> 134.0\nTagged selenium/node-chrome:134.0.6998.165-chromedriver-134.0.6998.165-grid-4.40.0-20260202\nTagged selenium/standalone-chrome:134.0.6998.165-chromedriver-134.0.6998.165-grid-4.40.0-20260202\nTagged selenium/node-chrome:134.0.6998.165-chromedriver-134.0.6998.165-20260202\nTagged selenium/standalone-chrome:134.0.6998.165-chromedriver-134.0.6998.165-20260202\nTagged selenium/node-chrome:134.0.6998.165-20260202\nTagged selenium/standalone-chrome:134.0.6998.165-20260202\nTagged selenium/node-chrome:134.0-chromedriver-134.0-grid-4.40.0-20260202\nTagged selenium/standalone-chrome:134.0-chromedriver-134.0-grid-4.40.0-20260202\nTagged selenium/node-chrome:134.0-chromedriver-134.0-20260202\nTagged selenium/standalone-chrome:134.0-chromedriver-134.0-20260202\nTagged selenium/node-chrome:134.0-20260202\nTagged selenium/standalone-chrome:134.0-20260202\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.40.0/chrome_135.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.40.0 20260202 selenium false chrome true\nTagging images for browser chrome, version 4.40.0, build date 20260202, namespace selenium\nSelenium Grid version -> 4.40.0-20260202\nChrome version -> 135.0.7049.114\nShort Chrome version -> 135.0\nChromeDriver version -> 135.0.7049.114\nShort ChromeDriver version -> 135.0\nTagged selenium/node-chrome:135.0.7049.114-chromedriver-135.0.7049.114-grid-4.40.0-20260202\nTagged selenium/standalone-chrome:135.0.7049.114-chromedriver-135.0.7049.114-grid-4.40.0-20260202\nTagged selenium/node-chrome:135.0.7049.114-chromedriver-135.0.7049.114-20260202\nTagged selenium/standalone-chrome:135.0.7049.114-chromedriver-135.0.7049.114-20260202\nTagged selenium/node-chrome:135.0.7049.114-20260202\nTagged selenium/standalone-chrome:135.0.7049.114-20260202\nTagged selenium/node-chrome:135.0-chromedriver-135.0-grid-4.40.0-20260202\nTagged selenium/standalone-chrome:135.0-chromedriver-135.0-grid-4.40.0-20260202\nTagged selenium/node-chrome:135.0-chromedriver-135.0-20260202\nTagged selenium/standalone-chrome:135.0-chromedriver-135.0-20260202\nTagged selenium/node-chrome:135.0-20260202\nTagged selenium/standalone-chrome:135.0-20260202\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.40.0/chrome_136.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.40.0 20260202 selenium false chrome true\nTagging images for browser chrome, version 4.40.0, build date 20260202, namespace selenium\nSelenium Grid version -> 4.40.0-20260202\nChrome version -> 136.0.7103.113\nShort Chrome version -> 136.0\nChromeDriver version -> 136.0.7103.113\nShort ChromeDriver version -> 136.0\nTagged selenium/node-chrome:136.0.7103.113-chromedriver-136.0.7103.113-grid-4.40.0-20260202\nTagged selenium/standalone-chrome:136.0.7103.113-chromedriver-136.0.7103.113-grid-4.40.0-20260202\nTagged selenium/node-chrome:136.0.7103.113-chromedriver-136.0.7103.113-20260202\nTagged selenium/standalone-chrome:136.0.7103.113-chromedriver-136.0.7103.113-20260202\nTagged selenium/node-chrome:136.0.7103.113-20260202\nTagged selenium/standalone-chrome:136.0.7103.113-20260202\nTagged selenium/node-chrome:136.0-chromedriver-136.0-grid-4.40.0-20260202\nTagged selenium/standalone-chrome:136.0-chromedriver-136.0-grid-4.40.0-20260202\nTagged selenium/node-chrome:136.0-chromedriver-136.0-20260202\nTagged selenium/standalone-chrome:136.0-chromedriver-136.0-20260202\nTagged selenium/node-chrome:136.0-20260202\nTagged selenium/standalone-chrome:136.0-20260202\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.40.0/chrome_137.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.40.0 20260202 selenium false chrome true\nTagging images for browser chrome, version 4.40.0, build date 20260202, namespace selenium\nSelenium Grid version -> 4.40.0-20260202\nChrome version -> 137.0.7151.119\nShort Chrome version -> 137.0\nChromeDriver version -> 137.0.7151.119\nShort ChromeDriver version -> 137.0\nTagged selenium/node-chrome:137.0.7151.119-chromedriver-137.0.7151.119-grid-4.40.0-20260202\nTagged selenium/standalone-chrome:137.0.7151.119-chromedriver-137.0.7151.119-grid-4.40.0-20260202\nTagged selenium/node-chrome:137.0.7151.119-chromedriver-137.0.7151.119-20260202\nTagged selenium/standalone-chrome:137.0.7151.119-chromedriver-137.0.7151.119-20260202\nTagged selenium/node-chrome:137.0.7151.119-20260202\nTagged selenium/standalone-chrome:137.0.7151.119-20260202\nTagged selenium/node-chrome:137.0-chromedriver-137.0-grid-4.40.0-20260202\nTagged selenium/standalone-chrome:137.0-chromedriver-137.0-grid-4.40.0-20260202\nTagged selenium/node-chrome:137.0-chromedriver-137.0-20260202\nTagged selenium/standalone-chrome:137.0-chromedriver-137.0-20260202\nTagged selenium/node-chrome:137.0-20260202\nTagged selenium/standalone-chrome:137.0-20260202\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.40.0/chrome_138.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.40.0 20260202 selenium false chrome true\nTagging images for browser chrome, version 4.40.0, build date 20260202, namespace selenium\nSelenium Grid version -> 4.40.0-20260202\nChrome version -> 138.0.7204.183\nShort Chrome version -> 138.0\nChromeDriver version -> 138.0.7204.183\nShort ChromeDriver version -> 138.0\nTagged selenium/node-chrome:138.0.7204.183-chromedriver-138.0.7204.183-grid-4.40.0-20260202\nTagged selenium/standalone-chrome:138.0.7204.183-chromedriver-138.0.7204.183-grid-4.40.0-20260202\nTagged selenium/node-chrome:138.0.7204.183-chromedriver-138.0.7204.183-20260202\nTagged selenium/standalone-chrome:138.0.7204.183-chromedriver-138.0.7204.183-20260202\nTagged selenium/node-chrome:138.0.7204.183-20260202\nTagged selenium/standalone-chrome:138.0.7204.183-20260202\nTagged selenium/node-chrome:138.0-chromedriver-138.0-grid-4.40.0-20260202\nTagged selenium/standalone-chrome:138.0-chromedriver-138.0-grid-4.40.0-20260202\nTagged selenium/node-chrome:138.0-chromedriver-138.0-20260202\nTagged selenium/standalone-chrome:138.0-chromedriver-138.0-20260202\nTagged selenium/node-chrome:138.0-20260202\nTagged selenium/standalone-chrome:138.0-20260202\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.40.0/chrome_139.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.40.0 20260202 selenium false chrome true\nTagging images for browser chrome, version 4.40.0, build date 20260202, namespace selenium\nSelenium Grid version -> 4.40.0-20260202\nChrome version -> 139.0.7258.154\nShort Chrome version -> 139.0\nChromeDriver version -> 139.0.7258.154\nShort ChromeDriver version -> 139.0\nTagged selenium/node-chrome:139.0.7258.154-chromedriver-139.0.7258.154-grid-4.40.0-20260202\nTagged selenium/standalone-chrome:139.0.7258.154-chromedriver-139.0.7258.154-grid-4.40.0-20260202\nTagged selenium/node-chrome:139.0.7258.154-chromedriver-139.0.7258.154-20260202\nTagged selenium/standalone-chrome:139.0.7258.154-chromedriver-139.0.7258.154-20260202\nTagged selenium/node-chrome:139.0.7258.154-20260202\nTagged selenium/standalone-chrome:139.0.7258.154-20260202\nTagged selenium/node-chrome:139.0-chromedriver-139.0-grid-4.40.0-20260202\nTagged selenium/standalone-chrome:139.0-chromedriver-139.0-grid-4.40.0-20260202\nTagged selenium/node-chrome:139.0-chromedriver-139.0-20260202\nTagged selenium/standalone-chrome:139.0-chromedriver-139.0-20260202\nTagged selenium/node-chrome:139.0-20260202\nTagged selenium/standalone-chrome:139.0-20260202\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.40.0/chrome_140.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.40.0 20260202 selenium false chrome true\nTagging images for browser chrome, version 4.40.0, build date 20260202, namespace selenium\nSelenium Grid version -> 4.40.0-20260202\nChrome version -> 140.0.7339.207\nShort Chrome version -> 140.0\nChromeDriver version -> 140.0.7339.207\nShort ChromeDriver version -> 140.0\nTagged selenium/node-chrome:140.0.7339.207-chromedriver-140.0.7339.207-grid-4.40.0-20260202\nTagged selenium/standalone-chrome:140.0.7339.207-chromedriver-140.0.7339.207-grid-4.40.0-20260202\nTagged selenium/node-chrome:140.0.7339.207-chromedriver-140.0.7339.207-20260202\nTagged selenium/standalone-chrome:140.0.7339.207-chromedriver-140.0.7339.207-20260202\nTagged selenium/node-chrome:140.0.7339.207-20260202\nTagged selenium/standalone-chrome:140.0.7339.207-20260202\nTagged selenium/node-chrome:140.0-chromedriver-140.0-grid-4.40.0-20260202\nTagged selenium/standalone-chrome:140.0-chromedriver-140.0-grid-4.40.0-20260202\nTagged selenium/node-chrome:140.0-chromedriver-140.0-20260202\nTagged selenium/standalone-chrome:140.0-chromedriver-140.0-20260202\nTagged selenium/node-chrome:140.0-20260202\nTagged selenium/standalone-chrome:140.0-20260202\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.40.0/chrome_141.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.40.0 20260202 selenium false chrome true\nTagging images for browser chrome, version 4.40.0, build date 20260202, namespace selenium\nSelenium Grid version -> 4.40.0-20260202\nChrome version -> 141.0.7390.122\nShort Chrome version -> 141.0\nChromeDriver version -> 141.0.7390.122\nShort ChromeDriver version -> 141.0\nTagged selenium/node-chrome:141.0.7390.122-chromedriver-141.0.7390.122-grid-4.40.0-20260202\nTagged selenium/standalone-chrome:141.0.7390.122-chromedriver-141.0.7390.122-grid-4.40.0-20260202\nTagged selenium/node-chrome:141.0.7390.122-chromedriver-141.0.7390.122-20260202\nTagged selenium/standalone-chrome:141.0.7390.122-chromedriver-141.0.7390.122-20260202\nTagged selenium/node-chrome:141.0.7390.122-20260202\nTagged selenium/standalone-chrome:141.0.7390.122-20260202\nTagged selenium/node-chrome:141.0-chromedriver-141.0-grid-4.40.0-20260202\nTagged selenium/standalone-chrome:141.0-chromedriver-141.0-grid-4.40.0-20260202\nTagged selenium/node-chrome:141.0-chromedriver-141.0-20260202\nTagged selenium/standalone-chrome:141.0-chromedriver-141.0-20260202\nTagged selenium/node-chrome:141.0-20260202\nTagged selenium/standalone-chrome:141.0-20260202\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.40.0/chrome_142.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.40.0 20260202 selenium false chrome true\nTagging images for browser chrome, version 4.40.0, build date 20260202, namespace selenium\nSelenium Grid version -> 4.40.0-20260202\nChrome version -> 142.0.7444.175\nShort Chrome version -> 142.0\nChromeDriver version -> 142.0.7444.175\nShort ChromeDriver version -> 142.0\nTagged selenium/node-chrome:142.0.7444.175-chromedriver-142.0.7444.175-grid-4.40.0-20260202\nTagged selenium/standalone-chrome:142.0.7444.175-chromedriver-142.0.7444.175-grid-4.40.0-20260202\nTagged selenium/node-chrome:142.0.7444.175-chromedriver-142.0.7444.175-20260202\nTagged selenium/standalone-chrome:142.0.7444.175-chromedriver-142.0.7444.175-20260202\nTagged selenium/node-chrome:142.0.7444.175-20260202\nTagged selenium/standalone-chrome:142.0.7444.175-20260202\nTagged selenium/node-chrome:142.0-chromedriver-142.0-grid-4.40.0-20260202\nTagged selenium/standalone-chrome:142.0-chromedriver-142.0-grid-4.40.0-20260202\nTagged selenium/node-chrome:142.0-chromedriver-142.0-20260202\nTagged selenium/standalone-chrome:142.0-chromedriver-142.0-20260202\nTagged selenium/node-chrome:142.0-20260202\nTagged selenium/standalone-chrome:142.0-20260202\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.40.0/chrome_143.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.40.0 20260202 selenium false chrome true\nTagging images for browser chrome, version 4.40.0, build date 20260202, namespace selenium\nSelenium Grid version -> 4.40.0-20260202\nChrome version -> 143.0.7499.192\nShort Chrome version -> 143.0\nChromeDriver version -> 143.0.7499.192\nShort ChromeDriver version -> 143.0\nTagged selenium/node-chrome:143.0.7499.192-chromedriver-143.0.7499.192-grid-4.40.0-20260202\nTagged selenium/standalone-chrome:143.0.7499.192-chromedriver-143.0.7499.192-grid-4.40.0-20260202\nTagged selenium/node-chrome:143.0.7499.192-chromedriver-143.0.7499.192-20260202\nTagged selenium/standalone-chrome:143.0.7499.192-chromedriver-143.0.7499.192-20260202\nTagged selenium/node-chrome:143.0.7499.192-20260202\nTagged selenium/standalone-chrome:143.0.7499.192-20260202\nTagged selenium/node-chrome:143.0-chromedriver-143.0-grid-4.40.0-20260202\nTagged selenium/standalone-chrome:143.0-chromedriver-143.0-grid-4.40.0-20260202\nTagged selenium/node-chrome:143.0-chromedriver-143.0-20260202\nTagged selenium/standalone-chrome:143.0-chromedriver-143.0-20260202\nTagged selenium/node-chrome:143.0-20260202\nTagged selenium/standalone-chrome:143.0-20260202\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.40.0/chrome_144.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.40.0 20260202 selenium false chrome true\nTagging images for browser chrome, version 4.40.0, build date 20260202, namespace selenium\nSelenium Grid version -> 4.40.0-20260202\nChrome version -> 144.0.7559.109\nShort Chrome version -> 144.0\nChromeDriver version -> 144.0.7559.109\nShort ChromeDriver version -> 144.0\nTagged selenium/node-chrome:144.0.7559.109-chromedriver-144.0.7559.109-grid-4.40.0-20260202\nTagged selenium/standalone-chrome:144.0.7559.109-chromedriver-144.0.7559.109-grid-4.40.0-20260202\nTagged selenium/node-chrome:144.0.7559.109-chromedriver-144.0.7559.109-20260202\nTagged selenium/standalone-chrome:144.0.7559.109-chromedriver-144.0.7559.109-20260202\nTagged selenium/node-chrome:144.0.7559.109-20260202\nTagged selenium/standalone-chrome:144.0.7559.109-20260202\nTagged selenium/node-chrome:144.0-chromedriver-144.0-grid-4.40.0-20260202\nTagged selenium/standalone-chrome:144.0-chromedriver-144.0-grid-4.40.0-20260202\nTagged selenium/node-chrome:144.0-chromedriver-144.0-20260202\nTagged selenium/standalone-chrome:144.0-chromedriver-144.0-20260202\nTagged selenium/node-chrome:144.0-20260202\nTagged selenium/standalone-chrome:144.0-20260202\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.40.0/chrome_95.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.40.0 20260202 selenium false chrome true\nTagging images for browser chrome, version 4.40.0, build date 20260202, namespace selenium\nSelenium Grid version -> 4.40.0-20260202\nChrome version -> 95.0.4638.69\nShort Chrome version -> 95.0\nChromeDriver version -> 95.0.4638.69\nShort ChromeDriver version -> 95.0\nTagged selenium/node-chrome:95.0.4638.69-chromedriver-95.0.4638.69-grid-4.40.0-20260202\nTagged selenium/standalone-chrome:95.0.4638.69-chromedriver-95.0.4638.69-grid-4.40.0-20260202\nTagged selenium/node-chrome:95.0.4638.69-chromedriver-95.0.4638.69-20260202\nTagged selenium/standalone-chrome:95.0.4638.69-chromedriver-95.0.4638.69-20260202\nTagged selenium/node-chrome:95.0.4638.69-20260202\nTagged selenium/standalone-chrome:95.0.4638.69-20260202\nTagged selenium/node-chrome:95.0-chromedriver-95.0-grid-4.40.0-20260202\nTagged selenium/standalone-chrome:95.0-chromedriver-95.0-grid-4.40.0-20260202\nTagged selenium/node-chrome:95.0-chromedriver-95.0-20260202\nTagged selenium/standalone-chrome:95.0-chromedriver-95.0-20260202\nTagged selenium/node-chrome:95.0-20260202\nTagged selenium/standalone-chrome:95.0-20260202\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.40.0/chrome_96.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.40.0 20260202 selenium false chrome true\nTagging images for browser chrome, version 4.40.0, build date 20260202, namespace selenium\nSelenium Grid version -> 4.40.0-20260202\nChrome version -> 96.0.4664.110\nShort Chrome version -> 96.0\nChromeDriver version -> 96.0.4664.45\nShort ChromeDriver version -> 96.0\nTagged selenium/node-chrome:96.0.4664.110-chromedriver-96.0.4664.45-grid-4.40.0-20260202\nTagged selenium/standalone-chrome:96.0.4664.110-chromedriver-96.0.4664.45-grid-4.40.0-20260202\nTagged selenium/node-chrome:96.0.4664.110-chromedriver-96.0.4664.45-20260202\nTagged selenium/standalone-chrome:96.0.4664.110-chromedriver-96.0.4664.45-20260202\nTagged selenium/node-chrome:96.0.4664.110-20260202\nTagged selenium/standalone-chrome:96.0.4664.110-20260202\nTagged selenium/node-chrome:96.0-chromedriver-96.0-grid-4.40.0-20260202\nTagged selenium/standalone-chrome:96.0-chromedriver-96.0-grid-4.40.0-20260202\nTagged selenium/node-chrome:96.0-chromedriver-96.0-20260202\nTagged selenium/standalone-chrome:96.0-chromedriver-96.0-20260202\nTagged selenium/node-chrome:96.0-20260202\nTagged selenium/standalone-chrome:96.0-20260202\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.40.0/chrome_97.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.40.0 20260202 selenium false chrome true\nTagging images for browser chrome, version 4.40.0, build date 20260202, namespace selenium\nSelenium Grid version -> 4.40.0-20260202\nChrome version -> 97.0.4692.99\nShort Chrome version -> 97.0\nChromeDriver version -> 97.0.4692.71\nShort ChromeDriver version -> 97.0\nTagged selenium/node-chrome:97.0.4692.99-chromedriver-97.0.4692.71-grid-4.40.0-20260202\nTagged selenium/standalone-chrome:97.0.4692.99-chromedriver-97.0.4692.71-grid-4.40.0-20260202\nTagged selenium/node-chrome:97.0.4692.99-chromedriver-97.0.4692.71-20260202\nTagged selenium/standalone-chrome:97.0.4692.99-chromedriver-97.0.4692.71-20260202\nTagged selenium/node-chrome:97.0.4692.99-20260202\nTagged selenium/standalone-chrome:97.0.4692.99-20260202\nTagged selenium/node-chrome:97.0-chromedriver-97.0-grid-4.40.0-20260202\nTagged selenium/standalone-chrome:97.0-chromedriver-97.0-grid-4.40.0-20260202\nTagged selenium/node-chrome:97.0-chromedriver-97.0-20260202\nTagged selenium/standalone-chrome:97.0-chromedriver-97.0-20260202\nTagged selenium/node-chrome:97.0-20260202\nTagged selenium/standalone-chrome:97.0-20260202\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.40.0/chrome_98.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.40.0 20260202 selenium false chrome true\nTagging images for browser chrome, version 4.40.0, build date 20260202, namespace selenium\nSelenium Grid version -> 4.40.0-20260202\nChrome version -> 98.0.4758.102\nShort Chrome version -> 98.0\nChromeDriver version -> 98.0.4758.102\nShort ChromeDriver version -> 98.0\nTagged selenium/node-chrome:98.0.4758.102-chromedriver-98.0.4758.102-grid-4.40.0-20260202\nTagged selenium/standalone-chrome:98.0.4758.102-chromedriver-98.0.4758.102-grid-4.40.0-20260202\nTagged selenium/node-chrome:98.0.4758.102-chromedriver-98.0.4758.102-20260202\nTagged selenium/standalone-chrome:98.0.4758.102-chromedriver-98.0.4758.102-20260202\nTagged selenium/node-chrome:98.0.4758.102-20260202\nTagged selenium/standalone-chrome:98.0.4758.102-20260202\nTagged selenium/node-chrome:98.0-chromedriver-98.0-grid-4.40.0-20260202\nTagged selenium/standalone-chrome:98.0-chromedriver-98.0-grid-4.40.0-20260202\nTagged selenium/node-chrome:98.0-chromedriver-98.0-20260202\nTagged selenium/standalone-chrome:98.0-chromedriver-98.0-20260202\nTagged selenium/node-chrome:98.0-20260202\nTagged selenium/standalone-chrome:98.0-20260202\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.40.0/chrome_99.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.40.0 20260202 selenium false chrome true\nTagging images for browser chrome, version 4.40.0, build date 20260202, namespace selenium\nSelenium Grid version -> 4.40.0-20260202\nChrome version -> 99.0.4844.84\nShort Chrome version -> 99.0\nChromeDriver version -> 99.0.4844.51\nShort ChromeDriver version -> 99.0\nTagged selenium/node-chrome:99.0.4844.84-chromedriver-99.0.4844.51-grid-4.40.0-20260202\nTagged selenium/standalone-chrome:99.0.4844.84-chromedriver-99.0.4844.51-grid-4.40.0-20260202\nTagged selenium/node-chrome:99.0.4844.84-chromedriver-99.0.4844.51-20260202\nTagged selenium/standalone-chrome:99.0.4844.84-chromedriver-99.0.4844.51-20260202\nTagged selenium/node-chrome:99.0.4844.84-20260202\nTagged selenium/standalone-chrome:99.0.4844.84-20260202\nTagged selenium/node-chrome:99.0-chromedriver-99.0-grid-4.40.0-20260202\nTagged selenium/standalone-chrome:99.0-chromedriver-99.0-grid-4.40.0-20260202\nTagged selenium/node-chrome:99.0-chromedriver-99.0-20260202\nTagged selenium/standalone-chrome:99.0-chromedriver-99.0-20260202\nTagged selenium/node-chrome:99.0-20260202\nTagged selenium/standalone-chrome:99.0-20260202\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.40.0/edge_114.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.40.0 20260202 selenium false edge true\nTagging images for browser edge, version 4.40.0, build date 20260202, namespace selenium\nSelenium Grid version -> 4.40.0-20260202\nEdge version -> 114.0.1823.82\nShort Edge version -> 114.0\nEdgeDriver version -> 114.0.1823.82\nShort EdgeDriver version -> 114.0\nTagged selenium/node-edge:114.0.1823.82-edgedriver-114.0.1823.82-grid-4.40.0-20260202\nTagged selenium/standalone-edge:114.0.1823.82-edgedriver-114.0.1823.82-grid-4.40.0-20260202\nTagged selenium/node-edge:114.0.1823.82-edgedriver-114.0.1823.82-20260202\nTagged selenium/standalone-edge:114.0.1823.82-edgedriver-114.0.1823.82-20260202\nTagged selenium/node-edge:114.0.1823.82-20260202\nTagged selenium/standalone-edge:114.0.1823.82-20260202\nTagged selenium/node-edge:114.0-edgedriver-114.0-grid-4.40.0-20260202\nTagged selenium/standalone-edge:114.0-edgedriver-114.0-grid-4.40.0-20260202\nTagged selenium/node-edge:114.0-edgedriver-114.0-20260202\nTagged selenium/standalone-edge:114.0-edgedriver-114.0-20260202\nTagged selenium/node-edge:114.0-20260202\nTagged selenium/standalone-edge:114.0-20260202\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.40.0/edge_115.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.40.0 20260202 selenium false edge true\nTagging images for browser edge, version 4.40.0, build date 20260202, namespace selenium\nSelenium Grid version -> 4.40.0-20260202\nEdge version -> 115.0.1901.203\nShort Edge version -> 115.0\nEdgeDriver version -> 115.0.1901.203\nShort EdgeDriver version -> 115.0\nTagged selenium/node-edge:115.0.1901.203-edgedriver-115.0.1901.203-grid-4.40.0-20260202\nTagged selenium/standalone-edge:115.0.1901.203-edgedriver-115.0.1901.203-grid-4.40.0-20260202\nTagged selenium/node-edge:115.0.1901.203-edgedriver-115.0.1901.203-20260202\nTagged selenium/standalone-edge:115.0.1901.203-edgedriver-115.0.1901.203-20260202\nTagged selenium/node-edge:115.0.1901.203-20260202\nTagged selenium/standalone-edge:115.0.1901.203-20260202\nTagged selenium/node-edge:115.0-edgedriver-115.0-grid-4.40.0-20260202\nTagged selenium/standalone-edge:115.0-edgedriver-115.0-grid-4.40.0-20260202\nTagged selenium/node-edge:115.0-edgedriver-115.0-20260202\nTagged selenium/standalone-edge:115.0-edgedriver-115.0-20260202\nTagged selenium/node-edge:115.0-20260202\nTagged selenium/standalone-edge:115.0-20260202\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.40.0/edge_116.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.40.0 20260202 selenium false edge true\nTagging images for browser edge, version 4.40.0, build date 20260202, namespace selenium\nSelenium Grid version -> 4.40.0-20260202\nEdge version -> 116.0.1938.81\nShort Edge version -> 116.0\nEdgeDriver version -> 116.0.1938.81\nShort EdgeDriver version -> 116.0\nTagged selenium/node-edge:116.0.1938.81-edgedriver-116.0.1938.81-grid-4.40.0-20260202\nTagged selenium/standalone-edge:116.0.1938.81-edgedriver-116.0.1938.81-grid-4.40.0-20260202\nTagged selenium/node-edge:116.0.1938.81-edgedriver-116.0.1938.81-20260202\nTagged selenium/standalone-edge:116.0.1938.81-edgedriver-116.0.1938.81-20260202\nTagged selenium/node-edge:116.0.1938.81-20260202\nTagged selenium/standalone-edge:116.0.1938.81-20260202\nTagged selenium/node-edge:116.0-edgedriver-116.0-grid-4.40.0-20260202\nTagged selenium/standalone-edge:116.0-edgedriver-116.0-grid-4.40.0-20260202\nTagged selenium/node-edge:116.0-edgedriver-116.0-20260202\nTagged selenium/standalone-edge:116.0-edgedriver-116.0-20260202\nTagged selenium/node-edge:116.0-20260202\nTagged selenium/standalone-edge:116.0-20260202\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.40.0/edge_117.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.40.0 20260202 selenium false edge true\nTagging images for browser edge, version 4.40.0, build date 20260202, namespace selenium\nSelenium Grid version -> 4.40.0-20260202\nEdge version -> 117.0.2045.55\nShort Edge version -> 117.0\nEdgeDriver version -> 117.0.2045.55\nShort EdgeDriver version -> 117.0\nTagged selenium/node-edge:117.0.2045.55-edgedriver-117.0.2045.55-grid-4.40.0-20260202\nTagged selenium/standalone-edge:117.0.2045.55-edgedriver-117.0.2045.55-grid-4.40.0-20260202\nTagged selenium/node-edge:117.0.2045.55-edgedriver-117.0.2045.55-20260202\nTagged selenium/standalone-edge:117.0.2045.55-edgedriver-117.0.2045.55-20260202\nTagged selenium/node-edge:117.0.2045.55-20260202\nTagged selenium/standalone-edge:117.0.2045.55-20260202\nTagged selenium/node-edge:117.0-edgedriver-117.0-grid-4.40.0-20260202\nTagged selenium/standalone-edge:117.0-edgedriver-117.0-grid-4.40.0-20260202\nTagged selenium/node-edge:117.0-edgedriver-117.0-20260202\nTagged selenium/standalone-edge:117.0-edgedriver-117.0-20260202\nTagged selenium/node-edge:117.0-20260202\nTagged selenium/standalone-edge:117.0-20260202\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.40.0/edge_118.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.40.0 20260202 selenium false edge true\nTagging images for browser edge, version 4.40.0, build date 20260202, namespace selenium\nSelenium Grid version -> 4.40.0-20260202\nEdge version -> 118.0.2088.76\nShort Edge version -> 118.0\nEdgeDriver version -> 118.0.2088.76\nShort EdgeDriver version -> 118.0\nTagged selenium/node-edge:118.0.2088.76-edgedriver-118.0.2088.76-grid-4.40.0-20260202\nTagged selenium/standalone-edge:118.0.2088.76-edgedriver-118.0.2088.76-grid-4.40.0-20260202\nTagged selenium/node-edge:118.0.2088.76-edgedriver-118.0.2088.76-20260202\nTagged selenium/standalone-edge:118.0.2088.76-edgedriver-118.0.2088.76-20260202\nTagged selenium/node-edge:118.0.2088.76-20260202\nTagged selenium/standalone-edge:118.0.2088.76-20260202\nTagged selenium/node-edge:118.0-edgedriver-118.0-grid-4.40.0-20260202\nTagged selenium/standalone-edge:118.0-edgedriver-118.0-grid-4.40.0-20260202\nTagged selenium/node-edge:118.0-edgedriver-118.0-20260202\nTagged selenium/standalone-edge:118.0-edgedriver-118.0-20260202\nTagged selenium/node-edge:118.0-20260202\nTagged selenium/standalone-edge:118.0-20260202\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.40.0/edge_119.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.40.0 20260202 selenium false edge true\nTagging images for browser edge, version 4.40.0, build date 20260202, namespace selenium\nSelenium Grid version -> 4.40.0-20260202\nEdge version -> 119.0.2151.97\nShort Edge version -> 119.0\nEdgeDriver version -> 119.0.2151.97\nShort EdgeDriver version -> 119.0\nTagged selenium/node-edge:119.0.2151.97-edgedriver-119.0.2151.97-grid-4.40.0-20260202\nTagged selenium/standalone-edge:119.0.2151.97-edgedriver-119.0.2151.97-grid-4.40.0-20260202\nTagged selenium/node-edge:119.0.2151.97-edgedriver-119.0.2151.97-20260202\nTagged selenium/standalone-edge:119.0.2151.97-edgedriver-119.0.2151.97-20260202\nTagged selenium/node-edge:119.0.2151.97-20260202\nTagged selenium/standalone-edge:119.0.2151.97-20260202\nTagged selenium/node-edge:119.0-edgedriver-119.0-grid-4.40.0-20260202\nTagged selenium/standalone-edge:119.0-edgedriver-119.0-grid-4.40.0-20260202\nTagged selenium/node-edge:119.0-edgedriver-119.0-20260202\nTagged selenium/standalone-edge:119.0-edgedriver-119.0-20260202\nTagged selenium/node-edge:119.0-20260202\nTagged selenium/standalone-edge:119.0-20260202\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.40.0/edge_120.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.40.0 20260202 selenium false edge true\nTagging images for browser edge, version 4.40.0, build date 20260202, namespace selenium\nSelenium Grid version -> 4.40.0-20260202\nEdge version -> 120.0.2210.144\nShort Edge version -> 120.0\nEdgeDriver version -> 120.0.2210.144\nShort EdgeDriver version -> 120.0\nTagged selenium/node-edge:120.0.2210.144-edgedriver-120.0.2210.144-grid-4.40.0-20260202\nTagged selenium/standalone-edge:120.0.2210.144-edgedriver-120.0.2210.144-grid-4.40.0-20260202\nTagged selenium/node-edge:120.0.2210.144-edgedriver-120.0.2210.144-20260202\nTagged selenium/standalone-edge:120.0.2210.144-edgedriver-120.0.2210.144-20260202\nTagged selenium/node-edge:120.0.2210.144-20260202\nTagged selenium/standalone-edge:120.0.2210.144-20260202\nTagged selenium/node-edge:120.0-edgedriver-120.0-grid-4.40.0-20260202\nTagged selenium/standalone-edge:120.0-edgedriver-120.0-grid-4.40.0-20260202\nTagged selenium/node-edge:120.0-edgedriver-120.0-20260202\nTagged selenium/standalone-edge:120.0-edgedriver-120.0-20260202\nTagged selenium/node-edge:120.0-20260202\nTagged selenium/standalone-edge:120.0-20260202\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.40.0/edge_121.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.40.0 20260202 selenium false edge true\nTagging images for browser edge, version 4.40.0, build date 20260202, namespace selenium\nSelenium Grid version -> 4.40.0-20260202\nEdge version -> 121.0.2277.128\nShort Edge version -> 121.0\nEdgeDriver version -> 121.0.2277.128\nShort EdgeDriver version -> 121.0\nTagged selenium/node-edge:121.0.2277.128-edgedriver-121.0.2277.128-grid-4.40.0-20260202\nTagged selenium/standalone-edge:121.0.2277.128-edgedriver-121.0.2277.128-grid-4.40.0-20260202\nTagged selenium/node-edge:121.0.2277.128-edgedriver-121.0.2277.128-20260202\nTagged selenium/standalone-edge:121.0.2277.128-edgedriver-121.0.2277.128-20260202\nTagged selenium/node-edge:121.0.2277.128-20260202\nTagged selenium/standalone-edge:121.0.2277.128-20260202\nTagged selenium/node-edge:121.0-edgedriver-121.0-grid-4.40.0-20260202\nTagged selenium/standalone-edge:121.0-edgedriver-121.0-grid-4.40.0-20260202\nTagged selenium/node-edge:121.0-edgedriver-121.0-20260202\nTagged selenium/standalone-edge:121.0-edgedriver-121.0-20260202\nTagged selenium/node-edge:121.0-20260202\nTagged selenium/standalone-edge:121.0-20260202\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.40.0/edge_122.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.40.0 20260202 selenium false edge true\nTagging images for browser edge, version 4.40.0, build date 20260202, namespace selenium\nSelenium Grid version -> 4.40.0-20260202\nEdge version -> 122.0.2365.92\nShort Edge version -> 122.0\nEdgeDriver version -> 122.0.2365.92\nShort EdgeDriver version -> 122.0\nTagged selenium/node-edge:122.0.2365.92-edgedriver-122.0.2365.92-grid-4.40.0-20260202\nTagged selenium/standalone-edge:122.0.2365.92-edgedriver-122.0.2365.92-grid-4.40.0-20260202\nTagged selenium/node-edge:122.0.2365.92-edgedriver-122.0.2365.92-20260202\nTagged selenium/standalone-edge:122.0.2365.92-edgedriver-122.0.2365.92-20260202\nTagged selenium/node-edge:122.0.2365.92-20260202\nTagged selenium/standalone-edge:122.0.2365.92-20260202\nTagged selenium/node-edge:122.0-edgedriver-122.0-grid-4.40.0-20260202\nTagged selenium/standalone-edge:122.0-edgedriver-122.0-grid-4.40.0-20260202\nTagged selenium/node-edge:122.0-edgedriver-122.0-20260202\nTagged selenium/standalone-edge:122.0-edgedriver-122.0-20260202\nTagged selenium/node-edge:122.0-20260202\nTagged selenium/standalone-edge:122.0-20260202\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.40.0/edge_123.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.40.0 20260202 selenium false edge true\nTagging images for browser edge, version 4.40.0, build date 20260202, namespace selenium\nSelenium Grid version -> 4.40.0-20260202\nEdge version -> 123.0.2420.97\nShort Edge version -> 123.0\nEdgeDriver version -> 123.0.2420.97\nShort EdgeDriver version -> 123.0\nTagged selenium/node-edge:123.0.2420.97-edgedriver-123.0.2420.97-grid-4.40.0-20260202\nTagged selenium/standalone-edge:123.0.2420.97-edgedriver-123.0.2420.97-grid-4.40.0-20260202\nTagged selenium/node-edge:123.0.2420.97-edgedriver-123.0.2420.97-20260202\nTagged selenium/standalone-edge:123.0.2420.97-edgedriver-123.0.2420.97-20260202\nTagged selenium/node-edge:123.0.2420.97-20260202\nTagged selenium/standalone-edge:123.0.2420.97-20260202\nTagged selenium/node-edge:123.0-edgedriver-123.0-grid-4.40.0-20260202\nTagged selenium/standalone-edge:123.0-edgedriver-123.0-grid-4.40.0-20260202\nTagged selenium/node-edge:123.0-edgedriver-123.0-20260202\nTagged selenium/standalone-edge:123.0-edgedriver-123.0-20260202\nTagged selenium/node-edge:123.0-20260202\nTagged selenium/standalone-edge:123.0-20260202\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.40.0/edge_124.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.40.0 20260202 selenium false edge true\nTagging images for browser edge, version 4.40.0, build date 20260202, namespace selenium\nSelenium Grid version -> 4.40.0-20260202\nEdge version -> 124.0.2478.109\nShort Edge version -> 124.0\nEdgeDriver version -> 124.0.2478.109\nShort EdgeDriver version -> 124.0\nTagged selenium/node-edge:124.0.2478.109-edgedriver-124.0.2478.109-grid-4.40.0-20260202\nTagged selenium/standalone-edge:124.0.2478.109-edgedriver-124.0.2478.109-grid-4.40.0-20260202\nTagged selenium/node-edge:124.0.2478.109-edgedriver-124.0.2478.109-20260202\nTagged selenium/standalone-edge:124.0.2478.109-edgedriver-124.0.2478.109-20260202\nTagged selenium/node-edge:124.0.2478.109-20260202\nTagged selenium/standalone-edge:124.0.2478.109-20260202\nTagged selenium/node-edge:124.0-edgedriver-124.0-grid-4.40.0-20260202\nTagged selenium/standalone-edge:124.0-edgedriver-124.0-grid-4.40.0-20260202\nTagged selenium/node-edge:124.0-edgedriver-124.0-20260202\nTagged selenium/standalone-edge:124.0-edgedriver-124.0-20260202\nTagged selenium/node-edge:124.0-20260202\nTagged selenium/standalone-edge:124.0-20260202\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.40.0/edge_125.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.40.0 20260202 selenium false edge true\nTagging images for browser edge, version 4.40.0, build date 20260202, namespace selenium\nSelenium Grid version -> 4.40.0-20260202\nEdge version -> 125.0.2535.92\nShort Edge version -> 125.0\nEdgeDriver version -> 125.0.2535.92\nShort EdgeDriver version -> 125.0\nTagged selenium/node-edge:125.0.2535.92-edgedriver-125.0.2535.92-grid-4.40.0-20260202\nTagged selenium/standalone-edge:125.0.2535.92-edgedriver-125.0.2535.92-grid-4.40.0-20260202\nTagged selenium/node-edge:125.0.2535.92-edgedriver-125.0.2535.92-20260202\nTagged selenium/standalone-edge:125.0.2535.92-edgedriver-125.0.2535.92-20260202\nTagged selenium/node-edge:125.0.2535.92-20260202\nTagged selenium/standalone-edge:125.0.2535.92-20260202\nTagged selenium/node-edge:125.0-edgedriver-125.0-grid-4.40.0-20260202\nTagged selenium/standalone-edge:125.0-edgedriver-125.0-grid-4.40.0-20260202\nTagged selenium/node-edge:125.0-edgedriver-125.0-20260202\nTagged selenium/standalone-edge:125.0-edgedriver-125.0-20260202\nTagged selenium/node-edge:125.0-20260202\nTagged selenium/standalone-edge:125.0-20260202\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.40.0/edge_126.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.40.0 20260202 selenium false edge true\nTagging images for browser edge, version 4.40.0, build date 20260202, namespace selenium\nSelenium Grid version -> 4.40.0-20260202\nEdge version -> 126.0.2592.113\nShort Edge version -> 126.0\nEdgeDriver version -> 126.0.2592.123\nShort EdgeDriver version -> 126.0\nTagged selenium/node-edge:126.0.2592.113-edgedriver-126.0.2592.123-grid-4.40.0-20260202\nTagged selenium/standalone-edge:126.0.2592.113-edgedriver-126.0.2592.123-grid-4.40.0-20260202\nTagged selenium/node-edge:126.0.2592.113-edgedriver-126.0.2592.123-20260202\nTagged selenium/standalone-edge:126.0.2592.113-edgedriver-126.0.2592.123-20260202\nTagged selenium/node-edge:126.0.2592.113-20260202\nTagged selenium/standalone-edge:126.0.2592.113-20260202\nTagged selenium/node-edge:126.0-edgedriver-126.0-grid-4.40.0-20260202\nTagged selenium/standalone-edge:126.0-edgedriver-126.0-grid-4.40.0-20260202\nTagged selenium/node-edge:126.0-edgedriver-126.0-20260202\nTagged selenium/standalone-edge:126.0-edgedriver-126.0-20260202\nTagged selenium/node-edge:126.0-20260202\nTagged selenium/standalone-edge:126.0-20260202\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.40.0/edge_127.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.40.0 20260202 selenium false edge true\nTagging images for browser edge, version 4.40.0, build date 20260202, namespace selenium\nSelenium Grid version -> 4.40.0-20260202\nEdge version -> 127.0.2651.105\nShort Edge version -> 127.0\nEdgeDriver version -> 127.0.2651.107\nShort EdgeDriver version -> 127.0\nTagged selenium/node-edge:127.0.2651.105-edgedriver-127.0.2651.107-grid-4.40.0-20260202\nTagged selenium/standalone-edge:127.0.2651.105-edgedriver-127.0.2651.107-grid-4.40.0-20260202\nTagged selenium/node-edge:127.0.2651.105-edgedriver-127.0.2651.107-20260202\nTagged selenium/standalone-edge:127.0.2651.105-edgedriver-127.0.2651.107-20260202\nTagged selenium/node-edge:127.0.2651.105-20260202\nTagged selenium/standalone-edge:127.0.2651.105-20260202\nTagged selenium/node-edge:127.0-edgedriver-127.0-grid-4.40.0-20260202\nTagged selenium/standalone-edge:127.0-edgedriver-127.0-grid-4.40.0-20260202\nTagged selenium/node-edge:127.0-edgedriver-127.0-20260202\nTagged selenium/standalone-edge:127.0-edgedriver-127.0-20260202\nTagged selenium/node-edge:127.0-20260202\nTagged selenium/standalone-edge:127.0-20260202\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.40.0/edge_128.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.40.0 20260202 selenium false edge true\nTagging images for browser edge, version 4.40.0, build date 20260202, namespace selenium\nSelenium Grid version -> 4.40.0-20260202\nEdge version -> 128.0.2739.79\nShort Edge version -> 128.0\nEdgeDriver version -> 128.0.2739.81\nShort EdgeDriver version -> 128.0\nTagged selenium/node-edge:128.0.2739.79-edgedriver-128.0.2739.81-grid-4.40.0-20260202\nTagged selenium/standalone-edge:128.0.2739.79-edgedriver-128.0.2739.81-grid-4.40.0-20260202\nTagged selenium/node-edge:128.0.2739.79-edgedriver-128.0.2739.81-20260202\nTagged selenium/standalone-edge:128.0.2739.79-edgedriver-128.0.2739.81-20260202\nTagged selenium/node-edge:128.0.2739.79-20260202\nTagged selenium/standalone-edge:128.0.2739.79-20260202\nTagged selenium/node-edge:128.0-edgedriver-128.0-grid-4.40.0-20260202\nTagged selenium/standalone-edge:128.0-edgedriver-128.0-grid-4.40.0-20260202\nTagged selenium/node-edge:128.0-edgedriver-128.0-20260202\nTagged selenium/standalone-edge:128.0-edgedriver-128.0-20260202\nTagged selenium/node-edge:128.0-20260202\nTagged selenium/standalone-edge:128.0-20260202\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.40.0/edge_129.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.40.0 20260202 selenium false edge true\nTagging images for browser edge, version 4.40.0, build date 20260202, namespace selenium\nSelenium Grid version -> 4.40.0-20260202\nEdge version -> 129.0.2792.89\nShort Edge version -> 129.0\nEdgeDriver version -> 129.0.2792.98\nShort EdgeDriver version -> 129.0\nTagged selenium/node-edge:129.0.2792.89-edgedriver-129.0.2792.98-grid-4.40.0-20260202\nTagged selenium/standalone-edge:129.0.2792.89-edgedriver-129.0.2792.98-grid-4.40.0-20260202\nTagged selenium/node-edge:129.0.2792.89-edgedriver-129.0.2792.98-20260202\nTagged selenium/standalone-edge:129.0.2792.89-edgedriver-129.0.2792.98-20260202\nTagged selenium/node-edge:129.0.2792.89-20260202\nTagged selenium/standalone-edge:129.0.2792.89-20260202\nTagged selenium/node-edge:129.0-edgedriver-129.0-grid-4.40.0-20260202\nTagged selenium/standalone-edge:129.0-edgedriver-129.0-grid-4.40.0-20260202\nTagged selenium/node-edge:129.0-edgedriver-129.0-20260202\nTagged selenium/standalone-edge:129.0-edgedriver-129.0-20260202\nTagged selenium/node-edge:129.0-20260202\nTagged selenium/standalone-edge:129.0-20260202\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.40.0/edge_130.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.40.0 20260202 selenium false edge true\nTagging images for browser edge, version 4.40.0, build date 20260202, namespace selenium\nSelenium Grid version -> 4.40.0-20260202\nEdge version -> 130.0.2849.80\nShort Edge version -> 130.0\nEdgeDriver version -> 130.0.2849.78\nShort EdgeDriver version -> 130.0\nTagged selenium/node-edge:130.0.2849.80-edgedriver-130.0.2849.78-grid-4.40.0-20260202\nTagged selenium/standalone-edge:130.0.2849.80-edgedriver-130.0.2849.78-grid-4.40.0-20260202\nTagged selenium/node-edge:130.0.2849.80-edgedriver-130.0.2849.78-20260202\nTagged selenium/standalone-edge:130.0.2849.80-edgedriver-130.0.2849.78-20260202\nTagged selenium/node-edge:130.0.2849.80-20260202\nTagged selenium/standalone-edge:130.0.2849.80-20260202\nTagged selenium/node-edge:130.0-edgedriver-130.0-grid-4.40.0-20260202\nTagged selenium/standalone-edge:130.0-edgedriver-130.0-grid-4.40.0-20260202\nTagged selenium/node-edge:130.0-edgedriver-130.0-20260202\nTagged selenium/standalone-edge:130.0-edgedriver-130.0-20260202\nTagged selenium/node-edge:130.0-20260202\nTagged selenium/standalone-edge:130.0-20260202\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.40.0/edge_131.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.40.0 20260202 selenium false edge true\nTagging images for browser edge, version 4.40.0, build date 20260202, namespace selenium\nSelenium Grid version -> 4.40.0-20260202\nEdge version -> 131.0.2903.147\nShort Edge version -> 131.0\nEdgeDriver version -> 131.0.2903.147\nShort EdgeDriver version -> 131.0\nTagged selenium/node-edge:131.0.2903.147-edgedriver-131.0.2903.147-grid-4.40.0-20260202\nTagged selenium/standalone-edge:131.0.2903.147-edgedriver-131.0.2903.147-grid-4.40.0-20260202\nTagged selenium/node-edge:131.0.2903.147-edgedriver-131.0.2903.147-20260202\nTagged selenium/standalone-edge:131.0.2903.147-edgedriver-131.0.2903.147-20260202\nTagged selenium/node-edge:131.0.2903.147-20260202\nTagged selenium/standalone-edge:131.0.2903.147-20260202\nTagged selenium/node-edge:131.0-edgedriver-131.0-grid-4.40.0-20260202\nTagged selenium/standalone-edge:131.0-edgedriver-131.0-grid-4.40.0-20260202\nTagged selenium/node-edge:131.0-edgedriver-131.0-20260202\nTagged selenium/standalone-edge:131.0-edgedriver-131.0-20260202\nTagged selenium/node-edge:131.0-20260202\nTagged selenium/standalone-edge:131.0-20260202\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.40.0/edge_132.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.40.0 20260202 selenium false edge true\nTagging images for browser edge, version 4.40.0, build date 20260202, namespace selenium\nSelenium Grid version -> 4.40.0-20260202\nEdge version -> 132.0.2957.140\nShort Edge version -> 132.0\nEdgeDriver version -> 132.0.2957.140\nShort EdgeDriver version -> 132.0\nTagged selenium/node-edge:132.0.2957.140-edgedriver-132.0.2957.140-grid-4.40.0-20260202\nTagged selenium/standalone-edge:132.0.2957.140-edgedriver-132.0.2957.140-grid-4.40.0-20260202\nTagged selenium/node-edge:132.0.2957.140-edgedriver-132.0.2957.140-20260202\nTagged selenium/standalone-edge:132.0.2957.140-edgedriver-132.0.2957.140-20260202\nTagged selenium/node-edge:132.0.2957.140-20260202\nTagged selenium/standalone-edge:132.0.2957.140-20260202\nTagged selenium/node-edge:132.0-edgedriver-132.0-grid-4.40.0-20260202\nTagged selenium/standalone-edge:132.0-edgedriver-132.0-grid-4.40.0-20260202\nTagged selenium/node-edge:132.0-edgedriver-132.0-20260202\nTagged selenium/standalone-edge:132.0-edgedriver-132.0-20260202\nTagged selenium/node-edge:132.0-20260202\nTagged selenium/standalone-edge:132.0-20260202\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.40.0/edge_133.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.40.0 20260202 selenium false edge true\nTagging images for browser edge, version 4.40.0, build date 20260202, namespace selenium\nSelenium Grid version -> 4.40.0-20260202\nEdge version -> 133.0.3065.92\nShort Edge version -> 133.0\nEdgeDriver version -> 133.0.3065.92\nShort EdgeDriver version -> 133.0\nTagged selenium/node-edge:133.0.3065.92-edgedriver-133.0.3065.92-grid-4.40.0-20260202\nTagged selenium/standalone-edge:133.0.3065.92-edgedriver-133.0.3065.92-grid-4.40.0-20260202\nTagged selenium/node-edge:133.0.3065.92-edgedriver-133.0.3065.92-20260202\nTagged selenium/standalone-edge:133.0.3065.92-edgedriver-133.0.3065.92-20260202\nTagged selenium/node-edge:133.0.3065.92-20260202\nTagged selenium/standalone-edge:133.0.3065.92-20260202\nTagged selenium/node-edge:133.0-edgedriver-133.0-grid-4.40.0-20260202\nTagged selenium/standalone-edge:133.0-edgedriver-133.0-grid-4.40.0-20260202\nTagged selenium/node-edge:133.0-edgedriver-133.0-20260202\nTagged selenium/standalone-edge:133.0-edgedriver-133.0-20260202\nTagged selenium/node-edge:133.0-20260202\nTagged selenium/standalone-edge:133.0-20260202\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.40.0/edge_134.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.40.0 20260202 selenium false edge true\nTagging images for browser edge, version 4.40.0, build date 20260202, namespace selenium\nSelenium Grid version -> 4.40.0-20260202\nEdge version -> 134.0.3124.95\nShort Edge version -> 134.0\nEdgeDriver version -> 134.0.3124.95\nShort EdgeDriver version -> 134.0\nTagged selenium/node-edge:134.0.3124.95-edgedriver-134.0.3124.95-grid-4.40.0-20260202\nTagged selenium/standalone-edge:134.0.3124.95-edgedriver-134.0.3124.95-grid-4.40.0-20260202\nTagged selenium/node-edge:134.0.3124.95-edgedriver-134.0.3124.95-20260202\nTagged selenium/standalone-edge:134.0.3124.95-edgedriver-134.0.3124.95-20260202\nTagged selenium/node-edge:134.0.3124.95-20260202\nTagged selenium/standalone-edge:134.0.3124.95-20260202\nTagged selenium/node-edge:134.0-edgedriver-134.0-grid-4.40.0-20260202\nTagged selenium/standalone-edge:134.0-edgedriver-134.0-grid-4.40.0-20260202\nTagged selenium/node-edge:134.0-edgedriver-134.0-20260202\nTagged selenium/standalone-edge:134.0-edgedriver-134.0-20260202\nTagged selenium/node-edge:134.0-20260202\nTagged selenium/standalone-edge:134.0-20260202\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.40.0/edge_135.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.40.0 20260202 selenium false edge true\nTagging images for browser edge, version 4.40.0, build date 20260202, namespace selenium\nSelenium Grid version -> 4.40.0-20260202\nEdge version -> 135.0.3179.98\nShort Edge version -> 135.0\nEdgeDriver version -> 135.0.3179.98\nShort EdgeDriver version -> 135.0\nTagged selenium/node-edge:135.0.3179.98-edgedriver-135.0.3179.98-grid-4.40.0-20260202\nTagged selenium/standalone-edge:135.0.3179.98-edgedriver-135.0.3179.98-grid-4.40.0-20260202\nTagged selenium/node-edge:135.0.3179.98-edgedriver-135.0.3179.98-20260202\nTagged selenium/standalone-edge:135.0.3179.98-edgedriver-135.0.3179.98-20260202\nTagged selenium/node-edge:135.0.3179.98-20260202\nTagged selenium/standalone-edge:135.0.3179.98-20260202\nTagged selenium/node-edge:135.0-edgedriver-135.0-grid-4.40.0-20260202\nTagged selenium/standalone-edge:135.0-edgedriver-135.0-grid-4.40.0-20260202\nTagged selenium/node-edge:135.0-edgedriver-135.0-20260202\nTagged selenium/standalone-edge:135.0-edgedriver-135.0-20260202\nTagged selenium/node-edge:135.0-20260202\nTagged selenium/standalone-edge:135.0-20260202\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.40.0/edge_136.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.40.0 20260202 selenium false edge true\nTagging images for browser edge, version 4.40.0, build date 20260202, namespace selenium\nSelenium Grid version -> 4.40.0-20260202\nEdge version -> 136.0.3240.92\nShort Edge version -> 136.0\nEdgeDriver version -> 136.0.3240.92\nShort EdgeDriver version -> 136.0\nTagged selenium/node-edge:136.0.3240.92-edgedriver-136.0.3240.92-grid-4.40.0-20260202\nTagged selenium/standalone-edge:136.0.3240.92-edgedriver-136.0.3240.92-grid-4.40.0-20260202\nTagged selenium/node-edge:136.0.3240.92-edgedriver-136.0.3240.92-20260202\nTagged selenium/standalone-edge:136.0.3240.92-edgedriver-136.0.3240.92-20260202\nTagged selenium/node-edge:136.0.3240.92-20260202\nTagged selenium/standalone-edge:136.0.3240.92-20260202\nTagged selenium/node-edge:136.0-edgedriver-136.0-grid-4.40.0-20260202\nTagged selenium/standalone-edge:136.0-edgedriver-136.0-grid-4.40.0-20260202\nTagged selenium/node-edge:136.0-edgedriver-136.0-20260202\nTagged selenium/standalone-edge:136.0-edgedriver-136.0-20260202\nTagged selenium/node-edge:136.0-20260202\nTagged selenium/standalone-edge:136.0-20260202\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.40.0/edge_137.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.40.0 20260202 selenium false edge true\nTagging images for browser edge, version 4.40.0, build date 20260202, namespace selenium\nSelenium Grid version -> 4.40.0-20260202\nEdge version -> 137.0.3296.93\nShort Edge version -> 137.0\nEdgeDriver version -> 137.0.3296.93\nShort EdgeDriver version -> 137.0\nTagged selenium/node-edge:137.0.3296.93-edgedriver-137.0.3296.93-grid-4.40.0-20260202\nTagged selenium/standalone-edge:137.0.3296.93-edgedriver-137.0.3296.93-grid-4.40.0-20260202\nTagged selenium/node-edge:137.0.3296.93-edgedriver-137.0.3296.93-20260202\nTagged selenium/standalone-edge:137.0.3296.93-edgedriver-137.0.3296.93-20260202\nTagged selenium/node-edge:137.0.3296.93-20260202\nTagged selenium/standalone-edge:137.0.3296.93-20260202\nTagged selenium/node-edge:137.0-edgedriver-137.0-grid-4.40.0-20260202\nTagged selenium/standalone-edge:137.0-edgedriver-137.0-grid-4.40.0-20260202\nTagged selenium/node-edge:137.0-edgedriver-137.0-20260202\nTagged selenium/standalone-edge:137.0-edgedriver-137.0-20260202\nTagged selenium/node-edge:137.0-20260202\nTagged selenium/standalone-edge:137.0-20260202\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.40.0/edge_138.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.40.0 20260202 selenium false edge true\nTagging images for browser edge, version 4.40.0, build date 20260202, namespace selenium\nSelenium Grid version -> 4.40.0-20260202\nEdge version -> 138.0.3351.121\nShort Edge version -> 138.0\nEdgeDriver version -> 138.0.3351.121\nShort EdgeDriver version -> 138.0\nTagged selenium/node-edge:138.0.3351.121-edgedriver-138.0.3351.121-grid-4.40.0-20260202\nTagged selenium/standalone-edge:138.0.3351.121-edgedriver-138.0.3351.121-grid-4.40.0-20260202\nTagged selenium/node-edge:138.0.3351.121-edgedriver-138.0.3351.121-20260202\nTagged selenium/standalone-edge:138.0.3351.121-edgedriver-138.0.3351.121-20260202\nTagged selenium/node-edge:138.0.3351.121-20260202\nTagged selenium/standalone-edge:138.0.3351.121-20260202\nTagged selenium/node-edge:138.0-edgedriver-138.0-grid-4.40.0-20260202\nTagged selenium/standalone-edge:138.0-edgedriver-138.0-grid-4.40.0-20260202\nTagged selenium/node-edge:138.0-edgedriver-138.0-20260202\nTagged selenium/standalone-edge:138.0-edgedriver-138.0-20260202\nTagged selenium/node-edge:138.0-20260202\nTagged selenium/standalone-edge:138.0-20260202\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.40.0/edge_139.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.40.0 20260202 selenium false edge true\nTagging images for browser edge, version 4.40.0, build date 20260202, namespace selenium\nSelenium Grid version -> 4.40.0-20260202\nEdge version -> 139.0.3405.125\nShort Edge version -> 139.0\nEdgeDriver version -> 139.0.3405.125\nShort EdgeDriver version -> 139.0\nTagged selenium/node-edge:139.0.3405.125-edgedriver-139.0.3405.125-grid-4.40.0-20260202\nTagged selenium/standalone-edge:139.0.3405.125-edgedriver-139.0.3405.125-grid-4.40.0-20260202\nTagged selenium/node-edge:139.0.3405.125-edgedriver-139.0.3405.125-20260202\nTagged selenium/standalone-edge:139.0.3405.125-edgedriver-139.0.3405.125-20260202\nTagged selenium/node-edge:139.0.3405.125-20260202\nTagged selenium/standalone-edge:139.0.3405.125-20260202\nTagged selenium/node-edge:139.0-edgedriver-139.0-grid-4.40.0-20260202\nTagged selenium/standalone-edge:139.0-edgedriver-139.0-grid-4.40.0-20260202\nTagged selenium/node-edge:139.0-edgedriver-139.0-20260202\nTagged selenium/standalone-edge:139.0-edgedriver-139.0-20260202\nTagged selenium/node-edge:139.0-20260202\nTagged selenium/standalone-edge:139.0-20260202\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.40.0/edge_140.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.40.0 20260202 selenium false edge true\nTagging images for browser edge, version 4.40.0, build date 20260202, namespace selenium\nSelenium Grid version -> 4.40.0-20260202\nEdge version -> 140.0.3485.94\nShort Edge version -> 140.0\nEdgeDriver version -> 140.0.3485.94\nShort EdgeDriver version -> 140.0\nTagged selenium/node-edge:140.0.3485.94-edgedriver-140.0.3485.94-grid-4.40.0-20260202\nTagged selenium/standalone-edge:140.0.3485.94-edgedriver-140.0.3485.94-grid-4.40.0-20260202\nTagged selenium/node-edge:140.0.3485.94-edgedriver-140.0.3485.94-20260202\nTagged selenium/standalone-edge:140.0.3485.94-edgedriver-140.0.3485.94-20260202\nTagged selenium/node-edge:140.0.3485.94-20260202\nTagged selenium/standalone-edge:140.0.3485.94-20260202\nTagged selenium/node-edge:140.0-edgedriver-140.0-grid-4.40.0-20260202\nTagged selenium/standalone-edge:140.0-edgedriver-140.0-grid-4.40.0-20260202\nTagged selenium/node-edge:140.0-edgedriver-140.0-20260202\nTagged selenium/standalone-edge:140.0-edgedriver-140.0-20260202\nTagged selenium/node-edge:140.0-20260202\nTagged selenium/standalone-edge:140.0-20260202\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.40.0/edge_141.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.40.0 20260202 selenium false edge true\nTagging images for browser edge, version 4.40.0, build date 20260202, namespace selenium\nSelenium Grid version -> 4.40.0-20260202\nEdge version -> 141.0.3537.99\nShort Edge version -> 141.0\nEdgeDriver version -> 141.0.3537.99\nShort EdgeDriver version -> 141.0\nTagged selenium/node-edge:141.0.3537.99-edgedriver-141.0.3537.99-grid-4.40.0-20260202\nTagged selenium/standalone-edge:141.0.3537.99-edgedriver-141.0.3537.99-grid-4.40.0-20260202\nTagged selenium/node-edge:141.0.3537.99-edgedriver-141.0.3537.99-20260202\nTagged selenium/standalone-edge:141.0.3537.99-edgedriver-141.0.3537.99-20260202\nTagged selenium/node-edge:141.0.3537.99-20260202\nTagged selenium/standalone-edge:141.0.3537.99-20260202\nTagged selenium/node-edge:141.0-edgedriver-141.0-grid-4.40.0-20260202\nTagged selenium/standalone-edge:141.0-edgedriver-141.0-grid-4.40.0-20260202\nTagged selenium/node-edge:141.0-edgedriver-141.0-20260202\nTagged selenium/standalone-edge:141.0-edgedriver-141.0-20260202\nTagged selenium/node-edge:141.0-20260202\nTagged selenium/standalone-edge:141.0-20260202\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.40.0/edge_142.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.40.0 20260202 selenium false edge true\nTagging images for browser edge, version 4.40.0, build date 20260202, namespace selenium\nSelenium Grid version -> 4.40.0-20260202\nEdge version -> 142.0.3595.94\nShort Edge version -> 142.0\nEdgeDriver version -> 142.0.3595.94\nShort EdgeDriver version -> 142.0\nTagged selenium/node-edge:142.0.3595.94-edgedriver-142.0.3595.94-grid-4.40.0-20260202\nTagged selenium/standalone-edge:142.0.3595.94-edgedriver-142.0.3595.94-grid-4.40.0-20260202\nTagged selenium/node-edge:142.0.3595.94-edgedriver-142.0.3595.94-20260202\nTagged selenium/standalone-edge:142.0.3595.94-edgedriver-142.0.3595.94-20260202\nTagged selenium/node-edge:142.0.3595.94-20260202\nTagged selenium/standalone-edge:142.0.3595.94-20260202\nTagged selenium/node-edge:142.0-edgedriver-142.0-grid-4.40.0-20260202\nTagged selenium/standalone-edge:142.0-edgedriver-142.0-grid-4.40.0-20260202\nTagged selenium/node-edge:142.0-edgedriver-142.0-20260202\nTagged selenium/standalone-edge:142.0-edgedriver-142.0-20260202\nTagged selenium/node-edge:142.0-20260202\nTagged selenium/standalone-edge:142.0-20260202\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.40.0/edge_143.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.40.0 20260202 selenium false edge true\nTagging images for browser edge, version 4.40.0, build date 20260202, namespace selenium\nSelenium Grid version -> 4.40.0-20260202\nEdge version -> 143.0.3650.139\nShort Edge version -> 143.0\nEdgeDriver version -> 143.0.3650.139\nShort EdgeDriver version -> 143.0\nTagged selenium/node-edge:143.0.3650.139-edgedriver-143.0.3650.139-grid-4.40.0-20260202\nTagged selenium/standalone-edge:143.0.3650.139-edgedriver-143.0.3650.139-grid-4.40.0-20260202\nTagged selenium/node-edge:143.0.3650.139-edgedriver-143.0.3650.139-20260202\nTagged selenium/standalone-edge:143.0.3650.139-edgedriver-143.0.3650.139-20260202\nTagged selenium/node-edge:143.0.3650.139-20260202\nTagged selenium/standalone-edge:143.0.3650.139-20260202\nTagged selenium/node-edge:143.0-edgedriver-143.0-grid-4.40.0-20260202\nTagged selenium/standalone-edge:143.0-edgedriver-143.0-grid-4.40.0-20260202\nTagged selenium/node-edge:143.0-edgedriver-143.0-20260202\nTagged selenium/standalone-edge:143.0-edgedriver-143.0-20260202\nTagged selenium/node-edge:143.0-20260202\nTagged selenium/standalone-edge:143.0-20260202\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.40.0/edge_144.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.40.0 20260202 selenium false edge true\nTagging images for browser edge, version 4.40.0, build date 20260202, namespace selenium\nSelenium Grid version -> 4.40.0-20260202\nEdge version -> 144.0.3719.104\nShort Edge version -> 144.0\nEdgeDriver version -> 144.0.3719.104\nShort EdgeDriver version -> 144.0\nTagged selenium/node-edge:144.0.3719.104-edgedriver-144.0.3719.104-grid-4.40.0-20260202\nTagged selenium/standalone-edge:144.0.3719.104-edgedriver-144.0.3719.104-grid-4.40.0-20260202\nTagged selenium/node-edge:144.0.3719.104-edgedriver-144.0.3719.104-20260202\nTagged selenium/standalone-edge:144.0.3719.104-edgedriver-144.0.3719.104-20260202\nTagged selenium/node-edge:144.0.3719.104-20260202\nTagged selenium/standalone-edge:144.0.3719.104-20260202\nTagged selenium/node-edge:144.0-edgedriver-144.0-grid-4.40.0-20260202\nTagged selenium/standalone-edge:144.0-edgedriver-144.0-grid-4.40.0-20260202\nTagged selenium/node-edge:144.0-edgedriver-144.0-20260202\nTagged selenium/standalone-edge:144.0-edgedriver-144.0-20260202\nTagged selenium/node-edge:144.0-20260202\nTagged selenium/standalone-edge:144.0-20260202\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.40.0/firefox_100.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.40.0 20260202 selenium false firefox true\nTagging images for browser firefox, version 4.40.0, build date 20260202, namespace selenium\nSelenium Grid version -> 4.40.0-20260202\nFirefox version -> 100.0.2\nShort Firefox version -> 100.0\nGeckoDriver version -> 0.36.0\nShort GeckoDriver version -> 0.36\nTagged selenium/node-firefox:100.0.2-geckodriver-0.36.0-grid-4.40.0-20260202\nTagged selenium/standalone-firefox:100.0.2-geckodriver-0.36.0-grid-4.40.0-20260202\nTagged selenium/node-firefox:100.0.2-geckodriver-0.36.0-20260202\nTagged selenium/standalone-firefox:100.0.2-geckodriver-0.36.0-20260202\nTagged selenium/node-firefox:100.0.2-20260202\nTagged selenium/standalone-firefox:100.0.2-20260202\nTagged selenium/node-firefox:100.0-geckodriver-0.36-grid-4.40.0-20260202\nTagged selenium/standalone-firefox:100.0-geckodriver-0.36-grid-4.40.0-20260202\nTagged selenium/node-firefox:100.0-geckodriver-0.36-20260202\nTagged selenium/standalone-firefox:100.0-geckodriver-0.36-20260202\nTagged selenium/node-firefox:100.0-20260202\nTagged selenium/standalone-firefox:100.0-20260202\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.40.0/firefox_101.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.40.0 20260202 selenium false firefox true\nTagging images for browser firefox, version 4.40.0, build date 20260202, namespace selenium\nSelenium Grid version -> 4.40.0-20260202\nFirefox version -> 101.0.1\nShort Firefox version -> 101.0\nGeckoDriver version -> 0.36.0\nShort GeckoDriver version -> 0.36\nTagged selenium/node-firefox:101.0.1-geckodriver-0.36.0-grid-4.40.0-20260202\nTagged selenium/standalone-firefox:101.0.1-geckodriver-0.36.0-grid-4.40.0-20260202\nTagged selenium/node-firefox:101.0.1-geckodriver-0.36.0-20260202\nTagged selenium/standalone-firefox:101.0.1-geckodriver-0.36.0-20260202\nTagged selenium/node-firefox:101.0.1-20260202\nTagged selenium/standalone-firefox:101.0.1-20260202\nTagged selenium/node-firefox:101.0-geckodriver-0.36-grid-4.40.0-20260202\nTagged selenium/standalone-firefox:101.0-geckodriver-0.36-grid-4.40.0-20260202\nTagged selenium/node-firefox:101.0-geckodriver-0.36-20260202\nTagged selenium/standalone-firefox:101.0-geckodriver-0.36-20260202\nTagged selenium/node-firefox:101.0-20260202\nTagged selenium/standalone-firefox:101.0-20260202\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.40.0/firefox_102.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.40.0 20260202 selenium false firefox true\nTagging images for browser firefox, version 4.40.0, build date 20260202, namespace selenium\nSelenium Grid version -> 4.40.0-20260202\nFirefox version -> 102.0.1\nShort Firefox version -> 102.0\nGeckoDriver version -> 0.36.0\nShort GeckoDriver version -> 0.36\nTagged selenium/node-firefox:102.0.1-geckodriver-0.36.0-grid-4.40.0-20260202\nTagged selenium/standalone-firefox:102.0.1-geckodriver-0.36.0-grid-4.40.0-20260202\nTagged selenium/node-firefox:102.0.1-geckodriver-0.36.0-20260202\nTagged selenium/standalone-firefox:102.0.1-geckodriver-0.36.0-20260202\nTagged selenium/node-firefox:102.0.1-20260202\nTagged selenium/standalone-firefox:102.0.1-20260202\nTagged selenium/node-firefox:102.0-geckodriver-0.36-grid-4.40.0-20260202\nTagged selenium/standalone-firefox:102.0-geckodriver-0.36-grid-4.40.0-20260202\nTagged selenium/node-firefox:102.0-geckodriver-0.36-20260202\nTagged selenium/standalone-firefox:102.0-geckodriver-0.36-20260202\nTagged selenium/node-firefox:102.0-20260202\nTagged selenium/standalone-firefox:102.0-20260202\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.40.0/firefox_103.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.40.0 20260202 selenium false firefox true\nTagging images for browser firefox, version 4.40.0, build date 20260202, namespace selenium\nSelenium Grid version -> 4.40.0-20260202\nFirefox version -> 103.0.2\nShort Firefox version -> 103.0\nGeckoDriver version -> 0.36.0\nShort GeckoDriver version -> 0.36\nTagged selenium/node-firefox:103.0.2-geckodriver-0.36.0-grid-4.40.0-20260202\nTagged selenium/standalone-firefox:103.0.2-geckodriver-0.36.0-grid-4.40.0-20260202\nTagged selenium/node-firefox:103.0.2-geckodriver-0.36.0-20260202\nTagged selenium/standalone-firefox:103.0.2-geckodriver-0.36.0-20260202\nTagged selenium/node-firefox:103.0.2-20260202\nTagged selenium/standalone-firefox:103.0.2-20260202\nTagged selenium/node-firefox:103.0-geckodriver-0.36-grid-4.40.0-20260202\nTagged selenium/standalone-firefox:103.0-geckodriver-0.36-grid-4.40.0-20260202\nTagged selenium/node-firefox:103.0-geckodriver-0.36-20260202\nTagged selenium/standalone-firefox:103.0-geckodriver-0.36-20260202\nTagged selenium/node-firefox:103.0-20260202\nTagged selenium/standalone-firefox:103.0-20260202\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.40.0/firefox_104.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.40.0 20260202 selenium false firefox true\nTagging images for browser firefox, version 4.40.0, build date 20260202, namespace selenium\nSelenium Grid version -> 4.40.0-20260202\nFirefox version -> 104.0.2\nShort Firefox version -> 104.0\nGeckoDriver version -> 0.36.0\nShort GeckoDriver version -> 0.36\nTagged selenium/node-firefox:104.0.2-geckodriver-0.36.0-grid-4.40.0-20260202\nTagged selenium/standalone-firefox:104.0.2-geckodriver-0.36.0-grid-4.40.0-20260202\nTagged selenium/node-firefox:104.0.2-geckodriver-0.36.0-20260202\nTagged selenium/standalone-firefox:104.0.2-geckodriver-0.36.0-20260202\nTagged selenium/node-firefox:104.0.2-20260202\nTagged selenium/standalone-firefox:104.0.2-20260202\nTagged selenium/node-firefox:104.0-geckodriver-0.36-grid-4.40.0-20260202\nTagged selenium/standalone-firefox:104.0-geckodriver-0.36-grid-4.40.0-20260202\nTagged selenium/node-firefox:104.0-geckodriver-0.36-20260202\nTagged selenium/standalone-firefox:104.0-geckodriver-0.36-20260202\nTagged selenium/node-firefox:104.0-20260202\nTagged selenium/standalone-firefox:104.0-20260202\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.40.0/firefox_105.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.40.0 20260202 selenium false firefox true\nTagging images for browser firefox, version 4.40.0, build date 20260202, namespace selenium\nSelenium Grid version -> 4.40.0-20260202\nFirefox version -> 105.0.3\nShort Firefox version -> 105.0\nGeckoDriver version -> 0.36.0\nShort GeckoDriver version -> 0.36\nTagged selenium/node-firefox:105.0.3-geckodriver-0.36.0-grid-4.40.0-20260202\nTagged selenium/standalone-firefox:105.0.3-geckodriver-0.36.0-grid-4.40.0-20260202\nTagged selenium/node-firefox:105.0.3-geckodriver-0.36.0-20260202\nTagged selenium/standalone-firefox:105.0.3-geckodriver-0.36.0-20260202\nTagged selenium/node-firefox:105.0.3-20260202\nTagged selenium/standalone-firefox:105.0.3-20260202\nTagged selenium/node-firefox:105.0-geckodriver-0.36-grid-4.40.0-20260202\nTagged selenium/standalone-firefox:105.0-geckodriver-0.36-grid-4.40.0-20260202\nTagged selenium/node-firefox:105.0-geckodriver-0.36-20260202\nTagged selenium/standalone-firefox:105.0-geckodriver-0.36-20260202\nTagged selenium/node-firefox:105.0-20260202\nTagged selenium/standalone-firefox:105.0-20260202\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.40.0/firefox_106.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.40.0 20260202 selenium false firefox true\nTagging images for browser firefox, version 4.40.0, build date 20260202, namespace selenium\nSelenium Grid version -> 4.40.0-20260202\nFirefox version -> 106.0.5\nShort Firefox version -> 106.0\nGeckoDriver version -> 0.36.0\nShort GeckoDriver version -> 0.36\nTagged selenium/node-firefox:106.0.5-geckodriver-0.36.0-grid-4.40.0-20260202\nTagged selenium/standalone-firefox:106.0.5-geckodriver-0.36.0-grid-4.40.0-20260202\nTagged selenium/node-firefox:106.0.5-geckodriver-0.36.0-20260202\nTagged selenium/standalone-firefox:106.0.5-geckodriver-0.36.0-20260202\nTagged selenium/node-firefox:106.0.5-20260202\nTagged selenium/standalone-firefox:106.0.5-20260202\nTagged selenium/node-firefox:106.0-geckodriver-0.36-grid-4.40.0-20260202\nTagged selenium/standalone-firefox:106.0-geckodriver-0.36-grid-4.40.0-20260202\nTagged selenium/node-firefox:106.0-geckodriver-0.36-20260202\nTagged selenium/standalone-firefox:106.0-geckodriver-0.36-20260202\nTagged selenium/node-firefox:106.0-20260202\nTagged selenium/standalone-firefox:106.0-20260202\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.40.0/firefox_107.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.40.0 20260202 selenium false firefox true\nTagging images for browser firefox, version 4.40.0, build date 20260202, namespace selenium\nSelenium Grid version -> 4.40.0-20260202\nFirefox version -> 107.0.1\nShort Firefox version -> 107.0\nGeckoDriver version -> 0.36.0\nShort GeckoDriver version -> 0.36\nTagged selenium/node-firefox:107.0.1-geckodriver-0.36.0-grid-4.40.0-20260202\nTagged selenium/standalone-firefox:107.0.1-geckodriver-0.36.0-grid-4.40.0-20260202\nTagged selenium/node-firefox:107.0.1-geckodriver-0.36.0-20260202\nTagged selenium/standalone-firefox:107.0.1-geckodriver-0.36.0-20260202\nTagged selenium/node-firefox:107.0.1-20260202\nTagged selenium/standalone-firefox:107.0.1-20260202\nTagged selenium/node-firefox:107.0-geckodriver-0.36-grid-4.40.0-20260202\nTagged selenium/standalone-firefox:107.0-geckodriver-0.36-grid-4.40.0-20260202\nTagged selenium/node-firefox:107.0-geckodriver-0.36-20260202\nTagged selenium/standalone-firefox:107.0-geckodriver-0.36-20260202\nTagged selenium/node-firefox:107.0-20260202\nTagged selenium/standalone-firefox:107.0-20260202\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.40.0/firefox_108.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.40.0 20260202 selenium false firefox true\nTagging images for browser firefox, version 4.40.0, build date 20260202, namespace selenium\nSelenium Grid version -> 4.40.0-20260202\nFirefox version -> 108.0.2\nShort Firefox version -> 108.0\nGeckoDriver version -> 0.36.0\nShort GeckoDriver version -> 0.36\nTagged selenium/node-firefox:108.0.2-geckodriver-0.36.0-grid-4.40.0-20260202\nTagged selenium/standalone-firefox:108.0.2-geckodriver-0.36.0-grid-4.40.0-20260202\nTagged selenium/node-firefox:108.0.2-geckodriver-0.36.0-20260202\nTagged selenium/standalone-firefox:108.0.2-geckodriver-0.36.0-20260202\nTagged selenium/node-firefox:108.0.2-20260202\nTagged selenium/standalone-firefox:108.0.2-20260202\nTagged selenium/node-firefox:108.0-geckodriver-0.36-grid-4.40.0-20260202\nTagged selenium/standalone-firefox:108.0-geckodriver-0.36-grid-4.40.0-20260202\nTagged selenium/node-firefox:108.0-geckodriver-0.36-20260202\nTagged selenium/standalone-firefox:108.0-geckodriver-0.36-20260202\nTagged selenium/node-firefox:108.0-20260202\nTagged selenium/standalone-firefox:108.0-20260202\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.40.0/firefox_109.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.40.0 20260202 selenium false firefox true\nTagging images for browser firefox, version 4.40.0, build date 20260202, namespace selenium\nSelenium Grid version -> 4.40.0-20260202\nFirefox version -> 109.0.1\nShort Firefox version -> 109.0\nGeckoDriver version -> 0.36.0\nShort GeckoDriver version -> 0.36\nTagged selenium/node-firefox:109.0.1-geckodriver-0.36.0-grid-4.40.0-20260202\nTagged selenium/standalone-firefox:109.0.1-geckodriver-0.36.0-grid-4.40.0-20260202\nTagged selenium/node-firefox:109.0.1-geckodriver-0.36.0-20260202\nTagged selenium/standalone-firefox:109.0.1-geckodriver-0.36.0-20260202\nTagged selenium/node-firefox:109.0.1-20260202\nTagged selenium/standalone-firefox:109.0.1-20260202\nTagged selenium/node-firefox:109.0-geckodriver-0.36-grid-4.40.0-20260202\nTagged selenium/standalone-firefox:109.0-geckodriver-0.36-grid-4.40.0-20260202\nTagged selenium/node-firefox:109.0-geckodriver-0.36-20260202\nTagged selenium/standalone-firefox:109.0-geckodriver-0.36-20260202\nTagged selenium/node-firefox:109.0-20260202\nTagged selenium/standalone-firefox:109.0-20260202\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.40.0/firefox_110.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.40.0 20260202 selenium false firefox true\nTagging images for browser firefox, version 4.40.0, build date 20260202, namespace selenium\nSelenium Grid version -> 4.40.0-20260202\nFirefox version -> 110.0.1\nShort Firefox version -> 110.0\nGeckoDriver version -> 0.36.0\nShort GeckoDriver version -> 0.36\nTagged selenium/node-firefox:110.0.1-geckodriver-0.36.0-grid-4.40.0-20260202\nTagged selenium/standalone-firefox:110.0.1-geckodriver-0.36.0-grid-4.40.0-20260202\nTagged selenium/node-firefox:110.0.1-geckodriver-0.36.0-20260202\nTagged selenium/standalone-firefox:110.0.1-geckodriver-0.36.0-20260202\nTagged selenium/node-firefox:110.0.1-20260202\nTagged selenium/standalone-firefox:110.0.1-20260202\nTagged selenium/node-firefox:110.0-geckodriver-0.36-grid-4.40.0-20260202\nTagged selenium/standalone-firefox:110.0-geckodriver-0.36-grid-4.40.0-20260202\nTagged selenium/node-firefox:110.0-geckodriver-0.36-20260202\nTagged selenium/standalone-firefox:110.0-geckodriver-0.36-20260202\nTagged selenium/node-firefox:110.0-20260202\nTagged selenium/standalone-firefox:110.0-20260202\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.40.0/firefox_111.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.40.0 20260202 selenium false firefox true\nTagging images for browser firefox, version 4.40.0, build date 20260202, namespace selenium\nSelenium Grid version -> 4.40.0-20260202\nFirefox version -> 111.0.1\nShort Firefox version -> 111.0\nGeckoDriver version -> 0.36.0\nShort GeckoDriver version -> 0.36\nTagged selenium/node-firefox:111.0.1-geckodriver-0.36.0-grid-4.40.0-20260202\nTagged selenium/standalone-firefox:111.0.1-geckodriver-0.36.0-grid-4.40.0-20260202\nTagged selenium/node-firefox:111.0.1-geckodriver-0.36.0-20260202\nTagged selenium/standalone-firefox:111.0.1-geckodriver-0.36.0-20260202\nTagged selenium/node-firefox:111.0.1-20260202\nTagged selenium/standalone-firefox:111.0.1-20260202\nTagged selenium/node-firefox:111.0-geckodriver-0.36-grid-4.40.0-20260202\nTagged selenium/standalone-firefox:111.0-geckodriver-0.36-grid-4.40.0-20260202\nTagged selenium/node-firefox:111.0-geckodriver-0.36-20260202\nTagged selenium/standalone-firefox:111.0-geckodriver-0.36-20260202\nTagged selenium/node-firefox:111.0-20260202\nTagged selenium/standalone-firefox:111.0-20260202\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.40.0/firefox_112.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.40.0 20260202 selenium false firefox true\nTagging images for browser firefox, version 4.40.0, build date 20260202, namespace selenium\nSelenium Grid version -> 4.40.0-20260202\nFirefox version -> 112.0.2\nShort Firefox version -> 112.0\nGeckoDriver version -> 0.36.0\nShort GeckoDriver version -> 0.36\nTagged selenium/node-firefox:112.0.2-geckodriver-0.36.0-grid-4.40.0-20260202\nTagged selenium/standalone-firefox:112.0.2-geckodriver-0.36.0-grid-4.40.0-20260202\nTagged selenium/node-firefox:112.0.2-geckodriver-0.36.0-20260202\nTagged selenium/standalone-firefox:112.0.2-geckodriver-0.36.0-20260202\nTagged selenium/node-firefox:112.0.2-20260202\nTagged selenium/standalone-firefox:112.0.2-20260202\nTagged selenium/node-firefox:112.0-geckodriver-0.36-grid-4.40.0-20260202\nTagged selenium/standalone-firefox:112.0-geckodriver-0.36-grid-4.40.0-20260202\nTagged selenium/node-firefox:112.0-geckodriver-0.36-20260202\nTagged selenium/standalone-firefox:112.0-geckodriver-0.36-20260202\nTagged selenium/node-firefox:112.0-20260202\nTagged selenium/standalone-firefox:112.0-20260202\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.40.0/firefox_113.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.40.0 20260202 selenium false firefox true\nTagging images for browser firefox, version 4.40.0, build date 20260202, namespace selenium\nSelenium Grid version -> 4.40.0-20260202\nFirefox version -> 113.0.2\nShort Firefox version -> 113.0\nGeckoDriver version -> 0.36.0\nShort GeckoDriver version -> 0.36\nTagged selenium/node-firefox:113.0.2-geckodriver-0.36.0-grid-4.40.0-20260202\nTagged selenium/standalone-firefox:113.0.2-geckodriver-0.36.0-grid-4.40.0-20260202\nTagged selenium/node-firefox:113.0.2-geckodriver-0.36.0-20260202\nTagged selenium/standalone-firefox:113.0.2-geckodriver-0.36.0-20260202\nTagged selenium/node-firefox:113.0.2-20260202\nTagged selenium/standalone-firefox:113.0.2-20260202\nTagged selenium/node-firefox:113.0-geckodriver-0.36-grid-4.40.0-20260202\nTagged selenium/standalone-firefox:113.0-geckodriver-0.36-grid-4.40.0-20260202\nTagged selenium/node-firefox:113.0-geckodriver-0.36-20260202\nTagged selenium/standalone-firefox:113.0-geckodriver-0.36-20260202\nTagged selenium/node-firefox:113.0-20260202\nTagged selenium/standalone-firefox:113.0-20260202\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.40.0/firefox_114.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.40.0 20260202 selenium false firefox true\nTagging images for browser firefox, version 4.40.0, build date 20260202, namespace selenium\nSelenium Grid version -> 4.40.0-20260202\nFirefox version -> 114.0.2\nShort Firefox version -> 114.0\nGeckoDriver version -> 0.36.0\nShort GeckoDriver version -> 0.36\nTagged selenium/node-firefox:114.0.2-geckodriver-0.36.0-grid-4.40.0-20260202\nTagged selenium/standalone-firefox:114.0.2-geckodriver-0.36.0-grid-4.40.0-20260202\nTagged selenium/node-firefox:114.0.2-geckodriver-0.36.0-20260202\nTagged selenium/standalone-firefox:114.0.2-geckodriver-0.36.0-20260202\nTagged selenium/node-firefox:114.0.2-20260202\nTagged selenium/standalone-firefox:114.0.2-20260202\nTagged selenium/node-firefox:114.0-geckodriver-0.36-grid-4.40.0-20260202\nTagged selenium/standalone-firefox:114.0-geckodriver-0.36-grid-4.40.0-20260202\nTagged selenium/node-firefox:114.0-geckodriver-0.36-20260202\nTagged selenium/standalone-firefox:114.0-geckodriver-0.36-20260202\nTagged selenium/node-firefox:114.0-20260202\nTagged selenium/standalone-firefox:114.0-20260202\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.40.0/firefox_115.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.40.0 20260202 selenium false firefox true\nTagging images for browser firefox, version 4.40.0, build date 20260202, namespace selenium\nSelenium Grid version -> 4.40.0-20260202\nFirefox version -> 115.0.3\nShort Firefox version -> 115.0\nGeckoDriver version -> 0.36.0\nShort GeckoDriver version -> 0.36\nTagged selenium/node-firefox:115.0.3-geckodriver-0.36.0-grid-4.40.0-20260202\nTagged selenium/standalone-firefox:115.0.3-geckodriver-0.36.0-grid-4.40.0-20260202\nTagged selenium/node-firefox:115.0.3-geckodriver-0.36.0-20260202\nTagged selenium/standalone-firefox:115.0.3-geckodriver-0.36.0-20260202\nTagged selenium/node-firefox:115.0.3-20260202\nTagged selenium/standalone-firefox:115.0.3-20260202\nTagged selenium/node-firefox:115.0-geckodriver-0.36-grid-4.40.0-20260202\nTagged selenium/standalone-firefox:115.0-geckodriver-0.36-grid-4.40.0-20260202\nTagged selenium/node-firefox:115.0-geckodriver-0.36-20260202\nTagged selenium/standalone-firefox:115.0-geckodriver-0.36-20260202\nTagged selenium/node-firefox:115.0-20260202\nTagged selenium/standalone-firefox:115.0-20260202\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.40.0/firefox_116.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.40.0 20260202 selenium false firefox true\nTagging images for browser firefox, version 4.40.0, build date 20260202, namespace selenium\nSelenium Grid version -> 4.40.0-20260202\nFirefox version -> 116.0.3\nShort Firefox version -> 116.0\nGeckoDriver version -> 0.36.0\nShort GeckoDriver version -> 0.36\nTagged selenium/node-firefox:116.0.3-geckodriver-0.36.0-grid-4.40.0-20260202\nTagged selenium/standalone-firefox:116.0.3-geckodriver-0.36.0-grid-4.40.0-20260202\nTagged selenium/node-firefox:116.0.3-geckodriver-0.36.0-20260202\nTagged selenium/standalone-firefox:116.0.3-geckodriver-0.36.0-20260202\nTagged selenium/node-firefox:116.0.3-20260202\nTagged selenium/standalone-firefox:116.0.3-20260202\nTagged selenium/node-firefox:116.0-geckodriver-0.36-grid-4.40.0-20260202\nTagged selenium/standalone-firefox:116.0-geckodriver-0.36-grid-4.40.0-20260202\nTagged selenium/node-firefox:116.0-geckodriver-0.36-20260202\nTagged selenium/standalone-firefox:116.0-geckodriver-0.36-20260202\nTagged selenium/node-firefox:116.0-20260202\nTagged selenium/standalone-firefox:116.0-20260202\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.40.0/firefox_117.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.40.0 20260202 selenium false firefox true\nTagging images for browser firefox, version 4.40.0, build date 20260202, namespace selenium\nSelenium Grid version -> 4.40.0-20260202\nFirefox version -> 117.0.1\nShort Firefox version -> 117.0\nGeckoDriver version -> 0.36.0\nShort GeckoDriver version -> 0.36\nTagged selenium/node-firefox:117.0.1-geckodriver-0.36.0-grid-4.40.0-20260202\nTagged selenium/standalone-firefox:117.0.1-geckodriver-0.36.0-grid-4.40.0-20260202\nTagged selenium/node-firefox:117.0.1-geckodriver-0.36.0-20260202\nTagged selenium/standalone-firefox:117.0.1-geckodriver-0.36.0-20260202\nTagged selenium/node-firefox:117.0.1-20260202\nTagged selenium/standalone-firefox:117.0.1-20260202\nTagged selenium/node-firefox:117.0-geckodriver-0.36-grid-4.40.0-20260202\nTagged selenium/standalone-firefox:117.0-geckodriver-0.36-grid-4.40.0-20260202\nTagged selenium/node-firefox:117.0-geckodriver-0.36-20260202\nTagged selenium/standalone-firefox:117.0-geckodriver-0.36-20260202\nTagged selenium/node-firefox:117.0-20260202\nTagged selenium/standalone-firefox:117.0-20260202\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.40.0/firefox_118.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.40.0 20260202 selenium false firefox true\nTagging images for browser firefox, version 4.40.0, build date 20260202, namespace selenium\nSelenium Grid version -> 4.40.0-20260202\nFirefox version -> 118.0.2\nShort Firefox version -> 118.0\nGeckoDriver version -> 0.36.0\nShort GeckoDriver version -> 0.36\nTagged selenium/node-firefox:118.0.2-geckodriver-0.36.0-grid-4.40.0-20260202\nTagged selenium/standalone-firefox:118.0.2-geckodriver-0.36.0-grid-4.40.0-20260202\nTagged selenium/node-firefox:118.0.2-geckodriver-0.36.0-20260202\nTagged selenium/standalone-firefox:118.0.2-geckodriver-0.36.0-20260202\nTagged selenium/node-firefox:118.0.2-20260202\nTagged selenium/standalone-firefox:118.0.2-20260202\nTagged selenium/node-firefox:118.0-geckodriver-0.36-grid-4.40.0-20260202\nTagged selenium/standalone-firefox:118.0-geckodriver-0.36-grid-4.40.0-20260202\nTagged selenium/node-firefox:118.0-geckodriver-0.36-20260202\nTagged selenium/standalone-firefox:118.0-geckodriver-0.36-20260202\nTagged selenium/node-firefox:118.0-20260202\nTagged selenium/standalone-firefox:118.0-20260202\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.40.0/firefox_119.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.40.0 20260202 selenium false firefox true\nTagging images for browser firefox, version 4.40.0, build date 20260202, namespace selenium\nSelenium Grid version -> 4.40.0-20260202\nFirefox version -> 119.0.1\nShort Firefox version -> 119.0\nGeckoDriver version -> 0.36.0\nShort GeckoDriver version -> 0.36\nTagged selenium/node-firefox:119.0.1-geckodriver-0.36.0-grid-4.40.0-20260202\nTagged selenium/standalone-firefox:119.0.1-geckodriver-0.36.0-grid-4.40.0-20260202\nTagged selenium/node-firefox:119.0.1-geckodriver-0.36.0-20260202\nTagged selenium/standalone-firefox:119.0.1-geckodriver-0.36.0-20260202\nTagged selenium/node-firefox:119.0.1-20260202\nTagged selenium/standalone-firefox:119.0.1-20260202\nTagged selenium/node-firefox:119.0-geckodriver-0.36-grid-4.40.0-20260202\nTagged selenium/standalone-firefox:119.0-geckodriver-0.36-grid-4.40.0-20260202\nTagged selenium/node-firefox:119.0-geckodriver-0.36-20260202\nTagged selenium/standalone-firefox:119.0-geckodriver-0.36-20260202\nTagged selenium/node-firefox:119.0-20260202\nTagged selenium/standalone-firefox:119.0-20260202\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.40.0/firefox_120.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.40.0 20260202 selenium false firefox true\nTagging images for browser firefox, version 4.40.0, build date 20260202, namespace selenium\nSelenium Grid version -> 4.40.0-20260202\nFirefox version -> 120.0.1\nShort Firefox version -> 120.0\nGeckoDriver version -> 0.36.0\nShort GeckoDriver version -> 0.36\nTagged selenium/node-firefox:120.0.1-geckodriver-0.36.0-grid-4.40.0-20260202\nTagged selenium/standalone-firefox:120.0.1-geckodriver-0.36.0-grid-4.40.0-20260202\nTagged selenium/node-firefox:120.0.1-geckodriver-0.36.0-20260202\nTagged selenium/standalone-firefox:120.0.1-geckodriver-0.36.0-20260202\nTagged selenium/node-firefox:120.0.1-20260202\nTagged selenium/standalone-firefox:120.0.1-20260202\nTagged selenium/node-firefox:120.0-geckodriver-0.36-grid-4.40.0-20260202\nTagged selenium/standalone-firefox:120.0-geckodriver-0.36-grid-4.40.0-20260202\nTagged selenium/node-firefox:120.0-geckodriver-0.36-20260202\nTagged selenium/standalone-firefox:120.0-geckodriver-0.36-20260202\nTagged selenium/node-firefox:120.0-20260202\nTagged selenium/standalone-firefox:120.0-20260202\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.40.0/firefox_121.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.40.0 20260202 selenium false firefox true\nTagging images for browser firefox, version 4.40.0, build date 20260202, namespace selenium\nSelenium Grid version -> 4.40.0-20260202\nFirefox version -> 121.0.1\nShort Firefox version -> 121.0\nGeckoDriver version -> 0.36.0\nShort GeckoDriver version -> 0.36\nTagged selenium/node-firefox:121.0.1-geckodriver-0.36.0-grid-4.40.0-20260202\nTagged selenium/standalone-firefox:121.0.1-geckodriver-0.36.0-grid-4.40.0-20260202\nTagged selenium/node-firefox:121.0.1-geckodriver-0.36.0-20260202\nTagged selenium/standalone-firefox:121.0.1-geckodriver-0.36.0-20260202\nTagged selenium/node-firefox:121.0.1-20260202\nTagged selenium/standalone-firefox:121.0.1-20260202\nTagged selenium/node-firefox:121.0-geckodriver-0.36-grid-4.40.0-20260202\nTagged selenium/standalone-firefox:121.0-geckodriver-0.36-grid-4.40.0-20260202\nTagged selenium/node-firefox:121.0-geckodriver-0.36-20260202\nTagged selenium/standalone-firefox:121.0-geckodriver-0.36-20260202\nTagged selenium/node-firefox:121.0-20260202\nTagged selenium/standalone-firefox:121.0-20260202\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.40.0/firefox_122.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.40.0 20260202 selenium false firefox true\nTagging images for browser firefox, version 4.40.0, build date 20260202, namespace selenium\nSelenium Grid version -> 4.40.0-20260202\nFirefox version -> 122.0.1\nShort Firefox version -> 122.0\nGeckoDriver version -> 0.36.0\nShort GeckoDriver version -> 0.36\nTagged selenium/node-firefox:122.0.1-geckodriver-0.36.0-grid-4.40.0-20260202\nTagged selenium/standalone-firefox:122.0.1-geckodriver-0.36.0-grid-4.40.0-20260202\nTagged selenium/node-firefox:122.0.1-geckodriver-0.36.0-20260202\nTagged selenium/standalone-firefox:122.0.1-geckodriver-0.36.0-20260202\nTagged selenium/node-firefox:122.0.1-20260202\nTagged selenium/standalone-firefox:122.0.1-20260202\nTagged selenium/node-firefox:122.0-geckodriver-0.36-grid-4.40.0-20260202\nTagged selenium/standalone-firefox:122.0-geckodriver-0.36-grid-4.40.0-20260202\nTagged selenium/node-firefox:122.0-geckodriver-0.36-20260202\nTagged selenium/standalone-firefox:122.0-geckodriver-0.36-20260202\nTagged selenium/node-firefox:122.0-20260202\nTagged selenium/standalone-firefox:122.0-20260202\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.40.0/firefox_123.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.40.0 20260202 selenium false firefox true\nTagging images for browser firefox, version 4.40.0, build date 20260202, namespace selenium\nSelenium Grid version -> 4.40.0-20260202\nFirefox version -> 123.0.1\nShort Firefox version -> 123.0\nGeckoDriver version -> 0.36.0\nShort GeckoDriver version -> 0.36\nTagged selenium/node-firefox:123.0.1-geckodriver-0.36.0-grid-4.40.0-20260202\nTagged selenium/standalone-firefox:123.0.1-geckodriver-0.36.0-grid-4.40.0-20260202\nTagged selenium/node-firefox:123.0.1-geckodriver-0.36.0-20260202\nTagged selenium/standalone-firefox:123.0.1-geckodriver-0.36.0-20260202\nTagged selenium/node-firefox:123.0.1-20260202\nTagged selenium/standalone-firefox:123.0.1-20260202\nTagged selenium/node-firefox:123.0-geckodriver-0.36-grid-4.40.0-20260202\nTagged selenium/standalone-firefox:123.0-geckodriver-0.36-grid-4.40.0-20260202\nTagged selenium/node-firefox:123.0-geckodriver-0.36-20260202\nTagged selenium/standalone-firefox:123.0-geckodriver-0.36-20260202\nTagged selenium/node-firefox:123.0-20260202\nTagged selenium/standalone-firefox:123.0-20260202\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.40.0/firefox_124.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.40.0 20260202 selenium false firefox true\nTagging images for browser firefox, version 4.40.0, build date 20260202, namespace selenium\nSelenium Grid version -> 4.40.0-20260202\nFirefox version -> 124.0.2\nShort Firefox version -> 124.0\nGeckoDriver version -> 0.36.0\nShort GeckoDriver version -> 0.36\nTagged selenium/node-firefox:124.0.2-geckodriver-0.36.0-grid-4.40.0-20260202\nTagged selenium/standalone-firefox:124.0.2-geckodriver-0.36.0-grid-4.40.0-20260202\nTagged selenium/node-firefox:124.0.2-geckodriver-0.36.0-20260202\nTagged selenium/standalone-firefox:124.0.2-geckodriver-0.36.0-20260202\nTagged selenium/node-firefox:124.0.2-20260202\nTagged selenium/standalone-firefox:124.0.2-20260202\nTagged selenium/node-firefox:124.0-geckodriver-0.36-grid-4.40.0-20260202\nTagged selenium/standalone-firefox:124.0-geckodriver-0.36-grid-4.40.0-20260202\nTagged selenium/node-firefox:124.0-geckodriver-0.36-20260202\nTagged selenium/standalone-firefox:124.0-geckodriver-0.36-20260202\nTagged selenium/node-firefox:124.0-20260202\nTagged selenium/standalone-firefox:124.0-20260202\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.40.0/firefox_125.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.40.0 20260202 selenium false firefox true\nTagging images for browser firefox, version 4.40.0, build date 20260202, namespace selenium\nSelenium Grid version -> 4.40.0-20260202\nFirefox version -> 125.0.3\nShort Firefox version -> 125.0\nGeckoDriver version -> 0.36.0\nShort GeckoDriver version -> 0.36\nTagged selenium/node-firefox:125.0.3-geckodriver-0.36.0-grid-4.40.0-20260202\nTagged selenium/standalone-firefox:125.0.3-geckodriver-0.36.0-grid-4.40.0-20260202\nTagged selenium/node-firefox:125.0.3-geckodriver-0.36.0-20260202\nTagged selenium/standalone-firefox:125.0.3-geckodriver-0.36.0-20260202\nTagged selenium/node-firefox:125.0.3-20260202\nTagged selenium/standalone-firefox:125.0.3-20260202\nTagged selenium/node-firefox:125.0-geckodriver-0.36-grid-4.40.0-20260202\nTagged selenium/standalone-firefox:125.0-geckodriver-0.36-grid-4.40.0-20260202\nTagged selenium/node-firefox:125.0-geckodriver-0.36-20260202\nTagged selenium/standalone-firefox:125.0-geckodriver-0.36-20260202\nTagged selenium/node-firefox:125.0-20260202\nTagged selenium/standalone-firefox:125.0-20260202\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.40.0/firefox_126.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.40.0 20260202 selenium false firefox true\nTagging images for browser firefox, version 4.40.0, build date 20260202, namespace selenium\nSelenium Grid version -> 4.40.0-20260202\nFirefox version -> 126.0.1\nShort Firefox version -> 126.0\nGeckoDriver version -> 0.36.0\nShort GeckoDriver version -> 0.36\nTagged selenium/node-firefox:126.0.1-geckodriver-0.36.0-grid-4.40.0-20260202\nTagged selenium/standalone-firefox:126.0.1-geckodriver-0.36.0-grid-4.40.0-20260202\nTagged selenium/node-firefox:126.0.1-geckodriver-0.36.0-20260202\nTagged selenium/standalone-firefox:126.0.1-geckodriver-0.36.0-20260202\nTagged selenium/node-firefox:126.0.1-20260202\nTagged selenium/standalone-firefox:126.0.1-20260202\nTagged selenium/node-firefox:126.0-geckodriver-0.36-grid-4.40.0-20260202\nTagged selenium/standalone-firefox:126.0-geckodriver-0.36-grid-4.40.0-20260202\nTagged selenium/node-firefox:126.0-geckodriver-0.36-20260202\nTagged selenium/standalone-firefox:126.0-geckodriver-0.36-20260202\nTagged selenium/node-firefox:126.0-20260202\nTagged selenium/standalone-firefox:126.0-20260202\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.40.0/firefox_127.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.40.0 20260202 selenium false firefox true\nTagging images for browser firefox, version 4.40.0, build date 20260202, namespace selenium\nSelenium Grid version -> 4.40.0-20260202\nFirefox version -> 127.0.2\nShort Firefox version -> 127.0\nGeckoDriver version -> 0.36.0\nShort GeckoDriver version -> 0.36\nTagged selenium/node-firefox:127.0.2-geckodriver-0.36.0-grid-4.40.0-20260202\nTagged selenium/standalone-firefox:127.0.2-geckodriver-0.36.0-grid-4.40.0-20260202\nTagged selenium/node-firefox:127.0.2-geckodriver-0.36.0-20260202\nTagged selenium/standalone-firefox:127.0.2-geckodriver-0.36.0-20260202\nTagged selenium/node-firefox:127.0.2-20260202\nTagged selenium/standalone-firefox:127.0.2-20260202\nTagged selenium/node-firefox:127.0-geckodriver-0.36-grid-4.40.0-20260202\nTagged selenium/standalone-firefox:127.0-geckodriver-0.36-grid-4.40.0-20260202\nTagged selenium/node-firefox:127.0-geckodriver-0.36-20260202\nTagged selenium/standalone-firefox:127.0-geckodriver-0.36-20260202\nTagged selenium/node-firefox:127.0-20260202\nTagged selenium/standalone-firefox:127.0-20260202\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.40.0/firefox_128.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.40.0 20260202 selenium false firefox true\nTagging images for browser firefox, version 4.40.0, build date 20260202, namespace selenium\nSelenium Grid version -> 4.40.0-20260202\nFirefox version -> 128.0.3\nShort Firefox version -> 128.0\nGeckoDriver version -> 0.36.0\nShort GeckoDriver version -> 0.36\nTagged selenium/node-firefox:128.0.3-geckodriver-0.36.0-grid-4.40.0-20260202\nTagged selenium/standalone-firefox:128.0.3-geckodriver-0.36.0-grid-4.40.0-20260202\nTagged selenium/node-firefox:128.0.3-geckodriver-0.36.0-20260202\nTagged selenium/standalone-firefox:128.0.3-geckodriver-0.36.0-20260202\nTagged selenium/node-firefox:128.0.3-20260202\nTagged selenium/standalone-firefox:128.0.3-20260202\nTagged selenium/node-firefox:128.0-geckodriver-0.36-grid-4.40.0-20260202\nTagged selenium/standalone-firefox:128.0-geckodriver-0.36-grid-4.40.0-20260202\nTagged selenium/node-firefox:128.0-geckodriver-0.36-20260202\nTagged selenium/standalone-firefox:128.0-geckodriver-0.36-20260202\nTagged selenium/node-firefox:128.0-20260202\nTagged selenium/standalone-firefox:128.0-20260202\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.40.0/firefox_129.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.40.0 20260202 selenium false firefox true\nTagging images for browser firefox, version 4.40.0, build date 20260202, namespace selenium\nSelenium Grid version -> 4.40.0-20260202\nFirefox version -> 129.0.2\nShort Firefox version -> 129.0\nGeckoDriver version -> 0.36.0\nShort GeckoDriver version -> 0.36\nTagged selenium/node-firefox:129.0.2-geckodriver-0.36.0-grid-4.40.0-20260202\nTagged selenium/standalone-firefox:129.0.2-geckodriver-0.36.0-grid-4.40.0-20260202\nTagged selenium/node-firefox:129.0.2-geckodriver-0.36.0-20260202\nTagged selenium/standalone-firefox:129.0.2-geckodriver-0.36.0-20260202\nTagged selenium/node-firefox:129.0.2-20260202\nTagged selenium/standalone-firefox:129.0.2-20260202\nTagged selenium/node-firefox:129.0-geckodriver-0.36-grid-4.40.0-20260202\nTagged selenium/standalone-firefox:129.0-geckodriver-0.36-grid-4.40.0-20260202\nTagged selenium/node-firefox:129.0-geckodriver-0.36-20260202\nTagged selenium/standalone-firefox:129.0-geckodriver-0.36-20260202\nTagged selenium/node-firefox:129.0-20260202\nTagged selenium/standalone-firefox:129.0-20260202\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.40.0/firefox_130.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.40.0 20260202 selenium false firefox true\nTagging images for browser firefox, version 4.40.0, build date 20260202, namespace selenium\nSelenium Grid version -> 4.40.0-20260202\nFirefox version -> 130.0.1\nShort Firefox version -> 130.0\nGeckoDriver version -> 0.36.0\nShort GeckoDriver version -> 0.36\nTagged selenium/node-firefox:130.0.1-geckodriver-0.36.0-grid-4.40.0-20260202\nTagged selenium/standalone-firefox:130.0.1-geckodriver-0.36.0-grid-4.40.0-20260202\nTagged selenium/node-firefox:130.0.1-geckodriver-0.36.0-20260202\nTagged selenium/standalone-firefox:130.0.1-geckodriver-0.36.0-20260202\nTagged selenium/node-firefox:130.0.1-20260202\nTagged selenium/standalone-firefox:130.0.1-20260202\nTagged selenium/node-firefox:130.0-geckodriver-0.36-grid-4.40.0-20260202\nTagged selenium/standalone-firefox:130.0-geckodriver-0.36-grid-4.40.0-20260202\nTagged selenium/node-firefox:130.0-geckodriver-0.36-20260202\nTagged selenium/standalone-firefox:130.0-geckodriver-0.36-20260202\nTagged selenium/node-firefox:130.0-20260202\nTagged selenium/standalone-firefox:130.0-20260202\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.40.0/firefox_131.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.40.0 20260202 selenium false firefox true\nTagging images for browser firefox, version 4.40.0, build date 20260202, namespace selenium\nSelenium Grid version -> 4.40.0-20260202\nFirefox version -> 131.0.3\nShort Firefox version -> 131.0\nGeckoDriver version -> 0.36.0\nShort GeckoDriver version -> 0.36\nTagged selenium/node-firefox:131.0.3-geckodriver-0.36.0-grid-4.40.0-20260202\nTagged selenium/standalone-firefox:131.0.3-geckodriver-0.36.0-grid-4.40.0-20260202\nTagged selenium/node-firefox:131.0.3-geckodriver-0.36.0-20260202\nTagged selenium/standalone-firefox:131.0.3-geckodriver-0.36.0-20260202\nTagged selenium/node-firefox:131.0.3-20260202\nTagged selenium/standalone-firefox:131.0.3-20260202\nTagged selenium/node-firefox:131.0-geckodriver-0.36-grid-4.40.0-20260202\nTagged selenium/standalone-firefox:131.0-geckodriver-0.36-grid-4.40.0-20260202\nTagged selenium/node-firefox:131.0-geckodriver-0.36-20260202\nTagged selenium/standalone-firefox:131.0-geckodriver-0.36-20260202\nTagged selenium/node-firefox:131.0-20260202\nTagged selenium/standalone-firefox:131.0-20260202\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.40.0/firefox_132.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.40.0 20260202 selenium false firefox true\nTagging images for browser firefox, version 4.40.0, build date 20260202, namespace selenium\nSelenium Grid version -> 4.40.0-20260202\nFirefox version -> 132.0.2\nShort Firefox version -> 132.0\nGeckoDriver version -> 0.36.0\nShort GeckoDriver version -> 0.36\nTagged selenium/node-firefox:132.0.2-geckodriver-0.36.0-grid-4.40.0-20260202\nTagged selenium/standalone-firefox:132.0.2-geckodriver-0.36.0-grid-4.40.0-20260202\nTagged selenium/node-firefox:132.0.2-geckodriver-0.36.0-20260202\nTagged selenium/standalone-firefox:132.0.2-geckodriver-0.36.0-20260202\nTagged selenium/node-firefox:132.0.2-20260202\nTagged selenium/standalone-firefox:132.0.2-20260202\nTagged selenium/node-firefox:132.0-geckodriver-0.36-grid-4.40.0-20260202\nTagged selenium/standalone-firefox:132.0-geckodriver-0.36-grid-4.40.0-20260202\nTagged selenium/node-firefox:132.0-geckodriver-0.36-20260202\nTagged selenium/standalone-firefox:132.0-geckodriver-0.36-20260202\nTagged selenium/node-firefox:132.0-20260202\nTagged selenium/standalone-firefox:132.0-20260202\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.40.0/firefox_133.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.40.0 20260202 selenium false firefox true\nTagging images for browser firefox, version 4.40.0, build date 20260202, namespace selenium\nSelenium Grid version -> 4.40.0-20260202\nFirefox version -> 133.0.3\nShort Firefox version -> 133.0\nGeckoDriver version -> 0.36.0\nShort GeckoDriver version -> 0.36\nTagged selenium/node-firefox:133.0.3-geckodriver-0.36.0-grid-4.40.0-20260202\nTagged selenium/standalone-firefox:133.0.3-geckodriver-0.36.0-grid-4.40.0-20260202\nTagged selenium/node-firefox:133.0.3-geckodriver-0.36.0-20260202\nTagged selenium/standalone-firefox:133.0.3-geckodriver-0.36.0-20260202\nTagged selenium/node-firefox:133.0.3-20260202\nTagged selenium/standalone-firefox:133.0.3-20260202\nTagged selenium/node-firefox:133.0-geckodriver-0.36-grid-4.40.0-20260202\nTagged selenium/standalone-firefox:133.0-geckodriver-0.36-grid-4.40.0-20260202\nTagged selenium/node-firefox:133.0-geckodriver-0.36-20260202\nTagged selenium/standalone-firefox:133.0-geckodriver-0.36-20260202\nTagged selenium/node-firefox:133.0-20260202\nTagged selenium/standalone-firefox:133.0-20260202\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.40.0/firefox_134.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.40.0 20260202 selenium false firefox true\nTagging images for browser firefox, version 4.40.0, build date 20260202, namespace selenium\nSelenium Grid version -> 4.40.0-20260202\nFirefox version -> 134.0.2\nShort Firefox version -> 134.0\nGeckoDriver version -> 0.36.0\nShort GeckoDriver version -> 0.36\nTagged selenium/node-firefox:134.0.2-geckodriver-0.36.0-grid-4.40.0-20260202\nTagged selenium/standalone-firefox:134.0.2-geckodriver-0.36.0-grid-4.40.0-20260202\nTagged selenium/node-firefox:134.0.2-geckodriver-0.36.0-20260202\nTagged selenium/standalone-firefox:134.0.2-geckodriver-0.36.0-20260202\nTagged selenium/node-firefox:134.0.2-20260202\nTagged selenium/standalone-firefox:134.0.2-20260202\nTagged selenium/node-firefox:134.0-geckodriver-0.36-grid-4.40.0-20260202\nTagged selenium/standalone-firefox:134.0-geckodriver-0.36-grid-4.40.0-20260202\nTagged selenium/node-firefox:134.0-geckodriver-0.36-20260202\nTagged selenium/standalone-firefox:134.0-geckodriver-0.36-20260202\nTagged selenium/node-firefox:134.0-20260202\nTagged selenium/standalone-firefox:134.0-20260202\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.40.0/firefox_135.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.40.0 20260202 selenium false firefox true\nTagging images for browser firefox, version 4.40.0, build date 20260202, namespace selenium\nSelenium Grid version -> 4.40.0-20260202\nFirefox version -> 135.0.1\nShort Firefox version -> 135.0\nGeckoDriver version -> 0.36.0\nShort GeckoDriver version -> 0.36\nTagged selenium/node-firefox:135.0.1-geckodriver-0.36.0-grid-4.40.0-20260202\nTagged selenium/standalone-firefox:135.0.1-geckodriver-0.36.0-grid-4.40.0-20260202\nTagged selenium/node-firefox:135.0.1-geckodriver-0.36.0-20260202\nTagged selenium/standalone-firefox:135.0.1-geckodriver-0.36.0-20260202\nTagged selenium/node-firefox:135.0.1-20260202\nTagged selenium/standalone-firefox:135.0.1-20260202\nTagged selenium/node-firefox:135.0-geckodriver-0.36-grid-4.40.0-20260202\nTagged selenium/standalone-firefox:135.0-geckodriver-0.36-grid-4.40.0-20260202\nTagged selenium/node-firefox:135.0-geckodriver-0.36-20260202\nTagged selenium/standalone-firefox:135.0-geckodriver-0.36-20260202\nTagged selenium/node-firefox:135.0-20260202\nTagged selenium/standalone-firefox:135.0-20260202\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.40.0/firefox_136.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.40.0 20260202 selenium false firefox true\nTagging images for browser firefox, version 4.40.0, build date 20260202, namespace selenium\nSelenium Grid version -> 4.40.0-20260202\nFirefox version -> 136.0.4\nShort Firefox version -> 136.0\nGeckoDriver version -> 0.36.0\nShort GeckoDriver version -> 0.36\nTagged selenium/node-firefox:136.0.4-geckodriver-0.36.0-grid-4.40.0-20260202\nTagged selenium/standalone-firefox:136.0.4-geckodriver-0.36.0-grid-4.40.0-20260202\nTagged selenium/node-firefox:136.0.4-geckodriver-0.36.0-20260202\nTagged selenium/standalone-firefox:136.0.4-geckodriver-0.36.0-20260202\nTagged selenium/node-firefox:136.0.4-20260202\nTagged selenium/standalone-firefox:136.0.4-20260202\nTagged selenium/node-firefox:136.0-geckodriver-0.36-grid-4.40.0-20260202\nTagged selenium/standalone-firefox:136.0-geckodriver-0.36-grid-4.40.0-20260202\nTagged selenium/node-firefox:136.0-geckodriver-0.36-20260202\nTagged selenium/standalone-firefox:136.0-geckodriver-0.36-20260202\nTagged selenium/node-firefox:136.0-20260202\nTagged selenium/standalone-firefox:136.0-20260202\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.40.0/firefox_137.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.40.0 20260202 selenium false firefox true\nTagging images for browser firefox, version 4.40.0, build date 20260202, namespace selenium\nSelenium Grid version -> 4.40.0-20260202\nFirefox version -> 137.0.2\nShort Firefox version -> 137.0\nGeckoDriver version -> 0.36.0\nShort GeckoDriver version -> 0.36\nTagged selenium/node-firefox:137.0.2-geckodriver-0.36.0-grid-4.40.0-20260202\nTagged selenium/standalone-firefox:137.0.2-geckodriver-0.36.0-grid-4.40.0-20260202\nTagged selenium/node-firefox:137.0.2-geckodriver-0.36.0-20260202\nTagged selenium/standalone-firefox:137.0.2-geckodriver-0.36.0-20260202\nTagged selenium/node-firefox:137.0.2-20260202\nTagged selenium/standalone-firefox:137.0.2-20260202\nTagged selenium/node-firefox:137.0-geckodriver-0.36-grid-4.40.0-20260202\nTagged selenium/standalone-firefox:137.0-geckodriver-0.36-grid-4.40.0-20260202\nTagged selenium/node-firefox:137.0-geckodriver-0.36-20260202\nTagged selenium/standalone-firefox:137.0-geckodriver-0.36-20260202\nTagged selenium/node-firefox:137.0-20260202\nTagged selenium/standalone-firefox:137.0-20260202\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.40.0/firefox_138.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.40.0 20260202 selenium false firefox true\nTagging images for browser firefox, version 4.40.0, build date 20260202, namespace selenium\nSelenium Grid version -> 4.40.0-20260202\nFirefox version -> 138.0.4\nShort Firefox version -> 138.0\nGeckoDriver version -> 0.36.0\nShort GeckoDriver version -> 0.36\nTagged selenium/node-firefox:138.0.4-geckodriver-0.36.0-grid-4.40.0-20260202\nTagged selenium/standalone-firefox:138.0.4-geckodriver-0.36.0-grid-4.40.0-20260202\nTagged selenium/node-firefox:138.0.4-geckodriver-0.36.0-20260202\nTagged selenium/standalone-firefox:138.0.4-geckodriver-0.36.0-20260202\nTagged selenium/node-firefox:138.0.4-20260202\nTagged selenium/standalone-firefox:138.0.4-20260202\nTagged selenium/node-firefox:138.0-geckodriver-0.36-grid-4.40.0-20260202\nTagged selenium/standalone-firefox:138.0-geckodriver-0.36-grid-4.40.0-20260202\nTagged selenium/node-firefox:138.0-geckodriver-0.36-20260202\nTagged selenium/standalone-firefox:138.0-geckodriver-0.36-20260202\nTagged selenium/node-firefox:138.0-20260202\nTagged selenium/standalone-firefox:138.0-20260202\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.40.0/firefox_139.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.40.0 20260202 selenium false firefox true\nTagging images for browser firefox, version 4.40.0, build date 20260202, namespace selenium\nSelenium Grid version -> 4.40.0-20260202\nFirefox version -> 139.0.4\nShort Firefox version -> 139.0\nGeckoDriver version -> 0.36.0\nShort GeckoDriver version -> 0.36\nTagged selenium/node-firefox:139.0.4-geckodriver-0.36.0-grid-4.40.0-20260202\nTagged selenium/standalone-firefox:139.0.4-geckodriver-0.36.0-grid-4.40.0-20260202\nTagged selenium/node-firefox:139.0.4-geckodriver-0.36.0-20260202\nTagged selenium/standalone-firefox:139.0.4-geckodriver-0.36.0-20260202\nTagged selenium/node-firefox:139.0.4-20260202\nTagged selenium/standalone-firefox:139.0.4-20260202\nTagged selenium/node-firefox:139.0-geckodriver-0.36-grid-4.40.0-20260202\nTagged selenium/standalone-firefox:139.0-geckodriver-0.36-grid-4.40.0-20260202\nTagged selenium/node-firefox:139.0-geckodriver-0.36-20260202\nTagged selenium/standalone-firefox:139.0-geckodriver-0.36-20260202\nTagged selenium/node-firefox:139.0-20260202\nTagged selenium/standalone-firefox:139.0-20260202\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.40.0/firefox_140.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.40.0 20260202 selenium false firefox true\nTagging images for browser firefox, version 4.40.0, build date 20260202, namespace selenium\nSelenium Grid version -> 4.40.0-20260202\nFirefox version -> 140.0.4\nShort Firefox version -> 140.0\nGeckoDriver version -> 0.36.0\nShort GeckoDriver version -> 0.36\nTagged selenium/node-firefox:140.0.4-geckodriver-0.36.0-grid-4.40.0-20260202\nTagged selenium/standalone-firefox:140.0.4-geckodriver-0.36.0-grid-4.40.0-20260202\nTagged selenium/node-firefox:140.0.4-geckodriver-0.36.0-20260202\nTagged selenium/standalone-firefox:140.0.4-geckodriver-0.36.0-20260202\nTagged selenium/node-firefox:140.0.4-20260202\nTagged selenium/standalone-firefox:140.0.4-20260202\nTagged selenium/node-firefox:140.0-geckodriver-0.36-grid-4.40.0-20260202\nTagged selenium/standalone-firefox:140.0-geckodriver-0.36-grid-4.40.0-20260202\nTagged selenium/node-firefox:140.0-geckodriver-0.36-20260202\nTagged selenium/standalone-firefox:140.0-geckodriver-0.36-20260202\nTagged selenium/node-firefox:140.0-20260202\nTagged selenium/standalone-firefox:140.0-20260202\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.40.0/firefox_141.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.40.0 20260202 selenium false firefox true\nTagging images for browser firefox, version 4.40.0, build date 20260202, namespace selenium\nSelenium Grid version -> 4.40.0-20260202\nFirefox version -> 141.0.3\nShort Firefox version -> 141.0\nGeckoDriver version -> 0.36.0\nShort GeckoDriver version -> 0.36\nTagged selenium/node-firefox:141.0.3-geckodriver-0.36.0-grid-4.40.0-20260202\nTagged selenium/standalone-firefox:141.0.3-geckodriver-0.36.0-grid-4.40.0-20260202\nTagged selenium/node-firefox:141.0.3-geckodriver-0.36.0-20260202\nTagged selenium/standalone-firefox:141.0.3-geckodriver-0.36.0-20260202\nTagged selenium/node-firefox:141.0.3-20260202\nTagged selenium/standalone-firefox:141.0.3-20260202\nTagged selenium/node-firefox:141.0-geckodriver-0.36-grid-4.40.0-20260202\nTagged selenium/standalone-firefox:141.0-geckodriver-0.36-grid-4.40.0-20260202\nTagged selenium/node-firefox:141.0-geckodriver-0.36-20260202\nTagged selenium/standalone-firefox:141.0-geckodriver-0.36-20260202\nTagged selenium/node-firefox:141.0-20260202\nTagged selenium/standalone-firefox:141.0-20260202\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.40.0/firefox_142.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.40.0 20260202 selenium false firefox true\nTagging images for browser firefox, version 4.40.0, build date 20260202, namespace selenium\nSelenium Grid version -> 4.40.0-20260202\nFirefox version -> 142.0.1\nShort Firefox version -> 142.0\nGeckoDriver version -> 0.36.0\nShort GeckoDriver version -> 0.36\nTagged selenium/node-firefox:142.0.1-geckodriver-0.36.0-grid-4.40.0-20260202\nTagged selenium/standalone-firefox:142.0.1-geckodriver-0.36.0-grid-4.40.0-20260202\nTagged selenium/node-firefox:142.0.1-geckodriver-0.36.0-20260202\nTagged selenium/standalone-firefox:142.0.1-geckodriver-0.36.0-20260202\nTagged selenium/node-firefox:142.0.1-20260202\nTagged selenium/standalone-firefox:142.0.1-20260202\nTagged selenium/node-firefox:142.0-geckodriver-0.36-grid-4.40.0-20260202\nTagged selenium/standalone-firefox:142.0-geckodriver-0.36-grid-4.40.0-20260202\nTagged selenium/node-firefox:142.0-geckodriver-0.36-20260202\nTagged selenium/standalone-firefox:142.0-geckodriver-0.36-20260202\nTagged selenium/node-firefox:142.0-20260202\nTagged selenium/standalone-firefox:142.0-20260202\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.40.0/firefox_143.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.40.0 20260202 selenium false firefox true\nTagging images for browser firefox, version 4.40.0, build date 20260202, namespace selenium\nSelenium Grid version -> 4.40.0-20260202\nFirefox version -> 143.0.4\nShort Firefox version -> 143.0\nGeckoDriver version -> 0.36.0\nShort GeckoDriver version -> 0.36\nTagged selenium/node-firefox:143.0.4-geckodriver-0.36.0-grid-4.40.0-20260202\nTagged selenium/standalone-firefox:143.0.4-geckodriver-0.36.0-grid-4.40.0-20260202\nTagged selenium/node-firefox:143.0.4-geckodriver-0.36.0-20260202\nTagged selenium/standalone-firefox:143.0.4-geckodriver-0.36.0-20260202\nTagged selenium/node-firefox:143.0.4-20260202\nTagged selenium/standalone-firefox:143.0.4-20260202\nTagged selenium/node-firefox:143.0-geckodriver-0.36-grid-4.40.0-20260202\nTagged selenium/standalone-firefox:143.0-geckodriver-0.36-grid-4.40.0-20260202\nTagged selenium/node-firefox:143.0-geckodriver-0.36-20260202\nTagged selenium/standalone-firefox:143.0-geckodriver-0.36-20260202\nTagged selenium/node-firefox:143.0-20260202\nTagged selenium/standalone-firefox:143.0-20260202\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.40.0/firefox_144.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.40.0 20260202 selenium false firefox true\nTagging images for browser firefox, version 4.40.0, build date 20260202, namespace selenium\nSelenium Grid version -> 4.40.0-20260202\nFirefox version -> 144.0.2\nShort Firefox version -> 144.0\nGeckoDriver version -> 0.36.0\nShort GeckoDriver version -> 0.36\nTagged selenium/node-firefox:144.0.2-geckodriver-0.36.0-grid-4.40.0-20260202\nTagged selenium/standalone-firefox:144.0.2-geckodriver-0.36.0-grid-4.40.0-20260202\nTagged selenium/node-firefox:144.0.2-geckodriver-0.36.0-20260202\nTagged selenium/standalone-firefox:144.0.2-geckodriver-0.36.0-20260202\nTagged selenium/node-firefox:144.0.2-20260202\nTagged selenium/standalone-firefox:144.0.2-20260202\nTagged selenium/node-firefox:144.0-geckodriver-0.36-grid-4.40.0-20260202\nTagged selenium/standalone-firefox:144.0-geckodriver-0.36-grid-4.40.0-20260202\nTagged selenium/node-firefox:144.0-geckodriver-0.36-20260202\nTagged selenium/standalone-firefox:144.0-geckodriver-0.36-20260202\nTagged selenium/node-firefox:144.0-20260202\nTagged selenium/standalone-firefox:144.0-20260202\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.40.0/firefox_145.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.40.0 20260202 selenium false firefox true\nTagging images for browser firefox, version 4.40.0, build date 20260202, namespace selenium\nSelenium Grid version -> 4.40.0-20260202\nFirefox version -> 145.0.2\nShort Firefox version -> 145.0\nGeckoDriver version -> 0.36.0\nShort GeckoDriver version -> 0.36\nTagged selenium/node-firefox:145.0.2-geckodriver-0.36.0-grid-4.40.0-20260202\nTagged selenium/standalone-firefox:145.0.2-geckodriver-0.36.0-grid-4.40.0-20260202\nTagged selenium/node-firefox:145.0.2-geckodriver-0.36.0-20260202\nTagged selenium/standalone-firefox:145.0.2-geckodriver-0.36.0-20260202\nTagged selenium/node-firefox:145.0.2-20260202\nTagged selenium/standalone-firefox:145.0.2-20260202\nTagged selenium/node-firefox:145.0-geckodriver-0.36-grid-4.40.0-20260202\nTagged selenium/standalone-firefox:145.0-geckodriver-0.36-grid-4.40.0-20260202\nTagged selenium/node-firefox:145.0-geckodriver-0.36-20260202\nTagged selenium/standalone-firefox:145.0-geckodriver-0.36-20260202\nTagged selenium/node-firefox:145.0-20260202\nTagged selenium/standalone-firefox:145.0-20260202\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.40.0/firefox_146.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.40.0 20260202 selenium false firefox true\nTagging images for browser firefox, version 4.40.0, build date 20260202, namespace selenium\nSelenium Grid version -> 4.40.0-20260202\nFirefox version -> 146.0.1\nShort Firefox version -> 146.0\nGeckoDriver version -> 0.36.0\nShort GeckoDriver version -> 0.36\nTagged selenium/node-firefox:146.0.1-geckodriver-0.36.0-grid-4.40.0-20260202\nTagged selenium/standalone-firefox:146.0.1-geckodriver-0.36.0-grid-4.40.0-20260202\nTagged selenium/node-firefox:146.0.1-geckodriver-0.36.0-20260202\nTagged selenium/standalone-firefox:146.0.1-geckodriver-0.36.0-20260202\nTagged selenium/node-firefox:146.0.1-20260202\nTagged selenium/standalone-firefox:146.0.1-20260202\nTagged selenium/node-firefox:146.0-geckodriver-0.36-grid-4.40.0-20260202\nTagged selenium/standalone-firefox:146.0-geckodriver-0.36-grid-4.40.0-20260202\nTagged selenium/node-firefox:146.0-geckodriver-0.36-20260202\nTagged selenium/standalone-firefox:146.0-geckodriver-0.36-20260202\nTagged selenium/node-firefox:146.0-20260202\nTagged selenium/standalone-firefox:146.0-20260202\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.40.0/firefox_147.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.40.0 20260202 selenium false firefox true\nTagging images for browser firefox, version 4.40.0, build date 20260202, namespace selenium\nSelenium Grid version -> 4.40.0-20260202\nFirefox version -> 147.0.3\nShort Firefox version -> 147.0\nGeckoDriver version -> 0.36.0\nShort GeckoDriver version -> 0.36\nTagged selenium/node-firefox:147.0.3-geckodriver-0.36.0-grid-4.40.0-20260202\nTagged selenium/standalone-firefox:147.0.3-geckodriver-0.36.0-grid-4.40.0-20260202\nTagged selenium/node-firefox:147.0.3-geckodriver-0.36.0-20260202\nTagged selenium/standalone-firefox:147.0.3-geckodriver-0.36.0-20260202\nTagged selenium/node-firefox:147.0.3-20260202\nTagged selenium/standalone-firefox:147.0.3-20260202\nTagged selenium/node-firefox:147.0-geckodriver-0.36-grid-4.40.0-20260202\nTagged selenium/standalone-firefox:147.0-geckodriver-0.36-grid-4.40.0-20260202\nTagged selenium/node-firefox:147.0-geckodriver-0.36-20260202\nTagged selenium/standalone-firefox:147.0-geckodriver-0.36-20260202\nTagged selenium/node-firefox:147.0-20260202\nTagged selenium/standalone-firefox:147.0-20260202\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.40.0/firefox_98.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.40.0 20260202 selenium false firefox true\nTagging images for browser firefox, version 4.40.0, build date 20260202, namespace selenium\nSelenium Grid version -> 4.40.0-20260202\nFirefox version -> 98.0.2\nShort Firefox version -> 98.0\nGeckoDriver version -> 0.36.0\nShort GeckoDriver version -> 0.36\nTagged selenium/node-firefox:98.0.2-geckodriver-0.36.0-grid-4.40.0-20260202\nTagged selenium/standalone-firefox:98.0.2-geckodriver-0.36.0-grid-4.40.0-20260202\nTagged selenium/node-firefox:98.0.2-geckodriver-0.36.0-20260202\nTagged selenium/standalone-firefox:98.0.2-geckodriver-0.36.0-20260202\nTagged selenium/node-firefox:98.0.2-20260202\nTagged selenium/standalone-firefox:98.0.2-20260202\nTagged selenium/node-firefox:98.0-geckodriver-0.36-grid-4.40.0-20260202\nTagged selenium/standalone-firefox:98.0-geckodriver-0.36-grid-4.40.0-20260202\nTagged selenium/node-firefox:98.0-geckodriver-0.36-20260202\nTagged selenium/standalone-firefox:98.0-geckodriver-0.36-20260202\nTagged selenium/node-firefox:98.0-20260202\nTagged selenium/standalone-firefox:98.0-20260202\n```\n"
  },
  {
    "path": "CHANGELOG/archived/4.40.0/firefox_99.md",
    "content": "```\n./tag_and_push_browser_images.sh 4.40.0 20260202 selenium false firefox true\nTagging images for browser firefox, version 4.40.0, build date 20260202, namespace selenium\nSelenium Grid version -> 4.40.0-20260202\nFirefox version -> 99.0.1\nShort Firefox version -> 99.0\nGeckoDriver version -> 0.36.0\nShort GeckoDriver version -> 0.36\nTagged selenium/node-firefox:99.0.1-geckodriver-0.36.0-grid-4.40.0-20260202\nTagged selenium/standalone-firefox:99.0.1-geckodriver-0.36.0-grid-4.40.0-20260202\nTagged selenium/node-firefox:99.0.1-geckodriver-0.36.0-20260202\nTagged selenium/standalone-firefox:99.0.1-geckodriver-0.36.0-20260202\nTagged selenium/node-firefox:99.0.1-20260202\nTagged selenium/standalone-firefox:99.0.1-20260202\nTagged selenium/node-firefox:99.0-geckodriver-0.36-grid-4.40.0-20260202\nTagged selenium/standalone-firefox:99.0-geckodriver-0.36-grid-4.40.0-20260202\nTagged selenium/node-firefox:99.0-geckodriver-0.36-20260202\nTagged selenium/standalone-firefox:99.0-geckodriver-0.36-20260202\nTagged selenium/node-firefox:99.0-20260202\nTagged selenium/standalone-firefox:99.0-20260202\n```\n"
  },
  {
    "path": "CHANGELOG/generate-matrix-readme.py",
    "content": "#!/usr/bin/env python3\nimport os\nimport re\nimport shutil\nfrom collections import defaultdict\n\n\ndef archive_old_versions():\n    \"\"\"Move old Grid versions to archived folder, keeping only the latest version.\"\"\"\n    # Find all Grid version directories in current directory\n    current_versions = []\n    for item in os.listdir('.'):\n        if os.path.isdir(item) and re.match(r'\\d+\\.\\d+\\.\\d+', item):\n            current_versions.append(item)\n\n    if len(current_versions) <= 1:\n        print(f\"Only {len(current_versions)} version(s) found in current directory. Nothing to archive.\")\n        return\n\n    # Sort versions to find the latest\n    sorted_versions = sorted(current_versions, key=lambda x: [int(i) for i in x.split('.')], reverse=True)\n    latest_version = sorted_versions[0]\n    versions_to_archive = sorted_versions[1:]\n\n    print(f\"Latest version: {latest_version}\")\n    print(f\"Versions to archive: {', '.join(versions_to_archive)}\")\n\n    # Create archived directory if it doesn't exist\n    if not os.path.exists('archived'):\n        os.makedirs('archived')\n        print(\"Created 'archived' directory\")\n\n    # Move old versions to archived\n    for version in versions_to_archive:\n        source = version\n        destination = os.path.join('archived', version)\n\n        if os.path.exists(destination):\n            print(f\"  Skipping {version} (already exists in archived)\")\n        else:\n            shutil.move(source, destination)\n            print(f\"  Moved {version} to archived/\")\n\n\ndef scan_changelog():\n    matrix = defaultdict(lambda: defaultdict(set))\n\n    # Scan both current directory and archived directory\n    directories_to_scan = ['.']\n    if os.path.exists('archived') and os.path.isdir('archived'):\n        directories_to_scan.append('archived')\n\n    for base_dir in directories_to_scan:\n        for grid_version in os.listdir(base_dir):\n            version_path = os.path.join(base_dir, grid_version)\n            if not os.path.isdir(version_path) or not re.match(r'\\d+\\.\\d+\\.\\d+', grid_version):\n                continue\n\n            for file in os.listdir(version_path):\n                if file.endswith('.md'):\n                    # Match both regular browser files (e.g., chrome_100.md) and chrome-for-testing files\n                    match = re.match(r'([\\w-]+)_(\\d+)\\.md', file)\n                    if match:\n                        browser, version = match.groups()\n                        matrix[grid_version][browser].add(int(version))\n\n    return matrix\n\n\ndef generate_readme(matrix):\n    all_browsers = set()\n    all_versions = defaultdict(set)\n\n    for grid_versions in matrix.values():\n        for browser, versions in grid_versions.items():\n            all_browsers.add(browser)\n            all_versions[browser].update(versions)\n\n    browsers = sorted(all_browsers)\n    grid_versions = sorted(matrix.keys(), key=lambda x: [int(i) for i in x.split('.')], reverse=True)\n\n    # Determine which grid versions are in archived directory\n    latest_version = grid_versions[0] if grid_versions else None\n    archived_versions = set()\n    if os.path.exists('archived') and os.path.isdir('archived'):\n        for version in os.listdir('archived'):\n            if os.path.isdir(os.path.join('archived', version)) and re.match(r'\\d+\\.\\d+\\.\\d+', version):\n                archived_versions.add(version)\n\n    # Separate latest and archived versions\n    latest_grid_versions = [v for v in grid_versions if v not in archived_versions]\n    archived_grid_versions = [v for v in grid_versions if v in archived_versions]\n\n    readme = \"\"\"# Selenium Grid x Browser Version Matrix\n\nThis matrix shows available Docker images with packaged Selenium Grid and browser versions. It helps users quickly identify which image tags to pull for their testing needs.\n\n**Motivation**: To supply the latest Selenium Grid core version with new functionality while keeping users able to use it for testing purposes like cross-browser testing or pinning a browser version due to limited support or issues at specific browser versions. We deliver Docker images for Node and Standalone with packaging both Grid and specific driver/browser versions. Users just find the image tag, pull the image they need and start their tests.\n\n**How to read**: Each ✓ links to detailed changelog information for that specific browser version in the corresponding Grid release. Latest versions appear first (descending order).\n\n**Note**: We don't have full testing to ensure every combination of Grid and browser version will function fully as expected. Users need to evaluate and make their own decisions based on their testing requirements.\n\n\"\"\"\n\n    # Generate tables for latest Grid versions\n    if latest_grid_versions:\n        readme += \"## Latest Grid Version\\n\\n\"\n\n        for browser in browsers:\n            all_browser_versions = sorted(all_versions[browser], reverse=True)\n            # Format browser name: replace hyphens with spaces and title case\n            browser_display = browser.replace('-', ' ').title()\n\n            # Find latest grid versions that have this browser\n            grid_versions_with_browser = [\n                gv for gv in latest_grid_versions if browser in matrix[gv] and matrix[gv][browser]\n            ]\n\n            if not grid_versions_with_browser:\n                continue\n\n            # Filter to only include browser versions that exist in at least one of these grid versions\n            versions_to_show = [\n                v for v in all_browser_versions if any(v in matrix[gv][browser] for gv in grid_versions_with_browser)\n            ]\n\n            if not versions_to_show:\n                continue\n\n            readme += f\"### {browser_display}\\n\\n\"\n            readme += \"| Grid Version | \" + \" | \".join(map(str, versions_to_show)) + \" |\\n\"\n            readme += \"|\" + \"-\" * 14 + \"|\" + \"|\".join([\"-\" * 4 for _ in versions_to_show]) + \"|\\n\"\n\n            for grid_version in grid_versions_with_browser:\n                row = f\"| {grid_version} |\"\n                for version in versions_to_show:\n                    if version in matrix[grid_version][browser]:\n                        mark = f\" [✓]({grid_version}/{browser}_{version}.md) \"\n                    else:\n                        mark = \"   \"\n                    row += f\"{mark}|\"\n                readme += row + \"\\n\"\n            readme += \"\\n\"\n\n    # Generate tables for archived Grid versions\n    if archived_grid_versions:\n        readme += \"## Archived Grid Versions\\n\\n\"\n\n        for browser in browsers:\n            all_browser_versions = sorted(all_versions[browser], reverse=True)\n            # Format browser name: replace hyphens with spaces and title case\n            browser_display = browser.replace('-', ' ').title()\n\n            # Find archived grid versions that have this browser\n            grid_versions_with_browser = [\n                gv for gv in archived_grid_versions if browser in matrix[gv] and matrix[gv][browser]\n            ]\n\n            if not grid_versions_with_browser:\n                continue\n\n            # Filter to only include browser versions that exist in at least one of these grid versions\n            versions_to_show = [\n                v for v in all_browser_versions if any(v in matrix[gv][browser] for gv in grid_versions_with_browser)\n            ]\n\n            if not versions_to_show:\n                continue\n\n            readme += f\"### {browser_display}\\n\\n\"\n            readme += \"| Grid Version | \" + \" | \".join(map(str, versions_to_show)) + \" |\\n\"\n            readme += \"|\" + \"-\" * 14 + \"|\" + \"|\".join([\"-\" * 4 for _ in versions_to_show]) + \"|\\n\"\n\n            for grid_version in grid_versions_with_browser:\n                row = f\"| {grid_version} |\"\n                for version in versions_to_show:\n                    if version in matrix[grid_version][browser]:\n                        mark = f\" [✓](archived/{grid_version}/{browser}_{version}.md) \"\n                    else:\n                        mark = \"   \"\n                    row += f\"{mark}|\"\n                readme += row + \"\\n\"\n            readme += \"\\n\"\n\n    return readme\n\n\nif __name__ == \"__main__\":\n    os.chdir('./CHANGELOG')\n\n    # Step 1: Archive old versions\n    print(\"Step 1: Archiving old Grid versions...\")\n    archive_old_versions()\n    print()\n\n    # Step 2: Scan changelog directories\n    print(\"Step 2: Scanning changelog directories...\")\n    matrix = scan_changelog()\n    print(f\"Found {len(matrix)} Grid version(s)\")\n    print()\n\n    # Step 3: Generate README\n    print(\"Step 3: Generating README.md...\")\n    readme_content = generate_readme(matrix)\n\n    with open('README.md', 'w') as f:\n        f.write(readme_content)\n\n    print(\"README.md generated successfully!\")\n"
  },
  {
    "path": "CONTRIBUTING.md",
    "content": "# Contributing Code to Selenium\n\nMuch of the magic behind Selenium is the hard work of programmers with backgrounds in Javascript, Java, Ruby, PHP, Python, Perl, C#, HTML and other languages.\n\nWe encourage code patches and other contributions - get involved by following the instructions at the main [Selenium GitHub](https://github.com/SeleniumHQ/selenium/blob/trunk/CONTRIBUTING.md). You can also track the activity of the development team by checking out the read-only [Selenium Developer Activity Group](http://groups.google.com/group/selenium-developer-activity).\n\nIf you do supply a patch we will need you to [sign the CLA](https://goo.gl/a2VrTx). We are a part of [SFC](http://www.sfconservancy.org/).\n"
  },
  {
    "path": "Distributor/Dockerfile",
    "content": "ARG NAMESPACE=selenium\nARG VERSION=latest\nFROM ${NAMESPACE}/base:${VERSION}\nARG AUTHORS\nLABEL authors=${AUTHORS}\n\nUSER ${SEL_UID}\n\n#========================\n# Selenium Distributor Configuration\n#========================\n\nEXPOSE 5553\n\nCOPY --chown=\"${SEL_UID}:${SEL_GID}\" start-selenium-grid-distributor.sh \\\n    /opt/bin/\n\nCOPY selenium-grid-distributor.conf /etc/supervisor/conf.d/\n\n# In seconds, maps to \"--session-request-timeout\"\nENV SE_SESSION_REQUEST_TIMEOUT=\"300\" \\\n# In seconds, maps to \"--session-retry-interval\"\n    SE_SESSION_RETRY_INTERVAL=\"15\" \\\n# In seconds, maps to \"--healthcheck-interval\"\n    SE_HEALTHCHECK_INTERVAL=\"120\" \\\n    SE_EVENT_BUS_PUBLISH_PORT=\"4442\" \\\n    SE_EVENT_BUS_SUBSCRIBE_PORT=\"4443\" \\\n    SE_SESSIONS_MAP_PORT=\"5556\" \\\n    SE_SESSION_QUEUE_PORT=\"5559\" \\\n    SE_DISTRIBUTOR_PORT=\"5553\" \\\n    SE_OTEL_SERVICE_NAME=\"selenium-distributor\"\n"
  },
  {
    "path": "Distributor/selenium-grid-distributor.conf",
    "content": "; Documentation of this file format -> http://supervisord.org/configuration.html\n\n[program:selenium-grid-distributor]\n\npriority=0\ncommand=/opt/bin/start-selenium-grid-distributor.sh\nautostart=true\nautorestart=%(ENV_SE_SUPERVISORD_AUTO_RESTART)s\nstartsecs=0\nstartretries=%(ENV_SE_SUPERVISORD_START_RETRIES)s\nstopsignal=TERM\n\n;Logs (all Hub activity redirected to stdout so it can be seen through \"docker logs\"\nredirect_stderr=true\nstdout_logfile=/dev/stdout\nstdout_logfile_maxbytes=0\n"
  },
  {
    "path": "Distributor/start-selenium-grid-distributor.sh",
    "content": "#!/usr/bin/env bash\n\n# set -e: exit asap if a command exits with a non-zero status\nset -e\n\necho \"Starting Selenium Grid Distributor...\"\n\nfunction append_se_opts() {\n  local option=\"${1}\"\n  local value=\"${2:-\"\"}\"\n  local log_message=\"${3:-true}\"\n  if [[ \"${SE_OPTS}\" != *\"${option}\"* ]]; then\n    if [ \"${log_message}\" = \"true\" ]; then\n      echo \"Appending Selenium option: ${option} ${value}\"\n    else\n      echo \"Appending Selenium option: ${option} $(mask ${value})\"\n    fi\n    SE_OPTS=\"${SE_OPTS} ${option}\"\n    if [ ! -z \"${value}\" ]; then\n      SE_OPTS=\"${SE_OPTS} ${value}\"\n    fi\n  else\n    echo \"Selenium option: ${option} already set in env variable SE_OPTS. Ignore new option: ${option} ${value}\"\n  fi\n}\n\nif [ ! -z \"$SE_OPTS\" ]; then\n  echo \"Appending Selenium options: ${SE_OPTS}\"\nfi\n\nif [[ ! -z \"${SE_EVENT_BUS_HOST}\" ]]; then\n  if [[ ! -z \"${SE_EVENT_BUS_PUBLISH_PORT}\" ]]; then\n    append_se_opts \"--publish-events\" \"tcp://${SE_EVENT_BUS_HOST}:${SE_EVENT_BUS_PUBLISH_PORT}\"\n  else\n    echo \"SE_EVENT_BUS_PUBLISH_PORT not set, exiting!\" 1>&2\n    exit 1\n  fi\n  if [[ ! -z \"${SE_EVENT_BUS_SUBSCRIBE_PORT}\" ]]; then\n    append_se_opts \"--subscribe-events\" \"tcp://${SE_EVENT_BUS_HOST}:${SE_EVENT_BUS_SUBSCRIBE_PORT}\"\n  else\n    echo \"SE_EVENT_BUS_SUBSCRIBE_PORT not set, exiting!\" 1>&2\n    exit 1\n  fi\nelse\n  echo \"SE_EVENT_BUS_HOST not set, exiting!\" 1>&2\n  exit 1\nfi\n\nif [[ ! -z \"${SE_SESSIONS_MAP_HOST}\" ]]; then\n  append_se_opts \"--sessions-host\" \"${SE_SESSIONS_MAP_HOST}\"\n  if [[ ! -z \"${SE_SESSIONS_MAP_PORT}\" ]]; then\n    append_se_opts \"--sessions-port\" \"${SE_SESSIONS_MAP_PORT}\"\n  else\n    echo \"SE_SESSIONS_MAP_PORT not set, exiting!\" 1>&2\n    exit 1\n  fi\nelse\n  echo \"SE_SESSIONS_MAP_HOST not set, exiting!\" 1>&2\n  exit 1\nfi\n\nif [[ ! -z \"${SE_SESSION_QUEUE_HOST}\" ]]; then\n  append_se_opts \"--sessionqueue-host\" \"${SE_SESSION_QUEUE_HOST}\"\n  if [[ ! -z \"${SE_SESSION_QUEUE_PORT}\" ]]; then\n    append_se_opts \"--sessionqueue-port\" \"${SE_SESSION_QUEUE_PORT}\"\n  else\n    echo \"SE_SESSION_QUEUE_PORT not set, exiting!\" 1>&2\n    exit 1\n  fi\nelse\n  echo \"SE_SESSION_QUEUE_HOST not set, exiting!\" 1>&2\n  exit 1\nfi\n\nif [ ! -z \"$SE_DISTRIBUTOR_HOST\" ]; then\n  append_se_opts \"--host\" \"${SE_DISTRIBUTOR_HOST}\"\nfi\n\nif [ ! -z \"$SE_DISTRIBUTOR_PORT\" ]; then\n  append_se_opts \"--port\" \"${SE_DISTRIBUTOR_PORT}\"\nfi\n\nif [ ! -z \"${SE_BIND_HOST}\" ]; then\n  append_se_opts \"--bind-host\" \"${SE_BIND_HOST}\"\nfi\n\nif [ ! -z \"${SE_HEALTHCHECK_INTERVAL}\" ]; then\n  append_se_opts \"--healthcheck-interval\" \"${SE_HEALTHCHECK_INTERVAL}\"\nfi\n\nif [ ! -z \"${SE_SESSION_RETRY_INTERVAL}\" ]; then\n  append_se_opts \"--session-retry-interval\" \"${SE_SESSION_RETRY_INTERVAL}\"\nfi\n\nif [ ! -z \"${SE_SESSION_REQUEST_TIMEOUT}\" ]; then\n  append_se_opts \"--session-request-timeout\" \"${SE_SESSION_REQUEST_TIMEOUT}\"\nfi\n\nif [ ! -z \"$SE_LOG_LEVEL\" ]; then\n  append_se_opts \"--log-level\" \"${SE_LOG_LEVEL}\"\nfi\n\nif [ ! -z \"$SE_HTTP_LOGS\" ]; then\n  append_se_opts \"--http-logs\" \"${SE_HTTP_LOGS}\"\nfi\n\nif [ ! -z \"$SE_STRUCTURED_LOGS\" ]; then\n  append_se_opts \"--structured-logs\" \"${SE_STRUCTURED_LOGS}\"\nfi\n\nif [ ! -z \"$SE_PLAIN_LOGS\" ]; then\n  append_se_opts \"--plain-logs\" \"${SE_PLAIN_LOGS}\"\nfi\n\nif [ ! -z \"$SE_EXTERNAL_URL\" ]; then\n  append_se_opts \"--external-url\" \"${SE_EXTERNAL_URL}\"\nfi\n\nif [ \"${SE_ENABLE_TLS}\" = \"true\" ]; then\n  # Configure truststore for the server\n  if [ ! -z \"$SE_JAVA_SSL_TRUST_STORE\" ]; then\n    echo \"Appending Java options: -Djavax.net.ssl.trustStore=${SE_JAVA_SSL_TRUST_STORE}\"\n    SE_JAVA_OPTS=\"$SE_JAVA_OPTS -Djavax.net.ssl.trustStore=${SE_JAVA_SSL_TRUST_STORE}\"\n  fi\n  if [ -f \"${SE_JAVA_SSL_TRUST_STORE_PASSWORD}\" ]; then\n    echo \"Getting Truststore password from ${SE_JAVA_SSL_TRUST_STORE_PASSWORD} to set Java options: -Djavax.net.ssl.trustStorePassword\"\n    SE_JAVA_SSL_TRUST_STORE_PASSWORD=\"$(cat ${SE_JAVA_SSL_TRUST_STORE_PASSWORD})\"\n  fi\n  if [ ! -z \"${SE_JAVA_SSL_TRUST_STORE_PASSWORD}\" ]; then\n    echo \"Appending Java options: -Djavax.net.ssl.trustStorePassword=$(mask ${SE_JAVA_SSL_TRUST_STORE_PASSWORD})\"\n    SE_JAVA_OPTS=\"$SE_JAVA_OPTS -Djavax.net.ssl.trustStorePassword=${SE_JAVA_SSL_TRUST_STORE_PASSWORD}\"\n  fi\n  echo \"Appending Java options: -Djdk.internal.httpclient.disableHostnameVerification=${SE_JAVA_DISABLE_HOSTNAME_VERIFICATION}\"\n  SE_JAVA_OPTS=\"$SE_JAVA_OPTS -Djdk.internal.httpclient.disableHostnameVerification=${SE_JAVA_DISABLE_HOSTNAME_VERIFICATION}\"\n  # Configure certificate and private key for component communication\n  if [ ! -z \"$SE_HTTPS_CERTIFICATE\" ]; then\n    append_se_opts \"--https-certificate\" \"${SE_HTTPS_CERTIFICATE}\"\n  fi\n  if [ ! -z \"$SE_HTTPS_PRIVATE_KEY\" ]; then\n    append_se_opts \"--https-private-key\" \"${SE_HTTPS_PRIVATE_KEY}\"\n  fi\nfi\n\nif [ ! -z \"$SE_REGISTRATION_SECRET\" ]; then\n  append_se_opts \"--registration-secret\" \"${SE_REGISTRATION_SECRET}\" \"false\"\nfi\n\nif [ ! -z \"$SE_REJECT_UNSUPPORTED_CAPS\" ]; then\n  append_se_opts \"--reject-unsupported-caps\" \"${SE_REJECT_UNSUPPORTED_CAPS}\"\nfi\n\nif [ ! -z \"$SE_DISTRIBUTOR_SLOT_SELECTOR\" ]; then\n  append_se_opts \"--slot-selector\" \"${SE_DISTRIBUTOR_SLOT_SELECTOR}\"\nfi\n\nif [ ! -z \"$SE_NEW_SESSION_THREAD_POOL_SIZE\" ]; then\n  append_se_opts \"--newsession-threadpool-size\" \"${SE_NEW_SESSION_THREAD_POOL_SIZE}\"\nfi\n\nEXTRA_LIBS=\"\"\nif [ -n \"${SE_EXTRA_LIBS}\" ]; then\n  EXTRA_LIBS=\"--ext ${SE_EXTRA_LIBS}\"\nfi\n\nif [ \"${SE_ENABLE_TRACING}\" = \"true\" ] && [ -n \"${SE_OTEL_EXPORTER_ENDPOINT}\" ]; then\n  EXTERNAL_JARS=$(</external_jars/.classpath.txt)\n  if [ -n \"${EXTRA_LIBS}\" ] && [ -n \"${EXTERNAL_JARS}\" ]; then\n    EXTRA_LIBS=\"${EXTRA_LIBS}:${EXTERNAL_JARS}\"\n  elif [ -z \"${EXTRA_LIBS}\" ] && [ -n \"${EXTERNAL_JARS}\" ]; then\n    EXTRA_LIBS=\"--ext ${EXTERNAL_JARS}\"\n  fi\n  echo \"Tracing is enabled\"\n  if [ -n \"$SE_OTEL_SERVICE_NAME\" ]; then\n    SE_OTEL_JVM_ARGS=\"$SE_OTEL_JVM_ARGS -Dotel.resource.attributes=service.name=${SE_OTEL_SERVICE_NAME}${SE_OTEL_RESOURCE_ATTRIBUTES:+,${SE_OTEL_RESOURCE_ATTRIBUTES}}\"\n  fi\n  if [ -n \"$SE_OTEL_TRACES_EXPORTER\" ]; then\n    SE_OTEL_JVM_ARGS=\"$SE_OTEL_JVM_ARGS -Dotel.traces.exporter=${SE_OTEL_TRACES_EXPORTER}\"\n  fi\n  if [ -n \"$SE_OTEL_EXPORTER_ENDPOINT\" ]; then\n    SE_OTEL_JVM_ARGS=\"$SE_OTEL_JVM_ARGS -Dotel.exporter.otlp.endpoint=$(envsubst < <(echo ${SE_OTEL_EXPORTER_ENDPOINT}))\"\n  fi\n  if [ -n \"$SE_OTEL_JAVA_GLOBAL_AUTOCONFIGURE_ENABLED\" ]; then\n    SE_OTEL_JVM_ARGS=\"$SE_OTEL_JVM_ARGS -Dotel.java.global-autoconfigure.enabled=${SE_OTEL_JAVA_GLOBAL_AUTOCONFIGURE_ENABLED}\"\n  fi\n  if [ -n \"$SE_OTEL_JVM_ARGS\" ]; then\n    SE_JAVA_OPTS=\"$SE_JAVA_OPTS ${SE_OTEL_JVM_ARGS}\"\n  fi\nelse\n  append_se_opts \"--tracing\" \"false\"\n  SE_JAVA_OPTS=\"$SE_JAVA_OPTS -Dwebdriver.remote.enableTracing=false\"\n  echo \"Tracing is disabled\"\nfi\n\nif [ -n \"${EXTRA_LIBS}\" ]; then\n  echo \"Classpath will be enriched with these external jars : ${EXTRA_LIBS}\"\nfi\n\nif [ -n \"${SE_JAVA_HTTPCLIENT_VERSION}\" ]; then\n  SE_JAVA_OPTS=\"$SE_JAVA_OPTS -Dwebdriver.httpclient.version=${SE_JAVA_HTTPCLIENT_VERSION}\"\nfi\n\nif [ -n \"${SE_JAVA_OPTS_DEFAULT}\" ]; then\n  SE_JAVA_OPTS=\"${SE_JAVA_OPTS_DEFAULT} $SE_JAVA_OPTS\"\nfi\n\nfunction handle_heap_dump() {\n  /opt/bin/handle_heap_dump.sh /opt/selenium/logs\n}\nif [ \"${SE_JAVA_HEAP_DUMP}\" = \"true\" ]; then\n  SE_JAVA_OPTS=\"$SE_JAVA_OPTS -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=/opt/selenium/logs\"\n  trap handle_heap_dump ERR SIGTERM SIGINT\nfi\n\nif [ -n \"${JAVA_OPTS}\" ]; then\n  SE_JAVA_OPTS=\"$SE_JAVA_OPTS ${JAVA_OPTS}\"\nfi\n\necho \"Using JAVA_OPTS: ${SE_JAVA_OPTS}\"\n\njava ${SE_JAVA_OPTS} \\\n  -jar /opt/selenium/selenium-server.jar \\\n  ${EXTRA_LIBS} \\\n  distributor \\\n  --bind-bus false \\\n  ${SE_OPTS}\n"
  },
  {
    "path": "ENV_VARIABLES.md",
    "content": "| ENV variable | Default value | Description | CLI option represent |\n|--------------|---------------|-------------|----------------------|\n| SE_SCREEN_WIDTH | 1920 | Use in Node to set the screen width |  |\n| SE_SCREEN_HEIGHT | 1080 | Use in Node to set the screen height |  |\n| SE_VIDEO_FILE_NAME | auto | Use in function video recording to set the output file name. Set `auto` for dynamic file name relying on test metadata |  |\n| SE_FRAME_RATE | 15 | Set the frame rate for FFmpeg in video recording |  |\n| SE_CODEC | libx264 | Set the codec for FFmpeg in video recording |  |\n| SE_PRESET | -preset ultrafast | Set the preset for FFmpeg in video recording |  |\n| SE_VIDEO_UPLOAD_ENABLED | false | Enable video upload |  |\n| SE_VIDEO_INTERNAL_UPLOAD | true | Enable video upload using Rclone in the same recorder container |  |\n| SE_UPLOAD_DESTINATION_PREFIX |  | Remote name and destination path to upload |  |\n| SE_UPLOAD_PIPE_FILE_NAME |  | Set the pipe file name for video upload to consume |  |\n| SE_SERVER_PROTOCOL | http | Protocol for communication between components |  |\n| SE_VIDEO_POLL_INTERVAL | 1 |  |  |\n| SE_VIDEO_WAIT_ATTEMPTS |  |  |  |\n| SE_VIDEO_FILE_READY_WAIT_ATTEMPTS |  |  |  |\n| SE_VIDEO_WAIT_UPLOADER_SHUTDOWN_ATTEMPTS |  |  |  |\n| SE_LOG_TIMESTAMP_FORMAT | %Y-%m-%d %H:%M:%S,%3N |  |  |\n| SE_VIDEO_RECORD_STANDALONE |  |  |  |\n| SE_NODE_PORT |  |  | --port |\n| SE_ROUTER_USERNAME |  | Set the username for basic authentication | --username |\n| SE_ROUTER_PASSWORD |  | Set the password for basic authentication |  |\n| SE_SUPERVISORD_PID_FILE | /tmp/supervisord.pid | Default pid file will be created by supervisord |  |\n| SE_DRAIN_AFTER_SESSION_COUNT | 0 | Drain and detach node from grid after session count exceeds | --drain-after-session-count |\n| SE_SUB_PATH |  | A sub-path that should be considered for all user facing routes on the Hub/Router/Standalone | --sub-path |\n| SE_NODE_GRID_URL |  | Node config, public URL of the Grid as a whole (typically the address of the Hub or the Router) | --grid-url |\n| SE_HUB_HOST |  | Hub config, host address the Hub should listen on | --host |\n| SE_ROUTER_HOST |  | Router config, host address the Router should listen on | --host |\n| SE_HUB_PORT | 4444 | Hub config, port the Hub should listen on (default 4444) | --port |\n| SE_ROUTER_PORT | 4444 | Router config, port the Router should listen on (default 4444) | --port |\n| SE_NODE_GRID_GRAPHQL_URL |  | Video recording config, GraphQL URL to query test metadata for dynamic file name |  |\n| SE_VIDEO_FILE_NAME_TRIM_REGEX | [^a-zA-Z0-9-_] | Python regex to trim the file name if it is too long |  |\n| SE_VIDEO_FILE_NAME_SUFFIX | true | Append a suffix session id along with test metadata |  |\n| SE_RCLONE_CONFIG |  |  |  |\n| SE_UPLOAD_COMMAND |  |  |  |\n| SE_UPLOAD_OPTS |  |  |  |\n| SE_UPLOAD_RETAIN_LOCAL_FILE |  |  |  |\n| SE_VIDEO_UPLOAD_BATCH_CHECK |  |  |  |\n| SE_RCLONE_ |  |  |  |\n| SE_OPTS |  | This is used to pass any additional CLI options (which doesn't have environment variable representation) to the component. Refer to list supported options per component in [documentation](https://www.selenium.dev/documentation/grid/configuration/cli_options/) |  |\n| SE_EVENT_BUS_HOST |  |  |  |\n| SE_EVENT_BUS_PORT | 5557 |  |  |\n| SE_LOG_LEVEL | INFO | Log level. Default logging level is INFO. Log levels are described [here](https://docs.oracle.com/en/java/javase/11/docs/api/java.logging/java/util/logging/Level.html) | --log-level |\n| SE_HTTP_LOGS | false |  | --http-logs |\n| SE_STRUCTURED_LOGS | false |  | --structured-logs |\n| SE_EXTERNAL_URL |  |  | --external-url |\n| SE_ENABLE_TLS | false |  |  |\n| SE_JAVA_SSL_TRUST_STORE | /opt/selenium/secrets/server.jks |  |  |\n| SE_JAVA_OPTS |  |  |  |\n| SE_JAVA_SSL_TRUST_STORE_PASSWORD | /opt/selenium/secrets/server.pass |  |  |\n| SE_JAVA_DISABLE_HOSTNAME_VERIFICATION | true |  |  |\n| SE_HTTPS_CERTIFICATE | /opt/selenium/secrets/tls.crt |  | --https-certificate |\n| SE_HTTPS_PRIVATE_KEY | /opt/selenium/secrets/tls.key |  | --https-private-key |\n| SE_ENABLE_TRACING | true |  | --tracing |\n| SE_OTEL_EXPORTER_ENDPOINT |  |  | -Dotel.exporter.otlp.endpoint= |\n| SE_OTEL_SERVICE_NAME | selenium-router |  | -Dotel.resource.attributes=service.name= |\n| SE_OTEL_JVM_ARGS |  |  |  |\n| SE_OTEL_TRACES_EXPORTER | otlp |  | -Dotel.traces.exporter |\n| SE_OTEL_JAVA_GLOBAL_AUTOCONFIGURE_ENABLED | true |  |  |\n| SE_JAVA_HTTPCLIENT_VERSION | HTTP_1_1 |  | -Dwebdriver.httpclient.version |\n| SE_JAVA_OPTS_DEFAULT |  |  |  |\n| SE_JAVA_HEAP_DUMP | false |  |  |\n| SE_BIND_HOST | false |  |  |\n| SE_SCREEN_DEPTH | 24 |  |  |\n| SE_SCREEN_DPI | 96 |  |  |\n| SE_START_XVFB | true |  |  |\n| SE_START_VNC | true |  |  |\n| SE_START_NO_VNC | true |  |  |\n| SE_VNC_ULIMIT |  |  |  |\n| SE_NO_VNC_PORT | 7900 |  |  |\n| SE_VNC_PORT | 5900 |  |  |\n| SE_VNC_NO_PASSWORD |  |  |  |\n| SE_VNC_VIEW_ONLY |  |  |  |\n| SE_VNC_PASSWORD |  |  |  |\n| SE_EVENT_BUS_PUBLISH_PORT | 4442 |  |  |\n| SE_EVENT_BUS_SUBSCRIBE_PORT | 4443 |  |  |\n| SE_NODE_SESSION_TIMEOUT | 300 |  | --session-timeout |\n| SE_NODE_ENABLE_MANAGED_DOWNLOADS | true | This causes the Node to auto manage files downloaded for a given session on the Node | --enable-managed-downloads |\n| SE_NODE_ENABLE_CDP |  | Enable CDP proxying in Grid. A Grid admin can disable CDP if the network doesnot allow websockets. True by default. | --enable-cdp |\n| SE_NODE_REGISTER_PERIOD | 120 |  | --register-period |\n| SE_NODE_REGISTER_CYCLE | 10 |  | --register-cycle |\n| SE_NODE_HEARTBEAT_PERIOD | 15 |  | --heartbeat-period |\n| SE_REGISTRATION_SECRET |  |  | --registration-secret |\n| SE_BROWSER_LEFTOVERS_PROCESSES_SECS | 7200 |  |  |\n| SE_BROWSER_LEFTOVERS_TEMPFILES_DAYS | 1 |  |  |\n| SE_BROWSER_LEFTOVERS_INTERVAL_SECS | 3600 |  |  |\n| SE_DISABLE_UI |  |  | --disable-ui |\n| SE_REJECT_UNSUPPORTED_CAPS | false |  | --reject-unsupported-caps |\n| SE_NEW_SESSION_THREAD_POOL_SIZE |  |  | --newsession-threadpool-size |\n| SE_SESSION_REQUEST_TIMEOUT | 300 |  | --session-request-timeout |\n| SE_SESSION_RETRY_INTERVAL | 15 |  | --session-retry-interval |\n| SE_HEALTHCHECK_INTERVAL | 120 |  | --healthcheck-interval |\n| SE_RELAX_CHECKS | true |  | --relax-checks |\n| SE_SESSION_QUEUE_HOST |  |  | --sessionqueue-host |\n| SE_SESSION_QUEUE_PORT | 5559 |  | --sessionqueue-port |\n| SE_VIDEO_FOLDER |  |  |  |\n| SE_LOG_LISTEN_GRAPHQL |  |  |  |\n| SE_NODE_PRESTOP_WAIT_STRATEGY |  |  |  |\n| SE_SESSIONS_MAP_EXTERNAL_DATASTORE | false |  |  |\n| SE_SESSIONS_MAP_HOST |  |  | --sessions-host |\n| SE_SESSIONS_MAP_PORT | 5556 |  | --sessions-port |\n| SE_DISTRIBUTOR_HOST |  |  |  |\n| SE_DISTRIBUTOR_PORT | 5553 |  |  |\n| SE_GRID_URL |  |  | --grid-url |\n| SE_NODE_DOCKER_CONFIG_FILENAME | docker.toml |  |  |\n| SE_NODE_GRACEFUL_SHUTDOWN |  |  |  |\n| SE_VIDEO_CONTAINER_NAME |  |  |  |\n| SE_RECORD_VIDEO | true |  |  |\n| SE_ENABLE_BROWSER_LEFTOVERS_CLEANUP | false |  |  |\n| SE_NODE_MAX_SESSIONS | 1 | Set the number of maximum concurrent sessions per browser Node, by default is 1 | --max-sessions |\n| SE_NODE_OVERRIDE_MAX_SESSIONS | false | By default is false, enable this flag for setting max session take effect in browser Node | --override-max-sessions |\n| SE_OFFLINE | true | Selenium Manager offline mode, use the browser and driver pre-configured in the image |  |\n| SE_NODE_BROWSER_VERSION | stable | Overwrite the default browserVersion in Node stereotype. By default, it is short version of current browser installed in Node. For example `139.0` |  |\n| SE_NODE_PLATFORM_NAME | Linux | Overwrite the default platformName in Node stereotype. By default, it is `Linux` |  |\n| SE_SUPERVISORD_LOG_LEVEL | info |  |  |\n| SE_SUPERVISORD_CHILD_LOG_DIR | /tmp |  |  |\n| SE_SUPERVISORD_LOG_FILE | /tmp/supervisord.log |  |  |\n| SE_SUPERVISORD_AUTO_RESTART | true |  |  |\n| SE_SUPERVISORD_START_RETRIES | 5 |  |  |\n| SE_RECORD_AUDIO | false | Flag to enable recording the audio source (default is Pulse Audio input) |  |\n| SE_AUDIO_SOURCE | -f pulse -ac 2 -i default | FFmpeg arguments to record the audio source |  |\n| SE_BROWSER_BINARY_LOCATION |  | Browser binary location set to Node driver configuration. This helpful in case you customize on top of official Docker image to install another browser in other path and still using GENERATE_CONFIG=true (where enforce detect-drivers = false and controlled by our config logic). By default in corresponding browser, default path would be `/usr/bin/google-chrome`, `/usr/bin/chromium`, `/usr/bin/firefox`, `/usr/bin/microsoft-edge`. Example usage: `SE_BROWSER_BINARY_LOCATION=/opt/google-chrome` |  |\n| SE_NODE_BROWSER_NAME |  |  |  |\n| SE_NODE_CONTAINER_NAME |  | Set a unique name to identify the Node is running in which container (via session capabilities `se:containerName`). This is helpful when deploying Node in Kubernetes cluster, where is able to use metadata pod name set to this env variable. By default, it is the `$(hostname)` (a.k.a container id could be seen via `docker ps`) |  |\n| SE_NODE_HOST |  |  |  |\n| SE_NODE_RELAY_BROWSER_NAME |  |  |  |\n| SE_NODE_RELAY_MAX_SESSIONS |  |  |  |\n| SE_NODE_RELAY_PLATFORM_NAME |  |  |  |\n| SE_NODE_RELAY_PLATFORM_VERSION |  |  |  |\n| SE_NODE_RELAY_PROTOCOL_VERSION |  |  |  |\n| SE_NODE_RELAY_STATUS_ENDPOINT |  |  |  |\n| SE_NODE_RELAY_URL |  |  |  |\n| SE_NODE_STEREOTYPE |  | Capabilities in JSON string to overwrite the default Node stereotype |  |\n| SE_NODE_STEREOTYPE_EXTRA |  | Extra capabilities in JSON string that wants to merge to the default Node stereotype. This is helpful when you want to retain the default Node stereotype and append additional capabilities. Example usage `SE_NODE_STEREOTYPE_EXTRA={\"myApp:version\":\"beta\",\"myApp:publish\":\"public\"}` |  |\n| SE_SESSIONS_MAP_EXTERNAL_HOSTNAME |  |  |  |\n| SE_SESSIONS_MAP_EXTERNAL_IMPLEMENTATION |  |  |  |\n| SE_SESSIONS_MAP_EXTERNAL_JDBC_PASSWORD |  |  |  |\n| SE_SESSIONS_MAP_EXTERNAL_JDBC_URL |  |  |  |\n| SE_SESSIONS_MAP_EXTERNAL_JDBC_USER |  |  |  |\n| SE_SESSIONS_MAP_EXTERNAL_PORT |  |  |  |\n| SE_SESSIONS_MAP_EXTERNAL_SCHEME |  |  |  |\n| SE_NODE_RELAY_STEREOTYPE |  | Capabilities in JSON string to overwrite the default Node relay stereotype |  |\n| SE_NODE_RELAY_STEREOTYPE_EXTRA |  | Extra capabilities in JSON string that wants to merge to the default Node relay stereotype |  |\n| SE_NODE_REGISTER_SHUTDOWN_ON_FAILURE | true | If this flag is enabled, the Node will shut down after the register period is completed. This is useful for container environments to restart and register again. If restarted multiple times, the Node container status will be CrashLoopBackOff | --register-shutdown-on-failure |\n| SE_NODE_RELAY_BROWSER_VERSION |  |  |  |\n| SE_NODE_RELAY_ONLY | true |  |  |\n| SE_EXTRA_LIBS |  | Extra jars to add to the classpath in server component bootstrap | --ext |\n| SE_NODE_CONNECTION_LIMIT_PER_SESSION | 20 |  |  |\n| SE_SUPERVISORD_UNIX_SERVER_PASSWORD | secret |  |  |\n| SE_FFMPEG_THREADS |  |  |  |\n| SE_OTEL_RESOURCE_ATTRIBUTES |  | Add more attributes to the OpenTelemetry resource, e.g. \"service.version=1.0.0,deployment.environment=production\" |  |\n| SE_VIDEO_BUFSIZE |  |  |  |\n| SE_VIDEO_CRF |  |  |  |\n| SE_VIDEO_MAXRATE |  |  |  |\n| SE_NODE_DELETE_SESSION_ON_UI | true | Enable capability to support deleting session on Grid UI | --delete-session-on-ui |\n| SE_UPDATE_CHROME_COMPONENTS |  | Applicable for node-chrome, standalone-chrome (arch linux/amd64). Update the latest version of Chrome and ChromeDriver at the beginning of the container startup. Read more: [#2872](https://github.com/SeleniumHQ/docker-selenium/pull/2872) |  |\n| SE_DISTRIBUTOR_SLOT_SELECTOR |  | Full class name of non-default slot selector. This is used to select a slot in a Node once the Node has been matched. Switch to built-in Greedy strategy, use class name `org.openqa.selenium.grid.distributor.selector.GreedySlotSelector` | --slot-selector |\n| SE_EVENT_BUS_HEARTBEAT_PERIOD |  | How often, in seconds, will the EventBus socket send heartbeats | --eventbus-heartbeat-period |\n| SE_NODE_ENABLE_BROWSER |  | Checkout usage of SE_NODE_ENABLE_BROWSER_* in below |  |\n| SE_NODE_ENABLE_BROWSER_ |  | This is used in node/standalone all browsers in one container, append suffix CHROME, FIREFOX or EDGE to disable correspoding browser in Node stereotypes. For example: SE_NODE_ENABLE_BROWSER_CHROME=false |  |\n| SE_NODE_DOWN_FAILURE_THRESHOLD | 0 | Maximum number of consecutive session creation failures before the Node is marked as DOWN. This helps detect and isolate unhealthy Nodes that consistently fail to create sessions. A value of 0 (default) disables this feature, allowing unlimited retries. A value higher than zero enables this feature. | --node-down-failure-threshold |\n| SE_BIND_BUS | true | When true, the Standalone will start the Event Bus and connect itself. Standalone also expose publishing and subscribing port for sidecar service can listen on session events. | --bind-bus |\n| SE_EVENT_BUS_IMPLEMENTATION |  | Full class name of non-default event bus implementation. For example: org.openqa.selenium.events.zeromq.ZeroMqEventBus | --events-implementation |\n| SE_NODE_KUBERNETES_CONFIG_FILENAME | kubernetes.toml | A separate TOML config file name for Dynamic Grid in Kubernetes, which avoid conflict with browser config if shared mouted volume |  |\n| SE_UPLOAD_FAILURE_SESSION_EVENTS | :failed,:failure | By default, a failure session event type contains \":failed\" or \":failure\" fires that will trigger the upload failure session only. User can define more event types which handled in your test framework, separated by comma. |  |\n| SE_UPLOAD_FAILURE_SESSION_ONLY | false | When true, only recording of sessions that are not exited normally (session timed out, or custom events were fired by the client match with failure events defined) |  |\n| SE_VIDEO_EVENT_DRIVEN | true | Backend of video recorder and uploader will subscribe to Grid Event Bus for session event lifecycle for processing instead of traditional polling Node session capabilities via /status endpoint. |  |\n| SE_PLAIN_LOGS | true | Use plain log lines | --plain-logs |\n| SE_DYNAMIC_MAX_SESSIONS |  | Set the number of maximum concurrent sessions of Dynamic Node (both Docker and Kubernetes) |  |\n| SE_DYNAMIC_OVERRIDE_MAX_SESSIONS |  | Enable this flag for setting max session take effect in Dynamic Node (both Docker and Kubernetes) |  |\n"
  },
  {
    "path": "EventBus/Dockerfile",
    "content": "ARG NAMESPACE=selenium\nARG VERSION=latest\nFROM ${NAMESPACE}/base:${VERSION}\nARG AUTHORS\nLABEL authors=${AUTHORS}\n\nUSER ${SEL_UID}\n\n#=================================\n# Selenium Event Bus Configuration\n#=================================\n\n# Port where events are published\nEXPOSE 4442\n# Port where to subscribe for events\nEXPOSE 4443\n# Event Bus port\nEXPOSE 5557\n\nCOPY --chown=\"${SEL_UID}:${SEL_GID}\" start-selenium-grid-eventbus.sh \\\n    /opt/bin/\n\nCOPY selenium-grid-eventbus.conf /etc/supervisor/conf.d/\n\nENV SE_OTEL_SERVICE_NAME=\"selenium-event-bus\" \\\n    SE_EVENT_BUS_PUBLISH_PORT=\"4442\" \\\n    SE_EVENT_BUS_SUBSCRIBE_PORT=\"4443\" \\\n    SE_EVENT_BUS_PORT=\"5557\"\n"
  },
  {
    "path": "EventBus/selenium-grid-eventbus.conf",
    "content": "; Documentation of this file format -> http://supervisord.org/configuration.html\n\n[program:selenium-grid-eventbus]\n\npriority=0\ncommand=/opt/bin/start-selenium-grid-eventbus.sh\nautostart=true\nautorestart=%(ENV_SE_SUPERVISORD_AUTO_RESTART)s\nstartsecs=0\nstartretries=%(ENV_SE_SUPERVISORD_START_RETRIES)s\nstopsignal=TERM\n\n;Logs (all Hub activity redirected to stdout so it can be seen through \"docker logs\"\nredirect_stderr=true\nstdout_logfile=/dev/stdout\nstdout_logfile_maxbytes=0\n"
  },
  {
    "path": "EventBus/start-selenium-grid-eventbus.sh",
    "content": "#!/usr/bin/env bash\n\n# set -e: exit asap if a command exits with a non-zero status\nset -e\n\necho \"Starting Selenium Grid EventBus...\"\n\nfunction append_se_opts() {\n  local option=\"${1}\"\n  local value=\"${2:-\"\"}\"\n  local log_message=\"${3:-true}\"\n  if [[ \"${SE_OPTS}\" != *\"${option}\"* ]]; then\n    if [ \"${log_message}\" = \"true\" ]; then\n      echo \"Appending Selenium option: ${option} ${value}\"\n    else\n      echo \"Appending Selenium option: ${option} $(mask ${value})\"\n    fi\n    SE_OPTS=\"${SE_OPTS} ${option}\"\n    if [ ! -z \"${value}\" ]; then\n      SE_OPTS=\"${SE_OPTS} ${value}\"\n    fi\n  else\n    echo \"Selenium option: ${option} already set in env variable SE_OPTS. Ignore new option: ${option} ${value}\"\n  fi\n}\n\nif [ ! -z \"$SE_EVENT_BUS_HOST\" ]; then\n  echo \"Using SE_EVENT_BUS_HOST: ${SE_EVENT_BUS_HOST}\"\n  HOST_CONFIG=\"--host ${SE_EVENT_BUS_HOST}\"\nfi\n\nif [ ! -z \"$SE_EVENT_BUS_PORT\" ]; then\n  echo \"Using SE_EVENT_BUS_PORT: ${SE_EVENT_BUS_PORT}\"\n  PORT_CONFIG=\"--port ${SE_EVENT_BUS_PORT}\"\nfi\n\nif [ ! -z \"$SE_OPTS\" ]; then\n  echo \"Appending Selenium options: ${SE_OPTS}\"\nfi\n\nif [ ! -z \"$SE_LOG_LEVEL\" ]; then\n  append_se_opts \"--log-level\" \"${SE_LOG_LEVEL}\"\nfi\n\nif [ ! -z \"$SE_HTTP_LOGS\" ]; then\n  append_se_opts \"--http-logs\" \"${SE_HTTP_LOGS}\"\nfi\n\nif [ ! -z \"$SE_STRUCTURED_LOGS\" ]; then\n  append_se_opts \"--structured-logs\" \"${SE_STRUCTURED_LOGS}\"\nfi\n\nif [ ! -z \"$SE_PLAIN_LOGS\" ]; then\n  append_se_opts \"--plain-logs\" \"${SE_PLAIN_LOGS}\"\nfi\n\nif [ ! -z \"$SE_EXTERNAL_URL\" ]; then\n  append_se_opts \"--external-url\" \"${SE_EXTERNAL_URL}\"\nfi\n\nif [ ! -z \"${SE_EVENT_BUS_HEARTBEAT_PERIOD}\" ]; then\n  append_se_opts \"--eventbus-heartbeat-period\" \"${SE_EVENT_BUS_HEARTBEAT_PERIOD}\"\nfi\n\nif [ \"${SE_ENABLE_TLS}\" = \"true\" ]; then\n  # Configure truststore for the server\n  if [ ! -z \"$SE_JAVA_SSL_TRUST_STORE\" ]; then\n    echo \"Appending Java options: -Djavax.net.ssl.trustStore=${SE_JAVA_SSL_TRUST_STORE}\"\n    SE_JAVA_OPTS=\"$SE_JAVA_OPTS -Djavax.net.ssl.trustStore=${SE_JAVA_SSL_TRUST_STORE}\"\n  fi\n  if [ -f \"${SE_JAVA_SSL_TRUST_STORE_PASSWORD}\" ]; then\n    echo \"Getting Truststore password from ${SE_JAVA_SSL_TRUST_STORE_PASSWORD} to set Java options: -Djavax.net.ssl.trustStorePassword\"\n    SE_JAVA_SSL_TRUST_STORE_PASSWORD=\"$(cat ${SE_JAVA_SSL_TRUST_STORE_PASSWORD})\"\n  fi\n  if [ ! -z \"${SE_JAVA_SSL_TRUST_STORE_PASSWORD}\" ]; then\n    echo \"Appending Java options: -Djavax.net.ssl.trustStorePassword=$(mask ${SE_JAVA_SSL_TRUST_STORE_PASSWORD})\"\n    SE_JAVA_OPTS=\"$SE_JAVA_OPTS -Djavax.net.ssl.trustStorePassword=${SE_JAVA_SSL_TRUST_STORE_PASSWORD}\"\n  fi\n  echo \"Appending Java options: -Djdk.internal.httpclient.disableHostnameVerification=${SE_JAVA_DISABLE_HOSTNAME_VERIFICATION}\"\n  SE_JAVA_OPTS=\"$SE_JAVA_OPTS -Djdk.internal.httpclient.disableHostnameVerification=${SE_JAVA_DISABLE_HOSTNAME_VERIFICATION}\"\n  # Configure certificate and private key for component communication\n  if [ ! -z \"$SE_HTTPS_CERTIFICATE\" ]; then\n    append_se_opts \"--https-certificate\" \"${SE_HTTPS_CERTIFICATE}\"\n  fi\n  if [ ! -z \"$SE_HTTPS_PRIVATE_KEY\" ]; then\n    append_se_opts \"--https-private-key\" \"${SE_HTTPS_PRIVATE_KEY}\"\n  fi\nfi\n\nEXTRA_LIBS=\"\"\nif [ -n \"${SE_EXTRA_LIBS}\" ]; then\n  EXTRA_LIBS=\"--ext ${SE_EXTRA_LIBS}\"\nfi\n\nif [ \"${SE_ENABLE_TRACING}\" = \"true\" ] && [ -n \"${SE_OTEL_EXPORTER_ENDPOINT}\" ]; then\n  EXTERNAL_JARS=$(</external_jars/.classpath.txt)\n  if [ -n \"${EXTRA_LIBS}\" ] && [ -n \"${EXTERNAL_JARS}\" ]; then\n    EXTRA_LIBS=\"${EXTRA_LIBS}:${EXTERNAL_JARS}\"\n  elif [ -z \"${EXTRA_LIBS}\" ] && [ -n \"${EXTERNAL_JARS}\" ]; then\n    EXTRA_LIBS=\"--ext ${EXTERNAL_JARS}\"\n  fi\n  echo \"Tracing is enabled\"\n  if [ -n \"$SE_OTEL_SERVICE_NAME\" ]; then\n    SE_OTEL_JVM_ARGS=\"$SE_OTEL_JVM_ARGS -Dotel.resource.attributes=service.name=${SE_OTEL_SERVICE_NAME}${SE_OTEL_RESOURCE_ATTRIBUTES:+,${SE_OTEL_RESOURCE_ATTRIBUTES}}\"\n  fi\n  if [ -n \"$SE_OTEL_TRACES_EXPORTER\" ]; then\n    SE_OTEL_JVM_ARGS=\"$SE_OTEL_JVM_ARGS -Dotel.traces.exporter=${SE_OTEL_TRACES_EXPORTER}\"\n  fi\n  if [ -n \"$SE_OTEL_EXPORTER_ENDPOINT\" ]; then\n    SE_OTEL_JVM_ARGS=\"$SE_OTEL_JVM_ARGS -Dotel.exporter.otlp.endpoint=$(envsubst < <(echo ${SE_OTEL_EXPORTER_ENDPOINT}))\"\n  fi\n  if [ -n \"$SE_OTEL_JAVA_GLOBAL_AUTOCONFIGURE_ENABLED\" ]; then\n    SE_OTEL_JVM_ARGS=\"$SE_OTEL_JVM_ARGS -Dotel.java.global-autoconfigure.enabled=${SE_OTEL_JAVA_GLOBAL_AUTOCONFIGURE_ENABLED}\"\n  fi\n  if [ -n \"$SE_OTEL_JVM_ARGS\" ]; then\n    SE_JAVA_OPTS=\"$SE_JAVA_OPTS ${SE_OTEL_JVM_ARGS}\"\n  fi\nelse\n  append_se_opts \"--tracing\" \"false\"\n  SE_JAVA_OPTS=\"$SE_JAVA_OPTS -Dwebdriver.remote.enableTracing=false\"\n  echo \"Tracing is disabled\"\nfi\n\nif [ -n \"${EXTRA_LIBS}\" ]; then\n  echo \"Classpath will be enriched with these external jars : ${EXTRA_LIBS}\"\nfi\n\nif [ -n \"${SE_JAVA_HTTPCLIENT_VERSION}\" ]; then\n  SE_JAVA_OPTS=\"$SE_JAVA_OPTS -Dwebdriver.httpclient.version=${SE_JAVA_HTTPCLIENT_VERSION}\"\nfi\n\nif [ -n \"${SE_JAVA_OPTS_DEFAULT}\" ]; then\n  SE_JAVA_OPTS=\"${SE_JAVA_OPTS_DEFAULT} $SE_JAVA_OPTS\"\nfi\n\nfunction handle_heap_dump() {\n  /opt/bin/handle_heap_dump.sh /opt/selenium/logs\n}\nif [ \"${SE_JAVA_HEAP_DUMP}\" = \"true\" ]; then\n  SE_JAVA_OPTS=\"$SE_JAVA_OPTS -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=/opt/selenium/logs\"\n  trap handle_heap_dump ERR SIGTERM SIGINT\nfi\n\nif [ -n \"${JAVA_OPTS}\" ]; then\n  SE_JAVA_OPTS=\"$SE_JAVA_OPTS ${JAVA_OPTS}\"\nfi\n\necho \"Using JAVA_OPTS: ${SE_JAVA_OPTS}\"\n\njava ${SE_JAVA_OPTS} \\\n  -jar /opt/selenium/selenium-server.jar \\\n  ${EXTRA_LIBS} event-bus \\\n  --bind-host ${SE_BIND_HOST} \\\n  ${HOST_CONFIG} \\\n  ${PORT_CONFIG} \\\n  ${SE_OPTS}\n"
  },
  {
    "path": "Hub/Dockerfile",
    "content": "ARG NAMESPACE=selenium\nARG VERSION=latest\nFROM ${NAMESPACE}/base:${VERSION}\nARG AUTHORS\nLABEL authors=${AUTHORS}\n\nUSER ${SEL_UID}\n\n#========================\n# Selenium Hub Configuration\n#========================\n\nEXPOSE 4442\nEXPOSE 4443\nEXPOSE 4444\n\n# In seconds, maps to \"--session-request-timeout\"\nENV SE_SESSION_REQUEST_TIMEOUT=\"300\" \\\n# In seconds, maps to \"--session-retry-interval\"\n    SE_SESSION_RETRY_INTERVAL=\"15\" \\\n# In seconds, maps to \"--healthcheck-interval\"\n    SE_HEALTHCHECK_INTERVAL=\"120\" \\\n# Boolean value, maps \"--relax-checks\"\n    SE_RELAX_CHECKS=\"true\" \\\n    SE_HUB_PORT=\"4444\" \\\n    SE_OTEL_SERVICE_NAME=\"selenium-hub\"\n\nCOPY --chown=\"${SEL_UID}:${SEL_GID}\" start-selenium-grid-hub.sh \\\n    /opt/bin/\n\nCOPY selenium-grid-hub.conf /etc/supervisor/conf.d/\n"
  },
  {
    "path": "Hub/example-config.toml",
    "content": "[router]\nusername = \"admin\"\npassword = \"myStrongPassword\"\n"
  },
  {
    "path": "Hub/selenium-grid-hub.conf",
    "content": "; Documentation of this file format -> http://supervisord.org/configuration.html\n\n[program:selenium-grid-hub]\n\npriority=0\ncommand=/opt/bin/start-selenium-grid-hub.sh\nautostart=true\nautorestart=%(ENV_SE_SUPERVISORD_AUTO_RESTART)s\nstartsecs=0\nstartretries=%(ENV_SE_SUPERVISORD_START_RETRIES)s\nstopsignal=TERM\n\n;Logs (all Hub activity redirected to stdout so it can be seen through \"docker logs\"\nredirect_stderr=true\nstdout_logfile=/dev/stdout\nstdout_logfile_maxbytes=0\n"
  },
  {
    "path": "Hub/start-selenium-grid-hub.sh",
    "content": "#!/usr/bin/env bash\n\n# set -e: exit asap if a command exits with a non-zero status\nset -e\n\necho \"Starting Selenium Grid Hub...\"\n\nfunction append_se_opts() {\n  local option=\"${1}\"\n  local value=\"${2:-\"\"}\"\n  local log_message=\"${3:-true}\"\n  if [[ \"${SE_OPTS}\" != *\"${option}\"* ]]; then\n    if [ \"${log_message}\" = \"true\" ]; then\n      echo \"Appending Selenium option: ${option} ${value}\"\n    else\n      echo \"Appending Selenium option: ${option} $(mask ${value})\"\n    fi\n    SE_OPTS=\"${SE_OPTS} ${option}\"\n    if [ ! -z \"${value}\" ]; then\n      SE_OPTS=\"${SE_OPTS} ${value}\"\n    fi\n  else\n    echo \"Selenium option: ${option} already set in env variable SE_OPTS. Ignore new option: ${option} ${value}\"\n  fi\n}\n\nif [ ! -z \"$SE_OPTS\" ]; then\n  echo \"Appending Selenium options: ${SE_OPTS}\"\nfi\n\nif [ ! -z \"$SE_HUB_HOST\" ]; then\n  append_se_opts \"--host\" \"${SE_HUB_HOST}\"\nfi\n\nif [ ! -z \"$SE_HUB_PORT\" ]; then\n  append_se_opts \"--port\" \"${SE_HUB_PORT}\"\nfi\n\nif [ ! -z \"$SE_SUB_PATH\" ]; then\n  append_se_opts \"--sub-path\" \"${SE_SUB_PATH}\"\nfi\n\nif [ ! -z \"$SE_LOG_LEVEL\" ]; then\n  append_se_opts \"--log-level\" \"${SE_LOG_LEVEL}\"\nfi\n\nif [ ! -z \"$SE_HTTP_LOGS\" ]; then\n  append_se_opts \"--http-logs\" \"${SE_HTTP_LOGS}\"\nfi\n\nif [ ! -z \"$SE_STRUCTURED_LOGS\" ]; then\n  append_se_opts \"--structured-logs\" \"${SE_STRUCTURED_LOGS}\"\nfi\n\nif [ ! -z \"$SE_PLAIN_LOGS\" ]; then\n  append_se_opts \"--plain-logs\" \"${SE_PLAIN_LOGS}\"\nfi\n\nif [ ! -z \"$SE_EXTERNAL_URL\" ]; then\n  append_se_opts \"--external-url\" \"${SE_EXTERNAL_URL}\"\nfi\n\nif [ \"${SE_ENABLE_TLS}\" = \"true\" ]; then\n  # Configure truststore for the server\n  if [ ! -z \"$SE_JAVA_SSL_TRUST_STORE\" ]; then\n    echo \"Appending Java options: -Djavax.net.ssl.trustStore=${SE_JAVA_SSL_TRUST_STORE}\"\n    SE_JAVA_OPTS=\"$SE_JAVA_OPTS -Djavax.net.ssl.trustStore=${SE_JAVA_SSL_TRUST_STORE}\"\n  fi\n  if [ -f \"${SE_JAVA_SSL_TRUST_STORE_PASSWORD}\" ]; then\n    echo \"Getting Truststore password from ${SE_JAVA_SSL_TRUST_STORE_PASSWORD} to set Java options: -Djavax.net.ssl.trustStorePassword\"\n    SE_JAVA_SSL_TRUST_STORE_PASSWORD=\"$(cat ${SE_JAVA_SSL_TRUST_STORE_PASSWORD})\"\n  fi\n  if [ ! -z \"${SE_JAVA_SSL_TRUST_STORE_PASSWORD}\" ]; then\n    echo \"Appending Java options: -Djavax.net.ssl.trustStorePassword=$(mask ${SE_JAVA_SSL_TRUST_STORE_PASSWORD})\"\n    SE_JAVA_OPTS=\"$SE_JAVA_OPTS -Djavax.net.ssl.trustStorePassword=${SE_JAVA_SSL_TRUST_STORE_PASSWORD}\"\n  fi\n  echo \"Appending Java options: -Djdk.internal.httpclient.disableHostnameVerification=${SE_JAVA_DISABLE_HOSTNAME_VERIFICATION}\"\n  SE_JAVA_OPTS=\"$SE_JAVA_OPTS -Djdk.internal.httpclient.disableHostnameVerification=${SE_JAVA_DISABLE_HOSTNAME_VERIFICATION}\"\n  # Configure certificate and private key for component communication\n  if [ ! -z \"$SE_HTTPS_CERTIFICATE\" ]; then\n    append_se_opts \"--https-certificate\" \"${SE_HTTPS_CERTIFICATE}\"\n  fi\n  if [ ! -z \"$SE_HTTPS_PRIVATE_KEY\" ]; then\n    append_se_opts \"--https-private-key\" \"${SE_HTTPS_PRIVATE_KEY}\"\n  fi\nfi\n\nif [ ! -z \"$SE_REGISTRATION_SECRET\" ]; then\n  append_se_opts \"--registration-secret\" \"${SE_REGISTRATION_SECRET}\" \"false\"\nfi\n\nif [ ! -z \"$SE_DISABLE_UI\" ]; then\n  append_se_opts \"--disable-ui\" \"${SE_DISABLE_UI}\"\nfi\n\nif [ ! -z \"$SE_ROUTER_USERNAME\" ]; then\n  append_se_opts \"--username\" \"${SE_ROUTER_USERNAME}\" \"false\"\nfi\n\nif [ ! -z \"$SE_ROUTER_PASSWORD\" ]; then\n  append_se_opts \"--password\" \"${SE_ROUTER_PASSWORD}\" \"false\"\nfi\n\nif [ ! -z \"$SE_REJECT_UNSUPPORTED_CAPS\" ]; then\n  append_se_opts \"--reject-unsupported-caps\" \"${SE_REJECT_UNSUPPORTED_CAPS}\"\nfi\n\nif [ ! -z \"$SE_DISTRIBUTOR_SLOT_SELECTOR\" ]; then\n  append_se_opts \"--slot-selector\" \"${SE_DISTRIBUTOR_SLOT_SELECTOR}\"\nfi\n\nif [ ! -z \"$SE_NEW_SESSION_THREAD_POOL_SIZE\" ]; then\n  append_se_opts \"--newsession-threadpool-size\" \"${SE_NEW_SESSION_THREAD_POOL_SIZE}\"\nfi\n\nif [ ! -z \"${SE_SESSION_REQUEST_TIMEOUT}\" ]; then\n  append_se_opts \"--session-request-timeout\" \"${SE_SESSION_REQUEST_TIMEOUT}\"\nfi\n\nif [ ! -z \"${SE_SESSION_RETRY_INTERVAL}\" ]; then\n  append_se_opts \"--session-retry-interval\" \"${SE_SESSION_RETRY_INTERVAL}\"\nfi\n\nif [ ! -z \"${SE_HEALTHCHECK_INTERVAL}\" ]; then\n  append_se_opts \"--healthcheck-interval\" \"${SE_HEALTHCHECK_INTERVAL}\"\nfi\n\nif [ ! -z \"${SE_RELAX_CHECKS}\" ]; then\n  append_se_opts \"--relax-checks\" \"${SE_RELAX_CHECKS}\"\nfi\n\nif [ ! -z \"${SE_BIND_HOST}\" ]; then\n  append_se_opts \"--bind-host\" \"${SE_BIND_HOST}\"\nfi\n\nif [ ! -z \"${CONFIG_FILE}\" ]; then\n  append_se_opts \"--config\" \"${CONFIG_FILE}\"\nfi\n\nif [ ! -z \"${SE_EVENT_BUS_HEARTBEAT_PERIOD}\" ]; then\n  append_se_opts \"--eventbus-heartbeat-period\" \"${SE_EVENT_BUS_HEARTBEAT_PERIOD}\"\nfi\n\nEXTRA_LIBS=\"\"\nif [ -n \"${SE_EXTRA_LIBS}\" ]; then\n  EXTRA_LIBS=\"--ext ${SE_EXTRA_LIBS}\"\nfi\n\nif [ \"${SE_ENABLE_TRACING}\" = \"true\" ] && [ -n \"${SE_OTEL_EXPORTER_ENDPOINT}\" ]; then\n  EXTERNAL_JARS=$(</external_jars/.classpath.txt)\n  if [ -n \"${EXTRA_LIBS}\" ] && [ -n \"${EXTERNAL_JARS}\" ]; then\n    EXTRA_LIBS=\"${EXTRA_LIBS}:${EXTERNAL_JARS}\"\n  elif [ -z \"${EXTRA_LIBS}\" ] && [ -n \"${EXTERNAL_JARS}\" ]; then\n    EXTRA_LIBS=\"--ext ${EXTERNAL_JARS}\"\n  fi\n  echo \"Tracing is enabled\"\n  if [ -n \"$SE_OTEL_SERVICE_NAME\" ]; then\n    SE_OTEL_JVM_ARGS=\"$SE_OTEL_JVM_ARGS -Dotel.resource.attributes=service.name=${SE_OTEL_SERVICE_NAME}${SE_OTEL_RESOURCE_ATTRIBUTES:+,${SE_OTEL_RESOURCE_ATTRIBUTES}}\"\n  fi\n  if [ -n \"$SE_OTEL_TRACES_EXPORTER\" ]; then\n    SE_OTEL_JVM_ARGS=\"$SE_OTEL_JVM_ARGS -Dotel.traces.exporter=${SE_OTEL_TRACES_EXPORTER}\"\n  fi\n  if [ -n \"$SE_OTEL_EXPORTER_ENDPOINT\" ]; then\n    SE_OTEL_JVM_ARGS=\"$SE_OTEL_JVM_ARGS -Dotel.exporter.otlp.endpoint=$(envsubst < <(echo ${SE_OTEL_EXPORTER_ENDPOINT}))\"\n  fi\n  if [ -n \"$SE_OTEL_JAVA_GLOBAL_AUTOCONFIGURE_ENABLED\" ]; then\n    SE_OTEL_JVM_ARGS=\"$SE_OTEL_JVM_ARGS -Dotel.java.global-autoconfigure.enabled=${SE_OTEL_JAVA_GLOBAL_AUTOCONFIGURE_ENABLED}\"\n  fi\n  if [ -n \"$SE_OTEL_JVM_ARGS\" ]; then\n    SE_JAVA_OPTS=\"$SE_JAVA_OPTS ${SE_OTEL_JVM_ARGS}\"\n  fi\nelse\n  append_se_opts \"--tracing\" \"false\"\n  SE_JAVA_OPTS=\"$SE_JAVA_OPTS -Dwebdriver.remote.enableTracing=false\"\n  echo \"Tracing is disabled\"\nfi\n\nif [ -n \"${EXTRA_LIBS}\" ]; then\n  echo \"Classpath will be enriched with these external jars : ${EXTRA_LIBS}\"\nfi\n\nif [ -n \"${SE_JAVA_HTTPCLIENT_VERSION}\" ]; then\n  SE_JAVA_OPTS=\"$SE_JAVA_OPTS -Dwebdriver.httpclient.version=${SE_JAVA_HTTPCLIENT_VERSION}\"\nfi\n\nif [ -n \"${SE_JAVA_OPTS_DEFAULT}\" ]; then\n  SE_JAVA_OPTS=\"${SE_JAVA_OPTS_DEFAULT} $SE_JAVA_OPTS\"\nfi\n\nfunction handle_heap_dump() {\n  /opt/bin/handle_heap_dump.sh /opt/selenium/logs\n}\nif [ \"${SE_JAVA_HEAP_DUMP}\" = \"true\" ]; then\n  SE_JAVA_OPTS=\"$SE_JAVA_OPTS -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=/opt/selenium/logs\"\n  trap handle_heap_dump ERR SIGTERM SIGINT\nfi\n\nif [ -n \"${JAVA_OPTS}\" ]; then\n  SE_JAVA_OPTS=\"$SE_JAVA_OPTS ${JAVA_OPTS}\"\nfi\n\necho \"Using JAVA_OPTS: ${SE_JAVA_OPTS}\"\n\njava ${SE_JAVA_OPTS} \\\n  -jar /opt/selenium/selenium-server.jar \\\n  ${EXTRA_LIBS} \\\n  hub \\\n  ${SE_OPTS}\n"
  },
  {
    "path": "LICENSE.md",
    "content": "The project is made possible by volunteer contributors who have put in thousands of hours of their own time, and made the source code freely available under the [Apache License 2.0](https://raw.githubusercontent.com/SeleniumHQ/selenium/trunk/LICENSE).\n"
  },
  {
    "path": "Makefile",
    "content": "NAME := $(or $(NAME),$(NAME),selenium)\nCURRENT_DATE := $(shell date '+%Y%m%d')\nBUILD_DATE := $(or $(BUILD_DATE),$(BUILD_DATE),$(CURRENT_DATE))\nBASE_RELEASE := $(or $(BASE_RELEASE),$(BASE_RELEASE),selenium-4.41.0)\nBASE_VERSION := $(or $(BASE_VERSION),$(BASE_VERSION),4.41.0)\nBINDING_VERSION := $(or $(BINDING_VERSION),$(BINDING_VERSION),4.41.0)\nBASE_RELEASE_NIGHTLY := $(or $(BASE_RELEASE_NIGHTLY),$(BASE_RELEASE_NIGHTLY),nightly)\nBASE_VERSION_NIGHTLY := $(or $(BASE_VERSION_NIGHTLY),$(BASE_VERSION_NIGHTLY),4.42.0-SNAPSHOT)\nVERSION := $(or $(VERSION),$(VERSION),4.41.0)\nMVN_SELENIUM_VERSION := $(or $(MVN_SELENIUM_VERSION),$(MVN_SELENIUM_VERSION),latest.release)\nTAG_VERSION := $(VERSION)-$(BUILD_DATE)\nCHART_VERSION_NIGHTLY := $(or $(CHART_VERSION_NIGHTLY),$(CHART_VERSION_NIGHTLY),1.0.0-nightly)\nNAMESPACE := $(or $(NAMESPACE),$(NAMESPACE),$(NAME))\nAUTHORS := $(or $(AUTHORS),$(AUTHORS),SeleniumHQ)\nPUSH_IMAGE := $(or $(PUSH_IMAGE),$(PUSH_IMAGE),false)\nRELEASE_OLD_VERSION := $(or $(RELEASE_OLD_VERSION),$(RELEASE_OLD_VERSION),false)\nFROM_IMAGE_ARGS := --build-arg NAMESPACE=$(NAMESPACE) --build-arg VERSION=$(TAG_VERSION) --build-arg AUTHORS=$(AUTHORS) --sbom=true --attest type=provenance,mode=max\nBUILD_ARGS := $(BUILD_ARGS) --progress plain\nMAJOR := $(word 1,$(subst ., ,$(TAG_VERSION)))\nMINOR := $(word 2,$(subst ., ,$(TAG_VERSION)))\nMAJOR_MINOR_PATCH := $(word 1,$(subst -, ,$(TAG_VERSION)))\nFFMPEG_VERSION := $(or $(FFMPEG_VERSION),$(FFMPEG_VERSION),8.0)\nFFMPEG_TAG_PREV_VERSION := $(or $(FFMPEG_TAG_PREV_VERSION),$(FFMPEG_TAG_PREV_VERSION),ffmpeg-8.0)\nFFMPEG_TAG_VERSION := $(or $(FFMPEG_TAG_VERSION),$(FFMPEG_TAG_VERSION),ffmpeg-8.0)\nFFMPEG_BASED_NAME := $(or $(FFMPEG_BASED_NAME),$(FFMPEG_BASED_NAME),selenium)\nFFMPEG_BASED_TAG := $(or $(FFMPEG_BASED_TAG),$(FFMPEG_BASED_TAG),latest)\nCURRENT_PLATFORM := $(shell if [ `arch` = \"aarch64\" ] || [ `arch` = \"arm64\" ]; then echo \"linux/arm64\"; else echo \"linux/amd64\"; fi)\nPLATFORMS := $(or $(PLATFORMS),$(shell echo $$PLATFORMS),$(CURRENT_PLATFORM))\nSEL_PASSWD := $(or $(SEL_PASSWD),$(SEL_PASSWD),secret)\nCHROMIUM_VERSION := $(or $(CHROMIUM_VERSION),$(CHROMIUM_VERSION),latest)\nFIREFOX_DOWNLOAD_URL := $(or $(FIREFOX_DOWNLOAD_URL),$(FIREFOX_DOWNLOAD_URL),)\nSBOM_OUTPUT := $(or $(SBOM_OUTPUT),$(SBOM_OUTPUT),package_versions.txt)\nKEDA_TAG_PREV_VERSION := $(or $(KEDA_TAG_PREV_VERSION),$(KEDA_TAG_PREV_VERSION),2.19.0)\nKEDA_CORE_VERSION := $(or $(KEDA_CORE_VERSION),$(KEDA_CORE_VERSION),2.19.0)\nKEDA_TAG_VERSION := $(or $(KEDA_TAG_VERSION),$(KEDA_TAG_VERSION),2.19.0)\nKEDA_BASED_NAME := $(or $(KEDA_BASED_NAME),$(KEDA_BASED_NAME),kedacore)\nKEDA_BASED_TAG := $(or $(KEDA_BASED_TAG),$(KEDA_BASED_TAG),2.19.0)\nTEST_PATCHED_KEDA := $(or $(TEST_PATCHED_KEDA),$(TEST_PATCHED_KEDA),false)\nTRACING_EXPORTER_ENDPOINT := $(or $(TRACING_EXPORTER_ENDPOINT),$(TRACING_EXPORTER_ENDPOINT),http://\\$$KUBERNETES_NODE_HOST_IP:4317)\n\nall: hub \\\n\tdistributor \\\n\trouter \\\n\tsessions \\\n\tsessionqueue \\\n\tevent_bus \\\n\tchrome \\\n\tchromium \\\n\tchrome-for-testing \\\n\tedge \\\n\tfirefox \\\n\tdocker \\\n\tkubernetes \\\n\tall_browsers \\\n\tstandalone_chrome \\\n\tstandalone_chromium \\\n\tstandalone_chrome-for-testing \\\n\tstandalone_edge \\\n\tstandalone_firefox \\\n\tstandalone_docker \\\n\tstandalone_kubernetes \\\n\tstandalone_all_browsers \\\n\tvideo\n\ncheck_dev_env:\n\t./tests/charts/make/chart_check_env.sh\n\nsetup_dev_env:\n\t./tests/charts/make/chart_setup_env.sh ; \\\n\texit_code=$$? ; \\\n\tmake set_containerd_image_store ; \\\n\texit $$exit_code ;\n\nset_containerd_image_store:\n\tsudo mkdir -p /etc/docker\n\tsudo mv /etc/docker/daemon.json /etc/docker/daemon.json.bak || true\n\techo \"{\\\"features\\\":{\\\"containerd-snapshotter\\\": true, \\\"containerd\\\": true}, \\\"experimental\\\": true}\" | sudo tee /etc/docker/daemon.json\n\tsudo systemctl restart docker\n\tsudo chmod 666 /var/run/docker.sock\n\tdocker version -f '{{.Server.Experimental}}'\n\tdocker info -f '{{ .DriverStatus }}'\n\nformat_shell_scripts: install_python_deps\n\tshfmt -l -w -d $${PWD}/*.sh $${PWD}/**/*.sh $$PWD/**.sh $$PWD/**/generate_** $$PWD/**/wrap_*\n\nformat_makefile: install_python_deps\n\tpython3 -m mbake format Makefile\n\tpython3 -m mbake validate Makefile\n\ninstall_python_deps: install_python_venv\n\tpython3 -m pip install -r tests/requirements.txt --break-system-packages\n\ninstall_python_venv:\n\tpython3 -m venv .venv ; \\\n\t. .venv/bin/activate\n\nformat_python_scripts: install_python_deps\n\tpython3 -m isort . ; \\\n\tpython3 -m black --line-length=120 --skip-string-normalization .\n\ngenerate_readme_charts:\n\tif [ ! -f $$HOME/go/bin/helm-docs ] ; then \\\n\t\techo \"helm-docs is not installed. Please install it or run 'make setup_dev_env' once.\" ; \\\n\telse \\\n\t\t$$HOME/go/bin/helm-docs --chart-search-root charts/selenium-grid --output-file CONFIGURATION.md --sort-values-order file ; \\\n\tfi\n\nupdate_list_env_vars: install_python_deps\n\tpython3 scripts/generate_list_env_vars/extract_env.py\n\nupdate_release_version: install_python_deps\n\tpython3 scripts/release_preparation/update_versions.py --expected-base-version $(EXPECTED_BASE_VERSION)\n\nupdate_selenium_version_matrix: install_python_deps\n\tpython3 tests/build-backward-compatible/add_selenium_version.py $(BASE_VERSION)\n\nupdate_browser_versions_matrix: update_selenium_version_matrix\n\tpython3 tests/build-backward-compatible/fetch_firefox_version.py ; \\\n\tpython3 tests/build-backward-compatible/fetch_chrome_for_testing_version.py ; \\\n\tpython3 tests/build-backward-compatible/fetch_version.py ; \\\n\tpython3 tests/build-backward-compatible/update_workflow_versions.py ; \\\n\tpython3 CHANGELOG/generate-matrix-readme.py\n\nlint_format_scripts: format_makefile format_shell_scripts format_python_scripts generate_readme_charts\n\tgit diff --stat --exit-code ; \\\n\tEXIT_CODE=$$? ; \\\n\tif [ $$EXIT_CODE -ne 0 ]; then \\\n\t\techo \"Scripts might get formatted. Run 'make lint_format_scripts' once after adding something new.\" ; \\\n\t\texit $$EXIT_CODE ; \\\n\tfi ; \\\n  exit $$EXIT_CODE\n\nset_build_nightly:\n\techo BASE_VERSION=$(BASE_VERSION_NIGHTLY) > .env ; \\\n\techo BASE_RELEASE=$(BASE_RELEASE_NIGHTLY) >> .env ;\n\techo \"Execute 'source .env' to set the environment variables\"\n\nset_build_multiarch:\n\techo PLATFORMS=\"linux/amd64,linux/arm64\" > .env ; \\\n\techo \"Execute 'source .env' to set the environment variables\"\n\nbuild_nightly:\n\tBASE_VERSION=$(BASE_VERSION_NIGHTLY) BASE_RELEASE=$(BASE_RELEASE_NIGHTLY) make build\n\nbuild: check_dev_env all\n\tdocker images | grep $(NAME)\n\nci: build test\n\nprepare_resources:\n\trm -rf ./Base/configs/node && mkdir -p ./Base/configs/node && cp -r ./charts/selenium-grid/configs/node ./Base/configs\n\ngen_certs:\n\trm -rf ./Base/certs && mkdir -p ./Base/certs && cp -r ./charts/selenium-grid/certs/*.sh ./Base/certs\n\t# ./Base/certs/gen-cert-helper.sh -d ./Base/certs\n\nbase: prepare_resources gen_certs\n\tcd ./Base && SEL_PASSWD=$(SEL_PASSWD) docker buildx build --platform $(PLATFORMS) $(BUILD_ARGS) --build-arg VERSION=$(BASE_VERSION) --build-arg RELEASE=$(BASE_RELEASE) --build-arg AUTHORS=$(AUTHORS) \\\n\t--secret id=SEL_PASSWD --sbom=true --attest type=provenance,mode=max -t $(NAME)/base:$(TAG_VERSION) .\n\nbase_nightly:\n\tBASE_VERSION=$(BASE_VERSION_NIGHTLY) BASE_RELEASE=$(BASE_RELEASE_NIGHTLY) make base\n\nhub: base\n\tcd ./Hub && docker buildx build --platform $(PLATFORMS) $(BUILD_ARGS) $(FROM_IMAGE_ARGS) -t $(NAME)/hub:$(TAG_VERSION) .\n\ndistributor: base\n\tcd ./Distributor && docker buildx build --platform $(PLATFORMS) $(BUILD_ARGS) $(FROM_IMAGE_ARGS) -t $(NAME)/distributor:$(TAG_VERSION) .\n\nrouter: base\n\tcd ./Router && docker buildx build --platform $(PLATFORMS) $(BUILD_ARGS) $(FROM_IMAGE_ARGS) -t $(NAME)/router:$(TAG_VERSION) .\n\nsessions: base\n\tcd ./Sessions && docker buildx build --platform $(PLATFORMS) $(BUILD_ARGS) $(FROM_IMAGE_ARGS) \\\n\t--build-arg MVN_SELENIUM_VERSION=$(MVN_SELENIUM_VERSION) -t $(NAME)/sessions:$(TAG_VERSION) .\n\nsessionqueue: base\n\tcd ./SessionQueue && docker buildx build --platform $(PLATFORMS) $(BUILD_ARGS) $(FROM_IMAGE_ARGS) -t $(NAME)/session-queue:$(TAG_VERSION) .\n\nevent_bus: base\n\tcd ./EventBus && docker buildx build --platform $(PLATFORMS) $(BUILD_ARGS) $(FROM_IMAGE_ARGS) -t $(NAME)/event-bus:$(TAG_VERSION) .\n\nnode_base: base video\n\tcd ./NodeBase && SEL_PASSWD=$(SEL_PASSWD) docker buildx build --platform $(PLATFORMS) $(BUILD_ARGS) $(FROM_IMAGE_ARGS) --build-arg BASE=video --build-arg VERSION=$(FFMPEG_TAG_VERSION)-$(BUILD_DATE) --secret id=SEL_PASSWD -t $(NAME)/node-base:$(TAG_VERSION) .\n\nchrome-for-testing_only:\n\tset -e; case \"$(PLATFORMS)\" in \\\n\t\t*linux/amd64*) \\\n\t\techo \"Chrome for Testing is only supported on linux/amd64\" \\\n\t\t&& cd ./NodeChrome && docker buildx build --platform linux/amd64 $(BUILD_ARGS) $(FROM_IMAGE_ARGS) --build-arg INSTALL_CFT=true -t $(NAME)/node-chrome-for-testing:$(TAG_VERSION) . \\\n\t\t;; \\\n\t\t*) \\\n\t\techo \"Chrome for Testing doesn't support platform $(PLATFORMS)\" ; \\\n\t\t;; \\\n\tesac\n\nchrome-for-testing: node_base chrome-for-testing_only\n\nstandalone_chrome-for-testing_only:\n\tset -e; case \"$(PLATFORMS)\" in \\\n\t\t*linux/amd64*) \\\n\t\techo \"Chrome for Testing is only supported on linux/amd64\" \\\n\t\t&& cd ./Standalone && docker buildx build --platform linux/amd64 $(BUILD_ARGS) $(FROM_IMAGE_ARGS) --build-arg BASE=node-chrome-for-testing -t $(NAME)/standalone-chrome-for-testing:$(TAG_VERSION) . \\\n\t\t;; \\\n\t\t*) \\\n\t\techo \"Chrome for Testing doesn't support platform $(PLATFORMS)\" ; \\\n\t\t;; \\\n\tesac\n\nstandalone_chrome-for-testing: chrome-for-testing standalone_chrome-for-testing_only\n\nchrome_only:\n\tset -e; case \"$(PLATFORMS)\" in \\\n\t\t*linux/amd64*) \\\n\t\techo \"Google Chrome is only supported on linux/amd64\" \\\n\t\t&& cd ./NodeChrome && docker buildx build --platform linux/amd64 $(BUILD_ARGS) $(FROM_IMAGE_ARGS) -t $(NAME)/node-chrome:$(TAG_VERSION) . \\\n\t\t;; \\\n\t\t*) \\\n\t\techo \"Google Chrome doesn't support platform $(PLATFORMS)\" ; \\\n\t\t;; \\\n\tesac\n\nchrome: node_base chrome_only\n\nchrome_dev:\n\tcd ./NodeChrome && docker buildx build --platform $(PLATFORMS) $(BUILD_ARGS) $(FROM_IMAGE_ARGS) --build-arg CHROME_VERSION=google-chrome-unstable -t $(NAME)/node-chrome:dev .\n\nchrome_beta:\n\tcd ./NodeChrome && docker buildx build --platform $(PLATFORMS) $(BUILD_ARGS) $(FROM_IMAGE_ARGS) --build-arg CHROME_VERSION=google-chrome-beta -t $(NAME)/node-chrome:beta .\n\nchrome-for-testing_dev:\n\tcd ./NodeChrome && docker buildx build --platform $(PLATFORMS) $(BUILD_ARGS) $(FROM_IMAGE_ARGS) --build-arg CFT_VERSION=DEV --build-arg INSTALL_CFT=true -t $(NAME)/node-chrome-for-testing:dev .\n\nchrome-for-testing_beta:\n\tcd ./NodeChrome && docker buildx build --platform $(PLATFORMS) $(BUILD_ARGS) $(FROM_IMAGE_ARGS) --build-arg CHROME_VERSION=BETA --build-arg INSTALL_CFT=true -t $(NAME)/node-chrome-for-testing:beta .\n\nchrome-for-testing_canary:\n\tcd ./NodeChrome && docker buildx build --platform $(PLATFORMS) $(BUILD_ARGS) $(FROM_IMAGE_ARGS) --build-arg CHROME_VERSION=CANARY --build-arg INSTALL_CFT=true -t $(NAME)/node-chrome-for-testing:canary .\n\nchromium: node_base\n\tcd ./NodeChromium && docker buildx build --platform $(PLATFORMS) $(BUILD_ARGS) $(FROM_IMAGE_ARGS) --build-arg CHROMIUM_VERSION=$(CHROMIUM_VERSION) -t $(NAME)/node-chromium:$(TAG_VERSION) .\n\nedge_only:\n\tset -e; case \"$(PLATFORMS)\" in \\\n\t\t*linux/amd64*) \\\n\t\techo \"Microsoft Edge is only supported on linux/amd64\" \\\n\t\t&& cd ./NodeEdge && docker buildx build --platform linux/amd64 $(BUILD_ARGS) $(FROM_IMAGE_ARGS) -t $(NAME)/node-edge:$(TAG_VERSION) . \\\n\t\t;; \\\n\t\t*) \\\n\t\techo \"Microsoft Edge doesn't support platform $(PLATFORMS)\" ; \\\n\t\t;; \\\n\tesac\n\nedge: node_base edge_only\n\nedge_dev:\n\tcd ./NodeEdge && docker buildx build --platform $(PLATFORMS) $(BUILD_ARGS) $(FROM_IMAGE_ARGS) --build-arg EDGE_VERSION=microsoft-edge-dev -t $(NAME)/node-edge:dev .\n\nedge_beta:\n\tcd ./NodeEdge && docker buildx build --platform $(PLATFORMS) $(BUILD_ARGS) $(FROM_IMAGE_ARGS) --build-arg EDGE_VERSION=microsoft-edge-beta -t $(NAME)/node-edge:beta .\n\nfirefox_only:\n\tcd ./NodeFirefox && docker buildx build --platform $(PLATFORMS) $(BUILD_ARGS) $(FROM_IMAGE_ARGS) --build-arg FIREFOX_DOWNLOAD_URL=$(FIREFOX_DOWNLOAD_URL) -t $(NAME)/node-firefox:$(TAG_VERSION) .\n\nfirefox: node_base firefox_only\n\nfirefox_dev:\n\tcd ./NodeFirefox && docker buildx build --platform $(PLATFORMS) $(BUILD_ARGS) $(FROM_IMAGE_ARGS) --build-arg FIREFOX_VERSION=devedition-latest -t $(NAME)/node-firefox:dev .\n\nfirefox_beta:\n\tcd ./NodeFirefox && docker buildx build --platform $(PLATFORMS) $(BUILD_ARGS) $(FROM_IMAGE_ARGS) --build-arg FIREFOX_VERSION=beta-latest -t $(NAME)/node-firefox:beta .\n\ndocker: base\n\tcd ./NodeDocker && docker buildx build --platform $(PLATFORMS) $(BUILD_ARGS) $(FROM_IMAGE_ARGS) -t $(NAME)/node-docker:$(TAG_VERSION) .\n\nstandalone_docker: docker\n\tcd ./StandaloneDocker && docker buildx build --platform $(PLATFORMS) $(BUILD_ARGS) $(FROM_IMAGE_ARGS) -t $(NAME)/standalone-docker:$(TAG_VERSION) .\n\nkubernetes: base\n\tcd ./NodeKubernetes && docker buildx build --platform $(PLATFORMS) $(BUILD_ARGS) $(FROM_IMAGE_ARGS) \\\n\t--build-arg MVN_SELENIUM_VERSION=$(MVN_SELENIUM_VERSION) -t $(NAME)/node-kubernetes:$(TAG_VERSION) .\n\nstandalone_kubernetes: kubernetes\n\tcd ./StandaloneKubernetes && docker buildx build --platform $(PLATFORMS) $(BUILD_ARGS) $(FROM_IMAGE_ARGS) -t $(NAME)/standalone-kubernetes:$(TAG_VERSION) .\n\nstandalone_firefox_only:\n\tcd ./Standalone && docker buildx build --platform $(PLATFORMS) $(BUILD_ARGS) $(FROM_IMAGE_ARGS) --build-arg BASE=node-firefox -t $(NAME)/standalone-firefox:$(TAG_VERSION) .\n\nstandalone_firefox: firefox standalone_firefox_only\n\nstandalone_firefox_dev: firefox_dev\n\tcd ./Standalone && docker buildx build --platform $(PLATFORMS) $(BUILD_ARGS) --sbom=true --attest type=provenance,mode=max \\\n\t--build-arg NAMESPACE=$(NAME) --build-arg VERSION=dev --build-arg BASE=node-firefox -t $(NAME)/standalone-firefox:dev .\n\nstandalone_firefox_beta: firefox_beta\n\tcd ./Standalone && docker buildx build --platform $(PLATFORMS) $(BUILD_ARGS) --sbom=true --attest type=provenance,mode=max \\\n\t--build-arg NAMESPACE=$(NAME) --build-arg VERSION=beta --build-arg BASE=node-firefox -t $(NAME)/standalone-firefox:beta .\n\nstandalone_chrome_only:\n\tset -e; case \"$(PLATFORMS)\" in \\\n\t\t*linux/amd64*) \\\n\t\techo \"Google Chrome is only supported on linux/amd64\" \\\n\t\t&& cd ./Standalone && docker buildx build --platform linux/amd64 $(BUILD_ARGS) $(FROM_IMAGE_ARGS) --build-arg BASE=node-chrome -t $(NAME)/standalone-chrome:$(TAG_VERSION) . \\\n\t\t;; \\\n\t\t*) \\\n\t\techo \"Google Chrome doesn't support platform $(PLATFORMS)\" ; \\\n\t\t;; \\\n\tesac\n\nstandalone_chrome: chrome standalone_chrome_only\n\nstandalone_chrome_dev: chrome_dev\n\tcd ./Standalone && docker buildx build --platform $(PLATFORMS) $(BUILD_ARGS) --sbom=true --attest type=provenance,mode=max \\\n\t--build-arg NAMESPACE=$(NAME) --build-arg VERSION=dev --build-arg BASE=node-chrome -t $(NAME)/standalone-chrome:dev .\n\nstandalone_chrome_beta: chrome_beta\n\tcd ./Standalone && docker buildx build --platform $(PLATFORMS) $(BUILD_ARGS) --sbom=true --attest type=provenance,mode=max \\\n\t--build-arg NAMESPACE=$(NAME) --build-arg VERSION=beta --build-arg BASE=node-chrome -t $(NAME)/standalone-chrome:beta .\n\nstandalone_chrome-for-testing_dev: chrome-for-testing_dev\n\tcd ./Standalone && docker buildx build --platform $(PLATFORMS) $(BUILD_ARGS) --sbom=true --attest type=provenance,mode=max \\\n\t--build-arg NAMESPACE=$(NAME) --build-arg VERSION=dev --build-arg BASE=node-chrome-for-testing -t $(NAME)/standalone-chrome-for-testing:dev .\n\nstandalone_chrome-for-testing_beta: chrome-for-testing_beta\n\tcd ./Standalone && docker buildx build --platform $(PLATFORMS) $(BUILD_ARGS) --sbom=true --attest type=provenance,mode=max \\\n\t--build-arg NAMESPACE=$(NAME) --build-arg VERSION=beta --build-arg BASE=node-chrome-for-testing -t $(NAME)/standalone-chrome-for-testing:beta .\n\nstandalone_chrome-for-testing_canary: chrome-for-testing_canary\n\tcd ./Standalone && docker buildx build --platform $(PLATFORMS) $(BUILD_ARGS) --sbom=true --attest type=provenance,mode=max \\\n\t--build-arg NAMESPACE=$(NAME) --build-arg VERSION=canary --build-arg BASE=node-chrome-for-testing -t $(NAME)/standalone-chrome-for-testing:canary .\n\nstandalone_chromium: chromium\n\tcd ./Standalone && docker buildx build --platform $(PLATFORMS) $(BUILD_ARGS) $(FROM_IMAGE_ARGS) --build-arg BASE=node-chromium -t $(NAME)/standalone-chromium:$(TAG_VERSION) .\n\nstandalone_edge_only:\n\tset -e; case \"$(PLATFORMS)\" in \\\n\t\t*linux/amd64*) \\\n\t\techo \"Microsoft Edge is only supported on linux/amd64\" \\\n\t\t&& cd ./Standalone && docker buildx build --platform linux/amd64 $(BUILD_ARGS) $(FROM_IMAGE_ARGS) --build-arg BASE=node-edge -t $(NAME)/standalone-edge:$(TAG_VERSION) . \\\n\t\t;; \\\n\t\t*) \\\n\t\techo \"Microsoft Edge doesn't support platform $(PLATFORMS)\" ; \\\n\t\t;; \\\n\tesac\n\nstandalone_edge: edge standalone_edge_only\n\nstandalone_edge_dev: edge_dev\n\tcd ./Standalone && docker buildx build --platform $(PLATFORMS) $(BUILD_ARGS) --sbom=true --attest type=provenance,mode=max \\\n\t--build-arg NAMESPACE=$(NAME) --build-arg VERSION=dev --build-arg BASE=node-edge -t $(NAME)/standalone-edge:dev .\n\nstandalone_edge_beta: edge_beta\n\tcd ./Standalone && docker buildx build --platform $(PLATFORMS) $(BUILD_ARGS) --sbom=true --attest type=provenance,mode=max \\\n\t--build-arg NAMESPACE=$(NAME) --build-arg VERSION=beta --build-arg BASE=node-edge -t $(NAME)/standalone-edge:beta .\n\nvideo: base\n\tcd ./Video && docker buildx build --platform $(PLATFORMS) $(BUILD_ARGS) --build-arg FFMPEG_BASED_NAME=$(FFMPEG_BASED_NAME) --build-arg FFMPEG_BASED_TAG=$(FFMPEG_BASED_TAG) $(FROM_IMAGE_ARGS) -t $(NAME)/video:$(FFMPEG_TAG_VERSION)-$(BUILD_DATE) .\n\nffmpeg:\n\tcd ./.ffmpeg && docker buildx build --platform $(PLATFORMS) $(BUILD_ARGS) --build-arg FFMPEG_VERSION=$(FFMPEG_VERSION) $(FROM_IMAGE_ARGS) -t $(NAME)/ffmpeg:$(FFMPEG_VERSION)-$(BUILD_DATE) .\n\nall_browsers: node_base\n\tcd ./NodeChromium && docker buildx build --platform $(PLATFORMS) $(BUILD_ARGS) $(FROM_IMAGE_ARGS) --build-arg BASE=node-base --build-arg CHROMIUM_VERSION=$(CHROMIUM_VERSION) -t $(NAME)/node-all-browsers:$(TAG_VERSION) . ; \\\n\tcd .. ; \\\n\tcd ./NodeFirefox && docker buildx build --platform $(PLATFORMS) $(BUILD_ARGS) $(FROM_IMAGE_ARGS) --build-arg BASE=node-all-browsers --build-arg FIREFOX_DOWNLOAD_URL=$(FIREFOX_DOWNLOAD_URL) -t $(NAME)/node-all-browsers:$(TAG_VERSION) . ; \\\n\tcd .. ; \\\n\tcd ./NodeChrome && docker buildx build --platform $(PLATFORMS) $(BUILD_ARGS) $(FROM_IMAGE_ARGS) --build-arg BASE=node-all-browsers -t $(NAME)/node-all-browsers:$(TAG_VERSION) . || true ; \\\n\tcd .. ; \\\n\tcd ./NodeEdge && docker buildx build --platform $(PLATFORMS) $(BUILD_ARGS) $(FROM_IMAGE_ARGS) --build-arg BASE=node-all-browsers -t $(NAME)/node-all-browsers:$(TAG_VERSION) . || true ; \\\n\tcd .. ; \\\n\tcd ./NodeAllBrowsers && docker buildx build --platform $(PLATFORMS) $(BUILD_ARGS) $(FROM_IMAGE_ARGS) --build-arg BASE=node-all-browsers -t $(NAME)/node-all-browsers:$(TAG_VERSION) . ; \\\n\tcd .. ;\n\nstandalone_all_browsers: all_browsers\n\tcd ./Standalone && docker buildx build --platform $(PLATFORMS) $(BUILD_ARGS) $(FROM_IMAGE_ARGS) --build-arg BASE=node-all-browsers -t $(NAME)/standalone-all-browsers:$(TAG_VERSION) .\n\nfetch_grid_scaler_resources:\n\tmkdir -p ./.keda/scalers \\\n\t&& cd ./.keda/scalers \\\n\t&& curl -L https://raw.githubusercontent.com/$(KEDA_BASED_NAME)/keda/v$(KEDA_BASED_TAG)/pkg/scalers/selenium_grid_scaler.go -o selenium_grid_scaler.go \\\n\t&& curl -L https://raw.githubusercontent.com/$(KEDA_BASED_NAME)/keda/v$(KEDA_BASED_TAG)/pkg/scalers/selenium_grid_scaler_test.go -o selenium_grid_scaler_test.go \\\n\t&& curl -L https://raw.githubusercontent.com/$(KEDA_BASED_NAME)/keda-docs/main/content/docs/2.18/scalers/selenium-grid-scaler.md -o selenium-grid-scaler.md\n\nfetch_grid_scaler_images:\n\tdocker pull --platform linux/amd64 --platform linux/arm64 $(KEDA_BASED_NAME)/keda:$(KEDA_BASED_TAG)\n\tdocker pull --platform linux/amd64 --platform linux/arm64 $(KEDA_BASED_NAME)/keda-metrics-apiserver:$(KEDA_BASED_TAG)\n\tdocker pull --platform linux/amd64 --platform linux/arm64 $(KEDA_BASED_NAME)/keda-admission-webhooks:$(KEDA_BASED_TAG)\n\nrelease_grid_scaler: fetch_grid_scaler_images\n\tdocker buildx imagetools create -t $(NAME)/keda:$(KEDA_TAG_VERSION)-$(BUILD_DATE) $(KEDA_BASED_NAME)/keda:$(KEDA_BASED_TAG)\n\tdocker buildx imagetools create -t $(NAME)/keda-metrics-apiserver:$(KEDA_TAG_VERSION)-$(BUILD_DATE) $(KEDA_BASED_NAME)/keda-metrics-apiserver:$(KEDA_BASED_TAG)\n\tdocker buildx imagetools create -t $(NAME)/keda-admission-webhooks:$(KEDA_TAG_VERSION)-$(BUILD_DATE) $(KEDA_BASED_NAME)/keda-admission-webhooks:$(KEDA_BASED_TAG)\n\nrelease_grid_scaler_latest: fetch_grid_scaler_images\n\tdocker buildx imagetools create -t $(NAME)/keda:latest $(KEDA_BASED_NAME)/keda:$(KEDA_BASED_TAG)\n\tdocker buildx imagetools create -t $(NAME)/keda-metrics-apiserver:latest $(KEDA_BASED_NAME)/keda-metrics-apiserver:$(KEDA_BASED_TAG)\n\tdocker buildx imagetools create -t $(NAME)/keda-admission-webhooks:latest $(KEDA_BASED_NAME)/keda-admission-webhooks:$(KEDA_BASED_TAG)\n\nrelease_grid_scaler_nightly: fetch_grid_scaler_images\n\tdocker buildx imagetools create -t $(NAME)/keda:nightly $(KEDA_BASED_NAME)/keda:$(KEDA_BASED_TAG)\n\tdocker buildx imagetools create -t $(NAME)/keda-metrics-apiserver:nightly $(KEDA_BASED_NAME)/keda-metrics-apiserver:$(KEDA_BASED_TAG)\n\tdocker buildx imagetools create -t $(NAME)/keda-admission-webhooks:nightly $(KEDA_BASED_NAME)/keda-admission-webhooks:$(KEDA_BASED_TAG)\n\ncount_image_layers:\n\tdocker history $(NAME)/base:$(TAG_VERSION) -q | wc -l\n\tdocker history $(NAME)/hub:$(TAG_VERSION) -q | wc -l\n\tdocker history $(NAME)/distributor:$(TAG_VERSION) -q | wc -l\n\tdocker history $(NAME)/router:$(TAG_VERSION) -q | wc -l\n\tdocker history $(NAME)/sessions:$(TAG_VERSION) -q | wc -l\n\tdocker history $(NAME)/session-queue:$(TAG_VERSION) -q | wc -l\n\tdocker history $(NAME)/event-bus:$(TAG_VERSION) -q | wc -l\n\tdocker history $(NAME)/node-base:$(TAG_VERSION) -q | wc -l\n\tdocker history $(NAME)/node-chrome:$(TAG_VERSION) -q | wc -l\n\tdocker history $(NAME)/node-chromium:$(TAG_VERSION) -q | wc -l\n\tdocker history $(NAME)/node-chrome-for-testing:$(TAG_VERSION) -q | wc -l\n\tdocker history $(NAME)/node-edge:$(TAG_VERSION) -q | wc -l\n\tdocker history $(NAME)/node-firefox:$(TAG_VERSION) -q | wc -l\n\tdocker history $(NAME)/node-docker:$(TAG_VERSION) -q | wc -l\n\tdocker history $(NAME)/node-kubernetes:$(TAG_VERSION) -q | wc -l\n\tdocker history $(NAME)/node-all-browsers:$(TAG_VERSION) -q | wc -l\n\tdocker history $(NAME)/standalone-chrome:$(TAG_VERSION) -q | wc -l\n\tdocker history $(NAME)/standalone-chromium:$(TAG_VERSION) -q | wc -l\n\tdocker history $(NAME)/standalone-chrome-for-testing:$(TAG_VERSION) -q | wc -l\n\tdocker history $(NAME)/standalone-edge:$(TAG_VERSION) -q | wc -l\n\tdocker history $(NAME)/standalone-firefox:$(TAG_VERSION) -q | wc -l\n\tdocker history $(NAME)/standalone-docker:$(TAG_VERSION) -q | wc -l\n\tdocker history $(NAME)/standalone-kubernetes:$(TAG_VERSION) -q | wc -l\n\tdocker history $(NAME)/standalone-all-browsers:$(TAG_VERSION) -q | wc -l\n\tdocker history $(NAME)/video:$(FFMPEG_TAG_VERSION)-$(BUILD_DATE) -q | wc -l\n\nchrome_upgrade_version:\n\tcd ./NodeChrome && docker buildx build --platform $(PLATFORMS) $(BUILD_ARGS) --build-arg NAMESPACE=$(NAMESPACE) --build-arg VERSION=$(VERSION) --build-arg AUTHORS=$(AUTHORS) -t $(NAME)/node-chrome:$(TAG_VERSION) .\n\tcd ./Standalone && docker buildx build --platform $(PLATFORMS) $(BUILD_ARGS) $(FROM_IMAGE_ARGS) --build-arg BASE=node-chrome -t $(NAME)/standalone-chrome:$(TAG_VERSION) .\n\tdocker run --rm $(NAME)/standalone-chrome:$(TAG_VERSION) /opt/selenium/selenium-server.jar info --version\n\tdocker run --rm $(NAME)/standalone-chrome:$(TAG_VERSION) google-chrome --version\n\tdocker run --rm $(NAME)/standalone-chrome:$(TAG_VERSION) chromedriver --version\n\nfirefox_upgrade_version:\n\tcd ./NodeFirefox && docker buildx build --platform $(PLATFORMS) $(BUILD_ARGS) --build-arg NAMESPACE=$(NAMESPACE) --build-arg VERSION=$(VERSION) --build-arg AUTHORS=$(AUTHORS) -t $(NAME)/node-firefox:$(TAG_VERSION) .\n\tcd ./Standalone && docker buildx build --platform $(PLATFORMS) $(BUILD_ARGS) $(FROM_IMAGE_ARGS) --build-arg BASE=node-firefox -t $(NAME)/standalone-firefox:$(TAG_VERSION) .\n\tdocker run --rm $(NAME)/standalone-firefox:$(TAG_VERSION) /opt/selenium/selenium-server.jar info --version\n\tdocker run --rm $(NAME)/standalone-firefox:$(TAG_VERSION) firefox --version\n\tdocker run --rm $(NAME)/standalone-firefox:$(TAG_VERSION) geckodriver --version\n\nedge_upgrade_version:\n\tcd ./NodeEdge && docker buildx build --platform $(PLATFORMS) $(BUILD_ARGS) --build-arg NAMESPACE=$(NAMESPACE) --build-arg VERSION=$(VERSION) --build-arg AUTHORS=$(AUTHORS) -t $(NAME)/node-edge:$(TAG_VERSION) .\n\tcd ./Standalone && docker buildx build --platform $(PLATFORMS) $(BUILD_ARGS) $(FROM_IMAGE_ARGS) --build-arg BASE=node-edge -t $(NAME)/standalone-edge:$(TAG_VERSION) .\n\tdocker run --rm $(NAME)/standalone-edge:$(TAG_VERSION) /opt/selenium/selenium-server.jar info --version\n\tdocker run --rm $(NAME)/standalone-edge:$(TAG_VERSION) microsoft-edge --version\n\tdocker run --rm $(NAME)/standalone-edge:$(TAG_VERSION) msedgedriver --version\n\n# https://github.com/SeleniumHQ/docker-selenium/issues/992\n# Additional tags for browser images\ntag_and_push_browser_images: tag_and_push_chrome_images tag_and_push_chrome-for-testing_images tag_and_push_chromium_images tag_and_push_firefox_images tag_and_push_edge_images\n\ntag_and_push_chrome_images:\n\t./tag_and_push_browser_images.sh $(VERSION) $(BUILD_DATE) $(NAMESPACE) $(PUSH_IMAGE) chrome $(RELEASE_OLD_VERSION)\n\ntag_and_push_chrome-for-testing_images:\n\t./tag_and_push_browser_images.sh $(VERSION) $(BUILD_DATE) $(NAMESPACE) $(PUSH_IMAGE) chrome-for-testing $(RELEASE_OLD_VERSION)\n\ntag_and_push_chromium_images:\n\t./tag_and_push_browser_images.sh $(VERSION) $(BUILD_DATE) $(NAMESPACE) $(PUSH_IMAGE) chromium $(RELEASE_OLD_VERSION)\n\ntag_and_push_edge_images:\n\t./tag_and_push_browser_images.sh $(VERSION) $(BUILD_DATE) $(NAMESPACE) $(PUSH_IMAGE) edge $(RELEASE_OLD_VERSION)\n\ntag_and_push_firefox_images:\n\t./tag_and_push_browser_images.sh $(VERSION) $(BUILD_DATE) $(NAMESPACE) $(PUSH_IMAGE) firefox $(RELEASE_OLD_VERSION)\n\ntag_ffmpeg_latest:\n\tdocker tag $(NAME)/ffmpeg:$(FFMPEG_VERSION)-$(BUILD_DATE) $(NAME)/ffmpeg:latest\n\tdocker tag $(NAME)/ffmpeg:$(FFMPEG_VERSION)-$(BUILD_DATE) $(NAME)/ffmpeg:$(FFMPEG_VERSION)\n\ntag_latest:\n\tdocker tag $(NAME)/base:$(TAG_VERSION) $(NAME)/base:latest\n\tdocker tag $(NAME)/hub:$(TAG_VERSION) $(NAME)/hub:latest\n\tdocker tag $(NAME)/distributor:$(TAG_VERSION) $(NAME)/distributor:latest\n\tdocker tag $(NAME)/router:$(TAG_VERSION) $(NAME)/router:latest\n\tdocker tag $(NAME)/sessions:$(TAG_VERSION) $(NAME)/sessions:latest\n\tdocker tag $(NAME)/session-queue:$(TAG_VERSION) $(NAME)/session-queue:latest\n\tdocker tag $(NAME)/event-bus:$(TAG_VERSION) $(NAME)/event-bus:latest\n\tdocker tag $(NAME)/node-base:$(TAG_VERSION) $(NAME)/node-base:latest\n\tdocker tag $(NAME)/node-chromium:$(TAG_VERSION) $(NAME)/node-chromium:latest\n\tdocker tag $(NAME)/node-firefox:$(TAG_VERSION) $(NAME)/node-firefox:latest\n\tdocker tag $(NAME)/node-docker:$(TAG_VERSION) $(NAME)/node-docker:latest\n\tdocker tag $(NAME)/node-kubernetes:$(TAG_VERSION) $(NAME)/node-kubernetes:latest\n\tdocker tag $(NAME)/node-all-browsers:$(TAG_VERSION) $(NAME)/node-all-browsers:latest\n\tdocker tag $(NAME)/standalone-chromium:$(TAG_VERSION) $(NAME)/standalone-chromium:latest\n\tdocker tag $(NAME)/standalone-firefox:$(TAG_VERSION) $(NAME)/standalone-firefox:latest\n\tdocker tag $(NAME)/standalone-docker:$(TAG_VERSION) $(NAME)/standalone-docker:latest\n\tdocker tag $(NAME)/standalone-kubernetes:$(TAG_VERSION) $(NAME)/standalone-kubernetes:latest\n\tdocker tag $(NAME)/standalone-all-browsers:$(TAG_VERSION) $(NAME)/standalone-all-browsers:latest\n\tdocker tag $(NAME)/video:$(FFMPEG_TAG_VERSION)-$(BUILD_DATE) $(NAME)/video:latest\n\tcase \"$(PLATFORMS)\" in *linux/amd64*) \\\n\t\tdocker tag $(NAME)/node-chrome:$(TAG_VERSION) $(NAME)/node-chrome:latest && \\\n\t\tdocker tag $(NAME)/node-chrome-for-testing:$(TAG_VERSION) $(NAME)/node-chrome-for-testing:latest && \\\n\t\tdocker tag $(NAME)/standalone-chrome:$(TAG_VERSION) $(NAME)/standalone-chrome:latest && \\\n\t\tdocker tag $(NAME)/standalone-chrome-for-testing:$(TAG_VERSION) $(NAME)/standalone-chrome-for-testing:latest && \\\n\t\tdocker tag $(NAME)/node-edge:$(TAG_VERSION) $(NAME)/node-edge:latest && \\\n\t\tdocker tag $(NAME)/standalone-edge:$(TAG_VERSION) $(NAME)/standalone-edge:latest \\\n\t\t;; \\\n\t\t*) \\\n\t\techo \"Tagged other images, except Chrome and Edge Node/Standalone don't support platform $(PLATFORMS)\" ; \\\n\t\t;; \\\n\tesac\n\nrelease_ffmpeg_latest:\n\tdocker push $(NAME)/ffmpeg:latest\n\tdocker push $(NAME)/ffmpeg:$(FFMPEG_VERSION)\n\tdocker push $(NAME)/ffmpeg:$(FFMPEG_VERSION)-$(BUILD_DATE)\n\nrelease_latest:\n\tdocker push $(NAME)/base:latest\n\tdocker push $(NAME)/hub:latest\n\tdocker push $(NAME)/distributor:latest\n\tdocker push $(NAME)/router:latest\n\tdocker push $(NAME)/sessions:latest\n\tdocker push $(NAME)/session-queue:latest\n\tdocker push $(NAME)/event-bus:latest\n\tdocker push $(NAME)/node-base:latest\n\tdocker push $(NAME)/node-chrome:latest\n\tdocker push $(NAME)/node-chromium:latest\n\tdocker push $(NAME)/node-chrome-for-testing:latest\n\tdocker push $(NAME)/node-edge:latest\n\tdocker push $(NAME)/node-firefox:latest\n\tdocker push $(NAME)/node-docker:latest\n\tdocker push $(NAME)/node-kubernetes:latest\n\tdocker push $(NAME)/node-all-browsers:latest\n\tdocker push $(NAME)/standalone-chrome:latest\n\tdocker push $(NAME)/standalone-chromium:latest\n\tdocker push $(NAME)/standalone-chrome-for-testing:latest\n\tdocker push $(NAME)/standalone-edge:latest\n\tdocker push $(NAME)/standalone-firefox:latest\n\tdocker push $(NAME)/standalone-docker:latest\n\tdocker push $(NAME)/standalone-kubernetes:latest\n\tdocker push $(NAME)/standalone-all-browsers:latest\n\tdocker push $(NAME)/video:latest\n\ngenerate_latest_sbom:\n\tNAME=$(NAME) FILTER_IMAGE_TAG=latest OUTPUT_FILE=$(SBOM_OUTPUT) ./generate_sbom.sh\n\ntag_nightly:\n\tdocker tag $(NAME)/base:$(TAG_VERSION) $(NAME)/base:nightly\n\tdocker tag $(NAME)/hub:$(TAG_VERSION) $(NAME)/hub:nightly\n\tdocker tag $(NAME)/distributor:$(TAG_VERSION) $(NAME)/distributor:nightly\n\tdocker tag $(NAME)/router:$(TAG_VERSION) $(NAME)/router:nightly\n\tdocker tag $(NAME)/sessions:$(TAG_VERSION) $(NAME)/sessions:nightly\n\tdocker tag $(NAME)/session-queue:$(TAG_VERSION) $(NAME)/session-queue:nightly\n\tdocker tag $(NAME)/event-bus:$(TAG_VERSION) $(NAME)/event-bus:nightly\n\tdocker tag $(NAME)/node-base:$(TAG_VERSION) $(NAME)/node-base:nightly\n\tdocker tag $(NAME)/node-chromium:$(TAG_VERSION) $(NAME)/node-chromium:nightly\n\tdocker tag $(NAME)/node-chrome-for-testing:$(TAG_VERSION) $(NAME)/node-chrome-for-testing:nightly\n\tdocker tag $(NAME)/node-firefox:$(TAG_VERSION) $(NAME)/node-firefox:nightly\n\tdocker tag $(NAME)/node-docker:$(TAG_VERSION) $(NAME)/node-docker:nightly\n\tdocker tag $(NAME)/node-kubernetes:$(TAG_VERSION) $(NAME)/node-kubernetes:nightly\n\tdocker tag $(NAME)/node-all-browsers:$(TAG_VERSION) $(NAME)/node-all-browsers:nightly\n\tdocker tag $(NAME)/standalone-chromium:$(TAG_VERSION) $(NAME)/standalone-chromium:nightly\n\tdocker tag $(NAME)/standalone-chrome-for-testing:$(TAG_VERSION) $(NAME)/standalone-chrome-for-testing:nightly\n\tdocker tag $(NAME)/standalone-firefox:$(TAG_VERSION) $(NAME)/standalone-firefox:nightly\n\tdocker tag $(NAME)/standalone-docker:$(TAG_VERSION) $(NAME)/standalone-docker:nightly\n\tdocker tag $(NAME)/standalone-kubernetes:$(TAG_VERSION) $(NAME)/standalone-kubernetes:nightly\n\tdocker tag $(NAME)/standalone-all-browsers:$(TAG_VERSION) $(NAME)/standalone-all-browsers:nightly\n\tdocker tag $(NAME)/video:$(FFMPEG_TAG_VERSION)-$(BUILD_DATE) $(NAME)/video:nightly\n\tcase \"$(PLATFORMS)\" in *linux/amd64*) \\\n\t\tdocker tag $(NAME)/node-chrome:$(TAG_VERSION) $(NAME)/node-chrome:nightly && \\\n\t\tdocker tag $(NAME)/standalone-chrome:$(TAG_VERSION) $(NAME)/standalone-chrome:nightly && \\\n\t\tdocker tag $(NAME)/node-edge:$(TAG_VERSION) $(NAME)/node-edge:nightly && \\\n\t\tdocker tag $(NAME)/standalone-edge:$(TAG_VERSION) $(NAME)/standalone-edge:nightly \\\n\t\t;; \\\n\t\t*) \\\n\t\techo \"Tagged other images, except Chrome and Edge Node/Standalone don't support platform $(PLATFORMS)\" ; \\\n\t\t;; \\\n\tesac\n\nrelease_nightly:\n\tdocker push $(NAME)/base:nightly\n\tdocker push $(NAME)/hub:nightly\n\tdocker push $(NAME)/distributor:nightly\n\tdocker push $(NAME)/router:nightly\n\tdocker push $(NAME)/sessions:nightly\n\tdocker push $(NAME)/session-queue:nightly\n\tdocker push $(NAME)/event-bus:nightly\n\tdocker push $(NAME)/node-base:nightly\n\tdocker push $(NAME)/node-chrome:nightly\n\tdocker push $(NAME)/node-chromium:nightly\n\tdocker push $(NAME)/node-chrome-for-testing:nightly\n\tdocker push $(NAME)/node-edge:nightly\n\tdocker push $(NAME)/node-firefox:nightly\n\tdocker push $(NAME)/node-docker:nightly\n\tdocker push $(NAME)/node-kubernetes:nightly\n\tdocker push $(NAME)/node-all-browsers:nightly\n\tdocker push $(NAME)/standalone-chrome:nightly\n\tdocker push $(NAME)/standalone-chromium:nightly\n\tdocker push $(NAME)/standalone-chrome-for-testing:nightly\n\tdocker push $(NAME)/standalone-edge:nightly\n\tdocker push $(NAME)/standalone-firefox:nightly\n\tdocker push $(NAME)/standalone-docker:nightly\n\tdocker push $(NAME)/standalone-kubernetes:nightly\n\tdocker push $(NAME)/standalone-all-browsers:nightly\n\tdocker push $(NAME)/video:nightly\n\ngenerate_nightly_sbom:\n\tNAME=$(NAME) FILTER_IMAGE_TAG=nightly OUTPUT_FILE=$(SBOM_OUTPUT) ./generate_sbom.sh\n\ntag_major_minor:\n\tdocker tag $(NAME)/base:$(TAG_VERSION) $(NAME)/base:$(MAJOR)\n\tdocker tag $(NAME)/hub:$(TAG_VERSION) $(NAME)/hub:$(MAJOR)\n\tdocker tag $(NAME)/distributor:$(TAG_VERSION) $(NAME)/distributor:$(MAJOR)\n\tdocker tag $(NAME)/router:$(TAG_VERSION) $(NAME)/router:$(MAJOR)\n\tdocker tag $(NAME)/sessions:$(TAG_VERSION) $(NAME)/sessions:$(MAJOR)\n\tdocker tag $(NAME)/session-queue:$(TAG_VERSION) $(NAME)/session-queue:$(MAJOR)\n\tdocker tag $(NAME)/event-bus:$(TAG_VERSION) $(NAME)/event-bus:$(MAJOR)\n\tdocker tag $(NAME)/node-base:$(TAG_VERSION) $(NAME)/node-base:$(MAJOR)\n\tdocker tag $(NAME)/node-chrome:$(TAG_VERSION) $(NAME)/node-chrome:$(MAJOR)\n\tdocker tag $(NAME)/node-chromium:$(TAG_VERSION) $(NAME)/node-chromium:$(MAJOR)\n\tdocker tag $(NAME)/node-chrome-for-testing:$(TAG_VERSION) $(NAME)/node-chrome-for-testing:$(MAJOR)\n\tdocker tag $(NAME)/node-edge:$(TAG_VERSION) $(NAME)/node-edge:$(MAJOR)\n\tdocker tag $(NAME)/node-firefox:$(TAG_VERSION) $(NAME)/node-firefox:$(MAJOR)\n\tdocker tag $(NAME)/node-docker:$(TAG_VERSION) $(NAME)/node-docker:$(MAJOR)\n\tdocker tag $(NAME)/node-kubernetes:$(TAG_VERSION) $(NAME)/node-kubernetes:$(MAJOR)\n\tdocker tag $(NAME)/node-all-browsers:$(TAG_VERSION) $(NAME)/node-all-browsers:$(MAJOR)\n\tdocker tag $(NAME)/standalone-chrome:$(TAG_VERSION) $(NAME)/standalone-chrome:$(MAJOR)\n\tdocker tag $(NAME)/standalone-chromium:$(TAG_VERSION) $(NAME)/standalone-chromium:$(MAJOR)\n\tdocker tag $(NAME)/standalone-chrome-for-testing:$(TAG_VERSION) $(NAME)/standalone-chrome-for-testing:$(MAJOR)\n\tdocker tag $(NAME)/standalone-edge:$(TAG_VERSION) $(NAME)/standalone-edge:$(MAJOR)\n\tdocker tag $(NAME)/standalone-firefox:$(TAG_VERSION) $(NAME)/standalone-firefox:$(MAJOR)\n\tdocker tag $(NAME)/standalone-docker:$(TAG_VERSION) $(NAME)/standalone-docker:$(MAJOR)\n\tdocker tag $(NAME)/standalone-kubernetes:$(TAG_VERSION) $(NAME)/standalone-kubernetes:$(MAJOR)\n\tdocker tag $(NAME)/standalone-all-browsers:$(TAG_VERSION) $(NAME)/standalone-all-browsers:$(MAJOR)\n\tdocker tag $(NAME)/base:$(TAG_VERSION) $(NAME)/base:$(MAJOR).$(MINOR)\n\tdocker tag $(NAME)/hub:$(TAG_VERSION) $(NAME)/hub:$(MAJOR).$(MINOR)\n\tdocker tag $(NAME)/distributor:$(TAG_VERSION) $(NAME)/distributor:$(MAJOR).$(MINOR)\n\tdocker tag $(NAME)/router:$(TAG_VERSION) $(NAME)/router:$(MAJOR).$(MINOR)\n\tdocker tag $(NAME)/sessions:$(TAG_VERSION) $(NAME)/sessions:$(MAJOR).$(MINOR)\n\tdocker tag $(NAME)/session-queue:$(TAG_VERSION) $(NAME)/session-queue:$(MAJOR).$(MINOR)\n\tdocker tag $(NAME)/event-bus:$(TAG_VERSION) $(NAME)/event-bus:$(MAJOR).$(MINOR)\n\tdocker tag $(NAME)/node-base:$(TAG_VERSION) $(NAME)/node-base:$(MAJOR).$(MINOR)\n\tdocker tag $(NAME)/node-chrome:$(TAG_VERSION) $(NAME)/node-chrome:$(MAJOR).$(MINOR)\n\tdocker tag $(NAME)/node-chromium:$(TAG_VERSION) $(NAME)/node-chromium:$(MAJOR).$(MINOR)\n\tdocker tag $(NAME)/node-chrome-for-testing:$(TAG_VERSION) $(NAME)/node-chrome-for-testing:$(MAJOR).$(MINOR)\n\tdocker tag $(NAME)/node-edge:$(TAG_VERSION) $(NAME)/node-edge:$(MAJOR).$(MINOR)\n\tdocker tag $(NAME)/node-firefox:$(TAG_VERSION) $(NAME)/node-firefox:$(MAJOR).$(MINOR)\n\tdocker tag $(NAME)/node-docker:$(TAG_VERSION) $(NAME)/node-docker:$(MAJOR).$(MINOR)\n\tdocker tag $(NAME)/node-kubernetes:$(TAG_VERSION) $(NAME)/node-kubernetes:$(MAJOR).$(MINOR)\n\tdocker tag $(NAME)/node-all-browsers:$(TAG_VERSION) $(NAME)/node-all-browsers:$(MAJOR).$(MINOR)\n\tdocker tag $(NAME)/standalone-chrome:$(TAG_VERSION) $(NAME)/standalone-chrome:$(MAJOR).$(MINOR)\n\tdocker tag $(NAME)/standalone-chromium:$(TAG_VERSION) $(NAME)/standalone-chromium:$(MAJOR).$(MINOR)\n\tdocker tag $(NAME)/standalone-chrome-for-testing:$(TAG_VERSION) $(NAME)/standalone-chrome-for-testing:$(MAJOR).$(MINOR)\n\tdocker tag $(NAME)/standalone-edge:$(TAG_VERSION) $(NAME)/standalone-edge:$(MAJOR).$(MINOR)\n\tdocker tag $(NAME)/standalone-firefox:$(TAG_VERSION) $(NAME)/standalone-firefox:$(MAJOR).$(MINOR)\n\tdocker tag $(NAME)/standalone-docker:$(TAG_VERSION) $(NAME)/standalone-docker:$(MAJOR).$(MINOR)\n\tdocker tag $(NAME)/standalone-kubernetes:$(TAG_VERSION) $(NAME)/standalone-kubernetes:$(MAJOR).$(MINOR)\n\tdocker tag $(NAME)/standalone-all-browsers:$(TAG_VERSION) $(NAME)/standalone-all-browsers:$(MAJOR).$(MINOR)\n\tdocker tag $(NAME)/base:$(TAG_VERSION) $(NAME)/base:$(MAJOR_MINOR_PATCH)\n\tdocker tag $(NAME)/hub:$(TAG_VERSION) $(NAME)/hub:$(MAJOR_MINOR_PATCH)\n\tdocker tag $(NAME)/distributor:$(TAG_VERSION) $(NAME)/distributor:$(MAJOR_MINOR_PATCH)\n\tdocker tag $(NAME)/router:$(TAG_VERSION) $(NAME)/router:$(MAJOR_MINOR_PATCH)\n\tdocker tag $(NAME)/sessions:$(TAG_VERSION) $(NAME)/sessions:$(MAJOR_MINOR_PATCH)\n\tdocker tag $(NAME)/session-queue:$(TAG_VERSION) $(NAME)/session-queue:$(MAJOR_MINOR_PATCH)\n\tdocker tag $(NAME)/event-bus:$(TAG_VERSION) $(NAME)/event-bus:$(MAJOR_MINOR_PATCH)\n\tdocker tag $(NAME)/node-base:$(TAG_VERSION) $(NAME)/node-base:$(MAJOR_MINOR_PATCH)\n\tdocker tag $(NAME)/node-chrome:$(TAG_VERSION) $(NAME)/node-chrome:$(MAJOR_MINOR_PATCH)\n\tdocker tag $(NAME)/node-chromium:$(TAG_VERSION) $(NAME)/node-chromium:$(MAJOR_MINOR_PATCH)\n\tdocker tag $(NAME)/node-chrome-for-testing:$(TAG_VERSION) $(NAME)/node-chrome-for-testing:$(MAJOR_MINOR_PATCH)\n\tdocker tag $(NAME)/node-edge:$(TAG_VERSION) $(NAME)/node-edge:$(MAJOR_MINOR_PATCH)\n\tdocker tag $(NAME)/node-firefox:$(TAG_VERSION) $(NAME)/node-firefox:$(MAJOR_MINOR_PATCH)\n\tdocker tag $(NAME)/node-docker:$(TAG_VERSION) $(NAME)/node-docker:$(MAJOR_MINOR_PATCH)\n\tdocker tag $(NAME)/node-kubernetes:$(TAG_VERSION) $(NAME)/node-kubernetes:$(MAJOR_MINOR_PATCH)\n\tdocker tag $(NAME)/node-all-browsers:$(TAG_VERSION) $(NAME)/node-all-browsers:$(MAJOR_MINOR_PATCH)\n\tdocker tag $(NAME)/standalone-chrome:$(TAG_VERSION) $(NAME)/standalone-chrome:$(MAJOR_MINOR_PATCH)\n\tdocker tag $(NAME)/standalone-chromium:$(TAG_VERSION) $(NAME)/standalone-chromium:$(MAJOR_MINOR_PATCH)\n\tdocker tag $(NAME)/standalone-chrome-for-testing:$(TAG_VERSION) $(NAME)/standalone-chrome-for-testing:$(MAJOR_MINOR_PATCH)\n\tdocker tag $(NAME)/standalone-edge:$(TAG_VERSION) $(NAME)/standalone-edge:$(MAJOR_MINOR_PATCH)\n\tdocker tag $(NAME)/standalone-firefox:$(TAG_VERSION) $(NAME)/standalone-firefox:$(MAJOR_MINOR_PATCH)\n\tdocker tag $(NAME)/standalone-docker:$(TAG_VERSION) $(NAME)/standalone-docker:$(MAJOR_MINOR_PATCH)\n\tdocker tag $(NAME)/standalone-kubernetes:$(TAG_VERSION) $(NAME)/standalone-kubernetes:$(MAJOR_MINOR_PATCH)\n\tdocker tag $(NAME)/standalone-all-browsers:$(TAG_VERSION) $(NAME)/standalone-all-browsers:$(MAJOR_MINOR_PATCH)\n\nrelease: tag_major_minor\n\t@if ! docker images --format table $(NAME)/base | awk '{ print $$2 }' | grep -q -F $(TAG_VERSION); then echo \"$(NAME)/base version $(TAG_VERSION) is not yet built. Please run 'make build'\"; false; fi\n\t@if ! docker images --format table $(NAME)/hub | awk '{ print $$2 }' | grep -q -F $(TAG_VERSION); then echo \"$(NAME)/hub version $(TAG_VERSION) is not yet built. Please run 'make build'\"; false; fi\n\t@if ! docker images --format table $(NAME)/distributor | awk '{ print $$2 }' | grep -q -F $(TAG_VERSION); then echo \"$(NAME)/distributor version $(TAG_VERSION) is not yet built. Please run 'make build'\"; false; fi\n\t@if ! docker images --format table $(NAME)/router | awk '{ print $$2 }' | grep -q -F $(TAG_VERSION); then echo \"$(NAME)/router version $(TAG_VERSION) is not yet built. Please run 'make build'\"; false; fi\n\t@if ! docker images --format table $(NAME)/sessions | awk '{ print $$2 }' | grep -q -F $(TAG_VERSION); then echo \"$(NAME)/sessions version $(TAG_VERSION) is not yet built. Please run 'make build'\"; false; fi\n\t@if ! docker images --format table $(NAME)/session-queue | awk '{ print $$2 }' | grep -q -F $(TAG_VERSION); then echo \"$(NAME)/session-queue version $(TAG_VERSION) is not yet built. Please run 'make build'\"; false; fi\n\t@if ! docker images --format table $(NAME)/event-bus | awk '{ print $$2 }' | grep -q -F $(TAG_VERSION); then echo \"$(NAME)/event-bus version $(TAG_VERSION) is not yet built. Please run 'make build'\"; false; fi\n\t@if ! docker images --format table $(NAME)/node-base | awk '{ print $$2 }' | grep -q -F $(TAG_VERSION); then echo \"$(NAME)/node-base version $(TAG_VERSION) is not yet built. Please run 'make build'\"; false; fi\n\t@if ! docker images --format table $(NAME)/node-chrome | awk '{ print $$2 }' | grep -q -F $(TAG_VERSION); then echo \"$(NAME)/node-chrome version $(TAG_VERSION) is not yet built. Please run 'make build'\"; false; fi\n\t@if ! docker images --format table $(NAME)/node-chromium | awk '{ print $$2 }' | grep -q -F $(TAG_VERSION); then echo \"$(NAME)/node-chromium version $(TAG_VERSION) is not yet built. Please run 'make build'\"; false; fi\n\t@if ! docker images --format table $(NAME)/node-chrome-for-testing | awk '{ print $$2 }' | grep -q -F $(TAG_VERSION); then echo \"$(NAME)/node-chrome-for-testing version $(TAG_VERSION) is not yet built. Please run 'make build'\"; false; fi\n\t@if ! docker images --format table $(NAME)/node-edge | awk '{ print $$2 }' | grep -q -F $(TAG_VERSION); then echo \"$(NAME)/node-edge version $(TAG_VERSION) is not yet built. Please run 'make build'\"; false; fi\n\t@if ! docker images --format table $(NAME)/node-firefox | awk '{ print $$2 }' | grep -q -F $(TAG_VERSION); then echo \"$(NAME)/node-firefox version $(TAG_VERSION) is not yet built. Please run 'make build'\"; false; fi\n\t@if ! docker images --format table $(NAME)/node-docker | awk '{ print $$2 }' | grep -q -F $(TAG_VERSION); then echo \"$(NAME)/node-docker version $(TAG_VERSION) is not yet built. Please run 'make build'\"; false; fi\n\t@if ! docker images --format table $(NAME)/node-kubernetes | awk '{ print $$2 }' | grep -q -F $(TAG_VERSION); then echo \"$(NAME)/node-kubernetes version $(TAG_VERSION) is not yet built. Please run 'make build'\"; false; fi\n\t@if ! docker images --format table $(NAME)/node-all-browsers | awk '{ print $$2 }' | grep -q -F $(TAG_VERSION); then echo \"$(NAME)/node-all-browsers version $(TAG_VERSION) is not yet built. Please run 'make build'\"; false; fi\n\t@if ! docker images --format table $(NAME)/standalone-chrome | awk '{ print $$2 }' | grep -q -F $(TAG_VERSION); then echo \"$(NAME)/standalone-chrome version $(TAG_VERSION) is not yet built. Please run 'make build'\"; false; fi\n\t@if ! docker images --format table $(NAME)/standalone-chromium | awk '{ print $$2 }' | grep -q -F $(TAG_VERSION); then echo \"$(NAME)/standalone-chromium version $(TAG_VERSION) is not yet built. Please run 'make build'\"; false; fi\n\t@if ! docker images --format table $(NAME)/standalone-chrome-for-testing | awk '{ print $$2 }' | grep -q -F $(TAG_VERSION); then echo \"$(NAME)/standalone-chrome-for-testing version $(TAG_VERSION) is not yet built. Please run 'make build'\"; false; fi\n\t@if ! docker images --format table $(NAME)/standalone-edge | awk '{ print $$2 }' | grep -q -F $(TAG_VERSION); then echo \"$(NAME)/standalone-edge version $(TAG_VERSION) is not yet built. Please run 'make build'\"; false; fi\n\t@if ! docker images --format table $(NAME)/standalone-firefox | awk '{ print $$2 }' | grep -q -F $(TAG_VERSION); then echo \"$(NAME)/standalone-firefox version $(TAG_VERSION) is not yet built. Please run 'make build'\"; false; fi\n\t@if ! docker images --format table $(NAME)/standalone-docker | awk '{ print $$2 }' | grep -q -F $(TAG_VERSION); then echo \"$(NAME)/standalone-docker version $(TAG_VERSION) is not yet built. Please run 'make build'\"; false; fi\n\t@if ! docker images --format table $(NAME)/standalone-kubernetes | awk '{ print $$2 }' | grep -q -F $(TAG_VERSION); then echo \"$(NAME)/standalone-kubernetes version $(TAG_VERSION) is not yet built. Please run 'make build'\"; false; fi\n\t@if ! docker images --format table $(NAME)/standalone-all-browsers | awk '{ print $$2 }' | grep -q -F $(TAG_VERSION); then echo \"$(NAME)/standalone-all-browsers version $(TAG_VERSION) is not yet built. Please run 'make build'\"; false; fi\n\tdocker push $(NAME)/base:$(TAG_VERSION)\n\tdocker push $(NAME)/hub:$(TAG_VERSION)\n\tdocker push $(NAME)/distributor:$(TAG_VERSION)\n\tdocker push $(NAME)/router:$(TAG_VERSION)\n\tdocker push $(NAME)/sessions:$(TAG_VERSION)\n\tdocker push $(NAME)/session-queue:$(TAG_VERSION)\n\tdocker push $(NAME)/event-bus:$(TAG_VERSION)\n\tdocker push $(NAME)/node-base:$(TAG_VERSION)\n\tdocker push $(NAME)/node-chrome:$(TAG_VERSION)\n\tdocker push $(NAME)/node-chromium:$(TAG_VERSION)\n\tdocker push $(NAME)/node-chrome-for-testing:$(TAG_VERSION)\n\tdocker push $(NAME)/node-edge:$(TAG_VERSION)\n\tdocker push $(NAME)/node-firefox:$(TAG_VERSION)\n\tdocker push $(NAME)/node-docker:$(TAG_VERSION)\n\tdocker push $(NAME)/node-kubernetes:$(TAG_VERSION)\n\tdocker push $(NAME)/node-all-browsers:$(TAG_VERSION)\n\tdocker push $(NAME)/standalone-chrome:$(TAG_VERSION)\n\tdocker push $(NAME)/standalone-chromium:$(TAG_VERSION)\n\tdocker push $(NAME)/standalone-chrome-for-testing:$(TAG_VERSION)\n\tdocker push $(NAME)/standalone-edge:$(TAG_VERSION)\n\tdocker push $(NAME)/standalone-firefox:$(TAG_VERSION)\n\tdocker push $(NAME)/standalone-docker:$(TAG_VERSION)\n\tdocker push $(NAME)/standalone-kubernetes:$(TAG_VERSION)\n\tdocker push $(NAME)/standalone-all-browsers:$(TAG_VERSION)\n\tdocker push $(NAME)/base:$(MAJOR)\n\tdocker push $(NAME)/hub:$(MAJOR)\n\tdocker push $(NAME)/distributor:$(MAJOR)\n\tdocker push $(NAME)/router:$(MAJOR)\n\tdocker push $(NAME)/sessions:$(MAJOR)\n\tdocker push $(NAME)/session-queue:$(MAJOR)\n\tdocker push $(NAME)/event-bus:$(MAJOR)\n\tdocker push $(NAME)/node-base:$(MAJOR)\n\tdocker push $(NAME)/node-chrome:$(MAJOR)\n\tdocker push $(NAME)/node-chromium:$(MAJOR)\n\tdocker push $(NAME)/node-chrome-for-testing:$(MAJOR)\n\tdocker push $(NAME)/node-edge:$(MAJOR)\n\tdocker push $(NAME)/node-firefox:$(MAJOR)\n\tdocker push $(NAME)/node-docker:$(MAJOR)\n\tdocker push $(NAME)/node-kubernetes:$(MAJOR)\n\tdocker push $(NAME)/node-all-browsers:$(MAJOR)\n\tdocker push $(NAME)/standalone-chrome:$(MAJOR)\n\tdocker push $(NAME)/standalone-chromium:$(MAJOR)\n\tdocker push $(NAME)/standalone-chrome-for-testing:$(MAJOR)\n\tdocker push $(NAME)/standalone-edge:$(MAJOR)\n\tdocker push $(NAME)/standalone-firefox:$(MAJOR)\n\tdocker push $(NAME)/standalone-docker:$(MAJOR)\n\tdocker push $(NAME)/standalone-kubernetes:$(MAJOR)\n\tdocker push $(NAME)/standalone-all-browsers:$(MAJOR)\n\tdocker push $(NAME)/base:$(MAJOR).$(MINOR)\n\tdocker push $(NAME)/hub:$(MAJOR).$(MINOR)\n\tdocker push $(NAME)/distributor:$(MAJOR).$(MINOR)\n\tdocker push $(NAME)/router:$(MAJOR).$(MINOR)\n\tdocker push $(NAME)/sessions:$(MAJOR).$(MINOR)\n\tdocker push $(NAME)/session-queue:$(MAJOR).$(MINOR)\n\tdocker push $(NAME)/event-bus:$(MAJOR).$(MINOR)\n\tdocker push $(NAME)/node-base:$(MAJOR).$(MINOR)\n\tdocker push $(NAME)/node-chrome:$(MAJOR).$(MINOR)\n\tdocker push $(NAME)/node-chromium:$(MAJOR).$(MINOR)\n\tdocker push $(NAME)/node-chrome-for-testing:$(MAJOR).$(MINOR)\n\tdocker push $(NAME)/node-edge:$(MAJOR).$(MINOR)\n\tdocker push $(NAME)/node-firefox:$(MAJOR).$(MINOR)\n\tdocker push $(NAME)/node-docker:$(MAJOR).$(MINOR)\n\tdocker push $(NAME)/node-kubernetes:$(MAJOR).$(MINOR)\n\tdocker push $(NAME)/node-all-browsers:$(MAJOR).$(MINOR)\n\tdocker push $(NAME)/standalone-chrome:$(MAJOR).$(MINOR)\n\tdocker push $(NAME)/standalone-chromium:$(MAJOR).$(MINOR)\n\tdocker push $(NAME)/standalone-chrome-for-testing:$(MAJOR).$(MINOR)\n\tdocker push $(NAME)/standalone-edge:$(MAJOR).$(MINOR)\n\tdocker push $(NAME)/standalone-firefox:$(MAJOR).$(MINOR)\n\tdocker push $(NAME)/standalone-docker:$(MAJOR).$(MINOR)\n\tdocker push $(NAME)/standalone-kubernetes:$(MAJOR).$(MINOR)\n\tdocker push $(NAME)/standalone-all-browsers:$(MAJOR).$(MINOR)\n\tdocker push $(NAME)/base:$(MAJOR_MINOR_PATCH)\n\tdocker push $(NAME)/hub:$(MAJOR_MINOR_PATCH)\n\tdocker push $(NAME)/distributor:$(MAJOR_MINOR_PATCH)\n\tdocker push $(NAME)/router:$(MAJOR_MINOR_PATCH)\n\tdocker push $(NAME)/sessions:$(MAJOR_MINOR_PATCH)\n\tdocker push $(NAME)/session-queue:$(MAJOR_MINOR_PATCH)\n\tdocker push $(NAME)/event-bus:$(MAJOR_MINOR_PATCH)\n\tdocker push $(NAME)/node-base:$(MAJOR_MINOR_PATCH)\n\tdocker push $(NAME)/node-chrome:$(MAJOR_MINOR_PATCH)\n\tdocker push $(NAME)/node-chromium:$(MAJOR_MINOR_PATCH)\n\tdocker push $(NAME)/node-chrome-for-testing:$(MAJOR_MINOR_PATCH)\n\tdocker push $(NAME)/node-edge:$(MAJOR_MINOR_PATCH)\n\tdocker push $(NAME)/node-firefox:$(MAJOR_MINOR_PATCH)\n\tdocker push $(NAME)/node-docker:$(MAJOR_MINOR_PATCH)\n\tdocker push $(NAME)/node-kubernetes:$(MAJOR_MINOR_PATCH)\n\tdocker push $(NAME)/node-all-browsers:$(MAJOR_MINOR_PATCH)\n\tdocker push $(NAME)/standalone-chrome:$(MAJOR_MINOR_PATCH)\n\tdocker push $(NAME)/standalone-chromium:$(MAJOR_MINOR_PATCH)\n\tdocker push $(NAME)/standalone-chrome-for-testing:$(MAJOR_MINOR_PATCH)\n\tdocker push $(NAME)/standalone-edge:$(MAJOR_MINOR_PATCH)\n\tdocker push $(NAME)/standalone-firefox:$(MAJOR_MINOR_PATCH)\n\tdocker push $(NAME)/standalone-docker:$(MAJOR_MINOR_PATCH)\n\tdocker push $(NAME)/standalone-kubernetes:$(MAJOR_MINOR_PATCH)\n\tdocker push $(NAME)/standalone-all-browsers:$(MAJOR_MINOR_PATCH)\n\tdocker push $(NAME)/video:$(FFMPEG_TAG_VERSION)-$(BUILD_DATE)\n\nstart_test_site:\n\t@docker rm -f the-internet 2>/dev/null || true\n\t@docker run --rm --name the-internet -d -p 5001:5000 ndviet/the-internet:latest\n\t@echo \"Test site started at http://localhost:5001\"\n\ntest: test_chrome \\\n\ttest_chrome_standalone \\\n\ttest_chrome_standalone_java \\\n\ttest_chromium \\\n\ttest_chromium_standalone \\\n\ttest_chromium_standalone_java \\\n\ttest_chrome-for-testing \\\n\ttest_chrome-for-testing_standalone \\\n\ttest_chrome-for-testing_standalone_java \\\n\ttest_firefox \\\n\ttest_firefox_standalone \\\n\ttest_firefox_standalone_java \\\n\ttest_edge \\\n\ttest_edge_standalone \\\n\ttest_edge_standalone_java \\\n\ttest_node_all_browsers \\\n\ttest_standalone_all_browsers\n\ntest_chrome:\n\tset -e; case \"$(PLATFORMS)\" in \\\n\t\t*linux/amd64*) \\\n\t\techo \"Google Chrome is only supported on linux/amd64\" \\\n\t\t&& PLATFORMS=linux/amd64 VERSION=$(TAG_VERSION) NAMESPACE=$(NAMESPACE) BASE_RELEASE=$(BASE_RELEASE) BASE_VERSION=$(BASE_VERSION) BINDING_VERSION=$(BINDING_VERSION) SKIP_BUILD=true ./tests/bootstrap.sh NodeChrome \\\n\t\t;; \\\n\t\t*) \\\n\t\techo \"Google Chrome doesn't support platform $(PLATFORMS)\" ; \\\n\t\t;; \\\n\tesac\n\ntest_chrome_standalone:\n\tcase \"$(PLATFORMS)\" in \\\n\t\t*linux/amd64*) \\\n\t\techo \"Google Chrome is only supported on linux/amd64\" \\\n\t\t&& PLATFORMS=linux/amd64 VERSION=$(TAG_VERSION) NAMESPACE=$(NAMESPACE) BASE_RELEASE=$(BASE_RELEASE) BASE_VERSION=$(BASE_VERSION) BINDING_VERSION=$(BINDING_VERSION) SKIP_BUILD=true ./tests/bootstrap.sh StandaloneChrome \\\n\t\t;; \\\n\t\t*) \\\n\t\techo \"Google Chrome doesn't support platform $(PLATFORMS)\" ; \\\n\t\t;; \\\n\tesac\n\ntest_chrome_standalone_java:\n\tset -e; case \"$(PLATFORMS)\" in \\\n\t\t*linux/amd64*) \\\n\t\techo \"Google Chrome is only supported on linux/amd64\" \\\n\t\t&& PLATFORMS=linux/amd64 VERSION=$(TAG_VERSION) NAMESPACE=$(NAMESPACE) BASE_RELEASE=$(BASE_RELEASE) BASE_VERSION=$(BASE_VERSION) BINDING_VERSION=$(BINDING_VERSION) SKIP_BUILD=true ./tests/SeleniumJavaTests/bootstrap_java.sh chrome standalone-chrome \\\n\t\t;; \\\n\t\t*) \\\n\t\techo \"Google Chrome doesn't support platform $(PLATFORMS)\" ; \\\n\t\t;; \\\n\tesac\n\ntest_edge:\n\tset -e; case \"$(PLATFORMS)\" in \\\n\t\t*linux/amd64*) \\\n\t\techo \"Microsoft Edge is only supported on linux/amd64\" \\\n\t\t&& PLATFORMS=linux/amd64 VERSION=$(TAG_VERSION) NAMESPACE=$(NAMESPACE) BASE_RELEASE=$(BASE_RELEASE) BASE_VERSION=$(BASE_VERSION) BINDING_VERSION=$(BINDING_VERSION) SKIP_BUILD=true ./tests/bootstrap.sh NodeEdge \\\n\t\t;; \\\n\t\t*) \\\n\t\techo \"Microsoft Edge doesn't support platform $(PLATFORMS)\" ; \\\n\t\t;; \\\n\tesac\n\ntest_edge_standalone:\n\tset -e; case \"$(PLATFORMS)\" in \\\n\t\t*linux/amd64*) \\\n\t\techo \"Microsoft Edge is only supported on linux/amd64\" \\\n\t\t&& PLATFORMS=linux/amd64 VERSION=$(TAG_VERSION) NAMESPACE=$(NAMESPACE) BASE_RELEASE=$(BASE_RELEASE) BASE_VERSION=$(BASE_VERSION) BINDING_VERSION=$(BINDING_VERSION) SKIP_BUILD=true ./tests/bootstrap.sh StandaloneEdge \\\n\t\t;; \\\n\t\t*) \\\n\t\techo \"Microsoft Edge doesn't support platform $(PLATFORMS)\" ; \\\n\t\t;; \\\n\tesac\n\ntest_edge_standalone_java:\n\tset -e; case \"$(PLATFORMS)\" in \\\n\t\t*linux/amd64*) \\\n\t\techo \"Microsoft Edge is only supported on linux/amd64\" \\\n\t\t&& PLATFORMS=linux/amd64 VERSION=$(TAG_VERSION) NAMESPACE=$(NAMESPACE) BASE_RELEASE=$(BASE_RELEASE) BASE_VERSION=$(BASE_VERSION) BINDING_VERSION=$(BINDING_VERSION) SKIP_BUILD=true ./tests/SeleniumJavaTests/bootstrap_java.sh edge standalone-edge \\\n\t\t;; \\\n\t\t*) \\\n\t\techo \"Microsoft Edge doesn't support platform $(PLATFORMS)\" ; \\\n\t\t;; \\\n\tesac\n\ntest_firefox_download_lang_packs:\n\tFIREFOX_VERSION=$(or $(FIREFOX_VERSION), $$(curl -sk https://product-details.mozilla.org/1.0/firefox_versions.json | jq -r '.LATEST_FIREFOX_VERSION')) ; \\\n\t./NodeFirefox/get_lang_package.sh $$FIREFOX_VERSION ./tests/target/firefox_lang_packs\n\ntest_firefox: test_firefox_download_lang_packs\n\tPLATFORMS=$(PLATFORMS) VERSION=$(TAG_VERSION) NAMESPACE=$(NAMESPACE) BASE_RELEASE=$(BASE_RELEASE) BASE_VERSION=$(BASE_VERSION) BINDING_VERSION=$(BINDING_VERSION) SKIP_BUILD=true \\\n\tTEST_FIREFOX_INSTALL_LANG_PACKAGE=$(or $(TEST_FIREFOX_INSTALL_LANG_PACKAGE), \"true\") ./tests/bootstrap.sh NodeFirefox\n\ntest_firefox_standalone:\n\tPLATFORMS=$(PLATFORMS) VERSION=$(TAG_VERSION) NAMESPACE=$(NAMESPACE) BASE_RELEASE=$(BASE_RELEASE) BASE_VERSION=$(BASE_VERSION) BINDING_VERSION=$(BINDING_VERSION) SKIP_BUILD=true ./tests/bootstrap.sh StandaloneFirefox\n\ntest_firefox_standalone_java:\n\tPLATFORMS=$(PLATFORMS) VERSION=$(TAG_VERSION) NAMESPACE=$(NAMESPACE) BASE_RELEASE=$(BASE_RELEASE) BASE_VERSION=$(BASE_VERSION) BINDING_VERSION=$(BINDING_VERSION) SKIP_BUILD=true ./tests/SeleniumJavaTests/bootstrap_java.sh firefox standalone-firefox\n\ntest_chromium:\n\tPLATFORMS=$(PLATFORMS) VERSION=$(TAG_VERSION) NAMESPACE=$(NAMESPACE) BASE_RELEASE=$(BASE_RELEASE) BASE_VERSION=$(BASE_VERSION) BINDING_VERSION=$(BINDING_VERSION) SKIP_BUILD=true ./tests/bootstrap.sh NodeChromium\n\ntest_chromium_standalone:\n\tPLATFORMS=$(PLATFORMS) VERSION=$(TAG_VERSION) NAMESPACE=$(NAMESPACE) BASE_RELEASE=$(BASE_RELEASE) BASE_VERSION=$(BASE_VERSION) BINDING_VERSION=$(BINDING_VERSION) SKIP_BUILD=true ./tests/bootstrap.sh StandaloneChromium\n\ntest_chromium_standalone_java:\n\tPLATFORMS=$(PLATFORMS) VERSION=$(TAG_VERSION) NAMESPACE=$(NAMESPACE) BASE_RELEASE=$(BASE_RELEASE) BASE_VERSION=$(BASE_VERSION) BINDING_VERSION=$(BINDING_VERSION) SKIP_BUILD=true ./tests/SeleniumJavaTests/bootstrap_java.sh chrome standalone-chromium\n\ntest_chrome-for-testing:\n\tset -e; case \"$(PLATFORMS)\" in \\\n\t\t*linux/amd64*) \\\n\t\techo \"Google Chrome is only supported on linux/amd64\" \\\n\t\t&& PLATFORMS=$(PLATFORMS) VERSION=$(TAG_VERSION) NAMESPACE=$(NAMESPACE) BASE_RELEASE=$(BASE_RELEASE) BASE_VERSION=$(BASE_VERSION) BINDING_VERSION=$(BINDING_VERSION) SKIP_BUILD=true ./tests/bootstrap.sh NodeChrome-for-testing \\\n\t\t;; \\\n\t\t*) \\\n\t\techo \"Google Chrome doesn't support platform $(PLATFORMS)\" ; \\\n\t\t;; \\\n\tesac\n\ntest_chrome-for-testing_standalone:\n\tcase \"$(PLATFORMS)\" in \\\n\t\t*linux/amd64*) \\\n\t\techo \"Google Chrome is only supported on linux/amd64\" \\\n\t\t&& PLATFORMS=$(PLATFORMS) VERSION=$(TAG_VERSION) NAMESPACE=$(NAMESPACE) BASE_RELEASE=$(BASE_RELEASE) BASE_VERSION=$(BASE_VERSION) BINDING_VERSION=$(BINDING_VERSION) SKIP_BUILD=true ./tests/bootstrap.sh StandaloneChrome-for-testing \\\n\t\t;; \\\n\t\t*) \\\n\t\techo \"Google Chrome doesn't support platform $(PLATFORMS)\" ; \\\n\t\t;; \\\n\tesac\n\ntest_chrome-for-testing_standalone_java:\n\tset -e; case \"$(PLATFORMS)\" in \\\n\t\t*linux/amd64*) \\\n\t\techo \"Google Chrome is only supported on linux/amd64\" \\\n\t\t&& PLATFORMS=$(PLATFORMS) VERSION=$(TAG_VERSION) NAMESPACE=$(NAMESPACE) BASE_RELEASE=$(BASE_RELEASE) BASE_VERSION=$(BASE_VERSION) BINDING_VERSION=$(BINDING_VERSION) SKIP_BUILD=true ./tests/SeleniumJavaTests/bootstrap_java.sh chrome standalone-chrome-for-testing \\\n\t\t;; \\\n\t\t*) \\\n\t\techo \"Google Chrome doesn't support platform $(PLATFORMS)\" ; \\\n\t\t;; \\\n\tesac\n\ntest_node_all_browsers:\n\tset -e; case \"$(PLATFORMS)\" in \\\n\t\t*linux/amd64*) \\\n\t\techo \"Microsoft Edge is only supported on linux/amd64\" \\\n\t\t&& PLATFORMS=linux/amd64 VERSION=$(TAG_VERSION) NAMESPACE=$(NAMESPACE) BASE_RELEASE=$(BASE_RELEASE) BASE_VERSION=$(BASE_VERSION) BINDING_VERSION=$(BINDING_VERSION) SKIP_BUILD=true ./tests/bootstrap.sh NodeAllEdge \\\n\t\t;; \\\n\t\t*) \\\n\t\techo \"Microsoft Edge doesn't support platform $(PLATFORMS)\" ; \\\n\t\t;; \\\n\tesac\n\tPLATFORMS=$(PLATFORMS) VERSION=$(TAG_VERSION) NAMESPACE=$(NAMESPACE) BASE_RELEASE=$(BASE_RELEASE) BASE_VERSION=$(BASE_VERSION) BINDING_VERSION=$(BINDING_VERSION) SKIP_BUILD=true ./tests/bootstrap.sh NodeAllChrome\n\tPLATFORMS=$(PLATFORMS) VERSION=$(TAG_VERSION) NAMESPACE=$(NAMESPACE) BASE_RELEASE=$(BASE_RELEASE) BASE_VERSION=$(BASE_VERSION) BINDING_VERSION=$(BINDING_VERSION) SKIP_BUILD=true \\\n\t./tests/bootstrap.sh NodeAllFirefox\n\ntest_standalone_all_browsers:\n\tset -e; case \"$(PLATFORMS)\" in \\\n\t\t*linux/amd64*) \\\n\t\techo \"Microsoft Edge is only supported on linux/amd64\" \\\n\t\t&& PLATFORMS=linux/amd64 VERSION=$(TAG_VERSION) NAMESPACE=$(NAMESPACE) BASE_RELEASE=$(BASE_RELEASE) BASE_VERSION=$(BASE_VERSION) BINDING_VERSION=$(BINDING_VERSION) SKIP_BUILD=true ./tests/bootstrap.sh StandaloneAllEdge \\\n\t\t;; \\\n\t\t*) \\\n\t\techo \"Microsoft Edge doesn't support platform $(PLATFORMS)\" ; \\\n\t\t;; \\\n\tesac\n\tPLATFORMS=$(PLATFORMS) VERSION=$(TAG_VERSION) NAMESPACE=$(NAMESPACE) BASE_RELEASE=$(BASE_RELEASE) BASE_VERSION=$(BASE_VERSION) BINDING_VERSION=$(BINDING_VERSION) SKIP_BUILD=true ./tests/bootstrap.sh StandaloneAllFirefox\n\tPLATFORMS=$(PLATFORMS) VERSION=$(TAG_VERSION) NAMESPACE=$(NAMESPACE) BASE_RELEASE=$(BASE_RELEASE) BASE_VERSION=$(BASE_VERSION) BINDING_VERSION=$(BINDING_VERSION) SKIP_BUILD=true ./tests/bootstrap.sh StandaloneAllChrome\n\ntest_parallel: hub chrome firefox edge chromium video\n\tsudo rm -rf ./tests/tests\n\tsudo rm -rf ./tests/videos; mkdir -p ./tests/videos\n\tsudo cp -r ./charts/selenium-grid/certs ./tests/videos\n\tfor node in DeploymentAutoscaling JobAutoscaling ; do \\\n\t\tcd ./tests || true ; \\\n\t\techo TAG=$(TAG_VERSION) > .env ; \\\n\t\techo VIDEO_TAG=$(FFMPEG_TAG_VERSION)-$(BUILD_DATE) >> .env ; \\\n\t\techo TEST_DELAY_AFTER_TEST=$(or $(TEST_DELAY_AFTER_TEST), 2) >> .env ; \\\n\t\techo TEST_DRAIN_AFTER_SESSION_COUNT=$(or $(TEST_DRAIN_AFTER_SESSION_COUNT), 2) >> .env ; \\\n\t\techo TEST_PARALLEL_HARDENING=$(or $(TEST_PARALLEL_HARDENING), \"true\") >> .env ; \\\n\t\techo TEST_PARALLEL_COUNT=$(or $(TEST_PARALLEL_COUNT), 5) >> .env ; \\\n\t\techo HUB_CHECKS_INTERVAL=$(or $(HUB_CHECKS_INTERVAL), 45) >> .env ; \\\n\t\techo LOG_LEVEL=$(or $(LOG_LEVEL), \"INFO\") >> .env ; \\\n\t\techo REQUEST_TIMEOUT=$(or $(REQUEST_TIMEOUT), 600) >> .env ; \\\n\t\techo NODE=$$node >> .env ; \\\n\t\techo UID=$$(id -u) >> .env ; \\\n\t\techo BINDING_VERSION=$(BINDING_VERSION) >> .env ; \\\n\t\techo BASE_VERSION=$(BASE_VERSION) >> .env ; \\\n\t\tif [ \"$(PLATFORMS)\" = \"linux/amd64\" ]; then \\\n\t\t\techo NODE_CHROME=chrome >> .env ; \\\n\t\telse \\\n\t\t\techo NODE_CHROME=chromium >> .env ; \\\n\t\tfi; \\\n\t\t\techo TEST_PLATFORMS=$(PLATFORMS) >> .env ; \\\n\t\t\techo SELENIUM_GRID_PROTOCOL=https >> .env ; \\\n\t\t\techo CHART_CERT_PATH=$$(readlink -f ./videos/certs/tls.crt) >> .env ; \\\n\t\t\texport $$(cat .env | xargs) ; \\\n\t\t\tDOCKER_DEFAULT_PLATFORM=$(PLATFORMS) docker compose --profile $(PLATFORMS) -f docker-compose-v3-test-parallel.yml up -d --remove-orphans --no-log-prefix ; \\\n\t\t\tRUN_IN_DOCKER_COMPOSE=true TEST_SITE=the-internet:5000 bash ./bootstrap.sh $$node ; \\\n\t\t\tdocker compose -f docker-compose-v3-test-parallel.yml down ; \\\n\tdone\n\tmake test_video_integrity\n\ntest_video_standalone: standalone_chrome standalone_chromium standalone_firefox standalone_edge\n\tDOCKER_COMPOSE_FILE=docker-compose-v3-test-standalone.yml TEST_DELAY_AFTER_TEST=2 HUB_CHECKS_INTERVAL=45 make test_video\n\ntest_video_dynamic_name:\n\tVIDEO_FILE_NAME=auto TEST_DELAY_AFTER_TEST=2 HUB_CHECKS_INTERVAL=45 TEST_ADD_CAPS_RECORD_VIDEO=false \\\n\tmake test_video\n\n# This should run on its own CI job. There is no need to combine it with the other tests.\n# Its main purpose is to check that a video file was generated.\ntest_video: video hub chrome firefox edge chromium\n\tsudo rm -rf ./tests/tests\n\tsudo rm -rf ./tests/videos; mkdir -p ./tests/videos/upload\n\tsudo chmod -R 777 ./tests/videos\n\tdocker_compose_file=$(or $(DOCKER_COMPOSE_FILE), docker-compose-v3-test-video.yml) ; \\\n\tlist_of_tests_amd64=$(or $(LIST_OF_TESTS_AMD64), \"NodeChrome NodeChromium NodeFirefox NodeEdge\") ; \\\n\tlist_of_tests_arm64=$(or $(LIST_OF_TESTS_ARM64), \"NodeFirefox NodeChromium\") ; \\\n\tTEST_FIREFOX_INSTALL_LANG_PACKAGE=$(or $(TEST_FIREFOX_INSTALL_LANG_PACKAGE), \"true\") ; \\\n\tif [ \"$${TEST_FIREFOX_INSTALL_LANG_PACKAGE}\" = \"true\" ]; then \\\n\t\tmake test_firefox_download_lang_packs ; \\\n\tfi ; \\\n\tif [ \"$(PLATFORMS)\" = \"linux/amd64\" ]; then \\\n\t\tlist_nodes=\"$${list_of_tests_amd64}\" ; \\\n\telse \\\n\t\tlist_nodes=\"$${list_of_tests_arm64}\" ; \\\n\tfi; \\\n\tfor node in $${list_nodes}; do \\\n\t\tcd ./tests || true ; \\\n\t\techo VIDEO_TAG=$(FFMPEG_TAG_VERSION)-$(BUILD_DATE) > .env ; \\\n\t\techo TAG=$(TAG_VERSION) >> .env ; \\\n\t\techo NODE=$$node >> .env ; \\\n\t\techo UID=$$(id -u) >> .env ; \\\n\t\techo BINDING_VERSION=$(BINDING_VERSION) >> .env ; \\\n\t\techo BASE_VERSION=$(BASE_VERSION) >> .env ; \\\n\t\techo TEST_DELAY_AFTER_TEST=$(or $(TEST_DELAY_AFTER_TEST), 2) >> .env ; \\\n\t\techo HUB_CHECKS_INTERVAL=$(or $(HUB_CHECKS_INTERVAL), 45) >> .env ; \\\n\t\techo SELENIUM_ENABLE_MANAGED_DOWNLOADS=$(or $(SELENIUM_ENABLE_MANAGED_DOWNLOADS), \"true\") >> .env ; \\\n\t\techo TEST_FIREFOX_INSTALL_LANG_PACKAGE=$${TEST_FIREFOX_INSTALL_LANG_PACKAGE} >> .env ; \\\n\t\techo BASIC_AUTH_USERNAME=$(or $(BASIC_AUTH_USERNAME), \"admin\") >> .env ; \\\n\t\techo BASIC_AUTH_PASSWORD=$(or $(BASIC_AUTH_PASSWORD), \"admin\") >> .env ; \\\n\t\techo SUB_PATH=$(or $(SUB_PATH), \"/selenium\") >> .env ; \\\n\t\techo TEST_ADD_CAPS_RECORD_VIDEO=$(or $(TEST_ADD_CAPS_RECORD_VIDEO), \"true\") >> .env ; \\\n\t\tif [ $$node = \"NodeChrome\" ] ; then \\\n\t\t\techo BROWSER=chrome >> .env ; \\\n\t\t\techo VIDEO_FILE_NAME=$${VIDEO_FILE_NAME:-\"chrome_video.mp4\"} >> .env ; \\\n\t\t\techo VIDEO_FILE_NAME_SUFFIX=$${VIDEO_FILE_NAME_SUFFIX:-\"true\"} >> .env ; \\\n\t\tfi ; \\\n\t\t\tif [ $$node = \"NodeChromium\" ] ; then \\\n\t\t\t\techo BROWSER=chromium >> .env ; \\\n\t\t\t\techo VIDEO_FILE_NAME=$${VIDEO_FILE_NAME:-\"chromium_video.mp4\"} >> .env ; \\\n\t\t\t\techo VIDEO_FILE_NAME_SUFFIX=$${VIDEO_FILE_NAME_SUFFIX:-\"true\"} >> .env ; \\\n\t\t\t\techo SELENIUM_GRID_TEST_HEADLESS=true >> .env ; \\\n\t\t\tfi ; \\\n\t\t\tif [ $$node = \"NodeEdge\" ] ; then \\\n\t\t\t\techo BROWSER=edge >> .env ; \\\n\t\t\t\techo VIDEO_FILE_NAME=$${VIDEO_FILE_NAME:-\"edge_video.mp4\"} >> .env ; \\\n\t\t\t\techo VIDEO_FILE_NAME_SUFFIX=$${VIDEO_FILE_NAME_SUFFIX:-\"false\"} >> .env ; \\\n\t\t\tfi ; \\\n\t\t\tif [ $$node = \"NodeFirefox\" ] ; then \\\n\t\t\t\techo BROWSER=firefox >> .env ; \\\n\t\t\t\techo VIDEO_FILE_NAME=$${VIDEO_FILE_NAME:-\"firefox_video.mp4\"} >> .env ; \\\n\t\t\t\techo VIDEO_FILE_NAME_SUFFIX=$${VIDEO_FILE_NAME_SUFFIX:-\"true\"} >> .env ; \\\n\t\t\tfi ; \\\n\t\t\tDOCKER_DEFAULT_PLATFORM=$(PLATFORMS) docker compose -f $${docker_compose_file} up --remove-orphans --build  --exit-code-from tests ; \\\n\tdone\n\tmake test_video_integrity\n\ntest_node_relay: hub node_base standalone_firefox\n\tsudo rm -rf ./tests/tests ./tests/videos; mkdir -p ./tests/videos ; \\\n\tif [ \"$(PLATFORMS)\" = \"linux/amd64\" ]; then \\\n\t\tlist_nodes=\"Android NodeFirefox\" ; \\\n\telse \\\n\t\tlist_nodes=\"NodeFirefox\" ; \\\n\tfi; \\\n\tfor node in $${list_nodes} ; do \\\n\t\tcd ./tests || true ; \\\n\t\techo TAG=$(TAG_VERSION) > .env ; \\\n\t\techo NAMESPACE=$(NAME) >> .env ; \\\n\t\techo LOG_LEVEL=$(or $(LOG_LEVEL), \"INFO\") >> .env ; \\\n\t\techo REQUEST_TIMEOUT=$(or $(REQUEST_TIMEOUT), 300) >> .env ; \\\n\t\techo SESSION_TIMEOUT=$(or $(SESSION_TIMEOUT), 300) >> .env ; \\\n\t\techo ANDROID_BASED_NAME=$(or $(ANDROID_BASED_NAME),budtmo) >> .env ; \\\n\t\techo ANDROID_BASED_IMAGE=$(or $(ANDROID_BASED_IMAGE),docker-android) >> .env ; \\\n\t\techo ANDROID_BASED_TAG=$(or $(ANDROID_BASED_TAG),emulator_14.0) >> .env ; \\\n\t\techo ANDROID_PLATFORM_API=$(or $(ANDROID_PLATFORM_API),14) >> .env ; \\\n\t\techo TEST_DELAY_AFTER_TEST=$(or $(TEST_DELAY_AFTER_TEST), 0) >> .env ; \\\n\t\techo NODE=$$node >> .env ; \\\n\t\techo TEST_NODE_RELAY=$$node >> .env ; \\\n\t\techo UID=$$(id -u) >> .env ; \\\n\t\techo BINDING_VERSION=$(BINDING_VERSION) >> .env ; \\\n\t\techo BASE_VERSION=$(BASE_VERSION) >> .env ; \\\n\t\tif [ $$node = \"Android\" ] ; then \\\n\t\t\techo BROWSER=firefox >> .env \\\n\t\t\t&& echo BROWSER_NAME=firefox >> .env ; \\\n\t\tfi ; \\\n\t\t\tif [ $$node = \"NodeChrome\" ] ; then \\\n\t\t\t\techo BROWSER=chrome >> .env \\\n\t\t\t\t&& BROWSER_NAMEchrome >> .env ; \\\n\t\t\tfi ; \\\n\t\t\tif [ $$node = \"NodeChromium\" ] ; then \\\n\t\t\t\techo BROWSER=chromium >> .env \\\n\t\t\t\t&& echo BROWSER_NAME=chrome >> .env ; \\\n\t\t\t\techo SELENIUM_GRID_TEST_HEADLESS=true >> .env ; \\\n\t\t\tfi ; \\\n\t\t\tif [ $$node = \"NodeEdge\" ] ; then \\\n\t\t\t\techo BROWSER=edge >> .env \\\n\t\t\t\t&& echo BROWSER_NAME=MicrosoftEdge >> .env ; \\\n\t\t\tfi ; \\\n\t\t\tif [ $$node = \"NodeFirefox\" ] ; then \\\n\t\t\t\techo BROWSER=firefox >> .env \\\n\t\t\t\t&& echo BROWSER_NAME=firefox >> .env ; \\\n\t\t\tfi ; \\\n\t\t\texport $$(cat .env | xargs) ; \\\n\t\t\tenvsubst < relay_config.toml > ./videos/relay_config.toml ; \\\n\t\t\tDOCKER_DEFAULT_PLATFORM=$(PLATFORMS) docker compose --profile $$node -f docker-compose-v3-test-node-relay.yml up --remove-orphans --no-log-prefix --build --exit-code-from tests ; \\\n\t\t\tif [ $$? -ne 0 ]; then exit 1; fi ; \\\n\t\t\tdone\n\ntest_standalone_docker: standalone_docker\n\tDOCKER_COMPOSE_FILE=docker-compose-v3-test-standalone-docker.yaml CONFIG_FILE=standalone_docker_config.toml HUB_CHECKS_INTERVAL=45 TEST_CUSTOM_SPECIFIC_NAME=true \\\n\tRECORD_STANDALONE=true GRID_URL=http://0.0.0.0:4444 LIST_OF_TESTS_AMD64=\"DeploymentAutoscaling\" TEST_PARALLEL_HARDENING=true TEST_DELAY_AFTER_TEST=2 \\\n\tSELENIUM_ENABLE_MANAGED_DOWNLOADS=true LOG_LEVEL=SEVERE SKIP_CHECK_DOWNLOADS_VOLUME=true make test_node_docker\n\ntest_node_docker: hub standalone_docker standalone_chrome standalone_firefox standalone_edge standalone_chromium video\n\tsudo rm -rf ./tests/tests\n\tsudo rm -rf ./tests/videos; mkdir -p ./tests/videos/Downloads; mkdir -p ./tests/videos/upload\n\tsudo chmod -R 777 ./tests/videos\n\tdocker_compose_file=$(or $(DOCKER_COMPOSE_FILE), docker-compose-v3-test-node-docker.yaml) ; \\\n\tconfig_file=$(or $(CONFIG_FILE), config.toml) ; \\\n\tlist_of_tests_amd64=$(or $(LIST_OF_TESTS_AMD64), \"NodeChrome NodeChromium NodeFirefox NodeEdge\") ; \\\n\tlist_of_tests_arm64=$(or $(LIST_OF_TESTS_ARM64), \"NodeFirefox NodeChromium\") ; \\\n\tif [ \"$(PLATFORMS)\" = \"linux/amd64\" ]; then \\\n\t\tlist_nodes=\"$${list_of_tests_amd64}\" ; \\\n\telse \\\n\t\tlist_nodes=\"$${list_of_tests_arm64}\" ; \\\n\tfi; \\\n\tfor node in $${list_nodes} ; do \\\n\t\tcd tests || true ; \\\n\t\tDOWNLOADS_DIR=\"./videos/Downloads\" ; \\\n\t\tsudo rm -rf $$DOWNLOADS_DIR/* ; \\\n\t\techo NAMESPACE=$(NAME) > .env ; \\\n\t\techo TAG=$(TAG_VERSION) >> .env ; \\\n\t\techo VIDEO_TAG=$(FFMPEG_TAG_VERSION)-$(BUILD_DATE) >> .env ; \\\n\t\techo TEST_DRAIN_AFTER_SESSION_COUNT=$(or $(TEST_DRAIN_AFTER_SESSION_COUNT), 0) >> .env ; \\\n\t\techo TEST_PARALLEL_HARDENING=$(or $(TEST_PARALLEL_HARDENING), \"false\") >> .env ; \\\n\t\techo LOG_LEVEL=$(or $(LOG_LEVEL), \"FINE\") >> .env ; \\\n\t\techo REQUEST_TIMEOUT=$(or $(REQUEST_TIMEOUT), 300) >> .env ; \\\n\t\techo SELENIUM_ENABLE_MANAGED_DOWNLOADS=$(or $(SELENIUM_ENABLE_MANAGED_DOWNLOADS), \"false\") >> .env ; \\\n\t\techo TEST_DELAY_AFTER_TEST=$(or $(TEST_DELAY_AFTER_TEST), 2) >> .env ; \\\n\t\techo RECORD_STANDALONE=$(or $(RECORD_STANDALONE), \"true\") >> .env ; \\\n\t\techo GRID_URL=$(or $(GRID_URL), \"\") >> .env ; \\\n\t\techo HUB_CHECKS_INTERVAL=$(or $(HUB_CHECKS_INTERVAL), 20) >> .env ; \\\n\t\techo TEST_CUSTOM_SPECIFIC_NAME=$(or $(TEST_CUSTOM_SPECIFIC_NAME), \"true\") >> .env ; \\\n\t\techo NODE=$$node >> .env ; \\\n\t\techo UID=$$(id -u) >> .env ; \\\n\t\techo BINDING_VERSION=$(BINDING_VERSION) >> .env ; \\\n\t\techo BASE_VERSION=$(BASE_VERSION) >> .env ; \\\n\t\tif [ \"$$(uname)\" != \"Darwin\" ]; then \\\n\t\t\techo HOST_IP=$$(hostname -I | awk '{print $$1}') >> .env ; \\\n\t\telse \\\n\t\t\techo HOST_IP=127.0.0.1 >> .env ; \\\n\t\tfi; \\\n\t\tif [ \"$(PLATFORMS)\" = \"linux/amd64\" ]; then \\\n\t\t\tNODE_EDGE=edge ; \\\n\t\t\tNODE_CHROME=chrome ; \\\n\t\telse \\\n\t\t\tNODE_EDGE=chromium ; \\\n\t\t\tNODE_CHROME=chromium ; \\\n\t\t\tBASIC_AUTH_USER=admin ; \\\n\t\t\tBASIC_AUTH_PASSWORD=admin ; \\\n\t\tfi; \\\n\t\t\techo BASIC_AUTH_USER=$${BASIC_AUTH_USER} >> .env ; \\\n\t\t\techo BASIC_AUTH_PASSWORD=$${BASIC_AUTH_PASSWORD} >> .env ; \\\n\t\t\techo NODE_EDGE=$${NODE_EDGE} >> .env ; \\\n\t\t\tif [ $$node = \"NodeChrome\" ] ; then \\\n\t\t\t\techo NODE_CHROME=$${NODE_CHROME} >> .env ; \\\n\t\t\tfi ; \\\n\t\t\tif [ $$node = \"NodeChromium\" ] ; then \\\n\t\t\t\techo NODE_CHROME=chromium >> .env ; \\\n\t\t\t\techo SELENIUM_GRID_TEST_HEADLESS=true >> .env ; \\\n\t\t\telse \\\n\t\t\t\techo NODE_CHROME=$${NODE_CHROME} >> .env ; \\\n\t\t\tfi ; \\\n\t\t\texport $$(cat .env | xargs) ; \\\n\t\t\tenvsubst < $${config_file} > ./videos/config.toml ; \\\n\t\t\tDOCKER_DEFAULT_PLATFORM=$(PLATFORMS) docker compose -f $${docker_compose_file} up --remove-orphans --no-log-prefix --build --exit-code-from tests ; \\\n\t\t\tif [ $$? -ne 0 ]; then exit 1; fi ; \\\n\t\t\t\tif [ \"$$SKIP_CHECK_DOWNLOADS_VOLUME\" != \"true\" ] && [ \"$$SELENIUM_ENABLE_MANAGED_DOWNLOADS\" != \"true\" ] && [ -d \"$$DOWNLOADS_DIR\" ] && [ $$(ls -1q $$DOWNLOADS_DIR | wc -l) -eq 0 ]; then \\\n\t\t\t\t\techo \"Mounted downloads directory is empty. Downloaded files could not be retrieved!\" ; \\\n\t\t\t\t\texit 1 ; \\\n\t\t\t\tfi ; \\\n\tdone\n\tmake test_video_integrity\n\ntest_custom_ca_cert:\n\tVERSION=$(TAG_VERSION) NAMESPACE=$(NAMESPACE) ./tests/customCACert/bootstrap.sh\n\nchart_cluster_setup:\n\tVERSION=$(TAG_VERSION) NAMESPACE=$(NAMESPACE) BUILD_DATE=$(BUILD_DATE) ./tests/charts/make/chart_cluster_setup.sh\n\tmake set_containerd_image_store\n\nchart_cluster_cleanup:\n\t./tests/charts/make/chart_cluster_cleanup.sh\n\nchart_build_nightly:\n\tVERSION=$(CHART_VERSION_NIGHTLY) ./tests/charts/make/chart_build.sh\n\nchart_build:\n\tVERSION=$(TAG_VERSION) ./tests/charts/make/chart_build.sh\n\nchart_release:\n\tNAMESPACE=$(NAMESPACE) ./tests/charts/make/chart_release.sh\n\ntest_video_integrity:\n\t# Using ffmpeg to verify file integrity\n\t# https://superuser.com/questions/100288/how-can-i-check-the-integrity-of-a-video-file-avi-mpeg-mp4\n\tlist_files=$$(find ./tests/videos -type f -name \"*.mp4\"); \\\n\techo \"::warning:: Number of video files: $$(echo $$list_files | wc -w)\"; \\\n\tnumber_corrupted_files=0; \\\n\tif [ -z \"$$list_files\" ]; then \\\n\t\techo \"No video files found\"; \\\n\t\texit 1; \\\n\tfi; \\\n\tfor file in $$list_files; do \\\n\t\techo \"Checking video file: $$file\"; \\\n\t\tdocker run -u $$(id -u) -v $$(pwd):$$(pwd) -w $$(pwd) --entrypoint=\"\" $(NAME)/video:$(FFMPEG_TAG_VERSION)-$(BUILD_DATE) ffmpeg -v error -i \"$$file\" -f null - ; \\\n\t\tif [ $$? -ne 0 ]; then \\\n\t\t\techo \"Video file $$file is corrupted\"; \\\n\t\t\tnumber_corrupted_files=$$((number_corrupted_files+1)); \\\n\t\tfi; \\\n\t  echo \"------\"; \\\n\tdone; \\\n\tif [ $$((number_corrupted_files)) -gt 0 ]; then \\\n\t\techo \"Number of corrupted video files: $$number_corrupted_files\"; \\\n\t\texit 1; \\\n\tfi\n\nchart_test_template:\n\t./tests/charts/bootstrap.sh\n\nchart_render_template:\n\tRENDER_HELM_TEMPLATE_ONLY=true NAMESPACE=$(NAME) KEDA_TAG_VERSION=$(KEDA_TAG_VERSION) BUILD_DATE=$(BUILD_DATE) make chart_test_autoscaling_disabled chart_test_autoscaling_deployment_https chart_test_autoscaling_deployment chart_test_autoscaling_job_https chart_test_autoscaling_job_hostname chart_test_autoscaling_job chart_test_autoscaling_playwright_connect_grid chart_test_autoscaling_job_relay\n\nchart_test_autoscaling_disabled:\n\tPLATFORMS=$(PLATFORMS) TEST_CHROMIUM=true RELEASE_NAME=selenium SELENIUM_GRID_AUTOSCALING=false CHART_ENABLE_TRACING=true TEST_PATCHED_KEDA=$(TEST_PATCHED_KEDA) TEST_CUSTOM_SPECIFIC_NAME=true SELENIUM_GRID_MONITORING=false \\\n\tSECURE_INGRESS_ONLY_GENERATE=true SELENIUM_GRID_PROTOCOL=https SELENIUM_GRID_HOST=$$(hostname -I | cut -d' ' -f1) SELENIUM_GRID_PORT=443 EXTERNAL_UPLOADER_CONFIG=true \\\n\tVERSION=$(TAG_VERSION) VIDEO_TAG=$(FFMPEG_TAG_VERSION)-$(BUILD_DATE) KEDA_BASED_NAME=$(KEDA_BASED_NAME) KEDA_BASED_TAG=$(KEDA_BASED_TAG) NAMESPACE=$(NAMESPACE) BINDING_VERSION=$(BINDING_VERSION) BASE_VERSION=$(BASE_VERSION) \\\n\tTEMPLATE_OUTPUT_FILENAME=\"k8s_nodeChromium_enableTracing_secureIngress_generateCerts_ingressPublicIP_subPath.yaml\" \\\n\t./tests/charts/make/chart_test.sh NoAutoscaling\n\nchart_test_autoscaling_deployment_https:\n\tPLATFORMS=$(PLATFORMS) CHART_FULL_DISTRIBUTED_MODE=true CHART_ENABLE_BASIC_AUTH=true TEST_EXTERNAL_DATASTORE=postgresql TEST_MULTIPLE_VERSIONS=false AUTOSCALING_COOLDOWN_PERIOD=30 SELENIUM_GRID_MONITORING=false TEST_PATCHED_KEDA=$(TEST_PATCHED_KEDA) \\\n\tSECURE_INGRESS_ONLY_DEFAULT=true INGRESS_DISABLE_USE_HTTP2=true SELENIUM_GRID_PROTOCOL=https CHART_ENABLE_INGRESS_HOSTNAME=true SELENIUM_GRID_PORT=443 \\\n\tSELENIUM_GRID_AUTOSCALING_MIN_REPLICA=0 MAX_SESSIONS_FIREFOX=1 MAX_SESSIONS_EDGE=1 MAX_SESSIONS_CHROME=1 TEST_NODE_DRAIN_AFTER_SESSION_COUNT=3 TEST_NAME_OVERRIDE=true \\\n\tVERSION=$(TAG_VERSION) VIDEO_TAG=$(FFMPEG_TAG_VERSION)-$(BUILD_DATE) KEDA_BASED_NAME=$(KEDA_BASED_NAME) KEDA_BASED_TAG=$(KEDA_BASED_TAG) NAMESPACE=$(NAMESPACE) BINDING_VERSION=$(BINDING_VERSION) BASE_VERSION=$(BASE_VERSION) \\\n\tTEMPLATE_OUTPUT_FILENAME=\"k8s_fullDistributed_basicAuth_secureIngress_defaultCerts_ingressHostName_disableHttp2_autoScaling_patchKEDA_scaledObject_subPath.yaml\" \\\n\t./tests/charts/make/chart_test.sh DeploymentAutoscaling\n\nchart_test_autoscaling_deployment:\n\tPLATFORMS=$(PLATFORMS) TEST_EXISTING_KEDA=true RELEASE_NAME=selenium CHART_ENABLE_TRACING=true TEST_PATCHED_KEDA=$(TEST_PATCHED_KEDA) AUTOSCALING_COOLDOWN_PERIOD=30 \\\n\tTRACING_EXPORTER_ENDPOINT=$(TRACING_EXPORTER_ENDPOINT) TEST_CUSTOM_SPECIFIC_NAME=true \\\n\tSECURE_CONNECTION_SERVER=true SECURE_USE_EXTERNAL_CERT=true SERVICE_TYPE_NODEPORT=true SELENIUM_GRID_PROTOCOL=https SELENIUM_GRID_HOST=$$(hostname -I | cut -d' ' -f1) SELENIUM_GRID_PORT=31444 \\\n\tSELENIUM_GRID_AUTOSCALING_MIN_REPLICA=1 SET_MAX_REPLICAS=3 TEST_DELAY_AFTER_TEST=2 TEST_NODE_DRAIN_AFTER_SESSION_COUNT=3 SELENIUM_GRID_MONITORING=false \\\n\tVERSION=$(TAG_VERSION) VIDEO_TAG=$(FFMPEG_TAG_VERSION)-$(BUILD_DATE) KEDA_BASED_NAME=$(KEDA_BASED_NAME) KEDA_BASED_TAG=$(KEDA_BASED_TAG) NAMESPACE=$(NAMESPACE) BINDING_VERSION=$(BINDING_VERSION) BASE_VERSION=$(BASE_VERSION) \\\n\tTEMPLATE_OUTPUT_FILENAME=\"k8s_prefixSelenium_enableTracing_secureServer_externalCerts_nodePort_autoScaling_scaledObject_existingKEDA_subPath.yaml\" \\\n\t./tests/charts/make/chart_test.sh DeploymentAutoscaling\n\nchart_test_autoscaling_job_https:\n\tPLATFORMS=$(PLATFORMS) TEST_EXISTING_KEDA=true TEST_CHROMIUM=true RELEASE_NAME=selenium CHART_ENABLE_BASIC_AUTH=true SELENIUM_GRID_MONITORING=false TEST_PATCHED_KEDA=$(TEST_PATCHED_KEDA) TEST_MULTIPLE_PLATFORMS=true \\\n\tSECURE_CONNECTION_SERVER=true SELENIUM_GRID_PROTOCOL=https SELENIUM_GRID_PORT=443 SUB_PATH=/ \\\n\tMAX_SESSIONS_FIREFOX=1 MAX_SESSIONS_EDGE=2 MAX_SESSIONS_CHROME=3 TEST_NAME_OVERRIDE=true \\\n\tVERSION=$(TAG_VERSION) VIDEO_TAG=$(FFMPEG_TAG_VERSION)-$(BUILD_DATE) KEDA_BASED_NAME=$(KEDA_BASED_NAME) KEDA_BASED_TAG=$(KEDA_BASED_TAG) NAMESPACE=$(NAMESPACE) BINDING_VERSION=$(BINDING_VERSION) BASE_VERSION=$(BASE_VERSION) EXTERNAL_UPLOADER_CONFIG=true \\\n\tTEMPLATE_OUTPUT_FILENAME=\"k8s_prefixSelenium_basicAuth_secureServer_autoScaling_scaledJob_existingKEDA.yaml\" \\\n\t./tests/charts/make/chart_test.sh JobAutoscaling\n\nchart_test_autoscaling_job_hostname:\n\tPLATFORMS=$(PLATFORMS) CHART_ENABLE_TRACING=true CHART_ENABLE_BASIC_AUTH=true BASIC_AUTH_EMBEDDED_URL=true TEST_PATCHED_KEDA=$(TEST_PATCHED_KEDA) TEST_MULTIPLE_PLATFORMS=true \\\n\tTRACING_EXPORTER_ENDPOINT=$(TRACING_EXPORTER_ENDPOINT) \\\n\tSECURE_INGRESS_ONLY_DEFAULT=true SECURE_USE_EXTERNAL_CERT=true SELENIUM_GRID_PROTOCOL=https SELENIUM_GRID_HOST=$$(hostname -I | cut -d' ' -f1) SELENIUM_GRID_PORT=443 \\\n\tVERSION=$(TAG_VERSION) VIDEO_TAG=$(FFMPEG_TAG_VERSION)-$(BUILD_DATE) KEDA_BASED_NAME=$(KEDA_BASED_NAME) KEDA_BASED_TAG=$(KEDA_BASED_TAG) NAMESPACE=$(NAMESPACE) BINDING_VERSION=$(BINDING_VERSION) BASE_VERSION=$(BASE_VERSION) \\\n\tTEMPLATE_OUTPUT_FILENAME=\"k8s_enableTracing_basicAuth_secureIngress_externalCerts_ingressPublicIP_autoScaling_originKEDA_scaledJob_subPath.yaml\" \\\n\t./tests/charts/make/chart_test.sh JobAutoscaling\n\nchart_test_autoscaling_job_relay:\n\tPLATFORMS=$(PLATFORMS) CHART_ENABLE_TRACING=true CHART_ENABLE_BASIC_AUTH=true SELENIUM_GRID_MONITORING=false TEST_PATCHED_KEDA=$(TEST_PATCHED_KEDA) \\\n\tTEST_MULTIPLE_PLATFORMS=true TEST_MULTIPLE_PLATFORMS_RELAY=false CLEAR_POD_HISTORY=true TEST_SITE=the-internet.herokuapp.com \\\n\tSECURE_INGRESS_ONLY_DEFAULT=true SECURE_USE_EXTERNAL_CERT=true SELENIUM_GRID_PROTOCOL=https SELENIUM_GRID_HOST=$$(hostname -I | cut -d' ' -f1) SELENIUM_GRID_PORT=443 \\\n\tSET_MAX_REPLICAS=3 SET_SESSION_REQUEST_TIMEOUT=600 \\\n\tVERSION=$(TAG_VERSION) VIDEO_TAG=$(FFMPEG_TAG_VERSION)-$(BUILD_DATE) KEDA_BASED_NAME=$(KEDA_BASED_NAME) KEDA_BASED_TAG=$(KEDA_BASED_TAG) NAMESPACE=$(NAMESPACE) BINDING_VERSION=$(BINDING_VERSION) BASE_VERSION=$(BASE_VERSION) \\\n\tTEMPLATE_OUTPUT_FILENAME=\"k8s_enableTracing_basicAuth_secureIngress_externalCerts_ingressPublicIP_autoScaling_relay_node_scaledJob_subPath.yaml\" \\\n\t./tests/charts/make/chart_test.sh JobAutoscaling\n\nchart_test_autoscaling_job_multiple_versions_without_explicit:\n\tTEST_MULTIPLE_VERSIONS=true TEST_MULTIPLE_VERSIONS_EXPLICIT=false make chart_test_autoscaling_job\n\nchart_test_autoscaling_job_without_multiple_versions:\n\tTEST_MULTIPLE_VERSIONS=false make chart_test_autoscaling_job\n\nchart_test_autoscaling_job:\n\tPLATFORMS=$(PLATFORMS) TEST_EXISTING_KEDA=true RELEASE_NAME=selenium CHART_ENABLE_TRACING=true CHART_FULL_DISTRIBUTED_MODE=true SELENIUM_GRID_MONITORING=false TEST_PATCHED_KEDA=$(TEST_PATCHED_KEDA) \\\n\tCLEAR_POD_HISTORY=true TEST_MULTIPLE_VERSIONS=$(or $(TEST_MULTIPLE_VERSIONS), \"true\") TEST_MULTIPLE_VERSIONS_EXPLICIT=$(or $(TEST_MULTIPLE_VERSIONS_EXPLICIT), \"true\") \\\n\tSECURE_INGRESS_ONLY_CONFIG_INLINE=true SECURE_USE_EXTERNAL_CERT=true CHART_ENABLE_INGRESS_HOSTNAME=true SELENIUM_GRID_PROTOCOL=https SELENIUM_GRID_HOST=selenium-grid.prod SUB_PATH=/ SELENIUM_GRID_PORT=443 \\\n\tVERSION=$(TAG_VERSION) VIDEO_TAG=$(FFMPEG_TAG_VERSION)-$(BUILD_DATE) KEDA_BASED_NAME=$(KEDA_BASED_NAME) KEDA_BASED_TAG=$(KEDA_BASED_TAG) NAMESPACE=$(NAMESPACE) BINDING_VERSION=$(BINDING_VERSION) BASE_VERSION=$(BASE_VERSION) \\\n\tTEMPLATE_OUTPUT_FILENAME=\"k8s_fullDistributed_secureIngress_externalCerts_ingressHostName_ingressTLSInline_autoScaling_scaledJob_existingKEDA_prefixSelenium_nodeChromium_enableTracing.yaml\" \\\n\t./tests/charts/make/chart_test.sh JobAutoscaling\n\nchart_test_autoscaling_playwright_connect_grid:\n\tPLATFORMS=$(PLATFORMS) CHART_FULL_DISTRIBUTED_MODE=true CHART_ENABLE_BASIC_AUTH=true TEST_EXTERNAL_DATASTORE=redis MATRIX_TESTS=CDPTests TEST_PATCHED_KEDA=$(TEST_PATCHED_KEDA) TEST_MULTIPLE_PLATFORMS=true TEST_VIDEO_RECORDER_SIDECAR=true \\\n\tBASIC_AUTH_USERNAME=docker-selenium BASIC_AUTH_PASSWORD=2NMI4jdBi6k7bENoeUfV25295VvzwAE9chM24a+2VL95uOHozo \\\n\tSECURE_INGRESS_ONLY_DEFAULT=true SECURE_USE_EXTERNAL_CERT=true SELENIUM_GRID_PROTOCOL=https SELENIUM_GRID_HOST=$$(hostname -I | cut -d' ' -f1) SELENIUM_GRID_PORT=443 \\\n\tVERSION=$(TAG_VERSION) VIDEO_TAG=$(FFMPEG_TAG_VERSION)-$(BUILD_DATE) KEDA_BASED_NAME=$(KEDA_BASED_NAME) KEDA_BASED_TAG=$(KEDA_BASED_TAG) NAMESPACE=$(NAMESPACE) BINDING_VERSION=$(BINDING_VERSION) BASE_VERSION=$(BASE_VERSION) \\\n\tTEMPLATE_OUTPUT_FILENAME=\"k8s_playwright_connect_grid_basicAuth_secureIngress_ingressPublicIP_autoScaling_patchKEDA.yaml\" \\\n\t./tests/charts/make/chart_test.sh JobAutoscaling\n\ntest_k8s_autoscaling_job_count_strategy_default_in_chaos:\n\tMATRIX_TESTS=AutoScalingTestsScaleChaos \\\n\tmake test_k8s_autoscaling_job_count_strategy_default\n\ntest_k8s_autoscaling_job_count_strategy_default_with_node_max_sessions:\n\tTEST_NODE_MAX_SESSIONS=3 \\\n\tmake test_k8s_autoscaling_job_count_strategy_default\n\ntest_k8s_autoscaling_job_count_strategy_default:\n\tMATRIX_TESTS=$(or $(MATRIX_TESTS), \"AutoscalingTestsScaleUp\") SCALING_STRATEGY=$(or $(SCALING_STRATEGY), \"default\") TEST_MULTIPLE_PLATFORMS=true \\\n\tPLATFORMS=$(PLATFORMS) RELEASE_NAME=selenium TEST_PATCHED_KEDA=$(TEST_PATCHED_KEDA) SELENIUM_GRID_PROTOCOL=http SELENIUM_GRID_HOST=localhost SELENIUM_GRID_PORT=80 \\\n\tSELENIUM_GRID_MONITORING=false CLEAR_POD_HISTORY=true SET_MAX_REPLICAS=100 ENABLE_VIDEO_RECORDER=false \\\n\tVERSION=$(TAG_VERSION) VIDEO_TAG=$(FFMPEG_TAG_VERSION)-$(BUILD_DATE) KEDA_BASED_NAME=$(KEDA_BASED_NAME) KEDA_BASED_TAG=$(KEDA_BASED_TAG) NAMESPACE=$(NAMESPACE) BINDING_VERSION=$(BINDING_VERSION) BASE_VERSION=$(BASE_VERSION) \\\n\t./tests/charts/make/chart_test.sh JobAutoscaling\n\ntest_k8s_autoscaling_deployment_count_in_chaos:\n\tMATRIX_TESTS=AutoScalingTestsScaleChaos \\\n\tmake test_k8s_autoscaling_deployment_count\n\ntest_k8s_autoscaling_deployment_count_with_node_max_sessions:\n\tTEST_NODE_MAX_SESSIONS=3 \\\n\tmake test_k8s_autoscaling_deployment_count\n\ntest_k8s_autoscaling_deployment_count:\n\tMATRIX_TESTS=$(or $(MATRIX_TESTS), \"AutoscalingTestsScaleUp\") TEST_MULTIPLE_PLATFORMS=true \\\n\tPLATFORMS=$(PLATFORMS) RELEASE_NAME=selenium TEST_PATCHED_KEDA=$(TEST_PATCHED_KEDA) SELENIUM_GRID_PROTOCOL=http SELENIUM_GRID_HOST=localhost SELENIUM_GRID_PORT=80 \\\n\tSELENIUM_GRID_MONITORING=false CLEAR_POD_HISTORY=true SET_MAX_REPLICAS=100 ENABLE_VIDEO_RECORDER=false \\\n\tVERSION=$(TAG_VERSION) VIDEO_TAG=$(FFMPEG_TAG_VERSION)-$(BUILD_DATE) KEDA_BASED_NAME=$(KEDA_BASED_NAME) KEDA_BASED_TAG=$(KEDA_BASED_TAG) NAMESPACE=$(NAMESPACE) BINDING_VERSION=$(BINDING_VERSION) BASE_VERSION=$(BASE_VERSION) \\\n\t./tests/charts/make/chart_test.sh DeploymentAutoscaling\n\nchart_test_delete:\n\thelm del test -n selenium || true\n\thelm del selenium -n selenium || true\n\thelm del keda -n keda || true\n\n.PHONY: \\\n\tall \\\n\tbase \\\n\tbuild \\\n\tci \\\n\tchrome \\\n\tchromium \\\n\tedge \\\n\tfirefox \\\n\tdocker \\\n\tkubernetes \\\n\thub \\\n\tdistributor \\\n\trouter \\\n\tsessions \\\n\tsessionqueue \\\n\tevent_bus \\\n\tnode_base \\\n\trelease \\\n\tstandalone_chrome \\\n\tstandalone_chromium \\\n\tstandalone_edge \\\n\tstandalone_firefox \\\n\tstandalone_docker \\\n\tstandalone_kubernetes \\\n\ttag_latest \\\n\ttag_and_push_browser_images \\\n\ttest \\\n\tvideo"
  },
  {
    "path": "NodeAllBrowsers/Dockerfile",
    "content": "ARG NAMESPACE=selenium\nARG VERSION=latest\nARG BASE\nFROM ${NAMESPACE}/${BASE}:${VERSION}\nARG AUTHORS\nLABEL authors=${AUTHORS}\n\nUSER root\n\nCOPY fluxbox-menu-browser-amd64 fluxbox-menu-browser-aarch64 /etc/X11/fluxbox/\n\nRUN ARCH=$(if [ \"$(dpkg --print-architecture)\" = \"arm64\" ]; then echo \"aarch64\"; else echo \"$(dpkg --print-architecture)\"; fi) \\\n    && mv /etc/X11/fluxbox/fluxbox-menu-browser-${ARCH} /etc/X11/fluxbox/fluxbox-menu-browser\n\nUSER ${SEL_UID}\n\nENV SE_OTEL_SERVICE_NAME=\"selenium-node\""
  },
  {
    "path": "NodeAllBrowsers/fluxbox-menu-browser-aarch64",
    "content": "[submenu] (Web Browsing) {}\n   [exec] (Chromium) {/usr/bin/chromium} <>\n   [exec] (Mozilla Firefox) {/usr/bin/firefox} <>\n[end]"
  },
  {
    "path": "NodeAllBrowsers/fluxbox-menu-browser-amd64",
    "content": "[submenu] (Web Browsing) {}\n   [exec] (Google Chrome) {/usr/bin/google-chrome} <>\n   [exec] (Chromium) {/usr/bin/chromium} <>\n   [exec] (Mozilla Firefox) {/usr/bin/firefox} <>\n   [exec] (Microsoft Edge) {/usr/bin/microsoft-edge} <>\n[end]"
  },
  {
    "path": "NodeBase/Dockerfile",
    "content": "ARG NAMESPACE=selenium\nARG VERSION=latest\nARG BASE=base\nFROM ${NAMESPACE}/${BASE}:${VERSION}\nARG AUTHORS\nLABEL authors=${AUTHORS}\n\n# Inputs: heads, tags\nARG NOVNC_SOURCE=\"tags\"\n# Inputs: master, \"v1.4.0\"\nARG NOVNC_VERSION=\"v1.6.0\"\n# Inputs: heads, tags\nARG WEBSOCKIFY_SOURCE=\"tags\"\n# Inputs: master, \"v0.11.0\"\nARG WEBSOCKIFY_VERSION=\"v0.13.0\"\nARG LANG_WHICH=en\nARG LANG_WHERE=US\nARG ENCODING=UTF-8\nARG LANGUAGE=${LANG_WHICH}_${LANG_WHERE}.${ENCODING}\n\nUSER root\n\n#==============================\n# Locale and encoding settings\n#==============================\nENV LANG_WHICH=${LANG_WHICH} \\\n    LANG_WHERE=${LANG_WHERE} \\\n    ENCODING=${ENCODING} \\\n    LANGUAGE=${LANGUAGE} \\\n    LANG=${LANGUAGE} \\\n#============================================\n# Shared cleanup script environment variables\n#============================================\n    SE_ENABLE_BROWSER_LEFTOVERS_CLEANUP=\"false\" \\\n    SE_BROWSER_LEFTOVERS_INTERVAL_SECS=\"3600\" \\\n    SE_BROWSER_LEFTOVERS_PROCESSES_SECS=\"7200\" \\\n    SE_BROWSER_LEFTOVERS_TEMPFILES_DAYS=\"1\" \\\n#========================\n# Selenium Configuration\n#========================\n    SE_EVENT_BUS_PUBLISH_PORT=\"4442\" \\\n    SE_EVENT_BUS_SUBSCRIBE_PORT=\"4443\" \\\n    # Drain the Node after N sessions (a value higher than zero enables the feature)\n    SE_DRAIN_AFTER_SESSION_COUNT=\"0\" \\\n    SE_NODE_DOWN_FAILURE_THRESHOLD=\"0\" \\\n    SE_NODE_MAX_SESSIONS=\"1\" \\\n    SE_NODE_SESSION_TIMEOUT=\"300\" \\\n    SE_NODE_OVERRIDE_MAX_SESSIONS=\"false\" \\\n    SE_NODE_HEARTBEAT_PERIOD=\"15\" \\\n    SE_NODE_REGISTER_PERIOD=\"120\" \\\n    SE_NODE_REGISTER_CYCLE=\"10\" \\\n    SE_NODE_REGISTER_SHUTDOWN_ON_FAILURE=\"true\" \\\n    SE_NODE_CONNECTION_LIMIT_PER_SESSION=\"20\" \\\n    SE_OTEL_SERVICE_NAME=\"selenium-node\" \\\n    SE_NODE_RELAY_ONLY=\"true\" \\\n    # Setting Selenium Manager to work offline\n    SE_OFFLINE=\"true\" \\\n    SE_NODE_BROWSER_VERSION=\"stable\" \\\n    SE_NODE_PLATFORM_NAME=\"Linux\" \\\n    SE_NODE_DELETE_SESSION_ON_UI=\"true\" \\\n#============================\n# Some configuration options\n#============================\n    SE_RECORD_VIDEO=false \\\n    SE_VIDEO_FILE_NAME=auto \\\n    SE_VIDEO_EVENT_DRIVEN=\"true\" \\\n    DISPLAY_CONTAINER_NAME=\"localhost\" \\\n    SE_SCREEN_WIDTH=\"1920\" \\\n    SE_SCREEN_HEIGHT=\"1080\" \\\n    SE_SCREEN_DEPTH=\"24\" \\\n    SE_SCREEN_DPI=\"96\" \\\n    SE_START_XVFB=\"true\" \\\n    SE_START_VNC=\"true\" \\\n    SE_START_NO_VNC=\"true\" \\\n    SE_NO_VNC_PORT=\"7900\" \\\n    SE_VNC_PORT=\"5900\" \\\n    DISPLAY=\":99.0\" \\\n    DISPLAY_NUM=\"99\" \\\n    GENERATE_CONFIG=\"true\" \\\n    # Following line fixes https://github.com/SeleniumHQ/docker-selenium/issues/87\n    DBUS_SESSION_BUS_ADDRESS=\"/dev/null\"\n\nRUN apt-get update -qqy \\\n  && apt-get -qqy --no-install-recommends install \\\n#==============================\n# Locale and encoding settings\n#==============================\n    locales \\\n    libfontconfig \\\n    libfreetype6 \\\n    fonts-wqy-zenhei \\\n    fonts-noto \\\n    fonts-noto-core \\\n    fonts-noto-color-emoji \\\n    fonts-noto-cjk \\\n    fonts-thai-tlwg-ttf \\\n#==============\n# Xvfb\n#==============\n    xvfb \\\n    libxcb1 \\\n    xauth \\\n    pulseaudio \\\n#=====\n# VNC\n#=====\n    x11vnc x11-utils \\\n#=========\n# Fluxbox (a fast, lightweight and responsive window manager)\n#=========\n    fluxbox eterm hsetroot feh \\\n#==============================\n# shared system certificate support\n#==============================\n    p11-kit \\\n    p11-kit-modules \\\n  && locale-gen ${LANGUAGE} \\\n  && dpkg-reconfigure --frontend noninteractive locales \\\n  # For Fluxbox style, use fonts-wqy-zenhei which has a large international language coverage\n  && sed -i 's/Ubuntu-/WenQuanYi Zen Hei-/g' /usr/share/fluxbox/styles/ubuntu-light \\\n  && apt-get -qyy autoremove \\\n  && rm -rf /var/lib/apt/lists/* /var/cache/apt/* \\\n  && apt-get -qyy clean\n########################################\n# noVNC exposes VNC through a web page #\n########################################\nRUN --mount=type=secret,id=SEL_PASSWD \\\n  wget -nv -O noVNC.zip \\\n       \"https://github.com/novnc/noVNC/archive/refs/${NOVNC_SOURCE}/${NOVNC_VERSION}.zip\" \\\n  && unzip -x noVNC.zip \\\n  && mv noVNC-${NOVNC_VERSION#v} /opt/bin/noVNC \\\n  && cp /opt/bin/noVNC/vnc.html /opt/bin/noVNC/index.html \\\n  && rm noVNC.zip \\\n  && wget -nv -O websockify.zip \\\n      \"https://github.com/novnc/websockify/archive/refs/${WEBSOCKIFY_SOURCE}/${WEBSOCKIFY_VERSION}.zip\" \\\n  && unzip -x websockify.zip \\\n  && rm websockify.zip \\\n  # Setup dependencies\n  && cd websockify-${WEBSOCKIFY_VERSION#v} \\\n  && $VENV_PATH/bin/python3 -m pip install --break-system-packages . \\\n  # Move websockify and run to the noVNC directory\n  && mv websockify /opt/bin/noVNC/utils/websockify \\\n  && mv run /opt/bin/noVNC/utils/websockify \\\n  && chmod +x /opt/bin/noVNC/utils/websockify/run \\\n  # Cleanup unnecessary files\n  && cd .. \\\n  && rm -rf websockify-${WEBSOCKIFY_VERSION#v} \\\n#========================================================================\n# Run this command for executable file permissions for /dev/shm when    #\n# this is a \"child\" container running in Docker Desktop and WSL2 distro #\n#========================================================================\n  && chmod +x /dev/shm \\\n# Creating base directory for Xvfb\n  && mkdir -p /tmp/.X11-unix \\\n#==============================\n# Generating the VNC password using initial password in Base image\n# Changing ownership to ${SEL_USER}, so the service can be started\n#==============================\n  && x11vnc -storepasswd $(cat /run/secrets/SEL_PASSWD) ${HOME}/.vnc/passwd \\\n  && chown -R \"${SEL_USER}:${SEL_GROUP}\" ${HOME}/.vnc \\\n  && chmod -R 775 ${HOME} /tmp/.X11-unix \\\n  && chgrp -R 0 ${HOME} /tmp/.X11-unix \\\n  && chmod -R g=u ${HOME} /tmp/.X11-unix\n\n# Copying configuration script generator\nCOPY --chown=\"${SEL_UID}:${SEL_GID}\" start-selenium-node.sh \\\n      start-xvfb.sh \\\n      start-vnc.sh \\\n      start-novnc.sh \\\n      generate_config generate_relay_config json_merge.py /opt/bin/\nRUN chmod +x /opt/bin/*.sh /opt/bin/*.py /opt/bin/generate_*\n\n# Selenium Grid logo as wallpaper for Fluxbox\nCOPY selenium_grid_logo.png /usr/share/images/fluxbox/ubuntu-light.png\nCOPY fluxbox-menu /etc/X11/fluxbox/\n\n# Supervisor configuration file\nCOPY selenium.conf /etc/supervisor/conf.d/\n\n#====================================================\n# Run the following commands as non-privileged user #\n#====================================================\nUSER ${SEL_UID}\n\nEXPOSE 5900\n"
  },
  {
    "path": "NodeBase/fluxbox-menu",
    "content": "# This is an automatically generated file.\n# Please see <file:/usr/share/doc/menu/README> for information.\n\n# to use your own menu, copy this to ~/.fluxbox/menu, then edit\n# ~/.fluxbox/init and change the session.menuFile path to ~/.fluxbox/menu\n\n[begin] (Fluxbox)\n\n# Automatically generated file. Do not edit (see /usr/share/doc/menu/html/index.html)\n\n   [submenu] (Applications) {}\n      [submenu] (Network) {}\n         [include] (/etc/X11/fluxbox/fluxbox-menu-browser)\n      [end]\n      [submenu] (Shells) {}\n         [exec] (Terminal) { xterm} <>\n         [exec] (Bash) { x-terminal-emulator -T \"Bash\" -e /bin/bash --login} <>\n         [exec] (Dash) { x-terminal-emulator -T \"Dash\" -e /bin/dash -i} <>\n         [exec] (Sh) { x-terminal-emulator -T \"Sh\" -e /bin/sh --login} <>\n      [end]\n      [submenu] (System) {}\n         [submenu] (Administration) {}\n            [exec] (Editres) {editres} <>\n            [exec] (Xfontsel) {xfontsel} <>\n            [exec] (Xkill) {xkill} <>\n         [end]\n         [submenu] (Monitoring) {}\n            [exec] (Xev) {x-terminal-emulator -e xev} <>\n         [end]\n      [end]\n      [submenu] (Terminal Emulators) {}\n         [exec] (Eterm) {/usr/bin/Eterm} <>\n      [end]\n   [end]\n   [submenu] (Window Managers) {}\n      [restart] (FluxBox)  {/usr/bin/startfluxbox}\n   [end]\n\n   [config] (Configuration)\n   [submenu] (Styles) {}\n      [stylesdir] (/usr/share/fluxbox/styles)\n      [stylesdir] (~/.fluxbox/styles)\n   [end]\n   [workspaces] (Workspaces)\n   [reconfig] (Reconfigure)\n   [restart] (Restart)\n   [exit] (Exit)\n\n[end]\n"
  },
  {
    "path": "NodeBase/generate_config",
    "content": "#!/bin/bash\n\nfunction short_version() {\n\tlocal __long_version=$1\n\tlocal __version_split=(${__long_version//./ })\n\tlocal __major=${__version_split[0]}\n\tlocal __minor=${__version_split[1]}\n\techo \"${__major}.${__minor:0:1}\"\n}\n\n# A global array of environment variable prefixes supports different browser suffixes\nENV_PREFIXES=(\n\t\"SE_NODE_ENABLE_BROWSER\"\n\t\"SE_NODE_STEREOTYPE\"\n\t\"SE_NODE_BROWSER_NAME\"\n\t\"SE_NODE_BROWSER_VERSION\"\n\t\"SE_NODE_PLATFORM_NAME\"\n\t\"SE_BROWSER_BINARY_LOCATION\"\n\t\"SE_NODE_STEREOTYPE_EXTRA\"\n\t\"SE_NODE_MAX_SESSIONS\"\n)\n\nfunction backup_original_env_vars() {\n\techo \"Backing up original environment variables...\"\n\n\tfor prefix in \"${ENV_PREFIXES[@]}\"; do\n\t\tlocal backup_var=\"${prefix}_ORIGINAL\"\n\t\tlocal common_var=\"${prefix}\"\n\n\t\t# Backup original value if not already backed up\n\t\tif [[ -z \"${!backup_var}\" ]] && [[ -n \"${!common_var}\" ]]; then\n\t\t\t# Use printf -v to avoid eval and preserve quotes verbatim\n\t\t\tprintf -v \"$backup_var\" '%s' \"${!common_var}\"\n\t\t\techo \"Backed up original ${common_var}=${!common_var} to ${backup_var}\"\n\t\tfi\n\tdone\n}\n\nfunction restore_original_env_vars() {\n\techo \"Restoring original environment variables...\"\n\n\tfor prefix in \"${ENV_PREFIXES[@]}\"; do\n\t\tlocal backup_var=\"${prefix}_ORIGINAL\"\n\t\tlocal common_var=\"${prefix}\"\n\n\t\t# Restore original value if backup exists\n\t\tif [[ -n \"${!backup_var}\" ]]; then\n\t\t\tprintf -v \"$common_var\" '%s' \"${!backup_var}\"\n\t\t\techo \"Restored original ${backup_var}=${!backup_var} to ${common_var}\"\n\t\telse\n\t\t\t# Clear the variable if no backup exists\n\t\t\tprintf -v \"$common_var\" '%s' \"\"\n\t\t\techo \"Cleared ${common_var} (no original backup)\"\n\t\tfi\n\tdone\n}\n\nfunction assign_browser_specific_env_vars() {\n\tlocal browser_name=$1\n\n\t# Set browser-specific values or inherit original values\n\tfor prefix in \"${ENV_PREFIXES[@]}\"; do\n\t\tlocal browser_specific_var=\"${prefix}_${browser_name}\"\n\t\tlocal common_var=\"${prefix}\"\n\t\tlocal backup_var=\"${prefix}_ORIGINAL\"\n\n\t\t# Check if the browser-specific environment variable exists\n\t\tif [[ -n \"${!browser_specific_var}\" ]]; then\n\t\t\t# Assign the browser-specific value to the common variable, preserving quotes\n\t\t\tprintf -v \"$common_var\" '%s' \"${!browser_specific_var}\"\n\t\t\techo \"Assigned ${browser_specific_var}=${!browser_specific_var} to ${common_var}\"\n\t\telif [[ -n \"${!backup_var}\" ]]; then\n\t\t\t# Inherit original value if browser-specific value is not set\n\t\t\tprintf -v \"$common_var\" '%s' \"${!backup_var}\"\n\t\t\techo \"Inherited original ${backup_var}=${!backup_var} to ${common_var}\"\n\t\tfi\n\tdone\n}\n\nif [[ -z \"$CONFIG_FILE\" ]]; then\n\tFILENAME=\"/opt/selenium/config.toml\"\nelse\n\tFILENAME=\"$CONFIG_FILE\"\nfi\n\necho -n \"\" >\"$FILENAME\"\n\nif [[ -n \"${SE_EVENT_BUS_HOST}\" ]]; then\n\techo \"[events]\n    publish = \\\"tcp://${SE_EVENT_BUS_HOST}:${SE_EVENT_BUS_PUBLISH_PORT}\\\"\n    subscribe = \\\"tcp://${SE_EVENT_BUS_HOST}:${SE_EVENT_BUS_SUBSCRIBE_PORT}\\\"\n    \" >>\"$FILENAME\"\nfi\n\nif [[ -z \"${SE_NODE_HOST}\" ]] && [[ -z \"${SE_NODE_PORT}\" ]]; then\n\techo \"Configuring server...\"\nelse\n\techo \"[server]\" >>\"$FILENAME\"\nfi\n\nif [[ -z \"${SE_NODE_HOST}\" ]]; then\n\techo \"Setting up SE_NODE_HOST...\"\nelse\n\techo \"host = \\\"${SE_NODE_HOST}\\\"\" >>\"$FILENAME\"\nfi\n\nif [[ -z \"${SE_NODE_PORT}\" ]]; then\n\techo \"Setting up SE_NODE_PORT...\"\nelse\n\techo \"port = \\\"${SE_NODE_PORT}\\\"\" >>\"$FILENAME\"\nfi\n\nif [[ -n \"${SE_RELAX_CHECKS}\" ]]; then\n\techo \"[network]\" >>\"$FILENAME\"\n\techo \"relax-checks = ${SE_RELAX_CHECKS}\" >>\"$FILENAME\"\nfi\n\necho \"[node]\" >>\"$FILENAME\"\n# String, Url where the Grid can be reached\nif [[ -z \"${SE_NODE_GRID_URL}\" ]]; then\n\techo \"Setting up SE_NODE_GRID_URL...\"\nelse\n\techo \"grid-url = \\\"${SE_NODE_GRID_URL}\\\"\" >>\"$FILENAME\"\nfi\necho \"session-timeout = ${SE_NODE_SESSION_TIMEOUT}\" >>\"$FILENAME\"\necho \"override-max-sessions = ${SE_NODE_OVERRIDE_MAX_SESSIONS}\" >>\"$FILENAME\"\n# Validate SE_NODE_MAX_SESSIONS is a positive integer\nif [[ \"${SE_NODE_MAX_SESSIONS}\" =~ ^[0-9]+$ ]] && [[ \"${SE_NODE_MAX_SESSIONS}\" -gt 0 ]]; then\n\techo \"max-sessions = ${SE_NODE_MAX_SESSIONS}\" >>\"$FILENAME\"\nfi\necho \"detect-drivers = false\" >>\"$FILENAME\"\necho \"drain-after-session-count = ${DRAIN_AFTER_SESSION_COUNT:-$SE_DRAIN_AFTER_SESSION_COUNT}\" >>\"$FILENAME\"\necho \"\" >>\"$FILENAME\"\n\n# Check if /opt/selenium/browsers directory exists and iterate through browser folders\nif [ -d \"/opt/selenium/browsers\" ]; then\n\t# Backup original environment variables before processing browsers\n\tbackup_original_env_vars\n\n\tfor browser_dir in /opt/selenium/browsers/*/; do\n\t\tif [ -d \"$browser_dir\" ]; then\n\t\t\tbrowser_name=$(basename \"$browser_dir\" | tr '[:lower:]' '[:upper:]')\n\t\t\techo \"===Start generating stereotype for browser: ${browser_name}===\"\n\t\t\t# Assign environment variables with browser suffix to common variables\n\t\t\tassign_browser_specific_env_vars \"$browser_name\"\n\t\t\tif [ \"${SE_NODE_ENABLE_BROWSER}\" = \"false\" ]; then\n\t\t\t\techo \"===Skip generating stereotype for browser: ${browser_name}, SE_NODE_ENABLE_BROWSER_${browser_name} is set false===\"\n\t\t\t\trestore_original_env_vars\n\t\t\t\tcontinue\n\t\t\tfi\n\n\t\t\tif [ -f \"${browser_dir}name\" ]; then\n\t\t\t\tSE_NODE_BROWSER_NAME=$(cat \"${browser_dir}name\")\n\t\t\tfi\n\t\t\tif [ -f \"${browser_dir}version\" ] && [ \"${SE_NODE_BROWSER_VERSION,,}\" = \"stable\" ]; then\n\t\t\t\tSE_NODE_BROWSER_VERSION=$(short_version \"$(cat \"${browser_dir}version\")\")\n\t\t\tfi\n\t\t\tif [ -f \"${browser_dir}binary_location\" ]; then\n\t\t\t\tBINARY_LOCATION=$(cat \"${browser_dir}binary_location\")\n\t\t\t\tBINARY_LOCATION=$(echo \"$BINARY_LOCATION\" | SE_BROWSER_BINARY_LOCATION=${SE_BROWSER_BINARY_LOCATION} envsubst)\n\t\t\tfi\n\t\t\tSE_NODE_CONTAINER_NAME=\"${SE_NODE_CONTAINER_NAME:-$(hostname)}\"\n\n\t\t\t# 'browserName' is mandatory for default stereotype\n\t\t\tif [[ -z \"${SE_NODE_STEREOTYPE}\" ]] && [[ -n \"${SE_NODE_BROWSER_NAME}\" ]] && ([[ -z \"${SE_NODE_RELAY_URL}\" ]] || [[ \"${SE_NODE_RELAY_ONLY}\" = \"false\" ]]); then\n\t\t\t\tSE_NODE_STEREOTYPE=\"{\\\"browserName\\\": \\\"${SE_NODE_BROWSER_NAME}\\\", \\\"browserVersion\\\": \\\"${SE_NODE_BROWSER_VERSION}\\\", \\\"platformName\\\": \\\"${SE_NODE_PLATFORM_NAME}\\\", \\\"se:containerName\\\": \\\"${SE_NODE_CONTAINER_NAME}\\\", \\\"container:hostname\\\": \\\"$(hostname)\\\"}\"\n\t\t\t\tif [[ -n \"${BINARY_LOCATION}\" ]]; then\n\t\t\t\t\tSE_NODE_STEREOTYPE=\"$(python3 /opt/bin/json_merge.py \"${SE_NODE_STEREOTYPE}\" \"${BINARY_LOCATION}\")\"\n\t\t\t\tfi\n\t\t\telse\n\t\t\t\tSE_NODE_STEREOTYPE=\"${SE_NODE_STEREOTYPE}\"\n\t\t\tfi\n\t\t\tif [[ -n \"${SE_NODE_STEREOTYPE_EXTRA}\" ]]; then\n\t\t\t\techo \"Merging SE_NODE_STEREOTYPE_EXTRA=${SE_NODE_STEREOTYPE_EXTRA} to main stereotype for $browser_name\"\n\t\t\t\tSE_NODE_STEREOTYPE=\"$(python3 /opt/bin/json_merge.py \"${SE_NODE_STEREOTYPE}\" \"${SE_NODE_STEREOTYPE_EXTRA}\")\"\n\t\t\t\tif [[ $? -ne 0 ]]; then\n\t\t\t\t\techo \"Failed to merge SE_NODE_STEREOTYPE_EXTRA for $browser_name. Please check the format of the JSON string. Keep using main stereotype.\"\n\t\t\t\telse\n\t\t\t\t\techo \"Merged stereotype for $browser_name: ${SE_NODE_STEREOTYPE}\"\n\t\t\t\tfi\n\t\t\tfi\n\n\t\t\t# 'stereotype' setting is mandatory\n\t\t\tif [[ -n \"${SE_NODE_STEREOTYPE}\" ]]; then\n\t\t\t\techo \"[[node.driver-configuration]]\" >>\"$FILENAME\"\n\t\t\t\techo \"display-name = \\\"${SE_NODE_BROWSER_NAME}\\\"\" >>\"$FILENAME\"\n\t\t\t\techo \"stereotype = '${SE_NODE_STEREOTYPE}'\" >>\"$FILENAME\"\n\t\t\t\t# Validate SE_NODE_MAX_SESSIONS is a positive integer\n\t\t\t\tif [[ \"${SE_NODE_MAX_SESSIONS}\" =~ ^[0-9]+$ ]] && [[ \"${SE_NODE_MAX_SESSIONS}\" -gt 0 ]]; then\n\t\t\t\t\techo \"max-sessions = ${SE_NODE_MAX_SESSIONS}\" >>\"$FILENAME\"\n\t\t\t\tfi\n\t\t\t\techo \"\" >>\"$FILENAME\"\n\t\t\tfi\n\n\t\t\t# Restore original environment variables for next browser iteration\n\t\t\trestore_original_env_vars\n\t\t\techo \"===Stop generating stereotype for browser: ${browser_name}===\"\n\t\tfi\n\tdone\nfi\n"
  },
  {
    "path": "NodeBase/generate_relay_config",
    "content": "#!/bin/bash\n\nif [[ -z \"$CONFIG_FILE\" ]]; then\n\tFILENAME=\"/opt/selenium/config.toml\"\nelse\n\tFILENAME=\"$CONFIG_FILE\"\nfi\n\nif [[ -n \"${SE_NODE_RELAY_URL}\" ]]; then\n\techo \"[relay]\" >>\"$FILENAME\"\n\techo \"url = \\\"$(envsubst < <(echo ${SE_NODE_RELAY_URL}))\\\"\" >>\"$FILENAME\"\n\tif [[ -z \"${SE_NODE_RELAY_STATUS_ENDPOINT}\" ]]; then\n\t\techo \"status-endpoint = \\\"/status\\\"\" >>\"$FILENAME\"\n\telse\n\t\techo \"status-endpoint = \\\"${SE_NODE_RELAY_STATUS_ENDPOINT}\\\"\" >>\"$FILENAME\"\n\tfi\n\tif [[ -n \"${SE_NODE_RELAY_PROTOCOL_VERSION}\" ]]; then\n\t\techo \"protocol-version = \\\"${SE_NODE_RELAY_PROTOCOL_VERSION}\\\"\" >>\"$FILENAME\"\n\tfi\n\tif [[ -z \"${SE_NODE_RELAY_STEREOTYPE}\" ]]; then\n\t\tSE_NODE_RELAY_STEREOTYPE=\"{\\\"browserName\\\": \\\"${SE_NODE_RELAY_BROWSER_NAME:-${SE_NODE_BROWSER_NAME}}\\\", \\\"platformName\\\": \\\"${SE_NODE_RELAY_PLATFORM_NAME:-${SE_NODE_PLATFORM_NAME}}\\\"}\"\n\t\tif [[ -n \"${SE_NODE_RELAY_PLATFORM_VERSION}\" ]]; then\n\t\t\tSE_NODE_RELAY_STEREOTYPE=\"$(python3 /opt/bin/json_merge.py \"${SE_NODE_RELAY_STEREOTYPE}\" \"{\\\"appium:platformVersion\\\":\\\"${SE_NODE_RELAY_PLATFORM_VERSION}\\\"}\")\"\n\t\tfi\n\t\tBROWSER_VERSION=${SE_NODE_RELAY_BROWSER_VERSION:-${SE_NODE_BROWSER_VERSION}}\n\t\tif [[ -n \"${BROWSER_VERSION}\" ]] && [[ \"${BROWSER_VERSION}\" != \"stable\" ]]; then\n\t\t\tSE_NODE_RELAY_STEREOTYPE=\"$(python3 /opt/bin/json_merge.py \"${SE_NODE_RELAY_STEREOTYPE}\" \"{\\\"browserVersion\\\":\\\"${BROWSER_VERSION}\\\"}\")\"\n\t\tfi\n\t\tif [[ \"${SE_NODE_ENABLE_MANAGED_DOWNLOADS}\" = \"true\" ]]; then\n\t\t\tSE_NODE_RELAY_STEREOTYPE=\"$(python3 /opt/bin/json_merge.py \"${SE_NODE_RELAY_STEREOTYPE}\" \"{\\\"se:downloadsEnabled\\\": true}\")\"\n\t\tfi\n\telse\n\t\tSE_NODE_RELAY_STEREOTYPE=\"${SE_NODE_RELAY_STEREOTYPE}\"\n\tfi\n\tif [[ -n \"${SE_NODE_RELAY_STEREOTYPE_EXTRA}\" ]]; then\n\t\techo \"Merging SE_NODE_RELAY_STEREOTYPE_EXTRA=${SE_NODE_RELAY_STEREOTYPE_EXTRA} to main relay stereotype\"\n\t\tSE_NODE_RELAY_STEREOTYPE=\"$(python3 /opt/bin/json_merge.py \"${SE_NODE_RELAY_STEREOTYPE}\" \"${SE_NODE_RELAY_STEREOTYPE_EXTRA}\")\"\n\t\tif [[ $? -ne 0 ]]; then\n\t\t\techo \"Failed to merge SE_NODE_RELAY_STEREOTYPE_EXTRA. Please check the format of the JSON string. Keep using main relay stereotype.\"\n\t\telse\n\t\t\techo \"Merged relay stereotype: ${SE_NODE_RELAY_STEREOTYPE}\"\n\t\tfi\n\tfi\n\techo \"configs = ['${SE_NODE_MAX_SESSIONS:-${SE_NODE_RELAY_MAX_SESSIONS}}', '${SE_NODE_RELAY_STEREOTYPE}']\" >>\"$FILENAME\"\nfi\n"
  },
  {
    "path": "NodeBase/json_merge.py",
    "content": "import json\nimport sys\n\njson_str1 = sys.argv[1]\njson_str2 = sys.argv[2]\n\ntry:\n    # Parse JSON strings into dictionaries\n    dict1 = json.loads(json_str1)\n    dict2 = json.loads(json_str2)\n    # Merge dictionaries\n    merged_dict = {**dict1, **dict2}\n    # Convert merged dictionary back to JSON string\n    merged_json_str = json.dumps(merged_dict, separators=(',', ':'), ensure_ascii=True)\n    # Print the merged JSON string\n    print(merged_json_str)\nexcept:\n    # Print the first JSON string if an error occurs\n    print(json_str1)\n    sys.exit(1)\n"
  },
  {
    "path": "NodeBase/selenium.conf",
    "content": "; Documentation of this file format -> http://supervisord.org/configuration.html\n\n; Priority 0 - xvfb & fluxbox, 5 - x11vnc, 10 - noVNC, 15 - selenium-node\n\n[program:xvfb]\npriority=0\ncommand=/opt/bin/start-xvfb.sh\nautostart=%(ENV_SE_START_XVFB)s\nautorestart=%(ENV_SE_START_XVFB)s\nkillasgroup=true\n\n;Logs\nredirect_stderr=false\nstdout_logfile=/var/log/supervisor/xvfb-stdout.log\nstderr_logfile=/var/log/supervisor/xvfb-stderr.log\nstdout_logfile_maxbytes=50MB\nstderr_logfile_maxbytes=50MB\nstdout_logfile_backups=5\nstderr_logfile_backups=5\nstdout_capture_maxbytes=50MB\nstderr_capture_maxbytes=50MB\n\n[program:vnc]\npriority=5\ncommand=/opt/bin/start-vnc.sh\nautostart=%(ENV_SE_START_VNC)s\nautorestart=%(ENV_SE_START_VNC)s\nkillasgroup=true\n\n;Logs\nredirect_stderr=false\nstdout_logfile=/var/log/supervisor/vnc-stdout.log\nstderr_logfile=/var/log/supervisor/vnc-stderr.log\nstdout_logfile_maxbytes=50MB\nstderr_logfile_maxbytes=50MB\nstdout_logfile_backups=5\nstderr_logfile_backups=5\nstdout_capture_maxbytes=50MB\nstderr_capture_maxbytes=50MB\n\n[program:novnc]\npriority=10\ncommand=/opt/bin/start-novnc.sh\nautostart=%(ENV_SE_START_NO_VNC)s\nautorestart=%(ENV_SE_START_NO_VNC)s\nkillasgroup=true\n\n;Logs\nredirect_stderr=false\nstdout_logfile=/var/log/supervisor/novnc-stdout.log\nstderr_logfile=/var/log/supervisor/novnc-stderr.log\nstdout_logfile_maxbytes=50MB\nstderr_logfile_maxbytes=50MB\nstdout_logfile_backups=5\nstderr_logfile_backups=5\nstdout_capture_maxbytes=50MB\nstderr_capture_maxbytes=50MB\n\n[program:selenium-node]\npriority=15\ncommand=bash -c \"/opt/bin/start-selenium-node.sh; EXIT_CODE=$?; kill -s SIGINT `cat ${SE_SUPERVISORD_PID_FILE}`; exit $EXIT_CODE\"\nstopasgroup = true\nkillasgroup=true\nautostart=true\nautorestart=false\nstartsecs=0\nstartretries=0\n\n;Logs (all Hub activity redirected to stdout so it can be seen through \"docker logs\"\nredirect_stderr=true\nstdout_logfile=/dev/stdout\nstdout_logfile_maxbytes=0\n"
  },
  {
    "path": "NodeBase/start-novnc.sh",
    "content": "#!/usr/bin/env bash\n#\n# IMPORTANT: Change this file only in directory NodeBase!\n\nif [ \"${START_XVFB:-$SE_START_XVFB}\" = true ]; then\n  if [ \"${START_VNC:-$SE_START_VNC}\" = true ]; then\n    if [ \"${START_NO_VNC:-$SE_START_NO_VNC}\" = true ]; then\n\n      # Guard against unreasonably high nofile limits. See https://github.com/SeleniumHQ/docker-selenium/issues/2045\n      # Try to set a new limit if the current limit is too high, or the user explicitly specified a custom limit\n      TOO_HIGH_ULIMIT=100000\n      if [[ $(ulimit -n) -gt $TOO_HIGH_ULIMIT || ! -z \"${SE_VNC_ULIMIT}\" ]]; then\n        NEW_ULIMIT=${SE_VNC_ULIMIT:-${TOO_HIGH_ULIMIT}}\n        echo \"Trying to update the open file descriptor limit from $(ulimit -n) to ${NEW_ULIMIT}.\"\n        ulimit -n ${NEW_ULIMIT}\n        if [ $? -eq 0 ]; then\n          echo \"Successfully updated the open file descriptor limit.\"\n        else\n          echo \"The open file descriptor limit could not be updated.\"\n        fi\n      fi\n\n      /opt/bin/noVNC/utils/novnc_proxy --listen ${NO_VNC_PORT:-$SE_NO_VNC_PORT} --vnc localhost:${VNC_PORT:-$SE_VNC_PORT}\n    else\n      echo \"noVNC won't start because SE_START_NO_VNC is false.\"\n    fi\n  else\n    echo \"noVNC won't start because VNC is configured to not start.\"\n  fi\nelse\n  echo \"noVNC won't start because Xvfb is configured to not start.\"\nfi\n"
  },
  {
    "path": "NodeBase/start-selenium-node.sh",
    "content": "#!/bin/bash\n\n# Check if Chrome components update is enabled\nif [ \"${SE_UPDATE_CHROME_COMPONENTS}\" = \"true\" ] && [ -f /opt/bin/update-chrome-components.sh ]; then\n  echo \"Chrome components update enabled, checking for updates...\"\n  echo \"Note that after the container gets restarted, updated binaries will be lost unless you call the update script within the build container process.\"\n  /opt/bin/update-chrome-components.sh\nfi\n\n# Start the pulseaudio server\npulseaudio -D --exit-idle-time=-1\n\n# Load the virtual sink and set it as default\npacmd load-module module-virtual-sink sink_name=v1\npacmd set-default-sink v1\n\n# set the monitor of v1 sink to be the default source\npacmd set-default-source v1.monitor\n\nrm -f /tmp/.X*lock\n\n# set -e: exit asap if a command exits with a non-zero status\nset -e\n\nfunction append_se_opts() {\n  local option=\"${1}\"\n  local value=\"${2:-\"\"}\"\n  local log_message=\"${3:-true}\"\n  if [[ \"${SE_OPTS}\" != *\"${option}\"* ]]; then\n    if [ \"${log_message}\" = \"true\" ]; then\n      echo \"Appending Selenium option: ${option} ${value}\"\n    else\n      echo \"Appending Selenium option: ${option} $(mask ${value})\"\n    fi\n    SE_OPTS=\"${SE_OPTS} ${option}\"\n    if [ ! -z \"${value}\" ]; then\n      SE_OPTS=\"${SE_OPTS} ${value}\"\n    fi\n  else\n    echo \"Selenium option: ${option} already set in env variable SE_OPTS. Ignore new option: ${option} ${value}\"\n  fi\n}\n\nif [ ! -z \"$SE_OPTS\" ]; then\n  echo \"Appending Selenium options: ${SE_OPTS}\"\nfi\n\nif [[ -z \"${SE_EVENT_BUS_HOST}\" ]]; then\n  echo \"SE_EVENT_BUS_HOST not set, exiting!\" 1>&2\n  exit 1\nfi\n\nif [[ -z \"${SE_EVENT_BUS_PUBLISH_PORT}\" ]]; then\n  echo \"SE_EVENT_BUS_PUBLISH_PORT not set, exiting!\" 1>&2\n  exit 1\nfi\n\nif [[ -z \"${SE_EVENT_BUS_SUBSCRIBE_PORT}\" ]]; then\n  echo \"SE_EVENT_BUS_SUBSCRIBE_PORT not set, exiting!\" 1>&2\n  exit 1\nfi\n\nif [ ! -z \"$SE_NODE_ENABLE_MANAGED_DOWNLOADS\" ]; then\n  append_se_opts \"--enable-managed-downloads\" \"${SE_NODE_ENABLE_MANAGED_DOWNLOADS}\"\nfi\n\nif [ ! -z \"$SE_NODE_ENABLE_CDP\" ]; then\n  append_se_opts \"--enable-cdp\" \"${SE_NODE_ENABLE_CDP}\"\nfi\n\nif [ ! -z \"$SE_NODE_REGISTER_PERIOD\" ]; then\n  append_se_opts \"--register-period\" \"${SE_NODE_REGISTER_PERIOD}\"\nfi\n\nif [ ! -z \"$SE_NODE_REGISTER_CYCLE\" ]; then\n  append_se_opts \"--register-cycle\" \"${SE_NODE_REGISTER_CYCLE}\"\nfi\n\nif [ \"$SE_NODE_REGISTER_SHUTDOWN_ON_FAILURE\" = \"true\" ]; then\n  append_se_opts \"--register-shutdown-on-failure\"\nfi\n\nif [ \"$SE_NODE_DELETE_SESSION_ON_UI\" = \"true\" ]; then\n  append_se_opts \"--delete-session-on-ui\" \"true\"\nfi\n\nif [ ! -z \"$SE_NODE_HEARTBEAT_PERIOD\" ]; then\n  append_se_opts \"--heartbeat-period\" \"${SE_NODE_HEARTBEAT_PERIOD}\"\nfi\n\nif [ ! -z \"$SE_NODE_DOWN_FAILURE_THRESHOLD\" ]; then\n  append_se_opts \"--node-down-failure-threshold\" \"${SE_NODE_DOWN_FAILURE_THRESHOLD}\"\nfi\n\nif [ ! -z \"$SE_LOG_LEVEL\" ]; then\n  append_se_opts \"--log-level\" \"${SE_LOG_LEVEL}\"\nfi\n\nif [ ! -z \"$SE_HTTP_LOGS\" ]; then\n  append_se_opts \"--http-logs\" \"${SE_HTTP_LOGS}\"\nfi\n\nif [ ! -z \"$SE_STRUCTURED_LOGS\" ]; then\n  append_se_opts \"--structured-logs\" \"${SE_STRUCTURED_LOGS}\"\nfi\n\nif [ ! -z \"$SE_PLAIN_LOGS\" ]; then\n  append_se_opts \"--plain-logs\" \"${SE_PLAIN_LOGS}\"\nfi\n\nif [ ! -z \"$SE_EXTERNAL_URL\" ]; then\n  append_se_opts \"--external-url\" \"${SE_EXTERNAL_URL}\"\nfi\n\nif [ \"${SE_ENABLE_TLS}\" = \"true\" ]; then\n  # Configure truststore for the server\n  if [ ! -z \"$SE_JAVA_SSL_TRUST_STORE\" ]; then\n    echo \"Appending Java options: -Djavax.net.ssl.trustStore=${SE_JAVA_SSL_TRUST_STORE}\"\n    SE_JAVA_OPTS=\"$SE_JAVA_OPTS -Djavax.net.ssl.trustStore=${SE_JAVA_SSL_TRUST_STORE}\"\n  fi\n  if [ -f \"${SE_JAVA_SSL_TRUST_STORE_PASSWORD}\" ]; then\n    echo \"Getting Truststore password from ${SE_JAVA_SSL_TRUST_STORE_PASSWORD} to set Java options: -Djavax.net.ssl.trustStorePassword\"\n    SE_JAVA_SSL_TRUST_STORE_PASSWORD=\"$(cat ${SE_JAVA_SSL_TRUST_STORE_PASSWORD})\"\n  fi\n  if [ ! -z \"${SE_JAVA_SSL_TRUST_STORE_PASSWORD}\" ]; then\n    echo \"Appending Java options: -Djavax.net.ssl.trustStorePassword=$(mask ${SE_JAVA_SSL_TRUST_STORE_PASSWORD})\"\n    SE_JAVA_OPTS=\"$SE_JAVA_OPTS -Djavax.net.ssl.trustStorePassword=${SE_JAVA_SSL_TRUST_STORE_PASSWORD}\"\n  fi\n  echo \"Appending Java options: -Djdk.internal.httpclient.disableHostnameVerification=${SE_JAVA_DISABLE_HOSTNAME_VERIFICATION}\"\n  SE_JAVA_OPTS=\"$SE_JAVA_OPTS -Djdk.internal.httpclient.disableHostnameVerification=${SE_JAVA_DISABLE_HOSTNAME_VERIFICATION}\"\n  # Configure certificate and private key for component communication\n  if [ ! -z \"$SE_HTTPS_CERTIFICATE\" ]; then\n    append_se_opts \"--https-certificate\" \"${SE_HTTPS_CERTIFICATE}\"\n  fi\n  if [ ! -z \"$SE_HTTPS_PRIVATE_KEY\" ]; then\n    append_se_opts \"--https-private-key\" \"${SE_HTTPS_PRIVATE_KEY}\"\n  fi\nfi\n\nif [ ! -z \"$SE_REGISTRATION_SECRET\" ]; then\n  append_se_opts \"--registration-secret\" \"${SE_REGISTRATION_SECRET}\" \"false\"\nfi\n\nif [ \"$GENERATE_CONFIG\" = true ]; then\n  echo \"Generating Selenium Config\"\n  /opt/bin/generate_config\n  /opt/bin/generate_relay_config\nfi\n\nEXTRA_LIBS=\"\"\nif [ -n \"${SE_EXTRA_LIBS}\" ]; then\n  EXTRA_LIBS=\"--ext ${SE_EXTRA_LIBS}\"\nfi\n\nif [ \"${SE_ENABLE_TRACING}\" = \"true\" ] && [ -n \"${SE_OTEL_EXPORTER_ENDPOINT}\" ]; then\n  EXTERNAL_JARS=$(</external_jars/.classpath.txt)\n  if [ -n \"${EXTRA_LIBS}\" ] && [ -n \"${EXTERNAL_JARS}\" ]; then\n    EXTRA_LIBS=\"${EXTRA_LIBS}:${EXTERNAL_JARS}\"\n  elif [ -z \"${EXTRA_LIBS}\" ] && [ -n \"${EXTERNAL_JARS}\" ]; then\n    EXTRA_LIBS=\"--ext ${EXTERNAL_JARS}\"\n  fi\n  echo \"Tracing is enabled\"\n  if [ -n \"$SE_OTEL_SERVICE_NAME\" ]; then\n    SE_OTEL_JVM_ARGS=\"$SE_OTEL_JVM_ARGS -Dotel.resource.attributes=service.name=${SE_OTEL_SERVICE_NAME}${SE_OTEL_RESOURCE_ATTRIBUTES:+,${SE_OTEL_RESOURCE_ATTRIBUTES}}\"\n  fi\n  if [ -n \"$SE_OTEL_TRACES_EXPORTER\" ]; then\n    SE_OTEL_JVM_ARGS=\"$SE_OTEL_JVM_ARGS -Dotel.traces.exporter=${SE_OTEL_TRACES_EXPORTER}\"\n  fi\n  if [ -n \"$SE_OTEL_EXPORTER_ENDPOINT\" ]; then\n    SE_OTEL_JVM_ARGS=\"$SE_OTEL_JVM_ARGS -Dotel.exporter.otlp.endpoint=$(envsubst < <(echo ${SE_OTEL_EXPORTER_ENDPOINT}))\"\n  fi\n  if [ -n \"$SE_OTEL_JAVA_GLOBAL_AUTOCONFIGURE_ENABLED\" ]; then\n    SE_OTEL_JVM_ARGS=\"$SE_OTEL_JVM_ARGS -Dotel.java.global-autoconfigure.enabled=${SE_OTEL_JAVA_GLOBAL_AUTOCONFIGURE_ENABLED}\"\n  fi\n  if [ -n \"$SE_OTEL_JVM_ARGS\" ]; then\n    SE_JAVA_OPTS=\"$SE_JAVA_OPTS ${SE_OTEL_JVM_ARGS}\"\n  fi\nelse\n  append_se_opts \"--tracing\" \"false\"\n  SE_JAVA_OPTS=\"$SE_JAVA_OPTS -Dwebdriver.remote.enableTracing=false\"\n  echo \"Tracing is disabled\"\nfi\n\nif [ -n \"${EXTRA_LIBS}\" ]; then\n  echo \"Classpath will be enriched with these external jars : ${EXTRA_LIBS}\"\nfi\n\nif [ ! -z \"${SE_BIND_HOST}\" ]; then\n  append_se_opts \"--bind-host\" \"${SE_BIND_HOST}\"\nfi\n\nif [ ! -z \"${CONFIG_FILE}\" ]; then\n  append_se_opts \"--config\" \"${CONFIG_FILE}\"\nfi\n\necho \"Selenium Grid Node configuration: \"\ncat \"$CONFIG_FILE\"\necho \"Starting Selenium Grid Node...\"\n\nCHROME_DRIVER_PATH_PROPERTY=-Dwebdriver.chrome.driver=/usr/bin/chromedriver\nEDGE_DRIVER_PATH_PROPERTY=-Dwebdriver.edge.driver=/usr/bin/msedgedriver\nGECKO_DRIVER_PATH_PROPERTY=-Dwebdriver.gecko.driver=/usr/bin/geckodriver\n\nif [ -n \"${SE_JAVA_HTTPCLIENT_VERSION}\" ]; then\n  SE_JAVA_OPTS=\"$SE_JAVA_OPTS -Dwebdriver.httpclient.version=${SE_JAVA_HTTPCLIENT_VERSION}\"\nfi\n\nif [ -n \"${SE_JAVA_OPTS_DEFAULT}\" ]; then\n  SE_JAVA_OPTS=\"${SE_JAVA_OPTS_DEFAULT} $SE_JAVA_OPTS\"\nfi\n\nfunction handle_heap_dump() {\n  /opt/bin/handle_heap_dump.sh /opt/selenium/logs\n}\nif [ \"${SE_JAVA_HEAP_DUMP}\" = \"true\" ]; then\n  SE_JAVA_OPTS=\"$SE_JAVA_OPTS -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=/opt/selenium/logs\"\n  trap handle_heap_dump ERR SIGTERM SIGINT\nfi\n\nif [ -n \"${JAVA_OPTS}\" ]; then\n  SE_JAVA_OPTS=\"$SE_JAVA_OPTS ${JAVA_OPTS}\"\nfi\n\necho \"Using JAVA_OPTS: ${SE_JAVA_OPTS}\"\n\njava ${SE_JAVA_OPTS} \\\n  ${CHROME_DRIVER_PATH_PROPERTY} \\\n  ${EDGE_DRIVER_PATH_PROPERTY} \\\n  ${GECKO_DRIVER_PATH_PROPERTY} \\\n  -jar /opt/selenium/selenium-server.jar \\\n  ${EXTRA_LIBS} \\\n  node \\\n  ${SE_OPTS}\n"
  },
  {
    "path": "NodeBase/start-vnc.sh",
    "content": "#!/usr/bin/env bash\n#\n# IMPORTANT: Change this file only in directory NodeBase!\n\nif [ \"${START_XVFB:-$SE_START_XVFB}\" = true ]; then\n  if [ \"${START_VNC:-$SE_START_VNC}\" = true ]; then\n    # Centering wallpaper\n    for i in $(seq 1 10); do\n      sleep 0.5\n      echo \"Centering wallpaper\"\n      /usr/bin/fbsetbg -u Esetroot -c /usr/share/images/fluxbox/ubuntu-light.png\n      if [ $? -eq 0 ]; then\n        break\n      fi\n    done\n    VNC_NO_PASSWORD=${VNC_NO_PASSWORD:-$SE_VNC_NO_PASSWORD}\n    if [ \"${VNC_NO_PASSWORD}\" = \"true\" ] || [ \"${VNC_NO_PASSWORD}\" = \"1\" ]; then\n      echo \"Starting VNC server without password authentication\"\n      X11VNC_OPTS=\n    else\n      X11VNC_OPTS=-usepw\n    fi\n\n    VNC_VIEW_ONLY=${VNC_VIEW_ONLY:-$SE_VNC_VIEW_ONLY}\n    if [ \"${VNC_VIEW_ONLY}\" = \"true\" ] || [ \"${VNC_VIEW_ONLY}\" = \"1\" ]; then\n      echo \"Starting VNC server with viewonly option\"\n      X11VNC_OPTS=\"${X11VNC_OPTS} -viewonly\"\n    fi\n\n    VNC_PASSWORD=${VNC_PASSWORD:-$SE_VNC_PASSWORD}\n    if [ ! -z $VNC_PASSWORD ]; then\n      echo \"Starting VNC server with custom password\"\n      x11vnc -storepasswd ${VNC_PASSWORD} ${HOME}/.vnc/passwd\n    fi\n\n    for i in $(seq 1 10); do\n      sleep 1\n      xdpyinfo -display ${DISPLAY} >/dev/null 2>&1\n      if [ $? -eq 0 ]; then\n        break\n      fi\n      echo \"Waiting for Xvfb...\"\n    done\n\n    # Guard against unreasonably high nofile limits. See https://github.com/SeleniumHQ/docker-selenium/issues/2045\n    # Try to set a new limit if the current limit is too high, or the user explicitly specified a custom limit\n    TOO_HIGH_ULIMIT=100000\n    if [[ $(ulimit -n) -gt $TOO_HIGH_ULIMIT || ! -z \"${SE_VNC_ULIMIT}\" ]]; then\n      NEW_ULIMIT=${SE_VNC_ULIMIT:-${TOO_HIGH_ULIMIT}}\n      echo \"Trying to update the open file descriptor limit from $(ulimit -n) to ${NEW_ULIMIT}.\"\n      ulimit -n ${NEW_ULIMIT}\n      if [ $? -eq 0 ]; then\n        echo \"Successfully updated the open file descriptor limit.\"\n      else\n        echo \"The open file descriptor limit could not be updated.\"\n      fi\n    fi\n\n    x11vnc ${X11VNC_OPTS} -forever -shared -rfbport ${VNC_PORT:-$SE_VNC_PORT} -rfbportv6 ${VNC_PORT:-$SE_VNC_PORT} -display ${DISPLAY}\n  else\n    echo \"VNC won't start because SE_START_VNC is false.\"\n  fi\nelse\n  echo \"VNC won't start because Xvfb is configured to not start.\"\nfi\n"
  },
  {
    "path": "NodeBase/start-xvfb.sh",
    "content": "#!/usr/bin/env bash\n\nSCREEN_WIDTH=${SCREEN_WIDTH:-$SE_SCREEN_WIDTH}\nSCREEN_HEIGHT=${SCREEN_HEIGHT:-$SE_SCREEN_HEIGHT}\nSCREEN_DEPTH=${SCREEN_DEPTH:-$SE_SCREEN_DEPTH}\nSCREEN_DPI=${SCREEN_DPI:-$SE_SCREEN_DPI}\n\nif [ \"${START_XVFB:-$SE_START_XVFB}\" = true ]; then\n  export GEOMETRY=\"${SCREEN_WIDTH}\"\"x\"\"${SCREEN_HEIGHT}\"\"x\"\"${SCREEN_DEPTH}\"\n\n  rm -f /tmp/.X*lock\n\n  # Command reference\n  # http://manpages.ubuntu.com/manpages/focal/man1/xvfb-run.1.html\n  # http://manpages.ubuntu.com/manpages/focal/man1/Xvfb.1.html\n  # http://manpages.ubuntu.com/manpages/focal/man1/Xserver.1.html\n  /usr/bin/xvfb-run --server-num=${DISPLAY_NUM} \\\n    --listen-tcp \\\n    --server-args=\"-screen 0 ${GEOMETRY} -fbdir /var/tmp -dpi ${SCREEN_DPI} -listen tcp -noreset -ac +extension RANDR\" \\\n    /usr/bin/fluxbox -display ${DISPLAY}\nelse\n  echo \"Xvfb and Fluxbox won't start. Chrome/Firefox/Edge can only run in headless mode. Remember to set the 'headless' flag in your test.\"\nfi\n"
  },
  {
    "path": "NodeChrome/Dockerfile",
    "content": "ARG NAMESPACE=selenium\nARG VERSION=latest\nARG BASE=node-base\nFROM --platform=linux/amd64 ${NAMESPACE}/${BASE}:${VERSION}\nARG AUTHORS\nLABEL authors=${AUTHORS}\n\nUSER root\n\n#============================================\n# Google Chrome\n#============================================\n# can specify versions by CHROME_VERSION;\n#  e.g. google-chrome-stable\n#       google-chrome-beta\n#       google-chrome-unstable\n#============================================\nARG CHROME_VERSION=\"google-chrome-stable\"\n#============================================\n# Chrome for Testing (CFT)\n#============================================\n# can specify versions by CFT_VERSION;\n#  e.g. STABLE/BETA/DEV/CANARY\n#============================================\nARG CFT_VERSION=\"STABLE\"\nARG INSTALL_CFT=\"false\"\nCOPY --chown=\"${SEL_UID}:${SEL_GID}\" install-chrome.sh update-chrome-components.sh install-chrome-for-testing.sh /opt/bin/\nRUN chmod +x /opt/bin/install-chrome.sh /opt/bin/update-chrome-components.sh /opt/bin/install-chrome-for-testing.sh \\\n    && if [ \"${INSTALL_CFT}\" = \"true\" ]; then \\\n        CFT_VERSION=${CFT_VERSION} /opt/bin/install-chrome-for-testing.sh; \\\n    else \\\n        /opt/bin/install-chrome.sh; \\\n    fi\n\n#=================================\n# Chrome Launch Script Wrapper\n#=================================\nCOPY --chown=\"${SEL_UID}:${SEL_GID}\" wrap_chrome_binary /opt/bin/wrap_chrome_binary\nRUN chmod +x /opt/bin/wrap_chrome_binary \\\n    && /opt/bin/wrap_chrome_binary\n\n#============================================\n# Chrome webdriver\n#============================================\n# can specify versions by CHROME_DRIVER_VERSION\n# Latest released version will be used by default\n#============================================\nARG CHROME_DRIVER_VERSION\nCOPY --chown=\"${SEL_UID}:${SEL_GID}\" install-chromedriver.sh /opt/bin/\nRUN chmod +x /opt/bin/install-chromedriver.sh \\\n    && /opt/bin/install-chromedriver.sh\n\n#============================================\n# Chrome cleanup script and supervisord file\n#============================================\nCOPY chrome-cleanup.sh /opt/bin/chrome-cleanup.sh\nCOPY chrome-cleanup.conf /etc/supervisor/conf.d/chrome-cleanup.conf\nCOPY fluxbox-menu-browser /etc/X11/fluxbox/\n\nUSER ${SEL_UID}\n\n#============================================\n# Dumping Browser information for config\n#============================================\nRUN mkdir -p /opt/selenium/browsers/chrome \\\n    && echo \"chrome\" > /opt/selenium/browsers/chrome/name \\\n    && if [ \"${INSTALL_CFT}\" = \"true\" ]; then \\\n        google-chrome --version | awk '{print $5}' > /opt/selenium/browsers/chrome/version; \\\n    else \\\n        google-chrome --version | awk '{print $3}' > /opt/selenium/browsers/chrome/version; \\\n    fi \\\n    && echo '{\"goog:chromeOptions\": {\"binary\": \"${SE_BROWSER_BINARY_LOCATION:-/usr/bin/google-chrome}\"}}' > /opt/selenium/browsers/chrome/binary_location\n\nENV SE_OTEL_SERVICE_NAME=\"selenium-node-chrome\" \\\n    SE_NODE_ENABLE_MANAGED_DOWNLOADS=\"true\" \\\n    CHROME_FOR_TESTING=\"${INSTALL_CFT}\"\n"
  },
  {
    "path": "NodeChrome/chrome-cleanup.conf",
    "content": "; Documentation of this file format -> http://supervisord.org/configuration.html\n\n; Priority 0 - xvfb & fluxbox, 5 - x11vnc, 10 - noVNC, 15 - selenium-node\n\n[program:browserleftoverscleanup]\npriority=20\ncommand=bash -c \"if [ ${SE_ENABLE_BROWSER_LEFTOVERS_CLEANUP} = \"true\" ]; then /opt/bin/chrome-cleanup.sh; fi\"\nautostart=%(ENV_SE_ENABLE_BROWSER_LEFTOVERS_CLEANUP)s\nautorestart=%(ENV_SE_ENABLE_BROWSER_LEFTOVERS_CLEANUP)s\nstopsignal=INT\n\n;Logs\nredirect_stderr=false\nstdout_logfile=/var/log/supervisor/browser-leftover-cleanup-stdout.log\nstderr_logfile=/var/log/supervisor/browser-leftover-cleanup-stderr.log\nstdout_logfile_maxbytes=50MB\nstderr_logfile_maxbytes=50MB\nstdout_logfile_backups=5\nstderr_logfile_backups=5\nstdout_capture_maxbytes=50MB\nstderr_capture_maxbytes=50MB\n"
  },
  {
    "path": "NodeChrome/chrome-cleanup.sh",
    "content": "#!/bin/bash\n\n# Return error exit code in case of any failure, so supervisord will restart the script\nset -e\n\ncleanup_stuck_chrome_processes() {\n  echo -n \"Killing Chrome processes older than ${SE_BROWSER_LEFTOVERS_PROCESSES_SECS} seconds... \"\n  ps -e -o pid,etimes,command | grep -v grep | grep chrome/chrome | awk '{if($2>'${SE_BROWSER_LEFTOVERS_PROCESSES_SECS}') print $0}' | awk '{print $1}' | xargs -r kill -9\n  echo \"DONE.\"\n}\n\ncleanup_tmp_chrome_files() {\n  echo -n \"Deleting all Chrome files in /tmp... \"\n  find /tmp -name \".com.google.Chrome.*\" -type d -mtime +${SE_BROWSER_LEFTOVERS_TEMPFILES_DAYS} -exec rm -rf \"{}\" +\n  echo \"DONE.\"\n}\n\necho \"Chrome cleanup script init with parameters: SE_BROWSER_LEFTOVERS_TEMPFILES_DAYS=${SE_BROWSER_LEFTOVERS_TEMPFILES_DAYS}, SE_BROWSER_LEFTOVERS_PROCESSES_SECS=${SE_BROWSER_LEFTOVERS_PROCESSES_SECS}, SE_BROWSER_LEFTOVERS_INTERVAL_SECS=${SE_BROWSER_LEFTOVERS_INTERVAL_SECS}.\"\n\n# Start the main loop\nwhile :; do\n  echo \"Starting cleanup daemon script.\"\n\n  # Clean up stuck processes\n  cleanup_stuck_chrome_processes\n\n  # Wait a few seconds for the processes to stop before removing files\n  sleep 5\n\n  # Clean up temporary files\n  cleanup_tmp_chrome_files\n\n  # Go to sleep for 1 hour\n  echo \"Cleanup daemon sleeping for ${SE_BROWSER_LEFTOVERS_INTERVAL_SECS} seconds.\"\n  sleep ${SE_BROWSER_LEFTOVERS_INTERVAL_SECS}\ndone\n"
  },
  {
    "path": "NodeChrome/fluxbox-menu-browser",
    "content": "[submenu] (Web Browsing) {}\n   [exec] (Google Chrome) { /usr/bin/google-chrome } <>\n[end]"
  },
  {
    "path": "NodeChrome/install-chrome-for-testing.sh",
    "content": "#!/bin/bash\n\n#============================================\n# Chrome for Testing Installation Script\n#============================================\n# This script installs Chrome for Testing from:\n# https://googlechromelabs.github.io/chrome-for-testing/\n#\n# Chrome for Testing is a dedicated Chrome build for testing\n# with consistent version matching for ChromeDriver.\n#============================================\n\nset -e\n\n# Default Chrome for Testing version\nCFT_VERSION=\"${CFT_VERSION}\"\nCFT_PLATFORM=\"${CFT_PLATFORM:-linux64}\"\nCFT_BASE_URL=\"https://storage.googleapis.com/chrome-for-testing-public\"\nCFT_API_BASE=\"https://googlechromelabs.github.io/chrome-for-testing\"\n\n# Resolve channel names to version numbers\nif [[ \"${CFT_VERSION}\" =~ ^(STABLE|BETA|DEV|CANARY)$ ]]; then\n  CHANNEL=\"${CFT_VERSION}\"\n  echo \"Fetching latest ${CHANNEL} version...\"\n  CFT_VERSION=$(wget -qO- \"${CFT_API_BASE}/LATEST_RELEASE_${CHANNEL}\" | sed 's/\\r$//')\n  echo \"Resolved ${CHANNEL} to version: ${CFT_VERSION}\"\nfi\n\necho \"Installing Chrome for Testing: ${CFT_VERSION} (${CFT_PLATFORM})\"\n\n# Create temporary directory\nTEMP_DIR=$(mktemp -d)\ncd \"${TEMP_DIR}\"\n\n# Download Chrome for Testing\nDOWNLOAD_URL=\"${CFT_BASE_URL}/${CFT_VERSION}/${CFT_PLATFORM}/chrome-${CFT_PLATFORM}.zip\"\necho \"Downloading from: ${DOWNLOAD_URL}\"\n\nif ! wget -q --spider \"${DOWNLOAD_URL}\"; then\n  echo \"Error: Chrome for Testing version ${CFT_VERSION} not found for platform ${CFT_PLATFORM}\"\n  echo \"Please check available versions at: https://googlechromelabs.github.io/chrome-for-testing/\"\n  rm -rf \"${TEMP_DIR}\"\n  exit 1\nfi\n\nwget -q -O chrome.zip \"${DOWNLOAD_URL}\"\n\n# Extract Chrome\necho \"Extracting Chrome for Testing...\"\nunzip -q chrome.zip\n\n# Install to /opt/chrome\nINSTALL_DIR=\"/opt/chrome\"\nrm -rf \"${INSTALL_DIR}\"\nmkdir -p \"${INSTALL_DIR}\"\nmv chrome-${CFT_PLATFORM}/* \"${INSTALL_DIR}/\"\n\n# Create symlink for google-chrome command\nln -sf \"${INSTALL_DIR}/chrome\" /usr/bin/google-chrome\n\n# Install Chrome dependencies from deb.deps file\necho \"Installing Chrome dependencies...\"\napt-get update -qqy\n\nif [ -f \"${INSTALL_DIR}/deb.deps\" ]; then\n  echo \"Found deb.deps file, parsing dependencies...\"\n  # Read dependencies from deb.deps file\n  # Format: package-name (>= version) or package1 | package2 | package3\n  # We need to:\n  # 1. Remove version constraints in parentheses\n  # 2. Handle alternative packages (take the first one)\n  # 3. Remove empty lines and comments\n  DEPS=$(cat \"${INSTALL_DIR}/deb.deps\" |\n    grep -v '^#' |\n    grep -v '^$' |\n    sed 's/ *([^)]*)//g' |\n    sed 's/ *|.*//' |\n    tr '\\n' ' ' |\n    sed 's/  */ /g' |\n    sed 's/^ *//;s/ *$//' |\n    sed 's/libasound2\\b/libasound2t64/g')\n  echo \"Dependencies: ${DEPS}\"\n  apt-get install -qqy --no-install-recommends ${DEPS}\nelse\n  apt-get install -qqy --no-install-recommends ca-certificates fonts-liberation libasound2t64 libatk-bridge2.0-0 libatk1.0-0 libatspi2.0-0 libc6 libcairo2 libcups2 libcurl3-gnutls libdbus-1-3 libdrm2 libexpat1 libgbm1 libglib2.0-0 libgtk-3-0 libnspr4 libnss3 libpango-1.0-0 libvulkan1 libx11-6 libxcb1 libxcomposite1 libxdamage1 libxext6 libxfixes3 libxkbcommon0 libxrandr2 wget xdg-utils\nfi\n\n# Cleanup\ncd /\nrm -rf \"${TEMP_DIR}\"\nrm -rf /var/lib/apt/lists/* /var/cache/apt/*\n\necho \"Chrome for Testing installation completed\"\ngoogle-chrome --version\n"
  },
  {
    "path": "NodeChrome/install-chrome.sh",
    "content": "#!/bin/bash\n\n#============================================\n# Google Chrome Installation Script\n#============================================\n# This script installs Google Chrome with support for:\n# - Different channels (stable, beta, unstable)\n# - Specific versions\n# - Architecture detection\n#============================================\n\nset -e\n\n# Default Chrome version/channel\nCHROME_VERSION=\"${CHROME_VERSION:-google-chrome-stable}\"\n\necho \"Installing Google Chrome: ${CHROME_VERSION}\"\n\n# Add Google Chrome repository\nwget -q -O - https://dl-ssl.google.com/linux/linux_signing_key.pub | gpg --dearmor | tee /etc/apt/trusted.gpg.d/google.gpg >/dev/null\necho \"deb http://dl.google.com/linux/chrome/deb/ stable main\" >/etc/apt/sources.list.d/google-chrome.list\n\n# Update package list\napt-get update -qqy\n\n# Install Chrome based on version specification\nif echo \"${CHROME_VERSION}\" | grep -qE \"google-chrome-stable[_|=][0-9]*\"; then\n  # This is version specific standard when install from apt repository e.g google-chrome-stable=121.0.6167.120-1\n  # Install specific version\n  VERSION_NUMBER=$(echo \"$CHROME_VERSION\" | cut -d'=' -f2)\n  CHROME_VERSION=$(echo \"$CHROME_VERSION\" | tr '=' '_')\n  echo \"Installing specific Chrome version: ${VERSION_NUMBER}\"\n  wget -qO google-chrome.deb \"https://github.com/NDViet/google-chrome-stable/releases/download/${VERSION_NUMBER}/${CHROME_VERSION}_$(dpkg --print-architecture).deb\"\n  apt-get -qqy --no-install-recommends install --allow-downgrades ./google-chrome.deb\n  rm -rf google-chrome.deb\nelse\n  # Install from repository (stable, beta, unstable)\n  echo \"Installing Chrome channel: ${CHROME_VERSION}\"\n  apt-get -qqy --no-install-recommends install ${CHROME_VERSION}\nfi\n\n# Cleanup\nrm -rf /var/lib/apt/lists/* /var/cache/apt/*\n\necho \"Google Chrome installation completed\"\ngoogle-chrome --version\n"
  },
  {
    "path": "NodeChrome/install-chromedriver.sh",
    "content": "#!/bin/bash\n\n#============================================\n# ChromeDriver Installation Script\n#============================================\n# This script installs ChromeDriver with support for:\n# - Automatic version detection based on Chrome version\n# - Specific version installation\n# - Architecture detection\n#============================================\n\nset -e\n\n# Default ChromeDriver version (empty for auto-detection)\nCHROME_DRIVER_VERSION=\"${CHROME_DRIVER_VERSION:-}\"\n\necho \"Installing ChromeDriver...\"\n\n# Detect architecture\nDRIVER_ARCH=$(if [ \"$(dpkg --print-architecture)\" = \"amd64\" ]; then echo \"linux64\"; else echo \"linux-aarch64\"; fi)\necho \"Detected architecture: ${DRIVER_ARCH}\"\n\n# Determine ChromeDriver version and URL\nif [ ! -z \"$CHROME_DRIVER_VERSION\" ]; then\n  # Use specified version\n  echo \"Using specified ChromeDriver version: ${CHROME_DRIVER_VERSION}\"\n  CHROME_DRIVER_URL=\"https://storage.googleapis.com/chrome-for-testing-public/$CHROME_DRIVER_VERSION/${DRIVER_ARCH}/chromedriver-${DRIVER_ARCH}.zip\"\nelse\n  # Auto-detect version based on Chrome version\n  CHROME_MAJOR_VERSION=$(google-chrome --version | sed -E \"s/.* ([0-9]+)(\\.[0-9]+){3}.*/\\1/\")\n  echo \"Detected Chrome major version: ${CHROME_MAJOR_VERSION}\"\n\n  if [ $CHROME_MAJOR_VERSION -lt 115 ]; then\n    # Use old ChromeDriver API for versions < 115\n    echo \"Getting ChromeDriver latest version from https://chromedriver.storage.googleapis.com/LATEST_RELEASE_${CHROME_MAJOR_VERSION}\"\n    CHROME_DRIVER_VERSION=$(wget -qO- https://chromedriver.storage.googleapis.com/LATEST_RELEASE_${CHROME_MAJOR_VERSION} | sed 's/\\r$//')\n    CHROME_DRIVER_URL=\"https://chromedriver.storage.googleapis.com/$CHROME_DRIVER_VERSION/chromedriver_linux64.zip\"\n  else\n    # Use new Chrome for Testing API for versions >= 115\n    echo \"Getting ChromeDriver latest version from https://googlechromelabs.github.io/chrome-for-testing/LATEST_RELEASE_${CHROME_MAJOR_VERSION}\"\n    CHROME_DRIVER_VERSION=$(wget -qO- https://googlechromelabs.github.io/chrome-for-testing/LATEST_RELEASE_${CHROME_MAJOR_VERSION} | sed 's/\\r$//')\n    CHROME_DRIVER_URL=\"https://storage.googleapis.com/chrome-for-testing-public/$CHROME_DRIVER_VERSION/${DRIVER_ARCH}/chromedriver-${DRIVER_ARCH}.zip\"\n  fi\nfi\n\necho \"Using ChromeDriver from: ${CHROME_DRIVER_URL}\"\necho \"Using ChromeDriver version: ${CHROME_DRIVER_VERSION}\"\n\n# Download and install ChromeDriver\nwget --no-verbose -O /tmp/chromedriver_${DRIVER_ARCH}.zip $CHROME_DRIVER_URL\n\n# Remove existing ChromeDriver\nrm -rf /opt/selenium/chromedriver\n\n# Extract ChromeDriver\nunzip /tmp/chromedriver_${DRIVER_ARCH}.zip -d /opt/selenium\nrm /tmp/chromedriver_${DRIVER_ARCH}.zip\n\n# Handle different extraction patterns\nif [ -f \"/opt/selenium/chromedriver\" ]; then\n  mv /opt/selenium/chromedriver /opt/selenium/chromedriver-$CHROME_DRIVER_VERSION\nelif [ -f \"/opt/selenium/chromedriver-${DRIVER_ARCH}/chromedriver\" ]; then\n  mv /opt/selenium/chromedriver-${DRIVER_ARCH}/chromedriver /opt/selenium/chromedriver-$CHROME_DRIVER_VERSION\n  rm -rf /opt/selenium/chromedriver-${DRIVER_ARCH}\nfi\n\n# Set permissions and create symlink\nchmod 755 /opt/selenium/chromedriver-$CHROME_DRIVER_VERSION\nln -fs /opt/selenium/chromedriver-$CHROME_DRIVER_VERSION /usr/bin/chromedriver\n\necho \"ChromeDriver installation completed\"\nchromedriver --version\n"
  },
  {
    "path": "NodeChrome/update-chrome-components.sh",
    "content": "#!/bin/bash\n\n#============================================\n# Chrome Components Update Script\n#============================================\n# This script updates Chrome and ChromeDriver to latest versions\n# Can be run at container startup to ensure latest versions\n#============================================\n\nset -e\n\n# Check if update is enabled via environment variable\nif [ \"${SE_UPDATE_CHROME_COMPONENTS}\" != \"true\" ]; then\n  echo \"Chrome components update disabled (SE_UPDATE_CHROME_COMPONENTS != true)\"\n  exit 0\nfi\n\necho \"Starting Chrome components update...\"\n\n# Check if we have sudo access\nif ! sudo -n true 2>/dev/null; then\n  echo \"Warning: No sudo access available. Chrome components update skipped.\"\n  echo \"To enable updates, ensure the container user has sudo privileges.\"\n  exit 0\nfi\n\n# Update Chrome if needed\necho \"Checking for Chrome updates...\"\nCURRENT_CHROME_VERSION=$(google-chrome --version 2>/dev/null || echo \"Chrome not found\")\n\nif [ \"$CURRENT_CHROME_VERSION\" = \"Chrome not found\" ]; then\n  echo \"Chrome not found, installing...\"\n  sudo /opt/bin/install-chrome.sh\nelse\n  echo \"Current Chrome version: $CURRENT_CHROME_VERSION\"\n  echo \"Updating Chrome to latest version...\"\n  sudo /opt/bin/install-chrome.sh\n  sudo /opt/bin/wrap_chrome_binary\nfi\n\n# Update ChromeDriver if needed\necho \"Checking for ChromeDriver updates...\"\nCURRENT_CHROMEDRIVER_VERSION=$(chromedriver --version 2>/dev/null | head -1 || echo \"ChromeDriver not found\")\n\nif [ \"$CURRENT_CHROMEDRIVER_VERSION\" = \"ChromeDriver not found\" ]; then\n  echo \"ChromeDriver not found, installing...\"\n  sudo /opt/bin/install-chromedriver.sh\nelse\n  echo \"Current ChromeDriver version: $CURRENT_CHROMEDRIVER_VERSION\"\n  echo \"Updating ChromeDriver to latest compatible version...\"\n  sudo /opt/bin/install-chromedriver.sh\nfi\n\necho \"Chrome components update completed\"\necho \"Final versions:\"\ngoogle-chrome --version\nchromedriver --version\n"
  },
  {
    "path": "NodeChrome/wrap_chrome_binary",
    "content": "#!/usr/bin/env bash\n\nset -e\n\nWRAPPER_PATH=$(readlink -f /usr/bin/google-chrome)\nBASE_PATH=\"$WRAPPER_PATH-base\"\nmv \"$WRAPPER_PATH\" \"$BASE_PATH\"\n\ncat >\"$WRAPPER_PATH\" <<_EOF\n#!/bin/bash\n\n# umask 002 ensures default permissions of files are 664 (rw-rw-r--) and directories are 775 (rwxrwxr-x).\numask 002\n\n# Debian/Ubuntu seems to not respect --lang, it instead needs to be a LANGUAGE environment var\n# See: https://stackoverflow.com/a/41893197/359999\nfor var in \"\\$@\"; do\n   if [[ \\$var == --lang=* ]]; then\n      LANGUAGE=\\${var//--lang=}\n   fi\ndone\n\n# Set language environment variable\nexport LANGUAGE=\"\\$LANGUAGE\"\n\n# Capture the filtered environment variables start with \"SE_BROWSER_ARGS_\" into an array\nmapfile -t BROWSER_ARGS_ARRAY < <(printenv | grep ^SE_BROWSER_ARGS_)\n# Iterate over the array\nfor var in \"\\${BROWSER_ARGS_ARRAY[@]}\"; do\n  # Split the variable into name and value\n  IFS='=' read -r name value <<< \"\\$var\"\n  SE_BROWSER_ARGS=\"\\$SE_BROWSER_ARGS \\$value\"\ndone\n\n# Note: exec -a below is a bashism.\nexec -a \"\\$0\" \"$BASE_PATH\" --no-sandbox \\$SE_BROWSER_ARGS \"\\$@\"\n_EOF\nchmod +x \"$WRAPPER_PATH\"\n"
  },
  {
    "path": "NodeChromium/Dockerfile",
    "content": "ARG NAMESPACE=selenium\nARG VERSION=latest\nARG BASE=node-base\nFROM ${NAMESPACE}/${BASE}:${VERSION}\nARG AUTHORS\nLABEL authors=${AUTHORS}\n\nUSER root\n\n# Install Chromium\nARG CHROMIUM_VERSION=\"latest\"\nARG CHROMIUM_DEB_SITE=\"http://deb.debian.org/debian\"\nRUN echo \"deb ${CHROMIUM_DEB_SITE}/ sid main\" >/etc/apt/sources.list.d/debian.list \\\n  && wget -qO- https://ftp-master.debian.org/keys/archive-key-12.asc | gpg --dearmor > /etc/apt/trusted.gpg.d/debian-archive-keyring.gpg \\\n  && wget -qO- https://ftp-master.debian.org/keys/archive-key-12-security.asc | gpg --dearmor > /etc/apt/trusted.gpg.d/debian-archive-security-keyring.gpg \\\n  && for d in bin lib lib32 lib64 libo32 libx32 sbin; do dpkg-divert --package base-files --no-rename --remove /$d; done \\\n  && apt-get update -qqy \\\n  && if [ \"${CHROMIUM_VERSION}\" = \"latest\" ]; \\\n      then apt-get -qqy --no-install-recommends install chromium-common chromium chromium-l10n chromium-driver; \\\n     else mkdir -p /tmp/chromium \\\n      && wget -q ${CHROMIUM_DEB_SITE}/pool/main/c/chromium/chromium-common_${CHROMIUM_VERSION}-1_$(dpkg --print-architecture).deb -O /tmp/chromium/chromium-common.deb \\\n      && wget -q ${CHROMIUM_DEB_SITE}/pool/main/c/chromium/chromium_${CHROMIUM_VERSION}-1_$(dpkg --print-architecture).deb -O /tmp/chromium/chromium.deb \\\n      && wget -q ${CHROMIUM_DEB_SITE}/pool/main/c/chromium/chromium-l10n_${CHROMIUM_VERSION}-1_all.deb -O /tmp/chromium/chromium-l10n.deb \\\n      && wget -q ${CHROMIUM_DEB_SITE}/pool/main/c/chromium/chromium-driver_${CHROMIUM_VERSION}-1_$(dpkg --print-architecture).deb -O /tmp/chromium/chromium-driver.deb \\\n      && apt-get -qqyf install /tmp/chromium/chromium-common.deb /tmp/chromium/chromium.deb /tmp/chromium/chromium-l10n.deb /tmp/chromium/chromium-driver.deb \\\n      && rm -rf /tmp/chromium; \\\n    fi \\\n  && rm -rf /var/lib/apt/lists/* /var/cache/apt/* /etc/apt/sources.list.d/debian.list\n\n#=================================\n# Chromium Launch Script Wrapper\n#=================================\nCOPY wrap_chromium_binary /opt/bin/wrap_chromium_binary\nRUN /opt/bin/wrap_chromium_binary \\\n    && chromium --version\n\n#============================================\n# Chromium cleanup script and supervisord file\n#============================================\nCOPY chrome-cleanup.sh /opt/bin/chrome-cleanup.sh\nCOPY chrome-cleanup.conf /etc/supervisor/conf.d/chrome-cleanup.conf\nCOPY fluxbox-menu-browser /etc/X11/fluxbox/\n\nUSER ${SEL_UID}\n\n#============================================\n# Dumping Browser information for config\n#============================================\nRUN mkdir -p /opt/selenium/browsers/chrome \\\n    && echo \"chrome\" > /opt/selenium/browsers/chrome/name \\\n    && chromium --version | awk '{print $2}' > /opt/selenium/browsers/chrome/version \\\n    && echo '{\"goog:chromeOptions\": {\"binary\": \"${SE_BROWSER_BINARY_LOCATION:-/usr/bin/chromium}\"}}' > /opt/selenium/browsers/chrome/binary_location\n\nENV SE_OTEL_SERVICE_NAME=\"selenium-node-chrome\" \\\n    SE_NODE_ENABLE_MANAGED_DOWNLOADS=\"true\"\n"
  },
  {
    "path": "NodeChromium/chrome-cleanup.conf",
    "content": "; Documentation of this file format -> http://supervisord.org/configuration.html\n\n; Priority 0 - xvfb & fluxbox, 5 - x11vnc, 10 - noVNC, 15 - selenium-node\n\n[program:browserleftoverscleanup]\npriority=20\ncommand=bash -c \"if [ ${SE_ENABLE_BROWSER_LEFTOVERS_CLEANUP} = \"true\" ]; then /opt/bin/chrome-cleanup.sh; fi\"\nautostart=%(ENV_SE_ENABLE_BROWSER_LEFTOVERS_CLEANUP)s\nautorestart=%(ENV_SE_ENABLE_BROWSER_LEFTOVERS_CLEANUP)s\nstopsignal=INT\n\n;Logs\nredirect_stderr=false\nstdout_logfile=/var/log/supervisor/browser-leftover-cleanup-stdout.log\nstderr_logfile=/var/log/supervisor/browser-leftover-cleanup-stderr.log\nstdout_logfile_maxbytes=50MB\nstderr_logfile_maxbytes=50MB\nstdout_logfile_backups=5\nstderr_logfile_backups=5\nstdout_capture_maxbytes=50MB\nstderr_capture_maxbytes=50MB\n"
  },
  {
    "path": "NodeChromium/chrome-cleanup.sh",
    "content": "#!/bin/bash\n\n# Return error exit code in case of any failure, so supervisord will restart the script\nset -e\n\ncleanup_stuck_chrome_processes() {\n  echo -n \"Killing Chrome processes older than ${SE_BROWSER_LEFTOVERS_PROCESSES_SECS} seconds... \"\n  ps -e -o pid,etimes,command | grep -v grep | grep chromium/chromium | awk '{if($2>'${SE_BROWSER_LEFTOVERS_PROCESSES_SECS}') print $0}' | awk '{print $1}' | xargs -r kill -9\n  echo \"DONE.\"\n}\n\ncleanup_tmp_chrome_files() {\n  echo -n \"Deleting all Chrome files in /tmp... \"\n  find /tmp -name \".com.google.Chrome.*\" -type d -mtime +${SE_BROWSER_LEFTOVERS_TEMPFILES_DAYS} -exec rm -rf \"{}\" +\n  echo \"DONE.\"\n}\n\necho \"Chrome cleanup script init with parameters: SE_BROWSER_LEFTOVERS_TEMPFILES_DAYS=${SE_BROWSER_LEFTOVERS_TEMPFILES_DAYS}, SE_BROWSER_LEFTOVERS_PROCESSES_SECS=${SE_BROWSER_LEFTOVERS_PROCESSES_SECS}, SE_BROWSER_LEFTOVERS_INTERVAL_SECS=${SE_BROWSER_LEFTOVERS_INTERVAL_SECS}.\"\n\n# Start the main loop\nwhile :; do\n  echo \"Starting cleanup daemon script.\"\n\n  # Clean up stuck processes\n  cleanup_stuck_chrome_processes\n\n  # Wait a few seconds for the processes to stop before removing files\n  sleep 5\n\n  # Clean up temporary files\n  cleanup_tmp_chrome_files\n\n  # Go to sleep for 1 hour\n  echo \"Cleanup daemon sleeping for ${SE_BROWSER_LEFTOVERS_INTERVAL_SECS} seconds.\"\n  sleep ${SE_BROWSER_LEFTOVERS_INTERVAL_SECS}\ndone\n"
  },
  {
    "path": "NodeChromium/fluxbox-menu-browser",
    "content": "[submenu] (Web Browsing) {}\n   [exec] (Chromium) { /usr/bin/chromium } <>\n[end]"
  },
  {
    "path": "NodeChromium/wrap_chromium_binary",
    "content": "#!/bin/bash\n\nWRAPPER_PATH=$(readlink -f /usr/bin/chromium)\nBASE_PATH=\"$WRAPPER_PATH-base\"\nmv \"$WRAPPER_PATH\" \"$BASE_PATH\"\n\ncat >\"$WRAPPER_PATH\" <<_EOF\n#!/bin/bash\n\n# umask 002 ensures default permissions of files are 664 (rw-rw-r--) and directories are 775 (rwxrwxr-x).\numask 002\n\n# Debian/Ubuntu seems to not respect --lang, it instead needs to be a LANGUAGE environment var\n# See: https://stackoverflow.com/a/41893197/359999\nfor var in \"\\$@\"; do\n   if [[ \\$var == --lang=* ]]; then\n      LANGUAGE=\\${var//--lang=}\n   fi\ndone\n\n# Set language environment variable\nexport LANGUAGE=\"\\$LANGUAGE\"\n\n# Capture the filtered environment variables start with \"SE_BROWSER_ARGS_\" into an array\nmapfile -t BROWSER_ARGS_ARRAY < <(printenv | grep ^SE_BROWSER_ARGS_)\n# Iterate over the array\nfor var in \"\\${BROWSER_ARGS_ARRAY[@]}\"; do\n  # Split the variable into name and value\n  IFS='=' read -r name value <<< \"\\$var\"\n  SE_BROWSER_ARGS=\"\\$SE_BROWSER_ARGS \\$value\"\ndone\n\n# Note: exec -a below is a bashism.\nexec -a \"\\$0\" \"$BASE_PATH\" --no-sandbox \\$SE_BROWSER_ARGS \"\\$@\"\n_EOF\nchmod +x \"$WRAPPER_PATH\"\n"
  },
  {
    "path": "NodeDocker/Dockerfile",
    "content": "ARG NAMESPACE=selenium\nARG VERSION=latest\nFROM ${NAMESPACE}/base:${VERSION}\nARG AUTHORS\nLABEL authors=${AUTHORS}\n\nUSER root\n\n#==============\n# Socat to proxy docker.sock when mounted\n#==============\nRUN apt-get update -qqy \\\n  && apt-get -qqy --no-install-recommends install socat \\\n  && rm -rf /var/lib/apt/lists/* /var/cache/apt/*\n\nUSER ${SEL_UID}\n\n#========================\n# Selenium Standalone Docker Configuration\n#========================\n\nEXPOSE 4444\n\nCOPY --chown=\"${SEL_UID}:${SEL_GID}\" start-selenium-grid-docker.sh \\\n    start-socat.sh \\\n    /opt/bin/\n\nCOPY --chown=\"${SEL_UID}:${SEL_GID}\" config.toml /opt/selenium/docker.toml\n\nCOPY selenium-grid-docker.conf /etc/supervisor/conf.d/\n\nENV SE_OTEL_SERVICE_NAME=\"selenium-node-docker\" \\\n    SE_EVENT_BUS_PUBLISH_PORT=\"4442\" \\\n    SE_EVENT_BUS_SUBSCRIBE_PORT=\"4443\" \\\n    SE_NODE_DOCKER_CONFIG_FILENAME=\"docker.toml\" \\\n    SE_NODE_ENABLE_MANAGED_DOWNLOADS=\"true\" \\\n    SE_DYNAMIC_MAX_SESSIONS=\"\" \\\n    SE_DYNAMIC_OVERRIDE_MAX_SESSIONS=\"\"\n"
  },
  {
    "path": "NodeDocker/config.toml",
    "content": "[docker]\n# Configs have a mapping between the Docker image to use and the capabilities that need to be matched to\n# start a container with the given image.\nconfigs = [\n    \"selenium/standalone-firefox:4.41.0-20260222\", '{\"browserName\": \"firefox\", \"platformName\": \"linux\"}',\n    \"selenium/standalone-chrome:4.41.0-20260222\", '{\"browserName\": \"chrome\", \"platformName\": \"linux\"}',\n    \"selenium/standalone-edge:4.41.0-20260222\", '{\"browserName\": \"MicrosoftEdge\", \"platformName\": \"linux\"}'\n    ]\n# Share configs of volumes, DNS, extra hosts between node-docker and node browser containers\nhost-config-keys = [\"Dns\", \"DnsOptions\", \"DnsSearch\", \"ExtraHosts\", \"Binds\"]\n\n# URL for connecting to the docker daemon\n# host.docker.internal works for macOS and Windows.\n# Linux could use --net=host in the `docker run` instruction or 172.17.0.1 in the URI below.\n# To have Docker listening through tcp on macOS, install socat and run the following command\n# socat -4 TCP-LISTEN:2375,fork UNIX-CONNECT:/var/run/docker.sock\nurl = \"http://127.0.0.1:2375\"\n# Docker image used for video recording (set to \"false\" to disable. Recommend to use new browser\n# image tag which has video recorder/uploader inline).\n# video-image = \"selenium/video:ffmpeg-8.0-20260222\"\n\n# Uncomment the following section if you are running the node on a separate VM\n# Fill out the placeholders with appropriate values\n#[server]\n#host = <ip-from-node-machine>\n#port = <port-from-node-machine>\n"
  },
  {
    "path": "NodeDocker/selenium-grid-docker.conf",
    "content": "; Documentation of this file format -> http://supervisord.org/configuration.html\n\n; Priority 0 - socat 5 - selenium-docker\n\n[program:socat]\npriority=0\ncommand=/opt/bin/start-socat.sh\nautostart=true\nautorestart=false\nstartsecs=0\nstartretries=0\n\n[program:selenium-grid-docker]\npriority=5\ncommand=/opt/bin/start-selenium-grid-docker.sh\nautostart=true\nautorestart=false\nstartsecs=0\nstartretries=0\n\n;Logs (all Hub activity redirected to stdout so it can be seen through \"docker logs\"\nredirect_stderr=true\nstdout_logfile=/dev/stdout\nstdout_logfile_maxbytes=0\n"
  },
  {
    "path": "NodeDocker/start-selenium-grid-docker.sh",
    "content": "#!/usr/bin/env bash\n\n# set -e: exit asap if a command exits with a non-zero status\nset -e\n\necho \"Starting Selenium Grid Node Docker...\"\n\nfunction append_se_opts() {\n  local option=\"${1}\"\n  local value=\"${2:-\"\"}\"\n  local log_message=\"${3:-true}\"\n  if [[ \"${SE_OPTS}\" != *\"${option}\"* ]]; then\n    if [ \"${log_message}\" = \"true\" ]; then\n      echo \"Appending Selenium option: ${option} ${value}\"\n    else\n      echo \"Appending Selenium option: ${option} $(mask ${value})\"\n    fi\n    SE_OPTS=\"${SE_OPTS} ${option}\"\n    if [ ! -z \"${value}\" ]; then\n      SE_OPTS=\"${SE_OPTS} ${value}\"\n    fi\n  else\n    echo \"Selenium option: ${option} already set in env variable SE_OPTS. Ignore new option: ${option} ${value}\"\n  fi\n}\n\nif [[ -z \"${SE_EVENT_BUS_HOST}\" ]]; then\n  echo \"SE_EVENT_BUS_HOST not set, exiting!\" 1>&2\n  exit 1\nfi\n\nif [[ -z \"${SE_EVENT_BUS_PUBLISH_PORT}\" ]]; then\n  echo \"SE_EVENT_BUS_PUBLISH_PORT not set, exiting!\" 1>&2\n  exit 1\nfi\n\nif [[ -z \"${SE_EVENT_BUS_SUBSCRIBE_PORT}\" ]]; then\n  echo \"SE_EVENT_BUS_SUBSCRIBE_PORT not set, exiting!\" 1>&2\n  exit 1\nfi\n\nif [ ! -z \"$SE_OPTS\" ]; then\n  echo \"Appending Selenium options: ${SE_OPTS}\"\nfi\n\n# Specific environment variables name for Node Dynamic only, it will not effect browser container when pass through\n\nif [ ! -z \"${SE_DYNAMIC_MAX_SESSIONS}\" ]; then\n  append_se_opts \"--max-sessions\" \"${SE_DYNAMIC_MAX_SESSIONS}\"\nfi\n\nif [ ! -z \"${SE_DYNAMIC_OVERRIDE_MAX_SESSIONS}\" ]; then\n  append_se_opts \"--override-max-sessions\" \"${SE_DYNAMIC_OVERRIDE_MAX_SESSIONS}\"\nfi\n\n# Environment variables will be passed through to browser container\n\nif [ ! -z \"${SE_NODE_GRID_URL}\" ]; then\n  append_se_opts \"--grid-url\" \"${SE_NODE_GRID_URL}\"\nfi\n\nif [ ! -z \"${SE_NODE_HEARTBEAT_PERIOD}\" ]; then\n  append_se_opts \"--heartbeat-period\" \"${SE_NODE_HEARTBEAT_PERIOD}\"\nfi\n\nif [ ! -z \"${SE_NODE_REGISTER_PERIOD}\" ]; then\n  append_se_opts \"--register-period\" \"${SE_NODE_REGISTER_PERIOD}\"\nfi\n\nif [ ! -z \"${SE_NODE_REGISTER_CYCLE}\" ]; then\n  append_se_opts \"--register-cycle\" \"${SE_NODE_REGISTER_CYCLE}\"\nfi\n\nif [ ! -z \"${SE_NODE_SESSION_TIMEOUT}\" ]; then\n  append_se_opts \"--session-timeout\" \"${SE_NODE_SESSION_TIMEOUT}\"\nfi\n\nif [ ! -z \"${SE_NODE_ENABLE_CDP}\" ]; then\n  append_se_opts \"--enable-cdp\" \"${SE_NODE_ENABLE_CDP}\"\nfi\n\nif [ ! -z \"${SE_NODE_ENABLE_MANAGED_DOWNLOADS}\" ]; then\n  append_se_opts \"--enable-managed-downloads\" \"${SE_NODE_ENABLE_MANAGED_DOWNLOADS}\"\nfi\n\nif [ ! -z \"${SE_NODE_CONNECTION_LIMIT_PER_SESSION}\" ]; then\n  append_se_opts \"--connection-limit-per-session\" \"${SE_NODE_CONNECTION_LIMIT_PER_SESSION}\"\nfi\n\nif [ ! -z \"$SE_LOG_LEVEL\" ]; then\n  append_se_opts \"--log-level\" \"${SE_LOG_LEVEL}\"\nfi\n\nif [ ! -z \"$SE_HTTP_LOGS\" ]; then\n  append_se_opts \"--http-logs\" \"${SE_HTTP_LOGS}\"\nfi\n\nif [ ! -z \"$SE_STRUCTURED_LOGS\" ]; then\n  append_se_opts \"--structured-logs\" \"${SE_STRUCTURED_LOGS}\"\nfi\n\nif [ ! -z \"$SE_PLAIN_LOGS\" ]; then\n  append_se_opts \"--plain-logs\" \"${SE_PLAIN_LOGS}\"\nfi\n\nif [ ! -z \"$SE_EXTERNAL_URL\" ]; then\n  append_se_opts \"--external-url\" \"${SE_EXTERNAL_URL}\"\nfi\n\nif [ ! -z \"$SE_REGISTRATION_SECRET\" ]; then\n  append_se_opts \"--registration-secret\" \"${SE_REGISTRATION_SECRET}\" \"false\"\nfi\n\nif [ \"${SE_ENABLE_TLS}\" = \"true\" ]; then\n  # Configure truststore for the server\n  if [ ! -z \"$SE_JAVA_SSL_TRUST_STORE\" ]; then\n    echo \"Appending Java options: -Djavax.net.ssl.trustStore=${SE_JAVA_SSL_TRUST_STORE}\"\n    SE_JAVA_OPTS=\"$SE_JAVA_OPTS -Djavax.net.ssl.trustStore=${SE_JAVA_SSL_TRUST_STORE}\"\n  fi\n  if [ -f \"${SE_JAVA_SSL_TRUST_STORE_PASSWORD}\" ]; then\n    echo \"Getting Truststore password from ${SE_JAVA_SSL_TRUST_STORE_PASSWORD} to set Java options: -Djavax.net.ssl.trustStorePassword\"\n    SE_JAVA_SSL_TRUST_STORE_PASSWORD=\"$(cat ${SE_JAVA_SSL_TRUST_STORE_PASSWORD})\"\n  fi\n  if [ ! -z \"${SE_JAVA_SSL_TRUST_STORE_PASSWORD}\" ]; then\n    echo \"Appending Java options: -Djavax.net.ssl.trustStorePassword=$(mask ${SE_JAVA_SSL_TRUST_STORE_PASSWORD})\"\n    SE_JAVA_OPTS=\"$SE_JAVA_OPTS -Djavax.net.ssl.trustStorePassword=${SE_JAVA_SSL_TRUST_STORE_PASSWORD}\"\n  fi\n  echo \"Appending Java options: -Djdk.internal.httpclient.disableHostnameVerification=${SE_JAVA_DISABLE_HOSTNAME_VERIFICATION}\"\n  SE_JAVA_OPTS=\"$SE_JAVA_OPTS -Djdk.internal.httpclient.disableHostnameVerification=${SE_JAVA_DISABLE_HOSTNAME_VERIFICATION}\"\n  # Configure certificate and private key for component communication\n  if [ ! -z \"$SE_HTTPS_CERTIFICATE\" ]; then\n    append_se_opts \"--https-certificate\" \"${SE_HTTPS_CERTIFICATE}\"\n  fi\n  if [ ! -z \"$SE_HTTPS_PRIVATE_KEY\" ]; then\n    append_se_opts \"--https-private-key\" \"${SE_HTTPS_PRIVATE_KEY}\"\n  fi\nfi\n\nif [ ! -z \"${SE_NODE_DOCKER_CONFIG_FILENAME}\" ]; then\n  CONFIG_FILE=\"/opt/selenium/${SE_NODE_DOCKER_CONFIG_FILENAME}\"\nfi\n\necho \"Selenium Grid Node Docker configuration: \"\ncat \"${CONFIG_FILE}\"\n\nEXTRA_LIBS=\"\"\nif [ -n \"${SE_EXTRA_LIBS}\" ]; then\n  EXTRA_LIBS=\"--ext ${SE_EXTRA_LIBS}\"\nfi\n\nif [ \"${SE_ENABLE_TRACING}\" = \"true\" ] && [ -n \"${SE_OTEL_EXPORTER_ENDPOINT}\" ]; then\n  EXTERNAL_JARS=$(</external_jars/.classpath.txt)\n  if [ -n \"${EXTRA_LIBS}\" ] && [ -n \"${EXTERNAL_JARS}\" ]; then\n    EXTRA_LIBS=\"${EXTRA_LIBS}:${EXTERNAL_JARS}\"\n  elif [ -z \"${EXTRA_LIBS}\" ] && [ -n \"${EXTERNAL_JARS}\" ]; then\n    EXTRA_LIBS=\"--ext ${EXTERNAL_JARS}\"\n  fi\n  echo \"Tracing is enabled\"\n  if [ -n \"$SE_OTEL_SERVICE_NAME\" ]; then\n    SE_OTEL_JVM_ARGS=\"$SE_OTEL_JVM_ARGS -Dotel.resource.attributes=service.name=${SE_OTEL_SERVICE_NAME}${SE_OTEL_RESOURCE_ATTRIBUTES:+,${SE_OTEL_RESOURCE_ATTRIBUTES}}\"\n  fi\n  if [ -n \"$SE_OTEL_TRACES_EXPORTER\" ]; then\n    SE_OTEL_JVM_ARGS=\"$SE_OTEL_JVM_ARGS -Dotel.traces.exporter=${SE_OTEL_TRACES_EXPORTER}\"\n  fi\n  if [ -n \"$SE_OTEL_EXPORTER_ENDPOINT\" ]; then\n    SE_OTEL_JVM_ARGS=\"$SE_OTEL_JVM_ARGS -Dotel.exporter.otlp.endpoint=$(envsubst < <(echo ${SE_OTEL_EXPORTER_ENDPOINT}))\"\n  fi\n  if [ -n \"$SE_OTEL_JAVA_GLOBAL_AUTOCONFIGURE_ENABLED\" ]; then\n    SE_OTEL_JVM_ARGS=\"$SE_OTEL_JVM_ARGS -Dotel.java.global-autoconfigure.enabled=${SE_OTEL_JAVA_GLOBAL_AUTOCONFIGURE_ENABLED}\"\n  fi\n  if [ -n \"$SE_OTEL_JVM_ARGS\" ]; then\n    SE_JAVA_OPTS=\"$SE_JAVA_OPTS ${SE_OTEL_JVM_ARGS}\"\n  fi\nelse\n  append_se_opts \"--tracing\" \"false\"\n  SE_JAVA_OPTS=\"$SE_JAVA_OPTS -Dwebdriver.remote.enableTracing=false\"\n  echo \"Tracing is disabled\"\nfi\n\nif [ -n \"${EXTRA_LIBS}\" ]; then\n  echo \"Classpath will be enriched with these external jars : ${EXTRA_LIBS}\"\nfi\n\nif [ -n \"${SE_JAVA_HTTPCLIENT_VERSION}\" ]; then\n  SE_JAVA_OPTS=\"$SE_JAVA_OPTS -Dwebdriver.httpclient.version=${SE_JAVA_HTTPCLIENT_VERSION}\"\nfi\n\nif [ -n \"${SE_JAVA_OPTS_DEFAULT}\" ]; then\n  SE_JAVA_OPTS=\"${SE_JAVA_OPTS_DEFAULT} $SE_JAVA_OPTS\"\nfi\n\nfunction handle_heap_dump() {\n  /opt/bin/handle_heap_dump.sh /opt/selenium/logs\n}\nif [ \"${SE_JAVA_HEAP_DUMP}\" = \"true\" ]; then\n  SE_JAVA_OPTS=\"$SE_JAVA_OPTS -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=/opt/selenium/logs\"\n  trap handle_heap_dump ERR SIGTERM SIGINT\nfi\n\nif [ -n \"${JAVA_OPTS}\" ]; then\n  SE_JAVA_OPTS=\"$SE_JAVA_OPTS ${JAVA_OPTS}\"\nfi\n\necho \"Using JAVA_OPTS: ${SE_JAVA_OPTS}\"\n\njava ${SE_JAVA_OPTS} \\\n  -jar /opt/selenium/selenium-server.jar \\\n  ${EXTRA_LIBS} node \\\n  --publish-events tcp://\"${SE_EVENT_BUS_HOST}\":${SE_EVENT_BUS_PUBLISH_PORT} \\\n  --subscribe-events tcp://\"${SE_EVENT_BUS_HOST}\":${SE_EVENT_BUS_SUBSCRIBE_PORT} \\\n  --bind-host ${SE_BIND_HOST} \\\n  --detect-drivers false \\\n  --config ${CONFIG_FILE} \\\n  ${SE_OPTS}\n"
  },
  {
    "path": "NodeDocker/start-socat.sh",
    "content": "#!/usr/bin/env bash\n\n# set -e: exit asap if a command exits with a non-zero status\nset -e\n\nif stat /var/run/docker.sock; then\n  echo \"Starting socat, docker.sock found.\"\n  sudo socat TCP-L:2375,bind=127.0.0.1,fork,reuseaddr UNIX:/var/run/docker.sock\nelse\n  echo \"docker.sock not found.\"\nfi\n"
  },
  {
    "path": "NodeEdge/Dockerfile",
    "content": "ARG NAMESPACE=selenium\nARG VERSION=latest\nARG BASE=node-base\nFROM --platform=linux/amd64 ${NAMESPACE}/${BASE}:${VERSION}\nARG AUTHORS\nLABEL authors=${AUTHORS}\n\nUSER root\n\n#============================================\n# Microsoft Edge\n#============================================\n# can specify versions by EDGE_VERSION;\n#  e.g. microsoft-edge-beta=88.0.692.0-1\n#============================================\nARG EDGE_VERSION=\"microsoft-edge-stable\"\nRUN wget -q -O - https://packages.microsoft.com/keys/microsoft.asc | gpg --dearmor | tee /etc/apt/trusted.gpg.d/microsoft.gpg >/dev/null \\\n  && echo \"deb https://packages.microsoft.com/repos/edge stable main\" > /etc/apt/sources.list.d/microsoft-edge.list \\\n  && apt-get update -qqy \\\n  && if echo \"${EDGE_VERSION}\" | grep -qE \"microsoft-edge-stable[_|=][0-9]*\"; \\\n    then \\\n      EDGE_VERSION=$(echo \"$EDGE_VERSION\" | tr '=' '_') \\\n      && wget -qO microsoft-edge.deb \"https://packages.microsoft.com/repos/edge/pool/main/m/microsoft-edge-stable/${EDGE_VERSION}_$(dpkg --print-architecture).deb\" \\\n      && apt-get -qqy --no-install-recommends install --allow-downgrades ./microsoft-edge.deb \\\n      && rm -rf microsoft-edge.deb ; \\\n    else \\\n      apt-get -qqy --no-install-recommends install ${EDGE_VERSION} ; \\\n    fi \\\n  && rm -rf /var/lib/apt/lists/* /var/cache/apt/*\n\n#=================================\n# Edge Launch Script Wrapper\n#=================================\nCOPY wrap_edge_binary /opt/bin/wrap_edge_binary\nRUN /opt/bin/wrap_edge_binary\n\n#============================================\n# Edge webdriver\n#============================================\n# can specify versions by EDGE_DRIVER_VERSION\n# Latest released version will be used by default\n#============================================\nARG EDGE_DRIVER_VERSION\nRUN DRIVER_ARCH=$(if [ \"$(dpkg --print-architecture)\" = \"amd64\" ]; then echo \"linux64\"; else echo \"linux-aarch64\"; fi) \\\n  && if [ -z \"$EDGE_DRIVER_VERSION\" ]; \\\n  then EDGE_MAJOR_VERSION=$(microsoft-edge --version | sed -E \"s/.* ([0-9]+)(\\.[0-9]+){3}.*/\\1/\") \\\n    && EDGE_DRIVER_VERSION=$(wget --no-verbose -O - \"https://msedgedriver.microsoft.com/LATEST_RELEASE_${EDGE_MAJOR_VERSION}_LINUX\" | tr -cd \"\\11\\12\\15\\40-\\176\" | tr -d \"\\r\"); \\\n  fi \\\n  && echo \"Using msedgedriver version: \"$EDGE_DRIVER_VERSION \\\n  && wget --no-verbose -O /tmp/msedgedriver_${DRIVER_ARCH}.zip https://msedgedriver.microsoft.com/$EDGE_DRIVER_VERSION/edgedriver_${DRIVER_ARCH}.zip \\\n  && rm -rf /opt/selenium/msedgedriver \\\n  && unzip /tmp/msedgedriver_${DRIVER_ARCH}.zip -d /opt/selenium \\\n  && rm /tmp/msedgedriver_${DRIVER_ARCH}.zip \\\n  && mv /opt/selenium/msedgedriver /opt/selenium/msedgedriver-$EDGE_DRIVER_VERSION \\\n  && chmod 755 /opt/selenium/msedgedriver-$EDGE_DRIVER_VERSION \\\n  && ln -fs /opt/selenium/msedgedriver-$EDGE_DRIVER_VERSION /usr/bin/msedgedriver\n\n#============================================\n# Edge cleanup script and supervisord file\n#============================================\nCOPY edge-cleanup.sh /opt/bin/edge-cleanup.sh\nCOPY edge-cleanup.conf /etc/supervisor/conf.d/edge-cleanup.conf\nCOPY fluxbox-menu-browser /etc/X11/fluxbox/\n\nUSER ${SEL_UID}\n\n#============================================\n# Dumping Browser information for config\n#============================================\nRUN mkdir -p /opt/selenium/browsers/edge \\\n    && echo \"MicrosoftEdge\" > /opt/selenium/browsers/edge/name \\\n    && microsoft-edge --version | awk '{print $3}' > /opt/selenium/browsers/edge/version \\\n    && echo '{\"ms:edgeOptions\": {\"binary\": \"${SE_BROWSER_BINARY_LOCATION:-/usr/bin/microsoft-edge}\"}}' > /opt/selenium/browsers/edge/binary_location\n\nENV SE_OTEL_SERVICE_NAME=\"selenium-node-edge\" \\\n    SE_NODE_ENABLE_MANAGED_DOWNLOADS=\"true\"\n"
  },
  {
    "path": "NodeEdge/edge-cleanup.conf",
    "content": "; Documentation of this file format -> http://supervisord.org/configuration.html\n\n; Priority 0 - xvfb & fluxbox, 5 - x11vnc, 10 - noVNC, 15 - selenium-node\n\n[program:browserleftoverscleanup]\npriority=20\ncommand=bash -c \"if [ ${SE_ENABLE_BROWSER_LEFTOVERS_CLEANUP} = \"true\" ]; then /opt/bin/edge-cleanup.sh; fi\"\nautostart=%(ENV_SE_ENABLE_BROWSER_LEFTOVERS_CLEANUP)s\nautorestart=%(ENV_SE_ENABLE_BROWSER_LEFTOVERS_CLEANUP)s\nstopsignal=INT\n\n;Logs\nredirect_stderr=false\nstdout_logfile=/var/log/supervisor/browser-leftover-cleanup-stdout.log\nstderr_logfile=/var/log/supervisor/browser-leftover-cleanup-stderr.log\nstdout_logfile_maxbytes=50MB\nstderr_logfile_maxbytes=50MB\nstdout_logfile_backups=5\nstderr_logfile_backups=5\nstdout_capture_maxbytes=50MB\nstderr_capture_maxbytes=50MB\n"
  },
  {
    "path": "NodeEdge/edge-cleanup.sh",
    "content": "#!/bin/bash\n\n# Return error exit code in case of any failure, so supervisord will restart the script\nset -e\n\ncleanup_stuck_edge_processes() {\n  echo -n \"Killing Edge processes older than ${SE_BROWSER_LEFTOVERS_PROCESSES_SECS} seconds... \"\n  ps -e -o pid,etimes,command | grep -v grep | grep msedge/msedge | awk '{if($2>'${SE_BROWSER_LEFTOVERS_PROCESSES_SECS}') print $0}' | awk '{print $1}' | xargs -r kill -9\n  echo \"DONE.\"\n}\n\ncleanup_tmp_edge_files() {\n  echo -n \"Deleting all Edge files in /tmp... \"\n  find /tmp -name \".com.microsoft.Edge.*\" -type d -mtime +${SE_BROWSER_LEFTOVERS_TEMPFILES_DAYS} -exec rm -rf \"{}\" +\n  echo \"DONE.\"\n}\n\necho \"Edge cleanup script init with parameters: SE_BROWSER_LEFTOVERS_TEMPFILES_DAYS=${SE_BROWSER_LEFTOVERS_TEMPFILES_DAYS}, SE_BROWSER_LEFTOVERS_PROCESSES_SECS=${SE_BROWSER_LEFTOVERS_PROCESSES_SECS}, SE_BROWSER_LEFTOVERS_INTERVAL_SECS=${SE_BROWSER_LEFTOVERS_INTERVAL_SECS}.\"\n\n# Start the main loop\nwhile :; do\n  echo \"Starting cleanup daemon script.\"\n\n  # Clean up stuck processes\n  cleanup_stuck_edge_processes\n\n  # Wait a few seconds for the processes to stop before removing files\n  sleep 5\n\n  # Clean up temporary files\n  cleanup_tmp_edge_files\n\n  # Go to sleep for 1 hour\n  echo \"Cleanup daemon sleeping for ${SE_BROWSER_LEFTOVERS_INTERVAL_SECS} seconds.\"\n  sleep ${SE_BROWSER_LEFTOVERS_INTERVAL_SECS}\ndone\n"
  },
  {
    "path": "NodeEdge/fluxbox-menu-browser",
    "content": "[submenu] (Web Browsing) {}\n   [exec] (Microsoft Edge) { /usr/bin/microsoft-edge } <>\n[end]"
  },
  {
    "path": "NodeEdge/wrap_edge_binary",
    "content": "#!/bin/bash\n\nWRAPPER_PATH=$(readlink -f /usr/bin/microsoft-edge)\nBASE_PATH=\"$WRAPPER_PATH-base\"\nmv \"$WRAPPER_PATH\" \"$BASE_PATH\"\n\ncat >\"$WRAPPER_PATH\" <<_EOF\n#!/bin/bash\n\n# umask 002 ensures default permissions of files are 664 (rw-rw-r--) and directories are 775 (rwxrwxr-x).\numask 002\n\n# Debian/Ubuntu seems to not respect --lang, it instead needs to be a LANGUAGE environment var\n# See: https://stackoverflow.com/a/41893197/359999\nfor var in \"\\$@\"; do\n   if [[ \\$var == --lang=* ]]; then\n      LANGUAGE=\\${var//--lang=}\n   fi\ndone\n\n# Set language environment variable\nexport LANGUAGE=\"\\$LANGUAGE\"\n\n# Capture the filtered environment variables start with \"SE_BROWSER_ARGS_\" into an array\nmapfile -t BROWSER_ARGS_ARRAY < <(printenv | grep ^SE_BROWSER_ARGS_)\n# Iterate over the array\nfor var in \"\\${BROWSER_ARGS_ARRAY[@]}\"; do\n  # Split the variable into name and value\n  IFS='=' read -r name value <<< \"\\$var\"\n  SE_BROWSER_ARGS=\"\\$SE_BROWSER_ARGS \\$value\"\ndone\n\n# Note: exec -a below is a bashism.\nexec -a \"\\$0\" \"$BASE_PATH\" --no-sandbox \\$SE_BROWSER_ARGS \"\\$@\"\n_EOF\nchmod +x \"$WRAPPER_PATH\"\n"
  },
  {
    "path": "NodeFirefox/Dockerfile",
    "content": "ARG NAMESPACE=selenium\nARG VERSION=latest\nARG BASE=node-base\nFROM ${NAMESPACE}/${BASE}:${VERSION}\nARG AUTHORS\nLABEL authors=${AUTHORS}\n\nUSER root\n\n#============================================\n# Firefox cleanup script and supervisord file\n#============================================\nCOPY --chown=\"${SEL_UID}:${SEL_GID}\" firefox-cleanup.sh get_lang_package.sh install-firefox-apt.sh install-firefox-package.sh /opt/bin/\nCOPY --chown=\"${SEL_UID}:${SEL_GID}\" firefox-cleanup.conf /etc/supervisor/conf.d/firefox-cleanup.conf\nCOPY fluxbox-menu-browser /etc/X11/fluxbox/\nRUN chmod +x /opt/bin/firefox-cleanup.sh /opt/bin/get_lang_package.sh /opt/bin/install-firefox-apt.sh /opt/bin/install-firefox-package.sh\n\n#=========\n# Firefox\n#=========\nARG FIREFOX_VERSION=latest\nARG FIREFOX_DOWNLOAD_URL=\"\"\nARG FIREFOX_LANG_VERSION=${FIREFOX_VERSION}\nRUN apt-get update -qqy && \\\n  FIREFOX_MAJOR_VERSION=${FIREFOX_VERSION%%.*} && \\\n  ARCH=$(if [ \"$(dpkg --print-architecture)\" = \"amd64\" ]; then echo \"x86_64\"; else echo \"aarch64\"; fi) && \\\n  # Check if FIREFOX_MAJOR_VERSION is numeric before comparison \\\n  case \"$FIREFOX_MAJOR_VERSION\" in \\\n    ''|*[!0-9]*) IS_NUMERIC=false ;; \\\n    *) IS_NUMERIC=true ;; \\\n  esac && \\\n  if [ \"$(dpkg --print-architecture)\" = \"amd64\" ] || [ $FIREFOX_VERSION = \"latest\" ] || [ $FIREFOX_VERSION = \"beta-latest\" ] || [ $FIREFOX_VERSION = \"nightly-latest\" ] || [ $FIREFOX_VERSION = \"devedition-latest\" ] || [ $FIREFOX_VERSION = \"esr-latest\" ] || { [ \"$IS_NUMERIC\" = \"true\" ] && [ \"${FIREFOX_MAJOR_VERSION}\" -ge 136 ]; }; then \\\n    if [ $FIREFOX_VERSION = \"latest\" ] || [ $FIREFOX_VERSION = \"beta-latest\" ] || [ $FIREFOX_VERSION = \"nightly-latest\" ] || [ $FIREFOX_VERSION = \"devedition-latest\" ] || [ $FIREFOX_VERSION = \"esr-latest\" ]; then \\\n      /opt/bin/install-firefox-apt.sh \\\n      && FIREFOX_VERSION=$(echo \"-$FIREFOX_VERSION\" | sed 's/-latest//') \\\n      && apt install -y firefox$FIREFOX_VERSION \\\n      && INSTALL_VIA_APT=true \\\n      && if [ $FIREFOX_VERSION = \"-beta\" ] || [ $FIREFOX_VERSION = \"-nightly\" ] || [ $FIREFOX_VERSION = \"-devedition\" ] || [ $FIREFOX_VERSION = \"-esr\" ]; then \\\n        ln -fs $(which firefox$FIREFOX_VERSION) /usr/bin/firefox ; \\\n      fi ; \\\n    else \\\n      FIREFOX_DOWNLOAD_URL=\"https://download-installer.cdn.mozilla.net/pub/firefox/releases/$FIREFOX_VERSION/linux-$ARCH/en-US/firefox-$FIREFOX_VERSION.deb\" \\\n      && if [ \"404\" = \"$(curl -s -o /dev/null -w \"%{http_code}\" $FIREFOX_DOWNLOAD_URL)\" ]; then \\\n        FIREFOX_DOWNLOAD_URL=\"https://download-installer.cdn.mozilla.net/pub/firefox/releases/$FIREFOX_VERSION/linux-$ARCH/en-US/firefox-$FIREFOX_VERSION.tar.bz2\" ; \\\n      fi ; \\\n    fi \\\n  else \\\n    if [ ${FIREFOX_VERSION} = \"latest\" ] || [ ${FIREFOX_VERSION} = \"beta-latest\" ] || [ ${FIREFOX_VERSION} = \"nightly-latest\" ] || [ ${FIREFOX_VERSION} = \"devedition-latest\" ] || [ ${FIREFOX_VERSION} = \"esr-latest\" ] && [ ${FIREFOX_DOWNLOAD_URL} = \"\" ]; then \\\n      /opt/bin/install-firefox-apt.sh \\\n      && FIREFOX_VERSION=$(echo \"-$FIREFOX_VERSION\" | sed 's/-latest//') \\\n      && apt install -y firefox$FIREFOX_VERSION \\\n      && INSTALL_VIA_APT=true \\\n      && if [ $FIREFOX_VERSION = \"-beta\" ] || [ $FIREFOX_VERSION = \"-nightly\" ] || [ $FIREFOX_VERSION = \"-devedition\" ] || [ $FIREFOX_VERSION = \"-esr\" ]; then \\\n        ln -fs $(which firefox$FIREFOX_VERSION) /usr/bin/firefox ; \\\n      fi ; \\\n    else \\\n      FIREFOX_VERSION=\"nightly-latest\" \\\n      && FIREFOX_VERSION=$(echo \"-$FIREFOX_VERSION\" | sed 's/-latest//') \\\n      FIREFOX_DOWNLOAD_URL=\"${FIREFOX_DOWNLOAD_URL}\" ; \\\n    fi ; \\\n  fi && \\\n  if [ \"${INSTALL_VIA_APT}\" != \"true\" ]; then \\\n    /opt/bin/install-firefox-package.sh \"${FIREFOX_DOWNLOAD_URL}\" \"${FIREFOX_VERSION}\" ; \\\n  fi \\\n  # Download the language pack for Firefox \\\n  && /opt/bin/get_lang_package.sh ${FIREFOX_LANG_VERSION} \\\n  # Do one more upgrade to fix possible CVEs from Firefox dependencies\n  && apt-get update -qqy \\\n  && apt-get upgrade -yq \\\n  && rm -rf /var/lib/apt/lists/* /var/cache/apt/*\n\n#============\n# GeckoDriver\n#============\nARG GECKODRIVER_VERSION=latest\nRUN LATEST_VERSION=$(curl -s -L -o /dev/null -w '%{url_effective}\\n' https://github.com/mozilla/geckodriver/releases/latest | sed -E 's#.*/tag/(v[0-9.]+).*#\\1#') \\\n  && DRIVER_ARCH=$(if [ \"$(dpkg --print-architecture)\" = \"amd64\" ]; then echo \"linux64\"; else echo \"linux-aarch64\"; fi) \\\n  && GK_VERSION=$(if [ ${GECKODRIVER_VERSION:-latest} = \"latest\" ]; then echo \"${LATEST_VERSION}\"; else echo $GECKODRIVER_VERSION; fi) \\\n  && echo \"Using GeckoDriver version: \"$GK_VERSION \\\n  && wget --no-verbose -O /tmp/geckodriver.tar.gz https://github.com/mozilla/geckodriver/releases/download/${GK_VERSION}/geckodriver-${GK_VERSION}-${DRIVER_ARCH}.tar.gz \\\n  && rm -rf /opt/geckodriver \\\n  && tar -C /opt -zxf /tmp/geckodriver.tar.gz \\\n  && rm /tmp/geckodriver.tar.gz \\\n  && mv /opt/geckodriver /opt/geckodriver-$GK_VERSION \\\n  && chmod 755 /opt/geckodriver-$GK_VERSION \\\n  && ln -fs /opt/geckodriver-$GK_VERSION /usr/bin/geckodriver\n\nUSER ${SEL_UID}\n\n#============================================\n# Dumping Browser information for config\n#============================================\nRUN mkdir -p /opt/selenium/browsers/firefox \\\n    && echo \"firefox\" > /opt/selenium/browsers/firefox/name \\\n    && firefox --version | awk '{print $3}' > /opt/selenium/browsers/firefox/version \\\n    && echo '{\"moz:firefoxOptions\": {\"binary\": \"${SE_BROWSER_BINARY_LOCATION:-/usr/bin/firefox}\"}}' > /opt/selenium/browsers/firefox/binary_location\n\nENV SE_OTEL_SERVICE_NAME=\"selenium-node-firefox\" \\\n    SE_NODE_ENABLE_MANAGED_DOWNLOADS=\"true\"\n"
  },
  {
    "path": "NodeFirefox/firefox-cleanup.conf",
    "content": "; Documentation of this file format -> http://supervisord.org/configuration.html\n\n; Priority 0 - xvfb & fluxbox, 5 - x11vnc, 10 - noVNC, 15 - selenium-node\n\n[program:browserleftoverscleanup]\npriority=20\ncommand=bash -c \"if [ ${SE_ENABLE_BROWSER_LEFTOVERS_CLEANUP} = \"true\" ]; then /opt/bin/firefox-cleanup.sh; fi\"\nautostart=%(ENV_SE_ENABLE_BROWSER_LEFTOVERS_CLEANUP)s\nautorestart=%(ENV_SE_ENABLE_BROWSER_LEFTOVERS_CLEANUP)s\nstopsignal=INT\n\n;Logs\nredirect_stderr=false\nstdout_logfile=/var/log/supervisor/browser-leftover-cleanup-stdout.log\nstderr_logfile=/var/log/supervisor/browser-leftover-cleanup-stderr.log\nstdout_logfile_maxbytes=50MB\nstderr_logfile_maxbytes=50MB\nstdout_logfile_backups=5\nstderr_logfile_backups=5\nstdout_capture_maxbytes=50MB\nstderr_capture_maxbytes=50MB\n"
  },
  {
    "path": "NodeFirefox/firefox-cleanup.sh",
    "content": "#!/bin/bash\n\n# Return error exit code in case of any failure, so supervisord will restart the script\nset -e\n\ncleanup_stuck_firefox_processes() {\n  echo -n \"Killing Firefox processes older than ${SE_BROWSER_LEFTOVERS_PROCESSES_SECS} seconds... \"\n  ps -e -o pid,etimes,command | grep -v grep | grep firefox-bin | awk '{if($2>'${SE_BROWSER_LEFTOVERS_PROCESSES_SECS}') print $0}' | awk '{print $1}' | xargs -r kill -9\n  echo \"DONE.\"\n}\n\necho \"Firefox cleanup script init with parameters: SE_BROWSER_LEFTOVERS_PROCESSES_SECS=${SE_BROWSER_LEFTOVERS_PROCESSES_SECS}, SE_BROWSER_LEFTOVERS_INTERVAL_SECS=${SE_BROWSER_LEFTOVERS_INTERVAL_SECS}.\"\n\n# Start the main loop\nwhile :; do\n  echo \"Starting cleanup daemon script.\"\n\n  # Clean up stuck processes\n  cleanup_stuck_firefox_processes\n\n  # Go to sleep for 1 hour\n  echo \"Cleanup daemon sleeping for ${SE_BROWSER_LEFTOVERS_INTERVAL_SECS} seconds.\"\n  sleep ${SE_BROWSER_LEFTOVERS_INTERVAL_SECS}\ndone\n"
  },
  {
    "path": "NodeFirefox/fluxbox-menu-browser",
    "content": "[submenu] (Web Browsing) {}\n   [exec] (Mozilla Firefox) { /usr/bin/firefox } <>\n[end]"
  },
  {
    "path": "NodeFirefox/get_lang_package.sh",
    "content": "#!/bin/bash\n\nfunction on_exit() {\n  local exit_code=$?\n  rm -f /tmp/xpi_files.txt\n  exit $exit_code\n}\ntrap on_exit EXIT ERR\n\n# Script is used to download language packs for a specific version of Firefox.\n# It requires the version number as the first argument and the target directory as the second argument.\n\nVERSION=${1:-$(curl -sk https://product-details.mozilla.org/1.0/firefox_versions.json | jq -r '.LATEST_FIREFOX_VERSION')}\nTARGET_DIR=\"${2:-$(dirname $(readlink -f $(which firefox)))/distribution/extensions}\"\nBASE_URL=\"https://ftp.mozilla.org/pub/firefox/releases/$VERSION/linux-x86_64/xpi/\"\nif [ \"404\" = \"$(curl -s -o /dev/null -w \"%{http_code}\" ${BASE_URL})\" ]; then\n  VERSION=\"$(curl -sk https://product-details.mozilla.org/1.0/firefox_versions.json | jq -r '.LATEST_FIREFOX_VERSION')\"\n  BASE_URL=\"https://ftp.mozilla.org/pub/firefox/releases/$VERSION/linux-x86_64/xpi/\"\nfi\n\n# Create target directory if it doesn't exist\nmkdir -p \"${TARGET_DIR}\"\n\n# Download the list of files\nwget -q -O - \"${BASE_URL}\" | grep -oP '(?<=href=\")[^\"]*.xpi' >/tmp/xpi_files.txt\n\necho \"Downloading language packs for Firefox version $VERSION to $TARGET_DIR ...\"\n\n# Loop through each file and download it\nwhile IFS= read -r file; do\n  file=$(basename \"${file}\")\n  echo \"Downloading \"${BASE_URL}${file}\" ...\"\n  curl -sk -o \"${TARGET_DIR}/${file}\" \"${BASE_URL}${file}\"\n  target_file=\"${TARGET_DIR}/langpack-${file%.xpi}@firefox.mozilla.org.xpi\"\n  mv \"${TARGET_DIR}/${file}\" \"${target_file}\"\n  if [ -f \"${target_file}\" ]; then\n    echo \"Downloaded ${target_file}\"\n  fi\ndone </tmp/xpi_files.txt\n\necho \"All language packs are downloaded to $TARGET_DIR\"\n"
  },
  {
    "path": "NodeFirefox/install-firefox-apt.sh",
    "content": "#!/bin/bash\n\ninstall -d -m 0755 /etc/apt/keyrings\n\nwget -q https://packages.mozilla.org/apt/repo-signing-key.gpg -O- | sudo tee /etc/apt/keyrings/packages.mozilla.org.asc >/dev/null\n\ngpg -n -q --import --import-options import-show /etc/apt/keyrings/packages.mozilla.org.asc | awk '/pub/{getline; gsub(/^ +| +$/,\"\"); if($0 == \"35BAA0B33E9EB396F59CA838C0BA5CE6DC6315A3\") print \"\\nThe key fingerprint matches (\"$0\").\\n\"; else print \"\\nVerification failed: the fingerprint (\"$0\") does not match the expected one.\\n\"}'\n\necho \"deb [signed-by=/etc/apt/keyrings/packages.mozilla.org.asc] https://packages.mozilla.org/apt mozilla main\" | sudo tee -a /etc/apt/sources.list.d/mozilla.list >/dev/null\n\necho '\nPackage: *\nPin: origin packages.mozilla.org\nPin-Priority: 1000\n' | sudo tee /etc/apt/preferences.d/mozilla\n\nsudo apt-get update\n"
  },
  {
    "path": "NodeFirefox/install-firefox-package.sh",
    "content": "#!/bin/bash\n\nFIREFOX_DOWNLOAD_URL=$1\nFIREFOX_VERSION=$2\n\nfunction extract_package_tar_bz2() {\n  sudo rm -rf /opt/firefox\n  tar -C /opt -xjf /tmp/firefox.tar.bz2\n  rm -rf /tmp/firefox.tar.bz2\n}\n\nfunction extract_package_tar_xz() {\n  sudo rm -rf /opt/firefox\n  tar -C /opt -xJf /tmp/firefox.tar.xz\n  rm -rf /tmp/firefox.tar.xz\n}\n\nfunction install_package() {\n  sudo apt-get -qqy --no-install-recommends install libavcodec-extra libgtk-3-dev libdbus-glib-1-dev xz-utils\n  echo \"Installing Firefox from package...\"\n  sudo mv /opt/firefox \"/opt/firefox-${FIREFOX_VERSION}\"\n  sudo mkdir -p \"/opt/firefox-${FIREFOX_VERSION}/distribution/extensions\"\n  sudo ln -fs \"/opt/firefox-${FIREFOX_VERSION}/firefox\" /usr/bin/firefox\n}\n\nif [[ \"${FIREFOX_DOWNLOAD_URL}\" == *\".deb\"* ]]; then\n  echo \"Downloading Firefox from ${FIREFOX_DOWNLOAD_URL}\"\n  wget -q -O /tmp/firefox.deb \"${FIREFOX_DOWNLOAD_URL}\"\n  echo \"Installing Firefox from deb package...\"\n  sudo apt-get install -y --allow-downgrades -f /tmp/firefox.deb\n  rm -f /tmp/firefox.deb\n  if [ $FIREFOX_VERSION = \"-beta\" ] || [ $FIREFOX_VERSION = \"-nightly\" ] || [ $FIREFOX_VERSION = \"-devedition\" ] || [ $FIREFOX_VERSION = \"-esr\" ]; then\n    sudo ln -fs $(which firefox${FIREFOX_VERSION}) /usr/bin/firefox\n  fi\nelif [[ \"${FIREFOX_DOWNLOAD_URL}\" == *\".tar.bz2\"* ]]; then\n  echo \"Downloading Firefox from ${FIREFOX_DOWNLOAD_URL}\"\n  wget -q -O /tmp/firefox.tar.bz2 \"${FIREFOX_DOWNLOAD_URL}\"\n  extract_package_tar_bz2\n  install_package\n  rm -f /tmp/firefox.tar.bz2\nelif [[ \"${FIREFOX_DOWNLOAD_URL}\" == *\".tar.xz\"* ]]; then\n  echo \"Downloading Firefox from ${FIREFOX_DOWNLOAD_URL}\"\n  wget -q -O /tmp/firefox.tar.xz \"${FIREFOX_DOWNLOAD_URL}\"\n  extract_package_tar_xz\n  install_package\n  rm -f /tmp/firefox.tar.xz\nfi\n"
  },
  {
    "path": "NodeKubernetes/Dockerfile",
    "content": "ARG NAMESPACE=selenium\nARG VERSION=latest\nFROM ${NAMESPACE}/base:${VERSION}\nARG AUTHORS\nLABEL authors=${AUTHORS}\nARG MVN_SELENIUM_VERSION=latest.release\n\nUSER root\n\nRUN if [ -f \"/tmp/cs\" ]; then \\\n        java -jar /tmp/cs fetch --classpath --cache /external_jars \\\n        org.seleniumhq.selenium:selenium-node-kubernetes:${MVN_SELENIUM_VERSION} \\\n        > /external_jars/.classpath_node_kubernetes.txt \\\n        && chmod 664 /external_jars/.classpath_node_kubernetes.txt ; \\\n     fi \\\n    && rm -fr /root/.cache/*\n\n#========================\n# Selenium Node Kubernetes Configuration\n#========================\n\nUSER ${SEL_UID}\n\nEXPOSE 4444\n\nCOPY --chown=\"${SEL_UID}:${SEL_GID}\" start-selenium-grid-kubernetes.sh \\\n    /opt/bin/\n\nCOPY --chown=\"${SEL_UID}:${SEL_GID}\" config.toml /opt/selenium/kubernetes.toml\n\nCOPY selenium-grid-kubernetes.conf /etc/supervisor/conf.d/\n\nENV SE_OTEL_SERVICE_NAME=\"selenium-node-kubernetes\" \\\n    SE_EVENT_BUS_PUBLISH_PORT=\"4442\" \\\n    SE_EVENT_BUS_SUBSCRIBE_PORT=\"4443\" \\\n    SE_NODE_KUBERNETES_CONFIG_FILENAME=\"kubernetes.toml\" \\\n    SE_NODE_ENABLE_MANAGED_DOWNLOADS=\"true\" \\\n    SE_DYNAMIC_MAX_SESSIONS=\"\" \\\n    SE_DYNAMIC_OVERRIDE_MAX_SESSIONS=\"\"\n"
  },
  {
    "path": "NodeKubernetes/config.toml",
    "content": "[kubernetes]\n# Configs have a mapping between the container image to use and the capabilities\n# that need to be matched to start a K8s Job with the given image.\nconfigs = [\n    \"selenium/standalone-firefox:4.41.0-20260222\", '{\"browserName\": \"firefox\", \"platformName\": \"linux\"}',\n    \"selenium/standalone-chromium:4.41.0-20260222\", '{\"browserName\": \"chrome\", \"platformName\": \"linux\"}',\n    \"selenium/standalone-edge:4.41.0-20260222\", '{\"browserName\": \"MicrosoftEdge\", \"platformName\": \"linux\"}'\n    ]\n\n# ConfigMap template mode: prefix an entry with \"configmap:\" to load a full K8s Job\n# template from a ConfigMap instead of building one from the image name.\n# The ConfigMap must have a key named \"template\" containing the Job YAML.\n# The Job must include a container named \"browser\" with an image set.\n# Format: \"configmap:[namespace/]<configmap-name>\"\n# configs = [\n#     \"configmap:selenium/firefox-job-template\", '{\"browserName\": \"firefox\", \"platformName\": \"linux\"}',\n#     \"configmap:chrome-job-template\", '{\"browserName\": \"chrome\", \"platformName\": \"linux\"}'\n#     ]\n\n# Docker image used for video recording (set to \"false\" to disable. Recommend to use new browser\n# image tag which has video recorder/uploader inline).\n# video-image = \"selenium/video:ffmpeg-8.0-20260222\"\n\n# Session assets path — when the Node Pod has a PVC mounted at this path,\n# browser Jobs automatically share it for video/logs/capabilities persistence\nassets-path = \"/opt/selenium/assets\"\n\n# Kubernetes API server URL. When set, connects to a remote cluster instead of\n# using in-cluster or kubeconfig auto-discovery. Also enables port-forwarding\n# mode for browser Job connectivity.\n# url = \"https://my-k8s-cluster:6443\"\n\n# Most K8s manifest fields (tolerations, affinity, imagePullSecrets, dnsPolicy,\n# dnsConfig, securityContext, priorityClassName, nodeSelector, serviceAccountName,\n# resources, imagePullPolicy) are auto-inherited from the Node Pod's own spec\n# when running inside Kubernetes. Override only when needed:\n# namespace = \"selenium\"\n# service-account = \"selenium-node\"\n# image-pull-policy = \"IfNotPresent\"\n# resource-requests = \"cpu=500m,memory=512Mi\"\n# resource-limits = \"cpu=1,memory=1Gi\"\n# node-selector = \"disktype=ssd\"\n# server-start-timeout = 120\n\n# Seconds to wait for containers to shut down gracefully before force-killing them\n# termination-grace-period = 30\n\n# Prefix filter for inheriting labels/annotations from the Node Pod to browser Jobs.\n# Only labels/annotations starting with this prefix are copied. Empty string inherits all.\n# label-inherit-prefix = \"se/\"\n"
  },
  {
    "path": "NodeKubernetes/selenium-grid-kubernetes.conf",
    "content": "; Documentation of this file format -> http://supervisord.org/configuration.html\n\n; Priority 5 - selenium-kubernetes\n\n[program:selenium-grid-kubernetes]\npriority=5\ncommand=/opt/bin/start-selenium-grid-kubernetes.sh\nautostart=true\nautorestart=false\nstartsecs=0\nstartretries=0\n\n;Logs (all activity redirected to stdout so it can be seen through \"kubectl logs\")\nredirect_stderr=true\nstdout_logfile=/dev/stdout\nstdout_logfile_maxbytes=0\n"
  },
  {
    "path": "NodeKubernetes/start-selenium-grid-kubernetes.sh",
    "content": "#!/usr/bin/env bash\n\n# set -e: exit asap if a command exits with a non-zero status\nset -e\n\necho \"Starting Selenium Grid Node Kubernetes...\"\n\nfunction append_se_opts() {\n  local option=\"${1}\"\n  local value=\"${2:-\"\"}\"\n  local log_message=\"${3:-true}\"\n  if [[ \"${SE_OPTS}\" != *\"${option}\"* ]]; then\n    if [ \"${log_message}\" = \"true\" ]; then\n      echo \"Appending Selenium option: ${option} ${value}\"\n    else\n      echo \"Appending Selenium option: ${option} $(mask ${value})\"\n    fi\n    SE_OPTS=\"${SE_OPTS} ${option}\"\n    if [ ! -z \"${value}\" ]; then\n      SE_OPTS=\"${SE_OPTS} ${value}\"\n    fi\n  else\n    echo \"Selenium option: ${option} already set in env variable SE_OPTS. Ignore new option: ${option} ${value}\"\n  fi\n}\n\nif [[ -z \"${SE_EVENT_BUS_HOST}\" ]]; then\n  echo \"SE_EVENT_BUS_HOST not set, exiting!\" 1>&2\n  exit 1\nfi\n\nif [[ -z \"${SE_EVENT_BUS_PUBLISH_PORT}\" ]]; then\n  echo \"SE_EVENT_BUS_PUBLISH_PORT not set, exiting!\" 1>&2\n  exit 1\nfi\n\nif [[ -z \"${SE_EVENT_BUS_SUBSCRIBE_PORT}\" ]]; then\n  echo \"SE_EVENT_BUS_SUBSCRIBE_PORT not set, exiting!\" 1>&2\n  exit 1\nfi\n\nif [ ! -z \"$SE_OPTS\" ]; then\n  echo \"Appending Selenium options: ${SE_OPTS}\"\nfi\n\n# Specific environment variables name for Node Dynamic only, it will not effect browser container when pass through\n\nif [ ! -z \"${SE_DYNAMIC_MAX_SESSIONS}\" ]; then\n  append_se_opts \"--max-sessions\" \"${SE_DYNAMIC_MAX_SESSIONS}\"\nfi\n\nif [ ! -z \"${SE_DYNAMIC_OVERRIDE_MAX_SESSIONS}\" ]; then\n  append_se_opts \"--override-max-sessions\" \"${SE_DYNAMIC_OVERRIDE_MAX_SESSIONS}\"\nfi\n\nif [ ! -z \"${SE_NODE_GRID_URL}\" ]; then\n  append_se_opts \"--grid-url\" \"${SE_NODE_GRID_URL}\"\nfi\n\nif [ ! -z \"${SE_NODE_HEARTBEAT_PERIOD}\" ]; then\n  append_se_opts \"--heartbeat-period\" \"${SE_NODE_HEARTBEAT_PERIOD}\"\nfi\n\nif [ ! -z \"${SE_NODE_SESSION_TIMEOUT}\" ]; then\n  append_se_opts \"--session-timeout\" \"${SE_NODE_SESSION_TIMEOUT}\"\nfi\n\nif [ ! -z \"${SE_NODE_ENABLE_CDP}\" ]; then\n  append_se_opts \"--enable-cdp\" \"${SE_NODE_ENABLE_CDP}\"\nfi\n\nif [ ! -z \"${SE_NODE_ENABLE_MANAGED_DOWNLOADS}\" ]; then\n  append_se_opts \"--enable-managed-downloads\" \"${SE_NODE_ENABLE_MANAGED_DOWNLOADS}\"\nfi\n\nif [ ! -z \"${SE_NODE_CONNECTION_LIMIT_PER_SESSION}\" ]; then\n  append_se_opts \"--connection-limit-per-session\" \"${SE_NODE_CONNECTION_LIMIT_PER_SESSION}\"\nfi\n\nif [ ! -z \"$SE_LOG_LEVEL\" ]; then\n  append_se_opts \"--log-level\" \"${SE_LOG_LEVEL}\"\nfi\n\nif [ ! -z \"$SE_HTTP_LOGS\" ]; then\n  append_se_opts \"--http-logs\" \"${SE_HTTP_LOGS}\"\nfi\n\nif [ ! -z \"$SE_STRUCTURED_LOGS\" ]; then\n  append_se_opts \"--structured-logs\" \"${SE_STRUCTURED_LOGS}\"\nfi\n\nif [ ! -z \"$SE_PLAIN_LOGS\" ]; then\n  append_se_opts \"--plain-logs\" \"${SE_PLAIN_LOGS}\"\nfi\n\nif [ ! -z \"$SE_EXTERNAL_URL\" ]; then\n  append_se_opts \"--external-url\" \"${SE_EXTERNAL_URL}\"\nfi\n\nif [ ! -z \"$SE_REGISTRATION_SECRET\" ]; then\n  append_se_opts \"--registration-secret\" \"${SE_REGISTRATION_SECRET}\" \"false\"\nfi\n\nif [ \"${SE_ENABLE_TLS}\" = \"true\" ]; then\n  # Configure truststore for the server\n  if [ ! -z \"$SE_JAVA_SSL_TRUST_STORE\" ]; then\n    echo \"Appending Java options: -Djavax.net.ssl.trustStore=${SE_JAVA_SSL_TRUST_STORE}\"\n    SE_JAVA_OPTS=\"$SE_JAVA_OPTS -Djavax.net.ssl.trustStore=${SE_JAVA_SSL_TRUST_STORE}\"\n  fi\n  if [ -f \"${SE_JAVA_SSL_TRUST_STORE_PASSWORD}\" ]; then\n    echo \"Getting Truststore password from ${SE_JAVA_SSL_TRUST_STORE_PASSWORD} to set Java options: -Djavax.net.ssl.trustStorePassword\"\n    SE_JAVA_SSL_TRUST_STORE_PASSWORD=\"$(cat ${SE_JAVA_SSL_TRUST_STORE_PASSWORD})\"\n  fi\n  if [ ! -z \"${SE_JAVA_SSL_TRUST_STORE_PASSWORD}\" ]; then\n    echo \"Appending Java options: -Djavax.net.ssl.trustStorePassword=$(mask ${SE_JAVA_SSL_TRUST_STORE_PASSWORD})\"\n    SE_JAVA_OPTS=\"$SE_JAVA_OPTS -Djavax.net.ssl.trustStorePassword=${SE_JAVA_SSL_TRUST_STORE_PASSWORD}\"\n  fi\n  echo \"Appending Java options: -Djdk.internal.httpclient.disableHostnameVerification=${SE_JAVA_DISABLE_HOSTNAME_VERIFICATION}\"\n  SE_JAVA_OPTS=\"$SE_JAVA_OPTS -Djdk.internal.httpclient.disableHostnameVerification=${SE_JAVA_DISABLE_HOSTNAME_VERIFICATION}\"\n  # Configure certificate and private key for component communication\n  if [ ! -z \"$SE_HTTPS_CERTIFICATE\" ]; then\n    append_se_opts \"--https-certificate\" \"${SE_HTTPS_CERTIFICATE}\"\n  fi\n  if [ ! -z \"$SE_HTTPS_PRIVATE_KEY\" ]; then\n    append_se_opts \"--https-private-key\" \"${SE_HTTPS_PRIVATE_KEY}\"\n  fi\nfi\n\nif [ ! -z \"${SE_NODE_KUBERNETES_CONFIG_FILENAME}\" ]; then\n  CONFIG_FILE=\"/opt/selenium/${SE_NODE_KUBERNETES_CONFIG_FILENAME}\"\nfi\n\necho \"Selenium Grid Node Kubernetes configuration: \"\ncat \"${CONFIG_FILE}\"\n\nEXTRA_LIBS=\"\"\nif [[ -f \"/external_jars/.classpath_node_kubernetes.txt\" ]]; then\n  EXTERNAL_JARS=$(</external_jars/.classpath_node_kubernetes.txt)\n  EXTRA_LIBS=\"--ext ${EXTERNAL_JARS}\"\nfi\n\nif [ -n \"${SE_EXTRA_LIBS}\" ]; then\n  EXTRA_LIBS=\"${EXTRA_LIBS}:${SE_EXTRA_LIBS}\"\nfi\n\nif [ \"${SE_ENABLE_TRACING}\" = \"true\" ] && [ -n \"${SE_OTEL_EXPORTER_ENDPOINT}\" ]; then\n  EXTERNAL_JARS=$(</external_jars/.classpath.txt)\n  if [ -n \"${EXTRA_LIBS}\" ] && [ -n \"${EXTERNAL_JARS}\" ]; then\n    EXTRA_LIBS=\"${EXTRA_LIBS}:${EXTERNAL_JARS}\"\n  elif [ -z \"${EXTRA_LIBS}\" ] && [ -n \"${EXTERNAL_JARS}\" ]; then\n    EXTRA_LIBS=\"--ext ${EXTERNAL_JARS}\"\n  fi\n  echo \"Tracing is enabled\"\n  if [ -n \"$SE_OTEL_SERVICE_NAME\" ]; then\n    SE_OTEL_JVM_ARGS=\"$SE_OTEL_JVM_ARGS -Dotel.resource.attributes=service.name=${SE_OTEL_SERVICE_NAME}${SE_OTEL_RESOURCE_ATTRIBUTES:+,${SE_OTEL_RESOURCE_ATTRIBUTES}}\"\n  fi\n  if [ -n \"$SE_OTEL_TRACES_EXPORTER\" ]; then\n    SE_OTEL_JVM_ARGS=\"$SE_OTEL_JVM_ARGS -Dotel.traces.exporter=${SE_OTEL_TRACES_EXPORTER}\"\n  fi\n  if [ -n \"$SE_OTEL_EXPORTER_ENDPOINT\" ]; then\n    SE_OTEL_JVM_ARGS=\"$SE_OTEL_JVM_ARGS -Dotel.exporter.otlp.endpoint=$(envsubst < <(echo ${SE_OTEL_EXPORTER_ENDPOINT}))\"\n  fi\n  if [ -n \"$SE_OTEL_JAVA_GLOBAL_AUTOCONFIGURE_ENABLED\" ]; then\n    SE_OTEL_JVM_ARGS=\"$SE_OTEL_JVM_ARGS -Dotel.java.global-autoconfigure.enabled=${SE_OTEL_JAVA_GLOBAL_AUTOCONFIGURE_ENABLED}\"\n  fi\n  if [ -n \"$SE_OTEL_JVM_ARGS\" ]; then\n    SE_JAVA_OPTS=\"$SE_JAVA_OPTS ${SE_OTEL_JVM_ARGS}\"\n  fi\nelse\n  append_se_opts \"--tracing\" \"false\"\n  SE_JAVA_OPTS=\"$SE_JAVA_OPTS -Dwebdriver.remote.enableTracing=false\"\n  echo \"Tracing is disabled\"\nfi\n\nif [ -n \"${EXTRA_LIBS}\" ]; then\n  echo \"Classpath will be enriched with these external jars : ${EXTRA_LIBS}\"\nfi\n\nif [ -n \"${SE_JAVA_HTTPCLIENT_VERSION}\" ]; then\n  SE_JAVA_OPTS=\"$SE_JAVA_OPTS -Dwebdriver.httpclient.version=${SE_JAVA_HTTPCLIENT_VERSION}\"\nfi\n\nif [ -n \"${SE_JAVA_OPTS_DEFAULT}\" ]; then\n  SE_JAVA_OPTS=\"${SE_JAVA_OPTS_DEFAULT} $SE_JAVA_OPTS\"\nfi\n\nfunction handle_heap_dump() {\n  /opt/bin/handle_heap_dump.sh /opt/selenium/logs\n}\nif [ \"${SE_JAVA_HEAP_DUMP}\" = \"true\" ]; then\n  SE_JAVA_OPTS=\"$SE_JAVA_OPTS -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=/opt/selenium/logs\"\n  trap handle_heap_dump ERR SIGTERM SIGINT\nfi\n\nif [ -n \"${JAVA_OPTS}\" ]; then\n  SE_JAVA_OPTS=\"$SE_JAVA_OPTS ${JAVA_OPTS}\"\nfi\n\necho \"Using JAVA_OPTS: ${SE_JAVA_OPTS}\"\n\njava ${SE_JAVA_OPTS} \\\n  -jar /opt/selenium/selenium-server.jar \\\n  ${EXTRA_LIBS} node \\\n  --publish-events tcp://\"${SE_EVENT_BUS_HOST}\":${SE_EVENT_BUS_PUBLISH_PORT} \\\n  --subscribe-events tcp://\"${SE_EVENT_BUS_HOST}\":${SE_EVENT_BUS_SUBSCRIBE_PORT} \\\n  --bind-host ${SE_BIND_HOST} \\\n  --detect-drivers false \\\n  --config ${CONFIG_FILE} \\\n  ${SE_OPTS}\n"
  },
  {
    "path": "README.md",
    "content": "[![Build & test](https://github.com/SeleniumHQ/docker-selenium/actions/workflows/build-test.yml/badge.svg)](https://github.com/SeleniumHQ/docker-selenium/actions/workflows/build-test.yml)\n[![Deploys](https://github.com/SeleniumHQ/docker-selenium/actions/workflows/deploy.yml/badge.svg)](https://github.com/SeleniumHQ/docker-selenium/actions/workflows/deploy.yml)\n[![Release Charts](https://github.com/SeleniumHQ/docker-selenium/actions/workflows/helm-chart-release.yml/badge.svg)](https://github.com/SeleniumHQ/docker-selenium/actions/workflows/helm-chart-release.yml)\n[![Nightly](https://github.com/SeleniumHQ/docker-selenium/actions/workflows/nightly.yml/badge.svg)](https://github.com/SeleniumHQ/docker-selenium/actions/workflows/nightly.yml)\n[![Update Dev/Beta Browser Images](https://github.com/SeleniumHQ/docker-selenium/actions/workflows/update-dev-beta-browser-images.yml/badge.svg)](https://github.com/SeleniumHQ/docker-selenium/actions/workflows/update-dev-beta-browser-images.yml)\n[![Releases downloads](https://img.shields.io/github/downloads/seleniumhq/docker-selenium/total.svg)](https://github.com/SeleniumHQ/docker-selenium/releases)\n[<img src=\"https://devin.ai/assets/deepwiki-badge.png\" alt=\"Ask DeepWiki.com\" height=\"20\"/>](https://deepwiki.com/SeleniumHQ/docker-selenium)\n\n![GitHub Last Commit](https://img.shields.io/github/last-commit/seleniumhq/docker-selenium)\n[![GitHub Release](https://img.shields.io/github/v/release/seleniumhq/docker-selenium?link=https%3A%2F%2Fgithub.com%2Fseleniumhq%2Fdocker-selenium%2Freleases%2Flatest&label=latest%20Image)](https://github.com/seleniumhq/docker-selenium/releases/)\n![GitHub Commits Since Latest Release](https://img.shields.io/github/commits-since/seleniumhq/docker-selenium/latest)\n![GitHub Commit Activity](https://img.shields.io/github/commit-activity/m/seleniumhq/docker-selenium)\n![GitHub Contributors](https://img.shields.io/github/contributors/seleniumhq/docker-selenium?label=Contributors%20-%20Thank%20you!)\n\n# Docker images for the Selenium Grid Server\n\nThe project is made possible by volunteer contributors who have put in thousands of hours of their own time, \nand made the source code freely available under the [Apache License 2.0](LICENSE.md).\n\nThese Docker images come with a handful of tags to simplify its usage, have a look at them in one of \nour [releases](https://github.com/SeleniumHQ/docker-selenium/releases/tag/4.41.0-20260222).\n\nTo get notifications of new releases, add yourself as a \"Releases only\" watcher. \n\nThese images are published to the Docker Hub registry at [Selenium Docker Hub](https://hub.docker.com/u/selenium).\n- Hub: [![Docker Pulls](https://img.shields.io/docker/pulls/selenium/hub.svg?maxAge=604800)](https://hub.docker.com/r/selenium/hub/)\n- Node-Chrome: [![Docker Pulls](https://img.shields.io/docker/pulls/selenium/node-chrome.svg?maxAge=604800)](https://hub.docker.com/r/selenium/node-chrome/)\n- Standalone-Chrome: [![Docker Pulls](https://img.shields.io/docker/pulls/selenium/standalone-chrome.svg?maxAge=604800)](https://hub.docker.com/r/selenium/standalone-chrome/)\n\nHelm Chart enables the creation of a Selenium Grid Server in Kubernetes at [![Artifact Hub](https://img.shields.io/endpoint?url=https://artifacthub.io/badge/repository/selenium-grid)](https://artifacthub.io/packages/search?repo=selenium-grid)\n\n## Community\n\nDo you need help to use these Docker images?\nTalk to us at https://www.selenium.dev/support/\n\n## Contents\n\n<!-- TOC -->\n* [Community](#community)\n* [Contents](#contents)\n* [System Recommendations](#system-recommendations)\n* [Quick start](#quick-start)\n  * [Try them out in a ready-to-use GitPod environment!](#try-them-out-in-a-ready-to-use-gitpod-environment)\n* [Experimental Multi-Arch amd64/aarch64/armhf Images](#experimental-multi-arch-amd64aarch64armhf-images)\n* [Nightly Images](#nightly-images)\n* [Dev and Beta Channel Browser Images](#dev-and-beta-channel-browser-images)\n  * [Dev and Beta Standalone Mode](#dev-and-beta-standalone-mode)\n  * [Dev and Beta on the Grid](#dev-and-beta-on-the-grid)\n* [Single Node/Standalone Image With All Browsers](#single-nodestandalone-image-with-all-browsers)\n* [Environment Variables](#environment-variables)\n* [Execution modes](#execution-modes)\n  * [Standalone](#standalone)\n  * [Hub and Nodes](#hub-and-nodes)\n  * [Fully distributed mode - Router, Queue, Distributor, EventBus, SessionMap and Nodes](#fully-distributed-mode---router-queue-distributor-eventbus-sessionmap-and-nodes)\n* [Video recording](#video-recording)\n* [Video recording with dynamic file name based on metadata in tests](#video-recording-with-dynamic-file-name-based-on-metadata-in-tests)\n* [Video recording and uploading](#video-recording-and-uploading)\n* [Dynamic Grid](#dynamic-grid)\n  * [Configuration example](#configuration-example)\n  * [Share volumes config of Dynamic Grid container to node browser containers](#share-volumes-config-of-dynamic-grid-container-to-node-browser-containers)\n  * [Execution with Hub & Node roles](#execution-with-hub--node-roles)\n  * [Execution with Standalone roles](#execution-with-standalone-roles)\n  * [Using Dynamic Grid in different machines/VMs](#using-dynamic-grid-in-different-machinesvms)\n  * [Execution with Docker Compose](#execution-with-docker-compose)\n  * [Configuring the child containers](#configuring-the-child-containers)\n  * [Video recording, screen resolution, and time zones in a Dynamic Grid](#video-recording-screen-resolution-and-time-zones-in-a-dynamic-grid)\n  * [Time zone configuration via env variable](#time-zone-configuration-via-env-variable)\n* [Deploying to Kubernetes](#deploying-to-kubernetes)\n* [Configuring the containers](#configuring-the-containers)\n  * [SE_OPTS Selenium Configuration Options](#se_opts-selenium-configuration-options)\n  * [SE_JAVA_OPTS Java Environment Options](#se_java_opts-java-environment-options)\n  * [SE_BROWSER_ARGS_* Add arguments for launching browser](#se_browser_args_-add-arguments-for-launching-browser)\n  * [Node configuration options](#node-configuration-options)\n  * [Node configuration relay commands](#node-configuration-relay-commands)\n  * [Setting Sub Path](#setting-sub-path)\n  * [Setting Screen Resolution](#setting-screen-resolution)\n  * [Grid Url and Session Timeout](#grid-url-and-session-timeout)\n  * [Session request timeout](#session-request-timeout)\n  * [Increasing session concurrency per container](#increasing-session-concurrency-per-container)\n  * [Running in Headless mode](#running-in-headless-mode)\n  * [Stopping the Node/Standalone after N sessions have been executed](#stopping-the-nodestandalone-after-n-sessions-have-been-executed)\n  * [Automatic browser leftovers cleanup](#automatic-browser-leftovers-cleanup)\n  * [Mask sensitive information in console logs](#mask-sensitive-information-in-console-logs)\n  * [Secure Connection](#secure-connection)\n  * [Browser language and locale](#browser-language-and-locale)\n  * [Managing processes in container](#managing-processes-in-container)\n* [Building the images](#building-the-images)\n* [Build the images with specific versions](#build-the-images-with-specific-versions)\n* [Upgrade browser version in the images](#upgrade-browser-version-in-the-images)\n* [Upgrade browser and driver versions in the images](#upgrade-browser-and-driver-versions-in-the-images)\n* [Waiting for the Grid to be ready](#waiting-for-the-grid-to-be-ready)\n  * [Adding a HEALTHCHECK to the Grid](#adding-a-healthcheck-to-the-grid)\n  * [Using a bash script to wait for the Grid](#using-a-bash-script-to-wait-for-the-grid)\n* [Install certificates for Chromium-based browsers](#install-certificates-for-chromium-based-browsers)\n* [Alternative method: Add certificates to existing Selenium based images for browsers](#alternative-method-add-certificates-to-existing-selenium-based-images-for-browsers)\n* [Debugging](#debugging)\n  * [Using a VNC client](#using-a-vnc-client)\n  * [Using your browser (no VNC client is needed)](#using-your-browser-no-vnc-client-is-needed)\n  * [Disabling VNC](#disabling-vnc)\n* [Tracing in Grid](#tracing-in-grid)\n* [Troubleshooting](#troubleshooting)\n  * [`--shm-size=\"2g\"`](#--shm-size2g)\n  * [Headless](#headless)\n  * [Mounting volumes to retrieve downloaded files](#mounting-volumes-to-retrieve-downloaded-files)\n  * [Mounting volumes to retrieve video files](#mounting-volumes-to-retrieve-video-files)\n* [Stargazers over time](#stargazers-over-time)\n<!-- TOC -->\n\n## System Recommendations\n- Docker Engine 26.1.4 or later\n- Docker Compose v2.34.0 or later\n- Docker Buildx v0.25.0 or later\n- Kubernetes v1.26.15 or later\n\n## Quick start\n\n1. Start a Docker container with Firefox\n\n```bash\ndocker run -d -p 4444:4444 -p 7900:7900 --shm-size=\"2g\" selenium/standalone-firefox:4.41.0-20260222\n```\n\n2. Point your WebDriver tests to http://localhost:4444\n\n3. That's it! \n\n4. (Optional) To see what is happening inside the container, head to <http://localhost:7900/?autoconnect=1&resize=scale&password=secret>.\n\nFor more details about visualising the container activity, check the [Debugging](#debugging) section.\n\n:point_up: When executing `docker run` for an image that contains a browser please use \nthe flag `--shm-size=2g` to use the host's shared memory.\n  \n:point_up: Always use a Docker image with a full tag to pin a specific browser and Grid version.\nSee [Tagging Conventions](https://github.com/SeleniumHQ/docker-selenium/wiki/Tagging-Convention) for details.\n\n### Try them out in a ready-to-use GitPod environment!\n\n[![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/#https://github.com/SeleniumHQ/docker-selenium)\n\n___\n\n## Experimental Multi-Arch amd64/aarch64/armhf Images\n\nFrom image tag based `4.21.0` onwards, the architectures supported by this project are as below:\n\n|       Architecture        | Available |\n|:-------------------------:|:---------:|\n|    x86_64 (aka amd64)     |     ✅     |\n| aarch64 (aka arm64/armv8) |     ✅     |\n| armhf (aka arm32/armv7l)  |     ❌     |\n\n### Browser images in multi-arch\n\nThe following browsers are available in multi-arch images:\n\n|       Architecture        | Chrome | Chromium | Firefox | Edge | CfT |\n|:-------------------------:|:------:|:--------:|:-------:|:----:|-----|\n|    x86_64 (aka amd64)     |   ✅    |    ✅     |    ✅    |  ✅   | ✅   |\n| aarch64 (aka arm64/armv8) |   ❌    |    ✅     |    ✅    |  ❌   | ❌   |\n| armhf (aka arm32/armv7l)  |   ❌    |    ❌     |    ❌    |  ❌   | ❌   |\n\nNote:\n\n- **Running an AMD64 image under emulation on an ARM64 platform is not recommended due to performance and [stability issues](https://github.com/SeleniumHQ/docker-selenium/issues/2298), or browsers could not launch.**\n\n- Google does not build Chrome (`google-chrome`) for Linux/ARM platforms. Hence, the Chrome (node and standalone) images are only available for AMD64.\nSimilarly, Microsoft does not build Edge (`microsoft-edge`) for Linux/ARM platforms.\n\n- We also supply Chrome for Testing (CfT), but it is only available for Linux/AMD64.\n\n- For Linux/ARM use the open source Chromium browser. The Chromium (node and standalone) images are available in multi-arch.\n\n```bash\n$ docker run --rm -it -p 4444:4444 -p 5900:5900 -p 7900:7900 --shm-size 2g selenium/standalone-chromium:latest\n```\n\n- Mozilla Firefox now is available for Linux/ARM64 via APT stable channel from v136+. The Firefox (node and standalone) images are available in multi-arch.\n\n~~Multi-arch images are tested on CircleCI with resource class Linux/ARM64. See the status below.~~ (Moved to GitHub Actions)\n\n[![CircleCI](https://dl.circleci.com/status-badge/img/gh/SeleniumHQ/docker-selenium/tree/trunk.svg?style=svg)](https://dl.circleci.com/status-badge/redirect/gh/SeleniumHQ/docker-selenium/tree/trunk)\n\n### History of the multi-arch images\n\nFor experimental docker container images, which run on platforms such as the Apple M-series or Raspberry Pi,\nthe repository at\n[seleniumhq-community/docker-seleniarm](https://github.com/seleniumhq-community/docker-seleniarm) provided images which\nare published on the [Seleniarm Docker Hub](https://hub.docker.com/u/seleniarm) registry.\n\nSee issue [#1076](https://github.com/SeleniumHQ/docker-selenium/issues/1076) for more information on these images.\n\nNow, the fork [seleniumhq-community/docker-seleniarm](https://github.com/seleniumhq-community/docker-seleniarm) was merged.\n\n### Build the multi-arch images locally\n\nWe recommend to enable the experimental feature [containerd image store](https://docs.docker.com/storage/containerd/) in Docker Engine.\n`containerd` understands multiplatform images, where a single image tag can refer to different variants covering a range of OS and hardware architectures.\nIt simplifies the process of building, storing, and distributing images across different platforms.\n\nA single command to enable that feature in Docker Engine:\n\n```bash\nmake set_containerd_image_store\n```\n\nNoted: That command is only compatible with Ubuntu. For users use Docker Desktop on macOS, it can be enabled easily via\n\n> `Settings > General > Use containerd for pulling and storing images`\n\nTo build all the images for multiplatform at once, run the following command:\n\n```bash\nPLATFORMS=linux/amd64,linux/arm64 make all\n```\n\nTo build the images for a specific platform, run the following command:\n\n```bash\nPLATFORMS=linux/arm64 make all\n```\n\nBy default, without specifying the `PLATFORMS` variable, the images are built with current host architecture.\n\nSimilarly, if you are using host ARM64 architecture, you can build the images for AMD64 architecture by running the following command:\n\n```bash\nPLATFORMS=linux/amd64 make all\n```\n\n___\n\n## Nightly Images\n\nNightly images are built on top of the [Nightly](https://github.com/SeleniumHQ/selenium/releases/tag/nightly) build on the upstream project [Selenium](https://github.com/SeleniumHQ/selenium) with the latest changes on main branch in this repository. The image tag is `nightly`. This is not recommended to use images in production. It is only for testing purpose.\n\n```bash\n$ docker run -d -p 4442-4444:4442-4444 --name selenium-hub selenium/hub:nightly\n```\n\nCheck out the docker compose to get started with Nightly images [docker-compose-v3-full-grid-nightly.yml](docker-compose-v3-full-grid-nightly.yml)\n\n## Dev and Beta Channel Browser Images\n\nTo run tests or otherwise work with pre-release browsers, Google, Mozilla, and Microsoft maintain a Dev and Beta release channel for those who need to see what's soon to be released to the general population.  \n\n### Dev and Beta Standalone Mode\n\nHere are the instructions to run them in Standalone mode:\n\n**Chrome Beta:**\n\n```bash\n$ docker run --platform linux/amd64 --rm -it -p 4444:4444 -p 7900:7900 --shm-size 2g selenium/standalone-chrome:beta\n```\n\n**Chrome Dev:**\n\n```bash\n$ docker run --platform linux/amd64 --rm -it -p 4444:4444 -p 7900:7900 --shm-size 2g selenium/standalone-chrome:dev\n```\n\n**Firefox Beta:**\n\n```bash\n$ docker run --rm -it -p 4444:4444 -p 7900:7900 --shm-size 2g selenium/standalone-firefox:beta\n```\n\n**Firefox Dev:**\n\n```bash\n$ docker run --rm -it -p 4444:4444 -p 7900:7900 --shm-size 2g selenium/standalone-firefox:dev\n```\n\n**Edge Beta:**\n\n```bash\n$ docker run --platform linux/amd64 --rm -it -p 4444:4444 -p 7900:7900 --shm-size 2g selenium/standalone-edge:beta\n```\n\n**Edge Dev:**\n\n```bash\n$ docker run --platform linux/amd64 --rm -it -p 4444:4444 -p 7900:7900 --shm-size 2g selenium/standalone-edge:dev\n```\n\n**Chrome for Testing Beta:**\n\n```bash\n$ docker run --platform linux/amd64 --rm -it -p 4444:4444 -p 7900:7900 --shm-size 2g selenium/standalone-chrome-for-testing:beta\n```\n\n**Chrome for Testing Dev:**\n\n```bash\n$ docker run --platform linux/amd64 --rm -it -p 4444:4444 -p 7900:7900 --shm-size 2g selenium/standalone-chrome-for-testing:dev\n```\n\n**Chrome for Testing Canary:**\n\n```bash\n$ docker run --platform linux/amd64 --rm -it -p 4444:4444 -p 7900:7900 --shm-size 2g selenium/standalone-chrome-for-testing:canary\n```\n\n### Dev and Beta on the Grid\n\n**docker-compose-v3-beta-channel.yml:**\n```bash\n# To execute this docker compose yml file use `docker compose -f docker-compose-v3-beta-channel.yml up`\n# Add the `-d` flag at the end for detached execution\n# To stop the execution, hit Ctrl+C, and then `docker compose -f docker-compose-v3-beta-channel.yml down`\nservices:\n  chrome:\n    image: selenium/node-chrome:beta\n    platform: linux/amd64\n    shm_size: 2gb\n    depends_on:\n      - selenium-hub\n    environment:\n      - SE_EVENT_BUS_HOST=selenium-hub\n\n  edge:\n    image: selenium/node-edge:beta\n    platform: linux/amd64\n    shm_size: 2gb\n    depends_on:\n      - selenium-hub\n    environment:\n      - SE_EVENT_BUS_HOST=selenium-hub\n\n  firefox:\n    image: selenium/node-firefox:beta\n    shm_size: 2gb\n    depends_on:\n      - selenium-hub\n    environment:\n      - SE_EVENT_BUS_HOST=selenium-hub\n\n  chrome-for-testing:\n    image: selenium/node-chrome-for-testing:beta\n    platform: linux/amd64\n    shm_size: 2gb\n    depends_on:\n      - selenium-hub\n    environment:\n      - SE_EVENT_BUS_HOST=selenium-hub\n\n  selenium-hub:\n    image: selenium/hub:latest\n    container_name: selenium-hub\n    ports:\n      - \"4442:4442\"\n      - \"4443:4443\"\n      - \"4444:4444\"\n```\n\n**docker-compose-v3-dev-channel.yml:**\n```bash\n# To execute this docker compose yml file use `docker compose -f docker-compose-v3-dev-channel.yml up`\n# Add the `-d` flag at the end for detached execution\n# To stop the execution, hit Ctrl+C, and then `docker compose -f docker-compose-v3-dev-channel.yml down`\nservices:\n  chrome:\n    image: selenium/node-chrome:dev\n    platform: linux/amd64\n    shm_size: 2gb\n    depends_on:\n      - selenium-hub\n    environment:\n      - SE_EVENT_BUS_HOST=selenium-hub\n\n  edge:\n    image: selenium/node-edge:dev\n    platform: linux/amd64\n    shm_size: 2gb\n    depends_on:\n      - selenium-hub\n    environment:\n      - SE_EVENT_BUS_HOST=selenium-hub\n\n  firefox:\n    image: selenium/node-firefox:dev\n    shm_size: 2gb\n    depends_on:\n      - selenium-hub\n    environment:\n      - SE_EVENT_BUS_HOST=selenium-hub\n\n  chrome-for-testing:\n    image: selenium/node-chrome-for-testing:dev\n    platform: linux/amd64\n    shm_size: 2gb\n    depends_on:\n      - selenium-hub\n    environment:\n      - SE_EVENT_BUS_HOST=selenium-hub\n\n  selenium-hub:\n    image: selenium/hub:latest\n    container_name: selenium-hub\n    ports:\n      - \"4442:4442\"\n      - \"4443:4443\"\n      - \"4444:4444\"\n```\n\nFor more information on the Dev and Beta channel container images, see the blog post on [Dev and Beta Channel Browsers via Docker Selenium](https://www.selenium.dev/blog/2022/dev-and-beta-channel-browsers-via-docker-selenium/).\n\n## Single Node/Standalone Image With All Browsers\n\nFrom image tag `4.35.0` onwards, a single Node/Standalone image is available with all browsers are pre-installed. Those images are `selenium/standalone-all-browsers` (standalone all in one), `selenium/node-all-browsers` (for Hub-Node mode).\n\nThese two images are suitable for users:\n- Prefer a single container with \"all-in-one\" includes Selenium Grid and popular browsers.\n- Don't care about the image size, prefer the convenience.\n- Lightweight workload, able to figure out for yourself the resource consumption.\n\nAccording to multi-arch support, browsers are available in images `selenium/node-all-browsers` and `selenium/standalone-all-browsers` would be different per architecture.\n\n| Browser / Arch | x86_64 (aka amd64) | aarch64 (aka arm64/armv8) |\n|----------------|--------------------|---------------------------|\n| Chrome         | ✅                  | ❌                         |\n| Edge           | ✅                  | ❌                         |\n| Firefox        | ✅                  | ✅                         |\n| Chromium       | ✅                  | ✅                         |\n\nBoth Chrome and Chromium browser binary are available in image arch `linux/amd64`. However, Chrome browser binary is activated by default. In case you want to switch to Chromium browser binary, you can set environment variable `SE_BROWSER_BINARY_LOCATION_CHROME=/usr/bin/chromium`.\n\nVia environment variable `SE_NODE_ENABLE_BROWSER_<BROWSER>`, with `<BROWSER>` is the name of browser in uppercase (e.g. `CHROME`, `FIREFOX`, `EDGE`). You can disable a browser to be installed in the Node/Standalone image all browsers.\n\nFor example with image linux/amd64 and linux/arm64, you can disable Firefox browser by setting environment variable `SE_NODE_ENABLE_BROWSER_FIREFOX=false`.\n\nFor example with image linux/amd64, you can disable Chrome browser by setting environment variable `SE_NODE_ENABLE_BROWSER_CHROME=false`. Similar for Edge browser, set `SE_NODE_ENABLE_BROWSER_EDGE=false`.\n\nHere is list of environment variables which support suffix `_<BROWSER>` in Node/Standalone image all browsers:\n\n```\nSE_NODE_STEREOTYPE\nSE_NODE_BROWSER_NAME\nSE_NODE_BROWSER_VERSION\nSE_NODE_PLATFORM_NAME\nSE_BROWSER_BINARY_LOCATION\nSE_NODE_STEREOTYPE_EXTRA\nSE_NODE_MAX_SESSIONS\n```\n\n## Environment Variables\n\n**Checkout full list of environment variables [here](ENV_VARIABLES.md).**\n\nHow to update or contribute to list of environment variables? Follow below steps:\n\n1. Refresh the list to pick up new environment variables or default value\n\n    ```bash\n    make update_list_env_vars\n    ```\n\n    The script can be updated in [scripts/generate_list_env_vars/extract_env.py](scripts/generate_list_env_vars/extract_env.py).\n\n2. Update the description for each environment variable in the file [scripts/generate_list_env_vars/description.yaml](scripts/generate_list_env_vars/description.yaml).\n\n3. Run the command in step (1) one more time to update the list of environment variables with new descriptions.\n\n## Execution modes\n\n### Standalone\n\n#### ![Firefox](https://raw.githubusercontent.com/alrra/browser-logos/main/src/firefox/firefox_24x24.png) Firefox \n```bash\ndocker run -d -p 4444:4444 --shm-size=\"2g\" selenium/standalone-firefox:4.41.0-20260222\n```\n\n#### ![Chrome](https://raw.githubusercontent.com/alrra/browser-logos/main/src/chrome/chrome_24x24.png) Chrome \n```bash\ndocker run -d -p 4444:4444 --shm-size=\"2g\" selenium/standalone-chrome:4.41.0-20260222\n```\n\n#### ![Edge](https://raw.githubusercontent.com/alrra/browser-logos/main/src/edge/edge_24x24.png) Edge\n```bash\ndocker run -d -p 4444:4444 --shm-size=\"2g\" selenium/standalone-edge:4.41.0-20260222\n```\n\n#### All browsers in single container\n```bash\ndocker run -d -p 4444:4444 --shm-size=\"3g\" selenium/standalone-all-browsers:4.41.0-20260222\n```\n\n_Note: Only one Standalone container can run on port_ `4444` _at the same time._\n\n___\n\n### Hub and Nodes\n\nThere are different ways to run the images and create a Grid with a Hub and Nodes, check the following options.\n\n#### Docker networking\nThe Hub and Nodes will be created in the same network and they will recognize each other by their container name.\nA Docker [network](https://docs.docker.com/engine/reference/commandline/network_create/) needs to be created as a first step.\n\n##### macOS/Linux\n\n**Hub and multiple browser Node containers**\n\n```bash\n$ docker network create grid\n$ docker run -d -p 4442-4444:4442-4444 --net grid --name selenium-hub selenium/hub:4.41.0-20260222\n$ docker run -d --net grid -e SE_EVENT_BUS_HOST=selenium-hub \\\n    --shm-size=\"2g\" \\\n    selenium/node-chrome:4.41.0-20260222\n$ docker run -d --net grid -e SE_EVENT_BUS_HOST=selenium-hub \\\n    --shm-size=\"2g\" \\\n    selenium/node-edge:4.41.0-20260222\n$ docker run -d --net grid -e SE_EVENT_BUS_HOST=selenium-hub \\\n    --shm-size=\"2g\" \\\n    selenium/node-firefox:4.41.0-20260222\n```\n\n**Hub and single Node container with all browsers**\n\n```bash\n$ docker network create grid\n$ docker run -d -p 4442-4444:4442-4444 --net grid --name selenium-hub selenium/hub:4.41.0-20260222\n$ docker run -d --net grid -e SE_EVENT_BUS_HOST=selenium-hub \\\n    --shm-size=\"3g\" \\\n    selenium/node-all-browsers:4.41.0-20260222\n```\n\n##### Windows PowerShell\n\n**Hub and multiple browser Node containers**\n\n```powershell\n$ docker network create grid\n$ docker run -d -p 4442-4444:4442-4444 --net grid --name selenium-hub selenium/hub:4.41.0-20260222\n$ docker run -d --net grid -e SE_EVENT_BUS_HOST=selenium-hub `\n    --shm-size=\"2g\" `\n    selenium/node-chrome:4.41.0-20260222\n$ docker run -d --net grid -e SE_EVENT_BUS_HOST=selenium-hub `\n    --shm-size=\"2g\" `\n    selenium/node-edge:4.41.0-20260222\n$ docker run -d --net grid -e SE_EVENT_BUS_HOST=selenium-hub `\n    --shm-size=\"2g\" `\n    selenium/node-firefox:4.41.0-20260222\n```\n\n**Hub and single Node container with all browsers**\n\n```powershell\n$ docker network create grid\n$ docker run -d -p 4442-4444:4442-4444 --net grid --name selenium-hub selenium/hub:4.41.0-20260222\n$ docker run -d --net grid -e SE_EVENT_BUS_HOST=selenium-hub `\n    --shm-size=\"3g\" `\n    selenium/node-all-browsers:4.41.0-20260222\n```\n\nWhen you are done using the Grid, and the containers have exited, the network can be removed with the following command:\n\n``` bash\n# Removes the grid network\n$ docker network rm grid\n```\n\n#### Using different machines/VMs\nThe Hub and Nodes will be created on different machines/VMs, they need to know each other's IPs to\ncommunicate properly. If more than one node will be running on the same Machine/VM, they must be\nconfigured to expose different ports.\n\n##### Hub - Machine/VM 1\n```bash\n$ docker run -d -p 4442-4444:4442-4444 --name selenium-hub selenium/hub:4.41.0-20260222\n```\n\n##### Node Chrome - Machine/VM 2\n\n###### macOS/Linux\n\n```bash\n$ docker run -d -p 5555:5555 \\\n    --shm-size=\"2g\" \\\n    -e SE_EVENT_BUS_HOST=<ip-from-machine-1> \\\n    -e SE_NODE_HOST=<ip-from-machine-2> \\\n    selenium/node-chrome:4.41.0-20260222\n```\n\n###### Windows PowerShell\n\n```powershell\n$ docker run -d -p 5555:5555 `\n    --shm-size=\"2g\" `\n    -e SE_EVENT_BUS_HOST=<ip-from-machine-1> `\n    -e SE_NODE_HOST=<ip-from-machine-2> `\n    selenium/node-chrome:4.41.0-20260222\n```\n\n\n##### Node Edge - Machine/VM 3\n\n###### macOS/Linux\n\n```bash\n$ docker run -d -p 5555:5555 \\\n    --shm-size=\"2g\" \\\n    -e SE_EVENT_BUS_HOST=<ip-from-machine-1> \\\n    -e SE_NODE_HOST=<ip-from-machine-3> \\\n    selenium/node-edge:4.41.0-20260222\n```\n\n###### Windows PowerShell\n\n```powershell\n$ docker run -d -p 5555:5555 `\n    --shm-size=\"2g\" `\n    -e SE_EVENT_BUS_HOST=<ip-from-machine-1> `\n    -e SE_NODE_HOST=<ip-from-machine-3> `\n    selenium/node-edge:4.41.0-20260222\n```\n\n##### Node Firefox - Machine/VM 4\n\n###### macOS/Linux\n\n```bash\n$ docker run -d -p 5555:5555 \\\n    --shm-size=\"2g\" \\\n    -e SE_EVENT_BUS_HOST=<ip-from-machine-1> \\\n    -e SE_NODE_HOST=<ip-from-machine-4> \\\n    selenium/node-firefox:4.41.0-20260222\n```\n\n###### Windows PowerShell\n\n```powershell\n$ docker run -d -p 5555:5555 `\n    --shm-size=\"2g\" `\n    -e SE_EVENT_BUS_HOST=<ip-from-machine-1> `\n    -e SE_NODE_HOST=<ip-from-machine-4> `\n    selenium/node-firefox:4.41.0-20260222\n```\n\n##### Node Chrome - Machine/VM 4\n\n###### macOS/Linux\n\n``` bash\n$ docker run -d -p 5556:5556 \\\n    --shm-size=\"2g\" \\\n    -e SE_EVENT_BUS_HOST=<ip-from-machine-1> \\\n    -e SE_NODE_HOST=<ip-from-machine-4> \\\n    -e SE_NODE_PORT=5556 \\\n    selenium/node-chrome:4.41.0-20260222\n```\n\n###### Windows PowerShell\n\n```powershell\n$ docker run -d -p 5556:5556 `\n    --shm-size=\"2g\" `\n    -e SE_EVENT_BUS_HOST=<ip-from-machine-1> `\n    -e SE_NODE_HOST=<ip-from-machine-4> `\n    -e SE_NODE_PORT=5556 `\n    selenium/node-chrome:4.41.0-20260222\n```\n\n#### Docker Compose\n[Docker Compose](https://docs.docker.com/compose/) is the simplest way to start a Grid. Use the\nlinked resources below, save them locally and check the execution instructions on top of each file.\n\n##### Version 2\n[`docker-compose-v2.yml`](docker-compose-v2.yml)\n\n##### Version 3\n[`docker-compose-v3.yml`](docker-compose-v3.yml)\n\nTo stop the Grid and cleanup the created containers, run `docker compose down`.\n\n##### Version 3 with Swarm support \n[`docker-compose-v3-swarm.yml`](docker-compose-v3-swarm.yml)\n\n___\n\n### Fully distributed mode - Router, Queue, Distributor, EventBus, SessionMap and Nodes\n\nIt is possible to start a Selenium Grid with all its components apart. For simplicity, only an\nexample with docker compose will be provided. Save the file locally, and check the execution \ninstructions on top of it.\n\n[`docker-compose-v3-full-grid.yml`](docker-compose-v3-full-grid.yml)\n\n#### Distributor configuration\n\n| Environment variable           | Option                      | Type    | Default value | Description                                                                                                           |\n|--------------------------------|-----------------------------|---------|---------------|-----------------------------------------------------------------------------------------------------------------------|\n| `SE_REJECT_UNSUPPORTED_CAPS`   | `--reject-unsupported-caps` | boolean | `false`       | Allow the Distributor to reject a request immediately if the Grid does not support the requested capability.          |\n| `SE_HEALTHCHECK_INTERVAL`      | `--healthcheck-interval`    | int     | `120`         | This ensures the server can ping all the Nodes successfully after an interval.                                        |\n| `SE_DISTRIBUTOR_SLOT_SELECTOR` | `--slot-selector`           | string  | ``            | Full class name of non-default slot selector. This is used to select a slot in a Node once the Node has been matched. |\n\nDistributor component comes with two main built-in Slot Selector implementations\n* `org.openqa.selenium.grid.distributor.selector.DefaultSlotSelector`: Grid’s default strategy (used if you don’t configure anything else). It follows the balanced, least-recently-used approach described above. The `DefaultSlotSelector` will choose the Node that has been free for the longest time, ensuring no single node is overused when others are idle. This simple strategy has minimal overhead and works well for most general testing scenarios where an even distribution of sessions is desired.\n\n* `org.openqa.selenium.grid.distributor.selector.GreedySlotSelector`: An alternative built-in provided. The `GreedySlotSelector` aims to maximize node utilization by concentrating sessions on one node before using another. As noted, it will tend to fill up a node’s slots one by one, reducing the number of nodes that are partially utilized at any given time. This strategy is beneficial for resource-intensive or high-concurrency scenarios (for example, load testing or running in an environment where you scale nodes on demand). More insight, let's refer to [#2990](https://github.com/SeleniumHQ/docker-selenium/issues/2990).\n\n___\n\n## Video recording\n\nTests execution can be recorded by using the `selenium/video:ffmpeg-8.0-20260222`\nDocker image. One container is needed per each container where a browser is running. This means if you are\nrunning 5 Nodes/Standalone containers, you will need 5 video containers, the mapping is 1-1.\n\nCurrently, the only way to do this mapping is manually (either starting the containers manually or through\n`docker compose`). We are iterating on this process and probably this setup will be more simple in the future.\n\nThe video Docker image we provide is based on the ffmpeg Ubuntu image provided by the \n[jrottenberg/ffmpeg](https://github.com/jrottenberg/ffmpeg) project, thank you for providing this image and\nsimplifying our work :tada:\n\nFrom image tag based `4.20.0` onwards, the video Docker image is based on the FFmpeg Ubuntu image provided by\n[linuxserver/docker-ffmpeg](https://github.com/linuxserver/docker-ffmpeg) project since the image is available for multi-platform.\nThank you for simplifying our project and helping us move forward with multiple architecture support.\n\n**Notes**:\n- If you have questions or feedback, please use the community contact points shown [here](https://www.selenium.dev/support/). \n- Please report any bugs through GitHub [issues](https://github.com/SeleniumHQ/docker-selenium/issues/new/choose), and provide\nall the information requested on the template.\n- Video recording for headless browsers is not supported. \n- Video recording tends to use considerable amounts of CPU. Normally you should estimate 1CPU per video container, \nand 1 CPU per browser container.\n- Videos are stored in the `/videos` directory inside the video container. Map a local directory to get the videos.\n- If you are running more than one video container, be sure to overwrite the video file name through the `FILE_NAME`\nenvironment variable to avoid unexpected results.\n\nThis example shows how to start the containers manually:\n\n``` bash\n$ docker network create grid\n$ docker run -d -p 4444:4444 -p 6900:5900 --net grid --name selenium --shm-size=\"2g\" selenium/standalone-chrome:4.41.0-20260222\n$ docker run -d --net grid --name video -v /tmp/videos:/videos selenium/video:ffmpeg-8.0-20260222\n# Run your tests\n$ docker stop video && docker rm video\n$ docker stop selenium && docker rm selenium\n```\nAfter the containers are stopped and removed, you should see a video file on your machine's `/tmp/videos` directory.\n\nHere is an example using a Hub and a few Nodes:\n\n[`docker-compose-v3-video.yml`](docker-compose-v3-video.yml)\n\n## Video recording with dynamic file name based on metadata in tests\n\nBased on the support of [Metadata in tests](https://www.selenium.dev/documentation/grid/getting_started/#metadata-in-tests). When the video recorder is sidecar deployed with the browser node with enabling `SE_VIDEO_FILE_NAME=auto` and adding metadata to your tests, video file name will extract value of capability `se:name` and use it as the video file name.\n\nFor example in Python binding:\n\n```python\nfrom selenium.webdriver.chrome.options import Options as ChromeOptions\nfrom selenium import webdriver\n\noptions = ChromeOptions()\noptions.set_capability('se:name', 'test_visit_basic_auth_secured_page (ChromeTests)')\ndriver = webdriver.Remote(options=options, command_executor=\"http://localhost:4444\")\ndriver.get(\"https://selenium.dev\")\ndriver.quit()\n```\n\nThe output video file name will be `test_visit_basic_auth_secured_page_ChromeTests_<sessionId>.mp4`.\n\nIf your test name is handled by the test framework, and it is unique for sure, you also can disable the session id appends to the video file name by setting `SE_VIDEO_FILE_NAME_SUFFIX=false`.\n\nFile name will be trimmed to 255 characters to avoid long file names. Moreover, `space` character will be replaced by `_` and only characters alphabets, numbers, `-` (hyphen), `_` (underscore) are retained in the file name.\n\nThe trim regex is able to be customized by setting `SE_VIDEO_FILE_NAME_TRIM_REGEX` environment variable. The default value is `[^a-zA-Z0-9-_]`. The regex should be compatible with Python `re.compile()` function.\n\nAt deployment level, the recorder container is up always. In addition, you can disable video recording process via session capability `se:recordVideo`. For example in Python binding:\n\n```python\noptions.set_capability('se:recordVideo', False)\n```\n\nIn recorder container will perform query GraphQL in Hub based on Node SessionId and extract the value of `se:recordVideo` in capabilities before deciding to start video recording process or not.\n\nNotes: To reach the GraphQL endpoint, the recorder container needs to know the Hub URL. The Hub URL can be passed via environment variable `SE_NODE_GRID_URL`. For example `SE_NODE_GRID_URL` is `http://selenium-hub:4444`.\n\n## Video recording and uploading\n\n[RCLONE](https://rclone.org/) is installed in the video recorder image. You can use it to upload the videos to a cloud storage service.\nBesides the video recording mentioned above, you can enable the upload functionality by setting the following environment variables:\n\n```yaml\nservices:\n  chrome_video:\n    image: selenium/video:ffmpeg-8.0-20260222\n    depends_on:\n      - chrome\n    environment:\n      - DISPLAY_CONTAINER_NAME=chrome\n      - SE_VIDEO_FILE_NAME=auto\n      - SE_VIDEO_UPLOAD_ENABLED=true\n      - SE_UPLOAD_DESTINATION_PREFIX=s3://mybucket/path\n      - RCLONE_CONFIG_S3_TYPE=s3\n      - RCLONE_CONFIG_S3_PROVIDER=GCS\n      - RCLONE_CONFIG_S3_ENV_AUTH=true\n      - RCLONE_CONFIG_S3_REGION=asia-southeast1\n      - RCLONE_CONFIG_S3_LOCATION_CONSTRAINT=asia-southeast1\n      - RCLONE_CONFIG_S3_ACL=private\n      - RCLONE_CONFIG_S3_ACCESS_KEY_ID=xxx\n      - RCLONE_CONFIG_S3_SECRET_ACCESS_KEY=xxx\n      - RCLONE_CONFIG_S3_ENDPOINT=https://storage.googleapis.com\n      - RCLONE_CONFIG_S3_NO_CHECK_BUCKET=true\n```\n\n`SE_VIDEO_FILE_NAME=auto` will use the session id as the video file name. This ensures that the video file name is unique to upload.\nVideo file name construction automatically works based on Node endpoint `/status` (and optional GraphQL endpoint) to get session ID, capabilities.\n\n`SE_VIDEO_UPLOAD_ENABLED=true` (`false` by default) will enable the video upload feature. In the background, it will create a pipefile with file and destination for uploader to consume and proceed.\n\n`SE_VIDEO_INTERNAL_UPLOAD=true` (by default) will use RCLONE installed in the container for upload. If you want to use another sidecar container for upload, set it to `false`.\n\n| ENV variables per mode                   | Hub/Nodes         | Standalone roles | Dynamic Grid   |\n|------------------------------------------|-------------------|------------------|----------------|\n| `SE_VIDEO_RECORD_STANDALONE` (mandatory) | `false` (default) | `true`           | `true`         |\n| `DISPLAY_CONTAINER_NAME` (mandatory)     | user input        | user input       | (not required) |\n| `SE_NODE_PORT` (optional)                | `5555`            | `4444`           | (not required) |\n| `SE_NODE_GRID_URL` (optional)            | user input        | (not required)   | (not required) |\n\nFor environment variables with prefix `RCLONE_` is used to pass remote configuration to RCLONE. You can find more information about RCLONE configuration [here](https://rclone.org/docs/).\nWhen using in Dynamic Grid, those variables should be combined with the prefix `SE_`, for example `SE_RCLONE_`. See below reference for more details.\n\n### Reference\n- Configure video recording and uploading for Hub and Nodes: [docker-compose-v3-video-upload.yml](docker-compose-v3-video-upload.yml)\n\n- Configure video recording and uploading for Standalone roles: [docker-compose-v3-video-upload-standalone.yml](docker-compose-v3-video-upload-standalone.yml)\n\n- Configure video recording and uploading for Dynamic Grid (node-docker): [docker-compose-v3-video-upload-dynamic-grid.yml](docker-compose-v3-video-upload-dynamic-grid.yml)\n\n- Configure video recording and uploading for Dynamic Grid standalone (standalone-docker): [tests/docker-compose-v3-test-standalone-docker.yaml](tests/docker-compose-v3-test-standalone-docker.yaml)\n\n### Environment variables and default values for upload feature\n\n| Environment variable          | Default value                                | Description                                                                               |\n|-------------------------------|----------------------------------------------|-------------------------------------------------------------------------------------------|\n| `SE_UPLOAD_RETAIN_LOCAL_FILE` | `false`                                      | Keep local file after uploading successfully                                              |\n| `SE_UPLOAD_COMMAND`           | `copy`                                       | RCLONE command is used to transfer file. Enforce `move` when retain local file is `false` |\n| `SE_UPLOAD_OPTS`              | `-P --cutoff-mode SOFT --metadata --inplace` | Other options belong to RCLONE command can be set.                                        |\n| `SE_UPLOAD_CONFIG_FILE_NAME`  | `upload.conf`                                | Config file for remote host instead of set via env variable prefix SE_RCLONE_*            |\n| `SE_UPLOAD_CONFIG_DIRECTORY`  | `/opt/bin`                                   | Directory of config file (change it when conf file in another directory is mounted)       |\n\n## Video recordings manager\n\nWe utilize [File Browser](https://filebrowser.org/) as a video manager. It is a web-based file manager that allows you to manage files and folders in the storage.\n\nThe File Browser container dir `/srv` should be mounted to the same storage as video recordings stored. For example a compose file:\n\n```yaml\nservices:\n  chrome:\n    deploy:\n      mode: replicated\n      replicas: 3\n    image: selenium/node-chrome:4.41.0-20260222\n    platform: linux/amd64\n    shm_size: 2gb\n    depends_on:\n      - selenium-hub\n    volumes:\n      - /tmp/videos:/videos\n    environment:\n      - SE_EVENT_BUS_HOST=selenium-hub\n      - SE_RECORD_VIDEO=true\n      - SE_VIDEO_FILE_NAME=auto\n      - SE_NODE_GRID_URL=http://selenium-hub:4444\n\n  file_browser:\n      image: filebrowser/filebrowser:latest\n      container_name: file_browser\n      restart: always\n      ports:\n          - \"8081:80\"\n      volumes:\n          - /tmp/videos:/srv\n      environment:\n          - FB_NOAUTH=true\n```\n\n___\n\n## Dynamic Grid\n\nGrid 4 has the ability to start Docker containers on demand, this means that it starts\na Docker container in the background for each new session request, the test gets executed\nthere, and when the test completes, the container gets thrown away.\n\nThis execution mode can be used either in the Standalone or Node roles. The \"dynamic\"\nexecution mode needs to be told what Docker images to use when the containers get started.\nAdditionally, the Grid needs to know the URI of the Docker daemon. This configuration can\nbe placed in a local `toml` file.\n\n### Configuration example\n\nYou can save this file locally and name it, for example, `config.toml`.\n```toml\n[docker]\n# Configs have a mapping between the Docker image to use and the capabilities that need to be matched to\n# start a container with the given image.\nconfigs = [\n    \"selenium/standalone-firefox:4.41.0-20260222\", '{\"browserName\": \"firefox\"}',\n    \"selenium/standalone-chrome:4.41.0-20260222\", '{\"browserName\": \"chrome\"}',\n    \"selenium/standalone-edge:4.41.0-20260222\", '{\"browserName\": \"MicrosoftEdge\"}'\n]\n\nhost-config-keys = [\"Dns\", \"DnsOptions\", \"DnsSearch\", \"ExtraHosts\", \"Binds\"]\n\n# URL for connecting to the docker daemon\n# Most simple approach, leave it as http://127.0.0.1:2375, and mount /var/run/docker.sock.\n# 127.0.0.1 is used because internally the container uses socat when /var/run/docker.sock is mounted \n# If var/run/docker.sock is not mounted: \n# Windows: make sure Docker Desktop exposes the daemon via tcp, and use http://host.docker.internal:2375.\n# macOS: install socat and run the following command, socat -4 TCP-LISTEN:2375,fork UNIX-CONNECT:/var/run/docker.sock,\n# then use http://host.docker.internal:2375.\n# Linux: varies from machine to machine, please mount /var/run/docker.sock. If this does not work, please create an issue.\nurl = \"http://127.0.0.1:2375\"\n# Docker image used for video recording\nvideo-image = \"selenium/video:ffmpeg-8.0-20260222\"\n\n# Uncomment the following section if you are running the node on a separate VM\n# Fill out the placeholders with appropriate values\n#[server]\n#host = <ip-from-node-machine>\n#port = <port-from-node-machine>\n```\n\n**Mount the local `config.toml` file to the container path `/opt/selenium/docker.toml`**.\nThis config file path specific for Dynamic Grid (node/standalone docker) by default to avoid conflict with the config file in node browser containers (since users can share volumes config to node browser containers, see below section for details).\n\nWith the optional config key `host-config-keys` under section [docker] in a config.toml file (or CLI option --docker-host-config-keys). Users can specify a list of docker host configuration keys that should be passed to browser containers.\n\nValid key names for Docker host config can be found in the Docker API [documentation](https://docs.docker.com/engine/api/latest/#tag/Container/operation/ContainerCreate) or via the command `docker inspect` the node-docker container.\n\n### Share volumes config of Dynamic Grid container to node browser containers\n\nIn case you want to access download directory in node browser containers (e.g `/home/seluser/Downloads`) via volumes config of Dynamic Grid container, you can add the following config to the `config.toml` file\n\n```toml\n[docker]\nhost-config-keys = [\"Binds\"]\n```\n\nVolumes config in docker compose file\n\n```yaml\nservices:\n  node-docker:\n    image: selenium/node-docker:latest\n    volumes:\n      - ./assets:/opt/selenium/assets\n      - ./config.toml:/opt/selenium/docker.toml\n      - ./downloads:/home/seluser/Downloads\n      - /var/run/docker.sock:/var/run/docker.sock\n    environment:\n      - SE_NODE_DOCKER_CONFIG_FILENAME=docker.toml\n```\n\n`/opt/selenium/config.toml` is the default path for the config file in all images. Once volumes config is shared to node browser containers, its `config.toml` could be overwritten by node-docker container config file.\n\nIn this case, mount your `config.toml` file to `/opt/selenium/docker.toml` in node-docker container. And set the environment variable `SE_NODE_DOCKER_CONFIG_FILENAME=docker.toml` to specify that config file name for the startup script.\n\nRefer to example [docker-compose-v3-test-node-docker.yaml](./tests/docker-compose-v3-test-node-docker.yaml)\n\n### Execution with Hub & Node roles\n\nThis can be expanded to a full Grid deployment, all components deployed individually. The overall\nidea is to have the Hub in one virtual machine, and each of the Nodes in separate and more powerful\nvirtual machines. \n\n#### macOS/Linux\n\n```bash\n$ docker network create grid\n$ docker run -d -p 4442-4444:4442-4444 --net grid --name selenium-hub selenium/hub:4.41.0-20260222\n$ docker run -d --net grid -e SE_EVENT_BUS_HOST=selenium-hub \\\n    -v ${PWD}/config.toml:/opt/selenium/docker.toml \\\n    -v ${PWD}/assets:/opt/selenium/assets \\\n    -v /var/run/docker.sock:/var/run/docker.sock \\\n    selenium/node-docker:4.41.0-20260222\n```\n\n#### Windows PowerShell\n\n```powershell\n$ docker network create grid\n$ docker run -d -p 4442-4444:4442-4444 --net grid --name selenium-hub selenium/hub:4.41.0-20260222\n$ docker run -d --net grid -e SE_EVENT_BUS_HOST=selenium-hub `\n    -v ${PWD}/config.toml:/opt/selenium/docker.toml `\n    -v ${PWD}/assets:/opt/selenium/assets `\n    -v /var/run/docker.sock:/var/run/docker.sock `\n    selenium/node-docker:4.41.0-20260222\n```\n\nTo have the assets saved on your host, please mount your host path to `/opt/selenium/assets`.\n\nWhen you are done using the Grid, and the containers have exited, the network can be removed with the following command:\n\n``` bash\n# Removes the grid network\n$ docker network rm grid\n```\n\n### Execution with Standalone roles\n\n#### macOS/Linux\n\n```bash\ndocker run --rm --name selenium-docker -p 4444:4444 \\\n    -v ${PWD}/config.toml:/opt/selenium/docker.toml \\\n    -v ${PWD}/assets:/opt/selenium/assets \\\n    -v /var/run/docker.sock:/var/run/docker.sock \\\n    selenium/standalone-docker:4.41.0-20260222\n```\n\n#### Windows PowerShell\n\n```bash\ndocker run --rm --name selenium-docker -p 4444:4444 `\n    -v ${PWD}/config.toml:/opt/selenium/docker.toml `\n    -v ${PWD}/assets:/opt/selenium/assets `\n    -v /var/run/docker.sock:/var/run/docker.sock `\n    selenium/standalone-docker:4.41.0-20260222\n```\n\n### Using Dynamic Grid in different machines/VMs\n\n#### Hub - Machine/VM 1\n\n```bash\n$ docker run -d -p 4442-4444:4442-4444 --name selenium-hub selenium/hub:4.41.0-20260222\n```\n\n#### Node Chrome - Machine/VM 2\n\n#### macOS/Linux\n\n```bash\n$ docker run -d -p 5555:5555 \\\n    -e SE_EVENT_BUS_HOST=<ip-from-machine-1> \\\n    -v ${PWD}/config.toml:/opt/selenium/docker.toml \\\n    -v ${PWD}/assets:/opt/selenium/assets \\\n    -v /var/run/docker.sock:/var/run/docker.sock \\\n    selenium/node-docker:4.41.0-20260222\n```\n\n#### Windows PowerShell\n\n```bash\n$ docker run -d -p 5555:5555 `\n    -e SE_EVENT_BUS_HOST=<ip-from-machine-1> `\n    -v ${PWD}/config.toml:/opt/selenium/docker.toml `\n    -v ${PWD}/assets:/opt/selenium/assets `\n    -v /var/run/docker.sock:/var/run/docker.sock `\n    selenium/node-docker:4.41.0-20260222\n```\n\nComplete the `[server]` section in the `config.toml` file.\n```toml\n[docker]\n# Configs have a mapping between the Docker image to use and the capabilities that need to be matched to\n# start a container with the given image.\nconfigs = [\n    \"selenium/standalone-firefox:4.41.0-20260222\", \"{\\\"browserName\\\": \\\"firefox\\\"}\",\n    \"selenium/standalone-chrome:4.41.0-20260222\", \"{\\\"browserName\\\": \\\"chrome\\\"}\",\n    \"selenium/standalone-edge:4.41.0-20260222\", \"{\\\"browserName\\\": \\\"MicrosoftEdge\\\"}\"\n    ]\n\n# URL for connecting to the docker daemon\n# Most simple approach, leave it as http://127.0.0.1:2375, and mount /var/run/docker.sock.\n# 127.0.0.1 is used because interally the container uses socat when /var/run/docker.sock is mounted \n# If var/run/docker.sock is not mounted: \n# Windows: make sure Docker Desktop exposes the daemon via tcp, and use http://host.docker.internal:2375.\n# macOS: install socat and run the following command, socat -4 TCP-LISTEN:2375,fork UNIX-CONNECT:/var/run/docker.sock,\n# then use http://host.docker.internal:2375.\n# Linux: varies from machine to machine, please mount /var/run/docker.sock. If this does not work, please create an issue.\nurl = \"http://127.0.0.1:2375\"\n# Docker image used for video recording\nvideo-image = \"selenium/video:ffmpeg-8.0-20260222\"\n\n# Uncomment the following section if you are running the node on a separate VM\n# Fill out the placeholders with appropriate values\n[server]\nhost = <ip-from-node-machine>\nport = <port-from-node-machine>\n```\n\nTo have the assets saved on your host, please mount your host path to `/opt/selenium/assets`.\n\n### Execution with Docker Compose\n\nHere is an example using a Hub and a Node:\n\n[`docker-compose-v3-dynamic-grid.yml`](docker-compose-v3-dynamic-grid.yml)\n\n\n### Configuring the child containers\n\nContainers can be further configured through environment variables, such as `SE_NODE_SESSION_TIMEOUT`\nand `SE_OPTS`. When a child container is created, all environment variables prefixed with `SE_` will\nbe forwared and set in the container. You can set the desired environment variables in the \n`standalone-docker` or `node-docker` containers. The following example sets the session timeout to\n700 seconds for all sessions:\n\n#### macOS/Linux\n\n```bash\ndocker run --rm --name selenium-docker -p 4444:4444 \\\n    -e SE_NODE_SESSION_TIMEOUT=700 \\\n    -v ${PWD}/config.toml:/opt/selenium/docker.toml \\\n    -v ${PWD}/assets:/opt/selenium/assets \\\n    -v /var/run/docker.sock:/var/run/docker.sock \\\n    selenium/standalone-docker:4.41.0-20260222\n```\n\n#### Windows PowerShell\n\n```bash\ndocker run --rm --name selenium-docker -p 4444:4444 `\n    -e SE_NODE_SESSION_TIMEOUT=700 `\n    -v ${PWD}/config.toml:/opt/selenium/docker.toml `\n    -v ${PWD}/assets:/opt/selenium/assets `\n    -v /var/run/docker.sock:/var/run/docker.sock `\n    selenium/standalone-docker:4.41.0-20260222\n```\n\n### Video recording, screen resolution, and time zones in a Dynamic Grid\nTo record your WebDriver session, you need to add a `se:recordVideo` \nfield set to `true`. You can also set a time zone and a screen resolution,\nfor example:\n\n```json\n{\n  \"browserName\": \"firefox\",\n  \"platformName\": \"linux\",\n  \"se:recordVideo\": \"true\",\n  \"se:timeZone\": \"US/Pacific\",\n  \"se:screenResolution\": \"1920x1080\"  \n}\n```\n\nAfter running a test, check the path you mounted to the Docker container, \n(`${PWD}/assets`), and you should see videos and session information. \n\nFrom language bindings, you can set the `se:name` capability to change output video file name dynamically. For example, in Python binding:\n\n```python\nfrom selenium.webdriver.chrome.options import Options as ChromeOptions\nfrom selenium import webdriver\n\noptions = ChromeOptions()\noptions.set_capability('se:recordVideo', True)\noptions.set_capability('se:screenResolution', '1920x1080')\noptions.set_capability('se:name', 'test_visit_basic_auth_secured_page (ChromeTests)')\ndriver = webdriver.Remote(options=options, command_executor=\"http://localhost:4444\")\ndriver.get(\"https://selenium.dev\")\ndriver.quit()\n```\n\nAfter test executed, under (`${PWD}/assets`) you can see the video file name in path `/<sessionId>/test_visit_basic_auth_secured_page_ChromeTests.mp4`\n\nThe file name will be trimmed to 255 characters to avoid long file names. Moreover, the `space` character will be replaced by `_`, and only the characters alphabets, numbers, `-` (hyphen), and `_` (underscore) are retained in the file name. (This feat is available once this [PR](https://github.com/SeleniumHQ/selenium/pull/13907) merged)\n\n### Time zone configuration via env variable\n\n`tzdata` is installed in based images, and you can set the time zone in container by using the env variable `TZ`.\nBy default, the time zone is set to `UTC`.\nList of supported time zones can be found [here](https://en.wikipedia.org/wiki/List_of_tz_database_time_zones). For example:\n\n```bash\n$ docker run --rm --entrypoint=\"\" -e TZ=Asia/Ho_Chi_Minh selenium/node-chromium:latest date +%FT%T%Z\n2024-08-28T18:19:26+07\n```\n\n___\n\n## Deploying to Kubernetes\n\nGet started to deploy Selenium Grid on Kubernetes, you can refer to YAML files in the [kubernetes](./kubernetes) directory.\n\nTo simplify the deployment process, hide the complexity of Kubernetes objects, and provide a more straightforward way to deploy Selenium Grid on Kubernetes, we offer a Helm chart to deploy Selenium Grid to Kubernetes.\nRead more details at the Helm [chart README](./charts/selenium-grid/README.md) and [chart CONFIGURATION](./charts/selenium-grid/CONFIGURATION.md).\n\n- Get started to hands-on with Selenium Grid on Kubernetes. See local env setup with [Docker Desktop](./tests/charts/refValues/README.md).\n\n___\n\n## Configuring the containers\n\n### SE_OPTS Selenium Configuration Options\n\nYou can pass `SE_OPTS` variable with additional command line parameters for starting a hub or a node.\n\n``` bash\n$ docker run -d -p 4444:4444 -e SE_OPTS=\"--log-level FINE\" --name selenium-hub selenium/hub:4.41.0-20260222\n```\n\n### SE_JAVA_OPTS Java Environment Options\n\nYou can pass `SE_JAVA_OPTS` environment variable to the Java process.\n\n``` bash\n$ docker run -d -p 4444:4444 -e SE_JAVA_OPTS=-Xmx512m --name selenium-hub selenium/hub:4.41.0-20260222\n```\n\n### SE_BROWSER_ARGS_* Add arguments for launching browser\n\nInstead of adding arguments via the browser options from language bindings, for example:\n\n```python\noptions = ChromeOptions()\noptions.add_argument('--incognito')\noptions.add_argument('--disable-dev-shm-usage')\ndriver = webdriver.Remote(options=options, command_executor=\"http://localhost:4444/wd/hub\")\n```\n\nYou also can proactive to force applying arguments directly from (node, standalone or node-docker) container environment variables. Define the environment variable with name starts with `SE_BROWSER_ARGS_` and following by config key is up to you (ensure those are unique when you define multiple arguments). For example:\n\n```bash\ndocker run -d -p 4444:4444 \\\n  -e SE_BROWSER_ARGS_INCOGNITO=--incognito \\\n  -e SE_BROWSER_ARGS_DISABLE_DSHM=--disable-dev-shm-usage \\\n  selenium/standalone-chrome:latest\n```\n\n[List chromium command-line arguments](https://peter.sh/experiments/chromium-command-line-switches/) for your reference.\n\nNote: Currently, this is applicable for node browsers Chrome/Chromium, Edge.\n\n### Node configuration options\n\nThe Nodes register themselves through the Event Bus. When the Grid is started in its typical Hub/Node\nsetup, the Hub will be the one acting as the Event Bus, and when the Grid is started with all its five\nelements apart, the Event Bus will be running on its own.\n\nIn both cases, it is necessary to tell the Node where the Event Bus is, so it can register itself. That is\nthe purpose of the `SE_EVENT_BUS_HOST`, `SE_EVENT_BUS_PUBLISH_PORT` and `SE_EVENT_BUS_SUBSCRIBE_PORT` environment\nvariables.\n\nIn some cases, for example, if you want to tag a node, it might be necessary to supply a custom stereotype to the node config. The environment variable `SE_NODE_STEREOTYPE`\nsets the stereotype entry in the node's `config.toml`. An example config.toml file can be found here: [Setting custom capabilities for matching specific Nodes](https://www.selenium.dev/documentation/grid/configuration/toml_options/#setting-custom-capabilities-for-matching-specific-nodes).\n\nHere is an example with the default values of these environment variables:\n```bash\n$ docker run -d \\\n  -e SE_EVENT_BUS_HOST=<event_bus_ip|event_bus_name> \\\n  -e SE_NODE_STEREOTYPE=\"{\\\"browserName\\\":\\\"${SE_NODE_BROWSER_NAME}\\\", \\\"browserVersion\\\":\\\"${SE_NODE_BROWSER_VERSION}\\\", \\\"platformName\\\":\\\"${SE_NODE_PLATFORM_NAME}\\\"}\" \\\n  --shm-size=\"2g\" selenium/node-chrome:4.41.0-20260222\n```\n\nIn another case, if you want to retain the default Node stereotype and append additional capabilities, you can use the `SE_NODE_STEREOTYPE_EXTRA` environment variable to set your capabilities. Those will be merged to the default stereotype. For example:\n```bash\n$ docker run -d \\\n  -e SE_EVENT_BUS_HOST=<event_bus_ip|event_bus_name> \\\n  -e SE_NODE_STEREOTYPE_EXTRA=\"{\\\"myApp:version\\\":\\\"beta\\\", \\\"myApp:publish:\\\":\\\"public\\\"}\" \\\n  --shm-size=\"2g\" selenium/node-chrome:4.41.0-20260222\n```\n\nThis help setting custom capabilities for matching specific Nodes. For example, you added your custom capabilities when starting the Node, and you want assign a test to run on that Node which matches your capabilities. For example in test code:\n\n```python\noptions = ChromeOptions()\noptions.set_capability('myApp:version', 'beta')\noptions.set_capability('myApp:publish', 'public')\ndriver = webdriver.Remote(options=options, command_executor=SELENIUM_GRID_URL)\n```\n\nNoted: Your custom capabilities with key values should be in W3C capabilities convention, extension capabilities key must contain a \":\" (colon) character, denoting an implementation specific namespace.\n\nNoted: Ensure that Node config `detect-drivers = false` in `config.toml` (or `--detect-drivers false` in CLI option) to make feature setting custom capabilities for matching specific Nodes get working.\n\nIn addition, default Node stereotype includes capability `se:containerName` which can visible in node capabilities, or session capabilities to identify the container name where the node/session is running. **The prefixed `se:containerName` is not included in slot matcher**. By default, value is getting from `hostname` command in container, this value is equivalent to the `container_id` that you saw via `docker ps` command. If you want to override this value, you can set the environment variable `SE_NODE_CONTAINER_NAME` to your desired value. For example, when deploy to Kubernetes cluster, you can assign Pod name to env var `SE_NODE_CONTAINER_NAME` to track a node is running in which Pod.\n\n```yaml\n  env:\n    - name: SE_NODE_CONTAINER_NAME\n      valueFrom:\n        fieldRef:\n          fieldPath: metadata.name\n```\n\nIn an advanced case, where you control to spawn up a Node container, let it register to Hub, and then trigger a test to be assigned exactly to run on that Node. By default, the value of command `$(hostname)` is added to capability name `container:hostname` in Node stereotype. Combine with above feature setting custom capabilities for matching specific Nodes. You can use the `hostname` of the Node container just spawned up and set it as a custom capability. For example, in Python binding:\n\n```bash\n$ docker run -d --name my-node-1 -e SE_EVENT_BUS_HOST=localhost \\\n  --shm-size=\"2g\" selenium/node-chrome:4.41.0-20260222\n$ docker exec -i my-node-1 hostname\na6971f95bbab\n```\n\n```python\noptions = ChromeOptions()\noptions.set_capability('container:hostname', 'a6971f95bbab')\ndriver = webdriver.Remote(options=options, command_executor=SELENIUM_GRID_URL)\n```\n\n_Noted: Those above changes require new image tag where the changeset is included & released._\n\n### Node configuration relay commands\n\nRelaying commands to a service endpoint that supports WebDriver.\nIt is useful to connect an external service that supports WebDriver to Selenium Grid. An example of such service could be a cloud provider or an Appium server. \nIn this way, Grid can enable more coverage to platforms and versions not present locally.\n\nThe following is an en example of configuration relay commands.\n\n[docker-compose-v3-test-node-relay.yml](tests/docker-compose-v3-test-node-relay.yml)\n\nIf you want to relay commands only, `selenium/node-base` is suitable and lightweight for this purpose.\nIn case you want to configure node with both browsers and relay commands, respective node images can be used.\n\nTo use environment variables for generate relay configs, set `SE_NODE_RELAY_URL` and other variables as below. Those will be used to generate the default relay config in TOML format looks like below.\n\n```toml\n[relay]\nurl = \"${SE_NODE_RELAY_URL}\"\nstatus-endpoint = \"${SE_NODE_RELAY_STATUS_ENDPOINT}\"\nprotocol-version = \"${SE_NODE_RELAY_PROTOCOL_VERSION}\"\nconfigs = [ '${SE_NODE_RELAY_MAX_SESSIONS}', '{\"browserName\": \"${SE_NODE_RELAY_BROWSER_NAME}\", \"platformName\": \"${SE_NODE_RELAY_PLATFORM_NAME}\", \"appium:platformVersion\": \"${SE_NODE_RELAY_PLATFORM_VERSION}\"}' ]\n```\n\nInstead of input value for each environment variable to construct the default relay stereotype, you can use the `SE_NODE_RELAY_STEREOTYPE` environment variable to overwrite the default relay stereotype with your custom stereotype.\n\nIn another case, if you want to retain the default relay stereotype and append additional capabilities, you can use the `SE_NODE_RELAY_STEREOTYPE_EXTRA` environment variable to set your capabilities. Those will be merged to the default relay stereotype.\n\nTo run a sample test with the relayed node, you can clone the project and try below command:\n\n```bash\nmake test_node_relay\n```\n\n### Setting Sub Path\n\nBy default, Selenium is reachable at `http://127.0.0.1:4444/`. Selenium can be configured to use a custom subpath by specifying the `SE_SUB_PATH`\nenvironmental variable. In the example below Selenium is reachable at `http://127.0.0.1:4444/selenium-grid/`\n\n```bash\n$ docker run -d -p 4444:4444 -e SE_SUB_PATH=/selenium-grid/ --name selenium-hub selenium/hub:4.41.0-20260222\n```\n\n### Setting Screen Resolution\n\nBy default, nodes start with a screen resolution of 1920 x 1080 with a color depth of 24 bits and a dpi of 96. \nThese settings can be adjusted by specifying `SE_SCREEN_WIDTH`, `SE_SCREEN_HEIGHT`, `SE_SCREEN_DEPTH`, and/or `SE_SCREEN_DPI` \nenvironmental variables when starting the container.\n\n``` bash\ndocker run -d -e SE_SCREEN_WIDTH=1366 -e SE_SCREEN_HEIGHT=768 -e SE_SCREEN_DEPTH=24 -e SE_SCREEN_DPI=74 selenium/standalone-firefox:4.41.0-20260222\n```\n\n### Grid Url and Session Timeout\n\nIn some use cases, you might need to set the Grid URL to the Node, for example, if you'd like to access the BiDi/CDP endpoint. \nThis is also needed when you want to use the new `RemoteWebDriver.builder()` or `Augmenter()` present in Selenium 4 \n(since they setup the BiDi/CDP connection implicitly). You can do that through the `SE_NODE_GRID_URL` environment \nvariable, eg `-e SE_NODE_GRID_URL=http://<hostMachine>:4444`. Setting this env var is needed if you want to see the live view while sessions are executing.\n\nGrid has a default session timeout of 300 seconds, where the session can be in a stale state until it is killed. You can use\n`SE_NODE_SESSION_TIMEOUT` to overwrite that value in seconds.\n\n\n### Session request timeout\n\nA new session request is placed in the Session Queue before it is processed, and the request sits in the queue until a matching\nslot is found across the registered Nodes. However, the new session request might timeout if no slot was found. By default, a \nrequest will stay in the queue for up to 300 seconds before it a timeout is reached. In addition, an attempt to process the request\nis done every 5 seconds (by default).\n\nIt is possible to override those values through environment variables in the Hub and the SessionQueue (`SE_SESSION_REQUEST_TIMEOUT`\nand `SE_SESSION_RETRY_INTERVAL`). For example, a timeout of 500 seconds would be `SE_SESSION_REQUEST_TIMEOUT=500` and a retry \ninterval of 2 seconds would be `SE_SESSION_RETRY_INTERVAL=2`.\n\n### Increasing session concurrency per container\n\nBy default, only one session is configured to run per container through the `SE_NODE_MAX_SESSIONS` environment variable. It is\npossible to increase that number up to the maximum available processors, this is because more stability is achieved when one\ncontainer/browser has 1 CPU to run. \n\nHowever, if you have measured performance and based on that, you think more sessions can be executed in each container, you can\noverride the maximum limit by setting both `SE_NODE_MAX_SESSIONS` to a desired number and `SE_NODE_OVERRIDE_MAX_SESSIONS` to \n`true`. Nevertheless, running more browser sessions than the available processors is not recommended since you will be overloading\nthe resources.\n\nOverriding this setting has an undesired side effect when video recording is enabled since more than one browser session might be\ncaptured in the same video.\n\n### Running in Headless mode\n\n[Firefox](https://developer.mozilla.org/en-US/docs/Mozilla/Firefox/Headless_mode),\n[Chrome](https://developer.chrome.com/docs/chromium/headless),\nWhen using headless mode, there's no need for the [Xvfb](https://en.wikipedia.org/wiki/Xvfb) server to be started.\n\nTo avoid starting the server you can set the `SE_START_XVFB` environment variable to `false` \n(or any other value than `true`), for example:\n\n``` bash\n$ docker run -d --net grid -e SE_EVENT_BUS_HOST=selenium-hub \\\n  -e SE_START_XVFB=false --shm-size=\"2g\" selenium/node-chrome:4.41.0-20260222\n```\n\nFor more information, see this GitHub [issue](https://github.com/SeleniumHQ/docker-selenium/issues/567).\n\nNoted:\n- In new Chrome/Chromium versions (v127+), `SE_START_XVFB` is required to be set to `true` to run in `--headless=new` mode.\n- In new Chrome/Chromium versions (v132+), `--headless` only runs in the [`new` mode](https://developer.chrome.com/blog/removing-headless-old-from-chrome), so you need to set `SE_START_XVFB` to `true` when using `--headless` mode.\n\n### Stopping the Node/Standalone after N sessions have been executed\n\nIn some environments, like Docker Swarm or Kubernetes, it is useful to shut down the Node or Standalone\ncontainer after N tests have been executed. For example, this can be used in Kubernetes to terminate the\npod and then scale a new one after N sessions. Set the environment variable `SE_DRAIN_AFTER_SESSION_COUNT` to\na value higher than zero to enable this behaviour. \n\n``` bash\n$ docker run -e SE_DRAIN_AFTER_SESSION_COUNT=5 --shm-size=\"2g\" selenium/standalone-firefox:4.41.0-20260222\n```\n\nWith the previous command, the Standalone container will shut down after 5 sessions have been executed.\n\n### Automatic browser leftovers cleanup\n\nIn long-running containers, it can happen that browsers leave some leftovers. These can be stuck browser processes\nof jobs that have already finished but failed to fully stop the browser, or temporary files written to the `/tmp`\nfile system (notably on Chrome-based browsers). To avoid these filling up resources like process IDs and file system\nusage in the container, there is an automatic cleanup script running every hour in the node containers. This will\nclean up old processes and old temporary files. By default, this is disabled. When enabled, this will clean up browsers\nrunning for longer than 2 hours, and files older than 1 day. These can be enabled and tweaked with the following\nenvironment variables:\n\n* `SE_ENABLE_BROWSER_LEFTOVERS_CLEANUP`: default value `false`, set to `true` to enable the cleanup.\n* `SE_BROWSER_LEFTOVERS_INTERVAL_SECS`: default value `3600` (1 hour), cleanup interval in seconds.\n* `SE_BROWSER_LEFTOVERS_PROCESSES_SECS`: default value `7200` (2 hours), browsers running for longer than this time will be killed.\n* `SE_BROWSER_LEFTOVERS_TEMPFILES_DAYS`: default value `1` (1 day), files generated by Chrome-based browsers in `/tmp` will be removed after these number of days (ignored when using Firefox).\n\nIf you use Selenium for long-running sessions and expect browsers to be running for longer than 2 hours, either do\nnot set `SE_ENABLE_BROWSER_LEFTOVERS_CLEANUP` to `true` (leave the default value of `false`), or tweak\n`SE_BROWSER_LEFTOVERS_PROCESSES_SECS` to set a value higher than your expected long-running browser processes.\n\n``` bash\n$ docker run -e SE_ENABLE_BROWSER_LEFTOVERS_CLEANUP=true --shm-size=\"2g\" selenium/node-chrome:4.41.0-20260222\n```\n\nWith the previous command, the cleanup will be enabled with the default timings.\n\n``` bash\n$ docker run -e SE_ENABLE_BROWSER_LEFTOVERS_CLEANUP=true \\\n-e SE_BROWSER_LEFTOVERS_INTERVAL_SECS=7200 \\\n-e SE_BROWSER_LEFTOVERS_PROCESSES_SECS=3600 \\\n-e SE_BROWSER_LEFTOVERS_TEMPFILES_DAYS=2 \\\n--shm-size=\"2g\" selenium/node-chrome:4.41.0-20260222\n```\n\nWith the previous command, the cleanup will be enabled, but will run every 2 hours (instead of 1), will kill browsers\nrunning longer than 1 hour (instead of 2 hours), and will remove temp files older than 2 days (instead of 1).\n\n---\n\n## Mask sensitive information in console logs\n\nFew variables output like password, secret, etc. are masked in console logs. For debugging purposes, you can disable it by setting `SE_MASK_SECRETS` to `false`\n\nWhile creating bash script, your can mask the output by using syntax `echo \"Current value is $(mask ${YOUR_VARIABLE})`\n\n`SE_MASK_SECRETS_MIN_LENGTH` default is `3`. It means a long string will be masked to `***` to avoid exposing length for brute force attack.\n\n## Secure connection\n\nBy default, there are default self-signed certificates available in the image in location `/opt/selenium/secrets` includes\n- `server.jks`: truststore file to configure for JVM via system property `javax.net.ssl.trustStore` when start the server.\n- `server.pass`: file contains the truststore password for JVM via system property `javax.net.ssl.trustStorePassword`.\n- `tls.crt`: Server certificate for https connection is set to Selenium option `--https-certificate`.\n- `tls.key`: Server private key (in PKCS8 format) for https connection is set to Selenium option `--https-private-key`.\n\nThere are environment variables to configure the secure connection:\n\n| Environment variables                 | Default                             | Option of | Description                                   |\n|---------------------------------------|-------------------------------------|-----------|-----------------------------------------------|\n| SE_ENABLE_TLS                         | `false`                             |           | Enable secure connection with default configs |\n| SE_JAVA_SSL_TRUST_STORE               | `/opt/selenium/secrets/server.jks`  | JVM       |                                               |\n| SE_JAVA_SSL_TRUST_STORE_PASSWORD      | `/opt/selenium/secrets/server.pass` | JVM       |                                               |\n| SE_JAVA_DISABLE_HOSTNAME_VERIFICATION | `true`                              | JVM       | Disable host checks for components internally |\n| SE_HTTPS_CERTIFICATE                  | `/opt/selenium/secrets/tls.crt`     | Selenium  | Set to CLI option `--https-certificate`       |\n| SE_HTTPS_PRIVATE_KEY                  | `/opt/selenium/secrets/tls.key`     | Selenium  | Set to CLI option `--https-private-key`       |\n\nVia volume mount, you can replace the default certificates with your own certificates.\n\nThe self-signed certificate also needs to be trusted by the client (add to system widely bundle trusted CA) to avoid error message relates to SSL handshake when creating RemoteWebDriver.\n\nRefer to sample: [`docker-compose-v3-full-grid-secure.yml`](docker-compose-v3-full-grid-secure.yml)\n\n## Browser language and locale\n\nDifferent browsers have different ways to set the language and locale from binding.\n\n### Firefox\n\nFirefox can be configured to use a specific language and locale by setting the profile preference when create WebDriver from binding. In addition, language pack need to be installed as add-on for browser UI language to take effect. For example, to set the browser language and locale to `vi-VN`, you can use the following steps:\n\nGet the latest Firefox language pack for the desired language e.g. https://download.mozilla.org/?product=firefox-langpack-latest-SSL&lang=vi. Then, you can install the language pack as an add-on when creating the RemoteWebDriver instance.\n\n```python\nprofile = webdriver.FirefoxProfile()\nprofile.set_preference('intl.accept_languages', 'vi-VN,vi')\nprofile.set_preference('intl.locale.requested', 'vi-VN,vi')\noptions = FirefoxOptions()\noptions.profile = profile\ndriver = webdriver.Remote(options=options, command_executor=\"http://selenium-hub:4444/wd/hub\")\nwebdriver.Firefox.install_addon(driver, \"/local/path/to/vi.xpi\")\ndriver.get('https://google.com')\n```\n\nThere is a [script](NodeFirefox/get_lang_package.sh) to get all available language packs for a given Firefox version. You can run the script to get the language packs to your source. For example:\n\n```bash\nFIREFOX_VERSION=$(docker run --rm --entrypoint=\"\" selenium/node-firefox:latest firefox --version | awk '{print $3}') \\\n&& ./NodeFirefox/get_lang_package.sh ${FIREFOX_VERSION} /local/path/to/download\n```\n\nOr, you can mount the container directory `$(readlink -f $(which firefox)))/distribution/extensions` to host directory to access packs were pre-built in the container for using in your test script.\n\n## Managing processes in container\n\n[Supervisor](http://supervisord.org/configuration.html) is used to manage processes and logs in the container. Few configuration for `supervisord` can be set via environment variables as below:\n\n| Environment variables        | Default                | `supervisord` config    |\n|------------------------------|------------------------|-------------------------|\n| SE_SUPERVISORD_LOG_LEVEL     | `info`                 | supervisord.loglevel    |\n| SE_SUPERVISORD_CHILD_LOG_DIR | `/tmp`                 | supervisord.childlogdir |\n| SE_SUPERVISORD_LOG_FILE      | `/tmp/supervisord.log` | supervisord.logfile     |\n| SE_SUPERVISORD_PID_FILE      | `/tmp/supervisord.pid` | supervisord.pidfile     |\n\n___\n\n## Building the images\n\nClone the repo and from the project directory root you can build everything by running:\n\n``` bash\n$ VERSION=local make build\n```\n\nIf you need to configure environment variables in order to build the image (http proxy for instance), \nsimply set an environment variable `BUILD_ARGS` that contains the additional variables to pass to the \ndocker context (this will only work with docker >= 1.9)\n\n``` bash\n$ BUILD_ARGS=\"--build-arg http_proxy=http://acme:3128 --build-arg https_proxy=http://acme:3128\" make build\n```\n\n_Note: Omitting_ `VERSION=local` _will build the images with the released version but replacing the date for the \ncurrent one._\n\nIf you want to build the image with the host UID/GID, simply set an environment variable `BUILD_ARGS`\n\n``` bash\n$ BUILD_ARGS=\"--build-arg UID=$(id -u) --build-arg GID=$(id -g)\" make build\n```\n\nIf you want to build the image with different default user/password, simply set an environment variable `BUILD_ARGS`\n\n``` bash\n$ BUILD_ARGS=\"--build-arg SEL_USER=yourseluser --build-arg SEL_PASSWD=welcome\" make build\n```\n___\n\n# Build the images with specific versions\n\nBased on the latest Dockerfile (by cloning the repo and from the project directory root), you can build the images with a specific combination of Selenium Grid, and browser versions.\n\nFor example, you would like to build `node-chrome` and `standalone-chrome` images with the Grid based version `4.17.0`, Chrome browser versions `119`, `120`, `123` respectively.\n\n```bash\n$ ./tests/build-backward-compatible/bootstrap.sh 4.17.0 119,120,123 chrome\n```\n\nIn generic, the script takes the following arguments:\n- `$1` (mandatory): Selenium Grid version. Details are fetching from matrix [file](tests/build-backward-compatible/selenium-matrix.yml)\n- `$2` (mandatory): Browser major version, multiple values separated by comma. Details are fetching from matrix [file](tests/build-backward-compatible/browser-matrix.yml)\n- `$3` (optional): browser name. If not provided, it will iterate over all the browsers (`chrome`, `edge`, `firefox`)\n- `$4` (optional): Push image to registry. By default, it is `false`. If you want to push the image to the registry, set it to `true` (required Docker login to your namespace done before running the script).\n\nTo update the browser versions matrix, you can run the following command:\n\n```bash\nmake update_browser_versions_matrix\n```\n\nTo set your namespace for the images, you can set the environment variable `NAME` before running the script. For example:\n\n```bash\n$ export NAME=artifactory.yourcompany.com/selenium\n$ ./tests/build-backward-compatible/bootstrap.sh 4.17.0 119,120,123 chrome\n```\n\nAfter running the script, you will see list images with a full tag to pin specific Grid and browser version following [Tagging Conventions](https://github.com/SeleniumHQ/docker-selenium/wiki/Tagging-Convention)\n\n---\n\n## Upgrade browser version in the images\n\nSelenium server, browser and driver are pre-installed in the image. In case you would like to remain on the same Selenium version and just upgrade the browser and its driver to the latest. You can follow below steps\n\nClone the repo and from the project directory root you can upgrade by running:\n\n```bash\n$ VERSION=$EXPECTED_SELENIUM_VERSION make chrome_upgrade_version\n```\nFor example: `VERSION=4.16.1 make chrome_upgrade_version`\n\nThe new image has tag `$VERSION_YYYYMMDD` where `YYYYMMDD` is the current date.\n\n```bash\n$ VERSION=$SELENIUM_VERSION make firefox_upgrade_version\n```\n\n```bash\n$ VERSION=$SELENIUM_VERSION make edge_upgrade_version\n```\n\nYou can refer to detail commands in the [Makefile](Makefile) file.\n\n---\n\n## Upgrade browser and driver versions in the images\n\n| Image name                     | Support |\n|--------------------------------|---------|\n| node-chrome, standalone-chrome | ✅       |\n\nThere are two ways of usage this feature.\n\n1. Upgrade Chrome and ChromeDriver later in runtime (when starting the container). Set the container environment `SE_UPDATE_CHROME_COMPONENTS` to `true`. For example:\n    ```bash\n    docker run -d -p 4444:4444 -p 5900:5900 --shm-size=\"2g\" -e SE_UPDATE_CHROME_COMPONENTS=true selenium/standalone-chrome:latest\n    ```\n    Tradeoff:\n    Note that after the container gets restarted, updated binaries will be lost unless you call the update script within the build container process (the second usage below).\n\n2. Build your own image by reusing image layers with upgrading Chrome and ChromeDriver to the latest\n   Create a simple Dockerfile as below\n    ```Dockerfile\n    FROM --platform=linux/amd64 selenium/standalone-chrome:latest\n    RUN /opt/bin/update-chrome-components.sh\n    ```\n    - Option 1: Build your own image tag\n    ```bash\n    docker buildx build --platform linux/amd64 -t selenium/standalone-chrome:my-latest .\n    ```\n   - Option 2: Use Dockerfile in docker compose\n    ```yml\n    services:\n      chrome:\n        build:\n          context: .\n          dockerfile: Dockerfile\n        image: selenium/standalone-chrome:my-latest\n        # Add environments, ports, volumes, etc. as needed\n    ```\n\n---\n\n## Waiting for the Grid to be ready\n\nIt is a good practice to check first if the Grid is up and ready to receive requests, this can be done by checking the `/wd/hub/status` endpoint.\n\nA Grid that is ready, composed of a hub and two nodes, could look like this:\n\n```json\n{\n  \"value\": {\n    \"ready\": true,\n    \"message\": \"Selenium Grid ready.\",\n    \"nodes\": [\n      {\n        \"id\": \"6c0a2c59-7e99-469d-bbfc-313dc638797c\",\n        \"uri\": \"http:\\u002f\\u002f172.19.0.3:5555\",\n        \"maxSessions\": 4,\n        \"stereotypes\": [\n          {\n            \"capabilities\": {\n              \"browserName\": \"firefox\"\n            },\n            \"count\": 4\n          }\n        ],\n        \"sessions\": [\n        ]\n      },\n      {\n        \"id\": \"26af3363-a0d8-4bd6-a854-2c7497ed64a4\",\n        \"uri\": \"http:\\u002f\\u002f172.19.0.4:5555\",\n        \"maxSessions\": 4,\n        \"stereotypes\": [\n          {\n            \"capabilities\": {\n              \"browserName\": \"chrome\"\n            },\n            \"count\": 4\n          }\n        ],\n        \"sessions\": [\n        ]\n      }\n    ]\n  }\n}\n```\n\nThe `\"ready\": true` value indicates that the Grid is ready to receive requests. This status can be polled through a\nscript before running any test, or it can be added as a [HEALTHCHECK](https://docs.docker.com/engine/reference/run/#healthcheck)\nwhen the docker container is started.\n\n### Adding a [HEALTHCHECK](https://docs.docker.com/engine/reference/run/#healthcheck) to the Grid\n\nThe script [check-grid.sh](Base/check-grid.sh), which is included in the images, can be used to poll the Grid status.\n\nThis example checks the status of the Grid every 15 seconds, it has a timeout of 30 seconds when the check is done,\nand it retries up to 5 times until the container is marked as unhealthy. Please use adjusted values to fit your needs,\n(if needed) replace the `--host` and `--port` parameters for the ones used in your environment.\n\n``` bash\n$ docker network create grid\n$ docker run -d -p 4442-4444:4442-4444 --net grid --name selenium-hub \\\n  --health-cmd='/opt/bin/check-grid.sh --host 0.0.0.0 --port 4444' \\\n  --health-interval=15s --health-timeout=30s --health-retries=5 \\\n  selenium/hub:4.41.0-20260222\n$ docker run -d --net grid -e SE_EVENT_BUS_HOST=selenium-hub \\\n    --shm-size=\"2g\" \\\n    selenium/node-chrome:4.41.0-20260222\n$ docker run -d --net grid -e SE_EVENT_BUS_HOST=selenium-hub \\\n    --shm-size=\"2g\" \\\n    selenium/node-edge:4.41.0-20260222\n$ docker run -d --net grid -e SE_EVENT_BUS_HOST=selenium-hub \\\n    --shm-size=\"2g\" \\\n    selenium/node-firefox:4.41.0-20260222\n\n```\n**Note:** The `\\` line delimiter won't work on Windows-based terminals, try either `^` or a backtick.\n\nThe container health status can be checked by doing `docker ps` and verifying the `(healthy)|(unhealthy)` status or by\ninspecting it in the following way:\n\n```bash\n$ docker inspect --format='{{json .State.Health.Status}}' selenium-hub\n\"healthy\"\n```\n\n### Using a bash script to wait for the Grid\n\nA common problem known in docker is that a running container does not always mean that the application inside it is ready.\nA simple way to tackle this is by using a \"wait-for-it\" script, more information can be seen [here](https://docs.docker.com/compose/startup-order/).\n\nThe following script is an example of how this can be done using bash, but the same principle applies if you want to do this with the programming language used to write the tests.\nIn the example below, the script will poll the status endpoint every second. If the grid does not become ready within 30 seconds, the script will exit with an error code.\n\n```bash\n#!/bin/bash\n# wait-for-grid.sh\n\nset -e\nurl=\"http://localhost:4444/wd/hub/status\"\nwait_interval_in_seconds=1\nmax_wait_time_in_seconds=30\nend_time=$((SECONDS + max_wait_time_in_seconds))\ntime_left=$max_wait_time_in_seconds\n\nwhile [ $SECONDS -lt $end_time ]; do\n    response=$(curl -sL \"$url\" | jq -r '.value.ready')\n    if [ -n \"$response\"  ]  && [ \"$response\" ]; then\n        echo \"Selenium Grid is up - executing tests\"\n        break\n    else\n        echo \"Waiting for the Grid. Sleeping for $wait_interval_in_seconds second(s). $time_left seconds left until timeout.\"\n        sleep $wait_interval_in_seconds\n        time_left=$((time_left - wait_interval_in_seconds))\n    fi\ndone\n\nif [ $SECONDS -ge $end_time ]; then\n    echo \"Timeout: The Grid was not started within $max_wait_time_in_seconds seconds.\"\n    exit 1\nfi\n```\n> Will require `jq` installed via `apt-get`, else the script will keep printing `Waiting` without completing the execution.\n\n**Note:** If needed, replace `localhost` and `4444` for the correct values in your environment. Also, this script is polling indefinitely, you might want\nto tweak it and establish a timeout.\n\nLet's say that the normal command to execute your tests is `mvn clean test`. Here is a way to use the above script and execute your tests:\n\n```bash\n$ ./wait-for-grid.sh && mvn clean test\n```\n\nLike this, the script will poll until the Grid is ready, and then your tests will start.\n\n___\n\n## Install certificates for Chromium-based browsers\n\nBy default, the based image is installed `libnss3-tools` and initializes `/home/seluser/.pki/nssdb`,\nso you are able to add your certs with rootless.\nIf you need to install custom certificates, CA, intermediate CA,\nor client certificates (for example, enterprise internal CA)\nyou can create your own docker image from selenium node image.\nThe Chromium-based browser uses `nssdb` as a certificate store.\nYou can then install all required internal certificates in your Dockerfile like this:\n\nThere is a utility script packaged in the image that can be used to add your certificates to the `nssdb` store and the bundle CA.\nThe script is `/opt/bin/add-cert-helper.sh`.\n\n- Create a Dockerfile that uses the selenium node image as a base and copies the script to the container, and executes it.\nFor example, [Dockerfile](tests/customCACert/Dockerfile)\n\n- If you have to create a set of different certificates and node images. You can create a bootstrap script to do that in one-shot.\nFor example, [bootstrap.sh](tests/customCACert/bootstrap.sh)\n\nThe above example can be tested with the following command:\n\n```bash\nmake test_custom_ca_cert\n# ./tests/customCACert/bootstrap.sh\n```\n\nYou can find more information [here](https://chromium.googlesource.com/chromium/src/+/master/docs/linux/cert_management.md)\n\nThis way the certificates will be installed and the node will start automatically as before.\n___\n\n## Alternative method: Add certificates to existing Selenium based images for browsers\n\nAs an alternative, you can add your certificate files to existing Selenium images. This practical example\nassumes you have a known image to use as a build image and have a way to publish new images to your local\ndocker registry.\n\nThis example uses a RedHat-based distro as a build image (Rocky Linux) but it can be *any* Linux image of your choice.\nPlease note that build instruction will vary between distributions. You can check the instructions for Ubuntu\nin the previous example.\n\nThe example also assumes your internal CA is already in */etc/pki/ca-trust/source/anchors/YOUR_CA.pem*,\nthe default location for Rocky Linux. Alternatively, you can also provide these files from your host and \ncopy them into the build image.\n\nFor Chrome and Edge browsers, the recipe is the same, just adapt the image name (node-chrome or node-edge):\n```\n# Get a standard image for creating nssdb file\nFROM rockylinux:8.6 as build\nRUN yum install -y nss-tools\nRUN mkdir -p -m755 /seluser/.pki/nssdb \\\n    && certutil -d sql:/seluser/.pki/nssdb -N --empty-password \\\n    && certutil -d sql:/seluser/.pki/nssdb -A -t \"C,,\" -n YOUR_CA -i /etc/pki/ca-trust/source/anchors/YOUR_CA.pem \\\n    && chown -R 1200:1201 /seluser\n\n# Start from Selenium image and add relevant files from build image\nFROM selenium/node-chrome:4.41.0-20260222\nUSER root\nCOPY --from=build /seluser/ /home/seluser/\nUSER seluser\n```\n\nExample for Firefox:\n```\n# Get a standard image for working on\nFROM rockylinux:8.6 as build\nRUN mkdir -p \"/distribution\" \"/certs\" && \\\n    cp /etc/pki/ca-trust/source/anchors/YOUR_CA*.pem /certs/ && \\\n    echo '{ \"policies\": { \"Certificates\": { \"Install\": [\"/opt/firefox-latest/YOUR_CA.pem\"] }} }' >\"/distribution/policies.json\"\n\n# Start from Selenium image and add relevant files from build image\nFROM selenium/node-firefox:4.41.0-20260222\nUSER root\nCOPY --from=build /certs /opt/firefox-latest\nCOPY --from=build /distribution /opt/firefox-latest/distribution\nUSER seluser\n```\n___\n\n## Debugging\n\nThis project uses [x11vnc](https://github.com/LibVNC/x11vnc) as a VNC server to allow users to inspect what is happening\ninside the container. Users can connect to this server in two ways:\n\n### Using a VNC client\n\nThe VNC server is listening to port 5900, you can use a VNC client and connect to it. Feel free to map port 5900 to \nany free external port that you wish.\n\nThe internal 5900 port remains the same because that is the configured port for the VNC server running inside the container. \nYou can override it with the `SE_VNC_PORT` environment variable in case you want to use `--net=host`.\n\nHere is an example with the standalone images, the same concept applies to the node images.\n``` bash\n$ docker run -d -p 4444:4444 -p 5900:5900 --shm-size=\"2g\" selenium/standalone-chrome:4.41.0-20260222\n$ docker run -d -p 4445:4444 -p 5901:5900 --shm-size=\"2g\" selenium/standalone-edge:4.41.0-20260222\n$ docker run -d -p 4446:4444 -p 5902:5900 --shm-size=\"2g\" selenium/standalone-firefox:4.41.0-20260222\n```\n\nThen, you would use in your VNC client:\n- Port 5900 to connect to the Chrome container\n- Port 5901 to connect to the Edge container\n- Port 5902 to connect to the Firefox container\n\nIf you get a prompt asking for a password, it is: `secret`. If you wish to change this, \nyou can set the environment variable `SE_VNC_PASSWORD`.\n\nIf you want to run VNC without password authentication you can set the environment variable `SE_VNC_NO_PASSWORD=true`.\n\nIf you want to run VNC in view-only mode you can set the environment variable `SE_VNC_VIEW_ONLY=true`.\n\nIf you want to modify the open file descriptor limit for the VNC server process you can set the environment variable `SE_VNC_ULIMIT=4096`.\n\n### Using your browser (no VNC client is needed)\n\nThis project uses [noVNC](https://github.com/novnc/noVNC) to allow users to inspect visually container activity with\ntheir browser. This might come in handy if you cannot install a VNC client on your machine. Port 7900 is used to start\nnoVNC, so you will need to connect to that port with your browser.\n\nSimilarly to the previous section, feel free to map port 7900 to any free external port that you wish.\nYou can also override it with the `SE_NO_VNC_PORT` environment variable in case you want to use `--net=host`.\n\nHere is an example with the standalone images, the same concept applies to the node images.\n``` bash\n$ docker run -d -p 4444:4444 -p 7900:7900 --shm-size=\"2g\" selenium/standalone-chrome:4.41.0-20260222\n$ docker run -d -p 4445:4444 -p 7901:7900 --shm-size=\"2g\" selenium/standalone-edge:4.41.0-20260222\n$ docker run -d -p 4446:4444 -p 7902:7900 --shm-size=\"2g\" selenium/standalone-firefox:4.41.0-20260222\n```\n\nThen, you would use in your browser:\n- http://localhost:7900/ to connect to the Chrome container\n- http://localhost:7901/ to connect to the Edge container\n- http://localhost:7902/ to connect to the Firefox container\n\nIf you get a prompt asking for a password, it is: `secret`.\n\n### Disabling VNC\nIf You are running low on resources, or simply don't need to inspect running sessions, it is possible to not run VNC at all.\nJust set \n```SE_START_VNC=false```\nenvironment variable on the grid startup.\n\n___\n\n## Tracing in Grid\n\nIn order to enable tracing in the Selenium Grid container, the following commands can be executed:\n\n```bash\ndocker network create grid\ndocker run -d -p 16686:16686 -p 4317:4317 --net grid --name jaeger jaegertracing/all-in-one:1.54\ndocker run -d -p 4442-4444:4442-4444 --net grid --name selenium-hub selenium/hub:4.41.0-20260222\ndocker run -d --net grid -e SE_EVENT_BUS_HOST=selenium-hub \\\n    --shm-size=\"2g\" \\\n\t-e SE_ENABLE_TRACING=true \\\n\t-e SE_OTEL_TRACES_EXPORTER=otlp \\\n\t-e SE_OTEL_EXPORTER_ENDPOINT=http://jaeger:4317 \\\n    selenium/node-chrome:4.41.0-20260222\ndocker run -d --net grid -e SE_EVENT_BUS_HOST=selenium-hub \\\n    --shm-size=\"2g\" \\\n\t-e SE_ENABLE_TRACING=true \\\n\t-e SE_OTEL_TRACES_EXPORTER=otlp \\\n\t-e SE_OTEL_EXPORTER_ENDPOINT=http://jaeger:4317 \\\n    selenium/node-edge:4.41.0-20260222\ndocker run -d --net grid -e SE_EVENT_BUS_HOST=selenium-hub \\\n    --shm-size=\"2g\" \\\n\t-e SE_ENABLE_TRACING=true \\\n\t-e SE_OTEL_TRACES_EXPORTER=otlp \\\n\t-e SE_OTEL_EXPORTER_ENDPOINT=http://jaeger:4317 \\\n    selenium/node-firefox:4.41.0-20260222\n```\n\nYou can also refer to the below docker compose yaml files to be able to start a simple grid (or) a dynamic grid.\n\n* Simple Grid [v3 yaml file](docker-compose-v3-tracing.yml)\n* Simple Grid [v2 yaml file](docker-compose-v2-tracing.yml)\n* Dynamic Grid [v3 yaml file](docker-compose-v3-full-grid-tracing.yml)\n\nYou can view the [Jaeger UI](http://localhost:16686/) and trace your request.\n\nBy default, the tracing is enabled in Grid components. Without trace exporter endpoint, it will look up a local instance e.g. `localhost/[0:0:0:0:0:0:0:1]:4117`.\nIn container logs you can see few lines like below:\n\n```bash\nERROR (ThrottlingLogger.dolog) Failed to export spans.\n  The request could not be executed. Error message: Failed to connect to localhost/[0:0:0:0:0:0:0:1]:4117\n  java.net.ConnectException: Failed to connect to localhost/[0:0:0:0:0:0:0:1]:4317 \nat okhttp3.internal.connection.RealConnection.connectSocket(RealConnection.kt:297)\nat okhttp3.internal.connection. ExchangeFinder.findConnection (Exchangefinder.kt: 226)\nat okhttp3.internal.connection.okhttps.internal.connection.RealConnection.connect(RealConnection.kt:207)\n```\n\nIn this case, just simply set `SE_ENABLE_TRACING=false` to all components container to disable tracing (each component exports its own traces).\n\n___\n\n## Troubleshooting\n\nAll output gets sent to stdout, so it can be inspected by running:\n``` bash\n$ docker logs -f <container-id|container-name>\n```\n\nYou can increase the log output by passing environment variable to the containers:\n```\nSE_OPTS=\"--log-level FINE\"\n```\n\n### `--shm-size=\"2g\"`\n\nWhy is `--shm-size 2g` necessary?\n> This is a known workaround to avoid the browser crashing inside a docker container, here are the documented issues for\n[Chrome](https://code.google.com/p/chromium/issues/detail?id=519952) and [Firefox](https://bugzilla.mozilla.org/show_bug.cgi?id=1338771#c10).\nThe shm size of 2gb is arbitrary but known to work well, your specific use case might need a different value, it is recommended\nto tune this value according to your needs.\n\n\n### Headless\n\nIf you see the following selenium exceptions:\n\n`Message: invalid argument: can't kill an exited process`\n\nor\n\n`Message: unknown error: Chrome failed to start: exited abnormally`\n\nor\n\n` [DriverServiceSessionFactory.apply] - Error while creating session with the driver service. Stopping driver service: java.util.concurrent.TimeoutException`\n\nThe reason _might_ be that you've set the `SE_START_XVFB` environment variable to `false`, but forgot to \nactually run Firefox, Chrome or Edge in headless mode.\n\n### Mounting volumes to retrieve downloaded files\n\nA common scenario is mounting a volume to the browser \ncontainer in order to retrieve downloaded files. This\nworks well in Windows and macOS but not without \nworkarounds in Linux. For more details, check this\nwell-documented [issue](https://github.com/SeleniumHQ/docker-selenium/issues/1095).\n\nFor example, while using Linux, you might be starting a\ncontainer in the following way:\n\n```bash\ndocker run -d -p 4444:4444 --shm-size=\"2g\" \\\n  -v /home/ubuntu/files:/home/seluser/Downloads \\\n  selenium/standalone-chrome:4.41.0-20260222\n```\n\nThat will mount the host `/home/ubuntu/files` directory\nto the `/home/seluser/Downloads` inside the container\n(default browser's downloads directory). The\nproblem happens because the volume will be mounted as\n`root`; therefore, the browser cannot write a file to\nthat directory because it is running under the user \n`seluser`. This happens because that is how Docker mounts\nvolumes in Linux, more details in this [issue](https://github.com/moby/moby/issues/2259).\n\nA workaround for this is to create a directory on the\nhost and change its permissions **before mounting the volume**. \nDepending on your user permissions, you might need to use \n`sudo` for some of these commands:\n\n```bash\nmkdir /home/ubuntu/files\nchown 1200:1201 /home/ubuntu/files\n```\n\nAfter doing this, you should be able to download files\nto the mounted directory. If you have a better workaround,\nplease send us a pull request!\n\n### Mounting volumes to retrieve video files\n\nSimilar to mount volumes to retrieve downloaded files. For video files, you might need to do the same\n\n```bash\nmkdir /tmp/videos\nchown 1200:1201 /tmp/videos\n```\n\n### Websocket connections per session get exhausted\n\n> org.openqa.selenium.remote.http.ConnectionFailedException: JdkWebSocket initial request execution error`\n\nThis was reported in [#2850](https://github.com/SeleniumHQ/docker-selenium/issues/2850).\nActually, from Grid version v4.26.0+, in Node CLI option `--connection-limit-per-session` (`SE_NODE_CONNECTION_LIMIT_PER_SESSION` environment variable) is set to `10` by default. Let X be the maximum number of websocket connections per session.This will ensure one session is not able to exhaust the connection limit of the host. Websocket connection might come from enable CDP, BiDi.\n\nYour test scenario or test framework implementation might be creating more than `X` connections per session, which will lead to the error above. You can optimize your implementation to use less connections per session, or you can increase the limit by setting the environment variable `SE_NODE_CONNECTION_LIMIT_PER_SESSION` to a value higher than `10` to allow more connections per session.\n\n## Stargazers over time\n[![Stargazers over time](https://starchart.cc/SeleniumHQ/docker-selenium.svg?variant=adaptive)](https://starchart.cc/SeleniumHQ/docker-selenium)\n"
  },
  {
    "path": "Router/Dockerfile",
    "content": "ARG NAMESPACE=selenium\nARG VERSION=latest\nFROM ${NAMESPACE}/base:${VERSION}\nARG AUTHORS\nLABEL authors=${AUTHORS}\n\nUSER ${SEL_UID}\n\n#========================\n# Selenium Router Configuration\n#========================\n\n# In seconds, maps to \"--session-request-timeout\"\nENV SE_SESSION_REQUEST_TIMEOUT=\"300\" \\\n# In seconds, maps to \"--session-retry-interval\"\n    SE_SESSION_RETRY_INTERVAL=\"15\" \\\n    SE_DISTRIBUTOR_PORT=\"5553\" \\\n    SE_SESSIONS_MAP_PORT=\"5556\" \\\n    SE_SESSION_QUEUE_PORT=\"5559\" \\\n    SE_ROUTER_PORT=\"4444\" \\\n    SE_OTEL_SERVICE_NAME=\"selenium-router\"\n\nEXPOSE 4444\n\nCOPY --chown=\"${SEL_UID}:${SEL_GID}\" start-selenium-grid-router.sh \\\n    /opt/bin/\n\nCOPY selenium-grid-router.conf /etc/supervisor/conf.d/\n"
  },
  {
    "path": "Router/selenium-grid-router.conf",
    "content": "; Documentation of this file format -> http://supervisord.org/configuration.html\n\n[program:selenium-grid-router]\n\npriority=0\ncommand=/opt/bin/start-selenium-grid-router.sh\nautostart=true\nautorestart=%(ENV_SE_SUPERVISORD_AUTO_RESTART)s\nstartsecs=0\nstartretries=%(ENV_SE_SUPERVISORD_START_RETRIES)s\nstopsignal=TERM\n\n;Logs (all Hub activity redirected to stdout so it can be seen through \"docker logs\"\nredirect_stderr=true\nstdout_logfile=/dev/stdout\nstdout_logfile_maxbytes=0\n"
  },
  {
    "path": "Router/start-selenium-grid-router.sh",
    "content": "#!/usr/bin/env bash\n\n# set -e: exit asap if a command exits with a non-zero status\nset -e\n\necho \"Starting Selenium Grid Router...\"\n\nfunction append_se_opts() {\n  local option=\"${1}\"\n  local value=\"${2:-\"\"}\"\n  local log_message=\"${3:-true}\"\n  if [[ \"${SE_OPTS}\" != *\"${option}\"* ]]; then\n    if [ \"${log_message}\" = \"true\" ]; then\n      echo \"Appending Selenium option: ${option} ${value}\"\n    else\n      echo \"Appending Selenium option: ${option} $(mask ${value})\"\n    fi\n    SE_OPTS=\"${SE_OPTS} ${option}\"\n    if [ ! -z \"${value}\" ]; then\n      SE_OPTS=\"${SE_OPTS} ${value}\"\n    fi\n  else\n    echo \"Selenium option: ${option} already set in env variable SE_OPTS. Ignore new option: ${option} ${value}\"\n  fi\n}\n\nif [[ -z \"${SE_SESSIONS_MAP_HOST}\" ]]; then\n  echo \"SE_SESSIONS_MAP_HOST not set, exiting!\" 1>&2\n  exit 1\nfi\n\nif [[ -z \"${SE_SESSIONS_MAP_PORT}\" ]]; then\n  echo \"SE_SESSIONS_MAP_PORT not set, exiting!\" 1>&2\n  exit 1\nfi\n\nif [[ -z \"${SE_DISTRIBUTOR_HOST}\" ]]; then\n  echo \"DISTRIBUTOR_HOST not set, exiting!\" 1>&2\n  exit 1\nfi\n\nif [[ -z \"${SE_DISTRIBUTOR_PORT}\" ]]; then\n  echo \"DISTRIBUTOR_PORT not set, exiting!\" 1>&2\n  exit 1\nfi\n\nif [[ -z \"${SE_SESSION_QUEUE_HOST}\" ]]; then\n  echo \"SE_SESSION_QUEUE_HOST not set, exiting!\" 1>&2\n  exit 1\nfi\n\nif [[ -z \"${SE_SESSION_QUEUE_PORT}\" ]]; then\n  echo \"SE_SESSION_QUEUE_PORT not set, exiting!\" 1>&2\n  exit 1\nfi\n\nif [ ! -z \"$SE_SUB_PATH\" ]; then\n  echo \"Using SE_SUB_PATH: ${SE_SUB_PATH}\"\n  SUB_PATH_CONFIG=\"--sub-path ${SE_SUB_PATH}\"\nfi\n\nif [ ! -z \"$SE_OPTS\" ]; then\n  echo \"Appending Selenium options: ${SE_OPTS}\"\nfi\n\nif [ ! -z \"$SE_ROUTER_HOST\" ]; then\n  echo \"Using SE_ROUTER_HOST: ${SE_ROUTER_HOST}\"\n  HOST_CONFIG=\"--host ${SE_ROUTER_HOST}\"\nfi\n\nif [ ! -z \"$SE_ROUTER_PORT\" ]; then\n  echo \"Using SE_ROUTER_PORT: ${SE_ROUTER_PORT}\"\n  PORT_CONFIG=\"--port ${SE_ROUTER_PORT}\"\nfi\n\nif [ ! -z \"$SE_LOG_LEVEL\" ]; then\n  append_se_opts \"--log-level\" \"${SE_LOG_LEVEL}\"\nfi\n\nif [ ! -z \"$SE_HTTP_LOGS\" ]; then\n  append_se_opts \"--http-logs\" \"${SE_HTTP_LOGS}\"\nfi\n\nif [ ! -z \"$SE_STRUCTURED_LOGS\" ]; then\n  append_se_opts \"--structured-logs\" \"${SE_STRUCTURED_LOGS}\"\nfi\n\nif [ ! -z \"$SE_PLAIN_LOGS\" ]; then\n  append_se_opts \"--plain-logs\" \"${SE_PLAIN_LOGS}\"\nfi\n\nif [ ! -z \"$SE_EXTERNAL_URL\" ]; then\n  append_se_opts \"--external-url\" \"${SE_EXTERNAL_URL}\"\nfi\n\nif [ \"${SE_ENABLE_TLS}\" = \"true\" ]; then\n  # Configure truststore for the server\n  if [ ! -z \"$SE_JAVA_SSL_TRUST_STORE\" ]; then\n    echo \"Appending Java options: -Djavax.net.ssl.trustStore=${SE_JAVA_SSL_TRUST_STORE}\"\n    SE_JAVA_OPTS=\"$SE_JAVA_OPTS -Djavax.net.ssl.trustStore=${SE_JAVA_SSL_TRUST_STORE}\"\n  fi\n  if [ -f \"${SE_JAVA_SSL_TRUST_STORE_PASSWORD}\" ]; then\n    echo \"Getting Truststore password from ${SE_JAVA_SSL_TRUST_STORE_PASSWORD} to set Java options: -Djavax.net.ssl.trustStorePassword\"\n    SE_JAVA_SSL_TRUST_STORE_PASSWORD=\"$(cat ${SE_JAVA_SSL_TRUST_STORE_PASSWORD})\"\n  fi\n  if [ ! -z \"${SE_JAVA_SSL_TRUST_STORE_PASSWORD}\" ]; then\n    echo \"Appending Java options: -Djavax.net.ssl.trustStorePassword=$(mask ${SE_JAVA_SSL_TRUST_STORE_PASSWORD})\"\n    SE_JAVA_OPTS=\"$SE_JAVA_OPTS -Djavax.net.ssl.trustStorePassword=${SE_JAVA_SSL_TRUST_STORE_PASSWORD}\"\n  fi\n  echo \"Appending Java options: -Djdk.internal.httpclient.disableHostnameVerification=${SE_JAVA_DISABLE_HOSTNAME_VERIFICATION}\"\n  SE_JAVA_OPTS=\"$SE_JAVA_OPTS -Djdk.internal.httpclient.disableHostnameVerification=${SE_JAVA_DISABLE_HOSTNAME_VERIFICATION}\"\n  # Configure certificate and private key for component communication\n  if [ ! -z \"$SE_HTTPS_CERTIFICATE\" ]; then\n    append_se_opts \"--https-certificate\" \"${SE_HTTPS_CERTIFICATE}\"\n  fi\n  if [ ! -z \"$SE_HTTPS_PRIVATE_KEY\" ]; then\n    append_se_opts \"--https-private-key\" \"${SE_HTTPS_PRIVATE_KEY}\"\n  fi\nfi\n\nif [ ! -z \"$SE_REGISTRATION_SECRET\" ]; then\n  append_se_opts \"--registration-secret\" \"${SE_REGISTRATION_SECRET}\" \"false\"\nfi\n\nif [ ! -z \"$SE_DISABLE_UI\" ]; then\n  append_se_opts \"--disable-ui\" \"${SE_DISABLE_UI}\"\nfi\n\nif [ ! -z \"$SE_ROUTER_USERNAME\" ]; then\n  append_se_opts \"--username\" \"${SE_ROUTER_USERNAME}\" \"false\"\nfi\n\nif [ ! -z \"$SE_ROUTER_PASSWORD\" ]; then\n  append_se_opts \"--password\" \"${SE_ROUTER_PASSWORD}\" \"false\"\nfi\n\nEXTRA_LIBS=\"\"\nif [ -n \"${SE_EXTRA_LIBS}\" ]; then\n  EXTRA_LIBS=\"--ext ${SE_EXTRA_LIBS}\"\nfi\n\nif [ \"${SE_ENABLE_TRACING}\" = \"true\" ] && [ -n \"${SE_OTEL_EXPORTER_ENDPOINT}\" ]; then\n  EXTERNAL_JARS=$(</external_jars/.classpath.txt)\n  if [ -n \"${EXTRA_LIBS}\" ] && [ -n \"${EXTERNAL_JARS}\" ]; then\n    EXTRA_LIBS=\"${EXTRA_LIBS}:${EXTERNAL_JARS}\"\n  elif [ -z \"${EXTRA_LIBS}\" ] && [ -n \"${EXTERNAL_JARS}\" ]; then\n    EXTRA_LIBS=\"--ext ${EXTERNAL_JARS}\"\n  fi\n  echo \"Tracing is enabled\"\n  if [ -n \"$SE_OTEL_SERVICE_NAME\" ]; then\n    SE_OTEL_JVM_ARGS=\"$SE_OTEL_JVM_ARGS -Dotel.resource.attributes=service.name=${SE_OTEL_SERVICE_NAME}${SE_OTEL_RESOURCE_ATTRIBUTES:+,${SE_OTEL_RESOURCE_ATTRIBUTES}}\"\n  fi\n  if [ -n \"$SE_OTEL_TRACES_EXPORTER\" ]; then\n    SE_OTEL_JVM_ARGS=\"$SE_OTEL_JVM_ARGS -Dotel.traces.exporter=${SE_OTEL_TRACES_EXPORTER}\"\n  fi\n  if [ -n \"$SE_OTEL_EXPORTER_ENDPOINT\" ]; then\n    SE_OTEL_JVM_ARGS=\"$SE_OTEL_JVM_ARGS -Dotel.exporter.otlp.endpoint=$(envsubst < <(echo ${SE_OTEL_EXPORTER_ENDPOINT}))\"\n  fi\n  if [ -n \"$SE_OTEL_JAVA_GLOBAL_AUTOCONFIGURE_ENABLED\" ]; then\n    SE_OTEL_JVM_ARGS=\"$SE_OTEL_JVM_ARGS -Dotel.java.global-autoconfigure.enabled=${SE_OTEL_JAVA_GLOBAL_AUTOCONFIGURE_ENABLED}\"\n  fi\n  if [ -n \"$SE_OTEL_JVM_ARGS\" ]; then\n    SE_JAVA_OPTS=\"$SE_JAVA_OPTS ${SE_OTEL_JVM_ARGS}\"\n  fi\nelse\n  append_se_opts \"--tracing\" \"false\"\n  SE_JAVA_OPTS=\"$SE_JAVA_OPTS -Dwebdriver.remote.enableTracing=false\"\n  echo \"Tracing is disabled\"\nfi\n\nif [ -n \"${EXTRA_LIBS}\" ]; then\n  echo \"Classpath will be enriched with these external jars : ${EXTRA_LIBS}\"\nfi\n\nif [ -n \"${SE_JAVA_HTTPCLIENT_VERSION}\" ]; then\n  SE_JAVA_OPTS=\"$SE_JAVA_OPTS -Dwebdriver.httpclient.version=${SE_JAVA_HTTPCLIENT_VERSION}\"\nfi\n\nif [ -n \"${SE_JAVA_OPTS_DEFAULT}\" ]; then\n  SE_JAVA_OPTS=\"${SE_JAVA_OPTS_DEFAULT} $SE_JAVA_OPTS\"\nfi\n\nfunction handle_heap_dump() {\n  /opt/bin/handle_heap_dump.sh /opt/selenium/logs\n}\nif [ \"${SE_JAVA_HEAP_DUMP}\" = \"true\" ]; then\n  SE_JAVA_OPTS=\"$SE_JAVA_OPTS -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=/opt/selenium/logs\"\n  trap handle_heap_dump ERR SIGTERM SIGINT\nfi\n\nif [ -n \"${JAVA_OPTS}\" ]; then\n  SE_JAVA_OPTS=\"$SE_JAVA_OPTS ${JAVA_OPTS}\"\nfi\n\necho \"Using JAVA_OPTS: ${SE_JAVA_OPTS}\"\n\njava ${SE_JAVA_OPTS} \\\n  -jar /opt/selenium/selenium-server.jar \\\n  ${EXTRA_LIBS} router \\\n  --sessions-host \"${SE_SESSIONS_MAP_HOST}\" --sessions-port \"${SE_SESSIONS_MAP_PORT}\" \\\n  --distributor-host \"${SE_DISTRIBUTOR_HOST}\" --distributor-port \"${SE_DISTRIBUTOR_PORT}\" \\\n  --sessionqueue-host \"${SE_SESSION_QUEUE_HOST}\" --sessionqueue-port \"${SE_SESSION_QUEUE_PORT}\" \\\n  --session-request-timeout ${SE_SESSION_REQUEST_TIMEOUT} \\\n  --session-retry-interval ${SE_SESSION_RETRY_INTERVAL} \\\n  --relax-checks true \\\n  --bind-host ${SE_BIND_HOST} \\\n  ${HOST_CONFIG} \\\n  ${PORT_CONFIG} \\\n  ${SUB_PATH_CONFIG} \\\n  ${SE_OPTS}\n"
  },
  {
    "path": "SessionQueue/Dockerfile",
    "content": "ARG NAMESPACE=selenium\nARG VERSION=latest\nFROM ${NAMESPACE}/base:${VERSION}\nARG AUTHORS\nLABEL authors=${AUTHORS}\n\nUSER ${SEL_UID}\n\n#========================\n# Selenium SessionQueue Configuration\n#========================\n\n# In seconds, maps to \"--session-request-timeout\"\nENV SE_SESSION_REQUEST_TIMEOUT=\"300\" \\\n# In seconds, maps to \"--session-retry-interval\"\n    SE_SESSION_RETRY_INTERVAL=\"15\" \\\n    SE_SESSION_QUEUE_PORT=\"5559\" \\\n    SE_OTEL_SERVICE_NAME=\"selenium-session-queue\"\n\nEXPOSE 5559\n\nCOPY --chown=\"${SEL_UID}:${SEL_GID}\" start-selenium-grid-session-queue.sh \\\n    /opt/bin/\n\nCOPY selenium-grid-session-queue.conf /etc/supervisor/conf.d/\n"
  },
  {
    "path": "SessionQueue/selenium-grid-session-queue.conf",
    "content": "; Documentation of this file format -> http://supervisord.org/configuration.html\n\n[program:selenium-grid-session-queue]\n\npriority=0\ncommand=/opt/bin/start-selenium-grid-session-queue.sh\nautostart=true\nautorestart=%(ENV_SE_SUPERVISORD_AUTO_RESTART)s\nstartsecs=0\nstartretries=%(ENV_SE_SUPERVISORD_START_RETRIES)s\nstopsignal=TERM\n\n;Logs (all Hub activity redirected to stdout so it can be seen through \"docker logs\"\nredirect_stderr=true\nstdout_logfile=/dev/stdout\nstdout_logfile_maxbytes=0\n"
  },
  {
    "path": "SessionQueue/start-selenium-grid-session-queue.sh",
    "content": "#!/usr/bin/env bash\n\n# set -e: exit asap if a command exits with a non-zero status\nset -e\n\necho \"Starting Selenium Grid SessionQueue...\"\n\nfunction append_se_opts() {\n  local option=\"${1}\"\n  local value=\"${2:-\"\"}\"\n  local log_message=\"${3:-true}\"\n  if [[ \"${SE_OPTS}\" != *\"${option}\"* ]]; then\n    if [ \"${log_message}\" = \"true\" ]; then\n      echo \"Appending Selenium option: ${option} ${value}\"\n    else\n      echo \"Appending Selenium option: ${option} $(mask ${value})\"\n    fi\n    SE_OPTS=\"${SE_OPTS} ${option}\"\n    if [ ! -z \"${value}\" ]; then\n      SE_OPTS=\"${SE_OPTS} ${value}\"\n    fi\n  else\n    echo \"Selenium option: ${option} already set in env variable SE_OPTS. Ignore new option: ${option} ${value}\"\n  fi\n}\n\nif [ ! -z \"$SE_OPTS\" ]; then\n  echo \"Appending Selenium options: ${SE_OPTS}\"\nfi\n\nif [ ! -z \"$SE_SESSION_QUEUE_HOST\" ]; then\n  echo \"Using SE_SESSION_QUEUE_HOST: ${SE_SESSION_QUEUE_HOST}\"\n  HOST_CONFIG=\"--host ${SE_SESSION_QUEUE_HOST}\"\nfi\n\nif [ ! -z \"$SE_SESSION_QUEUE_PORT\" ]; then\n  echo \"Using SE_SESSION_QUEUE_PORT: ${SE_SESSION_QUEUE_PORT}\"\n  PORT_CONFIG=\"--port ${SE_SESSION_QUEUE_PORT}\"\nfi\n\nif [ ! -z \"$SE_LOG_LEVEL\" ]; then\n  append_se_opts \"--log-level\" \"${SE_LOG_LEVEL}\"\nfi\n\nif [ ! -z \"$SE_HTTP_LOGS\" ]; then\n  append_se_opts \"--http-logs\" \"${SE_HTTP_LOGS}\"\nfi\n\nif [ ! -z \"$SE_STRUCTURED_LOGS\" ]; then\n  append_se_opts \"--structured-logs\" \"${SE_STRUCTURED_LOGS}\"\nfi\n\nif [ ! -z \"$SE_PLAIN_LOGS\" ]; then\n  append_se_opts \"--plain-logs\" \"${SE_PLAIN_LOGS}\"\nfi\n\nif [ ! -z \"$SE_EXTERNAL_URL\" ]; then\n  append_se_opts \"--external-url\" \"${SE_EXTERNAL_URL}\"\nfi\n\nif [ \"${SE_ENABLE_TLS}\" = \"true\" ]; then\n  # Configure truststore for the server\n  if [ ! -z \"$SE_JAVA_SSL_TRUST_STORE\" ]; then\n    echo \"Appending Java options: -Djavax.net.ssl.trustStore=${SE_JAVA_SSL_TRUST_STORE}\"\n    SE_JAVA_OPTS=\"$SE_JAVA_OPTS -Djavax.net.ssl.trustStore=${SE_JAVA_SSL_TRUST_STORE}\"\n  fi\n  if [ -f \"${SE_JAVA_SSL_TRUST_STORE_PASSWORD}\" ]; then\n    echo \"Getting Truststore password from ${SE_JAVA_SSL_TRUST_STORE_PASSWORD} to set Java options: -Djavax.net.ssl.trustStorePassword\"\n    SE_JAVA_SSL_TRUST_STORE_PASSWORD=\"$(cat ${SE_JAVA_SSL_TRUST_STORE_PASSWORD})\"\n  fi\n  if [ ! -z \"${SE_JAVA_SSL_TRUST_STORE_PASSWORD}\" ]; then\n    echo \"Appending Java options: -Djavax.net.ssl.trustStorePassword=$(mask ${SE_JAVA_SSL_TRUST_STORE_PASSWORD})\"\n    SE_JAVA_OPTS=\"$SE_JAVA_OPTS -Djavax.net.ssl.trustStorePassword=${SE_JAVA_SSL_TRUST_STORE_PASSWORD}\"\n  fi\n  echo \"Appending Java options: -Djdk.internal.httpclient.disableHostnameVerification=${SE_JAVA_DISABLE_HOSTNAME_VERIFICATION}\"\n  SE_JAVA_OPTS=\"$SE_JAVA_OPTS -Djdk.internal.httpclient.disableHostnameVerification=${SE_JAVA_DISABLE_HOSTNAME_VERIFICATION}\"\n  # Configure certificate and private key for component communication\n  if [ ! -z \"$SE_HTTPS_CERTIFICATE\" ]; then\n    append_se_opts \"--https-certificate\" \"${SE_HTTPS_CERTIFICATE}\"\n  fi\n  if [ ! -z \"$SE_HTTPS_PRIVATE_KEY\" ]; then\n    append_se_opts \"--https-private-key\" \"${SE_HTTPS_PRIVATE_KEY}\"\n  fi\nfi\n\nif [ ! -z \"$SE_REGISTRATION_SECRET\" ]; then\n  append_se_opts \"--registration-secret\" \"${SE_REGISTRATION_SECRET}\" \"false\"\nfi\n\nEXTRA_LIBS=\"\"\nif [ -n \"${SE_EXTRA_LIBS}\" ]; then\n  EXTRA_LIBS=\"--ext ${SE_EXTRA_LIBS}\"\nfi\n\nif [ \"${SE_ENABLE_TRACING}\" = \"true\" ] && [ -n \"${SE_OTEL_EXPORTER_ENDPOINT}\" ]; then\n  EXTERNAL_JARS=$(</external_jars/.classpath.txt)\n  if [ -n \"${EXTRA_LIBS}\" ] && [ -n \"${EXTERNAL_JARS}\" ]; then\n    EXTRA_LIBS=\"${EXTRA_LIBS}:${EXTERNAL_JARS}\"\n  elif [ -z \"${EXTRA_LIBS}\" ] && [ -n \"${EXTERNAL_JARS}\" ]; then\n    EXTRA_LIBS=\"--ext ${EXTERNAL_JARS}\"\n  fi\n  echo \"Tracing is enabled\"\n  if [ -n \"$SE_OTEL_SERVICE_NAME\" ]; then\n    SE_OTEL_JVM_ARGS=\"$SE_OTEL_JVM_ARGS -Dotel.resource.attributes=service.name=${SE_OTEL_SERVICE_NAME}${SE_OTEL_RESOURCE_ATTRIBUTES:+,${SE_OTEL_RESOURCE_ATTRIBUTES}}\"\n  fi\n  if [ -n \"$SE_OTEL_TRACES_EXPORTER\" ]; then\n    SE_OTEL_JVM_ARGS=\"$SE_OTEL_JVM_ARGS -Dotel.traces.exporter=${SE_OTEL_TRACES_EXPORTER}\"\n  fi\n  if [ -n \"$SE_OTEL_EXPORTER_ENDPOINT\" ]; then\n    SE_OTEL_JVM_ARGS=\"$SE_OTEL_JVM_ARGS -Dotel.exporter.otlp.endpoint=$(envsubst < <(echo ${SE_OTEL_EXPORTER_ENDPOINT}))\"\n  fi\n  if [ -n \"$SE_OTEL_JAVA_GLOBAL_AUTOCONFIGURE_ENABLED\" ]; then\n    SE_OTEL_JVM_ARGS=\"$SE_OTEL_JVM_ARGS -Dotel.java.global-autoconfigure.enabled=${SE_OTEL_JAVA_GLOBAL_AUTOCONFIGURE_ENABLED}\"\n  fi\n  if [ -n \"$SE_OTEL_JVM_ARGS\" ]; then\n    SE_JAVA_OPTS=\"$SE_JAVA_OPTS ${SE_OTEL_JVM_ARGS}\"\n  fi\nelse\n  append_se_opts \"--tracing\" \"false\"\n  SE_JAVA_OPTS=\"$SE_JAVA_OPTS -Dwebdriver.remote.enableTracing=false\"\n  echo \"Tracing is disabled\"\nfi\n\nif [ -n \"${EXTRA_LIBS}\" ]; then\n  echo \"Classpath will be enriched with these external jars : ${EXTRA_LIBS}\"\nfi\n\nif [ -n \"${SE_JAVA_HTTPCLIENT_VERSION}\" ]; then\n  SE_JAVA_OPTS=\"$SE_JAVA_OPTS -Dwebdriver.httpclient.version=${SE_JAVA_HTTPCLIENT_VERSION}\"\nfi\n\nif [ -n \"${SE_JAVA_OPTS_DEFAULT}\" ]; then\n  SE_JAVA_OPTS=\"${SE_JAVA_OPTS_DEFAULT} $SE_JAVA_OPTS\"\nfi\n\nfunction handle_heap_dump() {\n  /opt/bin/handle_heap_dump.sh /opt/selenium/logs\n}\nif [ \"${SE_JAVA_HEAP_DUMP}\" = \"true\" ]; then\n  SE_JAVA_OPTS=\"$SE_JAVA_OPTS -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=/opt/selenium/logs\"\n  trap handle_heap_dump ERR SIGTERM SIGINT\nfi\n\nif [ -n \"${JAVA_OPTS}\" ]; then\n  SE_JAVA_OPTS=\"$SE_JAVA_OPTS ${JAVA_OPTS}\"\nfi\n\necho \"Using JAVA_OPTS: ${SE_JAVA_OPTS}\"\n\njava ${SE_JAVA_OPTS} \\\n  -jar /opt/selenium/selenium-server.jar \\\n  ${EXTRA_LIBS} sessionqueue \\\n  --session-request-timeout ${SE_SESSION_REQUEST_TIMEOUT} \\\n  --session-retry-interval ${SE_SESSION_RETRY_INTERVAL} \\\n  --bind-host ${SE_BIND_HOST} \\\n  ${HOST_CONFIG} \\\n  ${PORT_CONFIG} \\\n  ${SE_OPTS}\n"
  },
  {
    "path": "Sessions/Dockerfile",
    "content": "ARG NAMESPACE=selenium\nARG VERSION=latest\nFROM ${NAMESPACE}/base:${VERSION}\nARG AUTHORS\nLABEL authors=${AUTHORS}\nARG MVN_SELENIUM_VERSION=latest.release\nARG POSTGRESQL_VERSION=latest.release\n\n#========================\n# Selenium SessionMap Configuration\n#========================\n\nUSER root\n\nRUN if [ -f \"/tmp/cs\" ]; then \\\n        java -jar /tmp/cs fetch --classpath --cache /external_jars \\\n        org.seleniumhq.selenium:selenium-session-map-jdbc:${MVN_SELENIUM_VERSION} \\\n        org.postgresql:postgresql:${POSTGRESQL_VERSION} \\\n        org.seleniumhq.selenium:selenium-session-map-redis:${MVN_SELENIUM_VERSION} \\\n        # Patch specific version for CVEs in the dependencies\n        > /external_jars/.classpath_session_map.txt \\\n        && chmod 664 /external_jars/.classpath_session_map.txt ; \\\n     fi \\\n    && rm -fr /root/.cache/*\n\nCOPY --chown=\"${SEL_UID}:${SEL_GID}\" start-selenium-grid-sessions.sh generate_config \\\n    /opt/bin/\nRUN chmod +x /opt/bin/start-selenium-grid-sessions.sh /opt/bin/generate_config\n\nCOPY selenium-grid-sessions.conf /etc/supervisor/conf.d/\n\nUSER ${SEL_UID}\n\nEXPOSE 5556\n\nENV SE_OTEL_SERVICE_NAME=\"selenium-session-map\" \\\n    GENERATE_CONFIG=\"true\" \\\n    SE_EVENT_BUS_PUBLISH_PORT=\"4442\" \\\n    SE_EVENT_BUS_SUBSCRIBE_PORT=\"4443\" \\\n    SE_SESSIONS_MAP_PORT=\"5556\" \\\n    SE_SESSIONS_MAP_EXTERNAL_DATASTORE=\"false\"\n"
  },
  {
    "path": "Sessions/generate_config",
    "content": "#!/bin/bash\n\nif [[ -z \"$CONFIG_FILE\" ]]; then\n\tFILENAME=\"/opt/selenium/config.toml\"\nelse\n\tFILENAME=\"$CONFIG_FILE\"\nfi\n\necho \"[sessions]\" >\"$FILENAME\"\n\nif [ \"${SE_SESSIONS_MAP_EXTERNAL_DATASTORE}\" = \"true\" ]; then\n\tif [[ -n \"${SE_SESSIONS_MAP_EXTERNAL_SCHEME}\" ]]; then\n\t\techo \"scheme = \\\"${SE_SESSIONS_MAP_EXTERNAL_SCHEME}\\\"\" >>\"$FILENAME\"\n\tfi\n\n\tif [[ -n \"${SE_SESSIONS_MAP_EXTERNAL_IMPLEMENTATION}\" ]]; then\n\t\techo \"implementation = \\\"${SE_SESSIONS_MAP_EXTERNAL_IMPLEMENTATION}\\\"\" >>\"$FILENAME\"\n\tfi\n\n\tif [[ -n \"${SE_SESSIONS_MAP_EXTERNAL_HOSTNAME}\" ]]; then\n\t\techo \"hostname = \\\"${SE_SESSIONS_MAP_EXTERNAL_HOSTNAME}\\\"\" >>\"$FILENAME\"\n\tfi\n\n\tif [[ -n \"${SE_SESSIONS_MAP_EXTERNAL_PORT}\" ]]; then\n\t\techo \"port = \\\"${SE_SESSIONS_MAP_EXTERNAL_PORT}\\\"\" >>\"$FILENAME\"\n\tfi\n\n\tif [[ -n \"${SE_SESSIONS_MAP_EXTERNAL_JDBC_URL}\" ]]; then\n\t\techo \"jdbc-url = \\\"${SE_SESSIONS_MAP_EXTERNAL_JDBC_URL}\\\"\" >>\"$FILENAME\"\n\tfi\n\n\tif [[ -n \"${SE_SESSIONS_MAP_EXTERNAL_JDBC_USER}\" ]]; then\n\t\techo \"jdbc-user = \\\"${SE_SESSIONS_MAP_EXTERNAL_JDBC_USER}\\\"\" >>\"$FILENAME\"\n\tfi\n\n\tif [[ -n \"${SE_SESSIONS_MAP_EXTERNAL_JDBC_PASSWORD}\" ]]; then\n\t\techo \"jdbc-password = \\\"${SE_SESSIONS_MAP_EXTERNAL_JDBC_PASSWORD}\\\"\" >>\"$FILENAME\"\n\tfi\nfi\n"
  },
  {
    "path": "Sessions/init.sql",
    "content": "CREATE TABLE IF NOT EXISTS sessions_map(\n    session_ids varchar(256),\n    session_caps text,\n    session_uri varchar(256),\n    session_stereotype text,\n    session_start varchar(256)\n );\n"
  },
  {
    "path": "Sessions/selenium-grid-sessions.conf",
    "content": "; Documentation of this file format -> http://supervisord.org/configuration.html\n\n[program:selenium-grid-sessions]\n\npriority=0\ncommand=/opt/bin/start-selenium-grid-sessions.sh\nautostart=true\nautorestart=%(ENV_SE_SUPERVISORD_AUTO_RESTART)s\nstartsecs=0\nstartretries=%(ENV_SE_SUPERVISORD_START_RETRIES)s\nstopsignal=TERM\n\n;Logs (all Hub activity redirected to stdout so it can be seen through \"docker logs\"\nredirect_stderr=true\nstdout_logfile=/dev/stdout\nstdout_logfile_maxbytes=0\n"
  },
  {
    "path": "Sessions/start-selenium-grid-sessions.sh",
    "content": "#!/usr/bin/env bash\n\n# set -e: exit asap if a command exits with a non-zero status\nset -e\n\nfunction append_se_opts() {\n  local option=\"${1}\"\n  local value=\"${2:-\"\"}\"\n  local log_message=\"${3:-true}\"\n  if [[ \"${SE_OPTS}\" != *\"${option}\"* ]]; then\n    if [ \"${log_message}\" = \"true\" ]; then\n      echo \"Appending Selenium option: ${option} ${value}\"\n    else\n      echo \"Appending Selenium option: ${option} $(mask ${value})\"\n    fi\n    SE_OPTS=\"${SE_OPTS} ${option}\"\n    if [ ! -z \"${value}\" ]; then\n      SE_OPTS=\"${SE_OPTS} ${value}\"\n    fi\n  else\n    echo \"Selenium option: ${option} already set in env variable SE_OPTS. Ignore new option: ${option} ${value}\"\n  fi\n}\n\nif [[ -z \"${SE_EVENT_BUS_HOST}\" ]]; then\n  echo \"SE_EVENT_BUS_HOST not set, exiting!\" 1>&2\n  exit 1\nfi\n\nif [[ -z \"${SE_EVENT_BUS_PUBLISH_PORT}\" ]]; then\n  echo \"SE_EVENT_BUS_PUBLISH_PORT not set, exiting!\" 1>&2\n  exit 1\nfi\n\nif [[ -z \"${SE_EVENT_BUS_SUBSCRIBE_PORT}\" ]]; then\n  echo \"SE_EVENT_BUS_SUBSCRIBE_PORT not set, exiting!\" 1>&2\n  exit 1\nfi\n\nif [ ! -z \"$SE_OPTS\" ]; then\n  echo \"Appending Selenium options: ${SE_OPTS}\"\nfi\n\nif [ ! -z \"${SE_SESSIONS_MAP_HOST}\" ]; then\n  echo \"Using SE_SESSIONS_MAP_HOST: ${SE_SESSIONS_MAP_HOST}\"\n  HOST_CONFIG=\"--host ${SE_SESSIONS_MAP_HOST}\"\nfi\n\nif [ ! -z \"${SE_SESSIONS_MAP_PORT}\" ]; then\n  echo \"Using SE_SESSIONS_MAP_PORT: ${SE_SESSIONS_MAP_PORT}\"\n  PORT_CONFIG=\"--port ${SE_SESSIONS_MAP_PORT}\"\nfi\n\nif [ ! -z \"$SE_LOG_LEVEL\" ]; then\n  append_se_opts \"--log-level\" \"${SE_LOG_LEVEL}\"\nfi\n\nif [ ! -z \"$SE_HTTP_LOGS\" ]; then\n  append_se_opts \"--http-logs\" \"${SE_HTTP_LOGS}\"\nfi\n\nif [ ! -z \"$SE_STRUCTURED_LOGS\" ]; then\n  append_se_opts \"--structured-logs\" \"${SE_STRUCTURED_LOGS}\"\nfi\n\nif [ ! -z \"$SE_PLAIN_LOGS\" ]; then\n  append_se_opts \"--plain-logs\" \"${SE_PLAIN_LOGS}\"\nfi\n\nif [ ! -z \"$SE_EXTERNAL_URL\" ]; then\n  append_se_opts \"--external-url\" \"${SE_EXTERNAL_URL}\"\nfi\n\nif [ \"${SE_ENABLE_TLS}\" = \"true\" ]; then\n  # Configure truststore for the server\n  if [ ! -z \"$SE_JAVA_SSL_TRUST_STORE\" ]; then\n    echo \"Appending Java options: -Djavax.net.ssl.trustStore=${SE_JAVA_SSL_TRUST_STORE}\"\n    SE_JAVA_OPTS=\"$SE_JAVA_OPTS -Djavax.net.ssl.trustStore=${SE_JAVA_SSL_TRUST_STORE}\"\n  fi\n  if [ -f \"${SE_JAVA_SSL_TRUST_STORE_PASSWORD}\" ]; then\n    echo \"Getting Truststore password from ${SE_JAVA_SSL_TRUST_STORE_PASSWORD} to set Java options: -Djavax.net.ssl.trustStorePassword\"\n    SE_JAVA_SSL_TRUST_STORE_PASSWORD=\"$(cat ${SE_JAVA_SSL_TRUST_STORE_PASSWORD})\"\n  fi\n  if [ ! -z \"${SE_JAVA_SSL_TRUST_STORE_PASSWORD}\" ]; then\n    echo \"Appending Java options: -Djavax.net.ssl.trustStorePassword=$(mask ${SE_JAVA_SSL_TRUST_STORE_PASSWORD})\"\n    SE_JAVA_OPTS=\"$SE_JAVA_OPTS -Djavax.net.ssl.trustStorePassword=${SE_JAVA_SSL_TRUST_STORE_PASSWORD}\"\n  fi\n  echo \"Appending Java options: -Djdk.internal.httpclient.disableHostnameVerification=${SE_JAVA_DISABLE_HOSTNAME_VERIFICATION}\"\n  SE_JAVA_OPTS=\"$SE_JAVA_OPTS -Djdk.internal.httpclient.disableHostnameVerification=${SE_JAVA_DISABLE_HOSTNAME_VERIFICATION}\"\n  # Configure certificate and private key for component communication\n  if [ ! -z \"$SE_HTTPS_CERTIFICATE\" ]; then\n    append_se_opts \"--https-certificate\" \"${SE_HTTPS_CERTIFICATE}\"\n  fi\n  if [ ! -z \"$SE_HTTPS_PRIVATE_KEY\" ]; then\n    append_se_opts \"--https-private-key\" \"${SE_HTTPS_PRIVATE_KEY}\"\n  fi\nfi\n\nif [ ! -z \"$SE_REGISTRATION_SECRET\" ]; then\n  append_se_opts \"--registration-secret\" \"${SE_REGISTRATION_SECRET}\" \"false\"\nfi\n\nif [ \"$GENERATE_CONFIG\" = true ]; then\n  echo \"Generating Selenium Config for Sessions\"\n  /opt/bin/generate_config\nfi\n\nif [ ! -z \"${CONFIG_FILE}\" ]; then\n  append_se_opts \"--config\" \"${CONFIG_FILE}\"\nfi\n\nEXTRA_LIBS=\"\"\nif [ -n \"${SE_EXTRA_LIBS}\" ]; then\n  EXTRA_LIBS=\"--ext ${SE_EXTRA_LIBS}\"\nfi\n\nif [ \"${SE_ENABLE_TRACING}\" = \"true\" ] && [ -n \"${SE_OTEL_EXPORTER_ENDPOINT}\" ]; then\n  EXTERNAL_JARS=$(</external_jars/.classpath.txt)\n  if [ -n \"${EXTRA_LIBS}\" ] && [ -n \"${EXTERNAL_JARS}\" ]; then\n    EXTRA_LIBS=\"${EXTRA_LIBS}:${EXTERNAL_JARS}\"\n  elif [ -z \"${EXTRA_LIBS}\" ] && [ -n \"${EXTERNAL_JARS}\" ]; then\n    EXTRA_LIBS=\"--ext ${EXTERNAL_JARS}\"\n  fi\n  echo \"Tracing is enabled\"\n  if [ -n \"$SE_OTEL_SERVICE_NAME\" ]; then\n    SE_OTEL_JVM_ARGS=\"$SE_OTEL_JVM_ARGS -Dotel.resource.attributes=service.name=${SE_OTEL_SERVICE_NAME}${SE_OTEL_RESOURCE_ATTRIBUTES:+,${SE_OTEL_RESOURCE_ATTRIBUTES}}\"\n  fi\n  if [ -n \"$SE_OTEL_TRACES_EXPORTER\" ]; then\n    SE_OTEL_JVM_ARGS=\"$SE_OTEL_JVM_ARGS -Dotel.traces.exporter=${SE_OTEL_TRACES_EXPORTER}\"\n  fi\n  if [ -n \"$SE_OTEL_EXPORTER_ENDPOINT\" ]; then\n    SE_OTEL_JVM_ARGS=\"$SE_OTEL_JVM_ARGS -Dotel.exporter.otlp.endpoint=$(envsubst < <(echo ${SE_OTEL_EXPORTER_ENDPOINT}))\"\n  fi\n  if [ -n \"$SE_OTEL_JAVA_GLOBAL_AUTOCONFIGURE_ENABLED\" ]; then\n    SE_OTEL_JVM_ARGS=\"$SE_OTEL_JVM_ARGS -Dotel.java.global-autoconfigure.enabled=${SE_OTEL_JAVA_GLOBAL_AUTOCONFIGURE_ENABLED}\"\n  fi\n  if [ -n \"$SE_OTEL_JVM_ARGS\" ]; then\n    SE_JAVA_OPTS=\"$SE_JAVA_OPTS ${SE_OTEL_JVM_ARGS}\"\n  fi\nelse\n  append_se_opts \"--tracing\" \"false\"\n  SE_JAVA_OPTS=\"$SE_JAVA_OPTS -Dwebdriver.remote.enableTracing=false\"\n  echo \"Tracing is disabled\"\nfi\n\nif [ \"${SE_SESSIONS_MAP_EXTERNAL_DATASTORE}\" = \"true\" ]; then\n  echo \"External datastore for sessions map is enabled\"\n  EXTERNAL_JARS=$(</external_jars/.classpath_session_map.txt)\n  if [ -n \"${EXTRA_LIBS}\" ] && [ -n \"${EXTERNAL_JARS}\" ]; then\n    EXTRA_LIBS=\"${EXTRA_LIBS}:${EXTERNAL_JARS}\"\n  elif [ -z \"${EXTRA_LIBS}\" ] && [ -n \"${EXTERNAL_JARS}\" ]; then\n    EXTRA_LIBS=\"--ext ${EXTERNAL_JARS}\"\n  fi\nfi\n\nif [ -n \"${EXTRA_LIBS}\" ]; then\n  echo \"Classpath will be enriched with these external jars : ${EXTRA_LIBS}\"\nfi\n\ncat \"$CONFIG_FILE\"\necho \"Starting Selenium Grid Sessions...\"\n\nif [ -n \"${SE_JAVA_HTTPCLIENT_VERSION}\" ]; then\n  SE_JAVA_OPTS=\"$SE_JAVA_OPTS -Dwebdriver.httpclient.version=${SE_JAVA_HTTPCLIENT_VERSION}\"\nfi\n\nif [ -n \"${SE_JAVA_OPTS_DEFAULT}\" ]; then\n  SE_JAVA_OPTS=\"${SE_JAVA_OPTS_DEFAULT} $SE_JAVA_OPTS\"\nfi\n\nfunction handle_heap_dump() {\n  /opt/bin/handle_heap_dump.sh /opt/selenium/logs\n}\nif [ \"${SE_JAVA_HEAP_DUMP}\" = \"true\" ]; then\n  SE_JAVA_OPTS=\"$SE_JAVA_OPTS -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=/opt/selenium/logs\"\n  trap handle_heap_dump ERR SIGTERM SIGINT\nfi\n\nif [ -n \"${JAVA_OPTS}\" ]; then\n  SE_JAVA_OPTS=\"$SE_JAVA_OPTS ${JAVA_OPTS}\"\nfi\n\necho \"Using JAVA_OPTS: ${SE_JAVA_OPTS}\"\n\njava ${SE_JAVA_OPTS} \\\n  -jar /opt/selenium/selenium-server.jar \\\n  ${EXTRA_LIBS} sessions \\\n  --publish-events tcp://\"${SE_EVENT_BUS_HOST}\":${SE_EVENT_BUS_PUBLISH_PORT} \\\n  --subscribe-events tcp://\"${SE_EVENT_BUS_HOST}\":${SE_EVENT_BUS_SUBSCRIBE_PORT} \\\n  --bind-host ${SE_BIND_HOST} \\\n  ${HOST_CONFIG} \\\n  ${PORT_CONFIG} \\\n  ${SE_OPTS}\n"
  },
  {
    "path": "Standalone/Dockerfile",
    "content": "ARG NAMESPACE=selenium\nARG VERSION=latest\nARG BASE=node-base\nFROM ${NAMESPACE}/${BASE}:${VERSION}\nARG AUTHORS\nLABEL authors=${AUTHORS}\n\nUSER ${SEL_UID}\n\n#====================================\n# Scripts to run Selenium Standalone\n#====================================\nCOPY --chown=\"${SEL_UID}:${SEL_GID}\" start-selenium-standalone.sh /opt/bin/start-selenium-standalone.sh\n\n#==============================\n# Supervisor configuration file\n#==============================\nCOPY selenium.conf /etc/supervisor/conf.d/\n\n# In seconds, maps to \"--session-request-timeout\"\nENV SE_SESSION_REQUEST_TIMEOUT=\"300\" \\\n# In seconds, maps to \"--session-retry-interval\"\n    SE_SESSION_RETRY_INTERVAL=\"15\" \\\n# In seconds, maps to \"--healthcheck-interval\"\n    SE_HEALTHCHECK_INTERVAL=\"120\" \\\n# Boolean value, maps \"--relax-checks\"\n    SE_RELAX_CHECKS=\"true\" \\\n    SE_REJECT_UNSUPPORTED_CAPS=\"true\" \\\n    SE_OTEL_SERVICE_NAME=\"selenium-standalone\" \\\n    SE_NODE_ENABLE_MANAGED_DOWNLOADS=\"true\" \\\n    SE_BIND_BUS=\"true\" \\\n    SE_EVENT_BUS_IMPLEMENTATION=\"\"\n\nEXPOSE 4444\nEXPOSE 4443\nEXPOSE 4442\n"
  },
  {
    "path": "Standalone/selenium.conf",
    "content": "; Documentation of this file format -> http://supervisord.org/configuration.html\n\n; Priority 0 - xvfb & fluxbox, 5 - x11vnc, 10 - noVNC, 15 - selenium-standalone\n\n[program:xvfb]\npriority=0\ncommand=/opt/bin/start-xvfb.sh\nautostart=true\nautorestart=false\nstartsecs=0\nstartretries=0\n\n;Logs\nredirect_stderr=false\nstdout_logfile=/var/log/supervisor/xvfb-stdout.log\nstderr_logfile=/var/log/supervisor/xvfb-stderr.log\nstdout_logfile_maxbytes=50MB\nstderr_logfile_maxbytes=50MB\nstdout_logfile_backups=5\nstderr_logfile_backups=5\nstdout_capture_maxbytes=50MB\nstderr_capture_maxbytes=50MB\n\n[program:vnc]\npriority=5\ncommand=/opt/bin/start-vnc.sh\nautostart=true\nautorestart=false\nstartsecs=0\nstartretries=0\n\n;Logs\nredirect_stderr=false\nstdout_logfile=/var/log/supervisor/vnc-stdout.log\nstderr_logfile=/var/log/supervisor/vnc-stderr.log\nstdout_logfile_maxbytes=50MB\nstderr_logfile_maxbytes=50MB\nstdout_logfile_backups=5\nstderr_logfile_backups=5\nstdout_capture_maxbytes=50MB\nstderr_capture_maxbytes=50MB\n\n[program:novnc]\npriority=10\ncommand=/opt/bin/start-novnc.sh\nautostart=true\nautorestart=false\nstartsecs=0\nstartretries=0\n\n;Logs\nredirect_stderr=false\nstdout_logfile=/var/log/supervisor/novnc-stdout.log\nstderr_logfile=/var/log/supervisor/novnc-stderr.log\nstdout_logfile_maxbytes=50MB\nstderr_logfile_maxbytes=50MB\nstdout_logfile_backups=5\nstderr_logfile_backups=5\nstdout_capture_maxbytes=50MB\nstderr_capture_maxbytes=50MB\n\n[program:selenium-standalone]\npriority=15\ncommand=bash -c \"/opt/bin/start-selenium-standalone.sh; EXIT_CODE=$?; kill -s SIGINT `cat ${SE_SUPERVISORD_PID_FILE}`; exit $EXIT_CODE\"\nstopasgroup = true\nautostart=true\nautorestart=false\nstartsecs=0\nstartretries=0\n\n;Logs (all Hub activity redirected to stdout so it can be seen through \"docker logs\"\nredirect_stderr=true\nstdout_logfile=/dev/stdout\nstdout_logfile_maxbytes=0\n"
  },
  {
    "path": "Standalone/start-selenium-standalone.sh",
    "content": "#!/usr/bin/env bash\n#\n# IMPORTANT: Change this file only in directory Standalone!\n\n# Check if Chrome components update is enabled\nif [ \"${SE_UPDATE_CHROME_COMPONENTS}\" = \"true\" ] && [ -f /opt/bin/update-chrome-components.sh ]; then\n  echo \"Chrome components update enabled, checking for updates...\"\n  echo \"Note that after the container gets restarted, updated binaries will be lost unless you call the update script within the build container process.\"\n  /opt/bin/update-chrome-components.sh\nfi\n\n# Start the pulseaudio server\npulseaudio -D --exit-idle-time=-1\n\n# Load the virtual sink and set it as default\npacmd load-module module-virtual-sink sink_name=v1\npacmd set-default-sink v1\n\n# set the monitor of v1 sink to be the default source\npacmd set-default-source v1.monitor\n\nfunction append_se_opts() {\n  local option=\"${1}\"\n  local value=\"${2:-\"\"}\"\n  local log_message=\"${3:-true}\"\n  if [[ \"${SE_OPTS}\" != *\"${option}\"* ]]; then\n    if [ \"${log_message}\" = \"true\" ]; then\n      echo \"Appending Selenium option: ${option} ${value}\"\n    else\n      echo \"Appending Selenium option: ${option} $(mask ${value})\"\n    fi\n    SE_OPTS=\"${SE_OPTS} ${option}\"\n    if [ ! -z \"${value}\" ]; then\n      SE_OPTS=\"${SE_OPTS} ${value}\"\n    fi\n  else\n    echo \"Selenium option: ${option} already set in env variable SE_OPTS. Ignore new option: ${option} ${value}\"\n  fi\n}\n\nif [ ! -z \"$SE_SUB_PATH\" ]; then\n  echo \"Using SE_SUB_PATH: ${SE_SUB_PATH}\"\n  SUB_PATH_CONFIG=\"--sub-path ${SE_SUB_PATH}\"\nfi\n\nif [ ! -z \"$SE_OPTS\" ]; then\n  echo \"Appending Selenium options: ${SE_OPTS}\"\nfi\n\nif [ ! -z \"$SE_DISABLE_UI\" ]; then\n  append_se_opts \"--disable-ui\" \"${SE_DISABLE_UI}\"\nfi\n\nif [ ! -z \"$SE_ROUTER_USERNAME\" ]; then\n  append_se_opts \"--username\" \"${SE_ROUTER_USERNAME}\"\nfi\n\nif [ ! -z \"$SE_ROUTER_PASSWORD\" ]; then\n  append_se_opts \"--password\" \"${SE_ROUTER_PASSWORD}\" \"false\"\nfi\n\nif [ ! -z \"$SE_NODE_ENABLE_MANAGED_DOWNLOADS\" ]; then\n  append_se_opts \"--enable-managed-downloads\" \"${SE_NODE_ENABLE_MANAGED_DOWNLOADS}\"\nfi\n\nif [ ! -z \"$SE_NODE_ENABLE_CDP\" ]; then\n  append_se_opts \"--enable-cdp\" \"${SE_NODE_ENABLE_CDP}\"\nfi\n\nif [ ! -z \"$SE_NODE_REGISTER_PERIOD\" ]; then\n  append_se_opts \"--register-period\" \"${SE_NODE_REGISTER_PERIOD}\"\nfi\n\nif [ ! -z \"$SE_NODE_REGISTER_CYCLE\" ]; then\n  append_se_opts \"--register-cycle\" \"${SE_NODE_REGISTER_CYCLE}\"\nfi\n\nif [ ! -z \"$SE_NODE_HEARTBEAT_PERIOD\" ]; then\n  append_se_opts \"--heartbeat-period\" \"${SE_NODE_HEARTBEAT_PERIOD}\"\nfi\n\nif [ \"$SE_NODE_DELETE_SESSION_ON_UI\" = \"true\" ]; then\n  append_se_opts \"--delete-session-on-ui\" \"true\"\nfi\n\nif [ ! -z \"$SE_LOG_LEVEL\" ]; then\n  append_se_opts \"--log-level\" \"${SE_LOG_LEVEL}\"\nfi\n\nif [ ! -z \"$SE_HTTP_LOGS\" ]; then\n  append_se_opts \"--http-logs\" \"${SE_HTTP_LOGS}\"\nfi\n\nif [ ! -z \"$SE_STRUCTURED_LOGS\" ]; then\n  append_se_opts \"--structured-logs\" \"${SE_STRUCTURED_LOGS}\"\nfi\n\nif [ ! -z \"$SE_PLAIN_LOGS\" ]; then\n  append_se_opts \"--plain-logs\" \"${SE_PLAIN_LOGS}\"\nfi\n\nif [ ! -z \"$SE_EXTERNAL_URL\" ]; then\n  append_se_opts \"--external-url\" \"${SE_EXTERNAL_URL}\"\nfi\n\nif [ ! -z \"${SE_EVENT_BUS_HEARTBEAT_PERIOD}\" ]; then\n  append_se_opts \"--eventbus-heartbeat-period\" \"${SE_EVENT_BUS_HEARTBEAT_PERIOD}\"\nfi\n\nif [ ! -z \"${SE_EVENT_BUS_IMPLEMENTATION}\" ]; then\n  append_se_opts \"--events-implementation\" \"${SE_EVENT_BUS_IMPLEMENTATION}\"\nfi\n\nif [ \"${SE_BIND_BUS}\" = \"true\" ]; then\n  append_se_opts \"--bind-bus\" \"${SE_BIND_BUS}\"\n  append_se_opts \"--publish-events\" \"tcp://*:${SE_EVENT_BUS_PUBLISH_PORT}\"\n  append_se_opts \"--subscribe-events\" \"tcp://*:${SE_EVENT_BUS_SUBSCRIBE_PORT}\"\n  if [ -z \"${SE_EVENT_BUS_IMPLEMENTATION}\" ]; then\n    append_se_opts \"--events-implementation\" \"org.openqa.selenium.events.zeromq.ZeroMqEventBus\"\n  fi\nfi\n\nif [ \"${SE_ENABLE_TLS}\" = \"true\" ]; then\n  # Configure truststore for the server\n  if [ ! -z \"$SE_JAVA_SSL_TRUST_STORE\" ]; then\n    echo \"Appending Java options: -Djavax.net.ssl.trustStore=${SE_JAVA_SSL_TRUST_STORE}\"\n    SE_JAVA_OPTS=\"$SE_JAVA_OPTS -Djavax.net.ssl.trustStore=${SE_JAVA_SSL_TRUST_STORE}\"\n  fi\n  if [ -f \"${SE_JAVA_SSL_TRUST_STORE_PASSWORD}\" ]; then\n    echo \"Getting Truststore password from ${SE_JAVA_SSL_TRUST_STORE_PASSWORD} to set Java options: -Djavax.net.ssl.trustStorePassword\"\n    SE_JAVA_SSL_TRUST_STORE_PASSWORD=\"$(cat ${SE_JAVA_SSL_TRUST_STORE_PASSWORD})\"\n  fi\n  if [ ! -z \"${SE_JAVA_SSL_TRUST_STORE_PASSWORD}\" ]; then\n    echo \"Appending Java options: -Djavax.net.ssl.trustStorePassword=$(mask ${SE_JAVA_SSL_TRUST_STORE_PASSWORD})\"\n    SE_JAVA_OPTS=\"$SE_JAVA_OPTS -Djavax.net.ssl.trustStorePassword=${SE_JAVA_SSL_TRUST_STORE_PASSWORD}\"\n  fi\n  echo \"Appending Java options: -Djdk.internal.httpclient.disableHostnameVerification=${SE_JAVA_DISABLE_HOSTNAME_VERIFICATION}\"\n  SE_JAVA_OPTS=\"$SE_JAVA_OPTS -Djdk.internal.httpclient.disableHostnameVerification=${SE_JAVA_DISABLE_HOSTNAME_VERIFICATION}\"\n  # Configure certificate and private key for component communication\n  if [ ! -z \"$SE_HTTPS_CERTIFICATE\" ]; then\n    append_se_opts \"--https-certificate\" \"${SE_HTTPS_CERTIFICATE}\"\n  fi\n  if [ ! -z \"$SE_HTTPS_PRIVATE_KEY\" ]; then\n    append_se_opts \"--https-private-key\" \"${SE_HTTPS_PRIVATE_KEY}\"\n  fi\nfi\n\nif [ ! -z \"$SE_REJECT_UNSUPPORTED_CAPS\" ]; then\n  append_se_opts \"--reject-unsupported-caps\" \"${SE_REJECT_UNSUPPORTED_CAPS}\"\nfi\n\nif [ ! -z \"$SE_DISTRIBUTOR_SLOT_SELECTOR\" ]; then\n  append_se_opts \"--slot-selector\" \"${SE_DISTRIBUTOR_SLOT_SELECTOR}\"\nfi\n\nif [ ! -z \"$SE_NEW_SESSION_THREAD_POOL_SIZE\" ]; then\n  append_se_opts \"--newsession-threadpool-size\" \"${SE_NEW_SESSION_THREAD_POOL_SIZE}\"\nfi\n\nif [ \"$GENERATE_CONFIG\" = true ]; then\n  echo \"Generating Selenium Config\"\n  /opt/bin/generate_config\n  /opt/bin/generate_relay_config\nfi\n\necho \"Selenium Grid Standalone configuration: \"\ncat \"${CONFIG_FILE}\"\necho \"Starting Selenium Grid Standalone...\"\n\nEXTRA_LIBS=\"\"\nif [ -n \"${SE_EXTRA_LIBS}\" ]; then\n  EXTRA_LIBS=\"--ext ${SE_EXTRA_LIBS}\"\nfi\n\nif [ \"${SE_ENABLE_TRACING}\" = \"true\" ] && [ -n \"${SE_OTEL_EXPORTER_ENDPOINT}\" ]; then\n  EXTERNAL_JARS=$(</external_jars/.classpath.txt)\n  if [ -n \"${EXTRA_LIBS}\" ] && [ -n \"${EXTERNAL_JARS}\" ]; then\n    EXTRA_LIBS=\"${EXTRA_LIBS}:${EXTERNAL_JARS}\"\n  elif [ -z \"${EXTRA_LIBS}\" ] && [ -n \"${EXTERNAL_JARS}\" ]; then\n    EXTRA_LIBS=\"--ext ${EXTERNAL_JARS}\"\n  fi\n  echo \"Tracing is enabled\"\n  if [ -n \"$SE_OTEL_SERVICE_NAME\" ]; then\n    SE_OTEL_JVM_ARGS=\"$SE_OTEL_JVM_ARGS -Dotel.resource.attributes=service.name=${SE_OTEL_SERVICE_NAME}${SE_OTEL_RESOURCE_ATTRIBUTES:+,${SE_OTEL_RESOURCE_ATTRIBUTES}}\"\n  fi\n  if [ -n \"$SE_OTEL_TRACES_EXPORTER\" ]; then\n    SE_OTEL_JVM_ARGS=\"$SE_OTEL_JVM_ARGS -Dotel.traces.exporter=${SE_OTEL_TRACES_EXPORTER}\"\n  fi\n  if [ -n \"$SE_OTEL_EXPORTER_ENDPOINT\" ]; then\n    SE_OTEL_JVM_ARGS=\"$SE_OTEL_JVM_ARGS -Dotel.exporter.otlp.endpoint=$(envsubst < <(echo ${SE_OTEL_EXPORTER_ENDPOINT}))\"\n  fi\n  if [ -n \"$SE_OTEL_JAVA_GLOBAL_AUTOCONFIGURE_ENABLED\" ]; then\n    SE_OTEL_JVM_ARGS=\"$SE_OTEL_JVM_ARGS -Dotel.java.global-autoconfigure.enabled=${SE_OTEL_JAVA_GLOBAL_AUTOCONFIGURE_ENABLED}\"\n  fi\n  if [ -n \"$SE_OTEL_JVM_ARGS\" ]; then\n    SE_JAVA_OPTS=\"$SE_JAVA_OPTS ${SE_OTEL_JVM_ARGS}\"\n  fi\nelse\n  append_se_opts \"--tracing\" \"false\"\n  SE_JAVA_OPTS=\"$SE_JAVA_OPTS -Dwebdriver.remote.enableTracing=false\"\n  echo \"Tracing is disabled\"\nfi\n\nif [ -n \"${EXTRA_LIBS}\" ]; then\n  echo \"Classpath will be enriched with these external jars : ${EXTRA_LIBS}\"\nfi\n\nCHROME_DRIVER_PATH_PROPERTY=-Dwebdriver.chrome.driver=/usr/bin/chromedriver\nEDGE_DRIVER_PATH_PROPERTY=-Dwebdriver.edge.driver=/usr/bin/msedgedriver\nGECKO_DRIVER_PATH_PROPERTY=-Dwebdriver.gecko.driver=/usr/bin/geckodriver\n\nif [ -n \"${SE_JAVA_HTTPCLIENT_VERSION}\" ]; then\n  SE_JAVA_OPTS=\"$SE_JAVA_OPTS -Dwebdriver.httpclient.version=${SE_JAVA_HTTPCLIENT_VERSION}\"\nfi\n\nif [ -n \"${SE_JAVA_OPTS_DEFAULT}\" ]; then\n  SE_JAVA_OPTS=\"${SE_JAVA_OPTS_DEFAULT} $SE_JAVA_OPTS\"\nfi\n\nfunction handle_heap_dump() {\n  /opt/bin/handle_heap_dump.sh /opt/selenium/logs\n}\nif [ \"${SE_JAVA_HEAP_DUMP}\" = \"true\" ]; then\n  SE_JAVA_OPTS=\"$SE_JAVA_OPTS -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=/opt/selenium/logs\"\n  trap handle_heap_dump ERR SIGTERM SIGINT\nfi\n\nif [ -n \"${JAVA_OPTS}\" ]; then\n  SE_JAVA_OPTS=\"$SE_JAVA_OPTS ${JAVA_OPTS}\"\nfi\n\necho \"Using JAVA_OPTS: ${SE_JAVA_OPTS}\"\n\njava ${SE_JAVA_OPTS} \\\n  ${CHROME_DRIVER_PATH_PROPERTY} \\\n  ${EDGE_DRIVER_PATH_PROPERTY} \\\n  ${GECKO_DRIVER_PATH_PROPERTY} \\\n  -jar /opt/selenium/selenium-server.jar \\\n  ${EXTRA_LIBS} standalone \\\n  --session-request-timeout ${SE_SESSION_REQUEST_TIMEOUT} \\\n  --session-retry-interval ${SE_SESSION_RETRY_INTERVAL} \\\n  --healthcheck-interval ${SE_HEALTHCHECK_INTERVAL} \\\n  --relax-checks ${SE_RELAX_CHECKS} \\\n  --detect-drivers false \\\n  --bind-host ${SE_BIND_HOST} \\\n  --config ${CONFIG_FILE} \\\n  ${SUB_PATH_CONFIG} \\\n  ${SE_OPTS}\n"
  },
  {
    "path": "StandaloneDocker/Dockerfile",
    "content": "ARG NAMESPACE=selenium\nARG VERSION=latest\nFROM ${NAMESPACE}/node-docker:${VERSION}\nARG AUTHORS\nLABEL authors=${AUTHORS}\n\nUSER ${SEL_UID}\n\n#========================\n# Selenium Standalone Docker Configuration\n#========================\n\nEXPOSE 4444\n\nCOPY --chown=\"${SEL_UID}:${SEL_GID}\" start-selenium-grid-docker.sh /opt/bin/\n\n# In seconds, maps to \"--session-request-timeout\"\nENV SE_SESSION_REQUEST_TIMEOUT=\"300\" \\\n# In seconds, maps to \"--session-retry-interval\"\n    SE_SESSION_RETRY_INTERVAL=\"15\" \\\n# Boolean value, maps \"--relax-checks\"\n    SE_RELAX_CHECKS=\"true\" \\\n    SE_OTEL_SERVICE_NAME=\"selenium-standalone-docker\" \\\n    SE_NODE_ENABLE_MANAGED_DOWNLOADS=\"true\"\n"
  },
  {
    "path": "StandaloneDocker/start-selenium-grid-docker.sh",
    "content": "#!/usr/bin/env bash\n\n# set -e: exit asap if a command exits with a non-zero status\nset -e\n\necho \"Starting Selenium Grid Standalone Docker...\"\n\nfunction append_se_opts() {\n  local option=\"${1}\"\n  local value=\"${2:-\"\"}\"\n  local log_message=\"${3:-true}\"\n  if [[ \"${SE_OPTS}\" != *\"${option}\"* ]]; then\n    if [ \"${log_message}\" = \"true\" ]; then\n      echo \"Appending Selenium option: ${option} ${value}\"\n    else\n      echo \"Appending Selenium option: ${option} $(mask ${value})\"\n    fi\n    SE_OPTS=\"${SE_OPTS} ${option}\"\n    if [ ! -z \"${value}\" ]; then\n      SE_OPTS=\"${SE_OPTS} ${value}\"\n    fi\n  else\n    echo \"Selenium option: ${option} already set in env variable SE_OPTS. Ignore new option: ${option} ${value}\"\n  fi\n}\n\nif [ ! -z \"$SE_OPTS\" ]; then\n  echo \"Appending Selenium options: ${SE_OPTS}\"\nfi\n\nif [ ! -z \"${SE_DISABLE_UI}\" ]; then\n  append_se_opts \"--disable-ui\" \"${SE_DISABLE_UI}\"\nfi\n\nif [ ! -z \"${SE_ROUTER_USERNAME}\" ]; then\n  append_se_opts \"--username\" \"${SE_ROUTER_USERNAME}\"\nfi\n\nif [ ! -z \"${SE_ROUTER_PASSWORD}\" ]; then\n  append_se_opts \"--password\" \"${SE_ROUTER_PASSWORD}\" \"false\"\nfi\n\n# Specific environment variables name for Node Dynamic only, it will not effect browser container when pass through\n\nif [ ! -z \"${SE_DYNAMIC_MAX_SESSIONS}\" ]; then\n  append_se_opts \"--max-sessions\" \"${SE_DYNAMIC_MAX_SESSIONS}\"\nfi\n\nif [ ! -z \"${SE_DYNAMIC_OVERRIDE_MAX_SESSIONS}\" ]; then\n  append_se_opts \"--override-max-sessions\" \"${SE_DYNAMIC_OVERRIDE_MAX_SESSIONS}\"\nfi\n\n# Environment variables will be passed through to browser container\n\nif [ ! -z \"${SE_NODE_GRID_URL}\" ]; then\n  append_se_opts \"--grid-url\" \"${SE_NODE_GRID_URL}\"\nfi\n\nif [ ! -z \"${SE_NODE_HEARTBEAT_PERIOD}\" ]; then\n  append_se_opts \"--heartbeat-period\" \"${SE_NODE_HEARTBEAT_PERIOD}\"\nfi\n\nif [ ! -z \"${SE_NODE_REGISTER_PERIOD}\" ]; then\n  append_se_opts \"--register-period\" \"${SE_NODE_REGISTER_PERIOD}\"\nfi\n\nif [ ! -z \"${SE_NODE_REGISTER_CYCLE}\" ]; then\n  append_se_opts \"--register-cycle\" \"${SE_NODE_REGISTER_CYCLE}\"\nfi\n\nif [ ! -z \"${SE_NODE_SESSION_TIMEOUT}\" ]; then\n  append_se_opts \"--session-timeout\" \"${SE_NODE_SESSION_TIMEOUT}\"\nfi\n\nif [ ! -z \"${SE_NODE_ENABLE_CDP}\" ]; then\n  append_se_opts \"--enable-cdp\" \"${SE_NODE_ENABLE_CDP}\"\nfi\n\nif [ ! -z \"${SE_NODE_ENABLE_MANAGED_DOWNLOADS}\" ]; then\n  append_se_opts \"--enable-managed-downloads\" \"${SE_NODE_ENABLE_MANAGED_DOWNLOADS}\"\nfi\n\nif [ ! -z \"${SE_NODE_CONNECTION_LIMIT_PER_SESSION}\" ]; then\n  append_se_opts \"--connection-limit-per-session\" \"${SE_NODE_CONNECTION_LIMIT_PER_SESSION}\"\nfi\n\nif [ ! -z \"$SE_LOG_LEVEL\" ]; then\n  append_se_opts \"--log-level\" \"${SE_LOG_LEVEL}\"\nfi\n\nif [ ! -z \"$SE_HTTP_LOGS\" ]; then\n  append_se_opts \"--http-logs\" \"${SE_HTTP_LOGS}\"\nfi\n\nif [ ! -z \"$SE_STRUCTURED_LOGS\" ]; then\n  append_se_opts \"--structured-logs\" \"${SE_STRUCTURED_LOGS}\"\nfi\n\nif [ ! -z \"$SE_PLAIN_LOGS\" ]; then\n  append_se_opts \"--plain-logs\" \"${SE_PLAIN_LOGS}\"\nfi\n\nif [ ! -z \"$SE_EXTERNAL_URL\" ]; then\n  append_se_opts \"--external-url\" \"${SE_EXTERNAL_URL}\"\nfi\n\nif [ ! -z \"${SE_EVENT_BUS_HEARTBEAT_PERIOD}\" ]; then\n  append_se_opts \"--eventbus-heartbeat-period\" \"${SE_EVENT_BUS_HEARTBEAT_PERIOD}\"\nfi\n\nif [ \"${SE_ENABLE_TLS}\" = \"true\" ]; then\n  # Configure truststore for the server\n  if [ ! -z \"$SE_JAVA_SSL_TRUST_STORE\" ]; then\n    echo \"Appending Java options: -Djavax.net.ssl.trustStore=${SE_JAVA_SSL_TRUST_STORE}\"\n    SE_JAVA_OPTS=\"$SE_JAVA_OPTS -Djavax.net.ssl.trustStore=${SE_JAVA_SSL_TRUST_STORE}\"\n  fi\n  if [ -f \"${SE_JAVA_SSL_TRUST_STORE_PASSWORD}\" ]; then\n    echo \"Getting Truststore password from ${SE_JAVA_SSL_TRUST_STORE_PASSWORD} to set Java options: -Djavax.net.ssl.trustStorePassword\"\n    SE_JAVA_SSL_TRUST_STORE_PASSWORD=\"$(cat ${SE_JAVA_SSL_TRUST_STORE_PASSWORD})\"\n  fi\n  if [ ! -z \"${SE_JAVA_SSL_TRUST_STORE_PASSWORD}\" ]; then\n    echo \"Appending Java options: -Djavax.net.ssl.trustStorePassword=$(mask ${SE_JAVA_SSL_TRUST_STORE_PASSWORD})\"\n    SE_JAVA_OPTS=\"$SE_JAVA_OPTS -Djavax.net.ssl.trustStorePassword=${SE_JAVA_SSL_TRUST_STORE_PASSWORD}\"\n  fi\n  echo \"Appending Java options: -Djdk.internal.httpclient.disableHostnameVerification=${SE_JAVA_DISABLE_HOSTNAME_VERIFICATION}\"\n  SE_JAVA_OPTS=\"$SE_JAVA_OPTS -Djdk.internal.httpclient.disableHostnameVerification=${SE_JAVA_DISABLE_HOSTNAME_VERIFICATION}\"\n  # Configure certificate and private key for component communication\n  if [ ! -z \"$SE_HTTPS_CERTIFICATE\" ]; then\n    append_se_opts \"--https-certificate\" \"${SE_HTTPS_CERTIFICATE}\"\n  fi\n  if [ ! -z \"$SE_HTTPS_PRIVATE_KEY\" ]; then\n    append_se_opts \"--https-private-key\" \"${SE_HTTPS_PRIVATE_KEY}\"\n  fi\nfi\n\nif [ ! -z \"${SE_NODE_DOCKER_CONFIG_FILENAME}\" ]; then\n  CONFIG_FILE=\"/opt/selenium/${SE_NODE_DOCKER_CONFIG_FILENAME}\"\nfi\n\necho \"Selenium Grid Standalone Docker configuration: \"\ncat \"${CONFIG_FILE}\"\n\nEXTRA_LIBS=\"\"\nif [ -n \"${SE_EXTRA_LIBS}\" ]; then\n  EXTRA_LIBS=\"--ext ${SE_EXTRA_LIBS}\"\nfi\n\nif [ \"${SE_ENABLE_TRACING}\" = \"true\" ] && [ -n \"${SE_OTEL_EXPORTER_ENDPOINT}\" ]; then\n  EXTERNAL_JARS=$(</external_jars/.classpath.txt)\n  if [ -n \"${EXTRA_LIBS}\" ] && [ -n \"${EXTERNAL_JARS}\" ]; then\n    EXTRA_LIBS=\"${EXTRA_LIBS}:${EXTERNAL_JARS}\"\n  elif [ -z \"${EXTRA_LIBS}\" ] && [ -n \"${EXTERNAL_JARS}\" ]; then\n    EXTRA_LIBS=\"--ext ${EXTERNAL_JARS}\"\n  fi\n  echo \"Tracing is enabled\"\n  if [ -n \"$SE_OTEL_SERVICE_NAME\" ]; then\n    SE_OTEL_JVM_ARGS=\"$SE_OTEL_JVM_ARGS -Dotel.resource.attributes=service.name=${SE_OTEL_SERVICE_NAME}${SE_OTEL_RESOURCE_ATTRIBUTES:+,${SE_OTEL_RESOURCE_ATTRIBUTES}}\"\n  fi\n  if [ -n \"$SE_OTEL_TRACES_EXPORTER\" ]; then\n    SE_OTEL_JVM_ARGS=\"$SE_OTEL_JVM_ARGS -Dotel.traces.exporter=${SE_OTEL_TRACES_EXPORTER}\"\n  fi\n  if [ -n \"$SE_OTEL_EXPORTER_ENDPOINT\" ]; then\n    SE_OTEL_JVM_ARGS=\"$SE_OTEL_JVM_ARGS -Dotel.exporter.otlp.endpoint=$(envsubst < <(echo ${SE_OTEL_EXPORTER_ENDPOINT}))\"\n  fi\n  if [ -n \"$SE_OTEL_JAVA_GLOBAL_AUTOCONFIGURE_ENABLED\" ]; then\n    SE_OTEL_JVM_ARGS=\"$SE_OTEL_JVM_ARGS -Dotel.java.global-autoconfigure.enabled=${SE_OTEL_JAVA_GLOBAL_AUTOCONFIGURE_ENABLED}\"\n  fi\n  if [ -n \"$SE_OTEL_JVM_ARGS\" ]; then\n    SE_JAVA_OPTS=\"$SE_JAVA_OPTS ${SE_OTEL_JVM_ARGS}\"\n  fi\nelse\n  append_se_opts \"--tracing\" \"false\"\n  SE_JAVA_OPTS=\"$SE_JAVA_OPTS -Dwebdriver.remote.enableTracing=false\"\n  echo \"Tracing is disabled\"\nfi\n\nif [ -n \"${EXTRA_LIBS}\" ]; then\n  echo \"Classpath will be enriched with these external jars : ${EXTRA_LIBS}\"\nfi\n\nif [ -n \"${SE_JAVA_HTTPCLIENT_VERSION}\" ]; then\n  SE_JAVA_OPTS=\"$SE_JAVA_OPTS -Dwebdriver.httpclient.version=${SE_JAVA_HTTPCLIENT_VERSION}\"\nfi\n\nif [ -n \"${SE_JAVA_OPTS_DEFAULT}\" ]; then\n  SE_JAVA_OPTS=\"${SE_JAVA_OPTS_DEFAULT} $SE_JAVA_OPTS\"\nfi\n\nfunction handle_heap_dump() {\n  /opt/bin/handle_heap_dump.sh /opt/selenium/logs\n}\nif [ \"${SE_JAVA_HEAP_DUMP}\" = \"true\" ]; then\n  SE_JAVA_OPTS=\"$SE_JAVA_OPTS -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=/opt/selenium/logs\"\n  trap handle_heap_dump ERR SIGTERM SIGINT\nfi\n\nif [ -n \"${JAVA_OPTS}\" ]; then\n  SE_JAVA_OPTS=\"$SE_JAVA_OPTS ${JAVA_OPTS}\"\nfi\n\necho \"Using JAVA_OPTS: ${SE_JAVA_OPTS}\"\n\njava ${SE_JAVA_OPTS} \\\n  -jar /opt/selenium/selenium-server.jar \\\n  ${EXTRA_LIBS} standalone \\\n  --session-request-timeout ${SE_SESSION_REQUEST_TIMEOUT} \\\n  --session-retry-interval ${SE_SESSION_RETRY_INTERVAL} \\\n  --relax-checks ${SE_RELAX_CHECKS} \\\n  --detect-drivers false \\\n  --bind-host ${SE_BIND_HOST} \\\n  --config ${CONFIG_FILE} \\\n  ${SE_OPTS}\n"
  },
  {
    "path": "StandaloneKubernetes/Dockerfile",
    "content": "ARG NAMESPACE=selenium\nARG VERSION=latest\nFROM ${NAMESPACE}/node-kubernetes:${VERSION}\nARG AUTHORS\nLABEL authors=${AUTHORS}\n\nUSER ${SEL_UID}\n\n#========================\n# Selenium Standalone Kubernetes Configuration\n#========================\n\nEXPOSE 4444\n\nCOPY --chown=\"${SEL_UID}:${SEL_GID}\" start-selenium-grid-kubernetes.sh /opt/bin/\n\n# In seconds, maps to \"--session-request-timeout\"\nENV SE_SESSION_REQUEST_TIMEOUT=\"300\" \\\n# In seconds, maps to \"--session-retry-interval\"\n    SE_SESSION_RETRY_INTERVAL=\"15\" \\\n# Boolean value, maps \"--relax-checks\"\n    SE_RELAX_CHECKS=\"true\" \\\n    SE_OTEL_SERVICE_NAME=\"selenium-standalone-kubernetes\" \\\n    SE_NODE_ENABLE_MANAGED_DOWNLOADS=\"true\"\n"
  },
  {
    "path": "StandaloneKubernetes/start-selenium-grid-kubernetes.sh",
    "content": "#!/usr/bin/env bash\n\n# set -e: exit asap if a command exits with a non-zero status\nset -e\n\necho \"Starting Selenium Grid Standalone Kubernetes...\"\n\nfunction append_se_opts() {\n  local option=\"${1}\"\n  local value=\"${2:-\"\"}\"\n  local log_message=\"${3:-true}\"\n  if [[ \"${SE_OPTS}\" != *\"${option}\"* ]]; then\n    if [ \"${log_message}\" = \"true\" ]; then\n      echo \"Appending Selenium option: ${option} ${value}\"\n    else\n      echo \"Appending Selenium option: ${option} $(mask ${value})\"\n    fi\n    SE_OPTS=\"${SE_OPTS} ${option}\"\n    if [ ! -z \"${value}\" ]; then\n      SE_OPTS=\"${SE_OPTS} ${value}\"\n    fi\n  else\n    echo \"Selenium option: ${option} already set in env variable SE_OPTS. Ignore new option: ${option} ${value}\"\n  fi\n}\n\nif [ ! -z \"$SE_OPTS\" ]; then\n  echo \"Appending Selenium options: ${SE_OPTS}\"\nfi\n\nif [ ! -z \"${SE_DISABLE_UI}\" ]; then\n  append_se_opts \"--disable-ui\" \"${SE_DISABLE_UI}\"\nfi\n\nif [ ! -z \"${SE_ROUTER_USERNAME}\" ]; then\n  append_se_opts \"--username\" \"${SE_ROUTER_USERNAME}\"\nfi\n\nif [ ! -z \"${SE_ROUTER_PASSWORD}\" ]; then\n  append_se_opts \"--password\" \"${SE_ROUTER_PASSWORD}\" \"false\"\nfi\n\n# Specific environment variables name for Node Dynamic only, it will not effect browser container when pass through\n\nif [ ! -z \"${SE_DYNAMIC_MAX_SESSIONS}\" ]; then\n  append_se_opts \"--max-sessions\" \"${SE_DYNAMIC_MAX_SESSIONS}\"\nfi\n\nif [ ! -z \"${SE_DYNAMIC_OVERRIDE_MAX_SESSIONS}\" ]; then\n  append_se_opts \"--override-max-sessions\" \"${SE_DYNAMIC_OVERRIDE_MAX_SESSIONS}\"\nfi\n\n# Environment variables will be passed through to browser container\n\nif [ ! -z \"${SE_NODE_GRID_URL}\" ]; then\n  append_se_opts \"--grid-url\" \"${SE_NODE_GRID_URL}\"\nfi\n\nif [ ! -z \"${SE_NODE_HEARTBEAT_PERIOD}\" ]; then\n  append_se_opts \"--heartbeat-period\" \"${SE_NODE_HEARTBEAT_PERIOD}\"\nfi\n\nif [ ! -z \"${SE_NODE_REGISTER_PERIOD}\" ]; then\n  append_se_opts \"--register-period\" \"${SE_NODE_REGISTER_PERIOD}\"\nfi\n\nif [ ! -z \"${SE_NODE_REGISTER_CYCLE}\" ]; then\n  append_se_opts \"--register-cycle\" \"${SE_NODE_REGISTER_CYCLE}\"\nfi\n\nif [ ! -z \"${SE_NODE_SESSION_TIMEOUT}\" ]; then\n  append_se_opts \"--session-timeout\" \"${SE_NODE_SESSION_TIMEOUT}\"\nfi\n\nif [ ! -z \"${SE_NODE_ENABLE_CDP}\" ]; then\n  append_se_opts \"--enable-cdp\" \"${SE_NODE_ENABLE_CDP}\"\nfi\n\nif [ ! -z \"${SE_NODE_ENABLE_MANAGED_DOWNLOADS}\" ]; then\n  append_se_opts \"--enable-managed-downloads\" \"${SE_NODE_ENABLE_MANAGED_DOWNLOADS}\"\nfi\n\nif [ ! -z \"${SE_NODE_CONNECTION_LIMIT_PER_SESSION}\" ]; then\n  append_se_opts \"--connection-limit-per-session\" \"${SE_NODE_CONNECTION_LIMIT_PER_SESSION}\"\nfi\n\nif [ ! -z \"$SE_LOG_LEVEL\" ]; then\n  append_se_opts \"--log-level\" \"${SE_LOG_LEVEL}\"\nfi\n\nif [ ! -z \"$SE_HTTP_LOGS\" ]; then\n  append_se_opts \"--http-logs\" \"${SE_HTTP_LOGS}\"\nfi\n\nif [ ! -z \"$SE_STRUCTURED_LOGS\" ]; then\n  append_se_opts \"--structured-logs\" \"${SE_STRUCTURED_LOGS}\"\nfi\n\nif [ ! -z \"$SE_PLAIN_LOGS\" ]; then\n  append_se_opts \"--plain-logs\" \"${SE_PLAIN_LOGS}\"\nfi\n\nif [ ! -z \"$SE_EXTERNAL_URL\" ]; then\n  append_se_opts \"--external-url\" \"${SE_EXTERNAL_URL}\"\nfi\n\nif [ ! -z \"${SE_EVENT_BUS_HEARTBEAT_PERIOD}\" ]; then\n  append_se_opts \"--eventbus-heartbeat-period\" \"${SE_EVENT_BUS_HEARTBEAT_PERIOD}\"\nfi\n\nif [ \"${SE_ENABLE_TLS}\" = \"true\" ]; then\n  # Configure truststore for the server\n  if [ ! -z \"$SE_JAVA_SSL_TRUST_STORE\" ]; then\n    echo \"Appending Java options: -Djavax.net.ssl.trustStore=${SE_JAVA_SSL_TRUST_STORE}\"\n    SE_JAVA_OPTS=\"$SE_JAVA_OPTS -Djavax.net.ssl.trustStore=${SE_JAVA_SSL_TRUST_STORE}\"\n  fi\n  if [ -f \"${SE_JAVA_SSL_TRUST_STORE_PASSWORD}\" ]; then\n    echo \"Getting Truststore password from ${SE_JAVA_SSL_TRUST_STORE_PASSWORD} to set Java options: -Djavax.net.ssl.trustStorePassword\"\n    SE_JAVA_SSL_TRUST_STORE_PASSWORD=\"$(cat ${SE_JAVA_SSL_TRUST_STORE_PASSWORD})\"\n  fi\n  if [ ! -z \"${SE_JAVA_SSL_TRUST_STORE_PASSWORD}\" ]; then\n    echo \"Appending Java options: -Djavax.net.ssl.trustStorePassword=$(mask ${SE_JAVA_SSL_TRUST_STORE_PASSWORD})\"\n    SE_JAVA_OPTS=\"$SE_JAVA_OPTS -Djavax.net.ssl.trustStorePassword=${SE_JAVA_SSL_TRUST_STORE_PASSWORD}\"\n  fi\n  echo \"Appending Java options: -Djdk.internal.httpclient.disableHostnameVerification=${SE_JAVA_DISABLE_HOSTNAME_VERIFICATION}\"\n  SE_JAVA_OPTS=\"$SE_JAVA_OPTS -Djdk.internal.httpclient.disableHostnameVerification=${SE_JAVA_DISABLE_HOSTNAME_VERIFICATION}\"\n  # Configure certificate and private key for component communication\n  if [ ! -z \"$SE_HTTPS_CERTIFICATE\" ]; then\n    append_se_opts \"--https-certificate\" \"${SE_HTTPS_CERTIFICATE}\"\n  fi\n  if [ ! -z \"$SE_HTTPS_PRIVATE_KEY\" ]; then\n    append_se_opts \"--https-private-key\" \"${SE_HTTPS_PRIVATE_KEY}\"\n  fi\nfi\n\nif [ ! -z \"${SE_NODE_KUBERNETES_CONFIG_FILENAME}\" ]; then\n  CONFIG_FILE=\"/opt/selenium/${SE_NODE_KUBERNETES_CONFIG_FILENAME}\"\nfi\n\necho \"Selenium Grid Standalone Kubernetes configuration: \"\ncat \"${CONFIG_FILE}\"\n\nEXTRA_LIBS=\"\"\nif [[ -f \"/external_jars/.classpath_node_kubernetes.txt\" ]]; then\n  EXTERNAL_JARS=$(</external_jars/.classpath_node_kubernetes.txt)\n  EXTRA_LIBS=\"--ext ${EXTERNAL_JARS}\"\nfi\n\nif [ -n \"${SE_EXTRA_LIBS}\" ]; then\n  EXTRA_LIBS=\"${EXTRA_LIBS}:${SE_EXTRA_LIBS}\"\nfi\n\nif [ \"${SE_ENABLE_TRACING}\" = \"true\" ] && [ -n \"${SE_OTEL_EXPORTER_ENDPOINT}\" ]; then\n  EXTERNAL_JARS=$(</external_jars/.classpath.txt)\n  if [ -n \"${EXTRA_LIBS}\" ] && [ -n \"${EXTERNAL_JARS}\" ]; then\n    EXTRA_LIBS=\"${EXTRA_LIBS}:${EXTERNAL_JARS}\"\n  elif [ -z \"${EXTRA_LIBS}\" ] && [ -n \"${EXTERNAL_JARS}\" ]; then\n    EXTRA_LIBS=\"--ext ${EXTERNAL_JARS}\"\n  fi\n  echo \"Tracing is enabled\"\n  if [ -n \"$SE_OTEL_SERVICE_NAME\" ]; then\n    SE_OTEL_JVM_ARGS=\"$SE_OTEL_JVM_ARGS -Dotel.resource.attributes=service.name=${SE_OTEL_SERVICE_NAME}${SE_OTEL_RESOURCE_ATTRIBUTES:+,${SE_OTEL_RESOURCE_ATTRIBUTES}}\"\n  fi\n  if [ -n \"$SE_OTEL_TRACES_EXPORTER\" ]; then\n    SE_OTEL_JVM_ARGS=\"$SE_OTEL_JVM_ARGS -Dotel.traces.exporter=${SE_OTEL_TRACES_EXPORTER}\"\n  fi\n  if [ -n \"$SE_OTEL_EXPORTER_ENDPOINT\" ]; then\n    SE_OTEL_JVM_ARGS=\"$SE_OTEL_JVM_ARGS -Dotel.exporter.otlp.endpoint=$(envsubst < <(echo ${SE_OTEL_EXPORTER_ENDPOINT}))\"\n  fi\n  if [ -n \"$SE_OTEL_JAVA_GLOBAL_AUTOCONFIGURE_ENABLED\" ]; then\n    SE_OTEL_JVM_ARGS=\"$SE_OTEL_JVM_ARGS -Dotel.java.global-autoconfigure.enabled=${SE_OTEL_JAVA_GLOBAL_AUTOCONFIGURE_ENABLED}\"\n  fi\n  if [ -n \"$SE_OTEL_JVM_ARGS\" ]; then\n    SE_JAVA_OPTS=\"$SE_JAVA_OPTS ${SE_OTEL_JVM_ARGS}\"\n  fi\nelse\n  append_se_opts \"--tracing\" \"false\"\n  SE_JAVA_OPTS=\"$SE_JAVA_OPTS -Dwebdriver.remote.enableTracing=false\"\n  echo \"Tracing is disabled\"\nfi\n\nif [ -n \"${EXTRA_LIBS}\" ]; then\n  echo \"Classpath will be enriched with these external jars : ${EXTRA_LIBS}\"\nfi\n\nif [ -n \"${SE_JAVA_HTTPCLIENT_VERSION}\" ]; then\n  SE_JAVA_OPTS=\"$SE_JAVA_OPTS -Dwebdriver.httpclient.version=${SE_JAVA_HTTPCLIENT_VERSION}\"\nfi\n\nif [ -n \"${SE_JAVA_OPTS_DEFAULT}\" ]; then\n  SE_JAVA_OPTS=\"${SE_JAVA_OPTS_DEFAULT} $SE_JAVA_OPTS\"\nfi\n\nfunction handle_heap_dump() {\n  /opt/bin/handle_heap_dump.sh /opt/selenium/logs\n}\nif [ \"${SE_JAVA_HEAP_DUMP}\" = \"true\" ]; then\n  SE_JAVA_OPTS=\"$SE_JAVA_OPTS -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=/opt/selenium/logs\"\n  trap handle_heap_dump ERR SIGTERM SIGINT\nfi\n\nif [ -n \"${JAVA_OPTS}\" ]; then\n  SE_JAVA_OPTS=\"$SE_JAVA_OPTS ${JAVA_OPTS}\"\nfi\n\necho \"Using JAVA_OPTS: ${SE_JAVA_OPTS}\"\n\njava ${SE_JAVA_OPTS} \\\n  -jar /opt/selenium/selenium-server.jar \\\n  ${EXTRA_LIBS} standalone \\\n  --session-request-timeout ${SE_SESSION_REQUEST_TIMEOUT} \\\n  --session-retry-interval ${SE_SESSION_RETRY_INTERVAL} \\\n  --relax-checks ${SE_RELAX_CHECKS} \\\n  --detect-drivers false \\\n  --bind-host ${SE_BIND_HOST} \\\n  --config ${CONFIG_FILE} \\\n  ${SE_GRID_URL} ${SE_OPTS}\n"
  },
  {
    "path": "Video/Dockerfile",
    "content": "ARG NAMESPACE=selenium\nARG BASE=base\nARG VERSION=latest\nARG FFMPEG_BASED_NAME=selenium\nARG FFMPEG_BASED_TAG=latest\nFROM ${FFMPEG_BASED_NAME}/ffmpeg:${FFMPEG_BASED_TAG} AS source\n\n# Final stage\nFROM ${NAMESPACE}/${BASE}:${VERSION}\nARG AUTHORS\nLABEL authors=${AUTHORS}\n\nUSER root\n\nCOPY --from=source /usr/local/bin/ffmpeg /usr/local/bin/ffmpeg\nCOPY --from=source /usr/local/bin/rclone /usr/local/bin/rclone\n\nRUN apt-get -qqy update \\\n    && apt-get -qqy --no-install-recommends install \\\n    libx11-6 libx11-xcb1 libxcb1 libpulse0 libasound2t64 \\\n    x11-xserver-utils x11-utils \\\n    && apt-get -qqy update \\\n    && apt-get -yq upgrade \\\n    && rm -rf /var/lib/apt/lists/* /var/cache/apt/*\n\nCOPY *.conf /etc/supervisor/conf.d/\nCOPY --chown=\"${SEL_UID}:${SEL_GID}\" *.sh *.py /opt/bin/\n\nUSER ${SEL_UID}\n\nRUN ffmpeg -version \\\n    && rclone --version \\\n    && touch /opt/selenium/upload.conf\n\nENV DISPLAY_NUM=\"99\" \\\n    DISPLAY_CONTAINER_NAME=\"selenium\" \\\n    SE_RECORD_VIDEO=\"true\" \\\n    SE_RECORD_AUDIO=\"false\" \\\n    SE_AUDIO_SOURCE=\"-f pulse -ac 2 -i default\" \\\n    SE_SERVER_PROTOCOL=\"http\" \\\n    SE_VIDEO_POLL_INTERVAL=\"1\" \\\n    SE_FRAME_RATE=\"15\" \\\n    SE_CODEC=\"libx264\" \\\n    SE_PRESET=\"-preset ultrafast\" \\\n    VIDEO_FOLDER=\"/videos\" \\\n    SE_VIDEO_EVENT_DRIVEN=\"false\" \\\n    SE_VIDEO_FILE_NAME=\"video.mp4\" \\\n    SE_VIDEO_FILE_NAME_TRIM_REGEX=\"[^a-zA-Z0-9-_]\" \\\n    SE_VIDEO_FILE_NAME_SUFFIX=\"true\" \\\n    # Environment variables for the uploader\n    RCLONE_CONFIG=\"/opt/selenium/upload.conf\" \\\n    SE_VIDEO_UPLOAD_ENABLED=\"false\" \\\n    SE_VIDEO_INTERNAL_UPLOAD=\"true\" \\\n    SE_UPLOAD_DESTINATION_PREFIX=\"\" \\\n    SE_UPLOAD_FAILURE_SESSION_ONLY=\"false\" \\\n    SE_UPLOAD_FAILURE_SESSION_EVENTS=\":failed,:failure\"\n\nEXPOSE 9000\n"
  },
  {
    "path": "Video/entry_point.sh",
    "content": "#!/usr/bin/env bash\n#==============================================\n# OpenShift or non-sudo environments support\n# https://docs.openshift.com/container-platform/3.11/creating_images/guidelines.html#openshift-specific-guidelines\n#==============================================\n\nif ! whoami &>/dev/null; then\n  if [ -w /etc/passwd ]; then\n    echo \"${USER_NAME:-default}:x:$(id -u):0:${USER_NAME:-default} user:${HOME}:/sbin/nologin\" >>/etc/passwd\n  fi\nfi\n\nif [ -n \"${VIRTUAL_ENV}\" ]; then\n  echo \"Virtual environment detected at ${VIRTUAL_ENV}, activating...\"\n  source ${VIRTUAL_ENV}/bin/activate\n  python3 --version\nfi\n\nsupervisord --configuration /etc/supervisord.conf &\n\nSUPERVISOR_PID=$!\n\nfunction shutdown {\n  echo \"Trapped SIGTERM/SIGINT/x so shutting down supervisord...\"\n  kill -s SIGTERM ${SUPERVISOR_PID}\n  wait ${SUPERVISOR_PID}\n  echo \"Shutdown complete\"\n}\n\ntrap shutdown SIGTERM SIGINT\nwait ${SUPERVISOR_PID}\n"
  },
  {
    "path": "Video/recorder.conf",
    "content": "[program:video-recording]\npriority=10\ncommand=python3 /opt/bin/video_recorder.py\nkillasgroup=true\nautostart=%(ENV_SE_RECORD_VIDEO)s\nstartsecs=0\nautorestart=%(ENV_SE_RECORD_VIDEO)s\nstopsignal=TERM\nstopwaitsecs=30\n\n;Logs (all activity redirected to stdout so it can be seen through \"docker logs\"\nredirect_stderr=true\nstdout_logfile=/dev/stdout\nstdout_logfile_maxbytes=0\n\n[program:video-ready]\npriority=0\ncommand=python3 /opt/bin/video_ready.py\nkillasgroup=true\nautostart=%(ENV_SE_RECORD_VIDEO)s\nstartsecs=0\nautorestart=%(ENV_SE_RECORD_VIDEO)s\nstopsignal=KILL\n\n;Logs (all activity redirected to stdout so it can be seen through \"docker logs\"\nredirect_stderr=true\nstdout_logfile=/dev/stdout\nstdout_logfile_maxbytes=0\n"
  },
  {
    "path": "Video/upload.sh",
    "content": "#!/usr/bin/env bash\n\nVIDEO_FOLDER=${VIDEO_FOLDER}\nRCLONE_CONFIG=${RCLONE_CONFIG:-${SE_RCLONE_CONFIG}}\nUPLOAD_COMMAND=${SE_UPLOAD_COMMAND:-\"copy\"}\nUPLOAD_OPTS=${SE_UPLOAD_OPTS:-\"-P --cutoff-mode SOFT --metadata --inplace\"}\nUPLOAD_RETAIN_LOCAL_FILE=${SE_UPLOAD_RETAIN_LOCAL_FILE:-\"false\"}\nUPLOAD_PIPE_FILE_NAME=${SE_UPLOAD_PIPE_FILE_NAME:-\"uploadpipe\"}\nVIDEO_INTERNAL_UPLOAD=${VIDEO_INTERNAL_UPLOAD:-$SE_VIDEO_INTERNAL_UPLOAD}\nVIDEO_UPLOAD_BATCH_CHECK=${SE_VIDEO_UPLOAD_BATCH_CHECK:-\"10\"}\nts_format=${SE_LOG_TIMESTAMP_FORMAT:-\"%Y-%m-%d %H:%M:%S,%3N\"}\nprocess_name=\"video.uploader\"\n\nif [ \"${VIDEO_INTERNAL_UPLOAD}\" = \"true\" ]; then\n  # If using RCLONE in the same container, write signal to /tmp internally\n  UPLOAD_PIPE_FILE=\"/tmp/${UPLOAD_PIPE_FILE_NAME}\"\n  FORCE_EXIT_FILE=\"/tmp/force_exit\"\nelse\n  # If using external container for uploading, write signal to the video folder\n  UPLOAD_PIPE_FILE=\"${VIDEO_FOLDER}/${UPLOAD_PIPE_FILE_NAME}\"\n  FORCE_EXIT_FILE=\"${VIDEO_FOLDER}/force_exit\"\nfi\n\nif [ \"${UPLOAD_RETAIN_LOCAL_FILE}\" = \"false\" ]; then\n  echo \"$(date -u +\"${ts_format}\") [${process_name}] - UPLOAD_RETAIN_LOCAL_FILE is set to false, force to use RCLONE command: move\"\n  UPLOAD_COMMAND=\"move\"\nfi\n\nfunction rename_rclone_env() {\n  # This script is used to support passing environment variables for RCLONE configuration in Dynamic Grid\n  # Dynamic Grid accepts environment variables with the prefix SE_*\n  # RCLONE accepts environment variables with the prefix RCLONE_*\n  # To pass the ENV vars to Dynamic Grid then to RCLONE, we need to rename the ENV vars from SE_RCLONE_* to RCLONE_*\n  for var in $(env | cut -d= -f1); do\n    if [[ \"$var\" == SE_RCLONE_* ]]; then\n      suffix=\"${var#SE_RCLONE_}\"\n      new_var=\"RCLONE_$suffix\"\n      export \"$new_var=${!var}\"\n    fi\n  done\n}\n\nlist_rclone_pid=()\nfunction check_and_clear_background() {\n  # Wait for a batch rclone processes to finish\n  if [ ${#list_rclone_pid[@]} -eq ${VIDEO_UPLOAD_BATCH_CHECK} ]; then\n    for pid in \"${list_rclone_pid[@]}\"; do\n      wait ${pid}\n    done\n    list_rclone_pid=()\n  fi\n\n}\n\nfunction rclone_upload() {\n  local source=$1\n  local target=$2\n  echo \"$(date -u +\"${ts_format}\") [${process_name}] - Uploading ${source} to ${target}\"\n  rclone --config ${RCLONE_CONFIG} ${UPLOAD_COMMAND} ${UPLOAD_OPTS} \"${source}\" \"${target}\" &\n  list_rclone_pid+=($!)\n  check_and_clear_background\n}\n\nfunction check_if_pid_alive() {\n  local pid=$1\n  if kill -0 \"${pid}\" >/dev/null 2>&1; then\n    return 0\n  fi\n  return 1\n}\n\nfunction consume_pipe_file_in_background() {\n  echo \"$(date -u +\"${ts_format}\") [${process_name}] - Start consuming pipe file to upload\"\n  while read FILE DESTINATION <${UPLOAD_PIPE_FILE}; do\n    if [ \"${FILE}\" = \"exit\" ]; then\n      echo \"$(date -u +\"${ts_format}\") [${process_name}] - Received exit signal. Aborting upload process\"\n      return 0\n    elif [ \"$FILE\" != \"\" ] && [ \"$DESTINATION\" != \"\" ]; then\n      rclone_upload \"${FILE}\" \"${DESTINATION}\"\n    fi\n  done\n  echo \"$(date -u +\"${ts_format}\") [${process_name}] - Stopped consuming pipe file. Upload process is done\"\n  return 0\n}\n\n# Function to check if the named pipe exists\ncheck_if_pipefile_exists() {\n  if [ -p \"${UPLOAD_PIPE_FILE}\" ]; then\n    echo \"$(date -u +\"${ts_format}\") [${process_name}] - Named pipe ${UPLOAD_PIPE_FILE} exists\"\n    return 0\n  fi\n  return 1\n}\n\nfunction wait_until_pipefile_exists() {\n  echo \"$(date -u +\"${ts_format}\") [${process_name}] - Waiting for ${UPLOAD_PIPE_FILE} to be present\"\n  until check_if_pipefile_exists; do\n    sleep 1\n  done\n}\n\nfunction graceful_exit() {\n  echo \"$(date -u +\"${ts_format}\") [${process_name}] - Trapped SIGTERM/SIGINT/x so shutting down uploader\"\n  if ! check_if_pid_alive \"${UPLOAD_PID}\"; then\n    consume_pipe_file_in_background &\n    UPLOAD_PID=$!\n  fi\n  echo \"exit\" >>\"${UPLOAD_PIPE_FILE}\" &\n  wait \"${UPLOAD_PID}\"\n  echo \"$(date -u +\"${ts_format}\") [${process_name}] - Uploader consumed all files in the pipe\"\n  rm -rf \"${FORCE_EXIT_FILE}\"\n  echo \"$(date -u +\"${ts_format}\") [${process_name}] - Uploader is ready to shutdown\"\n  exit 0\n}\n\nrename_rclone_env\ntrap graceful_exit SIGTERM SIGINT EXIT\n\nwhile true; do\n  wait_until_pipefile_exists\n  if ! check_if_pid_alive \"${UPLOAD_PID}\"; then\n    consume_pipe_file_in_background &\n    UPLOAD_PID=$!\n  fi\n  while check_if_pid_alive \"${UPLOAD_PID}\"; do\n    sleep 1\n  done\ndone\n"
  },
  {
    "path": "Video/uploader.conf",
    "content": "[program:video-upload]\npriority=5\ncommand=python3 /opt/bin/video_uploader.py\nkillasgroup=true\nautostart=%(ENV_SE_VIDEO_UPLOAD_ENABLED)s\nstartsecs=0\nautorestart=%(ENV_SE_VIDEO_UPLOAD_ENABLED)s\nstopsignal=TERM\nstopwaitsecs=30\n\n;Logs (all activity redirected to stdout so it can be seen through \"docker logs\"\nredirect_stderr=true\nstdout_logfile=/dev/stdout\nstdout_logfile_maxbytes=0\n"
  },
  {
    "path": "Video/validate_endpoint.py",
    "content": "#!/usr/bin/env python3\n\nimport base64\nimport os\nimport sys\nfrom datetime import datetime, timezone\n\nimport requests\n\n\ndef get_timestamp():\n    \"\"\"Get formatted timestamp based on SE_LOG_TIMESTAMP_FORMAT.\"\"\"\n    ts_format = os.environ.get('SE_LOG_TIMESTAMP_FORMAT', '%Y-%m-%d %H:%M:%S,%f')\n    # Convert bash format to Python format\n    if '%3N' in ts_format:\n        # Replace %3N (bash milliseconds) with %f (Python microseconds) and trim later\n        ts_format_python = ts_format.replace('%3N', '%f')\n        timestamp = datetime.now(timezone.utc).strftime(ts_format_python)\n        # Convert microseconds to milliseconds (trim last 3 digits)\n        if '%f' in ts_format_python:\n            # Find the microseconds part and trim to milliseconds\n            parts = timestamp.rsplit(',', 1)\n            if len(parts) == 2 and len(parts[1]) == 6:\n                timestamp = parts[0] + ',' + parts[1][:3]\n    else:\n        timestamp = datetime.now(timezone.utc).strftime(ts_format)\n    return timestamp\n\n\ndef create_session():\n    \"\"\"Create requests session with timeout configuration.\"\"\"\n    session = requests.Session()\n    return session\n\n\ndef get_basic_auth():\n    \"\"\"Get basic authentication header if credentials are provided.\"\"\"\n    username = os.environ.get('SE_ROUTER_USERNAME')\n    password = os.environ.get('SE_ROUTER_PASSWORD')\n\n    if username and password:\n        credentials = f\"{username}:{password}\"\n        encoded_credentials = base64.b64encode(credentials.encode()).decode()\n        return {\"Authorization\": f\"Basic {encoded_credentials}\"}\n\n    return {}\n\n\ndef validate_endpoint(endpoint, graphql_endpoint=False, connection_timeout=5, read_timeout=5):\n    \"\"\"\n    Validate an endpoint by making HTTP request and checking status code.\n\n    Args:\n        endpoint (str): The endpoint URL to validate\n        graphql_endpoint (bool): Whether this is a GraphQL endpoint\n        connection_timeout (int): Connection timeout in seconds\n        read_timeout (int): Read timeout in seconds\n    \"\"\"\n    process_name = \"endpoint.checks\"\n    session = create_session()\n\n    # Set up headers\n    headers = {}\n    headers.update(get_basic_auth())\n\n    try:\n        if graphql_endpoint:\n            # GraphQL endpoint check\n            headers['Content-Type'] = 'application/json'\n            data = {\"query\": \"{ grid { sessionCount } }\"}\n\n            response = session.post(\n                endpoint,\n                headers=headers,\n                json=data,\n                timeout=(connection_timeout, read_timeout),\n                verify=False,  # Equivalent to curl's -k flag\n            )\n        else:\n            # Regular endpoint check\n            response = session.get(\n                endpoint,\n                headers=headers,\n                timeout=(connection_timeout, read_timeout),\n                verify=False,  # Equivalent to curl's -k flag\n            )\n\n        status_code = response.status_code\n\n    except requests.exceptions.Timeout:\n        print(\n            f\"{get_timestamp()} [{process_name}] - Endpoint {endpoint} timed out (connection: {connection_timeout}s, read: {read_timeout}s)\"\n        )\n        return False\n    except requests.exceptions.ConnectionError:\n        print(f\"{get_timestamp()} [{process_name}] - Failed to connect to endpoint {endpoint}\")\n        return False\n    except requests.exceptions.RequestException as e:\n        print(f\"{get_timestamp()} [{process_name}] - Error connecting to endpoint {endpoint}: {str(e)}\")\n        return False\n\n    # Handle different status codes\n    if status_code == 404:\n        print(f\"{get_timestamp()} [{process_name}] - Endpoint {endpoint} is not found - status code: {status_code}\")\n        return False\n    elif status_code == 401:\n        print(\n            f\"{get_timestamp()} [{process_name}] - Endpoint {endpoint} requires authentication - status code: {status_code}. Please provide valid credentials via SE_ROUTER_USERNAME and SE_ROUTER_PASSWORD environment variables.\"\n        )\n        return False\n    elif status_code != 200:\n        print(f\"{get_timestamp()} [{process_name}] - Endpoint {endpoint} is not available - status code: {status_code}\")\n        return False\n\n    print(f\"{get_timestamp()} [{process_name}] - Endpoint {endpoint} is reachable - status code: {status_code}\")\n    return True\n\n\ndef main():\n    \"\"\"Main function to handle command line arguments and execute validation.\"\"\"\n    if len(sys.argv) < 2:\n        print(\"Usage: python3 validate_endpoint.py <endpoint> [graphql_endpoint]\")\n        print(\"  endpoint: The URL endpoint to validate\")\n        print(\"  graphql_endpoint: 'true' if this is a GraphQL endpoint (default: false)\")\n        sys.exit(1)\n\n    endpoint = sys.argv[1]\n    graphql_endpoint = len(sys.argv) > 2 and sys.argv[2].lower() == 'true'\n    max_time = int(os.environ.get('SE_ENDPOINT_CHECK_TIMEOUT', 5))\n\n    # Validate the endpoint\n    success = validate_endpoint(endpoint, graphql_endpoint, max_time, max_time)\n\n    # Exit with appropriate code\n    sys.exit(0 if success else 1)\n\n\nif __name__ == \"__main__\":\n    main()\n"
  },
  {
    "path": "Video/video.sh",
    "content": "#!/usr/bin/env bash\n\nVIDEO_SIZE=\"${SE_SCREEN_WIDTH}\"\"x\"\"${SE_SCREEN_HEIGHT}\"\nDISPLAY_CONTAINER_NAME=${DISPLAY_CONTAINER_NAME}\nDISPLAY_NUM=${DISPLAY_NUM}\nVIDEO_FILE_NAME=${FILE_NAME:-$SE_VIDEO_FILE_NAME}\nFRAME_RATE=${FRAME_RATE:-$SE_FRAME_RATE}\nCODEC=${CODEC:-$SE_CODEC}\nPRESET=${PRESET:-$SE_PRESET}\nVIDEO_FOLDER=${VIDEO_FOLDER}\nVIDEO_UPLOAD_ENABLED=${VIDEO_UPLOAD_ENABLED:-$SE_VIDEO_UPLOAD_ENABLED}\nVIDEO_INTERNAL_UPLOAD=${VIDEO_INTERNAL_UPLOAD:-$SE_VIDEO_INTERNAL_UPLOAD}\nVIDEO_CONFIG_DIRECTORY=${VIDEO_CONFIG_DIRECTORY:-\"/opt/bin\"}\nUPLOAD_DESTINATION_PREFIX=${UPLOAD_DESTINATION_PREFIX:-$SE_UPLOAD_DESTINATION_PREFIX}\nUPLOAD_PIPE_FILE_NAME=${SE_UPLOAD_PIPE_FILE_NAME:-\"uploadpipe\"}\nSE_SERVER_PROTOCOL=${SE_SERVER_PROTOCOL:-\"http\"}\npoll_interval=${SE_VIDEO_POLL_INTERVAL:-2}\nmax_attempts=${SE_VIDEO_WAIT_ATTEMPTS:-50}\nfile_ready_max_attempts=${SE_VIDEO_FILE_READY_WAIT_ATTEMPTS:-5}\nwait_uploader_shutdown_max_attempts=${SE_VIDEO_WAIT_UPLOADER_SHUTDOWN_ATTEMPTS:-5}\nts_format=${SE_LOG_TIMESTAMP_FORMAT:-\"%Y-%m-%d %H:%M:%S,%3N\"}\nprocess_name=\"video.recorder\"\n\nif [ \"${SE_VIDEO_RECORD_STANDALONE}\" = \"true\" ]; then\n  JQ_SESSION_ID_QUERY=\".value.nodes[0]?.slots[-1]?.session?.sessionId\"\n  JQ_SESSION_CAPABILITIES_QUERY=\".value.nodes[0]?.slots[-1]?.session?.capabilities\"\n  SE_NODE_PORT=${SE_NODE_PORT:-\"4444\"}\n  NODE_STATUS_ENDPOINT=\"${SE_SERVER_PROTOCOL}://${DISPLAY_CONTAINER_NAME}:${SE_NODE_PORT}/status\"\nelse\n  JQ_SESSION_ID_QUERY=\".value.node?.slots[-1]?.session?.sessionId\"\n  JQ_SESSION_CAPABILITIES_QUERY=\".value.node?.slots[-1]?.session?.capabilities\"\n  SE_NODE_PORT=${SE_NODE_PORT:-\"5555\"}\n  NODE_STATUS_ENDPOINT=\"${SE_SERVER_PROTOCOL}://${DISPLAY_CONTAINER_NAME}:${SE_NODE_PORT}/status\"\nfi\n\nauth_header=()\nif [ -n \"${SE_ROUTER_USERNAME}\" ] && [ -n \"${SE_ROUTER_PASSWORD}\" ]; then\n  BASIC_AUTH=\"$(echo -en \"${SE_ROUTER_USERNAME}:${SE_ROUTER_PASSWORD}\" | base64 -w0)\"\n  auth_header=(-H \"Authorization: Basic ${BASIC_AUTH}\")\nfi\n\n# Set headers if Node Registration Secret is set\nif [ ! -z \"${SE_REGISTRATION_SECRET}\" ]; then\n  HEADERS=\"X-REGISTRATION-SECRET: ${SE_REGISTRATION_SECRET}\"\nelse\n  HEADERS=\"X-REGISTRATION-SECRET;\"\nfi\n\nif [ -d \"${VIDEO_FOLDER}\" ]; then\n  echo \"$(date -u +\"${ts_format}\") [${process_name}] - Video folder exists: ${VIDEO_FOLDER}\"\nelse\n  echo \"$(date -u +\"${ts_format}\") [${process_name}] - Video folder does not exist: ${VIDEO_FOLDER}. Due to permission, folder name could not be changed via environment variable. Exiting...\"\n  exit 1\nfi\n\nif [ \"${VIDEO_INTERNAL_UPLOAD}\" = \"true\" ]; then\n  # If using RCLONE in the same container, write signal to /tmp internally\n  UPLOAD_PIPE_FILE=\"/tmp/${UPLOAD_PIPE_FILE_NAME}\"\n  FORCE_EXIT_FILE=\"/tmp/force_exit\"\nelse\n  # If using external container for uploading, write signal to the video folder\n  UPLOAD_PIPE_FILE=\"${VIDEO_FOLDER}/${UPLOAD_PIPE_FILE_NAME}\"\n  FORCE_EXIT_FILE=\"${VIDEO_FOLDER}/force_exit\"\nfi\n\n# Function to create the named pipe if it doesn't exist\nfunction create_named_pipe() {\n  if [ \"${VIDEO_UPLOAD_ENABLED}\" = \"true\" ]; then\n    if [ ! -p \"${UPLOAD_PIPE_FILE}\" ]; then\n      if [ -e \"${UPLOAD_PIPE_FILE}\" ]; then\n        rm -f \"${UPLOAD_PIPE_FILE}\"\n      fi\n      mkfifo \"${UPLOAD_PIPE_FILE}\"\n      echo \"$(date -u +\"${ts_format}\") [${process_name}] - Created named pipe ${UPLOAD_PIPE_FILE}\"\n    fi\n  fi\n}\n\nfunction wait_for_display() {\n  DISPLAY=${DISPLAY_CONTAINER_NAME}:${DISPLAY_NUM}.0\n  export DISPLAY=${DISPLAY}\n  echo \"$(date -u +\"${ts_format}\") [${process_name}] - Waiting for the display ${DISPLAY} is open\"\n  until xset b off >/dev/null 2>&1; do\n    sleep ${poll_interval}\n  done\n  if [ -z \"$SE_SCREEN_WIDTH\" -o -z \"$SE_SCREEN_HEIGHT\" ]; then\n    VIDEO_SIZE=$(xdpyinfo | grep 'dimensions:' | awk '{print $2}')\n  fi\n  echo \"$(date -u +\"${ts_format}\") [${process_name}] - Display ${DISPLAY} is open with dimensions ${VIDEO_SIZE}\"\n}\n\nfunction check_if_api_respond() {\n  endpoint_checks=$(curl --noproxy \"*\" \"${auth_header[@]}\" -sk -o /dev/null -w \"%{http_code}\" \"${NODE_STATUS_ENDPOINT}\")\n  if [[ \"${endpoint_checks}\" != \"200\" ]]; then\n    python3 /opt/bin/validate_endpoint.py \"${NODE_STATUS_ENDPOINT}\"\n    return 1\n  fi\n  return 0\n}\n\nfunction wait_for_api_respond() {\n  echo \"$(date -u +\"${ts_format}\") [${process_name}] - Waiting for Node endpoint responds\"\n  until check_if_api_respond; do\n    sleep ${poll_interval}\n  done\n  echo \"$(date -u +\"${ts_format}\") [${process_name}] - Node endpoint is responding now. Proceeding next steps...\"\n  return 0\n}\n\nfunction wait_util_uploader_shutdown() {\n  wait=0\n  if [[ \"${VIDEO_UPLOAD_ENABLED}\" = \"true\" ]] && [[ -n \"${UPLOAD_DESTINATION_PREFIX}\" ]] && [[ \"${VIDEO_INTERNAL_UPLOAD}\" != \"true\" ]]; then\n    while [[ -f ${FORCE_EXIT_FILE} ]] && [[ ${wait} -lt ${wait_uploader_shutdown_max_attempts} ]]; do\n      echo \"exit\" >>${UPLOAD_PIPE_FILE} &\n      echo \"$(date -u +\"${ts_format}\") [${process_name}] - Waiting for force exit file to be consumed by external upload container\"\n      sleep ${poll_interval}\n      wait=$((wait + 1))\n    done\n  fi\n  if [[ \"${VIDEO_UPLOAD_ENABLED}\" = \"true\" ]] && [[ -n \"${UPLOAD_DESTINATION_PREFIX}\" ]] && [[ \"${VIDEO_INTERNAL_UPLOAD}\" = \"true\" ]]; then\n    while [[ $(pgrep rclone | wc -l) -gt 0 ]]; do\n      echo \"exit\" >>${UPLOAD_PIPE_FILE} &\n      echo \"$(date -u +\"${ts_format}\") [${process_name}] - Recorder is waiting for RCLONE to finish\"\n      sleep ${poll_interval}\n    done\n  fi\n}\n\nfunction send_exit_signal_to_uploader() {\n  if [[ \"${VIDEO_UPLOAD_ENABLED}\" = \"true\" ]] && [[ -n \"${UPLOAD_DESTINATION_PREFIX}\" ]]; then\n    echo \"$(date -u +\"${ts_format}\") [${process_name}] - Sending a signal to force exit the uploader\"\n    echo \"exit\" >>${UPLOAD_PIPE_FILE} &\n    echo \"exit\" >${FORCE_EXIT_FILE}\n  fi\n}\n\nfunction exit_on_max_session_reach() {\n  if [[ $max_recorded_count -gt 0 ]] && [[ $recorded_count -ge $max_recorded_count ]]; then\n    echo \"$(date -u +\"${ts_format}\") [${process_name}] - Node will be drained since max sessions reached count number ($max_recorded_count)\"\n    exit\n  fi\n}\n\nfunction stop_ffmpeg() {\n  while true; do\n    FFMPEG_PID=$(pgrep -f \"ffmpeg -hide_banner\" | tr '\\n' ' ')\n    if [ -n \"$FFMPEG_PID\" ]; then\n      kill -SIGTERM $FFMPEG_PID\n      wait $FFMPEG_PID\n    fi\n    if ! pgrep -f \"ffmpeg -hide_banner\" >/dev/null; then\n      break\n    fi\n    sleep ${poll_interval}\n  done\n}\n\nfunction stop_recording() {\n  stop_ffmpeg\n  echo \"$(date -u +\"${ts_format}\") [${process_name}] - Video recording stopped\"\n  recorded_count=$((recorded_count + 1))\n  recording_started=\"false\"\n  if [[ \"${VIDEO_UPLOAD_ENABLED}\" = \"true\" ]] && [[ -n \"${UPLOAD_DESTINATION_PREFIX}\" ]]; then\n    upload_destination=${UPLOAD_DESTINATION_PREFIX}/${video_file_name}\n    echo \"$(date -u +\"${ts_format}\") [${process_name}] - Add to pipe a signal Uploading video to $upload_destination\"\n    echo \"$video_file ${UPLOAD_DESTINATION_PREFIX}\" >>${UPLOAD_PIPE_FILE} &\n  elif [[ \"${VIDEO_UPLOAD_ENABLED}\" = \"true\" ]] && [[ -z \"${UPLOAD_DESTINATION_PREFIX}\" ]]; then\n    echo \"$(date -u +\"${ts_format}\") [${process_name}] - Upload destination not known since UPLOAD_DESTINATION_PREFIX is not set. Continue without uploading.\"\n  fi\n}\n\nfunction check_if_ffmpeg_running() {\n  if pgrep -f \"ffmpeg -hide_banner\" >/dev/null; then\n    return 0\n  fi\n  return 1\n}\n\nfunction wait_for_file_integrity() {\n  retry=0\n  if [[ ! -f \"${video_file}\" ]]; then\n    echo \"$(date -u +\"${ts_format}\") [${process_name}] - Video file is not found, might be the recording is not started.\"\n    return 0\n  fi\n  until ffmpeg -v error -i \"${video_file}\" -f null -; do\n    echo \"$(date -u +\"${ts_format}\") [${process_name}] - Waiting for video file ${video_file} to be ready.\"\n    sleep ${poll_interval}\n    retry=$((retry + 1))\n    if [[ $retry -ge ${file_ready_max_attempts} ]]; then\n      echo \"$(date -u +\"${ts_format}\") [${process_name}] - Video file is not ready after ${file_ready_max_attempts} attempts, skipping...\"\n      break\n    fi\n  done\n}\n\nfunction stop_if_recording_inprogress() {\n  if [[ \"$recording_started\" = \"true\" ]] || check_if_ffmpeg_running; then\n    stop_recording\n  fi\n}\n\nfunction log_node_response() {\n  if [[ -n \"${session_capabilities}\" ]]; then\n    jq '.' <<<\"${session_capabilities}\"\n  fi\n}\n\nfunction graceful_exit() {\n  echo \"$(date -u +\"${ts_format}\") [${process_name}] - Trapped SIGTERM/SIGINT/x so shutting down recorder\"\n  stop_if_recording_inprogress\n  send_exit_signal_to_uploader\n  wait_util_uploader_shutdown\n}\n\nfunction graceful_exit_force() {\n  graceful_exit\n  kill -SIGTERM \"$(cat ${SE_SUPERVISORD_PID_FILE})\" 2>/dev/null\n  echo \"$(date -u +\"${ts_format}\") [${process_name}] - Ready to shutdown the recorder\"\n  exit 0\n}\n\nif [ \"${SE_RECORD_AUDIO,,}\" = \"true\" ]; then\n  echo \"$(date -u +\"${ts_format}\") [${process_name}] - Audio source arguments: ${SE_AUDIO_SOURCE}\"\nelse\n  SE_AUDIO_SOURCE=\"\"\nfi\n\nif [[ \"${VIDEO_UPLOAD_ENABLED}\" != \"true\" ]] && [[ \"${VIDEO_FILE_NAME}\" != \"auto\" ]] && [[ -n \"${VIDEO_FILE_NAME}\" ]]; then\n  trap graceful_exit SIGTERM SIGINT EXIT\n  wait_for_display\n  video_file=\"$VIDEO_FOLDER/$VIDEO_FILE_NAME\"\n  # exec replaces the video.sh process with ffmpeg, this makes easier to pass the process termination signal\n  ffmpeg -hide_banner -loglevel warning -threads ${SE_FFMPEG_THREADS:-1} -thread_queue_size 512 \\\n    -probesize 32M -analyzeduration 0 -y -f x11grab -video_size ${VIDEO_SIZE} -r ${FRAME_RATE} \\\n    -i ${DISPLAY} ${SE_AUDIO_SOURCE} -codec:v ${CODEC} ${PRESET:-\"-preset veryfast\"} \\\n    -tune zerolatency -crf ${SE_VIDEO_CRF:-28} -maxrate ${SE_VIDEO_MAXRATE:-1000k} -bufsize ${SE_VIDEO_BUFSIZE:-2000k} \\\n    -pix_fmt yuv420p -movflags +faststart \"$video_file\" &\n  FFMPEG_PID=$!\n  if ps -p $FFMPEG_PID >/dev/null; then\n    wait $FFMPEG_PID\n  fi\n\nelse\n  trap graceful_exit_force SIGTERM SIGINT EXIT\n  create_named_pipe\n  wait_for_display\n  recording_started=\"false\"\n  video_file_name=\"\"\n  video_file=\"\"\n  prev_session_id=\"\"\n  attempts=0\n  max_recorded_count=${SE_DRAIN_AFTER_SESSION_COUNT:-0}\n  recorded_count=0\n\n  wait_for_api_respond\n  while curl --noproxy \"*\" \"${auth_header[@]}\" -sk --request GET ${NODE_STATUS_ENDPOINT} >\"/tmp/status.json\"; do\n    session_id=\"$(jq -r \"${JQ_SESSION_ID_QUERY}\" \"/tmp/status.json\")\"\n    if [[ \"$session_id\" != \"null\" && \"$session_id\" != \"\" && \"$session_id\" != \"reserved\" && \"$recording_started\" = \"false\" ]]; then\n      echo \"$(date -u +\"${ts_format}\") [${process_name}] - Session: $session_id is created\"\n      session_capabilities=\"$(jq -r \"${JQ_SESSION_CAPABILITIES_QUERY}\" \"/tmp/status.json\")\"\n      return_list=($(python3 \"${VIDEO_CONFIG_DIRECTORY}/video_nodeQuery.py\" \"${session_id}\" \"${session_capabilities}\"))\n      caps_se_video_record=\"${return_list[0]}\"\n      video_file_name=\"${return_list[1]}.mp4\"\n      if [[ \"$caps_se_video_record\" = \"true\" ]]; then\n        echo \"$(date -u +\"${ts_format}\") [${process_name}] - Start recording: $caps_se_video_record, video file name: $video_file_name\"\n        log_node_response\n        video_file=\"${VIDEO_FOLDER}/$video_file_name\"\n        echo \"$(date -u +\"${ts_format}\") [${process_name}] - Starting to record video\"\n        ffmpeg -hide_banner -loglevel warning -threads ${SE_FFMPEG_THREADS:-1} -thread_queue_size 512 \\\n          -probesize 32M -analyzeduration 0 -y -f x11grab -video_size ${VIDEO_SIZE} -r ${FRAME_RATE} \\\n          -i ${DISPLAY} ${SE_AUDIO_SOURCE} -codec:v ${CODEC} ${PRESET:-\"-preset veryfast\"} \\\n          -tune zerolatency -crf ${SE_VIDEO_CRF:-28} -maxrate ${SE_VIDEO_MAXRATE:-1000k} -bufsize ${SE_VIDEO_BUFSIZE:-2000k} \\\n          -pix_fmt yuv420p -movflags +faststart \"$video_file\" &\n        FFMPEG_PID=$!\n        if ps -p $FFMPEG_PID >/dev/null; then\n          recording_started=\"true\"\n          prev_session_id=$session_id\n        fi\n        echo \"$(date -u +\"${ts_format}\") [${process_name}] - Video recording started\"\n        sleep ${poll_interval}\n      fi\n    elif [[ \"$session_id\" != \"$prev_session_id\" && \"$recording_started\" = \"true\" ]]; then\n      stop_recording\n      if [[ $max_recorded_count -gt 0 ]] && [[ $recorded_count -ge $max_recorded_count ]]; then\n        echo \"$(date -u +\"${ts_format}\") [${process_name}] - Node will be drained since max sessions reached count number ($max_recorded_count)\"\n        exit\n      fi\n    elif [[ $recording_started = \"true\" ]]; then\n      echo \"$(date -u +\"${ts_format}\") [${process_name}] - Video recording in progress\"\n      sleep ${poll_interval}\n    else\n      sleep ${poll_interval}\n    fi\n  done\n  stop_if_recording_inprogress\n  echo \"$(date -u +\"${ts_format}\") [${process_name}] - Node API is not responding now, exiting...\"\n  echo \"$(date -u +\"${ts_format}\") [${process_name}] - Noted: Set container restart policy to spin up process again for recording another session might come up\"\nfi\n"
  },
  {
    "path": "Video/video_graphQLQuery.py",
    "content": "#!/usr/bin/env python3\n\nfrom __future__ import annotations\n\nimport base64\nimport json\nimport os\nimport string\nimport subprocess\nimport sys\nimport time\nimport urllib.error\nimport urllib.request\nfrom typing import Tuple\n\nfrom video_gridUrl import get_grid_url\n\nMAX_TIME_SECONDS = 1\nRETRY_TIME = 3\n\n\ndef get_graphql_endpoint() -> str:\n    \"\"\"Derive the GraphQL endpoint from env or helper script.\n\n    If SE_NODE_GRID_GRAPHQL_URL is set, use it. Otherwise run /opt/bin/video_gridUrl.py\n    (same as the bash script). Append '/graphql' if missing and non-empty.\n    \"\"\"\n    endpoint = os.getenv(\"SE_NODE_GRID_GRAPHQL_URL\")\n    if not endpoint:\n        endpoint = get_grid_url()\n    if endpoint and not endpoint.endswith(\"/graphql\"):\n        endpoint = f\"{endpoint}/graphql\"\n    return endpoint\n\n\ndef build_basic_auth_header() -> str | None:\n    username = os.getenv(\"SE_ROUTER_USERNAME\")\n    password = os.getenv(\"SE_ROUTER_PASSWORD\")\n    if username and password:\n        token = base64.b64encode(f\"{username}:{password}\".encode()).decode()\n        return f\"Authorization: Basic {token}\"\n    return None\n\n\ndef poll_session(endpoint: str, session_id: str, poll_interval: float) -> dict | None:\n    \"\"\"Poll the GraphQL endpoint for the session.\n\n    Returns full parsed response dict if any request succeeded (HTTP 200) else None.\n    Saves last successful body to /tmp/graphQL_<session_id>.json (for parity).\n    \"\"\"\n    if not endpoint:\n        return None\n\n    query_obj = {\n        \"query\": (\n            f\"{{ session (id: \\\"{session_id}\\\") {{ id, capabilities, startTime, uri, nodeId, nodeUri, \"\n            \"sessionDurationMillis, slot { id, stereotype, lastStarted } }} }} \"\n        )\n    }\n    headers = {\n        \"Content-Type\": \"application/json\",\n    }\n    basic_auth_header = build_basic_auth_header()\n    if basic_auth_header:\n        # urllib expects header name:value separately; we split at first space after name for compatibility.\n        # Our header already includes 'Authorization: Basic <token>' so we parse.\n        name, value = basic_auth_header.split(\": \", 1)\n        headers[name] = value\n\n    response_data: dict | None = None\n\n    current_check = 1\n    while True:\n        data_bytes = json.dumps(query_obj).encode(\"utf-8\")\n        req = urllib.request.Request(endpoint, data=data_bytes, headers=headers, method=\"POST\")\n        status_code = None\n        body_text = \"\"\n        try:\n            with urllib.request.urlopen(req, timeout=MAX_TIME_SECONDS) as resp:\n                status_code = resp.getcode()\n                body_text = resp.read().decode(\"utf-8\", errors=\"replace\")\n        except urllib.error.HTTPError as e:  # HTTPError is also a valid response with body\n            status_code = e.code\n            try:\n                body_text = e.read().decode(\"utf-8\", errors=\"replace\")\n            except Exception:\n                body_text = \"\"\n        except Exception:\n            # Any other networking issue; proceed to retry logic\n            status_code = None\n\n        if status_code == 200:\n            try:\n                response_data = json.loads(body_text)\n                # Break early if capabilities has se:vncEnabled key\n                caps_str = response_data.get(\"data\", {}).get(\"session\", {}).get(\"capabilities\")\n                if isinstance(caps_str, str):\n                    try:\n                        caps_json = json.loads(caps_str)\n                        if \"se:vncEnabled\" in caps_json:\n                            # Save the body to file for parity then break\n                            _persist_body(session_id, body_text)\n                            break\n                    except Exception:\n                        pass\n                # Save after each successful 200 (even if not early break) to emulate bash behavior\n                _persist_body(session_id, body_text)\n            except Exception:\n                # Ignore parse errors; continue polling\n                pass\n\n        current_check += 1\n        if current_check == RETRY_TIME:  # Same off-by-one semantics as bash script\n            break\n        time.sleep(poll_interval)\n\n    return response_data\n\n\ndef _persist_body(session_id: str, body_text: str) -> None:\n    try:\n        path = f\"/tmp/graphQL_{session_id}.json\"\n        with open(path, \"w\", encoding=\"utf-8\") as f:\n            f.write(body_text)\n    except Exception:\n        pass  # Non-fatal\n\n\ndef extract_capabilities(\n    session_id: str, video_cap_name: str, test_name_cap: str, video_name_cap: str\n) -> Tuple[str | None, str | None, str | None]:\n    \"\"\"Read persisted JSON file and extract capability values.\n\n    Returns (record_video_raw, test_name_raw, video_name_raw) which may be None or 'null'.\n    \"\"\"\n    path = f\"/tmp/graphQL_{session_id}.json\"\n    if not os.path.exists(path):\n        return None, None, None\n    try:\n        with open(path, \"r\", encoding=\"utf-8\") as f:\n            data = json.load(f)\n        caps_str = data.get(\"data\", {}).get(\"session\", {}).get(\"capabilities\")\n        if not isinstance(caps_str, str):\n            return None, None, None\n        caps = json.loads(caps_str)\n        record_video = caps.get(video_cap_name)\n        test_name = caps.get(test_name_cap)\n        video_name = caps.get(video_name_cap)\n        return record_video, test_name, video_name\n    except Exception:\n        return None, None, None\n\n\ndef normalize_filename(raw_name: str, session_id: str, suffix_enabled: bool, trim_pattern: str) -> str:\n    \"\"\"Normalize the video file name.\n\n    Steps:\n      - Replace spaces with underscores.\n      - Keep only allowed characters defined by trim_pattern (default [:alnum:]-_).\n      - Truncate to max length 251.\n      - If raw_name empty, return session_id.\n      - If suffix_enabled and raw_name non-empty, append _<session_id>.\n    \"\"\"\n    name = (raw_name or \"\").strip()\n    if not name:\n        name = session_id\n        suffix_applied = False\n    else:\n        suffix_applied = suffix_enabled\n\n    if suffix_applied:\n        name = f\"{name}_{session_id}\"\n\n    # Replace spaces\n    name = name.replace(\" \", \"_\")\n\n    allowed_chars = derive_allowed_chars(trim_pattern)\n    filtered = \"\".join(ch for ch in name if ch in allowed_chars)\n    return filtered[:251]\n\n\ndef derive_allowed_chars(pattern: str) -> set[str]:\n    \"\"\"Translate the tr -dc style pattern (very minimally) into a set of allowed characters.\n\n    Only special token recognized: [:alnum:]\n    Other characters are taken literally except [] which are ignored.\n    \"\"\"\n    if pattern == \":alnum:\" or pattern == \"[:alnum:]\":  # convenience\n        return set(string.ascii_letters + string.digits)\n    allowed: set[str] = set()\n    i = 0\n    while i < len(pattern):\n        if pattern.startswith(\"[:alnum:]\", i):\n            allowed.update(string.ascii_letters + string.digits)\n            i += len(\"[:alnum:]\")\n            continue\n        c = pattern[i]\n        if c not in \"[]\":\n            allowed.add(c)\n        i += 1\n    # Fallback: if somehow empty, default safe set\n    return allowed or set(string.ascii_letters + string.digits + \"-_\")\n\n\ndef main(argv: list[str]) -> int:\n    if len(argv) < 2:\n        print(\"Usage: video_graphQLQuery.py <SESSION_ID>\", file=sys.stderr)\n        return 2\n    session_id = argv[1]\n\n    graphql_endpoint = get_graphql_endpoint()\n\n    # Capability names & settings (environment overrides)\n    video_cap_name = os.getenv(\"VIDEO_CAP_NAME\", \"se:recordVideo\")\n    test_name_cap = os.getenv(\"TEST_NAME_CAP\", \"se:name\")\n    video_name_cap = os.getenv(\"VIDEO_NAME_CAP\", \"se:videoName\")\n    trim_pattern = os.getenv(\"SE_VIDEO_FILE_NAME_TRIM_REGEX\", \"[:alnum:]-_\")\n    suffix_flag_raw = os.getenv(\"SE_VIDEO_FILE_NAME_SUFFIX\", \"true\")\n    poll_interval_raw = os.getenv(\"SE_VIDEO_POLL_INTERVAL\", \"1\")\n\n    try:\n        poll_interval = float(poll_interval_raw)\n    except ValueError:\n        poll_interval = 1.0\n\n    # Poll endpoint to populate /tmp file\n    poll_session(graphql_endpoint, session_id, poll_interval)\n\n    # Extract capabilities\n    record_video_raw, test_name_raw, video_name_raw = extract_capabilities(\n        session_id, video_cap_name, test_name_cap, video_name_cap\n    )\n\n    # Determine RECORD_VIDEO value\n    record_video = True\n    if isinstance(record_video_raw, str):\n        if record_video_raw.lower() == \"false\":\n            record_video = False\n    elif record_video_raw is False:\n        record_video = False\n\n    # Decide TEST_NAME referencing precedence (video_name first, then test_name)\n    chosen_name: str = \"\"\n    if video_name_raw not in (None, \"null\", \"\"):\n        chosen_name = str(video_name_raw)\n    elif test_name_raw not in (None, \"null\", \"\"):\n        chosen_name = str(test_name_raw)\n    # suffix logic: if chosen_name empty we will receive session id inside normalize_filename\n    suffix_enabled = suffix_flag_raw.lower() == \"true\"\n    normalized_name = normalize_filename(chosen_name, session_id, suffix_enabled, trim_pattern)\n\n    # Output matches bash: RECORD_VIDEO TEST_NAME GRAPHQL_ENDPOINT\n    print(f\"{str(record_video).lower()} {normalized_name} {graphql_endpoint}\".strip())\n    return 0\n\n\nif __name__ == \"__main__\":  # pragma: no cover\n    sys.exit(main(sys.argv))\n"
  },
  {
    "path": "Video/video_gridUrl.py",
    "content": "#!/usr/bin/env python3\nimport os\n\n\ndef get_grid_url():\n    max_time = 3\n    se_sub_path = os.getenv('SE_SUB_PATH', '')\n\n    # If SE_SUB_PATH is \"/\", set it to empty string\n    if se_sub_path == \"/\":\n        se_sub_path = \"\"\n\n    # Start with default grid URL\n    grid_url = os.getenv('SE_NODE_GRID_URL', '')\n\n    # Check for hub/router configuration\n    se_hub_host = os.getenv('SE_HUB_HOST') or os.getenv('SE_ROUTER_HOST')\n    se_hub_port = os.getenv('SE_HUB_PORT') or os.getenv('SE_ROUTER_PORT')\n\n    if se_hub_host and se_hub_port:\n        grid_url = f\"{os.getenv('SE_SERVER_PROTOCOL', 'http')}://{se_hub_host}:{se_hub_port}{se_sub_path}\"\n    # Check for standalone mode\n    elif os.getenv('DISPLAY_CONTAINER_NAME') and os.getenv('SE_VIDEO_RECORD_STANDALONE') == 'true':\n        display_container = os.getenv('DISPLAY_CONTAINER_NAME')\n        node_port = os.getenv('SE_NODE_PORT', '4444')\n        grid_url = f\"{os.getenv('SE_SERVER_PROTOCOL', 'http')}://{display_container}:{node_port}{se_sub_path}\"\n\n    # Remove trailing slash if present\n    grid_url = grid_url.rstrip('/')\n\n    return grid_url\n\n\nif __name__ == \"__main__\":\n    print(get_grid_url())\n"
  },
  {
    "path": "Video/video_nodeQuery.py",
    "content": "#!/usr/bin/env python3\n\nimport json\nimport os\nimport re\nimport sys\n\ndefault_trim_pattern = \"[^a-zA-Z0-9-_]\"\n\n\ndef main() -> None:\n    \"\"\"\n    Process video recording configuration based on session capabilities.\n\n    Args:\n        sys.argv[1]: SESSION_ID\n        sys.argv[2]: SESSION_CAPABILITIES (JSON string)\n\n    Outputs:\n        Space-separated values: RECORD_VIDEO TEST_NAME\n    \"\"\"\n    # Define parameters\n    session_id = sys.argv[1] if len(sys.argv) > 1 else \"\"\n    session_capabilities = sys.argv[2] if len(sys.argv) > 2 else \"\"\n\n    # Environment variables with defaults\n    video_cap_name = os.environ.get(\"VIDEO_CAP_NAME\", \"se:recordVideo\")\n    test_name_cap = os.environ.get(\"TEST_NAME_CAP\", \"se:name\")\n    video_name_cap = os.environ.get(\"VIDEO_NAME_CAP\", \"se:videoName\")\n    video_file_name_trim = os.environ.get(\"SE_VIDEO_FILE_NAME_TRIM_REGEX\", default_trim_pattern)\n    video_file_name_suffix = os.environ.get(\"SE_VIDEO_FILE_NAME_SUFFIX\", \"true\")\n\n    # Initialize variables\n    record_video = None\n    test_name = None\n    video_name = None\n\n    # Extract values from session capabilities if provided\n    if session_capabilities:\n        try:\n            capabilities = json.loads(session_capabilities)\n            record_video = capabilities.get(video_cap_name)\n            test_name = capabilities.get(test_name_cap)\n            video_name = capabilities.get(video_name_cap)\n        except (json.JSONDecodeError, AttributeError):\n            # If JSON parsing fails, continue with None values\n            pass\n\n    # Check if enabling to record video\n    if (isinstance(record_video, str) and record_video.lower() == \"false\") or record_video is False:\n        record_video = \"false\"\n    else:\n        record_video = \"true\"\n\n    # Check if video file name is set via capabilities\n    if video_name and video_name != \"null\":\n        test_name = video_name\n    elif test_name and test_name != \"null\":\n        test_name = test_name\n    else:\n        test_name = \"\"\n\n    # Check if append session ID to the video file name suffix\n    if not test_name:\n        test_name = session_id\n    elif video_file_name_suffix.lower() == \"true\":\n        test_name = f\"{test_name}_{session_id}\"\n\n    # Normalize the video file name\n    test_name = normalize_filename(test_name, video_file_name_trim)\n\n    # Output the values for other scripts consuming\n    print(f\"{record_video} {test_name}\")\n\n\ndef normalize_filename(filename: str, trim_pattern: str) -> str:\n    \"\"\"\n    Normalize the filename by replacing spaces with underscores,\n    keeping only allowed characters, and truncating to 251 characters.\n\n    Args:\n        filename: The original filename\n        trim_pattern: Pattern defining allowed characters\n\n    Returns:\n        Normalized filename\n    \"\"\"\n    if not filename:\n        return \"\"\n\n    # Replace spaces with underscores\n    normalized = filename.replace(\" \", \"_\")\n\n    try:\n        pattern = re.compile(trim_pattern)\n    except re.error:\n        pattern = re.compile(default_trim_pattern)\n\n    # Remove disallowed characters\n    normalized = re.sub(pattern, \"\", normalized)\n\n    # Truncate to 251 characters\n    return normalized[:251]\n\n\nif __name__ == \"__main__\":\n    main()\n"
  },
  {
    "path": "Video/video_ready.py",
    "content": "import json\nimport signal\nimport sys\nfrom http.server import BaseHTTPRequestHandler, HTTPServer\nfrom os import environ\n\nimport psutil\n\nvideo_ready_port = int(environ.get('VIDEO_READY_PORT', 9000))\n\n\nclass Handler(BaseHTTPRequestHandler):\n\n    def do_GET(self):\n        if (\n            environ.get('SE_VIDEO_UPLOAD_ENABLED', 'false').lower() != 'true'\n            and environ.get('SE_VIDEO_FILE_NAME', 'video.mp4').lower() != 'auto'\n        ):\n            video_ready = \"ffmpeg\" in (p.name().lower() for p in psutil.process_iter())\n        else:\n            video_ready = True\n        response_code = 200 if video_ready else 404\n        response_text = \"ready\" if video_ready else \"not ready\"\n        self.send_response(response_code)\n        self.end_headers()\n        self.wfile.write(json.dumps({'status': response_text}).encode('utf-8'))\n\n\ndef graceful_shutdown(signum, frame):\n    print(\"Trapped SIGTERM/SIGINT/x so shutting down video-ready...\")\n    httpd.shutdown()\n    sys.exit(0)\n\n\nsignal.signal(signal.SIGINT, graceful_shutdown)\nsignal.signal(signal.SIGTERM, graceful_shutdown)\n\nhttpd = HTTPServer(('0.0.0.0', video_ready_port), Handler)\nhttpd.serve_forever()\n"
  },
  {
    "path": "Video/video_recorder.py",
    "content": "#!/usr/bin/env python3\n\"\"\"\nVideo service entry point that switches between:\n1. Unified event-driven service (SE_VIDEO_EVENT_DRIVEN=true)\n2. Traditional shell-based polling (SE_VIDEO_EVENT_DRIVEN=false or unset)\n\nWhen event-driven mode is enabled, this launches a single unified service\nthat handles both recording and uploading with shared state management.\n\"\"\"\n\nimport os\nimport subprocess\nimport sys\n\n\ndef main():\n    event_driven = os.environ.get(\"SE_VIDEO_EVENT_DRIVEN\", \"false\").lower() == \"true\"\n\n    if event_driven:\n        print(\"Starting unified event-driven video service...\")\n        print(\"This service handles both recording and uploading with shared state.\")\n        try:\n            import asyncio\n\n            from video_service import main as service_main\n\n            asyncio.run(service_main())\n        except ImportError as e:\n            print(f\"Failed to import video service: {e}\")\n            print(\"Ensure pyzmq is installed: pip install pyzmq\")\n            print(\"Falling back to shell-based recording...\")\n            subprocess.run([\"/opt/bin/video.sh\"], check=True)\n    else:\n        print(\"Starting shell-based video recording...\")\n        subprocess.run([\"/opt/bin/video.sh\"], check=True)\n\n\nif __name__ == \"__main__\":\n    main()\n"
  },
  {
    "path": "Video/video_service.py",
    "content": "#!/usr/bin/env python3\n\"\"\"\nUnified event-driven video recording and upload service for Selenium Grid.\n\nThis service combines video recording and uploading into a single process with:\n- Shared session state management\n- Internal async queue for upload tasks\n- Direct communication between recorder and uploader\n- No tmp files or named pipes needed for internal coordination\n\nSubscribes to the Grid's ZeroMQ event bus and handles:\n- SessionCreatedEvent: Start video recording\n- SessionClosedEvent: Stop recording, queue upload\n- SessionEvent: Track custom events (e.g., test:failed)\n\n    Environment Variables:\n    SE_EVENT_BUS_HOST: Event bus hostname (default: localhost)\n    SE_EVENT_BUS_PUBLISH_PORT: Port to subscribe for events (default: 4442)\n    SE_EVENT_BUS_CONNECT_TIMEOUT_MS: ZMQ connect timeout in ms (default: 5000)\n    SE_EVENT_BUS_RECONNECT_INTERVAL_MS: ZMQ reconnect interval in ms (default: 1000)\n    SE_EVENT_BUS_RECONNECT_INTERVAL_MAX_MS: ZMQ max reconnect interval in ms (default: 5000)\n    SE_REGISTRATION_SECRET: Secret for event bus authentication\n    SE_NODE_PORT: Node port for /status endpoint (default: 5555)\n    SE_SERVER_PROTOCOL: Protocol for Node /status endpoint (default: http)\n    SE_ROUTER_USERNAME, SE_ROUTER_PASSWORD: Optional Basic Auth credentials for Grid endpoints\n    SE_UPLOAD_FAILURE_SESSION_ONLY: Only upload videos for failed sessions (default: false)\n    VIDEO_FOLDER: Directory to store video files\n    SE_VIDEO_FILE_NAME: Fixed video file name (\"auto\" keeps per-session naming)\n    SE_VIDEO_UPLOAD_ENABLED: Enable video upload (default: false)\n    SE_SCREEN_WIDTH, SE_SCREEN_HEIGHT: Screen dimensions\n    SE_FRAME_RATE: Video frame rate (default: 15)\n\"\"\"\n\nimport asyncio\nimport base64\nimport json\nimport logging\nimport os\nimport re\nimport signal\nimport ssl\nimport subprocess\nimport sys\nfrom contextlib import asynccontextmanager\nfrom dataclasses import dataclass, field\nfrom datetime import datetime\nfrom enum import Enum, auto\nfrom pathlib import Path\nfrom typing import Any, Dict, List, Optional\nfrom urllib.error import URLError\nfrom urllib.request import Request, urlopen\n\nimport zmq\nimport zmq.asyncio\n\n# Configure logging\nLOG_FORMAT = \"%(asctime)s [video.service] - %(message)s\"\nLOG_DATEFMT = os.environ.get(\"SE_LOG_TIMESTAMP_FORMAT\", \"%Y-%m-%d %H:%M:%S,%f\")[:-3]\nlogging.basicConfig(level=logging.INFO, format=LOG_FORMAT, datefmt=LOG_DATEFMT)\nlogger = logging.getLogger(__name__)\n\n\nclass SessionClosedReason(Enum):\n    \"\"\"Reasons why a session was closed.\"\"\"\n\n    QUIT_COMMAND = \"QUIT_COMMAND\"\n    TIMEOUT = \"TIMEOUT\"\n    NODE_REMOVED = \"NODE_REMOVED\"\n    NODE_RESTARTED = \"NODE_RESTARTED\"\n\n\nclass SessionStatus(Enum):\n    \"\"\"Session lifecycle status.\"\"\"\n\n    CREATED = auto()\n    RECORDING = auto()\n    STOPPING = auto()\n    CLOSED = auto()\n\n\n@dataclass\nclass UploadTask:\n    \"\"\"Represents a video upload task.\"\"\"\n\n    session_id: str\n    video_file: str\n    destination: str\n    should_upload: bool\n    reason: str  # Why upload decision was made\n\n\n@dataclass\nclass SessionState:\n    \"\"\"Complete state for a session.\"\"\"\n\n    session_id: str\n    status: SessionStatus = SessionStatus.CREATED\n    capabilities: Dict[str, Any] = field(default_factory=dict)\n    video_file: Optional[str] = None\n    ffmpeg_process: Optional[asyncio.subprocess.Process] = None\n    start_time: Optional[datetime] = None\n    end_time: Optional[datetime] = None\n    close_reason: Optional[SessionClosedReason] = None\n    record_video: bool = True\n    has_failure_event: bool = False\n    failure_events: List[str] = field(default_factory=list)\n    test_name: str = \"\"\n\n    @property\n    def is_failed(self) -> bool:\n        \"\"\"Check if session is considered failed.\"\"\"\n        if self.has_failure_event:\n            return True\n        if self.close_reason and self.close_reason != SessionClosedReason.QUIT_COMMAND:\n            return True\n        return False\n\n    @property\n    def duration_seconds(self) -> Optional[float]:\n        \"\"\"Get session duration in seconds.\"\"\"\n        if self.start_time and self.end_time:\n            return (self.end_time - self.start_time).total_seconds()\n        return None\n\n\nclass VideoService:\n    \"\"\"Unified video recording and upload service.\"\"\"\n\n    def __init__(self):\n        # Event bus configuration\n        self.event_bus_host = os.environ.get(\"SE_EVENT_BUS_HOST\", \"localhost\")\n        self.event_bus_port = os.environ.get(\"SE_EVENT_BUS_PUBLISH_PORT\", \"4442\")\n        self.event_bus_connect_timeout_ms = int(os.environ.get(\"SE_EVENT_BUS_CONNECT_TIMEOUT_MS\", \"5000\"))\n        self.event_bus_reconnect_interval_ms = int(os.environ.get(\"SE_EVENT_BUS_RECONNECT_INTERVAL_MS\", \"1000\"))\n        self.event_bus_reconnect_interval_max_ms = int(os.environ.get(\"SE_EVENT_BUS_RECONNECT_INTERVAL_MAX_MS\", \"5000\"))\n        self.registration_secret = os.environ.get(\"SE_REGISTRATION_SECRET\", \"\")\n        self.router_username = os.environ.get(\"SE_ROUTER_USERNAME\", \"\")\n        self.router_password = os.environ.get(\"SE_ROUTER_PASSWORD\", \"\")\n\n        # Video recording configuration\n        self.video_folder = os.environ.get(\"VIDEO_FOLDER\", \"/videos\")\n        self.screen_width = os.environ.get(\"SE_SCREEN_WIDTH\", \"1920\")\n        self.screen_height = os.environ.get(\"SE_SCREEN_HEIGHT\", \"1080\")\n        self.frame_rate = os.environ.get(\"SE_FRAME_RATE\", \"15\")\n        self.codec = os.environ.get(\"SE_CODEC\", \"libx264\")\n        self.preset = os.environ.get(\"SE_PRESET\", \"-preset ultrafast\")\n        self.crf = os.environ.get(\"SE_VIDEO_CRF\", \"28\")\n        self.maxrate = os.environ.get(\"SE_VIDEO_MAXRATE\", \"1000k\")\n        self.bufsize = os.environ.get(\"SE_VIDEO_BUFSIZE\", \"2000k\")\n        self.ffmpeg_threads = os.environ.get(\"SE_FFMPEG_THREADS\", \"1\")\n        self.display_num = os.environ.get(\"DISPLAY_NUM\", \"99\")\n        self.display_container = os.environ.get(\"DISPLAY_CONTAINER_NAME\", \"selenium\")\n        self.record_audio = os.environ.get(\"SE_RECORD_AUDIO\", \"false\").lower() == \"true\"\n        self.audio_source = os.environ.get(\"SE_AUDIO_SOURCE\", \"\")\n\n        # Upload configuration\n        self.upload_enabled = os.environ.get(\"SE_VIDEO_UPLOAD_ENABLED\", \"false\").lower() == \"true\"\n        self.upload_destination = os.environ.get(\"SE_UPLOAD_DESTINATION_PREFIX\", \"\")\n        self.rclone_config = os.environ.get(\n            \"SE_RCLONE_CONFIG\", os.environ.get(\"RCLONE_CONFIG\", \"/opt/selenium/upload.conf\")\n        )\n        self.upload_command = os.environ.get(\"SE_UPLOAD_COMMAND\", \"copy\")\n        self.upload_opts = os.environ.get(\"SE_UPLOAD_OPTS\", \"-P --cutoff-mode SOFT --metadata --inplace\")\n        self.retain_local = os.environ.get(\"SE_UPLOAD_RETAIN_LOCAL_FILE\", \"false\").lower() == \"true\"\n        self.upload_batch_size = int(os.environ.get(\"SE_VIDEO_UPLOAD_BATCH_CHECK\", \"10\"))\n        self.upload_failure_only = os.environ.get(\"SE_UPLOAD_FAILURE_SESSION_ONLY\", \"false\").lower() == \"true\"\n        default_failure_events = [\":failure\", \":failed\"]\n        custom_failure_events = os.environ.get(\"SE_UPLOAD_FAILURE_SESSION_EVENTS\", \"\").lower()\n        custom_failure_events_list = []\n        if custom_failure_events:\n            custom_failure_events_list = [event.strip() for event in custom_failure_events.split(\",\") if event.strip()]\n        self.upload_failure_events = list(dict.fromkeys(default_failure_events + custom_failure_events_list))\n\n        # Capability names\n        self.video_cap_name = os.environ.get(\"VIDEO_CAP_NAME\", \"se:recordVideo\")\n        self.test_name_cap = os.environ.get(\"TEST_NAME_CAP\", \"se:name\")\n        self.video_name_cap = os.environ.get(\"VIDEO_NAME_CAP\", \"se:videoName\")\n        self.file_name_trim_regex = os.environ.get(\"SE_VIDEO_FILE_NAME_TRIM_REGEX\", \"[^a-zA-Z0-9-_]\")\n        self.file_name_suffix = os.environ.get(\"SE_VIDEO_FILE_NAME_SUFFIX\", \"true\").lower() == \"true\"\n        configured_video_file_name = os.environ.get(\"FILE_NAME\", os.environ.get(\"SE_VIDEO_FILE_NAME\", \"auto\")).strip()\n        self.configured_video_file_name = configured_video_file_name if configured_video_file_name else \"auto\"\n\n        # Standalone mode: single node, no need to filter events by NodeId\n        self.record_standalone = os.environ.get(\"SE_VIDEO_RECORD_STANDALONE\", \"false\").lower() == \"true\"\n\n        # Node identity for filtering events in distributed (Hub-Nodes) setup.\n        # In distributed mode, ZeroMQ broadcasts ALL session events to ALL subscribers.\n        # Each Node's recorder must filter to only process events for its own Node.\n        # Node ID is resolved from the Node /status endpoint on startup.\n        # In standalone mode, NodeId filtering is skipped since there is only one node.\n        self.node_id: Optional[str] = None\n        self.node_external_uri: Optional[str] = None\n\n        # Node /status endpoint configuration\n        self.se_server_protocol = os.environ.get(\"SE_SERVER_PROTOCOL\", \"http\")\n        default_node_port = \"4444\" if self.record_standalone else \"5555\"\n        self.se_node_port = os.environ.get(\"SE_NODE_PORT\", default_node_port)\n        self.node_status_verify_ssl = False\n        self.node_poll_interval = int(os.environ.get(\"SE_VIDEO_POLL_INTERVAL\", \"2\"))\n\n        # Drain configuration\n        self.max_sessions = int(os.environ.get(\"SE_DRAIN_AFTER_SESSION_COUNT\", \"0\"))\n        self.recorded_count = 0\n\n        # Force move command if not retaining local files\n        if not self.retain_local:\n            self.upload_command = \"move\"\n\n        # Session state management - single source of truth\n        self.sessions: Dict[str, SessionState] = {}\n        self.sessions_lock = asyncio.Lock()\n\n        # Upload queue - internal communication between recorder and uploader\n        self.upload_queue: asyncio.Queue[UploadTask] = asyncio.Queue()\n\n        # Active upload processes\n        self.active_uploads: List[asyncio.subprocess.Process] = []\n\n        # ZMQ resources\n        self.context: Optional[zmq.asyncio.Context] = None\n        self.subscriber: Optional[zmq.asyncio.Socket] = None\n\n        # Shutdown coordination\n        self.shutdown_event = asyncio.Event()\n        self.recorder_done = asyncio.Event()\n        self.uploader_done = asyncio.Event()\n\n        # Rename SE_RCLONE_* env vars\n        self._rename_rclone_env()\n\n    def _rename_rclone_env(self):\n        \"\"\"Rename SE_RCLONE_* environment variables to RCLONE_*.\"\"\"\n        for var in list(os.environ.keys()):\n            if var.startswith(\"SE_RCLONE_\"):\n                suffix = var[len(\"SE_RCLONE_\") :]\n                new_var = f\"RCLONE_{suffix}\"\n                os.environ[new_var] = os.environ[var]\n\n    @property\n    def display(self) -> str:\n        return f\"{self.display_container}:{self.display_num}.0\"\n\n    @property\n    def video_size(self) -> str:\n        return f\"{self.screen_width}x{self.screen_height}\"\n\n    def normalize_filename(self, filename: str) -> str:\n        \"\"\"Normalize filename by removing disallowed characters.\"\"\"\n        if not filename:\n            return \"\"\n        normalized = filename.replace(\" \", \"_\")\n        try:\n            pattern = re.compile(self.file_name_trim_regex)\n        except re.error:\n            pattern = re.compile(\"[^a-zA-Z0-9-_]\")\n        normalized = re.sub(pattern, \"\", normalized)\n        return normalized[:251]\n\n    def get_video_filename(self, session_id: str, capabilities: dict) -> tuple[bool, str]:\n        \"\"\"Determine video filename from session capabilities.\"\"\"\n        record_video = capabilities.get(self.video_cap_name, True)\n        if isinstance(record_video, str):\n            record_video = record_video.lower() != \"false\"\n\n        if self.configured_video_file_name.lower() != \"auto\":\n            fixed_name = self.configured_video_file_name\n            fixed_path = Path(self.video_folder) / fixed_name\n            if fixed_path.exists():\n                logger.warning(\n                    \"Configured video file %r already exists in %s and may be overwritten\",\n                    fixed_name,\n                    self.video_folder,\n                )\n            return record_video, fixed_name\n\n        video_name = capabilities.get(self.video_name_cap)\n        test_name = capabilities.get(self.test_name_cap)\n\n        if video_name and video_name != \"null\":\n            name = video_name\n        elif test_name and test_name != \"null\":\n            name = test_name\n        else:\n            name = \"\"\n\n        if not name:\n            name = session_id\n        elif self.file_name_suffix:\n            name = f\"{name}_{session_id}\"\n\n        name = self.normalize_filename(name)\n        return record_video, f\"{name}.mp4\"\n\n    def is_failure_event_type(self, event_type: str) -> bool:\n        \"\"\"Check if event type indicates a failure.\"\"\"\n        event_lower = event_type.lower()\n        return any(event in event_lower for event in self.upload_failure_events)\n\n    def is_own_node_event(self, data: dict) -> bool:\n        \"\"\"Check if an event belongs to this Node.\n\n        In distributed Hub-Nodes setup, the ZeroMQ event bus broadcasts all\n        session events to all subscribers. Each Node's recorder must filter\n        to only process events for sessions on its own Node.\n\n        Matching is done by comparing the event's nodeId against the Node ID\n        obtained from the Node /status endpoint on startup.\n\n        In standalone mode, all events belong to this Node, so filtering is skipped.\n        \"\"\"\n        if self.record_standalone:\n            return True\n\n        if self.node_id is None:\n            # Node ID not yet resolved, cannot filter\n            logger.warning(\"Node ID not resolved yet, skipping event\")\n            return False\n\n        event_node_id = data.get(\"nodeId\", \"\")\n        return event_node_id == self.node_id\n\n    async def wait_for_node_ready(self) -> None:\n        \"\"\"Wait for the Node /status endpoint to be reachable and resolve Node ID.\n\n        Polls the Node /status endpoint until it returns HTTP 200,\n        then extracts nodeId and externalUri from the response.\n\n        Response structure differs by mode:\n        - Standalone: $.value.nodes[0].id, $.value.nodes[0].externalUri\n        - Distributed: $.value.node.nodeId, $.value.node.externalUri\n        \"\"\"\n        node_status_url = f\"{self.se_server_protocol}://{self.display_container}:{self.se_node_port}/status\"\n        headers = {}\n        if self.registration_secret:\n            headers[\"X-REGISTRATION-SECRET\"] = self.registration_secret\n        if self.router_username and self.router_password:\n            auth_token = base64.b64encode(f\"{self.router_username}:{self.router_password}\".encode(\"utf-8\")).decode(\n                \"utf-8\"\n            )\n            headers[\"Authorization\"] = f\"Basic {auth_token}\"\n            logger.info(\"Using Basic Auth for Node /status endpoint\")\n        elif self.router_username or self.router_password:\n            logger.warning(\"Partial SE_ROUTER credentials provided; skipping Basic Auth for Node /status endpoint\")\n\n        ssl_context = None\n        if self.se_server_protocol.lower() == \"https\" and not self.node_status_verify_ssl:\n            ssl_context = ssl._create_unverified_context()\n\n        logger.info(\n            f\"Waiting for Node /status endpoint: {node_status_url} \" f\"(verify_ssl={self.node_status_verify_ssl})\"\n        )\n\n        while not self.shutdown_event.is_set():\n            try:\n                req = Request(node_status_url, headers=headers)\n                if ssl_context is not None:\n                    resp_ctx = urlopen(req, timeout=5, context=ssl_context)\n                else:\n                    resp_ctx = urlopen(req, timeout=5)\n\n                with resp_ctx as resp:\n                    if resp.status == 200:\n                        body = json.loads(resp.read().decode(\"utf-8\"))\n\n                        if self.record_standalone:\n                            nodes = body.get(\"value\", {}).get(\"nodes\", [])\n                            if nodes:\n                                node_info = nodes[0]\n                                self.node_id = node_info.get(\"id\")\n                                self.node_external_uri = node_info.get(\"externalUri\")\n                        else:\n                            node_info = body.get(\"value\", {}).get(\"node\", {})\n                            self.node_id = node_info.get(\"nodeId\")\n                            self.node_external_uri = node_info.get(\"externalUri\")\n\n                        if self.node_id:\n                            logger.info(f\"Node is ready. ID: {self.node_id}, URI: {self.node_external_uri}\")\n                            return\n                        else:\n                            logger.warning(\"Node /status responded but nodeId is missing, retrying...\")\n            except (URLError, OSError, json.JSONDecodeError, ValueError) as e:\n                logger.debug(f\"Node not ready yet: {e}\")\n            except Exception as e:\n                logger.warning(f\"Unexpected error polling Node /status: {e}\")\n\n            await asyncio.sleep(self.node_poll_interval)\n\n    # ==================== Recording Functions ====================\n\n    async def start_recording(self, session: SessionState) -> bool:\n        \"\"\"Start ffmpeg recording for a session.\"\"\"\n        if session.ffmpeg_process is not None:\n            logger.warning(f\"Recording already in progress for session {session.session_id}\")\n            return False\n\n        video_path = f\"{self.video_folder}/{session.video_file}\"\n        session.start_time = datetime.now()\n        session.status = SessionStatus.RECORDING\n\n        cmd = [\n            \"ffmpeg\",\n            \"-hide_banner\",\n            \"-loglevel\",\n            \"warning\",\n            \"-threads\",\n            self.ffmpeg_threads,\n            \"-thread_queue_size\",\n            \"512\",\n            \"-probesize\",\n            \"32M\",\n            \"-analyzeduration\",\n            \"0\",\n            \"-y\",\n            \"-f\",\n            \"x11grab\",\n            \"-video_size\",\n            self.video_size,\n            \"-r\",\n            self.frame_rate,\n            \"-i\",\n            self.display,\n        ]\n\n        if self.record_audio and self.audio_source:\n            cmd.extend(self.audio_source.split())\n\n        cmd.extend(\n            [\n                \"-codec:v\",\n                self.codec,\n                *self.preset.split(),\n                \"-tune\",\n                \"zerolatency\",\n                \"-crf\",\n                self.crf,\n                \"-maxrate\",\n                self.maxrate,\n                \"-bufsize\",\n                self.bufsize,\n                \"-pix_fmt\",\n                \"yuv420p\",\n                \"-movflags\",\n                \"+faststart\",\n                video_path,\n            ]\n        )\n\n        try:\n            env = os.environ.copy()\n            env[\"DISPLAY\"] = self.display\n            session.ffmpeg_process = await asyncio.create_subprocess_exec(\n                *cmd,\n                env=env,\n                stdout=asyncio.subprocess.PIPE,\n                stderr=asyncio.subprocess.PIPE,\n            )\n            logger.info(f\"Started recording: session={session.session_id}, file={session.video_file}\")\n            return True\n        except Exception as e:\n            logger.error(f\"Failed to start recording for {session.session_id}: {e}\")\n            session.status = SessionStatus.CREATED\n            return False\n\n    async def stop_recording(self, session: SessionState) -> bool:\n        \"\"\"Stop ffmpeg recording for a session.\"\"\"\n        if session.ffmpeg_process is None:\n            logger.warning(f\"No recording in progress for session {session.session_id}\")\n            return False\n\n        session.status = SessionStatus.STOPPING\n        session.end_time = datetime.now()\n\n        try:\n            session.ffmpeg_process.terminate()\n            try:\n                await asyncio.wait_for(session.ffmpeg_process.wait(), timeout=10.0)\n            except asyncio.TimeoutError:\n                logger.warning(f\"ffmpeg did not stop gracefully for {session.session_id}, killing\")\n                session.ffmpeg_process.kill()\n                await session.ffmpeg_process.wait()\n\n            session.ffmpeg_process = None\n            self.recorded_count += 1\n\n            duration = session.duration_seconds\n            logger.info(\n                f\"Stopped recording: session={session.session_id}, \" f\"duration={duration:.1f}s\"\n                if duration\n                else f\"Stopped recording: session={session.session_id}\"\n            )\n            return True\n        except Exception as e:\n            logger.error(f\"Failed to stop recording for {session.session_id}: {e}\")\n            return False\n\n    # ==================== Upload Functions ====================\n\n    async def queue_upload(self, session: SessionState) -> None:\n        \"\"\"Queue a video for upload based on configuration.\"\"\"\n        if not self.upload_enabled or not self.upload_destination:\n            return\n\n        video_path = f\"{self.video_folder}/{session.video_file}\"\n        if not Path(video_path).exists():\n            logger.warning(f\"Video file not found: {video_path}\")\n            return\n\n        # Determine if we should upload\n        should_upload = True\n        reason = \"normal upload\"\n\n        if self.upload_failure_only:\n            if session.is_failed:\n                should_upload = True\n                if session.has_failure_event:\n                    reason = f\"failure event: {', '.join(session.failure_events)}\"\n                else:\n                    reason = f\"abnormal close: {session.close_reason.value}\"\n            else:\n                should_upload = False\n                reason = \"session ended normally (SE_UPLOAD_FAILURE_SESSION_ONLY=true)\"\n\n        task = UploadTask(\n            session_id=session.session_id,\n            video_file=video_path,\n            destination=self.upload_destination,\n            should_upload=should_upload,\n            reason=reason,\n        )\n\n        await self.upload_queue.put(task)\n        logger.debug(f\"Queued upload task: {session.session_id}, should_upload={should_upload}\")\n\n    async def process_upload(self, task: UploadTask) -> None:\n        \"\"\"Process a single upload task.\"\"\"\n        if not task.should_upload:\n            logger.info(f\"Skipping upload: {task.video_file} - {task.reason}\")\n            return\n\n        logger.info(f\"Uploading: {task.video_file} -> {task.destination} ({task.reason})\")\n\n        cmd = [\n            \"rclone\",\n            \"--config\",\n            self.rclone_config,\n            self.upload_command,\n            *self.upload_opts.split(),\n            task.video_file,\n            task.destination,\n        ]\n\n        try:\n            proc = await asyncio.create_subprocess_exec(\n                *cmd,\n                stdout=asyncio.subprocess.PIPE,\n                stderr=asyncio.subprocess.PIPE,\n            )\n            self.active_uploads.append(proc)\n\n            stdout, stderr = await proc.communicate()\n\n            self.active_uploads.remove(proc)\n\n            if proc.returncode == 0:\n                logger.info(f\"Upload complete: {task.video_file}\")\n            else:\n                logger.error(f\"Upload failed: {task.video_file}, stderr={stderr.decode()}\")\n\n        except Exception as e:\n            logger.error(f\"Upload error: {task.video_file}, error={e}\")\n\n    async def upload_worker(self) -> None:\n        \"\"\"Background worker that processes upload queue.\"\"\"\n        logger.info(\"Upload worker started\")\n        active_tasks: List[asyncio.Task] = []\n\n        try:\n            while not self.shutdown_event.is_set() or not self.upload_queue.empty():\n                try:\n                    # Get task with timeout to check shutdown\n                    try:\n                        task = await asyncio.wait_for(self.upload_queue.get(), timeout=1.0)\n                    except asyncio.TimeoutError:\n                        continue\n\n                    # Process upload (could run multiple in parallel up to batch_size)\n                    upload_task = asyncio.create_task(self.process_upload(task))\n                    active_tasks.append(upload_task)\n\n                    # Clean up completed tasks\n                    active_tasks = [t for t in active_tasks if not t.done()]\n\n                    # Wait if we've hit batch limit\n                    if len(active_tasks) >= self.upload_batch_size:\n                        done, pending = await asyncio.wait(active_tasks, return_when=asyncio.FIRST_COMPLETED)\n                        active_tasks = list(pending)\n\n                except Exception as e:\n                    logger.error(f\"Upload worker error: {e}\")\n\n            # Wait for remaining uploads\n            if active_tasks:\n                logger.info(f\"Waiting for {len(active_tasks)} pending uploads...\")\n                await asyncio.gather(*active_tasks, return_exceptions=True)\n\n        finally:\n            self.uploader_done.set()\n            logger.info(\"Upload worker stopped\")\n\n    # ==================== Event Handlers ====================\n\n    async def handle_session_created(self, data: dict) -> None:\n        \"\"\"Handle session-created event.\"\"\"\n        session_id = data.get(\"sessionId\")\n        if not session_id:\n            logger.warning(\"Received session-created without sessionId\")\n            return\n\n        # Filter: only process sessions belonging to this Node\n        if not self.is_own_node_event(data):\n            event_node_id = data.get(\"nodeId\", \"unknown\")\n            return\n\n        capabilities = data.get(\"capabilities\", {})\n        record_video, video_filename = self.get_video_filename(session_id, capabilities)\n\n        async with self.sessions_lock:\n            session = SessionState(\n                session_id=session_id,\n                capabilities=capabilities,\n                video_file=video_filename,\n                record_video=record_video,\n                test_name=capabilities.get(self.test_name_cap, \"\"),\n            )\n            self.sessions[session_id] = session\n\n        logger.info(f\"Session created: {session_id}, record={record_video}, file={video_filename}\")\n\n        if record_video:\n            await self.start_recording(session)\n\n    async def handle_session_closed(self, data: dict) -> None:\n        \"\"\"Handle session-closed event.\"\"\"\n        session_id = data.get(\"sessionId\")\n        if not session_id:\n            logger.warning(\"Received session-closed without sessionId\")\n            return\n\n        # Filter: only process sessions belonging to this Node\n        if not self.is_own_node_event(data):\n            event_node_id = data.get(\"nodeId\", \"unknown\")\n            return\n\n        reason_str = data.get(\"reason\", \"QUIT_COMMAND\")\n        try:\n            reason = SessionClosedReason(reason_str)\n        except ValueError:\n            reason = SessionClosedReason.QUIT_COMMAND\n\n        async with self.sessions_lock:\n            session = self.sessions.get(session_id)\n            if session is None:\n                logger.warning(f\"Session-closed for unknown session: {session_id}\")\n                return\n\n            session.close_reason = reason\n            session.status = SessionStatus.CLOSED\n\n        logger.info(f\"Session closed: {session_id}, reason={reason.value}, is_failed={session.is_failed}\")\n\n        # Stop recording if in progress\n        if session.ffmpeg_process is not None:\n            await self.stop_recording(session)\n            # Small delay to ensure file is finalized\n            await asyncio.sleep(0.5)\n            # Queue upload\n            await self.queue_upload(session)\n\n        # Clean up session after a delay (keep for potential late events)\n        asyncio.create_task(self._cleanup_session_delayed(session_id, delay=60))\n\n        # Check drain condition\n        if self.max_sessions > 0 and self.recorded_count >= self.max_sessions:\n            logger.info(f\"Max sessions reached ({self.max_sessions}), initiating shutdown\")\n            self.shutdown_event.set()\n\n    async def handle_session_event(self, data: dict) -> None:\n        \"\"\"Handle custom session-event.\"\"\"\n        session_id = data.get(\"sessionId\")\n        event_type = data.get(\"eventType\", \"\")\n        payload = data.get(\"payload\", {})\n\n        if not session_id:\n            logger.warning(\"Received session-event without sessionId\")\n            return\n\n        # Filter: only process sessions belonging to this Node\n        if not self.is_own_node_event(data):\n            event_node_id = data.get(\"nodeId\", \"unknown\")\n            return\n\n        async with self.sessions_lock:\n            session = self.sessions.get(session_id)\n            if session is None:\n                # Create placeholder for late-arriving events\n                session = SessionState(session_id=session_id)\n                self.sessions[session_id] = session\n\n            if self.is_failure_event_type(event_type):\n                session.has_failure_event = True\n                session.failure_events.append(event_type)\n                logger.info(f\"Failure event: session={session_id}, type={event_type}\")\n            else:\n                logger.debug(f\"Session event: session={session_id}, type={event_type}\")\n\n    async def _cleanup_session_delayed(self, session_id: str, delay: float) -> None:\n        \"\"\"Remove session from tracking after delay.\"\"\"\n        await asyncio.sleep(delay)\n        async with self.sessions_lock:\n            if session_id in self.sessions:\n                session = self.sessions[session_id]\n                if session.status == SessionStatus.CLOSED:\n                    del self.sessions[session_id]\n                    logger.debug(f\"Cleaned up session: {session_id}\")\n\n    # ==================== Event Bus ====================\n\n    async def subscribe_events(self) -> None:\n        \"\"\"Subscribe to event bus and process events.\"\"\"\n        self.context = zmq.asyncio.Context()\n        self.subscriber = self.context.socket(zmq.SUB)\n        self.subscriber.setsockopt(zmq.LINGER, 0)\n\n        # Configure connection and reconnection timings for better startup resilience.\n        if hasattr(zmq, \"CONNECT_TIMEOUT\"):\n            self.subscriber.setsockopt(zmq.CONNECT_TIMEOUT, self.event_bus_connect_timeout_ms)\n        if hasattr(zmq, \"RECONNECT_IVL\"):\n            self.subscriber.setsockopt(zmq.RECONNECT_IVL, self.event_bus_reconnect_interval_ms)\n        if hasattr(zmq, \"RECONNECT_IVL_MAX\"):\n            self.subscriber.setsockopt(zmq.RECONNECT_IVL_MAX, self.event_bus_reconnect_interval_max_ms)\n\n        connection = f\"tcp://{self.event_bus_host}:{self.event_bus_port}\"\n        logger.info(\n            f\"Connecting to event bus: {connection} \"\n            f\"(connect_timeout_ms={self.event_bus_connect_timeout_ms}, \"\n            f\"reconnect_ivl_ms={self.event_bus_reconnect_interval_ms}, \"\n            f\"reconnect_ivl_max_ms={self.event_bus_reconnect_interval_max_ms})\"\n        )\n\n        while not self.shutdown_event.is_set():\n            try:\n                self.subscriber.connect(connection)\n                break\n            except zmq.ZMQError as e:\n                wait_seconds = max(0.1, self.event_bus_reconnect_interval_ms / 1000.0)\n                logger.warning(f\"Event bus connect failed: {e}; retrying in {wait_seconds:.1f}s\")\n                await asyncio.sleep(wait_seconds)\n\n        if self.shutdown_event.is_set():\n            return\n\n        # Subscribe to session events\n        for event in [\"session-created\", \"session-closed\", \"session-event\"]:\n            self.subscriber.setsockopt_string(zmq.SUBSCRIBE, event)\n\n        handlers = {\n            \"session-created\": self.handle_session_created,\n            \"session-closed\": self.handle_session_closed,\n            \"session-event\": self.handle_session_event,\n        }\n\n        logger.info(f\"Subscribed to events: {list(handlers.keys())}\")\n\n        try:\n            while not self.shutdown_event.is_set():\n                try:\n                    if await self.subscriber.poll(timeout=1000):\n                        frames = await self.subscriber.recv_multipart()\n\n                        if len(frames) < 4:\n                            continue\n\n                        event_name = frames[0].decode(\"utf-8\")\n                        secret = frames[1].decode(\"utf-8\")\n                        event_id = frames[2].decode(\"utf-8\")\n                        data_json = frames[3].decode(\"utf-8\")\n\n                        # Validate secret\n                        if self.registration_secret:\n                            try:\n                                received = json.loads(secret)\n                                if received != self.registration_secret:\n                                    continue\n                            except json.JSONDecodeError:\n                                continue\n\n                        # Parse and handle event\n                        try:\n                            data = json.loads(data_json)\n                            event_node_id = data.get(\"nodeId\", \"N/A\")\n                            if self.record_standalone or (self.node_id is not None and event_node_id == self.node_id):\n                                logger.info(\n                                    f\"Received event: {event_name}, \"\n                                    f\"nodeId={event_node_id}, self.node_id={self.node_id}\"\n                                )\n                            handler = handlers.get(event_name)\n                            if handler:\n                                await handler(data)\n                        except json.JSONDecodeError as e:\n                            logger.error(f\"Failed to parse event data: {e}\")\n\n                except zmq.ZMQError as e:\n                    if e.errno == zmq.ETERM:\n                        break\n                    logger.error(f\"ZMQ error: {e}\")\n                    await asyncio.sleep(1)\n\n        finally:\n            self.recorder_done.set()\n            if self.subscriber:\n                self.subscriber.close()\n            if self.context:\n                self.context.term()\n\n    # ==================== Lifecycle ====================\n\n    async def wait_for_display(self) -> None:\n        \"\"\"Wait for X11 display to be available.\"\"\"\n        env = os.environ.copy()\n        env[\"DISPLAY\"] = self.display\n        logger.info(f\"Waiting for display: {self.display}\")\n\n        while not self.shutdown_event.is_set():\n            try:\n                proc = await asyncio.create_subprocess_exec(\n                    \"xset\",\n                    \"b\",\n                    \"off\",\n                    env=env,\n                    stdout=asyncio.subprocess.DEVNULL,\n                    stderr=asyncio.subprocess.DEVNULL,\n                )\n                await proc.wait()\n                if proc.returncode == 0:\n                    logger.info(f\"Display ready: {self.display}\")\n                    return\n            except Exception:\n                pass\n            await asyncio.sleep(2)\n\n    async def cleanup(self) -> None:\n        \"\"\"Cleanup all resources.\"\"\"\n        logger.info(\"Shutting down...\")\n\n        # Stop all active recordings\n        async with self.sessions_lock:\n            for session in self.sessions.values():\n                if session.ffmpeg_process is not None:\n                    logger.info(f\"Stopping recording: {session.session_id}\")\n                    await self.stop_recording(session)\n                    await self.queue_upload(session)\n\n        # Signal upload worker to finish\n        self.shutdown_event.set()\n\n        # Wait for upload worker\n        try:\n            await asyncio.wait_for(self.uploader_done.wait(), timeout=30)\n        except asyncio.TimeoutError:\n            logger.warning(\"Upload worker did not finish in time\")\n\n        # Kill any remaining uploads\n        for proc in self.active_uploads:\n            try:\n                proc.kill()\n            except Exception:\n                pass\n\n        logger.info(\"Shutdown complete\")\n\n    async def run(self) -> None:\n        \"\"\"Main entry point.\"\"\"\n        logger.info(\"=\" * 60)\n        logger.info(\"Starting unified video recording and upload service\")\n        logger.info(\"=\" * 60)\n        logger.info(f\"Configuration:\")\n        logger.info(f\"  Standalone mode: {self.record_standalone}\")\n        logger.info(f\"  Event bus: {self.event_bus_host}:{self.event_bus_port}\")\n        logger.info(f\"  Video folder: {self.video_folder}\")\n        logger.info(f\"  Video file name: {self.configured_video_file_name}\")\n        logger.info(f\"  Video size: {self.video_size}\")\n        logger.info(f\"  Upload enabled: {self.upload_enabled}\")\n        logger.info(f\"  Upload destination: {self.upload_destination}\")\n        logger.info(f\"  Upload failure only: {self.upload_failure_only}\")\n        logger.info(f\"  Upload failure events: {self.upload_failure_events}\")\n        logger.info(f\"  Max sessions (drain): {self.max_sessions if self.max_sessions > 0 else 'unlimited'}\")\n\n        # Validate video folder\n        if not Path(self.video_folder).is_dir():\n            logger.error(f\"Video folder does not exist: {self.video_folder}\")\n            return\n\n        # Wait for display\n        await self.wait_for_display()\n\n        # Wait for Node /status endpoint and resolve Node ID\n        await self.wait_for_node_ready()\n        if self.node_id is None:\n            logger.error(\"Failed to resolve Node ID from /status endpoint, exiting\")\n            return\n\n        # Start workers\n        tasks = [\n            asyncio.create_task(self.subscribe_events(), name=\"event_subscriber\"),\n            asyncio.create_task(self.upload_worker(), name=\"upload_worker\"),\n        ]\n\n        try:\n            await asyncio.gather(*tasks)\n        except asyncio.CancelledError:\n            logger.info(\"Tasks cancelled\")\n        finally:\n            await self.cleanup()\n\n\nasync def main():\n    \"\"\"Main entry point.\"\"\"\n    service = VideoService()\n\n    loop = asyncio.get_event_loop()\n    for sig in (signal.SIGTERM, signal.SIGINT):\n        loop.add_signal_handler(sig, lambda: service.shutdown_event.set())\n\n    try:\n        await service.run()\n    except KeyboardInterrupt:\n        logger.info(\"Interrupted\")\n    except Exception as e:\n        logger.error(f\"Fatal error: {e}\", exc_info=True)\n        sys.exit(1)\n\n\nif __name__ == \"__main__\":\n    asyncio.run(main())\n"
  },
  {
    "path": "Video/video_uploader.py",
    "content": "#!/usr/bin/env python3\n\"\"\"\nVideo uploader entry point that switches between:\n1. No-op when SE_VIDEO_EVENT_DRIVEN=true (unified service handles uploads)\n2. Traditional shell-based upload (SE_VIDEO_EVENT_DRIVEN=false or unset)\n\nWhen event-driven mode is enabled, the unified video_service.py handles both\nrecording and uploading, so this process should not run or should exit immediately.\n\"\"\"\n\nimport os\nimport subprocess\nimport sys\nimport time\n\n\ndef main():\n    event_driven = os.environ.get(\"SE_VIDEO_EVENT_DRIVEN\", \"false\").lower() == \"true\"\n\n    if event_driven:\n        print(\"Event-driven mode enabled.\")\n        print(\"Upload is handled by the unified video_service.py - this process will idle.\")\n        print(\"To disable this, set SE_VIDEO_EVENT_DRIVEN=false\")\n\n        # Keep process alive but idle (supervisord expects it to run)\n        # The actual uploading is done by video_service.py\n        try:\n            while True:\n                time.sleep(60)\n        except KeyboardInterrupt:\n            print(\"Uploader process exiting...\")\n            sys.exit(0)\n    else:\n        print(\"Starting shell-based video upload...\")\n        subprocess.run([\"/opt/bin/upload.sh\"], check=True)\n\n\nif __name__ == \"__main__\":\n    main()\n"
  },
  {
    "path": "charts/selenium-grid/.helmignore",
    "content": "# Patterns to ignore when building packages.\n# This supports shell glob matching, relative path matching, and\n# negation (prefixed with !). Only one pattern per line.\n.DS_Store\n# Common VCS dirs\n.git/\n.gitignore\n.bzr/\n.bzrignore\n.hg/\n.hgignore\n.svn/\n# Common backup files\n*.swp\n*.bak\n*.tmp\n*.orig\n*~\n# Various IDEs\n.project\n.idea/\n*.tmproj\n.vscode/\nci/\ncerts/add-*-helper.sh\nCHANGELOG.md\nTESTING.md\n"
  },
  {
    "path": "charts/selenium-grid/CHANGELOG.md",
    "content": "## :heavy_check_mark: selenium-grid-0.52.0\n\n- Chart is using image tag 4.41.0-20260222\n- Chart is tested on Kubernetes versions: v1.29.15,v1.30.14,v1.31.14,v1.32.10,v1.33.6,v1.34.2\n- Chart is tested on container runtime Docker versions: 27.5.1,28.5.2,29.1.1\n- Chart is tested on Helm versions: v3.14.3,v3.15.4,v3.16.4,v3.17.4,v3.18.6,v3.19.2,v4.0.1\n- Chart is tested autoscaling capabilities with KEDA image tag: 2.19.0\n\n### Changed\n- [`aafc9ed8`](http://github.com/seleniumhq/docker-selenium/commit/aafc9ed8027613b8d0936a11bde501b84253afec) - [ci] Update tag 4.41.0-20260222 in docs and files :: Selenium CI Bot\n- [`f90d1eed`](http://github.com/seleniumhq/docker-selenium/commit/f90d1eed07bfb6409577035f7f06528d0272ce6c) - Unified configs for Dynamic Grid Docker and Kubernetes (#3088) :: Viet Nguyen Duc\n- [`ccd697ce`](http://github.com/seleniumhq/docker-selenium/commit/ccd697cef2b13904c628b5d968447df1e7c30ed4) - K8s: Add config to disable plain logs while enabling structured logs (#3087) :: Viet Nguyen Duc\n- [`56e0192c`](http://github.com/seleniumhq/docker-selenium/commit/56e0192cd54ba7658288ef20c40e1b07305ef315) - K8s: Missing tolerations for monitoring exporter deployment (#3086) :: Viet Nguyen Duc\n- [`f4132db9`](http://github.com/seleniumhq/docker-selenium/commit/f4132db97b170d89f3c93eb3523257dec6262c7a) - K8s: Replace Ingress NGINX with Traefik for default ingress controller (#3083) :: Viet Nguyen Duc\n- [`6ada994e`](http://github.com/seleniumhq/docker-selenium/commit/6ada994e6af1f46fae1e51324d827e3dd1bcb269) - [build] Update Selenium Grid 4.41.0 (#3080) :: Selenium CI Bot\n- [`61765ef7`](http://github.com/seleniumhq/docker-selenium/commit/61765ef7f9607b242b2aa5d3857c6061d577a726) - Update Helm release kube-prometheus-stack to v82 (#3073) :: renovate[bot]\n- [`5f8bbcbe`](http://github.com/seleniumhq/docker-selenium/commit/5f8bbcbebcd909e1091eee70f5f36aef706ad8cc) - Update Helm release redis to v25 (#3074) :: renovate[bot]\n- [`e2b6ea20`](http://github.com/seleniumhq/docker-selenium/commit/e2b6ea20c9b0f76c020086ca69b4927673076b99) - [ci] Update chart 0.51.1 changelog :: Selenium CI Bot\n\n## :heavy_check_mark: selenium-grid-0.51.1\n\n- Chart is using image tag 4.40.0-20260202\n- Chart is tested on Kubernetes versions: v1.29.15,v1.30.14,v1.31.14,v1.32.10,v1.33.6,v1.34.2\n- Chart is tested on container runtime Docker versions: 27.5.1,28.5.2,29.1.1\n- Chart is tested on Helm versions: v3.14.3,v3.15.4,v3.16.4,v3.17.4,v3.18.6,v3.19.2,v4.0.1\n- Chart is tested autoscaling capabilities with KEDA image tag: 2.19.0\n\n### Changed\n- [`17f771ef`](http://github.com/seleniumhq/docker-selenium/commit/17f771efeafbd61fb4f743054c32e18fdbb5036a) - [ci] Update tag 4.40.0-20260202 in docs and files :: Selenium CI Bot\n- [`a3b675bb`](http://github.com/seleniumhq/docker-selenium/commit/a3b675bbc38630e84fa01bd00fcdc7cedc823a01) - K8s: Update KEDA 2.19.0 in chart (#3068) :: Viet Nguyen Duc\n- [`1d9672ec`](http://github.com/seleniumhq/docker-selenium/commit/1d9672ecf5a219ebadaf4ee31b78bd70977ea0f5) - [ci] Update chart 0.51.0 changelog :: Selenium CI Bot\n\n## :heavy_check_mark: selenium-grid-0.51.0\n\n- Chart is using image tag 4.40.0-20260120\n- Chart is tested on Kubernetes versions: v1.29.15,v1.30.14,v1.31.14,v1.32.10,v1.33.6,v1.34.2\n- Chart is tested on container runtime Docker versions: 27.5.1,28.5.2,29.1.1\n- Chart is tested on Helm versions: v3.14.3,v3.15.4,v3.16.4,v3.17.4,v3.18.6,v3.19.2,v4.0.1\n- Chart is tested autoscaling capabilities with KEDA image tag: 2.18.0\n\n### Changed\n- [`1b610420`](http://github.com/seleniumhq/docker-selenium/commit/1b61042084559c4c47e3c7c74df46cd52d2ab1db) - [ci] Update tag 4.40.0-20260120 in docs and files :: Selenium CI Bot\n- [`a6ca3ce4`](http://github.com/seleniumhq/docker-selenium/commit/a6ca3ce48f5d9151d419cfa2049425d82efc6ee8) - Update Helm release kube-prometheus-stack to v81 (#3060) :: renovate[bot]\n- [`8c14caa8`](http://github.com/seleniumhq/docker-selenium/commit/8c14caa8f2b576a90d0cdb63c06b89a0691e4473) - [ci] Update chart 0.50.1 changelog :: Selenium CI Bot\n\n## :heavy_check_mark: selenium-grid-0.50.1\n\n- Chart is using image tag 4.39.0-20251212\n- Chart is tested on Kubernetes versions: v1.29.15,v1.30.14,v1.31.14,v1.32.10,v1.33.6,v1.34.2\n- Chart is tested on container runtime Docker versions: 27.5.1,28.5.2,29.1.1\n- Chart is tested on Helm versions: v3.14.3,v3.15.4,v3.16.4,v3.17.4,v3.18.6,v3.19.2,v4.0.1\n- Chart is tested autoscaling capabilities with KEDA image tag: 2.18.0\n\n### Changed\n- [`1dec484b`](http://github.com/seleniumhq/docker-selenium/commit/1dec484b38362887922dba43a0718a85340e17ef) - [ci] Update tag 4.39.0-20251212 in docs and files :: Selenium CI Bot\n- [`0dc3dc13`](http://github.com/seleniumhq/docker-selenium/commit/0dc3dc13643d8eb93d61f300e97b724c23741ecf) - K8s: Template handle scaledJobOptions with value is zero (#3054) :: Viet Nguyen Duc\n- [`e9cd214a`](http://github.com/seleniumhq/docker-selenium/commit/e9cd214a86fb1f244770c4f17b4001e0657743b6) - K8s: Add transitionary support for FB_BASEURL to FB_BASE_URL (#3053) :: Viet Nguyen Duc\n- [`067388e9`](http://github.com/seleniumhq/docker-selenium/commit/067388e90b1e71b8c9c88da1d9a9962b86f89215) - [ci] Update chart 0.50.0 changelog :: Selenium CI Bot\n\n## :heavy_check_mark: selenium-grid-0.50.0\n\n- Chart is using image tag 4.39.0-20251202\n- Chart is tested on Kubernetes versions: v1.29.15,v1.30.14,v1.31.14,v1.32.10,v1.33.6,v1.34.2\n- Chart is tested on container runtime Docker versions: 27.5.1,28.5.2,29.1.1\n- Chart is tested on Helm versions: v3.14.3,v3.15.4,v3.16.4,v3.17.4,v3.18.6,v3.19.2,v4.0.1\n- Chart is tested autoscaling capabilities with KEDA image tag: 2.18.0\n\n### Changed\n- [`e52d3355`](http://github.com/seleniumhq/docker-selenium/commit/e52d33555d858a279fe820310cca27cceab80de3) - [ci] Update tag 4.39.0-20251202 in docs and files :: Selenium CI Bot\n- [`98a4923b`](http://github.com/seleniumhq/docker-selenium/commit/98a4923baad389c0e67b116605950c2a3e85f7f5) - [build] Update dependencies version (#3040) :: Viet Nguyen Duc\n- [`85b06699`](http://github.com/seleniumhq/docker-selenium/commit/85b06699365b4776717f2e23f9c0e8229be4fd3c) - Update Helm release kube-prometheus-stack to v80 (#3037) :: renovate[bot]\n- [`c4940518`](http://github.com/seleniumhq/docker-selenium/commit/c49405182c152b351c41283d78c54db4f28d60ba) - Update Helm release jaeger to v4 (#3034) :: renovate[bot]\n- [`4b9fc609`](http://github.com/seleniumhq/docker-selenium/commit/4b9fc60913c62eba4da37620b1a640889d7688ab) - K8s: Add option to inject network policies into chart (#3033) :: Michael Göhler\n- [`4d6f29ef`](http://github.com/seleniumhq/docker-selenium/commit/4d6f29ef243888eb4aa2657230a263bd5389df14) - [ci] Update deps version (#3026) :: Viet Nguyen Duc\n- [`b00cdf54`](http://github.com/seleniumhq/docker-selenium/commit/b00cdf54ef0c2ce63078698d172bc60a5c3de1a5) - Update Helm release redis to v24 (#3029) :: renovate[bot]\n- [`bd2a419e`](http://github.com/seleniumhq/docker-selenium/commit/bd2a419eb0a16f3cd6d87ab3857a8942c16d9ab5) - [ci] Update chart 0.49.1 changelog :: Selenium CI Bot\n\n## :heavy_check_mark: selenium-grid-0.49.1\n\n- Chart is using image tag 4.38.0-20251101\n- Chart is tested on Kubernetes versions: v1.28.15,v1.29.15,v1.30.14,v1.31.12,v1.32.9,v1.33.5,v1.34.1\n- Chart is tested on container runtime Docker versions: 27.5.1,28.4.0\n- Chart is tested on Helm versions: v3.13.3,v3.14.3,v3.15.4,v3.16.4,v3.17.4,v3.18.6,v3.19.0\n- Chart is tested autoscaling capabilities with KEDA image tag: 2.18.0\n\n### Changed\n- [`45cb0b29`](http://github.com/seleniumhq/docker-selenium/commit/45cb0b2918ad1b899cfe246639ce9671bfd6751f) - [ci] Update tag 4.38.0-20251101 in docs and files :: Selenium CI Bot\n- [`386a7f6f`](http://github.com/seleniumhq/docker-selenium/commit/386a7f6f602c54270774e2494b347edecd1a2df7) - [ci] Update chart 0.49.0 changelog :: Selenium CI Bot\n\n## :heavy_check_mark: selenium-grid-0.49.0\n\n- Chart is using image tag 4.38.0-20251025\n- Chart is tested on Kubernetes versions: v1.28.15,v1.29.15,v1.30.14,v1.31.12,v1.32.9,v1.33.5,v1.34.1\n- Chart is tested on container runtime Docker versions: 27.5.1,28.4.0\n- Chart is tested on Helm versions: v3.13.3,v3.14.3,v3.15.4,v3.16.4,v3.17.4,v3.18.6,v3.19.0\n- Chart is tested autoscaling capabilities with KEDA image tag: 2.18.0\n\n### Changed\n- [`323a541b`](http://github.com/seleniumhq/docker-selenium/commit/323a541b96541d58ecac2a5ee3076d6ea71b629e) - [ci] Update tag 4.38.0-20251025 in docs and files :: Selenium CI Bot\n- [`28518121`](http://github.com/seleniumhq/docker-selenium/commit/2851812135adf03b376deab0056b7e8e888173fe) - chore(deps): update helm release kube-prometheus-stack to v79 (#3007) :: renovate[bot]\n- [`4b6d675f`](http://github.com/seleniumhq/docker-selenium/commit/4b6d675fb0ca2b18112d540987b9a04766ad5f20) - K8s: Expose config session request timeout in Helm chart values (#3006) :: Viet Nguyen Duc\n- [`a43e8cdd`](http://github.com/seleniumhq/docker-selenium/commit/a43e8cdd11330c30602eb95d9f9c3e85ec8d33d1) - K8s: Remove triggerMetadata with empty value to prevent Unmatched input property from KEDA checks (#3005) :: Viet Nguyen Duc\n- [`ddf71439`](http://github.com/seleniumhq/docker-selenium/commit/ddf71439c41c68d6f0e60c47201b56b09ce771b7) - [ci] Update chart 0.48.0 changelog :: Selenium CI Bot\n\n## :heavy_check_mark: selenium-grid-0.48.0\n\n- Chart is using image tag 4.37.0-20251020\n- Chart is tested on Kubernetes versions: v1.28.15,v1.29.15,v1.30.14,v1.31.12,v1.32.9,v1.33.5,v1.34.1\n- Chart is tested on container runtime Docker versions: 27.5.1,28.4.0\n- Chart is tested on Helm versions: v3.13.3,v3.14.3,v3.15.4,v3.16.4,v3.17.4,v3.18.6,v3.19.0\n- Chart is tested autoscaling capabilities with KEDA image tag: 2.18.0\n\n### Changed\n- [`4643901b`](http://github.com/seleniumhq/docker-selenium/commit/4643901bd9904fbfc11527fb9846152e7d7df7f6) - [ci] Update tag 4.37.0-20251020 in docs and files :: Selenium CI Bot\n- [`a22c1991`](http://github.com/seleniumhq/docker-selenium/commit/a22c1991950408b0aa26f3f15e1bbecce46f92c1) - K8s: Instead of probe to restart Distributor, adding event bus heartbeat to prevent steal connection (#2995) :: Viet Nguyen Duc\n- [`4a178966`](http://github.com/seleniumhq/docker-selenium/commit/4a1789664a638bbbff9e4d22597a83ffd4f327a7) - Update Selenium Grid 4.37.0 (#2994) :: Viet Nguyen Duc\n- [`c80fb944`](http://github.com/seleniumhq/docker-selenium/commit/c80fb944702b088684808b128ae5512a9b9e0b76) - chore(deps): update helm release kube-prometheus-stack to v78 (#2985) :: renovate[bot]\n- [`fbe332f3`](http://github.com/seleniumhq/docker-selenium/commit/fbe332f390e8d519e505cb1420794877b56d06a2) - Update Helm release redis to v23 (#2981) :: renovate[bot]\n- [`4e589ca5`](http://github.com/seleniumhq/docker-selenium/commit/4e589ca5a5d8e4123d36782bfc5efa270bd5f231) - Update Helm release postgresql to v18 (#2980) :: renovate[bot]\n- [`8771194e`](http://github.com/seleniumhq/docker-selenium/commit/8771194e54968c78f8081b040819d967005b39b5) - [ci] Update chart 0.47.0 changelog :: Selenium CI Bot\n\n## :heavy_check_mark: selenium-grid-0.47.0\n\n- Chart is using image tag 4.36.0-20251001\n- Chart is tested on Kubernetes versions: v1.28.15,v1.29.15,v1.30.14,v1.31.12,v1.32.9,v1.33.5,v1.34.1\n- Chart is tested on container runtime Docker versions: 27.5.1,28.4.0\n- Chart is tested on Helm versions: v3.13.3,v3.14.3,v3.15.4,v3.16.4,v3.17.4,v3.18.6,v3.19.0\n- Chart is tested autoscaling capabilities with KEDA image tag: 2.17.2\n\n### Changed\n- [`16d685a0`](http://github.com/seleniumhq/docker-selenium/commit/16d685a0a8a6470a345a7a78d42b6eac0b3d83d3) - [ci] Update tag 4.36.0-20251001 in docs and files :: Selenium CI Bot\n- [`09a3dc25`](http://github.com/seleniumhq/docker-selenium/commit/09a3dc25768d6a3dfe679c439238a08840e134b2) - chore(deps): Update versions to multiple nodes chart values :: Viet Nguyen Duc\n- [`273ba284`](http://github.com/seleniumhq/docker-selenium/commit/273ba2847e3260c974e776184edc626d0dbf78d6) - K8s: Switch image registry for Bitnami deps image in sub charts (#2960) :: Viet Nguyen Duc\n- [`be197fb7`](http://github.com/seleniumhq/docker-selenium/commit/be197fb77d654bc95eb41f7d9d3836556178696c) - [ci] Update chart 0.46.2 changelog :: Selenium CI Bot\n\n## :heavy_check_mark: selenium-grid-0.46.2\n\n- Chart is using image tag 4.35.0-20250909\n- Chart is tested on Kubernetes versions: v1.28.15,v1.29.15,v1.30.14,v1.31.12,v1.32.9,v1.33.5,v1.34.1\n- Chart is tested on container runtime Docker versions: 27.5.1,28.4.0\n- Chart is tested on Helm versions: v3.13.3,v3.14.3,v3.15.4,v3.16.4,v3.17.4,v3.18.6,v3.19.0\n- Chart is tested autoscaling capabilities with KEDA image tag: 2.17.2\n\n### Fixed\n- [`0c77268b`](http://github.com/seleniumhq/docker-selenium/commit/0c77268b99eb109467721214f6b063726539b9c0) - fix(doc): fix minor typo in Helm helper function (monitoring) (#2959) :: Florian LOPES\n\n### Changed\n- [`ca1feb49`](http://github.com/seleniumhq/docker-selenium/commit/ca1feb491c82273e63bcd610cdde132a1aa5f5d5) - [ci] Update tag 4.35.0-20250909 in docs and files :: Selenium CI Bot\n- [`a49dcc0e`](http://github.com/seleniumhq/docker-selenium/commit/a49dcc0e804513d4feac8501233e9a34d95ab5cf) - K8s: Update test versions matrix :: Viet Nguyen Duc\n- [`63e2e898`](http://github.com/seleniumhq/docker-selenium/commit/63e2e898a656ddc848698f86a57ece7c3471e6a0) - #2957 Fixed tolerations indent for keda patched jobs (#2957) :: Anwar\n- [`0dc36647`](http://github.com/seleniumhq/docker-selenium/commit/0dc366475273203649b086fdcc6d24d1ca7b1808) - [ci] Update chart 0.46.1 changelog :: Selenium CI Bot\n\n## :heavy_check_mark: selenium-grid-0.46.1\n\n- Chart is using image tag 4.35.0-20250828\n- Chart is tested on Kubernetes versions: v1.26.15,v1.27.16,v1.28.15,v1.29.15,v1.30.14,v1.31.11,v1.32.7,v1.33.3\n- Chart is tested on container runtime Docker versions: 26.1.4,27.4.1,27.5.1\n- Chart is tested on Helm versions: v3.11.3,v3.12.3,v3.13.3,v3.14.3,v3.15.4,v3.16.4,v3.17.4,v3.18.4\n- Chart is tested autoscaling capabilities with KEDA image tag: 2.17.2\n\n### Changed\n- [`e7cc44c1`](http://github.com/seleniumhq/docker-selenium/commit/e7cc44c1a1da860664198080436973d3d2cb7ebb) - [ci] Update tag 4.35.0-20250828 in docs and files :: Selenium CI Bot\n- [`ea468461`](http://github.com/seleniumhq/docker-selenium/commit/ea468461c352a3ed46752484feaeff5a640e325a) - [ci] Automic update browser versions matrix and workflow (#2945) :: Viet Nguyen Duc\n- [`b4e1c0a3`](http://github.com/seleniumhq/docker-selenium/commit/b4e1c0a34d7be388e84d81c2730eadd2ab051268) - K8s: Add more versions chart values of cross browsers :: Viet Nguyen Duc\n- [`4ca031c8`](http://github.com/seleniumhq/docker-selenium/commit/4ca031c8d703ac890f10630391b3dbe7606b1c31) - Update Helm release kube-prometheus-stack to v77 (#2937) :: renovate[bot]\n- [`ad385eb8`](http://github.com/seleniumhq/docker-selenium/commit/ad385eb85f3d8ef304d040a0763a5fe3b7786e85) - [ci] Update chart 0.46.0 changelog :: Selenium CI Bot\n\n## :heavy_check_mark: selenium-grid-0.46.0\n\n- Chart is using image tag 4.35.0-20250808\n- Chart is tested on Kubernetes versions: v1.26.15,v1.27.16,v1.28.15,v1.29.15,v1.30.14,v1.31.11,v1.32.7,v1.33.3\n- Chart is tested on container runtime Docker versions: 26.1.4,27.4.1,27.5.1\n- Chart is tested on Helm versions: v3.11.3,v3.12.3,v3.13.3,v3.14.3,v3.15.4,v3.16.4,v3.17.4,v3.18.4\n- Chart is tested autoscaling capabilities with KEDA image tag: 2.17.2\n\n### Changed\n- [`2e8d7ec7`](http://github.com/seleniumhq/docker-selenium/commit/2e8d7ec78113f09eefb74bbb645b43b455a474e0) - [ci] Update tag 4.35.0-20250808 in docs and files :: Selenium CI Bot\n- [`6bad9778`](http://github.com/seleniumhq/docker-selenium/commit/6bad9778e6fa519891740437c43ab8ab1eb55135) - K8s: Update overProvisionRatio to use scalingModifiers instead scaler trigger param (#2930) :: Viet Nguyen Duc\n- [`676f1727`](http://github.com/seleniumhq/docker-selenium/commit/676f1727df09f7f96cda0aa823d98d3afa3a55b8) - Update Helm release kube-prometheus-stack to v76 (#2928) :: renovate[bot]\n- [`53bfa9a3`](http://github.com/seleniumhq/docker-selenium/commit/53bfa9a35b53f78337de91408f841faba5360974) - Update Helm release redis to v22 (#2927) :: renovate[bot]\n- [`7e140b06`](http://github.com/seleniumhq/docker-selenium/commit/7e140b069a9811956a145ccee55c6228cd55ba98) - [ci] Update chart 0.45.3 changelog :: Selenium CI Bot\n\n## :heavy_check_mark: selenium-grid-0.45.3\n\n- Chart is using image tag 4.34.0-20250727\n- Chart is tested on Kubernetes versions: v1.26.15,v1.27.16,v1.28.15,v1.29.15,v1.30.14,v1.31.11,v1.32.7,v1.33.3\n- Chart is tested on container runtime Docker versions: 26.1.4,27.4.1,27.5.1\n- Chart is tested on Helm versions: v3.11.3,v3.12.3,v3.13.3,v3.14.3,v3.15.4,v3.16.4,v3.17.4,v3.18.4\n- Chart is tested autoscaling capabilities with KEDA image tag: 2.17.2-selenium-grid-20250721\n- Selenium Grid Scaler implementation preview. [README](https://github.com/seleniumhq/docker-selenium/tree/trunk/.keda/README.md)\n\n### Changed\n- [`ab1f1994`](http://github.com/seleniumhq/docker-selenium/commit/ab1f19942746788e19fd32d79c3df6dac9989a11) - [ci] Update tag 4.34.0-20250727 in docs and files :: Selenium CI Bot\n- [`2d4be06f`](http://github.com/seleniumhq/docker-selenium/commit/2d4be06f139e72032d362c6544671ddd5adf2aaa) - Docker: Use GreedySlotSelector in Hub and Standalone (#2915) :: Viet Nguyen Duc\n- [`a1418e49`](http://github.com/seleniumhq/docker-selenium/commit/a1418e496f76a05998f2fb90246006cd18f879f2) - K8s: Helm template missing tolerations for keda patched jobs (#2912) :: Anwar\n- [`77bd816c`](http://github.com/seleniumhq/docker-selenium/commit/77bd816c3be93c3159b3f5c05d2a9af123c59598) - [KEDA] Selenium Grid: Add trigger param `overProvisionRatio` for ability to scale more than queue request (#2907) :: Viet Nguyen Duc\n- [`48779a6b`](http://github.com/seleniumhq/docker-selenium/commit/48779a6b3e0baafc5487d810e23af1294ac128bc) - Update docs for Helm config `nodeDrainAfterSessionCount` :: Viet Nguyen Duc\n- [`e193dd3d`](http://github.com/seleniumhq/docker-selenium/commit/e193dd3d9bfc6526cd4aa5dd7c47bcd774ff6926) - [ci] Update chart 0.45.2 changelog :: Selenium CI Bot\n\n## :heavy_check_mark: selenium-grid-0.45.2\n\n- Chart is using image tag 4.34.0-20250717\n- Chart is tested on Kubernetes versions: v1.26.15,v1.27.16,v1.28.15,v1.29.15,v1.30.13,v1.31.9,v1.32.5,v1.33.1\n- Chart is tested on container runtime Docker versions: 26.1.4,27.4.1,27.5.1\n- Chart is tested on Helm versions: v3.11.3,v3.12.3,v3.13.3,v3.14.3,v3.15.4,v3.16.4,v3.17.3,v3.18.0\n- Chart is tested autoscaling capabilities with KEDA image tag: 2.17.2\n\n### Changed\n- [`dbc18db0`](http://github.com/seleniumhq/docker-selenium/commit/dbc18db035f2b5822aa89db360b25dc81f5acd1d) - [ci] Update tag 4.34.0-20250717 in docs and files :: Selenium CI Bot\n- [`c239ba50`](http://github.com/seleniumhq/docker-selenium/commit/c239ba50b577272a3666d01dfff0bdc9fb840ddd) - K8s: Resilient Helm config to override `SE_DRAIN_AFTER_SESSION_COUNT` (#2902) :: Viet Nguyen Duc\n- [`3e3479e0`](http://github.com/seleniumhq/docker-selenium/commit/3e3479e007cab2c16a67407f9c9eb84fcbc21fbc) - [ci] Update chart 0.45.1 changelog :: Selenium CI Bot\n\n## :heavy_check_mark: selenium-grid-0.45.1\n\n- Chart is using image tag 4.34.0-20250707\n- Chart is tested on Kubernetes versions: v1.26.15,v1.27.16,v1.28.15,v1.29.15,v1.30.13,v1.31.9,v1.32.5,v1.33.1\n- Chart is tested on container runtime Docker versions: 26.1.4,27.4.1,27.5.1\n- Chart is tested on Helm versions: v3.11.3,v3.12.3,v3.13.3,v3.14.3,v3.15.4,v3.16.4,v3.17.3,v3.18.0\n- Chart is tested autoscaling capabilities with KEDA image tag: 2.17.2\n\n### Changed\n- [`c462c9c4`](http://github.com/seleniumhq/docker-selenium/commit/c462c9c439b1d44eed673b6dfc82bbf149c1d8f6) - K8s: Add new annotation as new rule in ingress-nginx controller (#2891) :: Viet Nguyen Duc\n- [`7dda02d5`](http://github.com/seleniumhq/docker-selenium/commit/7dda02d59435710f39e9871fcfc6f97a9c0ce60d) - K8s: Fix video uploader secrets pass to Node single container (#2886) :: Viet Nguyen Duc\n- [`e1982d72`](http://github.com/seleniumhq/docker-selenium/commit/e1982d7260f8ddcc2f678803b9c77cd0f73548f1) - [ci] Update chart 0.45.0 changelog :: Selenium CI Bot\n\n## :heavy_check_mark: selenium-grid-0.45.0\n\n- Chart is using image tag 4.34.0-20250707\n- Chart is tested on Kubernetes versions: v1.26.15,v1.27.16,v1.28.15,v1.29.15,v1.30.13,v1.31.9,v1.32.5,v1.33.1\n- Chart is tested on container runtime Docker versions: 26.1.4,27.4.1,27.5.1\n- Chart is tested on Helm versions: v3.11.3,v3.12.3,v3.13.3,v3.14.3,v3.15.4,v3.16.4,v3.17.3,v3.18.0\n- Chart is tested autoscaling capabilities with KEDA image tag: 2.17.2\n\n### Changed\n- [`f4572831`](http://github.com/seleniumhq/docker-selenium/commit/f4572831fb77cdfd93107a26855585fc8c7f9bbc) - [ci] Update tag 4.34.0-20250707 in docs and files :: Selenium CI Bot\n- [`3c1453ec`](http://github.com/seleniumhq/docker-selenium/commit/3c1453ecf482ac34a6bdc09ba11858be8c24c9d2) - K8s: Distributor uses Greedy algo as slot selector strategy in autoscaling (#2875) :: Viet Nguyen Duc\n- [`ee44ced0`](http://github.com/seleniumhq/docker-selenium/commit/ee44ced029d1739055aaaf42abb1cf6cfa60cc09) - Update Helm release kube-prometheus-stack to v75 (#2867) :: renovate[bot]\n- [`d0391a9e`](http://github.com/seleniumhq/docker-selenium/commit/d0391a9ece9d48b0e93a29dae5439990c4e3325e) - Update Helm release kube-prometheus-stack to v74 (#2865) :: renovate[bot]\n- [`4cbb487a`](http://github.com/seleniumhq/docker-selenium/commit/4cbb487aa836f3f7fb40089a355295d21dc06b2f) - [ci] Update chart 0.44.2 changelog :: Selenium CI Bot\n\n## :heavy_check_mark: selenium-grid-0.44.2\n\n- Chart is using image tag 4.33.0-20250606\n- Chart is tested on Kubernetes versions: v1.26.15,v1.27.16,v1.28.15,v1.29.15,v1.30.13,v1.31.9,v1.32.5,v1.33.1\n- Chart is tested on container runtime Docker versions: 26.1.4,27.4.1,27.5.1\n- Chart is tested on Helm versions: v3.11.3,v3.12.3,v3.13.3,v3.14.3,v3.15.4,v3.16.4,v3.17.3,v3.18.0\n- Chart is tested autoscaling capabilities with KEDA image tag: 2.17.1\n\n### Changed\n- [`5efe4cf2`](http://github.com/seleniumhq/docker-selenium/commit/5efe4cf26bd518d7cd7c30eb46c5932329c3f66a) - [ci] Update tag 4.33.0-20250606 in docs and files :: Selenium CI Bot\n- [`c06d1a24`](http://github.com/seleniumhq/docker-selenium/commit/c06d1a24f33e9f96d506f4c8c438e6d93bd2095b) - K8s: Helm config `customLabels` to add more tracing resource attributes (#2858) :: Viet Nguyen Duc\n- [`1989f7b8`](http://github.com/seleniumhq/docker-selenium/commit/1989f7b899b0f265bbb5bd8fd7c38b831f86a7e0) - Update Helm release kube-prometheus-stack to v73 (#2853) :: renovate[bot]\n- [`fb86e414`](http://github.com/seleniumhq/docker-selenium/commit/fb86e41490cca3e6c8e083191f745e82cd6b9aad) - K8s: Add chart config `autoscaling.setReplicasInSpec` in case ArgoCD with AutoSync :: Viet Nguyen Duc\n- [`10fa7b3d`](http://github.com/seleniumhq/docker-selenium/commit/10fa7b3d21df27e442038e78b23b57ce0ce881e4) - [ci] Update chart 0.44.0 changelog :: Selenium CI Bot\n\n## :heavy_check_mark: selenium-grid-0.44.0\n\n- Chart is using image tag 4.33.0-20250525\n- Chart is tested on Kubernetes versions: v1.26.15,v1.27.16,v1.28.15,v1.29.15,v1.30.13,v1.31.9,v1.32.5,v1.33.1\n- Chart is tested on container runtime Docker versions: 26.1.4,27.4.1,27.5.1\n- Chart is tested on Helm versions: v3.11.3,v3.12.3,v3.13.3,v3.14.3,v3.15.4,v3.16.4,v3.17.3,v3.18.0\n- Chart is tested autoscaling capabilities with KEDA image tag: 2.17.1\n\n### Changed\n- [`798600fc`](http://github.com/seleniumhq/docker-selenium/commit/798600fce2b0d655e596f738b09a3d2ae50dbe88) - [ci] Update tag 4.33.0-20250525 in docs and files :: Selenium CI Bot\n- [`365c1065`](http://github.com/seleniumhq/docker-selenium/commit/365c10659905e6ad5e7e972fcb54225dc2a8c928) - K8s: Fix template issue on Helm version v3.18.0 :: Viet Nguyen Duc\n- [`cc36ea9b`](http://github.com/seleniumhq/docker-selenium/commit/cc36ea9b67278d8673f132970ae3f108e3e0b1c7) - K8s: Video recorder run as sidecar container is disabled by default (#2843) :: Viet Nguyen Duc\n- [`fb966b8f`](http://github.com/seleniumhq/docker-selenium/commit/fb966b8f00c1bcbaf3004c4c6436df6e3679bb00) - [ci] Update chart 0.43.2 changelog :: Selenium CI Bot\n\n## :heavy_check_mark: selenium-grid-0.43.2\n\n- Chart is using image tag 4.32.0-20250515\n- Chart is tested on Kubernetes versions: v1.26.15,v1.27.16,v1.28.15,v1.29.15,v1.30.13,v1.31.9,v1.32.5,v1.33.1\n- Chart is tested on container runtime Docker versions: 26.1.4,27.4.1,27.5.1\n- Chart is tested on Helm versions: v3.11.3,v3.12.3,v3.13.3,v3.14.3,v3.15.4,v3.16.4,v3.17.3\n- Chart is tested autoscaling capabilities with KEDA image tag: 2.17.1\n\n### Changed\n- [`58279951`](http://github.com/seleniumhq/docker-selenium/commit/58279951254045eb307f30229f0c0545f85b8404) - [ci] Update tag 4.32.0-20250515 in docs and files :: Selenium CI Bot\n- [`88991ee3`](http://github.com/seleniumhq/docker-selenium/commit/88991ee3795a40e7e44eb30579dc2d63724786c2) - Update Helm release kube-prometheus-stack to v72 (#2816) :: renovate[bot]\n- [`e2abe9fb`](http://github.com/seleniumhq/docker-selenium/commit/e2abe9fb06b20c3a373d98338e26a093ad1447f9) - K8s: Node enable readiness probe checks status registered to Hub (#2833) :: Viet Nguyen Duc\n- [`7957b999`](http://github.com/seleniumhq/docker-selenium/commit/7957b9992517ee5d42c6ce5ccad76cde4d8105d5) - [ci] Update chart 0.43.1 changelog :: Selenium CI Bot\n\n## :heavy_check_mark: selenium-grid-0.43.1\n\n- Chart is using image tag 4.32.0-20250505\n- Chart is tested on Kubernetes versions: v1.26.15,v1.27.16,v1.28.15,v1.29.15,v1.30.11,v1.31.7,v1.32.3\n- Chart is tested on container runtime Docker versions: 26.1.4,27.4.1,27.5.1\n- Chart is tested on Helm versions: v3.11.3,v3.12.3,v3.13.3,v3.14.3,v3.15.4,v3.16.4,v3.17.0\n- Chart is tested autoscaling capabilities with KEDA image tag: 2.17.0\n\n### Changed\n- [`752bd109`](http://github.com/seleniumhq/docker-selenium/commit/752bd109e55e49fc1020d6d130970371cfc8a837) - Helm: Release chart 0.43.1 :: Viet Nguyen Duc\n- [`74149de8`](http://github.com/seleniumhq/docker-selenium/commit/74149de8ec0956cb61afbd1f1d067e0eee8a39f9) - K8s: Fix deployment config error in video-manager (#2831) :: Viet Nguyen Duc\n- [`7d4d65fa`](http://github.com/seleniumhq/docker-selenium/commit/7d4d65fa189264bb9607d078c27492b10cdc4951) - K8s: Fix deployment template error in video-manager (#2828) :: Viet Nguyen Duc\n- [`f7bc3fb7`](http://github.com/seleniumhq/docker-selenium/commit/f7bc3fb7facd980ff4ac54945c578bcc2ff14588) - Update Helm release redis to v21 (#2826) :: renovate[bot]\n- [`17aeb6d3`](http://github.com/seleniumhq/docker-selenium/commit/17aeb6d3b820674031d7204166cdca0d6b7272a5) - [ci] Update chart 0.43.0 changelog :: Selenium CI Bot\n\n## :heavy_check_mark: selenium-grid-0.43.0\n\n- Chart is using image tag 4.32.0-20250505\n- Chart is tested on Kubernetes versions: v1.26.15,v1.27.16,v1.28.15,v1.29.15,v1.30.11,v1.31.7,v1.32.3\n- Chart is tested on container runtime Docker versions: 26.1.4,27.4.1,27.5.1\n- Chart is tested on Helm versions: v3.11.3,v3.12.3,v3.13.3,v3.14.3,v3.15.4,v3.16.4,v3.17.0\n- Chart is tested autoscaling capabilities with KEDA image tag: 2.17.0\n\n### Changed\n- [`f8a7a68b`](http://github.com/seleniumhq/docker-selenium/commit/f8a7a68b549299dcf726c42eb7a6e9971a30bb13) - [ci] Update tag 4.32.0-20250505 in docs and files :: Selenium CI Bot\n- [`78ff7f68`](http://github.com/seleniumhq/docker-selenium/commit/78ff7f681ceb9f3092f62d57529f04475e776a83) - Update Helm release kube-prometheus-stack to v71 (#2815) :: renovate[bot]\n- [`25b72891`](http://github.com/seleniumhq/docker-selenium/commit/25b728915ae4b0276bb070cbc1e22b8d2510a2bf) - Update Helm release kube-prometheus-stack to v70.10.0 (#2809) :: renovate[bot]\n- [`88642195`](http://github.com/seleniumhq/docker-selenium/commit/88642195025a565794d1d5ee108d61e75ebfcd19) - Update Helm release redis to v20.13.4 (#2814) :: renovate[bot]\n- [`e3b1899f`](http://github.com/seleniumhq/docker-selenium/commit/e3b1899f9495bf3a7d8b62c3657c87f49f8a2765) - Update Helm release redis to v20.13.3 (#2810) :: renovate[bot]\n- [`3aab80d6`](http://github.com/seleniumhq/docker-selenium/commit/3aab80d60453c7c45c7854e046e22dfba48ee596) - Update Helm release ingress-nginx to v4.12.2 (#2811) :: renovate[bot]\n- [`1746b4ac`](http://github.com/seleniumhq/docker-selenium/commit/1746b4ac8bff0850d8f24888a5095e2552b97cd6) - Update Helm release postgresql to v16.6.6 (#2806) :: renovate[bot]\n- [`880a513c`](http://github.com/seleniumhq/docker-selenium/commit/880a513c2c3e8d5bc0e107f5c03511d919c142c9) - Update Helm release redis to v20.13.2 (#2803) :: renovate[bot]\n- [`3f902e7c`](http://github.com/seleniumhq/docker-selenium/commit/3f902e7c6604294a61f8522997d00c9707dbd2b3) - Update Helm release kube-prometheus-stack to v70.8.0 (#2805) :: renovate[bot]\n- [`70d7f929`](http://github.com/seleniumhq/docker-selenium/commit/70d7f92953e6f0851381d4c57c48659349b56a39) - Update Helm release postgresql to v16.6.5 (#2802) :: renovate[bot]\n- [`96155a44`](http://github.com/seleniumhq/docker-selenium/commit/96155a44cf4e96bbae90096c1b6f68ec795726e0) - Update Helm release redis to v20.13.1 (#2801) :: renovate[bot]\n- [`c2c9f0e2`](http://github.com/seleniumhq/docker-selenium/commit/c2c9f0e28209d2f23909224b2f557200151fd77a) - Update Helm release postgresql to v16.6.4 (#2800) :: renovate[bot]\n- [`5d49cc63`](http://github.com/seleniumhq/docker-selenium/commit/5d49cc63f3d4fe2cc4ee147e07b819c8dee5d0de) - Update Helm release redis to v20.12.2 (#2797) :: renovate[bot]\n- [`be0c3462`](http://github.com/seleniumhq/docker-selenium/commit/be0c3462005ec6e57b451605b5fc92f8e57ac8af) - [docs] Update note in chart values :: Viet Nguyen Duc\n- [`44f46584`](http://github.com/seleniumhq/docker-selenium/commit/44f46584226c217d8cff06369053194d4c55c4af) - Update Helm release kube-prometheus-stack to v70.7.0 (#2794) :: renovate[bot]\n- [`3f7b0b09`](http://github.com/seleniumhq/docker-selenium/commit/3f7b0b09ef73ec353d69249244204083b306ad68) - Update Helm release redis to v20.12.1 (#2793) :: renovate[bot]\n- [`0cdd6ec9`](http://github.com/seleniumhq/docker-selenium/commit/0cdd6ec93e9f09493763d556d1877b96f3740f79) - Update Helm release kube-prometheus-stack to v70.5.0 (#2790) :: renovate[bot]\n- [`ddd2ec07`](http://github.com/seleniumhq/docker-selenium/commit/ddd2ec07789ebbde7fa37320211b30c73ac9605c) - Update Helm release redis to v20.12.0 (#2789) :: renovate[bot]\n- [`f9c72df7`](http://github.com/seleniumhq/docker-selenium/commit/f9c72df7b71f2efe48a1906de22f4c34c4dabe81) - [ci] Update chart 0.42.1 changelog :: Selenium CI Bot\n\n## :heavy_check_mark: selenium-grid-0.42.1\n\n- Chart is using image tag 4.31.0-20250414\n- Chart is tested on Kubernetes versions: v1.26.15,v1.27.16,v1.28.15,v1.29.15,v1.30.11,v1.31.7,v1.32.3\n- Chart is tested on container runtime Docker versions: 26.1.4,27.4.1,27.5.1\n- Chart is tested on Helm versions: v3.11.3,v3.12.3,v3.13.3,v3.14.3,v3.15.4,v3.16.4,v3.17.0\n- Chart is tested autoscaling capabilities with KEDA image tag: 2.17.0\n\n### Changed\n- [`614242b8`](http://github.com/seleniumhq/docker-selenium/commit/614242b856031c44c06dbc8ca73ca33b4bdd44b1) - [ci] Update tag 4.31.0-20250414 in docs and files :: Selenium CI Bot\n- [`cb786352`](http://github.com/seleniumhq/docker-selenium/commit/cb7863526c7c86c25f34642baffe46c6069e60de) - Docker: Update basic auth headers in util scripts (#2779) :: Viet Nguyen Duc\n- [`35b2d0e1`](http://github.com/seleniumhq/docker-selenium/commit/35b2d0e14e714568c607165cfc73fd4d849cdf4f) - [ci] Update chart configuration table :: Selenium CI Bot\n- [`9bd4d8a7`](http://github.com/seleniumhq/docker-selenium/commit/9bd4d8a7deab9aab337986bffa180da5a44da5c0) - K8s: Add ability to config trigger name (#2777) :: Romain THERRAT\n- [`b6c1227d`](http://github.com/seleniumhq/docker-selenium/commit/b6c1227d696442215a97303227d7f12f9c3a449c) - Update Helm release redis to v20.11.5 (#2772) :: renovate[bot]\n- [`a07c626d`](http://github.com/seleniumhq/docker-selenium/commit/a07c626d50b1c96c0b5879b2a660c1c5942f4559) - Update Helm release postgresql to v16.6.3 (#2773) :: renovate[bot]\n- [`8f280e1b`](http://github.com/seleniumhq/docker-selenium/commit/8f280e1be538fa4d2411306c52db25be59ea786b) - [ci] Update chart 0.42.0 changelog :: Selenium CI Bot\n\n## :heavy_check_mark: selenium-grid-0.42.0\n\n- Chart is using image tag 4.31.0-20250404\n- Chart is tested on Kubernetes versions: v1.26.15,v1.27.16,v1.28.15,v1.29.15,v1.30.11,v1.31.7,v1.32.3\n- Chart is tested on container runtime Docker versions: 26.1.4,27.4.1,27.5.1\n- Chart is tested on Helm versions: v3.11.3,v3.12.3,v3.13.3,v3.14.3,v3.15.4,v3.16.4,v3.17.0\n- Chart is tested autoscaling capabilities with KEDA image tag: 2.17.0\n\n### Fixed\n- [`e1631d56`](http://github.com/seleniumhq/docker-selenium/commit/e1631d5681e3298901c27beb3919874288a96e95) - Fix lint chart values :: Viet Nguyen Duc\n\n### Changed\n- [`1bf02dad`](http://github.com/seleniumhq/docker-selenium/commit/1bf02dadeef1e6c53e7bedde670eb7016388b1e2) - [ci] Update tag 4.31.0-20250404 in docs and files :: Selenium CI Bot\n- [`9efdd3e0`](http://github.com/seleniumhq/docker-selenium/commit/9efdd3e0e29f9e1257d28cebb605089c5efee340) - K8s: Add template for file browser video records service (#2763) :: Viet Nguyen Duc\n- [`9348ed1b`](http://github.com/seleniumhq/docker-selenium/commit/9348ed1bc845bd773473ad0ec8ff9229129f64b3) - K8s: Strictly handle `basicAuth.enabled` in template (#2760) :: Viet Nguyen Duc\n- [`c2ac0473`](http://github.com/seleniumhq/docker-selenium/commit/c2ac047331551e298482997fb21d3de2a5db8348) - Update Helm release postgresql to v16.6.2 (#2759) :: renovate[bot]\n- [`402592bd`](http://github.com/seleniumhq/docker-selenium/commit/402592bd62f823ffc093a38acd3cc22dd0c64d91) - Update Helm release keda to v2.17.0 (#2758) :: renovate[bot]\n- [`1fe8d6e4`](http://github.com/seleniumhq/docker-selenium/commit/1fe8d6e492c754e07d5ec3bef92bdf67343c2b5e) - Update Helm release kube-prometheus-stack to v70.4.2 (#2757) :: renovate[bot]\n- [`83093214`](http://github.com/seleniumhq/docker-selenium/commit/8309321489a873f91972ce748c3c378721efd257) - Update Helm release postgresql to v16.6.1 (#2756) :: renovate[bot]\n- [`d34cc0d4`](http://github.com/seleniumhq/docker-selenium/commit/d34cc0d4e72f2f69be1009d361a4a6ec70d95f55) - K8s: Update strategy as Recreate by default (#2755) :: Viet Nguyen Duc\n- [`26c45cdb`](http://github.com/seleniumhq/docker-selenium/commit/26c45cdb94ba40fb2ba0423098eb68d626743f82) - K8s: Config  is true by default :: Viet Nguyen Duc\n- [`1cca6ba8`](http://github.com/seleniumhq/docker-selenium/commit/1cca6ba8ef0d5ad1026a3c894a57164dfc275b38) - Update Helm release kube-prometheus-stack to v70.4.1 (#2747) :: renovate[bot]\n- [`77a23f7a`](http://github.com/seleniumhq/docker-selenium/commit/77a23f7a73f439013f419104520f5ccc3cdabd16) - Update Helm release kube-prometheus-stack to v70.4.0 (#2744) :: renovate[bot]\n- [`4c35f64b`](http://github.com/seleniumhq/docker-selenium/commit/4c35f64befa0b0627e3abb3fb87e708eb874afbe) - [ci] Update chart 0.41.1 changelog :: Selenium CI Bot\n- [`f310b3d4`](http://github.com/seleniumhq/docker-selenium/commit/f310b3d4faae94e6321f2c02b6715dde0ca3d6cf) - Update Helm release postgresql to v16.6.0 (#2741) :: renovate[bot]\n\n## :heavy_check_mark: selenium-grid-0.41.1\n\n- Chart is using image tag 4.30.0-20250323\n- Chart is tested on Kubernetes versions: v1.26.15,v1.27.16,v1.28.15,v1.29.15,v1.30.11,v1.31.7,v1.32.3\n- Chart is tested on container runtime Docker versions: 26.1.4,27.4.1,27.5.1\n- Chart is tested on Helm versions: v3.11.3,v3.12.3,v3.13.3,v3.14.3,v3.15.4,v3.16.4,v3.17.0\n- Chart is tested autoscaling capabilities with KEDA image tag: 2.16.1-selenium-grid-20250323\n- Selenium Grid Scaler implementation preview. [README](https://github.com/seleniumhq/docker-selenium/tree/trunk/.keda/README.md)\n\n### Fixed\n- [`523f738c`](http://github.com/seleniumhq/docker-selenium/commit/523f738cf721f5b1e5d3631126138b0c97b251c4) - Fix: Restore a Mistakenly Deleted `%s` Format Specifier in Template (#2740) :: KenHuPricer\n\n### Changed\n- [`9066e332`](http://github.com/seleniumhq/docker-selenium/commit/9066e332c74eb9b6bbab18a9e97dc2b057164795) - K8s: Update chart version 0.41.1 :: Viet Nguyen Duc\n- [`76fc54f9`](http://github.com/seleniumhq/docker-selenium/commit/76fc54f95d0d85709537bdecbd1876c76933d573) - Update Helm release kube-prometheus-stack to v70.3.0 (#2735) :: renovate[bot]\n- [`b9bacd8b`](http://github.com/seleniumhq/docker-selenium/commit/b9bacd8bc05b581edbce41180dc85e5bc7ce4c51) - Update Helm release postgresql to v16.5.6 (#2731) :: renovate[bot]\n- [`6dbfbbfa`](http://github.com/seleniumhq/docker-selenium/commit/6dbfbbfa9ca5c32e63a550dbf8f2ef4c127e16d6) - Update Helm release ingress-nginx to v4.12.1 (#2736) :: renovate[bot]\n- [`5fe6e7c4`](http://github.com/seleniumhq/docker-selenium/commit/5fe6e7c465e582d25e00bd9834ff7d5106d52a0c) - [ci] Update tag 4.30.0-20250323 in docs and files :: Selenium CI Bot\n- [`b283ba1b`](http://github.com/seleniumhq/docker-selenium/commit/b283ba1b5d64eee42849743d0f9196270c530aae) - [ci] Update chart 0.41.0 changelog :: Selenium CI Bot\n\n## :heavy_check_mark: selenium-grid-0.41.0\n\n- Chart is using image tag 4.30.0-20250323\n- Chart is tested on Kubernetes versions: v1.26.15,v1.27.16,v1.28.15,v1.29.15,v1.30.11,v1.31.7,v1.32.3\n- Chart is tested on container runtime Docker versions: 26.1.4,27.4.1,27.5.1\n- Chart is tested on Helm versions: v3.11.3,v3.12.3,v3.13.3,v3.14.3,v3.15.4,v3.16.4,v3.17.0\n- Chart is tested autoscaling capabilities with KEDA image tag: 2.16.1-selenium-grid-20250323\n- Selenium Grid Scaler implementation preview. [README](https://github.com/seleniumhq/docker-selenium/tree/trunk/.keda/README.md)\n\n### Changed\n- [`41e3b6da`](http://github.com/seleniumhq/docker-selenium/commit/41e3b6dad17f03f7ba3a351a343bf0d54eaf7834) - [ci] Update tag 4.30.0-20250323 in docs and files :: Selenium CI Bot\n- [`09a1cb75`](http://github.com/seleniumhq/docker-selenium/commit/09a1cb75153f9cb91801d0265b528d6984561789) - Update Helm release kube-prometheus-stack to v70.2.1 (#2729) :: renovate[bot]\n- [`51ea5ac6`](http://github.com/seleniumhq/docker-selenium/commit/51ea5ac61ec9b66ea79fff03fe6ded50608a4f28) - Update Helm release postgresql to v16.5.5 (#2718) :: renovate[bot]\n- [`e9dd2e83`](http://github.com/seleniumhq/docker-selenium/commit/e9dd2e83691d0ab86f64136019c49cc462f55f26) - Update Helm release jaeger to v3.4.1 (#2723) :: renovate[bot]\n- [`d62207f6`](http://github.com/seleniumhq/docker-selenium/commit/d62207f6f2e72d4be4ea8eac630ff827ffe6ac15) - Update Helm release kube-prometheus-stack to v70.1.1 (#2717) :: renovate[bot]\n- [`2e818562`](http://github.com/seleniumhq/docker-selenium/commit/2e818562471de06236accffd8f9e31ccd6ca781e) - Update Helm release redis to v20.11.4 (#2727) :: renovate[bot]\n- [`da16f65b`](http://github.com/seleniumhq/docker-selenium/commit/da16f65b5bc19fd6b87c311759ab02f2727170dd) - K8s: Disable annotation when `ingress.tls[0].secretName` is null (#2724) :: Viet Nguyen Duc\n- [`b6df8d58`](http://github.com/seleniumhq/docker-selenium/commit/b6df8d58ff36300d318a95ac772b32b4471b1453) - Update Helm release kube-prometheus-stack to v70.1.0 (#2715) :: renovate[bot]\n- [`94ee101e`](http://github.com/seleniumhq/docker-selenium/commit/94ee101e19b34c4a4c250036599f4289c7375a52) - [ci] Update chart configuration table :: Selenium CI Bot\n- [`7e63e01c`](http://github.com/seleniumhq/docker-selenium/commit/7e63e01c55bb4edc5c7e985ab92f9b5607b683c0) - Update Helm release jaeger to v3.4.0 (#2711) :: renovate[bot]\n- [`48f6e78a`](http://github.com/seleniumhq/docker-selenium/commit/48f6e78a0980c5d184784f16bd17fd012192c1b6) - Update Helm release postgresql to v16.5.2 (#2712) :: renovate[bot]\n- [`c34ecb88`](http://github.com/seleniumhq/docker-selenium/commit/c34ecb88887f5ff155500e244309f9ef7c751b0e) - Update Helm release redis to v20.11.3 (#2713) :: renovate[bot]\n- [`d5749065`](http://github.com/seleniumhq/docker-selenium/commit/d5749065ffc4e623fc2dc742ef0fd37d951053b0) - K8s: Node Relay to extend autoscaling Grid with test cloud resources (#2703) :: Viet Nguyen Duc\n- [`dd1ff4be`](http://github.com/seleniumhq/docker-selenium/commit/dd1ff4be2abd55639860051989de6019ab0ca5c3) - K8s: Improve job to clean up scaledobjects are leftover (#2710) :: Viet Nguyen Duc\n- [`c95fc277`](http://github.com/seleniumhq/docker-selenium/commit/c95fc2771cb02e354d2d015f4dc074f1194de257) - Update Helm release kube-prometheus-stack to v70 (#2707) :: renovate[bot]\n- [`dad1ecd5`](http://github.com/seleniumhq/docker-selenium/commit/dad1ecd50c34c5528dde792394cdb1f3365d6736) - [ci] Update chart 0.40.1 changelog :: Selenium CI Bot\n\n## :heavy_check_mark: selenium-grid-0.40.1\n\n- Chart is using image tag 4.29.0-20250303\n- Chart is tested on Kubernetes versions: v1.26.15,v1.27.16,v1.28.15,v1.29.14,v1.30.10,v1.31.6,v1.32.2\n- Chart is tested on container runtime Docker versions: 26.1.4,27.4.1,27.5.1\n- Chart is tested on Helm versions: v3.11.3,v3.12.3,v3.13.3,v3.14.3,v3.15.4,v3.16.4,v3.17.0\n- Chart is tested autoscaling capabilities with KEDA image tag: 2.16.1-selenium-grid-20250303\n- Selenium Grid Scaler implementation preview. [README](https://github.com/seleniumhq/docker-selenium/tree/trunk/.keda/README.md)\n\n### Changed\n- [`cbf87030`](http://github.com/seleniumhq/docker-selenium/commit/cbf8703009990f5757e7ebe65ae6bde2b2d55c59) - [ci] Update tag 4.29.0-20250303 in docs and files :: Selenium CI Bot\n- [`70ac588d`](http://github.com/seleniumhq/docker-selenium/commit/70ac588d567b253c93c91d990a5b197f5f8d146a) - Update Helm release kube-prometheus-stack to v69.7.2 (#2679) :: renovate[bot]\n- [`966a78a3`](http://github.com/seleniumhq/docker-selenium/commit/966a78a3b3a3c770bff5041ae25d5d5a79381141) - Docker: Resolve default component port via env var (#2689) :: Viet Nguyen Duc\n- [`7276e544`](http://github.com/seleniumhq/docker-selenium/commit/7276e544b0f4d5254ef728875a43586f8467d146) - K8s: Update Helm configs for setting Node custom capabilities (#2686) :: Viet Nguyen Duc\n- [`1b424655`](http://github.com/seleniumhq/docker-selenium/commit/1b424655a6c472de7b855d29c76256c2fd706f11) - K8s: Bump new KEDA image for feature preview (#2681) :: Viet Nguyen Duc\n- [`6f262a31`](http://github.com/seleniumhq/docker-selenium/commit/6f262a317e57ec48cf1348629249f3b9ca2c373a) - [docs] Update project contact email :: Viet Nguyen Duc\n- [`5bc5b205`](http://github.com/seleniumhq/docker-selenium/commit/5bc5b20585f2d35950f76ac8e6a7c21a279d66b2) - [ci] Update chart 0.40.0 changelog :: Selenium CI Bot\n\n## :heavy_check_mark: selenium-grid-0.40.0\n\n- Chart is using image tag 4.29.0-20250222\n- Chart is tested on Kubernetes versions: v1.26.15,v1.27.16,v1.28.15,v1.29.13,v1.30.9,v1.31.5,v1.32.1\n- Chart is tested on container runtime Docker versions: 26.1.4,27.4.1\n- Chart is tested on Helm versions: v3.11.3,v3.12.3,v3.13.3,v3.14.3,v3.15.4,v3.16.4,v3.17.0\n- Chart is tested autoscaling capabilities with KEDA image tag: 2.16.1-selenium-grid-20250222\n- Selenium Grid Scaler implementation preview. [README](https://github.com/seleniumhq/docker-selenium/tree/trunk/.keda/README.md)\n\n### Fixed\n- [`5648285b`](http://github.com/seleniumhq/docker-selenium/commit/5648285bda6d88a74c32dcc8865572a2cb79023e) - Fix add-cert-helper.sh only adding a single certificate in Chrome (#2660) :: Peter Upfold\n\n### Changed\n- [`dc3f59d5`](http://github.com/seleniumhq/docker-selenium/commit/dc3f59d5bae6e2bd1a022c7897dd379a2ceebc06) - [ci] Update tag 4.29.0-20250222 in docs and files :: Selenium CI Bot\n- [`6f41a42b`](http://github.com/seleniumhq/docker-selenium/commit/6f41a42b9429cc8953371f98cea093e31fadcd25) - [ci] Update browser versions matrix :: Viet Nguyen Duc\n- [`ccbcbd8f`](http://github.com/seleniumhq/docker-selenium/commit/ccbcbd8f57ad3bc53d472dc335c0bfe7634f94ba) - Update Helm release kube-prometheus-stack to v69.4.1 (#2670) :: renovate[bot]\n- [`031fb6c2`](http://github.com/seleniumhq/docker-selenium/commit/031fb6c24bc341135e3bcd9dd381b4f0ebbd4cdc) - Update Helm release kube-prometheus-stack to v69.4.0 (#2669) :: renovate[bot]\n- [`83f6c087`](http://github.com/seleniumhq/docker-selenium/commit/83f6c087341cb65ddf6136ab1b982f366013fc9c) - K8s: Set K8s node IP to all components via env var KUBERNETES_NODE_HOST_IP (#2668) :: Viet Nguyen Duc\n- [`be6f2613`](http://github.com/seleniumhq/docker-selenium/commit/be6f2613d45a7470cd7e31dd46d5bfc987be1283) - Update Helm release kube-prometheus-stack to v69 (#2646) :: renovate[bot]\n- [`111ba26a`](http://github.com/seleniumhq/docker-selenium/commit/111ba26a70018ed452b92c615cbd7ae5c8195dfc) - K8s: Default Node register period is longer with a short cycle (#2662) :: Viet Nguyen Duc\n- [`0a5b6ece`](http://github.com/seleniumhq/docker-selenium/commit/0a5b6ece0fda42a25fac67c7da07ac4aad1b13db) - K8s: Improve Node checks for liveness probe and preStop hook (#2661) :: Viet Nguyen Duc\n- [`9fa52f19`](http://github.com/seleniumhq/docker-selenium/commit/9fa52f19f990de1aab69860748b9f23b2c29355d) - chore(deps): update helm release kube-prometheus-stack to v68.5.0 (#2645) :: renovate[bot]\n- [`68cafe0f`](http://github.com/seleniumhq/docker-selenium/commit/68cafe0f67fc14018c6e23d82241569ca9506893) - chore(deps): update helm release kube-prometheus-stack to v68.4.5 (#2641) :: renovate[bot]\n- [`3f544507`](http://github.com/seleniumhq/docker-selenium/commit/3f544507ab3c35b314474fce57d6a8d863c852d0) - [ci] Update chart 0.39.2 changelog :: Selenium CI Bot\n\n## :heavy_check_mark: selenium-grid-0.39.2\n\n- Chart is using image tag 4.28.1-20250202\n- Chart is tested on Kubernetes versions: v1.26.15,v1.27.16,v1.28.15,v1.29.13,v1.30.9,v1.31.5,v1.32.1\n- Chart is tested on container runtime Docker versions: 26.1.4,27.4.1\n- Chart is tested on Helm versions: v3.11.3,v3.12.3,v3.13.3,v3.14.3,v3.15.4,v3.16.4,v3.17.0\n- Chart is tested autoscaling capabilities with KEDA image tag: 2.16.1-selenium-grid-20250202\n- Selenium Grid Scaler implementation preview. [README](https://github.com/seleniumhq/docker-selenium/tree/trunk/.keda/README.md)\n\n### Added\n- [`c30ae198`](http://github.com/seleniumhq/docker-selenium/commit/c30ae198207a5997848065cfbf779bce9a42f423) - feat: Deploy Node/Standalone Firefox browser version from v98 to v134 (#2632) :: Viet Nguyen Duc\n- [`7f75dd06`](http://github.com/seleniumhq/docker-selenium/commit/7f75dd0607a506668b6c1ff6de71674d1c943dcb) - feat: Deploy Node/Standalone Chrome browser version from v97 to v109 on top of Grid 4.28.1 (#2626) :: Viet Nguyen Duc\n- [`3ac17b96`](http://github.com/seleniumhq/docker-selenium/commit/3ac17b965985ac132ce83cc62ee49744f92cb030) - feat: Release Node/Standalone Chrome browser version from v110 to v131 on top of Grid 4.28.1 (#2621) :: Viet Nguyen Duc\n- [`a7b58a4d`](http://github.com/seleniumhq/docker-selenium/commit/a7b58a4dca01116547459442067e910fdb23a280) - feat: added nodeSelector for keda patch pods (#2618) :: Amar Deep Singh\n\n### Changed\n- [`ad807bf3`](http://github.com/seleniumhq/docker-selenium/commit/ad807bf32d267cd566c25b531c9822f77bc0ea92) - [ci] Update tag 4.28.1-20250202 in docs and files :: Selenium CI Bot\n- [`41f690aa`](http://github.com/seleniumhq/docker-selenium/commit/41f690aa623fa5ea231fb469db07af1136a099e1) - chore(deps): update helm release kube-prometheus-stack to v68.4.4 (#2630) :: renovate[bot]\n- [`96453331`](http://github.com/seleniumhq/docker-selenium/commit/96453331fdcd98a444c92d26af5a6fb55993a160) - chore(deps): update helm release kube-prometheus-stack to v68.4.3 (#2622) :: renovate[bot]\n- [`1f167b93`](http://github.com/seleniumhq/docker-selenium/commit/1f167b9379b6fe07414d1b8492e1a0995a25baf8) - Update Helm release kube-prometheus-stack to v68.4.0 (#2619) :: renovate[bot]\n- [`e461dc8d`](http://github.com/seleniumhq/docker-selenium/commit/e461dc8d7c07b7a0aded7e6ccce8e2f1371478db) - Update Helm release kube-prometheus-stack to v68.3.2 (#2613) :: renovate[bot]\n- [`04bb9cd9`](http://github.com/seleniumhq/docker-selenium/commit/04bb9cd9fe144215b66bf66080bbc2c366a1ce3b) - [ci] Update chart 0.39.1 changelog :: Selenium CI Bot\n\n## :heavy_check_mark: selenium-grid-0.39.1\n\n- Chart is using image tag 4.28.1-20250123\n- Chart is tested on Kubernetes versions: v1.26.15,v1.27.16,v1.28.15,v1.29.13,v1.30.9,v1.31.5,v1.32.1\n- Chart is tested on container runtime Docker versions: 26.1.4,27.4.1\n- Chart is tested on Helm versions: v3.11.3,v3.12.3,v3.13.3,v3.14.3,v3.15.4,v3.16.4,v3.17.0\n- Chart is tested autoscaling capabilities with KEDA image tag: 2.16.1-selenium-grid-20250123\n- Selenium Grid Scaler implementation preview. [README](https://github.com/seleniumhq/docker-selenium/tree/trunk/.keda/README.md)\n\n### Changed\n- [`a233e6ef`](http://github.com/seleniumhq/docker-selenium/commit/a233e6efcbcf923f7608352f1a4e89931d3032c1) - [ci] Update tag 4.28.1-20250123 in docs and files :: Selenium CI Bot\n- [`0ffbb8e0`](http://github.com/seleniumhq/docker-selenium/commit/0ffbb8e026e2a46be8a08be912fc04496a78f6a5) - [ci] Update chart 0.39.0 changelog :: Selenium CI Bot\n\n## :heavy_check_mark: selenium-grid-0.39.0\n\n- Chart is using image tag 4.28.0-20250120\n- Chart is tested on Kubernetes versions: v1.26.15,v1.27.16,v1.28.15,v1.29.13,v1.30.9,v1.31.5,v1.32.1\n- Chart is tested on container runtime Docker versions: 26.1.4,27.4.1\n- Chart is tested on Helm versions: v3.11.3,v3.12.3,v3.13.3,v3.14.3,v3.15.4,v3.16.4,v3.17.0\n- Chart is tested autoscaling capabilities with KEDA image tag: 2.16.1-selenium-grid-20250120\n- Selenium Grid Scaler implementation preview. [README](https://github.com/seleniumhq/docker-selenium/tree/trunk/.keda/README.md)\n\n### Changed\n- [`6cf49815`](http://github.com/seleniumhq/docker-selenium/commit/6cf498159d8e30195a2be67faa8f20b16e25a644) - [ci] Update tag 4.28.0-20250120 in docs and files :: Selenium CI Bot\n- [`dd1731da`](http://github.com/seleniumhq/docker-selenium/commit/dd1731dab3f591e69717ecbc9e7b8f3b62740514) - Enable passing securityContext to initContainers in the Helm chart (#2607) :: Oskar Budziosz\n- [`ee5e6581`](http://github.com/seleniumhq/docker-selenium/commit/ee5e6581fd93f4f72dfecb32c0e7c5ffb0c8d351) - Update Helm release kube-prometheus-stack to v68.3.0 (#2604) :: renovate[bot]\n- [`e9c4c3df`](http://github.com/seleniumhq/docker-selenium/commit/e9c4c3df899642fba55bcb5c3c75a0ba20fff078) - Update Helm release kube-prometheus-stack to v68.2.2 (#2601) :: renovate[bot]\n- [`d1ebdcfc`](http://github.com/seleniumhq/docker-selenium/commit/d1ebdcfc973c52b6ec7a0e3b4d570d98466f109c) - Update Helm release kube-prometheus-stack to v68.2.1 (#2597) :: renovate[bot]\n- [`e10551de`](http://github.com/seleniumhq/docker-selenium/commit/e10551dea07751a031aff7c4fb775eca496a901e) - K8s: Allow adjutment of component replica count (#2600) :: joshfng\n- [`2b2c9e02`](http://github.com/seleniumhq/docker-selenium/commit/2b2c9e0221511d8cdb4c937518abdbd78c6688fe) - [ci] Update chart 0.38.5 changelog :: Selenium CI Bot\n\n## :heavy_check_mark: selenium-grid-0.38.5\n\n- Chart is using image tag 4.27.0-20250101\n- Chart is tested on Kubernetes versions: v1.25.16, v1.26.15, v1.27.16, v1.28.15, v1.29.12, v1.30.8, v1.31.4, \n- Chart is tested on container runtime Docker versions: 26.1.4, 26.1.4, 26.1.4, 26.1.4, 26.1.4, 26.1.4, 27.4.1, \n- Chart is tested on Helm versions: v3.11.3, v3.11.3, v3.12.3, v3.13.3, v3.14.3, v3.15.4, v3.16.4, \n- Chart is tested autoscaling capabilities with KEDA image tag: 2.16.1-selenium-grid-20250101\n- Selenium Grid Scaler implementation preview. [README](https://github.com/seleniumhq/docker-selenium/tree/trunk/.keda/README.md)\n\n### Changed\n- [`bd0581df`](http://github.com/seleniumhq/docker-selenium/commit/bd0581dfe475cd406f1e3f4efb9fc8ae301d0a6a) - [docs] Update list of chart configs :: Viet Nguyen Duc\n- [`1dedde79`](http://github.com/seleniumhq/docker-selenium/commit/1dedde7998eafaf2591cdf278e33b0e608b680c1) - K8s: Update KEDA patch version in default chart :: Viet Nguyen Duc\n- [`a1950776`](http://github.com/seleniumhq/docker-selenium/commit/a195077697ccc36cb387f56d1ca23e5786710e42) - K8s: Fix chart template for relay node (#2594) :: Viet Nguyen Duc\n- [`2130c340`](http://github.com/seleniumhq/docker-selenium/commit/2130c3401f782f446415182cbc51591465b67f94) - K8s: Update default component ConfigMap and resources limits (#2596) :: Viet Nguyen Duc\n- [`9ab8d6dd`](http://github.com/seleniumhq/docker-selenium/commit/9ab8d6dda3e615de6bc618703c145c4e280e9267) - [docs] Add a tip to get started with Helm chart :: Viet Nguyen Duc\n- [`7a51fd2b`](http://github.com/seleniumhq/docker-selenium/commit/7a51fd2b1c54bba34939f9c41314484904f8202b) - K8s: Update template for service configs (#2593) :: Viet Nguyen Duc\n- [`7cbd6379`](http://github.com/seleniumhq/docker-selenium/commit/7cbd637963bd887e2055b4862c513736f3d0e38d) - K8s: Remove .svc.cluster.local from component host using service name (#2591) :: Viet Nguyen Duc\n- [`f692a3c9`](http://github.com/seleniumhq/docker-selenium/commit/f692a3c9298466be1ab78baef983a3496620bbb2) - Update Helm release postgresql to v16.4.1 (#2579) :: renovate[bot]\n- [`92841c54`](http://github.com/seleniumhq/docker-selenium/commit/92841c54ae8a487c5b9fd06decc19ba929915119) - Update Helm release kube-prometheus-stack to v68 (#2581) :: renovate[bot]\n- [`6423b485`](http://github.com/seleniumhq/docker-selenium/commit/6423b485c0d03bf9ae6e4e9b556846ba684be6cc) - [Helm Chart] only add annotations stanza if they are annotations to add  (#2580) :: AvivGuiser\n- [`93034dc3`](http://github.com/seleniumhq/docker-selenium/commit/93034dc36eadf2d7c89a1193d15a38665cb52dce) - Update Helm release redis to v20.6.2 (#2570) :: renovate[bot]\n- [`5eeb9c08`](http://github.com/seleniumhq/docker-selenium/commit/5eeb9c0868442b3ae96147151bbb98bf5ddec003) - Update Helm release kube-prometheus-stack to v67.10.0 (#2576) :: renovate[bot]\n- [`e0c3beba`](http://github.com/seleniumhq/docker-selenium/commit/e0c3bebad584184207308facd71aabd0142aedca) - K8s: Bump KEDA patch version (#2575) :: Viet Nguyen Duc\n- [`2d3c355e`](http://github.com/seleniumhq/docker-selenium/commit/2d3c355e859a34796ed70824b923023e2f7c8e66) - Update Helm release kube-prometheus-stack to v67.9.0 (#2567) :: renovate[bot]\n- [`d99871d9`](http://github.com/seleniumhq/docker-selenium/commit/d99871d9936f7fd6edf2aef938bdf718f7f56d0c) - Update Helm release kube-prometheus-stack to v67.8.0 (#2561) :: renovate[bot]\n- [`1666105f`](http://github.com/seleniumhq/docker-selenium/commit/1666105f1b885bdf097deb6b71500eae3a9440d6) - [ci] Update chart 0.38.4 changelog :: Selenium CI Bot\n\n## :heavy_check_mark: selenium-grid-0.38.4\n\n- Chart is using image tag 4.27.0-20250101\n- Chart is tested on Kubernetes versions: v1.25.16, v1.26.15, v1.27.16, v1.28.15, v1.29.10, v1.30.6, v1.31.2, \n- Chart is tested on container runtime Docker versions: 24.0.9, 24.0.9, 24.0.9, 24.0.9, 25.0.5, 26.1.4, 27.3.1, \n- Chart is tested on Helm versions: v3.11.3, v3.11.3, v3.12.3, v3.13.3, v3.14.3, v3.15.4, v3.16.3, \n- Chart is tested autoscaling capabilities with KEDA image tag: 2.16.1\n\n### Changed\n- [`d6333285`](http://github.com/seleniumhq/docker-selenium/commit/d63332853af9d75f4b15b441a435820072a23f35) - K8s: Release Helm chart 0.38.4 :: Viet Nguyen Duc\n- [`5e7cd22a`](http://github.com/seleniumhq/docker-selenium/commit/5e7cd22a5abe1f1fcaf73332cd6779552021c464) - Update Helm release kube-prometheus-stack to v67.7.0 (#2557) :: renovate[bot]\n- [`89b53515`](http://github.com/seleniumhq/docker-selenium/commit/89b53515fed54d0dbeb25e884726944a022429de) - K8s: Optimize template syntax without using default function :: Viet Nguyen Duc\n- [`d3441094`](http://github.com/seleniumhq/docker-selenium/commit/d344109467116dc7c03392bbb4173b424227e2b6) - Update Helm release kube-prometheus-stack to v67.6.0 (#2554) :: renovate[bot]\n- [`0654a586`](http://github.com/seleniumhq/docker-selenium/commit/0654a58636450c8bfa266534ad3876be7c628ad7) - Update Helm release postgresql to v16.3.5 (#2555) :: renovate[bot]\n- [`da7612bf`](http://github.com/seleniumhq/docker-selenium/commit/da7612bf67a873182dcedc5d277eab2cc8b48600) - K8s: Node template handle `hpa.platformName` different with default in `values.yaml` :: Viet Nguyen Duc\n- [`dce68319`](http://github.com/seleniumhq/docker-selenium/commit/dce683196d5f9f6a4f198fb5ff5ca6e9d93242bf) - K8s: Correct typo in values file `multiple-nodes-platform.yaml` :: Viet Nguyen Duc\n- [`ab8e5195`](http://github.com/seleniumhq/docker-selenium/commit/ab8e5195e371fb38a7c61c5c1d2e4bf96fa9f6b2) - [ci] Update chart 0.38.3 changelog :: Selenium CI Bot\n\n## :heavy_check_mark: selenium-grid-0.38.3\n\n- Chart is using image tag 4.27.0-20250101\n- Chart is tested on Kubernetes versions: v1.25.16, v1.26.15, v1.27.16, v1.28.15, v1.29.10, v1.30.6, v1.31.2, \n- Chart is tested on container runtime Docker versions: 24.0.9, 24.0.9, 24.0.9, 24.0.9, 25.0.5, 26.1.4, 27.3.1, \n- Chart is tested on Helm versions: v3.11.3, v3.11.3, v3.12.3, v3.13.3, v3.14.3, v3.15.4, v3.16.3, \n- Chart is tested autoscaling capabilities with KEDA image tag: 2.16.1\n\n### Changed\n- [`f353914d`](http://github.com/seleniumhq/docker-selenium/commit/f353914db44470765311f2a42f302bf935e7428d) - [ci] Update tag 4.27.0-20250101 in docs and files :: Selenium CI Bot\n- [`39027998`](http://github.com/seleniumhq/docker-selenium/commit/39027998f922a15e5bb97eb6773eb484e1518b58) - Docker: Collect JVM heap dump in case server run into error (#2546) :: Viet Nguyen Duc\n- [`7d6ddb77`](http://github.com/seleniumhq/docker-selenium/commit/7d6ddb778549f2c366622d9e944d9355446b1b73) - K8s: Allow extra data set to EventBus and Node configmap (#2545) :: Viet Nguyen Duc\n- [`bd7876e0`](http://github.com/seleniumhq/docker-selenium/commit/bd7876e0f3a66a184af9318ce9c10969307e184b) - Update Helm release kube-prometheus-stack to v67.5.0 (#2533) :: renovate[bot]\n- [`bff83697`](http://github.com/seleniumhq/docker-selenium/commit/bff83697c1479889cae704c064d51ecd07541e0a) - Update Helm release postgresql to v16.3.4 (#2532) :: renovate[bot]\n- [`c10b3d27`](http://github.com/seleniumhq/docker-selenium/commit/c10b3d2782a7a3ffa243000db72e8f91798d805d) - Update Helm release ingress-nginx to v4.12.0 (#2544) :: renovate[bot]\n- [`6f25d806`](http://github.com/seleniumhq/docker-selenium/commit/6f25d806d43554bd6d98619ec0d7e21dd1eadfba) - K8s: Add default values for multiple nodes platform and version (#2543) :: Viet Nguyen Duc\n- [`d01680cb`](http://github.com/seleniumhq/docker-selenium/commit/d01680cba3feb3d050d9ff667aaa9816fca8e33a) - K8s: Update config `components.subPath` to `components.router.subPath` :: Viet Nguyen Duc\n- [`325307ac`](http://github.com/seleniumhq/docker-selenium/commit/325307ac5fa14569f4110b30dcfdda68b9989368) - K8s: Configs extraEnvironmentVariables, extraEnvFrom in each distributed component :: Viet Nguyen Duc\n- [`2d80c880`](http://github.com/seleniumhq/docker-selenium/commit/2d80c8805d5141d3b382f32271d3bf032b0c1120) - [ci] Update chart 0.38.2 changelog :: Selenium CI Bot\n\n## :heavy_check_mark: selenium-grid-0.38.2\n\n- Chart is using image tag 4.27.0-20241225\n- Chart is tested on Kubernetes versions: v1.25.16, v1.26.15, v1.27.16, v1.28.15, v1.29.10, v1.30.6, v1.31.2, \n- Chart is tested on container runtime Docker versions: 24.0.9, 24.0.9, 24.0.9, 24.0.9, 25.0.5, 26.1.4, 27.3.1, \n- Chart is tested on Helm versions: v3.11.3, v3.11.3, v3.12.3, v3.13.3, v3.14.3, v3.15.4, v3.16.3, \n\n### Changed\n- [`53a78a72`](http://github.com/seleniumhq/docker-selenium/commit/53a78a7223937a6bc9ec2bb4c327016426c50b5f) - [ci] Update tag 4.27.0-20241225 in docs and files :: Selenium CI Bot\n- [`dddbebbf`](http://github.com/seleniumhq/docker-selenium/commit/dddbebbf74243ea3c96e59165c06d4877fc03a7f) - K8s: Config clusterIP, externalName to svc of Hub, Router, EventBus :: Viet Nguyen Duc\n- [`08a9ea1d`](http://github.com/seleniumhq/docker-selenium/commit/08a9ea1df0bb635d50ff7a5d25122921f4ad8b78) - K8s: Node preStop rely on local PID :: Viet Nguyen Duc\n- [`d4ed4ef2`](http://github.com/seleniumhq/docker-selenium/commit/d4ed4ef27a95c4b87d90a6043141f163ffbb05af) - [ci] Update workflow for secrets inherit :: Viet Nguyen Duc\n- [`c91807ba`](http://github.com/seleniumhq/docker-selenium/commit/c91807bae149834d1b0942363ca9de27187145ae) - Update Helm release kube-prometheus-stack to v67.2.1 (#2518) :: renovate[bot]\n- [`ffb182d0`](http://github.com/seleniumhq/docker-selenium/commit/ffb182d0db500d2c7e9025623222faeef145c33d) - Update Helm release postgresql to v16.3.3 (#2523) :: renovate[bot]\n- [`a8413090`](http://github.com/seleniumhq/docker-selenium/commit/a84130906c1c97c619f5e35e83ca0e33b05aa65e) - Update Helm release redis to v20.6.1 (#2524) :: renovate[bot]\n- [`f5679f51`](http://github.com/seleniumhq/docker-selenium/commit/f5679f5165cc4999ab2d254d00814c89c7dd6f83) - Docker: Improve the video recording container graceful shutdown (#2527) :: Viet Nguyen Duc\n- [`d86d252f`](http://github.com/seleniumhq/docker-selenium/commit/d86d252f6d4b92c57acb05fed52be87741f205b9) -  K8s: Autoscaling using KEDA core 2.16.1 (#2531) :: Viet Nguyen Duc\n- [`6f90ecba`](http://github.com/seleniumhq/docker-selenium/commit/6f90ecbacc651f4775ac9b6d848a86f698dbbddb) - K8s: Selenium Grid in case multiple scaler triggers are activate (#2515) :: Viet Nguyen Duc\n- [`2741b810`](http://github.com/seleniumhq/docker-selenium/commit/2741b81098e1b516349e64e830953d2c3a9189f9) - Update Helm release postgresql to v16.3.2 (#2516) :: renovate[bot]\n- [`d4f67f0f`](http://github.com/seleniumhq/docker-selenium/commit/d4f67f0fbb04c62431a094cfabd538ba753867f5) - Update Helm release postgresql to v16.2.5 (#2496) :: renovate[bot]\n- [`6e322d14`](http://github.com/seleniumhq/docker-selenium/commit/6e322d149a5e07978efe1ea3d9ee17dc8b8a6eeb) - Update Helm release redis to v20.6.0 (#2514) :: renovate[bot]\n- [`732b3756`](http://github.com/seleniumhq/docker-selenium/commit/732b37564d6713f93cfc7e9d1fc4367c1b895889) - Update Helm release kube-prometheus-stack to v67.2.0 (#2513) :: renovate[bot]\n- [`033b65b7`](http://github.com/seleniumhq/docker-selenium/commit/033b65b70c7c4329732511b2906cdbc427f0efc0) - Update Helm release redis to v20.4.1 (#2499) :: renovate[bot]\n- [`5369ab1c`](http://github.com/seleniumhq/docker-selenium/commit/5369ab1cfea5dd54d5fcecfaa06788614635bfaa) - Update Helm release kube-prometheus-stack to v67 (#2510) :: renovate[bot]\n- [`d66ac528`](http://github.com/seleniumhq/docker-selenium/commit/d66ac5283a06d293af0ee140cac8867a3b39ec46) - Build static FFmpeg and copy binary to Node base (#2468) :: Viet Nguyen Duc\n- [`36d98e98`](http://github.com/seleniumhq/docker-selenium/commit/36d98e988b9427f619db426a184b909a41992784) - Correct kubectl cli params in keda patch job (#2501) :: jbolsens-legion\n- [`bd948709`](http://github.com/seleniumhq/docker-selenium/commit/bd9487096046548b37b8515a3236e7fa87971ecf) - Update chart 0.38.1 changelog :: Viet Nguyen Duc\n\n- Chart is tested autoscaling capabilities with KEDA image tag: 2.16.1\n\n## :heavy_check_mark: selenium-grid-0.38.1\n\n- Chart is using image tag 4.27.0-20241204\n- Chart is tested on Kubernetes versions: v1.25.16, v1.26.15, v1.27.16, v1.28.15, v1.29.10, v1.30.6, v1.31.2, \n- Chart is tested on container runtime Docker versions: 24.0.9, 24.0.9, 24.0.9, 24.0.9, 25.0.5, 26.1.4, 27.3.1, \n- Chart is tested on Helm versions: v3.11.3, v3.11.3, v3.12.3, v3.13.3, v3.14.3, v3.15.4, v3.16.3, \n\n### Changed\n- [`739d7e8c`](http://github.com/seleniumhq/docker-selenium/commit/739d7e8c5305987a814cd670589e68c7dce7329e) - Update tag 4.27.0-20241204 in docs and files :: Selenium CI Bot\n- [`26c177da`](http://github.com/seleniumhq/docker-selenium/commit/26c177dadd7800fae835c921d4d1653b4a60b27f) - chore(deps): update Helm release postgresql to v16.2.4 (#2493) :: renovate[bot]\n- [`49c4a2fd`](http://github.com/seleniumhq/docker-selenium/commit/49c4a2fd7e800d809fe3821b86220dc5793c0b7e) - K8s: Add configs for sessions external datastore (#2491) :: Viet Nguyen Duc\n- [`7e6b9b30`](http://github.com/seleniumhq/docker-selenium/commit/7e6b9b3033646156299935cae3bb4b56f1da7270) - K8s: Add test results for Grid autoscaling with KEDA (#2490) :: Viet Nguyen Duc\n- [`cf0c839a`](http://github.com/seleniumhq/docker-selenium/commit/cf0c839ab05a6ae958ef2ef813c6d9aaddbf65d7) - K8s: regression issue on template for nodes service.enabled (#2484) :: Viet Nguyen Duc\n- [`a4c352d7`](http://github.com/seleniumhq/docker-selenium/commit/a4c352d7e024c521946ac887bd3e305add91a59b) - chore(deps): Update Helm release kube-prometheus-stack to v66.3.0 (#2480) :: renovate[bot]\n- [`689a62d9`](http://github.com/seleniumhq/docker-selenium/commit/689a62d96a6d558e06843ed36970dbece497fb6b) - chore(deps): Update Helm release jaeger to v3.3.3 (#2483) :: renovate[bot]\n- [`fcfb16ee`](http://github.com/seleniumhq/docker-selenium/commit/fcfb16eea52e412dffdcb756c3bac78681ad2e71) - Update chart 0.38.0 changelog [skip ci] :: Selenium CI Bot\n\n### Experimental\n- Selenium Grid Scaler implementation preview. [README](https://github.com/seleniumhq/docker-selenium/tree/trunk/.keda/README.md)\n\n## :heavy_check_mark: selenium-grid-0.38.0\n\n- Chart is using image tag 4.27.0-20241127\n- Chart is tested on Kubernetes versions: v1.25.16, v1.26.15, v1.27.16, v1.28.15, v1.29.10, v1.30.6, v1.31.2, \n- Chart is tested on container runtime Docker versions: 24.0.9, 24.0.9, 24.0.9, 24.0.9, 25.0.5, 26.1.4, 27.3.1, \n- Chart is tested on Helm versions: v3.11.3, v3.11.3, v3.12.3, v3.13.3, v3.14.3, v3.15.4, v3.16.3, \n\n### Changed\n- [`c5e10a7c`](http://github.com/seleniumhq/docker-selenium/commit/c5e10a7c7f8e6538f5bee7079a7d6f7e0587368b) - Update tag 4.27.0-20241127 in docs and files :: Selenium CI Bot\n- [`4e202839`](http://github.com/seleniumhq/docker-selenium/commit/4e202839343e5671f420a2d4af3dcc03749d732e) - [ci] Update command to get host ip in runners :: Viet Nguyen Duc\n- [`60603842`](http://github.com/seleniumhq/docker-selenium/commit/606038425ba721ba57a1ae9038c187cb2490e9fd) - chore(deps): update helm release kube-prometheus-stack to v66 (#2461) :: renovate[bot]\n- [`7727b6d8`](http://github.com/seleniumhq/docker-selenium/commit/7727b6d8881728d4cc9f37d173646307329fd3c2) - K8s: Use KEDA patch image tag for scaler implementation preview (#2477) :: Viet Nguyen Duc\n- [`bea0769a`](http://github.com/seleniumhq/docker-selenium/commit/bea0769a998216d4a0c2a82b2a6e19139596ceca) - K8s: Multiple nodes browser in Helm configs (#2475) :: Viet Nguyen Duc\n- [`3dddb7d0`](http://github.com/seleniumhq/docker-selenium/commit/3dddb7d0027adbf56b9e287888ec05f309d04c07) - K8s: Update ScaledJob scaling strategy to `eager` as default (#2466) :: Viet Nguyen Duc\n- [`33471fe8`](http://github.com/seleniumhq/docker-selenium/commit/33471fe8e1aa48efdf52937262b2bfed86ef1e07) - K8s: Deployment scale metricType should be Value instead of AverageValue (#2465) :: Viet Nguyen Duc\n- [`bf73ae98`](http://github.com/seleniumhq/docker-selenium/commit/bf73ae985f20b8363c3c46d414965a64036ef390) - Update chart 0.37.1 changelog [skip ci] :: Selenium CI Bot\n\n### Experimental\n- Selenium Grid Scaler implementation preview. [README](https://github.com/seleniumhq/docker-selenium/tree/trunk/.keda/README.md)\n\n## :heavy_check_mark: selenium-grid-0.37.1\n\n- Chart is using image tag 4.26.0-20241101\n- Chart is tested on Kubernetes versions: v1.25.16, v1.26.15, v1.27.16, v1.28.15, v1.29.10, v1.30.6, v1.31.2, \n- Chart is tested on container runtime Docker versions: 24.0.9, 24.0.9, 24.0.9, 24.0.9, 25.0.5, 26.1.4, 27.2.0, \n- Chart is tested on Helm versions: v3.11.3, v3.11.3, v3.12.3, v3.13.3, v3.14.3, v3.15.4, v3.16.1, \n\n### Changed\n- [`fc81fd05`](http://github.com/seleniumhq/docker-selenium/commit/fc81fd05ac7f5b51b91e089d4e189c5b2ea5e720) - Release chart 0.37.1 :: Viet Nguyen Duc\n- [`82350ba8`](http://github.com/seleniumhq/docker-selenium/commit/82350ba80a959464c74ecf6582bea2ac97eca913) - Update chart configuration table :: Selenium CI Bot\n- [`edfe8a30`](http://github.com/seleniumhq/docker-selenium/commit/edfe8a3020db5beeb1d7f11a0b45194aae3fe6d3) - chore(deps): update helm release kube-prometheus-stack to v65.8.1 (#2428) :: renovate[bot]\n- [`a1887055`](http://github.com/seleniumhq/docker-selenium/commit/a1887055c59b200b8ffd5f46a02809fc6be9dc25) - chore(deps): update helm release jaeger to v3.3.2 (#2455) :: renovate[bot]\n- [`e0a7d63b`](http://github.com/seleniumhq/docker-selenium/commit/e0a7d63b75c7540a9447a8008feb164e715fcb3e) - chore(deps): update helm release keda to v2.16.0 (#2459) :: renovate[bot]\n- [`06663919`](http://github.com/seleniumhq/docker-selenium/commit/06663919defd859345c7b5d942106405453d30cf) - Update chart 0.37.0 changelog [skip ci] :: Selenium CI Bot\n\n### Experimental\n- Selenium Grid Scaler implementation preview. [README](https://github.com/seleniumhq/docker-selenium/tree/trunk/.keda/README.md)\n\n## :heavy_check_mark: selenium-grid-0.37.0\n\n- Chart is using image tag 4.26.0-20241101\n- Chart is tested on Kubernetes versions: v1.25.16, v1.26.15, v1.27.16, v1.28.15, v1.29.10, v1.30.6, v1.31.2, \n- Chart is tested on container runtime Docker versions: 24.0.9, 24.0.9, 24.0.9, 24.0.9, 25.0.5, 26.1.4, 27.2.0, \n- Chart is tested on Helm versions: v3.10.3, v3.11.3, v3.12.3, v3.13.3, v3.14.3, v3.15.4, v3.16.1, \n\n### Changed\n- [`6ce652ba`](http://github.com/seleniumhq/docker-selenium/commit/6ce652ba6ec1108d7ce05b4af5ea140d73873b59) - Update tag 4.26.0-20241101 in docs and files :: Selenium CI Bot\n- [`b41b6271`](http://github.com/seleniumhq/docker-selenium/commit/b41b62713a67488634861a52c8c6444e1b6beb71) - chart: set job scaling strategy to accurate by default :: Viet Nguyen Duc\n- [`a862efa3`](http://github.com/seleniumhq/docker-selenium/commit/a862efa3026a5aba100721ff83d858f67a1eafc7) - chart: Add templates for relay node (#2453) :: Viet Nguyen Duc\n- [`1fdc58bf`](http://github.com/seleniumhq/docker-selenium/commit/1fdc58bf072b7a276d8f33639a681f1d1c7cd3bc) - chart: Allow overwrite config videoRecorder in each node (#2445) :: Viet Nguyen Duc\n- [`3290a305`](http://github.com/seleniumhq/docker-selenium/commit/3290a305c0d122ce90d5301b96f46dc0728e33e8) - Update chart 0.36.5 changelog [skip ci] :: Selenium CI Bot\n\n### Experimental\n- Selenium Grid Scaler implementation preview. [README](https://github.com/seleniumhq/docker-selenium/tree/trunk/.keda/README.md)\n\n## :heavy_check_mark: selenium-grid-0.36.5\n\n- Chart is using image tag 4.25.0-20241024\n- Chart is tested on Kubernetes versions: v1.25.16, v1.26.15, v1.27.16, v1.28.15, v1.29.10, v1.30.6, v1.31.2, \n- Chart is tested on container runtime Docker versions: 24.0.9, 24.0.9, 24.0.9, 24.0.9, 25.0.5, 26.1.4, 27.2.0, \n- Chart is tested on Helm versions: v3.10.3, v3.11.3, v3.12.3, v3.13.3, v3.14.3, v3.15.4, v3.16.1, \n\n### Changed\n- [`653af3e2`](http://github.com/seleniumhq/docker-selenium/commit/653af3e22860eea2fd236c8289c874ba15837a98) - Update tag 4.25.0-20241024 in docs and files :: Selenium CI Bot\n- [`42a7ecdb`](http://github.com/seleniumhq/docker-selenium/commit/42a7ecdbc745441309a66eb079d74a910276bb56) - Update log timestamp in custom scripts align with supervisord (#2441) :: Viet Nguyen Duc\n\n### Experimental\n- Selenium Grid Scaler implementation preview. [README](https://github.com/seleniumhq/docker-selenium/tree/trunk/.keda/README.md)\n\n## :heavy_check_mark: selenium-grid-0.36.4\n\n- Chart is using image tag 4.25.0-20241010\n- Chart is tested on Kubernetes versions: v1.25.16, v1.26.15, v1.27.16, v1.28.14, v1.29.9, v1.30.5, v1.31.1, \n- Chart is tested on container runtime Docker versions: 24.0.9, 24.0.9, 24.0.9, 24.0.9, 25.0.5, 26.1.4, 27.2.0, \n- Chart is tested on Helm versions: v3.10.3, v3.11.3, v3.12.3, v3.13.3, v3.14.3, v3.15.4, v3.16.1, \n\n### Fixed\n- [`ec01d2f5`](http://github.com/seleniumhq/docker-selenium/commit/ec01d2f5fe22a3ba0932b4e095a083585abbc134) - fix: bash avoiding newline when Base64 encoding a long string (#2437) :: Viet Nguyen Duc\n\n### Changed\n- [`022c35f6`](http://github.com/seleniumhq/docker-selenium/commit/022c35f68f825540f6cde72f5c0d379b54156e29) - chore(deps): update helm release keda to v2.15.2 (#2433) :: renovate[bot]\n- [`36ba1870`](http://github.com/seleniumhq/docker-selenium/commit/36ba1870f113aba414a08dd1211d5fc5409ff370) - Update chart 0.36.3 changelog [skip ci] :: Selenium CI Bot\n\n### Experimental\n- Selenium Grid Scaler implementation preview. [README](https://github.com/seleniumhq/docker-selenium/tree/trunk/.keda/README.md)\n\n## :heavy_check_mark: selenium-grid-0.36.3\n\n- Chart is using image tag 4.25.0-20241010\n- Chart is tested on Kubernetes versions: v1.25.16, v1.26.15, v1.27.16, v1.28.14, v1.29.9, v1.30.5, v1.31.1, \n- Chart is tested on container runtime Docker versions: 24.0.9, 24.0.9, 24.0.9, 24.0.9, 25.0.5, 26.1.4, 27.2.0, \n- Chart is tested on Helm versions: v3.10.3, v3.11.3, v3.12.3, v3.13.3, v3.14.3, v3.15.4, v3.16.1, \n\n### Changed\n- [`b86c952c`](http://github.com/seleniumhq/docker-selenium/commit/b86c952c5c450ad96eb9eae336aa6ab5eebf3b99) - chart(update): template remove redundant newlines :: Viet Nguyen Duc\n- [`e7ca1dcd`](http://github.com/seleniumhq/docker-selenium/commit/e7ca1dcd85545ea5ae920634be671d1f48e885a0) - chart(update): Node deployment replicas use minReplicaCount in autoscaling (#2430) :: Viet Nguyen Duc\n- [`94da26e6`](http://github.com/seleniumhq/docker-selenium/commit/94da26e6cc421d781cb0456497fa852b5cbb79fe) - chart(update): use podIP in all components server host (#2429) :: Viet Nguyen Duc\n- [`5802c323`](http://github.com/seleniumhq/docker-selenium/commit/5802c323459957f7032065a1fee84703d7ec0150) - Update chart 0.36.2 changelog [skip ci] :: Selenium CI Bot\n\n### Experimental\n- Selenium Grid Scaler implementation preview. [README](https://github.com/seleniumhq/docker-selenium/tree/trunk/.keda/README.md)\n\n## :heavy_check_mark: selenium-grid-0.36.2\n\n- Chart is using image tag 4.25.0-20241010\n- Chart is tested on Kubernetes versions: v1.25.16, v1.26.15, v1.27.16, v1.28.14, v1.29.9, v1.30.5, v1.31.1, \n- Chart is tested on container runtime Docker versions: 24.0.9, 24.0.9, 24.0.9, 24.0.9, 25.0.5, 26.1.4, 27.2.0, \n- Chart is tested on Helm versions: v3.10.3, v3.11.3, v3.12.3, v3.13.3, v3.14.3, v3.15.4, v3.16.1, \n\n### Changed\n- [`72387472`](http://github.com/seleniumhq/docker-selenium/commit/723874729ab63018fc0405490a6f3313ca575ddd) - Update tag 4.25.0-20241010 in docs and files :: Selenium CI Bot\n- [`c3ad0995`](http://github.com/seleniumhq/docker-selenium/commit/c3ad0995c9288c39e62e91978ab96c0b253753bc) - Update chart configuration table :: Selenium CI Bot\n- [`be2a920f`](http://github.com/seleniumhq/docker-selenium/commit/be2a920f723d75ca4725e7b22b94324682b04b78) - chore(deps): update helm release kube-prometheus-stack to v65 (#2422) :: renovate[bot]\n- [`ef2c6c49`](http://github.com/seleniumhq/docker-selenium/commit/ef2c6c493ca41b3f2760b93a5678725bdcccd808) - chore(deps): update helm release ingress-nginx to v4.11.3 (#2424) :: renovate[bot]\n- [`ea7b913c`](http://github.com/seleniumhq/docker-selenium/commit/ea7b913c8d58ffcff0923c2ff128b4ccf135b82e) - chart(feat): add graphql metrics exporter for monitoring (#2425) :: Viet Nguyen Duc\n- [`1a9aa386`](http://github.com/seleniumhq/docker-selenium/commit/1a9aa386352050a357abdc5cfbbcf5ea01cc1e71) - chart(fix): node.lifecycle not being rendered from values file (#2420) :: Bruno Brito\n- [`dedd69b1`](http://github.com/seleniumhq/docker-selenium/commit/dedd69b113dfae966fd58b79338a136f40fea8fc) - Update chart 0.36.1 changelog [skip ci] :: Selenium CI Bot\n\n### Experimental\n- Selenium Grid Scaler implementation preview. [README](https://github.com/seleniumhq/docker-selenium/tree/trunk/.keda/README.md)\n\n## :heavy_check_mark: selenium-grid-0.36.1\n\n- Chart is using image tag 4.25.0-20240922\n- Chart is tested on Kubernetes versions: v1.26.15, v1.27.16, v1.28.13, v1.29.8, v1.30.4, v1.31.0, \n- Chart is tested on container runtime Docker versions: 24.0.9, 24.0.9, 24.0.9, 25.0.5, 26.1.4, 27.2.0, \n- Chart is tested on Helm versions: v3.10.3, v3.11.3, v3.12.3, v3.13.3, v3.14.4, v3.15.4, \n\n### Changed\n- [`8466588e`](http://github.com/seleniumhq/docker-selenium/commit/8466588e4023ec844bafa18252f7f932d7767621) - chart(fix): `basicAuth.embeddedUrl` in GraphQL endpoint for old scaler compatible (#2408) :: Viet Nguyen Duc\n- [`5a3f1e9e`](http://github.com/seleniumhq/docker-selenium/commit/5a3f1e9e821f8823a4ccfea48628a6ba02cce776) - Update base image ubuntu:noble-20240827.1 :: Viet Nguyen Duc\n- [`ff5b2489`](http://github.com/seleniumhq/docker-selenium/commit/ff5b2489e8c97a688d2d1ef18b27a67a0f74370f) - chore(deps): update helm release kube-prometheus-stack to v62.7.0 (#2397) :: renovate[bot]\n- [`75b59cfb`](http://github.com/seleniumhq/docker-selenium/commit/75b59cfb56190c0f12e27ec48fcc9e9f06184523) - chore(deps): update helm release jaeger to v3.3.1 (#2393) :: renovate[bot]\n- [`87111047`](http://github.com/seleniumhq/docker-selenium/commit/871110478dd18a260e58f6e56e8192e12e32b1af) - Update chart 0.36.0 changelog [skip ci] :: Selenium CI Bot\n\n### Experimental\n- Selenium Grid Scaler implementation preview. [README](https://github.com/seleniumhq/docker-selenium/tree/trunk/.keda/README.md)\n\n## :heavy_check_mark: selenium-grid-0.36.0\n\n- Chart is using image tag 4.25.0-20240922\n- Chart is tested on Kubernetes versions: v1.26.15, v1.27.16, v1.28.13, v1.29.8, v1.30.4, v1.31.0, \n- Chart is tested on container runtime Docker versions: 24.0.9, 24.0.9, 24.0.9, 25.0.5, 26.1.4, 27.2.0, \n- Chart is tested on Helm versions: v3.10.3, v3.11.3, v3.12.3, v3.13.3, v3.14.4, v3.15.4, \n\n### Fixed\n- [`65933cdc`](http://github.com/seleniumhq/docker-selenium/commit/65933cdcfff19dd887767c7925740e95adf2d835) - fix: video container wait capabilities fully before extracting details :: Viet Nguyen Duc\n\n### Changed\n- [`ba687ae2`](http://github.com/seleniumhq/docker-selenium/commit/ba687ae2ae02afc4be9770dac3def1ad09d939bb) - Update tag 4.25.0-20240922 in docs and files :: Selenium CI Bot\n- [`12868dd0`](http://github.com/seleniumhq/docker-selenium/commit/12868dd0e07ebf348bd5e46c6aed2810f5d89fd7) - chart: add config key to disable resource creation :: Viet Nguyen Duc\n- [`0ac93a9c`](http://github.com/seleniumhq/docker-selenium/commit/0ac93a9cf3f40c040b6f271ce6f599609c1419f2) - Experimental: Selenium Grid scaler with different nodeMaxSessions per node (#2402) :: Viet Nguyen Duc\n- [`6c4f76e7`](http://github.com/seleniumhq/docker-selenium/commit/6c4f76e7547d93272bfbadee55b233e7b49e37d4) - chart(add): Grid scaler use trigger auth to secure GraphQL endpoint (#2401) :: Viet Nguyen Duc\n- [`2af6166d`](http://github.com/seleniumhq/docker-selenium/commit/2af6166d263ab5d74be4178aa882a00f4aa9acf1) - Experimental: Selenium Grid scaler in K8s implementation preview (#2400) :: Viet Nguyen Duc\n- [`e27f6edb`](http://github.com/seleniumhq/docker-selenium/commit/e27f6edbfa0b31464bdeae3a772dc01c4725b8b5) - chart(update): replace another mininal kubectl container for patch job :: Viet Nguyen Duc\n- [`35fafaf2`](http://github.com/seleniumhq/docker-selenium/commit/35fafaf2e22601b9553ba4c9ad90196fc54b2d76) - Update _helpers.tpl to adress missing resource limits in pre-puller init containers for firefox,edge,... (#2399) :: Markus Kopp\n- [`7dc9f187`](http://github.com/seleniumhq/docker-selenium/commit/7dc9f187e41ce8e892696fee148b5d3eb7aef86e) - chart: protect resources naming against .Release.Nam contains dots. from ArgoCD :: Viet Nguyen Duc\n- [`a545d08e`](http://github.com/seleniumhq/docker-selenium/commit/a545d08ee8aea90bb3595744c6dc7e4a872cac4b) - Update chart 0.35.2 changelog [skip ci] :: Selenium CI Bot\n\n### Experimental\n- Selenium Grid Scaler implementation preview. [README](https://github.com/seleniumhq/docker-selenium/tree/trunk/.keda/README.md)\n\n## :heavy_check_mark: selenium-grid-0.35.2\n\n- Chart is using image tag 4.24.0-20240907\n- Chart is tested on Kubernetes versions: v1.26.15, v1.27.16, v1.28.13, v1.29.8, v1.30.4, v1.31.0, \n- Chart is tested on container runtime Docker versions: 24.0.9, 24.0.9, 24.0.9, 25.0.5, 26.1.4, 27.2.0, \n- Chart is tested on Helm versions: v3.10.3, v3.11.3, v3.12.3, v3.13.3, v3.14.4, v3.15.4, \n\n### Changed\n- [`9a2afbc0`](http://github.com/seleniumhq/docker-selenium/commit/9a2afbc0290ef031e7458306219f2e8491cefb4d) - chore(deps): update helm release kube-prometheus-stack to v62.6.0 (#2385) :: renovate[bot]\n- [`44d92249`](http://github.com/seleniumhq/docker-selenium/commit/44d922495cc686d3fc48605e2b3d9d0836f399a5) - chart(fix): ensure images are pre-pulled and started together in Node (#2387) :: Viet Nguyen Duc\n- [`5f42b308`](http://github.com/seleniumhq/docker-selenium/commit/5f42b30815bf32eb170822c09161c03858f46fc7) - update: config basicAuth.enabled is false by default :: Viet Nguyen Duc\n- [`c8cd02b8`](http://github.com/seleniumhq/docker-selenium/commit/c8cd02b8c17b530539b38a711bd9f7938f268d4d) - Update chart 0.35.1 changelog [skip ci] :: Selenium CI Bot\n\n## :heavy_check_mark: selenium-grid-0.35.1\n\n- Chart is using image tag 4.24.0-20240907\n- Chart is tested on Kubernetes versions: v1.26.15, v1.27.16, v1.28.13, v1.29.8, v1.30.4, v1.31.0, \n- Chart is tested on container runtime Docker versions: 24.0.9, 24.0.9, 24.0.9, 25.0.5, 26.1.4, 27.2.0, \n- Chart is tested on Helm versions: v3.10.3, v3.11.3, v3.12.3, v3.13.3, v3.14.4, v3.15.4, \n\n### Changed\n- [`bcc20e28`](http://github.com/seleniumhq/docker-selenium/commit/bcc20e28ce1301fbe01b06b8e8ace72b0972026a) - Update tag 4.24.0-20240907 in docs and files :: Selenium CI Bot\n- [`b53dc3fb`](http://github.com/seleniumhq/docker-selenium/commit/b53dc3fb37815b4310eb7c047ff17dc364a2f839) - update: config supervisord via ENV variables :: Viet Nguyen Duc\n- [`44d8bb53`](http://github.com/seleniumhq/docker-selenium/commit/44d8bb532b4501dc0115bd2537cc2fbc1ab40422) - chore(deps): update helm release kube-prometheus-stack to v62.5.0 (#2384) :: renovate[bot]\n- [`e4858833`](http://github.com/seleniumhq/docker-selenium/commit/e4858833a5229f8f5b9cc3a41fdd290e7b3a6e13) - chore(deps): update helm release kube-prometheus-stack to v62.4.0 (#2383) :: renovate[bot]\n- [`4f2a6e41`](http://github.com/seleniumhq/docker-selenium/commit/4f2a6e41e793e5c17c41ae000f6499bdd311782d) - chart(add): set topologySpreadConstraints for components :: Viet Nguyen Duc\n- [`80ebff0f`](http://github.com/seleniumhq/docker-selenium/commit/80ebff0f95b48b3a395719222d32108ec246661b) - build: auto generate table of chart configuration parameter :: Viet Nguyen Duc\n- [`53e48937`](http://github.com/seleniumhq/docker-selenium/commit/53e48937779cde056debc60c801a1a747152740e) - Update chart 0.35.0 changelog [skip ci] :: Selenium CI Bot\n\n## :heavy_check_mark: selenium-grid-0.35.0\n\n- Chart is using image tag 4.24.0-20240830\n- Chart is tested on Kubernetes versions: v1.25.16, v1.26.15, v1.27.16, v1.28.13, v1.29.8, v1.30.4, \n- Chart is tested on container runtime Docker versions: \n- Chart is tested on Helm versions: v3.10.3, v3.11.3, v3.12.3, v3.13.3, v3.14.4, v3.15.4, \n\n### Changed\n- [`c3107507`](http://github.com/seleniumhq/docker-selenium/commit/c31075079cad81cf82e4cc3ffb49a37dab5c3a3a) - Update tag 4.24.0-20240830 in docs and files :: Selenium CI Bot\n- [`4c0d9d9a`](http://github.com/seleniumhq/docker-selenium/commit/4c0d9d9a3c3707d456e481f64fbc0a899b9b7552) - chart(rollback): config `ingress.enabled` to create ingress resource only :: Viet Nguyen Duc\n- [`4e00e3e3`](http://github.com/seleniumhq/docker-selenium/commit/4e00e3e3d2e529f9f40c2b9988eb5d5c852912a9) - chore(deps): update helm release kube-prometheus-stack to v62.3.1 (#2376) :: renovate[bot]\n- [`a7e5c405`](http://github.com/seleniumhq/docker-selenium/commit/a7e5c4052f1fc2531b5f27fc47ecb758c44a0054) - update: Selenium Grid 4.24.0 :: Viet Nguyen Duc\n- [`6216a4d9`](http://github.com/seleniumhq/docker-selenium/commit/6216a4d941b5134248bd5353ebcbe87e53f53377) - chart(feat): updateStrategy default RollingUpdate for browsers and Recreate for components :: Viet Nguyen Duc\n- [`deb9d308`](http://github.com/seleniumhq/docker-selenium/commit/deb9d3086130a82d6b2a4dea936c79ef82f8780f) - chore(deps): update helm release kube-prometheus-stack to v62.3.0 (#2367) :: renovate[bot]\n- [`b4dc1124`](http://github.com/seleniumhq/docker-selenium/commit/b4dc11241f9cb5af781325c92632ec2df3fd0bd5) - chore(deps): update helm release jaeger to v3.2.0 (#2371) :: renovate[bot]\n- [`ed2af419`](http://github.com/seleniumhq/docker-selenium/commit/ed2af4193a26cae34d61376dc1d9a76633c36ec0) - update: FFmpeg 7.0.2 and fix video container termination (#2374) :: Viet Nguyen Duc\n- [`918765fa`](http://github.com/seleniumhq/docker-selenium/commit/918765fa8d2176da9e82bf57a1ccafab11dc1ccb) - update: graceful shutdown for recording sidecar container in K8s :: Viet Nguyen Duc\n- [`d26a433b`](http://github.com/seleniumhq/docker-selenium/commit/d26a433b914f914b0b22b62084772fa138ae93d7) - Update chart changelog [skip ci] :: Selenium CI Bot\n\n## :heavy_check_mark: selenium-grid-0.34.3\n\n- Chart is using image tag 4.23.1-20240820\n- Chart is tested on Kubernetes versions: v1.25.16, v1.26.15, v1.27.16, v1.28.13, v1.29.8, v1.30.4, \n- Chart is tested on Helm versions: v3.10.3, v3.11.3, v3.12.3, v3.13.3, v3.14.4, v3.15.4, \n\n### Changed\n- [`2adc4a24`](http://github.com/seleniumhq/docker-selenium/commit/2adc4a240686138f156c4865172f17c03cf5a217) - chart(fix): trim trailing slash in sub path :: Viet Nguyen Duc\n- [`114d008e`](http://github.com/seleniumhq/docker-selenium/commit/114d008eb0f403f77c2f1ed8a413c28b0e44f421) - Update chart changelog [skip ci] :: Selenium CI Bot\n\n## :heavy_check_mark: selenium-grid-0.34.2\n\n- Chart is using image tag 4.23.1-20240820\n- Chart is tested on Kubernetes versions: v1.25.16, v1.26.15, v1.27.16, v1.28.13, v1.29.8, v1.30.4, \n- Chart is tested on Helm versions: v3.10.3, v3.11.3, v3.12.3, v3.13.3, v3.14.4, v3.15.4, \n\n### Changed\n- [`ea5e1a7b`](http://github.com/seleniumhq/docker-selenium/commit/ea5e1a7b6e8829d7e176880ec30ed7ac0d886e6a) - build: fix chart release workflow :: Viet Nguyen Duc\n- [`c0277249`](http://github.com/seleniumhq/docker-selenium/commit/c02772490f7a99d923d51cb3f3fc02cc949ca58c) - Update tag in docs and files :: Selenium CI Bot\n- [`5624122d`](http://github.com/seleniumhq/docker-selenium/commit/5624122d1ea16a1703d77ec3ece8c28c6c5e9c83) - chore(deps): update helm release kube-prometheus-stack to v62 (#2363) :: renovate[bot]\n- [`ccb39d52`](http://github.com/seleniumhq/docker-selenium/commit/ccb39d52c124f4c0851dfeea6115247e12401654) - chore(deps): update helm release ingress-nginx to v4.11.2 (#2357) :: renovate[bot]\n- [`9106ba14`](http://github.com/seleniumhq/docker-selenium/commit/9106ba146d243e4cf8f26751dbe167fa823ef19c) - chart(fix): Remove alias from sub-chart to prevent render issue in other CD tools :: Viet Nguyen Duc\n- [`3bdcb0d4`](http://github.com/seleniumhq/docker-selenium/commit/3bdcb0d4ffc7754e91b6af49739d85db8d14b5d1) - chart(fix): [regression] Able to disable tracing via config key tracing.enabled :: Viet Nguyen Duc\n\n## :heavy_check_mark: selenium-grid-0.34.1\n\n- Chart is using image tag 4.23.1-20240813\n- Chart is tested on Kubernetes versions: v1.25.16, v1.26.15, v1.27.16, v1.28.12, v1.29.7, v1.30.3, \n- Chart is tested on Helm versions: v3.10.3, v3.11.3, v3.12.3, v3.13.3, v3.14.4, v3.15.3, \n\n### Changed\n- [`b1fa21cc`](http://github.com/seleniumhq/docker-selenium/commit/b1fa21ccc1be3880491610e8c42c3d3b1e17482b) - chart(update): metadata.namespace to resources :: Viet Nguyen Duc\n- [`442ee4ad`](http://github.com/seleniumhq/docker-selenium/commit/442ee4addea500d34e4579db0f0fadc57525efbb) - chore(deps): update helm release keda to v2.15.1 (#2351) :: renovate[bot]\n- [`77bc19b9`](http://github.com/seleniumhq/docker-selenium/commit/77bc19b9363152a894c13a395e2c99c889644c02) - chart(release): Update workflow for OCI-based registry publish :: Viet Nguyen Duc\n\n## :heavy_check_mark: selenium-grid-0.34.0\n\n- Chart is using image tag 4.23.1-20240812\n- Chart is tested on Kubernetes versions: v1.25.16, v1.26.15, v1.27.16, v1.28.12, v1.29.7, v1.30.3, \n- Chart is tested on Helm versions: v3.10.3, v3.11.3, v3.12.3, v3.13.3, v3.14.4, v3.15.3, \n\n### Added\n- [`b91d3000`](http://github.com/seleniumhq/docker-selenium/commit/b91d30009731304534e14f453b32b2d733266d9a) - add: secure connection for docker compose (#2344) :: Viet Nguyen Duc\n- [`68ebfe1a`](http://github.com/seleniumhq/docker-selenium/commit/68ebfe1a39a533dfbc4b3fe37701bcfbff6da005) - feat: add support for structure logs (#2342) :: Ilia Lazebnik\n- [`547f97e9`](http://github.com/seleniumhq/docker-selenium/commit/547f97e9ac5e58d44bde8ca8c742e1e61170c4b2) - feat(chart): add support for revisionhistorylimit (#2339) :: Ilia Lazebnik\n\n### Changed\n- [`91233c48`](http://github.com/seleniumhq/docker-selenium/commit/91233c48418bf01c6aa2c89b899970762db9580f) - chart(breaking change): update config key to enable ingress (#2349) :: Viet Nguyen Duc\n- [`22b2f55d`](http://github.com/seleniumhq/docker-selenium/commit/22b2f55d7f6b5f2dce061eb79bbd5890ea9b0ecf) - chore(deps): update helm release kube-prometheus-stack to v61.8.0 (#2348) :: renovate[bot]\n- [`b49b13b4`](http://github.com/seleniumhq/docker-selenium/commit/b49b13b4a6563b9ada7af51d2553b44867872bc4) - update: Tracing is enabled by default (#2347) :: Viet Nguyen Duc\n- [`ac606291`](http://github.com/seleniumhq/docker-selenium/commit/ac606291e801860daa8e2bf651e94351acac478f) - chore(deps): update helm release jaeger to v3.1.2 (#2331) :: renovate[bot]\n- [`e10ee577`](http://github.com/seleniumhq/docker-selenium/commit/e10ee577f6a4417f5540092284ce5f9b7e3e8c89) - chore(deps): update helm release kube-prometheus-stack to v61.7.2 (#2330) :: renovate[bot]\n- [`8bada805`](http://github.com/seleniumhq/docker-selenium/commit/8bada80526a658db7d4568c60da0f7cf91fe1b19) - update: handle graceful shutdown in Node container (#2337) :: Viet Nguyen Duc\n- [`7cbc96a0`](http://github.com/seleniumhq/docker-selenium/commit/7cbc96a03d301f812326bef534e6a78754a13d52) - chore(deps): update helm release keda to v2.15.0 (#2335) :: renovate[bot]\n- [`1f519c67`](http://github.com/seleniumhq/docker-selenium/commit/1f519c67080f483b11d220a55ef232bafc28c475) - chart(update): update env vars and health check scripts (#2334) :: Viet Nguyen Duc\n\n## :heavy_check_mark: selenium-grid-0.33.0\n\n- Chart is using image tag 4.23.0-20240727\n- Chart is tested on Kubernetes versions: v1.25.16, v1.26.15, v1.27.16, v1.28.12, v1.29.7, v1.30.3, \n- Chart is tested on Helm versions: v3.10.3, v3.11.3, v3.12.3, v3.13.3, v3.14.4, v3.15.3, \n\n### Added\n- [`582fb2c7`](http://github.com/seleniumhq/docker-selenium/commit/582fb2c74ea343819ded8011a917ecfa6ce58d97) - add: Env var SE_SUPERVISORD_LOG_LEVEL to set supervisord log level (#2317) :: Viet Nguyen Duc\n\n### Changed\n- [`04d1e90e`](http://github.com/seleniumhq/docker-selenium/commit/04d1e90ede4ac05674bfe64f6754c663fab3c797) - chore(deps): update helm release kube-prometheus-stack to v61.4.0 (#2327) :: renovate[bot]\n- [`395a401a`](http://github.com/seleniumhq/docker-selenium/commit/395a401a80d3d6241ccbd2e9a940c37c3b14837c) - chart(add): Default ingress annotations for upstream keepalive, or disable HTTP/2 (#2328) :: Viet Nguyen Duc\n- [`e15df42f`](http://github.com/seleniumhq/docker-selenium/commit/e15df42f8f1f2f4447288afebf08362c4a16291a) - chart(breaking change): enable TLS and default annotations for ingress (#2326) :: Viet Nguyen Duc\n- [`b5d6af37`](http://github.com/seleniumhq/docker-selenium/commit/b5d6af373894bdb12d2e4caac6440cfef5cc7c68) - chart(add): Set pod/container name to node stereotypes (#2323) :: Viet Nguyen Duc\n- [`6b2a0153`](http://github.com/seleniumhq/docker-selenium/commit/6b2a0153a83e71ffe160c88d00599b68839f5cda) - chore(deps): update helm release kube-prometheus-stack to v61 (#2292) :: renovate[bot]\n- [`5f6db7e2`](http://github.com/seleniumhq/docker-selenium/commit/5f6db7e2615c1818a6e8b92c6787c4bde3f173cc) - chore(deps): update helm release jaeger to v3.1.1 (#2290) :: renovate[bot]\n- [`a184528d`](http://github.com/seleniumhq/docker-selenium/commit/a184528d6b55aab7cef604e7313893ae69cc89b2) - chore(deps): update helm release ingress-nginx to v4.11.1 (#2299) :: renovate[bot]\n- [`9bd30b0d`](http://github.com/seleniumhq/docker-selenium/commit/9bd30b0db3fa4df18f57226c433bc6b7a9870ce6) - chart(add): proactive to set browser args via container env var (#2308) :: Viet Nguyen Duc\n- [`4cc20386`](http://github.com/seleniumhq/docker-selenium/commit/4cc20386419aecffac924860bed56c2938b49537) - chart(breaking change): refactoring config keys to enable secure connection (#2306) :: Viet Nguyen Duc\n\n## :heavy_check_mark: selenium-grid-0.32.0\n\n- Chart is using image tag 4.22.0-20240621\n- Chart is tested on Kubernetes versions: v1.25.16, v1.26.15, v1.27.15, v1.28.11, v1.29.6, v1.30.2, \n- Chart is tested on Helm versions: v3.10.3, v3.11.3, v3.12.3, v3.13.3, v3.14.4, v3.15.2, \n\n### Added\n- [`f2280e98`](http://github.com/seleniumhq/docker-selenium/commit/f2280e985e701d53a1282631b166198752090ebc) - feat(chart): probe checks for Distributor and Router (#2272) :: Viet Nguyen Duc\n\n### Fixed\n- [`d5398b75`](http://github.com/seleniumhq/docker-selenium/commit/d5398b75253f13f54da1f31e32cefeda66f5245f) - fix(chart): pod labels and annotations for patch-scaledobjects (#2274) :: Viet Nguyen Duc\n\n### Changed\n- [`e16a1677`](http://github.com/seleniumhq/docker-selenium/commit/e16a167723b7908cda64ca97be00750ff6f61c40) - chart: fix config ingress.tls :: Viet Nguyen Duc\n- [`904b8ea3`](http://github.com/seleniumhq/docker-selenium/commit/904b8ea36613e1100e09cbe2d5f4bb491181e07a) - chart: not patch KEDA objects if autoscaling disabled :: Viet Nguyen Duc\n- [`2f0f2494`](http://github.com/seleniumhq/docker-selenium/commit/2f0f2494d6036370b2336c0ebdf4ed962b2a6d11) - chart: update default chart values :: Viet Nguyen Duc\n- [`2c814158`](http://github.com/seleniumhq/docker-selenium/commit/2c8141583da2e7afe86537b3c4178c07dfe36b3f) - chore(deps): update helm release kube-prometheus-stack to v60 (#2280) :: renovate[bot]\n- [`148541c5`](http://github.com/seleniumhq/docker-selenium/commit/148541c553995ff42176ff12c07af75bdd4989be) - chore(deps): update helm release jaeger to v3.0.10 (#2253) :: renovate[bot]\n- [`714ef8ad`](http://github.com/seleniumhq/docker-selenium/commit/714ef8ad15b0e9e7b8ca1fc5cc696a9447060b3e) - chore(deps): update helm release kube-prometheus-stack to v59 (#2271) :: renovate[bot]\n\n## :heavy_check_mark: selenium-grid-0.31.1\n\n- Chart is using image tag 4.21.0-20240522\n- Chart is tested on Kubernetes versions: v1.25.16, v1.26.15, v1.27.14, v1.28.10, v1.29.5, v1.30.1, \n- Chart is tested on Helm versions: v3.10.3, v3.11.3, v3.12.3, v3.13.3, v3.14.4, v3.15.0, \n\n### Changed\n- [`5eebd36b`](http://github.com/seleniumhq/docker-selenium/commit/5eebd36b6a6877cc9a0efe91355e1d300d39476e) - [build]: rollback docs update to bump new release :: Viet Nguyen Duc\n- [`de9f2c58`](http://github.com/seleniumhq/docker-selenium/commit/de9f2c5812e286b93e4ce94ac01d7b3d0cd9a64a) - [build][test]: Release docker images for aarch64 platform (#2266) :: Viet Nguyen Duc\n- [`c082aedf`](http://github.com/seleniumhq/docker-selenium/commit/c082aedf5f9c9fbefaa672d8d2097e9026533778) - Update tag in docs and files :: Selenium CI Bot\n\n## :heavy_check_mark: selenium-grid-0.31.0\n\n- Chart is using image tag 4.21.0-20240517\n- Chart is tested on Kubernetes versions: v1.25.16, v1.26.15, v1.27.13, v1.28.9, v1.29.4, v1.30.0, \n- Chart is tested on Helm versions: v3.10.3, v3.10.3, v3.11.3, v3.12.3, v3.13.3, v3.14.4, \n\n### Changed\n- [`471adc38`](http://github.com/seleniumhq/docker-selenium/commit/471adc388530ed85d0f67871fc19c72debd8ac98) - Update tag in docs and files :: Selenium CI Bot\n\n## :heavy_check_mark: selenium-grid-0.30.2\n\n- Chart is using image tag 4.20.0-20240505\n- Chart is tested on Kubernetes versions: v1.25.16, v1.26.15, v1.27.13, v1.28.9, v1.29.4, v1.30.0, \n- Chart is tested on Helm versions: v3.10.3, v3.10.3, v3.11.3, v3.12.3, v3.13.3, v3.14.4, \n\n### Fixed\n- [`62ea271f`](http://github.com/seleniumhq/docker-selenium/commit/62ea271f36e711365b71442fec16f89ff00509e4) - fix(chart): upload.conf is missing in volumeMounts :: Viet Nguyen Duc\n\n## :heavy_check_mark: selenium-grid-0.30.1\n\n- Chart is using image tag 4.20.0-20240505\n- Chart is tested on Kubernetes versions: v1.25.16, v1.26.15, v1.27.13, v1.28.9, v1.29.4, v1.30.0, \n- Chart is tested on Helm versions: v3.10.3, v3.10.3, v3.11.3, v3.12.3, v3.13.3, v3.14.4, \n\n### Added\n- [`6d3a8a72`](http://github.com/seleniumhq/docker-selenium/commit/6d3a8a724f7d6909955c263536960eec4e14a4ec) - feat: Video recording with dynamic file name based on metadata in tests (#2249) :: Viet Nguyen Duc\n\n### Fixed\n- [`32d0aea8`](http://github.com/seleniumhq/docker-selenium/commit/32d0aea88524f0a7262efba804a4d9dbee555149) - fix(chart): job to cleanup scaled objects run always :: Viet Nguyen Duc\n- [`07e13f6c`](http://github.com/seleniumhq/docker-selenium/commit/07e13f6c61ac014271d57d98dfcf1869def06a78) - fix(chart): RBAC settings for job patch finalizers (#2239) :: Viet Nguyen Duc\n\n### Changed\n- [`409a46f2`](http://github.com/seleniumhq/docker-selenium/commit/409a46f232c74f55b9b6b9e4f93e15853bf80bfa) - chore(deps): update helm release kube-prometheus-stack to v58.4.0 (#2248) :: renovate[bot]\n- [`6e859e0b`](http://github.com/seleniumhq/docker-selenium/commit/6e859e0b95a75798500666a6e56eac3170b651d2) - chore(deps): update helm release jaeger to v3.0.6 (#2246) :: renovate[bot]\n- [`8fcc44b0`](http://github.com/seleniumhq/docker-selenium/commit/8fcc44b0b503670e8a3265a69efd983f060d27ad) - chore(deps): update helm release keda to v2.14.2 (#2244) :: renovate[bot]\n- [`b0799353`](http://github.com/seleniumhq/docker-selenium/commit/b07993539f78587a30db04680ae46464de06eec1) - update: Rollback FFmpeg v6.1.1 (#2247) :: Viet Nguyen Duc\n- [`b279999a`](http://github.com/seleniumhq/docker-selenium/commit/b279999a26e1d50086d382622782a8725edaab23) - chore(deps): update helm release kube-prometheus-stack to v58.3.3 (#2240) :: renovate[bot]\n- [`322741e9`](http://github.com/seleniumhq/docker-selenium/commit/322741e9537a7dc6fd8af926cae533b54a813146) - chore(deps): update helm release kube-prometheus-stack to v58.3.0 (#2238) :: renovate[bot]\n- [`0762e873`](http://github.com/seleniumhq/docker-selenium/commit/0762e873b583c4ad3241b2311e50b8a95c1d288f) - chore(deps): update helm release kube-prometheus-stack to v58.2.2 (#2211) :: renovate[bot]\n- [`4631baa5`](http://github.com/seleniumhq/docker-selenium/commit/4631baa5d27951992bf2565e509d475dafbd499a) - chore(deps): update helm release jaeger to v3.0.4 (#2219) :: renovate[bot]\n- [`96550ead`](http://github.com/seleniumhq/docker-selenium/commit/96550eadc93e63f4883c8b3a15069867c919a62e) - chore(deps): update helm release ingress-nginx to v4.10.1 (#2230) :: renovate[bot]\n- [`67099bbe`](http://github.com/seleniumhq/docker-selenium/commit/67099bbe1cb000e62bdae3491aed02b09db02179) - chore(deps): update helm release keda to v2.14.1 (#2234) :: renovate[bot]\n- [`fe7c16cc`](http://github.com/seleniumhq/docker-selenium/commit/fe7c16cc8d0310283b65f9ef03a96d2e5850a9e5) - chore(deps): update helm release keda to v2.14.0 (#2226) :: renovate[bot]\n\n## :heavy_check_mark: selenium-grid-0.30.0\n\n- Chart is using image tag 4.20.0-20240425\n- Chart is tested on Kubernetes versions: v1.26.15, v1.27.13, v1.28.9, v1.29.4, v1.30.0, \n- Chart is tested on Helm versions: v3.10.3, v3.11.3, v3.12.3, v3.13.3, v3.14.4, \n\n### Fixed\n- [`a83f0d6a`](http://github.com/seleniumhq/docker-selenium/commit/a83f0d6ab9d9337835ced36ceda4a44554d8a12c) - fix(chart): job to patch scaledobject stuck in deleting (#2222) :: Viet Nguyen Duc\n- [`be0fe120`](http://github.com/seleniumhq/docker-selenium/commit/be0fe1207bb81a2fcf20bda6d2e50c7a14de4059) - fix(chart): remove hook post-upgrade, add test for chart upgrade capability :: Viet Nguyen Duc\n- [`bd50206b`](http://github.com/seleniumhq/docker-selenium/commit/bd50206b1f92f237b054abaf312f0661a8ce2fa6) - fix(chart): node probe ignore proxy in sending request :: Viet Nguyen Duc\n\n### Changed\n- [`f39a9da8`](http://github.com/seleniumhq/docker-selenium/commit/f39a9da86f635b21d6dff0572e7713dc80c20d69) - [docs] pre-update for release docs generation :: Viet Nguyen Duc\n- [`df742c98`](http://github.com/seleniumhq/docker-selenium/commit/df742c982f97a6552d11585c7fc7e9f4446073cb) - chore(deps): update helm release jaeger to v3 (#2213) :: renovate[bot]\n- [`311b6382`](http://github.com/seleniumhq/docker-selenium/commit/311b63829cf652cad0f32fff2061cb45a7cd46d0) - chore(deps): update helm release kube-prometheus-stack to v58.1.2 (#2208) :: renovate[bot]\n- [`ab3f8b85`](http://github.com/seleniumhq/docker-selenium/commit/ab3f8b8546f30da7ae88a308f63bc014718b6355) - chore(deps): update helm release kube-prometheus-stack to v58.1.1 (#2206) :: renovate[bot]\n- [`70ed587d`](http://github.com/seleniumhq/docker-selenium/commit/70ed587dd3b99dd2633b23d313da7ac0a9ec12c9) - chore(deps): update helm release kube-prometheus-stack to v58.1.0 (#2205) :: renovate[bot]\n- [`a3912b29`](http://github.com/seleniumhq/docker-selenium/commit/a3912b295e359601710bbf86018692194e3d9fbb) - chore(deps): update helm release kube-prometheus-stack to v58.0.1 (#2203) :: renovate[bot]\n- [`12eb550a`](http://github.com/seleniumhq/docker-selenium/commit/12eb550a45559742fe161e949ffc34722261c3b9) - test: update CI test node-docker :: Viet Nguyen Duc\n- [`033f77c0`](http://github.com/seleniumhq/docker-selenium/commit/033f77c02dde9d61d1a4d44be7526ef689244606) - chore(deps): update helm release jaeger to v2.1.0 (#2198) :: renovate[bot]\n- [`2eab3722`](http://github.com/seleniumhq/docker-selenium/commit/2eab37227e01a9693ea604e08dcb3a4587525b5d) - chore(deps): update helm release kube-prometheus-stack to v58 (#2194) :: renovate[bot]\n- [`25fdfee9`](http://github.com/seleniumhq/docker-selenium/commit/25fdfee9ddc79a19bee21d6e6da0492926c9b517) - chore(deps): update helm release kube-prometheus-stack to v57.2.1 (#2193) :: renovate[bot]\n- [`74619b4c`](http://github.com/seleniumhq/docker-selenium/commit/74619b4c72700e52511f6e312b28a798cb04ac49) - chore(deps): update helm release kube-prometheus-stack to v57 (#2190) :: renovate[bot]\n- [`ea556767`](http://github.com/seleniumhq/docker-selenium/commit/ea556767789a94124754172bd5c4dbc92ced17b0) - chore(deps): update helm release jaeger to v2 (#2189) :: renovate[bot]\n- [`2ed16c21`](http://github.com/seleniumhq/docker-selenium/commit/2ed16c21425b44215960207d8a2b717a64e98e8a) - chore(deps): update helm release kube-prometheus-stack to v56.21.4 (#2187) :: renovate[bot]\n- [`97781912`](http://github.com/seleniumhq/docker-selenium/commit/97781912a48b8262ae516fe62dfd05becdc70a71) - chore(deps): update helm release ingress-nginx to v4.10.0 (#2186) :: renovate[bot]\n- [`06d8c18d`](http://github.com/seleniumhq/docker-selenium/commit/06d8c18de4c1bd703b41535190f27e767eee1bb4) - chore(deps): update helm release keda to v2.13.2 (#2184) :: renovate[bot]\n- [`ce75e223`](http://github.com/seleniumhq/docker-selenium/commit/ce75e223c5cc306f0b7b0886a2ad2e4c0f74bc4b) - chore(deps): update helm release jaeger to v1.0.2 (#2183) :: renovate[bot]\n\n## :heavy_check_mark: selenium-grid-0.29.1\n\n- Chart is using image tag 4.19.1-20240402\n- Chart is tested on Kubernetes versions: v1.25.16, v1.26.15, v1.27.12, v1.28.8, v1.29.3, \n- Chart is tested on Helm versions: v3.10.3, v3.11.3, v3.12.3, v3.13.3, v3.14.3, \n\n### Fixed\n- [`ca7155fa`](http://github.com/seleniumhq/docker-selenium/commit/ca7155faf587577d1e69d6d96c7cc5312b7a16ab) - fix(chart): node preStop - refresh node status in loop :: Viet Nguyen Duc\n- [`6a6d1e1f`](http://github.com/seleniumhq/docker-selenium/commit/6a6d1e1f188a6992431925474ad16bb0ef688e52) - fix(chart: Use empty strings as defaults for some empty values (#2176) :: Maxim Manuylov\n\n## :heavy_check_mark: selenium-grid-0.29.0\n\n- Chart is using image tag 4.19.0-20240328\n- Chart is tested on Kubernetes versions: v1.25.16, v1.26.15, v1.27.12, v1.28.8, v1.29.3, \n- Chart is tested on Helm versions: v3.10.3, v3.11.3, v3.12.3, v3.13.3, v3.14.3, \n\n### Added\n- [`fed2e1c6`](http://github.com/seleniumhq/docker-selenium/commit/fed2e1c6a0489584b6cc8af8bbd04b37815007d2) - feat(chart): enable automatic browser leftovers cleanup in chart :: Viet Nguyen Duc\n- [`2eca4bbe`](http://github.com/seleniumhq/docker-selenium/commit/2eca4bbea12157928fdc3cd14decd2503456670b) - feat(chart): Configure fixed-sized thread pool for the Distributor in autoscaling :: Viet Nguyen Duc\n- [`97941f86`](http://github.com/seleniumhq/docker-selenium/commit/97941f86643a0f3238f8fdb0c72b83d01fe430f0) - feat(chart): Configure fixed-sized thread pool for the Distributor to create new sessions :: Viet Nguyen Duc\n\n### Fixed\n- [`6f03eb1d`](http://github.com/seleniumhq/docker-selenium/commit/6f03eb1d06ac9d7e60f5912f5986e8a4eabc4049) - fix(chart): accessing .Values in templates (#2174) :: Maxim Manuylov\n- [`db915980`](http://github.com/seleniumhq/docker-selenium/commit/db9159801c087b75031fb5ecacd368fdae54f3d4) - fix(chart): remove duplicate annotation (#2167) :: Mårten Svantesson\n\n### Changed\n- [`5a231077`](http://github.com/seleniumhq/docker-selenium/commit/5a2310778c03877043cdc585dc2265a976c21e9b) - docs: update rclone configs in sample :: Viet Nguyen Duc\n- [`3c6015c0`](http://github.com/seleniumhq/docker-selenium/commit/3c6015c03f31121b2ece62ebbc925bbf88a4d67d) - Update tag in docs and files :: Selenium CI Bot\n\n## :heavy_check_mark: selenium-grid-0.28.4\n\n- Chart is using image tag 4.18.1-20240224\n- Chart is tested on Kubernetes versions: v1.25.16 v1.26.14 v1.27.11 v1.28.7 v1.29.2 \n- Chart is tested on Helm versions: v3.10.3 v3.11.3 v3.12.3 v3.13.3 v3.14.2 \n\n### Fixed\n- fix(chart): connection in script of Node startup probe and preStop lifecycle :: Viet Nguyen Duc\n- fix(chart): `autoscaling.terminationGracePeriodSeconds` is not set in Node spec :: Viet Nguyen Duc\n\n### Changed\n- Release chart 0.28.4 :: Viet Nguyen Duc\n- update(chart): add annotations checksum for ConfigMap and Secret :: Viet Nguyen Duc\n- test(chart): update chart values for CI tests :: Viet Nguyen Duc\n- test(chart): autoscaling as job :: Viet Nguyen Duc\n- Update tag in docs and files :: Selenium CI Bot\n\n## :heavy_check_mark: selenium-grid-0.28.3\n\n- Chart is using image tag 4.18.1-20240224\n- Chart is tested on Kubernetes versions: v1.25.16 v1.26.14 v1.27.11 v1.28.7 v1.29.2 \n\n### Fixed\n- fix(chart): fix object naming and add test to verify :: Viet Nguyen Duc\n\n### Changed\n- Update tag in docs and files :: Selenium CI Bot\n\n## :heavy_check_mark: selenium-grid-0.28.2\n\n- Chart is using image tag 4.18.1-20240224\n- Chart is tested on Kubernetes versions: v1.25.16 v1.26.14 v1.27.11 v1.28.7 v1.29.2 \n\n### Added\n- feat(chart): option to disable release name prefix in object naming :: Viet Nguyen Duc\n\n### Fixed\n- fix(chart): extra scripts can be imported in sub-chart by default :: Viet Nguyen Duc\n\n### Changed\n- release(chart): 0.28.2 :: Viet Nguyen Duc\n- Update tag in docs and files :: Selenium CI Bot\n- test(chart): test extra scripts import when import as sub-chart :: Viet Nguyen Duc\n\n## :heavy_check_mark: selenium-grid-0.28.1\n\n- Chart is using image tag 4.18.0-20240220\n- Chart is tested on Kubernetes versions: v1.25.16 v1.26.14 v1.27.11 v1.28.7 v1.29.2\n\n### Fixed\n- bug(chart): template issue when chart is imported as dependency in umbrella charts :: Viet Nguyen Duc\n- bug(chart): SE_NODE_GRID_URL missing port when `hostname` is `selenium-grid.local` :: Viet Nguyen Duc\n- bug(chart) CRITICAL: Node startup probe loop infinite when ingress hostname is set :: Viet Nguyen Duc\n\n### Changed\n- test(chart): update docs :: Viet Nguyen Duc\n- test(chart): add tests for the case basic auth is enabled :: Viet Nguyen Duc\n- test(chart): add tests for the case ingress is enabled with `hostname` set :: Viet Nguyen Duc\n- build(chart): change log and release notes for helm chart :: Viet Nguyen Duc\n\n## :heavy_check_mark: selenium-grid-0.28.0\n\n- Chart is using image tag 4.18.0-20240220\n- Chart is tested on Kubernetes versions: v1.25.16 v1.26.14 v1.27.11 v1.28.7 v1.29.2\n\n### Added\n- feat: enable tracing observability in docker-compose and helm chart (#2137) :: Viet Nguyen Duc\n- feat: video upload supports both docker-compose and helm chart (#2131) :: Viet Nguyen Duc\n- feat(chart): set components host & port point to its service :: Viet Nguyen Duc\n- feat: non-root user for video recorder (#2122) :: Viet Nguyen Duc\n- feat(chart): Log Node preStop exec to console :: Viet Nguyen Duc\n- feat(chart): delete file after upload (#2117) :: Doofus100500\n\n### Changed\n- Update tag in docs and files :: Selenium CI Bot\n- Release 4.18.0 :: Viet Nguyen Duc\n- test(chart): CI tests run against different Kubernetes version :: Viet Nguyen Duc\n- update(tracing): Use OTLP exporter instead of Jaeger specific :: Viet Nguyen Duc\n- update(chart): Node preStop and startupProbe in autoscaling Deployment (#2139) :: Viet Nguyen Duc\n- update(chart): objects name convention with prefix is chart RELEASENAME (#2134) :: Viet Nguyen Duc\n- [🚀 Feature]: Update objects name convention with prefix is Chart RELEASENAME #2109 (#2120) :: Bas M\n- update(chart): Make var RECORD_VIDEO lowercase before comparison (#2128) :: Doofus100500\n- test(chart): parallel with autoscalingType deployment & job :: Viet Nguyen Duc\n- docs(chart): point shielding in README (#2116) :: Doofus100500\n- Update chart CHANGELOG [skip ci] :: Selenium CI Bot\n\n## :heavy_check_mark: selenium-grid-0.27.0\n\n- Chart is using image tag 4.17.0-20240123\n\n### Added\n- feat(chart): templating in name(Override) for new object [deploy] :: Viet Nguyen Duc\n- feat(chart): templating in name(Override) (#2107) :: Bas M\n- feat(chart): Add node registration secret to exec preStop container Update default scalingStrategy.strategy: accurate [skip ci] :: Viet Nguyen Duc\n- feat(chart): Configuration extra scripts mount to container (#2105) :: Viet Nguyen Duc\n- feat(chart): Bump dependency charts KEDA and Ingress-NGINX version (#2103) :: Viet Nguyen Duc\n- feat(chart): Add RCLONE as default video uploader on Kubernetes (#2100) :: Viet Nguyen Duc\n- feat(chart): videoRecorder getting scripts from external files (#2095) :: Viet Nguyen Duc\n- feat(chart): Add config to control disabling Grid UI (#2083) :: Viet Nguyen Duc\n- feat(chart): Simplify to enable HTTPS/TLS in Selenium Grid on Kubernetes (#2080) :: Viet Nguyen Duc\n- feat(chart): Simplify config ports, probes, lifecycle hooks for Nodes (#2077) :: Viet Nguyen Duc\n\n### Changed\n- Update tag in docs and files :: Selenium CI Bot\n-  feat(chart): se:recordVideo should be used to determine if record video (#2104) :: Viet Nguyen Duc\n- [build] Fix duplicated Nightly releases creation :: Viet Nguyen Duc\n- build(chart): Chart built on top of Nightly images (#2089) :: Viet Nguyen Duc\n- Update chart CHANGELOG [skip ci] :: Selenium CI Bot\n\n## :heavy_check_mark: selenium-grid-0.26.4\n\n- Chart is using image tag 4.16.1-20231219\n\n### Fixed\n- fix(chart): Remove trailing slash from default subPath value (#2076) :: Viet Nguyen Duc\n\n### Changed\n- Update chart CHANGELOG [skip ci] :: Selenium CI Bot\n\n## :heavy_check_mark: selenium-grid-0.26.3\n\n- Chart is using image tag 4.16.1-20231219\n\n### Added\n- feat(chart): Simplify to access Selenium Grid from outside of Kubernetes (#2073) :: Viet Nguyen Duc\n- feat(chart): Simplify to change log level in Kubernetes (#2072) :: Viet Nguyen Duc\n\n### Fixed\n- bug: ENV variable SE_VNC_PASSWORD contains sensitive data (#2061) :: Viet Nguyen Duc\n\n### Changed\n- Update tag in docs and files :: Selenium CI Bot\n- Update chart CHANGELOG [skip ci] :: Selenium CI Bot\n\n## :heavy_check_mark: selenium-grid-0.26.2\n\n- Chart is using image tag 4.16.1-20231212\n\n### Changed\n- Update tag in docs and files :: Selenium CI Bot\n- Update chart CHANGELOG [skip ci] :: Selenium CI Bot\n\n## :heavy_check_mark: selenium-grid-0.26.1\n\n- Chart is using image tag 4.16.1-20231208\n\n### Added\n- Add script to generate chart CHANGELOG after released (#2054) :: Viet Nguyen Duc\n- feat(chart): Append subPath to ENV variable SE_NODE_GRID_URL (#2053) :: Viet Nguyen Duc\n\n### Changed\n- Update tag in docs and files :: Selenium CI Bot\n\n## :heavy_check_mark: selenium-grid-0.26.0\n\n- Chart is using image tag 4.16.0-20231206\n\n### Added\n- feat(chart): Add default annotations for ingress nginx controller (#2047) :: Viet Nguyen Duc\n- feat: Video image with based FFmpeg-6.1 on Ubuntu-22.04 (#2042) :: Viet Nguyen Duc\n\n### Fixed\n- bug(#1824): Container ENV SE_NODE_SESSION_TIMEOUT not take effect (#2044) :: Viet Nguyen Duc\n- bug(#2038): Rollback io.opentelemetry 1.31.0 - add test tracing enabled (#2040) :: Viet Nguyen Duc\n\n### Changed\n- Update tag in docs and files :: Selenium CI Bot\n- Update chart CHANGELOG [skip ci] :: Viet Nguyen Duc\n- test(chart): Parallel tests execution against autoscaling in Kubernetes (#2046) :: Viet Nguyen Duc\n- test(chart): Chart template render and assert output (#2043) :: Viet Nguyen Duc\n- test(chart): Add test for setting registry to pull images (#2036) :: Viet Nguyen Duc\n\n## :heavy_check_mark: 0.25.3\n\n### Changed\n- Update image tag to 4.16.0-20231206\n- Update tag in docs and files :: Selenium CI Bot\n- test: Add sanity test for download file (#2034) [deploy] :: Viet Nguyen Duc\n- feat(chart): distribution registry can be set global and individual component (#2030) :: Viet Nguyen Duc\n- Update tag in docs and files [skip ci] :: Selenium CI Bot\n- test: Sanity tests Selenium Grid chart via Makefile commands (#2029) :: Viet Nguyen Duc\n- Feature run selenium tests grid on kubernetes via helm chart (#2027) :: Amar Deep Singh\n- feat: CI Bot bump chart version along with new deploy image version (#2028) :: Viet Nguyen Duc\n- Update NodeChrome support latest version from GoogleChromeLabs (#2018) :: Viet Nguyen Duc\n- Update tag in docs and files [skip ci] :: Selenium CI Bot\n- corrected typo in selenium grid charts (#2010) :: Thabelo Ramabulana\n\n## :heavy_check_mark: 0.25.1\n\n### Changed\n- Update image tag to 4.15.0-20231110\n- Bug: Error setting name in helm release #2006 #2007 (#2009) :: Viet Nguyen Duc\n\n## :heavy_check_mark: 0.25.0\n\n### Changed\n- Update image tag to 4.15.0-20231110\n- feat(helm-test): Added helm test and linting (#2003) :: Amar Deep Singh\n- Update tag in docs and files [skip ci] :: Selenium CI Bot\n- Update tag in docs and files [skip ci] :: Selenium CI Bot\n- feat: Adding port to nodes service (#1996) :: Viet Nguyen Duc\n\n## :heavy_check_mark: 0.24.0\n\n### Changed\n- Update image tag to 4.15.0-20231102\n- Bumping chart version :: Viet Nguyen Duc\n- Add chart parameter ingress.paths to configure custom paths (#1994) :: Viet Nguyen Duc\n- feat(autoscaling): Unified parameters to set scaled options for browser nodes (#1989) :: Viet Nguyen Duc\n- Update tag in docs and files [skip ci] :: Selenium CI Bot\n- Improve chart templates in the section videoRecorder (#1987) :: Viet Nguyen Duc\n- Improve default value for videoRecorder in chart (#1984) :: Viet Nguyen Duc\n- Fix minor issues after PR #1881 and #1981 (#1983) :: Viet Nguyen Duc\n\n## :heavy_check_mark: 0.23.0\n\n### Added\n\n- Update tag in docs and files [skip ci] :: Selenium CI Bot\n- feat: video recording with pluggable upload container (#1881) :: Mårten Svantesson\n- Update Video/Dockerfile with based image ffmpeg:6.0-alpine (#1981) :: Viet Nguyen Duc\n\n### Changed\n- Update image tag to 4.14.1-20231025\n\n## :heavy_check_mark: 0.22.0\n\n### Added\n-  feat(keda): bumped up keda 2.12.0 (#1960) :: Amar Deep Singh\n-  Add missing Ingress namespace field (#1966) :: Cody Lent\n\n### Changed\n- Update image tag to 4.13.0-20231004\n\n## :heavy_check_mark: 0.21.3\n\n### Changed\n- Update image tag to  4.13.0-20230926\n\n## :heavy_check_mark: 0.21.2\n\n### Changed\n- Update image tag to 4.12.1-20230920\n\n## :heavy_check_mark: 0.21.1\n\n### Changed\n- Update image tag to 4.12.1-20230912\n\n## :heavy_check_mark: 0.21.0\n\n### Added\n- feat: Add option to inject sidecars into Node Pods (#1938) \n- Add minReplicaCount, remove replicas if autoscaling is enabled (#1932) \n\n## :heavy_check_mark: 0.20.1\n\n### Changed\n- Update image tag to 4.12.1-20230904\n\n## :heavy_check_mark: 0.20.0\n\n### Added\n- fix missing securityContext in nodes (#1907) :: balazs92117\n- Support to nodes livenessProbe into the Helm Chart (#1897) :: Bruno Brito\n- helm chart VolumeMounts & Volumes for Selenium hub (#1893) :: Yoga Yu\n\n### Changed\n- Update image tag to 4.11.0-20230801\n\n## :heavy_check_mark: 0.19.0\n\n### Added\n-  Autoscaling selenium grid on kubernetes with scaledjobs (#1854) \n\n## :heavy_check_mark: 0.18.1\n\n### Changed\n- Update image tag to 4.10.0-20230607\n\n## :heavy_check_mark: 0.18.0\n\n### Added\n- Add affinity to helm charts (#1851) \n\n## :heavy_check_mark: 0.17.0\n\n### Added\n- Make deployment securityContext configurable via values.yaml (#1845) \n\n## :heavy_check_mark: 0.16.1\n\n### Changed\n- Update image tag to  4.9.1-20230508\n\n## :heavy_check_mark: 0.16.0\n\n### Added\n- Custom Ingress Path for Helm Chart (#1834) \n\n## :heavy_check_mark: 0.15.8\n\n### Changed\n- Update image tag to 4.9.0-20230421\n\n## :heavy_check_mark: 0.15.7\n\n### Changed\n- Update image tag to 4.8.3-20230328\n\n## :heavy_check_mark: 0.15.6\n\n### Changed\n- Update image tag to 4.8.3-20230328\n\n## :heavy_check_mark: 0.15.5\n\n### Changed\n- Update image tag to 4.8.2-20230325\n\n## :heavy_check_mark: 0.15.4\n\n### Changed\n- Update image tag to 4.8.1-20230306\n\n## :heavy_check_mark: 0.15.3\n\n### Changed\n- Make ingress compatible with format prior to 1.19-0 k8s version\n\n## :heavy_check_mark: 0.15.2\n\n### Changed\n- Update image tag to 4.8.1-20230221\n\n## :heavy_check_mark: 0.15.1\n\n### Changed\n- Update image tag to 4.8.0-20230210\n\n## :heavy_check_mark: 0.15.0\n\n### Changed\n- Update image tag to 4.8.0-20230123\n\n## :heavy_check_mark: 0.14.3\n\n### Changed\n- Update image tag to 4.7.2-20221219\n\n## :heavy_check_mark: 0.14.2\n\n### Changed\n- Update image tag to 4.7.2-20221217\n\n## :heavy_check_mark: 0.14.1\n\n### Changed\n- Update image tag to 4.7.1-20221208\n\n## :heavy_check_mark: 0.14.0\n\n### Changed\n- Update image tag to 4.7.0-20221202\n\n## :heavy_check_mark: 0.13.1\n\n### Changed\n- Update image tag to  4.6.0-20221104\n\n## :heavy_check_mark: 0.13.0\n\n### Added\n- Added support to disable Chrome, Edge, and Firefox Deployment using `deploymentEnabled`\n\n## :heavy_check_mark: 0.12.2\n\n### Changed\n- Update image tag to  4.6.0-20221024\n\n## :heavy_check_mark: 0.12.1\n\n### Changed\n- Update image tag to  4.5.0-20221017\n\n## :heavy_check_mark: 0.12.0\n\n### Changed\n- Remove EventBus from SessionQueue environment variables\n\n## :heavy_check_mark: 0.11.0\n\n### Added\n- Adds helm-chart releaseName to all selectors in resources\n\n### Changed\n- Update image tag to 4.5.0-20221004\n\n## :heavy_check_mark: 0.10.0\n\n### Changed\n- Bump version chart\n\n## :heavy_check_mark: 0.9.0\n\n### Added\n- Add lifecycle preStop hook & startupProbe, fix port number\n\n## :heavy_check_mark: 0.8.1\n\n### Changed\n- Update image tag to 4.4.0-20220831\n\n## :heavy_check_mark: 0.8.0\n\n### Added\n- Added support of loadBalancerIP for hub and router services\n\n## :heavy_check_mark: 0.7.0\n\n### Added\n- Added ability to specify image pull secrets\n\n## :heavy_check_mark: 0.6.2\n\n### Added\n- Pod PriorityClasses\n\n## :heavy_check_mark: 0.6.1\n\n### Changed\n- Update image tag to 4.3.0-20220706\n\n## :heavy_check_mark: 0.6.0\n\n### Added\n- Added ability to set hostAliases on browser node deployments\n\n## :heavy_check_mark: 0.5.0\n\n### Added\n- Added ability to mount arbitrary volumes into browser nodes\n\n## :heavy_check_mark: 0.4.2\n\n### Changed\n- Update image tag to 4.3.0-20220624\n\n## :heavy_check_mark: 0.4.1\n\n### Changed\n- Update image tag to 4.2.1-20220608\n\n## :heavy_check_mark: 0.4.0\n\n### Added\n- Expose the Hub or the Router by default with ingress resource.\n\n### Changed\n- Set the default serviceType of the Hub and the Router to ClusterIP\n\n## :heavy_check_mark: 0.3.1\n\n### Added\n- Helm charts repo to GitHub Pages - https://www.selenium.dev/docker-selenium\n\n### Changed\n- Update image tag to 4.2.1-20220531\n\n## :heavy_check_mark: 0.3.0\n\n### Added\n- Support for Edge nodes.\n- Support for `nodeSelector`.\n- Support for `tolerations`.\n- Allow to add additional labels to the hub, edge, firefox and chrome nodes.\n- Fix queue component name (#1290)\n\n### Changed\n- Update image tag to 4.1.4-20220427\n\n### Removed\n- Opera nodes\n\n## :heavy_check_mark: 0.2.0\n\n### Added\n- `CHANGELOG.md`\n\n### Changed\n- Added `global` block to be able to specify component's image tag globally.\n- DSHM's volume size customizable.\n- Service type and service annotations are now customizable.\n\n### Fixed\n- Services won't be created if nodes are disabled.\n\n## :heavy_check_mark: 0.1.0\n\n### Added\n- Selenium grid components separated.\n- Selenium Hub server.\n- Chrome, Opera and Firefox nodes.\n"
  },
  {
    "path": "charts/selenium-grid/CONFIGURATION.md",
    "content": "# selenium-grid\n\n![Version: 0.52.0](https://img.shields.io/badge/Version-0.52.0-informational?style=flat-square) ![Type: application](https://img.shields.io/badge/Type-application-informational?style=flat-square) ![AppVersion: 4.41.0-20260222](https://img.shields.io/badge/AppVersion-4.41.0--20260222-informational?style=flat-square)\n\nA Helm chart for creating a Selenium Grid Server in Kubernetes\n\n## Maintainers\n\n| Name | Email | Url |\n| ---- | ------ | --- |\n| SeleniumHQ | <docker-selenium@seleniumhq.org> | <https://github.com/SeleniumHQ> |\n\n## Source Code\n\n* <https://github.com/SeleniumHQ/docker-selenium>\n\n## Requirements\n\n| Repository | Name | Version |\n|------------|------|---------|\n| https://charts.bitnami.com/bitnami | postgresql | ^18.0.0 |\n| https://charts.bitnami.com/bitnami | redis | ^25.0.0 |\n| https://jaegertracing.github.io/helm-charts | jaeger | ^4.0.0 |\n| https://kedacore.github.io/charts | keda | 2.19 |\n| https://prometheus-community.github.io/helm-charts | kube-prometheus-stack | ^82.0.0 |\n| https://traefik.github.io/charts | traefik | ^39.0.0 |\n\n## Values\n\n| Key | Type | Default | Description |\n|-----|------|---------|-------------|\n| global.K8S_PUBLIC_IP | string | `\"\"` | Public IP of the host running Kubernetes cluster. This is used to access the Selenium Grid from outside the cluster when ingress is disabled or enabled without a hostname is set. This is part of constructing SE_NODE_GRID_URL and rewrite URL of `se:vnc`, `se:cdp` in the capabilities when `ingress.hostname` is unset |\n| global.seleniumGrid.imageRegistry | string | `\"selenium\"` | Image registry for all selenium components |\n| global.seleniumGrid.imageTag | string | `\"4.41.0-20260222\"` | Image tag for all selenium components |\n| global.seleniumGrid.nodesImageTag | string | `\"4.41.0-20260222\"` | Image tag for browser's nodes |\n| global.seleniumGrid.videoImageTag | string | `\"ffmpeg-8.0-20260222\"` | Image tag for browser's video recorder |\n| global.seleniumGrid.kubectlImage | string | `\"bitnamilegacy/kubectl:latest\"` | kubectl image is used to execute kubectl commands in utility jobs |\n| global.seleniumGrid.imagePullSecret | string | `\"\"` | Pull secret for all components, can be overridden individually |\n| global.seleniumGrid.logLevel | string | `\"INFO\"` | Log level for all components. Possible values describe here: https://www.selenium.dev/documentation/grid/configuration/cli_options/#logging |\n| global.seleniumGrid.defaultNodeStartupProbe | string | `\"exec\"` | Set default startup probe method for all nodes (supplied values: httpGet, exec). If not set, the default is httpGet |\n| global.seleniumGrid.defaultNodeReadinessProbe | string | `\"exec\"` | Set default readiness probe method for all nodes (supplied values: httpGet, exec). If not set, the default is httpGet |\n| global.seleniumGrid.defaultNodeLivenessProbe | string | `\"exec\"` | Set default readiness probe method for all nodes (supplied values: httpGet, exec). If not set, the default is httpGet |\n| global.seleniumGrid.defaultComponentLivenessProbe | string | `\"httpGet\"` | Set default liveness probe method for all nodes (supplied values: httpGet, exec). If not set, the default is httpGet |\n| global.seleniumGrid.stdoutProbeLog | bool | `false` | Probe logs output can be retrieved using `kubectl logs`. Noted: this will not work if shareProcessNamespace is enabled |\n| global.seleniumGrid.revisionHistoryLimit | int | `10` | Specify how many old ReplicaSets for this Deployment you want to retain. The rest will be garbage-collected in the background. |\n| global.seleniumGrid.structuredLogs | bool | `false` | Whether to enable structured logging |\n| global.seleniumGrid.plainLogs | bool | `true` | Whether to enable plain logging (both structured and plain can be enabled at the same time, so disable one if only prefer another) |\n| global.seleniumGrid.httpLogs | bool | `false` | Enable http logging. Tracing should be enabled to log http logs. |\n| global.seleniumGrid.updateStrategy.type | string | `\"Recreate\"` | Specify update strategy for all components, can be overridden individually |\n| global.seleniumGrid.updateStrategy.rollingUpdate | object | `{\"maxSurge\":1,\"maxUnavailable\":0}` | Specify for strategy RollingUpdate |\n| global.seleniumGrid.affinity | object | `{}` | Specify affinity for all components, can be overridden individually |\n| global.seleniumGrid.topologySpreadConstraints | list | `[]` | Specify topologySpreadConstraints for all components, can be overridden individually |\n| global.seleniumGrid.sessionRequestTimeout | int | `300` | Timeout in seconds. A new incoming session request is added to the queue. Requests sitting in the queue for longer than the configured time will timeout. |\n| global.seleniumGrid.nodeMaxSessions | int | `1` | Specify number of max sessions per node. Can be overridden by individual component (this is also set to scaler trigger parameter `nodeMaxSessions` if `autoscaling` is enabled) |\n| global.seleniumGrid.nodeDrainAfterSessionCount | int | `0` | Set number of sessions will be executed in a Node before detaching it from Hub and shutting it down |\n| global.seleniumGrid.nodeEnableManagedDownloads | bool | `true` | This causes the Node to auto manage files downloaded for a given session on the Node (https://www.selenium.dev/documentation/webdriver/drivers/remote_webdriver/#enable-downloads-in-the-grid) |\n| global.seleniumGrid.nodeCustomCapabilities | string | `\"\"` | Setting custom capabilities for matching specific Nodes (https://www.selenium.dev/documentation/grid/configuration/toml_options/#setting-custom-capabilities-for-matching-specific-nodes). If set via Helm CLI, consider use `--set-literal` to prevent Helm from interpreting the JSON string |\n| global.seleniumGrid.nodeRegisterPeriod | int | `120` | How long, in seconds, will the Node try to register to the Distributor for the first time. After this period is completed, the Node will not attempt to register again. |\n| global.seleniumGrid.nodeRegisterCycle | int | `5` | How often, in seconds, the Node will try to register itself for the first time to the Distributor. |\n| tls.create | bool | `true` | Create a Secret resource for TLS certificate and key. If using an external secret set to false and provide its name in `nameOverride` below |\n| tls.nameOverride | string | `nil` | Name of external secret containing the TLS certificate and key |\n| tls.enabled | bool | `false` | Enable or disable TLS for the server components (and ingress proxy) |\n| tls.ingress.enabled | bool | `false` | Enable or disable TLS for the ingress proxy only |\n| tls.ingress.generateTLS | bool | `false` | Use the certificate and key are generated with below settings |\n| tls.ingress.defaultName | string | `\"SeleniumHQ\"` |  |\n| tls.ingress.defaultDays | int | `3650` |  |\n| tls.ingress.defaultCN | string | `\"www.selenium.dev\"` |  |\n| tls.ingress.defaultSANList | list | `[]` |  |\n| tls.ingress.defaultIPList | list | `[]` |  |\n| tls.secretFilesImportFrom | string | `\"certs/**\"` | Cert files will be imported from chart directory if not specified |\n| tls.secretFiles | object | `{\"server.jks\":\"\",\"server.pass\":\"\",\"tls.crt\":\"\",\"tls.key\":\"\"}` | File names for the TLS certificate and key to import |\n| tls.certVolumeMountPath | string | `\"/opt/selenium/secrets\"` | All files for TLS will be mounted to the server components under directory |\n| tls.certificateFile | string | `\"tls.crt\"` | Cert file will be mounted to server components as a volume |\n| tls.privateKeyFile | string | `\"tls.key\"` | Key file will be mounted to server components as a volume |\n| tls.trustStoreFile | string | `\"server.jks\"` | Trust store file will be mounted to server components as a volume |\n| tls.trustStorePasswordFile | string | `\"server.pass\"` | Trust store password file will be mounted to server components as a volume |\n| tls.trustStorePassword | string | `\"\"` | Recommend to get from trustStorePasswordFile instead of plain text via env variable |\n| tls.disableHostnameVerification | bool | `true` | Disable verification the hostname included in the server's TLS/SSL certificates matches the hostnames provided |\n| registrationSecret.enabled | bool | `false` | Enable feature node registration secret to make sure that the node is one you control and not a rouge node |\n| registrationSecret.value | string | `\"HappyTesting\"` | The secret value to be used for node registration |\n| basicAuth.create | bool | `true` | Create a secret resource for basic auth. If using an external secret, set to false and provide its name in `nameOverride` below |\n| basicAuth.nameOverride | string | `nil` | External secret containing the basic auth username and password for reference |\n| basicAuth.enabled | bool | `false` | Enable or disable basic auth for the Hub/Router |\n| basicAuth.username | string | `\"admin\"` | Username for basic auth |\n| basicAuth.password | string | `\"admin\"` | Password for basic auth |\n| basicAuth.embeddedUrl | bool | `false` | Embed the basic auth \"username:password@\" in few URLs e.g. SE_NODE_GRID_URL |\n| basicAuth.annotations | object | `{}` | Annotations for basic auth secret resource |\n| isolateComponents | bool | `false` | Deploy Router, Distributor, EventBus, SessionMap and Nodes separately |\n| serviceAccount.create | bool | `true` | Create a service account for all components. If using an external service account, set to false and provide its name in `nameOverride` below |\n| serviceAccount.nameOverride | string | `nil` | Override to use an external service account |\n| serviceAccount.annotations | object | `{}` | Annotations for the service account |\n| rbacRole | object | `{\"annotations\":{},\"create\":true,\"nameOverride\":null,\"rules\":[{\"apiGroups\":[\"keda.sh\"],\"resources\":[\"scaledjobs\"],\"verbs\":[\"get\",\"list\",\"patch\",\"update\",\"delete\"]},{\"apiGroups\":[\"keda.sh\"],\"resources\":[\"scaledobjects\"],\"verbs\":[\"get\",\"list\",\"patch\",\"update\",\"delete\"]},{\"apiGroups\":[\"keda.sh\"],\"resources\":[\"triggerauthentications\"],\"verbs\":[\"get\",\"list\",\"patch\",\"update\",\"delete\"]},{\"apiGroups\":[\"autoscaling\"],\"resources\":[\"horizontalpodautoscalers\"],\"verbs\":[\"get\",\"list\",\"patch\",\"update\",\"delete\"]}]}` | RBAC settings for patching finalizers KEDA scaled resources |\n| rbacRole.create | bool | `true` | Enable to create RBAC role to access few KEDA resources. If using an external role, set to false and provide its name in `nameOverride` below |\n| rbacRole.nameOverride | string | `nil` | Override resource name or provide an external role name |\n| rbacRoleBinding | object | `{\"annotations\":{},\"create\":true,\"nameOverride\":null,\"roleRef\":{\"apiGroup\":\"rbac.authorization.k8s.io\",\"kind\":\"Role\"},\"subjects\":[{\"kind\":\"ServiceAccount\"}]}` | RBAC role binding settings for patching finalizers KEDA scaled resources |\n| rbacRoleBinding.create | bool | `true` | Enable to create RBAC role binding to a service account. If using an external role binding, set to false and provide its name in `nameOverride` below |\n| rbacRoleBinding.nameOverride | string | `nil` | Override resource name or provide an external role binding name |\n| ingress.enabled | bool | `true` | Enable to create ingress resource |\n| ingress.enableWithController | bool | `false` | Enable ingress resource with automatically installing Traefik Ingress Controller |\n| ingress.className | string | `\"\"` | Name of ingress class to select which controller will implement ingress resource |\n| ingress.traefik.enabled | bool | `true` | Enable corresponding annotations for Traefik Ingress Controller |\n| ingress.traefik.entryPoints | string | `\"\"` | Comma-separated Traefik entrypoints for the ingress router. Empty means auto-select (`web` or `websecure`) based on TLS mode. |\n| ingress.traefik.middlewares | string | `\"\"` | Optional Traefik middlewares in the format `<namespace>-<name>@kubernetescrd` |\n| ingress.traefik.priority | string | `\"\"` | Optional Traefik router priority value |\n| ingress.traefik.pathMatcher | string | `\"PathPrefix\"` | Optional Traefik router path matcher (e.g. `PathPrefix`, `Path`, `PathRegexp`) |\n| ingress.traefik.tls.enabled | bool | `true` | Add `traefik.ingress.kubernetes.io/router.tls: \"true\"` when ingress TLS is enabled |\n| ingress.traefik.tls.options | string | `\"\"` | Optional Traefik TLS options in the format `<namespace>-<name>@kubernetescrd` |\n| ingress.traefik.tls.certResolver | string | `\"\"` | Optional Traefik certificate resolver name |\n| ingress.traefik.service.useHttpsScheme | bool | `true` | Add `traefik.ingress.kubernetes.io/service.serversscheme: \"https\"` to backend Service when Grid server TLS is enabled |\n| ingress.traefik.service.sticky.cookie.enabled | bool | `false` | Enable Traefik sticky cookie for service load-balancing |\n| ingress.traefik.serversTransport.enabled | bool | `true` | Enable creating a Traefik ServersTransport resource and auto-link it to backend Service annotation `traefik.ingress.kubernetes.io/service.serverstransport` |\n| ingress.traefik.serversTransport.nameOverride | string | `\"\"` | Override ServersTransport resource name. Defaults to `<ingress-fullname>-serverstransport` |\n| ingress.traefik.serversTransport.reference | string | `\"\"` | Use an existing ServersTransport reference `<namespace>-<name>@kubernetescrd` when `enabled` is false |\n| ingress.traefik.serversTransport.spec | object | `{\"disableHTTP2\":true,\"forwardingTimeouts\":{\"dialTimeout\":\"3600s\",\"idleConnTimeout\":\"3600s\",\"responseHeaderTimeout\":\"3600s\"},\"insecureSkipVerify\":true}` | Pass all spec support in Traefik ServersTransport |\n| ingress.traefik.serversTransport.spec.forwardingTimeouts.dialTimeout | string | `\"3600s\"` | Maximum duration Traefik waits when establishing a connection to backend servers |\n| ingress.traefik.serversTransport.spec.forwardingTimeouts.responseHeaderTimeout | string | `\"3600s\"` | Maximum duration Traefik waits for backend response headers |\n| ingress.traefik.serversTransport.spec.forwardingTimeouts.idleConnTimeout | string | `\"3600s\"` | Maximum duration an idle keep-alive backend connection remains open |\n| ingress.ports.http | int | `80` | Specify HTTP port is exposed by ingress controller |\n| ingress.ports.https | int | `443` | Specify HTTPS port is exposed by ingress controller |\n| ingress.annotations | object | `{}` | Custom annotations for ingress resource |\n| ingress.hostname | string | `\"\"` | Default host for the ingress resource |\n| ingress.pathType | string | `\"Prefix\"` | Default path type for the ingress resource |\n| ingress.paths | list | `[]` | List of paths for the ingress resource. This will override the default path |\n| ingress.tls | list | `[]` | TLS backend configuration for ingress resource |\n| busConfigMap.nameOverride | string | `nil` | Override the name of the bus configMap |\n| busConfigMap.data | object | `{\"SE_JAVA_OPTS\":\"-XX:+UseG1GC -XX:MaxGCPauseMillis=1000 -XX:MaxRAMPercentage=100\"}` | Override or add extra data to the ConfigMap. The property that appears last within the ConfigMap overwrites any preceding values |\n| busConfigMap.annotations | object | `{}` | Custom annotations for configmap |\n| sessionMapConfigMap.nameOverride | string | `nil` | Override the name of the session map configMap |\n| sessionMapConfigMap.data | object | `{\"SE_JAVA_OPTS\":\"-XX:+UseG1GC -XX:MaxGCPauseMillis=1000 -XX:MaxRAMPercentage=100\"}` | Override or add extra data to the ConfigMap. The property that appears last within the ConfigMap overwrites any preceding values |\n| sessionMapConfigMap.annotations | object | `{}` | Custom annotations for configmap |\n| sessionQueueConfigMap.nameOverride | string | `nil` | Override the name of the session map configMap |\n| sessionQueueConfigMap.data | object | `{\"SE_JAVA_OPTS\":\"-XX:+UseG1GC -XX:MaxGCPauseMillis=1000 -XX:MaxRAMPercentage=100\"}` | Override or add extra data to the ConfigMap. The property that appears last within the ConfigMap overwrites any preceding values |\n| sessionQueueConfigMap.annotations | object | `{}` | Custom annotations for configmap |\n| distributorConfigMap.nameOverride | string | `nil` | Override the name of the distributor configMap |\n| distributorConfigMap.data | object | `{\"SE_JAVA_OPTS\":\"-XX:+UseG1GC -XX:MaxGCPauseMillis=1000 -XX:MaxRAMPercentage=100\"}` | Override or add extra data to the ConfigMap. The property that appears last within the ConfigMap overwrites any preceding values |\n| distributorConfigMap.defaultMode | int | `493` | Default mode for ConfigMap is mounted as file |\n| distributorConfigMap.extraScriptsImportFrom | string | `\"configs/distributor/**\"` | Directory where the extra scripts are imported to ConfigMap by default (if given a relative path, it should be in chart's directory) |\n| distributorConfigMap.extraScriptsDirectory | string | `\"/opt/bin\"` | Directory where the extra scripts are mounted to |\n| distributorConfigMap.extraScripts.\"distributorProbe.sh\" | string | `\"\"` |  |\n| distributorConfigMap.scriptVolumeMountName | string | `nil` | Name of volume mount is used to mount scripts in the ConfigMap. Default is same as this configMap name |\n| distributorConfigMap.annotations | object | `{}` | Custom annotations for configmap |\n| routerConfigMap.nameOverride | string | `nil` | Override the name of the router configMap |\n| routerConfigMap.data | object | `{\"SE_JAVA_OPTS\":\"-XX:+UseG1GC -XX:MaxGCPauseMillis=1000 -XX:MaxRAMPercentage=100\"}` | Override or add extra data to the ConfigMap. The property that appears last within the ConfigMap overwrites any preceding values |\n| routerConfigMap.defaultMode | int | `493` | Default mode for ConfigMap is mounted as file |\n| routerConfigMap.extraScriptsImportFrom | string | `\"configs/router/**\"` | Directory where the extra scripts are imported to ConfigMap by default (if given a relative path, it should be in chart's directory) |\n| routerConfigMap.extraScriptsDirectory | string | `\"/opt/bin\"` | Directory where the extra scripts are mounted to |\n| routerConfigMap.extraScripts.\"routerGraphQLUrl.sh\" | string | `\"\"` |  |\n| routerConfigMap.extraScripts.\"routerProbe.sh\" | string | `\"\"` |  |\n| routerConfigMap.scriptVolumeMountName | string | `nil` | Name of volume mount is used to mount scripts in the ConfigMap |\n| routerConfigMap.annotations | object | `{}` | Custom annotations for configmap |\n| nodeConfigMap.nameOverride | string | `nil` | Override the name of the node configMap |\n| nodeConfigMap.data | object | `{\"SE_JAVA_OPTS\":\"-XX:+UseG1GC -XX:MaxGCPauseMillis=1000 -XX:MaxRAMPercentage=50\"}` | Override or add extra data to the ConfigMap. The property that appears last within the ConfigMap overwrites any preceding values |\n| nodeConfigMap.defaultMode | int | `493` | Default mode for ConfigMap is mounted as file |\n| nodeConfigMap.extraScriptsImportFrom | string | `\"configs/node/**\"` | Directory where the extra scripts are imported to ConfigMap by default (if given a relative path, it should be in chart's directory) |\n| nodeConfigMap.extraScriptsDirectory | string | `\"/opt/bin\"` | Directory where the extra scripts are mounted to |\n| nodeConfigMap.extraScripts.\"nodeGridUrl.sh\" | string | `\"\"` |  |\n| nodeConfigMap.extraScripts.\"nodePreStop.sh\" | string | `\"\"` |  |\n| nodeConfigMap.extraScripts.\"nodeProbe.sh\" | string | `\"\"` |  |\n| nodeConfigMap.extraScripts.\"nodeProbeReadiness.sh\" | string | `\"\"` |  |\n| nodeConfigMap.scriptVolumeMountName | string | `nil` | Name of volume mount is used to mount scripts in the ConfigMap |\n| nodeConfigMap.leftoversCleanup.enabled | bool | `false` | Enable feature automatic browser leftovers cleanup stuck browser processes, tmp files |\n| nodeConfigMap.leftoversCleanup.jobIntervalInSecs | int | `3600` | Interval in seconds to run the cleanup job |\n| nodeConfigMap.leftoversCleanup.browserElapsedTimeInSecs | int | `7200` | Browser process elapsed time in seconds to consider as leftovers |\n| nodeConfigMap.leftoversCleanup.tmpFilesAfterDays | int | `1` | Tmp files elapsed time in days to consider as leftovers |\n| nodeConfigMap.annotations | object | `{}` | Custom annotations for configmap |\n| recorderConfigMap.nameOverride | string | `nil` | Override the name of the recorder configMap |\n| recorderConfigMap.defaultMode | int | `493` | Default mode for ConfigMap is mounted as file |\n| recorderConfigMap.extraScriptsImportFrom | string | `\"configs/recorder/**\"` | Directory where the extra scripts are imported to ConfigMap by default (if given a relative path, it should be in chart's directory) |\n| recorderConfigMap.extraScriptsDirectory | string | `\"/opt/bin\"` | Directory where the extra scripts are mounted to |\n| recorderConfigMap.extraScripts | string | `nil` | List of extra scripts to be mounted to the container. Format as `filename: content` |\n| recorderConfigMap.scriptVolumeMountName | string | `nil` | Name of volume mount is used to mount scripts in the ConfigMap |\n| recorderConfigMap.videoVolumeMountName | string | `\"videos\"` | Directory in container where the videos are stored |\n| recorderConfigMap.annotations | object | `{}` | Custom annotations for configmap |\n| uploaderConfigMap.nameOverride | string | `nil` | Override the name of the uploader configMap |\n| uploaderConfigMap.defaultMode | int | `493` | Default mode for ConfigMap is mounted as file |\n| uploaderConfigMap.extraScriptsImportFrom | string | `\"configs/uploader/**\"` | Directory where the extra scripts are imported to ConfigMap by default (if given a relative path, it should be in chart's directory) |\n| uploaderConfigMap.extraScriptsDirectory | string | `\"/opt/selenium\"` | Directory where the extra scripts are mounted to |\n| uploaderConfigMap.extraScripts | object | `{\"upload.sh\":\"\"}` | List of extra scripts to be mounted to the container. Format as `filename: content` |\n| uploaderConfigMap.secretFiles | object | `{\"upload.conf\":\"[sample]\"}` | Extra files stored in Secret to be mounted to the container. |\n| uploaderConfigMap.scriptVolumeMountName | string | `nil` | Name of volume mount is used to mount scripts in the ConfigMap |\n| uploaderConfigMap.secretVolumeMountName | string | `nil` | Name of Secret is used to store the `secretFiles` |\n| uploaderConfigMap.annotations | object | `{}` | Custom annotations for configmap |\n| loggingConfigMap | object | `{\"annotations\":{},\"data\":{},\"nameOverride\":null}` | ConfigMap that contains common environment variables for Logging (https://www.selenium.dev/documentation/grid/configuration/cli_options/#logging) |\n| loggingConfigMap.nameOverride | string | `nil` | Override the name of the logging configMap |\n| loggingConfigMap.data | object | `{}` | Override or add extra data to the ConfigMap. The property that appears last within the ConfigMap overwrites any preceding values |\n| loggingConfigMap.annotations | object | `{}` | Custom annotations for configmap |\n| serverConfigMap.nameOverride | string | `nil` | Override the name of the server configMap |\n| serverConfigMap.data | object | `{\"SE_SUPERVISORD_LOG_LEVEL\":\"info\"}` | Extra common environment variables for Server (https://www.selenium.dev/documentation/grid/configuration/cli_options/#server) to server configMap |\n| serverConfigMap.annotations | object | `{}` | Custom annotations for configmap |\n| secrets.create | bool | `true` | Create the default secret for all components. If using an external secret, set to false and provide its name in `nameOverride` below |\n| secrets.nameOverride | string | `nil` | Override to use an external secret |\n| secrets.data | object | `{\"SE_VNC_PASSWORD\":\"secret\"}` | Extra environment variables set to the secret |\n| secrets.annotations | object | `{}` | Custom annotations for secret |\n| components.router.imageRegistry | string | `nil` | Registry to pull the image (this overwrites global.seleniumGrid.imageRegistry parameter) |\n| components.router.imageName | string | `\"router\"` | Router image name |\n| components.router.imageTag | string | `nil` | Router image tag (this overwrites global.seleniumGrid.imageTag parameter) |\n| components.router.imagePullPolicy | string | `\"IfNotPresent\"` | Image pull policy (see https://kubernetes.io/docs/concepts/containers/images/#updating-images) |\n| components.router.imagePullSecret | string | `\"\"` | Image pull secret (see https://kubernetes.io/docs/tasks/configure-pod-container/pull-image-private-registry/) |\n| components.router.subPath | string | `\"\"` | Custom sub path for Router |\n| components.router.disableUI | bool | `false` | Disable the Grid UI |\n| components.router.extraEnvironmentVariables | list | `[]` | Specify extra environment variables for Router |\n| components.router.extraEnvFrom | list | `[]` | Specify extra environment variables from ConfigMap and Secret for Router |\n| components.router.affinity | object | `{}` | Specify affinity for router pods, this overwrites global.seleniumGrid.affinity parameter |\n| components.router.topologySpreadConstraints | list | `[]` | Specify topologySpreadConstraints for router pods, this overwrites global.seleniumGrid.topologySpreadConstraints parameter |\n| components.router.annotations | object | `{}` | Custom annotations for router pods |\n| components.router.port | int | `4444` | Router container port |\n| components.router.nodePort | int | `30444` | Router expose NodePort |\n| components.router.startupProbe | object | `{\"enabled\":true,\"failureThreshold\":10,\"initialDelaySeconds\":5,\"path\":\"/readyz\",\"periodSeconds\":10,\"successThreshold\":1,\"timeoutSeconds\":10}` | Startup probe settings |\n| components.router.readinessProbe | object | `{\"enabled\":true,\"failureThreshold\":10,\"initialDelaySeconds\":12,\"path\":\"/readyz\",\"periodSeconds\":10,\"successThreshold\":1,\"timeoutSeconds\":10}` | Readiness probe settings |\n| components.router.livenessProbe | object | `{\"enabled\":true,\"failureThreshold\":30,\"initialDelaySeconds\":60,\"path\":\"/readyz\",\"periodSeconds\":60,\"successThreshold\":1,\"timeoutSeconds\":60}` | Liveness probe settings |\n| components.router.resources | object | `{\"limits\":{\"cpu\":\"1\",\"memory\":\"2Gi\"},\"requests\":{\"cpu\":\"0.5\",\"memory\":\"512Mi\"}}` | Resources for router container |\n| components.router.replicas | int | `1` | Number of replicas |\n| components.router.securityContext | object | `{}` | SecurityContext for router container |\n| components.router.serviceType | string | `\"ClusterIP\"` | Kubernetes service type (see https://kubernetes.io/docs/concepts/services-networking/service/#publishing-services-service-types) |\n| components.router.clusterIP | string | `\"\"` | Set specific clusterIP when serviceType is ClusterIP (see https://kubernetes.io/docs/concepts/services-networking/service/#type-clusterip) |\n| components.router.externalName | string | `\"\"` | Set specific externalName when serviceType is ExternalName (see https://kubernetes.io/docs/concepts/services-networking/service/#type-externalname) |\n| components.router.loadBalancerIP | string | `\"\"` | Set specific loadBalancerIP when serviceType is LoadBalancer (see https://kubernetes.io/docs/concepts/services-networking/service/#loadbalancer) |\n| components.router.serviceAnnotations | object | `{}` | Custom annotations for router service |\n| components.router.serviceExternalTrafficPolicy | string | `\"\"` | Set externalTrafficPolicy to Local or Cluster (see https://kubernetes.io/docs/concepts/services-networking/service-traffic-policy/) |\n| components.router.serviceSessionAffinity | string | `\"\"` | Set session affinity to None, ClientIP or ClientIPString |\n| components.router.tolerations | list | `[]` | Tolerations for router pods |\n| components.router.nodeSelector | object | `{}` | Node selector for router pods |\n| components.router.priorityClassName | string | `\"\"` | Priority class name for router pods |\n| components.distributor.imageRegistry | string | `nil` | Registry to pull the image (this overwrites global.seleniumGrid.imageRegistry parameter) |\n| components.distributor.imageName | string | `\"distributor\"` | Distributor image name |\n| components.distributor.imageTag | string | `nil` | Distributor image tag (this overwrites global.seleniumGrid.imageTag parameter) |\n| components.distributor.imagePullPolicy | string | `\"IfNotPresent\"` | Image pull policy (see https://kubernetes.io/docs/concepts/containers/images/#updating-images) |\n| components.distributor.imagePullSecret | string | `\"\"` | Image pull secret (see https://kubernetes.io/docs/tasks/configure-pod-container/pull-image-private-registry/) |\n| components.distributor.newSessionThreadPoolSize | string | `nil` | Configure fixed-sized thread pool for the Distributor to create new sessions as it consumes new session requests from the queue |\n| components.distributor.slotSelectorStrategy | string | `\"\"` | Full class name of non-default slot selector. This is used to select a slot in a Node once the Node has been matched |\n| components.distributor.extraEnvironmentVariables | list | `[]` | Specify extra environment variables for Distributor |\n| components.distributor.extraEnvFrom | list | `[]` | Specify extra environment variables from ConfigMap and Secret for Distributor |\n| components.distributor.affinity | object | `{}` | Specify affinity for distributor pods, this overwrites global.seleniumGrid.affinity parameter |\n| components.distributor.topologySpreadConstraints | list | `[]` | Specify topologySpreadConstraints for Distributor pods, this overwrites global.seleniumGrid.topologySpreadConstraints parameter |\n| components.distributor.annotations | object | `{}` | Custom annotations for Distributor pods |\n| components.distributor.port | int | `5553` | Distributor container port |\n| components.distributor.nodePort | int | `30553` | Distributor expose NodePort |\n| components.distributor.startupProbe | object | `{\"enabled\":true,\"failureThreshold\":10,\"initialDelaySeconds\":5,\"path\":\"/readyz\",\"periodSeconds\":10,\"successThreshold\":1,\"timeoutSeconds\":10}` | Startup probe settings |\n| components.distributor.readinessProbe | object | `{\"enabled\":true,\"failureThreshold\":10,\"initialDelaySeconds\":12,\"path\":\"/readyz\",\"periodSeconds\":10,\"successThreshold\":1,\"timeoutSeconds\":10}` | Readiness probe settings |\n| components.distributor.livenessProbe | object | `{\"enabled\":true,\"failureThreshold\":30,\"initialDelaySeconds\":60,\"path\":\"/readyz\",\"periodSeconds\":60,\"successThreshold\":1,\"timeoutSeconds\":60}` | Liveness probe settings |\n| components.distributor.resources | object | `{\"limits\":{\"cpu\":\"1\",\"memory\":\"2Gi\"},\"requests\":{\"cpu\":\"0.5\",\"memory\":\"512Mi\"}}` | Resources for Distributor container |\n| components.distributor.replicas | int | `1` | Number of replicas |\n| components.distributor.securityContext | object | `{}` | SecurityContext for Distributor container |\n| components.distributor.serviceType | string | `\"ClusterIP\"` | Kubernetes service type (see https://kubernetes.io/docs/concepts/services-networking/service/#publishing-services-service-types) |\n| components.distributor.serviceAnnotations | object | `{}` | Custom annotations for Distributor service |\n| components.distributor.serviceExternalTrafficPolicy | string | `\"\"` | Set externalTrafficPolicy to Local or Cluster (see https://kubernetes.io/docs/concepts/services-networking/service-traffic-policy/) |\n| components.distributor.serviceSessionAffinity | string | `\"\"` | Set session affinity to None, ClientIP or ClientIPString |\n| components.distributor.tolerations | list | `[]` | Tolerations for Distributor pods |\n| components.distributor.nodeSelector | object | `{}` | Node selector for Distributor pods |\n| components.distributor.priorityClassName | string | `\"\"` | Priority class name for Distributor pods |\n| components.eventBus.imageRegistry | string | `nil` | Registry to pull the image (this overwrites global.seleniumGrid.imageRegistry parameter) |\n| components.eventBus.imageName | string | `\"event-bus\"` | Event Bus image name |\n| components.eventBus.imageTag | string | `nil` | Event Bus image tag (this overwrites global.seleniumGrid.imageTag parameter) |\n| components.eventBus.imagePullPolicy | string | `\"IfNotPresent\"` | Image pull policy (see https://kubernetes.io/docs/concepts/containers/images/#updating-images) |\n| components.eventBus.imagePullSecret | string | `\"\"` | Image pull secret (see https://kubernetes.io/docs/tasks/configure-pod-container/pull-image-private-registry/) |\n| components.eventBus.extraEnvironmentVariables | list | `[]` | Specify extra environment variables for Event Bus |\n| components.eventBus.extraEnvFrom | list | `[]` | Specify extra environment variables from ConfigMap and Secret for Event Bus |\n| components.eventBus.affinity | object | `{}` | Specify affinity for Event Bus pods, this overwrites global.seleniumGrid.affinity parameter |\n| components.eventBus.topologySpreadConstraints | list | `[]` | Specify topologySpreadConstraints for Event Bus pods, this overwrites global.seleniumGrid.topologySpreadConstraints parameter |\n| components.eventBus.annotations | object | `{}` | Custom annotations for Event Bus pods |\n| components.eventBus.port | int | `5557` | Event Bus container port |\n| components.eventBus.nodePort | int | `30557` | Event Bus expose NodePort |\n| components.eventBus.publishPort | int | `4442` | Container port where events are published |\n| components.eventBus.publishNodePort | int | `30442` | NodePort exposed where events are published |\n| components.eventBus.subscribePort | int | `4443` | Container port where to subscribe for events |\n| components.eventBus.subscribeNodePort | int | `30443` | NodePort exposed where to subscribe for events |\n| components.eventBus.resources | object | `{\"limits\":{\"cpu\":\"1\",\"memory\":\"2Gi\"},\"requests\":{\"cpu\":\"0.5\",\"memory\":\"512Mi\"}}` | Resources for event-bus container |\n| components.eventBus.replicas | int | `1` | Number of replicas |\n| components.eventBus.securityContext | object | `{}` | SecurityContext for event-bus container |\n| components.eventBus.serviceType | string | `\"ClusterIP\"` | Kubernetes service type (see https://kubernetes.io/docs/concepts/services-networking/service/#publishing-services-service-types) |\n| components.eventBus.clusterIP | string | `\"\"` | Set specific clusterIP when serviceType is ClusterIP (see https://kubernetes.io/docs/concepts/services-networking/service/#type-clusterip) |\n| components.eventBus.externalName | string | `\"\"` | Set specific externalName when serviceType is ExternalName (see https://kubernetes.io/docs/concepts/services-networking/service/#type-externalname) |\n| components.eventBus.loadBalancerIP | string | `\"\"` | Set specific loadBalancerIP when serviceType is LoadBalancer (see https://kubernetes.io/docs/concepts/services-networking/service/#loadbalancer) |\n| components.eventBus.serviceAnnotations | object | `{}` | Custom annotations for Event Bus service |\n| components.eventBus.serviceExternalTrafficPolicy | string | `\"\"` | Set externalTrafficPolicy to Local or Cluster (see https://kubernetes.io/docs/concepts/services-networking/service-traffic-policy/) |\n| components.eventBus.serviceSessionAffinity | string | `\"\"` | Set session affinity to None, ClientIP or ClientIPString |\n| components.eventBus.tolerations | list | `[]` | Tolerations for Event Bus pods |\n| components.eventBus.nodeSelector | object | `{}` | Node selector for Event Bus pods |\n| components.eventBus.priorityClassName | string | `\"\"` | Priority class name for Event Bus pods |\n| components.sessionMap.imageRegistry | string | `nil` | Registry to pull the image (this overwrites global.seleniumGrid.imageRegistry parameter) |\n| components.sessionMap.imageName | string | `\"sessions\"` | Session Map image name |\n| components.sessionMap.imageTag | string | `nil` | Session Map image tag (this overwrites global.seleniumGrid.imageTag parameter) |\n| components.sessionMap.imagePullPolicy | string | `\"IfNotPresent\"` | Image pull policy (see https://kubernetes.io/docs/concepts/containers/images/#updating-images) |\n| components.sessionMap.imagePullSecret | string | `\"\"` | Image pull secret (see https://kubernetes.io/docs/tasks/configure-pod-container/pull-image-private-registry/) |\n| components.sessionMap.extraEnvironmentVariables | list | `[]` | Specify extra environment variables for Session Map |\n| components.sessionMap.extraEnvFrom | list | `[]` | Specify extra environment variables from ConfigMap and Secret for Session Map |\n| components.sessionMap.affinity | object | `{}` | Specify affinity for Session Map pods, this overwrites global.seleniumGrid.affinity parameter |\n| components.sessionMap.topologySpreadConstraints | list | `[]` | Specify topologySpreadConstraints for Session Map pods, this overwrites global.seleniumGrid.topologySpreadConstraints parameter |\n| components.sessionMap.annotations | object | `{}` | Custom annotations for Session Map pods |\n| components.sessionMap.port | int | `5556` | Session Map container port |\n| components.sessionMap.resources | object | `{\"limits\":{\"cpu\":\"1\",\"memory\":\"1Gi\"},\"requests\":{\"cpu\":\"0.5\",\"memory\":\"512Mi\"}}` | Resources for Session Map container |\n| components.sessionMap.replicas | int | `1` | Number of replicas |\n| components.sessionMap.securityContext | object | `{}` | SecurityContext for Session Map container |\n| components.sessionMap.serviceType | string | `\"ClusterIP\"` | Kubernetes service type (see https://kubernetes.io/docs/concepts/services-networking/service/#publishing-services-service-types) |\n| components.sessionMap.serviceAnnotations | object | `{}` | Custom annotations for Session Map service |\n| components.sessionMap.serviceExternalTrafficPolicy | string | `\"\"` | Set externalTrafficPolicy to Local or Cluster (see https://kubernetes.io/docs/concepts/services-networking/service-traffic-policy/) |\n| components.sessionMap.serviceSessionAffinity | string | `\"\"` | Set session affinity to None, ClientIP or ClientIPString |\n| components.sessionMap.tolerations | list | `[]` | Tolerations for Session Map pods |\n| components.sessionMap.nodeSelector | object | `{}` | Node selector for Session Map pods |\n| components.sessionMap.priorityClassName | string | `\"\"` | Priority class name for Session Map pods |\n| components.sessionMap.externalDatastore.enabled | bool | `false` | Enable external datastore for Session Map |\n| components.sessionMap.externalDatastore.backend | string | `\"postgresql\"` | Backend for external datastore (supported: postgresql, redis). Details for each backend are described below config key |\n| components.sessionMap.externalDatastore.postgresql | object | `{\"implementation\":\"org.openqa.selenium.grid.sessionmap.jdbc.JdbcBackedSessionMap\",\"jdbcPassword\":\"seluser\",\"jdbcUrl\":\"jdbc:postgresql://{{ $.Release.Name }}-postgresql:5432/selenium_sessions\",\"jdbcUser\":\"seluser\"}` | Configure database backed Session Map (https://www.selenium.dev/documentation/grid/advanced_features/external_datastore/#database-backed-session-map) |\n| components.sessionMap.externalDatastore.redis | object | `{\"hostname\":\"{{ $.Release.Name }}-redis-master\",\"implementation\":\"org.openqa.selenium.grid.sessionmap.redis.RedisBackedSessionMap\",\"port\":\"6379\",\"scheme\":\"redis\"}` | Configure Redis backed Session Map (https://www.selenium.dev/documentation/grid/advanced_features/external_datastore/#redis-backed-session-map) |\n| components.sessionQueue.imageRegistry | string | `nil` | Registry to pull the image (this overwrites global.seleniumGrid.imageRegistry parameter) |\n| components.sessionQueue.imageName | string | `\"session-queue\"` | Session Queue image name |\n| components.sessionQueue.imageTag | string | `nil` | Session Queue image tag (this overwrites global.seleniumGrid.imageTag parameter) |\n| components.sessionQueue.imagePullPolicy | string | `\"IfNotPresent\"` | Image pull policy (see https://kubernetes.io/docs/concepts/containers/images/#updating-images) |\n| components.sessionQueue.imagePullSecret | string | `\"\"` | Image pull secret (see https://kubernetes.io/docs/tasks/configure-pod-container/pull-image-private-registry/) |\n| components.sessionQueue.sessionRequestTimeout | string | `\"\"` | Override global sessionRequestTimeout |\n| components.sessionQueue.extraEnvironmentVariables | list | `[]` | Specify extra environment variables for Session Queue |\n| components.sessionQueue.extraEnvFrom | list | `[]` | Specify extra environment variables from ConfigMap and Secret for Session Queue |\n| components.sessionQueue.affinity | object | `{}` | Specify affinity for Session Queue pods, this overwrites global.seleniumGrid.affinity parameter |\n| components.sessionQueue.topologySpreadConstraints | list | `[]` | Specify topologySpreadConstraints for Session Queue pods, this overwrites global.seleniumGrid.topologySpreadConstraints parameter |\n| components.sessionQueue.annotations | object | `{}` | Custom annotations for Session Queue pods |\n| components.sessionQueue.port | int | `5559` | Session Queue container port |\n| components.sessionQueue.nodePort | int | `30559` | Session Queue expose NodePort |\n| components.sessionQueue.resources | object | `{\"limits\":{\"cpu\":\"1\",\"memory\":\"1Gi\"},\"requests\":{\"cpu\":\"0.5\",\"memory\":\"512Mi\"}}` | Resources for Session Queue container |\n| components.sessionQueue.replicas | int | `1` | Number of replicas |\n| components.sessionQueue.securityContext | object | `{}` | SecurityContext for Session Queue container |\n| components.sessionQueue.serviceType | string | `\"ClusterIP\"` | Kubernetes service type (see https://kubernetes.io/docs/concepts/services-networking/service/#publishing-services-service-types) |\n| components.sessionQueue.serviceAnnotations | object | `{}` | Custom annotations for Session Queue service |\n| components.sessionQueue.serviceExternalTrafficPolicy | string | `\"\"` | Set externalTrafficPolicy to Local or Cluster (see https://kubernetes.io/docs/concepts/services-networking/service-traffic-policy/) |\n| components.sessionQueue.serviceSessionAffinity | string | `\"\"` | Set session affinity to None, ClientIP or ClientIPString |\n| components.sessionQueue.tolerations | list | `[]` | Tolerations for Session Queue pods |\n| components.sessionQueue.nodeSelector | object | `{}` | Node selector for Session Queue pods |\n| components.sessionQueue.priorityClassName | string | `\"\"` | Priority class name for Session Queue pods |\n| components.extraEnvironmentVariables | list | `[]` | Custom environment variables for all components |\n| components.extraEnvFrom | list | `[]` | Custom environment variables by sourcing entire configMap, Secret, etc. for all components |\n| components.extraVolumeMounts | list | `[]` | Extra volume mounts for component container |\n| components.extraVolumes | list | `[]` | Extra volumes for component pod |\n| hub.imageRegistry | string | `nil` | Registry to pull the image (this overwrites global.seleniumGrid.imageRegistry parameter) |\n| hub.imageName | string | `\"hub\"` | Selenium Hub image name |\n| hub.imageTag | string | `nil` | Selenium Hub image tag (this overwrites global.seleniumGrid.imageTag parameter) |\n| hub.imagePullPolicy | string | `\"IfNotPresent\"` | Image pull policy (see https://kubernetes.io/docs/concepts/containers/images/#updating-images) |\n| hub.imagePullSecret | string | `\"\"` | Image pull secret (see https://kubernetes.io/docs/tasks/configure-pod-container/pull-image-private-registry/) |\n| hub.affinity | object | `{}` | Specify affinity for Selenium Hub pods, this overwrites global.seleniumGrid.affinity parameter |\n| hub.topologySpreadConstraints | list | `[]` | Specify topologySpreadConstraints for Hub pods, this overwrites global.seleniumGrid.topologySpreadConstraints parameter |\n| hub.annotations | object | `{}` | Custom annotations for Selenium Hub pods |\n| hub.labels | object | `{}` | Custom labels for Selenium Hub pods |\n| hub.disableUI | bool | `false` | Disable the Grid UI |\n| hub.sessionRequestTimeout | string | `\"\"` | Override global sessionRequestTimeout |\n| hub.newSessionThreadPoolSize | string | `nil` | Configure fixed-sized thread pool for the Distributor to create new sessions as it consumes new session requests from the queue |\n| hub.publishPort | int | `4442` | Port where events are published |\n| hub.publishNodePort | int | `31442` | NodePort exposed where events are published |\n| hub.subscribePort | int | `4443` | Port where to subscribe for events |\n| hub.subscribeNodePort | int | `32443` | NodePort exposed where to subscribe for events |\n| hub.port | int | `4444` | Selenium Hub port |\n| hub.nodePort | int | `31444` | Selenium Hub expose NodePort |\n| hub.startupProbe | object | `{\"enabled\":true,\"failureThreshold\":10,\"initialDelaySeconds\":5,\"path\":\"/readyz\",\"periodSeconds\":10,\"successThreshold\":1,\"timeoutSeconds\":10}` | Startup probe settings |\n| hub.readinessProbe | object | `{\"enabled\":true,\"failureThreshold\":10,\"initialDelaySeconds\":12,\"path\":\"/readyz\",\"periodSeconds\":10,\"successThreshold\":1,\"timeoutSeconds\":10}` | Readiness probe settings |\n| hub.livenessProbe | object | `{\"enabled\":true,\"failureThreshold\":30,\"initialDelaySeconds\":60,\"path\":\"/readyz\",\"periodSeconds\":60,\"successThreshold\":1,\"timeoutSeconds\":60}` | Liveness probe settings |\n| hub.subPath | string | `\"\"` | Custom sub path for the hub deployment |\n| hub.slotSelectorStrategy | string | `\"\"` | Full class name of non-default slot selector. This is used to select a slot in a Node once the Node has been matched |\n| hub.extraEnvironmentVariables | list | `[]` | Custom environment variables for selenium-hub |\n| hub.extraEnvFrom | list | `[]` | Custom environment variables by sourcing entire configMap, Secret, etc. for selenium-hub |\n| hub.extraVolumeMounts | list | `[]` | Extra volume mounts for Hub container |\n| hub.extraVolumes | list | `[]` | Extra volumes for Hub pod |\n| hub.resources | object | `{\"limits\":{\"cpu\":\"1\",\"memory\":\"2Gi\"},\"requests\":{\"cpu\":\"0.5\",\"memory\":\"1Gi\"}}` | Resources for selenium-hub container |\n| hub.replicas | int | `1` | Number of replicas |\n| hub.securityContext | object | `{}` | SecurityContext for selenium-hub container |\n| hub.serviceType | string | `\"ClusterIP\"` | Kubernetes service type (see https://kubernetes.io/docs/concepts/services-networking/service/#publishing-services-service-types) |\n| hub.clusterIP | string | `\"\"` | Set specific clusterIP when serviceType is ClusterIP (see https://kubernetes.io/docs/concepts/services-networking/service/#type-clusterip) |\n| hub.externalName | string | `\"\"` | Set specific externalName when serviceType is ExternalName (see https://kubernetes.io/docs/concepts/services-networking/service/#type-externalname) |\n| hub.loadBalancerIP | string | `\"\"` | Set specific loadBalancerIP when serviceType is LoadBalancer (see https://kubernetes.io/docs/concepts/services-networking/service/#loadbalancer) |\n| hub.serviceAnnotations | object | `{}` | Custom annotations for Selenium Hub service |\n| hub.serviceExternalTrafficPolicy | string | `\"\"` | Set externalTrafficPolicy to Local or Cluster (see https://kubernetes.io/docs/concepts/services-networking/service-traffic-policy/) |\n| hub.serviceSessionAffinity | string | `\"\"` | Set session affinity to None, ClientIP or ClientIPString |\n| hub.tolerations | list | `[]` | Tolerations for selenium-hub pods |\n| hub.nodeSelector | object | `{}` | Node selector for selenium-hub pods |\n| hub.priorityClassName | string | `\"\"` | Priority class name for selenium-hub pods |\n| tracing.enabled | bool | `false` | Enable tracing. Implies installing Jaeger |\n| tracing.enabledWithExistingEndpoint | bool | `false` | Enable tracing without automatically installing Jaeger |\n| tracing.exporter | string | `\"otlp\"` | Exporter type for tracing. Recommended `otlp` for wide compatibility with observability backends (e.g. Jaeger, Elastic, etc.) |\n| tracing.exporterEndpoint | string | `\"http://{{ .Release.Name }}-jaeger:4317\"` | Exporter endpoint for pushing trace data |\n| tracing.globalAutoConfigure | bool | `true` | Enable global auto-configuration for tracing |\n| tracing.ingress.enabled | bool | `true` | Enable ingress resource to access the Jaeger |\n| tracing.ingress.annotations | string | `nil` | Annotations for Jaeger ingress resource |\n| tracing.ingress.paths | list | `[{\"backend\":{\"service\":{\"name\":\"{{ .Release.Name }}-jaeger\",\"port\":{\"number\":16686}}},\"path\":\"/jaeger\",\"pathType\":\"Prefix\"}]` | Configure paths for Jaeger ingress resource |\n| monitoring.enabled | bool | `false` |  |\n| monitoring.enabledWithExistingAgent | bool | `false` |  |\n| monitoring.exporter.nameOverride | string | `\"\"` |  |\n| monitoring.exporter.imageRegistry | string | `\"ricardbejarano\"` |  |\n| monitoring.exporter.imageName | string | `\"graphql_exporter\"` |  |\n| monitoring.exporter.imageTag | string | `\"latest\"` |  |\n| monitoring.exporter.imagePullSecret | string | `\"\"` | Custom pull secret for container in patch job |\n| monitoring.exporter.annotations | object | `{}` |  |\n| monitoring.exporter.port | int | `9199` |  |\n| monitoring.exporter.service.enabled | bool | `true` | Create a service for exporter |\n| monitoring.exporter.service.type | string | `\"ClusterIP\"` | Service type |\n| monitoring.exporter.service.clusterIP | string | `\"\"` | Set specific clusterIP when serviceType is ClusterIP (see https://kubernetes.io/docs/concepts/services-networking/service/#type-clusterip) |\n| monitoring.exporter.service.externalName | string | `\"\"` | Set specific externalName when serviceType is ExternalName (see https://kubernetes.io/docs/concepts/services-networking/service/#type-externalname) |\n| monitoring.exporter.service.loadBalancerIP | string | `\"\"` | Set specific loadBalancerIP when serviceType is LoadBalancer (see https://kubernetes.io/docs/concepts/services-networking/service/#loadbalancer) |\n| monitoring.exporter.service.nodePort | int | `30199` | Node port for service |\n| monitoring.exporter.service.annotations | object | `{}` | Annotations for exporter service |\n| monitoring.exporter.service.externalTrafficPolicy | string | `\"\"` | Set externalTrafficPolicy to Local or Cluster (see https://kubernetes.io/docs/concepts/services-networking/service-traffic-policy/) |\n| monitoring.exporter.service.sessionAffinity | string | `\"\"` | Set session affinity to None, ClientIP or ClientIPString |\n| monitoring.exporter.replicas | int | `1` |  |\n| monitoring.exporter.tolerations | list | `[]` | Tolerations for exporter pods |\n| monitoring.additionalScrapeConfigs.key | string | `\"\"` |  |\n| monitoring.additionalScrapeConfigs.value | string | `\"\"` |  |\n| monitoring.annotations | object | `{}` |  |\n| autoscaling.enabled | bool | `false` | Enable autoscaling. Implies installing KEDA |\n| autoscaling.enableWithExistingKEDA | bool | `false` | Enable autoscaling without automatically installing KEDA |\n| autoscaling.scalingType | string | `\"job\"` | Which type of KEDA scaling to use: job or deployment |\n| autoscaling.setReplicasInSpec | bool | `true` | Force remove replicas in deployment spec in case ArgoCD with AutoSync enabled will try to resolve back to desired state |\n| autoscaling.slotSelectorStrategy | string | `\"org.openqa.selenium.grid.distributor.selector.GreedySlotSelector\"` | Strategy for Selenium Hub/Distributor select slot to assign to a new session. |\n| autoscaling.authenticationRef | object | `{\"annotations\":{\"helm.sh/hook\":\"post-install,post-upgrade,post-rollback\",\"helm.sh/hook-weight\":\"0\"},\"name\":\"\"}` | Specify an external KEDA TriggerAuthentication resource is used for scaler triggers config. Apply for all browser nodes |\n| autoscaling.useCachedMetrics | bool | `false` | Enables caching of metric values during polling interval (as specified in .spec.pollingInterval, the default: false in KEDA). |\n| autoscaling.triggerName | string | `\"\"` | Set trigger name. |\n| autoscaling.metricType | string | `\"\"` | The type of metric that should be used (The default: AverageValue in KEDA) |\n| autoscaling.annotations | object | `{\"helm.sh/hook\":\"post-install,post-upgrade,post-rollback\",\"helm.sh/hook-weight\":\"1\"}` | Annotations for KEDA resources: ScaledObject and ScaledJob |\n| autoscaling.patchObjectFinalizers.nameOverride | string | `nil` | Override the name of the patch job |\n| autoscaling.patchObjectFinalizers.enabled | bool | `true` | Enable patching finalizers for KEDA scaled resources. Workaround for Hook post-upgrade selenium-grid/templates/x-node-hpa.yaml failed: object is being deleted: scaledobjects.keda.sh \"x\" already exists |\n| autoscaling.patchObjectFinalizers.activeDeadlineSeconds | int | `600` | Deadline (in seconds) for patch job to complete |\n| autoscaling.patchObjectFinalizers.annotations | object | `{\"helm.sh/hook\":\"post-install,post-upgrade,post-rollback,pre-delete\",\"helm.sh/hook-delete-policy\":\"hook-succeeded,before-hook-creation\"}` | Annotations for patch job |\n| autoscaling.patchObjectFinalizers.deleteObjectsScript | string | `\"\"` | Define your custom script to replace the default script |\n| autoscaling.patchObjectFinalizers.patchFinalizersScript | string | `\"\"` | Define your custom script to replace the default script |\n| autoscaling.patchObjectFinalizers.defaultMode | int | `493` | Default mode for ConfigMap is mounted as file |\n| autoscaling.patchObjectFinalizers.serviceAccount | string | `\"\"` | Define an external service account name contains permissions to patch KEDA scaled resources |\n| autoscaling.patchObjectFinalizers.imagePullSecret | string | `\"\"` | Custom pull secret for container in patch job |\n| autoscaling.patchObjectFinalizers.resources | object | `{\"limits\":{\"cpu\":\"200m\",\"memory\":\"500Mi\"},\"requests\":{\"cpu\":\"100m\",\"memory\":\"200Mi\"}}` | Define resources for container in patch job |\n| autoscaling.patchObjectFinalizers.nodeSelector | object | `{}` | Node selector for the patch job |\n| autoscaling.patchObjectFinalizers.tolerations | list | `[]` | Tolerations for the patch job |\n| autoscaling.defaultTriggerType | string | `\"selenium-grid\"` | Default type of trigger to use (`selenium-grid` is build-in scaler in KEDA) |\n| autoscaling.defaultTriggerName | string | `\"seleniumGrid\"` | Default alias name of trigger type (which is used in formula if you want to add scalingModifiers to advanced spec) |\n| autoscaling.scaledOptions | object | `{\"maxReplicaCount\":24,\"minReplicaCount\":0,\"pollingInterval\":20,\"triggers\":[]}` | Options for KEDA scaled resources (keep only common options used for both ScaledJob and ScaledObject) |\n| autoscaling.scaledOptions.minReplicaCount | int | `0` | Minimum number of replicas |\n| autoscaling.scaledOptions.maxReplicaCount | int | `24` | Maximum number of replicas |\n| autoscaling.scaledOptions.pollingInterval | int | `20` | Polling interval in seconds |\n| autoscaling.scaledOptions.triggers | list | `[]` | List of triggers. Be careful, the default trigger of `selenium-grid` will be overwritten if you specify this |\n| autoscaling.scaledJobOptions.scalingStrategy.strategy | string | `\"default\"` | Scaling strategy for KEDA ScaledJob - https://keda.sh/docs/latest/reference/scaledjob-spec/#scalingstrategy |\n| autoscaling.scaledJobOptions.successfulJobsHistoryLimit | int | `0` | Number of Completed jobs should be kept |\n| autoscaling.scaledJobOptions.failedJobsHistoryLimit | int | `0` | Number of Failed jobs should be kept (for troubleshooting purposes) |\n| autoscaling.scaledJobOptions.jobTargetRef | object | `{\"backoffLimit\":0,\"completions\":1,\"parallelism\":1}` | Specify job target ref for KEDA ScaledJob |\n| autoscaling.scaledObjectOptions.advanced.restoreToOriginalReplicaCount | bool | `true` |  |\n| autoscaling.scaledObjectOptions.scaleTargetRef.kind | string | `\"Deployment\"` | Target reference for KEDA ScaledObject |\n| autoscaling.scaledOverProvisionRatio | string | `\"\"` |  |\n| autoscaling.terminationGracePeriodSeconds | int | `3600` | Define terminationGracePeriodSeconds for scalingType \"deployment\". Period for `deregisterLifecycle` to gracefully shut down the node before force terminating it |\n| autoscaling.deregisterLifecycle | string | `nil` | Define preStop command to shut down the node gracefully when scalingType is set to \"deployment\" |\n| crossBrowsers.chromeNode | list | `[{\"nameOverride\":null}]` | Additional chrome nodes, array of objects with the same structure as `chromeNode` |\n| crossBrowsers.firefoxNode | list | `[{\"nameOverride\":null}]` | Additional firefox nodes, array of objects with the same structure as `firefoxNode` |\n| crossBrowsers.edgeNode | list | `[{\"nameOverride\":null}]` | Additional edge nodes, array of objects with the same structure as `edgeNode` |\n| crossBrowsers.relayNode | list | `[{\"nameOverride\":null}]` | Additional release nodes, array of objects with the same structure as `relayNode` |\n| chromeNode.enabled | bool | `true` | Enable chrome nodes |\n| chromeNode.deploymentEnabled | bool | `true` | NOTE: Only used when autoscaling.enabled is false Enable creation of Deployment true (default) - if you want long-living pods false - for provisioning your own custom type such as Jobs |\n| chromeNode.updateStrategy | object | `{\"type\":null}` | Global update strategy will be overwritten by individual component |\n| chromeNode.replicas | int | `1` | Number of chrome nodes |\n| chromeNode.imageRegistry | string | `nil` | Registry to pull the image (this overwrites global.seleniumGrid.imageRegistry parameter) |\n| chromeNode.imageName | string | `\"node-chrome\"` | Image of chrome nodes |\n| chromeNode.imageTag | string | `nil` | Image of chrome nodes (this overwrites global.seleniumGrid.nodesImageTag) |\n| chromeNode.imagePullPolicy | string | `\"IfNotPresent\"` | Image pull policy (see https://kubernetes.io/docs/concepts/containers/images/#updating-images) |\n| chromeNode.imagePullSecret | string | `\"\"` | Image pull secret (see https://kubernetes.io/docs/tasks/configure-pod-container/pull-image-private-registry/) |\n| chromeNode.ports | list | `[]` | Extra ports list to enable on the node container (e.g. SSH, VNC, NoVNC, etc.) |\n| chromeNode.port | int | `5555` | Node component port |\n| chromeNode.nodePort | string | `nil` | Node component expose NodePort |\n| chromeNode.affinity | object | `{}` | Specify affinity for chrome-node pods, this overwrites global.seleniumGrid.affinity parameter |\n| chromeNode.topologySpreadConstraints | list | `[]` | Specify topologySpreadConstraints for chrome-node pods, this overwrites global.seleniumGrid.topologySpreadConstraints parameter |\n| chromeNode.annotations | object | `{}` | Annotations for chrome-node pods |\n| chromeNode.labels | object | `{}` | Labels for chrome-node pods |\n| chromeNode.shareProcessNamespace | bool | `true` | Shared process namespace for chrome-node pods |\n| chromeNode.resources.requests | object | `{\"cpu\":\"1\",\"memory\":\"1Gi\"}` | Request resources for chrome-node pods |\n| chromeNode.resources.limits | object | `{\"cpu\":\"1\",\"memory\":\"2Gi\"}` | Limit resources for chrome-node pods |\n| chromeNode.securityContext | object | `{}` | SecurityContext for chrome-node container |\n| chromeNode.tolerations | list | `[]` | Tolerations for chrome-node pods |\n| chromeNode.nodeSelector | object | `{}` | Node selector for chrome-node pods |\n| chromeNode.hostAliases | string | `nil` | Custom host aliases for chrome nodes |\n| chromeNode.extraEnvironmentVariables | list | `[]` | Custom environment variables for chrome nodes |\n| chromeNode.extraEnvFrom | list | `[]` | Custom environment variables by sourcing entire configMap, Secret, etc. for chrome nodes |\n| chromeNode.service.enabled | bool | `false` | Create a service for node |\n| chromeNode.service.type | string | `\"ClusterIP\"` | Service type |\n| chromeNode.service.loadBalancerIP | string | `\"\"` | Set specific loadBalancerIP when serviceType is LoadBalancer (see https://kubernetes.io/docs/concepts/services-networking/service/#loadbalancer) |\n| chromeNode.service.ports | string | `nil` | Extra ports exposed in node service |\n| chromeNode.service.annotations | object | `{}` | Custom annotations for service |\n| chromeNode.service.externalTrafficPolicy | string | `\"\"` | Set externalTrafficPolicy to Local or Cluster (see https://kubernetes.io/docs/concepts/services-networking/service-traffic-policy/) |\n| chromeNode.service.sessionAffinity | string | `\"\"` | Set session affinity to None, ClientIP or ClientIPString |\n| chromeNode.dshmVolumeSizeLimit | string | `\"\"` | Size limit for DSH volume mounted in container (if not set, default is disabled, e.g \"1Gi\") |\n| chromeNode.priorityClassName | string | `\"\"` | Priority class name for chrome-node pods |\n| chromeNode.startupProbe | object | `{\"enabled\":true,\"failureThreshold\":12,\"initialDelaySeconds\":0,\"path\":\"/status\",\"periodSeconds\":5,\"successThreshold\":1,\"timeoutSeconds\":60}` | Startup probe settings |\n| chromeNode.readinessProbe | object | `{\"enabled\":true,\"failureThreshold\":10,\"initialDelaySeconds\":10,\"path\":\"/status\",\"periodSeconds\":10,\"successThreshold\":1,\"timeoutSeconds\":10}` | Readiness probe settings |\n| chromeNode.livenessProbe | object | `{\"enabled\":false,\"failureThreshold\":6,\"initialDelaySeconds\":30,\"path\":\"/status\",\"periodSeconds\":10,\"successThreshold\":1,\"timeoutSeconds\":60}` | Liveness probe settings |\n| chromeNode.terminationGracePeriodSeconds | int | `30` | Time to wait for pod termination |\n| chromeNode.deregisterLifecycle | string | `nil` | Define preStop command to shut down the chrome node gracefully. This overwrites autoscaling.deregisterLifecycle |\n| chromeNode.lifecycle | object | `{}` | Define postStart and preStop events. This overwrites the defined preStop in deregisterLifecycle if any |\n| chromeNode.extraVolumeMounts | list | `[]` | Extra volume mounts for chrome-node container |\n| chromeNode.extraVolumes | list | `[]` | Extra volumes for chrome-node pod |\n| chromeNode.nodeMaxSessions | string | `nil` | Override the number of max sessions per node |\n| chromeNode.nodeDrainAfterSessionCount | string | `nil` | Override the number of sessions to run before draining the node |\n| chromeNode.nodeEnableManagedDownloads | string | `nil` | Override the managed downloads in node |\n| chromeNode.nodeCustomCapabilities | string | `\"\"` | Override the same config at the global level |\n| chromeNode.nodeRegisterPeriod | string | `nil` | Override the same config at the global level |\n| chromeNode.nodeRegisterCycle | string | `nil` | Override the same config at the global level |\n| chromeNode.scaledOptions | string | `nil` | Override the scaled options for chrome nodes |\n| chromeNode.scaledJobOptions | string | `nil` | Override the scaledJobOptions for chrome nodes |\n| chromeNode.scaledObjectOptions | string | `nil` | Override the scaledObjectOptions for chrome nodes |\n| chromeNode.scaledOverProvisionRatio | string | `\"\"` |  |\n| chromeNode.hpa.browserName | string | `\"chrome\"` | browserName should match with Node stereotype and request capability is scaled by this scaler |\n| chromeNode.hpa.sessionBrowserName | string | `\"chrome\"` | sessionBrowserName if the browserName is different from the sessionBrowserName |\n| chromeNode.hpa.browserVersion | string | `\"\"` | browserVersion should match with Node stereotype and request capability is scaled by this scaler |\n| chromeNode.hpa.platformName | string | `\"\"` | platformName should match with Node stereotype and request capability is scaled by this scaler |\n| chromeNode.hpa.unsafeSsl | string | `\"{{ template \\\"seleniumGrid.graphqlURL.unsafeSsl\\\" . }}\"` | Skip check SSL when connecting to the Graphql endpoint |\n| chromeNode.initContainers | list | `[]` | It is used to add initContainers in the same pod of the browser node. It should be set using the --set-json option |\n| chromeNode.sidecars | list | `[]` | It is used to add sidecars proxy in the same pod of the browser node. It means it will add a new container to the deployment itself. It should be set using the --set-json option |\n| chromeNode.videoRecorder | object | `{}` | Override specific video recording settings for chrome node |\n| firefoxNode.enabled | bool | `true` | Enable firefox nodes |\n| firefoxNode.deploymentEnabled | bool | `true` | NOTE: Only used when autoscaling.enabled is false Enable creation of Deployment true (default) - if you want long living pods false - for provisioning your own custom type such as Jobs |\n| firefoxNode.updateStrategy | object | `{\"type\":null}` | Global update strategy will be overwritten by individual component |\n| firefoxNode.replicas | int | `1` | Number of firefox nodes |\n| firefoxNode.imageRegistry | string | `nil` | Registry to pull the image (this overwrites global.seleniumGrid.imageRegistry parameter) |\n| firefoxNode.imageName | string | `\"node-firefox\"` | Image of firefox nodes |\n| firefoxNode.imageTag | string | `nil` | Image of firefox nodes (this overwrites global.seleniumGrid.nodesImageTag) |\n| firefoxNode.imagePullPolicy | string | `\"IfNotPresent\"` | Image pull policy (see https://kubernetes.io/docs/concepts/containers/images/#updating-images) |\n| firefoxNode.imagePullSecret | string | `\"\"` | Image pull secret (see https://kubernetes.io/docs/tasks/configure-pod-container/pull-image-private-registry/) |\n| firefoxNode.ports | list | `[]` | Extra ports list to enable on the node container (e.g. SSH, VNC, NoVNC, etc.) |\n| firefoxNode.port | int | `5555` | Node component port |\n| firefoxNode.nodePort | string | `nil` | Node component expose NodePort |\n| firefoxNode.affinity | object | `{}` | Specify affinity for firefox-node pods, this overwrites global.seleniumGrid.affinity parameter |\n| firefoxNode.topologySpreadConstraints | list | `[]` | Specify topologySpreadConstraints for firefox-node pods, this overwrites global.seleniumGrid.topologySpreadConstraints parameter |\n| firefoxNode.annotations | object | `{}` | Annotations for firefox-node pods |\n| firefoxNode.labels | object | `{}` | Labels for firefox-node pods |\n| firefoxNode.tolerations | list | `[]` | Tolerations for firefox-node pods |\n| firefoxNode.nodeSelector | object | `{}` | Node selector for firefox-node pods |\n| firefoxNode.shareProcessNamespace | bool | `true` | Shared process namespace for firefox-node pods |\n| firefoxNode.resources.requests | object | `{\"cpu\":\"1\",\"memory\":\"1Gi\"}` | Request resources for firefox-node pods |\n| firefoxNode.resources.limits | object | `{\"cpu\":\"1\",\"memory\":\"2Gi\"}` | Limit resources for firefox-node pods |\n| firefoxNode.securityContext | object | `{}` | SecurityContext for firefox-node container |\n| firefoxNode.hostAliases | string | `nil` | Custom host aliases for firefox nodes |\n| firefoxNode.extraEnvironmentVariables | list | `[]` | Custom environment variables for firefox nodes |\n| firefoxNode.extraEnvFrom | list | `[]` | Custom environment variables by sourcing entire configMap, Secret, etc. for firefox nodes |\n| firefoxNode.service.enabled | bool | `false` | Create a service for node |\n| firefoxNode.service.type | string | `\"ClusterIP\"` | Service type |\n| firefoxNode.service.loadBalancerIP | string | `\"\"` | Set specific loadBalancerIP when serviceType is LoadBalancer (see https://kubernetes.io/docs/concepts/services-networking/service/#loadbalancer) |\n| firefoxNode.service.ports | string | `nil` | Extra ports exposed in node service |\n| firefoxNode.service.annotations | object | `{}` | Custom annotations for service |\n| firefoxNode.service.externalTrafficPolicy | string | `\"\"` | Set externalTrafficPolicy to Local or Cluster (see https://kubernetes.io/docs/concepts/services-networking/service-traffic-policy/) |\n| firefoxNode.service.sessionAffinity | string | `\"\"` | Set session affinity to None, ClientIP or ClientIPString |\n| firefoxNode.dshmVolumeSizeLimit | string | `\"2Gi\"` | Size limit for DSH volume mounted in container (if not set, default is disabled, e.g \"1Gi\") |\n| firefoxNode.priorityClassName | string | `\"\"` | Priority class name for firefox-node pods |\n| firefoxNode.startupProbe | object | `{\"enabled\":true,\"failureThreshold\":12,\"initialDelaySeconds\":0,\"path\":\"/status\",\"periodSeconds\":5,\"successThreshold\":1,\"timeoutSeconds\":60}` | Startup probe settings |\n| firefoxNode.readinessProbe | object | `{\"enabled\":true,\"failureThreshold\":10,\"initialDelaySeconds\":10,\"path\":\"/status\",\"periodSeconds\":10,\"successThreshold\":1,\"timeoutSeconds\":10}` | Readiness probe settings |\n| firefoxNode.livenessProbe | object | `{\"enabled\":false,\"failureThreshold\":6,\"initialDelaySeconds\":30,\"path\":\"/status\",\"periodSeconds\":10,\"successThreshold\":1,\"timeoutSeconds\":60}` | Liveness probe settings |\n| firefoxNode.terminationGracePeriodSeconds | int | `30` | Time to wait for pod termination |\n| firefoxNode.deregisterLifecycle | string | `nil` | Define preStop command to shuts down the chrome node gracefully. This overwrites autoscaling.deregisterLifecycle |\n| firefoxNode.lifecycle | object | `{}` | Define postStart and preStop events. This overwrites the defined preStop in deregisterLifecycle if any |\n| firefoxNode.extraVolumeMounts | list | `[]` | Extra volume mounts for firefox-node container |\n| firefoxNode.extraVolumes | list | `[]` | Extra volumes for firefox-node pod |\n| firefoxNode.nodeMaxSessions | string | `nil` | Override the number of max sessions per node |\n| firefoxNode.nodeDrainAfterSessionCount | string | `nil` | Override the number of sessions to run before draining the node |\n| firefoxNode.nodeEnableManagedDownloads | string | `nil` | Override the managed downloads in node |\n| firefoxNode.nodeCustomCapabilities | string | `\"\"` | Override the same config at the global level |\n| firefoxNode.nodeRegisterPeriod | string | `nil` | Override the same config at the global level |\n| firefoxNode.nodeRegisterCycle | string | `nil` | Override the same config at the global level |\n| firefoxNode.scaledOptions | string | `nil` | Override the scaled options for firefox nodes |\n| firefoxNode.scaledJobOptions | string | `nil` | Override the scaledJobOptions for firefox nodes |\n| firefoxNode.scaledObjectOptions | string | `nil` | Override the scaledObjectOptions for firefox nodes |\n| firefoxNode.scaledOverProvisionRatio | string | `\"\"` |  |\n| firefoxNode.hpa.browserName | string | `\"firefox\"` | browserName should match with Node stereotype and request capability is scaled by this scaler |\n| firefoxNode.hpa.sessionBrowserName | string | `\"firefox\"` | sessionBrowserName if the browserName is different from the sessionBrowserName |\n| firefoxNode.hpa.browserVersion | string | `\"\"` | browserVersion should match with Node stereotype and request capability is scaled by this scaler |\n| firefoxNode.hpa.platformName | string | `\"\"` | platformName should match with Node stereotype and request capability is scaled by this scaler |\n| firefoxNode.hpa.unsafeSsl | string | `\"{{ template \\\"seleniumGrid.graphqlURL.unsafeSsl\\\" . }}\"` | Skip check SSL when connecting to the Graphql endpoint |\n| firefoxNode.initContainers | list | `[]` | It is used to add initContainers in the same pod of the browser node. It should be set using the --set-json option |\n| firefoxNode.sidecars | list | `[]` | It is used to add sidecars proxy in the same pod of the browser node. It means it will add a new container to the deployment itself. It should be set using the --set-json option |\n| firefoxNode.videoRecorder | object | `{}` | Override specific video recording settings for firefox node |\n| edgeNode.enabled | bool | `true` | Enable edge nodes |\n| edgeNode.deploymentEnabled | bool | `true` | NOTE: Only used when autoscaling.enabled is false Enable creation of Deployment true (default) - if you want long living pods false - for provisioning your own custom type such as Jobs |\n| edgeNode.updateStrategy | object | `{\"type\":null}` | Global update strategy will be overwritten by individual component |\n| edgeNode.replicas | int | `1` | Number of edge nodes |\n| edgeNode.imageRegistry | string | `nil` | Registry to pull the image (this overwrites global.seleniumGrid.imageRegistry parameter) |\n| edgeNode.imageName | string | `\"node-edge\"` | Image of edge nodes |\n| edgeNode.imageTag | string | `nil` | Image of edge nodes (this overwrites global.seleniumGrid.nodesImageTag) |\n| edgeNode.imagePullPolicy | string | `\"IfNotPresent\"` | Image pull policy (see https://kubernetes.io/docs/concepts/containers/images/#updating-images) |\n| edgeNode.imagePullSecret | string | `\"\"` | Image pull secret (see https://kubernetes.io/docs/tasks/configure-pod-container/pull-image-private-registry/) |\n| edgeNode.ports | list | `[]` | Extra ports list to enable on the node container (e.g. SSH, VNC, NoVNC, etc.) |\n| edgeNode.port | int | `5555` | Node component port |\n| edgeNode.nodePort | string | `nil` | Node component expose NodePort |\n| edgeNode.affinity | object | `{}` | Specify affinity for edge-node pods, this overwrites global.seleniumGrid.affinity parameter |\n| edgeNode.topologySpreadConstraints | list | `[]` | Specify topologySpreadConstraints for edge-node pods, this overwrites global.seleniumGrid.topologySpreadConstraints parameter |\n| edgeNode.annotations | object | `{}` | Annotations for edge-node pods |\n| edgeNode.labels | object | `{}` | Labels for edge-node pods |\n| edgeNode.tolerations | list | `[]` | Tolerations for edge-node pods |\n| edgeNode.nodeSelector | object | `{}` | Node selector for edge-node pods |\n| edgeNode.shareProcessNamespace | bool | `true` | Shared process namespace for edge-node pods |\n| edgeNode.resources.requests | object | `{\"cpu\":\"1\",\"memory\":\"1Gi\"}` | Request resources for edge-node pods |\n| edgeNode.resources.limits | object | `{\"cpu\":\"1\",\"memory\":\"2Gi\"}` | Limit resources for edge-node pods |\n| edgeNode.securityContext | object | `{}` | SecurityContext for edge-node container |\n| edgeNode.hostAliases | string | `nil` | Custom host aliases for edge nodes |\n| edgeNode.extraEnvironmentVariables | list | `[]` | Custom environment variables for edge nodes |\n| edgeNode.extraEnvFrom | list | `[]` | Custom environment variables by sourcing entire configMap, Secret, etc. for edge nodes |\n| edgeNode.service.enabled | bool | `false` | Create a service for node |\n| edgeNode.service.type | string | `\"ClusterIP\"` | Service type |\n| edgeNode.service.loadBalancerIP | string | `\"\"` | Set specific loadBalancerIP when serviceType is LoadBalancer (see https://kubernetes.io/docs/concepts/services-networking/service/#loadbalancer) |\n| edgeNode.service.ports | string | `nil` | Extra ports exposed in node service |\n| edgeNode.service.annotations | object | `{}` | Custom annotations for service |\n| edgeNode.service.externalTrafficPolicy | string | `\"\"` | Set externalTrafficPolicy to Local or Cluster (see https://kubernetes.io/docs/concepts/services-networking/service-traffic-policy/) |\n| edgeNode.service.sessionAffinity | string | `\"\"` | Set session affinity to None, ClientIP or ClientIPString |\n| edgeNode.dshmVolumeSizeLimit | string | `\"\"` | Size limit for DSH volume mounted in container (if not set, default is disabled, e.g \"1Gi\") |\n| edgeNode.priorityClassName | string | `\"\"` | Priority class name for edge-node pods |\n| edgeNode.startupProbe | object | `{\"enabled\":true,\"failureThreshold\":12,\"initialDelaySeconds\":0,\"path\":\"/status\",\"periodSeconds\":5,\"successThreshold\":1,\"timeoutSeconds\":60}` | Startup probe settings |\n| edgeNode.readinessProbe | object | `{\"enabled\":true,\"failureThreshold\":10,\"initialDelaySeconds\":10,\"path\":\"/status\",\"periodSeconds\":10,\"successThreshold\":1,\"timeoutSeconds\":10}` | Readiness probe settings |\n| edgeNode.livenessProbe | object | `{\"enabled\":false,\"failureThreshold\":6,\"initialDelaySeconds\":30,\"path\":\"/status\",\"periodSeconds\":10,\"successThreshold\":1,\"timeoutSeconds\":60}` | Liveness probe settings |\n| edgeNode.terminationGracePeriodSeconds | int | `30` | Time to wait for pod termination |\n| edgeNode.deregisterLifecycle | string | `nil` | Define preStop command to shuts down the chrome node gracefully. This overwrites autoscaling.deregisterLifecycle |\n| edgeNode.lifecycle | object | `{}` | Define postStart and preStop events. This overwrites the defined preStop in deregisterLifecycle if any |\n| edgeNode.extraVolumeMounts | list | `[]` | Extra volume mounts for edge-node container |\n| edgeNode.extraVolumes | list | `[]` | Extra volumes for edge-node pod |\n| edgeNode.nodeMaxSessions | string | `nil` | Override the number of max sessions per node |\n| edgeNode.nodeDrainAfterSessionCount | string | `nil` | Override the number of sessions to run before draining the node |\n| edgeNode.nodeEnableManagedDownloads | string | `nil` | Override the managed downloads in node |\n| edgeNode.nodeCustomCapabilities | string | `\"\"` | Override the same config at the global level |\n| edgeNode.nodeRegisterPeriod | string | `nil` | Override the same config at the global level |\n| edgeNode.nodeRegisterCycle | string | `nil` | Override the same config at the global level |\n| edgeNode.scaledOptions | string | `nil` | Override the scaled options for edge nodes |\n| edgeNode.scaledJobOptions | string | `nil` | Override the scaledJobOptions for edge nodes |\n| edgeNode.scaledObjectOptions | string | `nil` | Override the scaledObjectOptions for edge nodes |\n| edgeNode.scaledOverProvisionRatio | string | `\"\"` |  |\n| edgeNode.hpa.browserName | string | `\"MicrosoftEdge\"` | browserName should match with Node stereotype and request capability is scaled by this scaler |\n| edgeNode.hpa.sessionBrowserName | string | `\"msedge\"` | sessionBrowserName if the browserName is different from the sessionBrowserName |\n| edgeNode.hpa.browserVersion | string | `\"\"` | browserVersion should match with Node stereotype and request capability is scaled by this scaler |\n| edgeNode.hpa.platformName | string | `\"\"` | platformName should match with Node stereotype and request capability is scaled by this scaler |\n| edgeNode.hpa.unsafeSsl | string | `\"{{ template \\\"seleniumGrid.graphqlURL.unsafeSsl\\\" . }}\"` | Skip check SSL when connecting to the Graphql endpoint |\n| edgeNode.initContainers | list | `[]` | It is used to add initContainers in the same pod of the browser node. It should be set using the --set-json option |\n| edgeNode.sidecars | list | `[]` | It is used to add sidecars proxy in the same pod of the browser node. It means it will add a new container to the deployment itself. It should be set using the --set-json option |\n| edgeNode.videoRecorder | object | `{}` | Override specific video recording settings for edge node |\n| relayNode.enabled | bool | `false` | Enable relay nodes |\n| relayNode.relayUrl | string | `\"\"` | Specify another Grid, another network, or a cloud vendor that you wish to connect to (e.g. https://ondemand.us-west-1.saucelabs.com/wd/hub) |\n| relayNode.deploymentEnabled | bool | `true` | NOTE: Only used when autoscaling.enabled is false Enable creation of Deployment true (default) - if you want long-living pods false - for provisioning your own custom type such as Jobs |\n| relayNode.updateStrategy | object | `{\"type\":null}` | Global update strategy will be overwritten by individual component |\n| relayNode.replicas | int | `1` | Number of relay nodes |\n| relayNode.imageRegistry | string | `nil` | Registry to pull the image (this overwrites global.seleniumGrid.imageRegistry parameter) |\n| relayNode.imageName | string | `\"node-base\"` | Image of relay nodes |\n| relayNode.imageTag | string | `nil` | Image of relay nodes (this overwrites global.seleniumGrid.nodesImageTag) |\n| relayNode.imagePullPolicy | string | `\"IfNotPresent\"` | Image pull policy (see https://kubernetes.io/docs/concepts/containers/images/#updating-images) |\n| relayNode.imagePullSecret | string | `\"\"` | Image pull secret (see https://kubernetes.io/docs/tasks/configure-pod-container/pull-image-private-registry/) |\n| relayNode.ports | list | `[]` | Extra ports list to enable on the node container (e.g. SSH, VNC, NoVNC, etc.) |\n| relayNode.port | int | `5555` | Node component port |\n| relayNode.nodePort | string | `nil` | Node component expose NodePort |\n| relayNode.affinity | object | `{}` | Specify affinity for relay-node pods, this overwrites global.seleniumGrid.affinity parameter |\n| relayNode.topologySpreadConstraints | list | `[]` | Specify topologySpreadConstraints for relay-node pods, this overwrites global.seleniumGrid.topologySpreadConstraints parameter |\n| relayNode.annotations | object | `{}` | Annotations for relay-node pods |\n| relayNode.labels | object | `{}` | Labels for relay-node pods |\n| relayNode.shareProcessNamespace | bool | `true` | Shared process namespace for relay-node pods |\n| relayNode.resources.requests | object | `{\"cpu\":\"1\",\"memory\":\"1Gi\"}` | Request resources for relay-node pods |\n| relayNode.resources.limits | object | `{\"cpu\":\"1\",\"memory\":\"2Gi\"}` | Limit resources for relay-node pods |\n| relayNode.securityContext | object | `{}` | SecurityContext for relay-node container |\n| relayNode.tolerations | list | `[]` | Tolerations for relay-node pods |\n| relayNode.nodeSelector | object | `{}` | Node selector for relay-node pods |\n| relayNode.hostAliases | string | `nil` | Custom host aliases for relay nodes |\n| relayNode.extraEnvironmentVariables | list | `[]` | Custom environment variables for relay nodes |\n| relayNode.extraEnvFrom | list | `[]` | Custom environment variables by sourcing entire configMap, Secret, etc. for relay nodes |\n| relayNode.service.enabled | bool | `false` | Create a service for node |\n| relayNode.service.type | string | `\"ClusterIP\"` | Service type |\n| relayNode.service.loadBalancerIP | string | `\"\"` | Set specific loadBalancerIP when serviceType is LoadBalancer (see https://kubernetes.io/docs/concepts/services-networking/service/#loadbalancer) |\n| relayNode.service.ports | string | `nil` | Extra ports exposed in node service |\n| relayNode.service.annotations | object | `{}` | Custom annotations for service |\n| relayNode.service.externalTrafficPolicy | string | `\"\"` | Set externalTrafficPolicy to Local or Cluster (see https://kubernetes.io/docs/concepts/services-networking/service-traffic-policy/) |\n| relayNode.service.sessionAffinity | string | `\"\"` | Set session affinity to None, ClientIP or ClientIPString |\n| relayNode.dshmVolumeSizeLimit | string | `\"\"` | Size limit for DSH volume mounted in container (if not set, default is disabled, e.g \"1Gi\") |\n| relayNode.priorityClassName | string | `\"\"` | Priority class name for relay-node pods |\n| relayNode.startupProbe | object | `{\"enabled\":true,\"failureThreshold\":12,\"initialDelaySeconds\":0,\"path\":\"/status\",\"periodSeconds\":5,\"successThreshold\":1,\"timeoutSeconds\":60}` | Startup probe settings |\n| relayNode.readinessProbe | object | `{\"enabled\":true,\"failureThreshold\":10,\"initialDelaySeconds\":10,\"path\":\"/status\",\"periodSeconds\":10,\"successThreshold\":1,\"timeoutSeconds\":10}` | Readiness probe settings |\n| relayNode.livenessProbe | object | `{\"enabled\":false,\"failureThreshold\":6,\"initialDelaySeconds\":30,\"path\":\"/status\",\"periodSeconds\":10,\"successThreshold\":1,\"timeoutSeconds\":60}` | Liveness probe settings |\n| relayNode.terminationGracePeriodSeconds | int | `30` | Time to wait for pod termination |\n| relayNode.deregisterLifecycle | string | `nil` | Define preStop command to shut down the relay node gracefully. This overwrites autoscaling.deregisterLifecycle |\n| relayNode.lifecycle | object | `{}` | Define postStart and preStop events. This overwrites the defined preStop in deregisterLifecycle if any |\n| relayNode.extraVolumeMounts | list | `[]` | Extra volume mounts for relay-node container |\n| relayNode.extraVolumes | list | `[]` | Extra volumes for relay-node pod |\n| relayNode.nodeMaxSessions | string | `nil` | Override the number of max sessions per node |\n| relayNode.nodeDrainAfterSessionCount | string | `nil` | Override the number of sessions to run before draining the node |\n| relayNode.nodeEnableManagedDownloads | string | `nil` | Override the managed downloads in node |\n| relayNode.nodeCustomCapabilities | string | `\"\"` | Override the same config at the global level |\n| relayNode.nodeRegisterPeriod | string | `nil` | Override the same config at the global level |\n| relayNode.nodeRegisterCycle | string | `nil` | Override the same config at the global level |\n| relayNode.scaledOptions | string | `nil` | Override the scaled options for relay nodes |\n| relayNode.scaledJobOptions | string | `nil` | Override the scaledJobOptions for relay nodes |\n| relayNode.scaledObjectOptions | string | `nil` | Override the scaledObjectOptions for relay nodes |\n| relayNode.scaledOverProvisionRatio | string | `\"\"` |  |\n| relayNode.hpa.browserName | string | `\"\"` | browserName should match with Node stereotype and request capability is scaled by this scaler |\n| relayNode.hpa.sessionBrowserName | string | `\"\"` | sessionBrowserName if the browserName is different from the sessionBrowserName |\n| relayNode.hpa.browserVersion | string | `\"\"` | browserVersion should match with Node stereotype and request capability is scaled by this scaler |\n| relayNode.hpa.platformName | string | `\"\"` | platformName should match with Node stereotype and request capability is scaled by this scaler |\n| relayNode.hpa.unsafeSsl | string | `\"{{ template \\\"seleniumGrid.graphqlURL.unsafeSsl\\\" . }}\"` | Skip check SSL when connecting to the Graphql endpoint |\n| relayNode.initContainers | list | `[]` | It is used to add initContainers in the same pod of the browser node. It should be set using the --set-json option |\n| relayNode.sidecars | list | `[]` | It is used to add sidecars proxy in the same pod of the browser node. It means it will add a new container to the deployment itself. It should be set using the --set-json option |\n| relayNode.videoRecorder | object | `{}` | Override specific video recording settings for edge node |\n| videoRecorder.enabled | bool | `false` | Enable video recording in all browser nodes |\n| videoRecorder.sidecarContainer | bool | `false` | Video recorder run as a sidecar container (2 containers in the same pod), or a single container with browser and recorder https://github.com/SeleniumHQ/docker-selenium/discussions/2539 |\n| videoRecorder.name | string | `\"video\"` | Container name is set to resource specs |\n| videoRecorder.imageRegistry | string | `nil` | Registry to pull the image (this overwrites global.seleniumGrid.imageRegistry parameter) |\n| videoRecorder.imageName | string | `\"video\"` | Image of video recorder |\n| videoRecorder.imageTag | string | `nil` | Image of video recorder (this overwrites global.seleniumGrid.videoImageTag) |\n| videoRecorder.imagePullPolicy | string | `\"IfNotPresent\"` | Image pull policy (see https://kubernetes.io/docs/concepts/containers/images/#updating-images) |\n| videoRecorder.targetFolder | string | `\"/videos\"` | Directory to store video files in the container |\n| videoRecorder.uploader.enabled | bool | `false` | Enable video uploader |\n| videoRecorder.uploader.destinationPrefix | string | `nil` | Where to upload the video file e.g. remoteName://bucketName/path. Refer to destination syntax of rclone https://rclone.org/docs/ |\n| videoRecorder.uploader.name | string | `nil` | What uploader to use (default is empty, internal upload in video container). See .videRecorder.s3 for how to create a new external sidecar container. |\n| videoRecorder.uploader.configFileName | string | `\"upload.conf\"` | Uploader config file name |\n| videoRecorder.uploader.entryPointFileName | string | `\"upload.sh\"` | Uploader entry point file name |\n| videoRecorder.uploader.secrets | string | `nil` | For environment variables used in uploader which contains sensitive information, store in secret and refer envFrom Set config for rclone via ENV var with format: RCLONE_CONFIG_ + name of remote + _ + name of config file option (make it all uppercase) |\n| videoRecorder.uploader.extraEnvFrom | list | `[]` | Custom environment variables by sourcing entire configMap, Secret, etc. for uploader |\n| videoRecorder.ports | list | `[9000]` | Video recording container port |\n| videoRecorder.resources.requests | object | `{\"cpu\":\"0.1\",\"memory\":\"128Mi\"}` | Request resources for video recorder pods |\n| videoRecorder.resources.limits | object | `{\"cpu\":\"0.5\",\"memory\":\"1Gi\"}` | Limit resources for video recorder pods |\n| videoRecorder.securityContext | string | `nil` | SecurityContext for recorder container |\n| videoRecorder.extraEnvironmentVariables | list | `[]` | Extra environment variables for video recorder |\n| videoRecorder.extraEnvFrom | list | `[]` | Custom environment variables by sourcing entire configMap, Secret, etc. for video recorder. |\n| videoRecorder.terminationGracePeriodSeconds | int | `30` | Terminating grace period for video recorder |\n| videoRecorder.startupProbe | object | `{}` | Startup probe settings |\n| videoRecorder.livenessProbe | object | `{}` | Liveness probe settings |\n| videoRecorder.lifecycle | object | `{}` | Define lifecycle events for video recorder |\n| videoRecorder.extraVolumeMounts | list | `[]` | Custom video recorder back-end scripts (video.sh, video_ready.py, etc.) further by ConfigMap. NOTE: For the mount point with the name \"video\", or \"video-scripts\", it will override the default. For other names, it will be appended. |\n| videoRecorder.extraVolumes | list | `[]` | Extra volumes for video recorder pod |\n| videoRecorder.s3 | object | `{\"args\":[],\"command\":[],\"extraEnvironmentVariables\":[],\"imageName\":\"aws-cli\",\"imagePullPolicy\":\"IfNotPresent\",\"imageRegistry\":\"bitnami\",\"imageTag\":\"latest\",\"securityContext\":{\"runAsUser\":0}}` | Container spec for the uploader if above it is defined as \"uploader.name: s3\" |\n| customLabels | object | `{}` | Add more labels to all resources created by this chart or override existing label keys |\n| videoManager.enabled | bool | `false` | Enable video manager |\n| videoManager.nameOverride | string | `\"\"` | Override deployment name of video manager |\n| videoManager.ingress.enabled | bool | `true` | Enable ingress resource to access the file browser |\n| videoManager.ingress.annotations | string | `nil` | Annotations for file browser ingress resource |\n| videoManager.ingress.paths | list | `[]` | Configure paths for file browser ingress resource |\n| videoManager.imageRegistry | string | `\"filebrowser\"` | Registry to pull the image (this overwrites global.seleniumGrid.imageRegistry parameter) |\n| videoManager.imageName | string | `\"filebrowser\"` | File browser image name |\n| videoManager.imageTag | string | `\"latest\"` | File browser image tag (this overwrites global.seleniumGrid.imageTag parameter) |\n| videoManager.imagePullPolicy | string | `\"IfNotPresent\"` | Image pull policy (see https://kubernetes.io/docs/concepts/containers/images/#updating-images) |\n| videoManager.imagePullSecret | string | `\"\"` | Image pull secret (see https://kubernetes.io/docs/tasks/configure-pod-container/pull-image-private-registry/) |\n| videoManager.config.baseurl | string | `\"/recordings\"` | Base URL use to access the file browser (in case expose both Grid and file browser via ingress, e.g. Grid at http://public.ip/selenium and FB at http://public.ip/recordings) |\n| videoManager.config.username | string | `\"\"` | Username for the first user when using quick config (default \"admin\") |\n| videoManager.config.password | string | `\"\"` | Hashed password (bcrypt) for the first user when using quick config (default \"admin\") |\n| videoManager.config.noauth | bool | `true` | Use the noauth auther when using quick setup |\n| videoManager.extraEnvironmentVariables | list | `[]` | Specify extra environment variables for Router. You can pass any environment variables support by https://filebrowser.org/changelog.html |\n| videoManager.extraEnvFrom | list | `[]` | Specify extra environment variables from ConfigMap and Secret for Router |\n| videoManager.affinity | object | `{}` | Specify affinity for router pods, this overwrites global.seleniumGrid.affinity parameter |\n| videoManager.topologySpreadConstraints | list | `[]` | Specify topologySpreadConstraints for router pods, this overwrites global.seleniumGrid.topologySpreadConstraints parameter |\n| videoManager.annotations | object | `{}` | Custom annotations for router pods |\n| videoManager.port | int | `80` | Router container port |\n| videoManager.nodePort | int | `30080` | Router expose NodePort |\n| videoManager.startupProbe | object | `{}` | Startup probe settings |\n| videoManager.readinessProbe | object | `{}` | Readiness probe settings |\n| videoManager.livenessProbe | object | `{}` | Liveness probe settings |\n| videoManager.lifecycle | object | `{}` |  |\n| videoManager.resources | object | `{\"limits\":{\"cpu\":\"1\",\"memory\":\"1Gi\"},\"requests\":{\"cpu\":\"0.1\",\"memory\":\"128Mi\"}}` | Resources for router container |\n| videoManager.replicas | int | `1` | Number of replicas |\n| videoManager.securityContext | object | `{}` | SecurityContext for router container |\n| videoManager.serviceType | string | `\"ClusterIP\"` | Kubernetes service type (see https://kubernetes.io/docs/concepts/services-networking/service/#publishing-services-service-types) |\n| videoManager.clusterIP | string | `\"\"` | Set specific clusterIP when serviceType is ClusterIP (see https://kubernetes.io/docs/concepts/services-networking/service/#type-clusterip) |\n| videoManager.externalName | string | `\"\"` | Set specific externalName when serviceType is ExternalName (see https://kubernetes.io/docs/concepts/services-networking/service/#type-externalname) |\n| videoManager.loadBalancerIP | string | `\"\"` | Set specific loadBalancerIP when serviceType is LoadBalancer (see https://kubernetes.io/docs/concepts/services-networking/service/#loadbalancer) |\n| videoManager.serviceAnnotations | object | `{}` | Custom annotations for router service |\n| videoManager.serviceExternalTrafficPolicy | string | `\"\"` | Set externalTrafficPolicy to Local or Cluster (see https://kubernetes.io/docs/concepts/services-networking/service-traffic-policy/) |\n| videoManager.serviceSessionAffinity | string | `\"\"` | Set session affinity to None, ClientIP or ClientIPString |\n| videoManager.tolerations | list | `[]` | Tolerations for router pods |\n| videoManager.nodeSelector | object | `{}` | Node selector for router pods |\n| videoManager.priorityClassName | string | `\"\"` | Priority class name for router pods |\n| videoManager.extraVolumeMounts | list | `[]` |  |\n| videoManager.extraVolumes | list | `[]` | Extra volumes for video recorder pod |\n| networkPolicies | object | `{}` | Add network policies to this chart It can be set using the --set-json option |\n| keda.additionalAnnotations | string | `nil` | Annotations for KEDA resources |\n| keda.http.timeout | int | `60000` |  |\n| keda.webhooks | object | `{\"enabled\":false}` | Enable KEDA admission webhooks component |\n| traefik | object | `{\"ingressClass\":{\"enabled\":true,\"isDefaultClass\":false,\"name\":\"traefik\"},\"tlsStore\":{\"default\":{\"defaultCertificate\":null}}}` | Configuration for dependency chart traefik |\n| kube-prometheus-stack | object | `{\"cleanPrometheusOperatorObjectNames\":true,\"prometheus\":{\"prometheusSpec\":{\"additionalConfig\":{\"additionalScrapeConfigs\":{\"key\":\"{{ template \\\"seleniumGrid.monitoring.scrape.key\\\" $ }}\",\"name\":\"{{ template \\\"seleniumGrid.monitoring.exporter.fullname\\\" $ }}\"}}}},\"prometheusOperator\":{\"admissionWebhooks\":{\"enabled\":false}}}` | Configuration for dependency chart kube-prometheus-stack |\n| jaeger | object | `{\"jaeger\":{\"extraEnv\":[{\"name\":\"QUERY_BASE_PATH\",\"value\":\"/jaeger\"}]},\"storage\":{\"type\":\"badger\"}}` | Configuration for dependency chart jaeger |\n| postgresql.enabled | bool | `false` | Enable to install PostgreSQL along with Grid |\n| postgresql.image.repository | string | `\"bitnamilegacy/postgresql\"` |  |\n| postgresql.auth | object | `{\"database\":\"selenium_sessions\",\"password\":\"seluser\",\"username\":\"seluser\"}` | Authentication should be aligned with config in session map |\n| postgresql.primary.initdb.scripts | object | `{\"init.sql\":\"CREATE TABLE IF NOT EXISTS sessions_map(\\n  session_ids varchar(256),\\n  session_caps text,\\n  session_uri varchar(256),\\n  session_stereotype text,\\n  session_start varchar(256)\\n);\\n\"}` | Initdb scripts for PostgreSQL to create sessions_map table |\n| redis.enabled | bool | `false` | Enable to install Redis along with Grid |\n| redis.image.repository | string | `\"bitnamilegacy/redis\"` |  |\n| redis.architecture | string | `\"standalone\"` | Setup architecture |\n| redis.auth.enabled | bool | `false` | Disable authentication due to implementation still not supporting it |\n\n"
  },
  {
    "path": "charts/selenium-grid/Chart.yaml",
    "content": "apiVersion: v2\nname: selenium-grid\ndescription: A Helm chart for creating a Selenium Grid Server in Kubernetes\ntype: application\nversion: 0.52.0\nappVersion: 4.41.0-20260222\nicon: https://github.com/SeleniumHQ/docker-selenium/raw/trunk/logo.png\ndependencies:\n- repository: https://kedacore.github.io/charts\n  version: 2.19\n  name: keda\n  condition: autoscaling.enabled, keda.enabled\n- repository: https://traefik.github.io/charts\n  version: ^39.0.0\n  name: traefik\n  condition: ingress.enableWithController, traefik.enabled\n- repository: https://jaegertracing.github.io/helm-charts\n  version: ^4.0.0\n  name: jaeger\n  condition: tracing.enabled, jaeger.enabled\n- repository: https://prometheus-community.github.io/helm-charts\n  version: ^82.0.0\n  name: kube-prometheus-stack\n  condition: monitoring.enabled, kube-prometheus-stack.enabled\n- repository: https://charts.bitnami.com/bitnami\n  version: ^18.0.0\n  name: postgresql\n  condition: postgresql.enabled\n- repository: https://charts.bitnami.com/bitnami\n  version: ^25.0.0\n  name: redis\n  condition: redis.enabled\nmaintainers:\n  - name: SeleniumHQ\n    email: docker-selenium@seleniumhq.org\n    url: https://github.com/SeleniumHQ\nsources:\n  - https://github.com/SeleniumHQ/docker-selenium\n"
  },
  {
    "path": "charts/selenium-grid/MIGRATION_INGRESS_NGINX_TO_TRAEFIK.md",
    "content": "# Migration Notes: Ingress NGINX -> Traefik\n\nThis document summarizes configuration changes introduced\n\n- https://github.com/SeleniumHQ/docker-selenium/pull/3083\n- Title: `K8s: Replace Ingress NGINX with Traefik for default ingress controller`\n- Date: `2026-02-21`\n\n## 1. Dependency changes\n\nIn `charts/selenium-grid/Chart.yaml`:\n\n- Removed dependency:\n  - `ingress-nginx` from `https://kubernetes.github.io/ingress-nginx`\n  - condition: `ingress.enableWithController, ingress-nginx.enabled`\n- Added dependency:\n  - `traefik` from `https://traefik.github.io/charts`\n  - version: `^39.0.0`\n  - condition: `ingress.enableWithController, traefik.enabled`\n\n## 2. Values schema changes\n\n### 2.1 Removed `ingress.nginx.*` keys\n\nAll NGINX-specific ingress keys were removed:\n\n- `ingress.nginx.websocket`\n- `ingress.nginx.proxyTimeout`\n- `ingress.nginx.proxyBuffer.size`\n- `ingress.nginx.proxyBuffer.number`\n- `ingress.nginx.sslPassthrough`\n- `ingress.nginx.sslSecret`\n- `ingress.nginx.useHttp2`\n- `ingress.nginx.upstreamKeepalive.connections`\n- `ingress.nginx.upstreamKeepalive.time`\n- `ingress.nginx.upstreamKeepalive.requests`\n\n### 2.2 Added `ingress.traefik.*` keys\n\nNew Traefik-focused keys (from `values.yaml` in the commit):\n\n- `ingress.traefik.enabled: true`\n- `ingress.traefik.entryPoints: \"\"`\n- `ingress.traefik.middlewares: \"\"`\n- `ingress.traefik.priority: \"\"`\n- `ingress.traefik.pathMatcher: \"PathPrefix\"`\n- `ingress.traefik.tls.enabled: true`\n- `ingress.traefik.tls.options: \"\"`\n- `ingress.traefik.tls.certResolver: \"\"`\n- `ingress.traefik.service.useHttpsScheme: true`\n- `ingress.traefik.service.sticky.cookie.enabled: false`\n- `ingress.traefik.serversTransport.enabled: true`\n- `ingress.traefik.serversTransport.nameOverride: \"\"`\n- `ingress.traefik.serversTransport.reference: \"\"`\n- `ingress.traefik.serversTransport.spec.insecureSkipVerify: true`\n- `ingress.traefik.serversTransport.spec.disableHTTP2: true`\n- `ingress.traefik.serversTransport.spec.forwardingTimeouts.dialTimeout: \"3600s\"`\n- `ingress.traefik.serversTransport.spec.forwardingTimeouts.responseHeaderTimeout: \"3600s\"`\n- `ingress.traefik.serversTransport.spec.forwardingTimeouts.idleConnTimeout: \"3600s\"`\n\n### 2.3 Ingress path default changed\n\n- Removed key: `ingress.path`\n- Default ingress path in template changed to:\n  - `default (include \"seleniumGrid.url.subPath\" $) \"/\"`\n- `seleniumGrid.url.subPath` resolves from component subPath config:\n  - when `isolateComponents=true`: `components.router.subPath`\n  - when `isolateComponents=false`: `hub.subPath`\n\nThis makes path default follow Grid sub-path behavior.\n\n### 2.4 Sub-chart values renamed\n\nRemoved block:\n\n- `ingress-nginx: ...`\n\nAdded block:\n\n- `traefik.ingressClass.enabled`\n- `traefik.ingressClass.isDefaultClass`\n- `traefik.ingressClass.name`\n- `traefik.tlsStore.default.defaultCertificate.secretName` (optional)\n\n## 3. Template behavior changes\n\n### 3.1 Ingress annotations\n\nIn `_helpers.tpl` and `ingress.yaml`:\n\n- Removed helper: `seleniumGrid.ingress.nginx.annotations.default`\n- Added helper: `seleniumGrid.ingress.traefik.annotations.default`\n- Ingress now builds default annotations from `ingress.traefik` (when class is `traefik`)\n\n### 3.2 Backend Service annotations\n\nAdded helper:\n\n- `seleniumGrid.service.traefik.annotations.default`\n\nThis applies on Hub/Router Service:\n\n- `traefik.ingress.kubernetes.io/service.serversscheme`\n- `traefik.ingress.kubernetes.io/service.serverstransport`\n\n### 3.3 New ServersTransport resource\n\nNew template:\n\n- `templates/traefik-servers-transport.yaml`\n\nResource created when:\n\n- ingress enabled\n- Traefik annotations enabled\n- `ingress.traefik.serversTransport.enabled=true`\n\nResource name helpers added in `_nameHelpers.tpl`:\n\n- `seleniumGrid.ingress.traefik.serversTransport.name`\n- `seleniumGrid.ingress.traefik.serversTransport.ref`\n\n## 4. Key migration mapping (old -> new)\n\n- Controller dependency:\n  - `ingress-nginx` -> `traefik`\n- Ingress class:\n  - `ingress.className: nginx` -> `ingress.className: traefik`\n- Controller values root:\n  - `ingress-nginx.*` -> `traefik.*`\n- Default cert:\n  - `ingress-nginx.controller.extraArgs.default-ssl-certificate` -> `traefik.tlsStore.default.defaultCertificate.secretName`\n- HTTP/2 toggle semantics:\n  - `ingress.nginx.useHttp2=true/false` -> `ingress.traefik.serversTransport.spec.disableHTTP2=false/true`\n- Proxy/read/write timeouts:\n  - `ingress.nginx.proxyTimeout` -> `ingress.traefik.serversTransport.spec.forwardingTimeouts.*`\n- SSL passthrough / proxy SSL secret model:\n  - NGINX annotation model removed\n  - Traefik backend transport model via `ServersTransport` + `service.serverstransport`\n\n## 5. README / generated config docs updates\n\nUpdated docs:\n\n- `README.md`\n  - section renamed to `Configuration of Traefik Ingress Controller`\n  - annotation mapping changed to Traefik keys\n  - secure-ingress examples now use `traefik.tlsStore.default.defaultCertificate.secretName`\n- `CONFIGURATION.md`\n  - removed `ingress.nginx.*`\n  - added `ingress.traefik.*`\n  - dependency config changed from `ingress-nginx` to `traefik`\n\n## 6. Test and reference values updates\n\nUpdated ref values and CI/template fixtures to Traefik:\n\n- `tests/charts/refValues/simplex-docker-desktop.yaml`\n- `tests/charts/refValues/simplex-minikube.yaml`\n- `tests/charts/refValues/sample-aws.yaml`\n- `tests/charts/ci/base-auth-ingress-values.yaml`\n- `tests/charts/ci/base-subPath-values.yaml`\n- `tests/charts/templates/render/dummy.yaml`\n- `tests/charts/templates/render/dummy_solution.yaml`\n- `tests/charts/templates/test.py`\n\nCommon migration examples in those files:\n\n- `className: traefik`\n- Traefik router annotations or `ingress.traefik.*` values\n- `traefik` sub-chart config for hostPort/service/deployment\n\n## 7. Other config changes included in the same commit\n\nAlso changed in this commit (not strictly ingress-controller replacement, but relevant to behavior):\n\n- Jaeger tracing endpoint defaults:\n  - `tracing.exporterEndpoint` changed from `{{ .Release.Name }}-jaeger-collector:4317` to `{{ .Release.Name }}-jaeger:4317`\n  - tracing ingress backend service changed from `{{ .Release.Name }}-jaeger-query` to `{{ .Release.Name }}-jaeger`\n- Jaeger sub-chart values structure simplified under `jaeger.jaeger.extraEnv`\n"
  },
  {
    "path": "charts/selenium-grid/README.md",
    "content": "# Selenium-Grid Helm Chart\n\nThis chart enables the creation of a Selenium Grid Server in Kubernetes.\n\n## Contents\n<!-- TOC -->\n* [Selenium-Grid Helm Chart](#selenium-grid-helm-chart)\n  * [Contents](#contents)\n  * [Introduction](#introduction)\n  * [Installing the chart](#installing-the-chart)\n    * [Installing the Nightly chart](#installing-the-nightly-chart)\n    * [Chart Release Name convention](#chart-release-name-convention)\n  * [Enable Selenium Grid Autoscaling](#enable-selenium-grid-autoscaling)\n    * [Preview new changes in Selenium Grid Scaler implementation](#preview-new-changes-in-selenium-grid-scaler-implementation)\n    * [Settings common for both `job` and `deployment` scalingType](#settings-common-for-both-job-and-deployment-scalingtype)\n    * [Settings when scalingType with `deployment`](#settings-when-scalingtype-with-deployment-)\n    * [Settings when scalingType with `job`](#settings-when-scalingtype-with-job)\n    * [Scaler trigger configuration](#scaler-trigger-configuration)\n    * [Define multiple scalers with different trigger parameters.](#define-multiple-scalers-with-different-trigger-parameters)\n    * [Settings fixed-sized thread pool for the Distributor to create new sessions](#settings-fixed-sized-thread-pool-for-the-distributor-to-create-new-sessions)\n    * [Troubleshooting](#troubleshooting)\n  * [Updating Selenium-Grid release](#updating-selenium-grid-release)\n  * [Uninstalling Selenium Grid release](#uninstalling-selenium-grid-release)\n  * [Ingress Configuration](#ingress-configuration)\n  * [Configuration](#configuration)\n    * [Configuration global](#configuration-global)\n      * [Configuration `global.K8S_PUBLIC_IP`](#configuration-globalk8s_public_ip)\n    * [Configuration of Nodes](#configuration-of-nodes)\n      * [Container ports and Service ports](#container-ports-and-service-ports)\n      * [Settings Node drain after session count](#settings-node-drain-after-session-count)\n      * [Configuration of shm size limit for browser nodes](#configuration-of-shm-size-limit-for-browser-nodes)\n    * [Configuration of Probes](#configuration-of-probes)\n      * [Node Probes](#node-probes)\n      * [Distributor Probes](#distributor-probes)\n      * [Router Probes](#router-probes)\n    * [Configuration extra scripts mount to container](#configuration-extra-scripts-mount-to-container)\n    * [Configuration of video recorder and video uploader](#configuration-of-video-recorder-and-video-uploader)\n      * [Video recorder](#video-recorder)\n      * [Video uploader](#video-uploader)\n      * [Video manager](#video-manager)\n    * [Configuration of Secure Communication](#configuration-of-secure-communication)\n      * [Create TLS Secret](#create-tls-secret)\n      * [Secure Connection to Selenium Grid components](#secure-connection-to-selenium-grid-components)\n      * [Secure Connection to the Ingress proxy](#secure-connection-to-the-ingress-proxy)\n      * [TLS termination in the ingress controller, HTTP/2, and related troubleshooting](#tls-termination-in-the-ingress-controller-http2-and-related-troubleshooting)\n    * [Node Registration](#node-registration)\n    * [Configuration of tracing observability](#configuration-of-tracing-observability)\n    * [Configuration of Session Map using External Datastore](#configuration-of-session-map-using-external-datastore)\n    * [Configuration of Selenium Grid chart](#configuration-of-selenium-grid-chart)\n    * [Configuration of KEDA](#configuration-of-keda)\n    * [Configuration of Traefik Ingress Controller](#configuration-of-traefik-ingress-controller)\n    * [Configuration of Jaeger](#configuration-of-jaeger)\n    * [Configuration for Selenium-Hub](#configuration-for-selenium-hub)\n    * [Configuration for isolated components](#configuration-for-isolated-components)\n<!-- TOC -->\n\n## Introduction\n\nWe offer a Helm chart to simplify the deployment of Selenium Grid Docker images to Kubernetes.\n- Table of chart configuration is available in [CONFIGURATION](https://github.com/SeleniumHQ/docker-selenium/blob/trunk/charts/selenium-grid/CONFIGURATION.md).\n- Chart changes are tracked in [CHANGELOG](CHANGELOG.md).\n- Sanity/Regression tests for the chart features are tracked in [TESTING](TESTING.md).\n- There are some reference values file that used to test and deploy Selenium Grid chart. You can find them in [tests/charts/refValues](../../tests/charts/refValues) and [tests/charts/ci](../../tests/charts/ci).\n\n## Installing the chart\n\nIf you want to install the latest master version of Selenium Grid onto your cluster you can do that by using the helm charts repository located at https://www.selenium.dev/docker-selenium.\n\n```bash\n# Add docker-selenium helm repository\nhelm repo add docker-selenium https://www.selenium.dev/docker-selenium\n\n# Update charts from docker-selenium repo\nhelm repo update\n\n# List all versions present in the docker-selenium repo\nhelm search repo docker-selenium --versions\n\n# Install basic grid latest version\nhelm install selenium-grid docker-selenium/selenium-grid\n\n# Or install full grid (Router, Distributor, EventBus, SessionMap and SessionQueue components separated)\nhelm install selenium-grid docker-selenium/selenium-grid --set isolateComponents=true\n\n# Or install specified version\nhelm install selenium-grid docker-selenium/selenium-grid --version <version>\n\n# In both cases grid exposed by default using ingress. You may want to set hostname for the grid. Default hostname is selenium-grid.local.\nhelm install selenium-grid --set ingress.hostname=selenium-grid.k8s.local docker-selenium/chart/selenium-grid/.\n# Verify ingress configuration via kubectl get ingress\n\n# Notes: In case you want to set hostname is selenium-grid.local. You need to add the IP and hostname to the local host file in `/etc/hosts`\nsudo -- sh -c -e \"echo \\\"$(hostname -I | cut -d' ' -f1) selenium-grid.local\\\" >> /etc/hosts\"\n```\n\nWhen deploying the chart with your custom values, it is recommended to create a YAML file with all configs need to change and corresponding values, then pass it to Helm CLI via `--values` flag. This will help you to manage and reuse the config values easily for multiple deployment env as well as other GitOps toos like ArgoCD, Flux, etc. It also helps us quickly to identify the problem when you need support for an issue. For example:\n\n```yaml\n# your_deployment_values.yaml\nisolateComponents: true\nbasicAuth:\n  enabled: true\ningress:\n  enabled: false\ncomponents:\n  router:\n    serviceType: \"NodePort\"\n```\n\n### Installing the Nightly chart\n\nNightly chart is built from the latest main branch of this repository with using Nightly images. It is not recommended to use this chart in production. It is only for testing purpose. The procedure to install the Nightly chart is the same as the above, only different on the version, it is `1.0.0-nightly`\n\n```bash\n# List all versions Nightly in the docker-selenium repo\nhelm search repo docker-selenium --devel\n\n# Install basic grid Nightly version\nhelm install selenium-grid docker-selenium/selenium-grid --version 1.0.0-nightly\n```\n\n### Chart Release Name convention\n\nBy default, all objects created by the chart will be prefixed with the release name. This is to avoid conflicts with other installations of the chart in the same namespace.\n\n- If you want to disable this behavior, you can deploy the chart with the release name is `selenium`.\n- You can override the component name via `.nameOverride` in a respective component. For example\n    \n    ```yaml\n    hub:\n      nameOverride: my-hub-name\n    chromeNode:\n      nameOverride: my-chrome-name\n    ```\n\n## Enable Selenium Grid Autoscaling\n\nSelenium Grid has the ability to autoscaling browser nodes up/down based on the pending requests in the \nsession queue.\n\nTo do this [KEDA](https://keda.sh/docs/latest/scalers/selenium-grid-scaler/) is used. When enabling\nautoscaling using `autoscaling.enabling` KEDA is installed automatically. To instead use an existing\ninstallation of KEDA you can enable autoscaling with `autoscaling.enableWithExistingKEDA` instead.\n\nKEDA can scale either with\n[deployments](https://keda.sh/docs/latest/concepts/scaling-deployments/#scaling-of-deployments-and-statefulsets)\nor [jobs](https://keda.sh/docs/latest/concepts/scaling-jobs/) and the charts support both types. This\nchart support both modes.  It is controlled with `autoscaling.scalingType` that can be set to either\njob (default) or deployment.\n\n### Preview new changes in Selenium Grid Scaler implementation\n\nRefer to [README](../../.keda/README.md)\n\n### Settings common for both `job` and `deployment` scalingType\n\nThere are few settings that are common for both scaling types. These are grouped under `autoscaling.scaledOptions`.\n\nIn case individual node should be scaled differently, you can override the upstream settings with `.scaledOptions` for each node type. For example:\n\n```yaml\nautoscaling:\n  scaledOptions:\n    minReplicaCount: 0\n    maxReplicaCount: 8\n    pollingInterval: 20\n\nchromeNode:\n  scaledOptions:\n    minReplicaCount: 1\n    maxReplicaCount: 16\n    pollingInterval: 10\n```\n\n### Settings when scalingType with `deployment` \n\nBy default, `autoscaling.terminationGracePeriodSeconds` is set to 3600 seconds. This is used when scalingType is set to `deployment`. You can adjust this value, it will affect to all nodes.\n\nIn case individual node which needs to set different period, you can override the upstream settings with `.terminationGracePeriodSeconds` for each node type. Note that override value must be greater than upstream setting to take effect. For example:\n\n```yaml\nautoscaling:\n  terminationGracePeriodSeconds: 3600 #default\nchromeNode:\n  terminationGracePeriodSeconds: 7200 #override\nfirefoxNode:\n  terminationGracePeriodSeconds: 1800 #not override\n```\n\nWhen scaling using deployments the HPA choose pods to terminate randomly. If the chosen pod is currently executing a test rather\nthan being idle, then there is `terminationGracePeriodSeconds` seconds before the test is expected to complete. If your test is\nstill executing after `terminationGracePeriodSeconds` seconds, it would result in failure as the pod will be killed.\n\nDuring `terminationGracePeriodSeconds` period, there is `preStop` hook to execute command to wait for the pod can be shut down gracefully which can be defined in `.deregisterLifecycle`\n- There is a `_helpers` template with name `seleniumGrid.node.deregisterLifecycle` render value for pod `lifecycle.preStop`. By default, hook to execute the script to drain node and wait for current session to complete if any. The script is stored in node ConfigMap, more details can be seen in config `nodeConfigMap.`\n- You can define your custom `preStop` hook which is applied for all nodes via `autoscaling.deregisterLifecycle`\n- In case individual node which needs different hook, you can override the upstream settings with `.deregisterLifecycle` for each node type. If you want to disable upstream hook in a node, pass the value as `false`\n- If an individual node has settings `.lifecycle` itself, it would take the highest precedence to override the above use cases.\n\n```yaml\nautoscaling:\n  deregisterLifecycle:\n    preStop:\n      exec:\n        command: [\"bash\", \"-c\", \"echo 'Your custom preStop hook applied for all nodes'\"]\nchromeNode:\n  deregisterLifecycle: false #disable upstream hook in chrome node\nfirefoxNode:\n  deregisterLifecycle:\n    preStop:\n      exec:\n        command: [\"bash\", \"-c\", \"echo 'Your custom preStop hook specific for firefox node'\"]\nedgeNode:\n  lifecycle:\n    preStop:\n      exec:\n        command: [\"bash\", \"-c\", \"echo 'preStop hook is defined in edge node lifecycle itself'\"]\n```\n\nFor other settings that KEDA [ScaledObject spec](https://keda.sh/docs/latest/concepts/scaling-deployments/#scaledobject-spec) supports, you can set them via `autoscaling.scaledObjectOptions`. For example:\n\n```yaml\nautoscaling:\n  scaledObjectOptions:\n    cooldownPeriod: 60\n```\n\n### Settings when scalingType with `job`\n\nSettings that KEDA [ScaledJob spec](https://keda.sh/docs/latest/concepts/scaling-jobs/#scaledjob-spec) supports can be set via `autoscaling.scaledJobOptions`.\n\nExpected that with default configuration in KEDA resource, autoscaling behavior should be correct. Hence, in chart values, we keep the config key `autoscaling.scaledJobOptions.scalingStrategy.strategy` is `default`.\n\n### Scaler trigger configuration\n\nFrom KEDA core `v2.16.1+`, the trigger metadata `browserVersion`, `platformName` is recommended to be set explicitly to have the correct scaling behavior (especially when your Grid includes autoscaling Nodes, non-autoscaling Nodes, relay Nodes, etc.). Besides that, in client binding, it is also recommended to set the `browserVersion`, `platformName` to align with the trigger metadata. Please see below examples for more details.\n\nUnderstand list trigger parameters\n\n- `url` - Graphql url of your Selenium Grid. If endpoint requires authentication, you can use `TriggerAuthentication` to provide the credentials instead of embedding in the URL.\n- `browserName` - browserName should match with Node stereotype and request capability is scaled by this scaler. (Default: ``, Optional)\n- `sessionBrowserName` -  sessionBrowserName if the browserName is different from the sessionBrowserName. (Default: ``, Optional)\n- `browserVersion` - browserVersion should match with Node stereotype and request capability is scaled by this scaler. (Default: ``, Optional)\n- `platformName` - platformName should match with Node stereotype and request capability is scaled by this scaler. (Default: ``, Optional)\n- `unsafeSsl` - Skip certificate validation when connecting over HTTPS. (Default: `false`, Optional)\n- `activationThreshold` - Target value for activating the scaler. Learn more about activation [here](./../concepts/scaling-deployments.md#activating-and-scaling-thresholds). (Default: `0`, Optional)\n- `nodeMaxSessions` - Number of maximum sessions that can run in parallel on a Node. Update this parameter align with node config `--max-sessions` (`SE_NODE_MAX_SESSIONS`) to have the correct scaling behavior. (Default: `1`, Optional).\n\nUnderstand list trigger authentication\n\n- `username` - Username for basic authentication in GraphQL endpoint instead of embedding in the URL. (Optional)\n- `password` - Password for basic authentication in GraphQL endpoint instead of embedding in the URL. (Optional)\n- `authType` - Type of authentication to be used. This can be set to `Bearer` or `OAuth2` in case Selenium Grid behind an Ingress proxy with other authentication types. (Optional)\n- `accessToken` - Access token. This is required when `authType` is set a value. (Optional)\n\nIn each Node, trigger parameters value will be set under config key `hpa`. In template, those will be added spec of ScaledObject/ScaledJob.\n\nIn chart values, by default, `browserName`, `sessionBrowserName` are set for corresponding node browser. Parameters `browserVersion`, `platformName` are not set, leave them as empty by default. The default scaler metadata looks like\n\n```yaml\n  triggers:\n    - type: selenium-grid\n      metadata:\n        url: 'http://selenium-hub:4444/graphql'\n        browserName: 'chrome'\n        browserVersion: ''\n        platformName: ''\n```\n\nIn this case, the scaler will be triggered by below request (example in Python client, common use case that most users get started)\n\n```python\noptions = ChromeOptions()\ndriver = webdriver.Remote(options=options, command_executor=SELENIUM_GRID_URL)\n```\n\nWith above script, the request is sent to Grid. Via GraphQL response, it looks like\n\n```json\n{\n  \"data\": {\n    \"grid\": {\n      \"sessionCount\": 0,\n      \"maxSession\": 0,\n      \"totalSlots\": 0\n    },\n    \"nodesInfo\": {\n      \"nodes\": []\n    },\n    \"sessionsInfo\": {\n      \"sessionQueueRequests\": [\n        \"{\\\"browserName\\\": \\\"chrome\\\"}\"\n      ]\n    }\n  }\n}\n```\n\nScaler will trigger to scale up the Node with stereotypes matched to pick up the request in the queue. Via GraphQL response, it looks like\n\n```json\n{\n  \"data\": {\n    \"grid\": {\n      \"sessionCount\": 0,\n      \"maxSession\": 1,\n      \"totalSlots\": 1\n    },\n    \"nodesInfo\": {\n      \"nodes\": [\n        {\n          \"id\": \"UUID\",\n          \"status\": \"UP\",\n          \"sessionCount\": 0,\n          \"maxSession\": 1,\n          \"slotCount\": 1,\n          \"stereotypes\": \"[{\\\"slots\\\": 1, \\\"stereotype\\\": {\\\"browserName\\\": \\\"chrome\\\", \\\"browserVersion\\\": \\\"\\\", \\\"platformName\\\": \\\"\\\"}}]\",\n          \"sessions\": []\n        }\n      ]\n    },\n    \"sessionsInfo\": {\n      \"sessionQueueRequests\": [\n        \"{\\\"browserName\\\": \\\"chrome\\\"}\"\n      ]\n    }\n  }\n}\n```\n\nIn Node deployment spec, there is environment variable `SE_NODE_BROWSER_VERSION` which is able to unset `browserVersion` in Node stereotypes (it is setting short browser build number by default e.g `131.0`) or any custom value is up to you, which is expected to match with the request capabilities in queue and scaler trigger metadata.\nSimilarly, `SE_NODE_PLATFORM_NAME` is used to unset the `platformName` in Node stereotypes if needed. Noted, update to newer image tag if these 2 env variables doesn't take effect for you.\n\nFor another example, where your Grid with multiple scalers have different metadata, one of them looks like\n\n```yaml\n  triggers:\n    - type: selenium-grid\n      metadata:\n        url: 'http://selenium-hub:4444/graphql'\n        browserName: 'chrome'\n        browserVersion: '131.0'\n        platformName: 'Linux'\n```\n\n\nThe request to trigger this corresponds to the following Python script\n\n```python\noptions = ChromeOptions()\noptions.set_capability('platformName', 'Linux')\noptions.set_capability('browserVersion', '131.0')\ndriver = webdriver.Remote(options=options, command_executor=SELENIUM_GRID_URL)\n```\n\n### Define multiple scalers with different trigger parameters.\nWhen deploying the chart, you can define multiple scalers with different trigger parameters to scale up different Node stereotypes against different request capabilities.\n\nUnder config key `crossBrowsers`, in corresponding browser node, you can define array of item with structure same as that node, via `nameOverride` to set unique name for each scaler to avoid resources collision.\n\nFor example [multiple-nodes-platform.yaml](./multiple-nodes-platform.yaml) file, it defines 2 scalers per browser node to scale against requests with and without `platformName` capability.\n\nFor example [multiple-nodes-platform-version.yaml](./multiple-nodes-platform-version.yaml) file, it defines multiple scalers with `platformName: 'Linux'` and last few previous stable versions per browser node to scale against requests with `browserVersion` and `platformName` capabilities.\n\nTo extend your Grid, you can use Relay Node (which allows you to route Grid tests to another Grid, another network, or a cloud vendor).\nBesides on-prem browser Nodes with Linux-based, you also can serve test requests with other platforms, browsers or even mobile devices which provided by cloud vendors.\nYour teams will not worry about the underlying infrastructure, they just request to the single Grid endpoint hosted in your organization.\nCheck out values file [multiple-nodes-platform-relay.yaml](./multiple-nodes-platform-relay.yaml) for more details.\n\nWhile deploying the chart, you can quickly use these extra values files by passing the file via `--values` flag to apply.\n\n### Settings fixed-sized thread pool for the Distributor to create new sessions\n\nWhen enabling autoscaling, the Distributor might be under a high workload with parallelism tests, which are many requests incoming and nodes scaling up simultaneously. (Refer to: [SeleniumHQ/selenium#13723](https://github.com/SeleniumHQ/selenium/issues/13723)).\n\nBy default, the Distributor uses a fixed-sized thread pool with default value is `no. of available processors * 3`.\n\nIn autoscaling, by default, it will calculate based on `no. of node types * maxReplicaCount`. For example: `autoscaling.scaledOptions.maxReplicaCount=50`, 3 node types (`Chrome, Firefox, Edge` enabled), the value is `50 * 3 + 1 = 151` is set to environment variable `SE_NEW_SESSION_THREAD_POOL_SIZE` to adjust the Distributor config `--newsession-threadpool-size`\n\nYou can override the default calculation by another value via `components.distributor.newSessionThreadPoolSize` (in full distributed mode) or `hub.newSessionThreadPoolSize` (in basic mode).\n\n### Troubleshooting\n\nThis is a list of common issues that you might encounter when enabling autoscaling in Selenium Grid.\n\n- Autoscaling isn't working when deploying KEDA core and Selenium Grid in different namespaces.\n\nFor example, you deployed KEDA core in `keda` namespace, and Selenium Grid in `selenium` namespace with config `autoscaling.enableWithExistingKEDA=true`. You observe that the ScaledObject/ScaledJob is created but the scaler isn't triggered.\nUse `kubectl logs` to see `keda-operator` pod logs, if you see the error message looks like\n\n> ERROR   scale_handler   Error getting scaler metrics and activity, but continue {\"scaledJob.Name\": \"selenium-node-firefox-latest\", \"Scaler\": \"*scalers.seleniumGridScaler:\", \"error\": \"error requesting selenium grid endpoint: Post \\\"http://selenium-router:4444/graphql\\\": dial tcp: lookup selenium-router on 10.96.0.10:53: no such host\"}\n\nIt probably is the DNS issue. You need to check the GraphQL endpoint provided in the trigger metadata is accessible from the KEDA core namespace. In case different namespaces, and using svc name, you might need to use <service-name>.<namespace-name> as the domain name.\nAt cluster level, you might need to configure network policies to allow traffic between namespaces properly.\n\n## Updating Selenium-Grid release\n\nOnce you have a new chart version, you can update your selenium-grid running:\n\n```bash\nhelm upgrade selenium-grid docker-selenium/selenium-grid\n```\n\nIf needed, you can add sidecars for your browser nodes by running:\n\n```bash\nhelm upgrade selenium-grid docker-selenium/selenium-grid --set 'firefoxNode.enabled=true' --set-json 'firefoxNode.sidecars=[{\"name\":\"my-sidecar\",\"image\":\"my-sidecar:latest\",\"imagePullPolicy\":\"IfNotPresent\",\"ports\":[{\"containerPort\":8080, \"protocol\":\"TCP\"}],\"resources\":{\"limits\":{\"memory\": \"128Mi\"},\"requests\":{\"cpu\": \"100m\"}}}]'\n```\n\nNote: the parameter used for --set-json is just an example, please refer to [Container Spec](https://www.devspace.sh/component-chart/docs/configuration/containers) for an overview of usable parameters.\n\nIf needed, you can add network policies for your selenium-grid by running:\n\n```bash\nhelm upgrade selenium-grid docker-selenium/selenium-grid --set 'firefoxNode.enabled=true' --set-json 'networkPolicies={\"allow-selenium\":{\"podSelector\":{\"matchLabels\":{\"app.kubernetes.io/name\":\"selenium-node-firefox\"}},\"policyTypes\":[\"Egress\"],\"egress\":[{}]}}'\n```\n\nNote: the parameter used for --set-json is just an example, please refer to [Network Policy Spec](https://kubernetes.io/docs/concepts/services-networking/network-policies/) for an overview of usable parameters.\n\n## Uninstalling Selenium Grid release\n\nTo uninstall:\n\n```bash\nhelm uninstall selenium-grid\n```\n\n## Ingress Configuration\n\nBy default, ingress is enabled and the chart adds Traefik-focused annotations from `ingress.traefik`.\n\nIf you are not using Traefik, disable these default annotations with:\n\n```yaml\ningress:\n  traefik: !\n```\n\nYou can combine chart defaults with your own `ingress.annotations`. If a key is duplicated, your `ingress.annotations` value takes precedence.\n\n```yaml\ningress:\n  traefik:\n    entryPoints: websecure\n  annotations:\n    traefik.ingress.kubernetes.io/router.entrypoints: \"web,websecure\" # takes precedence\n```\n\nList mapping of chart values and default annotation(s):\n\n```markdown\n# `ingress.traefik.entryPoints`\ntraefik.ingress.kubernetes.io/router.entrypoints\n\n# `ingress.traefik.middlewares`\ntraefik.ingress.kubernetes.io/router.middlewares\n\n# `ingress.traefik.priority`\ntraefik.ingress.kubernetes.io/router.priority\n\n# `ingress.traefik.pathMatcher`\ntraefik.ingress.kubernetes.io/router.pathmatcher\n\n# `ingress.traefik.tls.enabled` (when ingress TLS is enabled)\ntraefik.ingress.kubernetes.io/router.tls: \"true\"\n\n# `ingress.traefik.tls.options`\ntraefik.ingress.kubernetes.io/router.tls.options\n\n# `ingress.traefik.tls.certResolver`\ntraefik.ingress.kubernetes.io/router.tls.certresolver\n\n# `ingress.traefik.service.useHttpsScheme` (when Grid server TLS is enabled, applied on backend Service: Hub/Router)\ntraefik.ingress.kubernetes.io/service.serversscheme: \"https\"\n\n# `ingress.traefik.service.sticky.cookie.enabled`\ntraefik.ingress.kubernetes.io/service.sticky.cookie: \"true\"\n\n# `ingress.traefik.serversTransport.enabled` (applied on backend Service: Hub/Router)\ntraefik.ingress.kubernetes.io/service.serverstransport: \"<namespace>-<name>@kubernetescrd\"\n```\n\nRefer to [Traefik Ingress annotations](https://doc.traefik.io/traefik/reference/routing-configuration/kubernetes/ingress/#annotations) for more details.\n\nWhen `ingress.traefik.serversTransport.enabled=true`, the chart also creates a `ServersTransport` resource. You can set backend transport options via:\n\n- `ingress.traefik.serversTransport.insecureSkipVerify`\n- `ingress.traefik.serversTransport.forwardingTimeouts.dialTimeout`\n- `ingress.traefik.serversTransport.forwardingTimeouts.responseHeaderTimeout`\n- `ingress.traefik.serversTransport.forwardingTimeouts.idleConnTimeout`\n\nRefer to below section [Configuration of Secure Communication] for more details on how to configure secure communication to Ingress proxy.\n\n## Configuration\n\n### Configuration global\n\nCheck out list [configuration](https://github.com/SeleniumHQ/docker-selenium/blob/trunk/charts/selenium-grid/CONFIGURATION.md) with config key start with `global.` for more details.\n\n#### Configuration `global.K8S_PUBLIC_IP`\n\nThis is the public IP of the host running Kubernetes cluster. Mainly, it is used to construct the URL for the Selenium Grid (Hub or Router) can be accessed from the outside of the cluster for Node register, Grid UI, RemoteWebDriver, etc.\n- Ingress is enabled without setting `ingress.hostname`. All the services will be exposed via the public IP is set in `K8S_PUBLIC_IP`.\n- Using NodePort to expose the services. All the services will be exposed via the public IP is set in `K8S_PUBLIC_IP`.\n- Using LoadBalancer to expose the services. All the services will be exposed via the LB External IP is set in `K8S_PUBLIC_IP`.\n\nFor example:\n```yaml\nglobal:\n  K8S_PUBLIC_IP: \"10.10.10.10\"\ningress:\n    enabled: true\n    hostname: \"\"\nhub:\n    subPath: \"/selenium\"\n    serviceType: NodePort\n```\n```\n# Source: selenium-grid/templates/node-configmap.yaml\n\nSE_NODE_GRID_URL: 'http://10.10.10.10/selenium'\n```\n\nFor security reasons, it is not recommend to put the credentials in the URL in env variable `SE_NODE_GRID_URL`. For any utilities that need to access the Grid, basic auth should get from env variables `SE_ROUTER_USERNAME` and `SE_ROUTER_PASSWORD`.\n\nIf you want to keep basic auth credential is embedded in few URLs (in case Websocket URLs construct in session capabilities), you can set `basicAuth.embeddedUrl` to `true`. By default, it is `false`.\n\nBesides that, from the outside of the cluster, you can access via NodePort `http://10.10.10.10:30444/selenium`\n\n### Configuration of Nodes\n\n#### Container ports and Service ports\n\nBy default, Node will use port `5555` to listen on container (following [this](https://www.selenium.dev/documentation/grid/configuration/cli_options/#server)) and expose via Service. You can update this value via `.port` in respective node type. This will be used to set `SE_NODE_PORT` environment variable to pass to option `--port` when starting the node and update in Service accordingly.\n\nBy default, if httpGet probes are enabled, it will use `.port` value in respective node type unless you override it via e.g. `.startupProbe.port` `.readinessProbe.port` or `.livenessProbe.port` in respective node type.\n\nIn a node container, there are other running services can be exposed. For example: VNC, NoVNC, SSH, etc. You can easily expose them on container via `.ports` and on Service `service.ports` in respective node type.\n\n```yaml\nchromeNode:\n  port: 6666 # Update `SE_NODE_PORT` to 6666\n  nodePort: 30666 # Specify a NodePort to expose `SE_NODE_PORT` to outside traffic\n  ports:\n    - 5900 # You can give port number alone, default protocol is TCP\n    - 7900\n  service:\n    type: NodePort # Expose entire ports on Service via NodePort\n    ports:\n      - name: vnc-port\n        protocol: TCP\n        port: 5900\n        targetPort: 5900\n        nodePort: 30590 # Specify a NodePort to expose VNC port\n      - name: novnc-port\n        protocol: TCP\n        port: 7900\n        targetPort: 7900\n        # NodePort will be assigned randomly if not set\nedgeNode:\n  ports: # You also can give objects following manifest of container ports\n    - containerPort: 5900\n      name: vnc\n      protocol: TCP\n    - containerPort: 7900\n      name: novnc\n      protocol: TCP\n```\n\n#### Settings Node drain after session count\n\nIn case of autoscaling enabled, with scaling type `job`, Node will be drained following `nodeMaxSessions` (default is 1). So, behavior here is Job will take one session and then Node will be drained after that (something like one-time node). If you want to change this behavior, you can adjust the value in `nodeDrainAfterSessionCount` greater than `nodeMaxSessions` to take effect.\n\nIn another hand, with scaling type `deployment`, Node only get drained when HPA choose pods to terminate (which aligns with `nodeDrainAfterSessionCount` is 0 by default). If you want to drain Node by your own logic, you can adjust the value in `nodeDrainAfterSessionCount` greater than 0 to take effect. The same logic applies in normal deployment as well (without autoscaling).\n\n```yaml\nglobal:\n  seleniumGrid:\n    nodeDrainAfterSessionCount: 30  # Apply for all nodes\n\nchromeNode:\n  nodeDrainAfterSessionCount: 10  # Set another value for chrome node\n```\n\n#### Configuration of shm size limit for browser nodes\n\nBy default, node browsers (Chrome/Chromium, Edge) leave the config key `dshmVolumeSizeLimit` as empty. It means the `/dev/shm` volume mount is disabled, and argument `--disable-dev-shm-usage` is passed to the browser via container environment variable (get motivation from [this post](https://www.ministryoftesting.com/articles/navigating-chromedriver-crashes-in-kubernetes-a-tale-of-test-automation-resilience)). You can set another valid value to enable it back. For example:\n\n```yaml\nchromeNode:\n    dshmVolumeSizeLimit: \"2Gi\"\nedgeNode:\n    dshmVolumeSizeLimit: \"2Gi\"\n```\n\nFor Firefox node, the default value is kept as `2Gi`. You can override it via `firefoxNode.dshmVolumeSizeLimit`.\n\n### Configuration of Probes\n\n#### Node Probes\n\nBy default, `startupProbe` is enabled and `readinessProbe` and `livenessProbe` are disabled. You can enable/disable them via `.startupProbe.enabled` `.readinessProbe.enabled` `.livenessProbe.enabled` in respective node type.\n\nBy default, probes are using `httpGet` method to check the node state. It will use `.port` value in respective node type unless you override it via e.g. `.startupProbe.port` `.readinessProbe.port` or `.livenessProbe.port` in respective node type.\n\nOther settings of probe support to override under `.startupProbe` `.readinessProbe` `.livenessProbe` in respective node type.\n\n```markdown\n    schema\n    path\n    port\n    initialDelaySeconds\n    failureThreshold\n    timeoutSeconds\n    periodSeconds\n    successThreshold\n```\n\nYou can configure the probes (as Kubernetes [supports](https://kubernetes.io/docs/tasks/configure-pod-container/configure-liveness-readiness-startup-probes/)) to override the default settings. For example:\n\n```yaml\nedgeNode:\n  port: 5555\n  startupProbe:\n    enabled: true\n    tcpSocket:\n      port: 5555\n    failureThreshold: 10\n    periodSeconds: 5\n```\n\n#### Distributor Probes\n\nBy default, `startupProbe`, `readinessProbe` and `livenessProbe` are enabled for this component in both full distributed and Hub-Nodes mode.\n\nThere is a script in chart `configs/distributor/distributorProbe.sh` is loaded into ConfigMap and mounted to the container is used by `livenessProbe`. You can customize the script via `--set-file distributorConfigMap.extraScripts.distributorProbe\\.sh=/path/to/your_script.sh` or set via YAML values.\n\nThere are some reports on a scenario that would be difficult to reproduce or rare: `Grid UI is accessible but no nodes can be fetched or registered. Or something like there are few requests in session queue but could not be accepted. After restarting the Distributor, the issue is resolved`. Based on that, a proactive approach to do automatic restart whenever detecting it is not healthy via `livenessProbe` and the condition check is executed. The script queries GraphQL endpoint to get `sessionCount`, and `sessionQueueSize`. If the `sessionQueueSize` is greater than 0 and `sessionCount` is 0 until the `failureThreshold`, the Distributor will be restarted. You can adjust the threshold as well as interval via probe settings.\n\n#### Router Probes\n\nBy default, `startupProbe`, `readinessProbe` and `livenessProbe` are enabled for this component in full distributed mode.\n\nThere is a script in chart `configs/router/routerProbe.sh` loaded into ConfigMap and mounted to the container is used by `livenessProbe`. You can customize the script via `--set-file routerConfigMap.extraScripts.routerProbe\\.sh=/path/to/your_script.sh` or set via YAML values.\n\nThe script checks GraphQL endpoint is reachable. If the `http_code` is not `200` until the `failureThreshold`, the Router will be restarted. You can adjust the threshold as well as interval via probe settings.\n\n### Configuration extra scripts mount to container\n\nThis is supported for containers of browser node, video recorder and video uploader. By default, in these containers, there are scripts, config files implemented. In case you want to customize or replace them with your own implementation. Instead of forking the chart, use volume mount. Now, from your external files, you can insert them into ConfigMap via Helm CLI `--set-file` or compose them in your own YAML values file and pass to Helm CLI `--values` when deploying chart. Any files name that you defined will be picked up into ConfigMap and mounted to the container.\n\n```yaml\nnodeConfigMap:\n  extraScriptsDirectory: \"/opt/selenium\"\n  extraScripts:\n    nodePreStop.sh: |\n      #!/bin/bash\n      echo \"Your custom script\"\n\nrecorderConfigMap:\n  extraScriptsDirectory: \"/opt/bin\"\n  extraScripts:\n    video.sh: |\n        #!/bin/bash\n        echo \"Your custom script\"    \n    video_graphQLQuery.sh: |\n        #!/bin/bash\n        echo \"My new script\"\n\nuploaderConfigMap:\n  extraScriptsDirectory: \"/opt/bin\"\n  extraScripts:\n    upload.sh: |\n        #!/bin/bash\n        echo \"Your custom entry point\"\n  secretFiles:\n    upload.conf: |\n        [myremote]\n        type = s3\n```\n\nVia Helm CLI, you can pass your own files to particular config key. Note that, the file name contains dot `.` for file extension, it will impact to the key name convention in Helm CLI. In this case, be careful to escape the dot `.` in the file name. For example a command in Unix:\n\n```bash\nhelm upgrade -i test \\\n    --set-file 'nodeConfigMap.extraScripts.nodePreStop\\.sh=/path/to/myScript.sh' \\\n    --set-file 'recorderConfigMap.extraScripts.video\\.sh=/path/to/myCustom.sh' \\\n    selenium-grid\n```\n\nFiles in `.extraScripts` will be mounted to the container with the same name within directory is defined in `.extraScriptsDirectory`. For example, in the above config, `nodePreStop.sh` will be mounted to `/opt/selenium/nodePreStop.sh` in the node container.\n\n\n### Configuration of video recorder and video uploader\n\n#### Video recorder\n\nThe video recorder is a sidecar deployed with the browser nodes. It is responsible for recording the video of the browser session. The video recorder is disabled by default. To enable it, you need to set the following values:\n\n```yaml\nvideoRecorder:\n  enabled: true\n```\n\nFrom chart version `0.44.0+`, by default, the video recorder is not running as sidecar container anymore. Recording function will be performed in browser node container itself (check out the [implementation](https://github.com/SeleniumHQ/docker-selenium/discussions/2539)).\nIf you want to enable the video recorder as a sidecar container, you can set the following values:\n\n```yaml\nvideoRecorder:\n  sidecarContainer: true\n```\n\nAt chart deployment level, that config will enable video container always. In addition, you can disable video recording process via session capability `se:recordVideo`. For example in Python binding:\n\n```python\nfrom selenium.webdriver.chrome.options import Options as ChromeOptions\nfrom selenium import webdriver\n\noptions = ChromeOptions()\noptions.set_capability('se:recordVideo', False)\ndriver = webdriver.Remote(options=options, command_executor=\"http://localhost:4444\")\n```\n\nIn recorder container will perform query GraphQL in Hub based on Node SessionId and extract the value of `se:recordVideo` in capabilities before deciding to start video recording process or not. You can customize by reading on section [Configuration extra scripts mount to container](#configuration-extra-scripts-mount-to-container).\n\n#### Video uploader\n\nThe uploader is extra utility in the video container. It is responsible for uploading the video to a remote location. The uploader is disabled by default. To enable it, you need to set the following values:\n\n```yaml\nvideoRecorder:\n  uploader:\n    enabled: true\n```\n\nBy default, the uploader uses [RCLONE](https://rclone.org/) to upload the video to a remote location. RCLONE requires a configuration file to define different remote locations. Refer to [RCLONE docs](https://rclone.org/docs/#config-file) for more details. Config file might contain sensitive information such as access key, secret key, etc. hence it is stored in Secret.\n\nThe uploader requires `destinationPrefix` to be set. It is used to instruct the uploader where to upload the video. The format of destinationPrefix is `remote-name://bucket-name/path`. The `remote-name` is configured in RCLONE. The `bucket-name` is the name of the bucket in the remote location. The `path` is the path to the folder in the bucket.\n\nBy default, the config file is empty. You can override the config file via `--set-file uploaderConfigMap.secretFiles.upload\\.conf=/path/to/your_config.conf` or set via YAML values.\n\nFor example, to configure an S3 remote hosted on AWS with named `mys3` and the bucket name is `mybucket`, you can set the following values:\n\n```bash\nuploaderConfigMap:\n  secretFiles:\n    upload.conf: |\n        [mys3]\n        type = s3\n        provider = AWS\n        env_auth = true\n        region = ap-southeast-1\n        location_constraint = ap-southeast-1\n        acl = private\n        access_key_id = xxx\n        secret_access_key = xxx\n\nvideoRecorder:\n  uploader:\n    destinationPrefix: \"mys3://mybucket/subFolder\"\n```\n\nYou can prepare a config file with multiple remotes are defined. Ensure that `[remoteName]` is unique for each remote.\n\nInstead of using config file, another way that RCLONE also supports to pass the information via environment variables. ENV variable with format: `RCLONE_CONFIG_ + name of remote + _ + name of config file option` (make it all uppercase). In this case the remote name it can only contain letters, digits, or the _ (underscore) character. All those ENV variables can be set via `videoRecorder.uploader.secrets`, it will be stored in Secret.\n\nFor example, the same above config can be set via ENV vars as below:\n\n```yaml\nvideoRecorder:\n  uploader:\n    destinationPrefix: \"mys3://mybucket\"\n    secrets:\n      RCLONE_CONFIG_MYS3_TYPE: \"s3\"\n      RCLONE_CONFIG_MYS3_PROVIDER: \"GCS\"\n      RCLONE_CONFIG_MYS3_ENV_AUTH: \"true\"\n      RCLONE_CONFIG_MYS3_REGION: \"asia-southeast1\"\n      RCLONE_CONFIG_MYS3_LOCATION_CONSTRAINT: \"asia-southeast1\"\n      RCLONE_CONFIG_MYS3_ACL: \"private\"\n      RCLONE_CONFIG_MYS3_ACCESS_KEY_ID: \"xxx\"\n      RCLONE_CONFIG_MYS3_SECRET_ACCESS_KEY: \"xxx\"\n      RCLONE_CONFIG_MYS3_ENDPOINT: \"https://storage.googleapis.com\"\n      RCLONE_CONFIG_MYS3_NO_CHECK_BUCKET: \"true\"\n```\n\nThose two ways are equivalent. You can choose one of them or combine them. When both config file and ENV vars are set, value in `upload.conf` will take precedence.\n\nBesides the configuration, the script for entry point of uploader container also needed. You can override the script via `--set-file uploaderConfigMap.extraScripts.upload\\.sh=/path/to/your_script.sh` or set via YAML values. For example:\n\n```yaml\nuploaderConfigMap:\n  extraScripts:\n    upload.sh: |\n        #!/bin/bash\n        echo \"Your custom entry point\"\n```\n\nIn case you want to configure another sidecar container for uploader, you can set a name for `videoRecorder.uploader.name` and create a config key with the same name under `videoRecorder` with all the settings for your container. Set name of `videoRecorder.uploader.entryPointFileName` if your container start by a different entry point. For example:\n\n```yaml\nuploaderConfigMap:\n    extraScripts:\n        upload.sh: |\n            #!/bin/bash\n            echo \"Script control the uploader process\"\n\nvideoRecorder:\n    enabled: true\n    uploader:\n        enabled: true\n        name: \"s3\"\n        entryPointFileName: \"upload.sh\"\n        destinationPrefix: \"s3://mybucket\"\n        secrets:\n            AWS_REGION: \"ap-southeast-1\"\n            AWS_ACCESS_KEY_ID: \"xxxx\"\n            AWS_SECRET_ACCESS_KEY: \"xxxx\"\n    s3:\n        imageRegistry: public.ecr.aws\n        imageName: bitnami/aws-cli\n        imageTag: latest\n```\n\n#### Video manager\n\nWe utilize [File Browser](https://filebrowser.org/) as a video manager. It is a web-based file manager that allows you to manage files and folders in the storage. The video manager is disabled by default. To enable it, you need to set config key `videoManager.enabled` to `true`.\n\nThe service can be exposed via NodePort or Ingress (if enabled global ingress). By default, there is a baseurl is `/recordings`, if enabled svc type NodePort: `http://<node-ip>:30080/recordings`, or ingress `http://<ingress-hostname>/recordings`. You also can change the baseurl to another value via config key `videoManager.config.baseurl`\n\n\nThe File Browser container dir `/srv` should be mounted to the same storage as video recordings stored. The storage here is persistent volume claim (PVC) that is created by you or dynamically provisioned by the storage class. Configure recorder and manager to use the same PVC. For example\n\n```yaml\nvideoRecorder:\n  enabled: true\n  extraVolumeMounts:\n    - name: videos\n      mountPath: /videos\n      subPath: videos\n  extraVolumes:\n    - name: videos\n      persistentVolumeClaim:\n        claimName: local-pv-storage\n\nvideoManager:\n  enabled: true\n  extraVolumeMounts:\n    - name: videos\n      mountPath: /srv\n      subPath: videos\n  extraVolumes:\n    - name: videos\n      persistentVolumeClaim:\n        claimName: local-pv-storage\n```\n\nWhen configuration is done, via File Browser you can centralize all the recordings in one place. You can manage the recordings, delete them, or download them.\n\n![img_1.png](./images/video-manager_1.png)\n\n![img_2.png](./images/video-manager_2.png)\n\n### Configuration of Secure Communication\n\nSelenium Grid supports secure communication between components. Refer to the [instructions](https://github.com/SeleniumHQ/selenium/blob/trunk/java/src/org/openqa/selenium/grid/commands/security.txt) and [options](https://www.selenium.dev/documentation/grid/configuration/cli_options/#server) are able to configure the secure communication. Below is the details on how to enable secure communication in Selenium Grid chart.\n\nIn the chart, there is directory [certs](./certs) contains utility scripts, the default self-signed certificate, private key (as PKCS8 format), and Java Keystore (JKS) to teach Java about secure connection (since we are using a non-standard CA) for your trial, local testing purpose.\n\nYou can generate your own self-signed certificate put them in that default directory by using script [certs/gen-cert-helper.sh](./certs/gen-cert-helper.sh) with adjust needed information before deploying chart. The certificate, private key, truststore are mounted to the components via `Secret`.\n\nUsage of [certs/gen-cert-helper.sh](./certs/gen-cert-helper.sh) script:\n\n```bash\n# Generate self-signed to target directory (by default output in same directory with script)\n./certs/gen-cert-helper.sh -d /path/to/your/\n# Add current host IP to the certificate\nADD_IP_ADDRESS=hostname ./certs/gen-cert-helper -d /path/to/your/\n# Add multiple IP addresses to the certificate (comma-separated)\nADD_IP_ADDRESS=\",IP:10.10.10.10,IP:10.10.11.11\" ./certs/gen-cert-helper.sh -d /path/to/your/\n# Other environment variables that script consumes\n# CERTNAME, STOREPASS, KEYPASS, ALIAS, SERVER_KEYSTORE, BASE64_ONLY\n```\n\n#### Create TLS Secret\n\nThere are multiple ways to insert your certificate, private key, truststore to the components. You can choose one of following ways:\n\n1. Replace your certificate, private key, truststore to the default directory [certs](./certs) in chart with the same name before deploying the chart.\n\n2. Use Helm CLI to pass your certificate, private key, truststore via `--set-file` when deploying the chart. For example (replace `$RELEASENAME` and `$NAMESPACE` with your values):\n\n    ```bash\n    helm upgrade -i $RELEASENAME -n $NAMESPACE docker-selenium/selenium-grid \\\n        --set tls.enabled=true \\\n        --set-file tls.secretFiles.tls\\.crt=/path/to/your/tls.crt \\\n        --set-file tls.secretFiles.tls\\.key=/path/to/your/tls.key \\\n        --set-file tls.secretFiles.server\\.jks=/path/to/your/server.jks \\\n        --set-file tls.secretFiles.server\\.pass=/path/to/your/server.pass\n    ```\n\n3. Create your own TLS Secret with your certificate, private key, truststore and pass the Secret name via `tls.nameOverride` when deploying the chart. For example (replace `$RELEASENAME` and `$NAMESPACE` with your values):\n\n   ```bash\n   # Steps to prepare your self-signed certificate\n   ./certs/gen-cert-helper.sh -d /path/to/your/\n   # Create TLS Secret with your certificate, private key, truststore (or a Secret type kubernetes.io/tls)\n   kubectl create secret generic -n $NAMESPACE my-external-tls-secret \\\n       --from-file=tls.crt=/path/to/your/tls.crt \\\n       --from-file=tls.key=/path/to/your/tls.key \\\n       --from-file=server.jks=/path/to/your/server.jks \\\n       --from-file=server.pass=/path/to/your/server.pass\n   # Deploy chart with your external TLS Secret\n   helm upgrade -i $RELEASENAME -n $NAMESPACE docker-selenium/selenium-grid \\\n       --set tls.enabled=true --set tls.create=false --set tls.nameOverride=my-external-tls-secret\n   ```\n   \n   In case your external secret contains key file names are different with default, you can instruct server to use them via following values:\n\n    ```yaml\n    tls:\n      enabled: true\n      nameOverride: my-external-tls-secret\n      certificateFile: \"my-tls.crt\"\n      privateKeyFile: \"my-tls.key\"\n      trustStoreFile: \"my-server.jks\"\n      trustStorePassword: \"mytruststorepassword\"\n    ```\n\n#### Secure Connection to Selenium Grid components\n\nWhen enabling secure communication between Selenium Grid server components, you need to set the following values:\n\n```yaml\ntls:\n  enabled: true\n```\n\nIn additional, if the ingress is enabled, and approach SSL Passthrough is used to ensure the request forwards to the backend components via an encrypted connection.\nWith `ingress.hostname` is set, the default server TLS secret is also used for hosts TLS secretName when `ingress.tls` is empty. Once you specify `ingress.tls`, your specified secret will be used for hosts TLS secretName. For example\n\n![SeleniumGrid_TLS_SSL-Passthrough](./images/SeleniumGrid_TLS_SSL-Passthrough.png)\n\n```yaml\ntls:\n  enabled: true\n\ntraefik:\n  enabled: true\n```\n\nBelow is an example of Grid UI accessible via NodePort with secure connection, and using external TLS Secret (replace `$RELEASENAME` and `$NAMESPACE` with your values):\n\n```bash\nhelm upgrade -i $RELEASENAME -n $NAMESPACE docker-selenium/selenium-grid \\\n  --set ingress.enabled=false \\\n  --set isolateComponents=true \\\n  --set components.router.serviceType=NodePort \\\n  --set tls.enabled=true \\\n  --set tls.create=false \\\n  --set tls.nameOverride=my-external-tls-secret\n```\n\nGrid UI can be accessed via HTTPS address `https://your.host.public.ip:30444`.\n\n![SeleniumGrid_TLS_WithoutProxy](./images/SeleniumGrid_TLS_WithoutProxy.png)\n\n#### Secure Connection to the Ingress proxy\n\nWhen enabling secure communication via HTTPS/TLS between the client and the Ingress proxy only (SSL Offloading / aka SSL Termination). The proxy will terminate the TLS connection, decrypt incoming HTTPS traffic and send it to the backend components without encryption. The backend Selenium Grid components doesn't need to understand HTTPS. To enable this mode, you need to set the following values:\n\n```yaml\ntls:\n  ingress:\n    enabled: true\n```\n\n![SeleniumGrid_TLS_SSL-Termination](./images/SeleniumGrid_TLS_SSL-Termination.png)\n\nIn additional, a self-signed certificate and private key can be generated runtime during the chart deployment for Ingress TLS by setting these values:\n\n```yaml\ntls:\n  ingress:\n    generateTLS: true\n    defaultName: \"MySelfSignedCert\"\n    defaultDays: 3650\n    defaultCN: \"www.domain.com\" # Common Name\n    defaultSANList:\n      - selenium-grid.prod.domain.com # Subject Alternative Name\n      - selenium-grid.staging.domain.com\n    defaultIPList:\n      - 10.87.99.100 # Public IP of the host running K8s or LoadBalancer IP\n      - 10.87.100.101\n\ningress-ngnix:\n  enabled: true\n```\n\nYou can get the `tls.crt` and `tls.key` from the Secret after the chart is deployed. For example (replace `$RELEASENAME` and `$NAMESPACE` with your values):\n\n```bash\nkubectl get secret $RELEASENAME-selenium-tls-secret -n $NAMESPACE -o jsonpath=\"{.data.tls\\.crt}\" | base64 -d > ./tls.crt\nkubectl get secret $RELEASENAME-selenium-tls-secret -n $NAMESPACE -o jsonpath=\"{.data.tls\\.key}\" | base64 -d > ./tls.key\n```\n\nBelow is an example of Grid UI accessible via secure connection to the Ingress proxy with self-signed certificate in external TLS Secret (replace `$RELEASENAME` and `$NAMESPACE` with your values):\n\n```bash\nhelm upgrade -i $RELEASENAME -n $NAMESPACE docker-selenium/selenium-grid \\\n  --set ingress.enabled=true \\\n  --set ingress.hostname=\"selenium-grid.prod.domain.com\" \\\n  --set tls.ingress.enabled=true \\\n  --set tls.create=false \\\n  --set tls.nameOverride=my-external-tls-secret\n```\n\nGrid UI can be accessed via HTTPS address `https://selenium-grid.prod.domain.com`.\n\nInline config TLS for the Ingress resource is also considered as enable secure connection to the Ingress proxy.\nFor example, below is the config with using external TLS Secret for the Ingress resource and enable sub-chart Traefik Ingress Controller:\n\n```yaml\ningress:\n  enableWithController: true\n  hostname: selenium-grid.prod.domain.com\n  tls:\n    - secretName: my-external-tls-secret\n      hosts:\n        - selenium-grid.prod.domain.com\n```\n\nIn case the Ingress resource is configured without `hostname` and `tls`, the incoming traffic access via `global.K8S_PUBLIC_IP`. When sub-chart `traefik` is enabled (deploy Traefik Ingress Controller together), the default TLS secret can be assigned via `traefik.tlsStore.default.defaultCertificate.secretName`.\nFor example (replace `$RELEASENAME` and `$NAMESPACE` with your values):\n\n```bash\nhelm upgrade -i $RELEASENAME -n $NAMESPACE docker-selenium/selenium-grid \\\n  --set global.K8S_PUBLIC_IP=$(hostname -I | cut -d' ' -f1) \\\n  --set ingress.enableWithController=true \\\n  --set tls.create=false \\\n  --set tls.nameOverride=my-external-tls-secret \\\n  --set traefik.tlsStore.default.defaultCertificate.secretName=my-external-tls-secret\n```\n\n#### TLS termination in the ingress controller, HTTP/2, and related troubleshooting\n\nIn case the Selenium Grid is deployed with the Ingress controller in front, and the Ingress controller has configured the secure connection with approach SSL termination to terminate the TLS connection, the backend components (mostly Hub/Router to process the request and return to the client) will receive the incoming in plain HTTP. In a few confirmations (also referred to ChatGPT)\n\n> When TLS termination is performed by an ingress controller, HTTP/2 is typically enabled by default. This is because many ingress controllers are designed to support modern web protocols to ensure better performance and efficiency. For example, popular ingress controllers like NGINX and HAProxy enable HTTP/2 by default when handling HTTPS traffic.\n\nAt that time, the Selenium Grid server returns the response in HTTP/1.1. However, this mismatch is not expected to cause any problems. Selenium Grid is using JDKHttpClient to communicate between components since the following OpenJDK [docs](https://openjdk.org/groups/net/httpclient/intro.html) mentioned that\n\n> The Java HTTP Client supports both HTTP/1.1 and HTTP/2. By default, the client will send requests using HTTP/2. Requests sent to servers that do not yet support HTTP/2 will automatically be downgraded to HTTP/1.1\n\nA few reports mention the error `java.io.IOException: HTTP/1.1 header parser received no bytes`, `java.io.IOException: /: GOAWAY received`, or a timed-out issue with a stack trace containing `jdk.internal.net.http.Http2Connection`, or `Http2ClientImpl` when creating a RemoteWebDriver session.\n\nWhat could be the issue around this? It could be due to different JDK versions used. Since JDK20, the default keepalive timeout has been adjusted; see [docs](https://docs.oracle.com/en/java/javase/20/core/java-networking.html) on `jdk.httpclient.keepalive.timeout` (default to 30). Or it could be `jdk.httpclient.maxstreams` (default to 100) if Grid serves many client requests at the same time, it could reach the maximum stream limit.\n\nIn some scenarios, the issue might be resolved by setting ClientConfig with HTTP/1.1 when creating RemoteWebDriver. For example, in Java binding you can try this:\n\n```java\nClientConfig config = ClientConfig.defaultConfig().baseUrl(seleniumGridUrl)\n                      .readTimeout(300)\n                      .version(HttpClient.Version.HTTP_1_1.name());\n\ndriver = RemoteWebDriver.builder().oneOf(new ChromeOptions())\n         .config(config).build();\n```\n\nWith the workaround set http version via ClientConfig also there was a point mentioned that we can understand something like `HTTP/1.1 header parser received no bytes`, or `GOAWAY` is an IOException thrown by client HTTP/2, and when switching client to HTTP/1.1, it could go to a situation that would continue to get \"random\" IOExceptions with a different message from the server.\n\nFor example, in [this case](https://stackoverflow.com/questions/55087292/how-to-handle-http-2-goaway-with-java-net-httpclient) the issue could be due to ingress-controller HTTP/2 and keepalive settings.\n\nWith Traefik, tune entrypoint transport settings using values under:\n\n- `traefik.ports.websecure.transport.respondingTimeouts.*`\n- `traefik.ports.websecure.transport.keepAliveMaxRequests`\n- `traefik.ports.websecure.transport.keepAliveMaxTime`\n\nThe above notes are motivated by [SeleniumHQ/selenium#14258](https://github.com/SeleniumHQ/selenium/issues/14258). Kindly let us know if you have further troubleshooting on this.\n\n### Node Registration\n\nTo enable secure in the node registration to make sure that the node is one you control and not a rouge node, you can enable and provide a registration secret string to Distributor, Router and\nNode servers in config `registrationSecret`. For example:\n\n```yaml\nregistrationSecret:\n  enabled: true\n  value: \"matchThisSecret\"\n```\n\n### Configuration of tracing observability\n\nThe chart supports tracing observability via Jaeger. To enable it, you need to set the following values:\n\n```yaml\ntracing:\n  enabled: true\n```\n\nWith this configuration, by default, Jaeger (all-in-one) will be deployed in the same namespace as Selenium Grid.\nThe Jaeger UI can be accessed via same ingress with prefix `/jaeger`, for example: `http://your.host.name/jaeger`.\nThe traces will be collected from all the components of Selenium Grid and can be viewed in the Jaeger UI.\n\nIn case you want to use your own existing Jaeger instance, you can set the following values:\n\n```yaml\ntracing:\n    enabledWithExistingEndpoint: true\n    exporter: otlp\n    exporterEndpoint: 'http://jaeger.domain.com:4317'\n```\n\nBy default, the exporter is set to `otlp`. It is wide compatibility with many tracing backends.\nRead more: [vendors](https://opentelemetry.io/ecosystem/vendors/) native support OpenTelemetry and guidelines on [integration](https://opentelemetry.io/ecosystem/integrations/)\n\nIn case your observability collector agents running on the Kubernetes Nodes as Daemonsets, you can to set `tracing.exporterEndpoint` point to IP address for Kubernetes node. For example:\n\n```yaml\ntracing:\n    enabledWithExistingEndpoint: true\n    exporterEndpoint: 'http://$KUBERNETES_NODE_HOST_IP:4317'\n```\n\nIn each component deployment, we already exposed the environment variable `KUBERNETES_NODE_HOST_IP` to get the IP address of the Kubernetes node where the component is running. So, you can use environment variable pattern in the value of `tracing.exporterEndpoint` as above.\n\nNote: If you set value via Helm CLI, ensure to escape the `$` character in the value to prevent it confused with the shell variable. For example:\n\n```bash\nhelm upgrade -i $RELEASENAME -n $NAMESPACE --set tracing.exporterEndpoint=\"http://\\$KUBERNETES_NODE_HOST_IP:4317\" [...]\n```\n\n### Configuration of Session Map using External Datastore\n\nFeature [documentation](https://www.selenium.dev/documentation/grid/advanced_features/external_datastore/). It requires the Grid deployed in distributed mode. The feature is disabled by default.\n\nTo enable it with Database backed Session Map, also install PostgreSQL service in the same namespace as Selenium Grid. You can set the following values:\n\n```yaml\nisolateComponents: true\ncomponents:\n  sessionMap:\n    externalDatastore:\n      enabled: true\n      backend: postgresql\n\npostgresql:\n  enabled: true\n```\n\nTo enable it with Redis backed Session Map, also install Redis service in the same namespace as Selenium Grid. You can set the following values:\n\n```yaml\nisolateComponents: true\ncomponents:\n  sessionMap:\n    externalDatastore:\n      enabled: true\n      backend: redis\n\nredis:\n  enabled: true\n```\n\n### Configuration of Selenium Grid chart\n\nCheck out list [configuration](https://github.com/SeleniumHQ/docker-selenium/blob/trunk/charts/selenium-grid/CONFIGURATION.md) parameter of chart and their default values for more details.\n\n### Configuration of KEDA\n\nIf you are setting `autoscaling.enabled` to `true`, chart KEDA is installed and can be configured with\nvalues with the prefix `keda`. So you can for example set `keda.prometheus.metricServer.enabled` to\n`true` to enable the metrics server for KEDA.  See\nhttps://github.com/kedacore/charts/blob/main/keda/README.md for more details.\n\n### Configuration of Traefik Ingress Controller\n\nIf you are setting `traefik.enabled` to `true`, chart Traefik Ingress Controller is installed and can be configured with\nvalues with the prefix `traefik`. See https://github.com/traefik/traefik-helm-chart for more details.\n\n### Configuration of Jaeger\n\nIf you are setting `tracing.enabled` to `true`, chart Jaeger is installed and can be configured with\nvalues with the prefix `jaeger`. See https://github.com/jaegertracing/helm-charts for more details.\n\n### Configuration for Selenium-Hub\n\nYou can configure the Selenium Hub with config key starts with `hub.`.\n\nCheck out list [configuration](https://github.com/SeleniumHQ/docker-selenium/blob/trunk/charts/selenium-grid/CONFIGURATION.md) parameter of chart and their default values for more details.\n\n### Configuration for isolated components\n\nIf you implement selenium-grid with separate components (`isolateComponents: true`), you can configure all components via config key starts with `components.`\n\nCheck out list [configuration](https://github.com/SeleniumHQ/docker-selenium/blob/trunk/charts/selenium-grid/CONFIGURATION.md) parameter of chart and their default values for more details.\n\n---\nSee how to customize a helm chart installation in the [Helm Docs](https://helm.sh/docs/intro/using_helm/#customizing-the-chart-before-installing) for more information.\n"
  },
  {
    "path": "charts/selenium-grid/TESTING.md",
    "content": "# Testing Selenium Grid Helm Chart\n\nAll related testing to this helm chart will be documented in this file.\n\n## Test Traceability Matrix\n\n| Features               | TC Description                                                       | Coverage | Test via |\n|------------------------|----------------------------------------------------------------------|----------|----------|\n| Basic Auth             | Basic Auth is disabled                                               | &check;  | Cluster  |\n|                        | Basic Auth is enabled                                                | &check;  | Cluster  |\n| Auto scaling           | Auto scaling with `enableWithExistingKEDA` is `true`                 | &check;  | Cluster  |\n|                        | Auto scaling with `scalingType` is `job`                             | &check;  | Cluster  |\n|                        | Auto scaling with `scalingType` is `deployment`                      | &check;  | Cluster  |\n|                        | Auto scaling with `autoscaling.scaledOptions.minReplicaCount` is `0` | &check;  | Cluster  |\n|                        | Parallel tests execution against node autoscaling                    | &check;  | Cluster  |\n| Ingress                | Ingress is enabled without `hostname`                                | &check;  | Cluster  |\n|                        | Ingress is enabled with `hostname` is set                            | &check;  | Cluster  |\n|                        | Hub `sub-path` is set with Ingress `ImplementationSpecific` paths    | &check;  | Cluster  |\n|                        | `ingress.traefik` configs for Traefik ingress controller annotations | &check;  | Template |\n| Distributed components | `isolateComponents` is enabled                                       | &check;  | Cluster  |\n|                        | `isolateComponents` is disabled                                      | &check;  | Cluster  |\n| Browser Nodes          | Node `nameOverride` is set                                           | &check;  | Cluster  |\n|                        | Sanity tests in node                                                 | &check;  | Cluster  |\n|                        | Video recorder is enabled in node                                    | &check;  | Cluster  |\n|                        | Node `extraEnvironmentVariables` is set value                        | &check;  | Cluster  |\n| General                | Set new image registry via `global.seleniumGrid.imageRegistry`       | &check;  | Cluster  |\n|                        | Components are able to set `.affinity`                               | &check;  | Template |\n| Tracing                | Enable tracing via `SE_ENABLE_TRACING`                               | &check;  | Cluster  |\n|                        | Disable tracing via `SE_ENABLE_TRACING`                              | &check;  | Cluster  |\n| `Node` component       | `SE_NODE_PORT` can set a port different via `.port`                  | &check;  | Cluster  |\n|                        | Extra ports can be exposed on container via `.ports`                 | &check;  | Cluster  |\n|                        | Extra ports can be exposed on Service via `.service.ports`           | &check;  | Cluster  |\n|                        | Service type change to `NodePort`, specific NodePort can be set      | &check;  | Cluster  |\n\n## CI Test Traceability Matrix\n\nWe have a CI pipeline to test the Helm chart with the following test cases.\n\n| Matrix                    | job      | deployment | job_https | job_hostname | deployment_https |\n|---------------------------|----------|------------|-----------|--------------|------------------|\n| Cluster                   | Kind     | Kind       | Kind      | Minikube     | Minikube         |\n| Kubernetes version        | v1.25.16 | v1.26.14   | v1.27.11  | v1.28.7      | v1.29.2          |\n| Autoscaling               | x        | x          | x         | x            | x                |\n| Scaling type `deployment` |          | x          |           |              | x                |\n| Scaling type `job`        | x        |            | x         | x            |                  |\n| Full distributed mode     | x        |            |           |              | x                |\n| Enable basic auth         |          | x          |           | x            | x                |\n| Ingress `hostname`        | x        |            |           | x            | x                |\n| Ingress `K8S_PUBLIC_IP`   |          | x          | x         |              |                  |\n| HTTPS `tls.enabled`       |          |            | x         |              | x                |\n| Enable tracing            | x        | x          |           | x            |                  |\n| Enable video recorder     | x        | x          | x         | x            | x                |\n| Enable video uploader     | x        | x          | x         | x            | x                |\n| Test headless             |          | x          | x         |              |                  |\n\n## Test Chart Template\n- By using `helm template` command, the chart template is tested without installing it to Kubernetes cluster.\n- Templates are rendered and the output as a YAML manifest file. The manifest file is then asserted with [pyyaml](https://pyyaml.org/wiki/PyYAMLDocumentation).\n- Set of values are used to render the templates located in [tests/charts/templates/render](../../tests/charts/templates/render).\n\n```bash\n# Back to root directory\ncd ../..\n\n# Build chart dependencies and lint\nmake chart_build\n\n# Test chart template\nmake chart_test_template\n```\n- Build chart dependencies and lint requires [Chart Testing `ct`](https://github.com/helm/chart-testing). There is a config file [ct.yaml](../../tests/charts/config/ct.yaml) to configure the chart testing.\n\n## Build & test Docker images with deploy to Kubernetes cluster\nNoted: These `make` commands are composed and tested on Linux x86_64.\nRun entire commands to build and test Docker images with Helm charts in local environment.\n\n```bash\n# Back to root directory\ncd ../..\n\n# Setup Kubernetes environment\nmake setup_dev_env\n\n# Build Docker images\nmake build\n\n# Build and lint charts\nmake chart_build\n\n# Setup Kubernetes cluster\nmake chart_cluster_setup\n\n# Test Selenium Grid on Kubernetes\nmake chart_test_autoscaling_deployment\n\nmake chart_test_autoscaling_job\n\n# Cleanup Kubernetes cluster\nmake chart_cluster_cleanup\n```\n- Setup Kubernetes environment requires [Kind](https://kind.sigs.k8s.io/docs/user/quick-start/) and [Kubectl](https://kubernetes.io/docs/tasks/tools/install-kubectl/).\n- Set of values are used to deploy the chart to Kubernetes cluster located in [tests/charts/ci](../../tests/charts/ci).\n"
  },
  {
    "path": "charts/selenium-grid/certs/add-cert-helper.sh",
    "content": "#!/bin/bash\n\necho \"$(whoami) is running cert script!\"\n\n# Initialize default values\nSCRIPT_PATH=$(readlink -f \"${BASH_SOURCE[0]}\")\nSCRIPT_DIR=$(dirname \"$SCRIPT_PATH\")\nDIRECTORY_PATH=$SCRIPT_DIR\n# Parse command-line options\n# -d directory_path: Specify the directory path contains the certs for importing\nwhile getopts \"d:\" opt; do\n  case ${opt} in\n    d )\n      DIRECTORY_PATH=$OPTARG\n      ;;\n    \\? )\n      echo \"Usage: cmd [-d directory_path]\"\n      exit 1\n      ;;\n  esac\ndone\n\n# Shift out the option and argument to leave only the positional parameters\nshift $((OPTIND-1))\n\n# Function to check if a file is a valid certificate\nis_valid_cert() {\n  local cert_file=$1\n  openssl x509 -in \"$cert_file\" -noout -text -passin pass: > /dev/null 2>&1\n  return $?\n}\n\n# Function to check if a certificate is present in the ca-certificates.crt file\nis_cert_in_bundle() {\n  local bundle_file=$1\n  local cert_file=$2\n  openssl verify -CAfile $bundle_file $cert_file\n  return $?\n}\n\nappend_private_key_if_exists() {\n  local cert_file=$1\n  if [ -f \"${cert_file%.crt}.key\" ]; then\n    cat ${cert_file} \"${cert_file%.crt}.key\" > $APPEND_CRT_KEY\n    echo $APPEND_CRT_KEY\n  else\n    echo $cert_file\n  fi\n}\n\non_exit() {\n  rm -f ${APPEND_CRT_KEY}\n}\ntrap on_exit EXIT\n\nTRUST_ATTR=${1:-\"TCu,Cu,Tu\"} # 1st argument is the trust attributes\nTARGET_CERT_DIR=${TARGET_CERT_DIR:-\"/usr/local/share/ca-certificates\"} # Target directory to copy the certs\nBUNDLE_CA_CERTS=${BUNDLE_CA_CERTS:-\"/etc/ssl/certs/ca-certificates.crt\"} # Bundle CA certificates\nNSSDB_HOME=${NSSDB_HOME:-\"${HOME}/.pki/nssdb\"} # Default location of the NSSDB\nAPPEND_CRT_KEY=\"/tmp/tls.crt\"\nALIAS_PREFIX=${ALIAS_PREFIX:-\"SeleniumHQ\"}\n\nsudo mkdir -p ${TARGET_CERT_DIR}\n\n# Get the list of certs copied\ncert_files=($(ls ${DIRECTORY_PATH}))\n\n# Find all \"cert9.db\" files\ncert_db_files=($(find ${NSSDB_HOME} -name \"cert*.db\"))\n\nfor cert_file in \"${cert_files[@]}\"; do\n  cert_file=$(readlink -f \"${DIRECTORY_PATH}/${cert_file}\")\n  if ! is_valid_cert $cert_file; then\n    continue\n  else\n    echo \"Processing $cert_file\"\n  fi\n  ALIAS=\"${ALIAS_PREFIX}_$(basename $cert_file)\"\n  cert_file=$(append_private_key_if_exists $cert_file)\n  for cert_db_file in \"${cert_db_files[@]}\"; do\n    echo \"Adding to db: $cert_db_file\"\n    cert_db_path=$(dirname $cert_db_file)\n    # Delete the alias if it exists\n    certutil -D -d \"sql:${cert_db_path}\" -n \"${ALIAS}\"\n    certutil -d \"sql:${cert_db_path}\" -A -t \"${TRUST_ATTR}\" -n \"${ALIAS}\" -i \"${cert_file}\"\n    certutil -L -d \"sql:${cert_db_path}\" -n \"${ALIAS}\"\n  done\n  # Update the CA certificates, pick up the new certs under ${TARGET_CERT_DIR}\n  sudo cp -f $cert_file \"${TARGET_CERT_DIR}/${ALIAS}.crt\"\n  sudo update-ca-certificates --fresh\n  # Check if the certificate is present in the bundle\n  if is_cert_in_bundle ${BUNDLE_CA_CERTS} $cert_file; then\n    echo \"The certificate $cert_file is present in ${BUNDLE_CA_CERTS}\"\n  else\n    echo \"The certificate $cert_file is NOT present in ${BUNDLE_CA_CERTS}\"\n    exit 1\n  fi\ndone\n"
  },
  {
    "path": "charts/selenium-grid/certs/add-jks-helper.sh",
    "content": "#!/bin/bash\n\necho \"$(whoami) is running cert script!\"\n\n# Initialize default values\nSCRIPT_PATH=$(readlink -f \"${BASH_SOURCE[0]}\")\nSCRIPT_DIR=$(dirname \"$SCRIPT_PATH\")\nDIRECTORY_PATH=$SCRIPT_DIR\n# Parse command-line options\n# -d directory_path: Specify the directory path contains the JKS files for importing\nwhile getopts \"d:\" opt; do\n  case ${opt} in\n    d )\n      DIRECTORY_PATH=$OPTARG\n      ;;\n    \\? )\n      echo \"Usage: cmd [-d directory_path]\"\n      exit 1\n      ;;\n  esac\ndone\n\n# Shift out the option and argument to leave only the positional parameters\nshift $((OPTIND-1))\n\n# Function to check if a file is a valid certificate\nis_valid_jks() {\n  local jks=$1\n  keytool -list -keystore $jks -storepass ${JKS_PASS} > /dev/null 2>&1\n  return $?\n}\n\n# Function to check if a certificate is present in the cacerts file\nis_cert_in_cacerts() {\n  local alias=$1\n  local cacerts_file=$2\n  local cacerts_pass=$3\n  keytool -list -keystore \"$cacerts_file\" -storepass \"$cacerts_pass\" | grep -iq \"$alias\"\n  return $?\n}\n\non_exit() {\n  rm -f ${OUTPUT_PEM}\n}\ntrap on_exit EXIT\n\nJKS_FILE=\"${DIRECTORY_PATH}/${JKS_FILE:-\"server.jks\"}\" # JKS file name\nJKS_PASS_FILE=\"${JKS_PASS_FILE:-\"server.pass\"}\" # Trust store password file (or password plain text)\nJAVA_CACERTS_PATH=${JAVA_CACERTS_PATH:-\"/etc/ssl/certs/java/cacerts\"} # Target java cacerts file\nCACERTS_PASS=${CACERTS_PASS:-\"changeit\"} # Password for the java cacerts file\nALIAS=${ALIAS:-\"SeleniumHQ\"} # Alias to be used in the trust store\nOUTPUT_PEM=${OUTPUT_PEM:-\"/tmp/${ALIAS}.pem\"} # Output PEM file\n\n# Get the list of certs copied\njks_files=($(ls ${DIRECTORY_PATH}))\n\nif [ -f \"${DIRECTORY_PATH}/${JKS_PASS_FILE}\" ]; then\n  JKS_PASS=$(cat \"${DIRECTORY_PATH}/${JKS_PASS_FILE}\")\nelse\n  JKS_PASS=${JKS_PASS_FILE}\nfi\n\nfor jks_file in \"${jks_files[@]}\"; do\n  jks_file=\"${DIRECTORY_PATH}/${jks_file}\"\n  if ! is_valid_jks \"${jks_file}\"; then\n    continue\n  else\n    echo \"Processing ${jks_file}\"\n  fi\n  # Export certificate from JKS to PEM format\n  keytool -export -alias ${ALIAS} -file ${OUTPUT_PEM} -keystore ${jks_file} -storepass ${JKS_PASS} -noprompt\n\n  # Delete the existing alias if it exists\n  sudo keytool -delete -alias ${ALIAS} -keystore ${JAVA_CACERTS_PATH} -storepass ${CACERTS_PASS} -noprompt || true\n\n  # Import the PEM certificate into the java cacerts keystore\n  sudo mkdir -p $(dirname ${JAVA_CACERTS_PATH})\n  sudo keytool -import -trustcacerts -alias ${ALIAS} -file ${OUTPUT_PEM} -keystore ${JAVA_CACERTS_PATH} -storepass ${CACERTS_PASS} -noprompt\n\n  # Check if the certificate is present in the cacerts file\n  if is_cert_in_cacerts ${ALIAS} ${JAVA_CACERTS_PATH} ${CACERTS_PASS}; then\n    echo \"The certificate with alias ${ALIAS} is present in ${JAVA_CACERTS_PATH}\"\n  else\n    echo \"The certificate with alias ${ALIAS} is NOT present in ${JAVA_CACERTS_PATH}\"\n    exit 1\n  fi\ndone\n"
  },
  {
    "path": "charts/selenium-grid/certs/gen-cert-helper.sh",
    "content": "#!/bin/bash\n# README: This script is used to generate a self-signed certificate for enabling HTTPS/TLS in Selenium Grid\n\n# Initialize default values\nSCRIPT_PATH=$(readlink -f \"${BASH_SOURCE[0]}\")\nSCRIPT_DIR=$(dirname \"$SCRIPT_PATH\")\nDIRECTORY_PATH=$SCRIPT_DIR\n# Parse command-line options\n# -d directory_path: Specify the directory path to store the generated certificate files\nwhile getopts \"d:\" opt; do\n  case ${opt} in\n    d )\n      DIRECTORY_PATH=$OPTARG\n      ;;\n    \\? )\n      echo \"Usage: cmd [-d directory_path]\"\n      exit 1\n      ;;\n  esac\ndone\n\n# Shift out the option and argument to leave only the positional parameters\nshift $((OPTIND-1))\n\nCERTNAME=${CERTNAME:-tls}\nSTOREPASS=${STOREPASS:-\"seleniumkeystore\"}\nKEYPASS=${KEYPASS:-$STOREPASS}\nALIAS=${ALIAS:-\"SeleniumHQ\"}\nSERVER_KEYSTORE=${SERVER_KEYSTORE:-server.jks}\nSERVER_KEYSTORE_PASSPWD=${SERVER_KEYSTORE_PASSPWD:-server.pass}\nBASE64_ONLY=${BASE64_ONLY:-0}\nif [ -n \"${ADD_IP_ADDRESS}\" ] && [ \"${ADD_IP_ADDRESS}\" = \"hostname\" ]; then\n  ADD_IP_ADDRESS=\",IP:$(hostname -I | cut -d' ' -f1)\"\nelse\n  ADD_IP_ADDRESS=${ADD_IP_ADDRESS}\nfi\n\n# Remove existing files\nrm -f ${CERTNAME}.* ${SERVER_KEYSTORE}\n\n# Create JKS (Java Keystore) - this is used to set for JAVA_OPTS -Djavax.net.ssl.trustStore=<path-to-jdk-mounted-in-container>\n# The key pass set to JAVA_OPTS -Djavax.net.ssl.trustStorePassword=<password>\n# Dummy cert without correct SAN, DNS, to skip hostname verification by JAVA_OPTS -Djdk.internal.httpclient.disableHostnameVerification=true\nkeytool -genkeypair \\\n    -alias ${ALIAS} \\\n    -keyalg RSA \\\n    -v \\\n    -dname \"CN=SeleniumHQ,OU=Software Freedom Conservancy,O=SeleniumHQ,L=Unknown,ST=Unknown,C=Unknown\" \\\n    -ext \"SAN:c=DNS:localhost,DNS:selenium-grid.local,DNS:selenium-grid.prod,DNS:selenium.dev${ADD_IP_ADDRESS}\" \\\n    -validity 3650 \\\n    -storepass ${STOREPASS} \\\n    -keypass ${KEYPASS} \\\n    -keystore ${SERVER_KEYSTORE}\n\nif [ ${BASE64_ONLY} -eq 1 ]; then\n  # Base64 encode JKS file (for Kubernetes Secret)\n  base64 -i ${SERVER_KEYSTORE} -w 0 > ${SERVER_KEYSTORE}.base64\nfi\n\necho -n \"${STOREPASS}\" > ${SERVER_KEYSTORE_PASSPWD}\n\nif [ ${BASE64_ONLY} -eq 1 ]; then\n  # Base64 encode JKS file (for Kubernetes Secret)\n  base64 -i ${SERVER_KEYSTORE_PASSPWD} -w 0 > ${SERVER_KEYSTORE_PASSPWD}.base64\nfi\n\n# Create PKCS12 from JKS\nkeytool -importkeystore -srckeystore ${SERVER_KEYSTORE} \\\n   -destkeystore ${CERTNAME}.p12 \\\n   -srcstoretype jks \\\n   -storepass ${STOREPASS} -keypass ${KEYPASS} -srcstorepass ${STOREPASS} \\\n   -deststoretype pkcs12\n\n# Create private key from PKCS12\nopenssl pkcs12 -nodes -in ${CERTNAME}.p12 -out ${CERTNAME}.key \\\n    -passin pass:${KEYPASS}\n\n# Create private key PKCS8 format (this is used to set for option --https-private-key)\nopenssl pkcs8 -in ${CERTNAME}.key -topk8 -nocrypt -out ${CERTNAME}.pkcs8\n\n# Remove source file PKCS12 (prevent sensitive data leak)\nrm -f ${CERTNAME}.p12\n\n# Rename PKCS8 file to .key extension (most compatible extension for private key)\nmv ${CERTNAME}.pkcs8 ${CERTNAME}.key\n\nif [ ${BASE64_ONLY} -eq 1 ]; then\n  # Base64 encode PKCS8 file (for Kubernetes Secret)\n  base64 -i ${CERTNAME}.key -w 0 > ${CERTNAME}.key.base64\nfi\n\n# Create certificate CRT from JKS (this is used to set for option --https-certificate)\nkeytool -exportcert -alias ${ALIAS} \\\n    -storepass ${STOREPASS} -keypass ${KEYPASS} \\\n    -keystore ${SERVER_KEYSTORE} -rfc -file ${CERTNAME}.crt\n\nif [ ${BASE64_ONLY} -eq 1 ]; then\n  # Base64 encode Certificate CRT file (for Kubernetes Secret)\n  base64 -i ${CERTNAME}.crt -w 0 > ${CERTNAME}.crt.base64\nfi\n\nif [ ${BASE64_ONLY} -eq 1 ]; then\n  rm -rf ${CERTNAME}.key\n  rm -rf ${SERVER_KEYSTORE}\n  rm -rf ${CERTNAME}.crt\nfi\n\nif [ -n \"${DIRECTORY_PATH}\" ]; then\n  # Create the specified directory if it does not exist\n  mkdir -p ${DIRECTORY_PATH}\n  # Move the generated certificate files to the specified directory\n  if [ ${BASE64_ONLY} -eq 1 ]; then\n    mv ${SERVER_KEYSTORE}.base64 ${DIRECTORY_PATH}/\n    mv ${SERVER_KEYSTORE_PASSPWD}.base64 ${DIRECTORY_PATH}/\n    mv ${CERTNAME}.key.base64 ${DIRECTORY_PATH}/\n    mv ${CERTNAME}.crt.base64 ${DIRECTORY_PATH}/\n  else\n    mv ${CERTNAME}.key ${DIRECTORY_PATH}/\n    mv ${SERVER_KEYSTORE} ${DIRECTORY_PATH}/\n    mv ${SERVER_KEYSTORE_PASSPWD} ${DIRECTORY_PATH}/\n    mv ${CERTNAME}.crt ${DIRECTORY_PATH}/\n  fi\n  echo \"Self-signed certificate files have been generated and stored in: ${DIRECTORY_PATH}\"\nfi\n"
  },
  {
    "path": "charts/selenium-grid/certs/server.pass",
    "content": "seleniumkeystore"
  },
  {
    "path": "charts/selenium-grid/certs/tls.crt",
    "content": "-----BEGIN CERTIFICATE-----\nMIIFBDCCA2ygAwIBAgIJALhIaUSjy7TlMA0GCSqGSIb3DQEBDAUAMIGHMRAwDgYD\r\nVQQGEwdVbmtub3duMRAwDgYDVQQIEwdVbmtub3duMRAwDgYDVQQHEwdVbmtub3du\r\nMRMwEQYDVQQKEwpTZWxlbml1bUhRMSUwIwYDVQQLExxTb2Z0d2FyZSBGcmVlZG9t\r\nIENvbnNlcnZhbmN5MRMwEQYDVQQDEwpTZWxlbml1bUhRMB4XDTI0MDgwNjAwMDAw\r\nOVoXDTM0MDgwNDAwMDAwOVowgYcxEDAOBgNVBAYTB1Vua25vd24xEDAOBgNVBAgT\r\nB1Vua25vd24xEDAOBgNVBAcTB1Vua25vd24xEzARBgNVBAoTClNlbGVuaXVtSFEx\r\nJTAjBgNVBAsTHFNvZnR3YXJlIEZyZWVkb20gQ29uc2VydmFuY3kxEzARBgNVBAMT\r\nClNlbGVuaXVtSFEwggGiMA0GCSqGSIb3DQEBAQUAA4IBjwAwggGKAoIBgQDFoKw1\r\n32Ojd2ZtvMGJpIxgKx+rv5TOA+Ml/5qomPk8G2S9pc4XQNsG0zXajBDag6QxASBV\r\nACacW7ZzG69/kV9Wf6VtZO9Ob1sLCXNePlFUvL15Jn5kK/mYkQ2MudvWcS+EwSve\r\nXIo2gMl44qqLRMLg5NuH9z1/gzUhZh/8sdwaerGZ8yvXQc8TUUgN31A8e5k6aBpR\r\nkviq61gHCOJvl43nbkaPTMNchJFzieTt8D5VYNq0R443YSijWEO6lpC2y17ODydn\r\nBZoagv7/ykvpCDkE9p4MQaxRJ2PzrRpSIexYWugwN1fhoVmPgTrRQdRCegJ0Bqx3\r\n/XB7wdeyXOZ8M5gcBtu6i9hAyaygNUoSTdn3T18Gc4iwSa0SJtOwQ2TMJPLVHl5A\r\n+yo3IctXHwGXj1gqpeHxivis+3Pv1x014/L+B2sTlNODjSYrA60o/tjgCtrrCu1e\r\n3R9cd4NiWg9bScn/tg38jXxFLmW9mCwlOrlp78Mm6qq3gCiq/C9YyaC1evMCAwEA\r\nAaNxMG8wHQYDVR0OBBYEFGl+cHpnwyKQya40I+/WDMoLVX/RME4GA1UdEQEB/wRE\r\nMEKCCWxvY2FsaG9zdIITc2VsZW5pdW0tZ3JpZC5sb2NhbIISc2VsZW5pdW0tZ3Jp\r\nZC5wcm9kggxzZWxlbml1bS5kZXYwDQYJKoZIhvcNAQEMBQADggGBAH9qD3bBxFuN\r\nNPdfwZ+GEP8RebTbX4XJulGikigjGuzldG/ygyyz13diLgPHWEa8laW+atx95vOu\r\nUuvZ8if+dzdC0+YJip6z7QTZ7TPajVgVH9waqXUu2jHDkhWw2GUQXNZnB7t465N2\r\n9xaWzSfoQOy6n+KlS5L7WRF0uWhFq44GKMR/h7o/2cKq17cuBt/EXgtjCXEMjGfS\r\nAHqo6uV/1pa12n3BRMIAXkyav6HSDSF04unCYuoUNbv8eW/1yulihVe11fNn1b6b\r\nCyVVylnH3x1oRv60LZUnCWYGZLqG0HhPnYg9DhL4u7wdjcCUdgBW3iZ4kjly/8YF\r\nm3+gwrtK3/aSD6pbRYfd9hHMgxF9f/V6wniaWb4mtgC7tNQcUzhvPaZQsI6lpnvg\r\nUNRrePz8II3YGnoa+Jm4YLlxVelolmSxXYJXfOOMamVky4TzRBSNznwEgfmT2FpY\r\nHoB/bgeVBXTjHbEPgbMoQOaiV/4jCHC5x/BYBWqRvdgOQnTeTBbDpw==\n-----END CERTIFICATE-----\n"
  },
  {
    "path": "charts/selenium-grid/certs/tls.key",
    "content": "-----BEGIN PRIVATE KEY-----\nMIIG/QIBADANBgkqhkiG9w0BAQEFAASCBucwggbjAgEAAoIBgQDFoKw132Ojd2Zt\nvMGJpIxgKx+rv5TOA+Ml/5qomPk8G2S9pc4XQNsG0zXajBDag6QxASBVACacW7Zz\nG69/kV9Wf6VtZO9Ob1sLCXNePlFUvL15Jn5kK/mYkQ2MudvWcS+EwSveXIo2gMl4\n4qqLRMLg5NuH9z1/gzUhZh/8sdwaerGZ8yvXQc8TUUgN31A8e5k6aBpRkviq61gH\nCOJvl43nbkaPTMNchJFzieTt8D5VYNq0R443YSijWEO6lpC2y17ODydnBZoagv7/\nykvpCDkE9p4MQaxRJ2PzrRpSIexYWugwN1fhoVmPgTrRQdRCegJ0Bqx3/XB7wdey\nXOZ8M5gcBtu6i9hAyaygNUoSTdn3T18Gc4iwSa0SJtOwQ2TMJPLVHl5A+yo3IctX\nHwGXj1gqpeHxivis+3Pv1x014/L+B2sTlNODjSYrA60o/tjgCtrrCu1e3R9cd4Ni\nWg9bScn/tg38jXxFLmW9mCwlOrlp78Mm6qq3gCiq/C9YyaC1evMCAwEAAQKCAYAB\n3TTyoc5J9Zow5nW5i3n1fZf5Yepl57x7Qxty2VU0f2+mUvY22u+V82UP0Cq9Mj5Y\nu1F868OcIvNSx6E9UKI3vybQztcWWXo1iEZ0ePMBxnFPv2YJd4QNr9noXhJtmzi0\nWwbDvKy4Zzjp8SgO/ebhVyyeQ4iVd30x+PQhSTjcbmmBcb0+n7TJJ7Gdy+Gbsxts\nD8emcFP0d27SS3+onM3ZBShuOUOjJO74SjCExrOCe6ePHsOqew9L5yJlvqjTyJGd\nQNPlQXNpmhpbq38IERXD8IDCBP77SVA4Xls1B/yE1ltATf5Wi9k8MsU2VmnjOcrb\nQpkcamUdqSaay6OB7GejRx+fknW/xQXVsuQkDKu04TSAf8bHaxo0YoWPopJsMHWI\nr9SvPxKZ/9wQXw0ntz6Gas+vE9LGOA96birQEI5CM7du5RkIXkteCnCEIKtubb9U\nMSQgEXlzVeReae3O35YHsLdS+nRCKkqcRuBrOar7Uqkfe7JP//nLKGWStxV4kIUC\ngcEA/FdpqcIN5mnA1c8oz5M+nVtPGS4OdwzPrwfqzqY5hMjkaE9fXDlASpTBv+kf\nU2+QiGS+46Smm5wSERMULTfwNwNF3H7bNB9lXJHvG8WPYak7lH21lja5m8n5Xyez\njkkPiXacp2YZQ+F/jvBGk2Hpt/9nIo0S6MxbcLpLbYLKep5Py69tqXK2gjDT8T3S\nBGjbzkBocn4fUi0t0tvPHLtlD8J2x6c+kn+VptlYJkjmtmbHtTOaEjGhdFQKao55\niZlnAoHBAMh+L1BXxTF4KeWSfIZksIqyR5+7VoFKECexk/x3ZgJ8yd/S/4t45HLS\nEyXLMFrqYpNxLu/d2T6G+2t9L5l+SayD79vyEz+PLcXJqNf3CJROHcUVqpMeFN+7\nx4wQ+F0JWXf0N1F8jr8Eoqc2LIPFP2Cib0JSyT42iY6msT8mkDbx/SQzAf3/NpP9\neugqHy6FuqsgHMCjqydYMSDvj6G28yUQpIQonEbZ1kXBGAI4wp+Hasj2t987+lrQ\nbRScZV3+lQKBwQD52K7lBx9uKP1mdWPKCtdvRC4QF1r5IvUrL2Kc01aWE7abVSNt\nE76FWb5wfqimmwr3ERE0Ih1Ya3Iz97j9gKpWPeZZCD2P4RoiStf9nmF15/L29nTp\n0yt5hcRkI9ITqmE40PkQgfW4ETiUVXD7knGv3bDHM/kqCNTsy3fNaTeDquYFHaAt\nq0frpd7juDsOZKhmEb2YxynJ2rPJWBw8LYtFzFyBGCXLNYn+FqrB1WKh7SgFUJ9X\nLk7W+DMMCB9sTzcCgcAtiWNrpxO1oao6ZyP7TkE+rzFPWThTkyPKMC4BaIj1xawA\nNyctYV7ZqVcJ/XVVIOkUvd9AQa4G4peWGU/HWASZtzmyRfATPozR4HSF4KjFLlza\nl4ovceSh0D+JU41lbCsy8Hfj/RtazU24FrjTkOhNJXeJo83rYG2rxbZ6NmMI57ts\nDl3Ed8PIpwjUVETSxzLXjSqaolHMVN6LsX146FmfMIF9NtAP04g0PaAbWRLzMsmR\nLWAjxradC7vKs57eU2UCgcAf7iOElTgUznw6P23x4+fU82RGCNlsQFgyXlO0n5OB\nK2RmBDfQ/M2opVWWLV92Gr8qtFRFW6T8H/OkTlzoP9vEBQFRYd96lWpYqn2Q4RgL\nRyPz817RucJz49Vr/8yJKbqx5DbPvXYUCdl6p+ypgRcQOf9018oeD4zAOMMHYZ/l\nZWmRDLGTtIiFvTsDe+PFu7VnucE2m+t+GR4CCDojsQES1+J+GJ63+l406IrZTFfw\n1HTijTeNlUFYGDPIhCKoSRE=\n-----END PRIVATE KEY-----\n"
  },
  {
    "path": "charts/selenium-grid/configs/distributor/distributorProbe.sh",
    "content": "#!/bin/bash\n\nmax_time=3\nretry_time=3\nprobe_name=\"Probe.${1:-\"Liveness\"}\"\nts_format=${SE_LOG_TIMESTAMP_FORMAT:-\"%Y-%m-%d %H:%M:%S,%3N\"}\nROUTER_CONFIG_DIRECTORY=${ROUTER_CONFIG_DIRECTORY:-\"/opt/bin\"}\n\nGRID_GRAPHQL_URL=$(bash ${ROUTER_CONFIG_DIRECTORY}/routerGraphQLUrl.sh)\nauth_header=()\nif [ -n \"${SE_ROUTER_USERNAME}\" ] && [ -n \"${SE_ROUTER_PASSWORD}\" ]; then\n  BASIC_AUTH=\"$(echo -en \"${SE_ROUTER_USERNAME}:${SE_ROUTER_PASSWORD}\" | base64 -w0)\"\n  auth_header=(-H \"Authorization: Basic ${BASIC_AUTH}\")\nfi\n\nif [ -z \"${GRID_GRAPHQL_URL}\" ]; then\n  echo \"$(date -u +\"${ts_format}\") DEBUG [${probe_name}] - Could not construct GraphQL endpoint, please provide SE_HUB_HOST (or SE_ROUTER_HOST) and SE_HUB_PORT (or SE_ROUTER_PORT). Bypass the probe checks for now.\"\n  exit 0\nfi\n\nGRAPHQL_PRE_CHECK=$(curl --noproxy \"*\" -m ${max_time} -k -X POST \"${auth_header[@]}\" -H \"Content-Type: application/json\" --data '{\"query\":\"{ grid { sessionCount } }\"}' -s -o /dev/null -w \"%{http_code}\" ${GRID_GRAPHQL_URL})\n\nif [ ${GRAPHQL_PRE_CHECK} -ne 200 ]; then\n  echo \"$(date -u +\"${ts_format}\") DEBUG [${probe_name}] - GraphQL endpoint ${GRID_GRAPHQL_URL} is not reachable. Status code: ${GRAPHQL_PRE_CHECK}.\"\n  exit 1\nfi\n\nSESSION_QUEUE_SIZE=$(curl --noproxy \"*\" --retry ${retry_time} -m ${max_time} -k -X POST \"${auth_header[@]}\" -H \"Content-Type: application/json\" --data '{\"query\":\"{ grid { sessionQueueSize } }\"}' -s ${GRID_GRAPHQL_URL} | jq -r '.data.grid.sessionQueueSize')\n\nSESSION_COUNT=$(curl --noproxy \"*\" --retry ${retry_time} -m ${max_time} -k -X POST \"${auth_header[@]}\" -H \"Content-Type: application/json\" --data '{\"query\": \"{ grid { sessionCount } }\"}' -s ${GRID_GRAPHQL_URL} | jq -r '.data.grid.sessionCount')\n\nMAX_SESSION=$(curl --noproxy \"*\" --retry ${retry_time} -m ${max_time} -k -X POST \"${auth_header[@]}\" -H \"Content-Type: application/json\" --data '{\"query\":\"{ grid { maxSession } }\"}' -s ${GRID_GRAPHQL_URL} | jq -r '.data.grid.maxSession')\n\nif [ \"${SE_LOG_LISTEN_GRAPHQL:-\"false\"}\" = \"true\" ]; then\n  echo \"$(curl --noproxy \"*\" --retry ${retry_time} -m ${max_time} -k -X POST \"${auth_header[@]}\" -H \"Content-Type: application/json\" --data '{\"query\":\"{ grid { sessionCount, maxSession, totalSlots }, nodesInfo { nodes { id, status, sessionCount, maxSession, slotCount, stereotypes, sessions { id, capabilities, slot { id, stereotype } } } }, sessionsInfo { sessionQueueRequests } }\"}' -s ${GRID_GRAPHQL_URL} )\"\nfi\n\nif [ ${SESSION_QUEUE_SIZE} -gt 0 ] && [ ${SESSION_COUNT} -eq 0 ]; then\n  echo \"$(date -u +\"${ts_format}\") DEBUG [${probe_name}] - Session Queue Size: ${SESSION_QUEUE_SIZE}, Session Count: ${SESSION_COUNT}, Max Session: ${MAX_SESSION}\"\n  echo \"$(date -u +\"${ts_format}\") DEBUG [${probe_name}] - It seems the Distributor is delayed in processing a new session in the queue. Probe checks failed.\"\n  exit 1\nelse\n  echo \"$(date -u +\"${ts_format}\") DEBUG [${probe_name}] - Distributor is healthy.\"\n  exit 0\nfi\n"
  },
  {
    "path": "charts/selenium-grid/configs/node/nodeGridUrl.sh",
    "content": "#!/bin/bash\n\nmax_time=3\n\nauth_header=()\nif [ -n \"${SE_ROUTER_USERNAME}\" ] && [ -n \"${SE_ROUTER_PASSWORD}\" ]; then\n  BASIC_AUTH=\"$(echo -en \"${SE_ROUTER_USERNAME}:${SE_ROUTER_PASSWORD}\" | base64 -w0)\"\n  auth_header=(-H \"Authorization: Basic ${BASIC_AUTH}\")\nfi\n\nif [ \"${SE_SUB_PATH}\" = \"/\" ]; then\n  SE_SUB_PATH=\"\"\nfi\n\nif [ -z \"${SE_HUB_HOST:-$SE_ROUTER_HOST}\" ] || [ -z \"${SE_HUB_PORT:-$SE_ROUTER_PORT}\" ]; then\n  grid_url=\"\"\nelse\n  grid_url=${SE_SERVER_PROTOCOL}://${SE_HUB_HOST:-$SE_ROUTER_HOST}:${SE_HUB_PORT:-$SE_ROUTER_PORT}${SE_SUB_PATH}\nfi\n\nif [ -z \"${grid_url}\" ]; then\n  grid_url=\"${SE_NODE_GRID_URL}\"\nfi\n\nif [ -z \"${grid_url}\" ]; then\n  grid_url=\"${SE_SERVER_PROTOCOL}://127.0.0.1:4444${SE_SUB_PATH}\" # For standalone mode\nfi\n\ngrid_url_checks=$(curl --noproxy \"*\" \"${auth_header[@]}\" -m ${max_time} -s -k -o /dev/null -w \"%{http_code}\" ${grid_url})\n\nreturn_array=(\"${grid_url}\" \"${grid_url_checks}\")\n\n# stdout the values for other scripts consuming\necho \"${return_array[@]}\"\n"
  },
  {
    "path": "charts/selenium-grid/configs/node/nodePreStop.sh",
    "content": "#!/bin/bash\n\nprobe_name=\"lifecycle.${1:-\"preStop\"}\"\nSE_NODE_PORT=${SE_NODE_PORT:-\"5555\"}\nts_format=${SE_LOG_TIMESTAMP_FORMAT:-\"%Y-%m-%d %H:%M:%S,%3N\"}\nNODE_CONFIG_DIRECTORY=${NODE_CONFIG_DIRECTORY:-\"/opt/bin\"}\nPRESTOP_WAIT_STRATEGY=${SE_NODE_PRESTOP_WAIT_STRATEGY:-\"deployment\"}\n\nmax_time=3\nretry_time=5\n\nif [ \"${PRESTOP_WAIT_STRATEGY,,}\" = \"job\" ]; then\n  echo \"$(date -u +\"${ts_format}\") [${probe_name}] - Using pre-stop strategy Job to wait for current sessions to be finished\"\n  while pgrep -f 'java.*selenium' | grep -v $$; do sleep 5; done\n  exit 0\nfi\n\necho \"$(date -u +\"${ts_format}\") [${probe_name}] - Using pre-stop strategy Deployment to wait for current sessions to be finished\"\n\nID=$(echo $RANDOM)\ntmp_node_file=\"/tmp/nodeProbe${ID}\"\n\nfunction on_exit() {\n  rm -rf ${tmp_node_file}\n  echo \"$(date -u +\"${ts_format}\") [${probe_name}] - Exiting Node ${probe_name}...\"\n  exit 0\n}\ntrap on_exit EXIT\n\nfunction init_file() {\n  echo \"{}\" > ${tmp_node_file}\n}\ninit_file\n\n# Set headers if Node Registration Secret is set\nif [ ! -z \"${SE_REGISTRATION_SECRET}\" ]; then\n  HEADERS=\"X-REGISTRATION-SECRET: ${SE_REGISTRATION_SECRET}\"\nelse\n  HEADERS=\"X-REGISTRATION-SECRET;\"\nfi\n\nfunction signal_hub_to_drain_node() {\n  return_list=($(bash ${NODE_CONFIG_DIRECTORY}/nodeGridUrl.sh))\n  grid_url=${return_list[0]}\n  grid_check=${return_list[1]}\n  auth_header=()\n  if [ -n \"${SE_ROUTER_USERNAME}\" ] && [ -n \"${SE_ROUTER_PASSWORD}\" ]; then\n    BASIC_AUTH=\"$(echo -en \"${SE_ROUTER_USERNAME}:${SE_ROUTER_PASSWORD}\" | base64 -w0)\"\n    auth_header=(-H \"Authorization: Basic ${BASIC_AUTH}\")\n  fi\n  if [ -n \"${grid_url}\" ]; then\n    if [ \"${grid_check}\" = \"401\" ]; then\n      echo \"$(date -u +\"${ts_format}\") [${probe_name}] - Hub/Router requires authentication. Please check env vars SE_ROUTER_USERNAME and SE_ROUTER_PASSWORD are given.\"\n    elif [ \"${grid_check}\" = \"404\" ]; then\n      echo \"$(date -u +\"${ts_format}\") [${probe_name}] - Hub/Router endpoint could not be found. Please check the endpoint ${grid_url}\"\n    elif [ \"${grid_check}\" = \"200\" ]; then\n      echo \"$(date -u +\"${ts_format}\") [${probe_name}] - Hub/Router endpoint is reachable. Signaling Hub/Router to drain node\"\n      curl --noproxy \"*\" -m ${max_time} -k -X POST \"${auth_header[@]}\" ${grid_url}/se/grid/distributor/node/${NODE_ID}/drain --header \"${HEADERS}\"\n    else\n      echo \"$(date -u +\"${ts_format}\") [${probe_name}] - Hub/Router endpoint returns ${grid_check}. Skip signaling upstream.\"\n    fi\n  else\n    echo \"$(date -u +\"${ts_format}\") [${probe_name}] - There is no configured HUB/ROUTER host or SE_NODE_GRID_URL isn't set. ${probe_name} ignores to send drain request to upstream.\"\n  fi\n}\n\nfunction signal_node_to_drain() {\n    echo \"$(date -u +\"${ts_format}\") [${probe_name}] - Signaling Node to drain itself\"\n    curl --noproxy \"*\" -m ${max_time} -k -X POST ${SE_SERVER_PROTOCOL}://127.0.0.1:${SE_NODE_PORT}/se/grid/node/drain --header \"${HEADERS}\"\n}\n\nif curl --noproxy \"*\" -m ${max_time} -sfk ${SE_SERVER_PROTOCOL}://127.0.0.1:${SE_NODE_PORT}/status > ${tmp_node_file}; then\n    NODE_ID=$(jq -r '.value.node.nodeId' ${tmp_node_file} || echo \"\")\n    if [ -n \"${NODE_ID}\" ]; then\n      echo \"$(date -u +\"${ts_format}\") [${probe_name}] - Current Node ID is: ${NODE_ID}\"\n      signal_hub_to_drain_node\n      echo\n    fi\n    signal_node_to_drain\n    # Wait for the current session to be finished if any\n    check_attempts=0\n    while true; do\n      # Attempt the cURL request and capture the exit status\n      endpoint_http_code=$(curl --noproxy \"*\" --retry ${retry_time} -m ${max_time} -sfk \"${SE_SERVER_PROTOCOL}://127.0.0.1:${SE_NODE_PORT}/status\" -o \"${tmp_node_file}\" -w \"%{http_code}\")\n      endpoint_status=$?\n      echo \"$(date -u +\"${ts_format}\") [${probe_name}] - Fetch the Node status via cURL with exit status: ${endpoint_status}, HTTP code: ${endpoint_http_code}\"\n\n      SLOT_HAS_SESSION=$(jq -r '[.value.node.slots[]? | select(.session != null)] | length' \"${tmp_node_file}\" || echo 0)\n      if [ \"${SLOT_HAS_SESSION}\" -eq 0 ] && [ \"${endpoint_http_code}\" = \"200\" ]; then\n        echo \"$(date -u +\"${ts_format}\") [${probe_name}] - There is no session running. Node is ready to be terminated.\"\n        echo \"$(date -u +\"${ts_format}\") [${probe_name}] - $(cat \"${tmp_node_file}\" || echo \"\")\"\n        echo\n        exit 0\n      elif [ \"${endpoint_http_code}\" != \"200\" ]; then\n        echo \"$(date -u +\"${ts_format}\") [${probe_name}] - Node endpoint returned status ${endpoint_http_code}, attempt one more time to confirm the status.\"\n        check_attempts=$((check_attempts+1))\n        if [ ${check_attempts} -ge 3 ]; then\n          echo \"$(date -u +\"${ts_format}\") [${probe_name}] - Node endpoint returned status ${endpoint_http_code} for serveral times. Assume that Node is ready to be terminated.\"\n          exit 0\n        fi\n        sleep 2;\n      else\n        check_attempts=0\n        echo \"$(date -u +\"${ts_format}\") [${probe_name}] - Node is waiting for ${SLOT_HAS_SESSION} session(s) to be finished. Node details: message: $(jq -r '.value.message' \"${tmp_node_file}\" || echo \"unknown\"), availability: $(jq -r '.value.node.availability' \"${tmp_node_file}\" || echo \"unknown\")\"\n        sleep 2;\n      fi\n\n      # If the cURL command failed, break the loop\n      if [ ${endpoint_status} -ne 0 ] || [ \"${endpoint_http_code}\" != \"200\" ]; then\n        echo \"$(date -u +\"${ts_format}\") [${probe_name}] - Node endpoint returned status ${endpoint_http_code:-\"exit ${endpoint_status}\"}, probably Node draining complete!\"\n        break\n      fi\n    done\nelse\n    echo \"$(date -u +\"${ts_format}\") [${probe_name}] - Node is already drained. Shutting down gracefully!\"\nfi\n"
  },
  {
    "path": "charts/selenium-grid/configs/node/nodeProbe.sh",
    "content": "#!/bin/bash\n\nmax_time=3\nprobe_name=\"Probe.${1:-\"Startup\"}\"\nSE_NODE_PORT=${SE_NODE_PORT:-\"5555\"}\nts_format=${SE_LOG_TIMESTAMP_FORMAT:-\"%Y-%m-%d %H:%M:%S,%3N\"}\nNODE_CONFIG_DIRECTORY=${NODE_CONFIG_DIRECTORY:-\"/opt/bin\"}\n\nID=$(echo $RANDOM)\ntmp_node_file=\"/tmp/nodeProbe${ID}\"\ntmp_grid_file=\"/tmp/gridProbe${ID}\"\n\nfunction on_exit() {\n  rm -rf ${tmp_node_file}\n  rm -rf ${tmp_grid_file}\n  exit 0\n}\ntrap on_exit EXIT\n\nfunction init_file() {\n  echo \"{}\" > ${tmp_node_file}\n  echo \"{}\" > ${tmp_grid_file}\n}\ninit_file\n\nfunction help_message() {\n  echo \"$(date -u +\"${ts_format}\") [${probe_name}] - If you believe Node is registered successfully but probe still report this message and fail for a long time. Workaround by set 'global.seleniumGrid.defaultNodeStartupProbe' to 'httpGet' and report us an issue for Chart improvement with your scenario.\"\n}\n\nif curl --noproxy \"*\" -m ${max_time} -sfk \"${SE_SERVER_PROTOCOL}://127.0.0.1:${SE_NODE_PORT}/status\" -o \"${tmp_node_file}\"; then\n  NODE_ID=$(jq -r '.value.node.nodeId' \"${tmp_node_file}\" || echo \"\")\n  NODE_STATUS=$(jq -r '.value.node.availability' \"${tmp_node_file}\" || echo \"\")\n  SLOT_HAS_SESSION=$(jq -r '[.value.node.slots[]? | select(.session != null)] | length' \"${tmp_node_file}\" || echo 0)\n  if [ -n \"${NODE_ID}\" ]; then\n    echo \"$(date -u +\"${ts_format}\") [${probe_name}] - Node responds the ID: ${NODE_ID} with status: ${NODE_STATUS}. Number of ongoing sessions: ${SLOT_HAS_SESSION}\"\n  else\n    echo \"$(date -u +\"${ts_format}\") [${probe_name}] - Wait for the Node to report its status\"\n    exit 1\n  fi\n\n  return_list=($(bash ${NODE_CONFIG_DIRECTORY}/nodeGridUrl.sh))\n  grid_url=${return_list[0]}\n  grid_check=${return_list[1]}\n  auth_header=()\n  if [ -n \"${SE_ROUTER_USERNAME}\" ] && [ -n \"${SE_ROUTER_PASSWORD}\" ]; then\n    BASIC_AUTH=\"$(echo -en \"${SE_ROUTER_USERNAME}:${SE_ROUTER_PASSWORD}\" | base64 -w0)\"\n    auth_header=(-H \"Authorization: Basic ${BASIC_AUTH}\")\n  fi\n\n  if [ -n \"${grid_url}\" ]; then\n    if [ \"${grid_check}\" = \"401\" ]; then\n      echo \"$(date -u +\"${ts_format}\") [${probe_name}] - Hub/Router requires authentication. Please check SE_ROUTER_USERNAME and SE_ROUTER_PASSWORD.\"\n    elif [ \"${grid_check}\" = \"404\" ]; then\n      echo \"$(date -u +\"${ts_format}\") [${probe_name}] - Hub/Router endpoint could not be found. Please check the endpoint ${grid_url}\"\n    fi\n  else\n    echo \"$(date -u +\"${ts_format}\") [${probe_name}] - There is no configured HUB/ROUTER host or SE_NODE_GRID_URL isn't set. ${probe_name} will not work as expected.\"\n  fi\n\n  endpoint_http_code=$(curl --noproxy \"*\" -m \"${max_time}\" \"${auth_header[@]}\" -sfk \"${grid_url}/status\" -o \"${tmp_grid_file}\" -w \"%{http_code}\")\n  GRID_NODE_ID=$(jq -e \".value.nodes[]?.id|select(. == \\\"${NODE_ID}\\\")\" \"${tmp_grid_file}\" | tr -d '\"' || echo \"\")\n  if [ -n \"${GRID_NODE_ID}\" ]; then\n    echo \"$(date -u +\"${ts_format}\") [${probe_name}] - Grid responds a matched Node ID: ${GRID_NODE_ID}\"\n  elif [ \"${endpoint_http_code}\" != \"200\" ]; then\n    echo \"$(date -u +\"${ts_format}\") [${probe_name}] - Grid endpoint returns ${endpoint_http_code}. Skip checking upstream.\"\n  fi\n\n  if [ -n \"${NODE_ID}\" ] && [ -n \"${GRID_NODE_ID}\" ] && [ \"${NODE_ID}\" = \"${GRID_NODE_ID}\" ]; then\n    echo \"$(date -u +\"${ts_format}\") [${probe_name}] - Node ID: ${NODE_ID} is found in the Grid. Node is ready.\"\n    exit 0\n  elif [ -n \"${NODE_ID}\" ] && [ \"${endpoint_http_code}\" != \"200\" ]; then\n    echo \"$(date -u +\"${ts_format}\") [${probe_name}] - Node ID: ${NODE_ID} report its status, but could not double check ID in Hub. Assume that Node is ready.\"\n    exit 0\n  else\n    echo \"$(date -u +\"${ts_format}\") [${probe_name}] - Node ID: ${NODE_ID} is not found in the Grid. Node is not ready.\"\n    exit 1\n  fi\nelse\n  echo \"$(date -u +\"${ts_format}\") [${probe_name}] - Wait for the Node to report its status\"\n  exit 1\nfi\n"
  },
  {
    "path": "charts/selenium-grid/configs/node/nodeProbeReadiness.sh",
    "content": "#!/usr/bin/env bash\n\nprobe_name=\"Probe.${1:-\"Readiness\"}\"\nts_format=${SE_LOG_TIMESTAMP_FORMAT:-\"%Y-%m-%d %H:%M:%S,%3N\"}\nENDPOINT=\"${SE_SERVER_PROTOCOL:-\"http\"}://localhost:${SE_NODE_PORT:-\"5555\"}/status\"\n\nresponse=$(curl -skSL --noproxy \"*\" \"${ENDPOINT}\")\n\n# Validate the JSON response\n# From v4.31.0 - [grid] Expose register status via Node status response (#15448)\nif echo \"$response\" | jq -e '.value.registered == true' > /dev/null; then\n  echo \"$(date -u +\"${ts_format}\") [${probe_name}] - Readiness check passed: Node is registered.\"\nelse\n  echo \"$(date -u +\"${ts_format}\") [${probe_name}] - Readiness check failed: Node is not registered.\"\n  exit 1\nfi\n"
  },
  {
    "path": "charts/selenium-grid/configs/router/routerGraphQLUrl.sh",
    "content": "#!/bin/bash\n\nif [ -z \"${SE_HUB_HOST:-$SE_ROUTER_HOST}\" ] || [ -z \"${SE_HUB_PORT:-$SE_ROUTER_PORT}\" ]; then\n  graphql_url=\"\"\nelse\n\n  if [[ ${SE_SUB_PATH} == */ ]]; then\n    GRAPHQL_ENDPOINT=\"${SE_SUB_PATH}graphql\"\n  else\n    GRAPHQL_ENDPOINT=\"${SE_SUB_PATH}/graphql\"\n  fi\n\n  if [[ ${GRAPHQL_ENDPOINT} == /* ]]; then\n    GRAPHQL_ENDPOINT=\"${GRAPHQL_ENDPOINT}\"\n  else\n    GRAPHQL_ENDPOINT=\"/${GRAPHQL_ENDPOINT}\"\n  fi\n\n  graphql_url=\"${SE_SERVER_PROTOCOL}://${SE_HUB_HOST:-${SE_ROUTER_HOST}}:${SE_HUB_PORT:-${SE_ROUTER_PORT}}${GRAPHQL_ENDPOINT}\"\nfi\n\necho \"${graphql_url}\"\n"
  },
  {
    "path": "charts/selenium-grid/configs/router/routerProbe.sh",
    "content": "#!/bin/bash\n\nmax_time=3\nretry_time=3\nprobe_name=\"Probe.${1:-\"Liveness\"}\"\nts_format=${SE_LOG_TIMESTAMP_FORMAT:-\"%Y-%m-%d %H:%M:%S,%3N\"}\nROUTER_CONFIG_DIRECTORY=${ROUTER_CONFIG_DIRECTORY:-\"/opt/bin\"}\n\nGRID_GRAPHQL_URL=$(bash ${ROUTER_CONFIG_DIRECTORY}/routerGraphQLUrl.sh)\nauth_header=()\nif [ -n \"${SE_ROUTER_USERNAME}\" ] && [ -n \"${SE_ROUTER_PASSWORD}\" ]; then\n  BASIC_AUTH=\"$(echo -en \"${SE_ROUTER_USERNAME}:${SE_ROUTER_PASSWORD}\" | base64 -w0)\"\n  auth_header=(-H \"Authorization: Basic ${BASIC_AUTH}\")\nfi\n\nif [ -z \"${GRID_GRAPHQL_URL}\" ]; then\n  echo \"$(date -u +\"${ts_format}\") DEBUG [${probe_name}] - Could not construct GraphQL endpoint, please provide SE_HUB_HOST (or SE_ROUTER_HOST) and SE_HUB_PORT (or SE_ROUTER_PORT). Bypass the probe checks for now.\"\n  exit 0\nfi\n\nGRAPHQL_PRE_CHECK=$(curl --noproxy \"*\" -m ${max_time} -k -X POST \"${auth_header[@]}\" -H \"Content-Type: application/json\" --data '{\"query\":\"{ grid { sessionCount } }\"}' -s -o /dev/null -w \"%{http_code}\" ${GRID_GRAPHQL_URL})\n\nif [ ${GRAPHQL_PRE_CHECK} -ne 200 ]; then\n  echo \"$(date -u +\"${ts_format}\") DEBUG [${probe_name}] - GraphQL endpoint is not reachable. Status code: ${GRAPHQL_PRE_CHECK}.\"\n  exit 1\nelse\n  echo \"$(date -u +\"${ts_format}\") DEBUG [${probe_name}] - GraphQL endpoint is healthy.\"\n  exit 0\nfi\n"
  },
  {
    "path": "charts/selenium-grid/configs/scrape/selenium-grid.yaml",
    "content": "- job_name: \"selenium-grid-analytics\"\n  metrics_path: \"/query\"\n  bearer_token: \"\"\n  params:\n    endpoint:\n      - '{{ template \"seleniumGrid.monitoring.graphqlURL\" $ }}'\n    query:\n      - |\n        { grid { sessionCount, maxSession, totalSlots, nodeCount, sessionQueueSize }, nodesInfo { nodes { id, status, sessionCount, maxSession, slotCount, stereotypes, sessions { id, capabilities, sessionDurationMillis, slot { id, stereotype } } } }, sessionsInfo { sessionQueueRequests } }\n    zoneTag: []\n  tls_config:\n    insecure_skip_verify: true\n  static_configs:\n    - targets:\n        - '{{ template \"seleniumGrid.monitoring.exporter.fullname\" $ }}:{{ $.Values.monitoring.exporter.port }}'\n"
  },
  {
    "path": "charts/selenium-grid/configs/uploader/s3/upload.sh",
    "content": "#!/usr/bin/env bash\n\nSE_VIDEO_FOLDER=${SE_VIDEO_FOLDER:-\"/videos\"}\nUPLOAD_COMMAND=${UPLOAD_COMMAND:-\"cp\"}\nUPLOAD_RETAIN_LOCAL_FILE=${SE_UPLOAD_RETAIN_LOCAL_FILE:-\"false\"}\nSE_VIDEO_UPLOAD_BATCH_CHECK=${SE_VIDEO_UPLOAD_BATCH_CHECK:-\"10\"}\n\nif [[ -z \"${AWS_REGION}\" ]] || [[ -z \"${AWS_ACCESS_KEY_ID}\" ]] || [[ -z \"${AWS_SECRET_ACCESS_KEY}\" ]];\nthen\n    echo \"AWS credentials needed to provide for configuring AWS CLI\"\nfi\n\naws configure set region ${AWS_REGION} --profile s3-profile\naws configure set aws_access_key_id ${AWS_ACCESS_KEY_ID} --profile s3-profile\naws configure set aws_secret_access_key ${AWS_SECRET_ACCESS_KEY} --profile s3-profile\naws configure --profile s3-profile\n\nfunction consume_force_exit() {\n    for pid in \"${list_upload_pid[@]}\";\n    do\n        wait ${pid}\n    done\n    rm -rf ${SE_VIDEO_FOLDER}/force_exit\n    echo \"Force exit signal consumed\"\n    exit 0\n}\ntrap consume_force_exit EXIT\n\nif [ \"${UPLOAD_RETAIN_LOCAL_FILE}\" = \"false\" ];\nthen\n  echo \"UPLOAD_RETAIN_LOCAL_FILE is set to false, force to use command: move\"\n  UPLOAD_COMMAND=\"mv\"\nfi\n\nwhile [ ! -p ${SE_VIDEO_FOLDER}/uploadpipe ];\ndo\n      echo \"Waiting for ${SE_VIDEO_FOLDER}/uploadpipe to be created\"\n      sleep 1\ndone\n\necho \"Waiting for video files put into pipe for proceeding to upload\"\n\nlist_upload_pid=()\nwhile read FILE DESTINATION < ${SE_VIDEO_FOLDER}/uploadpipe\ndo\n    if [ \"${FILE}\" = \"exit\" ];\n    then\n        exit\n    elif [ \"$FILE\" != \"\" ] && [ \"$DESTINATION\" != \"\" ];\n    then\n        echo \"Uploading ${FILE} to ${DESTINATION}\"\n        aws s3 ${UPLOAD_COMMAND} \"${FILE}\" \"${DESTINATION}\" &\n        list_upload_pid+=($!)\n    else\n        # Wait for a batch of processes to finish\n        if [ ${#list_upload_pid[@]} -eq ${SE_VIDEO_UPLOAD_BATCH_CHECK} ]\n        then\n            for pid in \"${list_upload_pid[@]}\";\n            do\n                wait ${pid}\n            done\n            list_upload_pid=()\n        fi\n    fi\n\n    if [ -f ${SE_VIDEO_FOLDER}/force_exit ] && [ ! -s ${SE_VIDEO_FOLDER}/uploadpipe ];\n    then\n        exit\n    fi\ndone\n\nconsume_force_exit\n"
  },
  {
    "path": "charts/selenium-grid/multiple-nodes-platform-relay.yaml",
    "content": "# Utilize Relay Node to set up hybrid Autoscaling Grid with using on-premise and test cloud provider (e.g. SauceLabs, BrowserStack, etc.)\n#\n# For example: below incoming requests will be served by Node container on-premise\n# options = ChromeOptions()\n# options.set_capability('platformName', 'Linux')\n# driver = webdriver.Remote(options=options, command_executor=SELENIUM_GRID_URL)\n#\n# Below incoming requests will be served by Relay Node where commands are forwarded to test cloud provider\n# options = ChromeOptions()\n# options.set_capability('platformName', 'macOS 13.0')\n# driver = webdriver.Remote(options=options, command_executor=SELENIUM_GRID_URL)\ncrossBrowsers:\n  chromeNode:\n    - nameOverride: '{{ $.Release.Name }}-node-chrome-linux'\n      hpa:\n        platformName: 'Linux'\n  firefoxNode:\n    - nameOverride: '{{ $.Release.Name }}-node-firefox-linux'\n      hpa:\n        platformName: 'Linux'\n  edgeNode:\n    - nameOverride: '{{ $.Release.Name }}-node-edge-linux'\n      hpa:\n        platformName: 'Linux'\n  relayNode:\n    - nameOverride: '{{ $.Release.Name }}-node-relay-chrome-macos'\n      hpa:\n        browserName: 'chrome'\n        platformName: 'macOS'\n    - nameOverride: '{{ $.Release.Name }}-node-relay-chrome-windows'\n      hpa:\n        browserName: 'chrome'\n        platformName: 'Windows 11'\n    - nameOverride: '{{ $.Release.Name }}-node-relay-firefox-macos'\n      hpa:\n        browserName: 'firefox'\n        platformName: 'macOS'\n    - nameOverride: '{{ $.Release.Name }}-node-relay-firefox-windows'\n      hpa:\n        browserName: 'firefox'\n        platformName: 'Windows 11'\n    - nameOverride: '{{ $.Release.Name }}-node-relay-edge-macos'\n      hpa:\n        browserName: \"MicrosoftEdge\"\n        sessionBrowserName: \"msedge\"\n        platformName: 'macOS'\n    - nameOverride: '{{ $.Release.Name }}-node-relay-edge-windows'\n      hpa:\n        browserName: \"MicrosoftEdge\"\n        sessionBrowserName: \"msedge\"\n        platformName: 'Windows 11'\n    - nameOverride: '{{ $.Release.Name }}-node-relay-safari-macos'\n      hpa:\n        browserName: 'safari'\n        platformName: 'macOS'\n\nrelayNode:\n  enabled: true\n#  relayUrl: \"https://ondemand.$SAUCE_REGION.saucelabs.com:443/wd/hub\"\n  videoRecorder:\n    enabled: false\n  extraEnvironmentVariables:\n#    - name: SAUCE_REGION\n#      value: \"<your_SAUCE_REGION>\"\n# Or can give relay url directly to environment variable SE_NODE_RELAY_URL. Value can be referring to value of existing env vars.\n#    - name: SE_NODE_RELAY_URL\n#      value: \"https://ondemand.$SAUCE_REGION.saucelabs.com:443/wd/hub\"\n  extraEnvFrom:\n#    - secretRef:\n#        name: your-secret-with-all-env-vars\n"
  },
  {
    "path": "charts/selenium-grid/multiple-nodes-platform-version.yaml",
    "content": "# Specify both platformName: 'Linux' and browserVersion in scaler metadata if the Grid deployment with\n# multiple Nodes autoscaling require different trigger metadata and non-autoscaling Nodes in different stereotypes\n#\n# For example: below incoming requests will be scaled by one scaler which is matched.\n# options = ChromeOptions()\n# options.set_capability('platformName', 'Linux')\n# options.set_capability('browserVersion', '131.0') # Unset this capability for using latest version\n# driver = webdriver.Remote(options=options, command_executor=SELENIUM_GRID_URL)\ncrossBrowsers:\n  chromeNode:\n    # Keep the first iteration with latest version of Chrome\n    - nameOverride: '{{ $.Release.Name }}-node-chrome-latest'\n      hpa:\n        platformName: 'Linux'\n        browserVersion: ''\n    - nameOverride: '{{ $.Release.Name }}-node-chrome-144'\n      imageTag: '144.0-20260222'\n      hpa:\n        platformName: 'Linux'\n        browserVersion: '144.0'\n    - nameOverride: '{{ $.Release.Name }}-node-chrome-143'\n      imageTag: '143.0-20260222'\n      hpa:\n        platformName: 'Linux'\n        browserVersion: '143.0'\n    - nameOverride: '{{ $.Release.Name }}-node-chrome-142'\n      imageTag: '142.0-20260222'\n      hpa:\n        platformName: 'Linux'\n        browserVersion: '142.0'\n    - nameOverride: '{{ $.Release.Name }}-node-chrome-141'\n      imageTag: '141.0-20260222'\n      hpa:\n        platformName: 'Linux'\n        browserVersion: '141.0'\n    - nameOverride: '{{ $.Release.Name }}-node-chrome-140'\n      imageTag: '140.0-20260222'\n      hpa:\n        platformName: 'Linux'\n        browserVersion: '140.0'\n    - nameOverride: '{{ $.Release.Name }}-node-chrome-139'\n      imageTag: '139.0-20260222'\n      hpa:\n        platformName: 'Linux'\n        browserVersion: '139.0'\n    - nameOverride: '{{ $.Release.Name }}-node-chrome-138'\n      imageTag: '138.0-20260222'\n      hpa:\n        platformName: 'Linux'\n        browserVersion: '138.0'\n    - nameOverride: '{{ $.Release.Name }}-node-chrome-137'\n      imageTag: '137.0-20260222'\n      hpa:\n        platformName: 'Linux'\n        browserVersion: '137.0'\n    - nameOverride: '{{ $.Release.Name }}-node-chrome-136'\n      imageTag: '136.0-20260222'\n      hpa:\n        platformName: 'Linux'\n        browserVersion: '136.0'\n    - nameOverride: '{{ $.Release.Name }}-node-chrome-135'\n      imageTag: '135.0-20260222'\n      hpa:\n        platformName: 'Linux'\n        browserVersion: '135.0'\n    - nameOverride: '{{ $.Release.Name }}-node-chrome-134'\n      imageTag: '134.0-20260222'\n      hpa:\n        platformName: 'Linux'\n        browserVersion: '134.0'\n    - nameOverride: '{{ $.Release.Name }}-node-chrome-133'\n      imageTag: '133.0-20260222'\n      hpa:\n        platformName: 'Linux'\n        browserVersion: '133.0'\n    - nameOverride: '{{ $.Release.Name }}-node-chrome-132'\n      imageTag: '132.0-20260222'\n      hpa:\n        platformName: 'Linux'\n        browserVersion: '132.0'\n    - nameOverride: '{{ $.Release.Name }}-node-chrome-131'\n      imageTag: '131.0-20260222'\n      hpa:\n        platformName: 'Linux'\n        browserVersion: '131.0'\n    - nameOverride: '{{ $.Release.Name }}-node-chrome-130'\n      imageTag: '130.0-20260222'\n      hpa:\n        platformName: 'Linux'\n        browserVersion: '130.0'\n    - nameOverride: '{{ $.Release.Name }}-node-chrome-129'\n      imageTag: '129.0-20260222'\n      hpa:\n        platformName: 'Linux'\n        browserVersion: '129.0'\n    - nameOverride: '{{ $.Release.Name }}-node-chrome-128'\n      imageTag: '128.0-20260222'\n      hpa:\n        platformName: 'Linux'\n        browserVersion: '128.0'\n    - nameOverride: '{{ $.Release.Name }}-node-chrome-127'\n      imageTag: '127.0-20260222'\n      hpa:\n        platformName: 'Linux'\n        browserVersion: '127.0'\n    - nameOverride: '{{ $.Release.Name }}-node-chrome-126'\n      imageTag: '126.0-20260222'\n      hpa:\n        platformName: 'Linux'\n        browserVersion: '126.0'\n    - nameOverride: '{{ $.Release.Name }}-node-chrome-125'\n      imageTag: '125.0-20260222'\n      hpa:\n        platformName: 'Linux'\n        browserVersion: '125.0'\n    - nameOverride: '{{ $.Release.Name }}-node-chrome-124'\n      imageTag: '124.0-20260222'\n      hpa:\n        platformName: 'Linux'\n        browserVersion: '124.0'\n    - nameOverride: '{{ $.Release.Name }}-node-chrome-123'\n      imageTag: '123.0-20260222'\n      hpa:\n        platformName: 'Linux'\n        browserVersion: '123.0'\n    - nameOverride: '{{ $.Release.Name }}-node-chrome-122'\n      imageTag: '122.0-20260222'\n      hpa:\n        platformName: 'Linux'\n        browserVersion: '122.0'\n    - nameOverride: '{{ $.Release.Name }}-node-chrome-121'\n      imageTag: '121.0-20260222'\n      hpa:\n        platformName: 'Linux'\n        browserVersion: '121.0'\n    - nameOverride: '{{ $.Release.Name }}-node-chrome-120'\n      imageTag: '120.0-20260222'\n      hpa:\n        platformName: 'Linux'\n        browserVersion: '120.0'\n    - nameOverride: '{{ $.Release.Name }}-node-chrome-119'\n      imageTag: '119.0-20260222'\n      hpa:\n        platformName: 'Linux'\n        browserVersion: '119.0'\n    - nameOverride: '{{ $.Release.Name }}-node-chrome-118'\n      imageTag: '118.0-20260222'\n      hpa:\n        platformName: 'Linux'\n        browserVersion: '118.0'\n    - nameOverride: '{{ $.Release.Name }}-node-chrome-117'\n      imageTag: '117.0-20260222'\n      hpa:\n        platformName: 'Linux'\n        browserVersion: '117.0'\n    - nameOverride: '{{ $.Release.Name }}-node-chrome-116'\n      imageTag: '116.0-20260222'\n      hpa:\n        platformName: 'Linux'\n        browserVersion: '116.0'\n    - nameOverride: '{{ $.Release.Name }}-node-chrome-115'\n      imageTag: '115.0-20260222'\n      hpa:\n        platformName: 'Linux'\n        browserVersion: '115.0'\n    - nameOverride: '{{ $.Release.Name }}-node-chrome-114'\n      imageTag: '114.0-20260222'\n      hpa:\n        platformName: 'Linux'\n        browserVersion: '114.0'\n    - nameOverride: '{{ $.Release.Name }}-node-chrome-113'\n      imageTag: '113.0-20260222'\n      hpa:\n        platformName: 'Linux'\n        browserVersion: '113.0'\n    - nameOverride: '{{ $.Release.Name }}-node-chrome-112'\n      imageTag: '112.0-20260222'\n      hpa:\n        platformName: 'Linux'\n        browserVersion: '112.0'\n    - nameOverride: '{{ $.Release.Name }}-node-chrome-111'\n      imageTag: '111.0-20260222'\n      hpa:\n        platformName: 'Linux'\n        browserVersion: '111.0'\n    - nameOverride: '{{ $.Release.Name }}-node-chrome-110'\n      imageTag: '110.0-20260222'\n      hpa:\n        platformName: 'Linux'\n        browserVersion: '110.0'\n    - nameOverride: '{{ $.Release.Name }}-node-chrome-109'\n      imageTag: '109.0-20260222'\n      hpa:\n        platformName: 'Linux'\n        browserVersion: '109.0'\n    - nameOverride: '{{ $.Release.Name }}-node-chrome-108'\n      imageTag: '108.0-20260222'\n      hpa:\n        platformName: 'Linux'\n        browserVersion: '108.0'\n    - nameOverride: '{{ $.Release.Name }}-node-chrome-107'\n      imageTag: '107.0-20260222'\n      hpa:\n        platformName: 'Linux'\n        browserVersion: '107.0'\n    - nameOverride: '{{ $.Release.Name }}-node-chrome-106'\n      imageTag: '106.0-20260222'\n      hpa:\n        platformName: 'Linux'\n        browserVersion: '106.0'\n    - nameOverride: '{{ $.Release.Name }}-node-chrome-105'\n      imageTag: '105.0-20260222'\n      hpa:\n        platformName: 'Linux'\n        browserVersion: '105.0'\n    - nameOverride: '{{ $.Release.Name }}-node-chrome-104'\n      imageTag: '104.0-20260222'\n      hpa:\n        platformName: 'Linux'\n        browserVersion: '104.0'\n    - nameOverride: '{{ $.Release.Name }}-node-chrome-103'\n      imageTag: '103.0-20260222'\n      hpa:\n        platformName: 'Linux'\n        browserVersion: '103.0'\n    - nameOverride: '{{ $.Release.Name }}-node-chrome-102'\n      imageTag: '102.0-20260222'\n      hpa:\n        platformName: 'Linux'\n        browserVersion: '102.0'\n    - nameOverride: '{{ $.Release.Name }}-node-chrome-101'\n      imageTag: '101.0-20260222'\n      hpa:\n        platformName: 'Linux'\n        browserVersion: '101.0'\n    - nameOverride: '{{ $.Release.Name }}-node-chrome-100'\n      imageTag: '100.0-20260222'\n      hpa:\n        platformName: 'Linux'\n        browserVersion: '100.0'\n    - nameOverride: '{{ $.Release.Name }}-node-chrome-99'\n      imageTag: '99.0-20260222'\n      hpa:\n        platformName: 'Linux'\n        browserVersion: '99.0'\n    - nameOverride: '{{ $.Release.Name }}-node-chrome-98'\n      imageTag: '98.0-20260222'\n      hpa:\n        platformName: 'Linux'\n        browserVersion: '98.0'\n    - nameOverride: '{{ $.Release.Name }}-node-chrome-97'\n      imageTag: '97.0-20260222'\n      hpa:\n        platformName: 'Linux'\n        browserVersion: '97.0'\n  firefoxNode:\n    # Keep the first iteration with latest version of Firefox\n    - nameOverride: '{{ $.Release.Name }}-node-firefox-latest'\n      hpa:\n        platformName: 'Linux'\n        browserVersion: ''\n    - nameOverride: '{{ $.Release.Name }}-node-firefox-147'\n      imageTag: '147.0-20260222'\n      hpa:\n        platformName: 'Linux'\n        browserVersion: '147.0'\n    - nameOverride: '{{ $.Release.Name }}-node-firefox-146'\n      imageTag: '146.0-20260222'\n      hpa:\n        platformName: 'Linux'\n        browserVersion: '146.0'\n    - nameOverride: '{{ $.Release.Name }}-node-firefox-145'\n      imageTag: '145.0-20260222'\n      hpa:\n        platformName: 'Linux'\n        browserVersion: '145.0'\n    - nameOverride: '{{ $.Release.Name }}-node-firefox-144'\n      imageTag: '144.0-20260222'\n      hpa:\n        platformName: 'Linux'\n        browserVersion: '144.0'\n    - nameOverride: '{{ $.Release.Name }}-node-firefox-143'\n      imageTag: '143.0-20260222'\n      hpa:\n        platformName: 'Linux'\n        browserVersion: '143.0'\n    - nameOverride: '{{ $.Release.Name }}-node-firefox-142'\n      imageTag: '142.0-20260222'\n      hpa:\n        platformName: 'Linux'\n        browserVersion: '142.0'\n    - nameOverride: '{{ $.Release.Name }}-node-firefox-141'\n      imageTag: '141.0-20260222'\n      hpa:\n        platformName: 'Linux'\n        browserVersion: '141.0'\n    - nameOverride: '{{ $.Release.Name }}-node-firefox-140'\n      imageTag: '140.0-20260222'\n      hpa:\n        platformName: 'Linux'\n        browserVersion: '140.0'\n    - nameOverride: '{{ $.Release.Name }}-node-firefox-139'\n      imageTag: '139.0-20260222'\n      hpa:\n        platformName: 'Linux'\n        browserVersion: '139.0'\n    - nameOverride: '{{ $.Release.Name }}-node-firefox-138'\n      imageTag: '138.0-20260222'\n      hpa:\n        platformName: 'Linux'\n        browserVersion: '138.0'\n    - nameOverride: '{{ $.Release.Name }}-node-firefox-137'\n      imageTag: '137.0-20260222'\n      hpa:\n        platformName: 'Linux'\n        browserVersion: '137.0'\n    - nameOverride: '{{ $.Release.Name }}-node-firefox-136'\n      imageTag: '136.0-20260222'\n      hpa:\n        platformName: 'Linux'\n        browserVersion: '136.0'\n    - nameOverride: '{{ $.Release.Name }}-node-firefox-135'\n      imageTag: '135.0-20260222'\n      hpa:\n        platformName: 'Linux'\n        browserVersion: '135.0'\n    - nameOverride: '{{ $.Release.Name }}-node-firefox-134'\n      imageTag: '134.0-20260222'\n      hpa:\n        platformName: 'Linux'\n        browserVersion: '134.0'\n    - nameOverride: '{{ $.Release.Name }}-node-firefox-133'\n      imageTag: '133.0-20260222'\n      hpa:\n        platformName: 'Linux'\n        browserVersion: '133.0'\n    - nameOverride: '{{ $.Release.Name }}-node-firefox-132'\n      imageTag: '132.0-20260222'\n      hpa:\n        platformName: 'Linux'\n        browserVersion: '132.0'\n    - nameOverride: '{{ $.Release.Name }}-node-firefox-131'\n      imageTag: '131.0-20260222'\n      hpa:\n        platformName: 'Linux'\n        browserVersion: '131.0'\n    - nameOverride: '{{ $.Release.Name }}-node-firefox-130'\n      imageTag: '130.0-20260222'\n      hpa:\n        platformName: 'Linux'\n        browserVersion: '130.0'\n    - nameOverride: '{{ $.Release.Name }}-node-firefox-129'\n      imageTag: '129.0-20260222'\n      hpa:\n        platformName: 'Linux'\n        browserVersion: '129.0'\n    - nameOverride: '{{ $.Release.Name }}-node-firefox-128'\n      imageTag: '128.0-20260222'\n      hpa:\n        platformName: 'Linux'\n        browserVersion: '128.0'\n    - nameOverride: '{{ $.Release.Name }}-node-firefox-127'\n      imageTag: '127.0-20260222'\n      hpa:\n        platformName: 'Linux'\n        browserVersion: '127.0'\n    - nameOverride: '{{ $.Release.Name }}-node-firefox-126'\n      imageTag: '126.0-20260222'\n      hpa:\n        platformName: 'Linux'\n        browserVersion: '126.0'\n    - nameOverride: '{{ $.Release.Name }}-node-firefox-125'\n      imageTag: '125.0-20260222'\n      hpa:\n        platformName: 'Linux'\n        browserVersion: '125.0'\n    - nameOverride: '{{ $.Release.Name }}-node-firefox-124'\n      imageTag: '124.0-20260222'\n      hpa:\n        platformName: 'Linux'\n        browserVersion: '124.0'\n    - nameOverride: '{{ $.Release.Name }}-node-firefox-123'\n      imageTag: '123.0-20260222'\n      hpa:\n        platformName: 'Linux'\n        browserVersion: '123.0'\n    - nameOverride: '{{ $.Release.Name }}-node-firefox-122'\n      imageTag: '122.0-20260222'\n      hpa:\n        platformName: 'Linux'\n        browserVersion: '122.0'\n    - nameOverride: '{{ $.Release.Name }}-node-firefox-121'\n      imageTag: '121.0-20260222'\n      hpa:\n        platformName: 'Linux'\n        browserVersion: '121.0'\n    - nameOverride: '{{ $.Release.Name }}-node-firefox-120'\n      imageTag: '120.0-20260222'\n      hpa:\n        platformName: 'Linux'\n        browserVersion: '120.0'\n    - nameOverride: '{{ $.Release.Name }}-node-firefox-119'\n      imageTag: '119.0-20260222'\n      hpa:\n        platformName: 'Linux'\n        browserVersion: '119.0'\n    - nameOverride: '{{ $.Release.Name }}-node-firefox-118'\n      imageTag: '118.0-20260222'\n      hpa:\n        platformName: 'Linux'\n        browserVersion: '118.0'\n    - nameOverride: '{{ $.Release.Name }}-node-firefox-117'\n      imageTag: '117.0-20260222'\n      hpa:\n        platformName: 'Linux'\n        browserVersion: '117.0'\n    - nameOverride: '{{ $.Release.Name }}-node-firefox-116'\n      imageTag: '116.0-20260222'\n      hpa:\n        platformName: 'Linux'\n        browserVersion: '116.0'\n    - nameOverride: '{{ $.Release.Name }}-node-firefox-115'\n      imageTag: '115.0-20260222'\n      hpa:\n        platformName: 'Linux'\n        browserVersion: '115.0'\n    - nameOverride: '{{ $.Release.Name }}-node-firefox-114'\n      imageTag: '114.0-20260222'\n      hpa:\n        platformName: 'Linux'\n        browserVersion: '114.0'\n    - nameOverride: '{{ $.Release.Name }}-node-firefox-113'\n      imageTag: '113.0-20260222'\n      hpa:\n        platformName: 'Linux'\n        browserVersion: '113.0'\n    - nameOverride: '{{ $.Release.Name }}-node-firefox-112'\n      imageTag: '112.0-20260222'\n      hpa:\n        platformName: 'Linux'\n        browserVersion: '112.0'\n    - nameOverride: '{{ $.Release.Name }}-node-firefox-111'\n      imageTag: '111.0-20260222'\n      hpa:\n        platformName: 'Linux'\n        browserVersion: '111.0'\n    - nameOverride: '{{ $.Release.Name }}-node-firefox-110'\n      imageTag: '110.0-20260222'\n      hpa:\n        platformName: 'Linux'\n        browserVersion: '110.0'\n    - nameOverride: '{{ $.Release.Name }}-node-firefox-109'\n      imageTag: '109.0-20260222'\n      hpa:\n        platformName: 'Linux'\n        browserVersion: '109.0'\n    - nameOverride: '{{ $.Release.Name }}-node-firefox-108'\n      imageTag: '108.0-20260222'\n      hpa:\n        platformName: 'Linux'\n        browserVersion: '108.0'\n    - nameOverride: '{{ $.Release.Name }}-node-firefox-107'\n      imageTag: '107.0-20260222'\n      hpa:\n        platformName: 'Linux'\n        browserVersion: '107.0'\n    - nameOverride: '{{ $.Release.Name }}-node-firefox-106'\n      imageTag: '106.0-20260222'\n      hpa:\n        platformName: 'Linux'\n        browserVersion: '106.0'\n    - nameOverride: '{{ $.Release.Name }}-node-firefox-105'\n      imageTag: '105.0-20260222'\n      hpa:\n        platformName: 'Linux'\n        browserVersion: '105.0'\n    - nameOverride: '{{ $.Release.Name }}-node-firefox-104'\n      imageTag: '104.0-20260222'\n      hpa:\n        platformName: 'Linux'\n        browserVersion: '104.0'\n    - nameOverride: '{{ $.Release.Name }}-node-firefox-103'\n      imageTag: '103.0-20260222'\n      hpa:\n        platformName: 'Linux'\n        browserVersion: '103.0'\n    - nameOverride: '{{ $.Release.Name }}-node-firefox-102'\n      imageTag: '102.0-20260222'\n      hpa:\n        platformName: 'Linux'\n        browserVersion: '102.0'\n    - nameOverride: '{{ $.Release.Name }}-node-firefox-101'\n      imageTag: '101.0-20260222'\n      hpa:\n        platformName: 'Linux'\n        browserVersion: '101.0'\n    - nameOverride: '{{ $.Release.Name }}-node-firefox-100'\n      imageTag: '100.0-20260222'\n      hpa:\n        platformName: 'Linux'\n        browserVersion: '100.0'\n    - nameOverride: '{{ $.Release.Name }}-node-firefox-99'\n      imageTag: '99.0-20260222'\n      hpa:\n        platformName: 'Linux'\n        browserVersion: '99.0'\n    - nameOverride: '{{ $.Release.Name }}-node-firefox-98'\n      imageTag: '98.0-20260222'\n      hpa:\n        platformName: 'Linux'\n        browserVersion: '98.0'\n  edgeNode:\n    # Keep the first iteration with latest version of Edge\n    - nameOverride: '{{ $.Release.Name }}-node-edge-latest'\n      hpa:\n        platformName: 'Linux'\n        browserVersion: ''\n    - nameOverride: '{{ $.Release.Name }}-node-edge-144'\n      imageTag: '144.0-20260222'\n      hpa:\n        platformName: 'Linux'\n        browserVersion: '144.0'\n    - nameOverride: '{{ $.Release.Name }}-node-edge-143'\n      imageTag: '143.0-20260222'\n      hpa:\n        platformName: 'Linux'\n        browserVersion: '143.0'\n    - nameOverride: '{{ $.Release.Name }}-node-edge-142'\n      imageTag: '142.0-20260222'\n      hpa:\n        platformName: 'Linux'\n        browserVersion: '142.0'\n    - nameOverride: '{{ $.Release.Name }}-node-edge-141'\n      imageTag: '141.0-20260222'\n      hpa:\n        platformName: 'Linux'\n        browserVersion: '141.0'\n    - nameOverride: '{{ $.Release.Name }}-node-edge-140'\n      imageTag: '140.0-20260222'\n      hpa:\n        platformName: 'Linux'\n        browserVersion: '140.0'\n    - nameOverride: '{{ $.Release.Name }}-node-edge-139'\n      imageTag: '139.0-20260222'\n      hpa:\n        platformName: 'Linux'\n        browserVersion: '139.0'\n    - nameOverride: '{{ $.Release.Name }}-node-edge-138'\n      imageTag: '138.0-20260222'\n      hpa:\n        platformName: 'Linux'\n        browserVersion: '138.0'\n    - nameOverride: '{{ $.Release.Name }}-node-edge-137'\n      imageTag: '137.0-20260222'\n      hpa:\n        platformName: 'Linux'\n        browserVersion: '137.0'\n    - nameOverride: '{{ $.Release.Name }}-node-edge-136'\n      imageTag: '136.0-20260222'\n      hpa:\n        platformName: 'Linux'\n        browserVersion: '136.0'\n    - nameOverride: '{{ $.Release.Name }}-node-edge-135'\n      imageTag: '135.0-20260222'\n      hpa:\n        platformName: 'Linux'\n        browserVersion: '135.0'\n    - nameOverride: '{{ $.Release.Name }}-node-edge-134'\n      imageTag: '134.0-20260222'\n      hpa:\n        platformName: 'Linux'\n        browserVersion: '134.0'\n    - nameOverride: '{{ $.Release.Name }}-node-edge-133'\n      imageTag: '133.0-20260222'\n      hpa:\n        platformName: 'Linux'\n        browserVersion: '133.0'\n    - nameOverride: '{{ $.Release.Name }}-node-edge-132'\n      imageTag: '132.0-20260222'\n      hpa:\n        platformName: 'Linux'\n        browserVersion: '132.0'\n    - nameOverride: '{{ $.Release.Name }}-node-edge-131'\n      imageTag: '131.0-20260222'\n      hpa:\n        platformName: 'Linux'\n        browserVersion: '131.0'\n    - nameOverride: '{{ $.Release.Name }}-node-edge-130'\n      imageTag: '130.0-20260222'\n      hpa:\n        platformName: 'Linux'\n        browserVersion: '130.0'\n    - nameOverride: '{{ $.Release.Name }}-node-edge-129'\n      imageTag: '129.0-20260222'\n      hpa:\n        platformName: 'Linux'\n        browserVersion: '129.0'\n    - nameOverride: '{{ $.Release.Name }}-node-edge-128'\n      imageTag: '128.0-20260222'\n      hpa:\n        platformName: 'Linux'\n        browserVersion: '128.0'\n    - nameOverride: '{{ $.Release.Name }}-node-edge-127'\n      imageTag: '127.0-20260222'\n      hpa:\n        platformName: 'Linux'\n        browserVersion: '127.0'\n    - nameOverride: '{{ $.Release.Name }}-node-edge-126'\n      imageTag: '126.0-20260222'\n      hpa:\n        platformName: 'Linux'\n        browserVersion: '126.0'\n    - nameOverride: '{{ $.Release.Name }}-node-edge-125'\n      imageTag: '125.0-20260222'\n      hpa:\n        platformName: 'Linux'\n        browserVersion: '125.0'\n    - nameOverride: '{{ $.Release.Name }}-node-edge-124'\n      imageTag: '124.0-20260222'\n      hpa:\n        platformName: 'Linux'\n        browserVersion: '124.0'\n    - nameOverride: '{{ $.Release.Name }}-node-edge-123'\n      imageTag: '123.0-20260222'\n      hpa:\n        platformName: 'Linux'\n        browserVersion: '123.0'\n    - nameOverride: '{{ $.Release.Name }}-node-edge-122'\n      imageTag: '122.0-20260222'\n      hpa:\n        platformName: 'Linux'\n        browserVersion: '122.0'\n    - nameOverride: '{{ $.Release.Name }}-node-edge-121'\n      imageTag: '121.0-20260222'\n      hpa:\n        platformName: 'Linux'\n        browserVersion: '121.0'\n    - nameOverride: '{{ $.Release.Name }}-node-edge-120'\n      imageTag: '120.0-20260222'\n      hpa:\n        platformName: 'Linux'\n        browserVersion: '120.0'\n    - nameOverride: '{{ $.Release.Name }}-node-edge-119'\n      imageTag: '119.0-20260222'\n      hpa:\n        platformName: 'Linux'\n        browserVersion: '119.0'\n    - nameOverride: '{{ $.Release.Name }}-node-edge-118'\n      imageTag: '118.0-20260222'\n      hpa:\n        platformName: 'Linux'\n        browserVersion: '118.0'\n    - nameOverride: '{{ $.Release.Name }}-node-edge-117'\n      imageTag: '117.0-20260222'\n      hpa:\n        platformName: 'Linux'\n        browserVersion: '117.0'\n    - nameOverride: '{{ $.Release.Name }}-node-edge-116'\n      imageTag: '116.0-20260222'\n      hpa:\n        platformName: 'Linux'\n        browserVersion: '116.0'\n    - nameOverride: '{{ $.Release.Name }}-node-edge-115'\n      imageTag: '115.0-20260222'\n      hpa:\n        platformName: 'Linux'\n        browserVersion: '115.0'\n    - nameOverride: '{{ $.Release.Name }}-node-edge-114'\n      imageTag: '114.0-20260222'\n      hpa:\n        platformName: 'Linux'\n        browserVersion: '114.0'\n"
  },
  {
    "path": "charts/selenium-grid/multiple-nodes-platform.yaml",
    "content": "# In this case, each browser node has 2 scaler triggers, one for any platform and one for specific Linux.\n#\n# For example:\n# Below incoming request will only trigger the scaler platform any.\n# options = ChromeOptions()\n# driver = webdriver.Remote(options=options, command_executor=SELENIUM_GRID_URL)\n#\n# Below incoming request will only trigger the scaler platform Linux.\n# options = ChromeOptions()\n# options.set_capability('platformName', 'Linux')\n# driver = webdriver.Remote(options=options, command_executor=SELENIUM_GRID_URL)\ncrossBrowsers:\n  chromeNode:\n    - nameOverride: '{{ $.Release.Name }}-node-chrome-platform-any'\n      hpa:\n        platformName: ''\n        browserVersion: ''\n    - nameOverride: '{{ $.Release.Name }}-node-chrome-platform-linux'\n      hpa:\n        platformName: 'Linux'\n        browserVersion: ''\n    - nameOverride: '{{ $.Release.Name }}-node-chrome-platform-windows'\n      hpa:\n        platformName: 'Windows 11'\n        browserVersion: ''\n  firefoxNode:\n    - nameOverride: '{{ $.Release.Name }}-node-firefox-platform-any'\n      hpa:\n        platformName: ''\n        browserVersion: ''\n    - nameOverride: '{{ $.Release.Name }}-node-firefox-platform-linux'\n      hpa:\n        platformName: 'Linux'\n        browserVersion: ''\n    - nameOverride: '{{ $.Release.Name }}-node-firefox-platform-windows'\n      hpa:\n        platformName: 'Windows 11'\n        browserVersion: ''\n  edgeNode:\n    - nameOverride: '{{ $.Release.Name }}-node-edge-platform-any'\n      hpa:\n        platformName: ''\n        browserVersion: ''\n    - nameOverride: '{{ $.Release.Name }}-node-edge-platform-linux'\n      hpa:\n        platformName: 'Linux'\n        browserVersion: ''\n    - nameOverride: '{{ $.Release.Name }}-node-edge-platform-windows'\n      hpa:\n        platformName: 'Windows 11'\n        browserVersion: ''\n"
  },
  {
    "path": "charts/selenium-grid/templates/NOTES.txt",
    "content": "Selenium Grid Server deployed successfully.\n\n{{- $svcName := ternary (include \"seleniumGrid.router.fullname\" . ) (include \"seleniumGrid.hub.fullname\" . ) .Values.isolateComponents }}\n{{- $appName := ternary (include \"seleniumGrid.router.fullname\" . ) (include \"seleniumGrid.hub.fullname\" . ) .Values.isolateComponents }}\n{{- $serviceType := ternary .Values.components.router.serviceType .Values.hub.serviceType .Values.isolateComponents }}\n{{- $port := ternary .Values.components.router.port .Values.hub.port .Values.isolateComponents }}\n{{- $localUrl := ternary \"http://localhost:PORT\" \"http://localhost:PORT/wd/hub\" .Values.isolateComponents }}\n\n{{- if eq (include \"seleniumGrid.ingress.enabled\" $) \"true\" }}\n    {{- if .Values.ingress.hostname }}\n1. Ingress is enabled, and it exposes the Grid Hub or Grid Router with the hostname you supplied.\n    To access Selenium from outside of Kubernetes, simply open {{ include \"seleniumGrid.url\" .}}.\n    {{- else if and (empty .Values.ingress.hostname) .Values.global.K8S_PUBLIC_IP }}\n1. Ingress is enabled, but hostname doesn't set, and it exposes the Grid Hub or Grid Router with the K8S_PUBLIC_IP you supplied.\n    To access Selenium from outside of Kubernetes, simply open {{ include \"seleniumGrid.url\" .}}.\n    {{- else }}\n1. Ingress is enabled, but hostname doesn't set. All inbound HTTP traffic will be routed to the Grid by matching any host.\n    Please keep in mind that it is rarely necessary, and in most cases, you shall provide `ingress.hostname` in values.yaml.\n    To access Selenium from outside of Kubernetes:\n        - open the IP of any node with Ingress, or\n        - any hostname pointing to the node with Ingress\n    {{- end}}\n{{- else}}\n    {{- if contains \"NodePort\" $serviceType }}\n      {{- if .Values.global.K8S_PUBLIC_IP }}\n1. Ingress is disabled, and it exposes the Grid Hub or Grid Router with NodePort and the K8S_PUBLIC_IP you supplied\n    To access Selenium from outside of Kubernetes with NodePort and K8S_PUBLIC_IP you supplied, simply open {{ include \"seleniumGrid.url\" .}}.\n      {{- else }}\n1. Ingress is disabled. To access Selenium from outside of Kubernetes, simply run these commands:\n    export NODE_IP=$(kubectl get nodes -n {{ .Release.Namespace }} -o jsonpath=\"{.items[0].status.addresses[0].address}\")\n    echo http://$NODE_IP:{{ include \"seleniumGrid.url.port\" .}}{{ include \"seleniumGrid.url.subPath\" .}}\n      {{- end }}\n    {{- else if contains \"LoadBalancer\" $serviceType }}\n        NOTE: It may take a few minutes for the LoadBalancer IP to be available.\n            You can watch the status of by running 'kubectl get -n {{ .Release.Namespace }} svc -w {{ $svcName }}'\n    export SERVICE_IP=$(kubectl get svc -n {{ .Release.Namespace }} {{ $svcName }} --template \"{{\"{{ range (index .status.loadBalancer.ingress 0) }}{{.}}{{ end }}\"}}\")\n    echo http://$SERVICE_IP:{{ $port }}\n    {{- else if contains \"ClusterIP\" $serviceType }}\n    export POD_NAME=$(kubectl get pods -n {{ .Release.Namespace }} -l \"app.kubernetes.io/name={{ $appName }},app.kubernetes.io/instance={{ .Release.Name }}\" -o jsonpath=\"{.items[0].metadata.name}\")\n    echo \"Point your WebDriver tests to {{ $localUrl | replace \"PORT\" (toString $port) }}\"\n    kubectl -n {{ .Release.Namespace }} port-forward $POD_NAME {{ $port }}:{{ $port }}\n    {{- end }}\n{{- end}}\n\n2. Within Kubernetes cluster, you can use following Service endpoint:\n        http://{{ $svcName }}.{{ .Release.Namespace }}.svc:{{ $port }}\n"
  },
  {
    "path": "charts/selenium-grid/templates/_helpers.tpl",
    "content": "{{/*\nServer secure connection\n*/}}\n{{- define \"seleniumGrid.server.secureConnection\" -}}\n{{- $.Values.tls.enabled | ternary \"true\" \"\" -}}\n{{- end -}}\n\n{{/*\nIngress proxy forward secure connection\n*/}}\n{{- define \"seleniumGrid.ingress.secureConnection\" -}}\n{{- or $.Values.tls.enabled $.Values.tls.ingress.enabled $.Values.tls.ingress.generateTLS (not (empty $.Values.ingress.tls)) | ternary \"true\" \"\" -}}\n{{- end -}}\n\n{{/*\nProtocol of server components\n*/}}\n{{- define \"seleniumGrid.server.protocol\" -}}\n{{- (eq (include \"seleniumGrid.server.secureConnection\" $) \"true\") | ternary \"https\" \"http\" -}}\n{{- end -}}\n\n{{/*\nProbe httpGet schema\n*/}}\n{{- define \"seleniumGrid.probe.httpGet.schema\" -}}\n{{- (eq (include \"seleniumGrid.server.secureConnection\" $) \"true\") | ternary \"HTTPS\" \"HTTP\" -}}\n{{- end -}}\n\n{{/*\nCheck user define custom probe method\n*/}}\n{{- define \"seleniumGrid.probe.fromUserDefine\" -}}\n{{- $values := index . \"values\" -}}\n{{- $root := index . \"root\" -}}\n{{- $overrideProbe := dict -}}\n{{- with $values.exec -}}\n{{- $overrideProbe = dict \"exec\" (tpl (toYaml .) $root | fromYaml) -}}\n{{- end }}\n{{- with $values.httpGet -}}\n{{- $overrideProbe = dict \"httpGet\" (tpl (toYaml .) $root | fromYaml) -}}\n{{- end }}\n{{- with $values.tcpSocket -}}\n{{- $overrideProbe = dict \"tcpSocket\" (tpl (toYaml .) $root | fromYaml) -}}\n{{- end }}\n{{- with $values.grpc -}}\n{{- $overrideProbe = dict \"grpc\" (tpl (toYaml .) $root | fromYaml) -}}\n{{- end -}}\n{{- $overrideProbe | toYaml -}}\n{{- end -}}\n\n{{- define \"seleniumGrid.probe.stdout\" -}}\n{{- $stdout := \"\" -}}\n{{- if .Values.global.seleniumGrid.stdoutProbeLog -}}\n  {{- $stdout = \">> /proc/1/fd/1\" -}}\n{{- end -}}\n{{- $stdout -}}\n{{- end -}}\n\n{{/*\nGet probe settings\n*/}}\n{{- define \"seleniumGrid.probe.settings\" -}}\n{{- $settings := dict -}}\n{{- with .initialDelaySeconds -}}\n  {{- $settings = set $settings \"initialDelaySeconds\" . -}}\n{{- end }}\n{{- with .periodSeconds -}}\n  {{- $settings = set $settings \"periodSeconds\" . -}}\n{{- end }}\n{{- with .timeoutSeconds -}}\n  {{- $settings = set $settings \"timeoutSeconds\" . -}}\n{{- end }}\n{{- with .successThreshold -}}\n  {{- $settings = set $settings \"successThreshold\" . -}}\n{{- end }}\n{{- with .failureThreshold -}}\n  {{- $settings = set $settings \"failureThreshold\" . -}}\n{{- end -}}\n{{- $settings | toYaml -}}\n{{- end -}}\n\n{{/*\nIs registration secret enabled\n*/}}\n{{- define \"seleniumGrid.registrationSecret.enabled\" -}}\n{{- .Values.registrationSecret.enabled | ternary \"true\" \"\" -}}\n{{- end -}}\n\n{{/*\nGet default certificate file name in chart\n*/}}\n{{- define \"seleniumGrid.tls.getDefaultFile\" -}}\n{{- $value := index . 0 -}}\n{{- $global := index . 1 -}}\n{{- $content := $global.Files.Get $value -}}\n{{- if (contains \"base64\" (lower $value)) -}}\n  {{- $content = $content | b64dec -}}\n{{- end -}}\n{{- $content -}}\n{{- end -}}\n\n{{- define \"seleniumGrid.ingress.traefik.annotations.default\" -}}\n{{- with .Values.ingress.traefik }}\n  {{- if .enabled }}\n    {{- if .entryPoints }}\ntraefik.ingress.kubernetes.io/router.entrypoints: {{ .entryPoints | quote }}\n    {{- else }}\n      {{- if eq (include \"seleniumGrid.ingress.secureConnection\" $) \"true\" }}\ntraefik.ingress.kubernetes.io/router.entrypoints: \"websecure\"\n      {{- else }}\ntraefik.ingress.kubernetes.io/router.entrypoints: \"web\"\n      {{- end }}\n    {{- end }}\n    {{- with .middlewares }}\ntraefik.ingress.kubernetes.io/router.middlewares: {{ . | quote }}\n    {{- end }}\n    {{- with .priority }}\ntraefik.ingress.kubernetes.io/router.priority: {{ . | quote }}\n    {{- end }}\n    {{- with .pathMatcher }}\ntraefik.ingress.kubernetes.io/router.pathmatcher: {{ . | quote }}\n    {{- end }}\n    {{- if eq (include \"seleniumGrid.ingress.secureConnection\" $) \"true\" }}\n      {{- with .tls }}\n        {{- if .enabled }}\ntraefik.ingress.kubernetes.io/router.tls: \"true\"\n          {{- with .options }}\ntraefik.ingress.kubernetes.io/router.tls.options: {{ . | quote }}\n          {{- end }}\n          {{- with .certResolver }}\ntraefik.ingress.kubernetes.io/router.tls.certresolver: {{ . | quote }}\n          {{- end }}\n        {{- end }}\n      {{- end }}\n    {{- end }}\n    {{- with .service }}\n      {{- with .sticky }}\n        {{- with .cookie }}\n          {{- if .enabled }}\ntraefik.ingress.kubernetes.io/service.sticky.cookie: \"true\"\n          {{- end }}\n        {{- end }}\n      {{- end }}\n    {{- end }}\n  {{- end }}\n{{- end }}\n{{- end -}}\n\n{{- define \"seleniumGrid.service.traefik.annotations.default\" -}}\n{{- if and (eq (include \"seleniumGrid.ingress.enabled\" $) \"true\") (eq .Values.ingress.className \"traefik\") .Values.ingress.traefik.enabled }}\n  {{- if and (eq (include \"seleniumGrid.server.secureConnection\" $) \"true\") .Values.ingress.traefik.service.useHttpsScheme }}\ntraefik.ingress.kubernetes.io/service.serversscheme: \"https\"\n  {{- end }}\n  {{- with .Values.ingress.traefik.serversTransport }}\n    {{- if .enabled }}\ntraefik.ingress.kubernetes.io/service.serverstransport: {{ include \"seleniumGrid.ingress.traefik.serversTransport.ref\" $ | quote }}\n    {{- else if .reference }}\ntraefik.ingress.kubernetes.io/service.serverstransport: {{ tpl .reference $ | quote }}\n    {{- end }}\n  {{- end }}\n{{- end }}\n{{- end -}}\n\n{{/*\nIs autoscaling using KEDA enabled\n*/}}\n{{- define \"seleniumGrid.useKEDA\" -}}\n{{- or .Values.autoscaling.enabled .Values.autoscaling.enableWithExistingKEDA | ternary \"true\" \"\" -}}\n{{- end -}}\n\n{{/*\nIs ingress enabled\n*/}}\n{{- define \"seleniumGrid.ingress.enabled\" -}}\n{{- or .Values.ingress.enabled .Values.ingress.enableWithController | ternary \"true\" \"\" -}}\n{{- end -}}\n\n{{/*\nIs monitoring enabled\n*/}}\n{{- define \"seleniumGrid.monitoring.enabled\" -}}\n{{- or .Values.monitoring.enabled .Values.monitoring.enabledWithExistingAgent | ternary \"true\" \"\" -}}\n{{- end -}}\n\n{{/*\nIs tracing enabled\n*/}}\n{{- define \"seleniumGrid.enableTracing\" -}}\n{{- or .Values.tracing.enabled .Values.tracing.enabledWithExistingEndpoint | ternary \"true\" \"\" -}}\n{{- end -}}\n\n{{/*\nConfigure fixed-sized thread pool for the Distributor to create new sessions\nbased on sum of maxReplicaCount of all enabled Nodes in autoscaling\n*/}}\n{{- define \"seleniumGrid.autoscaling.distributor.threadPoolSize\" -}}\n{{- $threadPoolSize := 1 -}}\n{{- if .Values.chromeNode.enabled -}}\n{{- $maxReplicaCount := default .Values.autoscaling.scaledOptions.maxReplicaCount (.Values.chromeNode.scaledOptions).maxReplicaCount -}}\n{{- $threadPoolSize = add $threadPoolSize $maxReplicaCount -}}\n{{- end -}}\n{{- if $.Values.firefoxNode.enabled -}}\n{{- $maxReplicaCount := default .Values.autoscaling.scaledOptions.maxReplicaCount (.Values.firefoxNode.scaledOptions).maxReplicaCount -}}\n{{- $threadPoolSize = add $threadPoolSize $maxReplicaCount -}}\n{{- end -}}\n{{- if $.Values.edgeNode.enabled -}}\n{{- $maxReplicaCount := default .Values.autoscaling.scaledOptions.maxReplicaCount (.Values.edgeNode.scaledOptions).maxReplicaCount -}}\n{{- $threadPoolSize = add $threadPoolSize $maxReplicaCount -}}\n{{- end -}}\n{{- $threadPoolSize -}}\n{{- end -}}\n\n{{- define \"seleniumGrid.autoscaling.distributor.slotSelector\" -}}\n{{- $slotSelector := \"\" -}}\n{{- if eq (include \"seleniumGrid.useKEDA\" $) \"true\" -}}\n{{- $slotSelector = $.Values.autoscaling.slotSelectorStrategy -}}\n{{- else -}}\n{{- $slotSelector = $.Values.isolateComponents | ternary $.Values.components.distributor.slotSelectorStrategy $.Values.hub.slotSelectorStrategy -}}\n{{- end -}}\n{{- $slotSelector -}}\n{{- end -}}\n\n{{/*\nApply scaledOverProvisionRatio to scalingModifiers. Link with autoscaling template\n*/}}\n{{- define \"seleniumGrid.autoscaling.scaledOverProvisionRatio\" -}}\n{{- $scalingModifier := (dict) -}}\n{{- $value := default $.Values.autoscaling.scaledOverProvisionRatio .node.scaledOverProvisionRatio | float64 -}}\n{{- $triggerName := $.Values.autoscaling.defaultTriggerName -}}\n{{- if gt $value (1.0 | float64) -}}\n  {{- $scalingModifier = mergeOverwrite ($scalingModifier) (dict \"advanced\" (dict \"scalingModifiers\" (dict \"formula\" (printf \"float(%s * %.2f)\" $triggerName $value) \"target\" \"1\"))) -}}\n{{- end -}}\n{{- toYaml $scalingModifier -}}\n{{- end -}}\n\n{{/*\nCommon autoscaling spec template\n*/}}\n{{- define \"seleniumGrid.autoscalingTemplate\" -}}\n{{- $spec := (dict) -}}\n{{- $nodeMaxSessions := default $.Values.global.seleniumGrid.nodeMaxSessions .node.nodeMaxSessions | int64 -}}\n{{- $nodeEnableManagedDownloads := default $.Values.global.seleniumGrid.nodeEnableManagedDownloads .node.nodeEnableManagedDownloads -}}\n{{- $nodeCustomCapabilities := default $.Values.global.seleniumGrid.nodeCustomCapabilities .node.nodeCustomCapabilities -}}\n{{/* Merge with precedence from right to left */}}\n{{- with $.Values.autoscaling.scaledOptions -}}\n  {{- $spec = mergeOverwrite ($spec) . -}}\n{{- end -}}\n{{- with .node.scaledOptions -}}\n  {{- $spec = mergeOverwrite ($spec) . -}}\n{{- end -}}\n{{- if eq $.Values.autoscaling.scalingType \"deployment\" -}}\n  {{- $advanced := (dict \"scaleTargetRef\" (dict \"name\" .name) \"advanced\" (dict \"horizontalPodAutoscalerConfig\" (dict \"name\" .name))) -}}\n  {{- $advanced = mergeOverwrite $advanced (include \"seleniumGrid.autoscaling.scaledOverProvisionRatio\" . | fromYaml) }}\n  {{- $spec = mergeOverwrite ($spec) $advanced -}}\n  {{- with $.Values.autoscaling.scaledObjectOptions -}}\n    {{- $spec = mergeOverwrite ($spec) . -}}\n  {{- end -}}\n  {{- with .node.scaledObjectOptions -}}\n    {{- $spec = mergeOverwrite ($spec) . -}}\n  {{- end -}}\n{{- else if eq $.Values.autoscaling.scalingType \"job\" -}}\n  {{- $spec = mergeOverwrite ($spec) (dict \"jobTargetRef\" .podTemplate) -}}\n  {{- with $.Values.autoscaling.scaledJobOptions -}}\n    {{- $spec = mergeOverwrite ($spec) . -}}\n  {{- end -}}\n  {{- with .node.scaledJobOptions -}}\n    {{- $spec = mergeOverwrite ($spec) . -}}\n  {{- end -}}\n{{- end -}}\n{{- if and $spec (not (empty $spec)) -}}\n  {{- $cleanSpec := dict -}}\n  {{- range $key, $value := $spec -}}\n    {{- if or (kindIs \"float64\" $value) (kindIs \"int64\" $value) (kindIs \"bool\" $value) (not (empty $value)) -}}\n      {{- $cleanSpec = set $cleanSpec $key $value -}}\n    {{- end -}}\n  {{- end -}}\n  {{- if not (empty $cleanSpec) -}}\n    {{ tpl (toYaml $cleanSpec) $ | nindent 0 }}\n  {{- end -}}\n{{- end -}}\n{{- if not $.Values.autoscaling.scaledOptions.triggers }}\ntriggers:\n  - type: {{ $.Values.autoscaling.defaultTriggerType }}\n    name: {{ $.Values.autoscaling.defaultTriggerName }}\n    metadata:\n    {{- with .node.hpa }}\n      {{- range $key, $value := . }}\n      {{- if not (empty $value) }}\n      {{ $key }}: {{ tpl ($value | toString) $ | quote }}\n      {{- end }}\n      {{- end }}\n      {{- if not .nodeMaxSessions }}\n      nodeMaxSessions: {{ $nodeMaxSessions | quote }}\n      {{- end }}\n      {{- if not .enableManagedDownloads }}\n      enableManagedDownloads: {{ $nodeEnableManagedDownloads | quote }}\n      {{- end }}\n      {{- if and (not .capabilities) (not (empty $nodeCustomCapabilities)) }}\n      capabilities: {{ $nodeCustomCapabilities | quote }}\n      {{- end }}\n    {{- end }}\n    authenticationRef:\n      name: {{ template \"seleniumGrid.autoscaling.authenticationRef.fullname\" $ }}\n    useCachedMetrics: {{ $.Values.autoscaling.useCachedMetrics }}\n  {{- if $.Values.autoscaling.triggerName }}\n    name: {{ $.Values.autoscaling.triggerName | quote }}\n  {{- end }}\n  {{- if and (eq $.Values.autoscaling.scalingType \"deployment\") $.Values.autoscaling.metricType }}\n    metricType: {{ $.Values.autoscaling.metricType }}\n  {{- end }}\n{{- end }}\n{{- end -}}\n\n{{/*\nComponent update strategy template\n*/}}\n{{- define \"seleniumGrid.updateStrategy\" -}}\n{{- $value := index . 0 -}}\n{{- $global := index . 1 -}}\n{{- $spec := toYaml (dict) -}}\n{{- if not (empty $global.updateStrategy) -}}\n{{- $spec = merge $global.updateStrategy ($spec | fromYaml) | toYaml -}}\n{{- end -}}\n{{- if not (empty $value.updateStrategy) -}}\n{{- $spec = merge $value.updateStrategy ($spec | fromYaml) | toYaml -}}\n{{- end -}}\n{{/* If final result is Recreate, update a clean object */}}\n{{- if eq ($spec | fromYaml).type \"Recreate\" }}\n{{- $spec = toYaml (dict \"type\" \"Recreate\") -}}\n{{- end -}}\n{{ $spec | nindent 4 }}\n{{- end -}}\n\n{{/*\nCommon pod template\n*/}}\n{{- define \"seleniumGrid.podTemplate\" -}}\n{{- $nodeImageRegistry := default $.Values.global.seleniumGrid.imageRegistry .node.imageRegistry -}}\n{{- $nodeImageTag := default $.Values.global.seleniumGrid.nodesImageTag .node.imageTag -}}\n{{- $videoImageRegistry := default $.Values.global.seleniumGrid.imageRegistry .recorder.imageRegistry -}}\n{{- $videoImageTag := default $.Values.global.seleniumGrid.videoImageTag .recorder.imageTag -}}\n{{- $nodeMaxSessions := default $.Values.global.seleniumGrid.nodeMaxSessions .node.nodeMaxSessions | int64 -}}\n{{- $nodeDrainAfterSessionCount := default $.Values.global.seleniumGrid.nodeDrainAfterSessionCount .node.nodeDrainAfterSessionCount | int64 -}}\n{{- $nodeEnableManagedDownloads := default $.Values.global.seleniumGrid.nodeEnableManagedDownloads .node.nodeEnableManagedDownloads -}}\n{{- $nodeCustomCapabilities := default $.Values.global.seleniumGrid.nodeCustomCapabilities .node.nodeCustomCapabilities -}}\n{{- $nodeRegisterPeriod := default $.Values.global.seleniumGrid.nodeRegisterPeriod .node.nodeRegisterPeriod | int64 -}}\n{{- $nodeRegisterCycle := default $.Values.global.seleniumGrid.nodeRegisterCycle .node.nodeRegisterCycle | int64 -}}\ntemplate:\n  metadata:\n    labels:\n      app: {{ .name }}\n      app.kubernetes.io/name: {{ .name }}\n      {{- include \"seleniumGrid.commonLabels\" $ | nindent 6 }}\n      {{- with .node.labels }}\n        {{- toYaml . | nindent 6 }}\n      {{- end }}\n    annotations:\n      checksum/event-bus-configmap: {{ include (print $.Template.BasePath \"/event-bus-configmap.yaml\") . | sha256sum }}\n      checksum/node-configmap: {{ include (print $.Template.BasePath \"/node-configmap.yaml\") . | sha256sum }}\n      checksum/logging-configmap: {{ include (print $.Template.BasePath \"/logging-configmap.yaml\") . | sha256sum }}\n      checksum/server-configmap: {{ include (print $.Template.BasePath \"/server-configmap.yaml\") . | sha256sum }}\n      {{- with .node.annotations }}\n        {{- toYaml . | nindent 6 }}\n      {{- end }}\n  spec:\n    shareProcessNamespace: {{ $.Values.global.seleniumGrid.stdoutProbeLog | ternary \"false\" .node.shareProcessNamespace }}\n    serviceAccountName: {{ template \"seleniumGrid.serviceAccount.fullname\" . }}\n    serviceAccount: {{ template  \"seleniumGrid.serviceAccount.fullname\" . }}\n    restartPolicy: {{ template \"seleniumGrid.node.restartPolicy\" . }}\n  {{- with .node.hostAliases }}\n    hostAliases: {{ toYaml . | nindent 6 }}\n  {{- end }}\n    initContainers:\n      - name: \"pre-puller-{{ .name }}\"\n        image: {{ printf \"%s/%s:%s\" $nodeImageRegistry .node.imageName $nodeImageTag }}\n        command: [\"bash\", \"-c\", \"'true'\"]\n      {{- with .node.resources }}\n        resources: {{- toYaml . | nindent 10 }}\n      {{- end }}\n      {{- with .node.securityContext }}\n        securityContext: {{- toYaml . | nindent 10 }}\n      {{- end }}\n    {{- if (and .recorder.enabled .recorder.sidecarContainer) }}\n      - name: \"pre-puller-{{ .recorder.name }}\"\n        image: {{ printf \"%s/%s:%s\" $videoImageRegistry .recorder.imageName $videoImageTag }}\n        command: [\"bash\", \"-c\", \"'true'\"]\n      {{- with .recorder.resources }}\n        resources: {{- toYaml . | nindent 10 }}\n      {{- end }}\n      {{- with .recorder.securityContext }}\n        securityContext: {{- toYaml . | nindent 10 }}\n      {{- end }}\n    {{- end }}\n    {{- with .node.initContainers }}\n      {{- toYaml . | nindent 6 }}\n    {{- end }}\n    containers:\n      - name: {{ .name }}\n        image: {{ printf \"%s/%s:%s\" $nodeImageRegistry .node.imageName $nodeImageTag }}\n        imagePullPolicy: {{ .node.imagePullPolicy }}\n        env:\n          - name: KUBERNETES_NODE_HOST_IP\n            valueFrom:\n              fieldRef:\n                fieldPath: status.hostIP\n          - name: SE_NODE_MAX_SESSIONS\n            value: {{ $nodeMaxSessions | quote }}\n        {{- if gt $nodeMaxSessions 1 }}\n          - name: SE_NODE_OVERRIDE_MAX_SESSIONS\n            value: \"true\"\n        {{- end }}\n          - name: SE_NODE_ENABLE_MANAGED_DOWNLOADS\n            value: {{ $nodeEnableManagedDownloads | quote }}\n          - name: SE_NODE_STEREOTYPE_EXTRA\n            value: {{ $nodeCustomCapabilities | quote }}\n          - name: SE_DRAIN_AFTER_SESSION_COUNT\n            value: {{ and (eq (include \"seleniumGrid.useKEDA\" $) \"true\") (eq .Values.autoscaling.scalingType \"job\") | ternary (max $nodeMaxSessions $nodeDrainAfterSessionCount) $nodeDrainAfterSessionCount | quote }}\n        {{- with .node.relayUrl }}\n          - name: SE_NODE_RELAY_URL\n            value: {{ . | quote }}\n        {{- end }}\n        {{- if and (eq (include \"seleniumGrid.useKEDA\" $) \"true\") }}\n          - name: SE_NODE_BROWSER_NAME\n            value: {{ if hasKey .node.hpa \"browserName\" }}{{ .node.hpa.browserName | quote }}{{ else }}\"\"{{ end }}\n        {{- end }}\n        {{- if and (eq (include \"seleniumGrid.useKEDA\" $) \"true\") }}\n          - name: SE_NODE_BROWSER_VERSION\n            value: {{ if hasKey .node.hpa \"browserVersion\" }}{{ .node.hpa.browserVersion | quote }}{{ else }}\"\"{{ end }}\n        {{- end }}\n        {{- if and (eq (include \"seleniumGrid.useKEDA\" $) \"true\") }}\n          - name: SE_NODE_PLATFORM_NAME\n            value: {{ if hasKey .node.hpa \"platformName\" }}{{ .node.hpa.platformName | quote }}{{ else }}\"\"{{ end }}\n        {{- end }}\n          - name: SE_NODE_CONTAINER_NAME\n            valueFrom:\n              fieldRef:\n                fieldPath: metadata.name\n        {{- if empty .node.dshmVolumeSizeLimit }}\n          - name: SE_BROWSER_ARGS_DISABLE_DSHM\n            value: \"--disable-dev-shm-usage\"\n        {{- end }}\n          - name: SE_OTEL_SERVICE_NAME\n            value: {{ .name | quote }}\n          - name: SE_OTEL_RESOURCE_ATTRIBUTES\n            value: {{ include \"seleniumGrid.tracing.attributes\" $ | quote }}\n          - name: SE_NODE_HOST\n            valueFrom:\n              fieldRef:\n                fieldPath: status.podIP\n          - name: SE_NODE_PORT\n            value: {{ .node.port | quote }}\n          - name: SE_NODE_REGISTER_PERIOD\n            value: {{ $nodeRegisterPeriod | quote }}\n          - name: SE_NODE_REGISTER_CYCLE\n            value: {{ $nodeRegisterCycle | quote }}\n        {{- if (and .recorder.enabled (not .recorder.sidecarContainer)) }}\n          - name: SE_RECORD_VIDEO\n            value: \"true\"\n        {{- end }}\n        {{- with .node.extraEnvironmentVariables }}\n          {{- tpl (toYaml .) $ | nindent 10 }}\n        {{- end }}\n        envFrom:\n          - configMapRef:\n              name: {{ template \"seleniumGrid.eventBus.configmap.fullname\" $ }}\n          - configMapRef:\n              name: {{ template \"seleniumGrid.node.configmap.fullname\" $ }}\n          - configMapRef:\n              name: {{ template \"seleniumGrid.logging.configmap.fullname\" $ }}\n          - configMapRef:\n              name: {{ template \"seleniumGrid.server.configmap.fullname\" $ }}\n          - secretRef:\n              name: {{ template \"seleniumGrid.common.secrets.fullname\" $ }}\n          {{- if (and .recorder.enabled (not .recorder.sidecarContainer)) }}\n          - configMapRef:\n              name: {{ template \"seleniumGrid.recorder.configmap.fullname\" $ }}\n          {{- end }}\n          {{- if $.Values.basicAuth.enabled }}\n          - secretRef:\n              name: {{ template \"seleniumGrid.basicAuth.secrets.fullname\" $ }}\n          {{- end }}\n          {{- with .node.extraEnvFrom }}\n          {{- tpl (toYaml .) $ | nindent 10 }}\n          {{- end }}\n          {{- if (and .recorder.enabled (not .recorder.sidecarContainer)) }}\n          {{- with .recorder.extraEnvFrom }}\n          {{- tpl (toYaml .) $ | nindent 10 }}\n          {{- end }}\n          {{- if and .recorder.uploader.enabled (empty .recorder.uploader.name) }}\n          {{- with $.Values.uploaderConfigMap.secretVolumeMountName }}\n          - secretRef:\n              name: {{ tpl . $ }}\n          {{- end }}\n          {{- with .recorder.uploader.extraEnvFrom }}\n          {{- tpl (toYaml .) $ | nindent 10 }}\n          {{- end }}\n          {{- end }}\n          {{- end }}\n        ports:\n          - containerPort: {{ .node.port }}\n            protocol: TCP\n      {{- if gt (len .node.ports) 0 }}\n        {{- $ports := .node.ports -}}\n        {{- if (regexMatch \"[0-9]+$\" (index $ports 0 | toString)) -}}\n          {{- range .node.ports }}\n          - containerPort: {{ . | int }}\n            protocol: TCP\n          {{- end }}\n        {{- else -}}\n          {{- tpl (toYaml .node.ports) $ | nindent 10 }}\n        {{- end }}\n      {{- end }}\n        volumeMounts:\n        {{- if not (empty .node.dshmVolumeSizeLimit) }}\n          - name: dshm\n            mountPath: /dev/shm\n        {{- end }}\n        {{- if (and .recorder.enabled (not .recorder.sidecarContainer)) }}\n          {{- tpl (include \"seleniumGrid.video.volumeMounts\" .) $ | nindent 10 }}\n        {{- end }}\n        {{- range $fileName, $value := $.Values.nodeConfigMap.extraScripts }}\n          - name: {{ tpl (default (include \"seleniumGrid.node.configmap.fullname\" $) $.Values.nodeConfigMap.scriptVolumeMountName) $ }}\n            mountPath: {{ $.Values.nodeConfigMap.extraScriptsDirectory }}/{{ $fileName }}\n            subPath: {{ $fileName }}\n        {{- end }}\n        {{- if eq (include \"seleniumGrid.server.secureConnection\" $) \"true\" }}\n          - name: {{ include \"seleniumGrid.tls.fullname\" $ | quote }}\n            mountPath: {{ $.Values.tls.certVolumeMountPath }}\n            readOnly: true\n        {{- end }}\n        {{- if .node.extraVolumeMounts }}\n          {{- tpl (toYaml .node.extraVolumeMounts) $ | nindent 10 }}\n        {{- end }}\n      {{- with .node.resources }}\n        resources: {{- toYaml . | nindent 10 }}\n      {{- end }}\n      {{- with .node.securityContext }}\n        securityContext: {{- toYaml . | nindent 10 }}\n      {{- end }}\n      {{- include \"seleniumGrid.node.lifecycle\" . | nindent 8 -}}\n      {{- if .node.startupProbe.enabled }}\n      {{- with .node.startupProbe }}\n        startupProbe:\n        {{- if (ne (include \"seleniumGrid.probe.fromUserDefine\" (dict \"values\" . \"root\" $)) \"{}\") }}\n          {{- include \"seleniumGrid.probe.fromUserDefine\" (dict \"values\" . \"root\" $) | nindent 10 }}\n        {{- else if eq $.Values.global.seleniumGrid.defaultNodeStartupProbe \"exec\" }}\n          exec:\n            command: [\"bash\", \"-c\", \"{{ $.Values.nodeConfigMap.extraScriptsDirectory }}/nodeProbe.sh Startup {{ include \"seleniumGrid.probe.stdout\" $ }}\"]\n        {{- else }}\n          httpGet:\n            scheme: {{ default (include \"seleniumGrid.probe.httpGet.schema\" $) .schema }}\n            path: {{ .path }}\n            port: {{ default ($.node.port) .port }}\n        {{- end }}\n        {{- if (ne (include \"seleniumGrid.probe.settings\" .) \"{}\") }}\n          {{- include \"seleniumGrid.probe.settings\" . | nindent 10 }}\n        {{- end }}\n      {{- end }}\n      {{- end }}\n      {{- if .node.readinessProbe.enabled }}\n      {{- with .node.readinessProbe }}\n        readinessProbe:\n        {{- if (ne (include \"seleniumGrid.probe.fromUserDefine\" (dict \"values\" . \"root\" $)) \"{}\") }}\n          {{- include \"seleniumGrid.probe.fromUserDefine\" (dict \"values\" . \"root\" $) | nindent 10 }}\n        {{- else if eq $.Values.global.seleniumGrid.defaultNodeReadinessProbe \"exec\" }}\n          exec:\n            command: [\"bash\", \"-c\", \"{{ $.Values.nodeConfigMap.extraScriptsDirectory }}/nodeProbeReadiness.sh Readiness {{ include \"seleniumGrid.probe.stdout\" $ }}\"]\n        {{- else }}\n          httpGet:\n            scheme: {{ default (include \"seleniumGrid.probe.httpGet.schema\" $) .schema }}\n            path: {{ .path }}\n            port: {{ default ($.node.port) .port }}\n        {{- end }}\n        {{- if (ne (include \"seleniumGrid.probe.settings\" .) \"{}\") }}\n          {{- include \"seleniumGrid.probe.settings\" . | nindent 10 }}\n        {{- end }}\n      {{- end }}\n      {{- end }}\n      {{- if .node.livenessProbe.enabled }}\n      {{- with .node.livenessProbe }}\n        livenessProbe:\n        {{- if (ne (include \"seleniumGrid.probe.fromUserDefine\" (dict \"values\" . \"root\" $)) \"{}\") }}\n          {{- include \"seleniumGrid.probe.fromUserDefine\" (dict \"values\" . \"root\" $) | nindent 10 }}\n        {{- else if eq $.Values.global.seleniumGrid.defaultNodeLivenessProbe \"exec\" }}\n          exec:\n            command: [\"bash\", \"-c\", \"{{ $.Values.nodeConfigMap.extraScriptsDirectory }}/nodeProbe.sh Liveness {{ include \"seleniumGrid.probe.stdout\" $ }}\"]\n        {{- else }}\n          httpGet:\n            scheme: {{ default (include \"seleniumGrid.probe.httpGet.schema\" $) .schema }}\n            path: {{ .path }}\n            port: {{ default ($.node.port) .port }}\n        {{- end }}\n        {{- if (ne (include \"seleniumGrid.probe.settings\" .) \"{}\") }}\n          {{- include \"seleniumGrid.probe.settings\" . | nindent 10 }}\n        {{- end }}\n      {{- end }}\n      {{- end }}\n    {{- if .node.sidecars }}\n      {{- toYaml .node.sidecars | nindent 6 }}\n    {{- end }}\n    {{- if (and .recorder.enabled .recorder.sidecarContainer) }}\n      - name: {{ .recorder.name }}\n        image: {{ printf \"%s/%s:%s\" $videoImageRegistry .recorder.imageName $videoImageTag }}\n        imagePullPolicy: {{ .recorder.imagePullPolicy }}\n        env:\n        - name: SE_NODE_MAX_SESSIONS\n          value: {{ $nodeMaxSessions | quote }}\n        - name: SE_DRAIN_AFTER_SESSION_COUNT\n          value: {{ and (eq (include \"seleniumGrid.useKEDA\" $) \"true\") (eq .Values.autoscaling.scalingType \"job\") | ternary (max $nodeMaxSessions $nodeDrainAfterSessionCount) $nodeDrainAfterSessionCount | quote }}\n        - name: SE_NODE_PORT\n          value: {{ .node.port | quote }}\n        - name: DISPLAY_CONTAINER_NAME\n          valueFrom:\n            fieldRef:\n              fieldPath: status.podIP\n      {{- with .recorder.extraEnvironmentVariables }}\n        {{- tpl (toYaml .) $ | nindent 8 }}\n      {{- end }}\n        envFrom:\n          - configMapRef:\n              name: {{ template \"seleniumGrid.eventBus.configmap.fullname\" $ }}\n          - configMapRef:\n              name: {{ template \"seleniumGrid.node.configmap.fullname\" $ }}\n          - configMapRef:\n              name: {{ template \"seleniumGrid.recorder.configmap.fullname\" $ }}\n          - configMapRef:\n              name: {{ template \"seleniumGrid.server.configmap.fullname\" $ }}\n          - secretRef:\n              name: {{ template \"seleniumGrid.common.secrets.fullname\" $ }}\n          {{- if $.Values.basicAuth.enabled }}\n          - secretRef:\n              name: {{ template \"seleniumGrid.basicAuth.secrets.fullname\" $ }}\n          {{- end }}\n          {{- if and .recorder.uploader.enabled (empty .recorder.uploader.name) }}\n          {{- with $.Values.uploaderConfigMap.secretVolumeMountName }}\n          - secretRef:\n              name: {{ tpl . $ }}\n          {{- end }}\n          {{- with .recorder.uploader.extraEnvFrom }}\n          {{- tpl (toYaml .) $ | nindent 10 }}\n          {{- end }}\n          {{- end }}\n          {{- with .recorder.extraEnvFrom }}\n          {{- tpl (toYaml .) $ | nindent 10 }}\n          {{- end }}\n      {{- if gt (len .recorder.ports) 0 }}\n        ports:\n      {{- range .recorder.ports }}\n        - containerPort: {{ . }}\n          protocol: TCP\n      {{- end }}\n      {{- end }}\n        volumeMounts:\n          {{- if not (empty .node.dshmVolumeSizeLimit) }}\n          - name: dshm\n            mountPath: /dev/shm\n          {{- end }}\n          {{- tpl (include \"seleniumGrid.video.volumeMounts\" .) $ | nindent 10 }}\n      {{- with .recorder.resources }}\n        resources: {{- toYaml . | nindent 10 }}\n      {{- end }}\n      {{- with .recorder.securityContext }}\n        securityContext: {{- toYaml . | nindent 10 }}\n      {{- end }}\n      {{- with .recorder.startupProbe }}\n        startupProbe: {{- toYaml . | nindent 10 }}\n      {{- end }}\n      {{- with .recorder.livenessProbe }}\n        livenessProbe: {{- toYaml . | nindent 10 }}\n      {{- end }}\n      {{- with .recorder.lifecycle }}\n        lifecycle: {{- toYaml . | nindent 10 }}\n      {{- end }}\n    {{- if and .recorder.uploader.enabled (not (empty .recorder.uploader.name)) }}\n      - name: {{ default \"uploader\" .recorder.uploader.name }}\n        {{- $imageTag := .uploader.imageTag }}\n        {{- $imageRegistry := .uploader.imageRegistry }}\n        image: {{ printf \"%s/%s:%s\" $imageRegistry .uploader.imageName $imageTag }}\n        imagePullPolicy: {{ .uploader.imagePullPolicy }}\n      {{- if .uploader.command }}\n        command: {{- tpl (toYaml .uploader.command) $ | nindent 8 }}\n      {{- else }}\n        command: [\"/bin/sh\"]\n      {{- end }}\n      {{- if .uploader.args }}\n        args: {{- tpl (toYaml .uploader.args) $ | nindent 8 }}\n      {{- else }}\n        args: [\"-c\", \"{{ $.Values.recorderConfigMap.extraScriptsDirectory }}/{{ .recorder.uploader.entryPointFileName }}\"]\n      {{- end }}\n      {{- with .uploader.extraEnvironmentVariables }}\n        env: {{- tpl (toYaml .) $ | nindent 8 }}\n      {{- end }}\n        envFrom:\n          - configMapRef:\n              name: {{ template \"seleniumGrid.uploader.configmap.fullname\" $ }}\n          {{- if $.Values.basicAuth.enabled }}\n          - secretRef:\n              name: {{ template \"seleniumGrid.basicAuth.secrets.fullname\" $ }}\n          {{- end }}\n          - secretRef:\n              name: {{ tpl (default (include \"seleniumGrid.common.secrets.fullname\" $) $.Values.uploaderConfigMap.secretVolumeMountName) $ }}\n        {{- with .uploader.extraEnvFrom }}\n          {{- tpl (toYaml .) $ | nindent 10 }}\n        {{- end }}\n        volumeMounts:\n        {{- tpl (include \"seleniumGrid.video.uploader.volumeMounts\" .) $ | nindent 8 }}\n      {{- with .uploader.resources }}\n        resources: {{- toYaml . | nindent 10 }}\n      {{- end }}\n      {{- with .uploader.securityContext }}\n        securityContext: {{- toYaml . | nindent 10 }}\n      {{- end }}\n    {{- end }}\n    {{- end }}\n  {{- if or $.Values.global.seleniumGrid.imagePullSecret .node.imagePullSecret }}\n    imagePullSecrets:\n      - name: {{ default $.Values.global.seleniumGrid.imagePullSecret .node.imagePullSecret }}\n  {{- end }}\n  {{- with .node.nodeSelector }}\n    nodeSelector: {{- toYaml . | nindent 6 }}\n  {{- end }}\n  {{- if or $.Values.global.seleniumGrid.affinity .node.affinity }}\n    {{- $affinityYaml := default $.Values.global.seleniumGrid.affinity .node.affinity }}\n    affinity: {{- toYaml $affinityYaml | nindent 6 }}\n  {{- end }}\n  {{- if or $.Values.global.seleniumGrid.topologySpreadConstraints .node.topologySpreadConstraints }}\n    {{- $topologySpreadConstraints := default $.Values.global.seleniumGrid.topologySpreadConstraints .node.topologySpreadConstraints }}\n    {{- $appName := .name }}\n    topologySpreadConstraints:\n    {{- range $constraint := $topologySpreadConstraints }}\n      - {{ toYaml $constraint | nindent 8 | trim }}\n      {{- if not $constraint.labelSelector }}\n        labelSelector:\n          matchLabels:\n            app: {{ $appName }}\n      {{- end }}\n    {{- end }}\n  {{- end }}\n  {{- with .node.tolerations }}\n    tolerations:\n      {{ toYaml . | nindent 4 }}\n  {{- end }}\n  {{- with .node.priorityClassName }}\n    priorityClassName: {{ . }}\n  {{- end }}\n    terminationGracePeriodSeconds: {{ template \"seleniumGrid.node.terminationGracePeriodSeconds\" $ }}\n    volumes:\n      - name: {{ tpl (default (include \"seleniumGrid.node.configmap.fullname\" $) $.Values.nodeConfigMap.scriptVolumeMountName) $ }}\n        configMap:\n          name: {{ template \"seleniumGrid.node.configmap.fullname\" $ }}\n          defaultMode: {{ $.Values.nodeConfigMap.defaultMode }}\n      {{- if not (empty .node.dshmVolumeSizeLimit) }}\n      - name: dshm\n        emptyDir:\n          medium: Memory\n          sizeLimit: {{ .node.dshmVolumeSizeLimit }}\n      {{- end }}\n    {{- if eq (include \"seleniumGrid.server.secureConnection\" $) \"true\" }}\n      - name: {{ include \"seleniumGrid.tls.fullname\" $ | quote }}\n        secret:\n          secretName: {{ include \"seleniumGrid.tls.fullname\" $ | quote }}\n    {{- end }}\n    {{- if .node.extraVolumes }}\n      {{ tpl (toYaml .node.extraVolumes) $ | nindent 6 }}\n    {{- end }}\n    {{- if .recorder.enabled }}\n      {{- tpl (include \"seleniumGrid.video.volumes\" .) $ | nindent 6 }}\n    {{- end }}\n{{- end -}}\n\n{{/*\nGet the url of the grid. If the external url can be figured out from the ingress use that, otherwise the cluster internal url\n*/}}\n{{- define \"seleniumGrid.url\" -}}\n{{- $url := printf \"%s://%s%s%s\" (include \"seleniumGrid.url.schema\" .) (include \"seleniumGrid.url.host\" .) (include \"seleniumGrid.url.port\" .) (include \"seleniumGrid.url.subPath\" .) -}}\n{{- $url }}\n{{- end -}}\n\n{{/*\nGet the url of the grid server in the cluster\n*/}}\n{{- define \"seleniumGrid.server.url\" -}}\n{{- $url := printf \"%s://%s%s%s\" (include \"seleniumGrid.server.url.schema\" .) (include \"seleniumGrid.server.url.host\" .) (include \"seleniumGrid.server.url.port\" .) (include \"seleniumGrid.url.subPath\" .) -}}\n{{- if $.Values.basicAuth.embeddedUrl -}}\n  {{- $url = printf \"%s://%s%s%s%s\" (include \"seleniumGrid.server.url.schema\" .) (include \"seleniumGrid.url.basicAuth\" .) (include \"seleniumGrid.server.url.host\" .) (include \"seleniumGrid.server.url.port\" .) (include \"seleniumGrid.url.subPath\" .) -}}\n{{- end -}}\n{{- $url }}\n{{- end -}}\n\n{{/*\nGraphql Url of the hub or the router\n*/}}\n{{- define \"seleniumGrid.graphqlURL\" -}}\n{{- printf \"%s/graphql\" (include \"seleniumGrid.server.url\" $) -}}\n{{- end -}}\n\n{{/*\nGraphql Url for internal monitoring exporter\n*/}}\n{{- define \"seleniumGrid.monitoring.graphqlURL\" -}}\n{{- printf \"%s://%s%s%s%s/graphql\" (include \"seleniumGrid.server.url.schema\" .) (include \"seleniumGrid.url.basicAuth\" .) (include \"seleniumGrid.server.url.host\" .) (include \"seleniumGrid.server.url.port\" .) (include \"seleniumGrid.url.subPath\" .) -}}\n{{- end -}}\n\n{{- define \"seleniumGrid.url.schema\" -}}\n{{- $schema := \"http\" -}}\n{{- if or (eq (include \"seleniumGrid.server.secureConnection\" $) \"true\") (eq (include \"seleniumGrid.ingress.secureConnection\" $) \"true\") -}}\n  {{- $schema = \"https\" -}}\n{{- end -}}\n{{- $schema }}\n{{- end -}}\n\n{{- define \"seleniumGrid.server.url.schema\" -}}\n{{- $schema := \"http\" -}}\n{{- if eq (include \"seleniumGrid.server.secureConnection\" $) \"true\" -}}\n  {{- $schema = \"https\" -}}\n{{- end -}}\n{{- $schema }}\n{{- end -}}\n\n{{- define \"seleniumGrid.url.basicAuth\" -}}\n{{- $basicAuth := \"\" -}}\n{{- if eq .Values.basicAuth.enabled true -}}\n  {{- $basicAuth = printf \"%s:%s@\" .Values.basicAuth.username (.Values.basicAuth.password | toString) -}}\n{{- end -}}\n{{- $basicAuth }}\n{{- end -}}\n\n{{- define \"seleniumGrid.url.host\" -}}\n{{- $host := printf \"%s.%s\" (include ($.Values.isolateComponents | ternary \"seleniumGrid.router.fullname\" \"seleniumGrid.hub.fullname\") $ ) (.Release.Namespace) -}}\n{{- if eq (include \"seleniumGrid.ingress.enabled\" $) \"true\" -}}\n  {{- if and (not .Values.ingress.hostname) .Values.global.K8S_PUBLIC_IP -}}\n    {{- $host = .Values.global.K8S_PUBLIC_IP -}}\n  {{- else if and .Values.ingress.hostname (ne (tpl .Values.ingress.hostname $) \"selenium-grid.local\") -}}\n    {{- $host = (tpl .Values.ingress.hostname $) -}}\n  {{- end -}}\n{{- else if .Values.global.K8S_PUBLIC_IP -}}\n  {{- $host = .Values.global.K8S_PUBLIC_IP -}}\n{{- end -}}\n{{- $host }}\n{{- end -}}\n\n{{- define \"seleniumGrid.server.url.host\" -}}\n{{- $host := printf \"%s.%s\" (include ($.Values.isolateComponents | ternary \"seleniumGrid.router.fullname\" \"seleniumGrid.hub.fullname\") $ ) (.Release.Namespace) -}}\n{{- $host }}\n{{- end -}}\n\n{{- define \"seleniumGrid.url.port\" -}}\n{{- $port := \":4444\" -}}\n{{- if eq (include \"seleniumGrid.ingress.enabled\" $) \"true\" -}}\n  {{- if or (ne (.Values.ingress.ports.http | toString) \"80\") (ne (.Values.ingress.ports.https | toString) \"443\") -}}\n    {{- $port = printf \":%s\" (ternary (.Values.ingress.ports.http | toString) (.Values.ingress.ports.https | toString) (eq (include \"seleniumGrid.url.schema\" .) \"http\")) -}}\n  {{- else if and .Values.ingress.hostname (eq (tpl .Values.ingress.hostname $) \"selenium-grid.local\") }}\n    {{- $port = $port -}}\n  {{- else -}}\n    {{- $port = \"\" -}}\n  {{- end -}}\n{{- else -}}\n  {{- if .Values.isolateComponents -}}\n    {{- if and (eq .Values.components.router.serviceType \"NodePort\") .Values.components.router.nodePort -}}\n      {{- $port = printf \":%s\" (.Values.components.router.nodePort | toString) -}}\n    {{- end -}}\n  {{- else -}}\n    {{- if and (eq .Values.hub.serviceType \"NodePort\") .Values.hub.nodePort -}}\n      {{- $port = printf \":%s\" (.Values.hub.nodePort | toString) -}}\n    {{- end -}}\n  {{- end -}}\n{{- end -}}\n{{- $port }}\n{{- end -}}\n\n{{- define \"seleniumGrid.server.url.port\" -}}\n{{- $port := \":4444\" -}}\n{{- if .Values.isolateComponents -}}\n  {{- $port = printf \":%s\" (.Values.components.router.port | toString) -}}\n{{- else -}}\n  {{- $port = printf \":%s\" (.Values.hub.port | toString) -}}\n{{- end -}}\n{{- $port }}\n{{- end -}}\n\n{{- define \"seleniumGrid.url.subPath\" -}}\n{{- $subPath := \"\" -}}\n{{- if $.Values.isolateComponents -}}\n  {{- $subPath = default $subPath $.Values.components.router.subPath -}}\n{{- else -}}\n  {{- $subPath = default $subPath $.Values.hub.subPath -}}\n{{- end -}}\n{{- $subPath = include \"utils.trimTrailingSlash\" $subPath -}}\n{{- $subPath }}\n{{- end -}}\n\n{{/*\nGraphql unsafeSsl of the hub or the router\n*/}}\n{{- define \"seleniumGrid.graphqlURL.unsafeSsl\" -}}\n{{- $unsafeSsl := printf \"%s\" (ternary \"true\" \"false\" .Values.tls.disableHostnameVerification) -}}\n{{- $unsafeSsl }}\n{{- end -}}\n\n{{/*\nDefine preStop hook for the node pod. Node preStop script is stored in a ConfigMap and mounted as a volume.\n*/}}\n{{- define \"seleniumGrid.node.deregisterLifecycle\" -}}\npreStop:\n  exec:\n    command: [\"bash\", \"-c\", \"{{ $.Values.nodeConfigMap.extraScriptsDirectory }}/nodePreStop.sh {{ include \"seleniumGrid.probe.stdout\" $ }}\"]\n{{- end -}}\n\n{{/*\nGet the lifecycle of the pod is used for a Node to deregister from the Hub/Router.\n1. IF KEDA is activated, scalingType is \"deployment\", and individual node deregisterLifecycle is not set, use autoscaling.deregisterLifecycle\n2. ELSE (KEDA is not activated and node deregisterLifecycle is set), use .deregisterLifecycle in individual node\n3. IF individual node with .lifecycle is set, it takes highest precedence to override the preStop in above use cases\n*/}}\n{{- define \"seleniumGrid.node.lifecycle\" }}\n{{- $defaultDeregisterLifecycle := tpl (include \"seleniumGrid.node.deregisterLifecycle\" .) $ -}}\n{{- $lifecycle := toYaml (dict) -}}\n{{- if and (and (eq .Values.autoscaling.scalingType \"deployment\") (eq (include \"seleniumGrid.useKEDA\" .) \"true\")) (not .node.deregisterLifecycle) -}}\n  {{- $lifecycle = merge ($lifecycle | fromYaml) (tpl (toYaml (default ($defaultDeregisterLifecycle | fromYaml) .Values.autoscaling.deregisterLifecycle)) $ | fromYaml) | toYaml -}}\n{{- else -}}\n  {{- if eq (.node.deregisterLifecycle | toString | lower) \"false\" -}}\n    {{- $lifecycle = toYaml (dict) -}}\n  {{- else -}}\n    {{- $lifecycle = (tpl (toYaml (default ($defaultDeregisterLifecycle | fromYaml) .node.deregisterLifecycle) ) $ | fromYaml) | toYaml -}}\n  {{- end -}}\n{{- end -}}\n{{- if .node.lifecycle -}}\n  {{- $lifecycle = mergeOverwrite ($lifecycle | fromYaml) (tpl (toYaml .node.lifecycle) $ | fromYaml) | toYaml -}}\n{{- end -}}\n{{ if and $lifecycle (ne $lifecycle \"{}\") -}}\nlifecycle: {{ $lifecycle | nindent 2 }}\n{{- end -}}\n{{- end -}}\n\n{{/*\nDefine terminationGracePeriodSeconds of the node pod.\n1. IF KEDA is activated, scalingType is \"deployment\", use autoscaling.terminationGracePeriodSeconds\n2. IF node.terminationGracePeriodSeconds is greater than autoscaling.terminationGracePeriodSeconds, use node.terminationGracePeriodSeconds\n*/}}\n{{- define \"seleniumGrid.node.terminationGracePeriodSeconds\" -}}\n{{- $autoscalingPeriod := default 0 .Values.autoscaling.terminationGracePeriodSeconds | int -}}\n{{- $nodePeriod := default 0 .node.terminationGracePeriodSeconds | int -}}\n{{- $period := $nodePeriod -}}\n{{- if and (eq .Values.autoscaling.scalingType \"deployment\") (eq (include \"seleniumGrid.useKEDA\" $) \"true\") -}}\n  {{- $period = ternary $nodePeriod $autoscalingPeriod (gt $nodePeriod $autoscalingPeriod) -}}\n{{- else if and (eq .Values.autoscaling.scalingType \"job\") (eq (include \"seleniumGrid.useKEDA\" $) \"true\") }}\n  {{- $period = 30 -}}\n{{- end -}}\n{{- $period -}}\n{{- end -}}\n\n{{- define \"seleniumGrid.node.restartPolicy\" -}}\n{{- $restartPolicy := \"Always\" -}}\n{{- if and (eq (include \"seleniumGrid.useKEDA\" .) \"true\") (eq .Values.autoscaling.scalingType \"job\") -}}\n  {{- $restartPolicy = \"Never\" -}}\n{{- end -}}\n{{- $restartPolicy -}}\n{{- end -}}\n\n{{- define \"seleniumGrid.video.volumeMounts.default\" -}}\n{{- range $fileName, $value := .Values.recorderConfigMap.extraScripts }}\n- name: {{ tpl (default (include \"seleniumGrid.recorder.configmap.fullname\" $) $.Values.recorderConfigMap.scriptVolumeMountName) $ }}\n  mountPath: {{ $.Values.recorderConfigMap.extraScriptsDirectory }}/{{ $fileName }}\n  subPath: {{ $fileName }}\n{{- end }}\n{{- if and $.Values.videoRecorder.uploader.enabled (empty $.Values.videoRecorder.uploader.name) }}\n{{- range $fileName, $value := .Values.uploaderConfigMap.secretFiles }}\n- name: {{ tpl (default (include \"seleniumGrid.common.secrets.fullname\" $) $.Values.uploaderConfigMap.secretVolumeMountName) $ }}\n  mountPath: {{ $.Values.uploaderConfigMap.extraScriptsDirectory }}/{{ $fileName }}\n  subPath: {{ $fileName }}\n{{- end }}\n{{- end }}\n- name: {{ tpl (toYaml $.Values.recorderConfigMap.videoVolumeMountName) $ }}\n  mountPath: {{ $.Values.videoRecorder.targetFolder }}\n{{- end -}}\n\n{{- define \"seleniumGrid.video.volumes.default\" -}}\n- name: {{ tpl (toYaml $.Values.recorderConfigMap.videoVolumeMountName) $ }}\n  emptyDir: {}\n- name: {{ tpl (default (include \"seleniumGrid.recorder.configmap.fullname\" $) $.Values.recorderConfigMap.scriptVolumeMountName) $ }}\n  configMap:\n    name: {{ template \"seleniumGrid.recorder.configmap.fullname\" $ }}\n    defaultMode: {{ $.Values.recorderConfigMap.defaultMode }}\n- name: {{ tpl (default (include \"seleniumGrid.uploader.configmap.fullname\" $) $.Values.uploaderConfigMap.scriptVolumeMountName) $ }}\n  configMap:\n    name: {{ template \"seleniumGrid.uploader.configmap.fullname\" $ }}\n    defaultMode: {{ $.Values.uploaderConfigMap.defaultMode }}\n- name: {{ tpl (default (include \"seleniumGrid.common.secrets.fullname\" $) $.Values.uploaderConfigMap.secretVolumeMountName) $ }}\n  secret:\n    secretName: {{ tpl (default (include \"seleniumGrid.common.secrets.fullname\" $) $.Values.uploaderConfigMap.secretVolumeMountName) $ }}\n{{- end -}}\n\n{{- define \"seleniumGrid.video.uploader.volumeMounts.default\" -}}\n{{- range $fileName, $value := .Values.uploaderConfigMap.extraScripts }}\n- name: {{ tpl (default (include \"seleniumGrid.uploader.configmap.fullname\" $) $.Values.uploaderConfigMap.scriptVolumeMountName) $ }}\n  mountPath: {{ $.Values.uploaderConfigMap.extraScriptsDirectory }}/{{ $fileName }}\n  subPath: {{ $fileName }}\n{{- end }}\n{{- range $fileName, $value := .Values.uploaderConfigMap.secretFiles }}\n- name: {{ tpl (default (include \"seleniumGrid.common.secrets.fullname\" $) $.Values.uploaderConfigMap.secretVolumeMountName) $ }}\n  mountPath: {{ $.Values.uploaderConfigMap.extraScriptsDirectory }}/{{ $fileName }}\n  subPath: {{ $fileName }}\n{{- end }}\n- name: {{ tpl (toYaml $.Values.recorderConfigMap.videoVolumeMountName) $ }}\n  mountPath: {{ $.Values.videoRecorder.targetFolder }}\n{{- end -}}\n\n{{/* Combine videoRecorder.extraVolumeMounts with the default ones for container video recorder */}}\n{{- define \"seleniumGrid.video.volumeMounts\" -}}\n{{- $videoVolumeMounts := list -}}\n{{- if .Values.videoRecorder.extraVolumeMounts -}}\n  {{- range .Values.videoRecorder.extraVolumeMounts -}}\n    {{- $videoVolumeMounts = append $videoVolumeMounts . -}}\n  {{- end -}}\n{{- end -}}\n{{- $defaultVolumeMounts := (include \"seleniumGrid.video.volumeMounts.default\" $ | toString | fromYamlArray ) -}}\n{{- $videoVolumeMounts = include \"utils.appendDefaultIfNotExist\" (dict \"currentArray\" $videoVolumeMounts \"defaultArray\" $defaultVolumeMounts \"uniqueKey\" \"mountPath\") -}}\n{{- not (empty $videoVolumeMounts) | ternary $videoVolumeMounts \"\" -}}\n{{- end -}}\n\n{{/* Combine videoRecorder.uploader.extraVolumeMounts with the default ones for container video uploader */}}\n{{- define \"seleniumGrid.video.uploader.volumeMounts\" -}}\n{{- $videoUploaderVolumeMounts := list -}}\n{{- if .uploader.extraVolumeMounts -}}\n  {{- range .uploader.extraVolumeMounts -}}\n    {{- $videoUploaderVolumeMounts = append $videoUploaderVolumeMounts . -}}\n  {{- end -}}\n{{- end }}\n{{- $defaultVolumeMounts := (include \"seleniumGrid.video.uploader.volumeMounts.default\" . | toString | fromYamlArray ) -}}\n{{- $videoUploaderVolumeMounts = include \"utils.appendDefaultIfNotExist\" (dict \"currentArray\" $videoUploaderVolumeMounts \"defaultArray\" $defaultVolumeMounts \"uniqueKey\" \"mountPath\") -}}\n{{- not (empty $videoUploaderVolumeMounts) | ternary $videoUploaderVolumeMounts \"\" -}}\n{{- end -}}\n\n{{/* Combine videoRecorder.extraVolumes with the default ones for the node pod */}}\n{{- define \"seleniumGrid.video.volumes\" -}}\n{{- $videoVolumes := list -}}\n{{- if .Values.videoRecorder.extraVolumes -}}\n  {{- range .Values.videoRecorder.extraVolumes -}}\n    {{- $videoVolumes = append $videoVolumes . -}}\n  {{- end -}}\n{{- end -}}\n{{- $defaultVolumes := (include \"seleniumGrid.video.volumes.default\" . | toString | fromYamlArray ) -}}\n{{- $videoVolumes = include \"utils.appendDefaultIfNotExist\" (dict \"currentArray\" $videoVolumes \"defaultArray\" $defaultVolumes \"uniqueKey\" \"name\") -}}\n{{- not (empty $videoVolumes) | ternary $videoVolumes \"\" -}}\n{{- end -}}\n\n{{- define \"utils.trimTrailingSlash\" -}}\n{{- $path := . -}}\n{{- if hasSuffix \"/\" $path -}}\n  {{- $path = trimSuffix \"/\" $path -}}\n{{- end -}}\n{{- $path -}}\n{{- end -}}\n\n{{/*\nIs used to append default items needed to an array if they are not already present. Args: currentArray, defaultArray, uniqueKey\nUsage: {{- $thisArray = include \"utils.appendDefaultIfNotExist\" (dict \"currentArray\" $thisArray \"defaultArray\" $defaultArray \"uniqueKey\" $uniqueKey }}\n*/}}\n{{- define \"utils.appendDefaultIfNotExist\" -}}\n  {{- $currentArray := index . \"currentArray\" -}}\n  {{- $defaultArray := index . \"defaultArray\" -}}\n  {{- $uniqueKey := index . \"uniqueKey\" -}}\n  {{- range $default := $defaultArray -}}\n    {{- if eq (len $currentArray) 0 -}}\n      {{- $currentArray = append $currentArray $default -}}\n    {{- end -}}\n    {{- $isExisting := false -}}\n    {{- range $current := $currentArray -}}\n      {{- if eq (index $default $uniqueKey | toString) (index $current $uniqueKey | toString) -}}\n        {{- $isExisting = true -}}\n      {{- end -}}\n    {{- end -}}\n    {{- if not $isExisting -}}\n      {{- $currentArray = append $currentArray $default -}}\n    {{- end -}}\n  {{- end -}}\n  {{- $currentArray | toYaml -}}\n{{- end -}}\n"
  },
  {
    "path": "charts/selenium-grid/templates/_nameHelpers.tpl",
    "content": "{{/*\nExpand the name of the chart.\n*/}}\n{{- define \"seleniumGrid.name\" -}}\n{{- default .Chart.Name .Values.nameOverride | trunc 63 | trimSuffix \"-\" -}}\n{{- end -}}\n\n{{/*\nCreate a default fully qualified app name.\n*/}}\n{{- define \"seleniumGrid.fullname\" -}}\n{{- if .Values.fullnameOverride -}}\n{{- .Values.fullnameOverride | trunc 63 | trimSuffix \"-\" -}}\n{{- else -}}\n{{- $name := default .Chart.Name .Values.nameOverride -}}\n{{- if contains $name .Release.Name -}}\n{{- .Release.Name | trunc 63 | trimSuffix \"-\" -}}\n{{- else -}}\n{{- printf \"%s-%s\" .Release.Name $name | trunc 63 | trimSuffix \"-\" -}}\n{{- end -}}\n{{- end -}}\n{{- end -}}\n\n{{/*\nCreate chart name and version as used by the chart label.\n*/}}\n{{- define \"seleniumGrid.chart\" -}}\n{{- printf \"%s-%s\" .Chart.Name .Chart.Version | replace \"+\" \"_\" | trunc 63 | trimSuffix \"-\" -}}\n{{- end -}}\n\n{{/*\nCommon labels\n*/}}\n{{- define \"seleniumGrid.commonLabels\" -}}\n{{- $defaultLabels := dict\n    \"app.kubernetes.io/managed-by\" (.Release.Service | lower)\n    \"app.kubernetes.io/instance\" .Release.Name\n    \"app.kubernetes.io/version\" .Chart.AppVersion\n    \"app.kubernetes.io/component\" (printf \"selenium-grid-%s\" .Chart.AppVersion)\n    \"helm.sh/chart\" (include \"seleniumGrid.chart\" .)\n}}\n{{- $customLabels := tpl (toYaml (.Values.customLabels | default dict)) $ | fromYaml }}\n{{- $mergedLabels := merge $defaultLabels $customLabels }}\n{{- toYaml $mergedLabels | nindent 0 }}\n{{- end -}}\n\n{{/*\nBring common labels to tracing resource attributes\n*/}}\n{{- define \"seleniumGrid.tracing.attributes\" -}}\n{{- $labels := include \"seleniumGrid.commonLabels\" $ | fromYaml }}\n{{- $attrs := list }}\n{{- range $k, $v := $labels }}\n{{- $attrs = append $attrs (printf \"%s=%s\" $k $v) }}\n{{- end }}\n{{- join \",\" $attrs }}\n{{- end -}}\n\n{{/*\nAutoscaling labels\n*/}}\n{{- define \"seleniumGrid.autoscalingLabels\" -}}\ncomponent.autoscaling: \"{{ .Release.Name }}\"\n{{- end -}}\n\n{{- define \"seleniumGrid.component.name\" -}}\n{{- $component := index . 0 }}\n{{- $root := index . 1 }}\n{{- if eq $root.Release.Name \"selenium\" }}\n{{- $component | trunc 63 | trimSuffix \"-\" -}}\n{{- else -}}\n{{- printf \"%s-%s\" $root.Release.Name $component | replace \".\" \"\" | trunc 63 | trimSuffix \"-\" -}}\n{{- end -}}\n{{- end -}}\n\n{{/*\nSelenium metrics exporter fullname\n*/}}\n{{- define \"seleniumGrid.monitoring.exporter.fullname\" -}}\n{{- tpl (default (include \"seleniumGrid.component.name\" (list \"selenium-metrics-exporter\" $)) ($.Values.monitoring).exporter.nameOverride) $ | trunc 63 | trimSuffix \"-\" -}}\n{{- end -}}\n\n{{/*\nSelenium metrics scrape key in secret resource\n*/}}\n{{- define \"seleniumGrid.monitoring.scrape.key\" -}}\n{{- tpl (default (include \"seleniumGrid.component.name\" (list \"selenium-grid-scrape\" $)) ($.Values.monitoring).additionalScrapeConfigs.key) $ | trunc 63 | trimSuffix \"-\" -}}\n{{- end -}}\n\n{{/*\nSelenium Hub fullname\n*/}}\n{{- define \"seleniumGrid.hub.fullname\" -}}\n{{- tpl (default (include \"seleniumGrid.component.name\" (list \"selenium-hub\" $)) .Values.hub.nameOverride) $ | trunc 63 | trimSuffix \"-\" -}}\n{{- end -}}\n\n{{/*\nEvent bus fullname\n*/}}\n{{- define \"seleniumGrid.eventBus.fullname\" -}}\n{{- tpl (default (include \"seleniumGrid.component.name\" (list \"selenium-event-bus\" $)) .Values.components.eventBus.nameOverride) $ | trunc 63 | trimSuffix \"-\" -}}\n{{- end -}}\n\n{{/*\nEvent bus ConfigMap fullname\n*/}}\n{{- define \"seleniumGrid.eventBus.configmap.fullname\" -}}\n{{- tpl (default (include \"seleniumGrid.component.name\" (list \"selenium-event-bus-config\" $)) .Values.busConfigMap.nameOverride) $ | trunc 63 | trimSuffix \"-\" -}}\n{{- end -}}\n\n{{/*\nSession Map ConfigMap fullname\n*/}}\n{{- define \"seleniumGrid.sessionMap.configmap.fullname\" -}}\n{{- tpl (default (include \"seleniumGrid.component.name\" (list \"selenium-session-map-config\" $)) .Values.sessionMapConfigMap.nameOverride) $ | trunc 63 | trimSuffix \"-\" -}}\n{{- end -}}\n\n{{/*\nSession Queue ConfigMap fullname\n*/}}\n{{- define \"seleniumGrid.sessionQueue.configmap.fullname\" -}}\n{{- tpl (default (include \"seleniumGrid.component.name\" (list \"selenium-session-queue-config\" $)) .Values.sessionQueueConfigMap.nameOverride) $ | trunc 63 | trimSuffix \"-\" -}}\n{{- end -}}\n\n{{/*\nRouter fullname\n*/}}\n{{- define \"seleniumGrid.router.fullname\" -}}\n{{- tpl (default (include \"seleniumGrid.component.name\" (list \"selenium-router\" $)) .Values.components.router.nameOverride) $ | trunc 63 | trimSuffix \"-\" -}}\n{{- end -}}\n\n{{/*\nDistributor fullname\n*/}}\n{{- define \"seleniumGrid.distributor.fullname\" -}}\n{{- tpl (default (include \"seleniumGrid.component.name\" (list \"selenium-distributor\" $)) .Values.components.distributor.nameOverride) $ | trunc 63 | trimSuffix \"-\" -}}\n{{- end -}}\n\n{{/*\nSessionMap fullname\n*/}}\n{{- define \"seleniumGrid.sessionMap.fullname\" -}}\n{{- tpl (default (include \"seleniumGrid.component.name\" (list \"selenium-session-map\" $)) .Values.components.sessionMap.nameOverride) $ | trunc 63 | trimSuffix \"-\" -}}\n{{- end -}}\n\n{{/*\nSessionQueue fullname\n*/}}\n{{- define \"seleniumGrid.sessionQueue.fullname\" -}}\n{{- tpl (default (include \"seleniumGrid.component.name\" (list \"selenium-session-queue\" $)) .Values.components.sessionQueue.nameOverride) $ | trunc 63 | trimSuffix \"-\" -}}\n{{- end -}}\n\n{{/*\nChrome node fullname\n*/}}\n{{- define \"seleniumGrid.chromeNode.fullname\" -}}\n{{- $component := index . 0 }}\n{{- $root := index . 1 }}\n{{- tpl (default (include \"seleniumGrid.component.name\" (list \"selenium-node-chrome\" $root)) $component.nameOverride) $root | trunc 63 | trimSuffix \"-\" -}}\n{{- end -}}\n\n{{/*\nFirefox node fullname\n*/}}\n{{- define \"seleniumGrid.firefoxNode.fullname\" -}}\n{{- $component := index . 0 }}\n{{- $root := index . 1 }}\n{{- tpl (default (include \"seleniumGrid.component.name\" (list \"selenium-node-firefox\" $root)) $component.nameOverride) $root | trunc 63 | trimSuffix \"-\" -}}\n{{- end -}}\n\n{{/*\nEdge node fullname\n*/}}\n{{- define \"seleniumGrid.edgeNode.fullname\" -}}\n{{- $component := index . 0 }}\n{{- $root := index . 1 }}\n{{- tpl (default (include \"seleniumGrid.component.name\" (list \"selenium-node-edge\" $root)) $component.nameOverride) $root | trunc 63 | trimSuffix \"-\" -}}\n{{- end -}}\n\n{{/*\nRelay node fullname\n*/}}\n{{- define \"seleniumGrid.relayNode.fullname\" -}}\n{{- $component := index . 0 }}\n{{- $root := index . 1 }}\n{{- tpl (default (include \"seleniumGrid.component.name\" (list \"selenium-node-relay\" $root)) $component.nameOverride) $root | trunc 63 | trimSuffix \"-\" -}}\n{{- end -}}\n\n{{/*\nIngress fullname\n*/}}\n{{- define \"seleniumGrid.ingress.fullname\" -}}\n{{- tpl (default (include \"seleniumGrid.component.name\" (list \"selenium-ingress\" $)) .Values.ingress.nameOverride) $ | trunc 63 | trimSuffix \"-\" -}}\n{{- end -}}\n\n{{- define \"seleniumGrid.ingress.traefik.serversTransport.name\" -}}\n{{- $name := default (include \"seleniumGrid.component.name\" (list \"selenium-ingress-serverstransport\" $)) .Values.ingress.traefik.serversTransport.nameOverride -}}\n{{- tpl $name $ | trunc 63 | trimSuffix \"-\" -}}\n{{- end -}}\n\n{{- define \"seleniumGrid.ingress.traefik.serversTransport.ref\" -}}\n{{- printf \"%s-%s@kubernetescrd\" .Release.Namespace (include \"seleniumGrid.ingress.traefik.serversTransport.name\" $) -}}\n{{- end -}}\n\n{{/*\nCommon secrets cross components\n*/}}\n{{- define \"seleniumGrid.common.secrets.fullname\" -}}\n{{- tpl (default (include \"seleniumGrid.component.name\" (list \"selenium-secrets\" $)) .Values.secrets.nameOverride) $ | trunc 63 | trimSuffix \"-\" -}}\n{{- end -}}\n\n{{/*\nBasic authentication secrets for components fullname\n*/}}\n{{- define \"seleniumGrid.basicAuth.secrets.fullname\" -}}\n{{- tpl (default (include \"seleniumGrid.component.name\" (list \"selenium-basic-auth-secrets\" $)) .Values.basicAuth.nameOverride) $ | trunc 63 | trimSuffix \"-\" -}}\n{{- end -}}\n\n{{/*\nKEDA TriggerAuthentication resource fullname\n*/}}\n{{- define \"seleniumGrid.autoscaling.authenticationRef.fullname\" -}}\n{{- tpl (default (include \"seleniumGrid.component.name\" (list \"selenium-scaler-trigger-auth\" $)) .Values.autoscaling.authenticationRef.name) $ | trunc 63 | trimSuffix \"-\" -}}\n{{- end -}}\n\n{{/*\nSecret TLS fullname\n*/}}\n{{- define \"seleniumGrid.tls.fullname\" -}}\n{{- tpl (default (include \"seleniumGrid.component.name\" (list \"selenium-tls-secret\" $)) .Values.tls.nameOverride) $ | trunc 63 | trimSuffix \"-\" -}}\n{{- end -}}\n\n{{/*\nService Account fullname\n*/}}\n{{- define \"seleniumGrid.serviceAccount.fullname\" -}}\n{{- tpl (default (include \"seleniumGrid.component.name\" (list \"selenium-serviceaccount\" $)) .Values.serviceAccount.nameOverride) $ | trunc 63 | trimSuffix \"-\" -}}\n{{- end -}}\n\n{{/*\nDistributor ConfigMap fullname\n*/}}\n{{- define \"seleniumGrid.distributor.configmap.fullname\" -}}\n{{- tpl (default (include \"seleniumGrid.component.name\" (list \"selenium-distributor-config\" $)) .Values.distributorConfigMap.nameOverride) $ | trunc 63 | trimSuffix \"-\" -}}\n{{- end -}}\n\n{{/*\nRouter ConfigMap fullname\n*/}}\n{{- define \"seleniumGrid.router.configmap.fullname\" -}}\n{{- tpl (default (include \"seleniumGrid.component.name\" (list \"selenium-router-config\" $)) .Values.routerConfigMap.nameOverride) $ | trunc 63 | trimSuffix \"-\" -}}\n{{- end -}}\n\n{{/*\nRecorder ConfigMap fullname\n*/}}\n{{- define \"seleniumGrid.recorder.configmap.fullname\" -}}\n{{- tpl (default (include \"seleniumGrid.component.name\" (list \"selenium-recorder-config\" $)) .Values.recorderConfigMap.nameOverride) $ | trunc 63 | trimSuffix \"-\" -}}\n{{- end -}}\n\n{{/*\nVideo manager fullname\n*/}}\n{{- define \"seleniumGrid.videoManager.fullname\" -}}\n{{- tpl (default (include \"seleniumGrid.component.name\" (list \"selenium-video-manager\" $)) .Values.videoManager.nameOverride) $ | trunc 63 | trimSuffix \"-\" -}}\n{{- end -}}\n\n{{/*\nUploader ConfigMap fullname\n*/}}\n{{- define \"seleniumGrid.uploader.configmap.fullname\" -}}\n{{- tpl (default (include \"seleniumGrid.component.name\" (list \"selenium-uploader-config\" $)) .Values.uploaderConfigMap.nameOverride) $ | trunc 63 | trimSuffix \"-\" -}}\n{{- end -}}\n\n{{/*\nLogging ConfigMap fullname\n*/}}\n{{- define \"seleniumGrid.logging.configmap.fullname\" -}}\n{{- tpl (default (include \"seleniumGrid.component.name\" (list \"selenium-logging-config\" $)) .Values.loggingConfigMap.nameOverride) $ | trunc 63 | trimSuffix \"-\" -}}\n{{- end -}}\n\n{{/*\nNode ConfigMap fullname\n*/}}\n{{- define \"seleniumGrid.node.configmap.fullname\" -}}\n{{- tpl (default (include \"seleniumGrid.component.name\" (list \"selenium-node-config\" $)) .Values.nodeConfigMap.nameOverride) $ | trunc 63 | trimSuffix \"-\" -}}\n{{- end -}}\n\n{{/*\nServer ConfigMap fullname\n*/}}\n{{- define \"seleniumGrid.server.configmap.fullname\" -}}\n{{- tpl (default (include \"seleniumGrid.component.name\" (list \"selenium-server-config\" $)) .Values.serverConfigMap.nameOverride) $ | trunc 63 | trimSuffix \"-\" -}}\n{{- end -}}\n\n{{/*\nDelete scaledObjects leafover job fullname\n*/}}\n{{- define \"seleniumGrid.keda.deleteObjectsJob.fullname\" -}}\n{{- printf \"%s-scaledobjects-deletion\" (tpl ( default (include \"seleniumGrid.component.name\" (list \"selenium-patch\" $)) .Values.autoscaling.patchObjectFinalizers.nameOverride) $) | trunc 63 | trimSuffix \"-\" -}}\n{{- end -}}\n\n{{/*\nPatch scaledObjects finalizers job fullname\n*/}}\n{{- define \"seleniumGrid.keda.patchObjectsJob.fullname\" -}}\n{{- printf \"%s-scaledobjects-finalizers\" (tpl ( default (include \"seleniumGrid.component.name\" (list \"selenium-patch\" $)) .Values.autoscaling.patchObjectFinalizers.nameOverride) $) | trunc 63 | trimSuffix \"-\" -}}\n{{- end -}}\n\n{{/*\nRBAC RoleBinding fullname\n*/}}\n{{- define \"seleniumGrid.rbac.roleBinding.fullname\" -}}\n{{- tpl (default (include \"seleniumGrid.component.name\" (list \"selenium-rolebinding\" $)) .Values.rbacRoleBinding.nameOverride) $ | trunc 63 | trimSuffix \"-\" -}}\n{{- end -}}\n\n{{/*\nRBAC Role fullname\n*/}}\n{{- define \"seleniumGrid.rbac.role.fullname\" -}}\n{{- tpl (default (include \"seleniumGrid.component.name\" (list \"selenium-role\" $)) .Values.rbacRole.nameOverride) $ | trunc 63 | trimSuffix \"-\" -}}\n{{- end -}}\n"
  },
  {
    "path": "charts/selenium-grid/templates/basic-auth-secret.yaml",
    "content": "{{- if and $.Values.basicAuth.create $.Values.basicAuth.enabled }}\napiVersion: v1\nkind: Secret\nmetadata:\n  name: {{ template \"seleniumGrid.basicAuth.secrets.fullname\" $ }}\n  namespace: {{ .Release.Namespace }}\n{{- with .Values.basicAuth.annotations }}\n  annotations: {{- toYaml . | nindent 4 }}\n{{- end }}\n  labels:\n    {{- include \"seleniumGrid.commonLabels\" $ | nindent 4 }}\ntype: Opaque\ndata:\n{{- if eq .Values.basicAuth.enabled true }}\n  SE_ROUTER_USERNAME: {{ .Values.basicAuth.username | b64enc }}\n  SE_ROUTER_PASSWORD: {{ .Values.basicAuth.password | b64enc }}\n{{- end }}\n{{- end }}\n"
  },
  {
    "path": "charts/selenium-grid/templates/chrome-node-deployment.yaml",
    "content": "{{- range $i, $newNode := .Values.crossBrowsers.chromeNode }}\n{{- $nodeConfig := merge $newNode $.Values.chromeNode -}}\n{{- if and $nodeConfig.enabled ((eq (include \"seleniumGrid.useKEDA\" $) \"true\") | ternary (eq $.Values.autoscaling.scalingType \"deployment\") $nodeConfig.deploymentEnabled) }}\napiVersion: apps/v1\nkind: Deployment\nmetadata:\n  name: {{ template \"seleniumGrid.chromeNode.fullname\" (list $nodeConfig $) }}\n  namespace: {{ $.Release.Namespace }}\n  labels:\n    app: {{ template \"seleniumGrid.chromeNode.fullname\" (list $nodeConfig $) }}\n    app.kubernetes.io/name: {{ template \"seleniumGrid.chromeNode.fullname\" (list $nodeConfig $) }}\n    {{- include \"seleniumGrid.commonLabels\" $ | nindent 4 }}\n    {{- with $nodeConfig.labels }}\n      {{- toYaml . | nindent 4 }}\n    {{- end }}\nspec:\n  strategy:\n    {{- template \"seleniumGrid.updateStrategy\" (list $nodeConfig $.Values.global.seleniumGrid) }}\n  {{- if not (eq (include \"seleniumGrid.useKEDA\" $) \"true\") }}\n  replicas: {{ $nodeConfig.replicas }}\n  {{- else if $.Values.autoscaling.setReplicasInSpec }}\n  replicas: {{ default $.Values.autoscaling.scaledOptions.minReplicaCount ($nodeConfig.scaledOptions).minReplicaCount }}\n  {{- end }}\n  revisionHistoryLimit: {{ $.Values.global.seleniumGrid.revisionHistoryLimit }}\n  selector:\n    matchLabels:\n      app: {{ template \"seleniumGrid.chromeNode.fullname\" (list $nodeConfig $) }}\n      app.kubernetes.io/instance: {{ $.Release.Name }}\n{{- $podScope := deepCopy $ -}}\n{{- $_ := set $podScope \"name\" (include \"seleniumGrid.chromeNode.fullname\" (list $nodeConfig $)) -}}\n{{- $_ =  set $podScope \"node\" $nodeConfig -}}\n{{- $_ =  set $podScope \"recorder\" (mergeOverwrite $.Values.videoRecorder $nodeConfig.videoRecorder) -}}\n{{- $_ =  set $podScope \"uploader\" (get $.Values.videoRecorder ($podScope.recorder.uploader.name | toString)) -}}\n{{- include \"seleniumGrid.podTemplate\" $podScope | nindent 2 }}\n---\n{{- end }}\n{{- end }}\n"
  },
  {
    "path": "charts/selenium-grid/templates/chrome-node-hpa.yaml",
    "content": "{{- range $i, $newNode := .Values.crossBrowsers.chromeNode }}\n{{- $nodeConfig := merge $newNode $.Values.chromeNode -}}\n{{- if and $nodeConfig.enabled (eq (include \"seleniumGrid.useKEDA\" $) \"true\") (eq $.Values.autoscaling.scalingType \"deployment\") }}\napiVersion: keda.sh/v1alpha1\nkind: ScaledObject\nmetadata:\n  name: {{ template \"seleniumGrid.chromeNode.fullname\" (list $nodeConfig $) }}\n  namespace: {{ $.Release.Namespace }}\n  annotations:\n    {{- with $.Values.autoscaling.annotations }}\n      {{- toYaml . | nindent 4 }}\n    {{- end }}\n  labels:\n    deploymentName: {{ template \"seleniumGrid.chromeNode.fullname\" (list $nodeConfig $) }}\n    {{- include \"seleniumGrid.commonLabels\" $ | nindent 4 }}\n    {{- include \"seleniumGrid.autoscalingLabels\" $ | nindent 4 }}\n    {{- with $nodeConfig.labels }}\n      {{- toYaml . | nindent 4 }}\n    {{- end }}\nspec:\n  {{- $podScope := deepCopy $ -}}\n  {{- $_ := set $podScope \"name\" (include \"seleniumGrid.chromeNode.fullname\" (list $nodeConfig $)) -}}\n  {{- $_ =  set $podScope \"node\" $nodeConfig -}}\n  {{- include \"seleniumGrid.autoscalingTemplate\" $podScope | nindent 2 }}\n---\n{{- end }}\n{{- end }}\n"
  },
  {
    "path": "charts/selenium-grid/templates/chrome-node-scaledjobs.yaml",
    "content": "{{- range $i, $newNode := .Values.crossBrowsers.chromeNode }}\n{{- $nodeConfig := merge $newNode $.Values.chromeNode -}}\n{{- if and $nodeConfig.enabled (eq (include \"seleniumGrid.useKEDA\" $) \"true\") (eq $.Values.autoscaling.scalingType \"job\") }}\napiVersion: keda.sh/v1alpha1\nkind: ScaledJob\nmetadata:\n  name: {{ template \"seleniumGrid.chromeNode.fullname\" (list $nodeConfig $) }}\n  namespace: {{ $.Release.Namespace }}\n  {{- if $.Values.autoscaling.annotations }}\n  annotations:\n    {{- with $.Values.autoscaling.annotations }}\n      {{- toYaml . | nindent 4 }}\n    {{- end }}\n  {{- end }}\n  labels:\n    app: {{ template \"seleniumGrid.chromeNode.fullname\" (list $nodeConfig $) }}\n    app.kubernetes.io/name: {{ template \"seleniumGrid.chromeNode.fullname\" (list $nodeConfig $) }}\n    {{- include \"seleniumGrid.commonLabels\" $ | nindent 4 }}\n    {{- include \"seleniumGrid.autoscalingLabels\" $ | nindent 4 }}\n    {{- with $nodeConfig.labels }}\n      {{- toYaml . | nindent 4 }}\n    {{- end }}\nspec:\n  {{- $podScope := deepCopy $ -}}\n  {{- $_ := set $podScope \"name\" (include \"seleniumGrid.chromeNode.fullname\" (list $nodeConfig $)) -}}\n  {{- $_ =  set $podScope \"node\" $nodeConfig -}}\n  {{- $_ =  set $podScope \"recorder\" (mergeOverwrite $.Values.videoRecorder $nodeConfig.videoRecorder) -}}\n  {{- $_ =  set $podScope \"uploader\" (get $.Values.videoRecorder ($podScope.recorder.uploader.name | toString)) -}}\n  {{- $_ =  set $podScope \"podTemplate\" (include \"seleniumGrid.podTemplate\" $podScope | fromYaml) }}\n  {{- include \"seleniumGrid.autoscalingTemplate\" $podScope | nindent 2 }}\n---\n{{- end }}\n{{- end }}\n"
  },
  {
    "path": "charts/selenium-grid/templates/chrome-node-service.yaml",
    "content": "{{- range $i, $newNode := .Values.crossBrowsers.chromeNode }}\n{{- $nodeConfig := merge $newNode $.Values.chromeNode -}}\n{{- if and $nodeConfig.enabled $nodeConfig.service.enabled }}\napiVersion: v1\nkind: Service\nmetadata:\n  name: {{ template \"seleniumGrid.chromeNode.fullname\" (list $nodeConfig $) }}\n  namespace: {{ $.Release.Namespace }}\n  labels:\n    name: {{ template \"seleniumGrid.chromeNode.fullname\" (list $nodeConfig $) }}\n    {{- include \"seleniumGrid.commonLabels\" $ | nindent 4 }}\n  {{- with $nodeConfig.service.annotations }}\n  annotations:\n    {{- toYaml . | nindent 4 }}\n  {{- end }}\nspec:\n  type: {{ $nodeConfig.service.type }}\n  selector:\n    app: {{ template \"seleniumGrid.chromeNode.fullname\" (list $nodeConfig $) }}\n    app.kubernetes.io/instance: {{ $.Release.Name }}\n  {{- if and (eq $nodeConfig.service.type \"LoadBalancer\") ($nodeConfig.service.loadBalancerIP) }}\n  loadBalancerIP: {{ $nodeConfig.service.loadBalancerIP }}\n  {{- end }}\n  ports:\n    - name: tcp-chrome\n      protocol: TCP\n      port: {{ $nodeConfig.port }}\n      targetPort: {{ $nodeConfig.port }}\n      {{- if and (eq $nodeConfig.service.type \"NodePort\") $nodeConfig.nodePort }}\n      nodePort: {{ $nodeConfig.nodePort }}\n      {{- end }}\n  {{- with $nodeConfig.service.ports }}\n    {{- range . }}\n    - name: {{ .name }}\n      port: {{ .port }}\n      targetPort: {{ .targetPort }}\n      {{- if .protocol }}\n      protocol: {{ .protocol }}\n      {{- end }}\n      {{- if and (eq $nodeConfig.service.type \"NodePort\") .nodePort }}\n      nodePort: {{ .nodePort }}\n      {{- end }}\n    {{- end }}\n  {{- end }}\n  {{- with $nodeConfig.service.externalTrafficPolicy }}\n  externalTrafficPolicy: {{ . }}\n  {{- end }}\n  {{- with $nodeConfig.service.sessionAffinity }}\n  sessionAffinity: {{ . }}\n  {{- end }}\n---\n{{- end }}\n{{- end }}\n"
  },
  {
    "path": "charts/selenium-grid/templates/distributor-configmap.yaml",
    "content": "apiVersion: v1\nkind: ConfigMap\nmetadata:\n  name: {{ template \"seleniumGrid.distributor.configmap.fullname\" $ }}\n  namespace: {{ .Release.Namespace }}\n{{- with .Values.distributorConfigMap.annotations }}\n  annotations: {{- toYaml . | nindent 4 }}\n{{- end }}\n  labels:\n    {{- include \"seleniumGrid.commonLabels\" $ | nindent 4 }}\ndata:\n{{- $fileProceeded := list -}}\n{{- range $path, $_ :=  .Files.Glob $.Values.distributorConfigMap.extraScriptsImportFrom }}\n  {{- $fileName := base $path -}}\n  {{- $value := index $.Values.distributorConfigMap.extraScripts $fileName -}}\n  {{- if empty $value }}\n{{- $fileName | nindent 2 -}}: {{- toYaml ($.Files.Get $path) | indent 4 }}\n  {{- else }}\n{{- $fileName | nindent 2 -}}: {{- toYaml $value | indent 4 }}\n  {{- end }}\n  {{- $fileProceeded = append $fileProceeded $fileName -}}\n{{- end }}\n{{- range $fileName, $value := .Values.distributorConfigMap.extraScripts }}\n  {{- if not (has $fileName $fileProceeded) }}\n{{- $fileName | nindent 2 -}}: {{- toYaml (default \"\" $value) | indent 4 }}\n  {{- end }}\n{{- end }}\n{{- range $key, $value := $.Values.distributorConfigMap.data }}\n  {{ $key }}: {{ tpl $value $ | quote }}\n{{- end }}\n"
  },
  {
    "path": "charts/selenium-grid/templates/distributor-deployment.yaml",
    "content": "{{- if .Values.isolateComponents }}\napiVersion: apps/v1\nkind: Deployment\nmetadata:\n  name: {{ template \"seleniumGrid.distributor.fullname\" . }}\n  namespace: {{ .Release.Namespace }}\n  labels: &distributor_labels\n    app: {{ template \"seleniumGrid.distributor.fullname\" . }}\n    app.kubernetes.io/name: {{ template \"seleniumGrid.distributor.fullname\" . }}\n    {{- include \"seleniumGrid.commonLabels\" $ | nindent 4 }}\nspec:\n  strategy:\n    {{- template \"seleniumGrid.updateStrategy\" (list $.Values.components.distributor $.Values.global.seleniumGrid) }}\n  replicas: {{ max 1 (.Values.components.distributor.replicas | int) }}\n  revisionHistoryLimit: {{ .Values.global.seleniumGrid.revisionHistoryLimit }}\n  selector:\n    matchLabels:\n      app: {{ template \"seleniumGrid.distributor.fullname\" . }}\n      app.kubernetes.io/instance: {{ .Release.Name }}\n  template:\n    metadata:\n      labels: *distributor_labels\n      annotations:\n        checksum/event-bus-configmap: {{ include (print $.Template.BasePath \"/event-bus-configmap.yaml\") . | sha256sum }}\n        checksum/logging-configmap: {{ include (print $.Template.BasePath \"/logging-configmap.yaml\") . | sha256sum }}\n        checksum/server-configmap: {{ include (print $.Template.BasePath \"/server-configmap.yaml\") . | sha256sum }}\n        checksum/distributor-configmap: {{ include (print $.Template.BasePath \"/distributor-configmap.yaml\") . | sha256sum }}\n        checksum/router-configmap: {{ include (print $.Template.BasePath \"/router-configmap.yaml\") . | sha256sum }}\n        checksum/secrets: {{ include (print $.Template.BasePath \"/secrets.yaml\") . | sha256sum }}\n    {{- with .Values.components.distributor.annotations }}\n        {{- toYaml . | nindent 8 }}\n    {{- end }}\n    spec:\n      serviceAccountName: {{ template \"seleniumGrid.serviceAccount.fullname\" . }}\n      serviceAccount: {{ template \"seleniumGrid.serviceAccount.fullname\" . }}\n      containers:\n        - name: {{ template \"seleniumGrid.distributor.fullname\" . }}\n          {{- $imageTag := default .Values.global.seleniumGrid.imageTag .Values.components.distributor.imageTag }}\n          {{- $imageRegistry := default .Values.global.seleniumGrid.imageRegistry .Values.components.distributor.imageRegistry }}\n          image: {{ printf \"%s/%s:%s\" $imageRegistry .Values.components.distributor.imageName $imageTag }}\n          imagePullPolicy: {{ .Values.components.distributor.imagePullPolicy }}\n          env:\n            - name: KUBERNETES_NODE_HOST_IP\n              valueFrom:\n                fieldRef:\n                  fieldPath: status.hostIP\n            - name: SE_OTEL_SERVICE_NAME\n              value: '{{ template \"seleniumGrid.distributor.fullname\" . }}'\n            - name: SE_OTEL_RESOURCE_ATTRIBUTES\n              value: {{ include \"seleniumGrid.tracing.attributes\" $ | quote }}\n            - name: SE_DISTRIBUTOR_HOST\n              valueFrom:\n                fieldRef:\n                  fieldPath: status.podIP\n            - name: SE_DISTRIBUTOR_PORT\n              value: {{ .Values.components.distributor.port | quote }}\n            - name: SE_ROUTER_HOST\n              value: '{{ template \"seleniumGrid.router.fullname\" . }}'\n            - name: SE_ROUTER_PORT\n              value: {{ .Values.components.router.port | quote }}\n            - name: SE_SESSIONS_MAP_HOST\n              value: '{{ template \"seleniumGrid.sessionMap.fullname\" . }}'\n            - name: SE_SESSIONS_MAP_PORT\n              value: {{ .Values.components.sessionMap.port | quote }}\n            - name: SE_SESSION_QUEUE_HOST\n              value: '{{ template \"seleniumGrid.sessionQueue.fullname\" . }}'\n            - name: SE_SESSION_QUEUE_PORT\n              value: {{ .Values.components.sessionQueue.port | quote }}\n            {{- if .Values.components.distributor.newSessionThreadPoolSize }}\n            - name: SE_NEW_SESSION_THREAD_POOL_SIZE\n              value: {{ .Values.components.distributor.newSessionThreadPoolSize | quote }}\n            {{- else if (eq (include \"seleniumGrid.useKEDA\" $) \"true\") }}\n            - name: SE_NEW_SESSION_THREAD_POOL_SIZE\n              value: '{{ template \"seleniumGrid.autoscaling.distributor.threadPoolSize\" $ }}'\n            {{- end }}\n            {{- if not (empty (include \"seleniumGrid.autoscaling.distributor.slotSelector\" $)) }}\n            - name: SE_DISTRIBUTOR_SLOT_SELECTOR\n              value: {{ include \"seleniumGrid.autoscaling.distributor.slotSelector\" $ | quote }}\n            {{- end }}\n          {{- with .Values.components.extraEnvironmentVariables }}\n            {{- tpl (toYaml .) $ | nindent 12 }}\n          {{- end }}\n          {{- with .Values.components.distributor.extraEnvironmentVariables }}\n            {{- tpl (toYaml .) $ | nindent 12 }}\n          {{- end }}\n          envFrom:\n            - configMapRef:\n                name: {{ template \"seleniumGrid.distributor.configmap.fullname\" . }}\n            - configMapRef:\n                name: {{ template \"seleniumGrid.router.configmap.fullname\" . }}\n            - configMapRef:\n                name: {{ template \"seleniumGrid.eventBus.configmap.fullname\" . }}\n            - configMapRef:\n                name: {{ template \"seleniumGrid.logging.configmap.fullname\" . }}\n            - configMapRef:\n                name: {{ template \"seleniumGrid.server.configmap.fullname\" . }}\n            - secretRef:\n                name: {{ template \"seleniumGrid.common.secrets.fullname\" $ }}\n            {{- if $.Values.basicAuth.enabled }}\n            - secretRef:\n                name: {{ template \"seleniumGrid.basicAuth.secrets.fullname\" $ }}\n            {{- end }}\n          {{- with .Values.components.extraEnvFrom }}\n            {{- toYaml . | nindent 12 }}\n          {{- end }}\n          {{- with .Values.components.distributor.extraEnvFrom }}\n            {{- toYaml . | nindent 12 }}\n          {{- end }}\n          volumeMounts:\n          {{- range $fileName, $value := $.Values.distributorConfigMap.extraScripts }}\n            - name: {{ tpl (default (include \"seleniumGrid.distributor.configmap.fullname\" $) $.Values.distributorConfigMap.scriptVolumeMountName) $ | quote }}\n              mountPath: {{ $.Values.distributorConfigMap.extraScriptsDirectory }}/{{ $fileName }}\n              subPath: {{ $fileName }}\n          {{- end }}\n          {{- range $fileName, $value := $.Values.routerConfigMap.extraScripts }}\n            - name: {{ tpl (default (include \"seleniumGrid.router.configmap.fullname\" $) $.Values.routerConfigMap.scriptVolumeMountName) $ | quote }}\n              mountPath: {{ $.Values.routerConfigMap.extraScriptsDirectory }}/{{ $fileName }}\n              subPath: {{ $fileName }}\n          {{- end }}\n          {{- if eq (include \"seleniumGrid.server.secureConnection\" $) \"true\" }}\n            - name: {{ include \"seleniumGrid.tls.fullname\" .  | quote }}\n              mountPath: {{ .Values.tls.certVolumeMountPath | quote }}\n              readOnly: true\n          {{- end }}\n          ports:\n            - containerPort: {{ .Values.components.distributor.port }}\n              protocol: TCP\n        {{- if .Values.components.distributor.startupProbe.enabled }}\n          {{- with .Values.components.distributor.startupProbe }}\n          startupProbe:\n          {{- if (ne (include \"seleniumGrid.probe.fromUserDefine\" (dict \"values\" . \"root\" $)) \"{}\") }}\n            {{- include \"seleniumGrid.probe.fromUserDefine\" (dict \"values\" . \"root\" $) | nindent 10 }}\n          {{- else }}\n            httpGet:\n              scheme: {{ default (include \"seleniumGrid.probe.httpGet.schema\" $) .schema }}\n              path: {{ .path }}\n              port: {{ default ($.Values.components.distributor.port) .port }}\n          {{- end }}\n          {{- if (ne (include \"seleniumGrid.probe.settings\" .) \"{}\") }}\n            {{- include \"seleniumGrid.probe.settings\" . | nindent 12 }}\n          {{- end }}\n          {{- end }}\n        {{- end }}\n        {{- if .Values.components.distributor.readinessProbe.enabled }}\n          {{- with .Values.components.distributor.readinessProbe }}\n          readinessProbe:\n          {{- if (ne (include \"seleniumGrid.probe.fromUserDefine\" (dict \"values\" . \"root\" $)) \"{}\") }}\n            {{- include \"seleniumGrid.probe.fromUserDefine\" (dict \"values\" . \"root\" $) | nindent 10 }}\n          {{- else }}\n            httpGet:\n              scheme: {{ default (include \"seleniumGrid.probe.httpGet.schema\" $) .schema }}\n              path: {{ .path }}\n              port: {{ default ($.Values.components.distributor.port) .port }}\n          {{- end }}\n          {{- if (ne (include \"seleniumGrid.probe.settings\" .) \"{}\") }}\n            {{- include \"seleniumGrid.probe.settings\" . | nindent 12 }}\n          {{- end }}\n          {{- end }}\n        {{- end }}\n        {{- if .Values.components.distributor.livenessProbe.enabled }}\n          {{- with .Values.components.distributor.livenessProbe }}\n          livenessProbe:\n          {{- if (ne (include \"seleniumGrid.probe.fromUserDefine\" (dict \"values\" . \"root\" $)) \"{}\") }}\n            {{- include \"seleniumGrid.probe.fromUserDefine\" (dict \"values\" . \"root\" $) | nindent 10 }}\n          {{- else if eq $.Values.global.seleniumGrid.defaultComponentLivenessProbe \"exec\" }}\n            exec:\n              command: [\"bash\", \"-c\", \"{{ $.Values.distributorConfigMap.extraScriptsDirectory }}/distributorProbe.sh Liveness {{ include \"seleniumGrid.probe.stdout\" $ }}\"]\n          {{- else }}\n            httpGet:\n              scheme: {{ default (include \"seleniumGrid.probe.httpGet.schema\" $) .schema }}\n              path: {{ .path }}\n              port: {{ default ($.Values.components.distributor.port) .port }}\n          {{- end }}\n          {{- if (ne (include \"seleniumGrid.probe.settings\" .) \"{}\") }}\n            {{- include \"seleniumGrid.probe.settings\" . | nindent 12 }}\n          {{- end }}\n          {{- end }}\n        {{- end }}\n        {{- with .Values.components.distributor.resources }}\n          resources: {{- toYaml . | nindent 12 }}\n        {{- end }}\n        {{- with .Values.components.distributor.securityContext }}\n          securityContext: {{- toYaml . | nindent 12 }}\n        {{- end }}\n    {{- if or .Values.global.seleniumGrid.imagePullSecret .Values.components.distributor.imagePullSecret }}\n      imagePullSecrets:\n        - name: {{ default .Values.global.seleniumGrid.imagePullSecret .Values.components.distributor.imagePullSecret }}\n    {{- end }}\n    {{- with .Values.components.distributor.nodeSelector }}\n      nodeSelector: {{- toYaml . | nindent 8 }}\n    {{- end }}\n    {{- if or .Values.global.seleniumGrid.affinity .Values.components.distributor.affinity }}\n      {{- $affinityYaml := default .Values.global.seleniumGrid.affinity .Values.components.distributor.affinity }}\n      affinity: {{- toYaml $affinityYaml | nindent 8 }}\n    {{- end }}\n    {{- if or .Values.global.seleniumGrid.topologySpreadConstraints .Values.components.distributor.topologySpreadConstraints }}\n      {{- $topologySpreadConstraints := default .Values.global.seleniumGrid.topologySpreadConstraints .Values.components.distributor.topologySpreadConstraints }}\n      topologySpreadConstraints:\n      {{- range $constraint := $topologySpreadConstraints }}\n        - {{ toYaml $constraint | nindent 10 | trim }}\n        {{- if not $constraint.labelSelector }}\n          labelSelector:\n            matchLabels:\n              app: {{ template \"seleniumGrid.distributor.fullname\" $ }}\n        {{- end }}\n      {{- end }}\n    {{- end }}\n    {{- with .Values.components.distributor.tolerations }}\n      tolerations: {{ toYaml . | nindent 6 }}\n    {{- end }}\n    {{- with .Values.components.distributor.priorityClassName }}\n      priorityClassName: {{ . }}\n    {{- end }}\n      volumes:\n        - name: {{ tpl (default (include \"seleniumGrid.distributor.configmap.fullname\" $) $.Values.distributorConfigMap.scriptVolumeMountName) $ | quote }}\n          configMap:\n            name: {{ template \"seleniumGrid.distributor.configmap.fullname\" $ }}\n            defaultMode: {{ $.Values.distributorConfigMap.defaultMode }}\n        - name: {{ tpl (default (include \"seleniumGrid.router.configmap.fullname\" $) $.Values.routerConfigMap.scriptVolumeMountName) $ | quote }}\n          configMap:\n            name: {{ template \"seleniumGrid.router.configmap.fullname\" $ }}\n            defaultMode: {{ $.Values.routerConfigMap.defaultMode }}\n      {{- if eq (include \"seleniumGrid.server.secureConnection\" $) \"true\" }}\n        - name: {{ include \"seleniumGrid.tls.fullname\" .  | quote }}\n          secret:\n            secretName: {{ include \"seleniumGrid.tls.fullname\" .  | quote }}\n      {{- end }}\n{{- end }}\n"
  },
  {
    "path": "charts/selenium-grid/templates/distributor-service.yaml",
    "content": "{{- if .Values.isolateComponents }}\napiVersion: v1\nkind: Service\nmetadata:\n  name: {{ template \"seleniumGrid.distributor.fullname\" . }}\n  namespace: {{ .Release.Namespace }}\n  labels:\n    app: {{ template \"seleniumGrid.distributor.fullname\" . }}\n    {{- include \"seleniumGrid.commonLabels\" $ | nindent 4 }}\n{{- with .Values.components.distributor.serviceAnnotations }}\n  annotations: {{- toYaml . | nindent 4 }}\n{{- end }}\nspec:\n  selector:\n    app: {{ template \"seleniumGrid.distributor.fullname\" . }}\n    app.kubernetes.io/instance: {{ .Release.Name }}\n  type: {{ .Values.components.distributor.serviceType }}\n  ports:\n    - name: tcp-dist\n      protocol: TCP\n      port: {{ .Values.components.distributor.port }}\n      targetPort: {{ .Values.components.distributor.port }}\n      {{- if and (eq .Values.components.distributor.serviceType \"NodePort\") .Values.components.distributor.nodePort }}\n      nodePort: {{ .Values.components.distributor.nodePort }}\n      {{- end }}\n  {{- with .Values.components.distributor.serviceExternalTrafficPolicy }}\n  externalTrafficPolicy: {{ . }}\n  {{- end }}\n  {{- with .Values.components.distributor.serviceSessionAffinity }}\n  sessionAffinity: {{ . }}\n  {{- end }}\n{{- end }}\n"
  },
  {
    "path": "charts/selenium-grid/templates/edge-node-deployment.yaml",
    "content": "{{- range $i, $newNode := .Values.crossBrowsers.edgeNode }}\n{{- $nodeConfig := merge $newNode $.Values.edgeNode -}}\n{{- if and $nodeConfig.enabled ((eq (include \"seleniumGrid.useKEDA\" $) \"true\") | ternary (eq $.Values.autoscaling.scalingType \"deployment\") $nodeConfig.deploymentEnabled) }}\napiVersion: apps/v1\nkind: Deployment\nmetadata:\n  name: {{ template \"seleniumGrid.edgeNode.fullname\" (list $nodeConfig $) }}\n  namespace: {{ $.Release.Namespace }}\n  labels:\n    app: {{ template \"seleniumGrid.edgeNode.fullname\" (list $nodeConfig $) }}\n    app.kubernetes.io/name: {{ template \"seleniumGrid.edgeNode.fullname\" (list $nodeConfig $) }}\n    {{- include \"seleniumGrid.commonLabels\" $ | nindent 4 }}\n    {{- with $nodeConfig.labels }}\n      {{- toYaml . | nindent 4 }}\n    {{- end }}\nspec:\n  strategy:\n    {{- template \"seleniumGrid.updateStrategy\" (list $nodeConfig $.Values.global.seleniumGrid) }}\n  {{- if not (eq (include \"seleniumGrid.useKEDA\" $) \"true\") }}\n  replicas: {{ $nodeConfig.replicas }}\n  {{- else if $.Values.autoscaling.setReplicasInSpec }}\n  replicas: {{ default $.Values.autoscaling.scaledOptions.minReplicaCount ($nodeConfig.scaledOptions).minReplicaCount }}\n  {{- end }}\n  revisionHistoryLimit: {{ $.Values.global.seleniumGrid.revisionHistoryLimit }}\n  selector:\n    matchLabels:\n      app: {{ template \"seleniumGrid.edgeNode.fullname\" (list $nodeConfig $) }}\n      app.kubernetes.io/instance: {{ $.Release.Name }}\n{{- $podScope := deepCopy $ -}}\n{{- $_ := set $podScope \"name\" (include \"seleniumGrid.edgeNode.fullname\" (list $nodeConfig $)) -}}\n{{- $_ =  set $podScope \"node\" $nodeConfig -}}\n{{- $_ =  set $podScope \"recorder\" (mergeOverwrite $.Values.videoRecorder $nodeConfig.videoRecorder) -}}\n{{- $_ =  set $podScope \"uploader\" (get $.Values.videoRecorder ($podScope.recorder.uploader.name | toString)) -}}\n{{- include \"seleniumGrid.podTemplate\" $podScope | nindent 2 }}\n---\n{{- end }}\n{{- end }}\n"
  },
  {
    "path": "charts/selenium-grid/templates/edge-node-hpa.yaml",
    "content": "{{- range $i, $newNode := .Values.crossBrowsers.edgeNode }}\n{{- $nodeConfig := merge $newNode $.Values.edgeNode -}}\n{{- if and $nodeConfig.enabled (eq (include \"seleniumGrid.useKEDA\" $) \"true\") (eq $.Values.autoscaling.scalingType \"deployment\") }}\napiVersion: keda.sh/v1alpha1\nkind: ScaledObject\nmetadata:\n  name: {{ template \"seleniumGrid.edgeNode.fullname\" (list $nodeConfig $) }}\n  namespace: {{ $.Release.Namespace }}\n  annotations:\n    {{- with $.Values.autoscaling.annotations }}\n      {{- toYaml . | nindent 4 }}\n    {{- end }}\n  labels:\n    deploymentName: {{ template \"seleniumGrid.edgeNode.fullname\" (list $nodeConfig $) }}\n    {{- include \"seleniumGrid.commonLabels\" $ | nindent 4 }}\n    {{- include \"seleniumGrid.autoscalingLabels\" $ | nindent 4 }}\n    {{- with $nodeConfig.labels }}\n      {{- toYaml . | nindent 4 }}\n    {{- end }}\nspec:\n  {{- $podScope := deepCopy $ -}}\n  {{- $_ := set $podScope \"name\" (include \"seleniumGrid.edgeNode.fullname\" (list $nodeConfig $)) -}}\n  {{- $_ =  set $podScope \"node\" $nodeConfig -}}\n  {{- include \"seleniumGrid.autoscalingTemplate\" $podScope | nindent 2 }}\n---\n{{- end }}\n{{- end }}\n"
  },
  {
    "path": "charts/selenium-grid/templates/edge-node-scaledjob.yaml",
    "content": "{{- range $i, $newNode := .Values.crossBrowsers.edgeNode }}\n{{- $nodeConfig := merge $newNode $.Values.edgeNode -}}\n{{- if and $nodeConfig.enabled (eq (include \"seleniumGrid.useKEDA\" $) \"true\") (eq $.Values.autoscaling.scalingType \"job\") }}\napiVersion: keda.sh/v1alpha1\nkind: ScaledJob\nmetadata:\n  name: {{ template \"seleniumGrid.edgeNode.fullname\" (list $nodeConfig $) }}\n  namespace: {{ $.Release.Namespace }}\n  {{- if $.Values.autoscaling.annotations }}\n  annotations:\n    {{- with $.Values.autoscaling.annotations }}\n      {{- toYaml . | nindent 4 }}\n    {{- end }}\n  {{- end }}\n  labels:\n    app: {{ template \"seleniumGrid.edgeNode.fullname\" (list $nodeConfig $) }}\n    app.kubernetes.io/name: {{ template \"seleniumGrid.edgeNode.fullname\" (list $nodeConfig $) }}\n    {{- include \"seleniumGrid.commonLabels\" $ | nindent 4 }}\n    {{- include \"seleniumGrid.autoscalingLabels\" $ | nindent 4 }}\n    {{- with $nodeConfig.labels }}\n      {{- toYaml . | nindent 4 }}\n    {{- end }}\nspec:\n  {{- $podScope := deepCopy $ -}}\n  {{- $_ := set $podScope \"name\" (include \"seleniumGrid.edgeNode.fullname\" (list $nodeConfig $)) -}}\n  {{- $_ =  set $podScope \"node\" $nodeConfig -}}\n  {{- $_ =  set $podScope \"recorder\" (mergeOverwrite $.Values.videoRecorder $nodeConfig.videoRecorder) -}}\n  {{- $_ =  set $podScope \"uploader\" (get $.Values.videoRecorder ($podScope.recorder.uploader.name | toString)) -}}\n  {{- $_ =  set $podScope \"podTemplate\" (include \"seleniumGrid.podTemplate\" $podScope | fromYaml) }}\n  {{- include \"seleniumGrid.autoscalingTemplate\" $podScope | nindent 2 }}\n---\n{{- end }}\n{{- end }}\n"
  },
  {
    "path": "charts/selenium-grid/templates/edge-node-service.yaml",
    "content": "{{- range $i, $newNode := .Values.crossBrowsers.edgeNode }}\n{{- $nodeConfig := merge $newNode $.Values.edgeNode -}}\n{{- if and $nodeConfig.enabled $nodeConfig.service.enabled }}\napiVersion: v1\nkind: Service\nmetadata:\n  name: {{ template \"seleniumGrid.edgeNode.fullname\" (list $nodeConfig $) }}\n  namespace: {{ $.Release.Namespace }}\n  labels:\n    name: {{ template \"seleniumGrid.edgeNode.fullname\" (list $nodeConfig $) }}\n    {{- include \"seleniumGrid.commonLabels\" $ | nindent 4 }}\n  {{- with $nodeConfig.service.annotations }}\n  annotations:\n    {{- toYaml . | nindent 4 }}\n  {{- end }}\nspec:\n  type: {{ $nodeConfig.service.type }}\n  selector:\n    app: {{ template \"seleniumGrid.edgeNode.fullname\" (list $nodeConfig $) }}\n    app.kubernetes.io/instance: {{ $.Release.Name }}\n  {{- if and (eq $nodeConfig.service.type \"LoadBalancer\") ($nodeConfig.service.loadBalancerIP) }}\n  loadBalancerIP: {{ $nodeConfig.service.loadBalancerIP }}\n  {{- end }}\n  ports:\n    - name: tcp-edge\n      protocol: TCP\n      port: {{ $nodeConfig.port }}\n      targetPort: {{ $nodeConfig.port }}\n      {{- if and (eq $nodeConfig.service.type \"NodePort\") $nodeConfig.nodePort }}\n      nodePort: {{ $nodeConfig.nodePort }}\n      {{- end }}\n  {{- with $nodeConfig.service.ports }}\n    {{- range . }}\n    - name: {{ .name }}\n      port: {{ .port }}\n      targetPort: {{ .targetPort }}\n      {{- if .protocol }}\n      protocol: {{ .protocol }}\n      {{- end }}\n      {{- if and (eq $nodeConfig.service.type \"NodePort\") .nodePort }}\n      nodePort: {{ .nodePort }}\n      {{- end }}\n    {{- end }}\n  {{- end }}\n  {{- with $nodeConfig.service.externalTrafficPolicy }}\n  externalTrafficPolicy: {{ . }}\n  {{- end }}\n  {{- with $nodeConfig.service.sessionAffinity }}\n  sessionAffinity: {{ . }}\n  {{- end }}\n---\n{{- end }}\n{{- end }}\n"
  },
  {
    "path": "charts/selenium-grid/templates/event-bus-configmap.yaml",
    "content": "{{- $eventBusHost := printf \"%s\" (ternary (include \"seleniumGrid.eventBus.fullname\" .) (include \"seleniumGrid.hub.fullname\" .) .Values.isolateComponents) -}}\n{{- $eventBusPublishPort := ternary .Values.components.eventBus.publishPort .Values.hub.publishPort .Values.isolateComponents -}}\n{{- $eventBusSubscribePort := ternary .Values.components.eventBus.subscribePort .Values.hub.subscribePort .Values.isolateComponents -}}\napiVersion: v1\nkind: ConfigMap\nmetadata:\n  name: {{ template \"seleniumGrid.eventBus.configmap.fullname\" . }}\n  namespace: {{ .Release.Namespace }}\n{{- with .Values.busConfigMap.annotations }}\n  annotations: {{- toYaml . | nindent 4 }}\n{{- end }}\n  labels:\n    {{- include \"seleniumGrid.commonLabels\" $ | nindent 4 }}\ndata:\n  SE_EVENT_BUS_HOST: {{ $eventBusHost | quote }}\n  SE_EVENT_BUS_PUBLISH_PORT: {{ $eventBusPublishPort | quote }}\n  SE_EVENT_BUS_SUBSCRIBE_PORT: {{ $eventBusSubscribePort | quote }}\n{{- range $key, $value := $.Values.busConfigMap.data }}\n  {{ $key }}: {{ tpl $value $ | quote }}\n{{- end }}\n"
  },
  {
    "path": "charts/selenium-grid/templates/event-bus-deployment.yaml",
    "content": "{{- if .Values.isolateComponents }}\napiVersion: apps/v1\nkind: Deployment\nmetadata:\n  name: {{ template \"seleniumGrid.eventBus.fullname\" . }}\n  namespace: {{ .Release.Namespace }}\n  labels: &event_bus_labels\n    app: {{ template \"seleniumGrid.eventBus.fullname\" . }}\n    app.kubernetes.io/name: {{ template \"seleniumGrid.eventBus.fullname\" . }}\n    {{- include \"seleniumGrid.commonLabels\" $ | nindent 4 }}\nspec:\n  strategy:\n    {{- template \"seleniumGrid.updateStrategy\" (list $.Values.components.eventBus $.Values.global.seleniumGrid) }}\n  replicas: {{ max 1 (.Values.components.eventBus.replicas | int) }}\n  revisionHistoryLimit: {{ .Values.global.seleniumGrid.revisionHistoryLimit }}\n  selector:\n    matchLabels:\n      app: {{ template \"seleniumGrid.eventBus.fullname\" . }}\n      app.kubernetes.io/instance: {{ .Release.Name }}\n  template:\n    metadata:\n      labels: *event_bus_labels\n      annotations:\n        checksum/logging-configmap: {{ include (print $.Template.BasePath \"/logging-configmap.yaml\") . | sha256sum }}\n        checksum/server-configmap: {{ include (print $.Template.BasePath \"/server-configmap.yaml\") . | sha256sum }}\n        checksum/secrets: {{ include (print $.Template.BasePath \"/secrets.yaml\") . | sha256sum }}\n    {{- with .Values.components.eventBus.annotations }}\n        {{- toYaml . | nindent 8 }}\n    {{- end }}\n    spec:\n      serviceAccountName: {{ template \"seleniumGrid.serviceAccount.fullname\" . }}\n      serviceAccount: {{ template \"seleniumGrid.serviceAccount.fullname\" . }}\n      containers:\n        - name: {{ template \"seleniumGrid.eventBus.fullname\" . }}\n          {{- $imageTag := default .Values.global.seleniumGrid.imageTag .Values.components.eventBus.imageTag }}\n          {{- $imageRegistry := default .Values.global.seleniumGrid.imageRegistry .Values.components.eventBus.imageRegistry }}\n          image: {{ printf \"%s/%s:%s\" $imageRegistry .Values.components.eventBus.imageName $imageTag }}\n          imagePullPolicy: {{ .Values.components.eventBus.imagePullPolicy }}\n          ports:\n            - containerPort: {{ .Values.components.eventBus.port }}\n              protocol: TCP\n            - containerPort: {{ .Values.components.eventBus.publishPort }}\n              protocol: TCP\n            - containerPort: {{ .Values.components.eventBus.subscribePort }}\n              protocol: TCP\n          env:\n            - name: KUBERNETES_NODE_HOST_IP\n              valueFrom:\n                fieldRef:\n                  fieldPath: status.hostIP\n            - name: SE_OTEL_SERVICE_NAME\n              value: '{{ template \"seleniumGrid.eventBus.fullname\" . }}'\n            - name: SE_OTEL_RESOURCE_ATTRIBUTES\n              value: {{ include \"seleniumGrid.tracing.attributes\" $ | quote }}\n            - name: SE_EVENT_BUS_HOST\n              valueFrom:\n                fieldRef:\n                  fieldPath: status.podIP\n            - name: SE_EVENT_BUS_PORT\n              value: {{ .Values.components.eventBus.port | quote }}\n          {{- with .Values.components.extraEnvironmentVariables }}\n            {{- tpl (toYaml .) $ | nindent 12 }}\n          {{- end }}\n          {{- with .Values.components.eventBus.extraEnvironmentVariables }}\n            {{- tpl (toYaml .) $ | nindent 12 }}\n          {{- end }}\n          envFrom:\n            - configMapRef:\n                name: {{ template \"seleniumGrid.logging.configmap.fullname\" $ }}\n            - configMapRef:\n                name: {{ template \"seleniumGrid.server.configmap.fullname\" $ }}\n            - secretRef:\n                name: {{ template \"seleniumGrid.common.secrets.fullname\" $ }}\n            {{- if $.Values.basicAuth.enabled }}\n            - secretRef:\n                name: {{ template \"seleniumGrid.basicAuth.secrets.fullname\" $ }}\n            {{- end }}\n          {{- with .Values.components.extraEnvFrom }}\n            {{- toYaml . | nindent 12 }}\n          {{- end }}\n          {{- with .Values.components.eventBus.extraEnvFrom }}\n            {{- toYaml . | nindent 12 }}\n          {{- end }}\n          {{- if eq (include \"seleniumGrid.server.secureConnection\" $) \"true\" }}\n          volumeMounts:\n            - name: {{ include \"seleniumGrid.tls.fullname\" .  | quote }}\n              mountPath: {{ .Values.tls.certVolumeMountPath | quote }}\n              readOnly: true\n          {{- end }}\n        {{- with .Values.components.eventBus.resources }}\n          resources: {{- toYaml . | nindent 12 }}\n        {{- end }}\n        {{- with .Values.components.eventBus.securityContext }}\n          securityContext: {{- toYaml . | nindent 12 }}\n        {{- end }}\n    {{- with .Values.components.eventBus.nodeSelector }}\n      nodeSelector: {{- toYaml . | nindent 8 }}\n    {{- end }}\n    {{- if or .Values.global.seleniumGrid.affinity .Values.components.eventBus.affinity }}\n      {{- $affinityYaml := default .Values.global.seleniumGrid.affinity .Values.components.eventBus.affinity }}\n      affinity: {{- toYaml $affinityYaml | nindent 8 }}\n    {{- end }}\n    {{- if or .Values.global.seleniumGrid.topologySpreadConstraints .Values.components.eventBus.topologySpreadConstraints }}\n      {{- $topologySpreadConstraints := default .Values.global.seleniumGrid.topologySpreadConstraints .Values.components.eventBus.topologySpreadConstraints }}\n      topologySpreadConstraints:\n      {{- range $constraint := $topologySpreadConstraints }}\n        - {{ toYaml $constraint | nindent 10 | trim }}\n        {{- if not $constraint.labelSelector }}\n          labelSelector:\n            matchLabels:\n              app: {{ template \"seleniumGrid.eventBus.fullname\" $ }}\n        {{- end }}\n      {{- end }}\n    {{- end }}\n    {{- with .Values.components.eventBus.tolerations }}\n      tolerations: {{ toYaml . | nindent 6 }}\n    {{- end }}\n    {{- if or .Values.global.seleniumGrid.imagePullSecret .Values.components.eventBus.imagePullSecret }}\n      imagePullSecrets:\n        - name: {{ default .Values.global.seleniumGrid.imagePullSecret .Values.components.eventBus.imagePullSecret }}\n    {{- end }}\n    {{- with .Values.components.eventBus.priorityClassName }}\n      priorityClassName: {{ . }}\n    {{- end }}\n      {{- if eq (include \"seleniumGrid.server.secureConnection\" $) \"true\" }}\n      volumes:\n        - name: {{ include \"seleniumGrid.tls.fullname\" .  | quote }}\n          secret:\n            secretName: {{ include \"seleniumGrid.tls.fullname\" .  | quote }}\n      {{- end }}\n{{- end }}\n"
  },
  {
    "path": "charts/selenium-grid/templates/event-bus-service.yaml",
    "content": "{{- if .Values.isolateComponents }}\napiVersion: v1\nkind: Service\nmetadata:\n  name: {{ template \"seleniumGrid.eventBus.fullname\" . }}\n  namespace: {{ .Release.Namespace }}\n  labels:\n    app: {{ template \"seleniumGrid.eventBus.fullname\" . }}\n    {{- include \"seleniumGrid.commonLabels\" $ | nindent 4 }}\n{{- with .Values.components.eventBus.serviceAnnotations }}\n  annotations: {{- toYaml . | nindent 4 }}\n{{- end }}\nspec:\n  selector:\n    app: {{ template \"seleniumGrid.eventBus.fullname\" . }}\n    app.kubernetes.io/instance: {{ .Release.Name }}\n  type: {{ .Values.components.eventBus.serviceType }}\n  {{- if and (eq .Values.components.eventBus.serviceType \"ClusterIP\") ( .Values.components.eventBus.clusterIP ) }}\n  clusterIP: {{ .Values.components.eventBus.clusterIP }}\n  {{- end }}\n  {{- if and (eq .Values.components.eventBus.serviceType \"ExternalName\") ( .Values.components.eventBus.externalName ) }}\n  externalName: {{ .Values.components.eventBus.externalName }}\n  {{- end }}\n  {{- if and (eq .Values.components.eventBus.serviceType \"LoadBalancer\") ( .Values.components.eventBus.loadBalancerIP ) }}\n  loadBalancerIP: {{ .Values.components.eventBus.loadBalancerIP }}\n  {{- end }}\n  ports:\n    - name: http-evtbus\n      protocol: TCP\n      port: {{ .Values.components.eventBus.port }}\n      targetPort: {{ .Values.components.eventBus.port }}\n      {{- if and (eq .Values.components.eventBus.serviceType \"NodePort\") .Values.components.eventBus.nodePort }}\n      nodePort: {{ .Values.components.eventBus.nodePort }}\n      {{- end }}\n    - name: tcp-evtbus-pub\n      protocol: TCP\n      port: {{ .Values.components.eventBus.publishPort }}\n      targetPort: {{ .Values.components.eventBus.publishPort }}\n      {{- if and (eq .Values.components.eventBus.serviceType \"NodePort\") .Values.components.eventBus.publishNodePort }}\n      nodePort: {{ .Values.components.eventBus.publishNodePort }}\n      {{- end }}\n    - name: tcp-evtbus-sub\n      protocol: TCP\n      port: {{ .Values.components.eventBus.subscribePort }}\n      targetPort: {{ .Values.components.eventBus.subscribePort }}\n      {{- if and (eq .Values.components.eventBus.serviceType \"NodePort\") .Values.components.eventBus.subscribeNodePort }}\n      nodePort: {{ .Values.components.eventBus.subscribeNodePort }}\n      {{- end }}\n  {{- with .Values.components.eventBus.serviceExternalTrafficPolicy }}\n  externalTrafficPolicy: {{ . }}\n  {{- end }}\n  {{- with .Values.components.eventBus.serviceSessionAffinity }}\n  sessionAffinity: {{ . }}\n  {{- end }}\n{{- end }}\n"
  },
  {
    "path": "charts/selenium-grid/templates/firefox-node-deployment.yaml",
    "content": "{{- range $i, $newNode := .Values.crossBrowsers.firefoxNode }}\n{{- $nodeConfig := merge $newNode $.Values.firefoxNode -}}\n{{- if and $nodeConfig.enabled ((eq (include \"seleniumGrid.useKEDA\" $) \"true\") | ternary (eq $.Values.autoscaling.scalingType \"deployment\")  $nodeConfig.deploymentEnabled) }}\napiVersion: apps/v1\nkind: Deployment\nmetadata:\n  name: {{ template \"seleniumGrid.firefoxNode.fullname\" (list $nodeConfig $) }}\n  namespace: {{ $.Release.Namespace }}\n  labels:\n    app: {{ template \"seleniumGrid.firefoxNode.fullname\" (list $nodeConfig $) }}\n    app.kubernetes.io/name: {{ template \"seleniumGrid.firefoxNode.fullname\" (list $nodeConfig $) }}\n    {{- include \"seleniumGrid.commonLabels\" $ | nindent 4 }}\n    {{- with $nodeConfig.labels }}\n      {{- toYaml . | nindent 4 }}\n    {{- end }}\nspec:\n  strategy:\n    {{- template \"seleniumGrid.updateStrategy\" (list $nodeConfig $.Values.global.seleniumGrid) }}\n  {{- if not (eq (include \"seleniumGrid.useKEDA\" $) \"true\") }}\n  replicas: {{ $nodeConfig.replicas }}\n  {{- else if $.Values.autoscaling.setReplicasInSpec }}\n  replicas: {{ default $.Values.autoscaling.scaledOptions.minReplicaCount ($nodeConfig.scaledOptions).minReplicaCount }}\n  {{- end }}\n  revisionHistoryLimit: {{ $.Values.global.seleniumGrid.revisionHistoryLimit }}\n  selector:\n    matchLabels:\n      app: {{ template \"seleniumGrid.firefoxNode.fullname\" (list $nodeConfig $) }}\n      app.kubernetes.io/instance: {{ $.Release.Name }}\n{{- $podScope := deepCopy $ -}}\n{{- $_ := set $podScope \"name\" (include \"seleniumGrid.firefoxNode.fullname\" (list $nodeConfig $)) -}}\n{{- $_ =  set $podScope \"node\" $nodeConfig -}}\n{{- $_ =  set $podScope \"recorder\" (mergeOverwrite $.Values.videoRecorder $nodeConfig.videoRecorder) -}}\n{{- $_ =  set $podScope \"uploader\" (get $.Values.videoRecorder ($podScope.recorder.uploader.name | toString)) -}}\n{{- include \"seleniumGrid.podTemplate\" $podScope | nindent 2 }}\n---\n{{- end }}\n{{- end }}\n"
  },
  {
    "path": "charts/selenium-grid/templates/firefox-node-hpa.yaml",
    "content": "{{- range $i, $newNode := .Values.crossBrowsers.firefoxNode }}\n{{- $nodeConfig := merge $newNode $.Values.firefoxNode -}}\n{{- if and $nodeConfig.enabled (eq (include \"seleniumGrid.useKEDA\" $) \"true\") (eq $.Values.autoscaling.scalingType \"deployment\") }}\napiVersion: keda.sh/v1alpha1\nkind: ScaledObject\nmetadata:\n  name: {{ template \"seleniumGrid.firefoxNode.fullname\" (list $nodeConfig $) }}\n  namespace: {{ $.Release.Namespace }}\n  annotations:\n    {{- with $.Values.autoscaling.annotations }}\n      {{- toYaml . | nindent 4 }}\n    {{- end }}\n  labels:\n    deploymentName: {{ template \"seleniumGrid.firefoxNode.fullname\" (list $nodeConfig $) }}\n    {{- include \"seleniumGrid.commonLabels\" $ | nindent 4 }}\n    {{- include \"seleniumGrid.autoscalingLabels\" $ | nindent 4 }}\n    {{- with $nodeConfig.labels }}\n      {{- toYaml . | nindent 4 }}\n    {{- end }}\nspec:\n  {{- $podScope := deepCopy $ -}}\n  {{- $_ := set $podScope \"name\" (include \"seleniumGrid.firefoxNode.fullname\" (list $nodeConfig $)) -}}\n  {{- $_ =  set $podScope \"node\" $nodeConfig -}}\n  {{- include \"seleniumGrid.autoscalingTemplate\" $podScope | nindent 2 }}\n---\n{{- end }}\n{{- end }}\n"
  },
  {
    "path": "charts/selenium-grid/templates/firefox-node-scaledjob.yaml",
    "content": "{{- range $i, $newNode := .Values.crossBrowsers.firefoxNode }}\n{{- $nodeConfig := merge $newNode $.Values.firefoxNode -}}\n{{- if and $nodeConfig.enabled (eq (include \"seleniumGrid.useKEDA\" $) \"true\") (eq $.Values.autoscaling.scalingType \"job\") }}\napiVersion: keda.sh/v1alpha1\nkind: ScaledJob\nmetadata:\n  name: {{ template \"seleniumGrid.firefoxNode.fullname\" (list $nodeConfig $) }}\n  namespace: {{ $.Release.Namespace }}\n  {{- if $.Values.autoscaling.annotations }}\n  annotations:\n    {{- with $.Values.autoscaling.annotations }}\n      {{- toYaml . | nindent 4 }}\n    {{- end }}\n  {{- end }}\n  labels:\n    app: {{ template \"seleniumGrid.firefoxNode.fullname\" (list $nodeConfig $) }}\n    app.kubernetes.io/name: {{ template \"seleniumGrid.firefoxNode.fullname\" (list $nodeConfig $) }}\n    {{- include \"seleniumGrid.commonLabels\" $ | nindent 4 }}\n    {{- include \"seleniumGrid.autoscalingLabels\" $ | nindent 4 }}\n    {{- with $nodeConfig.labels }}\n      {{- toYaml . | nindent 4 }}\n    {{- end }}\nspec:\n  {{- $podScope := deepCopy $ -}}\n  {{- $_ := set $podScope \"name\" (include \"seleniumGrid.firefoxNode.fullname\" (list $nodeConfig $)) -}}\n  {{- $_ =  set $podScope \"node\" $nodeConfig -}}\n  {{- $_ =  set $podScope \"recorder\" (mergeOverwrite $.Values.videoRecorder $nodeConfig.videoRecorder) -}}\n  {{- $_ =  set $podScope \"uploader\" (get $.Values.videoRecorder ($podScope.recorder.uploader.name | toString)) -}}\n  {{- $_ =  set $podScope \"podTemplate\" (include \"seleniumGrid.podTemplate\" $podScope | fromYaml) }}\n  {{- include \"seleniumGrid.autoscalingTemplate\" $podScope | nindent 2 }}\n---\n{{- end }}\n{{- end }}\n"
  },
  {
    "path": "charts/selenium-grid/templates/firefox-node-service.yaml",
    "content": "{{- range $i, $newNode := .Values.crossBrowsers.firefoxNode }}\n{{- $nodeConfig := merge $newNode $.Values.firefoxNode -}}\n{{- if and $nodeConfig.enabled $.Values.firefoxNode.service.enabled }}\napiVersion: v1\nkind: Service\nmetadata:\n  name: {{ template \"seleniumGrid.firefoxNode.fullname\" (list $nodeConfig $) }}\n  namespace: {{ $.Release.Namespace }}\n  labels:\n    name: {{ template \"seleniumGrid.firefoxNode.fullname\" (list $nodeConfig $) }}\n    {{- include \"seleniumGrid.commonLabels\" $ | nindent 4 }}\n  {{- with $nodeConfig.service.annotations }}\n  annotations:\n    {{- toYaml . | nindent 4 }}\n  {{- end }}\nspec:\n  type: {{ $nodeConfig.service.type }}\n  selector:\n    app: {{ template \"seleniumGrid.firefoxNode.fullname\" (list $nodeConfig $) }}\n    app.kubernetes.io/instance: {{ $.Release.Name }}\n  {{- if and (eq $nodeConfig.service.type \"LoadBalancer\") ($nodeConfig.service.loadBalancerIP) }}\n  loadBalancerIP: {{ $nodeConfig.service.loadBalancerIP }}\n  {{- end }}\n  ports:\n    - name: tcp-firefox\n      protocol: TCP\n      port: {{ $nodeConfig.port }}\n      targetPort: {{ $nodeConfig.port }}\n      {{- if and (eq $nodeConfig.service.type \"NodePort\") $nodeConfig.nodePort }}\n      nodePort: {{ $nodeConfig.nodePort }}\n      {{- end }}\n  {{- with $nodeConfig.service.ports }}\n    {{- range . }}\n    - name: {{ .name }}\n      port: {{ .port }}\n      targetPort: {{ .targetPort }}\n      {{- if .protocol }}\n      protocol: {{ .protocol }}\n      {{- end }}\n      {{- if and (eq $nodeConfig.service.type \"NodePort\") .nodePort }}\n      nodePort: {{ .nodePort }}\n      {{- end }}\n    {{- end }}\n  {{- end }}\n  {{- with $nodeConfig.service.externalTrafficPolicy }}\n  externalTrafficPolicy: {{ . }}\n  {{- end }}\n  {{- with $nodeConfig.service.sessionAffinity }}\n  sessionAffinity: {{ . }}\n  {{- end }}\n---\n{{- end }}\n{{- end }}\n"
  },
  {
    "path": "charts/selenium-grid/templates/hub-deployment.yaml",
    "content": "{{- if (not .Values.isolateComponents) }}\napiVersion: apps/v1\nkind: Deployment\nmetadata:\n  name: {{ template \"seleniumGrid.hub.fullname\" . }}\n  namespace: {{ .Release.Namespace }}\n  labels: &hub_labels\n    app: {{ template \"seleniumGrid.hub.fullname\" . }}\n    app.kubernetes.io/name: {{ template \"seleniumGrid.hub.fullname\" . }}\n    {{- include \"seleniumGrid.commonLabels\" $ | nindent 4 }}\n    {{- with .Values.hub.labels }}\n      {{- toYaml . | nindent 4 }}\n    {{- end }}\nspec:\n  strategy:\n    {{- template \"seleniumGrid.updateStrategy\" (list $.Values.hub $.Values.global.seleniumGrid) }}\n  replicas: {{ max 1 (.Values.hub.replicas | int) }}\n  revisionHistoryLimit: {{ .Values.global.seleniumGrid.revisionHistoryLimit }}\n  selector:\n    matchLabels:\n      app: {{ template \"seleniumGrid.hub.fullname\" . }}\n      app.kubernetes.io/instance: {{ .Release.Name }}\n  template:\n    metadata:\n      labels: *hub_labels\n      annotations:\n        checksum/logging-configmap: {{ include (print $.Template.BasePath \"/logging-configmap.yaml\") . | sha256sum }}\n        checksum/server-configmap: {{ include (print $.Template.BasePath \"/server-configmap.yaml\") . | sha256sum }}\n        checksum/distributor-configmap: {{ include (print $.Template.BasePath \"/distributor-configmap.yaml\") . | sha256sum }}\n        checksum/router-configmap: {{ include (print $.Template.BasePath \"/router-configmap.yaml\") . | sha256sum }}\n        checksum/secrets: {{ include (print $.Template.BasePath \"/secrets.yaml\") . | sha256sum }}\n        checksum/tls-cert-secret: {{ include (print $.Template.BasePath \"/tls-cert-secret.yaml\") . | sha256sum }}\n    {{- with .Values.hub.annotations }}\n        {{- toYaml . | nindent 8 }}\n    {{- end }}\n    spec:\n      serviceAccountName: {{ template \"seleniumGrid.serviceAccount.fullname\" . }}\n      serviceAccount: {{ template  \"seleniumGrid.serviceAccount.fullname\" . }}\n      containers:\n        - name: {{ template \"seleniumGrid.hub.fullname\" . }}\n          {{- $imageTag := default .Values.global.seleniumGrid.imageTag .Values.hub.imageTag }}\n          {{- $imageRegistry := default .Values.global.seleniumGrid.imageRegistry .Values.hub.imageRegistry }}\n          image: {{ printf \"%s/%s:%s\" $imageRegistry .Values.hub.imageName $imageTag }}\n          imagePullPolicy: {{ .Values.hub.imagePullPolicy }}\n          ports:\n            - containerPort: {{ .Values.hub.port }}\n              protocol: TCP\n            - containerPort: {{ .Values.hub.publishPort }}\n              protocol: TCP\n            - containerPort: {{ .Values.hub.subscribePort }}\n              protocol: TCP\n        {{- if .Values.hub.startupProbe.enabled }}\n          {{- with .Values.hub.startupProbe }}\n          startupProbe:\n          {{- if (ne (include \"seleniumGrid.probe.fromUserDefine\" (dict \"values\" . \"root\" $)) \"{}\") }}\n            {{- include \"seleniumGrid.probe.fromUserDefine\" (dict \"values\" . \"root\" $) | nindent 10 }}\n          {{- else }}\n            httpGet:\n              scheme: {{ default (include \"seleniumGrid.probe.httpGet.schema\" $) .schema }}\n              path: {{ .path }}\n              port: {{ default ($.Values.hub.port) .port }}\n          {{- end }}\n          {{- if (ne (include \"seleniumGrid.probe.settings\" .) \"{}\") }}\n            {{- include \"seleniumGrid.probe.settings\" . | nindent 12 }}\n          {{- end }}\n          {{- end }}\n        {{- end }}\n        {{- if .Values.hub.readinessProbe.enabled }}\n          {{- with .Values.hub.readinessProbe }}\n          readinessProbe:\n          {{- if (ne (include \"seleniumGrid.probe.fromUserDefine\" (dict \"values\" . \"root\" $)) \"{}\") }}\n            {{- include \"seleniumGrid.probe.fromUserDefine\" (dict \"values\" . \"root\" $) | nindent 10 }}\n          {{- else }}\n            httpGet:\n              scheme: {{ default (include \"seleniumGrid.probe.httpGet.schema\" $) .schema }}\n              path: {{ .path }}\n              port: {{ default ($.Values.hub.port) .port }}\n          {{- end }}\n          {{- if (ne (include \"seleniumGrid.probe.settings\" .) \"{}\") }}\n            {{- include \"seleniumGrid.probe.settings\" . | nindent 12 }}\n          {{- end }}\n          {{- end }}\n        {{- end }}\n        {{- if .Values.hub.livenessProbe.enabled }}\n          {{- with .Values.hub.livenessProbe }}\n          livenessProbe:\n          {{- if (ne (include \"seleniumGrid.probe.fromUserDefine\" (dict \"values\" . \"root\" $)) \"{}\") }}\n            {{- include \"seleniumGrid.probe.fromUserDefine\" (dict \"values\" . \"root\" $) | nindent 10 }}\n          {{- else if eq $.Values.global.seleniumGrid.defaultComponentLivenessProbe \"exec\" }}\n            exec:\n              command: [\"bash\", \"-c\", \"{{ $.Values.distributorConfigMap.extraScriptsDirectory }}/distributorProbe.sh Liveness {{ include \"seleniumGrid.probe.stdout\" $ }}\"]\n          {{- else }}\n            httpGet:\n              scheme: {{ default (include \"seleniumGrid.probe.httpGet.schema\" $) .schema }}\n              path: {{ .path }}\n              port: {{ default ($.Values.hub.port) .port }}\n          {{- end }}\n          {{- if (ne (include \"seleniumGrid.probe.settings\" .) \"{}\") }}\n            {{- include \"seleniumGrid.probe.settings\" . | nindent 12 }}\n          {{- end }}\n          {{- end }}\n        {{- end }}\n          env:\n            - name: KUBERNETES_NODE_HOST_IP\n              valueFrom:\n                fieldRef:\n                  fieldPath: status.hostIP\n            - name: SE_OTEL_SERVICE_NAME\n              value: '{{ template \"seleniumGrid.hub.fullname\" . }}'\n            - name: SE_OTEL_RESOURCE_ATTRIBUTES\n              value: {{ include \"seleniumGrid.tracing.attributes\" $ | quote }}\n            - name: SE_HUB_HOST\n              valueFrom:\n                fieldRef:\n                  fieldPath: status.podIP\n            - name: SE_HUB_PORT\n              value: {{ .Values.hub.port | quote }}\n            {{- with .Values.hub.subPath }}\n            - name: SE_SUB_PATH\n              value: {{ include \"utils.trimTrailingSlash\" . | quote }}\n            {{- end }}\n            {{- if .Values.hub.disableUI }}\n            - name: SE_DISABLE_UI\n              value: {{ .Values.hub.disableUI | quote }}\n            {{- end }}\n            {{- if .Values.hub.newSessionThreadPoolSize }}\n            - name: SE_NEW_SESSION_THREAD_POOL_SIZE\n              value: {{ .Values.hub.newSessionThreadPoolSize | quote }}\n            {{- else if (eq (include \"seleniumGrid.useKEDA\" $) \"true\") }}\n            - name: SE_NEW_SESSION_THREAD_POOL_SIZE\n              value: '{{ template \"seleniumGrid.autoscaling.distributor.threadPoolSize\" $ }}'\n            {{- end }}\n            {{- if not (empty (include \"seleniumGrid.autoscaling.distributor.slotSelector\" $)) }}\n            - name: SE_DISTRIBUTOR_SLOT_SELECTOR\n              value: {{ include \"seleniumGrid.autoscaling.distributor.slotSelector\" $ | quote }}\n            {{- end }}\n            {{- $sessionRequestTimeout := default $.Values.global.seleniumGrid.sessionRequestTimeout $.Values.hub.sessionRequestTimeout | int64 }}\n            - name: SE_SESSION_REQUEST_TIMEOUT\n              value: {{ $sessionRequestTimeout | quote }}\n          {{- with .Values.hub.extraEnvironmentVariables }}\n            {{- tpl (toYaml .) $ | nindent 12 }}\n          {{- end }}\n          envFrom:\n            - configMapRef:\n                name: {{ template \"seleniumGrid.distributor.configmap.fullname\" $ }}\n            - configMapRef:\n                name: {{ template \"seleniumGrid.router.configmap.fullname\" $ }}\n            - configMapRef:\n                name: {{ template \"seleniumGrid.logging.configmap.fullname\" $ }}\n            - configMapRef:\n                name: {{ template \"seleniumGrid.server.configmap.fullname\" $ }}\n            - secretRef:\n                name: {{ template \"seleniumGrid.common.secrets.fullname\" $ }}\n            {{- if $.Values.basicAuth.enabled }}\n            - secretRef:\n                name: {{ template \"seleniumGrid.basicAuth.secrets.fullname\" $ }}\n            {{- end }}\n          {{- with .Values.hub.extraEnvFrom }}\n              {{- toYaml . | nindent 12 }}\n          {{- end }}\n          volumeMounts:\n          {{- range $fileName, $value := $.Values.distributorConfigMap.extraScripts }}\n            - name: {{ tpl (default (include \"seleniumGrid.distributor.configmap.fullname\" $) $.Values.distributorConfigMap.scriptVolumeMountName) $ }}\n              mountPath: {{ $.Values.distributorConfigMap.extraScriptsDirectory }}/{{ $fileName }}\n              subPath: {{ $fileName }}\n          {{- end }}\n          {{- range $fileName, $value := $.Values.routerConfigMap.extraScripts }}\n            - name: {{ tpl (default (include \"seleniumGrid.router.configmap.fullname\" $) $.Values.routerConfigMap.scriptVolumeMountName) $ | quote }}\n              mountPath: {{ $.Values.routerConfigMap.extraScriptsDirectory }}/{{ $fileName }}\n              subPath: {{ $fileName }}\n          {{- end }}\n          {{- if eq (include \"seleniumGrid.server.secureConnection\" $) \"true\" }}\n            - name: {{ include \"seleniumGrid.tls.fullname\" .  | quote }}\n              mountPath: {{ .Values.tls.certVolumeMountPath | quote }}\n              readOnly: true\n          {{- end }}\n        {{- with .Values.hub.extraVolumeMounts }}\n            {{- tpl (toYaml .) $ | nindent 12 }}\n        {{- end }}\n        {{- with .Values.hub.resources }}\n          resources: {{- toYaml . | nindent 12 }}\n        {{- end }}\n        {{- with .Values.hub.securityContext }}\n          securityContext: {{- toYaml . | nindent 12 }}\n        {{- end }}\n    {{- with .Values.hub.nodeSelector }}\n      nodeSelector: {{- toYaml . | nindent 8 }}\n    {{- end }}\n    {{- if or .Values.global.seleniumGrid.affinity .Values.hub.affinity }}\n      {{- $affinityYaml := default .Values.global.seleniumGrid.affinity .Values.hub.affinity }}\n      affinity: {{- toYaml $affinityYaml | nindent 8 }}\n    {{- end }}\n    {{- if or .Values.global.seleniumGrid.topologySpreadConstraints .Values.hub.topologySpreadConstraints }}\n      {{- $topologySpreadConstraints := default .Values.global.seleniumGrid.topologySpreadConstraints .Values.hub.topologySpreadConstraints }}\n      topologySpreadConstraints:\n      {{- range $constraint := $topologySpreadConstraints }}\n        - {{ toYaml $constraint | nindent 10 | trim }}\n        {{- if not $constraint.labelSelector }}\n          labelSelector:\n            matchLabels:\n              app: {{ template \"seleniumGrid.hub.fullname\" $ }}\n        {{- end }}\n      {{- end }}\n    {{- end }}\n    {{- with .Values.hub.tolerations }}\n      tolerations: {{ toYaml . | nindent 6 }}\n    {{- end }}\n    {{- if or .Values.global.seleniumGrid.imagePullSecret .Values.hub.imagePullSecret }}\n      imagePullSecrets:\n        - name: {{ default .Values.global.seleniumGrid.imagePullSecret .Values.hub.imagePullSecret }}\n    {{- end }}\n    {{- with .Values.hub.priorityClassName }}\n      priorityClassName: {{ . }}\n    {{- end }}\n      volumes:\n        - name: {{ tpl (default (include \"seleniumGrid.distributor.configmap.fullname\" $) $.Values.distributorConfigMap.scriptVolumeMountName) $ | quote }}\n          configMap:\n            name: {{ template \"seleniumGrid.distributor.configmap.fullname\" $ }}\n            defaultMode: {{ $.Values.distributorConfigMap.defaultMode }}\n        - name: {{ tpl (default (include \"seleniumGrid.router.configmap.fullname\" $) $.Values.routerConfigMap.scriptVolumeMountName) $ | quote }}\n          configMap:\n            name: {{ template \"seleniumGrid.router.configmap.fullname\" $ }}\n            defaultMode: {{ $.Values.routerConfigMap.defaultMode }}\n      {{- if eq (include \"seleniumGrid.server.secureConnection\" $) \"true\" }}\n        - name: {{ include \"seleniumGrid.tls.fullname\" .  | quote }}\n          secret:\n            secretName: {{ include \"seleniumGrid.tls.fullname\" .  | quote }}\n      {{- end }}\n    {{- with .Values.hub.extraVolumes }}\n        {{- tpl (toYaml .) $ | nindent 8 }}\n    {{- end }}\n{{- end }}\n"
  },
  {
    "path": "charts/selenium-grid/templates/hub-service.yaml",
    "content": "{{- if (not .Values.isolateComponents) }}\napiVersion: v1\nkind: Service\nmetadata:\n  name: {{ template \"seleniumGrid.hub.fullname\" . }}\n  namespace: {{ .Release.Namespace }}\n  labels:\n    app: {{ template \"seleniumGrid.hub.fullname\" . }}\n    {{- include \"seleniumGrid.commonLabels\" $ | nindent 4 }}\n  {{- $serviceAnnotations := dict -}}\n  {{- $defaultServiceAnnotations := (include \"seleniumGrid.service.traefik.annotations.default\" . | toString | fromYaml) }}\n  {{- if not (empty $defaultServiceAnnotations) }}\n    {{- $serviceAnnotations = mergeOverwrite $serviceAnnotations $defaultServiceAnnotations }}\n  {{- end }}\n  {{- with .Values.hub.serviceAnnotations }}\n    {{- $serviceAnnotations = mergeOverwrite $serviceAnnotations . }}\n  {{- end }}\n  {{- if not (empty $serviceAnnotations) }}\n  annotations:\n    {{- $serviceAnnotations | toYaml | nindent 4 }}\n  {{- end }}\nspec:\n  selector:\n    app: {{ template \"seleniumGrid.hub.fullname\" . }}\n    app.kubernetes.io/instance: {{ .Release.Name }}\n  type: {{ .Values.hub.serviceType }}\n  {{- if and (eq .Values.hub.serviceType \"ClusterIP\") ( .Values.hub.clusterIP ) }}\n  clusterIP: {{ .Values.hub.clusterIP }}\n  {{- end }}\n  {{- if and (eq .Values.hub.serviceType \"ExternalName\") ( .Values.hub.externalName ) }}\n  externalName: {{ .Values.hub.externalName }}\n  {{- end }}\n  {{- if and (eq .Values.hub.serviceType \"LoadBalancer\") ( .Values.hub.loadBalancerIP ) }}\n  loadBalancerIP: {{ .Values.hub.loadBalancerIP }}\n  {{- end }}\n  ports:\n    - name: http-hub\n      protocol: TCP\n      port: {{ .Values.hub.port }}\n      targetPort: {{ .Values.hub.port }}\n      {{- if and (eq .Values.hub.serviceType \"NodePort\") .Values.hub.nodePort }}\n      nodePort: {{ .Values.hub.nodePort }}\n      {{- end }}\n    - name: tcp-hub-pub\n      protocol: TCP\n      port: {{ .Values.hub.publishPort }}\n      targetPort: {{ .Values.hub.publishPort }}\n      {{- if and (eq .Values.hub.serviceType \"NodePort\") .Values.hub.publishNodePort }}\n      nodePort: {{ .Values.hub.publishNodePort }}\n      {{- end }}\n    - name: tcp-hub-sub\n      protocol: TCP\n      port: {{ .Values.hub.subscribePort }}\n      targetPort: {{ .Values.hub.subscribePort }}\n      {{- if and (eq .Values.hub.serviceType \"NodePort\") .Values.hub.subscribeNodePort }}\n      nodePort: {{ .Values.hub.subscribeNodePort }}\n      {{- end }}\n  {{- with .Values.hub.serviceExternalTrafficPolicy }}\n  externalTrafficPolicy: {{ . }}\n  {{- end }}\n  {{- with .Values.hub.serviceSessionAffinity }}\n  sessionAffinity: {{ . }}\n  {{- end }}\n{{- end }}\n"
  },
  {
    "path": "charts/selenium-grid/templates/ingress.yaml",
    "content": "{{- if eq (include \"seleniumGrid.ingress.enabled\" $) \"true\" }}\n{{- if and .Values.ingress.className (not (semverCompare \">=1.18-0\" .Capabilities.KubeVersion.GitVersion)) }}\n  {{- if not (hasKey .Values.ingress.annotations \"kubernetes.io/ingress.class\") }}\n  {{- $_ := set .Values.ingress.annotations \"kubernetes.io/ingress.class\" .Values.ingress.className}}\n  {{- end }}\n{{- end }}\n{{- if semverCompare \">=1.19-0\" .Capabilities.KubeVersion.GitVersion -}}\napiVersion: networking.k8s.io/v1\n{{- else if semverCompare \">=1.14-0\" .Capabilities.KubeVersion.GitVersion -}}\napiVersion: networking.k8s.io/v1beta1\n{{- else -}}\napiVersion: extensions/v1beta1\n{{- end }}\nkind: Ingress\nmetadata:\n  name: {{ template \"seleniumGrid.ingress.fullname\" . }}\n  namespace: {{ .Release.Namespace }}\n  labels:\n    {{- include \"seleniumGrid.commonLabels\" $ | nindent 4 }}\n  {{- $ingressAnnotations := dict -}}\n  {{ if (eq .Values.ingress.className \"traefik\") }}\n    {{- $ingressAnnotations = (include \"seleniumGrid.ingress.traefik.annotations.default\" . | toString | fromYaml ) }}\n  {{- end }}\n  {{- with .Values.ingress.annotations -}}\n    {{- $ingressAnnotations = mergeOverwrite $ingressAnnotations . }}\n  {{- end }}\n  {{- if not (empty $ingressAnnotations) }}\n  annotations:\n    {{- $ingressAnnotations | toYaml | nindent 4 }}\n  {{- end }}\nspec:\n  {{- if and .Values.ingress.className (semverCompare \">=1.18-0\" .Capabilities.KubeVersion.GitVersion) }}\n  ingressClassName: {{ .Values.ingress.className }}\n  {{- end }}\n  {{- if and (eq (include \"seleniumGrid.ingress.secureConnection\" $) \"true\") (tpl .Values.ingress.hostname $) (not .Values.ingress.tls) }}\n  tls:\n    - hosts:\n        - {{ tpl .Values.ingress.hostname $ | quote }}\n      secretName: {{ include \"seleniumGrid.tls.fullname\" $ | quote }}\n  {{- else if .Values.ingress.tls }}\n  tls:\n    {{- range .Values.ingress.tls }}\n    - hosts:\n        {{- range .hosts }}\n        - {{ tpl . $ | quote }}\n        {{- end }}\n      secretName: {{ tpl (default (include \"seleniumGrid.tls.fullname\" $) .secretName) $ | quote }}\n    {{- end }}\n  {{- end }}\n  rules:\n      {{- if $.Values.ingress.hostname }}\n    - host: {{ tpl $.Values.ingress.hostname $ }}\n      http:\n      {{- else }}\n    - http:\n      {{- end }}\n      {{- if semverCompare \">=1.19-0\" $.Capabilities.KubeVersion.Version }}\n        paths:\n        {{- if empty (.Values.ingress.paths) }}\n          - path: {{ default (include \"seleniumGrid.url.subPath\" $) \"/\" }}\n            pathType: {{ $.Values.ingress.pathType | default \"Prefix\" }}\n            backend:\n              service:\n                {{- if $.Values.isolateComponents }}\n                name: {{ template \"seleniumGrid.router.fullname\" $ }}\n                port:\n                  number: {{ $.Values.components.router.port }}\n                {{- else }}\n                name: {{ template \"seleniumGrid.hub.fullname\" $ }}\n                port:\n                  number: {{ $.Values.hub.port }}\n                {{- end }}\n        {{- else }}\n          {{- tpl (toYaml .Values.ingress.paths | nindent 10) . }}\n        {{- end }}\n      {{- else }}\n        paths:\n          - path: {{ default (include \"seleniumGrid.url.subPath\" $) \"/\" }}\n            backend:\n              {{- if $.Values.isolateComponents }}\n              serviceName: {{ template \"seleniumGrid.router.fullname\" $ }}\n              servicePort: {{ $.Values.components.router.port }}\n              {{- else }}\n              serviceName: {{ template \"seleniumGrid.hub.fullname\" $ }}\n              servicePort: {{ $.Values.hub.port }}\n              {{- end }}\n      {{- end }}\n{{- end }}\n"
  },
  {
    "path": "charts/selenium-grid/templates/jaeger-ingress.yaml",
    "content": "{{- if and (and .Values.tracing.enabled (not .Values.tracing.enabledWithExistingEndpoint)) .Values.tracing.ingress.enabled }}\n{{- if and .Values.ingress.className (not (semverCompare \">=1.18-0\" .Capabilities.KubeVersion.GitVersion)) }}\n  {{- if not (hasKey .Values.ingress.annotations \"kubernetes.io/ingress.class\") }}\n  {{- $_ := set .Values.ingress.annotations \"kubernetes.io/ingress.class\" .Values.ingress.className}}\n  {{- end }}\n{{- end }}\napiVersion: networking.k8s.io/v1\nkind: Ingress\nmetadata:\n  name: {{ .Release.Name }}-jaeger-ingress\n  namespace: {{ .Release.Namespace }}\n  labels:\n    {{- include \"seleniumGrid.commonLabels\" $ | nindent 4 }}\n  {{- with .Values.tracing.ingress.annotations }}\n  annotations:\n    {{- . | toYaml | nindent 4 }}\n  {{- end }}\nspec:\n  {{- if and .Values.ingress.className (semverCompare \">=1.18-0\" .Capabilities.KubeVersion.GitVersion) }}\n  ingressClassName: {{ .Values.ingress.className }}\n  {{- end }}\n  {{- if and (or .Values.tls.enabled .Values.tls.ingress.generateTLS) (tpl .Values.ingress.hostname $) (not .Values.ingress.tls) }}\n  tls:\n    - hosts:\n        - {{ tpl .Values.ingress.hostname $ | quote }}\n      secretName: {{ include \"seleniumGrid.tls.fullname\" $ | quote }}\n  {{- else if .Values.ingress.tls }}\n  tls:\n    {{- range .Values.ingress.tls }}\n    - hosts:\n        {{- range .hosts }}\n        - {{ tpl . $ | quote }}\n        {{- end }}\n      secretName: {{ tpl (default (include \"seleniumGrid.tls.fullname\" $) .secretName) $ | quote }}\n    {{- end }}\n  {{- end }}\n  rules:\n    {{- if $.Values.ingress.hostname }}\n    - host: {{ tpl $.Values.ingress.hostname $ }}\n      http:\n    {{- else }}\n    - http:\n    {{- end }}\n        paths:\n        {{- with .Values.tracing.ingress.paths }}\n          {{- tpl (toYaml . | nindent 10) $ }}\n        {{- end }}\n{{- end }}\n"
  },
  {
    "path": "charts/selenium-grid/templates/logging-configmap.yaml",
    "content": "apiVersion: v1\nkind: ConfigMap\nmetadata:\n  name: {{ template \"seleniumGrid.logging.configmap.fullname\" . }}\n  namespace: {{ .Release.Namespace }}\n{{- with .Values.loggingConfigMap.annotations }}\n  annotations: {{- toYaml . | nindent 4 }}\n{{- end }}\n  labels:\n    {{- include \"seleniumGrid.commonLabels\" $ | nindent 4 }}\ndata:\n  SE_LOG_LEVEL: {{ default \"INFO\" .Values.global.seleniumGrid.logLevel | quote }}\n  SE_STRUCTURED_LOGS: {{ default false .Values.global.seleniumGrid.structuredLogs | quote }}\n  SE_PLAIN_LOGS: {{ default true .Values.global.seleniumGrid.plainLogs | quote }}\n  SE_HTTP_LOGS: {{ default false .Values.global.seleniumGrid.httpLogs | quote }}\n  SE_ENABLE_TRACING: {{ eq (include \"seleniumGrid.enableTracing\" $) \"true\" | ternary \"true\" \"false\" | quote }}\n{{- if (eq (include \"seleniumGrid.enableTracing\" .) \"true\") }}\n  SE_OTEL_TRACES_EXPORTER: {{ .Values.tracing.exporter | quote }}\n  SE_OTEL_JAVA_GLOBAL_AUTOCONFIGURE_ENABLED: {{ .Values.tracing.globalAutoConfigure | quote }}\n  SE_OTEL_EXPORTER_ENDPOINT: {{ tpl .Values.tracing.exporterEndpoint $ | quote }}\n{{- end }}\n{{- range $key, $value := $.Values.loggingConfigMap.data }}\n  {{ $key }}: {{ tpl $value $ | quote }}\n{{- end }}\n"
  },
  {
    "path": "charts/selenium-grid/templates/monitoring-exporter-deployment.yaml",
    "content": "{{- if eq (include \"seleniumGrid.monitoring.enabled\" $) \"true\" }}\napiVersion: apps/v1\nkind: Deployment\nmetadata:\n  name: {{ template \"seleniumGrid.monitoring.exporter.fullname\" $ }}\n  namespace: {{ .Release.Namespace }}\n  labels: &exporter_labels\n    app: {{ template \"seleniumGrid.monitoring.exporter.fullname\" $ }}\n    app.kubernetes.io/name: {{ template \"seleniumGrid.monitoring.exporter.fullname\" $ }}\n    {{- include \"seleniumGrid.commonLabels\" $ | nindent 4 }}\nspec:\n  replicas: {{ .Values.monitoring.exporter.replicas }}\n  selector:\n    matchLabels:\n      app: {{ template \"seleniumGrid.monitoring.exporter.fullname\" $ }}\n      app.kubernetes.io/name: {{ template \"seleniumGrid.monitoring.exporter.fullname\" $ }}\n  template:\n    metadata:\n      labels: *exporter_labels\n      annotations:\n        {{- with .Values.monitoring.exporter.annotations }}\n            {{- toYaml . | nindent 8 }}\n        {{- end }}\n    spec:\n    {{- if or .Values.global.seleniumGrid.imagePullSecret .Values.monitoring.exporter.imagePullSecret }}\n      imagePullSecrets:\n        - name: {{ default .Values.global.seleniumGrid.imagePullSecret .Values.monitoring.exporter.imagePullSecret }}\n    {{- end }}\n      containers:\n        - name: graphql-exporter\n          {{- $imageRegistry := default .Values.global.seleniumGrid.imageRegistry .Values.monitoring.exporter.imageRegistry }}\n          image: {{ printf \"%s/%s:%s\" $imageRegistry .Values.monitoring.exporter.imageName .Values.monitoring.exporter.imageTag | quote }}\n          ports:\n            - containerPort: {{ .Values.monitoring.exporter.port }}\n    {{- with .Values.monitoring.exporter.tolerations }}\n      tolerations: {{ toYaml . | nindent 6 }}\n    {{- end }}\n  {{- end }}\n"
  },
  {
    "path": "charts/selenium-grid/templates/monitoring-exporter-service.yaml",
    "content": "{{- if eq (include \"seleniumGrid.monitoring.enabled\" $) \"true\" }}\napiVersion: v1\nkind: Service\nmetadata:\n  name: {{ template \"seleniumGrid.monitoring.exporter.fullname\" $ }}\n  namespace: {{ .Release.Namespace }}\n  labels:\n    app: {{ template \"seleniumGrid.monitoring.exporter.fullname\" $ }}\n    app.kubernetes.io/name: {{ template \"seleniumGrid.monitoring.exporter.fullname\" $ }}\n    {{- include \"seleniumGrid.commonLabels\" $ | nindent 4 }}\nspec:\n  selector:\n    app: {{ template \"seleniumGrid.monitoring.exporter.fullname\" $ }}\n    app.kubernetes.io/name: {{ template \"seleniumGrid.monitoring.exporter.fullname\" $ }}\n  type: {{ .Values.monitoring.exporter.service.type }}\n  {{- if and (eq .Values.monitoring.exporter.service.type \"ClusterIP\") ( .Values.monitoring.exporter.service.clusterIP ) }}\n  clusterIP: {{ .Values.monitoring.exporter.service.clusterIP }}\n  {{- end }}\n  {{- if and (eq .Values.monitoring.exporter.service.type \"ExternalName\") ( .Values.monitoring.exporter.service.externalName ) }}\n  externalName: {{ .Values.monitoring.exporter.service.externalName }}\n  {{- end }}\n  {{- if and (eq .Values.monitoring.exporter.service.type \"LoadBalancer\") ( .Values.monitoring.exporter.service.loadBalancerIP ) }}\n  loadBalancerIP: {{ .Values.monitoring.exporter.service.loadBalancerIP }}\n  {{- end }}\n  ports:\n    - name: http-port\n      protocol: TCP\n      port: {{ .Values.monitoring.exporter.port }}\n      targetPort: {{ .Values.monitoring.exporter.port }}\n    {{- if and (eq .Values.monitoring.exporter.service.type \"NodePort\") .Values.monitoring.exporter.service.nodePort }}\n      nodePort: {{ .Values.monitoring.exporter.service.nodePort }}\n    {{- end }}\n  {{- with .Values.monitoring.exporter.service.externalTrafficPolicy }}\n  externalTrafficPolicy: {{ . }}\n  {{- end }}\n  {{- with .Values.monitoring.exporter.service.sessionAffinity }}\n  sessionAffinity: {{ . }}\n  {{- end }}\n{{- end }}\n"
  },
  {
    "path": "charts/selenium-grid/templates/monitoring-scape-secret.yaml",
    "content": "{{- if eq (include \"seleniumGrid.monitoring.enabled\" $) \"true\" }}\napiVersion: v1\nkind: Secret\nmetadata:\n  name: {{ template \"seleniumGrid.monitoring.exporter.fullname\" $ }}\n  namespace: {{ .Release.Namespace }}\n  {{- with .Values.monitoring.annotations }}\n  annotations:\n    {{- toYaml . | nindent 4 }}\n  {{- end }}\n  labels:\n    {{- include \"seleniumGrid.commonLabels\" $ | nindent 4 }}\ntype: Opaque\ndata:\n  {{- $key := include \"seleniumGrid.monitoring.scrape.key\" $ -}}\n  {{- $value := tpl $.Values.monitoring.additionalScrapeConfigs.value $ -}}\n  {{- if empty $value -}}\n  {{- range $path, $_ := .Files.Glob \"configs/scrape/*.yaml\" }}\n  {{ $key }}: {{ tpl ($.Files.Get $path) $ | b64enc | quote }}\n  {{- end }}\n  {{- else }}\n  {{ $key }}: {{ $value | b64enc | quote }}\n  {{- end -}}\n{{- end }}\n"
  },
  {
    "path": "charts/selenium-grid/templates/networkpolicy.yaml",
    "content": "{{- range $name, $spec := .Values.networkPolicies }}\napiVersion: networking.k8s.io/v1\nkind: NetworkPolicy\nmetadata:\n  name: {{ $name }}\n  namespace: {{ $.Release.Namespace }}\nspec:\n{{ toYaml $spec | indent 2 }}\n---\n{{- end }}\n"
  },
  {
    "path": "charts/selenium-grid/templates/node-configmap.yaml",
    "content": "{{- $distributorHost := printf \"%s\" (include \"seleniumGrid.distributor.fullname\" .) -}}\n{{- $routerHost := printf \"%s\" (include \"seleniumGrid.router.fullname\" .) -}}\n{{- $hubHost := printf \"%s\" (include \"seleniumGrid.hub.fullname\" .) -}}\napiVersion: v1\nkind: ConfigMap\nmetadata:\n  name: {{ template \"seleniumGrid.node.configmap.fullname\" $ }}\n  namespace: {{ .Release.Namespace }}\n{{- with .Values.nodeConfigMap.annotations }}\n  annotations: {{- toYaml . | nindent 4 }}\n{{- end }}\n  labels:\n    {{- include \"seleniumGrid.commonLabels\" $ | nindent 4 }}\ndata:\n{{- if .Values.isolateComponents }}\n  SE_DISTRIBUTOR_HOST: {{ $distributorHost | quote }}\n  SE_DISTRIBUTOR_PORT: '{{ .Values.components.distributor.port }}'\n  SE_ROUTER_HOST: {{ $routerHost | quote }}\n  SE_ROUTER_PORT: '{{ .Values.components.router.port }}'\n{{- else }}\n  SE_HUB_HOST: {{ $hubHost | quote }}\n  SE_HUB_PORT: '{{ .Values.hub.port }}'\n{{- end }}\n  NODE_CONFIG_DIRECTORY: '{{ $.Values.nodeConfigMap.extraScriptsDirectory }}'\n  SE_SUB_PATH: '{{ template \"seleniumGrid.url.subPath\" $ }}'\n{{- if $.Values.videoRecorder.enabled }}\n  SE_VIDEO_CONTAINER_NAME: {{ $.Values.videoRecorder.name | quote }}\n{{- end }}\n{{- if $.Values.nodeConfigMap.leftoversCleanup.enabled }}\n  SE_ENABLE_BROWSER_LEFTOVERS_CLEANUP: 'true'\n  {{- with $.Values.nodeConfigMap.leftoversCleanup.jobIntervalInSecs }}\n  SE_BROWSER_LEFTOVERS_INTERVAL_SECS: '{{ . }}'\n  {{- end }}\n  {{- with $.Values.nodeConfigMap.leftoversCleanup.browserElapsedTimeInSecs }}\n  SE_BROWSER_LEFTOVERS_PROCESSES_SECS: '{{ . }}'\n  {{- end }}\n  {{- with $.Values.nodeConfigMap.leftoversCleanup.tmpFilesAfterDays }}\n  SE_BROWSER_LEFTOVERS_TEMPFILES_DAYS: '{{ . }}'\n  {{- end }}\n{{- end }}\n{{- $fileProceeded := list -}}\n{{- range $path, $_ :=  .Files.Glob $.Values.nodeConfigMap.extraScriptsImportFrom }}\n  {{- $fileName := base $path -}}\n  {{- $value := index $.Values.nodeConfigMap.extraScripts $fileName -}}\n  {{- if empty $value }}\n{{- $fileName | nindent 2 -}}: {{- toYaml ($.Files.Get $path) | indent 4 }}\n  {{- else }}\n{{- $fileName | nindent 2 -}}: {{- toYaml $value | indent 4 }}\n  {{- end }}\n  {{- $fileProceeded = append $fileProceeded $fileName -}}\n{{- end }}\n{{- range $fileName, $value := .Values.nodeConfigMap.extraScripts }}\n  {{- if not (has $fileName $fileProceeded) }}\n{{- $fileName | nindent 2 -}}: {{- toYaml (default \"\" $value) | indent 4 }}\n  {{- end }}\n{{- end }}\n{{- range $key, $value := $.Values.nodeConfigMap.data }}\n  {{ $key }}: {{ tpl $value $ | quote }}\n{{- end }}\n"
  },
  {
    "path": "charts/selenium-grid/templates/patch-keda/delete-keda-objects-job.yaml",
    "content": "{{- if and (eq (include \"seleniumGrid.useKEDA\" $) \"true\") $.Values.autoscaling.patchObjectFinalizers.enabled }}\napiVersion: batch/v1\nkind: Job\nmetadata:\n  name: {{ template \"seleniumGrid.keda.deleteObjectsJob.fullname\" $ }}\n  namespace: {{ .Release.Namespace }}\n  annotations: &patch_objects_job_annotations\n    \"helm.sh/hook-weight\": \"-10\"\n  {{- with $.Values.autoscaling.patchObjectFinalizers.annotations }}\n    {{- toYaml . | nindent 4 }}\n  {{- end }}\n  labels: &patch_objects_job_labels\n    app: {{ template \"seleniumGrid.keda.deleteObjectsJob.fullname\" $ }}\n    app.kubernetes.io/name: {{ template \"seleniumGrid.keda.deleteObjectsJob.fullname\" $ }}\n    {{- include \"seleniumGrid.commonLabels\" $ | nindent 4 }}\nspec:\n  template:\n    metadata:\n      {{- with $.Values.autoscaling.patchObjectFinalizers.annotations }}\n      annotations: *patch_objects_job_annotations\n      {{- end }}\n      labels: *patch_objects_job_labels\n      name: {{ template \"seleniumGrid.keda.deleteObjectsJob.fullname\" $ }}\n    spec:\n      activeDeadlineSeconds: {{ $.Values.autoscaling.patchObjectFinalizers.activeDeadlineSeconds }}\n      serviceAccountName: {{ default (include \"seleniumGrid.serviceAccount.fullname\" $) $.Values.autoscaling.patchObjectFinalizers.serviceAccount }}\n      serviceAccount: {{ default (include \"seleniumGrid.serviceAccount.fullname\" $) $.Values.autoscaling.patchObjectFinalizers.serviceAccount }}\n      containers:\n        - name: kubectl\n          image: {{ $.Values.global.seleniumGrid.kubectlImage }}\n          command: [\"/bin/bash\", \"-c\", \"/deleteObjectsScript.sh\"]\n          volumeMounts:\n            - name: cleanup-script\n              mountPath: /deleteObjectsScript.sh\n              subPath: deleteObjectsScript.sh\n        {{- with $.Values.autoscaling.patchObjectFinalizers.resources }}\n          resources: {{ toYaml . | nindent 12 }}\n        {{- end }}\n    {{- with $.Values.autoscaling.patchObjectFinalizers.tolerations  }}\n      tolerations: {{ toYaml . | nindent 8 }}\n    {{- end }}\n      volumes:\n        - name: cleanup-script\n          configMap:\n            name: {{ template \"seleniumGrid.keda.patchObjectsJob.fullname\" $ }}\n            defaultMode: {{ $.Values.autoscaling.patchObjectFinalizers.defaultMode }}\n    {{- if or $.Values.global.seleniumGrid.imagePullSecret $.Values.autoscaling.patchObjectFinalizers.imagePullSecret }}\n      imagePullSecrets:\n        - name: {{ default $.Values.global.seleniumGrid.imagePullSecret $.Values.autoscaling.patchObjectFinalizers.imagePullSecret }}\n    {{- end }}\n      restartPolicy: Never\n    {{- with .Values.autoscaling.patchObjectFinalizers.nodeSelector }}\n      nodeSelector: {{- toYaml . | nindent 8 }}\n    {{- end }}\n{{- end }}\n"
  },
  {
    "path": "charts/selenium-grid/templates/patch-keda/patch-keda-objects-cm.yaml",
    "content": "{{- if and (eq (include \"seleniumGrid.useKEDA\" $) \"true\") $.Values.autoscaling.patchObjectFinalizers.enabled }}\napiVersion: v1\nkind: ConfigMap\nmetadata:\n  name: {{ template \"seleniumGrid.keda.patchObjectsJob.fullname\" $ }}\n  namespace: {{ .Release.Namespace }}\n  annotations:\n    \"helm.sh/hook-weight\": \"-20\"\n  {{- with $.Values.autoscaling.patchObjectFinalizers.annotations }}\n    {{- toYaml . | nindent 4 }}\n  {{- end }}\n  labels:\n    app: {{ template \"seleniumGrid.keda.patchObjectsJob.fullname\" $ }}\n    app.kubernetes.io/name: {{ template \"seleniumGrid.keda.patchObjectsJob.fullname\" $ }}\n    {{- include \"seleniumGrid.commonLabels\" $ | nindent 4 }}\ndata:\n{{- if $.Values.autoscaling.patchObjectFinalizers.deleteObjectsScript }}\n  deleteObjectsScript.sh: {{- toYaml $.Values.autoscaling.patchObjectFinalizers.deleteObjectsScript | nindent 4 }}\n{{- else }}\n  deleteObjectsScript.sh: |\n    #!/bin/bash\n    set -e\n    set -x\n    echo \"Delete ScaledObjects, ScaledJobs and HPAs for {{ .Release.Name }} when upgrading or disabling autoscaling.\"\n    for i in $(kubectl get ScaledObjects -n {{ .Release.Namespace }} -l app.kubernetes.io/instance={{ .Release.Name }} \\\n        -o jsonpath='{.items[*].metadata.name}{\"\\n\"}');\n    do\n        if [ -n \"$i\" ]; then\n            kubectl delete ScaledObjects $i -n {{ .Release.Namespace }} --wait=false --cascade=foreground\n        fi\n    done\n    for i in $(kubectl get ScaledJobs -n {{ .Release.Namespace }} -l app.kubernetes.io/instance={{ .Release.Name }} \\\n        -o jsonpath='{.items[*].metadata.name}{\"\\n\"}');\n    do\n        if [ -n \"$i\" ]; then\n            kubectl delete ScaledJobs $i -n {{ .Release.Namespace }} --wait=false\n        fi\n    done\n    for i in $(kubectl get TriggerAuthentication -n {{ .Release.Namespace }} -l app.kubernetes.io/instance={{ .Release.Name }} \\\n        -o jsonpath='{.items[*].metadata.name}{\"\\n\"}');\n    do\n        if [ -n \"$i\" ]; then\n            kubectl delete TriggerAuthentication $i -n {{ .Release.Namespace }} --wait=false\n        fi\n    done\n{{- end }}\n{{- if $.Values.autoscaling.patchObjectFinalizers.patchFinalizersScript }}\n  patchFinalizersScript.sh: {{- toYaml $.Values.autoscaling.patchObjectFinalizers.patchFinalizersScript | nindent 4 }}\n{{- else }}\n  patchFinalizersScript.sh: |\n    #!/bin/bash\n    set -e\n    set -x\n    echo \"Patch finalizers of ScaledObjects, ScaledJobs and HPAs for {{ .Release.Name }} when upgrading or disabling autoscaling.\"\n    for i in $(kubectl get ScaledObjects -n {{ .Release.Namespace }} -l app.kubernetes.io/instance={{ .Release.Name }} \\\n        -o jsonpath='{.items[*].metadata.name}{\"\\n\"}');\n    do\n        if [ -n \"$i\" ]; then\n            kubectl patch ScaledObjects $i -n {{ .Release.Namespace }} -p '{\"metadata\":{\"finalizers\":null}}' --type=merge\n        fi\n    done\n    for i in $(kubectl get ScaledJobs -n {{ .Release.Namespace }} -l app.kubernetes.io/instance={{ .Release.Name }} \\\n        -o jsonpath='{.items[*].metadata.name}{\"\\n\"}');\n    do\n        if [ -n \"$i\" ]; then\n            kubectl patch ScaledJobs $i -n {{ .Release.Namespace }} -p '{\"metadata\":{\"finalizers\":null}}' --type=merge\n        fi\n    done\n    for i in $(kubectl get TriggerAuthentication -n {{ .Release.Namespace }} -l app.kubernetes.io/instance={{ .Release.Name }} \\\n        -o jsonpath='{.items[*].metadata.name}{\"\\n\"}');\n    do\n        if [ -n \"$i\" ]; then\n            kubectl patch TriggerAuthentication $i -n {{ .Release.Namespace }} -p '{\"metadata\":{\"finalizers\":null}}' --type=merge\n        fi\n    done\n{{- end }}\n{{- end }}\n"
  },
  {
    "path": "charts/selenium-grid/templates/patch-keda/patch-keda-objects-job.yaml",
    "content": "{{- if and (eq (include \"seleniumGrid.useKEDA\" $) \"true\") $.Values.autoscaling.patchObjectFinalizers.enabled }}\napiVersion: batch/v1\nkind: Job\nmetadata:\n  name: {{ template \"seleniumGrid.keda.patchObjectsJob.fullname\" $ }}\n  namespace: {{ .Release.Namespace }}\n  annotations: &patch_objects_job_annotations\n    \"helm.sh/hook-weight\": \"-1\"\n  {{- with $.Values.autoscaling.patchObjectFinalizers.annotations }}\n    {{- toYaml . | nindent 4 }}\n  {{- end }}\n  labels: &patch_objects_job_labels\n    app: {{ template \"seleniumGrid.keda.patchObjectsJob.fullname\" $ }}\n    app.kubernetes.io/name: {{ template \"seleniumGrid.keda.patchObjectsJob.fullname\" $ }}\n    {{- include \"seleniumGrid.commonLabels\" $ | nindent 4 }}\nspec:\n  template:\n    metadata:\n      {{- with $.Values.autoscaling.patchObjectFinalizers.annotations }}\n      annotations: *patch_objects_job_annotations\n      {{- end }}\n      labels: *patch_objects_job_labels\n      name: {{ template \"seleniumGrid.keda.patchObjectsJob.fullname\" $ }}\n    spec:\n      activeDeadlineSeconds: {{ $.Values.autoscaling.patchObjectFinalizers.activeDeadlineSeconds }}\n      serviceAccountName: {{ default (include \"seleniumGrid.serviceAccount.fullname\" $) $.Values.autoscaling.patchObjectFinalizers.serviceAccount }}\n      serviceAccount: {{ default (include \"seleniumGrid.serviceAccount.fullname\" $) $.Values.autoscaling.patchObjectFinalizers.serviceAccount }}\n      containers:\n        - name: kubectl\n          image: {{ $.Values.global.seleniumGrid.kubectlImage }}\n          command: [\"/bin/bash\", \"-c\", \"/patchFinalizersScript.sh\"]\n          volumeMounts:\n            - name: cleanup-script\n              mountPath: /patchFinalizersScript.sh\n              subPath: patchFinalizersScript.sh\n        {{- with $.Values.autoscaling.patchObjectFinalizers.resources }}\n          resources: {{ toYaml . | nindent 12 }}\n        {{- end }}\n    {{- with $.Values.autoscaling.patchObjectFinalizers.tolerations  }}\n      tolerations: {{ toYaml . | nindent 8 }}\n    {{- end }}\n      volumes:\n        - name: cleanup-script\n          configMap:\n            name: {{ template \"seleniumGrid.keda.patchObjectsJob.fullname\" $ }}\n            defaultMode: {{ $.Values.autoscaling.patchObjectFinalizers.defaultMode }}\n    {{- if or $.Values.global.seleniumGrid.imagePullSecret $.Values.autoscaling.patchObjectFinalizers.imagePullSecret }}\n      imagePullSecrets:\n        - name: {{ default $.Values.global.seleniumGrid.imagePullSecret $.Values.autoscaling.patchObjectFinalizers.imagePullSecret }}\n    {{- end }}\n      restartPolicy: Never\n    {{- with .Values.autoscaling.patchObjectFinalizers.nodeSelector }}\n      nodeSelector: {{- toYaml . | nindent 8 }}\n    {{- end }}\n{{- end }}\n"
  },
  {
    "path": "charts/selenium-grid/templates/patch-keda/rbac-role.yaml",
    "content": "{{- if and (eq (include \"seleniumGrid.useKEDA\" $) \"true\") $.Values.autoscaling.patchObjectFinalizers.enabled (not $.Values.autoscaling.patchObjectFinalizers.serviceAccount) }}\napiVersion: rbac.authorization.k8s.io/v1\nkind: Role\nmetadata:\n  name: {{ template \"seleniumGrid.rbac.role.fullname\" $ }}\n  namespace: {{ .Release.Namespace }}\n  {{- with $.Values.rbacRole.annotations }}\n  annotations:\n    {{- toYaml . | nindent 4 }}\n  {{- end }}\n  labels:\n    deploymentName: {{ template \"seleniumGrid.rbac.role.fullname\" $ }}\n    {{- include \"seleniumGrid.commonLabels\" $ | nindent 4 }}\n{{- with $.Values.rbacRole.rules }}\nrules:\n  {{- toYaml . | nindent 2 }}\n{{- end }}\n{{- end }}\n"
  },
  {
    "path": "charts/selenium-grid/templates/patch-keda/rbac-rolebinding.yaml",
    "content": "{{- if and (eq (include \"seleniumGrid.useKEDA\" $) \"true\") $.Values.autoscaling.patchObjectFinalizers.enabled (not $.Values.autoscaling.patchObjectFinalizers.serviceAccount) }}\napiVersion: rbac.authorization.k8s.io/v1\nkind: RoleBinding\nmetadata:\n  name: {{ template \"seleniumGrid.rbac.roleBinding.fullname\" $ }}\n  namespace: {{ .Release.Namespace }}\n  {{- with $.Values.rbacRoleBinding.annotations }}\n  annotations:\n    {{- toYaml . | nindent 4 }}\n  {{- end }}\n  labels:\n    app: {{ template \"seleniumGrid.rbac.roleBinding.fullname\" $ }}\n    app.kubernetes.io/name: {{ template \"seleniumGrid.rbac.roleBinding.fullname\" $ }}\n    {{- include \"seleniumGrid.commonLabels\" $ | nindent 4 }}\nsubjects:\n  - kind: ServiceAccount\n    name: {{ default (include \"seleniumGrid.serviceAccount.fullname\" $) $.Values.autoscaling.patchObjectFinalizers.serviceAccount }}\n{{ with $.Values.rbacRoleBinding.roleRef }}\n{{- $roleRef := merge (dict \"name\" (include \"seleniumGrid.rbac.role.fullname\" $)) . -}}\nroleRef:\n  {{- $roleRef | toYaml | nindent 2 }}\n{{- end }}\n{{- end }}\n"
  },
  {
    "path": "charts/selenium-grid/templates/recorder-configmap.yaml",
    "content": "{{- if .Values.videoRecorder.enabled }}\napiVersion: v1\nkind: ConfigMap\nmetadata:\n  name: {{ template \"seleniumGrid.recorder.configmap.fullname\" $ }}\n  namespace: {{ .Release.Namespace }}\n{{- with .Values.recorderConfigMap.annotations }}\n  annotations: {{- toYaml . | nindent 4 }}\n{{- end }}\n  labels:\n    {{- include \"seleniumGrid.commonLabels\" $ | nindent 4 }}\ndata:\n  SE_VIDEO_UPLOAD_ENABLED: '{{ default \"false\" .Values.videoRecorder.uploader.enabled }}'\n  SE_VIDEO_FILE_NAME: 'auto'\n{{- if and .Values.videoRecorder.uploader.enabled (empty .Values.videoRecorder.uploader.name) }}\n  SE_VIDEO_INTERNAL_UPLOAD: '{{ .Values.videoRecorder.uploader.enabled }}'\n{{- end }}\n  VIDEO_CONFIG_DIRECTORY: '{{ .Values.recorderConfigMap.extraScriptsDirectory }}'\n  SE_UPLOAD_DESTINATION_PREFIX: '{{ .Values.videoRecorder.uploader.destinationPrefix }}'\n{{- $fileProceeded := list -}}\n{{- range $path, $_ :=  .Files.Glob $.Values.recorderConfigMap.extraScriptsImportFrom }}\n  {{- $fileName := base $path -}}\n  {{- $value := index $.Values.recorderConfigMap.extraScripts $fileName -}}\n  {{- if empty $value }}\n{{- $fileName | nindent 2 -}}: {{- toYaml ($.Files.Get $path) | indent 4 }}\n  {{- else }}\n{{- $fileName | nindent 2 -}}: {{- toYaml $value | indent 4 }}\n  {{- end }}\n  {{- $fileProceeded = append $fileProceeded $fileName -}}\n{{- end }}\n{{- range $fileName, $value := .Values.recorderConfigMap.extraScripts }}\n  {{- if not (has $fileName $fileProceeded) }}\n{{- $fileName | nindent 2 -}}: {{- toYaml (default \"\" $value) | indent 4 }}\n  {{- end }}\n{{- end }}\n{{- end }}\n"
  },
  {
    "path": "charts/selenium-grid/templates/relay-node-deployment.yaml",
    "content": "{{- range $i, $newNode := .Values.crossBrowsers.relayNode }}\n{{- $nodeConfig := merge $newNode $.Values.relayNode -}}\n{{- if and $nodeConfig.enabled ((eq (include \"seleniumGrid.useKEDA\" $) \"true\") | ternary (eq $.Values.autoscaling.scalingType \"deployment\") $nodeConfig.deploymentEnabled) }}\napiVersion: apps/v1\nkind: Deployment\nmetadata:\n  name: {{ template \"seleniumGrid.relayNode.fullname\" (list $nodeConfig $) }}\n  namespace: {{ $.Release.Namespace }}\n  labels:\n    app: {{ template \"seleniumGrid.relayNode.fullname\" (list $nodeConfig $) }}\n    app.kubernetes.io/name: {{ template \"seleniumGrid.relayNode.fullname\" (list $nodeConfig $) }}\n    {{- include \"seleniumGrid.commonLabels\" $ | nindent 4 }}\n    {{- with $nodeConfig.labels }}\n      {{- toYaml . | nindent 4 }}\n    {{- end }}\nspec:\n  strategy:\n    {{- template \"seleniumGrid.updateStrategy\" (list $nodeConfig $.Values.global.seleniumGrid) }}\n  {{- if not (eq (include \"seleniumGrid.useKEDA\" $) \"true\") }}\n  replicas: {{ $nodeConfig.replicas }}\n  {{- else }}\n  replicas: {{ default $.Values.autoscaling.scaledOptions.minReplicaCount ($nodeConfig.scaledOptions).minReplicaCount }}\n  {{- end }}\n  revisionHistoryLimit: {{ $.Values.global.seleniumGrid.revisionHistoryLimit }}\n  selector:\n    matchLabels:\n      app: {{ template \"seleniumGrid.relayNode.fullname\" (list $nodeConfig $) }}\n      app.kubernetes.io/instance: {{ $.Release.Name }}\n{{- $podScope := deepCopy $ -}}\n{{- $_ := set $podScope \"name\" (include \"seleniumGrid.relayNode.fullname\" (list $nodeConfig $)) -}}\n{{- $_ =  set $podScope \"node\" $nodeConfig -}}\n{{- $_ =  set $podScope \"recorder\" (mergeOverwrite $.Values.videoRecorder $nodeConfig.videoRecorder) -}}\n{{- $_ =  set $podScope \"uploader\" (get $.Values.videoRecorder ($podScope.recorder.uploader.name | toString)) -}}\n{{- include \"seleniumGrid.podTemplate\" $podScope | nindent 2 }}\n---\n{{- end }}\n{{- end }}\n"
  },
  {
    "path": "charts/selenium-grid/templates/relay-node-hpa.yaml",
    "content": "{{- range $i, $newNode := .Values.crossBrowsers.relayNode }}\n{{- $nodeConfig := merge $newNode $.Values.relayNode -}}\n{{- if and $nodeConfig.enabled (eq (include \"seleniumGrid.useKEDA\" $) \"true\") (eq $.Values.autoscaling.scalingType \"deployment\") }}\napiVersion: keda.sh/v1alpha1\nkind: ScaledObject\nmetadata:\n  name: {{ template \"seleniumGrid.relayNode.fullname\" (list $nodeConfig $) }}\n  namespace: {{ $.Release.Namespace }}\n  annotations:\n    {{- with $.Values.autoscaling.annotations }}\n      {{- toYaml . | nindent 4 }}\n    {{- end }}\n  labels:\n    deploymentName: {{ template \"seleniumGrid.relayNode.fullname\" (list $nodeConfig $) }}\n    {{- include \"seleniumGrid.commonLabels\" $ | nindent 4 }}\n    {{- include \"seleniumGrid.autoscalingLabels\" $ | nindent 4 }}\n    {{- with $nodeConfig.labels }}\n      {{- toYaml . | nindent 4 }}\n    {{- end }}\nspec:\n  {{- $podScope := deepCopy $ -}}\n  {{- $_ := set $podScope \"name\" (include \"seleniumGrid.relayNode.fullname\" (list $nodeConfig $)) -}}\n  {{- $_ =  set $podScope \"node\" $nodeConfig -}}\n  {{- include \"seleniumGrid.autoscalingTemplate\" $podScope | nindent 2 }}\n---\n{{- end }}\n{{- end }}\n"
  },
  {
    "path": "charts/selenium-grid/templates/relay-node-scaledjobs.yaml",
    "content": "{{- range $i, $newNode := .Values.crossBrowsers.relayNode }}\n{{- $nodeConfig := merge $newNode $.Values.relayNode -}}\n{{- if and $nodeConfig.enabled (eq (include \"seleniumGrid.useKEDA\" $) \"true\") (eq $.Values.autoscaling.scalingType \"job\") }}\napiVersion: keda.sh/v1alpha1\nkind: ScaledJob\nmetadata:\n  name: {{ template \"seleniumGrid.relayNode.fullname\" (list $nodeConfig $) }}\n  namespace: {{ $.Release.Namespace }}\n  {{- if $.Values.autoscaling.annotations }}\n  annotations:\n    {{- with $.Values.autoscaling.annotations }}\n      {{- toYaml . | nindent 4 }}\n    {{- end }}\n  {{- end }}\n  labels:\n    app: {{ template \"seleniumGrid.relayNode.fullname\" (list $nodeConfig $) }}\n    app.kubernetes.io/name: {{ template \"seleniumGrid.relayNode.fullname\" (list $nodeConfig $) }}\n    {{- include \"seleniumGrid.commonLabels\" $ | nindent 4 }}\n    {{- include \"seleniumGrid.autoscalingLabels\" $ | nindent 4 }}\n    {{- with $nodeConfig.labels }}\n      {{- toYaml . | nindent 4 }}\n    {{- end }}\nspec:\n  {{- $podScope := deepCopy $ -}}\n  {{- $_ := set $podScope \"name\" (include \"seleniumGrid.relayNode.fullname\" (list $nodeConfig $)) -}}\n  {{- $_ =  set $podScope \"node\" $nodeConfig -}}\n  {{- $_ =  set $podScope \"recorder\" (mergeOverwrite $.Values.videoRecorder $nodeConfig.videoRecorder) -}}\n  {{- $_ =  set $podScope \"uploader\" (get $.Values.videoRecorder ($podScope.recorder.uploader.name | toString)) -}}\n  {{- $_ =  set $podScope \"podTemplate\" (include \"seleniumGrid.podTemplate\" $podScope | fromYaml) }}\n  {{- include \"seleniumGrid.autoscalingTemplate\" $podScope | nindent 2 }}\n---\n{{- end }}\n{{- end }}\n"
  },
  {
    "path": "charts/selenium-grid/templates/relay-node-service.yaml",
    "content": "{{- range $i, $newNode := .Values.crossBrowsers.relayNode }}\n{{- $nodeConfig := merge $newNode $.Values.relayNode -}}\n{{- if and $nodeConfig.enabled $nodeConfig.service.enabled }}\napiVersion: v1\nkind: Service\nmetadata:\n  name: {{ template \"seleniumGrid.relayNode.fullname\" (list $nodeConfig $) }}\n  namespace: {{ $.Release.Namespace }}\n  labels:\n    name: {{ template \"seleniumGrid.relayNode.fullname\" (list $nodeConfig $) }}\n    {{- include \"seleniumGrid.commonLabels\" $ | nindent 4 }}\n  {{- with $nodeConfig.service.annotations }}\n  annotations:\n    {{- toYaml . | nindent 4 }}\n  {{- end }}\nspec:\n  type: {{ $nodeConfig.service.type }}\n  selector:\n    app: {{ template \"seleniumGrid.relayNode.fullname\" (list $nodeConfig $) }}\n    app.kubernetes.io/instance: {{ $.Release.Name }}\n  {{- if and (eq $nodeConfig.service.type \"LoadBalancer\") ($nodeConfig.service.loadBalancerIP) }}\n  loadBalancerIP: {{ $nodeConfig.service.loadBalancerIP }}\n  {{- end }}\n  ports:\n    - name: tcp-chrome\n      protocol: TCP\n      port: {{ $nodeConfig.port }}\n      targetPort: {{ $nodeConfig.port }}\n      {{- if and (eq $nodeConfig.service.type \"NodePort\") $nodeConfig.nodePort }}\n      nodePort: {{ $nodeConfig.nodePort }}\n      {{- end }}\n  {{- with $nodeConfig.service.ports }}\n    {{- range . }}\n    - name: {{ .name }}\n      port: {{ .port }}\n      targetPort: {{ .targetPort }}\n      {{- if .protocol }}\n      protocol: {{ .protocol }}\n      {{- end }}\n      {{- if and (eq $nodeConfig.service.type \"NodePort\") .nodePort }}\n      nodePort: {{ .nodePort }}\n      {{- end }}\n    {{- end }}\n  {{- end }}\n  {{- with $nodeConfig.service.externalTrafficPolicy }}\n  externalTrafficPolicy: {{ . }}\n  {{- end }}\n  {{- with $nodeConfig.service.sessionAffinity }}\n  sessionAffinity: {{ . }}\n  {{- end }}\n---\n{{- end }}\n{{- end }}\n"
  },
  {
    "path": "charts/selenium-grid/templates/router-configmap.yaml",
    "content": "apiVersion: v1\nkind: ConfigMap\nmetadata:\n  name: {{ template \"seleniumGrid.router.configmap.fullname\" $ }}\n  namespace: {{ .Release.Namespace }}\n{{- with .Values.routerConfigMap.annotations }}\n  annotations: {{- toYaml . | nindent 4 }}\n{{- end }}\n  labels:\n    {{- include \"seleniumGrid.commonLabels\" $ | nindent 4 }}\ndata:\n  ROUTER_CONFIG_DIRECTORY: '{{ $.Values.routerConfigMap.extraScriptsDirectory }}'\n{{- $fileProceeded := list -}}\n{{- range $path, $_ :=  .Files.Glob $.Values.routerConfigMap.extraScriptsImportFrom }}\n  {{- $fileName := base $path -}}\n  {{- $value := index $.Values.routerConfigMap.extraScripts $fileName -}}\n  {{- if empty $value }}\n{{- $fileName | nindent 2 -}}: {{- toYaml ($.Files.Get $path) | indent 4 }}\n  {{- else }}\n{{- $fileName | nindent 2 -}}: {{- toYaml $value | indent 4 }}\n  {{- end }}\n  {{- $fileProceeded = append $fileProceeded $fileName -}}\n{{- end }}\n{{- range $fileName, $value := .Values.routerConfigMap.extraScripts }}\n  {{- if not (has $fileName $fileProceeded) }}\n{{- $fileName | nindent 2 -}}: {{- toYaml (default \"\" $value) | indent 4 }}\n  {{- end }}\n{{- end }}\n{{- range $key, $value := $.Values.routerConfigMap.data }}\n  {{ $key }}: {{ tpl $value $ | quote }}\n{{- end }}\n"
  },
  {
    "path": "charts/selenium-grid/templates/router-deployment.yaml",
    "content": "{{- if .Values.isolateComponents }}\napiVersion: apps/v1\nkind: Deployment\nmetadata:\n  name: {{ template \"seleniumGrid.router.fullname\" . }}\n  namespace: {{ .Release.Namespace }}\n  labels: &router_labels\n    app: {{ template \"seleniumGrid.router.fullname\" . }}\n    app.kubernetes.io/name: {{ template \"seleniumGrid.router.fullname\" . }}\n    {{- include \"seleniumGrid.commonLabels\" $ | nindent 4 }}\nspec:\n  strategy:\n    {{- template \"seleniumGrid.updateStrategy\" (list $.Values.components.router $.Values.global.seleniumGrid) }}\n  replicas: {{ max 1 ($.Values.components.router.replicas | int) }}\n  revisionHistoryLimit: {{ .Values.global.seleniumGrid.revisionHistoryLimit }}\n  selector:\n    matchLabels:\n      app: {{ template \"seleniumGrid.router.fullname\" . }}\n      app.kubernetes.io/instance: {{ .Release.Name }}\n  template:\n    metadata:\n      labels: *router_labels\n      annotations:\n        checksum/logging-configmap: {{ include (print $.Template.BasePath \"/logging-configmap.yaml\") . | sha256sum }}\n        checksum/server-configmap: {{ include (print $.Template.BasePath \"/server-configmap.yaml\") . | sha256sum }}\n        checksum/router-configmap: {{ include (print $.Template.BasePath \"/router-configmap.yaml\") . | sha256sum }}\n        checksum/secrets: {{ include (print $.Template.BasePath \"/secrets.yaml\") . | sha256sum }}\n    {{- with .Values.components.router.annotations }}\n        {{- toYaml . | nindent 8 }}\n    {{- end }}\n    spec:\n      serviceAccountName: {{ template \"seleniumGrid.serviceAccount.fullname\" . }}\n      serviceAccount: {{ template \"seleniumGrid.serviceAccount.fullname\" . }}\n      containers:\n        - name: {{ template \"seleniumGrid.router.fullname\" . }}\n          {{- $imageTag := default .Values.global.seleniumGrid.imageTag .Values.components.router.imageTag }}\n          {{- $imageRegistry := default .Values.global.seleniumGrid.imageRegistry .Values.components.router.imageRegistry }}\n          image: {{ printf \"%s/%s:%s\" $imageRegistry .Values.components.router.imageName $imageTag }}\n          imagePullPolicy: {{ .Values.components.router.imagePullPolicy }}\n          env:\n            - name: KUBERNETES_NODE_HOST_IP\n              valueFrom:\n                fieldRef:\n                  fieldPath: status.hostIP\n            - name: SE_OTEL_SERVICE_NAME\n              value: '{{ template \"seleniumGrid.router.fullname\" . }}'\n            - name: SE_OTEL_RESOURCE_ATTRIBUTES\n              value: {{ include \"seleniumGrid.tracing.attributes\" $ | quote }}\n            - name: SE_ROUTER_HOST\n              valueFrom:\n                fieldRef:\n                  fieldPath: status.podIP\n            - name: SE_ROUTER_PORT\n              value: {{ .Values.components.router.port | quote }}\n            - name: SE_DISTRIBUTOR_HOST\n              value: '{{ template \"seleniumGrid.distributor.fullname\" . }}'\n            - name: SE_DISTRIBUTOR_PORT\n              value: {{ .Values.components.distributor.port | quote }}\n            - name: SE_SESSIONS_MAP_HOST\n              value: '{{ template \"seleniumGrid.sessionMap.fullname\" . }}'\n            - name: SE_SESSIONS_MAP_PORT\n              value: {{ .Values.components.sessionMap.port | quote }}\n            - name: SE_SESSION_QUEUE_HOST\n              value: '{{ template \"seleniumGrid.sessionQueue.fullname\" . }}'\n            - name: SE_SESSION_QUEUE_PORT\n              value: {{ .Values.components.sessionQueue.port | quote }}\n            {{- with .Values.components.router.subPath }}\n            - name: SE_SUB_PATH\n              value: {{ include \"utils.trimTrailingSlash\" . | quote }}\n            {{- end }}\n            {{- if .Values.components.router.disableUI }}\n            - name: SE_DISABLE_UI\n              value: {{ .Values.components.router.disableUI | quote }}\n            {{- end }}\n          {{- with .Values.components.extraEnvironmentVariables }}\n            {{- tpl (toYaml .) $ | nindent 12 }}\n          {{- end }}\n          {{- with .Values.components.router.extraEnvironmentVariables }}\n            {{- tpl (toYaml .) $ | nindent 12 }}\n          {{- end }}\n          envFrom:\n            - configMapRef:\n                name: {{ template \"seleniumGrid.logging.configmap.fullname\" $ }}\n            - configMapRef:\n                name: {{ template \"seleniumGrid.server.configmap.fullname\" $ }}\n            - secretRef:\n                name: {{ template \"seleniumGrid.common.secrets.fullname\" $ }}\n            {{- if $.Values.basicAuth.enabled }}\n            - secretRef:\n                name: {{ template \"seleniumGrid.basicAuth.secrets.fullname\" $ }}\n            {{- end }}\n          {{- with .Values.components.extraEnvFrom }}\n            {{- toYaml . | nindent 12 }}\n          {{- end }}\n          {{- with .Values.components.router.extraEnvFrom }}\n            {{- toYaml . | nindent 12 }}\n          {{- end }}\n          volumeMounts:\n          {{- range $fileName, $value := $.Values.routerConfigMap.extraScripts }}\n            - name: {{ tpl (default (include \"seleniumGrid.router.configmap.fullname\" $) $.Values.routerConfigMap.scriptVolumeMountName) $ | quote }}\n              mountPath: {{ $.Values.routerConfigMap.extraScriptsDirectory }}/{{ $fileName }}\n              subPath: {{ $fileName }}\n          {{- end }}\n          {{- if eq (include \"seleniumGrid.server.secureConnection\" $) \"true\" }}\n            - name: {{ include \"seleniumGrid.tls.fullname\" .  | quote }}\n              mountPath: {{ .Values.tls.certVolumeMountPath | quote }}\n              readOnly: true\n          {{- end }}\n          ports:\n            - containerPort: {{ .Values.components.router.port }}\n              protocol: TCP\n        {{- if .Values.components.router.startupProbe.enabled }}\n          {{- with .Values.components.router.startupProbe }}\n          startupProbe:\n          {{- if (ne (include \"seleniumGrid.probe.fromUserDefine\" (dict \"values\" . \"root\" $)) \"{}\") }}\n            {{- include \"seleniumGrid.probe.fromUserDefine\" (dict \"values\" . \"root\" $) | nindent 10 }}\n          {{- else }}\n            httpGet:\n              scheme: {{ default (include \"seleniumGrid.probe.httpGet.schema\" $) .schema }}\n              path: {{ .path }}\n              port: {{ default ($.Values.components.router.port) .port }}\n          {{- end }}\n          {{- if (ne (include \"seleniumGrid.probe.settings\" .) \"{}\") }}\n            {{- include \"seleniumGrid.probe.settings\" . | nindent 12 }}\n          {{- end }}\n          {{- end }}\n        {{- end }}\n        {{- if .Values.components.router.readinessProbe.enabled }}\n          {{- with .Values.components.router.readinessProbe }}\n          readinessProbe:\n          {{- if (ne (include \"seleniumGrid.probe.fromUserDefine\" (dict \"values\" . \"root\" $)) \"{}\") }}\n            {{- include \"seleniumGrid.probe.fromUserDefine\" (dict \"values\" . \"root\" $) | nindent 10 }}\n          {{- else }}\n            httpGet:\n              scheme: {{ default (include \"seleniumGrid.probe.httpGet.schema\" $) .schema }}\n              path: {{ .path }}\n              port: {{ default ($.Values.components.router.port) .port }}\n          {{- end }}\n          {{- if (ne (include \"seleniumGrid.probe.settings\" .) \"{}\") }}\n            {{- include \"seleniumGrid.probe.settings\" . | nindent 12 }}\n          {{- end }}\n          {{- end }}\n        {{- end }}\n        {{- if .Values.components.router.livenessProbe.enabled }}\n          livenessProbe:\n          {{- with .Values.components.router.livenessProbe }}\n          {{- if (ne (include \"seleniumGrid.probe.fromUserDefine\" (dict \"values\" . \"root\" $)) \"{}\") }}\n            {{- include \"seleniumGrid.probe.fromUserDefine\" (dict \"values\" . \"root\" $) | nindent 10 }}\n          {{- else if eq $.Values.global.seleniumGrid.defaultComponentLivenessProbe \"exec\" }}\n            exec:\n              command: [\"bash\", \"-c\", \"{{ $.Values.routerConfigMap.extraScriptsDirectory }}/routerProbe.sh Liveness {{ include \"seleniumGrid.probe.stdout\" $ }}\"]\n          {{- else }}\n            httpGet:\n              scheme: {{ default (include \"seleniumGrid.probe.httpGet.schema\" $) .schema }}\n              path: {{ .path }}\n              port: {{ default ($.Values.components.router.port) .port }}\n          {{- end }}\n          {{- if (ne (include \"seleniumGrid.probe.settings\" .) \"{}\") }}\n            {{- include \"seleniumGrid.probe.settings\" . | nindent 12 }}\n          {{- end }}\n          {{- end }}\n        {{- end }}\n        {{- with .Values.components.router.resources }}\n          resources: {{- toYaml . | nindent 12 }}\n        {{- end }}\n        {{- with .Values.components.router.securityContext }}\n          securityContext: {{- toYaml . | nindent 12 }}\n        {{- end }}\n    {{- with .Values.components.router.nodeSelector }}\n      nodeSelector: {{- toYaml . | nindent 8 }}\n    {{- end }}\n    {{- if or .Values.global.seleniumGrid.affinity .Values.components.router.affinity }}\n      {{- $affinityYaml := default .Values.global.seleniumGrid.affinity .Values.components.router.affinity }}\n      affinity: {{- toYaml $affinityYaml | nindent 8 }}\n    {{- end }}\n    {{- if or .Values.global.seleniumGrid.topologySpreadConstraints .Values.components.router.topologySpreadConstraints }}\n      {{- $topologySpreadConstraints := default .Values.global.seleniumGrid.topologySpreadConstraints .Values.components.router.topologySpreadConstraints }}\n      topologySpreadConstraints:\n      {{- range $constraint := $topologySpreadConstraints }}\n        - {{ toYaml $constraint | nindent 10 | trim }}\n        {{- if not $constraint.labelSelector }}\n          labelSelector:\n            matchLabels:\n              app: {{ template \"seleniumGrid.router.fullname\" $ }}\n        {{- end }}\n      {{- end }}\n    {{- end }}\n    {{- with .Values.components.router.tolerations }}\n      tolerations: {{ toYaml . | nindent 6 }}\n    {{- end }}\n    {{- if or .Values.global.seleniumGrid.imagePullSecret .Values.components.router.imagePullSecret }}\n      imagePullSecrets:\n        - name: {{ default .Values.global.seleniumGrid.imagePullSecret .Values.components.router.imagePullSecret }}\n    {{- end }}\n    {{- with .Values.components.router.priorityClassName }}\n      priorityClassName: {{ . }}\n    {{- end }}\n      volumes:\n        - name: {{ tpl (default (include \"seleniumGrid.router.configmap.fullname\" $) $.Values.routerConfigMap.scriptVolumeMountName) $ | quote }}\n          configMap:\n            name: {{ template \"seleniumGrid.router.configmap.fullname\" $ }}\n            defaultMode: {{ $.Values.routerConfigMap.defaultMode }}\n      {{- if eq (include \"seleniumGrid.server.secureConnection\" $) \"true\" }}\n        - name: {{ include \"seleniumGrid.tls.fullname\" .  | quote }}\n          secret:\n            secretName: {{ include \"seleniumGrid.tls.fullname\" .  | quote }}\n      {{- end }}\n{{- end }}\n"
  },
  {
    "path": "charts/selenium-grid/templates/router-service.yaml",
    "content": "{{- if .Values.isolateComponents }}\napiVersion: v1\nkind: Service\nmetadata:\n  name: {{ template \"seleniumGrid.router.fullname\" . }}\n  namespace: {{ .Release.Namespace }}\n  labels:\n    app: {{ template \"seleniumGrid.router.fullname\" . }}\n    {{- include \"seleniumGrid.commonLabels\" $ | nindent 4 }}\n  {{- $serviceAnnotations := dict -}}\n  {{- $defaultServiceAnnotations := (include \"seleniumGrid.service.traefik.annotations.default\" . | toString | fromYaml) }}\n  {{- if not (empty $defaultServiceAnnotations) }}\n    {{- $serviceAnnotations = mergeOverwrite $serviceAnnotations $defaultServiceAnnotations }}\n  {{- end }}\n  {{- with .Values.components.router.serviceAnnotations }}\n    {{- $serviceAnnotations = mergeOverwrite $serviceAnnotations . }}\n  {{- end }}\n  {{- if not (empty $serviceAnnotations) }}\n  annotations:\n    {{- $serviceAnnotations | toYaml | nindent 4 }}\n  {{- end }}\nspec:\n  selector:\n    app: {{ template \"seleniumGrid.router.fullname\" . }}\n    app.kubernetes.io/instance: {{ .Release.Name }}\n  type: {{ .Values.components.router.serviceType }}\n  {{- if and (eq .Values.components.router.serviceType \"ClusterIP\") ( .Values.components.router.clusterIP ) }}\n  clusterIP: {{ .Values.components.router.clusterIP }}\n  {{- end }}\n  {{- if and (eq .Values.components.router.serviceType \"ExternalName\") ( .Values.components.router.externalName ) }}\n  externalName: {{ .Values.components.router.externalName }}\n  {{- end }}\n  {{- if and (eq .Values.components.router.serviceType \"LoadBalancer\") (.Values.components.router.loadBalancerIP) }}\n  loadBalancerIP: {{ .Values.components.router.loadBalancerIP }}\n  {{- end }}\n  ports:\n    - name: tcp-router\n      protocol: TCP\n      port: {{ .Values.components.router.port }}\n      targetPort: {{ .Values.components.router.port }}\n      {{- if and (eq $.Values.components.router.serviceType \"NodePort\") $.Values.components.router.nodePort }}\n      nodePort: {{ $.Values.components.router.nodePort }}\n      {{- end }}\n  {{- with .Values.components.router.serviceExternalTrafficPolicy }}\n  externalTrafficPolicy: {{ . }}\n  {{- end }}\n  {{- with .Values.components.router.serviceSessionAffinity }}\n  sessionAffinity: {{ . }}\n  {{- end }}\n{{- end }}\n"
  },
  {
    "path": "charts/selenium-grid/templates/secrets.yaml",
    "content": "{{- if .Values.secrets.create }}\napiVersion: v1\nkind: Secret\nmetadata:\n{{- with .Values.secrets.annotations }}\n  annotations: {{- toYaml . | nindent 4 }}\n{{- end }}\n  name: {{ include \"seleniumGrid.common.secrets.fullname\" . }}\n  namespace: {{ .Release.Namespace }}\n  labels:\n    {{- include \"seleniumGrid.commonLabels\" $ | nindent 4 }}\ntype: Opaque\ndata:\n  SE_NODE_GRID_URL: {{ include \"seleniumGrid.url\" $ | b64enc }}\n  SE_NODE_GRID_GRAPHQL_URL: {{ include \"seleniumGrid.graphqlURL\" $ | b64enc }}\n{{- with $.Values.tls.trustStorePassword }}\n  SE_JAVA_SSL_TRUST_STORE_PASSWORD: {{ . | b64enc }}\n{{- end }}\n{{- if (include \"seleniumGrid.registrationSecret.enabled\" $) }}\n  SE_REGISTRATION_SECRET: {{ .Values.registrationSecret.value | b64enc }}\n{{- end }}\n{{- if .Values.videoRecorder.uploader.secrets }}\n{{- range $name, $value := .Values.videoRecorder.uploader.secrets }}\n{{- if not (empty $value) }}\n  {{ $name }}: {{ tpl ($value) $ | b64enc }}\n{{- end }}\n{{- end }}\n{{- end }}\n{{- if and .Values.videoRecorder.uploader.enabled }}\n{{- range $fileName, $value := .Values.uploaderConfigMap.secretFiles }}\n{{- if not (empty $value) }}\n  {{ $fileName }}: {{ $value | b64enc }}\n{{- else }}\n{{- $files := $.Files.Glob (printf \"configs/uploader/%s/%s\" $.Values.videoRecorder.uploader.name $fileName) }}\n{{- $cfg := $files.AsSecrets }}\n{{- if and (gt (len $files) 0) (ne $cfg \"\") }}\n{{ indent 2 $cfg }}\n{{- end }}\n{{- end }}\n{{- end }}\n{{- end }}\n{{- range $name, $value := .Values.secrets.data }}\n{{- if not (empty $value) }}\n  {{- $_ := set $ \"name\" $name }}\n  {{- $_ = set $ \"value\" $value }}\n  {{ $name }}: {{ tpl ($value) $ | b64enc }}\n{{- end }}\n{{- end }}\n{{- end }}\n"
  },
  {
    "path": "charts/selenium-grid/templates/server-configmap.yaml",
    "content": "apiVersion: v1\nkind: ConfigMap\nmetadata:\n  name: {{ template \"seleniumGrid.server.configmap.fullname\" . }}\n  namespace: {{ .Release.Namespace }}\n{{- with .Values.serverConfigMap.annotations }}\n  annotations: {{- toYaml . | nindent 4 }}\n{{- end }}\n  labels:\n    {{- include \"seleniumGrid.commonLabels\" $ | nindent 4 }}\ndata:\n  SE_SERVER_PROTOCOL: {{ include \"seleniumGrid.server.protocol\" . | quote }}\n{{- if eq (include \"seleniumGrid.server.secureConnection\" $) \"true\" }}\n  SE_ENABLE_TLS: \"true\"\n  SE_HTTPS_CERTIFICATE: {{ printf \"%s/%s\" .Values.tls.certVolumeMountPath .Values.tls.certificateFile | quote }}\n  SE_HTTPS_PRIVATE_KEY: {{ printf \"%s/%s\" .Values.tls.certVolumeMountPath .Values.tls.privateKeyFile | quote }}\n  SE_JAVA_SSL_TRUST_STORE: {{ printf \"%s/%s\" .Values.tls.certVolumeMountPath .Values.tls.trustStoreFile | quote }}\n  SE_JAVA_SSL_TRUST_STORE_PASSWORD: {{ printf \"%s/%s\" .Values.tls.certVolumeMountPath .Values.tls.trustStorePasswordFile | quote }}\n  SE_JAVA_DISABLE_HOSTNAME_VERIFICATION: {{ .Values.tls.disableHostnameVerification | quote }}\n{{- end }}\n{{- range $key, $value := $.Values.serverConfigMap.data }}\n  {{ $key }}: {{ tpl $value $ | quote }}\n{{- end }}\n"
  },
  {
    "path": "charts/selenium-grid/templates/serviceaccount.yaml",
    "content": "{{- if $.Values.serviceAccount.create }}\napiVersion: v1\nkind: ServiceAccount\nmetadata:\n  name: {{ template \"seleniumGrid.serviceAccount.fullname\" . }}\n  namespace: {{ .Release.Namespace }}\n  labels:\n    app.kubernetes.io/name: selenium-service-account\n    {{- include \"seleniumGrid.commonLabels\" $ | nindent 4 }}\n  {{- with .Values.serviceAccount.annotations }}\n  annotations:\n    {{- toYaml . | nindent 4 }}\n  {{- end }}\n{{- end }}\n"
  },
  {
    "path": "charts/selenium-grid/templates/session-map-configmap.yaml",
    "content": "{{- if .Values.isolateComponents }}\napiVersion: v1\nkind: ConfigMap\nmetadata:\n  name: {{ template \"seleniumGrid.sessionMap.configmap.fullname\" . }}\n  namespace: {{ .Release.Namespace }}\n{{- with .Values.sessionMapConfigMap.annotations }}\n  annotations: {{- toYaml . | nindent 4 }}\n{{- end }}\n  labels:\n    {{- include \"seleniumGrid.commonLabels\" $ | nindent 4 }}\ndata:\n{{- if .Values.components.sessionMap.externalDatastore.enabled }}\n  SE_SESSIONS_MAP_EXTERNAL_DATASTORE: \"true\"\n{{- $backend := .Values.components.sessionMap.externalDatastore.backend -}}\n{{- with (get .Values.components.sessionMap.externalDatastore $backend) }}\n{{- with .scheme }}\n  SE_SESSIONS_MAP_EXTERNAL_SCHEME: {{ tpl . $ | quote }}\n{{- end }}\n{{- with .implementation }}\n  SE_SESSIONS_MAP_EXTERNAL_IMPLEMENTATION: {{ tpl . $ | quote }}\n{{- end }}\n{{- with .hostname }}\n  SE_SESSIONS_MAP_EXTERNAL_HOSTNAME: {{ tpl . $ | quote }}\n{{- end }}\n{{- with .port }}\n  SE_SESSIONS_MAP_EXTERNAL_PORT: {{ tpl . $ | quote }}\n{{- end }}\n{{- with .jdbcUrl }}\n  SE_SESSIONS_MAP_EXTERNAL_JDBC_URL: {{ tpl . $ | quote }}\n{{- end }}\n{{- with .jdbcUser }}\n  SE_SESSIONS_MAP_EXTERNAL_JDBC_USER: {{ tpl . $ | quote }}\n{{- end }}\n{{- with .jdbcPassword }}\n  SE_SESSIONS_MAP_EXTERNAL_JDBC_PASSWORD: {{ tpl . $ | quote }}\n{{- end }}\n{{- end }}\n{{- else }}\n  SE_SESSIONS_MAP_EXTERNAL_DATASTORE: \"false\"\n{{- end }}\n{{- range $key, $value := $.Values.sessionMapConfigMap.data }}\n  {{ $key }}: {{ tpl $value $ | quote }}\n{{- end }}\n{{- end }}\n"
  },
  {
    "path": "charts/selenium-grid/templates/session-map-deployment.yaml",
    "content": "{{- if .Values.isolateComponents }}\napiVersion: apps/v1\nkind: Deployment\nmetadata:\n  name: {{ template \"seleniumGrid.sessionMap.fullname\" . }}\n  namespace: {{ .Release.Namespace }}\n  labels: &session_map_labels\n    app: {{ template \"seleniumGrid.sessionMap.fullname\" . }}\n    app.kubernetes.io/name: {{ template \"seleniumGrid.sessionMap.fullname\" . }}\n    {{- include \"seleniumGrid.commonLabels\" $ | nindent 4 }}\nspec:\n  strategy:\n    {{- template \"seleniumGrid.updateStrategy\" (list $.Values.components.sessionMap $.Values.global.seleniumGrid) }}\n  replicas: {{ max 1 (.Values.components.sessionMap.replicas | int) }}\n  revisionHistoryLimit: {{ .Values.global.seleniumGrid.revisionHistoryLimit }}\n  selector:\n    matchLabels:\n      app: {{ template \"seleniumGrid.sessionMap.fullname\" . }}\n      app.kubernetes.io/instance: {{ .Release.Name }}\n  template:\n    metadata:\n      labels: *session_map_labels\n      annotations:\n        checksum/event-bus-configmap: {{ include (print $.Template.BasePath \"/event-bus-configmap.yaml\") . | sha256sum }}\n        checksum/logging-configmap: {{ include (print $.Template.BasePath \"/logging-configmap.yaml\") . | sha256sum }}\n        checksum/server-configmap: {{ include (print $.Template.BasePath \"/server-configmap.yaml\") . | sha256sum }}\n        checksum/secrets: {{ include (print $.Template.BasePath \"/secrets.yaml\") . | sha256sum }}\n    {{- with .Values.components.sessionMap.annotations }}\n        {{- toYaml . | nindent 8 }}\n    {{- end }}\n    spec:\n      serviceAccountName: {{ template \"seleniumGrid.serviceAccount.fullname\" . }}\n      serviceAccount: {{ template \"seleniumGrid.serviceAccount.fullname\" . }}\n      containers:\n        - name: {{ template \"seleniumGrid.sessionMap.fullname\" . }}\n          {{- $imageTag := default .Values.global.seleniumGrid.imageTag .Values.components.sessionMap.imageTag }}\n          {{- $imageRegistry := default .Values.global.seleniumGrid.imageRegistry .Values.components.sessionMap.imageRegistry }}\n          image: {{ printf \"%s/%s:%s\" $imageRegistry .Values.components.sessionMap.imageName $imageTag }}\n          imagePullPolicy: {{ .Values.components.sessionMap.imagePullPolicy }}\n          env:\n            - name: KUBERNETES_NODE_HOST_IP\n              valueFrom:\n                fieldRef:\n                  fieldPath: status.hostIP\n            - name: SE_OTEL_SERVICE_NAME\n              value: '{{ template \"seleniumGrid.sessionMap.fullname\" . }}'\n            - name: SE_OTEL_RESOURCE_ATTRIBUTES\n              value: {{ include \"seleniumGrid.tracing.attributes\" $ | quote }}\n            - name: SE_SESSIONS_MAP_HOST\n              valueFrom:\n                fieldRef:\n                  fieldPath: status.podIP\n            - name: SE_SESSIONS_MAP_PORT\n              value: {{ .Values.components.sessionMap.port | quote }}\n          {{- with .Values.components.extraEnvironmentVariables }}\n            {{- tpl (toYaml .) $ | nindent 12 }}\n          {{- end }}\n          {{- with .Values.components.sessionMap.extraEnvironmentVariables }}\n            {{- tpl (toYaml .) $ | nindent 12 }}\n          {{- end }}\n          envFrom:\n            - configMapRef:\n                name: {{ template \"seleniumGrid.sessionMap.configmap.fullname\" $ }}\n            - configMapRef:\n                name: {{ template \"seleniumGrid.logging.configmap.fullname\" $ }}\n            - configMapRef:\n                name: {{ template \"seleniumGrid.server.configmap.fullname\" $ }}\n            - secretRef:\n                name: {{ template \"seleniumGrid.common.secrets.fullname\" $ }}\n            {{- if $.Values.basicAuth.enabled }}\n            - secretRef:\n                name: {{ template \"seleniumGrid.basicAuth.secrets.fullname\" $ }}\n            {{- end }}\n            - configMapRef:\n                name: {{ template \"seleniumGrid.eventBus.configmap.fullname\" $ }}\n          {{- with .Values.components.extraEnvFrom }}\n            {{- toYaml . | nindent 12 }}\n          {{- end }}\n          {{- with .Values.components.sessionMap.extraEnvFrom }}\n            {{- toYaml . | nindent 12 }}\n          {{- end }}\n          {{- if eq (include \"seleniumGrid.server.secureConnection\" $) \"true\" }}\n          volumeMounts:\n            - name: {{ include \"seleniumGrid.tls.fullname\" .  | quote }}\n              mountPath: {{ .Values.tls.certVolumeMountPath | quote }}\n              readOnly: true\n          {{- end }}\n          ports:\n            - containerPort: {{ .Values.components.sessionMap.port }}\n              protocol: TCP\n        {{- with .Values.components.sessionMap.resources }}\n          resources: {{- toYaml . | nindent 12 }}\n        {{- end }}\n        {{- with .Values.components.sessionMap.securityContext }}\n          securityContext: {{- toYaml . | nindent 12 }}\n        {{- end }}\n    {{- with .Values.components.sessionMap.nodeSelector }}\n      nodeSelector: {{- toYaml . | nindent 8 }}\n    {{- end }}\n    {{- if or .Values.global.seleniumGrid.affinity .Values.components.sessionMap.affinity }}\n      {{- $affinityYaml := default .Values.global.seleniumGrid.affinity .Values.components.sessionMap.affinity }}\n      affinity: {{- toYaml $affinityYaml | nindent 8 }}\n    {{- end }}\n    {{- if or .Values.global.seleniumGrid.topologySpreadConstraints .Values.components.sessionMap.topologySpreadConstraints }}\n      {{- $topologySpreadConstraints := default .Values.global.seleniumGrid.topologySpreadConstraints .Values.components.sessionMap.topologySpreadConstraints }}\n      topologySpreadConstraints:\n      {{- range $constraint := $topologySpreadConstraints }}\n        - {{ toYaml $constraint | nindent 10 | trim }}\n        {{- if not $constraint.labelSelector }}\n          labelSelector:\n            matchLabels:\n              app: {{ template \"seleniumGrid.sessionMap.fullname\" $ }}\n        {{- end }}\n      {{- end }}\n    {{- end }}\n    {{- with .Values.components.sessionMap.tolerations }}\n      tolerations: {{ toYaml . | nindent 6 }}\n    {{- end }}\n    {{- if or .Values.global.seleniumGrid.imagePullSecret .Values.components.sessionMap.imagePullSecret }}\n      imagePullSecrets:\n        - name: {{ default .Values.global.seleniumGrid.imagePullSecret .Values.components.sessionMap.imagePullSecret }}\n    {{- end }}\n    {{- with .Values.components.sessionMap.priorityClassName }}\n      priorityClassName: {{ . }}\n    {{- end }}\n      {{- if eq (include \"seleniumGrid.server.secureConnection\" $) \"true\" }}\n      volumes:\n        - name: {{ include \"seleniumGrid.tls.fullname\" .  | quote }}\n          secret:\n            secretName: {{ include \"seleniumGrid.tls.fullname\" .  | quote }}\n      {{- end }}\n{{- end }}\n"
  },
  {
    "path": "charts/selenium-grid/templates/session-map-service.yaml",
    "content": "{{- if .Values.isolateComponents }}\napiVersion: v1\nkind: Service\nmetadata:\n  name: {{ template \"seleniumGrid.sessionMap.fullname\" . }}\n  namespace: {{ .Release.Namespace }}\n  labels:\n    app: {{ template \"seleniumGrid.sessionMap.fullname\" . }}\n    {{- include \"seleniumGrid.commonLabels\" $ | nindent 4 }}\n{{- with .Values.components.sessionMap.serviceAnnotations }}\n  annotations: {{- toYaml . | nindent 4 }}\n{{- end }}\nspec:\n  selector:\n    app: {{ template \"seleniumGrid.sessionMap.fullname\" . }}\n    app.kubernetes.io/instance: {{ .Release.Name }}\n  type: {{ .Values.components.sessionMap.serviceType }}\n  ports:\n    - name: tcp-ssn-map\n      protocol: TCP\n      port: {{ .Values.components.sessionMap.port }}\n      targetPort: {{ .Values.components.sessionMap.port }}\n  {{- with .Values.components.sessionMap.serviceExternalTrafficPolicy }}\n  externalTrafficPolicy: {{ . }}\n  {{- end }}\n  {{- with .Values.components.sessionMap.serviceSessionAffinity }}\n  sessionAffinity: {{ . }}\n  {{- end }}\n{{- end }}\n"
  },
  {
    "path": "charts/selenium-grid/templates/session-queue-configmap.yaml",
    "content": "{{- if .Values.isolateComponents }}\napiVersion: v1\nkind: ConfigMap\nmetadata:\n  name: {{ template \"seleniumGrid.sessionQueue.configmap.fullname\" . }}\n  namespace: {{ .Release.Namespace }}\n{{- with .Values.sessionQueueConfigMap.annotations }}\n  annotations: {{- toYaml . | nindent 4 }}\n{{- end }}\n  labels:\n    {{- include \"seleniumGrid.commonLabels\" $ | nindent 4 }}\ndata:\n{{- range $key, $value := $.Values.sessionQueueConfigMap.data }}\n  {{ $key }}: {{ tpl $value $ | quote }}\n{{- end }}\n{{- end }}\n"
  },
  {
    "path": "charts/selenium-grid/templates/session-queue-deployment.yaml",
    "content": "{{- if .Values.isolateComponents }}\napiVersion: apps/v1\nkind: Deployment\nmetadata:\n  name: {{ template \"seleniumGrid.sessionQueue.fullname\" . }}\n  namespace: {{ .Release.Namespace }}\n  labels: &session_queue_labels\n    app: {{ template \"seleniumGrid.sessionQueue.fullname\" . }}\n    app.kubernetes.io/name: {{ template \"seleniumGrid.sessionQueue.fullname\" . }}\n    {{- include \"seleniumGrid.commonLabels\" $ | nindent 4 }}\nspec:\n  strategy:\n    {{- template \"seleniumGrid.updateStrategy\" (list $.Values.components.sessionQueue $.Values.global.seleniumGrid) }}\n  replicas: {{ max 1 (.Values.components.sessionQueue.replicas | int) }}\n  revisionHistoryLimit: {{ .Values.global.seleniumGrid.revisionHistoryLimit }}\n  selector:\n    matchLabels:\n      app: {{ template \"seleniumGrid.sessionQueue.fullname\" . }}\n      app.kubernetes.io/instance: {{ .Release.Name }}\n  template:\n    metadata:\n      labels: *session_queue_labels\n      annotations:\n        checksum/logging-configmap: {{ include (print $.Template.BasePath \"/logging-configmap.yaml\") . | sha256sum }}\n        checksum/server-configmap: {{ include (print $.Template.BasePath \"/server-configmap.yaml\") . | sha256sum }}\n        checksum/secrets: {{ include (print $.Template.BasePath \"/secrets.yaml\") . | sha256sum }}\n    {{- with .Values.components.sessionQueue.annotations }}\n        {{- toYaml . | nindent 8 }}\n    {{- end }}\n    spec:\n      serviceAccountName: {{ template \"seleniumGrid.serviceAccount.fullname\" . }}\n      serviceAccount: {{ template \"seleniumGrid.serviceAccount.fullname\" . }}\n      containers:\n        - name: {{ template \"seleniumGrid.sessionQueue.fullname\" . }}\n          {{- $imageTag := default .Values.global.seleniumGrid.imageTag .Values.components.sessionQueue.imageTag }}\n          {{- $imageRegistry := default .Values.global.seleniumGrid.imageRegistry .Values.components.sessionQueue.imageRegistry }}\n          image: {{ printf \"%s/%s:%s\" $imageRegistry .Values.components.sessionQueue.imageName $imageTag }}\n          imagePullPolicy: {{ .Values.components.sessionQueue.imagePullPolicy }}\n          env:\n            - name: KUBERNETES_NODE_HOST_IP\n              valueFrom:\n                fieldRef:\n                  fieldPath: status.hostIP\n            - name: SE_OTEL_SERVICE_NAME\n              value: '{{ template \"seleniumGrid.sessionQueue.fullname\" . }}'\n            - name: SE_OTEL_RESOURCE_ATTRIBUTES\n              value: {{ include \"seleniumGrid.tracing.attributes\" $ | quote }}\n            - name: SE_SESSION_QUEUE_HOST\n              valueFrom:\n                fieldRef:\n                  fieldPath: status.podIP\n            - name: SE_SESSION_QUEUE_PORT\n              value: {{ .Values.components.sessionQueue.port | quote }}\n            {{- $sessionRequestTimeout := default $.Values.global.seleniumGrid.sessionRequestTimeout $.Values.components.sessionQueue.sessionRequestTimeout | int64 }}\n            - name: SE_SESSION_REQUEST_TIMEOUT\n              value: {{ $sessionRequestTimeout | quote }}\n          {{- with .Values.components.extraEnvironmentVariables }}\n            {{- tpl (toYaml .) $ | nindent 12 }}\n          {{- end }}\n          {{- with .Values.components.sessionQueue.extraEnvironmentVariables }}\n            {{- tpl (toYaml .) $ | nindent 12 }}\n          {{- end }}\n          envFrom:\n            - configMapRef:\n                name: {{ template \"seleniumGrid.logging.configmap.fullname\" $ }}\n            - configMapRef:\n                name: {{ template \"seleniumGrid.server.configmap.fullname\" $ }}\n            - secretRef:\n                name: {{ template \"seleniumGrid.common.secrets.fullname\" $ }}\n            {{- if $.Values.basicAuth.enabled }}\n            - secretRef:\n                name: {{ template \"seleniumGrid.basicAuth.secrets.fullname\" $ }}\n            {{- end }}\n          {{- with .Values.components.extraEnvFrom }}\n            {{- toYaml . | nindent 12 }}\n          {{- end }}\n          {{- with .Values.components.sessionQueue.extraEnvFrom }}\n            {{- toYaml . | nindent 12 }}\n          {{- end }}\n          {{- if eq (include \"seleniumGrid.server.secureConnection\" $) \"true\" }}\n          volumeMounts:\n            - name: {{ include \"seleniumGrid.tls.fullname\" .  | quote }}\n              mountPath: {{ .Values.tls.certVolumeMountPath | quote }}\n              readOnly: true\n          {{- end }}\n          ports:\n            - containerPort: {{ .Values.components.sessionQueue.port }}\n              protocol: TCP\n        {{- with .Values.components.sessionQueue.resources }}\n          resources: {{- toYaml . | nindent 12 }}\n        {{- end }}\n        {{- with .Values.components.sessionQueue.securityContext }}\n          securityContext: {{- toYaml . | nindent 12 }}\n        {{- end }}\n    {{- with .Values.components.sessionQueue.nodeSelector }}\n      nodeSelector: {{- toYaml . | nindent 8 }}\n    {{- end }}\n    {{- if or .Values.global.seleniumGrid.affinity .Values.components.sessionQueue.affinity }}\n      {{- $affinityYaml := default .Values.global.seleniumGrid.affinity .Values.components.sessionQueue.affinity }}\n      affinity: {{- toYaml $affinityYaml | nindent 8 }}\n    {{- end }}\n    {{- if or .Values.global.seleniumGrid.topologySpreadConstraints .Values.components.sessionQueue.topologySpreadConstraints }}\n      {{- $topologySpreadConstraints := default .Values.global.seleniumGrid.topologySpreadConstraints .Values.components.sessionQueue.topologySpreadConstraints }}\n      topologySpreadConstraints:\n      {{- range $constraint := $topologySpreadConstraints }}\n        - {{ toYaml $constraint | nindent 10 | trim }}\n        {{- if not $constraint.labelSelector }}\n          labelSelector:\n            matchLabels:\n              app: {{ template \"seleniumGrid.sessionQueue.fullname\" $ }}\n        {{- end }}\n      {{- end }}\n    {{- end }}\n    {{- with .Values.components.sessionQueue.tolerations }}\n      tolerations: {{ toYaml . | nindent 6 }}\n    {{- end }}\n    {{- if or .Values.global.seleniumGrid.imagePullSecret .Values.components.sessionQueue.imagePullSecret }}\n      imagePullSecrets:\n        - name: {{ default .Values.global.seleniumGrid.imagePullSecret .Values.components.sessionQueue.imagePullSecret }}\n    {{- end }}\n    {{- with .Values.components.sessionQueue.priorityClassName }}\n      priorityClassName: {{ . }}\n    {{- end }}\n      {{- if eq (include \"seleniumGrid.server.secureConnection\" $) \"true\" }}\n      volumes:\n        - name: {{ include \"seleniumGrid.tls.fullname\" .  | quote }}\n          secret:\n            secretName: {{ include \"seleniumGrid.tls.fullname\" .  | quote }}\n      {{- end }}\n{{- end }}\n"
  },
  {
    "path": "charts/selenium-grid/templates/session-queue-service.yaml",
    "content": "{{- if .Values.isolateComponents }}\napiVersion: v1\nkind: Service\nmetadata:\n  name: {{ template \"seleniumGrid.sessionQueue.fullname\" . }}\n  namespace: {{ .Release.Namespace }}\n  labels:\n    app: {{ template \"seleniumGrid.sessionQueue.fullname\" . }}\n    {{- include \"seleniumGrid.commonLabels\" $ | nindent 4 }}\n{{- with .Values.components.sessionQueue.serviceAnnotations }}\n  annotations: {{- toYaml . | nindent 4 }}\n{{- end }}\nspec:\n  selector:\n    app: {{ template \"seleniumGrid.sessionQueue.fullname\" . }}\n    app.kubernetes.io/instance: {{ .Release.Name }}\n  type: {{ .Values.components.sessionQueue.serviceType }}\n  ports:\n    - name: tcp-ssn-que\n      protocol: TCP\n      port: {{ .Values.components.sessionQueue.port }}\n      targetPort: {{ .Values.components.sessionQueue.port }}\n      {{- if and (eq .Values.components.sessionQueue.serviceType \"NodePort\") .Values.components.sessionQueue.nodePort }}\n      nodePort: {{ .Values.components.sessionQueue.nodePort }}\n      {{- end }}\n  {{- with .Values.components.sessionQueue.serviceExternalTrafficPolicy }}\n  externalTrafficPolicy: {{ . }}\n  {{- end }}\n  {{- with .Values.components.sessionQueue.serviceSessionAffinity }}\n  sessionAffinity: {{ . }}\n  {{- end }}\n{{- end }}\n"
  },
  {
    "path": "charts/selenium-grid/templates/tls-cert-secret.yaml",
    "content": "{{- if and $.Values.tls.create (or (eq (include \"seleniumGrid.ingress.secureConnection\" $) \"true\") (eq (include \"seleniumGrid.server.secureConnection\" $) \"true\")) }}\napiVersion: v1\nkind: Secret\nmetadata:\n  annotations:\n    \"restartOnUpdate\": \"true\"\n  name: {{ include \"seleniumGrid.tls.fullname\" . }}\n  namespace: {{ .Release.Namespace }}\n  labels:\n    {{- include \"seleniumGrid.commonLabels\" $ | nindent 4 }}\ntype: kubernetes.io/tls\ndata:\n{{- if and (eq (include \"seleniumGrid.ingress.secureConnection\" $) \"true\") $.Values.tls.ingress.generateTLS }}\n  {{- $name := default \"SeleniumHQ\" .Values.tls.ingress.defaultName -}}\n  {{- $days := default 365 (.Values.tls.ingress.defaultDays | int) -}}\n  {{- $cn := ternary .Values.tls.ingress.defaultCN (tpl .Values.ingress.hostname $) (empty .Values.ingress.hostname) -}}\n  {{- $server := genSelfSignedCert $cn ( default nil .Values.tls.ingress.defaultIPList ) ( default nil .Values.tls.ingress.defaultSANList ) $days }}\n  tls.crt: {{ $server.Cert | b64enc }}\n  tls.key: {{ $server.Key | b64enc }}\n{{- else if or (eq (include \"seleniumGrid.ingress.secureConnection\" $) \"true\") (eq (include \"seleniumGrid.server.secureConnection\" $) \"true\") }}\n{{- $fileProceeded := list -}}\n{{- range $path, $_ :=  .Files.Glob $.Values.tls.secretFilesImportFrom }}\n  {{- $fileName := base $path -}}\n  {{- $value := index $.Values.tls.secretFiles $fileName -}}\n  {{- if empty $value }}\n{{- $fileName | nindent 2 -}}: {{- toYaml ($.Files.Get $path | b64enc) | indent 4 }}\n  {{- else }}\n{{- $fileName | nindent 2 -}}: {{- toYaml ($value | b64enc) | indent 4 }}\n  {{- end }}\n  {{- $fileProceeded = append $fileProceeded $fileName -}}\n{{- end }}\n{{- range $fileName, $value := .Values.tls.secretFiles }}\n  {{- if not (has $fileName $fileProceeded) }}\n{{- $fileName | nindent 2 -}}: {{- toYaml (default \"\" $value | b64enc) | indent 4 }}\n  {{- end }}\n{{- end }}\n{{- end }}\n{{- end }}\n"
  },
  {
    "path": "charts/selenium-grid/templates/traefik-servers-transport.yaml",
    "content": "{{- if and (eq (include \"seleniumGrid.ingress.enabled\" $) \"true\") .Values.ingress.traefik.enabled .Values.ingress.traefik.serversTransport.enabled }}\napiVersion: traefik.io/v1alpha1\nkind: ServersTransport\nmetadata:\n  name: {{ include \"seleniumGrid.ingress.traefik.serversTransport.name\" . }}\n  namespace: {{ .Release.Namespace }}\n  labels:\n    {{- include \"seleniumGrid.commonLabels\" $ | nindent 4 }}\nspec:\n  {{- toYaml $.Values.ingress.traefik.serversTransport.spec | nindent 2 }}\n{{- end }}\n"
  },
  {
    "path": "charts/selenium-grid/templates/trigger-auth.yaml",
    "content": "{{- if and (eq (include \"seleniumGrid.useKEDA\" $) \"true\") (not $.Values.autoscaling.authenticationRef.name) }}\napiVersion: keda.sh/v1alpha1\nkind: TriggerAuthentication\nmetadata:\n  name: {{ template \"seleniumGrid.autoscaling.authenticationRef.fullname\" $ }}\n  namespace: {{ .Release.Namespace }}\n  annotations:\n    {{- with $.Values.autoscaling.authenticationRef.annotations }}\n      {{- toYaml . | nindent 4 }}\n    {{- end }}\n  labels:\n    app: {{ template \"seleniumGrid.autoscaling.authenticationRef.fullname\" $ }}\n    app.kubernetes.io/name: {{ template \"seleniumGrid.autoscaling.authenticationRef.fullname\" $ }}\n    {{- include \"seleniumGrid.commonLabels\" $ | nindent 4 }}\n    {{- include \"seleniumGrid.autoscalingLabels\" $ | nindent 4 }}\nspec:\n  secretTargetRef:\n  - parameter: url\n    name: {{ template \"seleniumGrid.common.secrets.fullname\" $ }}\n    key: SE_NODE_GRID_GRAPHQL_URL\n  {{- if $.Values.basicAuth.enabled }}\n  - parameter: username\n    name: {{ template \"seleniumGrid.basicAuth.secrets.fullname\" $ }}\n    key: SE_ROUTER_USERNAME\n  - parameter: password\n    name: {{ template \"seleniumGrid.basicAuth.secrets.fullname\" $ }}\n    key: SE_ROUTER_PASSWORD\n  {{- end }}\n{{- end }}\n"
  },
  {
    "path": "charts/selenium-grid/templates/uploader-configmap.yaml",
    "content": "{{- if .Values.videoRecorder.uploader.enabled }}\napiVersion: v1\nkind: ConfigMap\nmetadata:\n  name: {{ template \"seleniumGrid.uploader.configmap.fullname\" $ }}\n  namespace: {{ .Release.Namespace }}\n{{- with .Values.uploaderConfigMap.annotations }}\n  annotations: {{- toYaml . | nindent 4 }}\n{{- end }}\n  labels:\n    {{- include \"seleniumGrid.commonLabels\" $ | nindent 4 }}\ndata:\n{{- with .Values.uploaderConfigMap.extraScriptsDirectory }}\n  UPLOAD_CONFIG_DIRECTORY: '{{ . }}'\n{{- end }}\n{{- with .Values.videoRecorder.uploader.configFileName }}\n  UPLOAD_CONFIG_FILE_NAME: '{{ . }}'\n{{- end }}\n{{- $fileProceeded := list -}}\n{{- range $path, $_ :=  .Files.Glob $.Values.uploaderConfigMap.extraScriptsImportFrom }}\n  {{- $fileName := base $path -}}\n  {{- $value := index $.Values.uploaderConfigMap.extraScripts $fileName -}}\n  {{- if empty $value }}\n{{- $fileName | nindent 2 -}}: {{- toYaml ($.Files.Get $path) | indent 4 }}\n  {{- else }}\n{{- $fileName | nindent 2 -}}: {{- toYaml $value | indent 4 }}\n  {{- end }}\n  {{- $fileProceeded = append $fileProceeded $fileName -}}\n{{- end }}\n{{- range $fileName, $value := .Values.uploaderConfigMap.extraScripts }}\n  {{- if not (has $fileName $fileProceeded) }}\n{{- $fileName | nindent 2 -}}: {{- toYaml (default \"\" $value) | indent 4 }}\n  {{- end }}\n{{- end }}\n{{- end }}\n"
  },
  {
    "path": "charts/selenium-grid/templates/video-manager/file-browser-deployment.yaml",
    "content": "{{- if .Values.videoManager.enabled }}\napiVersion: apps/v1\nkind: Deployment\nmetadata:\n  name: {{ template \"seleniumGrid.videoManager.fullname\" $ }}\n  namespace: {{ .Release.Namespace }}\n  labels: &app_labels\n    app: {{ template \"seleniumGrid.videoManager.fullname\" $ }}\n    app.kubernetes.io/name: {{ template \"seleniumGrid.videoManager.fullname\" $ }}\n    {{- include \"seleniumGrid.commonLabels\" $ | nindent 4 }}\nspec:\n  strategy:\n    {{- template \"seleniumGrid.updateStrategy\" (list $.Values.videoManager $.Values.global.seleniumGrid) }}\n  replicas: {{ max 1 ($.Values.videoManager.replicas | int) }}\n  revisionHistoryLimit: {{ .Values.global.seleniumGrid.revisionHistoryLimit }}\n  selector:\n    matchLabels:\n      app: {{ template \"seleniumGrid.videoManager.fullname\" $ }}\n      app.kubernetes.io/instance: {{ .Release.Name }}\n  template:\n    metadata:\n      labels: *app_labels\n      {{- with .Values.videoManager.annotations }}\n      annotations: {{- toYaml . | nindent 8 }}\n      {{- end }}\n    spec:\n      serviceAccountName: {{ template \"seleniumGrid.serviceAccount.fullname\" . }}\n      serviceAccount: {{ template \"seleniumGrid.serviceAccount.fullname\" . }}\n      containers:\n        - name: file-browser\n          image: {{ printf \"%s/%s:%s\" .Values.videoManager.imageRegistry .Values.videoManager.imageName .Values.videoManager.imageTag }}\n          imagePullPolicy: {{ .Values.videoManager.imagePullPolicy }}\n          env:\n          {{- with .Values.videoManager.config.baseurl }}\n            - name: FB_BASEURL\n              value: {{ . | quote }}\n            - name: FB_BASE_URL\n              value: {{ . | quote }}\n          {{- end }}\n          {{- with .Values.videoManager.config.username }}\n            - name: FB_USERNAME\n              value: {{ . | quote }}\n          {{- end }}\n          {{- with .Values.videoManager.config.password }}\n            - name: FB_PASSWORD\n              value: {{ . | quote }}\n          {{- end }}\n          {{- if .Values.videoManager.config.noauth }}\n            - name: FB_NOAUTH\n              value: \"true\"\n          {{- end }}\n          {{- with .Values.videoManager.extraEnvironmentVariables }}\n            {{- tpl (toYaml .) $ | nindent 12 }}\n          {{- end }}\n          {{- with .Values.videoManager.extraEnvFrom }}\n          envFrom: {{- toYaml . | nindent 12 }}\n          {{- end }}\n          volumeMounts:\n          {{- if .Values.videoManager.extraVolumeMounts }}\n            {{- tpl (toYaml .Values.videoManager.extraVolumeMounts) $ | nindent 12 }}\n          {{- else }}\n            - name: srv\n              mountPath: /srv\n              subPath: srv\n          {{- end }}\n          ports:\n            - containerPort: {{ .Values.videoManager.port }}\n              protocol: TCP\n        {{- with .Values.videoManager.resources }}\n          resources: {{- toYaml . | nindent 12 }}\n        {{- end }}\n        {{- with .Values.videoManager.securityContext }}\n          securityContext: {{- toYaml . | nindent 12 }}\n        {{- end }}\n        {{- with .Values.videoManager.startupProbe }}\n          startupProbe: {{- toYaml . | nindent 12 }}\n        {{- end }}\n        {{- with .Values.videoManager.livenessProbe }}\n          livenessProbe: {{- toYaml . | nindent 12 }}\n        {{- end }}\n        {{- with .Values.videoManager.lifecycle }}\n          lifecycle: {{- toYaml . | nindent 12 }}\n        {{- end }}\n    {{- with .Values.videoManager.nodeSelector }}\n      nodeSelector: {{- toYaml . | nindent 8 }}\n    {{- end }}\n    {{- if or .Values.global.seleniumGrid.affinity .Values.videoManager.affinity }}\n      {{- $affinityYaml := default .Values.global.seleniumGrid.affinity .Values.videoManager.affinity }}\n      affinity: {{- toYaml $affinityYaml | nindent 8 }}\n    {{- end }}\n    {{- if or .Values.global.seleniumGrid.topologySpreadConstraints .Values.videoManager.topologySpreadConstraints }}\n      {{- $topologySpreadConstraints := default .Values.global.seleniumGrid.topologySpreadConstraints .Values.videoManager.topologySpreadConstraints }}\n      topologySpreadConstraints:\n      {{- range $constraint := $topologySpreadConstraints }}\n        - {{ toYaml $constraint | nindent 10 | trim }}\n        {{- if not $constraint.labelSelector }}\n          labelSelector:\n            matchLabels:\n              app: {{ template \"seleniumGrid.videoManager.fullname\" $ }}\n        {{- end }}\n      {{- end }}\n    {{- end }}\n    {{- with .Values.videoManager.tolerations }}\n      tolerations: {{ toYaml . | nindent 6 }}\n    {{- end }}\n    {{- if or .Values.global.seleniumGrid.imagePullSecret .Values.videoManager.imagePullSecret }}\n      imagePullSecrets:\n        - name: {{ default .Values.global.seleniumGrid.imagePullSecret .Values.videoManager.imagePullSecret }}\n    {{- end }}\n    {{- with .Values.videoManager.priorityClassName }}\n      priorityClassName: {{ . }}\n    {{- end }}\n      volumes:\n      {{- if .Values.videoManager.extraVolumes }}\n        {{- tpl (toYaml .Values.videoManager.extraVolumes) $ | nindent 8 }}\n      {{- else }}\n        - name: srv\n          emptyDir: {}\n      {{- end }}\n{{- end }}\n"
  },
  {
    "path": "charts/selenium-grid/templates/video-manager/file-browser-ingress.yaml",
    "content": "{{- if and .Values.videoManager.enabled .Values.videoManager.ingress.enabled .Values.ingress.enabled }}\n{{- if and .Values.ingress.className (not (semverCompare \">=1.18-0\" .Capabilities.KubeVersion.GitVersion)) }}\n  {{- if not (hasKey .Values.ingress.annotations \"kubernetes.io/ingress.class\") }}\n  {{- $_ := set .Values.ingress.annotations \"kubernetes.io/ingress.class\" .Values.ingress.className}}\n  {{- end }}\n{{- end }}\napiVersion: networking.k8s.io/v1\nkind: Ingress\nmetadata:\n  name: {{ template \"seleniumGrid.videoManager.fullname\" $ }}\n  namespace: {{ .Release.Namespace }}\n  labels:\n    {{- include \"seleniumGrid.commonLabels\" $ | nindent 4 }}\n  {{- with .Values.videoManager.ingress.annotations }}\n  annotations:\n    {{- . | toYaml | nindent 4 }}\n  {{- end }}\nspec:\n  {{- if and .Values.ingress.className (semverCompare \">=1.18-0\" .Capabilities.KubeVersion.GitVersion) }}\n  ingressClassName: {{ .Values.ingress.className }}\n  {{- end }}\n  {{- if and (or .Values.tls.enabled .Values.tls.ingress.generateTLS) (tpl .Values.ingress.hostname $) (not .Values.ingress.tls) }}\n  tls:\n    - hosts:\n        - {{ tpl .Values.ingress.hostname $ | quote }}\n      secretName: {{ include \"seleniumGrid.tls.fullname\" $ | quote }}\n  {{- else if .Values.ingress.tls }}\n  tls:\n    {{- range .Values.ingress.tls }}\n    - hosts:\n        {{- range .hosts }}\n        - {{ tpl . $ | quote }}\n        {{- end }}\n      secretName: {{ tpl (default (include \"seleniumGrid.tls.fullname\" $) .secretName) $ | quote }}\n    {{- end }}\n  {{- end }}\n  rules:\n    {{- if $.Values.ingress.hostname }}\n    - host: {{ tpl $.Values.ingress.hostname $ }}\n      http:\n    {{- else }}\n    - http:\n    {{- end }}\n        paths:\n        {{- if .Values.videoManager.ingress.paths }}\n          {{- tpl (toYaml . | nindent 10) $ }}\n        {{- else }}\n          - backend:\n              service:\n                name: {{ include \"seleniumGrid.videoManager.fullname\" $ | quote }}\n                port:\n                  number: 80\n            path: {{ $.Values.videoManager.config.baseurl | quote }}\n            pathType: Prefix\n        {{- end }}\n{{- end }}\n"
  },
  {
    "path": "charts/selenium-grid/templates/video-manager/file-browser-service.yaml",
    "content": "{{- if .Values.videoManager.enabled }}\napiVersion: v1\nkind: Service\nmetadata:\n  name: {{ template \"seleniumGrid.videoManager.fullname\" $ }}\n  namespace: {{ .Release.Namespace }}\n  labels:\n    app: {{ template \"seleniumGrid.videoManager.fullname\" $ }}\n    {{- include \"seleniumGrid.commonLabels\" $ | nindent 4 }}\n{{- with .Values.videoManager.serviceAnnotations }}\n  annotations: {{- toYaml . | nindent 4 }}\n{{- end }}\nspec:\n  selector:\n    app: {{ template \"seleniumGrid.videoManager.fullname\" $ }}\n    app.kubernetes.io/instance: {{ .Release.Name }}\n  type: {{ .Values.videoManager.serviceType }}\n  {{- if and (eq .Values.videoManager.serviceType \"ClusterIP\") ( .Values.videoManager.clusterIP ) }}\n  clusterIP: {{ .Values.videoManager.clusterIP }}\n  {{- end }}\n  {{- if and (eq .Values.videoManager.serviceType \"ExternalName\") ( .Values.videoManager.externalName ) }}\n  externalName: {{ .Values.videoManager.externalName }}\n  {{- end }}\n  {{- if and (eq .Values.videoManager.serviceType \"LoadBalancer\") (.Values.videoManager.loadBalancerIP) }}\n  loadBalancerIP: {{ .Values.videoManager.loadBalancerIP }}\n  {{- end }}\n  ports:\n    - name: web\n      protocol: TCP\n      port: {{ .Values.videoManager.port }}\n      targetPort: {{ .Values.videoManager.port }}\n      {{- if and (eq $.Values.videoManager.serviceType \"NodePort\") $.Values.videoManager.nodePort }}\n      nodePort: {{ $.Values.videoManager.nodePort }}\n      {{- end }}\n  {{- with .Values.videoManager.serviceExternalTrafficPolicy }}\n  externalTrafficPolicy: {{ . }}\n  {{- end }}\n  {{- with .Values.videoManager.serviceSessionAffinity }}\n  sessionAffinity: {{ . }}\n  {{- end }}\n{{- end }}\n"
  },
  {
    "path": "charts/selenium-grid/values.yaml",
    "content": "global:\n  # -- Public IP of the host running Kubernetes cluster.\n  # This is used to access the Selenium Grid from outside the cluster when ingress is disabled or enabled without a hostname is set.\n  # This is part of constructing SE_NODE_GRID_URL and rewrite URL of `se:vnc`, `se:cdp` in the capabilities when `ingress.hostname` is unset\n  K8S_PUBLIC_IP: \"\"\n  seleniumGrid:\n    # -- Image registry for all selenium components\n    imageRegistry: selenium\n    # -- Image tag for all selenium components\n    imageTag: 4.41.0-20260222\n    # -- Image tag for browser's nodes\n    nodesImageTag: 4.41.0-20260222\n    # -- Image tag for browser's video recorder\n    videoImageTag: ffmpeg-8.0-20260222\n    # -- kubectl image is used to execute kubectl commands in utility jobs\n    kubectlImage: bitnamilegacy/kubectl:latest\n    # -- Pull secret for all components, can be overridden individually\n    imagePullSecret: \"\"\n    # -- Log level for all components. Possible values describe here: https://www.selenium.dev/documentation/grid/configuration/cli_options/#logging\n    logLevel: INFO\n    # -- Set default startup probe method for all nodes (supplied values: httpGet, exec). If not set, the default is httpGet\n    defaultNodeStartupProbe: exec\n    # -- Set default readiness probe method for all nodes (supplied values: httpGet, exec). If not set, the default is httpGet\n    defaultNodeReadinessProbe: exec\n    # -- Set default readiness probe method for all nodes (supplied values: httpGet, exec). If not set, the default is httpGet\n    defaultNodeLivenessProbe: exec\n    # -- Set default liveness probe method for all nodes (supplied values: httpGet, exec). If not set, the default is httpGet\n    defaultComponentLivenessProbe: httpGet\n    # -- Probe logs output can be retrieved using `kubectl logs`. Noted: this will not work if shareProcessNamespace is enabled\n    stdoutProbeLog: false\n    # -- Specify how many old ReplicaSets for this Deployment you want to retain. The rest will be garbage-collected in the background.\n    revisionHistoryLimit: 10\n    # -- Whether to enable structured logging\n    structuredLogs: false\n    # -- Whether to enable plain logging (both structured and plain can be enabled at the same time, so disable one if only prefer another)\n    plainLogs: true\n    # -- Enable http logging. Tracing should be enabled to log http logs.\n    httpLogs: false\n    updateStrategy:\n      # -- Specify update strategy for all components, can be overridden individually\n      type: Recreate\n      # type: RollingUpdate\n      # -- Specify for strategy RollingUpdate\n      rollingUpdate:\n        maxSurge: 1\n        maxUnavailable: 0\n    # -- Specify affinity for all components, can be overridden individually\n    affinity: {}\n    # -- Specify topologySpreadConstraints for all components, can be overridden individually\n    topologySpreadConstraints: []\n    #  - maxSkew: 4\n    #    topologyKey: kubernetes.io/hostname\n    #    whenUnsatisfiable: DoNotSchedule\n    #    Note: If not define labelSelector, it will be added automatically based on \"app\" label in each component\n    # -- Timeout in seconds. A new incoming session request is added to the queue. Requests sitting in the queue for longer than the configured time will timeout.\n    sessionRequestTimeout: 300\n    # -- Specify number of max sessions per node. Can be overridden by individual component (this is also set to scaler trigger parameter `nodeMaxSessions` if `autoscaling` is enabled)\n    nodeMaxSessions: 1\n    # Noted: In case of autoscaling enabled, with scaling type `job`, Node will be drained following `nodeMaxSessions` by default\n    # If changing `nodeDrainAfterSessionCount` > `nodeMaxSessions` it will take precedence over `nodeMaxSessions` in scaling type `job`\n    # For other cases, `nodeDrainAfterSessionCount` > 0 always take effect.\n    # -- Set number of sessions will be executed in a Node before detaching it from Hub and shutting it down\n    nodeDrainAfterSessionCount: 0\n    # -- This causes the Node to auto manage files downloaded for a given session on the Node (https://www.selenium.dev/documentation/webdriver/drivers/remote_webdriver/#enable-downloads-in-the-grid)\n    nodeEnableManagedDownloads: true\n    # -- Setting custom capabilities for matching specific Nodes (https://www.selenium.dev/documentation/grid/configuration/toml_options/#setting-custom-capabilities-for-matching-specific-nodes). If set via Helm CLI, consider use `--set-literal` to prevent Helm from interpreting the JSON string\n    nodeCustomCapabilities: \"\"\n    # -- How long, in seconds, will the Node try to register to the Distributor for the first time. After this period is completed, the Node will not attempt to register again.\n    nodeRegisterPeriod: 120\n    # -- How often, in seconds, the Node will try to register itself for the first time to the Distributor.\n    nodeRegisterCycle: 5\n\ntls:\n  # -- Create a Secret resource for TLS certificate and key. If using an external secret set to false and provide its name in `nameOverride` below\n  create: true\n  # -- Name of external secret containing the TLS certificate and key\n  nameOverride:\n  # -- Enable or disable TLS for the server components (and ingress proxy)\n  enabled: false\n  ingress:\n    # -- Enable or disable TLS for the ingress proxy only\n    enabled: false\n    # -- Use the certificate and key are generated with below settings\n    generateTLS: false\n    defaultName: \"SeleniumHQ\"\n    defaultDays: 3650\n    defaultCN: \"www.selenium.dev\"\n    # or *.domain.com\n    defaultSANList: []\n    #  - staging.domain.com\n    #  - production.domain.com\n    defaultIPList: []\n    #  - 10.10.10.10\n  # -- Cert files will be imported from chart directory if not specified\n  secretFilesImportFrom: \"certs/**\"\n  # -- File names for the TLS certificate and key to import\n  secretFiles:\n    # -- Key to set contents for certificate file via --set-file\n    tls.crt: \"\"\n    # -- Key to set contents for private key file via --set-file\n    tls.key: \"\"\n    # -- Key to set contents for trust store file via --set-file\n    server.jks: \"\"\n    # -- Key to set contents for trust store password file via --set-file\n    server.pass: \"\"\n  # -- All files for TLS will be mounted to the server components under directory\n  certVolumeMountPath: \"/opt/selenium/secrets\"\n  # -- Cert file will be mounted to server components as a volume\n  certificateFile: tls.crt\n  # -- Key file will be mounted to server components as a volume\n  privateKeyFile: tls.key\n  # -- Trust store file will be mounted to server components as a volume\n  trustStoreFile: server.jks\n  # -- Trust store password file will be mounted to server components as a volume\n  trustStorePasswordFile: server.pass\n  # -- Recommend to get from trustStorePasswordFile instead of plain text via env variable\n  trustStorePassword: \"\"\n  # -- Disable verification the hostname included in the server's TLS/SSL certificates matches the hostnames provided\n  disableHostnameVerification: true\n\nregistrationSecret:\n  # -- Enable feature node registration secret to make sure that the node is one you control and not a rouge node\n  enabled: false\n  # -- The secret value to be used for node registration\n  value: \"HappyTesting\"\n\n# Basic auth settings for Selenium Grid\nbasicAuth:\n  # -- Create a secret resource for basic auth. If using an external secret, set to false and provide its name in `nameOverride` below\n  create: true\n  # -- External secret containing the basic auth username and password for reference\n  nameOverride:\n  # -- Enable or disable basic auth for the Hub/Router\n  enabled: false\n  # -- Username for basic auth\n  username: admin\n  # -- Password for basic auth\n  password: admin\n  # -- Embed the basic auth \"username:password@\" in few URLs e.g. SE_NODE_GRID_URL\n  embeddedUrl: false\n  # -- Annotations for basic auth secret resource\n  annotations: {}\n\n# -- Deploy Router, Distributor, EventBus, SessionMap and Nodes separately\nisolateComponents: false\n\n# Service Account for all components\nserviceAccount:\n  # -- Create a service account for all components. If using an external service account, set to false and provide its name in `nameOverride` below\n  create: true\n  # -- Override to use an external service account\n  nameOverride:\n  # -- Annotations for the service account\n  annotations: {}\n  #  eks.amazonaws.com/role-arn: \"arn:aws:iam::12345678:role/video-bucket-permissions\"\n\n# -- RBAC settings for patching finalizers KEDA scaled resources\nrbacRole:\n  # -- Enable to create RBAC role to access few KEDA resources. If using an external role, set to false and provide its name in `nameOverride` below\n  create: true\n  # -- Override resource name or provide an external role name\n  nameOverride:\n  annotations: {}\n  rules:\n    - apiGroups:\n        - keda.sh\n      resources:\n        - scaledjobs\n      verbs: [get, list, patch, update, delete]\n    - apiGroups:\n        - keda.sh\n      resources:\n        - scaledobjects\n      verbs: [get, list, patch, update, delete]\n    - apiGroups:\n        - keda.sh\n      resources:\n        - triggerauthentications\n      verbs: [get, list, patch, update, delete]\n    - apiGroups:\n        - autoscaling\n      resources:\n        - horizontalpodautoscalers\n      verbs: [get, list, patch, update, delete]\n\n# -- RBAC role binding settings for patching finalizers KEDA scaled resources\nrbacRoleBinding:\n  # -- Enable to create RBAC role binding to a service account. If using an external role binding, set to false and provide its name in `nameOverride` below\n  create: true\n  # -- Override resource name or provide an external role binding name\n  nameOverride:\n  annotations: {}\n  subjects:\n    - kind: ServiceAccount\n  roleRef:\n    kind: Role\n    apiGroup: rbac.authorization.k8s.io\n\n# Configure the ingress resource to access the Grid installation.\ningress:\n  # -- Enable to create ingress resource\n  enabled: true\n  # -- Enable ingress resource with automatically installing Traefik Ingress Controller\n  enableWithController: false\n  # -- Name of ingress class to select which controller will implement ingress resource\n  className: \"\"\n  # Refer to list Traefik ingress annotations:\n  # https://doc.traefik.io/traefik/reference/routing-configuration/kubernetes/ingress/#annotations\n  traefik:\n    # -- Enable corresponding annotations for Traefik Ingress Controller\n    enabled: true\n    # -- Comma-separated Traefik entrypoints for the ingress router. Empty means auto-select (`web` or `websecure`) based on TLS mode.\n    entryPoints: \"\"\n    # -- Optional Traefik middlewares in the format `<namespace>-<name>@kubernetescrd`\n    middlewares: \"\"\n    # -- Optional Traefik router priority value\n    priority: \"\"\n    # -- Optional Traefik router path matcher (e.g. `PathPrefix`, `Path`, `PathRegexp`)\n    pathMatcher: \"PathPrefix\"\n    tls:\n      # -- Add `traefik.ingress.kubernetes.io/router.tls: \"true\"` when ingress TLS is enabled\n      enabled: true\n      # -- Optional Traefik TLS options in the format `<namespace>-<name>@kubernetescrd`\n      options: \"\"\n      # -- Optional Traefik certificate resolver name\n      certResolver: \"\"\n    service:\n      # -- Add `traefik.ingress.kubernetes.io/service.serversscheme: \"https\"` to backend Service when Grid server TLS is enabled\n      useHttpsScheme: true\n      sticky:\n        cookie:\n          # -- Enable Traefik sticky cookie for service load-balancing\n          enabled: false\n    serversTransport:\n      # -- Enable creating a Traefik ServersTransport resource and auto-link it to backend Service annotation `traefik.ingress.kubernetes.io/service.serverstransport`\n      enabled: true\n      # -- Override ServersTransport resource name. Defaults to `<ingress-fullname>-serverstransport`\n      nameOverride: \"\"\n      # -- Use an existing ServersTransport reference `<namespace>-<name>@kubernetescrd` when `enabled` is false\n      reference: \"\"\n      # -- Pass all spec support in Traefik ServersTransport\n      spec:\n        insecureSkipVerify: true\n        disableHTTP2: true\n        forwardingTimeouts:\n          # -- Maximum duration Traefik waits when establishing a connection to backend servers\n          dialTimeout: \"3600s\"\n          # -- Maximum duration Traefik waits for backend response headers\n          responseHeaderTimeout: \"3600s\"\n          # -- Maximum duration an idle keep-alive backend connection remains open\n          idleConnTimeout: \"3600s\"\n  ports:\n    # -- Specify HTTP port is exposed by ingress controller\n    http: 80\n    # -- Specify HTTPS port is exposed by ingress controller\n    https: 443\n  # -- Custom annotations for ingress resource\n  annotations: {}\n  # -- Default host for the ingress resource\n  hostname: \"\"\n  # -- Default path type for the ingress resource\n  pathType: Prefix\n  # -- List of paths for the ingress resource. This will override the default path\n  paths: []\n  # -- TLS backend configuration for ingress resource\n  tls: []\n\n# ConfigMap that contains SE_EVENT_BUS_HOST, SE_EVENT_BUS_PUBLISH_PORT and SE_EVENT_BUS_SUBSCRIBE_PORT variables\nbusConfigMap:\n  # -- Override the name of the bus configMap\n  nameOverride:\n  # -- Override or add extra data to the ConfigMap. The property that appears last within the ConfigMap overwrites any preceding values\n  data:\n    SE_JAVA_OPTS: \"-XX:+UseG1GC -XX:MaxGCPauseMillis=1000 -XX:MaxRAMPercentage=100\"\n  # -- Custom annotations for configmap\n  annotations: {}\n\n# ConfigMap that contains environment variables for session map\nsessionMapConfigMap:\n  # -- Override the name of the session map configMap\n  nameOverride:\n  # -- Override or add extra data to the ConfigMap. The property that appears last within the ConfigMap overwrites any preceding values\n  data:\n    SE_JAVA_OPTS: \"-XX:+UseG1GC -XX:MaxGCPauseMillis=1000 -XX:MaxRAMPercentage=100\"\n  # -- Custom annotations for configmap\n  annotations: {}\n\n# ConfigMap that contains environment variables for session queue\nsessionQueueConfigMap:\n  # -- Override the name of the session map configMap\n  nameOverride:\n  # -- Override or add extra data to the ConfigMap. The property that appears last within the ConfigMap overwrites any preceding values\n  data:\n    SE_JAVA_OPTS: \"-XX:+UseG1GC -XX:MaxGCPauseMillis=1000 -XX:MaxRAMPercentage=100\"\n  # -- Custom annotations for configmap\n  annotations: {}\n\ndistributorConfigMap:\n  # -- Override the name of the distributor configMap\n  nameOverride:\n  # -- Override or add extra data to the ConfigMap. The property that appears last within the ConfigMap overwrites any preceding values\n  data:\n    SE_JAVA_OPTS: \"-XX:+UseG1GC -XX:MaxGCPauseMillis=1000 -XX:MaxRAMPercentage=100\"\n  # -- Default mode for ConfigMap is mounted as file\n  defaultMode: 0755\n  # -- Directory where the extra scripts are imported to ConfigMap by default (if given a relative path, it should be in chart's directory)\n  extraScriptsImportFrom: \"configs/distributor/**\"\n  # -- Directory where the extra scripts are mounted to\n  extraScriptsDirectory: \"/opt/bin\"\n  extraScripts:\n    # -- Key to set contents for script file via --set-file\n    distributorProbe.sh: \"\"\n  # -- Name of volume mount is used to mount scripts in the ConfigMap. Default is same as this configMap name\n  scriptVolumeMountName:\n  # -- Custom annotations for configmap\n  annotations: {}\n\nrouterConfigMap:\n  # -- Override the name of the router configMap\n  nameOverride:\n  # -- Override or add extra data to the ConfigMap. The property that appears last within the ConfigMap overwrites any preceding values\n  data:\n    SE_JAVA_OPTS: \"-XX:+UseG1GC -XX:MaxGCPauseMillis=1000 -XX:MaxRAMPercentage=100\"\n  # -- Default mode for ConfigMap is mounted as file\n  defaultMode: 0755\n  # -- Directory where the extra scripts are imported to ConfigMap by default (if given a relative path, it should be in chart's directory)\n  extraScriptsImportFrom: \"configs/router/**\"\n  # -- Directory where the extra scripts are mounted to\n  extraScriptsDirectory: \"/opt/bin\"\n  extraScripts:\n    # -- Key to set contents for script file via --set-file\n    routerGraphQLUrl.sh: \"\"\n    # -- Key to set contents for script file via --set-file\n    routerProbe.sh: \"\"\n  # -- Name of volume mount is used to mount scripts in the ConfigMap\n  scriptVolumeMountName:\n  # -- Custom annotations for configmap\n  annotations: {}\n\n# ConfigMap that contains common environment variables for browser nodes\nnodeConfigMap:\n  # -- Override the name of the node configMap\n  nameOverride:\n  # -- Override or add extra data to the ConfigMap. The property that appears last within the ConfigMap overwrites any preceding values\n  data:\n    SE_JAVA_OPTS: \"-XX:+UseG1GC -XX:MaxGCPauseMillis=1000 -XX:MaxRAMPercentage=50\"\n  # -- Default mode for ConfigMap is mounted as file\n  defaultMode: 0755\n  # -- Directory where the extra scripts are imported to ConfigMap by default (if given a relative path, it should be in chart's directory)\n  extraScriptsImportFrom: \"configs/node/**\"\n  # -- Directory where the extra scripts are mounted to\n  extraScriptsDirectory: \"/opt/bin\"\n  extraScripts:\n    # -- Key to set contents for script file via --set-file\n    nodeGridUrl.sh: \"\"\n    # -- Key to set contents for script file via --set-file\n    nodePreStop.sh: \"\"\n    # -- Key to set contents for script file via --set-file\n    nodeProbe.sh: \"\"\n    # -- Key to set contents for script file via --set-file\n    nodeProbeReadiness.sh: \"\"\n  # -- Name of volume mount is used to mount scripts in the ConfigMap\n  scriptVolumeMountName:\n  leftoversCleanup:\n    # -- Enable feature automatic browser leftovers cleanup stuck browser processes, tmp files\n    enabled: false\n    # -- Interval in seconds to run the cleanup job\n    jobIntervalInSecs: 3600\n    # -- Browser process elapsed time in seconds to consider as leftovers\n    browserElapsedTimeInSecs: 7200\n    # -- Tmp files elapsed time in days to consider as leftovers\n    tmpFilesAfterDays: 1\n  # -- Custom annotations for configmap\n  annotations: {}\n\nrecorderConfigMap:\n  # -- Override the name of the recorder configMap\n  nameOverride:\n  # -- Default mode for ConfigMap is mounted as file\n  defaultMode: 0755\n  # -- Directory where the extra scripts are imported to ConfigMap by default (if given a relative path, it should be in chart's directory)\n  extraScriptsImportFrom: \"configs/recorder/**\"\n  # -- Directory where the extra scripts are mounted to\n  extraScriptsDirectory: \"/opt/bin\"\n  # -- List of extra scripts to be mounted to the container. Format as `filename: content`\n  extraScripts:\n  #  video.sh: \"\"\n  #  video_graphQLQuery.sh: \"\"\n  # -- Name of volume mount is used to mount scripts in the ConfigMap\n  scriptVolumeMountName:\n  # -- Directory in container where the videos are stored\n  videoVolumeMountName: videos\n  # -- Custom annotations for configmap\n  annotations: {}\n\nuploaderConfigMap:\n  # -- Override the name of the uploader configMap\n  nameOverride:\n  # -- Default mode for ConfigMap is mounted as file\n  defaultMode: 0755\n  # -- Directory where the extra scripts are imported to ConfigMap by default (if given a relative path, it should be in chart's directory)\n  extraScriptsImportFrom: \"configs/uploader/**\"\n  # -- Directory where the extra scripts are mounted to\n  extraScriptsDirectory: \"/opt/selenium\"\n  # -- List of extra scripts to be mounted to the container. Format as `filename: content`\n  extraScripts:\n    upload.sh: \"\"\n  # -- Extra files stored in Secret to be mounted to the container.\n  secretFiles:\n    upload.conf: \"[sample]\"\n  # -- Name of volume mount is used to mount scripts in the ConfigMap\n  scriptVolumeMountName:\n  # -- Name of Secret is used to store the `secretFiles`\n  secretVolumeMountName:\n  # -- Custom annotations for configmap\n  annotations: {}\n\n# -- ConfigMap that contains common environment variables for Logging (https://www.selenium.dev/documentation/grid/configuration/cli_options/#logging)\nloggingConfigMap:\n  # -- Override the name of the logging configMap\n  nameOverride:\n  # -- Override or add extra data to the ConfigMap. The property that appears last within the ConfigMap overwrites any preceding values\n  data: {}\n  # -- Custom annotations for configmap\n  annotations: {}\n\nserverConfigMap:\n  # -- Override the name of the server configMap\n  nameOverride:\n  # -- Extra common environment variables for Server (https://www.selenium.dev/documentation/grid/configuration/cli_options/#server) to server configMap\n  data:\n    # Log level of supervisord. Accept values: critical, error, warn, info, debug, trace, blather (http://supervisord.org/logging.html)\n    SE_SUPERVISORD_LOG_LEVEL: \"info\"\n  # -- Custom annotations for configmap\n  annotations: {}\n\n# Secrets for all components. Component environment variables contain sensitive data should be stored in secrets.\nsecrets:\n  # -- Create the default secret for all components. If using an external secret, set to false and provide its name in `nameOverride` below\n  create: true\n  # -- Override to use an external secret\n  nameOverride:\n  # -- Extra environment variables set to the secret\n  data:\n    SE_VNC_PASSWORD: \"secret\"\n  # -- Custom annotations for secret\n  annotations: {}\n\n# Configuration for isolated components (applied only if `isolateComponents: true`)\ncomponents:\n  # Configuration for router component\n  router:\n    # -- Registry to pull the image (this overwrites global.seleniumGrid.imageRegistry parameter)\n    imageRegistry:\n    # -- Router image name\n    imageName: router\n    # -- Router image tag (this overwrites global.seleniumGrid.imageTag parameter)\n    imageTag:\n\n    # -- Image pull policy (see https://kubernetes.io/docs/concepts/containers/images/#updating-images)\n    imagePullPolicy: IfNotPresent\n    # -- Image pull secret (see https://kubernetes.io/docs/tasks/configure-pod-container/pull-image-private-registry/)\n    imagePullSecret: \"\"\n\n    # -- Custom sub path for Router\n    subPath: \"\"\n    # -- Disable the Grid UI\n    disableUI: false\n    # -- Specify extra environment variables for Router\n    extraEnvironmentVariables: []\n    # -- Specify extra environment variables from ConfigMap and Secret for Router\n    extraEnvFrom: []\n    # -- Specify affinity for router pods, this overwrites global.seleniumGrid.affinity parameter\n    affinity: {}\n    # -- Specify topologySpreadConstraints for router pods, this overwrites global.seleniumGrid.topologySpreadConstraints parameter\n    topologySpreadConstraints: []\n    # -- Custom annotations for router pods\n    annotations: {}\n    # -- Router container port\n    port: 4444\n    # -- Router expose NodePort\n    nodePort: 30444\n    # -- Startup probe settings\n    startupProbe:\n      enabled: true\n      path: /readyz\n      initialDelaySeconds: 5\n      failureThreshold: 10\n      timeoutSeconds: 10\n      periodSeconds: 10\n      successThreshold: 1\n    # -- Readiness probe settings\n    readinessProbe:\n      enabled: true\n      path: /readyz\n      initialDelaySeconds: 12\n      failureThreshold: 10\n      timeoutSeconds: 10\n      periodSeconds: 10\n      successThreshold: 1\n    # -- Liveness probe settings\n    livenessProbe:\n      enabled: true\n      path: /readyz\n      initialDelaySeconds: 60\n      failureThreshold: 30\n      timeoutSeconds: 60\n      periodSeconds: 60\n      successThreshold: 1\n    # -- Resources for router container\n    resources:\n      requests:\n        cpu: \"0.5\"\n        memory: \"512Mi\"\n      limits:\n        cpu: \"1\"\n        memory: \"2Gi\"\n    # -- Number of replicas\n    replicas: 1\n    # -- SecurityContext for router container\n    securityContext: {}\n    # -- Kubernetes service type (see https://kubernetes.io/docs/concepts/services-networking/service/#publishing-services-service-types)\n    serviceType: ClusterIP\n    # -- Set specific clusterIP when serviceType is ClusterIP (see https://kubernetes.io/docs/concepts/services-networking/service/#type-clusterip)\n    clusterIP: \"\"\n    # -- Set specific externalName when serviceType is ExternalName (see https://kubernetes.io/docs/concepts/services-networking/service/#type-externalname)\n    externalName: \"\"\n    # -- Set specific loadBalancerIP when serviceType is LoadBalancer (see https://kubernetes.io/docs/concepts/services-networking/service/#loadbalancer)\n    loadBalancerIP: \"\"\n    # -- Custom annotations for router service\n    serviceAnnotations: {}\n    # -- Set externalTrafficPolicy to Local or Cluster (see https://kubernetes.io/docs/concepts/services-networking/service-traffic-policy/)\n    serviceExternalTrafficPolicy: \"\"\n    # -- Set session affinity to None, ClientIP or ClientIPString\n    serviceSessionAffinity: \"\"\n    # -- Tolerations for router pods\n    tolerations: []\n    # -- Node selector for router pods\n    nodeSelector: {}\n    # -- Priority class name for router pods\n    priorityClassName: \"\"\n\n  # Configuration for distributor component\n  distributor:\n    # -- Registry to pull the image (this overwrites global.seleniumGrid.imageRegistry parameter)\n    imageRegistry:\n    # -- Distributor image name\n    imageName: distributor\n    # -- Distributor image tag (this overwrites global.seleniumGrid.imageTag parameter)\n    imageTag:\n\n    # -- Image pull policy (see https://kubernetes.io/docs/concepts/containers/images/#updating-images)\n    imagePullPolicy: IfNotPresent\n    # -- Image pull secret (see https://kubernetes.io/docs/tasks/configure-pod-container/pull-image-private-registry/)\n    imagePullSecret: \"\"\n\n    # -- Configure fixed-sized thread pool for the Distributor to create new sessions as it consumes new session requests from the queue\n    newSessionThreadPoolSize:\n    # -- Full class name of non-default slot selector. This is used to select a slot in a Node once the Node has been matched\n    slotSelectorStrategy: \"\"\n    # -- Specify extra environment variables for Distributor\n    extraEnvironmentVariables: []\n    # -- Specify extra environment variables from ConfigMap and Secret for Distributor\n    extraEnvFrom: []\n    # -- Specify affinity for distributor pods, this overwrites global.seleniumGrid.affinity parameter\n    affinity: {}\n    # -- Specify topologySpreadConstraints for Distributor pods, this overwrites global.seleniumGrid.topologySpreadConstraints parameter\n    topologySpreadConstraints: []\n    # -- Custom annotations for Distributor pods\n    annotations: {}\n    # -- Distributor container port\n    port: 5553\n    # -- Distributor expose NodePort\n    nodePort: 30553\n    # -- Startup probe settings\n    startupProbe:\n      enabled: true\n      path: /readyz\n      initialDelaySeconds: 5\n      failureThreshold: 10\n      timeoutSeconds: 10\n      periodSeconds: 10\n      successThreshold: 1\n    # -- Readiness probe settings\n    readinessProbe:\n      enabled: true\n      path: /readyz\n      initialDelaySeconds: 12\n      failureThreshold: 10\n      timeoutSeconds: 10\n      periodSeconds: 10\n      successThreshold: 1\n    # -- Liveness probe settings\n    livenessProbe:\n      enabled: true\n      path: /readyz\n      initialDelaySeconds: 60\n      failureThreshold: 30\n      timeoutSeconds: 60\n      periodSeconds: 60\n      successThreshold: 1\n    # -- Resources for Distributor container\n    resources:\n      requests:\n        cpu: \"0.5\"\n        memory: \"512Mi\"\n      limits:\n        cpu: \"1\"\n        memory: \"2Gi\"\n    # -- Number of replicas\n    replicas: 1\n    # -- SecurityContext for Distributor container\n    securityContext: {}\n    # -- Kubernetes service type (see https://kubernetes.io/docs/concepts/services-networking/service/#publishing-services-service-types)\n    serviceType: ClusterIP\n    # -- Custom annotations for Distributor service\n    serviceAnnotations: {}\n    # -- Set externalTrafficPolicy to Local or Cluster (see https://kubernetes.io/docs/concepts/services-networking/service-traffic-policy/)\n    serviceExternalTrafficPolicy: \"\"\n    # -- Set session affinity to None, ClientIP or ClientIPString\n    serviceSessionAffinity: \"\"\n    # -- Tolerations for Distributor pods\n    tolerations: []\n    # -- Node selector for Distributor pods\n    nodeSelector: {}\n    # -- Priority class name for Distributor pods\n    priorityClassName: \"\"\n\n  # Configuration for Event Bus component\n  eventBus:\n    # -- Registry to pull the image (this overwrites global.seleniumGrid.imageRegistry parameter)\n    imageRegistry:\n    # -- Event Bus image name\n    imageName: event-bus\n    # -- Event Bus image tag (this overwrites global.seleniumGrid.imageTag parameter)\n    imageTag:\n\n    # -- Image pull policy (see https://kubernetes.io/docs/concepts/containers/images/#updating-images)\n    imagePullPolicy: IfNotPresent\n    # -- Image pull secret (see https://kubernetes.io/docs/tasks/configure-pod-container/pull-image-private-registry/)\n    imagePullSecret: \"\"\n\n    # -- Specify extra environment variables for Event Bus\n    extraEnvironmentVariables: []\n    # -- Specify extra environment variables from ConfigMap and Secret for Event Bus\n    extraEnvFrom: []\n    # -- Specify affinity for Event Bus pods, this overwrites global.seleniumGrid.affinity parameter\n    affinity: {}\n    # -- Specify topologySpreadConstraints for Event Bus pods, this overwrites global.seleniumGrid.topologySpreadConstraints parameter\n    topologySpreadConstraints: []\n    # -- Custom annotations for Event Bus pods\n    annotations: {}\n    # -- Event Bus container port\n    port: 5557\n    # -- Event Bus expose NodePort\n    nodePort: 30557\n    # -- Container port where events are published\n    publishPort: 4442\n    # -- NodePort exposed where events are published\n    publishNodePort: 30442\n    # -- Container port where to subscribe for events\n    subscribePort: 4443\n    # -- NodePort exposed where to subscribe for events\n    subscribeNodePort: 30443\n    # -- Resources for event-bus container\n    resources:\n      requests:\n        cpu: \"0.5\"\n        memory: \"512Mi\"\n      limits:\n        cpu: \"1\"\n        memory: \"2Gi\"\n    # -- Number of replicas\n    replicas: 1\n    # -- SecurityContext for event-bus container\n    securityContext: {}\n    # -- Kubernetes service type (see https://kubernetes.io/docs/concepts/services-networking/service/#publishing-services-service-types)\n    serviceType: ClusterIP\n    # -- Set specific clusterIP when serviceType is ClusterIP (see https://kubernetes.io/docs/concepts/services-networking/service/#type-clusterip)\n    clusterIP: \"\"\n    # -- Set specific externalName when serviceType is ExternalName (see https://kubernetes.io/docs/concepts/services-networking/service/#type-externalname)\n    externalName: \"\"\n    # -- Set specific loadBalancerIP when serviceType is LoadBalancer (see https://kubernetes.io/docs/concepts/services-networking/service/#loadbalancer)\n    loadBalancerIP: \"\"\n    # -- Custom annotations for Event Bus service\n    serviceAnnotations: {}\n    # -- Set externalTrafficPolicy to Local or Cluster (see https://kubernetes.io/docs/concepts/services-networking/service-traffic-policy/)\n    serviceExternalTrafficPolicy: \"\"\n    # -- Set session affinity to None, ClientIP or ClientIPString\n    serviceSessionAffinity: \"\"\n    # -- Tolerations for Event Bus pods\n    tolerations: []\n    # -- Node selector for Event Bus pods\n    nodeSelector: {}\n    # -- Priority class name for Event Bus pods\n    priorityClassName: \"\"\n\n  # Configuration for Session Map component\n  sessionMap:\n    # -- Registry to pull the image (this overwrites global.seleniumGrid.imageRegistry parameter)\n    imageRegistry:\n    # -- Session Map image name\n    imageName: sessions\n    # -- Session Map image tag (this overwrites global.seleniumGrid.imageTag parameter)\n    imageTag:\n\n    # -- Image pull policy (see https://kubernetes.io/docs/concepts/containers/images/#updating-images)\n    imagePullPolicy: IfNotPresent\n    # -- Image pull secret (see https://kubernetes.io/docs/tasks/configure-pod-container/pull-image-private-registry/)\n    imagePullSecret: \"\"\n\n    # -- Specify extra environment variables for Session Map\n    extraEnvironmentVariables: []\n    # -- Specify extra environment variables from ConfigMap and Secret for Session Map\n    extraEnvFrom: []\n    # -- Specify affinity for Session Map pods, this overwrites global.seleniumGrid.affinity parameter\n    affinity: {}\n    # -- Specify topologySpreadConstraints for Session Map pods, this overwrites global.seleniumGrid.topologySpreadConstraints parameter\n    topologySpreadConstraints: []\n    # -- Custom annotations for Session Map pods\n    annotations: {}\n    # -- Session Map container port\n    port: 5556\n    # -- Resources for Session Map container\n    resources:\n      requests:\n        cpu: \"0.5\"\n        memory: \"512Mi\"\n      limits:\n        cpu: \"1\"\n        memory: \"1Gi\"\n    # -- Number of replicas\n    replicas: 1\n    # -- SecurityContext for Session Map container\n    securityContext: {}\n    # -- Kubernetes service type (see https://kubernetes.io/docs/concepts/services-networking/service/#publishing-services-service-types)\n    serviceType: ClusterIP\n    # -- Custom annotations for Session Map service\n    serviceAnnotations: {}\n    # -- Set externalTrafficPolicy to Local or Cluster (see https://kubernetes.io/docs/concepts/services-networking/service-traffic-policy/)\n    serviceExternalTrafficPolicy: \"\"\n    # -- Set session affinity to None, ClientIP or ClientIPString\n    serviceSessionAffinity: \"\"\n    # -- Tolerations for Session Map pods\n    tolerations: []\n    # -- Node selector for Session Map pods\n    nodeSelector: {}\n    # -- Priority class name for Session Map pods\n    priorityClassName: \"\"\n    externalDatastore:\n      # -- Enable external datastore for Session Map\n      enabled: false\n      # -- Backend for external datastore (supported: postgresql, redis). Details for each backend are described below config key\n      backend: postgresql\n      # -- Configure database backed Session Map (https://www.selenium.dev/documentation/grid/advanced_features/external_datastore/#database-backed-session-map)\n      postgresql:\n        implementation: \"org.openqa.selenium.grid.sessionmap.jdbc.JdbcBackedSessionMap\"\n        jdbcUser: \"seluser\"\n        jdbcPassword: \"seluser\"\n        jdbcUrl: \"jdbc:postgresql://{{ $.Release.Name }}-postgresql:5432/selenium_sessions\"\n      # -- Configure Redis backed Session Map (https://www.selenium.dev/documentation/grid/advanced_features/external_datastore/#redis-backed-session-map)\n      redis:\n        scheme: \"redis\"\n        implementation: \"org.openqa.selenium.grid.sessionmap.redis.RedisBackedSessionMap\"\n        hostname: \"{{ $.Release.Name }}-redis-master\"\n        port: \"6379\"\n\n  # Configuration for Session Queue component\n  sessionQueue:\n    # -- Registry to pull the image (this overwrites global.seleniumGrid.imageRegistry parameter)\n    imageRegistry:\n    # -- Session Queue image name\n    imageName: session-queue\n    # -- Session Queue image tag (this overwrites global.seleniumGrid.imageTag parameter)\n    imageTag:\n\n    # -- Image pull policy (see https://kubernetes.io/docs/concepts/containers/images/#updating-images)\n    imagePullPolicy: IfNotPresent\n    # -- Image pull secret (see https://kubernetes.io/docs/tasks/configure-pod-container/pull-image-private-registry/)\n    imagePullSecret: \"\"\n    # -- Override global sessionRequestTimeout\n    sessionRequestTimeout: \"\"\n\n    # -- Specify extra environment variables for Session Queue\n    extraEnvironmentVariables: []\n    # -- Specify extra environment variables from ConfigMap and Secret for Session Queue\n    extraEnvFrom: []\n    # -- Specify affinity for Session Queue pods, this overwrites global.seleniumGrid.affinity parameter\n    affinity: {}\n    # -- Specify topologySpreadConstraints for Session Queue pods, this overwrites global.seleniumGrid.topologySpreadConstraints parameter\n    topologySpreadConstraints: []\n    # -- Custom annotations for Session Queue pods\n    annotations: {}\n    # -- Session Queue container port\n    port: 5559\n    # -- Session Queue expose NodePort\n    nodePort: 30559\n    # -- Resources for Session Queue container\n    resources:\n      requests:\n        cpu: \"0.5\"\n        memory: \"512Mi\"\n      limits:\n        cpu: \"1\"\n        memory: \"1Gi\"\n    # -- Number of replicas\n    replicas: 1\n    # -- SecurityContext for Session Queue container\n    securityContext: {}\n    # -- Kubernetes service type (see https://kubernetes.io/docs/concepts/services-networking/service/#publishing-services-service-types)\n    serviceType: ClusterIP\n    # -- Custom annotations for Session Queue service\n    serviceAnnotations: {}\n    # -- Set externalTrafficPolicy to Local or Cluster (see https://kubernetes.io/docs/concepts/services-networking/service-traffic-policy/)\n    serviceExternalTrafficPolicy: \"\"\n    # -- Set session affinity to None, ClientIP or ClientIPString\n    serviceSessionAffinity: \"\"\n    # -- Tolerations for Session Queue pods\n    tolerations: []\n    # -- Node selector for Session Queue pods\n    nodeSelector: {}\n    # -- Priority class name for Session Queue pods\n    priorityClassName: \"\"\n\n  # -- Custom environment variables for all components\n  extraEnvironmentVariables: []\n    # - name: SE_JAVA_OPTS\n    #   value: \"-Xmx512m\"\n    # - name:\n    #   valueFrom:\n    #     secretKeyRef:\n    #       name: secret-name\n    #       key: secret-key\n\n  # -- Custom environment variables by sourcing entire configMap, Secret, etc. for all components\n  extraEnvFrom: []\n    # - configMapRef:\n    #   name: proxy-settings\n    # - secretRef:\n    #   name: mysecret\n\n  # -- Extra volume mounts for component container\n  extraVolumeMounts: []\n  # - name: logs-volume\n  #   mountPath: /opt/selenium/logs\n\n  # -- Extra volumes for component pod\n  extraVolumes: []\n  # - name: logs-volume\n  #   persistentVolumeClaim:\n  #     claimName: external-logs-pvc\n\n# Configuration for selenium hub deployment (applied only if `isolateComponents: false`)\nhub:\n  # -- Registry to pull the image (this overwrites global.seleniumGrid.imageRegistry parameter)\n  imageRegistry:\n  # -- Selenium Hub image name\n  imageName: hub\n  # -- Selenium Hub image tag (this overwrites global.seleniumGrid.imageTag parameter)\n  imageTag:\n  # -- Image pull policy (see https://kubernetes.io/docs/concepts/containers/images/#updating-images)\n  imagePullPolicy: IfNotPresent\n  # -- Image pull secret (see https://kubernetes.io/docs/tasks/configure-pod-container/pull-image-private-registry/)\n  imagePullSecret: \"\"\n\n  # -- Specify affinity for Selenium Hub pods, this overwrites global.seleniumGrid.affinity parameter\n  affinity: {}\n  # -- Specify topologySpreadConstraints for Hub pods, this overwrites global.seleniumGrid.topologySpreadConstraints parameter\n  topologySpreadConstraints: []\n  # -- Custom annotations for Selenium Hub pods\n  annotations: {}\n  # -- Custom labels for Selenium Hub pods\n  labels: {}\n  # -- Disable the Grid UI\n  disableUI: false\n  # -- Override global sessionRequestTimeout\n  sessionRequestTimeout: \"\"\n  # -- Configure fixed-sized thread pool for the Distributor to create new sessions as it consumes new session requests from the queue\n  newSessionThreadPoolSize:\n  # -- Port where events are published\n  publishPort: 4442\n  # -- NodePort exposed where events are published\n  publishNodePort: 31442\n  # -- Port where to subscribe for events\n  subscribePort: 4443\n  # -- NodePort exposed where to subscribe for events\n  subscribeNodePort: 32443\n  # -- Selenium Hub port\n  port: 4444\n  # -- Selenium Hub expose NodePort\n  nodePort: 31444\n  # -- Startup probe settings\n  startupProbe:\n    enabled: true\n    path: /readyz\n    initialDelaySeconds: 5\n    failureThreshold: 10\n    timeoutSeconds: 10\n    periodSeconds: 10\n    successThreshold: 1\n  # -- Readiness probe settings\n  readinessProbe:\n    enabled: true\n    path: /readyz\n    initialDelaySeconds: 12\n    failureThreshold: 10\n    timeoutSeconds: 10\n    periodSeconds: 10\n    successThreshold: 1\n  # -- Liveness probe settings\n  livenessProbe:\n    enabled: true\n    path: /readyz\n    initialDelaySeconds: 60\n    failureThreshold: 30\n    timeoutSeconds: 60\n    periodSeconds: 60\n    successThreshold: 1\n  # -- Custom sub path for the hub deployment\n  subPath: \"\"\n  # -- Full class name of non-default slot selector. This is used to select a slot in a Node once the Node has been matched\n  slotSelectorStrategy: \"\"\n  # -- Custom environment variables for selenium-hub\n  extraEnvironmentVariables: []\n    # - name: SE_JAVA_OPTS\n    #   value: \"-Xmx512m\"\n    # - name: SECRET_VARIABLE\n    #   valueFrom:\n    #     secretKeyRef:\n    #       name: secret-name\n    #       key: secret-key\n  # -- Custom environment variables by sourcing entire configMap, Secret, etc. for selenium-hub\n  extraEnvFrom: []\n    # - configMapRef:\n    #   name: proxy-settings\n    # - secretRef:\n    #   name: mysecret\n  # -- Extra volume mounts for Hub container\n  extraVolumeMounts: []\n  # - name: logs-volume\n  #   mountPath: /opt/selenium/logs\n  # -- Extra volumes for Hub pod\n  extraVolumes: []\n  # - name: logs-volume\n  #   persistentVolumeClaim:\n  #     claimName: external-logs-pvc\n  # -- Resources for selenium-hub container\n  resources:\n    requests:\n      cpu: \"0.5\"\n      memory: \"1Gi\"\n    limits:\n      cpu: \"1\"\n      memory: \"2Gi\"\n  # -- Number of replicas\n  replicas: 1\n  # -- SecurityContext for selenium-hub container\n  securityContext: {}\n  # -- Kubernetes service type (see https://kubernetes.io/docs/concepts/services-networking/service/#publishing-services-service-types)\n  serviceType: ClusterIP\n  # -- Set specific clusterIP when serviceType is ClusterIP (see https://kubernetes.io/docs/concepts/services-networking/service/#type-clusterip)\n  clusterIP: \"\"\n  # -- Set specific externalName when serviceType is ExternalName (see https://kubernetes.io/docs/concepts/services-networking/service/#type-externalname)\n  externalName: \"\"\n  # -- Set specific loadBalancerIP when serviceType is LoadBalancer (see https://kubernetes.io/docs/concepts/services-networking/service/#loadbalancer)\n  loadBalancerIP: \"\"\n  # -- Custom annotations for Selenium Hub service\n  serviceAnnotations: {}\n  # -- Set externalTrafficPolicy to Local or Cluster (see https://kubernetes.io/docs/concepts/services-networking/service-traffic-policy/)\n  serviceExternalTrafficPolicy: \"\"\n  # -- Set session affinity to None, ClientIP or ClientIPString\n  serviceSessionAffinity: \"\"\n  # -- Tolerations for selenium-hub pods\n  tolerations: []\n  # -- Node selector for selenium-hub pods\n  nodeSelector: {}\n  # -- Priority class name for selenium-hub pods\n  priorityClassName: \"\"\n\ntracing:\n  # -- Enable tracing. Implies installing Jaeger\n  enabled: false\n  # -- Enable tracing without automatically installing Jaeger\n  enabledWithExistingEndpoint: false\n  # -- Exporter type for tracing. Recommended `otlp` for wide compatibility with observability backends (e.g. Jaeger, Elastic, etc.)\n  exporter: otlp\n  # -- Exporter endpoint for pushing trace data\n  exporterEndpoint: \"http://{{ .Release.Name }}-jaeger:4317\"\n  # -- Enable global auto-configuration for tracing\n  globalAutoConfigure: true\n  ingress:\n    # -- Enable ingress resource to access the Jaeger\n    enabled: true\n    # -- Annotations for Jaeger ingress resource\n    annotations:\n    # -- Configure paths for Jaeger ingress resource\n    paths:\n      - backend:\n          service:\n            name: \"{{ .Release.Name }}-jaeger\"\n            port:\n              number: 16686\n        path: &jaegerBasePath \"/jaeger\"\n        pathType: Prefix\n\nmonitoring:\n  enabled: false\n  enabledWithExistingAgent: false\n  exporter:\n    nameOverride: \"\"\n    imageRegistry: \"ricardbejarano\"\n    imageName: \"graphql_exporter\"\n    imageTag: \"latest\"\n    # -- Custom pull secret for container in patch job\n    imagePullSecret: \"\"\n    annotations: {}\n    port: 9199\n    service:\n      # -- Create a service for exporter\n      enabled: true\n      # -- Service type\n      type: ClusterIP\n      # -- Set specific clusterIP when serviceType is ClusterIP (see https://kubernetes.io/docs/concepts/services-networking/service/#type-clusterip)\n      clusterIP: \"\"\n      # -- Set specific externalName when serviceType is ExternalName (see https://kubernetes.io/docs/concepts/services-networking/service/#type-externalname)\n      externalName: \"\"\n      # -- Set specific loadBalancerIP when serviceType is LoadBalancer (see https://kubernetes.io/docs/concepts/services-networking/service/#loadbalancer)\n      loadBalancerIP: \"\"\n      # -- Node port for service\n      nodePort: 30199\n      # -- Annotations for exporter service\n      annotations: {}\n      # -- Set externalTrafficPolicy to Local or Cluster (see https://kubernetes.io/docs/concepts/services-networking/service-traffic-policy/)\n      externalTrafficPolicy: \"\"\n      # -- Set session affinity to None, ClientIP or ClientIPString\n      sessionAffinity: \"\"\n    replicas: 1\n    # -- Tolerations for exporter pods\n    tolerations: []\n  additionalScrapeConfigs:\n    key: \"\"\n    value: \"\"\n  annotations: {}\n\n# Keda scaled object configuration\nautoscaling:\n  # -- Enable autoscaling. Implies installing KEDA\n  enabled: false\n  # -- Enable autoscaling without automatically installing KEDA\n  enableWithExistingKEDA: false\n  # -- Which type of KEDA scaling to use: job or deployment\n  scalingType: job\n  # -- Force remove replicas in deployment spec in case ArgoCD with AutoSync enabled will try to resolve back to desired state\n  setReplicasInSpec: true\n  # By default, it is \"org.openqa.selenium.grid.distributor.selector.DefaultSlotSelector\". This is ensuring load balancing sessions across all available nodes.\n  # New strategy \"org.openqa.selenium.grid.distributor.selector.GreedySlotSelector\". This might be helpful in case autoscaling overprovisioned with max sessions greater than 1 per node.\n  # Ensure all slots in a node are filled with sessions before selecting the next available node. Note this is available since Selenium Server 4.34.0.\n  # Change this default chart value if you prefer default strategy or using this chart with older Selenium Server versions.\n  # -- Strategy for Selenium Hub/Distributor select slot to assign to a new session.\n  slotSelectorStrategy: \"org.openqa.selenium.grid.distributor.selector.GreedySlotSelector\"\n  # -- Specify an external KEDA TriggerAuthentication resource is used for scaler triggers config. Apply for all browser nodes\n  authenticationRef:\n    name: \"\"\n    annotations:\n      \"helm.sh/hook\": post-install,post-upgrade,post-rollback\n      # TriggerAuthentication is used by ScaledObject/ScaledJob, hence weight should be less than those hooks\n      \"helm.sh/hook-weight\": \"0\"\n  # Configuration for ScaledObject triggers https://keda.sh/docs/latest/reference/scaledobject-spec/#triggers\n  # -- Enables caching of metric values during polling interval (as specified in .spec.pollingInterval, the default: false in KEDA).\n  useCachedMetrics: false\n  # -- Set trigger name.\n  triggerName: \"\"\n  # -- The type of metric that should be used (The default: AverageValue in KEDA)\n  metricType: \"\"\n  # -- Annotations for KEDA resources: ScaledObject and ScaledJob\n  annotations:\n    \"helm.sh/hook\": post-install,post-upgrade,post-rollback\n    # Ensure the weight should be higher than TriggerAuthentication hook\n    \"helm.sh/hook-weight\": \"1\"\n  patchObjectFinalizers:\n    # -- Override the name of the patch job\n    nameOverride:\n    # -- Enable patching finalizers for KEDA scaled resources. Workaround for Hook post-upgrade selenium-grid/templates/x-node-hpa.yaml failed: object is being deleted: scaledobjects.keda.sh \"x\" already exists\n    enabled: true\n    # -- Deadline (in seconds) for patch job to complete\n    activeDeadlineSeconds: 600\n    # -- Annotations for patch job\n    annotations:\n      \"helm.sh/hook\": post-install,post-upgrade,post-rollback,pre-delete\n      \"helm.sh/hook-delete-policy\": hook-succeeded,before-hook-creation\n    # -- Define your custom script to replace the default script\n    deleteObjectsScript: \"\"\n    # -- Define your custom script to replace the default script\n    patchFinalizersScript: \"\"\n    # -- Default mode for ConfigMap is mounted as file\n    defaultMode: 0755\n    # -- Define an external service account name contains permissions to patch KEDA scaled resources\n    serviceAccount: \"\"\n    # -- Custom pull secret for container in patch job\n    imagePullSecret: \"\"\n    # -- Define resources for container in patch job\n    resources:\n      requests:\n        cpu: 100m\n        memory: 200Mi\n      limits:\n        cpu: 200m\n        memory: 500Mi\n    # -- Node selector for the patch job\n    nodeSelector: {}\n    # -- Tolerations for the patch job\n    tolerations: []\n  # -- Default type of trigger to use (`selenium-grid` is build-in scaler in KEDA)\n  defaultTriggerType: \"selenium-grid\"\n  # -- Default alias name of trigger type (which is used in formula if you want to add scalingModifiers to advanced spec)\n  defaultTriggerName: \"seleniumGrid\"\n  # -- Options for KEDA scaled resources (keep only common options used for both ScaledJob and ScaledObject)\n  scaledOptions:\n    # Don't define `triggers` config here, it will apply the same to all node types. Instead, define it under `scaledOptions` of different node type\n    # -- Minimum number of replicas\n    minReplicaCount: 0\n    # -- Maximum number of replicas\n    maxReplicaCount: 24\n    # -- Polling interval in seconds\n    pollingInterval: 20\n    # -- List of triggers. Be careful, the default trigger of `selenium-grid` will be overwritten if you specify this\n    triggers: []\n  # Options for KEDA ScaledJobs (only used when scalingType is set to \"job\"). See https://keda.sh/docs/latest/concepts/scaling-jobs/#scaledjob-spec\n  scaledJobOptions:\n    scalingStrategy:\n      # -- Scaling strategy for KEDA ScaledJob - https://keda.sh/docs/latest/reference/scaledjob-spec/#scalingstrategy\n      strategy: default\n    # -- Number of Completed jobs should be kept\n    successfulJobsHistoryLimit: 0\n    # -- Number of Failed jobs should be kept (for troubleshooting purposes)\n    failedJobsHistoryLimit: 0\n    # -- Specify job target ref for KEDA ScaledJob\n    jobTargetRef:\n      parallelism: 1\n      completions: 1\n      backoffLimit: 0\n  # Options for KEDA ScaledObjects (only used when scalingType is set to \"deployment\"). See https://keda.sh/docs/latest/concepts/scaling-deployments/#scaledobject-spec\n  scaledObjectOptions:\n    advanced:\n      restoreToOriginalReplicaCount: true\n    scaleTargetRef:\n      # -- Target reference for KEDA ScaledObject\n      kind: Deployment\n  # For example, over over-provisioning ratio `1.2` means 20% more than the actual requests\n  scaledOverProvisionRatio: \"\"\n  # -- Define terminationGracePeriodSeconds for scalingType \"deployment\". Period for `deregisterLifecycle` to gracefully shut down the node before force terminating it\n  terminationGracePeriodSeconds: 3600\n  # -- Define preStop command to shut down the node gracefully when scalingType is set to \"deployment\"\n  deregisterLifecycle:\n  #  preStop:\n  #    exec:\n  #      command: [ \"bash\", \"-c\", \"/opt/bin/nodePreStop.sh\" ]\n\n# Configuration additional nodes with different versions, capabilities, etc.\ncrossBrowsers:\n  # -- Additional chrome nodes, array of objects with the same structure as `chromeNode`\n  chromeNode:\n    - nameOverride:\n  # - Refer to file `multiple-nodes-platform-version.yaml` to configure additional nodes\n  # -- Additional firefox nodes, array of objects with the same structure as `firefoxNode`\n  firefoxNode:\n    - nameOverride:\n  # - Refer to file `multiple-nodes-platform-version.yaml` to configure additional node browsers\n  # -- Additional edge nodes, array of objects with the same structure as `edgeNode`\n  edgeNode:\n    - nameOverride:\n  # - Refer to file `multiple-nodes-platform-version.yaml` to configure additional node browsers\n  # -- Additional release nodes, array of objects with the same structure as `relayNode`\n  relayNode:\n    - nameOverride:\n\n# Configuration for chrome nodes\nchromeNode:\n  # -- Enable chrome nodes\n  enabled: true\n\n  # -- NOTE: Only used when autoscaling.enabled is false\n  # Enable creation of Deployment\n  # true (default) - if you want long-living pods\n  # false - for provisioning your own custom type such as Jobs\n  deploymentEnabled: true\n  # -- Global update strategy will be overwritten by individual component\n  updateStrategy:\n    type:\n  # -- Number of chrome nodes\n  replicas: 1\n  # -- Registry to pull the image (this overwrites global.seleniumGrid.imageRegistry parameter)\n  imageRegistry:\n  # -- Image of chrome nodes\n  imageName: node-chrome\n  # -- Image of chrome nodes (this overwrites global.seleniumGrid.nodesImageTag)\n  imageTag:\n  # -- Image pull policy (see https://kubernetes.io/docs/concepts/containers/images/#updating-images)\n  imagePullPolicy: IfNotPresent\n  # -- Image pull secret (see https://kubernetes.io/docs/tasks/configure-pod-container/pull-image-private-registry/)\n  imagePullSecret: \"\"\n\n  # -- Extra ports list to enable on the node container (e.g. SSH, VNC, NoVNC, etc.)\n  ports: []\n  # - 5900\n  # - 7900\n  # -- Node component port\n  port: 5555\n  # -- Node component expose NodePort\n  nodePort:\n  # -- Specify affinity for chrome-node pods, this overwrites global.seleniumGrid.affinity parameter\n  affinity: {}\n  # -- Specify topologySpreadConstraints for chrome-node pods, this overwrites global.seleniumGrid.topologySpreadConstraints parameter\n  topologySpreadConstraints: []\n  # -- Annotations for chrome-node pods\n  annotations: {}\n  # -- Labels for chrome-node pods\n  labels: {}\n  # -- Shared process namespace for chrome-node pods\n  shareProcessNamespace: true\n  # Resources for chrome-node container\n  resources:\n    # -- Request resources for chrome-node pods\n    requests:\n      memory: \"1Gi\"\n      cpu: \"1\"\n    # -- Limit resources for chrome-node pods\n    limits:\n      memory: \"2Gi\"\n      cpu: \"1\"\n  # -- SecurityContext for chrome-node container\n  securityContext: {}\n  # -- Tolerations for chrome-node pods\n  tolerations: []\n  # -- Node selector for chrome-node pods\n  nodeSelector: {}\n  # -- Custom host aliases for chrome nodes\n  hostAliases:\n    # - ip: \"198.51.100.0\"\n    #   hostnames:\n    #     - \"example.com\"\n    #     - \"example.net\"\n    # - ip: \"203.0.113.0\"\n    #   hostnames:\n    #     - \"example.org\"\n  # -- Custom environment variables for chrome nodes\n  extraEnvironmentVariables: []\n    # - name: SE_JAVA_OPTS\n    #   value: \"-Xmx512m\"\n    # - name:\n    #   valueFrom:\n    #     secretKeyRef:\n    #       name: secret-name\n    #       key: secret-key\n  # -- Custom environment variables by sourcing entire configMap, Secret, etc. for chrome nodes\n  extraEnvFrom: []\n    # - configMapRef:\n    #   name: proxy-settings\n    # - secretRef:\n    #   name: mysecret\n  # Service configuration\n  service:\n    # -- Create a service for node\n    enabled: false\n    # -- Service type\n    type: ClusterIP\n    # -- Set specific loadBalancerIP when serviceType is LoadBalancer (see https://kubernetes.io/docs/concepts/services-networking/service/#loadbalancer)\n    loadBalancerIP: \"\"\n    # -- Extra ports exposed in node service\n    ports:\n    # - name: vnc-port\n    #   port: 5900\n    #   targetPort: 5900\n    # -- Custom annotations for service\n    annotations: {}\n    # -- Set externalTrafficPolicy to Local or Cluster (see https://kubernetes.io/docs/concepts/services-networking/service-traffic-policy/)\n    externalTrafficPolicy: \"\"\n    # -- Set session affinity to None, ClientIP or ClientIPString\n    sessionAffinity: \"\"\n  # -- Size limit for DSH volume mounted in container (if not set, default is disabled, e.g \"1Gi\")\n  dshmVolumeSizeLimit: \"\"\n  # -- Priority class name for chrome-node pods\n  priorityClassName: \"\"\n\n  # -- Startup probe settings\n  startupProbe:\n    enabled: true\n    path: /status\n    initialDelaySeconds: 0\n    periodSeconds: 5\n    timeoutSeconds: 60\n    failureThreshold: 12\n    successThreshold: 1\n\n  # -- Readiness probe settings\n  readinessProbe:\n    enabled: true\n    path: /status\n    initialDelaySeconds: 10\n    failureThreshold: 10\n    timeoutSeconds: 10\n    periodSeconds: 10\n    successThreshold: 1\n\n  # -- Liveness probe settings\n  livenessProbe:\n    enabled: false\n    path: /status\n    initialDelaySeconds: 30\n    failureThreshold: 6\n    timeoutSeconds: 60\n    periodSeconds: 10\n    successThreshold: 1\n\n  # -- Time to wait for pod termination\n  terminationGracePeriodSeconds: 30\n  # -- Define preStop command to shut down the chrome node gracefully. This overwrites autoscaling.deregisterLifecycle\n  deregisterLifecycle:\n  # -- Define postStart and preStop events. This overwrites the defined preStop in deregisterLifecycle if any\n  lifecycle: {}\n  # -- Extra volume mounts for chrome-node container\n  extraVolumeMounts: []\n  # - name: my-extra-volume\n  #   mountPath: /home/seluser/Downloads\n\n  # -- Extra volumes for chrome-node pod\n  extraVolumes: []\n  # - name: my-extra-volume\n  #   emptyDir: {}\n  # - name: my-extra-volume-from-pvc\n  #   persistentVolumeClaim:\n  #     claimName: my-pv-claim\n\n  # -- Override the number of max sessions per node\n  nodeMaxSessions:\n  # -- Override the number of sessions to run before draining the node\n  nodeDrainAfterSessionCount:\n  # -- Override the managed downloads in node\n  nodeEnableManagedDownloads:\n  # -- Override the same config at the global level\n  nodeCustomCapabilities: \"\"\n  # -- Override the same config at the global level\n  nodeRegisterPeriod:\n  # -- Override the same config at the global level\n  nodeRegisterCycle:\n  # -- Override the scaled options for chrome nodes\n  scaledOptions:\n  # -- Override the scaledJobOptions for chrome nodes\n  scaledJobOptions:\n  # -- Override the scaledObjectOptions for chrome nodes\n  scaledObjectOptions:\n  # For example, over over-provisioning ratio `1.2` means 20% more than the actual requests\n  scaledOverProvisionRatio: \"\"\n  hpa:\n    # -- browserName should match with Node stereotype and request capability is scaled by this scaler\n    browserName: \"chrome\"\n    # -- sessionBrowserName if the browserName is different from the sessionBrowserName\n    sessionBrowserName: \"chrome\"\n    # -- browserVersion should match with Node stereotype and request capability is scaled by this scaler\n    browserVersion: \"\"\n    # -- platformName should match with Node stereotype and request capability is scaled by this scaler\n    platformName: \"\"\n    # -- Skip check SSL when connecting to the Graphql endpoint\n    unsafeSsl: '{{ template \"seleniumGrid.graphqlURL.unsafeSsl\" . }}'  # Optional\n\n  # -- It is used to add initContainers in the same pod of the browser node.\n  # It should be set using the --set-json option\n  initContainers: []\n\n  # -- It is used to add sidecars proxy in the same pod of the browser node.\n  # It means it will add a new container to the deployment itself.\n  # It should be set using the --set-json option\n  sidecars: []\n  # -- Override specific video recording settings for chrome node\n  videoRecorder: {}\n\n# Configuration for firefox nodes\nfirefoxNode:\n  # -- Enable firefox nodes\n  enabled: true\n\n  # -- NOTE: Only used when autoscaling.enabled is false\n  # Enable creation of Deployment\n  # true (default) - if you want long living pods\n  # false - for provisioning your own custom type such as Jobs\n  deploymentEnabled: true\n  # -- Global update strategy will be overwritten by individual component\n  updateStrategy:\n    type:\n  # -- Number of firefox nodes\n  replicas: 1\n  # -- Registry to pull the image (this overwrites global.seleniumGrid.imageRegistry parameter)\n  imageRegistry:\n  # -- Image of firefox nodes\n  imageName: node-firefox\n  # -- Image of firefox nodes (this overwrites global.seleniumGrid.nodesImageTag)\n  imageTag:\n  # -- Image pull policy (see https://kubernetes.io/docs/concepts/containers/images/#updating-images)\n  imagePullPolicy: IfNotPresent\n  # -- Image pull secret (see https://kubernetes.io/docs/tasks/configure-pod-container/pull-image-private-registry/)\n  imagePullSecret: \"\"\n\n  # -- Extra ports list to enable on the node container (e.g. SSH, VNC, NoVNC, etc.)\n  ports: []\n  # - 5900\n  # - 7900\n  # -- Node component port\n  port: 5555\n  # -- Node component expose NodePort\n  nodePort:\n  # -- Specify affinity for firefox-node pods, this overwrites global.seleniumGrid.affinity parameter\n  affinity: {}\n  # -- Specify topologySpreadConstraints for firefox-node pods, this overwrites global.seleniumGrid.topologySpreadConstraints parameter\n  topologySpreadConstraints: []\n  # -- Annotations for firefox-node pods\n  annotations: {}\n  # -- Labels for firefox-node pods\n  labels: {}\n  # -- Tolerations for firefox-node pods\n  tolerations: []\n  # -- Node selector for firefox-node pods\n  nodeSelector: {}\n  # -- Shared process namespace for firefox-node pods\n  shareProcessNamespace: true\n  # Resources for firefox-node container\n  resources:\n    # -- Request resources for firefox-node pods\n    requests:\n      memory: \"1Gi\"\n      cpu: \"1\"\n    # -- Limit resources for firefox-node pods\n    limits:\n      memory: \"2Gi\"\n      cpu: \"1\"\n  # -- SecurityContext for firefox-node container\n  securityContext: {}\n  # -- Custom host aliases for firefox nodes\n  hostAliases:\n    # - ip: \"198.51.100.0\"\n    #   hostnames:\n    #     - \"example.com\"\n    #     - \"example.net\"\n    # - ip: \"203.0.113.0\"\n    #   hostnames:\n    #     - \"example.org\"\n  # -- Custom environment variables for firefox nodes\n  extraEnvironmentVariables: []\n    # - name: SE_JAVA_OPTS\n    #   value: \"-Xmx512m\"\n    # - name:\n    #   valueFrom:\n    #     secretKeyRef:\n    #       name: secret-name\n    #       key: secret-key\n  # -- Custom environment variables by sourcing entire configMap, Secret, etc. for firefox nodes\n  extraEnvFrom: []\n    # - configMapRef:\n    #   name: proxy-settings\n    # - secretRef:\n    #   name: mysecret\n  # Service configuration\n  service:\n    # -- Create a service for node\n    enabled: false\n    # -- Service type\n    type: ClusterIP\n    # -- Set specific loadBalancerIP when serviceType is LoadBalancer (see https://kubernetes.io/docs/concepts/services-networking/service/#loadbalancer)\n    loadBalancerIP: \"\"\n    # -- Extra ports exposed in node service\n    ports:\n    # - name: vnc-port\n    #   port: 5900\n    #   targetPort: 5900\n    # -- Custom annotations for service\n    annotations: {}\n    # -- Set externalTrafficPolicy to Local or Cluster (see https://kubernetes.io/docs/concepts/services-networking/service-traffic-policy/)\n    externalTrafficPolicy: \"\"\n    # -- Set session affinity to None, ClientIP or ClientIPString\n    sessionAffinity: \"\"\n  # -- Size limit for DSH volume mounted in container (if not set, default is disabled, e.g \"1Gi\")\n  dshmVolumeSizeLimit: \"2Gi\"\n  # -- Priority class name for firefox-node pods\n  priorityClassName: \"\"\n\n  # -- Startup probe settings\n  startupProbe:\n    enabled: true\n    path: /status\n    initialDelaySeconds: 0\n    periodSeconds: 5\n    timeoutSeconds: 60\n    failureThreshold: 12\n    successThreshold: 1\n\n  # -- Readiness probe settings\n  readinessProbe:\n    enabled: true\n    path: /status\n    initialDelaySeconds: 10\n    failureThreshold: 10\n    timeoutSeconds: 10\n    periodSeconds: 10\n    successThreshold: 1\n\n  # -- Liveness probe settings\n  livenessProbe:\n    enabled: false\n    path: /status\n    initialDelaySeconds: 30\n    failureThreshold: 6\n    timeoutSeconds: 60\n    periodSeconds: 10\n    successThreshold: 1\n\n  # -- Time to wait for pod termination\n  terminationGracePeriodSeconds: 30\n  # -- Define preStop command to shuts down the chrome node gracefully. This overwrites autoscaling.deregisterLifecycle\n  deregisterLifecycle:\n  # -- Define postStart and preStop events. This overwrites the defined preStop in deregisterLifecycle if any\n  lifecycle: {}\n  # -- Extra volume mounts for firefox-node container\n  extraVolumeMounts: []\n  # - name: my-extra-volume\n  #   mountPath: /home/seluser/Downloads\n\n  # -- Extra volumes for firefox-node pod\n  extraVolumes: []\n  # - name: my-extra-volume\n  #   emptyDir: {}\n  # - name: my-extra-volume-from-pvc\n  #   persistentVolumeClaim:\n  #     claimName: my-pv-claim\n\n  # -- Override the number of max sessions per node\n  nodeMaxSessions:\n  # -- Override the number of sessions to run before draining the node\n  nodeDrainAfterSessionCount:\n  # -- Override the managed downloads in node\n  nodeEnableManagedDownloads:\n  # -- Override the same config at the global level\n  nodeCustomCapabilities: \"\"\n  # -- Override the same config at the global level\n  nodeRegisterPeriod:\n  # -- Override the same config at the global level\n  nodeRegisterCycle:\n  # -- Override the scaled options for firefox nodes\n  scaledOptions:\n  # -- Override the scaledJobOptions for firefox nodes\n  scaledJobOptions:\n  # -- Override the scaledObjectOptions for firefox nodes\n  scaledObjectOptions:\n  # For example, over over-provisioning ratio `1.2` means 20% more than the actual requests\n  scaledOverProvisionRatio: \"\"\n  hpa:\n    # -- browserName should match with Node stereotype and request capability is scaled by this scaler\n    browserName: \"firefox\"\n    # -- sessionBrowserName if the browserName is different from the sessionBrowserName\n    sessionBrowserName: \"firefox\"\n    # -- browserVersion should match with Node stereotype and request capability is scaled by this scaler\n    browserVersion: \"\"\n    # -- platformName should match with Node stereotype and request capability is scaled by this scaler\n    platformName: \"\"\n    # -- Skip check SSL when connecting to the Graphql endpoint\n    unsafeSsl: '{{ template \"seleniumGrid.graphqlURL.unsafeSsl\" . }}'  # Optional\n\n  # -- It is used to add initContainers in the same pod of the browser node.\n  # It should be set using the --set-json option\n  initContainers: []\n\n  # -- It is used to add sidecars proxy in the same pod of the browser node.\n  # It means it will add a new container to the deployment itself.\n  # It should be set using the --set-json option\n  sidecars: []\n  # -- Override specific video recording settings for firefox node\n  videoRecorder: {}\n\n# Configuration for edge nodes\nedgeNode:\n  # -- Enable edge nodes\n  enabled: true\n\n  # -- NOTE: Only used when autoscaling.enabled is false\n  # Enable creation of Deployment\n  # true (default) - if you want long living pods\n  # false - for provisioning your own custom type such as Jobs\n  deploymentEnabled: true\n  # -- Global update strategy will be overwritten by individual component\n  updateStrategy:\n    type:\n  # -- Number of edge nodes\n  replicas: 1\n  # -- Registry to pull the image (this overwrites global.seleniumGrid.imageRegistry parameter)\n  imageRegistry:\n  # -- Image of edge nodes\n  imageName: node-edge\n  # -- Image of edge nodes (this overwrites global.seleniumGrid.nodesImageTag)\n  imageTag:\n  # -- Image pull policy (see https://kubernetes.io/docs/concepts/containers/images/#updating-images)\n  imagePullPolicy: IfNotPresent\n  # -- Image pull secret (see https://kubernetes.io/docs/tasks/configure-pod-container/pull-image-private-registry/)\n  imagePullSecret: \"\"\n\n  # -- Extra ports list to enable on the node container (e.g. SSH, VNC, NoVNC, etc.)\n  ports: []\n  # - 5900\n  # - 7900\n  # -- Node component port\n  port: 5555\n  # -- Node component expose NodePort\n  nodePort:\n  # -- Specify affinity for edge-node pods, this overwrites global.seleniumGrid.affinity parameter\n  affinity: {}\n  # -- Specify topologySpreadConstraints for edge-node pods, this overwrites global.seleniumGrid.topologySpreadConstraints parameter\n  topologySpreadConstraints: []\n  # -- Annotations for edge-node pods\n  annotations: {}\n  # -- Labels for edge-node pods\n  labels: {}\n  # -- Tolerations for edge-node pods\n  tolerations: []\n  # -- Node selector for edge-node pods\n  nodeSelector: {}\n  # -- Shared process namespace for edge-node pods\n  shareProcessNamespace: true\n  # Resources for edge-node container\n  resources:\n    # -- Request resources for edge-node pods\n    requests:\n      memory: \"1Gi\"\n      cpu: \"1\"\n    # -- Limit resources for edge-node pods\n    limits:\n      memory: \"2Gi\"\n      cpu: \"1\"\n  # -- SecurityContext for edge-node container\n  securityContext: {}\n  # -- Custom host aliases for edge nodes\n  hostAliases:\n    # - ip: \"198.51.100.0\"\n    #   hostnames:\n    #     - \"example.com\"\n    #     - \"example.net\"\n    # - ip: \"203.0.113.0\"\n    #   hostnames:\n    #     - \"example.org\"\n  # -- Custom environment variables for edge nodes\n  extraEnvironmentVariables: []\n    # - name: SE_JAVA_OPTS\n    #   value: \"-Xmx512m\"\n    # - name:\n    #   valueFrom:\n    #     secretKeyRef:\n    #       name: secret-name\n    #       key: secret-key\n  # -- Custom environment variables by sourcing entire configMap, Secret, etc. for edge nodes\n  extraEnvFrom: []\n    # - configMapRef:\n    #   name: proxy-settings\n    # - secretRef:\n    #   name: mysecret\n  # Service configuration\n  service:\n    # -- Create a service for node\n    enabled: false\n    # -- Service type\n    type: ClusterIP\n    # -- Set specific loadBalancerIP when serviceType is LoadBalancer (see https://kubernetes.io/docs/concepts/services-networking/service/#loadbalancer)\n    loadBalancerIP: \"\"\n    # -- Extra ports exposed in node service\n    ports:\n    # - name: vnc-port\n    #   port: 5900\n    #   targetPort: 5900\n    # -- Custom annotations for service\n    annotations: {}\n    # -- Set externalTrafficPolicy to Local or Cluster (see https://kubernetes.io/docs/concepts/services-networking/service-traffic-policy/)\n    externalTrafficPolicy: \"\"\n    # -- Set session affinity to None, ClientIP or ClientIPString\n    sessionAffinity: \"\"\n  # -- Size limit for DSH volume mounted in container (if not set, default is disabled, e.g \"1Gi\")\n  dshmVolumeSizeLimit: \"\"\n  # -- Priority class name for edge-node pods\n  priorityClassName: \"\"\n\n  # -- Startup probe settings\n  startupProbe:\n    enabled: true\n    path: /status\n    initialDelaySeconds: 0\n    periodSeconds: 5\n    timeoutSeconds: 60\n    failureThreshold: 12\n    successThreshold: 1\n\n  # -- Readiness probe settings\n  readinessProbe:\n    enabled: true\n    path: /status\n    initialDelaySeconds: 10\n    failureThreshold: 10\n    timeoutSeconds: 10\n    periodSeconds: 10\n    successThreshold: 1\n\n  # -- Liveness probe settings\n  livenessProbe:\n    enabled: false\n    path: /status\n    initialDelaySeconds: 30\n    failureThreshold: 6\n    timeoutSeconds: 60\n    periodSeconds: 10\n    successThreshold: 1\n\n  # -- Time to wait for pod termination\n  terminationGracePeriodSeconds: 30\n  # -- Define preStop command to shuts down the chrome node gracefully. This overwrites autoscaling.deregisterLifecycle\n  deregisterLifecycle:\n  # -- Define postStart and preStop events. This overwrites the defined preStop in deregisterLifecycle if any\n  lifecycle: {}\n  # -- Extra volume mounts for edge-node container\n  extraVolumeMounts: []\n  # - name: my-extra-volume\n  #   mountPath: /home/seluser/Downloads\n\n  # -- Extra volumes for edge-node pod\n  extraVolumes: []\n  # - name: my-extra-volume\n  #   emptyDir: {}\n  # - name: my-extra-volume-from-pvc\n  #   persistentVolumeClaim:\n  #     claimName: my-pv-claim\n\n  # -- Override the number of max sessions per node\n  nodeMaxSessions:\n  # -- Override the number of sessions to run before draining the node\n  nodeDrainAfterSessionCount:\n  # -- Override the managed downloads in node\n  nodeEnableManagedDownloads:\n  # -- Override the same config at the global level\n  nodeCustomCapabilities: \"\"\n  # -- Override the same config at the global level\n  nodeRegisterPeriod:\n  # -- Override the same config at the global level\n  nodeRegisterCycle:\n  # -- Override the scaled options for edge nodes\n  scaledOptions:\n  # -- Override the scaledJobOptions for edge nodes\n  scaledJobOptions:\n  # -- Override the scaledObjectOptions for edge nodes\n  scaledObjectOptions:\n  # For example, over over-provisioning ratio `1.2` means 20% more than the actual requests\n  scaledOverProvisionRatio: \"\"\n  hpa:\n    # -- browserName should match with Node stereotype and request capability is scaled by this scaler\n    browserName: \"MicrosoftEdge\"\n    # -- sessionBrowserName if the browserName is different from the sessionBrowserName\n    sessionBrowserName: \"msedge\"\n    # -- browserVersion should match with Node stereotype and request capability is scaled by this scaler\n    browserVersion: \"\"\n    # -- platformName should match with Node stereotype and request capability is scaled by this scaler\n    platformName: \"\"\n    # -- Skip check SSL when connecting to the Graphql endpoint\n    unsafeSsl: '{{ template \"seleniumGrid.graphqlURL.unsafeSsl\" . }}'  # Optional\n\n  # -- It is used to add initContainers in the same pod of the browser node.\n  # It should be set using the --set-json option\n  initContainers: []\n\n  # -- It is used to add sidecars proxy in the same pod of the browser node.\n  # It means it will add a new container to the deployment itself.\n  # It should be set using the --set-json option\n  sidecars: []\n  # -- Override specific video recording settings for edge node\n  videoRecorder: {}\n\n# Configuration for relay nodes\nrelayNode:\n  # -- Enable relay nodes\n  enabled: false\n  # -- Specify another Grid, another network, or a cloud vendor that you wish to connect to (e.g. https://ondemand.us-west-1.saucelabs.com/wd/hub)\n  relayUrl: \"\"\n  # -- NOTE: Only used when autoscaling.enabled is false\n  # Enable creation of Deployment\n  # true (default) - if you want long-living pods\n  # false - for provisioning your own custom type such as Jobs\n  deploymentEnabled: true\n  # -- Global update strategy will be overwritten by individual component\n  updateStrategy:\n    type:\n  # -- Number of relay nodes\n  replicas: 1\n  # -- Registry to pull the image (this overwrites global.seleniumGrid.imageRegistry parameter)\n  imageRegistry:\n  # -- Image of relay nodes\n  imageName: node-base\n  # -- Image of relay nodes (this overwrites global.seleniumGrid.nodesImageTag)\n  imageTag:\n  # -- Image pull policy (see https://kubernetes.io/docs/concepts/containers/images/#updating-images)\n  imagePullPolicy: IfNotPresent\n  # -- Image pull secret (see https://kubernetes.io/docs/tasks/configure-pod-container/pull-image-private-registry/)\n  imagePullSecret: \"\"\n\n  # -- Extra ports list to enable on the node container (e.g. SSH, VNC, NoVNC, etc.)\n  ports: []\n  # - 5900\n  # - 7900\n  # -- Node component port\n  port: 5555\n  # -- Node component expose NodePort\n  nodePort:\n  # -- Specify affinity for relay-node pods, this overwrites global.seleniumGrid.affinity parameter\n  affinity: {}\n  # -- Specify topologySpreadConstraints for relay-node pods, this overwrites global.seleniumGrid.topologySpreadConstraints parameter\n  topologySpreadConstraints: []\n  # -- Annotations for relay-node pods\n  annotations: {}\n  # -- Labels for relay-node pods\n  labels: {}\n  # -- Shared process namespace for relay-node pods\n  shareProcessNamespace: true\n  # Resources for relay-node container\n  resources:\n    # -- Request resources for relay-node pods\n    requests:\n      memory: \"1Gi\"\n      cpu: \"1\"\n    # -- Limit resources for relay-node pods\n    limits:\n      memory: \"2Gi\"\n      cpu: \"1\"\n  # -- SecurityContext for relay-node container\n  securityContext: {}\n  # -- Tolerations for relay-node pods\n  tolerations: []\n  # -- Node selector for relay-node pods\n  nodeSelector: {}\n  # -- Custom host aliases for relay nodes\n  hostAliases:\n  # - ip: \"198.51.100.0\"\n  #   hostnames:\n  #     - \"example.com\"\n  #     - \"example.net\"\n  # - ip: \"203.0.113.0\"\n  #   hostnames:\n  #     - \"example.org\"\n  # -- Custom environment variables for relay nodes\n  extraEnvironmentVariables: []\n  # - name: SE_JAVA_OPTS\n  #   value: \"-Xmx512m\"\n  # - name:\n  #   valueFrom:\n  #     secretKeyRef:\n  #       name: secret-name\n  #       key: secret-key\n  # -- Custom environment variables by sourcing entire configMap, Secret, etc. for relay nodes\n  extraEnvFrom: []\n  # - configMapRef:\n  #   name: proxy-settings\n  # - secretRef:\n  #   name: mysecret\n  # Service configuration\n  service:\n    # -- Create a service for node\n    enabled: false\n    # -- Service type\n    type: ClusterIP\n    # -- Set specific loadBalancerIP when serviceType is LoadBalancer (see https://kubernetes.io/docs/concepts/services-networking/service/#loadbalancer)\n    loadBalancerIP: \"\"\n    # -- Extra ports exposed in node service\n    ports:\n    # - name: vnc-port\n    #   port: 5900\n    #   targetPort: 5900\n    # -- Custom annotations for service\n    annotations: {}\n    # -- Set externalTrafficPolicy to Local or Cluster (see https://kubernetes.io/docs/concepts/services-networking/service-traffic-policy/)\n    externalTrafficPolicy: \"\"\n    # -- Set session affinity to None, ClientIP or ClientIPString\n    sessionAffinity: \"\"\n  # -- Size limit for DSH volume mounted in container (if not set, default is disabled, e.g \"1Gi\")\n  dshmVolumeSizeLimit: \"\"\n  # -- Priority class name for relay-node pods\n  priorityClassName: \"\"\n\n  # -- Startup probe settings\n  startupProbe:\n    enabled: true\n    path: /status\n    initialDelaySeconds: 0\n    periodSeconds: 5\n    timeoutSeconds: 60\n    failureThreshold: 12\n    successThreshold: 1\n\n  # -- Readiness probe settings\n  readinessProbe:\n    enabled: true\n    path: /status\n    initialDelaySeconds: 10\n    failureThreshold: 10\n    timeoutSeconds: 10\n    periodSeconds: 10\n    successThreshold: 1\n\n  # -- Liveness probe settings\n  livenessProbe:\n    enabled: false\n    path: /status\n    initialDelaySeconds: 30\n    failureThreshold: 6\n    timeoutSeconds: 60\n    periodSeconds: 10\n    successThreshold: 1\n\n  # -- Time to wait for pod termination\n  terminationGracePeriodSeconds: 30\n  # -- Define preStop command to shut down the relay node gracefully. This overwrites autoscaling.deregisterLifecycle\n  deregisterLifecycle:\n  # -- Define postStart and preStop events. This overwrites the defined preStop in deregisterLifecycle if any\n  lifecycle: {}\n  # -- Extra volume mounts for relay-node container\n  extraVolumeMounts: []\n  # - name: my-extra-volume\n  #   mountPath: /home/seluser/Downloads\n\n  # -- Extra volumes for relay-node pod\n  extraVolumes: []\n  # - name: my-extra-volume\n  #   emptyDir: {}\n  # - name: my-extra-volume-from-pvc\n  #   persistentVolumeClaim:\n  #     claimName: my-pv-claim\n\n  # -- Override the number of max sessions per node\n  nodeMaxSessions:\n  # -- Override the number of sessions to run before draining the node\n  nodeDrainAfterSessionCount:\n  # -- Override the managed downloads in node\n  nodeEnableManagedDownloads:\n  # -- Override the same config at the global level\n  nodeCustomCapabilities: \"\"\n  # -- Override the same config at the global level\n  nodeRegisterPeriod:\n  # -- Override the same config at the global level\n  nodeRegisterCycle:\n  # -- Override the scaled options for relay nodes\n  scaledOptions:\n  # -- Override the scaledJobOptions for relay nodes\n  scaledJobOptions:\n  # -- Override the scaledObjectOptions for relay nodes\n  scaledObjectOptions:\n  # For example, over over-provisioning ratio `1.2` means 20% more than the actual requests\n  scaledOverProvisionRatio: \"\"\n  hpa:\n    # -- browserName should match with Node stereotype and request capability is scaled by this scaler\n    browserName: \"\"\n    # -- sessionBrowserName if the browserName is different from the sessionBrowserName\n    sessionBrowserName: \"\"\n    # -- browserVersion should match with Node stereotype and request capability is scaled by this scaler\n    browserVersion: \"\"\n    # -- platformName should match with Node stereotype and request capability is scaled by this scaler\n    platformName: \"\"\n    # -- Skip check SSL when connecting to the Graphql endpoint\n    unsafeSsl: '{{ template \"seleniumGrid.graphqlURL.unsafeSsl\" . }}'  # Optional\n\n  # -- It is used to add initContainers in the same pod of the browser node.\n  # It should be set using the --set-json option\n  initContainers: []\n\n  # -- It is used to add sidecars proxy in the same pod of the browser node.\n  # It means it will add a new container to the deployment itself.\n  # It should be set using the --set-json option\n  sidecars: []\n  # -- Override specific video recording settings for edge node\n  videoRecorder: {}\n\n# Video recording configuration for all browser nodes. Can be overridden by each browser node\nvideoRecorder:\n  # -- Enable video recording in all browser nodes\n  enabled: false\n  # -- Video recorder run as a sidecar container (2 containers in the same pod), or a single container with browser and recorder\n  # https://github.com/SeleniumHQ/docker-selenium/discussions/2539\n  sidecarContainer: false\n  # -- Container name is set to resource specs\n  name: video\n  # -- Registry to pull the image (this overwrites global.seleniumGrid.imageRegistry parameter)\n  imageRegistry:\n  # -- Image of video recorder\n  imageName: video\n  # -- Image of video recorder (this overwrites global.seleniumGrid.videoImageTag)\n  imageTag:\n  # -- Image pull policy (see https://kubernetes.io/docs/concepts/containers/images/#updating-images)\n  imagePullPolicy: IfNotPresent\n  # -- Directory to store video files in the container\n  targetFolder: \"/videos\"\n  uploader:\n    # -- Enable video uploader\n    enabled: false\n    # -- Where to upload the video file e.g. remoteName://bucketName/path. Refer to destination syntax of rclone https://rclone.org/docs/\n    destinationPrefix:\n    # -- What uploader to use (default is empty, internal upload in video container). See .videRecorder.s3 for how to create a new external sidecar container.\n    name:\n    # -- Uploader config file name\n    configFileName: upload.conf\n    # -- Uploader entry point file name\n    entryPointFileName: upload.sh\n    # -- For environment variables used in uploader which contains sensitive information, store in secret and refer envFrom\n    # Set config for rclone via ENV var with format: RCLONE_CONFIG_ + name of remote + _ + name of config file option (make it all uppercase)\n    secrets:\n    #  RCLONE_CONFIG_S3_TYPE: \"s3\"\n    #  RCLONE_CONFIG_S3_PROVIDER: \"AWS\"\n    #  RCLONE_CONFIG_S3_ENV_AUTH: \"true\"\n    #  RCLONE_CONFIG_S3_REGION: \"ap-southeast-1\"\n    #  RCLONE_CONFIG_S3_LOCATION_CONSTRAINT: \"ap-southeast-1\"\n    #  RCLONE_CONFIG_S3_ACL: \"private\"\n    #  RCLONE_CONFIG_S3_ACCESS_KEY_ID: \"xxx\"\n    #  RCLONE_CONFIG_S3_SECRET_ACCESS_KEY: \"xxx\"\n    #  RCLONE_CONFIG_S3_NO_CHECK_BUCKET: \"true\"\n    #  RCLONE_CONFIG_GS_TYPE: \"s3\"\n    #  RCLONE_CONFIG_GS_PROVIDER: \"GCS\"\n    #  RCLONE_CONFIG_GS_ENV_AUTH: \"true\"\n    #  RCLONE_CONFIG_GS_REGION: \"asia-southeast1\"\n    #  RCLONE_CONFIG_GS_LOCATION_CONSTRAINT: \"asia-southeast1\"\n    #  RCLONE_CONFIG_GS_ACL: \"private\"\n    #  RCLONE_CONFIG_GS_ACCESS_KEY_ID: \"xxx\"\n    #  RCLONE_CONFIG_GS_SECRET_ACCESS_KEY: \"xxx\"\n    #  RCLONE_CONFIG_GS_ENDPOINT: \"https://storage.googleapis.com\"\n    #  RCLONE_CONFIG_GS_NO_CHECK_BUCKET: \"true\"\n    # -- Custom environment variables by sourcing entire configMap, Secret, etc. for uploader\n    extraEnvFrom: []\n  # -- Video recording container port\n  ports:\n    - 9000\n  resources:\n    # -- Request resources for video recorder pods\n    requests:\n      memory: \"128Mi\"\n      cpu: \"0.1\"\n    # -- Limit resources for video recorder pods\n    limits:\n      memory: \"1Gi\"\n      cpu: \"0.5\"\n  # -- SecurityContext for recorder container\n  securityContext:\n  # -- Extra environment variables for video recorder\n  extraEnvironmentVariables: []\n  # -- Custom environment variables by sourcing entire configMap, Secret, etc. for video recorder.\n  extraEnvFrom: []\n  # - configMapRef:\n  #   name: proxy-settings\n  # - secretRef:\n  #   name: mysecret\n  # -- Terminating grace period for video recorder\n  terminationGracePeriodSeconds: 30\n\n  # -- Startup probe settings\n  startupProbe: {}\n  #   httpGet:\n  #     path: /\n  #     port: 9000\n  #   failureThreshold: 120\n  # periodSeconds: 5\n\n  # -- Liveness probe settings\n  livenessProbe: {}\n  # -- Define lifecycle events for video recorder\n  lifecycle: {}\n\n  # -- Custom video recorder back-end scripts (video.sh, video_ready.py, etc.) further by ConfigMap.\n  # NOTE: For the mount point with the name \"video\", or \"video-scripts\", it will override the default. For other names, it will be appended.\n  extraVolumeMounts: []\n  # - name: video-scripts\n  #   mountPath: /opt/bin/video.sh\n  #   subPath: custom_video.sh\n  # - name: video-scripts\n  #   mountPath: /opt/bin/video_ready.py\n  #   subPath: video_ready.py\n\n  # -- Extra volumes for video recorder pod\n  extraVolumes: []\n  # - name: video-scripts\n  #   configMap:\n  #     name: my-video-scripts-cm\n  #     defaultMode: 0500\n  # - name: video\n  #   persistentVolumeClaim:\n  #     claimName: video-pv-claim\n\n  # -- Container spec for the uploader if above it is defined as \"uploader.name: s3\"\n  s3:\n    imageRegistry: bitnami\n    imageName: aws-cli\n    imageTag: latest\n    imagePullPolicy: IfNotPresent\n    securityContext:\n      runAsUser: 0\n    command: []\n    args: []\n    extraEnvironmentVariables: []\n    # - name: AWS_ACCESS_KEY_ID\n    #   value: aws_access_key_id\n    # - name: AWS_SECRET_ACCESS_KEY\n    #   value: aws_secret_access_key\n    # - name: AWS_REGION\n    #   value: region\n    # - name:\n    #   valueFrom:\n    #     secretKeyRef:\n    #       name: secret-name\n    #       key: secret-key\n\n# -- Add more labels to all resources created by this chart or override existing label keys\ncustomLabels: {}\n\nvideoManager:\n  # -- Enable video manager\n  enabled: false\n  # -- Override deployment name of video manager\n  nameOverride: \"\"\n  ingress:\n    # -- Enable ingress resource to access the file browser\n    enabled: true\n    # -- Annotations for file browser ingress resource\n    annotations:\n    # -- Configure paths for file browser ingress resource\n    paths: []\n  # -- Registry to pull the image (this overwrites global.seleniumGrid.imageRegistry parameter)\n  imageRegistry: \"filebrowser\"\n  # -- File browser image name\n  imageName: \"filebrowser\"\n  # -- File browser image tag (this overwrites global.seleniumGrid.imageTag parameter)\n  imageTag: \"latest\"\n  # -- Image pull policy (see https://kubernetes.io/docs/concepts/containers/images/#updating-images)\n  imagePullPolicy: IfNotPresent\n  # -- Image pull secret (see https://kubernetes.io/docs/tasks/configure-pod-container/pull-image-private-registry/)\n  imagePullSecret: \"\"\n  config:\n    # -- Base URL use to access the file browser (in case expose both Grid and file browser via ingress, e.g. Grid at http://public.ip/selenium and FB at http://public.ip/recordings)\n    baseurl: \"/recordings\"\n    # -- Username for the first user when using quick config (default \"admin\")\n    username: \"\"\n    # -- Hashed password (bcrypt) for the first user when using quick config (default \"admin\")\n    password: \"\"\n    # -- Use the noauth auther when using quick setup\n    noauth: true\n  # -- Specify extra environment variables for Router. You can pass any environment variables support by https://filebrowser.org/changelog.html\n  extraEnvironmentVariables: []\n  # -- Specify extra environment variables from ConfigMap and Secret for Router\n  extraEnvFrom: []\n  # -- Specify affinity for router pods, this overwrites global.seleniumGrid.affinity parameter\n  affinity: {}\n  # -- Specify topologySpreadConstraints for router pods, this overwrites global.seleniumGrid.topologySpreadConstraints parameter\n  topologySpreadConstraints: []\n  # -- Custom annotations for router pods\n  annotations: {}\n  # -- Router container port\n  port: 80\n  # -- Router expose NodePort\n  nodePort: 30080\n  # -- Startup probe settings\n  startupProbe: {}\n  # -- Readiness probe settings\n  readinessProbe: {}\n  # -- Liveness probe settings\n  livenessProbe: {}\n  lifecycle: {}\n  # -- Resources for router container\n  resources:\n    requests:\n      cpu: \"0.1\"\n      memory: \"128Mi\"\n    limits:\n      cpu: \"1\"\n      memory: \"1Gi\"\n  # -- Number of replicas\n  replicas: 1\n  # -- SecurityContext for router container\n  securityContext: {}\n  # -- Kubernetes service type (see https://kubernetes.io/docs/concepts/services-networking/service/#publishing-services-service-types)\n  serviceType: ClusterIP\n  # -- Set specific clusterIP when serviceType is ClusterIP (see https://kubernetes.io/docs/concepts/services-networking/service/#type-clusterip)\n  clusterIP: \"\"\n  # -- Set specific externalName when serviceType is ExternalName (see https://kubernetes.io/docs/concepts/services-networking/service/#type-externalname)\n  externalName: \"\"\n  # -- Set specific loadBalancerIP when serviceType is LoadBalancer (see https://kubernetes.io/docs/concepts/services-networking/service/#loadbalancer)\n  loadBalancerIP: \"\"\n  # -- Custom annotations for router service\n  serviceAnnotations: {}\n  # -- Set externalTrafficPolicy to Local or Cluster (see https://kubernetes.io/docs/concepts/services-networking/service-traffic-policy/)\n  serviceExternalTrafficPolicy: \"\"\n  # -- Set session affinity to None, ClientIP or ClientIPString\n  serviceSessionAffinity: \"\"\n  # -- Tolerations for router pods\n  tolerations: []\n  # -- Node selector for router pods\n  nodeSelector: {}\n  # -- Priority class name for router pods\n  priorityClassName: \"\"\n  extraVolumeMounts: []\n  # - name: srv\n  #   mountPath: /srv\n  #   subPath: srv\n  # -- Extra volumes for video recorder pod\n  extraVolumes: []\n  # - name: srv\n  #   persistentVolumeClaim:\n  #     claimName: video-pv-claim\n\n# -- Add network policies to this chart\n# It can be set using the --set-json option\nnetworkPolicies: {}\n# allow-selenium:\n#   podSelector:\n#     matchLabels:\n#       app.kubernetes.io/name: selenium-node-firefox\n#   policyTypes:\n#     - Egress\n#   egress:\n#     - {}\n\n# Configuration for dependency chart keda\nkeda:\n  # enabled: false\n  # -- Annotations for KEDA resources\n  additionalAnnotations:\n  http:\n    timeout: 60000\n  # -- Enable KEDA admission webhooks component\n  webhooks:\n    enabled: false\n\n# -- Configuration for dependency chart traefik\ntraefik:\n  # enabled: false\n  ingressClass:\n    enabled: true\n    isDefaultClass: false\n    name: traefik\n#  additionalArguments:\n#    - \"--serverstransport.insecureskipverify=true\"\n  tlsStore:\n    default:\n      defaultCertificate:\n        # secretName: \"\"\n\n# -- Configuration for dependency chart kube-prometheus-stack\nkube-prometheus-stack:\n  # enabled: false\n  cleanPrometheusOperatorObjectNames: true\n  prometheus:\n    prometheusSpec:\n      additionalConfig:\n        additionalScrapeConfigs:\n          name: '{{ template \"seleniumGrid.monitoring.exporter.fullname\" $ }}'\n          key: '{{ template \"seleniumGrid.monitoring.scrape.key\" $ }}'\n  prometheusOperator:\n    admissionWebhooks:\n      enabled: false\n\n# -- Configuration for dependency chart jaeger\njaeger:\n  jaeger:\n    extraEnv:\n      - name: QUERY_BASE_PATH\n        value: *jaegerBasePath\n  storage:\n    type: badger\n\n# Configuration for dependency chart PostgreSQL (README: https://artifacthub.io/packages/helm/bitnami/postgresql)\npostgresql:\n  # -- Enable to install PostgreSQL along with Grid\n  enabled: false\n  image:\n    repository: bitnamilegacy/postgresql\n  # -- Authentication should be aligned with config in session map\n  auth:\n    username: \"seluser\"\n    password: \"seluser\"\n    database: \"selenium_sessions\"\n  primary:\n    initdb:\n      # -- Initdb scripts for PostgreSQL to create sessions_map table\n      scripts:\n        init.sql: |\n          CREATE TABLE IF NOT EXISTS sessions_map(\n            session_ids varchar(256),\n            session_caps text,\n            session_uri varchar(256),\n            session_stereotype text,\n            session_start varchar(256)\n          );\n\n# Configuration for dependency chart Redis (README: https://artifacthub.io/packages/helm/bitnami/redis)\nredis:\n  # -- Enable to install Redis along with Grid\n  enabled: false\n  image:\n    repository: bitnamilegacy/redis\n  # -- Setup architecture\n  architecture: standalone\n  auth:\n    # -- Disable authentication due to implementation still not supporting it\n    enabled: false\n"
  },
  {
    "path": "docker-compose-v2-tracing.yml",
    "content": "# To execute this docker compose yml file use `docker compose -f docker-compose-v2-tracing.yml up`\n# Add the `-d` flag at the end for detached execution\n# To stop the execution, hit Ctrl+C, and then `docker compose -f docker-compose-v2-tracing.yml down`\nversion: '2'\nservices:\n  jaeger:\n    image: jaegertracing/all-in-one:latest\n    ports:\n      - \"16686:16686\"\n      - \"4317:4317\"\n  chrome:\n    image: selenium/node-chrome:4.41.0-20260222\n    shm_size: 2gb\n    depends_on:\n      - selenium-hub\n    environment:\n      - SE_EVENT_BUS_HOST=selenium-hub\n      - SE_ENABLE_TRACING=true\n      - SE_OTEL_TRACES_EXPORTER=otlp\n      - SE_OTEL_EXPORTER_ENDPOINT=http://jaeger:4317\n    ports:\n      - \"6900:5900\"\n\n  edge:\n    image: selenium/node-edge:4.41.0-20260222\n    shm_size: 2gb\n    depends_on:\n      - selenium-hub\n    environment:\n      - SE_EVENT_BUS_HOST=selenium-hub\n      - SE_ENABLE_TRACING=true\n      - SE_OTEL_TRACES_EXPORTER=otlp\n      - SE_OTEL_EXPORTER_ENDPOINT=http://jaeger:4317\n    ports:\n      - \"6901:5900\"\n\n  firefox:\n    image: selenium/node-firefox:4.41.0-20260222\n    shm_size: 2gb\n    depends_on:\n      - selenium-hub\n    environment:\n      - SE_EVENT_BUS_HOST=selenium-hub\n      - SE_ENABLE_TRACING=true\n      - SE_OTEL_TRACES_EXPORTER=otlp\n      - SE_OTEL_EXPORTER_ENDPOINT=http://jaeger:4317\n    ports:\n      - \"6902:5900\"\n\n  selenium-hub:\n    image: selenium/hub:4.41.0-20260222\n    ports:\n      - \"4442:4442\"\n      - \"4443:4443\"\n      - \"4444:4444\"\n    depends_on:\n      - jaeger\n    environment:\n      - SE_ENABLE_TRACING=true\n      - SE_OTEL_TRACES_EXPORTER=otlp\n      - SE_OTEL_EXPORTER_ENDPOINT=http://jaeger:4317\n"
  },
  {
    "path": "docker-compose-v2.yml",
    "content": "# To execute this docker compose yml file use `docker compose -f docker-compose-v2.yml up`\n# Add the `-d` flag at the end for detached execution\n# To stop the execution, hit Ctrl+C, and then `docker compose -f docker-compose-v2.yml down`\nversion: '2'\nservices:\n  chrome:\n    image: selenium/node-chrome:4.41.0-20260222\n    shm_size: 2gb\n    depends_on:\n      - selenium-hub\n    environment:\n      - SE_EVENT_BUS_HOST=selenium-hub\n    ports:\n      - \"6900:5900\"\n\n  edge:\n    image: selenium/node-edge:4.41.0-20260222\n    shm_size: 2gb\n    depends_on:\n      - selenium-hub\n    environment:\n      - SE_EVENT_BUS_HOST=selenium-hub\n    ports:\n      - \"6901:5900\"\n\n  firefox:\n    image: selenium/node-firefox:4.41.0-20260222\n    shm_size: 2gb\n    depends_on:\n      - selenium-hub\n    environment:\n      - SE_EVENT_BUS_HOST=selenium-hub\n    ports:\n      - \"6902:5900\"\n\n  selenium-hub:\n    image: selenium/hub:4.41.0-20260222\n    ports:\n      - \"4442:4442\"\n      - \"4443:4443\"\n      - \"4444:4444\"\n"
  },
  {
    "path": "docker-compose-v3-basicauth.yml",
    "content": "# To execute this docker compose yml file use `docker compose -f docker-compose-v3-basicauth.yml up`\n# Add the `-d` flag at the end for detached execution\n# To stop the execution, hit Ctrl+C, and then `docker compose -f docker-compose-v3-basicauth.yml down`\nservices:\n  chrome:\n    image: selenium/node-chrome:4.41.0-20260222\n    platform: linux/amd64\n    shm_size: 2gb\n    depends_on:\n      - selenium-hub\n    environment:\n      - SE_EVENT_BUS_HOST=selenium-hub\n\n  edge:\n    image: selenium/node-edge:4.41.0-20260222\n    platform: linux/amd64\n    shm_size: 2gb\n    depends_on:\n      - selenium-hub\n    environment:\n      - SE_EVENT_BUS_HOST=selenium-hub\n\n  firefox:\n    image: selenium/node-firefox:4.41.0-20260222\n    shm_size: 2gb\n    depends_on:\n      - selenium-hub\n    environment:\n      - SE_EVENT_BUS_HOST=selenium-hub\n\n  selenium-hub:\n    image: selenium/hub:4.41.0-20260222\n    container_name: selenium-hub\n    ports:\n      - \"4442:4442\"\n      - \"4443:4443\"\n      - \"4444:4444\"\n    volumes:\n      - ./Hub/example-config.toml:/opt/selenium/config.toml\n"
  },
  {
    "path": "docker-compose-v3-beta-channel.yml",
    "content": "# To execute this docker compose yml file use `docker compose -f docker-compose-v3-beta-channel.yml up`\n# Add the `-d` flag at the end for detached execution\n# To stop the execution, hit Ctrl+C, and then `docker compose -f docker-compose-v3-beta-channel.yml down`\nservices:\n  chrome:\n    image: selenium/node-chrome:beta\n    platform: linux/amd64\n    shm_size: 2gb\n    depends_on:\n      - selenium-hub\n    environment:\n      - SE_EVENT_BUS_HOST=selenium-hub\n\n  edge:\n    image: selenium/node-edge:beta\n    platform: linux/amd64\n    shm_size: 2gb\n    depends_on:\n      - selenium-hub\n    environment:\n      - SE_EVENT_BUS_HOST=selenium-hub\n\n  firefox:\n    image: selenium/node-firefox:beta\n    shm_size: 2gb\n    depends_on:\n      - selenium-hub\n    environment:\n      - SE_EVENT_BUS_HOST=selenium-hub\n\n  chrome-for-testing:\n    image: selenium/node-chrome-for-testing:beta\n    platform: linux/amd64\n    shm_size: 2gb\n    depends_on:\n      - selenium-hub\n    environment:\n      - SE_EVENT_BUS_HOST=selenium-hub\n\n  selenium-hub:\n    image: selenium/hub:latest\n    container_name: selenium-hub\n    ports:\n      - \"4442:4442\"\n      - \"4443:4443\"\n      - \"4444:4444\"\n"
  },
  {
    "path": "docker-compose-v3-dev-channel.yml",
    "content": "# To execute this docker compose yml file use `docker compose -f docker-compose-v3-dev-channel.yml up`\n# Add the `-d` flag at the end for detached execution\n# To stop the execution, hit Ctrl+C, and then `docker compose -f docker-compose-v3-dev-channel.yml down`\nservices:\n  chrome:\n    image: selenium/node-chrome:dev\n    platform: linux/amd64\n    shm_size: 2gb\n    depends_on:\n      - selenium-hub\n    environment:\n      - SE_EVENT_BUS_HOST=selenium-hub\n\n  edge:\n    image: selenium/node-edge:dev\n    platform: linux/amd64\n    shm_size: 2gb\n    depends_on:\n      - selenium-hub\n    environment:\n      - SE_EVENT_BUS_HOST=selenium-hub\n\n  firefox:\n    image: selenium/node-firefox:dev\n    shm_size: 2gb\n    depends_on:\n      - selenium-hub\n    environment:\n      - SE_EVENT_BUS_HOST=selenium-hub\n\n  chrome-for-testing:\n    image: selenium/node-chrome-for-testing:dev\n    platform: linux/amd64\n    shm_size: 2gb\n    depends_on:\n      - selenium-hub\n    environment:\n      - SE_EVENT_BUS_HOST=selenium-hub\n\n  selenium-hub:\n    image: selenium/hub:latest\n    container_name: selenium-hub\n    ports:\n      - \"4442:4442\"\n      - \"4443:4443\"\n      - \"4444:4444\"\n"
  },
  {
    "path": "docker-compose-v3-dev.yml",
    "content": "# To execute this docker compose yml file use `docker compose -f docker-compose-v3-dev.yml up`\n# Add the `-d` flag at the end for detached execution\n# To stop the execution, hit Ctrl+C, and then `docker compose -f docker-compose-v3-dev.yml down`\nservices:\n  chrome:\n    image: selenium/node-chrome:4.41.0-20260222\n    platform: linux/amd64\n    shm_size: 2gb\n    volumes:\n      - ./selenium_server_deploy.jar:/opt/selenium/selenium-server.jar\n    depends_on:\n      - selenium-hub\n    environment:\n      - SE_EVENT_BUS_HOST=selenium-hub\n\n  edge:\n    image: selenium/node-edge:4.41.0-20260222\n    platform: linux/amd64\n    shm_size: 2gb\n    volumes:\n      - ./selenium_server_deploy.jar:/opt/selenium/selenium-server.jar\n    depends_on:\n      - selenium-hub\n    environment:\n      - SE_EVENT_BUS_HOST=selenium-hub\n\n  firefox:\n    image: selenium/node-firefox:4.41.0-20260222\n    shm_size: 2gb\n    volumes:\n      - ./selenium_server_deploy.jar:/opt/selenium/selenium-server.jar\n    depends_on:\n      - selenium-hub\n    environment:\n      - SE_EVENT_BUS_HOST=selenium-hub\n\n  selenium-hub:\n    image: selenium/hub:4.41.0-20260222\n    container_name: selenium-hub\n    volumes:\n      - ./selenium_server_deploy.jar:/opt/selenium/selenium-server.jar\n    ports:\n      - \"4442:4442\"\n      - \"4443:4443\"\n      - \"4444:4444\"\n"
  },
  {
    "path": "docker-compose-v3-dynamic-grid.yml",
    "content": "# To execute this docker compose yml file use `docker compose -f docker-compose-v3-dynamic-grid.yml up`\n# Add the `-d` flag at the end for detached execution\n# To stop the execution, hit Ctrl+C, and then `docker compose -f docker-compose-v3-dynamic-grid.yml down`\nservices:\n  node-docker:\n    image: selenium/node-docker:4.41.0-20260222\n    volumes:\n      - ./assets:/opt/selenium/assets\n      - ./NodeDocker/config.toml:/opt/selenium/docker.toml\n      - /var/run/docker.sock:/var/run/docker.sock\n    depends_on:\n      - selenium-hub\n    environment:\n      - SE_EVENT_BUS_HOST=selenium-hub\n\n  selenium-hub:\n    image: selenium/hub:4.41.0-20260222\n    container_name: selenium-hub\n    ports:\n      - \"4442:4442\"\n      - \"4443:4443\"\n      - \"4444:4444\"\n"
  },
  {
    "path": "docker-compose-v3-full-grid-dev.yml",
    "content": "# To execute this docker compose yml file use `docker compose -f docker-compose-v3-full-grid-dev.yml up`\n# Add the `-d` flag at the end for detached execution\n# To stop the execution, hit Ctrl+C, and then `docker compose -f docker-compose-v3-full-grid-dev.yml down`\nservices:\n  selenium-event-bus:\n    image: selenium/event-bus:4.41.0-20260222\n    volumes:\n      - ./selenium_server_deploy.jar:/opt/selenium/selenium-server.jar\n    container_name: selenium-event-bus\n    ports:\n      - \"4442:4442\"\n      - \"4443:4443\"\n      - \"5557:5557\"\n\n  selenium-sessions:\n    image: selenium/sessions:4.41.0-20260222\n    volumes:\n      - ./selenium_server_deploy.jar:/opt/selenium/selenium-server.jar\n    container_name: selenium-sessions\n    ports:\n      - \"5556:5556\"\n    depends_on:\n      - selenium-event-bus\n    environment:\n      - SE_EVENT_BUS_HOST=selenium-event-bus\n\n  selenium-session-queue:\n    image: selenium/session-queue:4.41.0-20260222\n    volumes:\n      - ./selenium_server_deploy.jar:/opt/selenium/selenium-server.jar\n    container_name: selenium-session-queue\n    ports:\n      - \"5559:5559\"\n\n  selenium-distributor:\n    image: selenium/distributor:4.41.0-20260222\n    volumes:\n      - ./selenium_server_deploy.jar:/opt/selenium/selenium-server.jar\n    container_name: selenium-distributor\n    ports:\n      - \"5553:5553\"\n    depends_on:\n      - selenium-event-bus\n      - selenium-sessions\n      - selenium-session-queue\n    environment:\n      - SE_EVENT_BUS_HOST=selenium-event-bus\n      - SE_SESSIONS_MAP_HOST=selenium-sessions\n      - SE_SESSION_QUEUE_HOST=selenium-session-queue\n\n  selenium-router:\n    image: selenium/router:4.41.0-20260222\n    volumes:\n      - ./selenium_server_deploy.jar:/opt/selenium/selenium-server.jar\n    container_name: selenium-router\n    ports:\n      - \"4444:4444\"\n    depends_on:\n      - selenium-distributor\n      - selenium-sessions\n      - selenium-session-queue\n    environment:\n      - SE_DISTRIBUTOR_HOST=selenium-distributor\n      - SE_SESSIONS_MAP_HOST=selenium-sessions\n      - SE_SESSION_QUEUE_HOST=selenium-session-queue\n\n  chrome:\n    image: selenium/node-chrome:4.41.0-20260222\n    platform: linux/amd64\n    shm_size: 2gb\n    volumes:\n      - ./selenium_server_deploy.jar:/opt/selenium/selenium-server.jar\n    depends_on:\n      - selenium-event-bus\n    environment:\n      - SE_EVENT_BUS_HOST=selenium-event-bus\n\n  edge:\n    image: selenium/node-edge:4.41.0-20260222\n    platform: linux/amd64\n    shm_size: 2gb\n    volumes:\n      - ./selenium_server_deploy.jar:/opt/selenium/selenium-server.jar\n    depends_on:\n      - selenium-event-bus\n    environment:\n      - SE_EVENT_BUS_HOST=selenium-event-bus\n\n  firefox:\n    image: selenium/node-firefox:4.41.0-20260222\n    shm_size: 2gb\n    volumes:\n      - ./selenium_server_deploy.jar:/opt/selenium/selenium-server.jar\n    depends_on:\n      - selenium-event-bus\n    environment:\n      - SE_EVENT_BUS_HOST=selenium-event-bus\n"
  },
  {
    "path": "docker-compose-v3-full-grid-external-datastore.yml",
    "content": "# To execute this docker compose yml file use `docker compose -f docker-compose-v3-full-grid.yml up`\n# Add the `-d` flag at the end for detached execution\n# To stop the execution, hit Ctrl+C, and then `docker compose -f docker-compose-v3-full-grid.yml down`\nservices:\n  selenium-event-bus:\n    image: selenium/event-bus:4.41.0-20260222\n    container_name: selenium-event-bus\n    ports:\n      - \"4442:4442\"\n      - \"4443:4443\"\n      - \"5557:5557\"\n\n  selenium-sessions:\n    image: selenium/sessions:4.41.0-20260222\n    container_name: selenium-sessions\n    ports:\n      - \"5556:5556\"\n    depends_on:\n      - selenium-event-bus\n    environment:\n      - SE_EVENT_BUS_HOST=selenium-event-bus\n      - SE_SESSIONS_MAP_EXTERNAL_DATASTORE=true\n      - SE_SESSIONS_MAP_EXTERNAL_IMPLEMENTATION=org.openqa.selenium.grid.sessionmap.jdbc.JdbcBackedSessionMap\n      - SE_SESSIONS_MAP_EXTERNAL_JDBC_URL=jdbc:postgresql://postgresql:5432/selenium_sessions\n      - SE_SESSIONS_MAP_EXTERNAL_JDBC_USER=seluser\n      - SE_SESSIONS_MAP_EXTERNAL_JDBC_PASSWORD=seluser\n# Uncomment the following lines to use Redis as the external datastore\n#      - SE_SESSIONS_MAP_EXTERNAL_SCHEME=redis\n#      - SE_SESSIONS_MAP_EXTERNAL_IMPLEMENTATION=org.openqa.selenium.grid.sessionmap.redis.RedisBackedSessionMap\n#      - SE_SESSIONS_MAP_EXTERNAL_HOSTNAME=redis\n#      - SE_SESSIONS_MAP_EXTERNAL_PORT=6379\n\n  postgresql:\n    image: postgres:latest\n    restart: always\n    environment:\n      - POSTGRES_USER=seluser\n      - POSTGRES_PASSWORD=seluser\n      - POSTGRES_DB=selenium_sessions\n    ports:\n      - \"5432:5432\"\n    volumes:\n      - ./Sessions/init.sql:/docker-entrypoint-initdb.d/init.sql\n\n  redis:\n    image: redis:latest\n    restart: always\n    ports:\n      - \"6379:6379\"\n\n  selenium-session-queue:\n    image: selenium/session-queue:4.41.0-20260222\n    container_name: selenium-session-queue\n    ports:\n      - \"5559:5559\"\n\n  selenium-distributor:\n    image: selenium/distributor:4.41.0-20260222\n    container_name: selenium-distributor\n    ports:\n      - \"5553:5553\"\n    depends_on:\n      - selenium-event-bus\n      - selenium-sessions\n      - selenium-session-queue\n    environment:\n      - SE_EVENT_BUS_HOST=selenium-event-bus\n      - SE_SESSIONS_MAP_HOST=selenium-sessions\n      - SE_SESSION_QUEUE_HOST=selenium-session-queue\n\n  selenium-router:\n    image: selenium/router:4.41.0-20260222\n    container_name: selenium-router\n    ports:\n      - \"4444:4444\"\n    depends_on:\n      - selenium-distributor\n      - selenium-sessions\n      - selenium-session-queue\n    environment:\n      - SE_DISTRIBUTOR_HOST=selenium-distributor\n      - SE_SESSIONS_MAP_HOST=selenium-sessions\n      - SE_SESSION_QUEUE_HOST=selenium-session-queue\n\n  chrome:\n    image: selenium/node-chrome:4.41.0-20260222\n    platform: linux/amd64\n    shm_size: 2gb\n    depends_on:\n      - selenium-event-bus\n    environment:\n      - SE_EVENT_BUS_HOST=selenium-event-bus\n\n  edge:\n    image: selenium/node-edge:4.41.0-20260222\n    platform: linux/amd64\n    shm_size: 2gb\n    depends_on:\n      - selenium-event-bus\n    environment:\n      - SE_EVENT_BUS_HOST=selenium-event-bus\n\n  firefox:\n    image: selenium/node-firefox:4.41.0-20260222\n    shm_size: 2gb\n    depends_on:\n      - selenium-event-bus\n    environment:\n      - SE_EVENT_BUS_HOST=selenium-event-bus\n"
  },
  {
    "path": "docker-compose-v3-full-grid-nightly.yml",
    "content": "# To execute this docker compose yml file use `docker compose -f docker-compose-v3-full-grid-nightly.yml up --force-recreate`\n# Add the `-d` flag at the end for detached execution\n# To stop the execution, hit Ctrl+C, and then `docker compose -f docker-compose-v3-full-grid-nightly.yml down`\nservices:\n  selenium-event-bus:\n    image: selenium/event-bus:nightly\n    container_name: selenium-event-bus\n    ports:\n      - \"4442:4442\"\n      - \"4443:4443\"\n      - \"5557:5557\"\n\n  selenium-sessions:\n    image: selenium/sessions:nightly\n    container_name: selenium-sessions\n    ports:\n      - \"5556:5556\"\n    depends_on:\n      - selenium-event-bus\n    environment:\n      - SE_EVENT_BUS_HOST=selenium-event-bus\n\n  selenium-session-queue:\n    image: selenium/session-queue:nightly\n    container_name: selenium-session-queue\n    ports:\n      - \"5559:5559\"\n\n  selenium-distributor:\n    image: selenium/distributor:nightly\n    container_name: selenium-distributor\n    ports:\n      - \"5553:5553\"\n    depends_on:\n      - selenium-event-bus\n      - selenium-sessions\n      - selenium-session-queue\n    environment:\n      - SE_EVENT_BUS_HOST=selenium-event-bus\n      - SE_SESSIONS_MAP_HOST=selenium-sessions\n      - SE_SESSION_QUEUE_HOST=selenium-session-queue\n\n  selenium-router:\n    image: selenium/router:nightly\n    container_name: selenium-router\n    ports:\n      - \"4444:4444\"\n    depends_on:\n      - selenium-distributor\n      - selenium-sessions\n      - selenium-session-queue\n    environment:\n      - SE_DISTRIBUTOR_HOST=selenium-distributor\n      - SE_SESSIONS_MAP_HOST=selenium-sessions\n      - SE_SESSION_QUEUE_HOST=selenium-session-queue\n\n  chrome:\n    image: selenium/node-chrome:nightly\n    platform: linux/amd64\n    shm_size: 2gb\n    depends_on:\n      - selenium-event-bus\n    environment:\n      - SE_EVENT_BUS_HOST=selenium-event-bus\n\n  edge:\n    image: selenium/node-edge:nightly\n    platform: linux/amd64\n    shm_size: 2gb\n    depends_on:\n      - selenium-event-bus\n    environment:\n      - SE_EVENT_BUS_HOST=selenium-event-bus\n\n  firefox:\n    image: selenium/node-firefox:nightly\n    shm_size: 2gb\n    depends_on:\n      - selenium-event-bus\n    environment:\n      - SE_EVENT_BUS_HOST=selenium-event-bus\n\n  chrome_video:\n    image: selenium/video:nightly\n    volumes:\n      - /tmp/videos:/videos\n    depends_on:\n      - chrome\n    environment:\n      - DISPLAY_CONTAINER_NAME=chrome\n      - SE_NODE_GRID_URL=http://selenium-router:4444\n      - SE_VIDEO_FILE_NAME=auto\n\n  edge_video:\n    image: selenium/video:nightly\n    volumes:\n      - /tmp/videos:/videos\n    depends_on:\n      - edge\n    environment:\n      - DISPLAY_CONTAINER_NAME=edge\n      - SE_NODE_GRID_URL=http://selenium-router:4444\n      - SE_VIDEO_FILE_NAME=auto\n\n  firefox_video:\n    image: selenium/video:nightly\n    volumes:\n      - /tmp/videos:/videos\n    depends_on:\n      - firefox\n    environment:\n      - DISPLAY_CONTAINER_NAME=firefox\n      - SE_NODE_GRID_URL=http://selenium-router:4444\n      - SE_VIDEO_FILE_NAME=auto\n"
  },
  {
    "path": "docker-compose-v3-full-grid-secure.yml",
    "content": "# To execute this docker compose yml file use `docker compose -f docker-compose-v3-full-grid-secure.yml up`\n# Add the `-d` flag at the end for detached execution\n# To stop the execution, hit Ctrl+C, and then `docker compose -f docker-compose-v3-full-grid-secure.yml down`\nservices:\n  selenium-event-bus:\n    image: selenium/event-bus:4.41.0-20260222\n    container_name: selenium-event-bus\n    ports:\n      - \"4442:4442\"\n      - \"4443:4443\"\n      - \"5557:5557\"\n    volumes:\n      - ./charts/selenium-grid/certs:/opt/selenium/secrets\n    environment:\n      - SE_ENABLE_TLS=true\n\n  selenium-sessions:\n    image: selenium/sessions:4.41.0-20260222\n    container_name: selenium-sessions\n    ports:\n      - \"5556:5556\"\n    depends_on:\n      - selenium-event-bus\n    volumes:\n      - ./charts/selenium-grid/certs:/opt/selenium/secrets\n    environment:\n      - SE_EVENT_BUS_HOST=selenium-event-bus\n      - SE_ENABLE_TLS=true\n\n  selenium-session-queue:\n    image: selenium/session-queue:4.41.0-20260222\n    container_name: selenium-session-queue\n    volumes:\n      - ./charts/selenium-grid/certs:/opt/selenium/secrets\n    ports:\n      - \"5559:5559\"\n    environment:\n      - SE_ENABLE_TLS=true\n\n  selenium-distributor:\n    image: selenium/distributor:4.41.0-20260222\n    container_name: selenium-distributor\n    ports:\n      - \"5553:5553\"\n    depends_on:\n      - selenium-event-bus\n      - selenium-sessions\n      - selenium-session-queue\n    volumes:\n      - ./charts/selenium-grid/certs:/opt/selenium/secrets\n    environment:\n      - SE_EVENT_BUS_HOST=selenium-event-bus\n      - SE_SESSIONS_MAP_HOST=selenium-sessions\n      - SE_SESSION_QUEUE_HOST=selenium-session-queue\n      - SE_ENABLE_TLS=true\n\n  selenium-router:\n    image: selenium/router:4.41.0-20260222\n    container_name: selenium-router\n    ports:\n      - \"4444:4444\"\n    depends_on:\n      - selenium-distributor\n      - selenium-sessions\n      - selenium-session-queue\n    volumes:\n      - ./charts/selenium-grid/certs:/opt/selenium/secrets\n    environment:\n      - SE_DISTRIBUTOR_HOST=selenium-distributor\n      - SE_SESSIONS_MAP_HOST=selenium-sessions\n      - SE_SESSION_QUEUE_HOST=selenium-session-queue\n      - SE_ENABLE_TLS=true\n\n  chrome:\n    image: selenium/node-chrome:4.41.0-20260222\n    platform: linux/amd64\n    shm_size: 2gb\n    depends_on:\n      - selenium-event-bus\n    volumes:\n      - ./charts/selenium-grid/certs:/opt/selenium/secrets\n    environment:\n      - SE_EVENT_BUS_HOST=selenium-event-bus\n      - SE_ENABLE_TLS=true\n      - SE_NODE_GRID_URL=https://localhost:4444\n      - SE_SERVER_PROTOCOL=https\n\n  edge:\n    image: selenium/node-edge:4.41.0-20260222\n    platform: linux/amd64\n    shm_size: 2gb\n    depends_on:\n      - selenium-event-bus\n    volumes:\n      - ./charts/selenium-grid/certs:/opt/selenium/secrets\n    environment:\n      - SE_EVENT_BUS_HOST=selenium-event-bus\n      - SE_ENABLE_TLS=true\n      - SE_NODE_GRID_URL=https://localhost:4444\n      - SE_SERVER_PROTOCOL=https\n\n  firefox:\n    image: selenium/node-firefox:4.41.0-20260222\n    shm_size: 2gb\n    depends_on:\n      - selenium-event-bus\n    volumes:\n      - ./charts/selenium-grid/certs:/opt/selenium/secrets\n    environment:\n      - SE_EVENT_BUS_HOST=selenium-event-bus\n      - SE_ENABLE_TLS=true\n      - SE_NODE_GRID_URL=https://localhost:4444\n      - SE_SERVER_PROTOCOL=https\n"
  },
  {
    "path": "docker-compose-v3-full-grid-swarm.yml",
    "content": "# To start Docker in Swarm mode, you need to run `docker swarm init`\n# To deploy the Grid, `docker stack deploy -c docker-compose-v3-swarm.yml grid`\n# Stop with `docker stack rm grid`\n# Stop swarm mode `docker swarm leave --force`\nservices:\n  chrome:\n    image: selenium/node-chrome:4.41.0-20260222\n    platform: linux/amd64\n    shm_size: 2gb\n    environment:\n      - SE_EVENT_BUS_HOST=selenium-hub\n    deploy:\n      replicas: 1\n    entrypoint: bash -c 'SE_OPTS=\"--host $$HOSTNAME\" /opt/bin/entry_point.sh'\n\n  edge:\n    image: selenium/node-edge:4.41.0-20260222\n    platform: linux/amd64\n    shm_size: 2gb\n    environment:\n      - SE_EVENT_BUS_HOST=selenium-hub\n    deploy:\n      replicas: 1\n    entrypoint: bash -c 'SE_OPTS=\"--host $$HOSTNAME\" /opt/bin/entry_point.sh'\n\n  firefox:\n    image: selenium/node-firefox:4.41.0-20260222\n    shm_size: 2gb\n    environment:\n      - SE_EVENT_BUS_HOST=selenium-hub\n    deploy:\n      replicas: 1\n    entrypoint: bash -c 'SE_OPTS=\"--host $$HOSTNAME\" /opt/bin/entry_point.sh'\n\n  selenium-hub:\n    image: selenium/hub:4.41.0-20260222\n    ports:\n      - \"4442:4442\"\n      - \"4443:4443\"\n      - \"4444:4444\"\n"
  },
  {
    "path": "docker-compose-v3-full-grid-tracing.yml",
    "content": "# To execute this docker compose yml file use `docker compose -f docker-compose-v3-full-grid-tracing.yml up`\n# Add the `-d` flag at the end for detached execution\n# To stop the execution, hit Ctrl+C, and then `docker compose -f docker-compose-v3-full-grid-tracing.yml down`\nservices:\n  jaeger:\n    image: jaegertracing/all-in-one:latest\n    ports:\n      - \"16686:16686\"\n      - \"4317:4317\"\n  selenium-event-bus:\n    image: selenium/event-bus:4.41.0-20260222\n    container_name: selenium-event-bus\n    ports:\n      - \"4442:4442\"\n      - \"4443:4443\"\n      - \"5557:5557\"\n    depends_on:\n      - jaeger\n    environment:\n      - SE_ENABLE_TRACING=true\n      - SE_OTEL_TRACES_EXPORTER=otlp\n      - SE_OTEL_EXPORTER_ENDPOINT=http://jaeger:4317\n  selenium-sessions:\n    image: selenium/sessions:4.41.0-20260222\n    container_name: selenium-sessions\n    ports:\n      - \"5556:5556\"\n    depends_on:\n      - selenium-event-bus\n    environment:\n      - SE_EVENT_BUS_HOST=selenium-event-bus\n      - SE_ENABLE_TRACING=true\n      - SE_OTEL_TRACES_EXPORTER=otlp\n      - SE_OTEL_EXPORTER_ENDPOINT=http://jaeger:4317\n  selenium-session-queue:\n    image: selenium/session-queue:4.41.0-20260222\n    container_name: selenium-session-queue\n    ports:\n      - \"5559:5559\"\n    environment:\n      - SE_ENABLE_TRACING=true\n      - SE_OTEL_TRACES_EXPORTER=otlp\n      - SE_OTEL_EXPORTER_ENDPOINT=http://jaeger:4317\n  selenium-distributor:\n    image: selenium/distributor:4.41.0-20260222\n    container_name: selenium-distributor\n    ports:\n      - \"5553:5553\"\n    depends_on:\n      - selenium-event-bus\n      - selenium-sessions\n      - selenium-session-queue\n    environment:\n      - SE_EVENT_BUS_HOST=selenium-event-bus\n      - SE_SESSIONS_MAP_HOST=selenium-sessions\n      - SE_SESSION_QUEUE_HOST=selenium-session-queue\n      - SE_ENABLE_TRACING=true\n      - SE_OTEL_TRACES_EXPORTER=otlp\n      - SE_OTEL_EXPORTER_ENDPOINT=http://jaeger:4317\n  selenium-router:\n    image: selenium/router:4.41.0-20260222\n    container_name: selenium-router\n    ports:\n      - \"4444:4444\"\n    depends_on:\n      - selenium-distributor\n      - selenium-sessions\n      - selenium-session-queue\n    environment:\n      - SE_DISTRIBUTOR_HOST=selenium-distributor\n      - SE_SESSIONS_MAP_HOST=selenium-sessions\n      - SE_SESSION_QUEUE_HOST=selenium-session-queue\n      - SE_ENABLE_TRACING=true\n      - SE_OTEL_TRACES_EXPORTER=otlp\n      - SE_OTEL_EXPORTER_ENDPOINT=http://jaeger:4317\n  chrome:\n    image: selenium/node-chrome:4.41.0-20260222\n    platform: linux/amd64\n    shm_size: 2gb\n    depends_on:\n      - selenium-event-bus\n    environment:\n      - SE_EVENT_BUS_HOST=selenium-event-bus\n      - SE_ENABLE_TRACING=true\n      - SE_OTEL_TRACES_EXPORTER=otlp\n      - SE_OTEL_EXPORTER_ENDPOINT=http://jaeger:4317\n  edge:\n    image: selenium/node-edge:4.41.0-20260222\n    platform: linux/amd64\n    shm_size: 2gb\n    depends_on:\n      - selenium-event-bus\n    environment:\n      - SE_EVENT_BUS_HOST=selenium-event-bus\n      - SE_ENABLE_TRACING=true\n      - SE_OTEL_TRACES_EXPORTER=otlp\n      - SE_OTEL_EXPORTER_ENDPOINT=http://jaeger:4317\n  firefox:\n    image: selenium/node-firefox:4.41.0-20260222\n    shm_size: 2gb\n    depends_on:\n      - selenium-event-bus\n    environment:\n      - SE_EVENT_BUS_HOST=selenium-event-bus\n      - SE_ENABLE_TRACING=true\n      - SE_OTEL_TRACES_EXPORTER=otlp\n      - SE_OTEL_EXPORTER_ENDPOINT=http://jaeger:4317\n"
  },
  {
    "path": "docker-compose-v3-full-grid.yml",
    "content": "# To execute this docker compose yml file use `docker compose -f docker-compose-v3-full-grid.yml up`\n# Add the `-d` flag at the end for detached execution\n# To stop the execution, hit Ctrl+C, and then `docker compose -f docker-compose-v3-full-grid.yml down`\nservices:\n  selenium-event-bus:\n    image: selenium/event-bus:4.41.0-20260222\n    container_name: selenium-event-bus\n    ports:\n      - \"4442:4442\"\n      - \"4443:4443\"\n      - \"5557:5557\"\n\n  selenium-sessions:\n    image: selenium/sessions:4.41.0-20260222\n    container_name: selenium-sessions\n    ports:\n      - \"5556:5556\"\n    depends_on:\n      - selenium-event-bus\n    environment:\n      - SE_EVENT_BUS_HOST=selenium-event-bus\n\n  selenium-session-queue:\n    image: selenium/session-queue:4.41.0-20260222\n    container_name: selenium-session-queue\n    ports:\n      - \"5559:5559\"\n\n  selenium-distributor:\n    image: selenium/distributor:4.41.0-20260222\n    container_name: selenium-distributor\n    ports:\n      - \"5553:5553\"\n    depends_on:\n      - selenium-event-bus\n      - selenium-sessions\n      - selenium-session-queue\n    environment:\n      - SE_EVENT_BUS_HOST=selenium-event-bus\n      - SE_SESSIONS_MAP_HOST=selenium-sessions\n      - SE_SESSION_QUEUE_HOST=selenium-session-queue\n\n  selenium-router:\n    image: selenium/router:4.41.0-20260222\n    container_name: selenium-router\n    ports:\n      - \"4444:4444\"\n    depends_on:\n      - selenium-distributor\n      - selenium-sessions\n      - selenium-session-queue\n    environment:\n      - SE_DISTRIBUTOR_HOST=selenium-distributor\n      - SE_SESSIONS_MAP_HOST=selenium-sessions\n      - SE_SESSION_QUEUE_HOST=selenium-session-queue\n\n  chrome:\n    image: selenium/node-chrome:4.41.0-20260222\n    platform: linux/amd64\n    shm_size: 2gb\n    depends_on:\n      - selenium-event-bus\n    environment:\n      - SE_EVENT_BUS_HOST=selenium-event-bus\n\n  edge:\n    image: selenium/node-edge:4.41.0-20260222\n    platform: linux/amd64\n    shm_size: 2gb\n    depends_on:\n      - selenium-event-bus\n    environment:\n      - SE_EVENT_BUS_HOST=selenium-event-bus\n\n  firefox:\n    image: selenium/node-firefox:4.41.0-20260222\n    shm_size: 2gb\n    depends_on:\n      - selenium-event-bus\n    environment:\n      - SE_EVENT_BUS_HOST=selenium-event-bus\n"
  },
  {
    "path": "docker-compose-v3-node-all-browsers.yml",
    "content": "# To execute this docker compose yml file use `docker compose -f docker-compose-v3-node-all-browsers.yml up`\n# Add the `-d` flag at the end for detached execution\n# To stop the execution, hit Ctrl+C, and then `docker compose -f docker-compose-v3-node-all-browsers.yml down`\nservices:\n  selenium-hub:\n    image: selenium/hub:4.41.0-20260222\n    container_name: selenium-hub\n    ports:\n      - \"4442:4442\"\n      - \"4443:4443\"\n      - \"4444:4444\"\n\n  all-browsers:\n    image: selenium/node-all-browsers:4.41.0-20260222\n    shm_size: 3gb\n    depends_on:\n      - selenium-hub\n    environment:\n      - SE_EVENT_BUS_HOST=selenium-hub\n      # Uncomment the following lines to set a value to environment variable of particular browser when GENERATE_CONFIG=true\n#      - SE_NODE_STEREOTYPE_CHROME=\n#      - SE_NODE_BROWSER_NAME_CHROME=\n#      - SE_NODE_BROWSER_VERSION_CHROME=\n#      - SE_NODE_PLATFORM_NAME_CHROME=\n#      - SE_BROWSER_BINARY_LOCATION_CHROME=\n#      - SE_NODE_STEREOTYPE_EXTRA_CHROME=\n#      - SE_NODE_MAX_SESSIONS_CHROME=\n#      - SE_NODE_STEREOTYPE_EDGE=\n#      - SE_NODE_BROWSER_NAME_EDGE=\n#      - SE_NODE_BROWSER_VERSION_EDGE=\n#      - SE_NODE_PLATFORM_NAME_EDGE=\n#      - SE_BROWSER_BINARY_LOCATION_EDGE=\n#      - SE_NODE_STEREOTYPE_EXTRA_EDGE=\n#      - SE_NODE_MAX_SESSIONS_EDGE=\n#      - SE_NODE_STEREOTYPE_FIREFOX=\n#      - SE_NODE_BROWSER_NAME_FIREFOX=\n#      - SE_NODE_BROWSER_VERSION_FIREFOX=\n#      - SE_NODE_PLATFORM_NAME_FIREFOX=\n#      - SE_BROWSER_BINARY_LOCATION_FIREFOX=\n#      - SE_NODE_STEREOTYPE_EXTRA_FIREFOX=\n#      - SE_NODE_MAX_SESSIONS_FIREFOX=\n"
  },
  {
    "path": "docker-compose-v3-swarm.yml",
    "content": "# To start Docker in Swarm mode, you need to run `docker swarm init`\n# To deploy the Grid, `docker stack deploy -c docker-compose-v3-swarm.yml grid`\n# Stop with `docker stack rm grid`\n# Stop swarm mode `docker swarm leave --force`\nservices:\n  chrome:\n    image: selenium/node-chrome:4.41.0-20260222\n    platform: linux/amd64\n    shm_size: 2gb\n    environment:\n      - SE_EVENT_BUS_HOST=selenium-hub\n    deploy:\n      replicas: 1\n    entrypoint: bash -c 'SE_OPTS=\"--host $$HOSTNAME\" /opt/bin/entry_point.sh'\n\n  edge:\n    image: selenium/node-edge:4.41.0-20260222\n    platform: linux/amd64\n    shm_size: 2gb\n    environment:\n      - SE_EVENT_BUS_HOST=selenium-hub\n    deploy:\n      replicas: 1\n    entrypoint: bash -c 'SE_OPTS=\"--host $$HOSTNAME\" /opt/bin/entry_point.sh'\n\n  firefox:\n    image: selenium/node-firefox:4.41.0-20260222\n    shm_size: 2gb\n    environment:\n      - SE_EVENT_BUS_HOST=selenium-hub\n    deploy:\n      replicas: 1\n    entrypoint: bash -c 'SE_OPTS=\"--host $$HOSTNAME\" /opt/bin/entry_point.sh'\n\n  selenium-hub:\n    image: selenium/hub:4.41.0-20260222\n    ports:\n      - \"4442:4442\"\n      - \"4443:4443\"\n      - \"4444:4444\"\n"
  },
  {
    "path": "docker-compose-v3-tracing.yml",
    "content": "# To execute this docker compose yml file use `docker compose -f docker-compose-v3-tracing.yml up`\n# Add the `-d` flag at the end for detached execution\n# To stop the execution, hit Ctrl+C, and then `docker compose -f docker-compose-v3-tracing.yml down`\nservices:\n  jaeger:\n    image: jaegertracing/all-in-one:latest\n    ports:\n      - \"16686:16686\"\n      - \"4317:4317\"\n  chrome:\n    image: selenium/node-chrome:4.41.0-20260222\n    platform: linux/amd64\n    shm_size: 2gb\n    depends_on:\n      - selenium-hub\n    environment:\n      - SE_EVENT_BUS_HOST=selenium-hub\n      - SE_ENABLE_TRACING=true\n      - SE_OTEL_TRACES_EXPORTER=otlp\n      - SE_OTEL_EXPORTER_ENDPOINT=http://jaeger:4317\n\n  edge:\n    image: selenium/node-edge:4.41.0-20260222\n    platform: linux/amd64\n    shm_size: 2gb\n    depends_on:\n      - selenium-hub\n    environment:\n      - SE_EVENT_BUS_HOST=selenium-hub\n      - SE_ENABLE_TRACING=true\n      - SE_OTEL_TRACES_EXPORTER=otlp\n      - SE_OTEL_EXPORTER_ENDPOINT=http://jaeger:4317\n\n  firefox:\n    image: selenium/node-firefox:4.41.0-20260222\n    shm_size: 2gb\n    depends_on:\n      - selenium-hub\n    environment:\n      - SE_EVENT_BUS_HOST=selenium-hub\n      - SE_ENABLE_TRACING=true\n      - SE_OTEL_TRACES_EXPORTER=otlp\n      - SE_OTEL_EXPORTER_ENDPOINT=http://jaeger:4317\n\n  selenium-hub:\n    image: selenium/hub:4.41.0-20260222\n    container_name: selenium-hub\n    ports:\n      - \"4442:4442\"\n      - \"4443:4443\"\n      - \"4444:4444\"\n    depends_on:\n      - jaeger\n    environment:\n      - SE_ENABLE_TRACING=true\n      - SE_OTEL_TRACES_EXPORTER=otlp\n      - SE_OTEL_EXPORTER_ENDPOINT=http://jaeger:4317\n"
  },
  {
    "path": "docker-compose-v3-video-in-node.yml",
    "content": "# To execute this docker compose yml file use `docker compose -f docker-compose-v3-video-in-node.yml up`\n# Add the `-d` flag at the end for detached execution\n# To stop the execution, hit Ctrl+C, and then `docker compose -f docker-compose-v3-video-in-node.yml down`\nservices:\n  chrome:\n    deploy:\n      mode: replicated\n      replicas: 3\n    image: selenium/node-chrome:4.41.0-20260222\n    platform: linux/amd64\n    shm_size: 2gb\n    depends_on:\n      - selenium-hub\n    volumes:\n      - /tmp/videos:/videos\n    environment:\n      - SE_EVENT_BUS_HOST=selenium-hub\n      - SE_RECORD_VIDEO=true\n      - SE_VIDEO_FILE_NAME=auto\n      - SE_NODE_GRID_URL=http://selenium-hub:4444\n\n  edge:\n    deploy:\n      mode: replicated\n      replicas: 3\n    image: selenium/node-edge:4.41.0-20260222\n    platform: linux/amd64\n    shm_size: 2gb\n    depends_on:\n      - selenium-hub\n    volumes:\n      - /tmp/videos:/videos\n    environment:\n      - SE_EVENT_BUS_HOST=selenium-hub\n      - SE_RECORD_VIDEO=true\n      - SE_VIDEO_FILE_NAME=auto\n      - SE_NODE_GRID_URL=http://selenium-hub:4444\n\n  firefox:\n    deploy:\n      mode: replicated\n      replicas: 3\n    image: selenium/node-firefox:4.41.0-20260222\n    shm_size: 2gb\n    depends_on:\n      - selenium-hub\n    volumes:\n      - /tmp/videos:/videos\n    environment:\n      - SE_EVENT_BUS_HOST=selenium-hub\n      - SE_RECORD_VIDEO=true\n      - SE_VIDEO_FILE_NAME=auto\n      - SE_NODE_GRID_URL=http://selenium-hub:4444\n\n  selenium-hub:\n    image: selenium/hub:4.41.0-20260222\n    container_name: selenium-hub\n    ports:\n      - \"4442:4442\"\n      - \"4443:4443\"\n      - \"4444:4444\"\n\n  # File browser to manage the videos from local volume\n  file_browser:\n    image: filebrowser/filebrowser:latest\n    container_name: file_browser\n    restart: always\n    ports:\n      - \"8081:80\"\n    volumes:\n      - /tmp/videos:/srv\n    environment:\n      - FB_NOAUTH=true\n"
  },
  {
    "path": "docker-compose-v3-video-upload-dynamic-grid.yml",
    "content": "# To execute this docker compose yml file use `docker compose -f docker-compose-v3-video-upload-dynamic-grid.yml up`\n# Add the `-d` flag at the end for detached execution\n# To stop the execution, hit Ctrl+C, and then `docker compose -f docker-compose-v3-video-upload-dynamic-grid.yml down`\nservices:\n  # Start a local FTP server to demonstrate video upload with RCLONE (https://github.com/delfer/docker-alpine-ftp-server)\n  ftp_server:\n    image: delfer/alpine-ftp-server:latest\n    container_name: ftp_server\n    environment:\n      - USERS=seluser|selenium.dev\n    volumes:\n      # Mount the local directory `/tmp/upload` to the FTP server's `/ftp/seluser` directory to check out the uploaded videos\n      - /tmp/upload:/ftp/seluser\n    command: [\"/bin/sh\", \"-c\", \"/sbin/tini -- /bin/start_vsftpd.sh && tail -f /dev/null\"]\n    stop_grace_period: 30s\n\n  # File browser to manage the uploaded videos from the FTP server\n  file_browser:\n    image: filebrowser/filebrowser:latest\n    container_name: file_browser\n    restart: always\n    ports:\n      - \"8081:80\"\n    volumes:\n      # Mount the local directory `/tmp/upload` to file browser's `/srv` directory to check out the uploaded videos\n      - /tmp/upload:/srv\n    environment:\n      - FB_NOAUTH=true\n\n  node-docker:\n    image: selenium/node-docker:4.41.0-20260222\n    volumes:\n      - ./assets:/opt/selenium/assets\n      - ./NodeDocker/config.toml:/opt/selenium/docker.toml\n      - /var/run/docker.sock:/var/run/docker.sock\n    depends_on:\n      - selenium-hub\n    environment:\n      - SE_EVENT_BUS_HOST=selenium-hub\n      - SE_VIDEO_RECORD_STANDALONE=true\n      - SE_VIDEO_FILE_NAME=auto\n      - SE_VIDEO_FILE_NAME_SUFFIX=true\n      - SE_VIDEO_UPLOAD_ENABLED=true\n      - SE_UPLOAD_DESTINATION_PREFIX=myftp://ftp/seluser\n      # All configs required for RCLONE to upload to remote name myftp with prefix SE_\n      - SE_RCLONE_CONFIG_MYFTP_TYPE=ftp\n      - SE_RCLONE_CONFIG_MYFTP_HOST=ftp_server\n      - SE_RCLONE_CONFIG_MYFTP_PORT=21\n      - SE_RCLONE_CONFIG_MYFTP_USER=seluser\n      # Password encrypted using command: rclone obscure <your_password>\n      - SE_RCLONE_CONFIG_MYFTP_PASS=KkK8RsUIba-MMTBUSnuYIdAKvcnFyLl2pdhQig\n      - SE_RCLONE_CONFIG_MYFTP_FTP_CONCURRENCY=10\n\n  selenium-hub:\n    image: selenium/hub:4.41.0-20260222\n    container_name: selenium-hub\n    ports:\n      - \"4442:4442\"\n      - \"4443:4443\"\n      - \"4444:4444\"\n"
  },
  {
    "path": "docker-compose-v3-video-upload-standalone.yml",
    "content": "# To execute this docker compose yml file use `docker compose -f docker-compose-v3-video-upload-standalone.yml up`\n# Add the `-d` flag at the end for detached execution\n# To stop the execution, hit Ctrl+C, and then `docker compose -f docker-compose-v3-video-upload-standalone.yml down`\n# ${variable_pattern} get value from .env in the same directory\nservices:\n  # Start a local FTP server to demonstrate video upload with RCLONE (https://github.com/delfer/docker-alpine-ftp-server)\n  ftp_server:\n    image: delfer/alpine-ftp-server:latest\n    container_name: ftp_server\n    environment:\n      - USERS=seluser|selenium.dev\n    volumes:\n      # Mount the local directory `/home/${USER}/Videos/upload` to the FTP server's `/ftp/seluser` directory to check out the uploaded videos\n      - /tmp/upload:/ftp/seluser\n    command: [\"/bin/sh\", \"-c\", \"/sbin/tini -- /bin/start_vsftpd.sh && tail -f /dev/null\"]\n    stop_grace_period: 30s\n\n  # File browser to manage the uploaded videos from the FTP server\n  file_browser:\n    image: filebrowser/filebrowser:latest\n    container_name: file_browser\n    restart: always\n    ports:\n      - \"8081:80\"\n    volumes:\n      # Mount the local directory `/tmp/upload` to file browser's `/srv` directory to check out the uploaded videos\n      - /tmp/upload:/srv\n    environment:\n      - FB_NOAUTH=true\n\n  standalone_chrome:\n    image: selenium/standalone-chrome:4.41.0-20260222\n    platform: linux/amd64\n    shm_size: 2gb\n    ports:\n      - \"4444:4444\"\n    environment:\n      - SE_ROUTER_USERNAME=admin\n      - SE_ROUTER_PASSWORD=admin\n      - SE_SUB_PATH=/selenium\n\n  standalone_edge:\n    image: selenium/standalone-edge:4.41.0-20260222\n    platform: linux/amd64\n    shm_size: 2gb\n    ports:\n      - \"5444:4444\"\n    environment:\n      - SE_ROUTER_USERNAME=admin\n      - SE_ROUTER_PASSWORD=admin\n      - SE_SUB_PATH=/selenium\n\n  standalone_firefox:\n    image: selenium/standalone-firefox:4.41.0-20260222\n    shm_size: 2gb\n    ports:\n      - \"6444:4444\"\n    environment:\n      - SE_ROUTER_USERNAME=admin\n      - SE_ROUTER_PASSWORD=admin\n      - SE_SUB_PATH=/selenium\n\n  chrome_video:\n    image: selenium/video:ffmpeg-8.0-20260222\n    depends_on:\n      - standalone_chrome\n    environment:\n      - SE_ROUTER_USERNAME=admin\n      - SE_ROUTER_PASSWORD=admin\n      - SE_SUB_PATH=/selenium\n      - SE_VIDEO_RECORD_STANDALONE=true\n      - DISPLAY_CONTAINER_NAME=standalone_chrome\n      - SE_VIDEO_FILE_NAME=auto\n      - SE_VIDEO_UPLOAD_ENABLED=true\n      # Remote name and destination path to upload\n      - SE_UPLOAD_DESTINATION_PREFIX=myftp://ftp/seluser\n      # All configs required for RCLONE to upload to remote name myftp\n      - RCLONE_CONFIG_MYFTP_TYPE=ftp\n      - RCLONE_CONFIG_MYFTP_HOST=ftp_server\n      - RCLONE_CONFIG_MYFTP_PORT=21\n      - RCLONE_CONFIG_MYFTP_USER=seluser\n      # Password encrypted using command: rclone obscure <your_password>\n      - RCLONE_CONFIG_MYFTP_PASS=KkK8RsUIba-MMTBUSnuYIdAKvcnFyLl2pdhQig\n      - RCLONE_CONFIG_MYFTP_FTP_CONCURRENCY=10\n    stop_grace_period: 30s\n\n  edge_video:\n    image: selenium/video:ffmpeg-8.0-20260222\n    depends_on:\n      - standalone_edge\n    environment:\n      - SE_ROUTER_USERNAME=admin\n      - SE_ROUTER_PASSWORD=admin\n      - SE_SUB_PATH=/selenium\n      - SE_VIDEO_RECORD_STANDALONE=true\n      - DISPLAY_CONTAINER_NAME=standalone_edge\n      - SE_VIDEO_FILE_NAME=auto\n      - SE_VIDEO_UPLOAD_ENABLED=true\n      # Remote name and destination path to upload\n      - SE_UPLOAD_DESTINATION_PREFIX=myftp://ftp/seluser\n      # All configs required for RCLONE to upload to remote name myftp\n      - RCLONE_CONFIG_MYFTP_TYPE=ftp\n      - RCLONE_CONFIG_MYFTP_HOST=ftp_server\n      - RCLONE_CONFIG_MYFTP_PORT=21\n      - RCLONE_CONFIG_MYFTP_USER=seluser\n      # Password encrypted using command: rclone obscure <your_password>\n      - RCLONE_CONFIG_MYFTP_PASS=KkK8RsUIba-MMTBUSnuYIdAKvcnFyLl2pdhQig\n      - RCLONE_CONFIG_MYFTP_FTP_CONCURRENCY=10\n    stop_grace_period: 30s\n\n  firefox_video:\n    image: selenium/video:ffmpeg-8.0-20260222\n    depends_on:\n      - standalone_firefox\n    environment:\n      - SE_ROUTER_USERNAME=admin\n      - SE_ROUTER_PASSWORD=admin\n      - SE_SUB_PATH=/selenium\n      - SE_VIDEO_RECORD_STANDALONE=true\n      - DISPLAY_CONTAINER_NAME=standalone_firefox\n      - SE_VIDEO_FILE_NAME=auto\n      - SE_VIDEO_UPLOAD_ENABLED=true\n      # Remote name and destination path to upload\n      - SE_UPLOAD_DESTINATION_PREFIX=myftp://ftp/seluser\n      # All configs required for RCLONE to upload to remote name myftp\n      - RCLONE_CONFIG_MYFTP_TYPE=ftp\n      - RCLONE_CONFIG_MYFTP_HOST=ftp_server\n      - RCLONE_CONFIG_MYFTP_PORT=21\n      - RCLONE_CONFIG_MYFTP_USER=seluser\n      # Password encrypted using command: rclone obscure <your_password>\n      - RCLONE_CONFIG_MYFTP_PASS=KkK8RsUIba-MMTBUSnuYIdAKvcnFyLl2pdhQig\n      - RCLONE_CONFIG_MYFTP_FTP_CONCURRENCY=10\n    stop_grace_period: 30s\n"
  },
  {
    "path": "docker-compose-v3-video-upload.yml",
    "content": "# To execute this docker compose yml file use `docker compose -f docker-compose-v3-video-upload.yml up`\n# Add the `-d` flag at the end for detached execution\n# To stop the execution, hit Ctrl+C, and then `docker compose -f docker-compose-v3-video-upload.yml down`\n# ${variable_pattern} get value from .env in the same directory\nservices:\n  # Start a local FTP server to demonstrate video upload with RCLONE (https://github.com/delfer/docker-alpine-ftp-server)\n  ftp_server:\n    image: delfer/alpine-ftp-server:latest\n    container_name: ftp_server\n    environment:\n      - USERS=seluser|selenium.dev\n    volumes:\n      # Mount the local directory `/tmp/upload` to the FTP server's `/ftp/seluser` directory to check out the uploaded videos\n      - /tmp/upload:/ftp/seluser\n    command: [\"/bin/sh\", \"-c\", \"/sbin/tini -- /bin/start_vsftpd.sh && tail -f /dev/null\"]\n    stop_grace_period: 30s\n\n  # File browser to manage the uploaded videos from the FTP server\n  file_browser:\n    image: filebrowser/filebrowser:latest\n    container_name: file_browser\n    restart: always\n    ports:\n      - \"8081:80\"\n    volumes:\n      # Mount the local directory `/tmp/upload` to file browser's `/srv` directory to check out the uploaded videos\n      - /tmp/upload:/srv\n    environment:\n      - FB_NOAUTH=true\n\n  chrome:\n    image: selenium/node-chrome:4.41.0-20260222\n    platform: linux/amd64\n    shm_size: 2gb\n    depends_on:\n      - selenium-hub\n    environment:\n      - SE_EVENT_BUS_HOST=selenium-hub\n\n  edge:\n    image: selenium/node-edge:4.41.0-20260222\n    platform: linux/amd64\n    shm_size: 2gb\n    depends_on:\n      - selenium-hub\n    environment:\n      - SE_EVENT_BUS_HOST=selenium-hub\n\n  firefox:\n    image: selenium/node-firefox:4.41.0-20260222\n    shm_size: 2gb\n    depends_on:\n      - selenium-hub\n    environment:\n      - SE_EVENT_BUS_HOST=selenium-hub\n\n  chrome_video:\n    image: selenium/video:ffmpeg-8.0-20260222\n    depends_on:\n      - chrome\n    environment:\n      - DISPLAY_CONTAINER_NAME=chrome\n      - SE_NODE_GRID_URL=http://selenium-hub:4444\n      - SE_VIDEO_FILE_NAME=auto\n      - SE_VIDEO_UPLOAD_ENABLED=true\n      # Remote name and destination path to upload\n      - SE_UPLOAD_DESTINATION_PREFIX=myftp://ftp/seluser\n      # All configs required for RCLONE to upload to remote name myftp\n      - RCLONE_CONFIG_MYFTP_TYPE=ftp\n      - RCLONE_CONFIG_MYFTP_HOST=ftp_server\n      - RCLONE_CONFIG_MYFTP_PORT=21\n      - RCLONE_CONFIG_MYFTP_USER=seluser\n      # Password encrypted using command: rclone obscure <your_password>\n      - RCLONE_CONFIG_MYFTP_PASS=KkK8RsUIba-MMTBUSnuYIdAKvcnFyLl2pdhQig\n      - RCLONE_CONFIG_MYFTP_FTP_CONCURRENCY=10\n\n  edge_video:\n    image: selenium/video:ffmpeg-8.0-20260222\n    depends_on:\n      - edge\n    environment:\n      - DISPLAY_CONTAINER_NAME=edge\n      - SE_NODE_GRID_URL=http://selenium-hub:4444\n      - SE_VIDEO_FILE_NAME=auto\n      - SE_VIDEO_UPLOAD_ENABLED=true\n      # Remote name and destination path to upload\n      - SE_UPLOAD_DESTINATION_PREFIX=myftp://ftp/seluser\n      # All configs required for RCLONE to upload to remote name myftp\n      - RCLONE_CONFIG_MYFTP_TYPE=ftp\n      - RCLONE_CONFIG_MYFTP_HOST=ftp_server\n      - RCLONE_CONFIG_MYFTP_PORT=21\n      - RCLONE_CONFIG_MYFTP_USER=seluser\n      # Password encrypted using command: rclone obscure <your_password>\n      - RCLONE_CONFIG_MYFTP_PASS=KkK8RsUIba-MMTBUSnuYIdAKvcnFyLl2pdhQig\n      - RCLONE_CONFIG_MYFTP_FTP_CONCURRENCY=10\n\n  firefox_video:\n    image: selenium/video:ffmpeg-8.0-20260222\n    depends_on:\n      - firefox\n    environment:\n      - DISPLAY_CONTAINER_NAME=firefox\n      - SE_NODE_GRID_URL=http://selenium-hub:4444\n      - SE_VIDEO_FILE_NAME=auto\n      - SE_VIDEO_UPLOAD_ENABLED=true\n      # Remote name and destination path to upload\n      - SE_UPLOAD_DESTINATION_PREFIX=myftp://ftp/seluser\n      # All configs required for RCLONE to upload to remote name myftp\n      - RCLONE_CONFIG_MYFTP_TYPE=ftp\n      - RCLONE_CONFIG_MYFTP_HOST=ftp_server\n      - RCLONE_CONFIG_MYFTP_PORT=21\n      - RCLONE_CONFIG_MYFTP_USER=seluser\n      # Password encrypted using command: rclone obscure <your_password>\n      - RCLONE_CONFIG_MYFTP_PASS=KkK8RsUIba-MMTBUSnuYIdAKvcnFyLl2pdhQig\n      - RCLONE_CONFIG_MYFTP_FTP_CONCURRENCY=10\n\n  selenium-hub:\n    image: selenium/hub:4.41.0-20260222\n    container_name: selenium-hub\n    ports:\n      - \"4442:4442\"\n      - \"4443:4443\"\n      - \"4444:4444\"\n"
  },
  {
    "path": "docker-compose-v3-video.yml",
    "content": "# To execute this docker compose yml file use `docker compose -f docker-compose-v3-video.yml up`\n# Add the `-d` flag at the end for detached execution\n# To stop the execution, hit Ctrl+C, and then `docker compose -f docker-compose-v3-video.yml down`\nservices:\n  chrome:\n    image: selenium/node-chrome:4.41.0-20260222\n    platform: linux/amd64\n    shm_size: 2gb\n    depends_on:\n      - selenium-hub\n    environment:\n      - SE_EVENT_BUS_HOST=selenium-hub\n\n  edge:\n    image: selenium/node-edge:4.41.0-20260222\n    platform: linux/amd64\n    shm_size: 2gb\n    depends_on:\n      - selenium-hub\n    environment:\n      - SE_EVENT_BUS_HOST=selenium-hub\n\n  firefox:\n    image: selenium/node-firefox:4.41.0-20260222\n    shm_size: 2gb\n    depends_on:\n      - selenium-hub\n    environment:\n      - SE_EVENT_BUS_HOST=selenium-hub\n\n  chrome_video:\n    image: selenium/video:ffmpeg-8.0-20260222\n    volumes:\n      - /tmp/videos:/videos\n    depends_on:\n      - chrome\n    environment:\n      - DISPLAY_CONTAINER_NAME=chrome\n      - SE_NODE_GRID_URL=http://selenium-hub:4444\n#      - FILE_NAME=chrome_video.mp4\n      - SE_VIDEO_FILE_NAME=auto\n\n  edge_video:\n    image: selenium/video:ffmpeg-8.0-20260222\n    volumes:\n      - /tmp/videos:/videos\n    depends_on:\n      - edge\n    environment:\n      - DISPLAY_CONTAINER_NAME=edge\n      - SE_NODE_GRID_URL=http://selenium-hub:4444\n#      - FILE_NAME=edge_video.mp4\n      - SE_VIDEO_FILE_NAME=auto\n\n  firefox_video:\n    image: selenium/video:ffmpeg-8.0-20260222\n    volumes:\n      - /tmp/videos:/videos\n    depends_on:\n      - firefox\n    environment:\n      - DISPLAY_CONTAINER_NAME=firefox\n      - SE_NODE_GRID_URL=http://selenium-hub:4444\n#      - FILE_NAME=firefox_video.mp4\n      - SE_VIDEO_FILE_NAME=auto\n\n  selenium-hub:\n    image: selenium/hub:4.41.0-20260222\n    container_name: selenium-hub\n    ports:\n      - \"4442:4442\"\n      - \"4443:4443\"\n      - \"4444:4444\"\n\n  # File browser to manage the videos from local volume\n  file_browser:\n    image: filebrowser/filebrowser:latest\n    container_name: file_browser\n    restart: always\n    ports:\n      - \"8081:80\"\n    volumes:\n      - /tmp/videos:/srv\n    environment:\n      - FB_NOAUTH=true\n"
  },
  {
    "path": "docker-compose-v3.yml",
    "content": "# To execute this docker compose yml file use `docker compose -f docker-compose-v3.yml up`\n# Add the `-d` flag at the end for detached execution\n# To stop the execution, hit Ctrl+C, and then `docker compose -f docker-compose-v3.yml down`\nservices:\n  chrome:\n    image: selenium/node-chrome:4.41.0-20260222\n    platform: linux/amd64\n    shm_size: 2gb\n    depends_on:\n      - selenium-hub\n    environment:\n      - SE_EVENT_BUS_HOST=selenium-hub\n\n  edge:\n    image: selenium/node-edge:4.41.0-20260222\n    platform: linux/amd64\n    shm_size: 2gb\n    depends_on:\n      - selenium-hub\n    environment:\n      - SE_EVENT_BUS_HOST=selenium-hub\n\n  firefox:\n    image: selenium/node-firefox:4.41.0-20260222\n    shm_size: 2gb\n    depends_on:\n      - selenium-hub\n    environment:\n      - SE_EVENT_BUS_HOST=selenium-hub\n\n  selenium-hub:\n    image: selenium/hub:4.41.0-20260222\n    container_name: selenium-hub\n    ports:\n      - \"4442:4442\"\n      - \"4443:4443\"\n      - \"4444:4444\"\n"
  },
  {
    "path": "generate_chart_changelog.sh",
    "content": "#!/bin/bash\n\n# Specify the output file for the CHANGELOG\nCHART_DIR=\"./charts/selenium-grid\"\nCHANGELOG_FILE=\"./charts/selenium-grid/CHANGELOG.md\"\nTAG_PATTERN=\"selenium-grid\"\nDEFAULT_TAG=\"trunk\"\nSET_TAG=${1:-$(git rev-parse --abbrev-ref HEAD)}\n\nfunction get_keda_version() {\n  KEDA_CORE_VERSION=$(grep KEDA_CORE_VERSION Makefile | sed 's/.*,\\([^)]*\\))/\\1/p' | head -n 1)\n  KEDA_TAG_VERSION=$(grep KEDA_TAG_VERSION Makefile | sed 's/.*,\\([^)]*\\))/\\1/p' | head -n 1)\n  KEDA_IMAGE_TAG=$(find . \\( -type d -name .git -prune \\) -o -type f -wholename '*/selenium-grid/values.yaml' -print0 | xargs -0 cat | grep $KEDA_TAG_VERSION | head -n 1 | cut -d ':' -f 2 | tr -d '[:space:]' | tr -d '\"')\n  IS_PATCHED_VERSION=$(grep TEST_PATCHED_KEDA Makefile | sed 's/.*,\\([^)]*\\))/\\1/p' | head -n 1)\n}\n\n# Get current chart app version\nCHART_APP_VERSION=$(find . \\( -type d -name .git -prune \\) -o -type f -wholename '*/selenium-grid/Chart.yaml' -print0 | xargs -0 cat | grep ^appVersion | cut -d ':' -f 2 | tr -d '[:space:]')\n\n# Generate the changelog\ngenerate_changelog() {\n  # Get a list of tags sorted by commit date\n  tags=($(git tag --sort=committerdate | grep \"^$TAG_PATTERN\"))\n  tags_size=${#tags[@]}\n\n  CURRENT_CHART_VERSION=$(find . \\( -type d -name .git -prune \\) -o -type f -wholename '*/selenium-grid/Chart.yaml' -print0 | xargs -0 cat | grep ^version | cut -d ':' -f 2 | tr -d '[:space:]')\n\n  # Check if there are tags\n  if [ ${#tags[@]} -eq 0 ]; then\n    commit_range=\"$DEFAULT_TAG\"\n    change_title=\"${TAG_PATTERN}-${CURRENT_CHART_VERSION}\"\n  elif [ ${#tags[@]} -eq 1 ] || [ \"$SET_TAG\" = \"$DEFAULT_TAG\" ]; then\n    previous_tag=\"${tags[$tags_size - 1]}\"\n    current_tag=\"$DEFAULT_TAG\"\n    commit_range=\"${previous_tag}..origin/${current_tag}\"\n    change_title=\"${TAG_PATTERN}-${CURRENT_CHART_VERSION}\"\n  else\n    previous_tag=\"${tags[$tags_size - 2]}\"\n    current_tag=\"${tags[$tags_size - 1]}\"\n    commit_range=\"${previous_tag}..origin/${current_tag}\"\n    change_title=\"$current_tag\"\n  fi\n\n  echo \"Generating changelog for ${change_title}\"\n\n  # Get the changes for each section (Added, Removed, Fixed, Changed)\n  image_tag_changes=$(echo \"Chart is using image tag $CHART_APP_VERSION\" | sed -e 's/^/- /')\n  k8s_versions_tested=$(echo \"Chart is tested on Kubernetes versions: $(cat .github/workflows/helm-chart-test.yml | grep -oP \"k8s-version: '\\Kv.*(?=')\" | sort -u | tr '\\n' ',' | sed 's/,$//')\" | sed -e 's/^/- /')\n  docker_versions_tested=$(echo \"Chart is tested on container runtime Docker versions: $(cat .github/workflows/helm-chart-test.yml | grep -oP \"docker-version: '\\K.*(?=')\" | sort -u | tr '\\n' ',' | sed 's/,$//')\" | sed -e 's/^/- /')\n  helm_versions_tested=$(echo \"Chart is tested on Helm versions: $(cat .github/workflows/helm-chart-test.yml | grep -oP \"helm-version: '\\Kv.*(?=')\" | sort -u | tr '\\n' ',' | sed 's/,$//')\" | sed -e 's/^/- /')\n  added_changes=$(git log --pretty=format:\"[\\`%h\\`](http://github.com/seleniumhq/docker-selenium/commit/%H) - %s :: %an\" \"$commit_range\" -- \"$CHART_DIR\" | grep -iE \"\\- feat|\\- add\" | sed -e 's/^/- /')\n  removed_changes=$(git log --pretty=format:\"[\\`%h\\`](http://github.com/seleniumhq/docker-selenium/commit/%H) - %s :: %an\" \"$commit_range\" -- \"$CHART_DIR\" | grep -iE \"\\- remove|\\- deprecate|\\- delete\" | sed -e 's/^/- /')\n  fixed_changes=$(git log --pretty=format:\"[\\`%h\\`](http://github.com/seleniumhq/docker-selenium/commit/%H) - %s :: %an\" \"$commit_range\" -- \"$CHART_DIR\" | grep -iE \"\\- fix|\\- bug\" | sed -e 's/^/- /')\n  changed_changes=$(git log --pretty=format:\"[\\`%h\\`](http://github.com/seleniumhq/docker-selenium/commit/%H) - %s :: %an\" \"$commit_range\" -- \"$CHART_DIR\" | grep -iEv \"\\- feat|\\- add|\\- remove|\\- deprecate|\\- delete|\\- fix|\\- bug\" | sed -e 's/^/- /')\n\n  # Create a temporary file\n  temp_file=$(mktemp)\n\n  # Write to the temporary file\n  echo \"## :heavy_check_mark: ${change_title}\" >>\"$temp_file\"\n  echo \"\" >>\"$temp_file\"\n  echo \"$image_tag_changes\" >>\"$temp_file\"\n  echo \"$k8s_versions_tested\" >>\"$temp_file\"\n  echo \"$docker_versions_tested\" >>\"$temp_file\"\n  echo \"$helm_versions_tested\" >>\"$temp_file\"\n  get_keda_version\n  if [ \"${IS_PATCHED_VERSION}\" == \"true\" ]; then\n    if [ -n \"$KEDA_IMAGE_TAG\" ]; then\n      echo \"- Chart is tested autoscaling capabilities with KEDA image tag: $KEDA_IMAGE_TAG\" >>\"$temp_file\"\n      echo \"- Selenium Grid Scaler implementation preview. [README](https://github.com/seleniumhq/docker-selenium/tree/trunk/.keda/README.md)\" >>\"$temp_file\"\n    fi\n  else\n    echo \"- Chart is tested autoscaling capabilities with KEDA image tag: $KEDA_CORE_VERSION\" >>\"$temp_file\"\n  fi\n  echo \"\" >>\"$temp_file\"\n\n  if [ -n \"$added_changes\" ]; then\n    echo \"### Added\" >>\"$temp_file\"\n    echo \"$added_changes\" >>\"$temp_file\"\n    echo \"\" >>\"$temp_file\"\n  fi\n\n  if [ -n \"$removed_changes\" ]; then\n    echo \"### Removed\" >>\"$temp_file\"\n    echo \"$removed_changes\" >>\"$temp_file\"\n    echo \"\" >>\"$temp_file\"\n  fi\n\n  if [ -n \"$fixed_changes\" ]; then\n    echo \"### Fixed\" >>\"$temp_file\"\n    echo \"$fixed_changes\" >>\"$temp_file\"\n    echo \"\" >>\"$temp_file\"\n  fi\n\n  if [ -n \"$changed_changes\" ]; then\n    echo \"### Changed\" >>\"$temp_file\"\n    echo \"$changed_changes\" >>\"$temp_file\"\n    echo \"\" >>\"$temp_file\"\n  fi\n\n  # Create chart_release_notes.md\n  release_notes_file=\"$CHART_DIR/RELEASE_NOTES.md\"\n  chart_description=$(find . \\( -type d -name .git -prune \\) -o -type f -wholename '*/selenium-grid/Chart.yaml' -print0 | xargs -0 cat | grep ^description | cut -d ':' -f 2)\n  echo \"$chart_description\" >\"$release_notes_file\"\n  echo \"\" >>\"$release_notes_file\"\n  cat $temp_file >>\"$release_notes_file\"\n  echo \"Generated release notes at $release_notes_file\"\n\n  # Append the existing content of CHANGELOG to the temporary file\n  cat \"$CHANGELOG_FILE\" >>\"$temp_file\"\n\n  if [[ $(cat $CHANGELOG_FILE) == *\"${change_title}\"* ]]; then\n    echo \"Changelog already generated for ${change_title}\"\n    rm -rf \"$temp_file\"\n    exit 0\n  else\n    # Overwrite CHANGELOG with the content of the temporary file\n    mv \"$temp_file\" \"$CHANGELOG_FILE\"\n  fi\n\n}\n\n# Run the function to generate the changelog\ngenerate_changelog\n\necho \"Changelog generated successfully at $CHANGELOG_FILE\"\n\necho -e \"true\" >/tmp/selenium_chart_release\n"
  },
  {
    "path": "generate_release_notes.sh",
    "content": "#!/usr/bin/env bash\n\nLATEST_TAG=$1\nHEAD_BRANCH=$2\nGRID_VERSION=$3\nBUILD_DATE=$4\nNAMESPACE=${NAME:-selenium}\nFFMPEG_TAG_VERSION=$(grep FFMPEG_TAG_VERSION Makefile | sed 's/.*,\\([^)]*\\))/\\1/p' | head -n 1)\nAUTHORS=${AUTHORS:-\"SeleniumHQ\"}\n\nTAG_VERSION=${GRID_VERSION}-${BUILD_DATE}\n\necho \"\" >>release_notes.md\necho \"### Changelog\" >release_notes.md\ngit --no-pager log \"${LATEST_TAG}...${HEAD_BRANCH}\" --pretty=format:\"* [\\`%h\\`](http://github.com/seleniumhq/docker-selenium/commit/%H) - %s :: %an\" --reverse >>release_notes.md\n\nGRID_REVISION=$(docker run --entrypoint=\"\" --rm ${NAMESPACE}/base:${TAG_VERSION} java -jar /opt/selenium/selenium-server.jar info --version | awk '{print $5}')\nCHROME_VERSION=$(docker run --rm ${NAMESPACE}/node-chrome:${TAG_VERSION} google-chrome --version | awk '{print $3}')\nCFT_VERSION=$(docker run --rm ${NAMESPACE}/node-chrome-for-testing:${TAG_VERSION} google-chrome --version | awk '{print $5}')\nEDGE_VERSION=$(docker run --rm ${NAMESPACE}/node-edge:${TAG_VERSION} microsoft-edge --version | awk '{print $3}')\nCHROMEDRIVER_VERSION=$(docker run --rm ${NAMESPACE}/node-chrome:${TAG_VERSION} chromedriver --version | awk '{print $2}')\nEDGEDRIVER_VERSION=$(docker run --rm ${NAMESPACE}/node-edge:${TAG_VERSION} msedgedriver --version | awk '{print $4}')\nFIREFOX_VERSION=$(docker run --rm ${NAMESPACE}/node-firefox:${TAG_VERSION} firefox --version | awk '{print $3}')\nGECKODRIVER_VERSION=$(docker run --rm ${NAMESPACE}/node-firefox:${TAG_VERSION} geckodriver --version | awk 'NR==1{print $2}')\nFFMPEG_VERSION=$(docker run --entrypoint=\"\" --rm ${NAMESPACE}/video:${FFMPEG_TAG_VERSION}-${BUILD_DATE} ffmpeg -version | awk '{print $3}' | head -n 1)\nRCLONE_VERSION=$(docker run --entrypoint=\"\" --rm ${NAMESPACE}/video:${FFMPEG_TAG_VERSION}-${BUILD_DATE} rclone version | head -n 1 | awk '{print $2}' | tr -d 'v')\nJRE_VERSION=$(docker run --entrypoint=\"\" --rm ${NAMESPACE}/base:${TAG_VERSION} java --version | grep -oP '\\b\\d+\\.\\d+\\.\\d+\\b' | head -1)\nOS_VERSION=$(docker run --entrypoint=\"\" --rm ${NAMESPACE}/base:${TAG_VERSION} cat /etc/os-release | grep PRETTY_NAME | cut -d '\"' -f 2)\nFIREFOX_ARM64_VERSION=$(docker run --rm --platform linux/arm64 ${NAMESPACE}/node-firefox:${TAG_VERSION} firefox --version | awk '{print $3}')\nCHROMIUM_VERSION=$(docker run --rm ${NAMESPACE}/node-chromium:${TAG_VERSION} chromium --version | awk '{print $2}')\nCHROMIUMDRIVER_VERSION=$(docker run --rm ${NAMESPACE}/node-chromium:${TAG_VERSION} chromedriver --version | awk '{print $2}')\nif [[ \"${GRID_VERSION}\" == *\"SNAPSHOT\"* ]]; then\n  GRID_RELEASE_TAG=\"nightly\"\nelse\n  GRID_RELEASE_TAG=\"selenium-${GRID_VERSION}\"\nfi\nLINK_GRID_DETAILS=\"[${GRID_VERSION}](https://github.com/${AUTHORS}/selenium/releases/tag/${GRID_RELEASE_TAG}) (rev [${GRID_REVISION}](https://github.com/${AUTHORS}/selenium/commit/${GRID_REVISION}))\"\n\necho \"\" >>release_notes.md\necho \"### Released versions\" >>release_notes.md\necho \"| Components | x86_64 (amd64) | aarch64 (arm64/armv8) |\" >>release_notes.md\necho \"|:----------:|:--------------:|:---------------------:|\" >>release_notes.md\necho \"| Selenium Grid | ${LINK_GRID_DETAILS} | ${LINK_GRID_DETAILS} |\" >>release_notes.md\necho \"| Chromium | ${CHROMIUM_VERSION} | ${CHROMIUM_VERSION} |\" >>release_notes.md\necho \"| Chrome | ${CHROME_VERSION} | x |\" >>release_notes.md\necho \"| Chrome for Testing | ${CFT_VERSION} | x |\" >>release_notes.md\necho \"| ChromeDriver | ${CHROMEDRIVER_VERSION} | ${CHROMIUMDRIVER_VERSION} |\" >>release_notes.md\necho \"| Edge | ${EDGE_VERSION} | x |\" >>release_notes.md\necho \"| EdgeDriver | ${EDGEDRIVER_VERSION} | x |\" >>release_notes.md\necho \"| Firefox | ${FIREFOX_VERSION} | ${FIREFOX_ARM64_VERSION} |\" >>release_notes.md\necho \"| GeckoDriver | ${GECKODRIVER_VERSION} | ${GECKODRIVER_VERSION} |\" >>release_notes.md\necho \"| ffmpeg | ${FFMPEG_VERSION} | ${FFMPEG_VERSION} |\" >>release_notes.md\necho \"| rclone | ${RCLONE_VERSION} | ${RCLONE_VERSION} |\" >>release_notes.md\necho \"| Java Runtime | ${JRE_VERSION} | ${JRE_VERSION} |\" >>release_notes.md\necho \"| OS | ${OS_VERSION} | ${OS_VERSION} |\" >>release_notes.md\n\necho \"\" >>release_notes.md\necho \"### Published Docker images on [Docker Hub](https://hub.docker.com/u/${NAMESPACE})\" >>release_notes.md\necho \"<details>\" >>release_notes.md\necho \"<summary>Click to see published Docker images</summary>\" >>release_notes.md\necho \"\" >>release_notes.md\necho '```' >>release_notes.md\ndocker images --filter=reference=${NAMESPACE}'/*:'${FILTER_IMAGE_TAG:-\"*\"} --format \"table {{.ID}}\\t{{.Repository}}\\t{{.Tag}}\\t{{.Size}}\" >>release_notes.md\necho '```' >>release_notes.md\necho \"\" >>release_notes.md\necho \"</details>\" >>release_notes.md\n\necho \"\" >>release_notes.md\nchart_version=$(find . \\( -type d -name .git -prune \\) -o -type f -wholename '*/selenium-grid/Chart.yaml' -print0 | xargs -0 cat | grep ^version | cut -d ':' -f 2 | tr -d '[:space:]')\necho \"### Published Helm chart version [selenium-grid-${chart_version}](https://github.com/${AUTHORS}/docker-selenium/releases/tag/selenium-grid-${chart_version})\" >>release_notes.md\n"
  },
  {
    "path": "generate_sbom.sh",
    "content": "#!/bin/bash\n\nNAMESPACE=${NAME:-selenium}\nFILTER_IMAGE_TAG=${FILTER_IMAGE_TAG:-\"*\"}\nOUTPUT_FILE=${OUTPUT_FILE:-\"package_versions.txt\"}\n\n# List all Docker images matching tag\nimages=$(docker images --filter=reference=${NAMESPACE}'/*:'${FILTER_IMAGE_TAG} --format \"{{.Repository}}:{{.Tag}}\")\n\n# Check if there are any images\nif [ -z \"$images\" ]; then\n  echo \"No Docker images found.\"\n  exit 1\nfi\n\necho -n \"\" >${OUTPUT_FILE}\n# Iterate through each image and generate SBOM\nfor image in $images; do\n  echo \"Generating SBOM for image: $image\"\n  echo \"==================== $image ====================\" >>${OUTPUT_FILE}\n  docker sbom $image >>${OUTPUT_FILE}\n  echo \"\" >>${OUTPUT_FILE}\ndone\n\necho \"SBOM generation completed for all images.\"\n"
  },
  {
    "path": "kubernetes/DynamicGrid/BaseConfig/configmap.yaml",
    "content": "apiVersion: v1\nkind: ConfigMap\nmetadata:\n  name: selenium-kubernetes-config\ndata:\n  kubernetes.toml: |\n    [kubernetes]\n    configs = [\n        \"selenium/standalone-chromium:4.41.0-20260222\", '{\"browserName\": \"chrome\", \"platformName\": \"linux\"}',\n        \"selenium/standalone-firefox:4.41.0-20260222\", '{\"browserName\": \"firefox\", \"platformName\": \"linux\"}',\n        \"selenium/standalone-edge:4.41.0-20260222\", '{\"browserName\": \"MicrosoftEdge\", \"platformName\": \"linux\"}'\n    ]\n    termination-grace-period = 60\n    assets-path = \"/opt/selenium/assets\"\n"
  },
  {
    "path": "kubernetes/DynamicGrid/BaseConfig/pvc.yaml",
    "content": "apiVersion: v1\nkind: PersistentVolume\nmetadata:\n  name: selenium-assets\n  labels:\n    app: selenium\nspec:\n  capacity:\n    storage: 5Gi\n  accessModes:\n    - ReadWriteMany\n  hostPath:\n    path: /tmp/selenium/assets\n    type: DirectoryOrCreate\n  storageClassName: \"\"\n  persistentVolumeReclaimPolicy: Retain\n---\napiVersion: v1\nkind: PersistentVolumeClaim\nmetadata:\n  name: selenium-assets\nspec:\n  accessModes:\n    - ReadWriteMany\n  resources:\n    requests:\n      storage: 5Gi\n  storageClassName: \"\"\n  volumeName: selenium-assets\n"
  },
  {
    "path": "kubernetes/DynamicGrid/BaseConfig/rbac.yaml",
    "content": "apiVersion: v1\nkind: ServiceAccount\nmetadata:\n  name: selenium-node\n---\napiVersion: rbac.authorization.k8s.io/v1\nkind: Role\nmetadata:\n  name: selenium-node-role\nrules:\n  - apiGroups: [\"batch\"]\n    resources: [\"jobs\"]\n    verbs: [\"create\", \"delete\", \"get\", \"list\", \"watch\"]\n  - apiGroups: [\"\"]\n    resources: [\"pods\"]\n    verbs: [\"get\", \"list\", \"watch\"]\n  - apiGroups: [\"\"]\n    resources: [\"pods/log\"]\n    verbs: [\"get\"]\n---\napiVersion: rbac.authorization.k8s.io/v1\nkind: RoleBinding\nmetadata:\n  name: selenium-node-rolebinding\nsubjects:\n  - kind: ServiceAccount\n    name: selenium-node\nroleRef:\n  kind: Role\n  name: selenium-node-role\n  apiGroup: rbac.authorization.k8s.io\n"
  },
  {
    "path": "kubernetes/DynamicGrid/Hub_Node/hub-deployment.yaml",
    "content": "apiVersion: apps/v1\nkind: Deployment\nmetadata:\n  name: selenium-hub\n  labels:\n    app: selenium-hub\nspec:\n  replicas: 1\n  selector:\n    matchLabels:\n      app: selenium-hub\n  template:\n    metadata:\n      labels:\n        app: selenium-hub\n    spec:\n      containers:\n        - name: selenium-hub\n          image: selenium/hub:4.41.0-20260222\n          ports:\n            - containerPort: 4444\n            - containerPort: 4443\n            - containerPort: 4442\n          env:\n            - name: SE_SESSION_REQUEST_TIMEOUT\n              value: \"600\"\n            - name: SE_ROUTER_USERNAME\n              value: \"admin\"\n            - name: SE_ROUTER_PASSWORD\n              value: \"admin\"\n            - name: SE_REGISTRATION_SECRET\n              value: \"secret\"\n          resources:\n            requests:\n              memory: \"512Mi\"\n              cpu: \"0.5\"\n            limits:\n              memory: \"2048Mi\"\n              cpu: \"1\"\n          livenessProbe:\n            exec:\n              command:\n                - /bin/sh\n                - -c\n                - curl -G --fail --silent -u ${SE_ROUTER_USERNAME}:${SE_ROUTER_PASSWORD} localhost:4444/status\n            initialDelaySeconds: 30\n            timeoutSeconds: 5\n          readinessProbe:\n            httpGet:\n              path: /readyz\n              port: 4444\n            initialDelaySeconds: 30\n            timeoutSeconds: 5\n"
  },
  {
    "path": "kubernetes/DynamicGrid/Hub_Node/hub-svc.yaml",
    "content": "apiVersion: v1\nkind: Service\nmetadata:\n  name: selenium-hub\nspec:\n  selector:\n    app: selenium-hub\n  ports:\n    - name: bus-publish\n      port: 4442\n      targetPort: 4442\n    - name: bus-subscribe\n      port: 4443\n      targetPort: 4443\n    - name: web\n      port: 4444\n      targetPort: 4444\n      nodePort: 30444\n  type: NodePort\n"
  },
  {
    "path": "kubernetes/DynamicGrid/Hub_Node/node-kubernetes-deployment.yaml",
    "content": "apiVersion: apps/v1\nkind: Deployment\nmetadata:\n  name: selenium-node-kubernetes\n  labels:\n    app: selenium-node-kubernetes\n    se/component: node\nspec:\n  replicas: 1\n  selector:\n    matchLabels:\n      app: selenium-node-kubernetes\n  template:\n    metadata:\n      labels:\n        app: selenium-node-kubernetes\n        se/component: node\n    spec:\n      serviceAccountName: selenium-node\n      terminationGracePeriodSeconds: 300\n      containers:\n        - name: selenium-node-kubernetes\n          image: selenium/node-kubernetes:4.41.0-20260222\n          ports:\n            - containerPort: 5555\n          env:\n            - name: SE_EVENT_BUS_HOST\n              value: \"selenium-hub\"\n            - name: SE_EVENT_BUS_PUBLISH_PORT\n              value: \"4442\"\n            - name: SE_EVENT_BUS_SUBSCRIBE_PORT\n              value: \"4443\"\n            - name: SE_NODE_SESSION_TIMEOUT\n              value: \"600\"\n            - name: SE_REGISTRATION_SECRET\n              value: \"secret\"\n            - name: SE_DYNAMIC_OVERRIDE_MAX_SESSIONS\n              value: \"true\"\n            - name: SE_DYNAMIC_MAX_SESSIONS\n              value: \"10\"\n          resources:\n            requests:\n              memory: \"512Mi\"\n              cpu: \"0.5\"\n            limits:\n              memory: \"2Gi\"\n              cpu: \"1\"\n          readinessProbe:\n            httpGet:\n              path: /readyz\n              port: 5555\n            initialDelaySeconds: 10\n            periodSeconds: 5\n          livenessProbe:\n            httpGet:\n              path: /readyz\n              port: 5555\n            initialDelaySeconds: 15\n            periodSeconds: 10\n          volumeMounts:\n            - name: selenium-config\n              mountPath: /opt/selenium/kubernetes.toml\n              subPath: kubernetes.toml\n              readOnly: true\n            - name: session-assets\n              mountPath: /opt/selenium/assets\n      volumes:\n        - name: selenium-config\n          configMap:\n            name: selenium-kubernetes-config\n        - name: session-assets\n          persistentVolumeClaim:\n            claimName: selenium-assets\n"
  },
  {
    "path": "kubernetes/DynamicGrid/README.md",
    "content": "# Dynamic Grid Deployment in Kubernetes Cluster Guide\n\nNoted: Example is tested with simplex Kubernetes cluster on Docker Desktop. Customize YAML resources to fit with your cluster.\n\nThis setup is split into:\n- `BaseConfig/`: mandatory shared resources\n- `Standalone/`: `selenium/standalone-kubernetes` deployment + service\n- `Hub_Node/`: `selenium/hub` + `selenium/node-kubernetes` deployments and hub service\n\nAll manifests are namespace-agnostic. Use `-n <namespace>` when applying.\n\n## 1. Choose namespace\n\n```bash\nkubectl create namespace selenium\n```\n\nIf namespace already exists, continue.\n\n## 2. Apply mandatory base resources\n\n```bash\nkubectl apply -n selenium -f BaseConfig/\n```\n\nThis creates shared resources:\n- `ConfigMap` (`selenium-kubernetes-config`)\n- `PersistentVolume` + `PersistentVolumeClaim` (`selenium-assets`)\n- `ServiceAccount`, `Role`, `RoleBinding` (`selenium-node`)\n\n## 3. Deploy one runtime mode\n\nDeploy only one mode at a time because both modes expose NodePort `30444`.\n\n### Option A: Standalone\n\n```bash\nkubectl apply -n selenium -f Standalone/standalone-kubernetes.yaml\n```\n\nAccess:\n- `http://admin:admin@localhost:30444`\n\n### Option B: Hub + Node\n\n```bash\nkubectl apply -n selenium -f Hub_Node/hub-node-kubernetes.yaml\n```\n\nAccess:\n- `http://admin:admin@localhost:30444`\n\n## 4. Verify\n\n```bash\nkubectl get pods,svc -n selenium\nkubectl get pvc,pv -n selenium\n```\n\n## 5. Client connectivity test (Basic Auth)\n\nGrid URL:\n- `http://admin:admin@localhost:30444`\n\nQuick status check:\n\n```bash\ncurl -u admin:admin http://localhost:30444/status\n```\n\nPython example:\n\n```python\nfrom selenium import webdriver\nfrom selenium.webdriver.common.by import By\n\ndriver = webdriver.Remote(\n    command_executor=\"http://admin:admin@localhost:30444\",\n    options=webdriver.ChromeOptions(),\n)\ndriver.get(\"https://www.selenium.dev\")\nprint(driver.title)\ndriver.quit()\n```\n\n## 6. Switch mode (optional)\n\nIf you want to change from one mode to another:\n\n```bash\nkubectl delete -n selenium -f Standalone/standalone-kubernetes.yaml\nkubectl apply -n selenium -f Hub_Node/hub-node-kubernetes.yaml\n```\n\nOr the reverse:\n\n```bash\nkubectl delete -n selenium -f Hub_Node/hub-node-kubernetes.yaml\nkubectl apply -n selenium -f Standalone/standalone-kubernetes.yaml\n```\n\n## 7. Cleanup\n\n```bash\nkubectl delete -n selenium -f Standalone/standalone-kubernetes.yaml --ignore-not-found\nkubectl delete -n selenium -f Hub_Node/hub-node-kubernetes.yaml --ignore-not-found\nkubectl delete -n selenium -f BaseConfig/\n```\n"
  },
  {
    "path": "kubernetes/DynamicGrid/Standalone/standalone-kubernetes.yaml",
    "content": "apiVersion: apps/v1\nkind: Deployment\nmetadata:\n  name: selenium-standalone-kubernetes\n  labels:\n    app: selenium-standalone-kubernetes\n    se/component: standalone\nspec:\n  replicas: 1\n  selector:\n    matchLabels:\n      app: selenium-standalone-kubernetes\n  template:\n    metadata:\n      labels:\n        app: selenium-standalone-kubernetes\n        se/component: standalone\n    spec:\n      serviceAccountName: selenium-node\n      terminationGracePeriodSeconds: 300\n      containers:\n        - name: selenium-standalone-kubernetes\n          image: selenium/standalone-kubernetes:4.41.0-20260222\n          ports:\n            - containerPort: 4444\n          env:\n            - name: SE_SESSION_REQUEST_TIMEOUT\n              value: \"600\"\n            - name: SE_SESSION_RETRY_INTERVAL\n              value: \"15\"\n            - name: SE_ROUTER_USERNAME\n              value: \"admin\"\n            - name: SE_ROUTER_PASSWORD\n              value: \"admin\"\n            - name: SE_NODE_SESSION_TIMEOUT\n              value: \"600\"\n            - name: SE_DYNAMIC_OVERRIDE_MAX_SESSIONS\n              value: \"true\"\n            - name: SE_DYNAMIC_MAX_SESSIONS\n              value: \"10\"\n          resources:\n            requests:\n              memory: \"512Mi\"\n              cpu: \"0.5\"\n            limits:\n              memory: \"2Gi\"\n              cpu: \"1\"\n          livenessProbe:\n            exec:\n              command:\n                - /bin/sh\n                - -c\n                - curl -G --fail --silent -u ${SE_ROUTER_USERNAME}:${SE_ROUTER_PASSWORD} localhost:4444/status\n            initialDelaySeconds: 30\n            timeoutSeconds: 5\n          readinessProbe:\n            httpGet:\n              path: /readyz\n              port: 4444\n            initialDelaySeconds: 30\n            timeoutSeconds: 5\n          volumeMounts:\n            - name: selenium-config\n              mountPath: /opt/selenium/kubernetes.toml\n              subPath: kubernetes.toml\n              readOnly: true\n            - name: session-assets\n              mountPath: /opt/selenium/assets\n      volumes:\n        - name: selenium-config\n          configMap:\n            name: selenium-kubernetes-config\n        - name: session-assets\n          persistentVolumeClaim:\n            claimName: selenium-assets\n---\napiVersion: v1\nkind: Service\nmetadata:\n  name: selenium-standalone-kubernetes\nspec:\n  selector:\n    app: selenium-standalone-kubernetes\n  ports:\n    - name: web\n      port: 4444\n      targetPort: 4444\n      nodePort: 30444\n  type: NodePort\n"
  },
  {
    "path": "kubernetes/Hub_Node/hub-deployment.yaml",
    "content": "apiVersion: apps/v1\nkind: Deployment\nmetadata:\n  name: selenium-hub\n  labels:\n    app: selenium-hub\nspec:\n  replicas: 1\n  selector:\n    matchLabels:\n      app: selenium-hub\n  template:\n    metadata:\n      labels:\n        app: selenium-hub\n    spec:\n      containers:\n        - name: selenium-hub\n          image: selenium/hub:4.41.0-20260222\n          ports:\n            - containerPort: 4444\n            - containerPort: 4443\n            - containerPort: 4442\n          env:\n            - name: SE_SESSION_REQUEST_TIMEOUT\n              value: \"600\"\n            - name: SE_ROUTER_USERNAME\n              value: \"admin\"\n            - name: SE_ROUTER_PASSWORD\n              value: \"admin\"\n            - name: SE_REGISTRATION_SECRET\n              value: \"secret\"\n          resources:\n            requests:\n              memory: \"512Mi\"\n              cpu: \"0.5\"\n            limits:\n              memory: \"2048Mi\"\n              cpu: \"1\"\n          livenessProbe:\n            exec:\n              command:\n                - /bin/sh\n                - -c\n                - curl -G --fail --silent -u ${SE_ROUTER_USERNAME}:${SE_ROUTER_PASSWORD} localhost:4444/status\n            initialDelaySeconds: 30\n            timeoutSeconds: 5\n          readinessProbe:\n            httpGet:\n              path: /readyz\n              port: 4444\n            initialDelaySeconds: 30\n            timeoutSeconds: 5\n"
  },
  {
    "path": "kubernetes/Hub_Node/hub-svc.yaml",
    "content": "apiVersion: v1\nkind: Service\nmetadata:\n  name: selenium-hub\nspec:\n  selector:\n    app: selenium-hub\n  ports:\n    - name: bus-publish\n      port: 4442\n      targetPort: 4442\n    - name: bus-subscribe\n      port: 4443\n      targetPort: 4443\n    - name: web\n      port: 4444\n      targetPort: 4444\n      nodePort: 30444\n  type: NodePort\n"
  },
  {
    "path": "kubernetes/Hub_Node/node-chrome-deployment.yaml",
    "content": "apiVersion: apps/v1\nkind: Deployment\nmetadata:\n  name: selenium-node-chrome\nspec:\n  replicas: 1\n  selector:\n    matchLabels:\n      app: selenium-node-chrome\n  template:\n    metadata:\n      labels:\n        app: selenium-node-chrome\n    spec:\n      containers:\n        - name: chrome\n          image: selenium/node-chrome:4.41.0-20260222\n          env:\n            - name: SE_EVENT_BUS_HOST\n              value: \"selenium-hub\"\n            - name: SE_NODE_SESSION_TIMEOUT\n              value: \"600\"\n            - name: SE_NODE_OVERRIDE_MAX_SESSIONS\n              value: \"true\"\n            - name: SE_REGISTRATION_SECRET\n              value: \"secret\"\n          resources:\n            requests:\n              memory: \"1Gi\"\n              cpu: \"0.5\"\n            limits:\n              memory: \"2Gi\"\n              cpu: \"2\"\n          volumeMounts:\n            - mountPath: /dev/shm\n              name: dshm\n      volumes:\n        - name: dshm\n          emptyDir:\n            medium: Memory\n            sizeLimit: 2Gi\n"
  },
  {
    "path": "kubernetes/Hub_Node/node-edge-deployment.yaml",
    "content": "apiVersion: apps/v1\nkind: Deployment\nmetadata:\n  name: selenium-node-edge\nspec:\n  replicas: 1\n  selector:\n    matchLabels:\n      app: selenium-node-edge\n  template:\n    metadata:\n      labels:\n        app: selenium-node-edge\n    spec:\n      containers:\n        - name: chrome\n          image: selenium/node-edge:4.41.0-20260222\n          env:\n            - name: SE_EVENT_BUS_HOST\n              value: \"selenium-hub\"\n            - name: SE_NODE_SESSION_TIMEOUT\n              value: \"600\"\n            - name: SE_NODE_OVERRIDE_MAX_SESSIONS\n              value: \"true\"\n            - name: SE_REGISTRATION_SECRET\n              value: \"secret\"\n          resources:\n            requests:\n              memory: \"1Gi\"\n              cpu: \"0.5\"\n            limits:\n              memory: \"2Gi\"\n              cpu: \"2\"\n          volumeMounts:\n            - mountPath: /dev/shm\n              name: dshm\n      volumes:\n        - name: dshm\n          emptyDir:\n            medium: Memory\n            sizeLimit: 2Gi\n"
  },
  {
    "path": "kubernetes/Hub_Node/node-firefox-deployment.yaml",
    "content": "apiVersion: apps/v1\nkind: Deployment\nmetadata:\n  name: selenium-node-firefox\nspec:\n  replicas: 1\n  selector:\n    matchLabels:\n      app: selenium-node-firefox\n  template:\n    metadata:\n      labels:\n        app: selenium-node-firefox\n    spec:\n      containers:\n        - name: chrome\n          image: selenium/node-firefox:4.41.0-20260222\n          env:\n            - name: SE_EVENT_BUS_HOST\n              value: \"selenium-hub\"\n            - name: SE_NODE_SESSION_TIMEOUT\n              value: \"600\"\n            - name: SE_NODE_OVERRIDE_MAX_SESSIONS\n              value: \"true\"\n            - name: SE_REGISTRATION_SECRET\n              value: \"secret\"\n          resources:\n            requests:\n              memory: \"1Gi\"\n              cpu: \"0.5\"\n            limits:\n              memory: \"2Gi\"\n              cpu: \"2\"\n          volumeMounts:\n            - mountPath: /dev/shm\n              name: dshm\n      volumes:\n        - name: dshm\n          emptyDir:\n            medium: Memory\n            sizeLimit: 2Gi\n"
  },
  {
    "path": "kubernetes/README.md",
    "content": "## Introduction\n\nWithout using Helm chart, this is reference YAML manifest to get started deploying Selenium Grid on Kubernetes.\n"
  },
  {
    "path": "kubernetes/Standalone/standalone-chrome.yaml",
    "content": "apiVersion: apps/v1\nkind: Deployment\nmetadata:\n  name: selenium-standalone-chrome\nspec:\n  replicas: 1\n  selector:\n    matchLabels:\n      app: selenium-standalone-chrome\n  template:\n    metadata:\n      labels:\n        app: selenium-standalone-chrome\n    spec:\n      containers:\n        - name: chrome\n          image: selenium/standalone-chrome:4.41.0-20260222\n          ports:\n            - containerPort: 4444\n            - containerPort: 7900\n          env:\n            - name: SE_SESSION_REQUEST_TIMEOUT\n              value: \"600\"\n            - name: SE_ROUTER_USERNAME\n              value: \"admin\"\n            - name: SE_ROUTER_PASSWORD\n              value: \"admin\"\n            - name: SE_NODE_SESSION_TIMEOUT\n              value: \"600\"\n            - name: SE_NODE_OVERRIDE_MAX_SESSIONS\n              value: \"true\"\n          resources:\n            requests:\n              memory: \"1Gi\"\n              cpu: \"0.5\"\n            limits:\n              memory: \"4Gi\"\n              cpu: \"2\"\n          livenessProbe:\n            exec:\n              command:\n                - /bin/sh\n                - -c\n                - curl -G --fail --silent -u ${SE_ROUTER_USERNAME}:${SE_ROUTER_PASSWORD} localhost:4444/status\n            initialDelaySeconds: 30\n            timeoutSeconds: 5\n          readinessProbe:\n            httpGet:\n              path: /readyz\n              port: 4444\n            initialDelaySeconds: 30\n            timeoutSeconds: 5\n          volumeMounts:\n            - mountPath: /dev/shm\n              name: dshm\n      volumes:\n        - name: dshm\n          emptyDir:\n            medium: Memory\n            sizeLimit: 2Gi\n---\napiVersion: v1\nkind: Service\nmetadata:\n  name: selenium-standalone-chrome\nspec:\n  selector:\n    app: selenium-standalone-chrome\n  ports:\n    - name: web\n      port: 4444\n      targetPort: 4444\n      nodePort: 30444\n    - name: vnc\n      port: 7900\n      targetPort: 7900\n      nodePort: 30790\n  type: NodePort\n"
  },
  {
    "path": "kubernetes/Standalone/standalone-edge.yaml",
    "content": "apiVersion: apps/v1\nkind: Deployment\nmetadata:\n  name: selenium-standalone-edge\nspec:\n  replicas: 1\n  selector:\n    matchLabels:\n      app: selenium-standalone-edge\n  template:\n    metadata:\n      labels:\n        app: selenium-standalone-edge\n    spec:\n      containers:\n        - name: chrome\n          image: selenium/standalone-edge:4.41.0-20260222\n          ports:\n            - containerPort: 4444\n            - containerPort: 7900\n          env:\n            - name: SE_SESSION_REQUEST_TIMEOUT\n              value: \"600\"\n            - name: SE_ROUTER_USERNAME\n              value: \"admin\"\n            - name: SE_ROUTER_PASSWORD\n              value: \"admin\"\n            - name: SE_NODE_SESSION_TIMEOUT\n              value: \"600\"\n            - name: SE_NODE_OVERRIDE_MAX_SESSIONS\n              value: \"true\"\n          resources:\n            requests:\n              memory: \"1Gi\"\n              cpu: \"0.5\"\n            limits:\n              memory: \"4Gi\"\n              cpu: \"2\"\n          livenessProbe:\n            exec:\n              command:\n                - /bin/sh\n                - -c\n                - curl -G --fail --silent -u ${SE_ROUTER_USERNAME}:${SE_ROUTER_PASSWORD} localhost:4444/status\n            initialDelaySeconds: 30\n            timeoutSeconds: 5\n          readinessProbe:\n            httpGet:\n              path: /readyz\n              port: 4444\n            initialDelaySeconds: 30\n            timeoutSeconds: 5\n          volumeMounts:\n            - mountPath: /dev/shm\n              name: dshm\n      volumes:\n        - name: dshm\n          emptyDir:\n            medium: Memory\n            sizeLimit: 2Gi\n---\napiVersion: v1\nkind: Service\nmetadata:\n  name: selenium-standalone-edge\nspec:\n  selector:\n    app: selenium-standalone-edge\n  ports:\n    - name: web\n      port: 4444\n      targetPort: 4444\n      nodePort: 30445\n    - name: vnc\n      port: 7900\n      targetPort: 7900\n      nodePort: 30791\n  type: NodePort\n"
  },
  {
    "path": "kubernetes/Standalone/standalone-firefox.yaml",
    "content": "apiVersion: apps/v1\nkind: Deployment\nmetadata:\n  name: selenium-standalone-firefox\nspec:\n  replicas: 1\n  selector:\n    matchLabels:\n      app: selenium-standalone-firefox\n  template:\n    metadata:\n      labels:\n        app: selenium-standalone-firefox\n    spec:\n      containers:\n        - name: chrome\n          image: selenium/standalone-firefox:4.41.0-20260222\n          ports:\n            - containerPort: 4444\n            - containerPort: 7900\n          env:\n            - name: SE_SESSION_REQUEST_TIMEOUT\n              value: \"600\"\n            - name: SE_ROUTER_USERNAME\n              value: \"admin\"\n            - name: SE_ROUTER_PASSWORD\n              value: \"admin\"\n            - name: SE_NODE_SESSION_TIMEOUT\n              value: \"600\"\n            - name: SE_NODE_OVERRIDE_MAX_SESSIONS\n              value: \"true\"\n          resources:\n            requests:\n              memory: \"1Gi\"\n              cpu: \"0.5\"\n            limits:\n              memory: \"4Gi\"\n              cpu: \"2\"\n          livenessProbe:\n            exec:\n              command:\n                - /bin/sh\n                - -c\n                - curl -G --fail --silent -u ${SE_ROUTER_USERNAME}:${SE_ROUTER_PASSWORD} localhost:4444/status\n            initialDelaySeconds: 30\n            timeoutSeconds: 5\n          readinessProbe:\n            httpGet:\n              path: /readyz\n              port: 4444\n            initialDelaySeconds: 30\n            timeoutSeconds: 5\n          volumeMounts:\n            - mountPath: /dev/shm\n              name: dshm\n      volumes:\n        - name: dshm\n          emptyDir:\n            medium: Memory\n            sizeLimit: 2Gi\n---\napiVersion: v1\nkind: Service\nmetadata:\n  name: selenium-standalone-firefox\nspec:\n  selector:\n    app: selenium-standalone-firefox\n  ports:\n    - name: web\n      port: 4444\n      targetPort: 4444\n      nodePort: 30446\n    - name: vnc\n      port: 7900\n      targetPort: 7900\n      nodePort: 30792\n  type: NodePort\n"
  },
  {
    "path": "renovate.json",
    "content": "{\n  \"$schema\": \"https://docs.renovatebot.com/renovate-schema.json\",\n  \"extends\": [\n    \"config:recommended\"\n  ],\n  \"packageRules\": [\n    {\n      \"packageNames\": [\"selenium/standalone-firefox\"],\n      \"enabled\": false\n    },\n    {\n      \"packageNames\": [\"selenium/node-firefox\"],\n      \"enabled\": false\n    }\n  ],\n  \"branchName\": \"renovate/{{packageName}}-update\"\n}\n"
  },
  {
    "path": "tag_and_push_browser_images.sh",
    "content": "#!/usr/bin/env bash\n\nVERSION=$1\nBUILD_DATE=$2\nNAMESPACE=$3\nPUSH_IMAGE=\"${4:-false}\"\nBROWSER=$5\nRELEASE_OLD_VERSION=\"${6:-false}\"\nPLATFORM=\"${7:-linux/amd64}\"\n\nTAG_VERSION=${VERSION}-${BUILD_DATE}\nNAMESPACE=${NAME:-selenium}\n\nfunction short_version() {\n  local __long_version=$1\n  local __version_split=(${__long_version//./ })\n  echo \"${__version_split[0]}.${__version_split[1]}\"\n}\n\necho \"Tagging images for browser ${BROWSER}, version ${VERSION}, build date ${BUILD_DATE}, namespace ${NAMESPACE}\"\n\ncase \"${BROWSER}\" in\n\nchrome)\n  echo \"Selenium Grid version -> ${TAG_VERSION}\"\n  CHROME_VERSION=$(docker run --platform ${PLATFORM} --rm ${NAMESPACE}/node-chrome:${TAG_VERSION} google-chrome --version | awk '{print $3}')\n  echo \"Chrome version -> \"${CHROME_VERSION}\n  CHROME_SHORT_VERSION=\"$(short_version ${CHROME_VERSION})\"\n  echo \"Short Chrome version -> \"${CHROME_SHORT_VERSION}\n\n  CHROMEDRIVER_VERSION=$(docker run --platform ${PLATFORM} --rm ${NAMESPACE}/node-chrome:${TAG_VERSION} chromedriver --version | awk '{print $2}')\n  echo \"ChromeDriver version -> \"${CHROMEDRIVER_VERSION}\n  CHROMEDRIVER_SHORT_VERSION=\"$(short_version ${CHROMEDRIVER_VERSION})\"\n  echo \"Short ChromeDriver version -> \"${CHROMEDRIVER_SHORT_VERSION}\n\n  CHROME_TAGS=(\n    ${CHROME_VERSION}-chromedriver-${CHROMEDRIVER_VERSION}-grid-${TAG_VERSION}\n    # Browser version and browser driver version plus build date\n    ${CHROME_VERSION}-chromedriver-${CHROMEDRIVER_VERSION}-${BUILD_DATE}\n    # Browser version and build date\n    ${CHROME_VERSION}-${BUILD_DATE}\n    ## Short versions\n    ${CHROME_SHORT_VERSION}-chromedriver-${CHROMEDRIVER_SHORT_VERSION}-grid-${TAG_VERSION}\n    # Browser version and browser driver version plus build date\n    ${CHROME_SHORT_VERSION}-chromedriver-${CHROMEDRIVER_SHORT_VERSION}-${BUILD_DATE}\n    # Browser version and build date\n    ${CHROME_SHORT_VERSION}-${BUILD_DATE}\n  )\n  if [ \"${RELEASE_OLD_VERSION}\" = \"false\" ]; then\n    CHROME_TAGS+=(\n      # Browser version and browser driver version\n      ${CHROME_VERSION}-chromedriver-${CHROMEDRIVER_VERSION}\n      # Browser version\n      ${CHROME_VERSION}\n      # Browser version and browser driver version\n      ${CHROME_SHORT_VERSION}-chromedriver-${CHROMEDRIVER_SHORT_VERSION}\n      # Browser version\n      ${CHROME_SHORT_VERSION}\n    )\n  fi\n\n  for chrome_tag in \"${CHROME_TAGS[@]}\"; do\n    docker tag ${NAMESPACE}/node-chrome:${TAG_VERSION} ${NAMESPACE}/node-chrome:${chrome_tag}\n    docker tag ${NAMESPACE}/standalone-chrome:${TAG_VERSION} ${NAMESPACE}/standalone-chrome:${chrome_tag}\n    echo \"Tagged ${NAMESPACE}/node-chrome:${chrome_tag}\"\n    echo \"Tagged ${NAMESPACE}/standalone-chrome:${chrome_tag}\"\n    if [ \"${PUSH_IMAGE}\" = true ]; then\n      docker push ${NAMESPACE}/node-chrome:${chrome_tag}\n      docker push ${NAMESPACE}/standalone-chrome:${chrome_tag}\n    fi\n  done\n\n  ;;\nchromium)\n  echo \"Selenium Grid version -> ${TAG_VERSION}\"\n  CHROMIUM_VERSION=$(docker run --rm ${NAMESPACE}/node-chromium:${TAG_VERSION} chromium --version | awk '{print $2}')\n  echo \"Chromium version -> \"${CHROMIUM_VERSION}\n  CHROMIUM_SHORT_VERSION=\"$(short_version ${CHROMIUM_VERSION})\"\n  echo \"Short Chromium version -> \"${CHROMIUM_SHORT_VERSION}\n\n  CHROMEDRIVER_VERSION=$(docker run --rm ${NAMESPACE}/node-chromium:${TAG_VERSION} chromedriver --version | awk '{print $2}')\n  echo \"ChromeDriver version -> \"${CHROMEDRIVER_VERSION}\n  CHROMEDRIVER_SHORT_VERSION=\"$(short_version ${CHROMEDRIVER_VERSION})\"\n  echo \"Short ChromeDriver version -> \"${CHROMEDRIVER_SHORT_VERSION}\n\n  CHROMIUM_TAGS=(\n    ${CHROMIUM_VERSION}-chromedriver-${CHROMEDRIVER_VERSION}-grid-${TAG_VERSION}\n    # Browser version and browser driver version plus build date\n    ${CHROMIUM_VERSION}-chromedriver-${CHROMEDRIVER_VERSION}-${BUILD_DATE}\n    # Browser version and build date\n    ${CHROMIUM_VERSION}-${BUILD_DATE}\n    ## Short versions\n    ${CHROMIUM_SHORT_VERSION}-chromedriver-${CHROMEDRIVER_SHORT_VERSION}-grid-${TAG_VERSION}\n    # Browser version and browser driver version plus build date\n    ${CHROMIUM_SHORT_VERSION}-chromedriver-${CHROMEDRIVER_SHORT_VERSION}-${BUILD_DATE}\n    # Browser version and build date\n    ${CHROMIUM_SHORT_VERSION}-${BUILD_DATE}\n  )\n  if [ \"${RELEASE_OLD_VERSION}\" = \"false\" ]; then\n    CHROMIUM_TAGS+=(\n      # Browser version and browser driver version\n      ${CHROMIUM_VERSION}-chromedriver-${CHROMEDRIVER_VERSION}\n      # Browser version\n      ${CHROMIUM_VERSION}\n      # Browser version and browser driver version\n      ${CHROMIUM_SHORT_VERSION}-chromedriver-${CHROMEDRIVER_SHORT_VERSION}\n      # Browser version\n      ${CHROMIUM_SHORT_VERSION}\n    )\n  fi\n\n  for chromium_tag in \"${CHROMIUM_TAGS[@]}\"; do\n    docker tag ${NAMESPACE}/node-chromium:${TAG_VERSION} ${NAMESPACE}/node-chromium:${chromium_tag}\n    docker tag ${NAMESPACE}/standalone-chromium:${TAG_VERSION} ${NAMESPACE}/standalone-chromium:${chromium_tag}\n    echo \"Tagged ${NAMESPACE}/node-chromium:${chromium_tag}\"\n    echo \"Tagged ${NAMESPACE}/standalone-chromium:${chromium_tag}\"\n    if [ \"${PUSH_IMAGE}\" = true ]; then\n      docker push ${NAMESPACE}/node-chromium:${chromium_tag}\n      docker push ${NAMESPACE}/standalone-chromium:${chromium_tag}\n    fi\n  done\n\n  ;;\nedge)\n  echo \"Selenium Grid version -> ${TAG_VERSION}\"\n  EDGE_VERSION=$(docker run --rm ${NAMESPACE}/node-edge:${TAG_VERSION} microsoft-edge --version | awk '{print $3}')\n  echo \"Edge version -> \"${EDGE_VERSION}\n  EDGE_SHORT_VERSION=\"$(short_version ${EDGE_VERSION})\"\n  echo \"Short Edge version -> \"${EDGE_SHORT_VERSION}\n\n  EDGEDRIVER_VERSION=$(docker run --rm ${NAMESPACE}/node-edge:${TAG_VERSION} msedgedriver --version | awk '{print $4}')\n  echo \"EdgeDriver version -> \"${EDGEDRIVER_VERSION}\n  EDGEDRIVER_SHORT_VERSION=\"$(short_version ${EDGEDRIVER_VERSION})\"\n  echo \"Short EdgeDriver version -> \"${EDGEDRIVER_SHORT_VERSION}\n\n  EDGE_TAGS=(\n    ${EDGE_VERSION}-edgedriver-${EDGEDRIVER_VERSION}-grid-${TAG_VERSION}\n    # Browser version and browser driver version plus build date\n    ${EDGE_VERSION}-edgedriver-${EDGEDRIVER_VERSION}-${BUILD_DATE}\n    # Browser version and build date\n    ${EDGE_VERSION}-${BUILD_DATE}\n    ## Short versions\n    ${EDGE_SHORT_VERSION}-edgedriver-${EDGEDRIVER_SHORT_VERSION}-grid-${TAG_VERSION}\n    # Browser version and browser driver version plus build date\n    ${EDGE_SHORT_VERSION}-edgedriver-${EDGEDRIVER_SHORT_VERSION}-${BUILD_DATE}\n    # Browser version and build date\n    ${EDGE_SHORT_VERSION}-${BUILD_DATE}\n  )\n  if [ \"${RELEASE_OLD_VERSION}\" = \"false\" ]; then\n    EDGE_TAGS+=(\n      # Browser version and browser driver version\n      ${EDGE_VERSION}-edgedriver-${EDGEDRIVER_VERSION}\n      # Browser version\n      ${EDGE_VERSION}\n      # Browser version and browser driver version\n      ${EDGE_SHORT_VERSION}-edgedriver-${EDGEDRIVER_SHORT_VERSION}\n      # Browser version\n      ${EDGE_SHORT_VERSION}\n    )\n  fi\n\n  for edge_tag in \"${EDGE_TAGS[@]}\"; do\n    docker tag ${NAMESPACE}/node-edge:${TAG_VERSION} ${NAMESPACE}/node-edge:${edge_tag}\n    docker tag ${NAMESPACE}/standalone-edge:${TAG_VERSION} ${NAMESPACE}/standalone-edge:${edge_tag}\n    echo \"Tagged ${NAMESPACE}/node-edge:${edge_tag}\"\n    echo \"Tagged ${NAMESPACE}/standalone-edge:${edge_tag}\"\n    if [ \"${PUSH_IMAGE}\" = true ]; then\n      docker push ${NAMESPACE}/node-edge:${edge_tag}\n      docker push ${NAMESPACE}/standalone-edge:${edge_tag}\n    fi\n  done\n\n  ;;\nfirefox)\n  echo \"Selenium Grid version -> ${TAG_VERSION}\"\n  FIREFOX_VERSION=$(docker run --rm ${NAMESPACE}/node-firefox:${TAG_VERSION} firefox --version | awk '{print $3}')\n  echo \"Firefox version -> \"${FIREFOX_VERSION}\n  FIREFOX_SHORT_VERSION=\"$(short_version ${FIREFOX_VERSION})\"\n  echo \"Short Firefox version -> \"${FIREFOX_SHORT_VERSION}\n  GECKODRIVER_VERSION=$(docker run --rm ${NAMESPACE}/node-firefox:${TAG_VERSION} geckodriver --version | awk 'NR==1{print $2}')\n  echo \"GeckoDriver version -> \"${GECKODRIVER_VERSION}\n  GECKODRIVER_SHORT_VERSION=\"$(short_version ${GECKODRIVER_VERSION})\"\n  echo \"Short GeckoDriver version -> \"${GECKODRIVER_SHORT_VERSION}\n\n  FIREFOX_TAGS=(\n    ${FIREFOX_VERSION}-geckodriver-${GECKODRIVER_VERSION}-grid-${TAG_VERSION}\n    # Browser version and browser driver version plus build date\n    ${FIREFOX_VERSION}-geckodriver-${GECKODRIVER_VERSION}-${BUILD_DATE}\n    # Browser version and build date\n    ${FIREFOX_VERSION}-${BUILD_DATE}\n    ## Short versions\n    ${FIREFOX_SHORT_VERSION}-geckodriver-${GECKODRIVER_SHORT_VERSION}-grid-${TAG_VERSION}\n    # Browser version and browser driver version plus build date\n    ${FIREFOX_SHORT_VERSION}-geckodriver-${GECKODRIVER_SHORT_VERSION}-${BUILD_DATE}\n    # Browser version and build date\n    ${FIREFOX_SHORT_VERSION}-${BUILD_DATE}\n  )\n  if [ \"${RELEASE_OLD_VERSION}\" = \"false\" ]; then\n    FIREFOX_TAGS+=(\n      # Browser version and browser driver version\n      ${FIREFOX_VERSION}-geckodriver-${GECKODRIVER_VERSION}\n      # Browser version\n      ${FIREFOX_VERSION}\n      # Browser version and browser driver version\n      ${FIREFOX_SHORT_VERSION}-geckodriver-${GECKODRIVER_SHORT_VERSION}\n      # Browser version\n      ${FIREFOX_SHORT_VERSION}\n    )\n  fi\n\n  for firefox_tag in \"${FIREFOX_TAGS[@]}\"; do\n    docker tag ${NAMESPACE}/node-firefox:${TAG_VERSION} ${NAMESPACE}/node-firefox:${firefox_tag}\n    docker tag ${NAMESPACE}/standalone-firefox:${TAG_VERSION} ${NAMESPACE}/standalone-firefox:${firefox_tag}\n    echo \"Tagged ${NAMESPACE}/node-firefox:${firefox_tag}\"\n    echo \"Tagged ${NAMESPACE}/standalone-firefox:${firefox_tag}\"\n    if [ \"${PUSH_IMAGE}\" = true ]; then\n      docker push ${NAMESPACE}/node-firefox:${firefox_tag}\n      docker push ${NAMESPACE}/standalone-firefox:${firefox_tag}\n    fi\n  done\n\n  ;;\nchrome-for-testing)\n  echo \"Selenium Grid version -> ${TAG_VERSION}\"\n  CHROME_VERSION=$(docker run --platform ${PLATFORM} --rm ${NAMESPACE}/node-chrome-for-testing:${TAG_VERSION} google-chrome --version | awk '{print $5}')\n  echo \"Chrome for Testing version -> \"${CHROME_VERSION}\n  CHROME_SHORT_VERSION=\"$(short_version ${CHROME_VERSION})\"\n  echo \"Short Chrome for Testing version -> \"${CHROME_SHORT_VERSION}\n\n  CHROMEDRIVER_VERSION=$(docker run --platform ${PLATFORM} --rm ${NAMESPACE}/node-chrome-for-testing:${TAG_VERSION} chromedriver --version | awk '{print $2}')\n  echo \"ChromeDriver version -> \"${CHROMEDRIVER_VERSION}\n  CHROMEDRIVER_SHORT_VERSION=\"$(short_version ${CHROMEDRIVER_VERSION})\"\n  echo \"Short ChromeDriver version -> \"${CHROMEDRIVER_SHORT_VERSION}\n\n  CHROME_TAGS=(\n    ${CHROME_VERSION}-chromedriver-${CHROMEDRIVER_VERSION}-grid-${TAG_VERSION}\n    # Browser version and browser driver version plus build date\n    ${CHROME_VERSION}-chromedriver-${CHROMEDRIVER_VERSION}-${BUILD_DATE}\n    # Browser version and build date\n    ${CHROME_VERSION}-${BUILD_DATE}\n    ## Short versions\n    ${CHROME_SHORT_VERSION}-chromedriver-${CHROMEDRIVER_SHORT_VERSION}-grid-${TAG_VERSION}\n    # Browser version and browser driver version plus build date\n    ${CHROME_SHORT_VERSION}-chromedriver-${CHROMEDRIVER_SHORT_VERSION}-${BUILD_DATE}\n    # Browser version and build date\n    ${CHROME_SHORT_VERSION}-${BUILD_DATE}\n  )\n  if [ \"${RELEASE_OLD_VERSION}\" = \"false\" ]; then\n    CHROME_TAGS+=(\n      # Browser version and browser driver version\n      ${CHROME_VERSION}-chromedriver-${CHROMEDRIVER_VERSION}\n      # Browser version\n      ${CHROME_VERSION}\n      # Browser version and browser driver version\n      ${CHROME_SHORT_VERSION}-chromedriver-${CHROMEDRIVER_SHORT_VERSION}\n      # Browser version\n      ${CHROME_SHORT_VERSION}\n    )\n  fi\n\n  for chrome_tag in \"${CHROME_TAGS[@]}\"; do\n    docker tag ${NAMESPACE}/node-chrome-for-testing:${TAG_VERSION} ${NAMESPACE}/node-chrome-for-testing:${chrome_tag}\n    docker tag ${NAMESPACE}/standalone-chrome-for-testing:${TAG_VERSION} ${NAMESPACE}/standalone-chrome-for-testing:${chrome_tag}\n    echo \"Tagged ${NAMESPACE}/node-chrome-for-testing:${chrome_tag}\"\n    echo \"Tagged ${NAMESPACE}/standalone-chrome-for-testing:${chrome_tag}\"\n    if [ \"${PUSH_IMAGE}\" = true ]; then\n      docker push ${NAMESPACE}/node-chrome-for-testing:${chrome_tag}\n      docker push ${NAMESPACE}/standalone-chrome-for-testing:${chrome_tag}\n    fi\n  done\n\n  ;;\n*)\n  echo \"Unknown browser!\"\n  ;;\nesac\n"
  },
  {
    "path": "tests/.dockerignore",
    "content": "docker-selenium-tests\n.env\nvideos\n"
  },
  {
    "path": "tests/AutoscalingTests/__init__.py",
    "content": ""
  },
  {
    "path": "tests/AutoscalingTests/common.py",
    "content": "import concurrent.futures\nimport csv\nimport os\nimport random\nimport signal\nimport subprocess\nimport time\nimport unittest\n\nfrom csv2md.table import Table\nfrom selenium import webdriver\nfrom selenium.webdriver.chrome.options import Options as ChromeOptions\nfrom selenium.webdriver.edge.options import Options as EdgeOptions\nfrom selenium.webdriver.firefox.options import Options as FirefoxOptions\nfrom selenium.webdriver.remote.client_config import ClientConfig\n\nBROWSER = {\n    \"chrome\": ChromeOptions(),\n    \"firefox\": FirefoxOptions(),\n    \"edge\": EdgeOptions(),\n}\n\nREMOTE_SERVER_ADDR = os.getenv(\"REMOTE_SERVER_ADDR\", \"http://localhost/selenium/wd/hub\")\n\nCLIENT_CONFIG = ClientConfig(\n    remote_server_addr=REMOTE_SERVER_ADDR,\n    keep_alive=True,\n    timeout=3600,\n)\n\nFIELD_NAMES = [\n    \"Iteration\",\n    \"New request sessions\",\n    \"Sessions created time\",\n    \"Sessions failed to create\",\n    \"New pods scaled up\",\n    \"Total running sessions\",\n    \"Total running pods\",\n    \"Max sessions per pod\",\n    \"Gaps\",\n    \"Sessions closed\",\n]\n\n\ndef get_pod_count():\n    result = subprocess.run([\"kubectl\", \"get\", \"pods\", \"-A\", \"--no-headers\"], capture_output=True, text=True)\n    return len([line for line in result.stdout.splitlines() if \"selenium-node-\" in line and \"Running\" in line])\n\n\ndef create_session(browser_name):\n    options = BROWSER[browser_name]\n    options.set_capability(\"platformName\", \"Linux\")\n    driver = webdriver.Remote(\n        command_executor=CLIENT_CONFIG.remote_server_addr, options=options, client_config=CLIENT_CONFIG\n    )\n    print(f\"Session created: {driver.session_id} ({browser_name})\")\n    return driver\n\n\ndef wait_for_count_matches(sessions, timeout=10, interval=5):\n    elapsed = 0\n    while elapsed < timeout:\n        pod_count = get_pod_count()\n        if pod_count == len(sessions):\n            break\n        print(f\"VALIDATING: Waiting for pods to match sessions... ({elapsed}/{timeout} seconds elapsed)\")\n        time.sleep(interval)\n        elapsed += interval\n    if pod_count != len(sessions):\n        print(\n            f\"WARN: Mismatch between pod count and session count after {timeout} seconds. Gaps: {pod_count - len(sessions)}\"\n        )\n    else:\n        print(f\"PASS: Pod count matches session count after {elapsed} seconds.\")\n\n\ndef close_all_sessions(sessions):\n    for session in sessions:\n        session.quit()\n    sessions.clear()\n    return sessions\n\n\ndef create_sessions_in_parallel(new_request_sessions):\n    failed_jobs = 0\n    with concurrent.futures.ThreadPoolExecutor() as executor:\n        futures = [\n            executor.submit(create_session, random.choice(list(BROWSER.keys()))) for _ in range(new_request_sessions)\n        ]\n        sessions = []\n        for future in concurrent.futures.as_completed(futures):\n            try:\n                sessions.append(future.result())\n            except Exception as e:\n                print(f\"ERROR: Failed to create session: {e}\")\n                failed_jobs += 1\n    print(f\"Total failed jobs: {failed_jobs}\")\n    return sessions\n\n\ndef randomly_quit_sessions(sessions, sublist_size):\n    if sessions:\n        sessions_to_quit = random.sample(sessions, min(sublist_size, len(sessions)))\n        for session in sessions_to_quit:\n            session.quit()\n            sessions.remove(session)\n        print(f\"QUIT: {len(sessions_to_quit)} sessions have been randomly quit.\")\n        return len(sessions_to_quit)\n    return 0\n\n\ndef get_result_file_name():\n    return f\"tests/autoscaling_results\"\n\n\ndef export_results_to_csv(output_file, field_names, results):\n    with open(output_file, mode=\"w\") as csvfile:\n        writer = csv.DictWriter(csvfile, fieldnames=field_names)\n        writer.writeheader()\n        writer.writerows(results)\n\n\ndef export_results_csv_to_md(csv_file, md_file):\n    with open(csv_file) as f:\n        table = Table.parse_csv(f)\n    with open(md_file, mode=\"w\") as f:\n        f.write(table.markdown())\n"
  },
  {
    "path": "tests/AutoscalingTests/test_scale_chaos.py",
    "content": "import csv\nimport random\nimport signal\nimport time\nimport unittest\n\nfrom csv2md.table import Table\n\nfrom .common import *\n\nSESSIONS = []\nRESULTS = []\nTEST_NODE_MAX_SESSIONS = int(os.getenv(\"TEST_NODE_MAX_SESSIONS\", 1))\nTEST_AUTOSCALING_ITERATIONS = int(os.getenv(\"TEST_AUTOSCALING_ITERATIONS\", 20))\n\n\ndef signal_handler(signum, frame):\n    print(\"Signal received, quitting all sessions...\")\n    close_all_sessions(SESSIONS)\n\n\nsignal.signal(signal.SIGTERM, signal_handler)\nsignal.signal(signal.SIGINT, signal_handler)\n\n\nclass SeleniumAutoscalingTests(unittest.TestCase):\n    def test_run_tests(self):\n        try:\n            for iteration in range(TEST_AUTOSCALING_ITERATIONS):\n                new_request_sessions = random.randint(3, 6)\n                start_time = time.time()\n                start_pods = get_pod_count()\n                new_sessions = create_sessions_in_parallel(new_request_sessions)\n                failed_sessions = new_request_sessions - len(new_sessions)\n                end_time = time.time()\n                stop_pods = get_pod_count()\n                SESSIONS.extend(new_sessions)\n                elapsed_time = end_time - start_time\n                new_scaled_pods = stop_pods - start_pods\n                total_sessions = len(SESSIONS)\n                total_pods = get_pod_count()\n                print(f\"ADDING: Created {new_request_sessions} new sessions in {elapsed_time:.2f} seconds.\")\n                print(f\"INFO: Total sessions: {total_sessions}\")\n                print(f\"INFO: Total pods: {total_pods}\")\n                closed_session = randomly_quit_sessions(SESSIONS, random.randint(3, 12))\n                RESULTS.append(\n                    {\n                        FIELD_NAMES[0]: iteration + 1,\n                        FIELD_NAMES[1]: new_request_sessions,\n                        FIELD_NAMES[2]: f\"{elapsed_time:.2f} s\",\n                        FIELD_NAMES[3]: failed_sessions,\n                        FIELD_NAMES[4]: new_scaled_pods,\n                        FIELD_NAMES[5]: total_sessions,\n                        FIELD_NAMES[6]: total_pods,\n                        FIELD_NAMES[7]: TEST_NODE_MAX_SESSIONS,\n                        FIELD_NAMES[8]: (total_pods * TEST_NODE_MAX_SESSIONS) - total_sessions,\n                        FIELD_NAMES[9]: closed_session,\n                    }\n                )\n                time.sleep(15)\n        finally:\n            print(f\"FINISH: Closing {len(SESSIONS)} sessions.\")\n            close_all_sessions(SESSIONS)\n            output_file = get_result_file_name()\n            export_results_to_csv(f\"{output_file}.csv\", FIELD_NAMES, RESULTS)\n            export_results_csv_to_md(f\"{output_file}.csv\", f\"{output_file}.md\")\n\n\nif __name__ == \"__main__\":\n    unittest.main()\n"
  },
  {
    "path": "tests/AutoscalingTests/test_scale_up.py",
    "content": "import csv\nimport random\nimport signal\nimport time\nimport unittest\n\nfrom csv2md.table import Table\n\nfrom .common import *\n\nSESSIONS = []\nRESULTS = []\nTEST_NODE_MAX_SESSIONS = int(os.getenv(\"TEST_NODE_MAX_SESSIONS\", 1))\nTEST_AUTOSCALING_ITERATIONS = int(os.getenv(\"TEST_AUTOSCALING_ITERATIONS\", 20))\n\n\ndef signal_handler(signum, frame):\n    print(\"Signal received, quitting all sessions...\")\n    close_all_sessions(SESSIONS)\n\n\nsignal.signal(signal.SIGTERM, signal_handler)\nsignal.signal(signal.SIGINT, signal_handler)\n\n\nclass SeleniumAutoscalingTests(unittest.TestCase):\n    def test_run_tests(self):\n        try:\n            for iteration in range(TEST_AUTOSCALING_ITERATIONS):\n                new_request_sessions = random.randint(1, 3)\n                start_time = time.time()\n                start_pods = get_pod_count()\n                new_sessions = create_sessions_in_parallel(new_request_sessions)\n                failed_sessions = new_request_sessions - len(new_sessions)\n                end_time = time.time()\n                stop_pods = get_pod_count()\n                SESSIONS.extend(new_sessions)\n                elapsed_time = end_time - start_time\n                new_scaled_pods = stop_pods - start_pods\n                total_sessions = len(SESSIONS)\n                total_pods = get_pod_count()\n                print(f\"ADDING: Created {new_request_sessions} new sessions in {elapsed_time:.2f} seconds.\")\n                print(f\"INFO: Total sessions: {total_sessions}\")\n                print(f\"INFO: Total pods: {total_pods}\")\n                if iteration % 5 == 0:\n                    closed_session = randomly_quit_sessions(SESSIONS, 20)\n                else:\n                    closed_session = 0\n                RESULTS.append(\n                    {\n                        FIELD_NAMES[0]: iteration + 1,\n                        FIELD_NAMES[1]: new_request_sessions,\n                        FIELD_NAMES[2]: f\"{elapsed_time:.2f} s\",\n                        FIELD_NAMES[3]: failed_sessions,\n                        FIELD_NAMES[4]: new_scaled_pods,\n                        FIELD_NAMES[5]: total_sessions,\n                        FIELD_NAMES[6]: total_pods,\n                        FIELD_NAMES[7]: TEST_NODE_MAX_SESSIONS,\n                        FIELD_NAMES[8]: (total_pods * TEST_NODE_MAX_SESSIONS) - total_sessions,\n                        FIELD_NAMES[9]: closed_session,\n                    }\n                )\n                time.sleep(15)\n        finally:\n            print(f\"FINISH: Closing {len(SESSIONS)} sessions.\")\n            close_all_sessions(SESSIONS)\n            output_file = get_result_file_name()\n            export_results_to_csv(f\"{output_file}.csv\", FIELD_NAMES, RESULTS)\n            export_results_csv_to_md(f\"{output_file}.csv\", f\"{output_file}.md\")\n\n\nif __name__ == \"__main__\":\n    unittest.main()\n"
  },
  {
    "path": "tests/CDPTests/.gitignore",
    "content": "node_modules/\n/test-results/\n/playwright-report/\n/playwright/.cache/\n.idea/\n.vscode/\njsonReports/\npackage-lock.json\n"
  },
  {
    "path": "tests/CDPTests/bootstrap.sh",
    "content": "#!/usr/bin/env bash\n\ncd tests/CDPTests || true\n\nnpm install\nnpx playwright install --force chromium\n\nBROWSER=${1:-\"chrome\"}\nauth_header=()\n\nSELENIUM_REMOTE_URL=\"${SELENIUM_GRID_PROTOCOL}://${SELENIUM_GRID_HOST}:${SELENIUM_GRID_PORT}\"\necho \"SELENIUM_REMOTE_URL=${SELENIUM_REMOTE_URL}\" > .env\n\nif [ -n \"${SELENIUM_GRID_USERNAME}\" ] && [ -n \"${SELENIUM_GRID_PASSWORD}\" ]; then\n  BASIC_AUTH=\"$(echo -en \"${SELENIUM_GRID_USERNAME}:${SELENIUM_GRID_PASSWORD}\" | base64 -w0)\"\n  echo \"SELENIUM_REMOTE_HEADERS={\\\"Authorization\\\": \\\"Basic ${BASIC_AUTH}\\\"}\" >> .env\n  auth_header=(-H \"Authorization: Basic ${BASIC_AUTH}\")\nfi\n\necho \"SELENIUM_REMOTE_CAPABILITIES={\\\"browserName\\\": \\\"${BROWSER}\\\", \\\"platformName\\\": \\\"Linux\\\"}\" >> .env\necho \"NODE_EXTRA_CA_CERTS=${CHART_CERT_PATH}\" >> .env\n\ncat .env\n\nstart_time=$(date +%s)\nuntil [ \"$(curl --noproxy \"*\" -sk \"${auth_header[@]}\" -o /dev/null -w \"%{http_code}\" \"${SELENIUM_REMOTE_URL}/status\")\" = \"200\" ]; do\n  current_time=$(date +%s)\n  elapsed_time=$((current_time - start_time))\n  if [ $elapsed_time -ge 400 ]; then\n    echo \"Timeout reached: Grid is not ready after 5 minutes.\"\n    exit 1\n  fi\n  echo \"Waiting for Grid to be ready...\"\n  sleep 1\ndone\n\nnpx playwright test\n"
  },
  {
    "path": "tests/CDPTests/package.json",
    "content": "{\n  \"name\": \"CDPTests\",\n  \"version\": \"1.47.2\",\n  \"main\": \"index.js\",\n  \"scripts\": {},\n  \"keywords\": [],\n  \"author\": \"\",\n  \"license\": \"ISC\",\n  \"devDependencies\": {\n    \"@playwright/test\": \"^1.47.2\"\n  },\n  \"directories\": {\n    \"test\": \"tests\"\n  },\n  \"dependencies\": {\n    \"dotenv\": \"^16.3.1\",\n    \"express\": \"^4.18.2\",\n    \"playwright-core\": \"^1.47.2\"\n  },\n  \"description\": \"\"\n}\n"
  },
  {
    "path": "tests/CDPTests/playwright.config.ts",
    "content": "import type {PlaywrightTestConfig} from '@playwright/test';\nimport * as dotenv from 'dotenv';\n\ndotenv.config();\n\nconst config: PlaywrightTestConfig = {\n    timeout: 1500000,\n    testMatch: [\"tests/*.ts\"],\n    use: {\n        headless: false,\n        screenshot: \"on\",\n        video: \"on\"\n    },\n    reporter: [[\"dot\"], [\"json\", {\n        outputFile: \"jsonReports/jsonReport.json\"\n    }], [\"html\", {\n        open: \"never\"\n    }]],\n    workers: 5\n};\n\nexport default config;\n"
  },
  {
    "path": "tests/CDPTests/tests/Tests.ts",
    "content": "const {test, expect} = require('@playwright/test');\nconst path = require('path');\n\n// Get test site URL from environment variable or use default\nconst TEST_SITE = process.env.TEST_SITE || 'the-internet.herokuapp.com';\n\nfunction sleep(ms: number) {\n    return new Promise(resolve => setTimeout(resolve, ms));\n}\n\ntest.describe.parallel('Parallel tests connect to autoscaling Grid', () => {\n    test('test_title', async ({page}) => {\n        await page.goto(`http://${TEST_SITE}`);\n        await expect(page).toHaveTitle('The Internet');\n        await sleep(2);\n    });\n\n    test('test_with_frames', async ({page}) => {\n        await page.goto(`http://${TEST_SITE}/nested_frames`);\n        const frame = page.frameLocator('frame[name=\"frame-top\"]').frameLocator('frame[name=\"frame-middle\"]');\n        await expect(frame.locator('#content')).toHaveText('MIDDLE');\n        await sleep(2);\n    });\n\n    test('test_select_from_a_dropdown', async ({page}) => {\n        await page.goto(`http://${TEST_SITE}/dropdown`);\n        const dropdown = await page.locator('#dropdown');\n        await dropdown.selectOption({label: 'Option 1'});\n        const selectedOption = await dropdown.inputValue();\n        expect(selectedOption).toBe('1');\n        await sleep(2);\n    });\n\n    test('test_visit_basic_auth_secured_page', async ({page}) => {\n        await page.goto(`http://admin:admin@${TEST_SITE}/basic_auth`);\n        const pageMessage = await page.locator('.example p').textContent();\n        expect(pageMessage.trim()).toBe('Congratulations! You must have the proper credentials.');\n        await sleep(2);\n    });\n\n    test('test_download_file', async ({page}) => {\n        await page.goto(`http://${TEST_SITE}/download`);\n        const fileLink = page.locator('a', {hasText: 'some-file.txt'});\n        await fileLink.scrollIntoViewIfNeeded();\n        const [download] = await Promise.all([\n            page.waitForEvent('download'),\n            fileLink.click()\n        ]);\n        const fileName = download.suggestedFilename();\n        expect(fileName).toBe('some-file.txt');\n        await sleep(2);\n    });\n});\n"
  },
  {
    "path": "tests/Dockerfile",
    "content": "FROM python:3.14-slim\n\nWORKDIR /usr/src/app\n\nCOPY . .\n"
  },
  {
    "path": "tests/Dockerfile.emulator",
    "content": "ARG ANDROID_BASED_NAME\nARG ANDROID_BASED_IMAGE\nARG ANDROID_BASED_TAG\nFROM ${ANDROID_BASED_NAME}/${ANDROID_BASED_IMAGE}:${ANDROID_BASED_TAG} AS android_based\n\nARG CHROME_DRIVER_URL\n# Download appium chromedriver\nRUN wget -O /tmp/chromedriver.zip ${CHROME_DRIVER_URL} \\\n  && rm -rf ~/.appium/node_modules/appium-uiautomator2-driver/node_modules/appium-chromedriver/chromedriver/linux \\\n  && mkdir -p ~/.appium/node_modules/appium-uiautomator2-driver/node_modules/appium-chromedriver/chromedriver/linux \\\n  && unzip /tmp/chromedriver.zip -d ~/.appium/node_modules/appium-uiautomator2-driver/node_modules/appium-chromedriver/chromedriver/linux \\\n  && ~/.appium/node_modules/appium-uiautomator2-driver/node_modules/appium-chromedriver/chromedriver/linux/chromedriver --version \\\n  && rm -rf /tmp/chromedriver.zip\n"
  },
  {
    "path": "tests/README.md",
    "content": "Run test in [AutoscalingTest](./AutoscalingTests)\n\nInstall dependencies to virtual environment or system wide.\n```bash\npython3 -m pip install -r requirements.txt\n```\n\nRun tests with the following commands.\n\n```bash\nREMOTE_SERVER_ADDR=\"http://$(hostname -I | cut -d' ' -f1)/selenium/wd/hub\" \\\npython3 -m unittest AutoscalingTests.test_scale_chaos\n```\n\n```bash\nREMOTE_SERVER_ADDR=\"http://$(hostname -I | cut -d' ' -f1)/selenium/wd/hub\" \\\npython3 -m unittest AutoscalingTests.test_scale_up\n```\n"
  },
  {
    "path": "tests/SeleniumJavaTests/.gitignore",
    "content": "# Gradle\n.gradle/\nbuild/\n!gradle/wrapper/gradle-wrapper.jar\n\n# IDEs\n.idea/\n*.iml\n*.ipr\n*.iws\n.vscode/\n*.sw?\n\n# OS files\n.DS_Store\nThumbs.db\n\n# Logs\n*.log\n\n# Java\n*.class\n\n# Others\nout/"
  },
  {
    "path": "tests/SeleniumJavaTests/README.md",
    "content": "# Selenium Java Tests\n\nThis project contains Selenium tests that connect to a Selenium Grid using RemoteWebDriver with modern builder pattern and ClientConfig.\n\n## Prerequisites\n- JDK 17 installed\n- Selenium Grid running on `http://localhost:4444`\n- Chrome browser available in the grid\n\n## How to run the test\n\n1. Start Selenium Grid (e.g., using Docker):\n   ```bash\n   docker run --rm --name standalone -d -p 4444:4444 selenium/standalone-chromium:latest\n   ```\n\n2. From this directory, run:\n   ```bash\n   export BROWSER=chrome\n   export GRID_URL=http://localhost:4444/wd/hub\n   ./gradlew clean test\n   ```\n\nThis will launch a simple Selenium test that opens AUT using RemoteWebDriver connected to the Selenium Grid.\n"
  },
  {
    "path": "tests/SeleniumJavaTests/bootstrap_java.sh",
    "content": "#!/bin/bash\n\n# Usage: ./bootstrap_java.sh [BROWSER] [IMAGE_NAME] [GRID_URL]\nBROWSER=\"${1:-\"chrome\"}\"\nIMAGE_NAME=\"${2:-\"standalone-chrome\"}\"\nGRID_URL=\"${3:-\"http://localhost:4444\"}\"\nNAMESPACE=\"${NAMESPACE:-\"selenium\"}\"\nVERSION=\"${VERSION:-\"latest\"}\"\n\nfunction cleanup {\n  echo \"Stopping the Selenium Grid container...\"\n  docker rm -f standalone || true\n  docker rm -f the-internet || true\n  docker network rm standalone || true\n  exit $exit_code\n}\n\ntrap cleanup EXIT\n\n# Change to the test directory relative to the project root\ncd \"$(dirname \"$0\")\"\n\ndocker network create standalone\ndocker run --rm --name the-internet -d --network standalone \"ndviet/the-internet:latest\"\ndocker run --rm --name standalone -d --network standalone -p 4444:4444 \"${NAMESPACE}/${IMAGE_NAME}:${VERSION}\"\n\nuntil curl -s \"${GRID_URL}/status\" | grep -q 'Selenium Grid ready'; do\n  echo \"Waiting for Selenium Grid to be ready...\"\n  sleep 2\ndone\necho \"Selenium Grid is ready.\"\n\necho \"Running tests with Selenium Grid at ${GRID_URL}\"\n\nexport GRID_URL=\"${GRID_URL}\"\nexport BROWSER=\"${BROWSER}\"\nexport TEST_SITE=\"the-internet:5000\"\n./gradlew clean test\nexit_code=$?"
  },
  {
    "path": "tests/SeleniumJavaTests/build.gradle",
    "content": "plugins {\n    id 'java'\n}\n\njava {\n    toolchain {\n        languageVersion = JavaLanguageVersion.of(17)\n    }\n}\n\ngroup = 'dev.selenium'\nversion = '1.0-SNAPSHOT'\n\nrepositories {\n    mavenCentral()\n}\n\ndependencies {\n    testImplementation 'org.seleniumhq.selenium:selenium-java:+'\n    testImplementation 'org.junit.jupiter:junit-jupiter:5.10.2'\n}\n\ntest {\n    useJUnitPlatform()\n} "
  },
  {
    "path": "tests/SeleniumJavaTests/gradle/wrapper/gradle-wrapper.properties",
    "content": "distributionBase=GRADLE_USER_HOME\ndistributionPath=wrapper/dists\ndistributionUrl=https\\://services.gradle.org/distributions/gradle-8.14.2-bin.zip\nnetworkTimeout=10000\nvalidateDistributionUrl=true\nzipStoreBase=GRADLE_USER_HOME\nzipStorePath=wrapper/dists\n"
  },
  {
    "path": "tests/SeleniumJavaTests/gradlew",
    "content": "#!/bin/sh\n\n#\n# Copyright © 2015-2021 the original authors.\n#\n# Licensed under the Apache License, Version 2.0 (the \"License\");\n# you may not use this file except in compliance with the License.\n# You may obtain a copy of the License at\n#\n#      https://www.apache.org/licenses/LICENSE-2.0\n#\n# Unless required by applicable law or agreed to in writing, software\n# distributed under the License is distributed on an \"AS IS\" BASIS,\n# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n# See the License for the specific language governing permissions and\n# limitations under the License.\n#\n# SPDX-License-Identifier: Apache-2.0\n#\n\n##############################################################################\n#\n#   Gradle start up script for POSIX generated by Gradle.\n#\n#   Important for running:\n#\n#   (1) You need a POSIX-compliant shell to run this script. If your /bin/sh is\n#       noncompliant, but you have some other compliant shell such as ksh or\n#       bash, then to run this script, type that shell name before the whole\n#       command line, like:\n#\n#           ksh Gradle\n#\n#       Busybox and similar reduced shells will NOT work, because this script\n#       requires all of these POSIX shell features:\n#         * functions;\n#         * expansions «$var», «${var}», «${var:-default}», «${var+SET}»,\n#           «${var#prefix}», «${var%suffix}», and «$( cmd )»;\n#         * compound commands having a testable exit status, especially «case»;\n#         * various built-in commands including «command», «set», and «ulimit».\n#\n#   Important for patching:\n#\n#   (2) This script targets any POSIX shell, so it avoids extensions provided\n#       by Bash, Ksh, etc; in particular arrays are avoided.\n#\n#       The \"traditional\" practice of packing multiple parameters into a\n#       space-separated string is a well documented source of bugs and security\n#       problems, so this is (mostly) avoided, by progressively accumulating\n#       options in \"$@\", and eventually passing that to Java.\n#\n#       Where the inherited environment variables (DEFAULT_JVM_OPTS, JAVA_OPTS,\n#       and GRADLE_OPTS) rely on word-splitting, this is performed explicitly;\n#       see the in-line comments for details.\n#\n#       There are tweaks for specific operating systems such as AIX, CygWin,\n#       Darwin, MinGW, and NonStop.\n#\n#   (3) This script is generated from the Groovy template\n#       https://github.com/gradle/gradle/blob/HEAD/platforms/jvm/plugins-application/src/main/resources/org/gradle/api/internal/plugins/unixStartScript.txt\n#       within the Gradle project.\n#\n#       You can find Gradle at https://github.com/gradle/gradle/.\n#\n##############################################################################\n\n# Attempt to set APP_HOME\n\n# Resolve links: $0 may be a link\napp_path=$0\n\n# Need this for daisy-chained symlinks.\nwhile\n    APP_HOME=${app_path%\"${app_path##*/}\"}  # leaves a trailing /; empty if no leading path\n    [ -h \"$app_path\" ]\ndo\n    ls=$( ls -ld \"$app_path\" )\n    link=${ls#*' -> '}\n    case $link in             #(\n      /*)   app_path=$link ;; #(\n      *)    app_path=$APP_HOME$link ;;\n    esac\ndone\n\n# This is normally unused\n# shellcheck disable=SC2034\nAPP_BASE_NAME=${0##*/}\n# Discard cd standard output in case $CDPATH is set (https://github.com/gradle/gradle/issues/25036)\nAPP_HOME=$( cd -P \"${APP_HOME:-./}\" > /dev/null && printf '%s\\n' \"$PWD\" ) || exit\n\n# Use the maximum available, or set MAX_FD != -1 to use that value.\nMAX_FD=maximum\n\nwarn () {\n    echo \"$*\"\n} >&2\n\ndie () {\n    echo\n    echo \"$*\"\n    echo\n    exit 1\n} >&2\n\n# OS specific support (must be 'true' or 'false').\ncygwin=false\nmsys=false\ndarwin=false\nnonstop=false\ncase \"$( uname )\" in                #(\n  CYGWIN* )         cygwin=true  ;; #(\n  Darwin* )         darwin=true  ;; #(\n  MSYS* | MINGW* )  msys=true    ;; #(\n  NONSTOP* )        nonstop=true ;;\nesac\n\nCLASSPATH=\"\\\\\\\"\\\\\\\"\"\n\n\n# Determine the Java command to use to start the JVM.\nif [ -n \"$JAVA_HOME\" ] ; then\n    if [ -x \"$JAVA_HOME/jre/sh/java\" ] ; then\n        # IBM's JDK on AIX uses strange locations for the executables\n        JAVACMD=$JAVA_HOME/jre/sh/java\n    else\n        JAVACMD=$JAVA_HOME/bin/java\n    fi\n    if [ ! -x \"$JAVACMD\" ] ; then\n        die \"ERROR: JAVA_HOME is set to an invalid directory: $JAVA_HOME\n\nPlease set the JAVA_HOME variable in your environment to match the\nlocation of your Java installation.\"\n    fi\nelse\n    JAVACMD=java\n    if ! command -v java >/dev/null 2>&1\n    then\n        die \"ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH.\n\nPlease set the JAVA_HOME variable in your environment to match the\nlocation of your Java installation.\"\n    fi\nfi\n\n# Increase the maximum file descriptors if we can.\nif ! \"$cygwin\" && ! \"$darwin\" && ! \"$nonstop\" ; then\n    case $MAX_FD in #(\n      max*)\n        # In POSIX sh, ulimit -H is undefined. That's why the result is checked to see if it worked.\n        # shellcheck disable=SC2039,SC3045\n        MAX_FD=$( ulimit -H -n ) ||\n            warn \"Could not query maximum file descriptor limit\"\n    esac\n    case $MAX_FD in  #(\n      '' | soft) :;; #(\n      *)\n        # In POSIX sh, ulimit -n is undefined. That's why the result is checked to see if it worked.\n        # shellcheck disable=SC2039,SC3045\n        ulimit -n \"$MAX_FD\" ||\n            warn \"Could not set maximum file descriptor limit to $MAX_FD\"\n    esac\nfi\n\n# Collect all arguments for the java command, stacking in reverse order:\n#   * args from the command line\n#   * the main class name\n#   * -classpath\n#   * -D...appname settings\n#   * --module-path (only if needed)\n#   * DEFAULT_JVM_OPTS, JAVA_OPTS, and GRADLE_OPTS environment variables.\n\n# For Cygwin or MSYS, switch paths to Windows format before running java\nif \"$cygwin\" || \"$msys\" ; then\n    APP_HOME=$( cygpath --path --mixed \"$APP_HOME\" )\n    CLASSPATH=$( cygpath --path --mixed \"$CLASSPATH\" )\n\n    JAVACMD=$( cygpath --unix \"$JAVACMD\" )\n\n    # Now convert the arguments - kludge to limit ourselves to /bin/sh\n    for arg do\n        if\n            case $arg in                                #(\n              -*)   false ;;                            # don't mess with options #(\n              /?*)  t=${arg#/} t=/${t%%/*}              # looks like a POSIX filepath\n                    [ -e \"$t\" ] ;;                      #(\n              *)    false ;;\n            esac\n        then\n            arg=$( cygpath --path --ignore --mixed \"$arg\" )\n        fi\n        # Roll the args list around exactly as many times as the number of\n        # args, so each arg winds up back in the position where it started, but\n        # possibly modified.\n        #\n        # NB: a `for` loop captures its iteration list before it begins, so\n        # changing the positional parameters here affects neither the number of\n        # iterations, nor the values presented in `arg`.\n        shift                   # remove old arg\n        set -- \"$@\" \"$arg\"      # push replacement arg\n    done\nfi\n\n\n# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.\nDEFAULT_JVM_OPTS='\"-Xmx64m\" \"-Xms64m\"'\n\n# Collect all arguments for the java command:\n#   * DEFAULT_JVM_OPTS, JAVA_OPTS, and optsEnvironmentVar are not allowed to contain shell fragments,\n#     and any embedded shellness will be escaped.\n#   * For example: A user cannot expect ${Hostname} to be expanded, as it is an environment variable and will be\n#     treated as '${Hostname}' itself on the command line.\n\nset -- \\\n        \"-Dorg.gradle.appname=$APP_BASE_NAME\" \\\n        -classpath \"$CLASSPATH\" \\\n        -jar \"$APP_HOME/gradle/wrapper/gradle-wrapper.jar\" \\\n        \"$@\"\n\n# Stop when \"xargs\" is not available.\nif ! command -v xargs >/dev/null 2>&1\nthen\n    die \"xargs is not available\"\nfi\n\n# Use \"xargs\" to parse quoted args.\n#\n# With -n1 it outputs one arg per line, with the quotes and backslashes removed.\n#\n# In Bash we could simply go:\n#\n#   readarray ARGS < <( xargs -n1 <<<\"$var\" ) &&\n#   set -- \"${ARGS[@]}\" \"$@\"\n#\n# but POSIX shell has neither arrays nor command substitution, so instead we\n# post-process each arg (as a line of input to sed) to backslash-escape any\n# character that might be a shell metacharacter, then use eval to reverse\n# that process (while maintaining the separation between arguments), and wrap\n# the whole thing up as a single \"set\" statement.\n#\n# This will of course break if any of these variables contains a newline or\n# an unmatched quote.\n#\n\neval \"set -- $(\n        printf '%s\\n' \"$DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS\" |\n        xargs -n1 |\n        sed ' s~[^-[:alnum:]+,./:=@_]~\\\\&~g; ' |\n        tr '\\n' ' '\n    )\" '\"$@\"'\n\nexec \"$JAVACMD\" \"$@\"\n"
  },
  {
    "path": "tests/SeleniumJavaTests/gradlew.bat",
    "content": "@rem\r\n@rem Copyright 2015 the original author or authors.\r\n@rem\r\n@rem Licensed under the Apache License, Version 2.0 (the \"License\");\r\n@rem you may not use this file except in compliance with the License.\r\n@rem You may obtain a copy of the License at\r\n@rem\r\n@rem      https://www.apache.org/licenses/LICENSE-2.0\r\n@rem\r\n@rem Unless required by applicable law or agreed to in writing, software\r\n@rem distributed under the License is distributed on an \"AS IS\" BASIS,\r\n@rem WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n@rem See the License for the specific language governing permissions and\r\n@rem limitations under the License.\r\n@rem\r\n@rem SPDX-License-Identifier: Apache-2.0\r\n@rem\r\n\r\n@if \"%DEBUG%\"==\"\" @echo off\r\n@rem ##########################################################################\r\n@rem\r\n@rem  Gradle startup script for Windows\r\n@rem\r\n@rem ##########################################################################\r\n\r\n@rem Set local scope for the variables with windows NT shell\r\nif \"%OS%\"==\"Windows_NT\" setlocal\r\n\r\nset DIRNAME=%~dp0\r\nif \"%DIRNAME%\"==\"\" set DIRNAME=.\r\n@rem This is normally unused\r\nset APP_BASE_NAME=%~n0\r\nset APP_HOME=%DIRNAME%\r\n\r\n@rem Resolve any \".\" and \"..\" in APP_HOME to make it shorter.\r\nfor %%i in (\"%APP_HOME%\") do set APP_HOME=%%~fi\r\n\r\n@rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.\r\nset DEFAULT_JVM_OPTS=\"-Xmx64m\" \"-Xms64m\"\r\n\r\n@rem Find java.exe\r\nif defined JAVA_HOME goto findJavaFromJavaHome\r\n\r\nset JAVA_EXE=java.exe\r\n%JAVA_EXE% -version >NUL 2>&1\r\nif %ERRORLEVEL% equ 0 goto execute\r\n\r\necho. 1>&2\r\necho ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. 1>&2\r\necho. 1>&2\r\necho Please set the JAVA_HOME variable in your environment to match the 1>&2\r\necho location of your Java installation. 1>&2\r\n\r\ngoto fail\r\n\r\n:findJavaFromJavaHome\r\nset JAVA_HOME=%JAVA_HOME:\"=%\r\nset JAVA_EXE=%JAVA_HOME%/bin/java.exe\r\n\r\nif exist \"%JAVA_EXE%\" goto execute\r\n\r\necho. 1>&2\r\necho ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME% 1>&2\r\necho. 1>&2\r\necho Please set the JAVA_HOME variable in your environment to match the 1>&2\r\necho location of your Java installation. 1>&2\r\n\r\ngoto fail\r\n\r\n:execute\r\n@rem Setup the command line\r\n\r\nset CLASSPATH=\r\n\r\n\r\n@rem Execute Gradle\r\n\"%JAVA_EXE%\" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% \"-Dorg.gradle.appname=%APP_BASE_NAME%\" -classpath \"%CLASSPATH%\" -jar \"%APP_HOME%\\gradle\\wrapper\\gradle-wrapper.jar\" %*\r\n\r\n:end\r\n@rem End local scope for the variables with windows NT shell\r\nif %ERRORLEVEL% equ 0 goto mainEnd\r\n\r\n:fail\r\nrem Set variable GRADLE_EXIT_CONSOLE if you need the _script_ return code instead of\r\nrem the _cmd.exe /c_ return code!\r\nset EXIT_CODE=%ERRORLEVEL%\r\nif %EXIT_CODE% equ 0 set EXIT_CODE=1\r\nif not \"\"==\"%GRADLE_EXIT_CONSOLE%\" exit %EXIT_CODE%\r\nexit /b %EXIT_CODE%\r\n\r\n:mainEnd\r\nif \"%OS%\"==\"Windows_NT\" endlocal\r\n\r\n:omega\r\n"
  },
  {
    "path": "tests/SeleniumJavaTests/settings.gradle",
    "content": "rootProject.name = 'SeleniumJavaTests'"
  },
  {
    "path": "tests/SeleniumJavaTests/src/test/java/SeleniumTests.java",
    "content": "package dev.selenium;\n\nimport org.junit.jupiter.api.AfterEach;\nimport org.junit.jupiter.api.BeforeEach;\nimport org.junit.jupiter.api.Test;\nimport org.openqa.selenium.WebDriver;\nimport org.openqa.selenium.chrome.ChromeOptions;\nimport org.openqa.selenium.remote.RemoteWebDriver;\nimport org.openqa.selenium.remote.http.ClientConfig;\nimport org.openqa.selenium.support.ui.Select;\nimport org.openqa.selenium.By;\nimport org.openqa.selenium.WebElement;\nimport org.openqa.selenium.firefox.FirefoxOptions;\nimport org.openqa.selenium.edge.EdgeOptions;\nimport org.openqa.selenium.Capabilities;\n\nimport java.net.URI;\nimport java.time.Duration;\n\nclass SeleniumTests {\n    private WebDriver driver;\n    private String TEST_SITE = System.getenv().getOrDefault(\"TEST_SITE\", \"the-internet.herokuapp.com\");\n\n    @BeforeEach\n    void setUp() {\n        String browser = System.getenv().getOrDefault(\"BROWSER\", \"chrome\").toLowerCase();\n        Capabilities options;\n\n        switch (browser) {\n            case \"firefox\":\n                FirefoxOptions firefoxOptions = new FirefoxOptions();\n                firefoxOptions.enableBiDi();\n                options = firefoxOptions;\n                break;\n            case \"edge\":\n                EdgeOptions edgeOptions = new EdgeOptions();\n                edgeOptions.addArguments(\"--no-sandbox\", \"--disable-dev-shm-usage\");\n                edgeOptions.enableBiDi();\n                options = edgeOptions;\n                break;\n            case \"chrome\":\n            default:\n                ChromeOptions chromeOptions = new ChromeOptions();\n                chromeOptions.addArguments(\"--no-sandbox\", \"--disable-dev-shm-usage\");\n                chromeOptions.enableBiDi();\n                options = chromeOptions;\n        }\n\n        ClientConfig config = ClientConfig.defaultConfig()\n                .readTimeout(Duration.ofSeconds(300))\n                .connectionTimeout(Duration.ofSeconds(120));\n\n        String gridUrl = System.getenv().getOrDefault(\"GRID_URL\", \"http://localhost:4444/wd/hub\");\n        driver = RemoteWebDriver.builder()\n                .oneOf(options)\n                .address(gridUrl)\n                .config(config)\n                .build();\n    }\n\n    @Test\n    void abTestingLinkOpensCorrectPage() {\n        driver.get(String.format(\"http://%s\", TEST_SITE));\n        driver.findElement(By.linkText(\"A/B Testing\")).click();\n        String header = driver.findElement(By.tagName(\"h3\")).getText();\n        assert header.contains(\"A/B Test\");\n    }\n\n    @Test\n    void checkboxesCanBeToggled() {\n        driver.get(String.format(\"http://%s/checkboxes\", TEST_SITE));\n        WebElement checkbox1 = driver.findElements(By.cssSelector(\"input[type='checkbox']\")).get(0);\n        boolean initialState = checkbox1.isSelected();\n        checkbox1.click();\n        assert checkbox1.isSelected() != initialState;\n    }\n\n    @Test\n    void dropdownSelectionWorks() {\n        driver.get(String.format(\"http://%s/dropdown\", TEST_SITE));\n        WebElement dropdown = driver.findElement(By.id(\"dropdown\"));\n        Select select = new Select(dropdown);\n        select.selectByVisibleText(\"Option 2\");\n        assert select.getFirstSelectedOption().getText().equals(\"Option 2\");\n    }\n\n    @AfterEach\n    void tearDown() {\n        if (driver != null) {\n            driver.quit();\n        }\n    }\n} "
  },
  {
    "path": "tests/SeleniumTests/__init__.py",
    "content": "import concurrent.futures\nimport os\nimport random\nimport time\nimport traceback\nimport unittest\n\nfrom selenium import webdriver\nfrom selenium.webdriver.chrome.options import Options as ChromeOptions\nfrom selenium.webdriver.common.by import By\nfrom selenium.webdriver.edge.options import Options as EdgeOptions\nfrom selenium.webdriver.firefox.options import Options as FirefoxOptions\nfrom selenium.webdriver.remote.client_config import ClientConfig\nfrom selenium.webdriver.support import expected_conditions as EC\nfrom selenium.webdriver.support.ui import WebDriverWait\n\nSELENIUM_GRID_PROTOCOL = os.environ.get('SELENIUM_GRID_PROTOCOL', 'http')\nSELENIUM_GRID_HOST = os.environ.get('SELENIUM_GRID_HOST', 'localhost')\nSELENIUM_GRID_PORT = os.environ.get('SELENIUM_GRID_PORT', '4444')\nSELENIUM_GRID_USERNAME = os.environ.get('SELENIUM_GRID_USERNAME', None)\nSELENIUM_GRID_PASSWORD = os.environ.get('SELENIUM_GRID_PASSWORD', None)\nCHART_CERT_PATH = os.environ.get('CHART_CERT_PATH', None)\nSELENIUM_GRID_TEST_HEADLESS = os.environ.get('SELENIUM_GRID_TEST_HEADLESS', 'false').lower() == 'true'\nSELENIUM_ENABLE_MANAGED_DOWNLOADS = os.environ.get('SELENIUM_ENABLE_MANAGED_DOWNLOADS', 'true').lower() == 'true'\nWEB_DRIVER_WAIT_TIMEOUT = int(os.environ.get('WEB_DRIVER_WAIT_TIMEOUT', 60))\nTEST_PARALLEL_HARDENING = os.environ.get('TEST_PARALLEL_HARDENING', 'false').lower() == 'true'\nTEST_PARALLEL_COUNT = int(os.environ.get('TEST_PARALLEL_COUNT', 5))\nTEST_DELAY_AFTER_TEST = int(os.environ.get('TEST_DELAY_AFTER_TEST', 0))\nTEST_NODE_RELAY = os.environ.get('TEST_NODE_RELAY', 'false')\nTEST_ANDROID_PLATFORM_API = os.environ.get('ANDROID_PLATFORM_API')\nTEST_PLATFORMS = os.environ.get('TEST_PLATFORMS', 'linux/amd64')\nTEST_FIREFOX_INSTALL_LANG_PACKAGE = os.environ.get('TEST_FIREFOX_INSTALL_LANG_PACKAGE', 'false').lower() == 'true'\nTEST_ADD_CAPS_RECORD_VIDEO = os.environ.get('TEST_ADD_CAPS_RECORD_VIDEO', 'true').lower() == 'true'\nTEST_CUSTOM_SPECIFIC_NAME = os.environ.get('TEST_CUSTOM_SPECIFIC_NAME', 'false').lower() == 'true'\nTEST_MULTIPLE_VERSIONS = os.environ.get('TEST_MULTIPLE_VERSIONS', 'false').lower() == 'true'\nTEST_MULTIPLE_PLATFORMS = os.environ.get('TEST_MULTIPLE_PLATFORMS', 'false').lower() == 'true'\nTEST_MULTIPLE_PLATFORMS_RELAY = os.environ.get('TEST_MULTIPLE_PLATFORMS_RELAY', 'false').lower() == 'true'\nTEST_MULTIPLE_VERSIONS_EXPLICIT = os.environ.get('TEST_MULTIPLE_VERSIONS_EXPLICIT', 'true').lower() == 'true'\nLIST_CHROMIUM_VERSIONS = ['140.0', '139.0', '138.0', '137.0', '136.0', '135.0', '134.0']\nLIST_FIREFOX_VERSIONS = ['142.0', '141.0', '140.0', '139.0', '138.0', '137.0', '136.0']\nLIST_PLATFORMS = ['Linux', None, 'Windows 11']\nTEST_SITE = os.environ.get('TEST_SITE', 'the-internet.herokuapp.com')\nRELAY_SELENIUM_VERSION = \"4.35.0\"\n\nif not TEST_MULTIPLE_VERSIONS_EXPLICIT:\n    LIST_CHROMIUM_VERSIONS.append(None)\n    LIST_FIREFOX_VERSIONS.append(None)\n\nif TEST_MULTIPLE_PLATFORMS_RELAY:\n    # Replace index with None to macOS\n    LIST_PLATFORMS[1] = 'macOS'\n\nSELENIUM_GRID_URL = f\"{SELENIUM_GRID_PROTOCOL}://{SELENIUM_GRID_HOST}:{SELENIUM_GRID_PORT}\"\nCLIENT_CONFIG = ClientConfig(\n    remote_server_addr=SELENIUM_GRID_URL,\n    keep_alive=True,\n    timeout=3600,\n    username=SELENIUM_GRID_USERNAME,\n    password=SELENIUM_GRID_PASSWORD,\n    ca_certs=CHART_CERT_PATH,\n)\n\nif TEST_NODE_RELAY == 'Android':\n    time.sleep(90)\n\n\nclass SeleniumGenericTests(unittest.TestCase):\n\n    def test_title(self):\n        self.driver.get(f'http://{TEST_SITE}')\n        wait = WebDriverWait(self.driver, WEB_DRIVER_WAIT_TIMEOUT)\n        wait.until(EC.title_is('The Internet'))\n        self.assertTrue(self.driver.title == 'The Internet')\n\n    # https://github.com/tourdedave/elemental-selenium-tips/blob/master/03-work-with-frames/python/frames.py\n    def test_with_frames(self):\n        driver = self.driver\n        driver.get(f'http://{TEST_SITE}/nested_frames')\n        wait = WebDriverWait(driver, WEB_DRIVER_WAIT_TIMEOUT)\n        frame_top = wait.until(EC.frame_to_be_available_and_switch_to_it('frame-top'))\n        frame_middle = wait.until(EC.frame_to_be_available_and_switch_to_it('frame-middle'))\n        self.assertTrue(driver.find_element(By.ID, 'content').text == \"MIDDLE\", \"content should be MIDDLE\")\n\n    # https://github.com/tourdedave/elemental-selenium-tips/blob/master/05-select-from-a-dropdown/python/dropdown.py\n    def test_select_from_a_dropdown(self):\n        driver = self.driver\n        driver.get(f'http://{TEST_SITE}/dropdown')\n        dropdown_list = driver.find_element(By.ID, 'dropdown')\n        options = dropdown_list.find_elements(By.TAG_NAME, 'option')\n        for opt in options:\n            if opt.text == 'Option 1':\n                opt.click()\n                break\n        for opt in options:\n            if opt.is_selected():\n                selected_option = opt.text\n                break\n        self.assertTrue(selected_option == 'Option 1', \"Selected option should be Option 1\")\n\n    # https://github.com/tourdedave/elemental-selenium-tips/blob/master/13-work-with-basic-auth/python/basic_auth_1.py\n    def test_visit_basic_auth_secured_page(self):\n        driver = self.driver\n        driver.get(f'http://admin:admin@{TEST_SITE}/basic_auth')\n        page_message = driver.find_element(By.CSS_SELECTOR, '.example p').text\n        self.assertTrue(page_message == 'Congratulations! You must have the proper credentials.')\n\n    def test_play_video(self):\n        driver = self.driver\n        driver.get('https://googleads.github.io/googleads-ima-html5/vsi/')\n        wait = WebDriverWait(driver, WEB_DRIVER_WAIT_TIMEOUT)\n        play_button = wait.until(EC.element_to_be_clickable((By.ID, 'play-button')))\n        play_button.click()\n        video = driver.find_element(By.TAG_NAME, 'video')\n        wait.until(lambda d: d.find_element(By.TAG_NAME, 'video').get_property('currentTime'))\n        wait.until(lambda d: d.find_element(By.TAG_NAME, 'video').get_property('paused') == False)\n        paused = video.get_property('paused')\n        self.assertFalse(paused)\n\n    def test_download_file(self):\n        driver = self.driver\n        driver.get(f'http://{TEST_SITE}/download')\n        file_name = 'some-file.txt'\n        wait = WebDriverWait(driver, 30)\n        file_link = wait.until(EC.element_to_be_clickable((By.LINK_TEXT, file_name)))\n        driver.execute_script(\"arguments[0].scrollIntoView();\", file_link)\n        file_link.click()\n        if not SELENIUM_ENABLE_MANAGED_DOWNLOADS:\n            time.sleep(4)\n            return\n        wait.until(\n            lambda d: len(d.get_downloadable_files()) > 0 and str(d.get_downloadable_files()[0]).endswith(file_name)\n        )\n        self.assertTrue(str(driver.get_downloadable_files()[0]).endswith(file_name))\n\n    def tearDown(self):\n        if TEST_CUSTOM_SPECIFIC_NAME:\n            self.assertTrue(str(self.driver.capabilities['myApp:version']) == 'beta')\n            self.assertTrue(str(self.driver.capabilities['myApp:publish']) == 'internal')\n        try:\n            if TEST_DELAY_AFTER_TEST:\n                time.sleep(TEST_DELAY_AFTER_TEST)\n            self.driver.quit()\n        except Exception as e:\n            print(f\"::error::Exception: {str(e)}\")\n            print(traceback.format_exc())\n            raise e\n\n\nclass ChromeTests(SeleniumGenericTests):\n    def setUp(self):\n        try:\n            options = ChromeOptions()\n            options.enable_downloads = SELENIUM_ENABLE_MANAGED_DOWNLOADS\n            if not SELENIUM_ENABLE_MANAGED_DOWNLOADS:\n                options.add_argument('disable-features=DownloadBubble,DownloadBubbleV2')\n            if TEST_ADD_CAPS_RECORD_VIDEO:\n                options.set_capability('se:recordVideo', True)\n            if TEST_CUSTOM_SPECIFIC_NAME:\n                options.set_capability('myApp:version', 'beta')\n                options.set_capability('myApp:publish', 'internal')\n            options.set_capability('se:name', f\"{self._testMethodName} ({self.__class__.__name__})\")\n            options.set_capability('se:screenResolution', '1920x1080')\n            if SELENIUM_GRID_TEST_HEADLESS:\n                options.add_argument('--headless=new')\n            if TEST_MULTIPLE_VERSIONS:\n                browser_version = random.choice(LIST_CHROMIUM_VERSIONS)\n                if browser_version:\n                    options.set_capability('browserVersion', browser_version)\n                options.set_capability('platformName', LIST_PLATFORMS[0])\n            if TEST_NODE_RELAY == 'Android':\n                options.set_capability('platformName', TEST_NODE_RELAY)\n                options.set_capability('appium:platformVersion', TEST_ANDROID_PLATFORM_API)\n                options.set_capability('appium:deviceName', 'emulator-5554')\n                options.set_capability('appium:automationName', 'uiautomator2')\n                options.set_capability('appium:browserName', 'chrome')\n                options.set_capability('appium:adbExecTimeout', 120000)\n                options.set_capability('appium:uiautomator2ServerInstallTimeout', 120000)\n                options.set_capability('appium:appWaitDuration', 120000)\n                options.set_capability('appium:suppressKillServer', True)\n                options.set_capability('appium:allowDelayAdb', False)\n            if TEST_MULTIPLE_PLATFORMS:\n                platform_name = random.choice(LIST_PLATFORMS)\n                if platform_name:\n                    options.set_capability('platformName', platform_name)\n            if TEST_MULTIPLE_PLATFORMS_RELAY:\n                options.set_capability(\n                    'sauce:options',\n                    {\n                        'username': os.environ.get('SAUCE_USERNAME'),\n                        'accessKey': os.environ.get('SAUCE_ACCESS_KEY'),\n                        'name': f\"{self._testMethodName} ({self.__class__.__name__})\",\n                        'seleniumVersion': RELAY_SELENIUM_VERSION,\n                    },\n                )\n            start_time = time.time()\n            self.driver = webdriver.Remote(\n                options=options, command_executor=SELENIUM_GRID_URL, client_config=CLIENT_CONFIG\n            )\n            end_time = time.time()\n            print(\n                f\"Begin: {self._testMethodName} ({self.__class__.__name__}) WebDriver initialization completed in {end_time - start_time} (s) - SessionID: {self.driver.session_id}\"\n            )\n        except Exception as e:\n            print(f\"::error::Exception: {str(e)}\")\n            print(traceback.format_exc())\n            raise e\n\n\nclass EdgeTests(SeleniumGenericTests):\n    def setUp(self):\n        try:\n            options = EdgeOptions()\n            options.enable_downloads = SELENIUM_ENABLE_MANAGED_DOWNLOADS\n            if not SELENIUM_ENABLE_MANAGED_DOWNLOADS:\n                options.add_argument('disable-features=DownloadBubble,DownloadBubbleV2')\n            if TEST_ADD_CAPS_RECORD_VIDEO:\n                options.set_capability('se:recordVideo', True)\n            if TEST_CUSTOM_SPECIFIC_NAME:\n                options.set_capability('myApp:version', 'beta')\n                options.set_capability('myApp:publish', 'internal')\n            options.set_capability('se:name', f\"{self._testMethodName} ({self.__class__.__name__})\")\n            options.set_capability('se:screenResolution', '1920x1080')\n            if SELENIUM_GRID_TEST_HEADLESS:\n                options.add_argument('--headless=new')\n            if TEST_MULTIPLE_VERSIONS:\n                browser_version = random.choice(LIST_CHROMIUM_VERSIONS)\n                if browser_version:\n                    options.set_capability('browserVersion', browser_version)\n                    options.set_capability('platformName', LIST_PLATFORMS[0])\n            if TEST_MULTIPLE_PLATFORMS:\n                platform_name = random.choice(LIST_PLATFORMS)\n                if platform_name:\n                    options.set_capability('platformName', platform_name)\n            if TEST_MULTIPLE_PLATFORMS_RELAY:\n                options.set_capability(\n                    'sauce:options',\n                    {\n                        'username': os.environ.get('SAUCE_USERNAME'),\n                        'accessKey': os.environ.get('SAUCE_ACCESS_KEY'),\n                        'name': f\"{self._testMethodName} ({self.__class__.__name__})\",\n                        'seleniumVersion': RELAY_SELENIUM_VERSION,\n                    },\n                )\n            start_time = time.time()\n            self.driver = webdriver.Remote(\n                options=options, command_executor=SELENIUM_GRID_URL, client_config=CLIENT_CONFIG\n            )\n            end_time = time.time()\n            print(\n                f\"Begin: {self._testMethodName} ({self.__class__.__name__}) WebDriver initialization completed in {end_time - start_time} (s) - SessionID: {self.driver.session_id}\"\n            )\n        except Exception as e:\n            print(f\"::error::Exception: {str(e)}\")\n            print(traceback.format_exc())\n            raise e\n\n\nclass FirefoxTests(SeleniumGenericTests):\n    def setUp(self):\n        try:\n            profile = webdriver.FirefoxProfile()\n            options = FirefoxOptions()\n            options.enable_downloads = SELENIUM_ENABLE_MANAGED_DOWNLOADS\n            if not SELENIUM_ENABLE_MANAGED_DOWNLOADS:\n                profile.set_preference(\"browser.download.manager.showWhenStarting\", False)\n                profile.set_preference(\"browser.helperApps.neverAsk.saveToDisk\", \"*/*\")\n            profile.set_preference('intl.accept_languages', 'vi-VN,vi')\n            profile.set_preference('intl.locale.requested', 'vi-VN,vi')\n            options.profile = profile\n            if TEST_ADD_CAPS_RECORD_VIDEO:\n                options.set_capability('se:recordVideo', True)\n            if TEST_CUSTOM_SPECIFIC_NAME:\n                options.set_capability('myApp:version', 'beta')\n                options.set_capability('myApp:publish', 'internal')\n            options.set_capability('se:name', f\"{self._testMethodName} ({self.__class__.__name__})\")\n            options.set_capability('se:screenResolution', '1920x1080')\n            if SELENIUM_GRID_TEST_HEADLESS:\n                options.add_argument('-headless')\n            if TEST_MULTIPLE_VERSIONS:\n                browser_version = random.choice(LIST_FIREFOX_VERSIONS)\n                if browser_version:\n                    options.set_capability('browserVersion', browser_version)\n                    options.set_capability('platformName', LIST_PLATFORMS[0])\n            if TEST_MULTIPLE_PLATFORMS:\n                platform_name = random.choice(LIST_PLATFORMS)\n                if platform_name:\n                    options.set_capability('platformName', platform_name)\n            if TEST_MULTIPLE_PLATFORMS_RELAY:\n                options.set_capability(\n                    'sauce:options',\n                    {\n                        'username': os.environ.get('SAUCE_USERNAME'),\n                        'accessKey': os.environ.get('SAUCE_ACCESS_KEY'),\n                        'name': f\"{self._testMethodName} ({self.__class__.__name__})\",\n                        'seleniumVersion': RELAY_SELENIUM_VERSION,\n                    },\n                )\n            start_time = time.time()\n            self.driver = webdriver.Remote(\n                options=options, command_executor=SELENIUM_GRID_URL, client_config=CLIENT_CONFIG\n            )\n            end_time = time.time()\n            print(\n                f\"Begin: {self._testMethodName} ({self.__class__.__name__}) WebDriver initialization completed in {end_time - start_time} (s) - SessionID: {self.driver.session_id}\"\n            )\n        except Exception as e:\n            print(f\"::error::Exception: {str(e)}\")\n            print(traceback.format_exc())\n            raise e\n\n    def test_title_and_maximize_window(self):\n        self.driver.get(f'http://{TEST_SITE}')\n        self.driver.maximize_window()\n        self.assertTrue(self.driver.title == 'The Internet')\n\n    def test_accept_languages(self):\n        if TEST_FIREFOX_INSTALL_LANG_PACKAGE:\n            addon_id = webdriver.Firefox.install_addon(\n                self.driver, \"./target/firefox_lang_packs/langpack-vi@firefox.mozilla.org.xpi\"\n            )\n        self.driver.get('https://gtranslate.io/detect-browser-language')\n        wait = WebDriverWait(self.driver, WEB_DRIVER_WAIT_TIMEOUT)\n        lang_code = wait.until(EC.presence_of_element_located((By.XPATH, '(//*[@class=\"notranslate\"])[1]')))\n        self.driver.execute_script(\"arguments[0].scrollIntoView();\", lang_code)\n        self.assertTrue(lang_code.text == 'vi-VN', \"Language code should be vi-VN\")\n        time.sleep(1)\n        self.driver.get('https://google.com')\n        time.sleep(2)\n\n\nclass Autoscaling:\n    def run(self, test_classes):\n        with concurrent.futures.ThreadPoolExecutor() as executor:\n            futures = []\n            tests = []\n            start_times = {}\n            mixed_tests = []\n            for test_class in test_classes:\n                suite = unittest.TestLoader().loadTestsFromTestCase(test_class)\n                mixed_tests.extend(suite)\n                random.shuffle(mixed_tests)\n            for test in mixed_tests:\n                start_times[test] = time.time()\n                futures.append(executor.submit(test))\n                tests.append(test)\n            print(f\"Number of tests were added to worker: {len(tests)}\")\n            failed_tests = []\n            for future, test in zip(concurrent.futures.as_completed(futures), tests):\n                try:\n                    completion_time = time.time() - start_times[test]\n                    print(f\"Finish: {str(test)} completed in {str(completion_time)} (s)\")\n                    if not future.result().wasSuccessful():\n                        raise Exception\n                except Exception as e:\n                    failed_tests.append(test)\n                    print(traceback.format_exc())\n                    print(f\"{str(test)} failed with exception: {str(e)}\")\n                    print(f\"Original exception: {e.__cause__}\")\n            if len(failed_tests) > 0:\n                print(f\"Number of failed tests: {len(failed_tests)}. Going to rerun!\")\n                for test in failed_tests:\n                    try:\n                        print(f\"Rerunning test: {str(test)}\")\n                        rerun_result = test.run()\n                        if not rerun_result.wasSuccessful():\n                            raise Exception\n                    except Exception as e:\n                        print(traceback.format_exc())\n                        print(f\"Test {str(test)} failed again with exception: {str(e)}\")\n                        print(f\"Original exception: {e.__cause__}\")\n                        raise Exception(f\"Rerun test failed: {str(test)} failed with exception: {str(e)}\")\n                print(f\"::warning:: Number of failed tests: {len(failed_tests)}. All tests passed in rerun!\")\n\n\nclass DeploymentAutoscalingTests(unittest.TestCase):\n    def test_parallel_autoscaling(self):\n        runner = Autoscaling()\n        platform = TestPlatform()\n        if not TEST_PARALLEL_HARDENING:\n            runner.run(platform.add_test_based_platform(1))\n        else:\n            runner.run(platform.add_test_based_platform(TEST_PARALLEL_COUNT))\n\n\nclass JobAutoscalingTests(unittest.TestCase):\n    def test_parallel_autoscaling(self):\n        runner = Autoscaling()\n        platform = TestPlatform()\n        if not TEST_PARALLEL_HARDENING:\n            runner.run(platform.add_test_based_platform(1))\n        else:\n            runner.run(platform.add_test_based_platform(TEST_PARALLEL_COUNT))\n\n\nclass TestPlatform:\n    def add_test_based_platform(self, repeat):\n        tests = []\n        for i in range(repeat):\n            if TEST_PLATFORMS == 'linux/amd64':\n                tests.extend([FirefoxTests, ChromeTests, EdgeTests])\n            else:\n                tests.extend([FirefoxTests, ChromeTests])\n        return tests\n"
  },
  {
    "path": "tests/SmokeTests/__init__.py",
    "content": "import json\nimport os\nimport ssl\nimport time\nimport unittest\n\nimport requests\nfrom requests.auth import HTTPBasicAuth\n\nSELENIUM_GRID_PROTOCOL = os.environ.get('SELENIUM_GRID_PROTOCOL', 'http')\nSELENIUM_GRID_HOST = os.environ.get('SELENIUM_GRID_HOST', 'localhost')\nSELENIUM_GRID_PORT = os.environ.get('SELENIUM_GRID_PORT', '4444')\nSELENIUM_GRID_USERNAME = os.environ.get('SELENIUM_GRID_USERNAME', '')\nSELENIUM_GRID_PASSWORD = os.environ.get('SELENIUM_GRID_PASSWORD', '')\nCHART_CERT_PATH = os.environ.get('CHART_CERT_PATH', None)\nSELENIUM_GRID_AUTOSCALING = os.environ.get('SELENIUM_GRID_AUTOSCALING', 'false')\nSELENIUM_GRID_AUTOSCALING_MIN_REPLICA = os.environ.get('SELENIUM_GRID_AUTOSCALING_MIN_REPLICA', 0)\nHUB_CHECKS_MAX_ATTEMPTS = os.environ.get('HUB_CHECKS_MAX_ATTEMPTS', 3)\nHUB_CHECKS_INTERVAL = os.environ.get('HUB_CHECKS_INTERVAL', 10)\n\nif CHART_CERT_PATH:\n    os.environ['REQUESTS_CA_BUNDLE'] = CHART_CERT_PATH\n\n\nclass SmokeTests(unittest.TestCase):\n    def smoke_test_container(self, port):\n        current_attempts = 0\n        max_attempts = int(HUB_CHECKS_MAX_ATTEMPTS)\n        sleep_interval = int(HUB_CHECKS_INTERVAL)\n        status_fetched = False\n        status_json = None\n        auto_scaling = SELENIUM_GRID_AUTOSCALING == 'true'\n        auto_scaling_min_replica = int(SELENIUM_GRID_AUTOSCALING_MIN_REPLICA)\n\n        while current_attempts < max_attempts:\n            current_attempts = current_attempts + 1\n            try:\n                grid_url_status = f'{SELENIUM_GRID_PROTOCOL}://{SELENIUM_GRID_HOST}:{port}/status'\n                if SELENIUM_GRID_USERNAME and SELENIUM_GRID_PASSWORD:\n                    response = requests.get(\n                        grid_url_status, auth=HTTPBasicAuth(SELENIUM_GRID_USERNAME, SELENIUM_GRID_PASSWORD)\n                    )\n                else:\n                    response = requests.get(grid_url_status)\n                status_json = response.json()\n                if not auto_scaling or (auto_scaling and auto_scaling_min_replica > 0):\n                    self.assertTrue(status_json['value']['ready'], \"Container is not ready on port %s\" % port)\n                else:\n                    self.assertFalse(\n                        status_json['value']['ready'], \"Container is autoscaling with min replica set to 0\"\n                    )\n                status_fetched = True\n            except Exception as e:\n                time.sleep(sleep_interval)\n\n        if not auto_scaling or (auto_scaling and auto_scaling_min_replica > 0):\n            self.assertTrue(status_fetched, \"Container status was not fetched on port %s\" % port)\n            self.assertTrue(status_json['value']['ready'], \"Container is not ready on port %s\" % port)\n        else:\n            self.assertFalse(status_json['value']['ready'], \"Container is autoscaling with min replica set to 0\")\n\n    def client_verify_cert(self, port):\n        grid_url_status = f'{SELENIUM_GRID_PROTOCOL}://{SELENIUM_GRID_HOST}:{port}/status'\n        cert_path = os.environ.get(\"REQUESTS_CA_BUNDLE\")\n        response = requests.get(\n            grid_url_status, verify=cert_path, auth=HTTPBasicAuth(SELENIUM_GRID_USERNAME, SELENIUM_GRID_PASSWORD)\n        )\n\n\nclass GridTest(SmokeTests):\n    def test_grid_is_up(self):\n        self.smoke_test_container('%s' % SELENIUM_GRID_PORT)\n        if SELENIUM_GRID_PROTOCOL == \"https\":\n            self.client_verify_cert('%s' % SELENIUM_GRID_PORT)\n"
  },
  {
    "path": "tests/bootstrap.sh",
    "content": "#!/usr/bin/env bash\nset -o xtrace\n\nMATRIX_TESTS=${MATRIX_TESTS:-\"default\"}\n\ncd tests || true\n\nif [ \"${CI:-false}\" = \"false\" ]; then\n  pip3 install virtualenv | grep -v 'Requirement already satisfied'\n  virtualenv docker-selenium-tests\n  source docker-selenium-tests/bin/activate\nfi\n\nif [[ \"${BASE_VERSION}\" == *-SNAPSHOT ]]; then\n  latest_version=\"$(curl -s https://test.pypi.org/pypi/selenium/json | jq -r '.releases | to_entries | sort_by(.value[0].upload_time) | .[-1].key')\"\n  python3 -m pip install --index-url https://test.pypi.org/simple/ selenium==${latest_version} --extra-index-url https://pypi.org/simple/ --upgrade --force-reinstall --break-system-packages | grep -v 'Requirement already satisfied'\nelse\n  python3 -m pip install selenium==${BINDING_VERSION} | grep -v 'Requirement already satisfied'\nfi\n\npython3 -m pip install -r requirements.txt | grep -v 'Requirement already satisfied'\n\nif [ \"$1\" = \"AutoscalingTestsScaleUp\" ]; then\n  python3 -m unittest AutoscalingTests.test_scale_up\n  ret_code=$?\nelif [ \"$1\" = \"AutoScalingTestsScaleChaos\" ]; then\n  python3 -m unittest AutoscalingTests.test_scale_chaos\n  ret_code=$?\nelse\n  export TEST_SITE=\"the-internet:5000\"\n  python3 test.py $1\n  ret_code=$?\nfi\n\nif [ \"${CI:-false}\" = \"false\" ]; then\n  deactivate\nfi\n\nsleep 5\n\nexit $ret_code\n"
  },
  {
    "path": "tests/build-backward-compatible/add_selenium_version.py",
    "content": "#!/usr/bin/env python3\nimport re\nimport sys\nfrom pathlib import Path\n\nimport yaml\n\n\ndef add_selenium_version(version):\n    \"\"\"\n    Add a new Selenium version configuration to selenium-matrix.yml\n\n    Args:\n        version (str): The Selenium version to add (e.g., '4.36.0')\n    \"\"\"\n    # Validate version format\n    if not re.match(r'^\\d+\\.\\d+\\.\\d+$', version):\n        print(f\"Error: Version '{version}' is not in the correct format (e.g., 4.36.0)\")\n        sys.exit(1)\n\n    matrix_file = Path(__file__).parent / 'selenium-matrix.yml'\n\n    def replace_none(d):\n        if isinstance(d, dict):\n            return {k: replace_none(v) for k, v in d.items()}\n        elif isinstance(d, list):\n            return [replace_none(x) for x in d]\n        elif d is None:\n            return []\n        return d\n\n    # Read the existing YAML file\n    with open(matrix_file, 'r') as f:\n        try:\n            data = yaml.safe_load(f) or {}\n            # Replace None values with empty strings\n            data = replace_none(data)\n        except yaml.YAMLError as e:\n            print(f\"Error reading YAML file: {e}\")\n            sys.exit(1)\n\n    # Check if version already exists\n    if version in data.get('matrix', {}).get('selenium', {}):\n        print(f\"Version {version} already exists in the matrix\")\n        sys.exit(0)\n\n    # Create the new version entry\n    new_entry = {\n        'BASE_RELEASE': f'selenium-{version}',\n        'BASE_VERSION': version,\n        'VERSION': version,\n        'BINDING_VERSION': version,\n        'browser': [],\n    }\n\n    # Add the new version to the matrix\n    data['matrix']['selenium'][version] = new_entry\n\n    # Sort the selenium versions in descending order\n    if 'selenium' in data['matrix']:\n        sorted_selenium = {}\n        # Get all versions, handle both string and numeric versions correctly\n        versions = []\n        for v in data['matrix']['selenium'].keys():\n            try:\n                # Convert version string to tuple of integers for proper numeric comparison\n                ver_tuple = tuple(map(int, v.split('.'))) if v != 'nightly' else (float('inf'),)\n                versions.append((ver_tuple, v))\n            except (ValueError, AttributeError):\n                # Fallback for non-numeric versions (like 'nightly')\n                versions.append((v, v))\n\n        # Sort in descending order, with 'nightly' first, then by version numbers\n        versions.sort(reverse=True, key=lambda x: (x[0] == 'nightly', x[0]))\n\n        # Rebuild the selenium dictionary in sorted order\n        for ver_tuple, ver in versions:\n            sorted_selenium[ver] = data['matrix']['selenium'][ver]\n\n        data['matrix']['selenium'] = sorted_selenium\n\n    # Write back to the file while preserving the original structure\n    with open(matrix_file, 'w') as f:\n        yaml.dump(data, f, default_flow_style=False, sort_keys=False, width=1000)\n\n    print(f\"Successfully added Selenium version {version} to the matrix\")\n\n\nif __name__ == \"__main__\":\n    if len(sys.argv) != 2:\n        print(f\"Usage: {sys.argv[0]} <version>\")\n        print(\"Example: python add_selenium_version.py 4.36.0\")\n        sys.exit(1)\n\n    version = sys.argv[1].strip()\n    add_selenium_version(version)\n"
  },
  {
    "path": "tests/build-backward-compatible/bootstrap.sh",
    "content": "#!/usr/bin/env bash\nset -e  # Exit immediately if a command exits with a non-zero status\n\ncd tests || true\n\nif [ \"${CI:-false}\" = \"false\" ]; then\n  pip3 install virtualenv | grep -v 'Requirement already satisfied'\n  virtualenv docker-selenium-tests\n  source docker-selenium-tests/bin/activate\nfi\n\npython3 -m pip install pyyaml==6.0.1 \\\n                      | grep -v 'Requirement already satisfied'\n\ncd ..\n\nSELENIUM_VERSION=$1\nCDP_VERSIONS=$2\nBROWSER=${3:-\"all\"}\nREUSE_BASE=${4:-\"false\"}\nPUSH_IMAGE=${5:-\"false\"}\nSKIP_BUILD=${6:-\"false\"}\nRELEASE_OLD_VERSION=${7:-\"true\"}\n\nIFS=',' read -ra VERSION_LIST <<< \"$CDP_VERSIONS\"\n\nmkdir -p CHANGELOG/${SELENIUM_VERSION}\n\npython3 tests/build-backward-compatible/fetch_firefox_version.py\npython3 tests/build-backward-compatible/fetch_version.py\n\n# Trap errors and exit with the correct error code\ntrap 'exit_code=$?; echo \"Error: Command failed with exit code $exit_code on line $LINENO\"; exit $exit_code' ERR\n\nfor CDP_VERSION in \"${VERSION_LIST[@]}\"; do\n  python3 tests/build-backward-compatible/builder.py ${SELENIUM_VERSION} ${CDP_VERSION} ${BROWSER}\n  export $(cat .env | xargs)\n  if [ \"${BROWSER}\" = \"all\" ] || [ \"${BROWSER}\" = \"firefox\" ] && [ \"${SKIP_BUILD}\" = \"false\" ]; then\n    if [ -n \"${FIREFOX_VERSION}\" ]; then\n      BUILD_ARGS=\"--build-arg FIREFOX_VERSION=${FIREFOX_VERSION} --build-arg FIREFOX_DOWNLOAD_URL=${FIREFOX_DOWNLOAD_URL}\"\n      if [ \"${REUSE_BASE}\" = \"true\" ]; then\n        BUILD_ARGS=\"${BUILD_ARGS}\" PLATFORMS=${PLATFORMS} make firefox_only\n        BUILD_ARGS=\"${BUILD_ARGS}\" PLATFORMS=${PLATFORMS} make standalone_firefox_only\n      else\n        BUILD_ARGS=\"${BUILD_ARGS}\" PLATFORMS=${PLATFORMS} make standalone_firefox\n      fi\n    else\n      echo \"Firefox version not found in matrix for input ${CDP_VERSION}\"\n      exit 1\n    fi\n  fi\n  if [ \"${BROWSER}\" = \"all\" ] || [ \"${BROWSER}\" = \"edge\" ] && [ \"${SKIP_BUILD}\" = \"false\" ]; then\n    if [ -n \"${EDGE_VERSION}\" ]; then\n      BUILD_ARGS=\"--build-arg EDGE_VERSION=${EDGE_VERSION}\"\n      if [ \"${REUSE_BASE}\" = \"true\" ]; then\n        BUILD_ARGS=\"${BUILD_ARGS}\" make edge_only\n        BUILD_ARGS=\"${BUILD_ARGS}\" make standalone_edge_only\n      else\n        BUILD_ARGS=\"${BUILD_ARGS}\" make standalone_edge\n      fi\n    else\n      echo \"Edge version not found in matrix for input ${CDP_VERSION}\"\n      exit 1\n    fi\n  fi\n  if [ \"${BROWSER}\" = \"all\" ] || [ \"${BROWSER}\" = \"chrome\" ] && [ \"${SKIP_BUILD}\" = \"false\" ]; then\n    if [ -n \"${CHROME_VERSION}\" ]; then\n      BUILD_ARGS=\"--build-arg CHROME_VERSION=${CHROME_VERSION}\"\n      if [ \"${REUSE_BASE}\" = \"true\" ]; then\n        BUILD_ARGS=\"${BUILD_ARGS}\" make chrome_only\n        BUILD_ARGS=\"${BUILD_ARGS}\" make standalone_chrome_only\n      else\n        BUILD_ARGS=\"${BUILD_ARGS}\" make standalone_chrome\n      fi\n    else\n      echo \"Chrome version not found in matrix for input ${CDP_VERSION}\"\n      exit 1\n    fi\n  fi\n  if [ \"${BROWSER}\" = \"all\" ] || [ \"${BROWSER}\" = \"chrome-for-testing\" ] && [ \"${SKIP_BUILD}\" = \"false\" ]; then\n    if [ -n \"${CFT_VERSION}\" ]; then\n      BUILD_ARGS=\"--build-arg CFT_VERSION=${CFT_VERSION} --build-arg INSTALL_CFT=true\"\n      if [ \"${REUSE_BASE}\" = \"true\" ]; then\n        BUILD_ARGS=\"${BUILD_ARGS}\" make chrome-for-testing_only\n        BUILD_ARGS=\"${BUILD_ARGS}\" make standalone_chrome-for-testing_only\n      else\n        BUILD_ARGS=\"${BUILD_ARGS}\" make standalone_chrome-for-testing\n      fi\n    else\n      echo \"Chrome for Testing version not found in matrix for input ${CDP_VERSION}\"\n      exit 1\n    fi\n  fi\n  if [ \"${BROWSER}\" = \"all\" ] || [ \"${BROWSER}\" = \"firefox\" ]; then\n      TAG_LOG_OUTPUT=\"$(PUSH_IMAGE=${PUSH_IMAGE} RELEASE_OLD_VERSION=${RELEASE_OLD_VERSION} make tag_and_push_firefox_images)\"\n  fi\n  if [ \"${BROWSER}\" = \"all\" ] || [ \"${BROWSER}\" = \"edge\" ]; then\n      TAG_LOG_OUTPUT=\"$(PUSH_IMAGE=${PUSH_IMAGE} RELEASE_OLD_VERSION=${RELEASE_OLD_VERSION} make tag_and_push_edge_images)\"\n  fi\n  if [ \"${BROWSER}\" = \"all\" ] || [ \"${BROWSER}\" = \"chrome\" ]; then\n      TAG_LOG_OUTPUT=\"$(PUSH_IMAGE=${PUSH_IMAGE} RELEASE_OLD_VERSION=${RELEASE_OLD_VERSION} make tag_and_push_chrome_images)\"\n  fi\n  if [ \"${BROWSER}\" = \"all\" ] || [ \"${BROWSER}\" = \"chrome-for-testing\" ]; then\n      TAG_LOG_OUTPUT=\"$(PUSH_IMAGE=${PUSH_IMAGE} RELEASE_OLD_VERSION=${RELEASE_OLD_VERSION} make tag_and_push_chrome-for-testing_images)\"\n  fi\n\n  if [ \"${PUSH_IMAGE}\" = \"false\" ]; then\n    echo \"\\`\\`\\`\" > ./CHANGELOG/${SELENIUM_VERSION}/${BROWSER}_${CDP_VERSION}.md\n    echo \"$TAG_LOG_OUTPUT\" | while IFS= read -r line; do\n      echo \"$line\" >> ./CHANGELOG/${SELENIUM_VERSION}/${BROWSER}_${CDP_VERSION}.md\n    done ;\n    echo \"\\`\\`\\`\" >> ./CHANGELOG/${SELENIUM_VERSION}/${BROWSER}_${CDP_VERSION}.md\n  else\n    echo \"${TAG_LOG_OUTPUT}\"\n  fi\ndone\n"
  },
  {
    "path": "tests/build-backward-compatible/browser-matrix.yml",
    "content": "matrix:\n  browser:\n    '148':\n      FIREFOX_VERSION: '148.0'\n      FIREFOX_PLATFORMS: linux/amd64,linux/arm64\n    '147':\n      FIREFOX_VERSION: 147.0.4\n      FIREFOX_PLATFORMS: linux/amd64,linux/arm64\n    '146':\n      FIREFOX_VERSION: 146.0.1\n      FIREFOX_PLATFORMS: linux/amd64,linux/arm64\n    '145':\n      FIREFOX_VERSION: 145.0.2\n      FIREFOX_PLATFORMS: linux/amd64,linux/arm64\n      CFT_VERSION: 145.0.7632.117\n      CHROME_VERSION: google-chrome-stable=145.0.7632.116-1\n      EDGE_VERSION: microsoft-edge-stable=145.0.3800.70-1\n    '144':\n      FIREFOX_VERSION: 144.0.2\n      FIREFOX_PLATFORMS: linux/amd64,linux/arm64\n      CHROME_VERSION: google-chrome-stable=144.0.7559.132-1\n      CFT_VERSION: 144.0.7559.133\n      EDGE_VERSION: microsoft-edge-stable=144.0.3719.115-1\n    '143':\n      FIREFOX_VERSION: 143.0.4\n      FIREFOX_PLATFORMS: linux/amd64,linux/arm64\n      CFT_VERSION: 143.0.7499.192\n      CHROME_VERSION: google-chrome-stable=143.0.7499.192-1\n      EDGE_VERSION: microsoft-edge-stable=143.0.3650.139-1\n    '142':\n      FIREFOX_VERSION: 142.0.1\n      FIREFOX_PLATFORMS: linux/amd64,linux/arm64\n      CHROME_VERSION: google-chrome-stable=142.0.7444.175-1\n      CFT_VERSION: 142.0.7444.175\n      EDGE_VERSION: microsoft-edge-stable=142.0.3595.94-1\n    '141':\n      EDGE_VERSION: microsoft-edge-stable=141.0.3537.99-1\n      CHROME_VERSION: google-chrome-stable=141.0.7390.122-1\n      FIREFOX_VERSION: 141.0.3\n      FIREFOX_PLATFORMS: linux/amd64,linux/arm64\n      CFT_VERSION: 141.0.7390.122\n    '140':\n      EDGE_VERSION: microsoft-edge-stable=140.0.3485.94-1\n      CHROME_VERSION: google-chrome-stable=140.0.7339.207-1\n      FIREFOX_VERSION: 140.0.4\n      FIREFOX_PLATFORMS: linux/amd64,linux/arm64\n      CFT_VERSION: 140.0.7339.207\n    '139':\n      EDGE_VERSION: microsoft-edge-stable=139.0.3405.125-1\n      CHROME_VERSION: google-chrome-stable=139.0.7258.154-1\n      FIREFOX_VERSION: 139.0.4\n      FIREFOX_PLATFORMS: linux/amd64,linux/arm64\n      CFT_VERSION: 139.0.7258.154\n    '138':\n      EDGE_VERSION: microsoft-edge-stable=138.0.3351.121-1\n      CHROME_VERSION: google-chrome-stable=138.0.7204.183-1\n      FIREFOX_VERSION: 138.0.4\n      FIREFOX_PLATFORMS: linux/amd64,linux/arm64\n      CFT_VERSION: 138.0.7204.183\n    '137':\n      EDGE_VERSION: microsoft-edge-stable=137.0.3296.93-1\n      CHROME_VERSION: google-chrome-stable=137.0.7151.119-1\n      FIREFOX_VERSION: 137.0.2\n      FIREFOX_PLATFORMS: linux/amd64,linux/arm64\n      CFT_VERSION: 137.0.7151.119\n    '136':\n      EDGE_VERSION: microsoft-edge-stable=136.0.3240.92-1\n      CHROME_VERSION: google-chrome-stable=136.0.7103.113-1\n      FIREFOX_VERSION: 136.0.4\n      FIREFOX_PLATFORMS: linux/amd64,linux/arm64\n      CFT_VERSION: 136.0.7103.113\n    '135':\n      EDGE_VERSION: microsoft-edge-stable=135.0.3179.98-1\n      CHROME_VERSION: google-chrome-stable=135.0.7049.114-1\n      FIREFOX_VERSION: 135.0.1\n      FIREFOX_DOWNLOAD_URL: https://download-installer.cdn.mozilla.net/pub/firefox/nightly/2025/01/2025-01-06-09-47-46-mozilla-central/firefox-135.0a1.en-US.linux-aarch64.deb\n      FIREFOX_PLATFORMS: linux/amd64,linux/arm64\n      CFT_VERSION: 135.0.7049.114\n    '134':\n      EDGE_VERSION: microsoft-edge-stable=134.0.3124.95-1\n      CHROME_VERSION: google-chrome-stable=134.0.6998.165-1\n      FIREFOX_VERSION: 134.0.2\n      FIREFOX_DOWNLOAD_URL: https://download-installer.cdn.mozilla.net/pub/firefox/nightly/2024/11/2024-11-25-09-40-45-mozilla-central/firefox-134.0a1.en-US.linux-aarch64.deb\n      FIREFOX_PLATFORMS: linux/amd64,linux/arm64\n      CFT_VERSION: 134.0.6998.165\n    '133':\n      EDGE_VERSION: microsoft-edge-stable=133.0.3065.92-1\n      CHROME_VERSION: google-chrome-stable=133.0.6943.141-1\n      FIREFOX_VERSION: 133.0.3\n      FIREFOX_DOWNLOAD_URL: https://download-installer.cdn.mozilla.net/pub/firefox/nightly/2024/10/2024-10-28-09-56-35-mozilla-central/firefox-133.0a1.en-US.linux-aarch64.deb\n      FIREFOX_PLATFORMS: linux/amd64,linux/arm64\n      CFT_VERSION: 133.0.6943.141\n    '132':\n      EDGE_VERSION: microsoft-edge-stable=132.0.2957.140-1\n      CHROME_VERSION: google-chrome-stable=132.0.6834.159-1\n      FIREFOX_VERSION: 132.0.2\n      FIREFOX_DOWNLOAD_URL: https://download-installer.cdn.mozilla.net/pub/firefox/nightly/2024/09/2024-09-30-09-17-27-mozilla-central/firefox-132.0a1.en-US.linux-aarch64.deb\n      FIREFOX_PLATFORMS: linux/amd64,linux/arm64\n      CFT_VERSION: 132.0.6834.159\n    '131':\n      EDGE_VERSION: microsoft-edge-stable=131.0.2903.147-1\n      CHROME_VERSION: google-chrome-stable=131.0.6778.264-1\n      FIREFOX_VERSION: 131.0.3\n      FIREFOX_DOWNLOAD_URL: https://download-installer.cdn.mozilla.net/pub/firefox/nightly/2024/09/2024-09-02-09-52-18-mozilla-central/firefox-131.0a1.en-US.linux-aarch64.deb\n      FIREFOX_PLATFORMS: linux/amd64,linux/arm64\n      CFT_VERSION: 131.0.6778.264\n    '130':\n      EDGE_VERSION: microsoft-edge-stable=130.0.2849.80-1\n      CHROME_VERSION: google-chrome-stable=130.0.6723.116-1\n      FIREFOX_VERSION: 130.0.1\n      FIREFOX_DOWNLOAD_URL: https://download-installer.cdn.mozilla.net/pub/firefox/nightly/2024/08/2024-08-05-09-44-37-mozilla-central/firefox-130.0a1.en-US.linux-aarch64.deb\n      FIREFOX_PLATFORMS: linux/amd64,linux/arm64\n      CFT_VERSION: 130.0.6723.116\n    '129':\n      EDGE_VERSION: microsoft-edge-stable=129.0.2792.89-1\n      CHROME_VERSION: google-chrome-stable=129.0.6668.100-1\n      FIREFOX_VERSION: 129.0.2\n      FIREFOX_DOWNLOAD_URL: https://download-installer.cdn.mozilla.net/pub/firefox/nightly/2024/07/2024-07-08-09-36-09-mozilla-central/firefox-129.0a1.en-US.linux-aarch64.deb\n      FIREFOX_PLATFORMS: linux/amd64,linux/arm64\n      CFT_VERSION: 129.0.6668.100\n    '128':\n      EDGE_VERSION: microsoft-edge-stable=128.0.2739.79-1\n      CHROME_VERSION: google-chrome-stable=128.0.6613.137-1\n      FIREFOX_VERSION: 128.0.3\n      FIREFOX_DOWNLOAD_URL: https://download-installer.cdn.mozilla.net/pub/firefox/nightly/2024/06/2024-06-09-20-51-51-mozilla-central/firefox-128.0a1.en-US.linux-aarch64.deb\n      FIREFOX_PLATFORMS: linux/amd64,linux/arm64\n      CFT_VERSION: 128.0.6613.137\n    '127':\n      EDGE_VERSION: microsoft-edge-stable=127.0.2651.105-1\n      CHROME_VERSION: google-chrome-stable=127.0.6533.119-1\n      FIREFOX_VERSION: 127.0.2\n      FIREFOX_DOWNLOAD_URL: https://download-installer.cdn.mozilla.net/pub/firefox/nightly/2024/05/2024-05-12-21-26-37-mozilla-central/firefox-127.0a1.en-US.linux-aarch64.deb\n      FIREFOX_PLATFORMS: linux/amd64,linux/arm64\n      CFT_VERSION: 127.0.6533.119\n    '126':\n      EDGE_VERSION: microsoft-edge-stable=126.0.2592.113-1\n      CHROME_VERSION: google-chrome-stable=126.0.6478.182-1\n      FIREFOX_VERSION: 126.0.1\n      CFT_VERSION: 126.0.6478.182\n    '125':\n      EDGE_VERSION: microsoft-edge-stable=125.0.2535.92-1\n      CHROME_VERSION: google-chrome-stable=125.0.6422.141-1\n      FIREFOX_VERSION: 125.0.3\n      CFT_VERSION: 125.0.6422.141\n    '124':\n      EDGE_VERSION: microsoft-edge-stable=124.0.2478.109-1\n      CHROME_VERSION: google-chrome-stable=124.0.6367.207-1\n      FIREFOX_VERSION: 124.0.2\n      CFT_VERSION: 124.0.6367.207\n    '123':\n      EDGE_VERSION: microsoft-edge-stable=123.0.2420.97-1\n      CHROME_VERSION: google-chrome-stable=123.0.6312.122-1\n      FIREFOX_VERSION: 123.0.1\n      CFT_VERSION: 123.0.6312.122\n    '122':\n      EDGE_VERSION: microsoft-edge-stable=122.0.2365.92-1\n      CHROME_VERSION: google-chrome-stable=122.0.6261.128-1\n      FIREFOX_VERSION: 122.0.1\n      CFT_VERSION: 122.0.6261.128\n    '121':\n      EDGE_VERSION: microsoft-edge-stable=121.0.2277.128-1\n      CHROME_VERSION: google-chrome-stable=121.0.6167.184-1\n      FIREFOX_VERSION: 121.0.1\n      CFT_VERSION: 121.0.6167.184\n    '120':\n      EDGE_VERSION: microsoft-edge-stable=120.0.2210.144-1\n      CHROME_VERSION: google-chrome-stable=120.0.6099.224-1\n      FIREFOX_VERSION: 120.0.1\n      CFT_VERSION: 120.0.6099.109\n    '119':\n      EDGE_VERSION: microsoft-edge-stable=119.0.2151.97-1\n      CHROME_VERSION: google-chrome-stable=119.0.6045.199-1\n      FIREFOX_VERSION: 119.0.1\n      CFT_VERSION: 119.0.6045.105\n    '118':\n      EDGE_VERSION: microsoft-edge-stable=118.0.2088.76-1\n      CHROME_VERSION: google-chrome-stable=118.0.5993.117-1\n      FIREFOX_VERSION: 118.0.2\n      CFT_VERSION: 118.0.5993.70\n    '117':\n      EDGE_VERSION: microsoft-edge-stable=117.0.2045.55-1\n      CHROME_VERSION: google-chrome-stable=117.0.5938.149-1\n      FIREFOX_VERSION: 117.0.1\n      CFT_VERSION: 117.0.5938.149\n    '116':\n      EDGE_VERSION: microsoft-edge-stable=116.0.1938.81-1\n      CHROME_VERSION: google-chrome-stable=116.0.5845.187-1\n      FIREFOX_VERSION: 116.0.3\n      CFT_VERSION: 116.0.5845.96\n    '115':\n      EDGE_VERSION: microsoft-edge-stable=115.0.1901.203-1\n      CHROME_VERSION: google-chrome-stable=115.0.5790.170-1\n      FIREFOX_VERSION: 115.0.3\n      CFT_VERSION: 115.0.5790.170\n    '114':\n      EDGE_VERSION: microsoft-edge-stable=114.0.1823.82-1\n      CHROME_VERSION: google-chrome-stable=114.0.5735.198-1\n      FIREFOX_VERSION: 114.0.2\n      CFT_VERSION: 114.0.5735.133\n    '113':\n      EDGE_VERSION: null\n      CHROME_VERSION: google-chrome-stable=113.0.5672.126-1\n      FIREFOX_VERSION: 113.0.2\n      CFT_VERSION: 113.0.5672.63\n    '112':\n      EDGE_VERSION: null\n      CHROME_VERSION: google-chrome-stable=112.0.5615.165-1\n      FIREFOX_VERSION: 112.0.2\n    '111':\n      EDGE_VERSION: null\n      CHROME_VERSION: google-chrome-stable=111.0.5563.146-1\n      FIREFOX_VERSION: 111.0.1\n    '110':\n      EDGE_VERSION: null\n      CHROME_VERSION: google-chrome-stable=110.0.5481.177-1\n      FIREFOX_VERSION: 110.0.1\n    '109':\n      CHROME_VERSION: google-chrome-stable=109.0.5414.119-1\n      FIREFOX_VERSION: 109.0.1\n    '108':\n      CHROME_VERSION: google-chrome-stable=108.0.5359.124-1\n      FIREFOX_VERSION: 108.0.2\n    '107':\n      CHROME_VERSION: google-chrome-stable=107.0.5304.121-1\n      FIREFOX_VERSION: 107.0.1\n    '106':\n      CHROME_VERSION: google-chrome-stable=106.0.5249.119-1\n      FIREFOX_VERSION: 106.0.5\n    '105':\n      CHROME_VERSION: google-chrome-stable=105.0.5195.125-1\n      FIREFOX_VERSION: 105.0.3\n    '104':\n      CHROME_VERSION: google-chrome-stable=104.0.5112.101-1\n      FIREFOX_VERSION: 104.0.2\n    '103':\n      CHROME_VERSION: google-chrome-stable=103.0.5060.134-1\n      FIREFOX_VERSION: 103.0.2\n    '102':\n      CHROME_VERSION: google-chrome-stable=102.0.5005.115-1\n      FIREFOX_VERSION: 102.0.1\n    '101':\n      CHROME_VERSION: google-chrome-stable=101.0.4951.64-1\n      FIREFOX_VERSION: 101.0.1\n    '100':\n      CHROME_VERSION: google-chrome-stable=100.0.4896.127-1\n      FIREFOX_VERSION: 100.0.2\n    '99':\n      CHROME_VERSION: google-chrome-stable=99.0.4844.84-1\n      FIREFOX_VERSION: 99.0.1\n    '98':\n      CHROME_VERSION: google-chrome-stable=98.0.4758.102-1\n      FIREFOX_VERSION: 98.0.2\n    '97':\n      CHROME_VERSION: google-chrome-stable=97.0.4692.99-1\n      FIREFOX_VERSION: 97.0.2\n    '96':\n      CHROME_VERSION: google-chrome-stable=96.0.4664.110-1\n      FIREFOX_VERSION: 96.0.3\n    '95':\n      CHROME_VERSION: google-chrome-stable=95.0.4638.69-1\n      EDGE_VERSION: microsoft-edge-stable=95.0.1020.40-1\n      FIREFOX_VERSION: 95.0.2\n"
  },
  {
    "path": "tests/build-backward-compatible/builder.py",
    "content": "import logging\nimport sys\n\nimport yaml\n\nlogging.basicConfig(level=logging.INFO, format=\"%(asctime)s - %(name)s - %(levelname)s - %(message)s\")\nlogger = logging.getLogger(__name__)\n\n\ndef load_template(yaml_file):\n    try:\n        with open(yaml_file) as file:\n            documents = yaml.safe_load(file)\n            return documents\n    except yaml.YAMLError as error:\n        logger.debug(\"Error in configuration file: \", error)\n\n\ndef recursive_merge(dict1, dict2):\n    for key in dict2:\n        if key in dict1 and isinstance(dict1[key], dict) and isinstance(dict2[key], dict):\n            recursive_merge(dict1[key], dict2[key])\n        else:\n            dict1[key] = dict2[key]\n\n\nif __name__ == '__main__':\n    # Load matrix configuration\n    selenium_matrix = load_template('tests/build-backward-compatible/selenium-matrix.yml')\n    browser_matrix = load_template('tests/build-backward-compatible/browser-matrix.yml')\n    # Merge configurations into single matrix\n    recursive_merge(selenium_matrix, browser_matrix)\n    matrix = selenium_matrix[\"matrix\"]\n    # Get versions from arguments\n    selenium_version = sys.argv[1]\n    browser_version = sys.argv[2]\n    browser_name = sys.argv[3]\n    # Create .env with component versions\n    with open('.env', 'w') as f:\n        BASE_RELEASE = matrix[\"selenium\"][selenium_version][\"BASE_RELEASE\"]\n        BASE_VERSION = matrix[\"selenium\"][selenium_version][\"BASE_VERSION\"]\n        VERSION = matrix[\"selenium\"][selenium_version][\"VERSION\"]\n        BINDING_VERSION = matrix[\"selenium\"][selenium_version][\"BINDING_VERSION\"]\n        f.write(f\"BASE_RELEASE={BASE_RELEASE}\\n\")\n        f.write(f\"BASE_VERSION={BASE_VERSION}\\n\")\n        f.write(f\"VERSION={VERSION}\\n\")\n        f.write(f\"BINDING_VERSION={BINDING_VERSION}\\n\")\n        if browser_name == \"firefox\" or browser_name == \"all\":\n            FIREFOX_VERSION = matrix[\"browser\"][browser_version][\"FIREFOX_VERSION\"]\n            f.write(f\"FIREFOX_VERSION={FIREFOX_VERSION}\\n\")\n            if \"FIREFOX_DOWNLOAD_URL\" in matrix[\"browser\"][browser_version]:\n                FIREFOX_DOWNLOAD_URL = matrix[\"browser\"][browser_version][\"FIREFOX_DOWNLOAD_URL\"]\n                f.write(f\"FIREFOX_DOWNLOAD_URL={FIREFOX_DOWNLOAD_URL}\\n\")\n            if \"FIREFOX_PLATFORMS\" in matrix[\"browser\"][browser_version]:\n                FIREFOX_PLATFORMS = matrix[\"browser\"][browser_version][\"FIREFOX_PLATFORMS\"]\n                f.write(f\"PLATFORMS={FIREFOX_PLATFORMS}\\n\")\n            else:\n                f.write(f\"PLATFORMS=linux/amd64\\n\")\n        if browser_name == \"edge\" or browser_name == \"all\":\n            EDGE_VERSION = matrix[\"browser\"][browser_version][\"EDGE_VERSION\"]\n            f.write(f\"EDGE_VERSION={EDGE_VERSION}\\n\")\n        if browser_name == \"chrome\" or browser_name == \"all\":\n            CHROME_VERSION = matrix[\"browser\"][browser_version][\"CHROME_VERSION\"]\n            f.write(f\"CHROME_VERSION={CHROME_VERSION}\")\n        if browser_name == \"chrome-for-testing\" or browser_name == \"all\":\n            CFT_VERSION = matrix[\"browser\"][browser_version][\"CFT_VERSION\"]\n            f.write(f\"CFT_VERSION={CFT_VERSION}\")\n"
  },
  {
    "path": "tests/build-backward-compatible/fetch_chrome_for_testing_version.py",
    "content": "import re\nfrom collections import defaultdict\n\nimport requests\nimport yaml\n\nlocal_file = 'tests/build-backward-compatible/browser-matrix.yml'\n\n\ndef fetch_chrome_for_testing_versions():\n    # Fetch latest stable version to use as maximum version filter\n    stable_url = 'https://googlechromelabs.github.io/chrome-for-testing/LATEST_RELEASE_STABLE'\n    stable_resp = requests.get(stable_url)\n    stable_resp.raise_for_status()\n    max_stable_version = stable_resp.text.strip()\n    print(f\"Latest stable version: {max_stable_version}\")\n\n    # Parse max stable version for comparison\n    max_stable_parts = list(map(int, max_stable_version.split('.')))\n\n    url = 'https://googlechromelabs.github.io/chrome-for-testing/known-good-versions.json'\n    resp = requests.get(url)\n    resp.raise_for_status()\n    data = resp.json()\n\n    # Extract versions from the JSON, filtering out versions higher than stable\n    versions = []\n    for item in data.get('versions', []):\n        version = item.get('version')\n        if version:\n            version_parts = list(map(int, version.split('.')))\n            # Only include versions <= max stable version (avoid dev/beta/canary)\n            if version_parts <= max_stable_parts:\n                versions.append(version)\n\n    # Group by major version and keep the highest patch\n    version_map = defaultdict(list)\n    for v in versions:\n        major = v.split('.')[0]\n        version_map[major].append(v)\n\n    # For each major, pick the highest version\n    result = {}\n    for major, vlist in version_map.items():\n        vlist.sort(key=lambda s: list(map(int, s.split('.'))))\n        result[major] = vlist[-1]\n\n    # Load existing browser-matrix.yml\n    with open(local_file, 'r') as file:\n        yaml_struct = yaml.safe_load(file)\n\n    # Ensure structure exists\n    if 'matrix' not in yaml_struct:\n        yaml_struct['matrix'] = {}\n    if 'browser' not in yaml_struct['matrix']:\n        yaml_struct['matrix']['browser'] = {}\n\n    # Update with CFT_VERSION\n    for major, version in sorted(result.items(), key=lambda x: int(x[0]), reverse=True):\n        major_key = str(major)\n        if major_key not in yaml_struct['matrix']['browser']:\n            yaml_struct['matrix']['browser'][major_key] = {}\n        yaml_struct['matrix']['browser'][major_key]['CFT_VERSION'] = version\n\n    # Write back to file\n    with open(local_file, 'w') as file:\n        yaml.dump(yaml_struct, file, default_flow_style=False, sort_keys=False)\n\n\nfetch_chrome_for_testing_versions()\n"
  },
  {
    "path": "tests/build-backward-compatible/fetch_firefox_version.py",
    "content": "import re\nfrom collections import defaultdict\n\nimport requests\nimport yaml\n\nlocal_file = 'tests/build-backward-compatible/firefox-matrix.yml'\n\n\ndef fetch_firefox_versions():\n    url = 'https://ftp.mozilla.org/pub/firefox/releases/'\n    resp = requests.get(url)\n    resp.raise_for_status()\n    # Extract version numbers like 136.0.4/\n    versions = re.findall(r'(\\d+\\.\\d+(?:\\.\\d+)?)/', resp.text)\n    # Filter out pre-releases\n    versions = [v for v in versions if not any(x in v for x in ['esr', 'rc', 'b', 'a'])]\n    # Group by major version and keep the highest patch\n    version_map = defaultdict(list)\n    for v in versions:\n        major = v.split('.')[0]\n        version_map[major].append(v)\n    # For each major, pick the highest version\n    result = {}\n    for major, vlist in version_map.items():\n        vlist.sort(key=lambda s: list(map(int, s.split('.'))))\n        result[major] = vlist[-1]\n    # Build YAML structure\n    yaml_struct = {'matrix': {'browser': {}}}\n    for major, version in sorted(result.items(), key=lambda x: int(x[0]), reverse=True):\n        yaml_struct['matrix']['browser'][str(major)] = {'FIREFOX_VERSION': version}\n    with open(local_file, 'w') as file:\n        yaml.dump(yaml_struct, file, default_flow_style=False, sort_keys=False)\n\n\nfetch_firefox_versions()\n"
  },
  {
    "path": "tests/build-backward-compatible/fetch_version.py",
    "content": "import requests\nimport yaml\n\n# URLs of the source YAML files\nchrome_url = 'https://raw.githubusercontent.com/NDViet/google-chrome-stable/refs/heads/main/browser-matrix.yml'\nedge_url = 'https://raw.githubusercontent.com/NDViet/microsoft-edge-stable/refs/heads/main/browser-matrix.yml'\nfirefox_url = 'tests/build-backward-compatible/firefox-matrix.yml'\n\n# Local YAML file to update\nlocal_file = 'tests/build-backward-compatible/browser-matrix.yml'\n\n\ndef fetch_yaml(url, local=False):\n    if not local:\n        response = requests.get(url)\n        response.raise_for_status()\n        return yaml.load(response.text, Loader=yaml.SafeLoader)\n    else:\n        with open(url, 'r') as f:\n            return yaml.load(f, Loader=yaml.SafeLoader)\n\n\ndef merge_dicts(dict1, dict2):\n    for key, value in dict2.items():\n        if key in dict1 and isinstance(dict1[key], dict) and isinstance(value, dict):\n            merge_dicts(dict1[key], value)\n        elif key in dict1 and '_PACKAGE_' not in key:\n            dict1[key] = value if value is not None else \"\"\n\n\ndef update_local_yaml(local_data, source_data):\n    updated = False\n    local_versions = local_data['matrix']['browser'].keys()\n    local_min_version = str(min(int(v) for v in local_versions)) if local_versions else \"0\"\n    for version, details in source_data['matrix']['browser'].items():\n        if version in local_data['matrix']['browser']:\n            original_details = local_data['matrix']['browser'][version]\n            for key in details:\n                if key in original_details and '_PACKAGE_' not in key:\n                    original_details[key] = details[key] if details[key] is not None else \"\"\n                    updated = True\n                elif '_PACKAGE_' not in key:\n                    original_details[key] = details[key] if details[key] is not None else \"\"\n                    updated = True\n            merge_dicts(original_details, details)\n        else:\n            if int(version) > int(local_min_version):\n                local_data['matrix']['browser'][version] = details\n                local_data['matrix']['browser'][version]['FIREFOX_PLATFORMS'] = 'linux/amd64,linux/arm64'\n                updated = True\n    return updated\n\n\ndef sort_keys(local_data):\n    # Sort local_data by key in matrix.browser\n    list_versions = list(local_data['matrix']['browser'].keys())\n    list_versions.sort(key=lambda x: int(x), reverse=True)\n    sorted_browser_dict = {}\n    for version in list_versions:\n        sorted_browser_dict[version] = local_data['matrix']['browser'][version]\n    local_data['matrix']['browser'] = sorted_browser_dict\n    return local_data\n\n\ndef main():\n    # Fetch source YAML data\n    chrome_data = fetch_yaml(chrome_url)\n    edge_data = fetch_yaml(edge_url)\n    firefox_data = fetch_yaml(firefox_url, local=True)\n\n    # Load local YAML data\n    with open(local_file, 'r') as file:\n        local_data = yaml.load(file, Loader=yaml.SafeLoader)\n\n    # Update local YAML data with source data\n    updated = update_local_yaml(local_data, chrome_data)\n    updated |= update_local_yaml(local_data, edge_data)\n    updated |= update_local_yaml(local_data, firefox_data)\n\n    # Save updated local YAML data\n    if updated:\n        with open(local_file, 'w') as file:\n            sort_keys(local_data)\n            yaml.dump(local_data, file, default_flow_style=False, sort_keys=False)\n        print(\"Local YAML file updated.\")\n    else:\n        print(\"No updates needed.\")\n\n\nif __name__ == '__main__':\n    main()\n"
  },
  {
    "path": "tests/build-backward-compatible/firefox-matrix.yml",
    "content": "matrix:\n  browser:\n    '148':\n      FIREFOX_VERSION: '148.0'\n    '147':\n      FIREFOX_VERSION: 147.0.4\n    '146':\n      FIREFOX_VERSION: 146.0.1\n    '145':\n      FIREFOX_VERSION: 145.0.2\n    '144':\n      FIREFOX_VERSION: 144.0.2\n    '143':\n      FIREFOX_VERSION: 143.0.4\n    '142':\n      FIREFOX_VERSION: 142.0.1\n    '141':\n      FIREFOX_VERSION: 141.0.3\n    '140':\n      FIREFOX_VERSION: 140.0.4\n    '139':\n      FIREFOX_VERSION: 139.0.4\n    '138':\n      FIREFOX_VERSION: 138.0.4\n    '137':\n      FIREFOX_VERSION: 137.0.2\n    '136':\n      FIREFOX_VERSION: 136.0.4\n    '135':\n      FIREFOX_VERSION: 135.0.1\n    '134':\n      FIREFOX_VERSION: 134.0.2\n    '133':\n      FIREFOX_VERSION: 133.0.3\n    '132':\n      FIREFOX_VERSION: 132.0.2\n    '131':\n      FIREFOX_VERSION: 131.0.3\n    '130':\n      FIREFOX_VERSION: 130.0.1\n    '129':\n      FIREFOX_VERSION: 129.0.2\n    '128':\n      FIREFOX_VERSION: 128.0.3\n    '127':\n      FIREFOX_VERSION: 127.0.2\n    '126':\n      FIREFOX_VERSION: 126.0.1\n    '125':\n      FIREFOX_VERSION: 125.0.3\n    '124':\n      FIREFOX_VERSION: 124.0.2\n    '123':\n      FIREFOX_VERSION: 123.0.1\n    '122':\n      FIREFOX_VERSION: 122.0.1\n    '121':\n      FIREFOX_VERSION: 121.0.1\n    '120':\n      FIREFOX_VERSION: 120.0.1\n    '119':\n      FIREFOX_VERSION: 119.0.1\n    '118':\n      FIREFOX_VERSION: 118.0.2\n    '117':\n      FIREFOX_VERSION: 117.0.1\n    '116':\n      FIREFOX_VERSION: 116.0.3\n    '115':\n      FIREFOX_VERSION: 115.0.3\n    '114':\n      FIREFOX_VERSION: 114.0.2\n    '113':\n      FIREFOX_VERSION: 113.0.2\n    '112':\n      FIREFOX_VERSION: 112.0.2\n    '111':\n      FIREFOX_VERSION: 111.0.1\n    '110':\n      FIREFOX_VERSION: 110.0.1\n    '109':\n      FIREFOX_VERSION: 109.0.1\n    '108':\n      FIREFOX_VERSION: 108.0.2\n    '107':\n      FIREFOX_VERSION: 107.0.1\n    '106':\n      FIREFOX_VERSION: 106.0.5\n    '105':\n      FIREFOX_VERSION: 105.0.3\n    '104':\n      FIREFOX_VERSION: 104.0.2\n    '103':\n      FIREFOX_VERSION: 103.0.2\n    '102':\n      FIREFOX_VERSION: 102.0.1\n    '101':\n      FIREFOX_VERSION: 101.0.1\n    '100':\n      FIREFOX_VERSION: 100.0.2\n    '99':\n      FIREFOX_VERSION: 99.0.1\n    '98':\n      FIREFOX_VERSION: 98.0.2\n    '97':\n      FIREFOX_VERSION: 97.0.2\n    '96':\n      FIREFOX_VERSION: 96.0.3\n    '95':\n      FIREFOX_VERSION: 95.0.2\n    '94':\n      FIREFOX_VERSION: 94.0.2\n    '93':\n      FIREFOX_VERSION: '93.0'\n    '92':\n      FIREFOX_VERSION: 92.0.1\n    '91':\n      FIREFOX_VERSION: 91.0.2\n    '90':\n      FIREFOX_VERSION: 90.0.2\n    '89':\n      FIREFOX_VERSION: 89.0.2\n    '88':\n      FIREFOX_VERSION: 88.0.1\n    '87':\n      FIREFOX_VERSION: '87.0'\n    '86':\n      FIREFOX_VERSION: 86.0.1\n    '85':\n      FIREFOX_VERSION: 85.0.2\n    '84':\n      FIREFOX_VERSION: 84.0.2\n    '83':\n      FIREFOX_VERSION: '83.0'\n    '82':\n      FIREFOX_VERSION: 82.0.3\n    '81':\n      FIREFOX_VERSION: 81.0.2\n    '80':\n      FIREFOX_VERSION: 80.0.1\n    '79':\n      FIREFOX_VERSION: '79.0'\n    '78':\n      FIREFOX_VERSION: 78.0.2\n    '77':\n      FIREFOX_VERSION: 77.0.1\n    '76':\n      FIREFOX_VERSION: 76.0.1\n    '75':\n      FIREFOX_VERSION: '75.0'\n    '74':\n      FIREFOX_VERSION: 74.0.1\n    '73':\n      FIREFOX_VERSION: 73.0.1\n    '72':\n      FIREFOX_VERSION: 72.0.2\n    '71':\n      FIREFOX_VERSION: '71.0'\n    '70':\n      FIREFOX_VERSION: 70.0.1\n    '69':\n      FIREFOX_VERSION: 69.0.3\n    '68':\n      FIREFOX_VERSION: 68.0.2\n    '67':\n      FIREFOX_VERSION: 67.0.4\n    '66':\n      FIREFOX_VERSION: 66.0.5\n    '65':\n      FIREFOX_VERSION: 65.0.2\n    '64':\n      FIREFOX_VERSION: 64.0.2\n    '63':\n      FIREFOX_VERSION: 63.0.3\n    '62':\n      FIREFOX_VERSION: 62.0.3\n    '61':\n      FIREFOX_VERSION: 61.0.2\n    '60':\n      FIREFOX_VERSION: 60.0.2\n    '59':\n      FIREFOX_VERSION: 59.0.3\n    '58':\n      FIREFOX_VERSION: 58.0.2\n    '57':\n      FIREFOX_VERSION: 57.0.4\n    '56':\n      FIREFOX_VERSION: 56.0.2\n    '55':\n      FIREFOX_VERSION: 55.0.3\n    '54':\n      FIREFOX_VERSION: 54.0.1\n    '53':\n      FIREFOX_VERSION: 53.0.3\n    '52':\n      FIREFOX_VERSION: 52.0.2\n    '51':\n      FIREFOX_VERSION: 51.0.1\n    '50':\n      FIREFOX_VERSION: 50.1.0\n    '49':\n      FIREFOX_VERSION: 49.0.2\n    '48':\n      FIREFOX_VERSION: 48.0.2\n    '47':\n      FIREFOX_VERSION: 47.0.2\n    '46':\n      FIREFOX_VERSION: 46.0.1\n    '45':\n      FIREFOX_VERSION: 45.0.2\n    '44':\n      FIREFOX_VERSION: 44.0.2\n    '43':\n      FIREFOX_VERSION: 43.0.4\n    '42':\n      FIREFOX_VERSION: '42.0'\n    '41':\n      FIREFOX_VERSION: 41.0.2\n    '40':\n      FIREFOX_VERSION: 40.0.3\n    '39':\n      FIREFOX_VERSION: 39.0.3\n    '38':\n      FIREFOX_VERSION: 38.0.6\n    '37':\n      FIREFOX_VERSION: 37.0.2\n    '36':\n      FIREFOX_VERSION: 36.0.4\n    '35':\n      FIREFOX_VERSION: 35.0.1\n    '34':\n      FIREFOX_VERSION: 34.0.5\n    '33':\n      FIREFOX_VERSION: 33.1.1\n    '32':\n      FIREFOX_VERSION: 32.0.3\n    '31':\n      FIREFOX_VERSION: '31.0'\n    '30':\n      FIREFOX_VERSION: '30.0'\n    '29':\n      FIREFOX_VERSION: 29.0.1\n    '28':\n      FIREFOX_VERSION: '28.0'\n    '27':\n      FIREFOX_VERSION: 27.0.1\n    '26':\n      FIREFOX_VERSION: '26.0'\n    '25':\n      FIREFOX_VERSION: 25.0.1\n    '24':\n      FIREFOX_VERSION: '24.0'\n    '23':\n      FIREFOX_VERSION: 23.0.1\n    '22':\n      FIREFOX_VERSION: '22.0'\n    '21':\n      FIREFOX_VERSION: '21.0'\n    '20':\n      FIREFOX_VERSION: 20.0.1\n    '19':\n      FIREFOX_VERSION: 19.0.2\n    '18':\n      FIREFOX_VERSION: 18.0.2\n    '17':\n      FIREFOX_VERSION: 17.0.1\n    '16':\n      FIREFOX_VERSION: 16.0.2\n    '15':\n      FIREFOX_VERSION: 15.0.1\n    '14':\n      FIREFOX_VERSION: 14.0.1\n    '13':\n      FIREFOX_VERSION: 13.0.1\n    '12':\n      FIREFOX_VERSION: '12.0'\n    '11':\n      FIREFOX_VERSION: '11.0'\n    '10':\n      FIREFOX_VERSION: 10.0.2\n    '9':\n      FIREFOX_VERSION: 9.0.1\n    '8':\n      FIREFOX_VERSION: 8.0.1\n    '7':\n      FIREFOX_VERSION: 7.0.1\n    '6':\n      FIREFOX_VERSION: 6.0.2\n    '5':\n      FIREFOX_VERSION: 5.0.12\n    '4':\n      FIREFOX_VERSION: 4.0.1\n    '3':\n      FIREFOX_VERSION: 3.6.28\n    '2':\n      FIREFOX_VERSION: '2.0'\n    '1':\n      FIREFOX_VERSION: '1.5'\n    '0':\n      FIREFOX_VERSION: 0.10.1\n"
  },
  {
    "path": "tests/build-backward-compatible/selenium-matrix.yml",
    "content": "matrix:\n  selenium:\n    nightly:\n      BASE_RELEASE: nightly\n      BASE_VERSION: 4.35.0-SNAPSHOT\n      VERSION: 4.35.0-SNAPSHOT\n      BINDING_VERSION: nightly\n    4.41.0:\n      BASE_RELEASE: selenium-4.41.0\n      BASE_VERSION: 4.41.0\n      VERSION: 4.41.0\n      BINDING_VERSION: 4.41.0\n      browser: []\n    4.40.0:\n      BASE_RELEASE: selenium-4.40.0\n      BASE_VERSION: 4.40.0\n      VERSION: 4.40.0\n      BINDING_VERSION: 4.40.0\n      browser: []\n    4.39.0:\n      BASE_RELEASE: selenium-4.39.0\n      BASE_VERSION: 4.39.0\n      VERSION: 4.39.0\n      BINDING_VERSION: 4.39.0\n      browser: []\n    4.38.0:\n      BASE_RELEASE: selenium-4.38.0\n      BASE_VERSION: 4.38.0\n      VERSION: 4.38.0\n      BINDING_VERSION: 4.38.0\n      browser: []\n    4.37.0:\n      BASE_RELEASE: selenium-4.37.0\n      BASE_VERSION: 4.37.0\n      VERSION: 4.37.0\n      BINDING_VERSION: 4.37.0\n      browser: []\n    4.36.0:\n      BASE_RELEASE: selenium-4.36.0\n      BASE_VERSION: 4.36.0\n      VERSION: 4.36.0\n      BINDING_VERSION: 4.36.0\n      browser: []\n    4.35.0:\n      BASE_RELEASE: selenium-4.35.0\n      BASE_VERSION: 4.35.0\n      VERSION: 4.35.0\n      BINDING_VERSION: 4.35.0\n      browser: []\n    4.34.0:\n      BASE_RELEASE: selenium-4.34.0\n      BASE_VERSION: 4.34.0\n      VERSION: 4.34.0\n      BINDING_VERSION: 4.34.0\n      browser: []\n    4.33.0:\n      BASE_RELEASE: selenium-4.33.0\n      BASE_VERSION: 4.33.0\n      VERSION: 4.33.0\n      BINDING_VERSION: 4.33.0\n      browser: []\n    4.32.0:\n      BASE_RELEASE: selenium-4.32.0\n      BASE_VERSION: 4.32.0\n      VERSION: 4.32.0\n      BINDING_VERSION: 4.32.0\n      browser: []\n    4.31.0:\n      BASE_RELEASE: selenium-4.31.0\n      BASE_VERSION: 4.31.0\n      VERSION: 4.31.0\n      BINDING_VERSION: 4.31.0\n      browser: []\n    4.30.0:\n      BASE_RELEASE: selenium-4.30.0\n      BASE_VERSION: 4.30.0\n      VERSION: 4.30.0\n      BINDING_VERSION: 4.30.0\n      browser: []\n    4.29.0:\n      BASE_RELEASE: selenium-4.29.0\n      BASE_VERSION: 4.29.0\n      VERSION: 4.29.0\n      BINDING_VERSION: 4.29.0\n      browser: []\n    4.28.1:\n      BASE_RELEASE: selenium-4.28.0\n      BASE_VERSION: 4.28.1\n      VERSION: 4.28.1\n      BINDING_VERSION: 4.28.1\n      browser: []\n    4.20.0:\n      BASE_RELEASE: selenium-4.20.0\n      BASE_VERSION: 4.20.0\n      VERSION: 4.20.0\n      BINDING_VERSION: 4.20.0\n      browser:\n      - 124\n      - 123\n      - 122\n    4.19.1:\n      BASE_RELEASE: selenium-4.19.0\n      BASE_VERSION: 4.19.1\n      VERSION: 4.19.1\n      BINDING_VERSION: 4.19.0\n      browser:\n      - 123\n      - 122\n      - 121\n    4.19.0:\n      BASE_RELEASE: selenium-4.19.0\n      BASE_VERSION: 4.19.0\n      VERSION: 4.19.0\n      BINDING_VERSION: 4.19.0\n      browser:\n      - 123\n      - 122\n      - 121\n    4.18.1:\n      BASE_RELEASE: selenium-4.18.0\n      BASE_VERSION: 4.18.1\n      VERSION: 4.18.1\n      BINDING_VERSION: 4.18.1\n      browser:\n      - 122\n      - 121\n      - 120\n    4.18.0:\n      BASE_RELEASE: selenium-4.18.0\n      BASE_VERSION: 4.18.0\n      VERSION: 4.18.0\n      BINDING_VERSION: 4.18.0\n      browser:\n      - 122\n      - 121\n      - 120\n    4.17.0:\n      BASE_RELEASE: selenium-4.17.0\n      BASE_VERSION: 4.17.0\n      VERSION: 4.17.0\n      BINDING_VERSION: 4.17.2\n      browser:\n      - 121\n      - 120\n      - 119\n    4.16.1:\n      BASE_RELEASE: selenium-4.16.0\n      BASE_VERSION: 4.16.1\n      VERSION: 4.16.1\n      BINDING_VERSION: 4.16.0\n      browser:\n      - 120\n      - 119\n      - 118\n    4.16.0:\n      BASE_RELEASE: selenium-4.16.0\n      BASE_VERSION: 4.16.0\n      VERSION: 4.16.0\n      BINDING_VERSION: 4.16.0\n      browser:\n      - 120\n      - 119\n      - 118\n    4.15.0:\n      BASE_RELEASE: selenium-4.15.0\n      BASE_VERSION: 4.15.0\n      VERSION: 4.15.0\n      BINDING_VERSION: 4.15.2\n      browser:\n      - 119\n      - 118\n      - 117\n    4.14.1:\n      BASE_RELEASE: selenium-4.14.0\n      BASE_VERSION: 4.14.1\n      VERSION: 4.14.1\n      BINDING_VERSION: 4.14.0\n      browser:\n      - 118\n      - 117\n      - 116\n    4.14.0:\n      BASE_RELEASE: selenium-4.14.0\n      BASE_VERSION: 4.14.0\n      VERSION: 4.14.0\n      BINDING_VERSION: 4.14.0\n      browser:\n      - 118\n      - 117\n      - 116\n    4.13.0:\n      BASE_RELEASE: selenium-4.13.0\n      BASE_VERSION: 4.13.0\n      VERSION: 4.13.0\n      BINDING_VERSION: 4.13.0\n      browser:\n      - 117\n      - 116\n      - 115\n    4.12.1:\n      BASE_RELEASE: selenium-4.12.0\n      BASE_VERSION: 4.12.1\n      VERSION: 4.12.1\n      BINDING_VERSION: 4.12.0\n      browser:\n      - 116\n      - 115\n      - 114\n    4.12.0:\n      BASE_RELEASE: selenium-4.12.0\n      BASE_VERSION: 4.12.0\n      VERSION: 4.12.0\n      BINDING_VERSION: 4.12.0\n      browser:\n      - 116\n      - 115\n      - 114\n    4.11.0:\n      BASE_RELEASE: selenium-4.11.0\n      BASE_VERSION: 4.11.0\n      VERSION: 4.11.0\n      BINDING_VERSION: 4.11.2\n      browser:\n      - 115\n      - 114\n      - 113\n    4.10.0:\n      BASE_RELEASE: selenium-4.10.0\n      BASE_VERSION: 4.10.0\n      VERSION: 4.10.0\n      BINDING_VERSION: 4.10.0\n      browser:\n      - 114\n      - 113\n      - 112\n"
  },
  {
    "path": "tests/build-backward-compatible/update_workflow_versions.py",
    "content": "#!/usr/bin/env python3\nimport re\nfrom pathlib import Path\n\nimport yaml\n\n# Minimum browser versions to include in workflows\nMIN_CHROME_VERSION = 95\nMIN_FIREFOX_VERSION = 98\nMIN_EDGE_VERSION = 114\nMIN_CFT_VERSION = 113\n\n\ndef read_browser_matrix(file_path, min_chrome_version, min_firefox_version, min_edge_version, min_cft_version):\n    \"\"\"Read the browser matrix YAML file and extract browser versions.\n\n    Args:\n        file_path: Path to the browser matrix YAML file\n        min_chrome_version: Minimum Chrome version to include\n        min_firefox_version: Minimum Firefox version to include\n        min_edge_version: Minimum Edge version to include\n        min_cft_version: Minimum Chrome for Testing version to include\n    \"\"\"\n    with open(file_path, 'r') as f:\n        data = yaml.safe_load(f)\n\n    chrome_versions = []\n    firefox_versions = []\n    edge_versions = []\n    cft_versions = []\n\n    browsers = data.get('matrix', {}).get('browser', {})\n\n    for version, details in browsers.items():\n        version_int = int(version)\n\n        # Check for Chrome versions (not null or empty) and above minimum\n        chrome_version = details.get('CHROME_VERSION')\n        if (\n            chrome_version\n            and chrome_version != 'null'\n            and str(chrome_version).strip()\n            and version_int >= min_chrome_version\n        ):\n            chrome_versions.append(version_int)\n\n        # Check for Firefox versions (not null or empty) and above minimum\n        firefox_version = details.get('FIREFOX_VERSION')\n        if (\n            firefox_version\n            and firefox_version != 'null'\n            and str(firefox_version).strip()\n            and version_int >= min_firefox_version\n        ):\n            firefox_versions.append(version_int)\n\n        # Check for Edge versions (not null or empty) and above minimum\n        edge_version = details.get('EDGE_VERSION')\n        if edge_version and edge_version != 'null' and str(edge_version).strip() and version_int >= min_edge_version:\n            edge_versions.append(version_int)\n\n        # Check for Chrome for Testing versions (not null or empty) and above minimum\n        cft_version = details.get('CFT_VERSION')\n        if cft_version and cft_version != 'null' and str(cft_version).strip() and version_int >= min_cft_version:\n            cft_versions.append(version_int)\n\n    # Sort versions in ascending order\n    chrome_versions.sort()\n    firefox_versions.sort()\n    edge_versions.sort()\n    cft_versions.sort()\n\n    # Exclude the last (newest) version from each list\n    # if chrome_versions:\n    #     chrome_versions = chrome_versions[:-1]\n    # if firefox_versions:\n    #     firefox_versions = firefox_versions[:-1]\n    # if edge_versions:\n    #     edge_versions = edge_versions[:-1]\n    # if cft_versions:\n    #     cft_versions = cft_versions[:-1]\n\n    return chrome_versions, firefox_versions, edge_versions, cft_versions\n\n\ndef format_version_list(versions):\n    \"\"\"Format version list as a string like '[95, 96, 97, ...]'\"\"\"\n    return str(versions)\n\n\ndef update_workflow_file(workflow_file, versions_list):\n    \"\"\"Update the workflow file with new version list for browser-versions.default only.\"\"\"\n    with open(workflow_file, 'r') as f:\n        lines = f.readlines()\n\n    updated_lines = []\n    in_browser_versions = False\n\n    for i, line in enumerate(lines):\n        # Check if we're in the browser-versions section\n        if re.match(r'^(\\s*)browser-versions:\\s*$', line):\n            in_browser_versions = True\n            updated_lines.append(line)\n        elif in_browser_versions and re.match(r'^(\\s*)default:\\s*', line):\n            # We found the default line within browser-versions section\n            indent_match = re.match(r'^(\\s*)default:', line)\n            indent = indent_match.group(1) if indent_match else ''\n            # Replace the line with new version list\n            updated_lines.append(f\"{indent}default: '{versions_list}'\\n\")\n            in_browser_versions = False  # Reset flag after updating\n        elif in_browser_versions and re.match(r'^(\\s+)(description|required|type):\\s*', line):\n            # Still within browser-versions section, continue\n            updated_lines.append(line)\n        elif in_browser_versions and re.match(r'^(\\s*)[a-zA-Z-]+:\\s*', line) and not re.match(r'^(\\s+)', line):\n            # We've moved to another top-level field, reset the flag\n            in_browser_versions = False\n            updated_lines.append(line)\n        else:\n            updated_lines.append(line)\n\n    with open(workflow_file, 'w') as f:\n        f.writelines(updated_lines)\n\n\ndef main():\n    # Paths\n    browser_matrix_file = Path('tests/build-backward-compatible/browser-matrix.yml')\n    chrome_workflow_file = Path('.github/workflows/release-chrome-versions.yml')\n    firefox_workflow_file = Path('.github/workflows/release-firefox-versions.yml')\n    edge_workflow_file = Path('.github/workflows/release-edge-versions.yml')\n    cft_workflow_file = Path('.github/workflows/release-chrome-for-testing-versions.yml')\n\n    # Read browser versions with minimum version filtering\n    chrome_versions, firefox_versions, edge_versions, cft_versions = read_browser_matrix(\n        browser_matrix_file,\n        min_chrome_version=MIN_CHROME_VERSION,\n        min_firefox_version=MIN_FIREFOX_VERSION,\n        min_edge_version=MIN_EDGE_VERSION,\n        min_cft_version=MIN_CFT_VERSION,\n    )\n\n    # Format version lists\n    chrome_list = format_version_list(chrome_versions)\n    firefox_list = format_version_list(firefox_versions)\n    edge_list = format_version_list(edge_versions)\n    cft_list = format_version_list(cft_versions)\n\n    print(f\"Chrome versions: {chrome_list}\")\n    print(f\"Firefox versions: {firefox_list}\")\n    print(f\"Edge versions: {edge_list}\")\n    print(f\"Chrome for Testing versions: {cft_list}\")\n\n    # Update workflow files\n    if chrome_workflow_file.exists():\n        update_workflow_file(chrome_workflow_file, chrome_list)\n        print(f\"Updated {chrome_workflow_file}\")\n\n    if firefox_workflow_file.exists():\n        update_workflow_file(firefox_workflow_file, firefox_list)\n        print(f\"Updated {firefox_workflow_file}\")\n\n    if edge_workflow_file.exists():\n        update_workflow_file(edge_workflow_file, edge_list)\n        print(f\"Updated {edge_workflow_file}\")\n\n    if cft_workflow_file.exists():\n        update_workflow_file(cft_workflow_file, cft_list)\n        print(f\"Updated {cft_workflow_file}\")\n\n\nif __name__ == '__main__':\n    main()\n"
  },
  {
    "path": "tests/charts/bootstrap.sh",
    "content": "#!/usr/bin/env bash\nmkdir -p tests/tests\ncd tests || true\n\nif [ \"${CI:-false}\" = \"false\" ]; then\n  pip3 install virtualenv | grep -v 'Requirement already satisfied'\n  virtualenv docker-selenium-tests\n  source docker-selenium-tests/bin/activate\nfi\n\npython3 -m pip install -r requirements.txt | grep -v 'Requirement already satisfied'\n\ncd ..\n\nhelm package charts/selenium-grid --version 1.0.0-SNAPSHOT -d tests/tests\n\nRELEASE_NAME=\"selenium\"\n\nhelm template --debug ${RELEASE_NAME} --values tests/charts/templates/render/dummy.yaml \\\n  --set autoscaling.scalingType=job \\\n  --set-file 'nodeConfigMap.extraScripts.setFromCommand\\.sh=tests/charts/templates/render/dummy_external.sh' \\\n  --set-file 'recorderConfigMap.extraScripts.setFromCommand\\.sh=tests/charts/templates/render/dummy_external.sh' \\\n  --set-file 'uploaderConfigMap.extraScripts.setFromCommand\\.sh=tests/charts/templates/render/dummy_external.sh' \\\n  tests/tests/selenium-grid-1.0.0-SNAPSHOT.tgz > ./tests/tests/dummy_job_template_manifests.yaml\n\npython3 tests/charts/templates/test_scaled_job.py \"./tests/tests/dummy_job_template_manifests.yaml\"\nif [ $? -ne 0 ]; then\n  echo \"Failed to validate the chart for ScaledJob\"\n  exit 1\nfi\n\nhelm template --debug ${RELEASE_NAME} --values tests/charts/templates/render/dummy.yaml \\\n  --set-file 'nodeConfigMap.extraScripts.setFromCommand\\.sh=tests/charts/templates/render/dummy_external.sh' \\\n  --set-file 'recorderConfigMap.extraScripts.setFromCommand\\.sh=tests/charts/templates/render/dummy_external.sh' \\\n  --set-file 'uploaderConfigMap.extraScripts.setFromCommand\\.sh=tests/charts/templates/render/dummy_external.sh' \\\n  tests/tests/selenium-grid-1.0.0-SNAPSHOT.tgz > ./tests/tests/dummy_template_manifests.yaml\n\npython3 tests/charts/templates/test.py \"./tests/tests/dummy_template_manifests.yaml\" ${RELEASE_NAME}\nif [ $? -ne 0 ]; then\n  echo \"Failed to validate the chart\"\n  exit 1\nfi\n\nrm -rf tests/charts/umbrella-charts/Chart.lock tests/charts/umbrella-charts/charts\nhelm dependency update tests/charts/umbrella-charts\nhelm dependency build tests/charts/umbrella-charts\nhelm package tests/charts/umbrella-charts --version 1.0.0-SNAPSHOT -d tests/tests\n\nRELEASE_NAME=\"test\"\n\nhelm template --debug ${RELEASE_NAME} --values tests/charts/templates/render/dummy_solution.yaml \\\n  --set-file 'selenium-grid.nodeConfigMap.extraScripts.setFromCommand\\.sh=tests/charts/templates/render/dummy_external.sh' \\\n  --set-file 'selenium-grid.recorderConfigMap.extraScripts.setFromCommand\\.sh=tests/charts/templates/render/dummy_external.sh' \\\n  --set-file 'selenium-grid.uploaderConfigMap.extraScripts.setFromCommand\\.sh=tests/charts/templates/render/dummy_external.sh' \\\n  tests/tests/umbrella-charts-1.0.0-SNAPSHOT.tgz > ./tests/tests/dummy_solution_template_manifests.yaml\n\npython3 tests/charts/templates/test.py \"./tests/tests/dummy_solution_template_manifests.yaml\" ${RELEASE_NAME}\nif [ $? -ne 0 ]; then\n  echo \"Failed to validate the umbrella chart\"\n  exit 1\nfi\n\nif [ \"${CI:-false}\" = \"false\" ]; then\n  deactivate\nfi\n"
  },
  {
    "path": "tests/charts/ci/DeploymentAutoscaling-values.yaml",
    "content": "global:\n  seleniumGrid:\n    nodeEnableManagedDownloads: ${SELENIUM_ENABLE_MANAGED_DOWNLOADS}\n\nautoscaling:\n  scalingType: deployment\n  scaledOptions:\n    minReplicaCount: 0\n    maxReplicaCount: 4\n    pollingInterval: 10\n  scaledObjectOptions:\n    cooldownPeriod: ${AUTOSCALING_COOLDOWN_PERIOD}\n  terminationGracePeriodSeconds: 360\n\n# Configuration for chrome nodes\nchromeNode:\n  # (test): user is able to change `SE_NODE_PORT`\n  port: 6666\n  # (test): user is able to set NodePort to expose `SE_NODE_PORT`\n  nodePort: 30666\n  # (test): user is able to define list extra container ports\n  ports:\n    - 5900\n    - 7900\n  service:\n    type: NodePort\n    # (test): user is able to define extra ports for Node service\n    ports:\n      - name: vnc-port\n        protocol: TCP\n        port: 5900\n        targetPort: 5900\n        nodePort: 30590\n      - name: novnc-port\n        protocol: TCP\n        port: 7900\n        targetPort: 7900\n        # NodePort will be assigned randomly if not set\n  extraEnvironmentVariables: &extraEnvironmentVariables\n    - name: SE_BROWSER_ARGS_DISABLE_FEATURES\n      value: \"--disable-features=OptimizationGuideModelDownloading,OptimizationHintsFetching,OptimizationTargetPrediction,OptimizationHints\"\n    - name: SE_BROWSER_ARGS_DISABLE_SEARCH_ENGINE\n      value: \"--disable-search-engine-choice-screen\"\n    - name: SE_VNC_NO_PASSWORD\n      value: \"true\"\n    - name: SE_SCREEN_WIDTH\n      value: \"1920\"\n    - name: SE_SCREEN_HEIGHT\n      value: \"1080\"\n    - name: TZ\n      value: \"Asia/Saigon\"\n    - name: SE_NODE_SESSION_TIMEOUT\n      value: \"3600\"\n    - name: SE_JAVA_HEAP_DUMP\n      value: \"true\"\n  readinessProbe:\n    enabled: &readinessProbe true\n  livenessProbe:\n    enabled: &livenessProbe true\n  extraVolumeMounts: &extraVolumeMounts\n    - name: logs\n      mountPath: /opt/selenium/logs\n      subPath: logs\n  extraVolumes: &extraVolumes\n    - name: logs\n      persistentVolumeClaim:\n        claimName: selenium-grid-pvc-local\n  scaledOverProvisionRatio: 1.1\n\n# Configuration for edge nodes\nedgeNode:\n  port: 8888\n  # (test): user is able to define extra container ports\n  ports:\n    - containerPort: 5900\n      name: vnc\n      protocol: TCP\n    - containerPort: 7900\n      name: novnc\n      protocol: TCP\n  extraEnvironmentVariables: *extraEnvironmentVariables\n  # (test): user is able to override probe method\n  startupProbe:\n    enabled: true\n    tcpSocket:\n      port: 8888\n  readinessProbe:\n    enabled: *readinessProbe\n  livenessProbe:\n    enabled: *livenessProbe\n  extraVolumeMounts: *extraVolumeMounts\n  extraVolumes: *extraVolumes\n\n# Configuration for firefox nodes\nfirefoxNode:\n  port: 7777\n  extraEnvironmentVariables: *extraEnvironmentVariables\n  readinessProbe:\n    enabled: *readinessProbe\n  livenessProbe:\n    enabled: *livenessProbe\n  extraVolumeMounts: *extraVolumeMounts\n  extraVolumes: *extraVolumes\n  scaledOverProvisionRatio: 1.2\n\n# Configuration for relay nodes\nrelayNode:\n  relayUrl: \"https://ondemand.$SAUCE_REGION.saucelabs.com:443/wd/hub\"\n  extraEnvFrom:\n    - secretRef:\n        name: test-cloud-credentials\n"
  },
  {
    "path": "tests/charts/ci/JobAutoscaling-values.yaml",
    "content": "global:\n  seleniumGrid:\n    nodeEnableManagedDownloads: ${SELENIUM_ENABLE_MANAGED_DOWNLOADS}\n\nautoscaling:\n  scalingType: job\n  scaledJobOptions:\n    successfulJobsHistoryLimit: 100\n    failedJobsHistoryLimit: 100\n    scalingStrategy:\n      strategy: default\n  scaledOptions:\n    minReplicaCount: 0\n    maxReplicaCount: 7\n    pollingInterval: 10\n# Configuration for chrome nodes\nchromeNode:\n  extraEnvironmentVariables: &extraEnvironmentVariables\n    - name: SE_VNC_NO_PASSWORD\n      value: \"true\"\n    - name: SE_SCREEN_WIDTH\n      value: \"1920\"\n    - name: SE_SCREEN_HEIGHT\n      value: \"1080\"\n    - name: TZ\n      value: \"Asia/Saigon\"\n    - name: SE_NODE_SESSION_TIMEOUT\n      value: \"3600\"\n    - name: SE_JAVA_HEAP_DUMP\n      value: \"true\"\n  readinessProbe:\n    enabled: &readinessProbe false\n  livenessProbe:\n    enabled: &livenessProbe true\n# Configuration for edge nodes\nedgeNode:\n  extraEnvironmentVariables: *extraEnvironmentVariables\n  readinessProbe:\n    enabled: *readinessProbe\n  livenessProbe:\n    enabled: *livenessProbe\n# Configuration for firefox nodes\nfirefoxNode:\n  extraEnvironmentVariables: *extraEnvironmentVariables\n  readinessProbe:\n    enabled: *readinessProbe\n  livenessProbe:\n    enabled: *livenessProbe\n# Configuration for relay nodes\nrelayNode:\n  relayUrl: \"https://ondemand.$SAUCE_REGION.saucelabs.com:443/wd/hub\"\n  extraEnvFrom:\n    - secretRef:\n        name: test-cloud-credentials\n"
  },
  {
    "path": "tests/charts/ci/NoAutoscaling-values.yaml",
    "content": "# This is used in Helm chart testing\n# Configuration for chrome nodes\nchromeNode:\n  port: 6666\n  nodeEnableManagedDownloads: &remoteDownload \"${SELENIUM_ENABLE_MANAGED_DOWNLOADS}\"\n  extraEnvironmentVariables: &extraEnvironmentVariables\n    - name: SE_VNC_NO_PASSWORD\n      value: \"true\"\n    - name: SE_SCREEN_WIDTH\n      value: \"1920\"\n    - name: SE_SCREEN_HEIGHT\n      value: \"1080\"\n    - name: TZ\n      value: \"Asia/Saigon\"\n    - name: SE_JAVA_HEAP_DUMP\n      value: \"true\"\n  readinessProbe:\n    enabled: &readinessProbe false\n  livenessProbe:\n    enabled: &livenessProbe true\n  extraVolumeMounts: &extraVolumeMounts\n    - name: logs\n      mountPath: /opt/selenium/logs\n      subPath: logs\n  extraVolumes: &extraVolumes\n    - name: logs\n      persistentVolumeClaim:\n        claimName: selenium-grid-pvc-local\n# Configuration for edge nodes\nedgeNode:\n  port: 8888\n  nodeEnableManagedDownloads: *remoteDownload\n  extraEnvironmentVariables: *extraEnvironmentVariables\n  readinessProbe:\n    enabled: *readinessProbe\n  livenessProbe:\n    enabled: *livenessProbe\n  extraVolumeMounts: *extraVolumeMounts\n  extraVolumes: *extraVolumes\n# Configuration for firefox nodes\nfirefoxNode:\n  port: 7777\n  nodeEnableManagedDownloads: *remoteDownload\n  extraEnvironmentVariables: *extraEnvironmentVariables\n  readinessProbe:\n    enabled: *readinessProbe\n  livenessProbe:\n    enabled: *livenessProbe\n  extraVolumeMounts: *extraVolumeMounts\n  extraVolumes: *extraVolumes\n"
  },
  {
    "path": "tests/charts/ci/base-auth-ingress-values.yaml",
    "content": "global:\n  seleniumGrid:\n    logLevel: INFO\n    stdoutProbeLog: true\n    sessionRequestTimeout: 800\n\nserverConfigMap:\n  env:\n    SE_SUPERVISORD_LOG_LEVEL: \"info\"\n\ningress:\n  enableWithController: true\n  className: traefik\n  hostname: \"\"\n\nbasicAuth:\n  enabled: false\n\nisolateComponents: true\n\nhub:\n  extraEnvironmentVariables: &extraEnvironmentVariables\n    - name: SE_SESSION_RETRY_INTERVAL\n      value: \"5\"\n    - name: SE_HEALTHCHECK_INTERVAL\n      value: \"15\"\n    - name: SE_REJECT_UNSUPPORTED_CAPS\n      value: \"false\"\n    - name: SE_LOG_LISTEN_GRAPHQL\n      value: \"true\"\n    - name: SE_JAVA_HEAP_DUMP\n      value: \"true\"\n  extraVolumeMounts: &extraVolumeMounts\n    - name: logs\n      mountPath: /opt/selenium/logs\n      subPath: logs\n  extraVolumes: &extraVolumes\n    - name: logs\n      persistentVolumeClaim:\n        claimName: selenium-grid-pvc-local\n\ncomponents:\n  extraEnvironmentVariables: *extraEnvironmentVariables\n  extraVolumeMounts: *extraVolumeMounts\n  extraVolumes: *extraVolumes\n\nkeda:\n  webhooks:\n    enabled: true\n\ntraefik:\n  ingressClass:\n    name: traefik\n  deployment:\n    kind: DaemonSet\n  ports:\n    web:\n      hostPort: 80\n    websecure:\n      hostPort: 443\n  service:\n    type: LoadBalancer\n"
  },
  {
    "path": "tests/charts/ci/base-recorder-values.yaml",
    "content": "# Use different container sidecar for uploader\n#videoRecorder:\n#  enabled: true\n#  uploader:\n#    enabled: \"${UPLOAD_ENABLED}\"\n#    name: s3\n#    destinationPrefix: \"s3://${BUCKET_NAME}\"\n#    secrets:\n#      AWS_REGION: \"ap-southeast-1\"\n#      AWS_ACCESS_KEY_ID: \"${AWS_ACCESS_KEY_ID}\"\n#      AWS_SECRET_ACCESS_KEY: \"${AWS_SECRET_ACCESS_KEY}\"\n\nvideoRecorder:\n  enabled: ${ENABLE_VIDEO_RECORDER}\n  extraVolumes:\n#   - name: videos\n#     persistentVolumeClaim:\n#       claimName: ${TEST_PV_CLAIM_NAME}\n  uploader:\n    enabled: true\n    destinationPrefix: \"myftp://ftp/seluser\"\n    secrets:\n      RCLONE_CONFIG_MYFTP_TYPE: \"ftp\"\n      RCLONE_CONFIG_MYFTP_HOST: \"ftp-server\"\n      RCLONE_CONFIG_MYFTP_PORT: \"21\"\n      RCLONE_CONFIG_MYFTP_USER: \"seluser\"\n      RCLONE_CONFIG_MYFTP_PASS: \"KkK8RsUIba-MMTBUSnuYIdAKvcnFyLl2pdhQig\"\n      RCLONE_CONFIG_MYFTP_FTP_CONCURRENCY: \"5\"\n\nvideoManager:\n  enabled: true\n  extraVolumeMounts:\n    - name: srv\n      mountPath: /srv\n      subPath: srv\n  extraVolumes:\n    - name: srv\n      persistentVolumeClaim:\n        claimName: ${TEST_PV_CLAIM_NAME}\n"
  },
  {
    "path": "tests/charts/ci/base-resources-values.yaml",
    "content": "components:\n  router:\n    resources:\n      requests:\n        cpu: 100m\n        memory: 256Mi\n      limits:\n        cpu: 500m\n        memory: 2500Mi\n  distributor:\n    resources:\n      requests:\n        cpu: \"1\"\n        memory: 1Gi\n      limits:\n        cpu: \"2\"\n        memory: 2Gi\n  eventBus:\n    resources:\n      requests:\n        cpu: 100m\n        memory: 256Mi\n      limits:\n        cpu: 200m\n        memory: 2500Mi\n  sessionMap:\n    resources:\n      requests:\n        cpu: 100m\n        memory: 256Mi\n      limits:\n        cpu: 200m\n        memory: 512Mi\n  sessionQueue:\n    resources:\n      requests:\n        cpu: 100m\n        memory: 256Mi\n      limits:\n        cpu: 200m\n        memory: 512Mi\n\nhub:\n  resources:\n    requests:\n      cpu: \"1\"\n      memory: 1Gi\n    limits:\n      cpu: \"2\"\n      memory: 2Gi\n\nchromeNode:\n  resources:\n    requests:\n      cpu: 100m\n      memory: 256Mi\n    limits:\n      cpu: 250m\n      memory: 2500Mi\n\nfirefoxNode:\n  resources:\n    requests:\n      cpu: 100m\n      memory: 256Mi\n    limits:\n      cpu: 250m\n      memory: 2500Mi\n\nedgeNode:\n  resources:\n    requests:\n      cpu: 100m\n      memory: 256Mi\n    limits:\n      cpu: 250m\n      memory: 2500Mi\n\nrelayNode:\n  resources:\n    requests:\n      cpu: 50m\n      memory: 256Mi\n    limits:\n      cpu: 250m\n      memory: 2500Mi\n\nvideoRecorder:\n  resources:\n    requests:\n      cpu: 100m\n      memory: 256Mi\n    limits:\n      cpu: 200m\n      memory: 512Mi\n"
  },
  {
    "path": "tests/charts/ci/base-subPath-values.yaml",
    "content": "hub:\n  subPath: \"/selenium\"\n\ncomponents:\n  router:\n    subPath: \"/selenium\"\n"
  },
  {
    "path": "tests/charts/ci/base-tls-values.yaml",
    "content": "registrationSecret:\n  enabled: true\n  value: \"HappyTestOps\"\n\nkube-prometheus-stack:\n  cleanPrometheusOperatorObjectNames: true\n  defaultRules:\n    create: true\n    annotations:\n      \"helm.sh/hook\": pre-install,pre-upgrade,pre-rollback,post-delete\n  alertmanager:\n    enabled: true\n    annotations:\n    ingress:\n      enabled: true\n      ingressClassName: nginx\n      hosts:\n        - alertmanager.selenium-grid.prod\n  grafana:\n    enabled: true\n    adminPassword: admin\n    forceDeployDatasources: true\n    forceDeployDashboards: true\n    annotations:\n    ingress:\n      enabled: true\n      ingressClassName: nginx\n      hosts:\n        - grafana.selenium-grid.prod\n  prometheus:\n    enabled: true\n    annotations:\n    ingress:\n      enabled: true\n      ingressClassName: nginx\n      hosts:\n        - pts.selenium-grid.prod\n    prometheusSpec:\n      storageSpec:\n        volumeClaimTemplate:\n          spec:\n            storageClassName: \"standard\"\n            accessModes: [\"ReadWriteOnce\"]\n            resources:\n              requests:\n                storage: 5Gi\n            selector:\n              matchLabels:\n                app.kubernetes.io/name: \"prometheus\"\n"
  },
  {
    "path": "tests/charts/ci/local-pvc.yaml",
    "content": "apiVersion: v1\nkind: Service\nmetadata:\n  name: ftp-server\n  namespace: ${SELENIUM_NAMESPACE}\n  labels:\n    app: ftp-server\nspec:\n  selector:\n    app: ftp-server\n  ports:\n    - protocol: TCP\n      name: ftp\n      port: 21\n      targetPort: 21\n    - protocol: TCP\n      name: ftp-data0\n      port: 21000\n      targetPort: 21000\n    - protocol: TCP\n      name: ftp-data1\n      port: 21001\n      targetPort: 21001\n    - protocol: TCP\n      name: ftp-data2\n      port: 21002\n      targetPort: 21002\n    - protocol: TCP\n      name: ftp-data3\n      port: 21003\n      targetPort: 21003\n    - protocol: TCP\n      name: ftp-data4\n      port: 21004\n      targetPort: 21004\n    - protocol: TCP\n      name: ftp-data5\n      port: 21005\n      targetPort: 21005\n---\napiVersion: apps/v1\nkind: Deployment\nmetadata:\n  name: ftp-server\n  namespace: ${SELENIUM_NAMESPACE}\nspec:\n  replicas: 1\n  selector:\n    matchLabels:\n      app: ftp-server\n  template:\n    metadata:\n      labels:\n        app: ftp-server\n    spec:\n      containers:\n        - name: ftp-server\n          image: delfer/alpine-ftp-server:latest\n          ports:\n            - name: ftp\n              containerPort: 21\n          livenessProbe:\n            tcpSocket:\n              port: ftp\n            initialDelaySeconds: 10\n            periodSeconds: 5\n            failureThreshold: 3\n            timeoutSeconds: 2\n          readinessProbe:\n            tcpSocket:\n              port: ftp\n            initialDelaySeconds: 5\n            periodSeconds: 5\n            failureThreshold: 3\n            timeoutSeconds: 2\n          resources:\n            limits:\n              cpu: \"200m\"\n              memory: \"256Mi\"\n            requests:\n              cpu: \"100m\"\n              memory: \"128Mi\"\n          env:\n            - name: USERS\n              value: \"seluser|selenium.dev\"\n            - name: MAX_PORT\n              value: \"21005\"\n            - name: TINI_SUBREAPER\n              value: \"true\"\n          volumeMounts:\n            - mountPath: /ftp/seluser\n              name: ftp-upload\n              subPath: seluser\n          command: [\"/bin/sh\", \"-c\", \"/sbin/tini -- /bin/start_vsftpd.sh && tail -f /dev/null\"]\n      volumes:\n        - name: ftp-upload\n          persistentVolumeClaim:\n            claimName: ${TEST_PV_CLAIM_NAME}\n---\napiVersion: v1\nkind: PersistentVolumeClaim\nmetadata:\n  name: ${TEST_PV_CLAIM_NAME}\n  namespace: ${SELENIUM_NAMESPACE}\n  labels:\n    app: ftp-server\nspec:\n  accessModes:\n    - \"ReadWriteOnce\"\n  resources:\n    requests:\n      storage: \"2Gi\"\n  storageClassName: \"standard\"\n---\napiVersion: v1\nkind: PersistentVolume\nmetadata:\n  name: pv-local\n  labels:\n    app: ftp-server\nspec:\n  accessModes:\n    - \"ReadWriteOnce\"\n  capacity:\n    storage: \"2Gi\"\n  claimRef:\n    name: ${TEST_PV_CLAIM_NAME}\n    namespace: ${SELENIUM_NAMESPACE}\n  hostPath:\n    path: \"${HOST_PATH}\"\n    type: DirectoryOrCreate\n  persistentVolumeReclaimPolicy: Delete\n  storageClassName: \"standard\"\n"
  },
  {
    "path": "tests/charts/ci/nameOverride-values.yaml",
    "content": "tls:\n  nameOverride: \"selenium-grid-tls\"\nbasicAuth:\n  nameOverride: \"selenium-grid-basic-auth\"\nserviceAccount:\n  nameOverride: \"selenium-grid-service-account\"\nrbacRole:\n  nameOverride: \"selenium-grid-role\"\nrbacRoleBinding:\n  nameOverride: \"selenium-grid-role-binding\"\nbusConfigMap:\n  nameOverride: \"selenium-grid-event-bus-config\"\ndistributorConfigMap:\n  nameOverride: \"selenium-grid-distributor-config\"\nrouterConfigMap:\n  nameOverride: \"selenium-grid-router-config\"\nnodeConfigMap:\n  nameOverride: \"selenium-grid-node-config\"\nrecorderConfigMap:\n  nameOverride: \"selenium-grid-recorder-config\"\nuploaderConfigMap:\n  nameOverride: \"selenium-grid-uploader-config\"\nloggingConfigMap:\n  nameOverride: \"selenium-grid-logger-config\"\nserverConfigMap:\n  nameOverride: \"selenium-grid-server-config\"\nsecrets:\n  nameOverride: \"selenium-grid-common-secrets\"\nautoscaling:\n  patchObjectFinalizers:\n    nameOverride: \"selenium-grid-patch\"\n"
  },
  {
    "path": "tests/charts/ci/the-internet-deployment.yaml",
    "content": "apiVersion: apps/v1\nkind: Deployment\nmetadata:\n  name: the-internet\n  labels:\n    app: the-internet\nspec:\n  replicas: 1\n  selector:\n    matchLabels:\n      app: the-internet\n  template:\n    metadata:\n      labels:\n        app: the-internet\n    spec:\n      containers:\n      - name: the-internet\n        image: ndviet/the-internet:latest\n        imagePullPolicy: IfNotPresent\n        ports:\n        - containerPort: 5000\n        resources:\n          limits:\n            cpu: \"200m\"\n            memory: \"256Mi\"\n          requests:\n            cpu: \"100m\"\n            memory: \"64Mi\"\n        livenessProbe:\n          httpGet:\n            path: /\n            port: 5000\n          initialDelaySeconds: 10\n          periodSeconds: 10\n          failureThreshold: 3\n        readinessProbe:\n          httpGet:\n            path: /\n            port: 5000\n          initialDelaySeconds: 5\n          periodSeconds: 5\n---\napiVersion: v1\nkind: Service\nmetadata:\n  name: the-internet\n  labels:\n    app: the-internet\nspec:\n  type: ClusterIP\n  ports:\n  - port: 5000\n    targetPort: 5000\n    protocol: TCP\n    name: http\n  selector:\n    app: the-internet\n"
  },
  {
    "path": "tests/charts/ci/uploader.conf",
    "content": "[myftp]\ntype = ftp\nhost = ftp-server\nport = 21\nuser = seluser\npass = KkK8RsUIba-MMTBUSnuYIdAKvcnFyLl2pdhQig\nftp-concurrency = 5\n"
  },
  {
    "path": "tests/charts/config/ct.yaml",
    "content": "# This is config file for chart-testing tool. It is used to test Helm charts.\n# https://github.com/helm/chart-testing\ntarget-branch: trunk\nchart-dirs:\n  - charts\nchart-repos:\n  - kedacore=https://kedacore.github.io/charts\n  - traefik=https://traefik.github.io/charts\n  - jaegertracing=https://jaegertracing.github.io/helm-charts\n  - prometheusCommunity=https://prometheus-community.github.io/helm-charts\n  - bitnami=https://charts.bitnami.com/bitnami\nupgrade: false\nhelm-extra-args: --timeout 600s\ncheck-version-increment: false\n"
  },
  {
    "path": "tests/charts/config/kind-cluster.yaml",
    "content": "# This Config is required for KIND cluster to enable ingress. Documented here https://kind.sigs.k8s.io/docs/user/ingress \nkind: Cluster\napiVersion: kind.x-k8s.io/v1alpha4\nnodes:\n- role: control-plane\n  kubeadmConfigPatches:\n  - |\n    kind: InitConfiguration\n    nodeRegistration:\n      kubeletExtraArgs:\n        node-labels: \"ingress-ready=true\"\n  extraPortMappings:\n  - containerPort: 80\n    hostPort: 80\n    protocol: TCP\n  - containerPort: 443\n    hostPort: 443\n    protocol: TCP\n"
  },
  {
    "path": "tests/charts/make/chart_build.sh",
    "content": "#!/bin/bash\nset -o xtrace\n\nSET_VERSION=${SET_VERSION:-\"true\"}\nCHART_PATH=${CHART_PATH:-\"charts/selenium-grid\"}\n\ncd tests || true\n\nif [ \"${CI:-false}\" = \"false\" ]; then\n  pip3 install virtualenv | grep -v 'Requirement already satisfied'\n  virtualenv docker-selenium-tests\n  source docker-selenium-tests/bin/activate\nelse\n  export PATH=$PATH:/home/$USER/.local/bin\nfi\n\npython3 -m pip install -r requirements.txt | grep -v 'Requirement already satisfied'\n\ncd ..\nrm -rf ${CHART_PATH}/Chart.lock\nct lint --all --config tests/charts/config/ct.yaml\n# Helm dependencies build and lint is done by `ct lint` command\nrm -rf ${CHART_PATH}/../*.tgz\n\nif [ \"${SET_VERSION}\" = \"true\" ]; then\n  ADD_VERSION=\"--version ${VERSION}\"\nelse\n  ADD_VERSION=\"\"\nfi\n\nhelm package ${CHART_PATH} ${ADD_VERSION} --destination ${CHART_PATH}/..\n\nreadlink -f ${CHART_PATH}/../*.tgz > /tmp/selenium_chart_version\ncat /tmp/selenium_chart_version\n\nif [ \"${CI:-false}\" = \"false\" ]; then\n  deactivate\nfi\n"
  },
  {
    "path": "tests/charts/make/chart_check_env.sh",
    "content": "#!/bin/bash\n\nREQUIRED_VERSION=\"24.0.9\"\nDOCKER_VERSION=$(docker --version | grep -oP '\\d+\\.\\d+\\.\\d+')\nversion_greater_equal() {\n    [ \"$1\" = \"$2\" ] && return 0\n    local IFS=.\n    local i ver1=($1) ver2=($2)\n    for ((i=0; i<${#ver1[@]}; i++)); do\n        [ -z \"${ver2[i]}\" ] && ver2[i]=0\n        ((10#${ver1[i]} > 10#${ver2[i]})) && return 0\n        ((10#${ver1[i]} < 10#${ver2[i]})) && return 1\n    done\n    return 0\n}\nif version_greater_equal \"$DOCKER_VERSION\" \"$REQUIRED_VERSION\"; then\n    echo \"Docker engine version is $DOCKER_VERSION\"\n    EXIT_CODE=0\nelse\n    echo \"Docker engine version is $DOCKER_VERSION, which does not meet the requirement.\"\n    EXIT_CODE=1\nfi\n\nDOCKER_CONFIG_FILE=\"/etc/docker/daemon.json\"\nif [ ! -f \"$DOCKER_CONFIG_FILE\" ]; then\n  echo \"Docker configuration file not found at $DOCKER_CONFIG_FILE\"\n  EXIT_CODE=1\nfi\nif cat \"$DOCKER_CONFIG_FILE\" | grep -q containerd; then\n  echo \"The containerd feature is enabled in Docker engine. $(cat $DOCKER_CONFIG_FILE)\"\nelse\n  echo \"The containerd feature is not enabled in Docker engine. $(cat $DOCKER_CONFIG_FILE)\"\n  EXIT_CODE=1\nfi\n\necho \"===============================\"\nif [ \"$EXIT_CODE\" -eq 1 ]; then\n  echo \"Check failed.\"\n  echo \"Please run the following command setup development environment: make setup_dev_env\"\n  exit $EXIT_CODE\nelse\n  echo \"All checks passed.\"\n  exit 0\nfi\n"
  },
  {
    "path": "tests/charts/make/chart_cluster_cleanup.sh",
    "content": "#!/bin/bash\n\necho \"Set ENV variables\"\nCLUSTER=${CLUSTER:-\"minikube\"}\nCLUSTER_NAME=${CLUSTER_NAME:-\"chart-testing\"}\n\ncleanup() {\n  if [ \"${CLUSTER}\" = \"kind\" ]; then\n    echo \"Clean up Kind cluster\"\n    kind delete clusters ${CLUSTER_NAME}\n  elif [ \"${CLUSTER}\" = \"minikube\" ]; then\n    echo \"Clean up Minikube cluster\"\n    sudo -SE minikube delete\n  fi\n}\n\ncleanup\n"
  },
  {
    "path": "tests/charts/make/chart_cluster_setup.sh",
    "content": "#!/bin/bash\nset -o xtrace\n\necho \"Set ENV variables\"\nCLUSTER=${CLUSTER:-\"minikube\"}\nCLUSTER_NAME=${CLUSTER_NAME:-\"chart-testing\"}\nRELEASE_NAME=${RELEASE_NAME:-\"test\"}\nSELENIUM_NAMESPACE=${SELENIUM_NAMESPACE:-\"selenium\"}\nKEDA_NAMESPACE=${KEDA_NAMESPACE:-\"keda\"}\nINGRESS_NAMESPACE=${INGRESS_NAMESPACE:-\"traefik\"}\nSUB_PATH=${SUB_PATH:-\"/selenium\"}\nCHART_PATH=${CHART_PATH:-\"charts/selenium-grid\"}\nTEST_VALUES_PATH=${TEST_VALUES_PATH:-\"tests/charts/ci\"}\nSELENIUM_GRID_HOST=${SELENIUM_GRID_HOST:-\"localhost\"}\nSELENIUM_GRID_PORT=${SELENIUM_GRID_PORT:-\"80\"}\nWAIT_TIMEOUT=${WAIT_TIMEOUT:-\"90s\"}\nSKIP_CLEANUP=${SKIP_CLEANUP:-\"false\"} # For debugging purposes, retain the cluster after the test run\nKUBERNETES_VERSION=${KUBERNETES_VERSION:-$(curl -L -s https://dl.k8s.io/release/stable.txt)}\nCNI=${CNI:-\"calico\"} # auto, calico, cilium\nCONTAINER_RUNTIME=${CONTAINER_RUNTIME:-\"docker\"} # docker, containerd, cri-o\nSERVICE_MESH=${SERVICE_MESH:-\"false\"}\n\n# Function to clean up for retry step on workflow\ncleanup() {\n  if [ \"${SKIP_CLEANUP}\" = \"false\" ]; then\n    ./tests/charts/make/chart_cluster_cleanup.sh\n  fi\n}\n\n# Function to be executed on command failure\non_failure() {\n    local exit_status=$?\n    echo \"There is step failed with exit status $exit_status\"\n    cleanup\n    exit $exit_status\n}\n\n# Trap ERR signal and call on_failure function\ntrap 'on_failure' ERR\n\nif [ \"${CLUSTER}\" = \"kind\" ]; then\n  echo \"Start Kind cluster\"\n  kind create cluster --image kindest/node:${KUBERNETES_VERSION} --wait ${WAIT_TIMEOUT} --name ${CLUSTER_NAME} --config tests/charts/config/kind-cluster.yaml\nelif [ \"${CLUSTER}\" = \"minikube\" ]; then\n  HOST_IP=\"$(hostname -I | cut -d' ' -f1)\"\n  echo \"Start Minikube cluster\"\n  sudo chmod 777 /tmp\n  export CHANGE_MINIKUBE_NONE_USER=true\n  NO_PROXY=\"$NO_PROXY,$HOST_IP\" sudo -SE minikube start --vm-driver=none \\\n  --kubernetes-version=${KUBERNETES_VERSION} --network-plugin=cni --cni=${CNI} --container-runtime=${CONTAINER_RUNTIME} --wait=all\n  sudo chown -R $USER $HOME/.kube $HOME/.minikube\n  if [ \"${SERVICE_MESH}\" = \"true\" ]; then\n    minikube addons enable istio-provisioner\n    minikube addons enable istio\n  fi\n  kubectl set env daemonset/calico-node -n kube-system IP_AUTODETECTION_METHOD=\"can-reach=${HOST_IP}\"\nfi\n\nif [ \"${CLUSTER}\" = \"kind\" ]; then\n  echo \"Load built local Docker Images into Kind Cluster\"\n  image_list=$(docker images --format \"{{.Repository}}:{{.Tag}}\" | grep ${NAMESPACE} | grep ${BUILD_DATE:-$VERSION})\n  for image in $image_list; do\n      kind load docker-image --name ${CLUSTER_NAME} \"$image\"\n  done\nfi\n"
  },
  {
    "path": "tests/charts/make/chart_release.sh",
    "content": "#!/bin/bash\nset -x\n\nNAMESPACE=${NAMESPACE:-\"selenium\"}\n# Function to be executed on command failure\n\nlatest_chart_version=$(find . \\( -type d -name .git -prune \\) -o -type f -wholename '*/selenium-grid/Chart.yaml' -print0 | xargs -0 cat | grep ^version | cut -d ':' -f 2 | tr -d '[:space:]')\necho \"${latest_chart_version}\" > /tmp/latest_chart_version\nhelm template oci://registry-1.docker.io/${NAMESPACE}/selenium-grid --version ${latest_chart_version}\nif [[ $? -eq 0 ]] && [[ \"${latest_chart_version}\" != *nightly ]]; then\n    echo \"Chart version $latest_chart_version is already available in the registry\"\n    exit 0\nfi\n\non_failure() {\n    local exit_status=$?\n    echo \"There is step failed with exit status $exit_status\"\n    exit $exit_status\n}\n\n# Trap ERR signal and call on_failure function\ntrap 'on_failure' ERR\n\nCHART_PACKAGE_PATH=$(cat /tmp/selenium_chart_version)\nif [ -z \"${CHART_PACKAGE_PATH}\" ] || [ ! -f \"${CHART_PACKAGE_PATH}\" ]; then\n    echo \"Chart package path is empty. Please trigger chart_build.sh before this script.\"\n    exit 1\nfi\n\necho \"Pushing chart package to the registry\"\nhelm push ${CHART_PACKAGE_PATH} oci://registry-1.docker.io/${NAMESPACE}\n"
  },
  {
    "path": "tests/charts/make/chart_setup_env.sh",
    "content": "#!/bin/bash\n\nset -x\n\necho \"Set ENV variables\"\nCLUSTER=${CLUSTER:-\"minikube\"}\nDOCKER_VERSION=${DOCKER_VERSION:-\"\"}\nDOCKER_ENABLE_QEMU=${DOCKER_ENABLE_QEMU:-\"true\"}\nHELM_VERSION=${HELM_VERSION:-\"latest\"}\nKUBERNETES_VERSION=${KUBERNETES_VERSION:-$(curl -L -s https://dl.k8s.io/release/stable.txt)}\nINSTALL_DOCKER=${INSTALL_DOCKER:-\"true\"}\n\n# Function to be executed on command failure\non_failure() {\n    local exit_status=$?\n    echo \"There is step failed with exit status $exit_status\"\n    exit $exit_status\n}\n\nif [[ \"${INSTALL_DOCKER}\" != \"true\" ]]; then\n    exit 0\nfi\n\n# Trap ERR signal and call on_failure function\ntrap 'on_failure' ERR\n\necho \"Installing Docker for AMD64 / ARM64\"\nsudo apt-get update -qq || true\nsudo apt-get install -yq ca-certificates curl wget jq\nsudo install -m 0755 -d /etc/apt/keyrings\nsudo curl -fsSL https://download.docker.com/linux/ubuntu/gpg -o /etc/apt/keyrings/docker.asc\nsudo chmod a+r /etc/apt/keyrings/docker.asc\necho \\\n    \"deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/ubuntu \\\n   $(. /etc/os-release && echo \"$VERSION_CODENAME\") stable\" | \\\nsudo tee /etc/apt/sources.list.d/docker.list > /dev/null\nsudo apt-get update -qq || true\nif [ -n \"${DOCKER_VERSION}\" ]; then\n  DOCKER_VERSION_EXPECT=$DOCKER_VERSION\n  if [[ \"${DOCKER_VERSION}\" == \"20.10\"* ]]; then\n    DOCKER_VERSION=\"=5:${DOCKER_VERSION}~3-0~$(. /etc/os-release; echo \"$ID\")-$(. /etc/os-release; echo \"$VERSION_CODENAME\")\"\n  else\n    DOCKER_VERSION=\"=5:${DOCKER_VERSION}-1~$(. /etc/os-release; echo \"$ID\").$(. /etc/os-release; echo \"$VERSION_ID\")~$(. /etc/os-release; echo \"$VERSION_CODENAME\")\"\n  fi\n  echo \"Installing package docker-ce${DOCKER_VERSION}\"\n  ALLOW_DOWNGRADE=\"--allow-downgrades\"\nfi\necho \"Installing Docker CE packages...\"\ntimeout 5m sudo apt-get install -yqf ${ALLOW_DOWNGRADE} docker-ce${DOCKER_VERSION} docker-ce-cli${DOCKER_VERSION} || {\n    echo \"Docker CE installation timed out or failed, retrying...\"\n    sudo apt-get install -yf ${ALLOW_DOWNGRADE} docker-ce${DOCKER_VERSION} docker-ce-cli${DOCKER_VERSION}\n}\n\necho \"Installing Docker plugins and container runtime...\"\ntimeout 5m sudo apt-get install -yqf ${ALLOW_DOWNGRADE} containerd.io docker-buildx-plugin docker-compose-plugin || {\n    echo \"Docker plugins installation timed out or failed, retrying...\"\n    sudo apt-get install -yf ${ALLOW_DOWNGRADE} containerd.io docker-buildx-plugin docker-compose-plugin\n}\n\necho \"Installing cross-compilation tools (may take a while)...\"\ntimeout 5m sudo apt-get install -yqf gcc-aarch64-linux-gnu qemu-user-static || {\n    echo \"Cross-compilation tools installation timed out or failed, retrying without quiet mode...\"\n    sudo apt-get install -yf gcc-aarch64-linux-gnu qemu-user-static\n}\nsudo chmod 666 /var/run/docker.sock\nif [ -n \"${DOCKER_VERSION_EXPECT}\" ]; then\n  DOCKER_VERSION_ACTUAL=\"$(docker version --format '{{.Server.Version}}')\"\n  if [ \"${DOCKER_VERSION_EXPECT}\" != \"${DOCKER_VERSION_ACTUAL}\" ]; then\n    exit 1\n  fi\nfi\ndocker version\ndocker buildx version\ndocker buildx use default || true\nif [ \"${DOCKER_ENABLE_QEMU}\" = \"true\" ]; then\n    docker run --privileged --rm tonistiigi/binfmt --install all ;\nfi\ndocker info\necho \"===============================\"\necho \"Installing Docker compose for AMD64 / ARM64\"\nif [ -z \"${DOCKER_COMPOSE_VERSION}\" ]; then\n    DOCKER_COMPOSE_VERSION=\"$(curl -s -L -o /dev/null -w '%{url_effective}\\n' https://github.com/docker/compose/releases/latest | sed -E 's#.*/tag/(v[0-9.]+).*#\\1#')\"\nfi\ncurl -fsSL -o ./docker-compose \"https://github.com/docker/compose/releases/download/${DOCKER_COMPOSE_VERSION}/docker-compose-linux-$(uname -m)\"\nchmod +x ./docker-compose\nsudo mv ./docker-compose /usr/libexec/docker/cli-plugins\ndocker compose version\necho \"===============================\"\necho \"Install Docker SBOMs plugin\"\ncurl -sSfL https://raw.githubusercontent.com/docker/sbom-cli-plugin/main/install.sh | sh -s --\ndocker sbom --version\necho \"===============================\"\nif [ \"${CLUSTER}\" = \"kind\" ]; then\n    echo \"Installing kind for AMD64 / ARM64\"\n    curl -fsSL -o ./kind https://kind.sigs.k8s.io/dl/latest/kind-linux-$(dpkg --print-architecture)\n    chmod +x ./kind\n    sudo cp -frp ./kind /usr/local/bin/kind\n    sudo ln -sf /usr/local/bin/kind /usr/bin/kind\n    rm -rf kind\n    kind version\n    echo \"===============================\"\nelif [ \"${CLUSTER}\" = \"minikube\" ]; then\n    echo \"Installing additional dependencies for running Minikube on none driver CRI-dockerd\"\n    echo \"===============================\"\n    echo \"Installing conntrack\"\n    sudo apt-get install -yq conntrack\n    echo \"===============================\"\n    echo \"Installing Minikube\"\n    curl -sLO https://storage.googleapis.com/minikube/releases/latest/minikube-linux-$(dpkg --print-architecture)\n    sudo install minikube-linux-$(dpkg --print-architecture) /usr/local/bin/minikube\n    minikube version\n    rm -rf minikube-linux-$(dpkg --print-architecture)\n    echo \"===============================\"\n    echo \"Installing Go\"\n    GO_VERSION=\"1.24.0\"\n    curl -sLO https://go.dev/dl/go$GO_VERSION.linux-$(dpkg --print-architecture).tar.gz\n    tar -xvf go$GO_VERSION.linux-$(dpkg --print-architecture).tar.gz -C /tmp\n    rm -rf go$GO_VERSION.linux-$(dpkg --print-architecture).tar.gz*\n    sudo rm -rf /usr/local/go\n    sudo mv /tmp/go /usr/local\n    export GOROOT=/usr/local/go\n    export GOPATH=$HOME/go\n    export PATH=$GOPATH/bin:$GOROOT/bin:$PATH\n    source $HOME/.profile || source $HOME/.bashrc\n    go version\n    echo \"===============================\"\n    echo \"Installing CRI-CTL (CLI for CRI-compatible container runtimes)\"\n    CRICTL_VERSION=\"$(curl -s -L -o /dev/null -w '%{url_effective}\\n' https://github.com/kubernetes-sigs/cri-tools/releases/latest | sed -E 's#.*/tag/(v[0-9.]+).*#\\1#')\"\n    curl -fsSL -o crictl.tar.gz https://github.com/kubernetes-sigs/cri-tools/releases/download/$CRICTL_VERSION/crictl-$CRICTL_VERSION-linux-$(dpkg --print-architecture).tar.gz\n    sudo tar -xf crictl.tar.gz -C /usr/local/bin\n    rm -rf crictl.tar.gz\n    crictl --version || true\n    echo \"===============================\"\n    echo \"Installing CRI-Dockerd\"\n    CRI_DOCKERD_VERSION=\"$(curl -s -L -o /dev/null -w '%{url_effective}\\n' https://github.com/Mirantis/cri-dockerd/releases/latest | sed -E 's#.*/tag/v([0-9.]+).*#\\1#')\"\n    curl -fsSL -o cri-dockerd.tgz https://github.com/Mirantis/cri-dockerd/releases/download/v$CRI_DOCKERD_VERSION/cri-dockerd-$CRI_DOCKERD_VERSION.$(dpkg --print-architecture).tgz\n    sudo tar -xf cri-dockerd.tgz -C /tmp\n    sudo mv /tmp/cri-dockerd/cri-dockerd /usr/local/bin/cri-dockerd\n    sudo chmod +x /usr/local/bin/cri-dockerd\n    rm -rf cri-dockerd.tgz cri-dockerd /tmp/cri-dockerd\n    git clone -q https://github.com/Mirantis/cri-dockerd.git --branch v$CRI_DOCKERD_VERSION --single-branch -c advice.detachedHead=false\n    sudo mkdir -p /etc/systemd/system\n    sudo cp -a -f cri-dockerd/packaging/systemd/* /etc/systemd/system\n    sudo sed -i -e 's,/usr/bin/cri-dockerd,/usr/local/bin/cri-dockerd,' /etc/systemd/system/cri-docker.service\n    sudo systemctl daemon-reload\n    sudo systemctl enable cri-docker.service\n    sudo systemctl enable cri-docker.socket\n    sudo systemctl status --no-pager cri-docker.socket || true\n    rm -rf cri-dockerd\n    cri-dockerd --version\n    echo \"===============================\"\n    echo \"Installing CNI-Plugins (Container Network Interface)\"\n    CNI_PLUGIN_VERSION=\"$(curl -s -L -o /dev/null -w '%{url_effective}\\n' https://github.com/containernetworking/plugins/releases/latest | sed -E 's#.*/tag/(v[0-9.]+).*#\\1#')\"\n    CNI_PLUGIN_TAR=\"cni-plugins-linux-$(dpkg --print-architecture)-$CNI_PLUGIN_VERSION.tgz\"\n    CNI_PLUGIN_INSTALL_DIR=\"/opt/cni/bin\"\n    curl -sLO \"https://github.com/containernetworking/plugins/releases/download/$CNI_PLUGIN_VERSION/$CNI_PLUGIN_TAR\"\n    sudo mkdir -p \"$CNI_PLUGIN_INSTALL_DIR\"\n    sudo tar -xf \"$CNI_PLUGIN_TAR\" -C \"$CNI_PLUGIN_INSTALL_DIR\"\n    rm -rf \"$CNI_PLUGIN_TAR\"\n    echo \"===============================\"\nfi\n\necho \"Installing kubectl for AMD64 / ARM64\"\ncurl -fsSL -o ./kubectl \"https://dl.k8s.io/release/${KUBERNETES_VERSION}/bin/linux/$(dpkg --print-architecture)/kubectl\"\nchmod +x ./kubectl\nsudo cp -frp ./kubectl /usr/local/bin/kubectl\nsudo ln -sf /usr/local/bin/kubectl /usr/bin/kubectl\nrm -rf kubectl\nkubectl version --client\necho \"===============================\"\n\necho \"Installing Helm for AMD64 / ARM64\"\nif [ \"${HELM_VERSION}\" = \"latest\" ]; then\n    HELM_VERSION=\"$(curl -s -L -o /dev/null -w '%{url_effective}\\n' https://github.com/helm/helm/releases/latest | sed -E 's#.*/tag/(v[0-9.]+).*#\\1#')\"\nfi\ncurl -fsSL -o helm.tar.gz https://get.helm.sh/helm-${HELM_VERSION}-linux-$(dpkg --print-architecture).tar.gz\nmkdir -p helm\ntar -xf helm.tar.gz --strip-components 1 -C helm\nsudo cp -frp helm/helm /usr/local/bin/helm\nsudo ln -sf /usr/local/bin/helm /usr/bin/helm\nrm -rf helm.tar.gz helm\nhelm version\necho \"===============================\"\n\necho \"Installing chart-testing for AMD64 / ARM64\"\nCHART_TESTING_VERSION=\"$(curl -s -L -o /dev/null -w '%{url_effective}\\n' https://github.com/helm/chart-testing/releases/latest | sed -E 's#.*/tag/v([0-9.]+).*#\\1#')\"\ncurl -fsSL -o ct.tar.gz https://github.com/helm/chart-testing/releases/download/v${CHART_TESTING_VERSION}/chart-testing_${CHART_TESTING_VERSION}_linux_$(dpkg --print-architecture).tar.gz\nsudo mkdir -p /opt/ct\nsudo tar -xzf ct.tar.gz -C /opt/ct\nsudo chmod +x /opt/ct/ct\nsudo ln -sf /opt/ct/ct /usr/bin/ct\nsudo cp -frp /opt/ct/ct /usr/local/bin/ct\nsudo cp -frp /opt/ct/etc /etc/ct\nrm -rf ct.tar.gz\nct version\necho \"===============================\"\necho \"Installing helm-docs for AMD64 / ARM64\"\nmkdir -p $HOME/go/bin\nGOBIN=$HOME/go/bin go install github.com/norwoodj/helm-docs/cmd/helm-docs@latest\n$HOME/go/bin/helm-docs -h || true\necho \"===============================\"\necho \"Installing envsubst for AMD64 / ARM64\"\nENVSUBST_VERSION=\"$(curl -s -L -o /dev/null -w '%{url_effective}\\n' https://github.com/a8m/envsubst/releases/latest | sed -E 's#.*/tag/v([0-9.]+).*#\\1#')\"\nARCH=$(if [ \"$(dpkg --print-architecture)\" = \"amd64\" ]; then echo \"x86_64\"; else echo \"$(dpkg --print-architecture)\"; fi)\ncurl -fsSL https://github.com/a8m/envsubst/releases/download/v${ENVSUBST_VERSION}/envsubst-$(uname -s)-${ARCH} -o envsubst\nchmod +x envsubst\nsudo mv envsubst /usr/local/bin\nsudo ln -sf /usr/local/bin/envsubst /usr/bin/envsubst\necho \"===============================\"\necho \"Installing Node for AMD64 / ARM64\"\ncurl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.40.0/install.sh | bash\nexport NVM_DIR=\"$HOME/.nvm\"\n[ -s \"$NVM_DIR/nvm.sh\" ] && \\. \"$NVM_DIR/nvm.sh\"\n[ -s \"$NVM_DIR/bash_completion\" ] && \\. \"$NVM_DIR/bash_completion\"\nsource $HOME/.bashrc\nnvm install --lts\nnode --version\nnpm --version\n"
  },
  {
    "path": "tests/charts/make/chart_test.sh",
    "content": "#!/bin/bash\nmkdir -p tests/tests\nset -o xtrace\n\necho \"Set ENV variables\"\nRESOURCE_ID=$(openssl rand -hex 4)\nCLUSTER_NAME=${CLUSTER_NAME:-\"chart-testing\"}\nRELEASE_NAME=${RELEASE_NAME:-\"test\"}\nSELENIUM_NAMESPACE=${SELENIUM_NAMESPACE:-\"selenium\"}\nKEDA_NAMESPACE=${KEDA_NAMESPACE:-\"keda\"}\nINGRESS_NAMESPACE=${INGRESS_NAMESPACE:-\"traefik\"}\nSUB_PATH=${SUB_PATH:-\"/selenium\"}\nCHART_PATH=${CHART_PATH:-\"charts/selenium-grid\"}\nTEST_VALUES_PATH=${TEST_VALUES_PATH:-\"tests/charts/ci\"}\nSELENIUM_GRID_PROTOCOL=${SELENIUM_GRID_PROTOCOL:-\"http\"}\nSELENIUM_GRID_HOST=${SELENIUM_GRID_HOST:-\"localhost\"}\nSELENIUM_GRID_PORT=${SELENIUM_GRID_PORT:-\"80\"}\nMATRIX_BROWSER=${1:-\"NodeChrome\"}\nSELENIUM_GRID_AUTOSCALING=${SELENIUM_GRID_AUTOSCALING:-\"true\"}\nSELENIUM_GRID_AUTOSCALING_MIN_REPLICA=${SELENIUM_GRID_AUTOSCALING_MIN_REPLICA:-\"0\"}\nWAIT_TIMEOUT=${WAIT_TIMEOUT:-\"90s\"}\nHUB_CHECKS_INTERVAL=${HUB_CHECKS_INTERVAL:-45}\nHUB_CHECKS_MAX_ATTEMPTS=${HUB_CHECKS_MAX_ATTEMPTS:-6}\nWEB_DRIVER_WAIT_TIMEOUT=${WEB_DRIVER_WAIT_TIMEOUT:-120}\nAUTOSCALING_POLL_INTERVAL=${AUTOSCALING_POLL_INTERVAL:-20}\nAUTOSCALING_COOLDOWN_PERIOD=${AUTOSCALING_COOLDOWN_PERIOD:-\"1800\"}\nENABLE_VIDEO_RECORDER=${ENABLE_VIDEO_RECORDER:-\"true\"}\nSCALING_STRATEGY=${SCALING_STRATEGY:-\"default\"}\nSKIP_CLEANUP=${SKIP_CLEANUP:-\"true\"} # For debugging purposes, retain the cluster after the test run\nCHART_CERT_PATH=${CHART_CERT_PATH:-\"${CHART_PATH}/certs/tls.crt\"}\nSSL_CERT_DIR=${SSL_CERT_DIR:-\"/etc/ssl/certs\"}\nVIDEO_TAG=${VIDEO_TAG:-\"latest\"}\nKEDA_BASED_NAME=${KEDA_BASED_NAME:-\"selenium\"}\nKEDA_BASED_TAG=${KEDA_BASED_TAG:-\"latest\"}\nCHART_ENABLE_TRACING=${CHART_ENABLE_TRACING:-\"false\"}\nCHART_FULL_DISTRIBUTED_MODE=${CHART_FULL_DISTRIBUTED_MODE:-\"false\"}\nHOSTNAME_ADDRESS=${HOSTNAME_ADDRESS:-${SELENIUM_GRID_HOST}}\nCHART_ENABLE_INGRESS_HOSTNAME=${CHART_ENABLE_INGRESS_HOSTNAME:-\"false\"}\nCHART_ENABLE_BASIC_AUTH=${CHART_ENABLE_BASIC_AUTH:-\"false\"}\nBASIC_AUTH_USERNAME=${BASIC_AUTH_USERNAME:-\"sysAdminUser\"}\nBASIC_AUTH_PASSWORD=${BASIC_AUTH_PASSWORD:-\"myStrongPassword\"}\nLOG_LEVEL=${LOG_LEVEL:-\"INFO\"}\nINGRESS_DISABLE_USE_HTTP2=${INGRESS_DISABLE_USE_HTTP2:-false}\nTEST_EXISTING_KEDA=${TEST_EXISTING_KEDA:-\"false\"}\nTEST_UPGRADE_CHART=${TEST_UPGRADE_CHART:-\"false\"}\nRENDER_HELM_TEMPLATE_ONLY=${RENDER_HELM_TEMPLATE_ONLY:-\"false\"}\nTEST_PV_CLAIM_NAME=${TEST_PV_CLAIM_NAME:-\"selenium-grid-pvc-local\"}\nLIMIT_RESOURCES=${LIMIT_RESOURCES:-\"true\"}\nTEST_PLATFORMS=${PLATFORMS:-\"linux/amd64\"}\nif [ \"${RELEASE_NAME}\" = \"selenium\" ]; then\n  SELENIUM_TLS_SECRET_NAME=\"selenium-tls-secret\"\nelse\n  SELENIUM_TLS_SECRET_NAME=\"${RELEASE_NAME}-selenium-tls-secret\"\nfi\nEXTERNAL_TLS_SECRET_NAME=${EXTERNAL_TLS_SECRET_NAME:-\"external-tls-secret-${RESOURCE_ID}\"}\nSELENIUM_ENABLE_MANAGED_DOWNLOADS=${SELENIUM_ENABLE_MANAGED_DOWNLOADS:-\"true\"}\nTEST_NODE_DRAIN_AFTER_SESSION_COUNT=${TEST_NODE_DRAIN_AFTER_SESSION_COUNT:-\"0\"}\nTEST_NODE_MAX_SESSIONS=${TEST_NODE_MAX_SESSIONS:-\"1\"}\nMAX_SESSIONS_CHROME=${MAX_SESSIONS_CHROME:-${TEST_NODE_MAX_SESSIONS}}\nMAX_SESSIONS_FIREFOX=${MAX_SESSIONS_FIREFOX:-${TEST_NODE_MAX_SESSIONS}}\nMAX_SESSIONS_EDGE=${MAX_SESSIONS_EDGE:-${TEST_NODE_MAX_SESSIONS}}\nTEST_NAME_OVERRIDE=${TEST_NAME_OVERRIDE:-\"false\"}\nTEST_PATCHED_KEDA=${TEST_PATCHED_KEDA:-\"false\"}\nBASIC_AUTH_EMBEDDED_URL=${BASIC_AUTH_EMBEDDED_URL:-\"false\"}\nSELENIUM_GRID_MONITORING=${SELENIUM_GRID_MONITORING:-\"true\"}\nTEST_EXISTING_PTS=${TEST_EXISTING_PTS:-\"false\"}\nTEST_MULTIPLE_VERSIONS=${TEST_MULTIPLE_VERSIONS:-\"false\"}\nTEST_MULTIPLE_VERSIONS_EXPLICIT=${TEST_MULTIPLE_VERSIONS_EXPLICIT:-\"true\"}\nTEST_MULTIPLE_PLATFORMS=${TEST_MULTIPLE_PLATFORMS:-\"false\"}\nTEST_MULTIPLE_PLATFORMS_RELAY=${TEST_MULTIPLE_PLATFORMS_RELAY:-\"false\"}\nTEST_CUSTOM_SPECIFIC_NAME=${TEST_CUSTOM_SPECIFIC_NAME:-\"false\"}\nTEST_VIDEO_RECORDER_SIDECAR=${TEST_VIDEO_RECORDER_SIDECAR:-\"false\"}\nTEST_SITE=${TEST_SITE:-\"the-internet:5000\"}\n\nwait_for_terminated() {\n  # Wait until no pods are in \"Terminating\" state\n  while true; do\n    terminating_pods=$(kubectl get pods -n ${SELENIUM_NAMESPACE} --no-headers | grep Terminating | wc -l)\n    if [ $terminating_pods -eq 0 ]; then\n      echo \"No pods in 'Terminating' state.\"\n      break\n    else\n      echo \"Waiting for $terminating_pods pod(s) to terminate...\"\n      sleep 2\n    fi\n  done\n}\n\ncleanup() {\n  # Get the list of pods\n  pods=$(kubectl get pods -n ${SELENIUM_NAMESPACE} -o jsonpath='{.items[*].metadata.name}')\n  # Iterate over the pods and print their logs\n  for pod in $pods; do\n    echo \"Logs for pod $pod\"\n    kubectl logs -n ${SELENIUM_NAMESPACE} $pod --all-containers --tail=10000 > tests/tests/pod_logs_${pod}.txt\n  done\n  if [ \"${SKIP_CLEANUP}\" = \"false\" ] || [ \"${CI:-false}\" != \"false\" ]; then\n    helm ls -A\n    echo \"Clean up chart release and namespace\"\n    helm delete ${RELEASE_NAME} --namespace ${SELENIUM_NAMESPACE} || true\n    wait_for_terminated\n    sudo chmod -R 777 ${HOST_PATH}/logs\n  fi\n}\n\n# Function to be executed on command failure\non_failure() {\n    local exit_status=$?\n    if [ ${RENDER_HELM_TEMPLATE_ONLY} = \"true\" ]; then\n      exit $exit_status\n    fi\n    kubectl get pods -n \"${SELENIUM_NAMESPACE}\" -o jsonpath='{.items[*].metadata.name}' | tr ' ' '\\n' | while read pod; do\n      echo \"Logs for pod $pod\"\n      kubectl logs -n \"${SELENIUM_NAMESPACE}\" \"$pod\" --all-containers --tail=10000\n    done\n    echo \"Get all resources in all namespaces\"\n    kubectl get all -A >> tests/tests/describe_all_resources_${MATRIX_BROWSER}.txt\n    echo \"Describe all resources in the ${SELENIUM_NAMESPACE} namespace for debugging purposes\"\n    kubectl describe all -n ${SELENIUM_NAMESPACE} >> tests/tests/describe_all_resources_${MATRIX_BROWSER}.txt\n    kubectl describe pod -n ${SELENIUM_NAMESPACE} >> tests/tests/describe_all_resources_${MATRIX_BROWSER}.txt\n    echo \"There is step failed with exit status $exit_status\"\n    sudo chmod -R 777 ${HOST_PATH}/logs\n    cleanup\n    exit $exit_status\n}\n\n# Trap ERR signal and call on_failure function\ntrap 'on_failure' ERR\n\nif [[ \"${RENDER_HELM_TEMPLATE_ONLY}\" != \"true\" ]] && [[ \"$(uname)\" != \"Darwin\" ]]; then\n  rm -rf tests/tests/*\n  touch tests/tests/describe_all_resources_${MATRIX_BROWSER}.txt\nfi\n\nif [ \"${RENDER_HELM_TEMPLATE_ONLY}\" = \"true\" ]; then\n  KEDA_BASED_NAME=\"${NAMESPACE}\"\n  KEDA_BASED_TAG=\"${KEDA_TAG_VERSION}-${BUILD_DATE}\"\n  TEST_EXISTING_PTS=\"true\"\nfi\n\nif [ -f .env ]\nthen\n    export \"$(cat .env | xargs)\"\nfi\nmkdir -p ./tests/videos\nexport RELEASE_NAME=${RELEASE_NAME}\nexport SELENIUM_NAMESPACE=${SELENIUM_NAMESPACE}\nexport TEST_PV_CLAIM_NAME=${TEST_PV_CLAIM_NAME}\nexport HOST_PATH=$(realpath ./tests/videos)\nexport SELENIUM_ENABLE_MANAGED_DOWNLOADS=${SELENIUM_ENABLE_MANAGED_DOWNLOADS}\nexport AUTOSCALING_COOLDOWN_PERIOD=${AUTOSCALING_COOLDOWN_PERIOD}\nexport ENABLE_VIDEO_RECORDER=${ENABLE_VIDEO_RECORDER}\nRECORDER_VALUES_FILE=${TEST_VALUES_PATH}/base-recorder-values.yaml\nMATRIX_BROWSER_VALUES_FILE=${TEST_VALUES_PATH}/${MATRIX_BROWSER}-values.yaml\nenvsubst < ${RECORDER_VALUES_FILE} > ./tests/tests/base-recorder-values.yaml\nenvsubst < ${MATRIX_BROWSER_VALUES_FILE} > ./tests/tests/${MATRIX_BROWSER}-values.yaml\nRECORDER_VALUES_FILE=./tests/tests/base-recorder-values.yaml\nMATRIX_BROWSER_VALUES_FILE=./tests/tests/${MATRIX_BROWSER}-values.yaml\n\nif [ \"${TEST_UPGRADE_CHART}\" != \"true\" ] && [ \"${RENDER_HELM_TEMPLATE_ONLY}\" != \"true\" ]; then\n  LOCAL_PVC_YAML=\"${TEST_VALUES_PATH}/local-pvc.yaml\"\n  envsubst < ${LOCAL_PVC_YAML} > ./tests/tests/local-pvc.yaml\n  LOCAL_PVC_YAML=./tests/tests/local-pvc.yaml\n#  kubectl delete -n ${SELENIUM_NAMESPACE} -f ${LOCAL_PVC_YAML} --ignore-not-found=true\n  sudo rm -rf ${HOST_PATH}; sudo mkdir -p ${HOST_PATH}/logs\n  sudo chmod -R 777 ${HOST_PATH}\n  kubectl create ns ${SELENIUM_NAMESPACE} || true\n  kubectl apply -n ${SELENIUM_NAMESPACE} -f ${LOCAL_PVC_YAML}\n  kubectl apply -n ${SELENIUM_NAMESPACE} -f \"${TEST_VALUES_PATH}/the-internet-deployment.yaml\"\n  kubectl describe pod,svc,pv,pvc -n ${SELENIUM_NAMESPACE} -l app=ftp-server\n  kubectl describe pod,svc,pv,pvc -n ${SELENIUM_NAMESPACE} -l app=the-internet\nfi\n\nif [ \"${TEST_NAME_OVERRIDE}\" = \"true\" ]; then\n  HELM_COMMAND_SET_BASE_VALUES=\"${HELM_COMMAND_SET_BASE_VALUES} \\\n  --values ${TEST_VALUES_PATH}/nameOverride-values.yaml \\\n  \"\n  SELENIUM_TLS_SECRET_NAME=\"selenium-grid-tls\"\nfi\n\nHELM_COMMAND_SET_IMAGES=\" \\\n--set global.seleniumGrid.imageRegistry=${NAMESPACE} \\\n--set global.seleniumGrid.imageTag=${VERSION} \\\n--set global.seleniumGrid.nodesImageTag=${VERSION} \\\n--set global.seleniumGrid.videoImageTag=${VIDEO_TAG} \\\n--set autoscaling.scaledOptions.pollingInterval=${AUTOSCALING_POLL_INTERVAL} \\\n--set tracing.enabled=${CHART_ENABLE_TRACING} \\\n--set global.seleniumGrid.httpLogs=${CHART_ENABLE_TRACING} \\\n--set isolateComponents=${CHART_FULL_DISTRIBUTED_MODE} \\\n--set global.seleniumGrid.logLevel=${LOG_LEVEL} \\\n--set global.seleniumGrid.nodeDrainAfterSessionCount=${TEST_NODE_DRAIN_AFTER_SESSION_COUNT} \\\n--set chromeNode.nodeMaxSessions=${MAX_SESSIONS_CHROME} \\\n--set firefoxNode.nodeMaxSessions=${MAX_SESSIONS_FIREFOX} \\\n--set edgeNode.nodeMaxSessions=${MAX_SESSIONS_EDGE} \\\n\"\n\nif [ -n \"${SET_UPDATE_STRATEGY}\" ]; then\n  HELM_COMMAND_SET_IMAGES=\"${HELM_COMMAND_SET_IMAGES} \\\n  --set global.seleniumGrid.updateStrategy.type=${SET_UPDATE_STRATEGY} \\\n  \"\nfi\n\nif [ -n \"${TRACING_EXPORTER_ENDPOINT}\" ]; then\n  HELM_COMMAND_SET_IMAGES=\"${HELM_COMMAND_SET_IMAGES} \\\n  --set tracing.exporterEndpoint=\\\\\"${TRACING_EXPORTER_ENDPOINT}\\\\\" \\\n  \"\nfi\n\nif [ \"${TEST_CUSTOM_SPECIFIC_NAME}\" = \"true\" ]; then\n  HELM_COMMAND_SET_IMAGES=\"${HELM_COMMAND_SET_IMAGES} \\\n  --set-literal global.seleniumGrid.nodeCustomCapabilities={'myApp:version':'beta','myApp:publish':'public'} \\\n  \"\nfi\n\nif [ -n \"${SET_SESSION_REQUEST_TIMEOUT}\" ]; then\n  HELM_COMMAND_SET_IMAGES=\"${HELM_COMMAND_SET_IMAGES} \\\n  --set global.seleniumGrid.sessionRequestTimeout=${SET_SESSION_REQUEST_TIMEOUT} \\\n  \"\nfi\n\nif [ \"${SELENIUM_GRID_AUTOSCALING}\" = \"true\" ] && [ \"${TEST_EXISTING_KEDA}\" = \"true\" ]; then\n  HELM_COMMAND_SET_IMAGES=\"${HELM_COMMAND_SET_IMAGES} \\\n  --set autoscaling.enabled=false \\\n  --set autoscaling.enableWithExistingKEDA=true \\\n  --set autoscaling.scaledJobOptions.scalingStrategy.strategy=${SCALING_STRATEGY} \\\n  \"\nelif [ \"${SELENIUM_GRID_AUTOSCALING}\" = \"true\" ] && [ \"${TEST_EXISTING_KEDA}\" = \"false\" ]; then\n  HELM_COMMAND_SET_IMAGES=\"${HELM_COMMAND_SET_IMAGES} \\\n  --set autoscaling.enabled=true \\\n  --set autoscaling.enableWithExistingKEDA=false \\\n  --set autoscaling.scaledJobOptions.scalingStrategy.strategy=${SCALING_STRATEGY} \\\n  \"\nfi\n\nif [ \"${TEST_EXTERNAL_DATASTORE}\" = \"postgresql\" ]; then\n  HELM_COMMAND_SET_IMAGES=\"${HELM_COMMAND_SET_IMAGES} \\\n  --set components.sessionMap.externalDatastore.enabled=true \\\n  --set components.sessionMap.externalDatastore.backend=postgresql \\\n  --set postgresql.enabled=true \\\n  \"\nelif [ \"${TEST_EXTERNAL_DATASTORE}\" = \"redis\" ]; then\n  HELM_COMMAND_SET_IMAGES=\"${HELM_COMMAND_SET_IMAGES} \\\n  --set components.sessionMap.externalDatastore.enabled=true \\\n  --set components.sessionMap.externalDatastore.backend=redis \\\n  --set redis.enabled=true \\\n  \"\nfi\n\nif [ \"${SELENIUM_GRID_MONITORING}\" = \"true\" ] && [ \"${TEST_EXISTING_PTS}\" = \"true\" ]; then\n  HELM_COMMAND_SET_IMAGES=\"${HELM_COMMAND_SET_IMAGES} \\\n  --set monitoring.enabled=false \\\n  --set monitoring.enabledWithExistingAgent=true \\\n  \"\nelif [ \"${SELENIUM_GRID_MONITORING}\" = \"true\" ] && [ \"${TEST_EXISTING_PTS}\" = \"false\" ]; then\n  HELM_COMMAND_SET_IMAGES=\"${HELM_COMMAND_SET_IMAGES} \\\n  --set monitoring.enabled=true \\\n  --set monitoring.enabledWithExistingAgent=false \\\n  \"\nfi\n\nif [ \"${SELENIUM_GRID_AUTOSCALING}\" = \"true\" ] && [ -n \"${SET_MAX_REPLICAS}\" ]; then\n  HELM_COMMAND_SET_IMAGES=\"${HELM_COMMAND_SET_IMAGES} \\\n  --set autoscaling.scaledOptions.maxReplicaCount=${SET_MAX_REPLICAS} \\\n  \"\nfi\n\nif [ \"${SELENIUM_GRID_AUTOSCALING}\" = \"true\" ] && [ \"${CLEAR_POD_HISTORY}\" = \"true\" ]; then\n  HELM_COMMAND_SET_IMAGES=\"${HELM_COMMAND_SET_IMAGES} \\\n  --set autoscaling.scaledJobOptions.successfulJobsHistoryLimit=0 \\\n  --set autoscaling.scaledJobOptions.failedJobsHistoryLimit=0 \\\n  \"\nfi\n\nif [[ \"$(uname)\" != \"Darwin\" ]]  && [[ \"${RENDER_HELM_TEMPLATE_ONLY}\" != \"true\" ]]; then\n    HOSTNAME_ADDRESS_IP=\"$(hostname -I | cut -d' ' -f1)\"\nelse\n    HOSTNAME_ADDRESS_IP=\"127.0.0.1\"\nfi\nif [ \"${CHART_ENABLE_INGRESS_HOSTNAME}\" = \"true\" ] && [ \"${RENDER_HELM_TEMPLATE_ONLY}\" != \"true\" ]; then\n  if [[ ! $(cat /etc/hosts) == *\"${HOSTNAME_ADDRESS}\"* ]]; then\n    sudo -- sh -c -e \"echo \\\"${HOSTNAME_ADDRESS_IP} ${HOSTNAME_ADDRESS}\\\" >> /etc/hosts\"\n  fi\n  if [[ ! $(cat /etc/hosts) == *\"alertmanager.${HOSTNAME_ADDRESS}\"* ]]; then\n    sudo -- sh -c -e \"echo \\\"${HOSTNAME_ADDRESS_IP} alertmanager.${HOSTNAME_ADDRESS}\\\" >> /etc/hosts\"\n  fi\n  if [[ ! $(cat /etc/hosts) == *\"grafana.${HOSTNAME_ADDRESS}\"* ]]; then\n    sudo -- sh -c -e \"echo \\\"${HOSTNAME_ADDRESS_IP} grafana.${HOSTNAME_ADDRESS}\\\" >> /etc/hosts\"\n  fi\n  if [[ ! $(cat /etc/hosts) == *\"pts.${HOSTNAME_ADDRESS}\"* ]]; then\n    sudo -- sh -c -e \"echo \\\"${HOSTNAME_ADDRESS_IP} pts.${HOSTNAME_ADDRESS}\\\" >> /etc/hosts\"\n  fi\n  if [[ \"$(uname)\" != \"Darwin\" ]]; then\n    ping -c 2 ${HOSTNAME_ADDRESS}\n  fi\n  HELM_COMMAND_SET_IMAGES=\"${HELM_COMMAND_SET_IMAGES} \\\n  --set ingress.hostname=${HOSTNAME_ADDRESS} \\\n  \"\n  SELENIUM_GRID_HOST=${HOSTNAME_ADDRESS}\nelse\n  HELM_COMMAND_SET_IMAGES=\"${HELM_COMMAND_SET_IMAGES} \\\n  --set global.K8S_PUBLIC_IP=${SELENIUM_GRID_HOST} \\\n  \"\nfi\n\nif [ \"${CHART_ENABLE_BASIC_AUTH}\" = \"true\" ]; then\n  HELM_COMMAND_SET_IMAGES=\"${HELM_COMMAND_SET_IMAGES} \\\n  --set basicAuth.enabled=${CHART_ENABLE_BASIC_AUTH} \\\n  --set basicAuth.username=${BASIC_AUTH_USERNAME} \\\n  --set basicAuth.password=${BASIC_AUTH_PASSWORD} \\\n  --set basicAuth.embeddedUrl=${BASIC_AUTH_EMBEDDED_URL} \\\n  \"\n  export SELENIUM_GRID_USERNAME=${BASIC_AUTH_USERNAME}\n  export SELENIUM_GRID_PASSWORD=${BASIC_AUTH_PASSWORD}\nfi\n\nif [ \"${TEST_PLATFORMS}\" != \"linux/amd64\" ]; then\n  HELM_COMMAND_SET_IMAGES=\"${HELM_COMMAND_SET_IMAGES} \\\n  --set edgeNode.enabled=false \\\n  \"\nfi\n\nif [ \"${TEST_PLATFORMS}\" != \"linux/amd64\" ] || [ \"${TEST_CHROMIUM}\" = \"true\" ]; then\n  HELM_COMMAND_SET_IMAGES=\"${HELM_COMMAND_SET_IMAGES} \\\n  --set chromeNode.imageName=node-chromium \\\n  \"\nfi\n\nif [ \"${SERVICE_TYPE_NODEPORT}\" = \"true\" ]; then\n  HELM_COMMAND_SET_IMAGES=\"${HELM_COMMAND_SET_IMAGES} \\\n  --set ingress.enabled=false \\\n  --set ingress.enableWithController=false \\\n  --set hub.serviceType=NodePort \\\n  --set components.router.serviceType=NodePort \\\n  \"\nfi\n\nif [ \"${SECURE_INGRESS_ONLY_GENERATE}\" = \"true\" ] && [ \"${RENDER_HELM_TEMPLATE_ONLY}\" != \"true\" ]; then\n  HELM_COMMAND_SET_IMAGES=\"${HELM_COMMAND_SET_IMAGES} \\\n  --set tls.ingress.generateTLS=true \\\n  --set tls.ingress.defaultCN=${SELENIUM_GRID_HOST} \\\n  --set tls.ingress.defaultSANList[0]=${SELENIUM_GRID_HOST} \\\n  --set tls.ingress.defaultIPList[0]=${HOSTNAME_ADDRESS_IP} \\\n  \"\nfi\n\nif [ \"${SECURE_INGRESS_ONLY_DEFAULT}\" = \"true\" ]; then\n  HELM_COMMAND_SET_IMAGES=\"${HELM_COMMAND_SET_IMAGES} \\\n  --set tls.ingress.enabled=true \\\n  \"\nfi\n\nif [ \"${INGRESS_DISABLE_USE_HTTP2}\" = \"true\" ]; then\n  HELM_COMMAND_SET_IMAGES=\"${HELM_COMMAND_SET_IMAGES} \\\n  --set ingress.traefik.serversTransport.spec.disableHTTP2=true \\\n  \"\nelse\n  HELM_COMMAND_SET_IMAGES=\"${HELM_COMMAND_SET_IMAGES} \\\n  --set ingress.traefik.serversTransport.spec.disableHTTP2=false \\\n  \"\nfi\n\nif [ \"${SECURE_CONNECTION_SERVER}\" = \"true\" ]; then\n  HELM_COMMAND_SET_IMAGES=\"${HELM_COMMAND_SET_IMAGES} \\\n  --set tls.enabled=true \\\n  \"\nfi\n\nif [ \"${SECURE_USE_EXTERNAL_CERT}\" = \"true\" ] && [ \"${RENDER_HELM_TEMPLATE_ONLY}\" != \"true\" ]; then\n  HELM_COMMAND_SET_IMAGES=\"${HELM_COMMAND_SET_IMAGES} \\\n  --set tls.create=false\n  --set tls.nameOverride=${EXTERNAL_TLS_SECRET_NAME} \\\n  --set traefik.tlsStore.default.defaultCertificate.secretName=\"${EXTERNAL_TLS_SECRET_NAME}\" \\\n  \"\n  cert_dir=\"./tests/tests\"\n  if [[ ! -f \"./tests/tests/tls.crt\" ]] && [[ \"$(uname)\" != \"Darwin\" ]]; then\n    ADD_IP_ADDRESS=hostname ./${CHART_PATH}/certs/gen-cert-helper.sh -d ${cert_dir}\n  else\n    cp -rf ./charts/selenium-grid/certs/* ./tests/tests/\n  fi\n  kubectl create secret generic -n ${SELENIUM_NAMESPACE} ${EXTERNAL_TLS_SECRET_NAME} \\\n    --from-file=tls.crt=${cert_dir}/tls.crt \\\n    --from-file=tls.key=${cert_dir}/tls.key \\\n    --from-file=server.jks=${cert_dir}/server.jks \\\n    --from-file=server.pass=${cert_dir}/server.pass \\\n    --dry-run=client -o yaml | kubectl apply -n ${SELENIUM_NAMESPACE} -f -\n  CHART_CERT_PATH=\"./tests/tests/tls.crt\"\nfi\n\nif [ \"${RENDER_HELM_TEMPLATE_ONLY}\" != \"true\" ]; then\n  kubectl create secret generic -n ${SELENIUM_NAMESPACE} test-cloud-credentials \\\n  --from-literal=SAUCE_REGION=${SAUCE_REGION} \\\n  --dry-run=client -o yaml | kubectl apply -n ${SELENIUM_NAMESPACE} -f -\nfi\n\nif [ \"${SECURE_INGRESS_ONLY_CONFIG_INLINE}\" = \"true\" ]; then\n  if [ \"${SECURE_USE_EXTERNAL_CERT}\" = \"true\" ]; then\n    HELM_COMMAND_SET_IMAGES=\"${HELM_COMMAND_SET_IMAGES} \\\n    --set ingress.tls[0].hosts[0]=${SELENIUM_GRID_HOST} \\\n    --set ingress.tls[0].secretName=${EXTERNAL_TLS_SECRET_NAME} \\\n    \"\n  else\n    HELM_COMMAND_SET_IMAGES=\"${HELM_COMMAND_SET_IMAGES} \\\n    --set ingress.tls[0].hosts[0]=${SELENIUM_TLS_SECRET_NAME} \\\n    \"\n  fi\nfi\n\nif [ \"${SELENIUM_GRID_PROTOCOL}\" = \"https\" ] && [ \"${CHART_ENABLE_INGRESS_HOSTNAME}\" != \"true\" ]; then\n  if [ \"${SECURE_USE_EXTERNAL_CERT}\" = \"true\" ]; then\n    HELM_COMMAND_SET_IMAGES=\"${HELM_COMMAND_SET_IMAGES} \\\n    --set traefik.tlsStore.default.defaultCertificate.secretName=${EXTERNAL_TLS_SECRET_NAME} \\\n    \"\n  else\n    HELM_COMMAND_SET_IMAGES=\"${HELM_COMMAND_SET_IMAGES} \\\n    --set traefik.tlsStore.default.defaultCertificate.secretName=${SELENIUM_TLS_SECRET_NAME} \\\n    \"\n  fi\nfi\n\nif [ \"${SELENIUM_GRID_AUTOSCALING}\" = \"true\" ]; then\n  HELM_COMMAND_SET_AUTOSCALING=\" \\\n  --set autoscaling.scaledOptions.minReplicaCount=${SELENIUM_GRID_AUTOSCALING_MIN_REPLICA} \\\n  \"\nfi\n\nif [ \"${EXTERNAL_UPLOADER_CONFIG}\" = \"true\" ]; then\n    HELM_COMMAND_SET_IMAGES=\"${HELM_COMMAND_SET_IMAGES} \\\n    --set videoRecorder.uploader.secrets=null \\\n    --set-file uploaderConfigMap.secretFiles.upload\\.conf=${TEST_VALUES_PATH}/uploader.conf \\\n    \"\nfi\n\nif [ \"${TEST_VIDEO_RECORDER_SIDECAR}\" = \"true\" ]; then\n    HELM_COMMAND_SET_IMAGES=\"${HELM_COMMAND_SET_IMAGES} \\\n    --set videoRecorder.sidecarContainer=true\n    \"\nfi\n\nHELM_COMMAND_SET_BASE_VALUES=\"${HELM_COMMAND_SET_BASE_VALUES} \\\n--values ${TEST_VALUES_PATH}/base-auth-ingress-values.yaml \\\n--values ${RECORDER_VALUES_FILE} \\\n\"\n\nif [ \"${LIMIT_RESOURCES}\" = \"true\" ]; then\n  HELM_COMMAND_SET_BASE_VALUES=\"${HELM_COMMAND_SET_BASE_VALUES} \\\n  --values ${TEST_VALUES_PATH}/base-resources-values.yaml \\\n  \"\nfi\n\nif [ \"${SUB_PATH}\" = \"/selenium\" ]; then\n  HELM_COMMAND_SET_BASE_VALUES=\"${HELM_COMMAND_SET_BASE_VALUES} \\\n  --values ${TEST_VALUES_PATH}/base-subPath-values.yaml \\\n  \"\nfi\n\nif [ \"${SUB_PATH}\" = \"/\" ]; then\n  SUB_PATH=\"\"\nfi\n\nif [ \"${SELENIUM_GRID_PROTOCOL}\" = \"https\" ]; then\n  HELM_COMMAND_SET_BASE_VALUES=\"${HELM_COMMAND_SET_BASE_VALUES} \\\n  --values ${TEST_VALUES_PATH}/base-tls-values.yaml \\\n  \"\nfi\n\nif [ \"${TEST_MULTIPLE_VERSIONS}\" = \"true\" ]; then\n  HELM_COMMAND_SET_BASE_VALUES=\"${HELM_COMMAND_SET_BASE_VALUES} \\\n  --values ${CHART_PATH}/multiple-nodes-platform-version.yaml \\\n  \"\nelif [ \"${TEST_MULTIPLE_PLATFORMS}\" = \"true\" ] && [ \"${TEST_MULTIPLE_PLATFORMS_RELAY}\" != \"true\" ]; then\n  HELM_COMMAND_SET_BASE_VALUES=\"${HELM_COMMAND_SET_BASE_VALUES} \\\n  --values ${CHART_PATH}/multiple-nodes-platform.yaml \\\n  \"\nelif [ \"${TEST_MULTIPLE_PLATFORMS_RELAY}\" = \"true\" ]; then\n  HELM_COMMAND_SET_BASE_VALUES=\"${HELM_COMMAND_SET_BASE_VALUES} \\\n  --values ${CHART_PATH}/multiple-nodes-platform-relay.yaml \\\n  \"\nfi\n\nHELM_COMMAND_SET_BASE_VALUES=\"${HELM_COMMAND_SET_BASE_VALUES} \\\n--values ${MATRIX_BROWSER_VALUES_FILE} \\\n\"\n\nif [ \"${TEST_EXISTING_KEDA}\" = \"true\" ] && [ \"${TEST_UPGRADE_CHART}\" != \"true\" ] && [ \"${RENDER_HELM_TEMPLATE_ONLY}\" != \"true\" ]; then\n  if [ \"${TEST_PATCHED_KEDA}\" = \"true\" ]; then\n    KEDA_SET_IMAGES=\"--set image.keda.registry=${KEDA_BASED_NAME} --set image.keda.repository=keda --set image.keda.tag=${KEDA_BASED_TAG} \\\n    --set image.metricsApiServer.registry=${KEDA_BASED_NAME} --set image.metricsApiServer.repository=keda-metrics-apiserver --set image.metricsApiServer.tag=${KEDA_BASED_TAG} \\\n    --set image.webhooks.registry=${KEDA_BASED_NAME} --set image.webhooks.repository=keda-admission-webhooks --set image.webhooks.tag=${KEDA_BASED_TAG} \\\n    \"\n  fi\n  helm repo add kedacore https://kedacore.github.io/charts\n  echo \"Install KEDA core on Kubernetes cluster\"\n  helm upgrade -i ${KEDA_NAMESPACE} -n ${KEDA_NAMESPACE} --create-namespace --set webhooks.enabled=true ${KEDA_SET_IMAGES} kedacore/keda\n  echo \"Wait for KEDA core to be ready\"\n  kubectl -n ${KEDA_NAMESPACE} wait --for=condition=ready pod -l app.kubernetes.io/instance=${KEDA_NAMESPACE} --timeout 180s\nelif [ \"${TEST_EXISTING_KEDA}\" != \"true\" ]; then\n  if [ \"${TEST_PATCHED_KEDA}\" = \"true\" ]; then\n    HELM_COMMAND_SET_IMAGES=\"${HELM_COMMAND_SET_IMAGES} \\\n    --set keda.image.keda.registry=${KEDA_BASED_NAME} --set keda.image.keda.repository=keda --set keda.image.keda.tag=${KEDA_BASED_TAG} \\\n    --set keda.image.metricsApiServer.registry=${KEDA_BASED_NAME} --set keda.image.metricsApiServer.repository=keda-metrics-apiserver --set keda.image.metricsApiServer.tag=${KEDA_BASED_TAG} \\\n    --set keda.image.webhooks.registry=${KEDA_BASED_NAME} --set keda.image.webhooks.repository=keda-admission-webhooks --set keda.image.webhooks.tag=${KEDA_BASED_TAG} \\\n    \"\n  else\n    HELM_COMMAND_SET_IMAGES=\"${HELM_COMMAND_SET_IMAGES} \\\n    --set keda.image.keda.registry=ghcr.io/kedacore --set keda.image.keda.repository=keda --set keda.image.keda.tag=null \\\n    --set keda.image.metricsApiServer.registry=ghcr.io/kedacore --set keda.image.metricsApiServer.repository=keda-metrics-apiserver --set keda.image.metricsApiServer.tag=null \\\n    --set keda.image.webhooks.registry=ghcr.io/kedacore --set keda.image.webhooks.repository=keda-admission-webhooks --set keda.image.webhooks.tag=null \\\n    \"\n  fi\nfi\n\nif [ \"${TEST_UPGRADE_CHART}\" != \"true\" ]; then\n  HELM_COMMAND_SET_IMAGES=\"${HELM_COMMAND_SET_IMAGES} \\\n  --set autoscaling.patchObjectFinalizers.enabled=false \\\n  \"\nfi\n\nHELM_COMMAND_ARGS=\"${RELEASE_NAME} \\\n${HELM_COMMAND_SET_BASE_VALUES} \\\n${HELM_COMMAND_SET_AUTOSCALING} \\\n${HELM_COMMAND_SET_IMAGES} \\\n${CHART_PATH} --namespace ${SELENIUM_NAMESPACE} --create-namespace\"\n\necho \"Render manifests YAML for this deployment\"\nhelm template --debug ${HELM_COMMAND_ARGS} > tests/tests/${TEMPLATE_OUTPUT_FILENAME:-\"cluster_deployment_manifests_${MATRIX_BROWSER}.yaml\"}\n\nif [ \"${RENDER_HELM_TEMPLATE_ONLY}\" = \"true\" ]; then\n  exit 0\nfi\n\necho \"Deploy Selenium Grid Chart\"\nhelm upgrade --install ${HELM_COMMAND_ARGS}\n\nkubectl get pods -A\n\nif [ \"${TEST_UPGRADE_CHART}\" = \"true\" ]; then\n  echo \"Focus on verify chart upgrade, skip Selenium tests\"\n  exit 0\nfi\n\nif [ \"${SECURE_INGRESS_ONLY_GENERATE}\" = \"true\" ] && [ \"${RENDER_HELM_TEMPLATE_ONLY}\" != \"true\" ]; then\n  kubectl get secret ${SELENIUM_TLS_SECRET_NAME} -n ${SELENIUM_NAMESPACE} -o jsonpath=\"{.data.tls\\.crt}\" | base64 -d > ./tests/tests/tls.crt\n  CHART_CERT_PATH=\"./tests/tests/tls.crt\"\nfi\n\necho \"Run Tests\"\nexport CHART_CERT_PATH=$(readlink -f ${CHART_CERT_PATH})\nexport SELENIUM_GRID_PROTOCOL=${SELENIUM_GRID_PROTOCOL}\nexport SELENIUM_GRID_HOST=${SELENIUM_GRID_HOST}\nexport SELENIUM_GRID_PORT=${SELENIUM_GRID_PORT}\"\"${SUB_PATH}\nexport SELENIUM_GRID_AUTOSCALING=${SELENIUM_GRID_AUTOSCALING}\nexport SELENIUM_GRID_AUTOSCALING_MIN_REPLICA=${SELENIUM_GRID_AUTOSCALING_MIN_REPLICA}\nexport RUN_IN_DOCKER_COMPOSE=true\nexport HUB_CHECKS_INTERVAL=${HUB_CHECKS_INTERVAL}\nexport HUB_CHECKS_MAX_ATTEMPTS=${HUB_CHECKS_MAX_ATTEMPTS}\nexport WEB_DRIVER_WAIT_TIMEOUT=${WEB_DRIVER_WAIT_TIMEOUT}\nexport SELENIUM_GRID_TEST_HEADLESS=${SELENIUM_GRID_TEST_HEADLESS:-\"false\"}\nexport TEST_DELAY_AFTER_TEST=${TEST_DELAY_AFTER_TEST:-\"0\"}\nexport TEST_PLATFORMS=${TEST_PLATFORMS}\nexport TEST_NODE_MAX_SESSIONS=${TEST_NODE_MAX_SESSIONS}\nexport TEST_AUTOSCALING_ITERATIONS=${TEST_AUTOSCALING_ITERATIONS:-\"20\"}\nexport TEST_MULTIPLE_VERSIONS=${TEST_MULTIPLE_VERSIONS}\nexport TEST_MULTIPLE_VERSIONS_EXPLICIT=${TEST_MULTIPLE_VERSIONS_EXPLICIT}\nexport TEST_MULTIPLE_PLATFORMS=${TEST_MULTIPLE_PLATFORMS}\nexport TEST_MULTIPLE_PLATFORMS_RELAY=${TEST_MULTIPLE_PLATFORMS_RELAY}\nexport TEST_CUSTOM_SPECIFIC_NAME=${TEST_CUSTOM_SPECIFIC_NAME}\nexport TEST_SITE=\"${TEST_SITE}\"\nif [ \"${MATRIX_BROWSER}\" = \"NoAutoscaling\" ]; then\n  ./tests/bootstrap.sh NodeFirefox\n  if [ \"${TEST_PLATFORMS}\" = \"linux/amd64\" ]; then\n    ./tests/bootstrap.sh NodeChrome\n    ./tests/bootstrap.sh NodeEdge\n  else\n    ./tests/bootstrap.sh NodeChromium\n  fi\nelif [ \"${MATRIX_TESTS}\" = \"CDPTests\" ]; then\n  ./tests/CDPTests/bootstrap.sh \"chrome\"\n  if [ \"${TEST_PLATFORMS}\" = \"linux/amd64\" ]; then\n    ./tests/CDPTests/bootstrap.sh \"MicrosoftEdge\"\n  fi\nelif [ \"${MATRIX_TESTS}\" = \"AutoscalingTestsScaleUp\" ]; then\n  ./tests/bootstrap.sh ${MATRIX_TESTS}\nelif [ \"${MATRIX_TESTS}\" = \"AutoScalingTestsScaleChaos\" ]; then\n  ./tests/bootstrap.sh ${MATRIX_TESTS}\nelse\n  ./tests/bootstrap.sh ${MATRIX_BROWSER}\nfi\n\nwait_for_terminated\n"
  },
  {
    "path": "tests/charts/refValues/README.md",
    "content": "<!-- TOC -->\n* [Introduction](#introduction)\n* [Docker Desktop](#docker-desktop)\n  * [Install Required Software](#install-required-software)\n  * [Configure Kubernetes cluster in Docker Desktop](#configure-kubernetes-cluster-in-docker-desktop)\n  * [Deploy Selenium Grid solution using Helm chart](#deploy-selenium-grid-solution-using-helm-chart)\n      * [Deploy PVC for video recording and video manager storage.](#deploy-pvc-for-video-recording-and-video-manager-storage)\n      * [Deploy the secret for credentials to upload video recordings to AWS S3.](#deploy-the-secret-for-credentials-to-upload-video-recordings-to-aws-s3)\n      * [Add Docker Selenium Helm chart repository](#add-docker-selenium-helm-chart-repository)\n      * [Install the latest chart with reference values.](#install-the-latest-chart-with-reference-values)\n      * [Verify Grid installation](#verify-grid-installation)\n      * [Browser Nodes in autoscaling from zero mode.](#browser-nodes-in-autoscaling-from-zero-mode)\n      * [Run a test in Grid](#run-a-test-in-grid)\n<!-- TOC -->\n\n# Introduction\n\nThis directory contains the reference values for the Helm charts in the `charts` directory. The reference values are used to test the Helm charts and ensure that they are working correctly. The reference values are stored in YAML files, which can be used to generate the expected output of the Helm charts.\n\n# Docker Desktop\n\n## Install Required Software\n\n_Note: This guide is for macOS. For other operating systems, please refer to particular tool documentation._\n```sh\nbrew install docker kubectl helm\n```\n\nVerify the installation\n```sh\njava -version\ndocker --version\nkubectl version --client\nhelm version\n```\n\n## Configure Kubernetes cluster in Docker Desktop\n\nMost users are able to installed Docker Desktop and start Kubernetes cluster in settings as below.\n\n![img.png](images/docker-desktop-1.png)\n\nIf you are having a local machine with good resources, configure Docker Desktop to use more resources. Then you can install orchestration containers with autoscaling capability.\n\n![img_1.png](images/docker-desktop-2.png)\n\nOpen a terminal, ensure `kubectl` is able to connect to the cluster\n\n```sh\nkubectl cluster-info\n```\n\n## Deploy Selenium Grid solution using Helm chart\n\n#### Deploy PVC for video recording and video manager storage.\n\nCheckout file [local-pvc-docker-desktop.yaml](local-pvc-docker-desktop.yaml)\n\n```sh\nkubectl apply -f local-pvc-docker-desktop.yaml\n```\n\n#### Deploy the secret for credentials to upload video recordings to AWS S3.\n\nCheckout file [aws-s3-upload-secret.yaml](aws-s3-upload-secret.yaml). Replace `AWS_ACCESS_KEY_ID` and `AWS_SECRET_ACCESS_KEY` with your AWS [access key](https://docs.aws.amazon.com/keyspaces/latest/devguide/aws.credentials.manage.html).\n\n```sh\nkubectl apply -f aws-s3-upload-secret.yaml\n```\n\nNote:\n+ You also can export AWS secret values to environment variables and use `envsubst` to substitute them in the YAML file.\n+ `envsubst` is a command that substitutes environment variables in the YAML file. Install it following the instructions at [envsubst](https://github.com/a8m/envsubst?tab=readme-ov-file#linux-and-macos).\n\n```sh\nenvsubst <aws-s3-upload-secret.yaml | kubectl apply -f -\n```\n\n#### Add Docker Selenium Helm chart repository\n\n```sh\nhelm repo add docker-selenium https://www.selenium.dev/docker-selenium\nhelm repo update\n```\n\n#### Install the latest chart with reference values.\n\nCheckout file [simplex-docker-desktop.yaml](simplex-docker-desktop.yaml)\n\n```sh\nhelm upgrade -i selenium docker-selenium/selenium-grid \\\n  --namespace default \\\n  -f simplex-docker-desktop.yaml\n```\n\n#### Verify Grid installation\n\n- Grid components in cluster: `kubectl get pod -n default`\n- Grid UI: [http://localhost/selenium](http://localhost/selenium)\n- Recordings manager: [http://localhost/recordings](http://localhost/recordings)\n\n#### Browser Nodes in autoscaling from zero mode.\n\nThere is no Node visible on Grid UI. The browser nodes are created on demand when a test is started. The browser nodes are automatically removed when the test is finished.\n\n#### Run a test in Grid\n\nRefer to [get_started.py](../../get_started.py) for a simple test using Python and Selenium. The test will run remotely on the Grid.\n\n- Check the Grid UI to see the test running.\n- Check the Recordings manager to see the video recording of the test.\n- Check if the test passed or failed.\n"
  },
  {
    "path": "tests/charts/refValues/aws-s3-upload-secret.yaml",
    "content": "apiVersion: v1\nkind: Secret\nmetadata:\n  name: aws-s3-upload-secret\ntype: Opaque\nstringData:\n  RCLONE_CONFIG_S3_TYPE: \"s3\"\n  RCLONE_CONFIG_S3_PROVIDER: \"AWS\"\n  RCLONE_CONFIG_S3_ENV_AUTH: \"true\"\n  RCLONE_CONFIG_S3_REGION: \"ap-south-1\"\n  RCLONE_CONFIG_S3_LOCATION_CONSTRAINT: \"ap-south-1\"\n  RCLONE_CONFIG_S3_ACL: \"private\"\n  RCLONE_CONFIG_S3_ACCESS_KEY_ID: \"${AWS_ACCESS_KEY_ID}\"\n  RCLONE_CONFIG_S3_SECRET_ACCESS_KEY: \"${AWS_SECRET_ACCESS_KEY}\"\n  RCLONE_CONFIG_S3_NO_CHECK_BUCKET: \"true\"\n"
  },
  {
    "path": "tests/charts/refValues/local-pvc-docker-desktop.yaml",
    "content": "apiVersion: v1\nkind: PersistentVolumeClaim\nmetadata:\n  name: local-pv-storage\n  namespace: default\nspec:\n  accessModes:\n    - \"ReadWriteOnce\"\n  resources:\n    requests:\n      storage: \"2Gi\"\n  storageClassName: hostpath\n---\n"
  },
  {
    "path": "tests/charts/refValues/sample-aws.yaml",
    "content": "# README: This is a sample values for chart deployment in EKS AWS\n# Chart dependency traefik is installed together by enabling `traefik.enabled`. On AWS, Traefik is installed as a LoadBalancer\n# Chart dependency keda is installed together by enabling `autoscaling.enable`\n# Enabled ingress with hostname, set the subPath `/selenium`. Grid is accessible via http://my.hostname/selenium\n# Use this reference values to deploy e.g. `helm upgrade --install test --values tests/charts/refValues/sample-aws.yaml docker-selenium/selenium-grid --version <0.26.3_onwards>`\nglobal:\n  K8S_PUBLIC_IP: \"\"\n  seleniumGrid:\n    logLevel: INFO # Change to FINE when you want to debug the issue\n\ningress:\n  enabled: true\n  className: traefik\n  hostname: \"aws.ndviet.org\" # Replace with your hostname\n\nbasicAuth:\n  enabled: false\n\nisolateComponents: true\n\nautoscaling:\n  enabled: true\n  scalingType: job\n  annotations:\n    helm.sh/hook: post-install,post-upgrade,post-rollback\n  scaledOptions:\n    minReplicaCount: 0\n    maxReplicaCount: 8\n    pollingInterval: 15\n  scaledJobOptions:\n    successfulJobsHistoryLimit: 0\n    failedJobsHistoryLimit: 5\n    scalingStrategy:\n      strategy: default\n\nhub:\n  subPath: /selenium\n\ncomponents:\n  router:\n    subPath: /selenium\n\nchromeNode:\n  nodeEnableManagedDownloads: &remoteDownload true\n  extraEnvironmentVariables: &extraEnvironmentVariablesNodes\n    - name: SE_NODE_SESSION_TIMEOUT\n      value: \"300\"\n    - name: SE_VNC_NO_PASSWORD\n      value: \"true\"\n\nfirefoxNode:\n  nodeEnableManagedDownloads: *remoteDownload\n  extraEnvironmentVariables: *extraEnvironmentVariablesNodes\n\nedgeNode:\n  nodeEnableManagedDownloads: *remoteDownload\n  extraEnvironmentVariables: *extraEnvironmentVariablesNodes\n\nvideoRecorder:\n  enabled: false\n"
  },
  {
    "path": "tests/charts/refValues/simplex-docker-desktop.yaml",
    "content": "# README: This is a sample values for chart deployment in K8s cluster started by Docker Desktop\n# Chart dependency traefik is installed together by enabling `ingress.enableWithController`\n# Chart dependency keda is installed together by enabling `autoscaling.enable`\n# Enabled ingress without hostname, set the subPath `/selenium`. Traefik type LoadBalancer to expose access from `http://localhost/selenium`\nglobal:\n  seleniumGrid:\n    logLevel: INFO\n\ntls:\n  ingress:\n    enabled: true\n\ntracing:\n  enabled: true\n\ningress:\n  enableWithController: true\n  className: traefik\n  hostname: \"\"\n\nbasicAuth:\n  enabled: false\n\nisolateComponents: true\n\nautoscaling:\n  enabled: true\n  scalingType: job\n  scaledOptions:\n    minReplicaCount: 0\n    maxReplicaCount: 8\n    pollingInterval: 15\n  scaledJobOptions:\n    successfulJobsHistoryLimit: 0\n    failedJobsHistoryLimit: 5\n    scalingStrategy:\n      strategy: default\n\nhub:\n  subPath: \"/selenium\"\n  serviceType: NodePort\n\ncomponents:\n  router:\n    subPath: \"/selenium\"\n    serviceType: NodePort\n\ncrossBrowsers:\n  chromeNode:\n    - nameOverride: node-chrome-any\n      hpa:\n        platformName: ''\n    - nameOverride: node-chrome-linux\n      hpa:\n        platformName: 'Linux'\n  firefoxNode:\n    - nameOverride: node-firefox-any\n      hpa:\n        platformName: ''\n    - nameOverride: node-firefox-linux\n      hpa:\n        platformName: 'Linux'\n  edgeNode:\n    - nameOverride: node-edge-any\n      hpa:\n        platformName: ''\n    - nameOverride: node-edge-linux\n      hpa:\n        platformName: 'Linux'\n\nchromeNode:\n  extraEnvironmentVariables: &extraEnvironmentVariablesNodes\n    - name: SE_VNC_NO_PASSWORD\n      value: \"true\"\n\nfirefoxNode:\n  extraEnvironmentVariables: *extraEnvironmentVariablesNodes\n\nedgeNode:\n  extraEnvironmentVariables: *extraEnvironmentVariablesNodes\n\nvideoRecorder:\n  enabled: true\n  extraVolumeMounts:\n    - name: videos\n      mountPath: /videos\n      subPath: videos\n  extraVolumes:\n    - name: videos\n      persistentVolumeClaim:\n        claimName: local-pv-storage\n  uploader:\n    enabled: true\n    destinationPrefix: \"s3://upload-records-repo/batch01\" # Replace this with your own S3 bucket name (and subdirectory if any)\n    extraEnvFrom:\n      - secretRef:\n          name: aws-s3-upload-secret # The external secret contains configs for S3 upload. See steps in README.\n#    secrets: # Uncomment the following lines if you want to attach the secret directly from chart values.\n#      RCLONE_CONFIG_S3_TYPE: \"s3\"\n#      RCLONE_CONFIG_S3_PROVIDER: \"AWS\"\n#      RCLONE_CONFIG_S3_ENV_AUTH: \"true\"\n#      RCLONE_CONFIG_S3_REGION: \"ap-south-1\"\n#      RCLONE_CONFIG_S3_LOCATION_CONSTRAINT: \"ap-south-1\"\n#      RCLONE_CONFIG_S3_ACL: \"private\"\n#      RCLONE_CONFIG_S3_ACCESS_KEY_ID: \"${AWS_ACCESS_KEY_ID}\"\n#      RCLONE_CONFIG_S3_SECRET_ACCESS_KEY: \"${AWS_SECRET_ACCESS_KEY}\"\n#      RCLONE_CONFIG_S3_NO_CHECK_BUCKET: \"true\"\n\nvideoManager:\n  enabled: true\n  extraVolumeMounts:\n    - name: videos\n      mountPath: /srv\n      subPath: videos\n  extraVolumes:\n    - name: videos\n      persistentVolumeClaim:\n        claimName: local-pv-storage\n\ntraefik:\n  ingressClass:\n    name: traefik\n  deployment:\n    kind: DaemonSet\n  ports:\n    web:\n      hostPort: 80\n    websecure:\n      hostPort: 443\n  service:\n    type: LoadBalancer\n  tlsStore:\n    default:\n      defaultCertificate:\n        secretName: \"selenium-tls-secret\"\n\ncustomLabels:\n  organization: \"SeleniumHQ\"\n  environment: \"dev\"\n"
  },
  {
    "path": "tests/charts/refValues/simplex-minikube.yaml",
    "content": "# README: This is a sample values for chart deployment in Minikube\n# Chart dependency traefik is installed together by enabling `traefik.enabled`\n# Chart dependency keda is installed together by enabling `autoscaling.enable`\n# Enabled ingress without hostname, set the subPath `/selenium`. Set K8S_PUBLIC_IP point to the public host IP, where Minikube is running\n# `traefik.ports.*.hostPort` is set to expose ports directly on the host for access via http://<K8S_PUBLIC_IP>/selenium\n# Components serviceType is set to NodePort to allow access from outside the cluster via K8S_PUBLIC_IP and NodePort http://<K8S_PUBLIC_IP>:30444/selenium\n# Use this reference values to deploy e.g. `helm upgrade --install test --values tests/charts/refValues/simplex-minikube.yaml docker-selenium/selenium-grid --version <0.26.3_onwards>`\nglobal:\n  seleniumGrid:\n    logLevel: INFO\n\ntls:\n  ingress:\n    enabled: true\n\ningress:\n  enableWithController: true\n  className: traefik\n  hostname: \"\"\n\nbasicAuth:\n  enabled: false\n\nisolateComponents: true\n\nautoscaling:\n  enabled: true\n  scalingType: job\n  scaledOptions:\n    minReplicaCount: 0\n    maxReplicaCount: 8\n    pollingInterval: 15\n  scaledJobOptions:\n    successfulJobsHistoryLimit: 0\n    failedJobsHistoryLimit: 5\n    scalingStrategy:\n      strategy: default\n\nhub:\n  subPath: /selenium\n  serviceType: NodePort\n\ncomponents:\n  router:\n    subPath: /selenium\n    serviceType: NodePort\n\nchromeNode:\n  extraEnvironmentVariables: &extraEnvironmentVariablesNodes\n    - name: SE_VNC_NO_PASSWORD\n      value: \"true\"\n\nfirefoxNode:\n  extraEnvironmentVariables: *extraEnvironmentVariablesNodes\n\nedgeNode:\n  extraEnvironmentVariables: *extraEnvironmentVariablesNodes\n\nvideoRecorder:\n  enabled: false\n\ntraefik:\n  ingressClass:\n    name: traefik\n  deployment:\n    kind: DaemonSet\n  ports:\n    web:\n      hostPort: 80\n    websecure:\n      hostPort: 443\n  service:\n    type: LoadBalancer\n"
  },
  {
    "path": "tests/charts/templates/render/dummy.yaml",
    "content": "# This is dummy values file for chart template testing\nglobal:\n  K8S_PUBLIC_IP: \"10.10.10.10\"\n  seleniumGrid:\n    logLevel: FINE\n    affinity:\n      podAffinity:\n        requiredDuringSchedulingIgnoredDuringExecution:\n          - labelSelector:\n              matchExpressions:\n                - key: app\n                  operator: In\n                  values:\n                    - selenium\n            topologyKey: \"kubernetes.io/hostname\"\n    topologySpreadConstraints:\n      - maxSkew: 4\n        topologyKey: kubernetes.io/hostname\n        whenUnsatisfiable: DoNotSchedule\n    nodeMaxSessions: 3\n    nodeDrainAfterSessionCount: 30\n    nodeEnableManagedDownloads: true\n    nodeCustomCapabilities: \"{'myApp:version':'beta','myApp:publish':'public'}\"\n\nmonitoring:\n  enabledWithExistingAgent: true\n  exporter:\n    tolerations:\n      - key: \"dedicated\"\n        operator: \"Exists\"\n  additionalScrapeConfigs:\n    value: |\n      - job_name: \"selenium-grid-analytics\"\n        metrics_path: \"/query\"\n        bearer_token: \"\"\n        params:\n          endpoint:\n            - '{{ template \"seleniumGrid.monitoring.graphqlURL\" $ }}'\n          query:\n            - |\n              { grid { sessionCount, maxSession, totalSlots, nodeCount, sessionQueueSize }, nodesInfo { nodes { id, status, sessionCount, maxSession, slotCount, stereotypes, sessions { id, capabilities, sessionDurationMillis, slot { id, stereotype } } } }, sessionsInfo { sessionQueueRequests } }\n          zoneTag: []\n        tls_config:\n          insecure_skip_verify: true\n        static_configs:\n          - targets:\n              - '{{ template \"seleniumGrid.monitoring.exporter.fullname\" $ }}:{{ $.Values.monitoring.exporter.port }}'\n\nautoscaling:\n  enableWithExistingKEDA: true\n  scalingType: deployment\n  patchObjectFinalizers:\n    tolerations:\n      - key: \"node-role.kubernetes.io/master\"\n        operator: \"Equal\"\n        value: \"true\"\n        effect: \"NoExecute\"\n  scaledObjectOptions:\n    pollingInterval: 30\n    initialCooldownPeriod: 0\n    cooldownPeriod: 300\n    idleReplicaCount: 0\n    minReplicaCount: 1\n    maxReplicaCount: 100\n    fallback:\n      failureThreshold: 3\n      replicas: 6\n    advanced:\n      restoreToOriginalReplicaCount: true\n      horizontalPodAutoscalerConfig:\n        behavior:\n          scaleDown:\n            stabilizationWindowSeconds: 300\n            policies:\n              - type: Percent\n                value: 100\n                periodSeconds: 15\n  scaledJobOptions:\n    jobTargetRef:\n      parallelism: 1\n      completions: 1\n      activeDeadlineSeconds: 600\n      backoffLimit: 0\n      template:\n    pollingInterval: 30\n    successfulJobsHistoryLimit: 0\n    failedJobsHistoryLimit: 5\n    minReplicaCount: 0\n    maxReplicaCount: 100\n    rolloutStrategy: gradual\n    rollout:\n      strategy: gradual\n      propagationPolicy: foreground\n    scalingStrategy:\n      customScalingQueueLengthDeduction: 1\n      customScalingRunningJobPercentage: \"0.5\"\n      pendingPodConditions:\n        - \"Ready\"\n        - \"PodScheduled\"\n        - \"AnyOtherCustomPodCondition\"\n      multipleScalersCalculation: \"max\"\n\nbasicAuth:\n  create: false\n  nameOverride: \"my-external-basic-auth-secret\"\n  enabled: true\n  username: sysadmin\n  password: strongPassword\n\ntls:\n  enabled: true\n  generateTLS: false\n\ningress:\n  className: traefik\n  traefik:\n    entryPoints: websecure\n    pathMatcher: PathPrefix\n    tls:\n      enabled: false\n    service:\n      sticky:\n        cookie:\n          enabled: true\n    serversTransport:\n      enabled: true\n      spec:\n        insecureSkipVerify: false\n        forwardingTimeouts:\n          dialTimeout: 30s\n          responseHeaderTimeout: 360s\n          idleConnTimeout: 360s\n  annotations: # Add you own annotations\n    traefik.ingress.kubernetes.io/router.entrypoints: \"web,websecure\" # Override default key\n    traefik.ingress.kubernetes.io/router.middlewares: \"selenium-default-chain@kubernetescrd\"\n    traefik.ingress.kubernetes.io/router.priority: \"10\"\n  hostname: \"\"\n  ports:\n    http: 8081\n    https: 8443\n  paths:\n    - path: /selenium(/|$)(.*)\n      pathType: ImplementationSpecific\n      backend:\n        service:\n          name: '{{ ternary (include \"seleniumGrid.router.fullname\" $ ) (include \"seleniumGrid.hub.fullname\" $ ) $.Values.isolateComponents }}'\n          port:\n            number: 4444\n    - path: /(/?)(session/.*/se/vnc)\n      pathType: ImplementationSpecific\n      backend:\n        service:\n          name: '{{ ternary (include \"seleniumGrid.router.fullname\" $ ) (include \"seleniumGrid.hub.fullname\" $ ) $.Values.isolateComponents }}'\n          port:\n            number: 4444\n  tls:\n    - hosts:\n        - '*.my.domain.com'\n\nisolateComponents: true\n\ncomponents:\n  router:\n    subPath: /selenium\n    disableUI: true\n    annotations:\n      \"restartOnUpdate\": \"true\"\n    serviceType: NodePort\n    extraEnvironmentVariables:\n      - name: SE_JAVA_OPTS\n        value: \"-Xmx1g\"\n  distributor:\n    newSessionThreadPoolSize: 24\n    annotations:\n      \"restartOnUpdate\": \"true\"\n    serviceType: NodePort\n    extraEnvironmentVariables:\n      - name: SE_JAVA_OPTS\n        value: \"-Xmx2g\"\n  eventBus:\n    annotations:\n      \"restartOnUpdate\": \"true\"\n    serviceType: NodePort\n    extraEnvironmentVariables:\n      - name: SE_JAVA_OPTS\n        value: \"-Xmx2g\"\n  sessionQueue:\n    annotations:\n      \"restartOnUpdate\": \"true\"\n    serviceType: NodePort\n    extraEnvironmentVariables:\n      - name: SE_JAVA_OPTS\n        value: \"-Xmx1g\"\n  sessionMap:\n    annotations:\n      \"restartOnUpdate\": \"true\"\n    serviceType: NodePort\n    extraEnvironmentVariables:\n      - name: SE_JAVA_OPTS\n        value: \"-Xmx1g\"\n    externalDatastore:\n      enabled: true\n      backend: postgresql\n\nchromeNode:\n  nodeMaxSessions: 2\n  nodeDrainAfterSessionCount: 10\n  annotations:\n    \"restartOnUpdate\": \"true\"\n  terminationGracePeriodSeconds: 7200\n  service:\n    enabled: true\n  scaledOverProvisionRatio: 1.2\n\nfirefoxNode:\n  nodeMaxSessions: 1\n  nodeDrainAfterSessionCount: 20\n  annotations:\n    \"restartOnUpdate\": \"true\"\n  terminationGracePeriodSeconds: 720\n  service:\n    enabled: true\n  scaledOverProvisionRatio: 1.2\n\nedgeNode:\n  annotations:\n    \"restartOnUpdate\": \"true\"\n  service:\n    enabled: true\n  videoRecorder:\n    uploader:\n      enabled: false\n  scaledOverProvisionRatio: 1.2\n\nrelayNode:\n  enabled: true\n  scaledOverProvisionRatio: 1.2\n\nvideoRecorder:\n  enabled: true\n  sidecarContainer: true\n  uploader:\n    enabled: true\n    name: s3\n    destinationPrefix: \"s3://bucket-name\"\n    secrets:\n      RCLONE_CONFIG_S3_TYPE: \"s3\"\n      RCLONE_CONFIG_S3_PROVIDER: \"AWS\"\n      RCLONE_CONFIG_S3_ENV_AUTH: \"true\"\n      RCLONE_CONFIG_S3_REGION: \"ap-southeast-1\"\n      RCLONE_CONFIG_S3_LOCATION_CONSTRAINT: \"ap-southeast-1\"\n      RCLONE_CONFIG_S3_ACL: \"private\"\n      RCLONE_CONFIG_S3_ACCESS_KEY_ID: \"xxx\"\n      RCLONE_CONFIG_S3_SECRET_ACCESS_KEY: \"xxx\"\n      RCLONE_CONFIG_S3_NO_CHECK_BUCKET: \"true\"\n\nnodeConfigMap:\n  leftoversCleanup:\n    enabled: true\n  extraScripts:\n    nodeCustomTask.sh: |\n      #!/bin/bash\n      echo \"This is a custom task\"\n\nrecorderConfigMap:\n  extraScripts:\n    video.sh: |\n      #!/bin/bash\n      echo \"This is override script\"\n\nuploaderConfigMap:\n  extraScripts:\n    upload.sh: |\n      #!/bin/bash\n      echo \"This is override script\"\n\nvideoManager:\n  enabled: true\n  extraVolumeMounts:\n    - name: srv\n      mountPath: /srv\n      subPath: srv\n  extraVolumes:\n    - name: srv\n      persistentVolumeClaim:\n        claimName: my-external-pvc\n"
  },
  {
    "path": "tests/charts/templates/render/dummy_external.sh",
    "content": "#!/bin/bash\necho \"Your custom script patch to chart rendering\"\n"
  },
  {
    "path": "tests/charts/templates/render/dummy_solution.yaml",
    "content": "# This is dummy values file for chart template testing\nglobal:\n  K8S_PUBLIC_IP: \"10.10.10.10\"\n  seleniumGrid:\n    logLevel: FINE\n    affinity: &affinity\n      podAffinity:\n        requiredDuringSchedulingIgnoredDuringExecution:\n          - labelSelector:\n              matchExpressions:\n                - key: app\n                  operator: In\n                  values:\n                    - selenium\n            topologyKey: \"kubernetes.io/hostname\"\n    topologySpreadConstraints:\n      - maxSkew: 4\n        topologyKey: kubernetes.io/hostname\n        whenUnsatisfiable: DoNotSchedule\n    nodeMaxSessions: 3\n    nodeDrainAfterSessionCount: 30\n    nodeEnableManagedDownloads: true\n    nodeCustomCapabilities: \"{'myApp:version':'beta','myApp:publish':'public'}\"\n\nselenium-grid:\n  autoscaling:\n    enableWithExistingKEDA: true\n    scalingType: deployment\n    patchObjectFinalizers:\n      tolerations:\n        - key: \"node-role.kubernetes.io/master\"\n          operator: \"Equal\"\n          value: \"true\"\n          effect: \"NoExecute\"\n\n  monitoring:\n    enabledWithExistingAgent: true\n    exporter:\n      tolerations:\n        - key: \"dedicated\"\n          operator: \"Exists\"\n    additionalScrapeConfigs:\n      value: |\n        - job_name: \"selenium-grid-analytics\"\n          metrics_path: \"/query\"\n          bearer_token: \"\"\n          params:\n            endpoint:\n              - '{{ template \"seleniumGrid.monitoring.graphqlURL\" $ }}'\n            query:\n              - |\n                { grid { sessionCount, maxSession, totalSlots, nodeCount, sessionQueueSize }, nodesInfo { nodes { id, status, sessionCount, maxSession, slotCount, stereotypes, sessions { id, capabilities, sessionDurationMillis, slot { id, stereotype } } } }, sessionsInfo { sessionQueueRequests } }\n            zoneTag: []\n          tls_config:\n            insecure_skip_verify: true\n          static_configs:\n            - targets:\n                - '{{ template \"seleniumGrid.monitoring.exporter.fullname\" $ }}:{{ $.Values.monitoring.exporter.port }}'\n\n  basicAuth:\n    create: false\n    nameOverride: \"my-external-basic-auth-secret\"\n    enabled: true\n    username: sysadmin\n    password: strongPassword\n\n  tls:\n    enabled: true\n    generateTLS: false\n\n  ingress:\n    className: traefik\n    traefik:\n      entryPoints: websecure\n      pathMatcher: PathPrefix\n      tls:\n        enabled: false\n      service:\n        sticky:\n          cookie:\n            enabled: true\n      serversTransport:\n        enabled: true\n        spec:\n          insecureSkipVerify: false\n          forwardingTimeouts:\n            dialTimeout: 30s\n            responseHeaderTimeout: 360s\n            idleConnTimeout: 360s\n    annotations: # Add you own annotations\n      traefik.ingress.kubernetes.io/router.entrypoints: \"web,websecure\" # Override default key\n      traefik.ingress.kubernetes.io/router.middlewares: \"selenium-default-chain@kubernetescrd\"\n      traefik.ingress.kubernetes.io/router.priority: \"10\"\n    hostname: \"\"\n    ports:\n      http: 8081\n      https: 8443\n    paths:\n      - path: /selenium(/|$)(.*)\n        pathType: ImplementationSpecific\n        backend:\n          service:\n            name: '{{ ternary (include \"seleniumGrid.router.fullname\" $ ) (include \"seleniumGrid.hub.fullname\" $ ) $.Values.isolateComponents }}'\n            port:\n              number: 4444\n      - path: /(/?)(session/.*/se/vnc)\n        pathType: ImplementationSpecific\n        backend:\n          service:\n            name: '{{ ternary (include \"seleniumGrid.router.fullname\" $ ) (include \"seleniumGrid.hub.fullname\" $ ) $.Values.isolateComponents }}'\n            port:\n              number: 4444\n    tls:\n      - hosts:\n          - '*.my.domain.com'\n        secretName: \"selenium/my-external-secret\"\n\n  isolateComponents: true\n\n  components:\n    router:\n      subPath: /selenium\n      disableUI: true\n      serviceType: NodePort\n      extraEnvironmentVariables:\n        - name: SE_JAVA_OPTS\n          value: \"-Xmx1g\"\n    distributor:\n      newSessionThreadPoolSize: 24\n      serviceType: NodePort\n      extraEnvironmentVariables:\n        - name: SE_JAVA_OPTS\n          value: \"-Xmx1g\"\n    eventBus:\n      serviceType: NodePort\n      extraEnvironmentVariables:\n        - name: SE_JAVA_OPTS\n          value: \"-Xmx1g\"\n    sessionQueue:\n      serviceType: NodePort\n      extraEnvironmentVariables:\n        - name: SE_JAVA_OPTS\n          value: \"-Xmx1g\"\n    sessionMap:\n      serviceType: NodePort\n      extraEnvironmentVariables:\n        - name: SE_JAVA_OPTS\n          value: \"-Xmx1g\"\n      externalDatastore:\n        enabled: true\n        backend: redis\n\n  chromeNode:\n    nodeMaxSessions: 2\n    nodeDrainAfterSessionCount: 10\n    affinity: *affinity\n    terminationGracePeriodSeconds: 7200\n    service:\n      enabled: true\n    scaledOverProvisionRatio: 1.2\n\n  firefoxNode:\n    nodeMaxSessions: 1\n    nodeDrainAfterSessionCount: 20\n    affinity: *affinity\n    terminationGracePeriodSeconds: 720\n    service:\n      enabled: true\n    scaledOverProvisionRatio: 1.2\n\n  edgeNode:\n    affinity: *affinity\n    service:\n      enabled: true\n    videoRecorder:\n      uploader:\n        enabled: false\n    scaledOverProvisionRatio: 1.2\n\n  relayNode:\n    enabled: true\n    scaledOverProvisionRatio: 1.2\n\n  videoRecorder:\n    enabled: true\n    sidecarContainer: true\n    uploader:\n      enabled: true\n      destinationPrefix: \"s3://bucket-name\"\n      secrets:\n        RCLONE_CONFIG_S3_TYPE: \"s3\"\n        RCLONE_CONFIG_S3_PROVIDER: \"AWS\"\n        RCLONE_CONFIG_S3_ENV_AUTH: \"true\"\n        RCLONE_CONFIG_S3_REGION: \"ap-southeast-1\"\n        RCLONE_CONFIG_S3_LOCATION_CONSTRAINT: \"ap-southeast-1\"\n        RCLONE_CONFIG_S3_ACL: \"private\"\n        RCLONE_CONFIG_S3_ACCESS_KEY_ID: \"xxx\"\n        RCLONE_CONFIG_S3_SECRET_ACCESS_KEY: \"xxx\"\n        RCLONE_CONFIG_S3_NO_CHECK_BUCKET: \"true\"\n\n  nodeConfigMap:\n    leftoversCleanup:\n      enabled: true\n    extraScripts:\n      nodeCustomTask.sh: |\n        #!/bin/bash\n        echo \"This is a custom task\"\n\n  recorderConfigMap:\n    extraScripts:\n      video.sh: |\n        #!/bin/bash\n        echo \"This is override script\"\n\n  uploaderConfigMap:\n    extraScripts:\n      upload.sh: |\n        #!/bin/bash\n        echo \"This is override script\"\n\n  videoManager:\n    enabled: true\n    extraVolumeMounts:\n      - name: srv\n        mountPath: /srv\n        subPath: srv\n    extraVolumes:\n      - name: srv\n        persistentVolumeClaim:\n          claimName: my-external-pvc\n"
  },
  {
    "path": "tests/charts/templates/test.py",
    "content": "import base64\nimport logging\nimport sys\nimport unittest\n\nimport yaml\n\nlogging.basicConfig(level=logging.INFO, format=\"%(asctime)s - %(name)s - %(levelname)s - %(message)s\")\nlogger = logging.getLogger(__name__)\n\n\ndef load_template(yaml_file):\n    try:\n        with open(yaml_file) as file:\n            documents = yaml.safe_load_all(file)\n            list_of_documents = [doc for doc in documents]\n            return list_of_documents\n    except yaml.YAMLError as error:\n        print(\"Error in configuration file: \", error)\n\n\nclass ChartTemplateTests(unittest.TestCase):\n    def test_set_affinity(self):\n        resources_name = [\n            f'{RELEASE_NAME}selenium-node-chrome',\n            f'{RELEASE_NAME}selenium-distributor',\n            f'{RELEASE_NAME}selenium-node-edge',\n            f'{RELEASE_NAME}selenium-node-firefox',\n            f'{RELEASE_NAME}selenium-event-bus',\n            f'{RELEASE_NAME}selenium-router',\n            f'{RELEASE_NAME}selenium-session-map',\n            f'{RELEASE_NAME}selenium-session-queue',\n        ]\n        count = 0\n        logger.info(f\"Assert affinity is set in global and nodes\")\n        for doc in LIST_OF_DOCUMENTS:\n            if doc['metadata']['name'] in resources_name and doc['kind'] == 'Deployment':\n                logger.info(f\"Assert affinity is set in resource {doc['metadata']['name']}\")\n                self.assertTrue(\n                    doc['spec']['template']['spec']['affinity']['podAffinity'][\n                        'requiredDuringSchedulingIgnoredDuringExecution'\n                    ][0]['labelSelector']['matchExpressions']\n                    is not None\n                )\n                count += 1\n        self.assertEqual(count, len(resources_name), \"Not all resources have affinity set\")\n\n    def test_ingress_traefik_annotations(self):\n        resources_name = [f'{RELEASE_NAME}selenium-ingress']\n        count = 0\n        for doc in LIST_OF_DOCUMENTS:\n            if doc['metadata']['name'] in resources_name and doc['kind'] == 'Ingress':\n                logger.info(f\"Assert ingress ingress annotations\")\n                logger.info(f\"Config `ingress.traefik.entryPoints` can be overwritten by custom `ingress.annotations`\")\n                self.assertTrue(\n                    doc['metadata']['annotations']['traefik.ingress.kubernetes.io/router.entrypoints']\n                    == 'web,websecure'\n                )\n                logger.info(f\"Custom middleware annotation can be set via `ingress.annotations`\")\n                self.assertTrue(\n                    doc['metadata']['annotations']['traefik.ingress.kubernetes.io/router.middlewares']\n                    == 'selenium-default-chain@kubernetescrd'\n                )\n                logger.info(f\"Default router TLS annotation is disabled by setting `ingress.traefik.tls.enabled=false`\")\n                self.assertTrue(doc['metadata']['annotations'].get('traefik.ingress.kubernetes.io/router.tls') is None)\n                logger.info(f\"Service-level Traefik annotations are handled on backend Service, not Ingress\")\n                self.assertTrue(\n                    doc['metadata']['annotations'].get('traefik.ingress.kubernetes.io/service.serversscheme') is None\n                )\n                self.assertTrue(\n                    doc['metadata']['annotations'].get('traefik.ingress.kubernetes.io/service.serverstransport') is None\n                )\n                logger.info(f\"Config `ingress.traefik.pathMatcher` sets router path matcher annotation\")\n                self.assertTrue(\n                    doc['metadata']['annotations']['traefik.ingress.kubernetes.io/router.pathmatcher'] == 'PathPrefix'\n                )\n                count += 1\n        self.assertEqual(count, len(resources_name), \"No ingress resources found\")\n\n    def test_ingress_traefik_servers_transport(self):\n        ingress_name = f'{RELEASE_NAME}selenium-ingress'\n        servers_transport_name = f'{ingress_name}-serverstransport'\n        service_names = [f'{RELEASE_NAME}selenium-router', f'{RELEASE_NAME}selenium-hub']\n        namespace = \"default\"\n        ingress_found = False\n        backend_service_found = False\n        servers_transport_found = False\n        for doc in LIST_OF_DOCUMENTS:\n            if doc['kind'] == 'Ingress' and doc['metadata']['name'] == ingress_name:\n                logger.info(f\"Assert ingress does not carry backend Service annotations\")\n                self.assertTrue(\n                    doc['metadata']['annotations'].get('traefik.ingress.kubernetes.io/service.serverstransport') is None\n                )\n                self.assertTrue(\n                    doc['metadata']['annotations'].get('traefik.ingress.kubernetes.io/service.serversscheme') is None\n                )\n                ingress_found = True\n            if doc['kind'] == 'Service' and doc['metadata']['name'] in service_names:\n                logger.info(f\"Assert backend Service has Traefik transport annotations\")\n                expected_ref = f'{namespace}-{servers_transport_name}@kubernetescrd'\n                service_annotations = doc['metadata'].get('annotations', {})\n                self.assertEqual(\n                    service_annotations['traefik.ingress.kubernetes.io/service.serversscheme'],\n                    'https',\n                )\n                self.assertEqual(\n                    service_annotations['traefik.ingress.kubernetes.io/service.serverstransport'],\n                    expected_ref,\n                )\n                backend_service_found = True\n            if doc['kind'] == 'ServersTransport' and doc['metadata']['name'] == servers_transport_name:\n                logger.info(f\"Assert Traefik ServersTransport forwarding timeouts are set\")\n                self.assertFalse(doc['spec']['insecureSkipVerify'])\n                forwarding_timeouts = doc['spec']['forwardingTimeouts']\n                self.assertEqual(forwarding_timeouts['dialTimeout'], '30s')\n                self.assertEqual(forwarding_timeouts['responseHeaderTimeout'], '360s')\n                self.assertEqual(forwarding_timeouts['idleConnTimeout'], '360s')\n                servers_transport_found = True\n        self.assertTrue(ingress_found, \"No ingress resource found\")\n        self.assertTrue(backend_service_found, \"No backend service found with Traefik transport annotations\")\n        self.assertTrue(servers_transport_found, \"No Traefik ServersTransport resource found\")\n\n    def test_sub_path_append_to_node_grid_url_and_basic_auth_should_not_include(self):\n        resources_name = [\n            f'{RELEASE_NAME}selenium-secrets',\n        ]\n        for doc in LIST_OF_DOCUMENTS:\n            if doc['metadata']['name'] in resources_name and doc['kind'] == 'Secret':\n                logger.info(f\"Assert graphql url is constructed without basic auth in url\")\n                base64_url = doc['data']['SE_NODE_GRID_URL']\n                decoded_url = base64.b64decode(base64_url).decode('utf-8')\n                self.assertTrue(decoded_url == 'https://10.10.10.10:8443/selenium', decoded_url)\n\n    def test_sub_path_set_to_grid_env_var(self):\n        resources_name = [f'{RELEASE_NAME}selenium-router']\n        is_present = False\n        for doc in LIST_OF_DOCUMENTS:\n            if doc['metadata']['name'] in resources_name and doc['kind'] == 'Deployment':\n                logger.info(f\"Assert subPath is set to Router env SE_SUB_PATH\")\n                list_env = doc['spec']['template']['spec']['containers'][0]['env']\n                for env in list_env:\n                    if env['name'] == 'SE_SUB_PATH' and env['value'] == '/selenium':\n                        is_present = True\n        self.assertTrue(is_present, \"ENV variable SE_SUB_PATH is not populated\")\n\n    def test_graphql_url_for_autoscaling_constructed_without_basic_auth_in_url(self):\n        resources_name = [\n            f'{RELEASE_NAME}selenium-secrets',\n        ]\n        for doc in LIST_OF_DOCUMENTS:\n            if doc['metadata']['name'] in resources_name and doc['kind'] == 'Secret':\n                logger.info(f\"Assert graphql url is constructed without basic auth in url\")\n                base64_url = doc['data']['SE_NODE_GRID_GRAPHQL_URL']\n                decoded_url = base64.b64decode(base64_url).decode('utf-8')\n                self.assertTrue(\n                    decoded_url == f'https://{RELEASE_NAME}selenium-router.default:4444/selenium/graphql', decoded_url\n                )\n\n    def test_distributor_new_session_thread_pool_size(self):\n        resources_name = [f'{RELEASE_NAME}selenium-distributor']\n        is_present = False\n        for doc in LIST_OF_DOCUMENTS:\n            if doc['metadata']['name'] in resources_name and doc['kind'] == 'Deployment':\n                logger.info(\n                    f\"Assert newSessionThreadPoolSize is set to Distributor env SE_NEW_SESSION_THREAD_POOL_SIZE\"\n                )\n                list_env = doc['spec']['template']['spec']['containers'][0]['env']\n                for env in list_env:\n                    if env['name'] == 'SE_NEW_SESSION_THREAD_POOL_SIZE' and env['value'] == '24':\n                        is_present = True\n        self.assertTrue(is_present, \"ENV variable SE_NEW_SESSION_THREAD_POOL_SIZE is not populated\")\n\n    def test_disable_ui_set_to_grid_env_var(self):\n        resources_name = [f'{RELEASE_NAME}selenium-router']\n        is_present = False\n        for doc in LIST_OF_DOCUMENTS:\n            if doc['metadata']['name'] in resources_name and doc['kind'] == 'Deployment':\n                logger.info(f\"Assert option disable UI is set to Router env SE_DISABLE_UI\")\n                list_env = doc['spec']['template']['spec']['containers'][0]['env']\n                for env in list_env:\n                    if env['name'] == 'SE_DISABLE_UI' and env['value'] == 'true':\n                        is_present = True\n        self.assertTrue(is_present, \"ENV variable SE_DISABLE_UI is not populated\")\n\n    def test_log_level_set_to_logging_config_map(self):\n        resources_name = [\n            f'{RELEASE_NAME}selenium-node-chrome',\n            f'{RELEASE_NAME}selenium-distributor',\n            f'{RELEASE_NAME}selenium-node-edge',\n            f'{RELEASE_NAME}selenium-node-firefox',\n            f'{RELEASE_NAME}selenium-event-bus',\n            f'{RELEASE_NAME}selenium-router',\n            f'{RELEASE_NAME}selenium-session-map',\n            f'{RELEASE_NAME}selenium-session-queue',\n        ]\n        logger.info(f\"Assert log level value is set to logging ConfigMap\")\n        count_config = 0\n        for doc in LIST_OF_DOCUMENTS:\n            if doc['metadata']['name'] == f'{RELEASE_NAME}selenium-logging-config' and doc['kind'] == 'ConfigMap':\n                self.assertTrue(doc['data']['SE_LOG_LEVEL'] == 'FINE')\n                count_config += 1\n        self.assertEqual(count_config, 1, \"No logging ConfigMap found\")\n        count = 0\n        for doc in LIST_OF_DOCUMENTS:\n            if doc['metadata']['name'] in resources_name and doc['kind'] == 'Deployment':\n                is_present = False\n                logger.info(f\"Assert logging ConfigMap is set to envFrom in resource {doc['metadata']['name']}\")\n                list_env_from = doc['spec']['template']['spec']['containers'][0]['envFrom']\n                for env in list_env_from:\n                    if env.get('configMapRef') is not None:\n                        if env['configMapRef']['name'] == f'{RELEASE_NAME}selenium-logging-config':\n                            is_present = True\n                self.assertTrue(is_present, \"envFrom doesn't contain logging ConfigMap\")\n                count += 1\n        self.assertEqual(count, len(resources_name), \"Logging ConfigMap is not present in expected resources\")\n\n    def test_node_port_set_when_service_type_is_node_port(self):\n        single_node_port = {\n            f'{RELEASE_NAME}selenium-distributor': 30553,\n            f'{RELEASE_NAME}selenium-router': 30444,\n            f'{RELEASE_NAME}selenium-session-queue': 30559,\n        }\n        count = 0\n        logger.info(f\"Assert NodePort is set to components service\")\n        for doc in LIST_OF_DOCUMENTS:\n            if doc['metadata']['name'] in single_node_port.keys() and doc['kind'] == 'Service':\n                logger.info(f\"Assert NodePort is set to service {doc['metadata']['name']}\")\n                self.assertTrue(\n                    doc['spec']['ports'][0]['nodePort'] == single_node_port[doc['metadata']['name']],\n                    f\"Service {doc['metadata']['name']} with expect NodePort {single_node_port[doc['metadata']['name']]} is not found\",\n                )\n                count += 1\n        self.assertEqual(count, len(single_node_port.keys()), \"Number of services with NodePort is not correct\")\n\n    def test_all_metadata_name_is_prefixed_with_release_name(self):\n        logger.info(f\"Assert all metadata name is prefixed with RELEASE NAME\")\n        prefix = \"selenium-\" if RELEASE_NAME == \"\" else RELEASE_NAME\n        for doc in LIST_OF_DOCUMENTS:\n            logger.info(f\"Assert metadata name: {doc['metadata']['name']}\")\n            self.assertTrue(\n                doc['metadata']['name'].startswith(RELEASE_NAME),\n                f\"Metadata name {doc['metadata']['name']} is not prefixed with RELEASE NAME: {RELEASE_NAME}\",\n            )\n\n    def test_extra_script_import_to_node_configmap(self):\n        resources_name = [f'{RELEASE_NAME}selenium-node-config']\n        count = 0\n        for doc in LIST_OF_DOCUMENTS:\n            if doc['metadata']['name'] in resources_name and doc['kind'] == 'ConfigMap':\n                logger.info(f\"Assert default file is imported to Node ConfigMap\")\n                self.assertTrue(doc['data']['nodeProbe.sh'] != \"\")\n                self.assertTrue(doc['data']['nodePreStop.sh'] != \"\")\n                self.assertTrue(doc['data']['nodeCustomTask.sh'] != \"\")\n                self.assertTrue(doc['data']['setFromCommand.sh'] != \"\")\n                count += 1\n        self.assertEqual(count, len(resources_name), \"No node config resources found\")\n\n    def test_extra_script_import_to_uploader_configmap(self):\n        resources_name = [f'{RELEASE_NAME}selenium-uploader-config']\n        count = 0\n        for doc in LIST_OF_DOCUMENTS:\n            if doc['metadata']['name'] in resources_name and doc['kind'] == 'ConfigMap':\n                logger.info(f\"Assert extra script is imported to Uploader ConfigMap\")\n                self.assertTrue(doc['data']['upload.sh'] is not None)\n                self.assertTrue(doc['data']['setFromCommand.sh'] is not None)\n                count += 1\n        self.assertEqual(count, len(resources_name), \"No uploader config resources found\")\n\n    def test_extra_script_import_to_recorder_configmap(self):\n        resources_name = [f'{RELEASE_NAME}selenium-recorder-config']\n        count = 0\n        for doc in LIST_OF_DOCUMENTS:\n            if doc['metadata']['name'] in resources_name and doc['kind'] == 'ConfigMap':\n                logger.info(f\"Assert extra script is imported to Recorder ConfigMap\")\n                self.assertTrue(doc['data']['video.sh'] is not None)\n                self.assertTrue(doc['data']['setFromCommand.sh'] is not None)\n                count += 1\n        self.assertEqual(count, len(resources_name), \"No recorder config resources found\")\n\n    def test_upload_conf_mount_to_video_container(self):\n        resources_name = [\n            f'{RELEASE_NAME}selenium-node-chrome',\n            f'{RELEASE_NAME}selenium-node-edge',\n            f'{RELEASE_NAME}selenium-node-firefox',\n        ]\n        is_present = False\n        for doc in LIST_OF_DOCUMENTS:\n            if doc['metadata']['name'] in resources_name and doc['kind'] == 'Deployment':\n                logger.info(f\"Assert upload config is mounted to the container\")\n                video_container = None\n                uploader_container = None\n                for container in doc['spec']['template']['spec']['containers']:\n                    if container['name'] == 'video':\n                        video_container = container\n                    if container['name'] == 's3':\n                        uploader_container = container\n                # Test for case override upload config in Edge node\n                if doc['metadata']['name'] == f'{RELEASE_NAME}selenium-node-edge':\n                    self.assertTrue(uploader_container is None, \"Video uploader should be disabled in Edge node config\")\n                    continue\n                list_volume_mounts = None\n                if uploader_container is not None:\n                    list_volume_mounts = uploader_container['volumeMounts']\n                else:\n                    list_volume_mounts = video_container['volumeMounts']\n                for volume in list_volume_mounts:\n                    if volume['mountPath'] == '/opt/selenium/upload.conf':\n                        is_present = True\n        self.assertTrue(is_present, \"Volume mount for upload config is not present in the container\")\n\n    def test_terminationGracePeriodSeconds_in_deployment_autoscaling(self):\n        resources_name = [\n            f'{RELEASE_NAME}selenium-node-chrome',\n        ]\n        count = 0\n        for doc in LIST_OF_DOCUMENTS:\n            if doc['metadata']['name'] in resources_name and doc['kind'] == 'Deployment':\n                logger.info(f\"Assert terminationGracePeriodSeconds is set in resource {doc['metadata']['name']}\")\n                self.assertTrue(doc['spec']['template']['spec']['terminationGracePeriodSeconds'] == 7200)\n                count += 1\n        self.assertEqual(\n            count,\n            len(resources_name),\n            \"node.terminationGracePeriodSeconds doesn't override a higher value than autoscaling.terminationGracePeriodSeconds\",\n        )\n\n        resources_name = [\n            f'{RELEASE_NAME}selenium-node-edge',\n            f'{RELEASE_NAME}selenium-node-firefox',\n        ]\n        count = 0\n        for doc in LIST_OF_DOCUMENTS:\n            if doc['metadata']['name'] in resources_name and doc['kind'] == 'Deployment':\n                logger.info(f\"Assert terminationGracePeriodSeconds is set in resource {doc['metadata']['name']}\")\n                self.assertTrue(doc['spec']['template']['spec']['terminationGracePeriodSeconds'] == 3600)\n                count += 1\n        self.assertEqual(\n            count,\n            len(resources_name),\n            \"node.terminationGracePeriodSeconds doesn't inherit the global value autoscaling.terminationGracePeriodSeconds\",\n        )\n\n    def test_enable_leftovers_cleanup(self):\n        resources_name = [f'{RELEASE_NAME}selenium-node-config']\n        count = 0\n        for doc in LIST_OF_DOCUMENTS:\n            if doc['metadata']['name'] in resources_name and doc['kind'] == 'ConfigMap':\n                logger.info(f\"Assert ENV vars for function leftovers cleanup is set to Node ConfigMap\")\n                self.assertEqual(doc['data']['SE_ENABLE_BROWSER_LEFTOVERS_CLEANUP'], 'true')\n                self.assertEqual(doc['data']['SE_BROWSER_LEFTOVERS_INTERVAL_SECS'], '3600')\n                self.assertEqual(doc['data']['SE_BROWSER_LEFTOVERS_PROCESSES_SECS'], '7200')\n                self.assertEqual(doc['data']['SE_BROWSER_LEFTOVERS_TEMPFILES_DAYS'], '1')\n                count += 1\n        self.assertEqual(count, len(resources_name), \"No node config resources found\")\n\n    def test_enable_tracing(self):\n        resources_name = [f'{RELEASE_NAME}selenium-logging-config']\n        count = 0\n        for doc in LIST_OF_DOCUMENTS:\n            if doc['metadata']['name'] in resources_name and doc['kind'] == 'ConfigMap':\n                logger.info(f\"Assert ENV vars for Tracing disabled is set to Node ConfigMap\")\n                self.assertEqual(doc['data']['SE_ENABLE_TRACING'], 'false')\n                count += 1\n        self.assertEqual(count, len(resources_name), \"No node config resources found\")\n\n    def test_update_strategy_in_all_components(self):\n        recreate = [\n            f'{RELEASE_NAME}selenium-distributor',\n            f'{RELEASE_NAME}selenium-event-bus',\n            f'{RELEASE_NAME}selenium-router',\n            f'{RELEASE_NAME}selenium-session-map',\n            f'{RELEASE_NAME}selenium-session-queue',\n            f'{RELEASE_NAME}selenium-node-chrome',\n            f'{RELEASE_NAME}selenium-node-edge',\n            f'{RELEASE_NAME}selenium-node-firefox',\n        ]\n        rolling = []\n        count_recreate = 0\n        count_rolling = 0\n        for doc in LIST_OF_DOCUMENTS:\n            if doc['metadata']['name'] in rolling and doc['kind'] == 'Deployment':\n                logger.info(f\"Assert updateStrategy is set in resource {doc['metadata']['name']}\")\n                self.assertTrue(\n                    doc['spec']['strategy']['type'] == 'RollingUpdate',\n                    f\"Resource {doc['metadata']['name']} doesn't have strategy RollingUpdate\",\n                )\n                count_rolling += 1\n            if doc['metadata']['name'] in recreate and doc['kind'] == 'Deployment':\n                logger.info(f\"Assert updateStrategy is set in resource {doc['metadata']['name']}\")\n                self.assertTrue(\n                    doc['spec']['strategy']['type'] == 'Recreate',\n                    f\"Resource {doc['metadata']['name']} doesn't have strategy Recreate\",\n                )\n                count_recreate += 1\n        self.assertEqual(count_rolling, len(rolling), \"No deployment resources found with strategy RollingUpdate\")\n        self.assertEqual(count_recreate, len(recreate), \"No deployment resources found with strategy Recreate\")\n\n    def test_topologySpreadConstraints_in_all_components(self):\n        resources_name = [\n            f'{RELEASE_NAME}selenium-node-chrome',\n            f'{RELEASE_NAME}selenium-node-edge',\n            f'{RELEASE_NAME}selenium-node-firefox',\n            f'{RELEASE_NAME}selenium-distributor',\n            f'{RELEASE_NAME}selenium-event-bus',\n            f'{RELEASE_NAME}selenium-router',\n            f'{RELEASE_NAME}selenium-session-map',\n            f'{RELEASE_NAME}selenium-session-queue',\n        ]\n        count = 0\n        for doc in LIST_OF_DOCUMENTS:\n            if doc['metadata']['name'] in resources_name and doc['kind'] == 'Deployment':\n                logger.info(f\"Assert topologySpreadConstraints is set in resource {doc['metadata']['name']}\")\n                self.assertTrue(\n                    doc['spec']['template']['spec']['topologySpreadConstraints'][0]['labelSelector']['matchLabels'][\n                        'app'\n                    ]\n                    == doc['metadata']['name']\n                )\n                count += 1\n        self.assertEqual(count, len(resources_name), \"No deployment resources found with topologySpreadConstraints\")\n\n    def test_not_create_basic_auth_secret_when_nameOverride_is_set(self):\n        resources_name = [f'{RELEASE_NAME}selenium-basic-auth-secrets']\n        count = 0\n        logger.info(f\"Assert basic auth secret is not created when nameOverride is set\")\n        for doc in LIST_OF_DOCUMENTS:\n            if doc['metadata']['name'] in resources_name and doc['kind'] == 'Secret':\n                count += 1\n        self.assertEqual(count, 0, \"Basic auth secret resource is created when nameOverride is set\")\n\n    def test_router_envFrom_secretRef_name_use_external_secret_when_basicAuth_nameOverride_is_set(self):\n        resources_name = [\n            f'{RELEASE_NAME}selenium-node-chrome',\n            f'{RELEASE_NAME}selenium-node-edge',\n            f'{RELEASE_NAME}selenium-node-firefox',\n            f'{RELEASE_NAME}selenium-distributor',\n            f'{RELEASE_NAME}selenium-event-bus',\n            f'{RELEASE_NAME}selenium-router',\n            f'{RELEASE_NAME}selenium-session-map',\n            f'{RELEASE_NAME}selenium-session-queue',\n        ]\n        is_present = False\n        for doc in LIST_OF_DOCUMENTS:\n            if doc['metadata']['name'] in resources_name and doc['kind'] == 'Deployment':\n                logger.info(\n                    f\"Assert envFrom secretRef name is set to external secret when basicAuth nameOverride is set\"\n                )\n                list_env_from = doc['spec']['template']['spec']['containers'][0]['envFrom']\n                for env in list_env_from:\n                    if env.get('secretRef') is not None:\n                        if env['secretRef']['name'] == 'my-external-basic-auth-secret':\n                            is_present = True\n        self.assertTrue(is_present, \"ENV variable from secretRef name is not set to external secret\")\n\n    def test_scaler_triggers_authenticationRef_name_is_added(self):\n        resources_name = [\n            f'{RELEASE_NAME}selenium-node-chrome',\n            f'{RELEASE_NAME}selenium-node-edge',\n            f'{RELEASE_NAME}selenium-node-firefox',\n        ]\n        is_present = False\n        for doc in LIST_OF_DOCUMENTS:\n            if doc['metadata']['name'] in resources_name and doc['kind'] == 'ScaledObject':\n                logger.info(f\"Assert authenticationRef name is added to scaler triggers\")\n                name = doc['spec']['triggers'][0]['authenticationRef']['name']\n                self.assertTrue(name, f'{RELEASE_NAME}selenium-scaler-trigger-auth')\n\n    def test_scaler_triggers_parameter_nodeMaxSessions_global_and_individual_value(self):\n        resources_name = {\n            f'{RELEASE_NAME}selenium-node-chrome': 2,\n            f'{RELEASE_NAME}selenium-node-edge': 3,\n            f'{RELEASE_NAME}selenium-node-firefox': 1,\n        }\n        count = 0\n        for resource_name in resources_name.keys():\n            for doc in LIST_OF_DOCUMENTS:\n                if doc['metadata']['name'] == resource_name and doc['kind'] == 'ScaledObject':\n                    logger.info(f\"Assert nodeMaxSessions parameter is set in scaler triggers\")\n                    self.assertTrue(\n                        str(doc['spec']['triggers'][0]['metadata']['nodeMaxSessions'])\n                        == str(resources_name[doc['metadata']['name']])\n                    )\n                if doc['metadata']['name'] == resource_name and doc['kind'] == 'Deployment':\n                    for env in doc['spec']['template']['spec']['containers'][0]['env']:\n                        if env['name'] == 'SE_NODE_MAX_SESSIONS':\n                            self.assertTrue(\n                                env['value'] == str(resources_name[doc['metadata']['name']]), \"Value is not matched\"\n                            )\n                        if env['name'] == 'SE_NODE_PLATFORM_NAME':\n                            self.assertTrue(env['value'] == \"\", \"Platform name is not matched\")\n                        if env['name'] == 'SE_NODE_BROWSER_VERSION':\n                            self.assertTrue(env['value'] == \"\", \"Browser version is not matched\")\n                            count += 1\n        self.assertEqual(\n            count, len(resources_name.keys()), f\"Expected {len(resources_name.keys())} resources but found {count}\"\n        )\n\n    def test_monitoring_exporter_tolerations(self):\n        resources_name = [f'{RELEASE_NAME}selenium-metrics-exporter']\n        count = 0\n        for doc in LIST_OF_DOCUMENTS:\n            if doc['metadata']['name'] in resources_name and doc['kind'] == 'Deployment':\n                logger.info(f\"Assert tolerations are set on monitoring exporter deployment\")\n                tolerations = doc['spec']['template']['spec']['tolerations']\n                self.assertTrue(len(tolerations) > 0)\n                self.assertEqual(tolerations[0]['key'], 'dedicated')\n                self.assertEqual(tolerations[0]['operator'], 'Exists')\n                count += 1\n        self.assertEqual(count, len(resources_name), \"No monitoring exporter deployment found\")\n\n\nif __name__ == '__main__':\n    failed = False\n    try:\n        FILE_NAME = sys.argv[1]\n        RELEASE_NAME = sys.argv[2]\n        if RELEASE_NAME == \"selenium\":\n            RELEASE_NAME = \"\"\n        else:\n            RELEASE_NAME = RELEASE_NAME + \"-\"\n        LIST_OF_DOCUMENTS = load_template(FILE_NAME)\n        suite = unittest.TestLoader().loadTestsFromTestCase(ChartTemplateTests)\n        test_runner = unittest.TextTestRunner(verbosity=3)\n        failed = not test_runner.run(suite).wasSuccessful()\n    except Exception as e:\n        logger.fatal(e)\n        failed = True\n\n    if failed:\n        exit(1)\n"
  },
  {
    "path": "tests/charts/templates/test_scaled_job.py",
    "content": "import logging\nimport sys\nimport unittest\n\nimport yaml\n\nlogging.basicConfig(level=logging.INFO, format=\"%(asctime)s - %(name)s - %(levelname)s - %(message)s\")\nlogger = logging.getLogger(__name__)\n\n\ndef load_template(yaml_file):\n    try:\n        with open(yaml_file) as file:\n            documents = yaml.safe_load_all(file)\n            list_of_documents = [doc for doc in documents]\n            return list_of_documents\n    except yaml.YAMLError as error:\n        print(\"Error in configuration file: \", error)\n\n\nclass ScaledJobTemplateTests(unittest.TestCase):\n    def test_scaled_job_has_zero_limits(self):\n        scaled_jobs = [doc for doc in LIST_OF_DOCUMENTS if doc and doc.get(\"kind\") == \"ScaledJob\"]\n        self.assertTrue(scaled_jobs, \"No ScaledJob resources found\")\n        for doc in scaled_jobs:\n            logger.info(f\"Assert ScaledJob limits are set to 0 in {doc['metadata']['name']}\")\n            self.assertEqual(doc.get(\"apiVersion\"), \"keda.sh/v1alpha1\")\n            spec = doc.get(\"spec\", {})\n            job_target_ref = spec.get(\"jobTargetRef\", {})\n            self.assertEqual(job_target_ref.get(\"backoffLimit\"), 0)\n            self.assertEqual(spec.get(\"minReplicaCount\"), 0)\n            self.assertEqual(spec.get(\"successfulJobsHistoryLimit\"), 0)\n\n\nif __name__ == \"__main__\":\n    failed = False\n    try:\n        FILE_NAME = sys.argv[1]\n        LIST_OF_DOCUMENTS = load_template(FILE_NAME)\n        suite = unittest.TestLoader().loadTestsFromTestCase(ScaledJobTemplateTests)\n        test_runner = unittest.TextTestRunner(verbosity=3)\n        failed = not test_runner.run(suite).wasSuccessful()\n    except Exception as e:\n        logger.fatal(e)\n        failed = True\n\n    if failed:\n        exit(1)\n"
  },
  {
    "path": "tests/config.toml",
    "content": "[docker]\nconfigs = [\n    \"${NAMESPACE}/standalone-firefox:${TAG}\", '{\"browserName\": \"firefox\", \"platformName\": \"linux\", \"myApp:version\": \"stable\", \"myApp:publish\": \"external\"}',\n    \"${NAMESPACE}/standalone-firefox:${TAG}\", '{\"browserName\": \"firefox\", \"platformName\": \"linux\", \"myApp:version\": \"beta\", \"myApp:publish\": \"internal\"}',\n    \"${NAMESPACE}/standalone-${NODE_CHROME}:${TAG}\", '{\"browserName\": \"chrome\", \"platformName\": \"linux\", \"myApp:version\": \"stable\", \"myApp:publish\": \"external\"}',\n    \"${NAMESPACE}/standalone-${NODE_CHROME}:${TAG}\", '{\"browserName\": \"chrome\", \"platformName\": \"linux\", \"myApp:version\": \"beta\", \"myApp:publish\": \"internal\"}',\n    \"${NAMESPACE}/standalone-${NODE_EDGE}:${TAG}\", '{\"browserName\": \"MicrosoftEdge\", \"platformName\": \"linux\", \"myApp:version\": \"stable\", \"myApp:publish\": \"external\"}',\n    \"${NAMESPACE}/standalone-${NODE_EDGE}:${TAG}\", '{\"browserName\": \"MicrosoftEdge\", \"platformName\": \"linux\", \"myApp:version\": \"beta\", \"myApp:publish\": \"internal\"}'\n    ]\n\nhost-config-keys = [\"Dns\", \"DnsOptions\", \"DnsSearch\", \"ExtraHosts\", \"Binds\"]\n\nurl = \"http://127.0.0.1:2375\"\n\nvideo-image = \"${NAMESPACE}/video:${VIDEO_TAG}\"\n\n[node]\ndetect-drivers = false\nenable-managed-downloads = \"${SELENIUM_ENABLE_MANAGED_DOWNLOADS}\"\noverride-max-sessions = true\nmax-sessions = 3\n"
  },
  {
    "path": "tests/customCACert/Dockerfile",
    "content": "ARG NAMESPACE=selenium\nARG BASE=node-chrome\nARG VERSION=latest\nFROM ${NAMESPACE}/${BASE}:${VERSION}\nARG CERT_FILE\nARG CERT_TRUST_ATTR=TCu,Cu,Tu\nARG CERT_TARGET_COPY=/opt/selenium/secrets\n\nCOPY ${CERT_FILE} ${CERT_TARGET_COPY}\nRUN /opt/bin/add-jks-helper.sh -d ${CERT_TARGET_COPY} \\\n    && /opt/bin/add-cert-helper.sh -d ${CERT_TARGET_COPY} ${CERT_TRUST_ATTR}\n"
  },
  {
    "path": "tests/customCACert/bootstrap.sh",
    "content": "#!/bin/bash\n\n# Function to be executed on command failure\non_failure() {\n    local exit_status=$?\n    echo \"There is step failed with exit status $exit_status\"\n    exit $exit_status\n}\n\n# Trap ERR signal and call on_failure function\ntrap 'on_failure' ERR\n\nNAMESPACE=${NAME:-\"selenium\"}\nVERSION=${VERSION:-$TAG_VERSION}\nCERT_FILE=${CERT_FILE:-\"./charts/selenium-grid/certs/*.crt\"}\n\nCOMMON_BUILD_ARGS=\"--build-arg NAMESPACE=${NAMESPACE} --build-arg VERSION=${VERSION} --build-arg CERT_FILE=${CERT_FILE}\"\n\ndocker build ${COMMON_BUILD_ARGS} --build-arg BASE=node-chrome -t ${NAMESPACE}/node-chrome:${VERSION} -f ./tests/customCACert/Dockerfile .\ndocker build ${COMMON_BUILD_ARGS} --build-arg BASE=node-firefox -t ${NAMESPACE}/node-firefox:${VERSION} -f ./tests/customCACert/Dockerfile .\ndocker build ${COMMON_BUILD_ARGS} --build-arg BASE=node-edge -t ${NAMESPACE}/node-edge:${VERSION} -f ./tests/customCACert/Dockerfile .\n\nlist_cert_files=($(find ./charts/selenium-grid/certs/ -name \"*.crt\"))\nfor cert_file_path in \"${list_cert_files[@]}\"; do\n  cert_nick_name=\"SeleniumHQ_$(basename $cert_file_path)\"\n  docker run --entrypoint=\"\" --rm  ${NAMESPACE}/node-chrome:${VERSION} bash -c \"certutil -L -d sql:/home/seluser/.pki/nssdb -n ${cert_nick_name}\"\n  docker run --entrypoint=\"\" --rm  ${NAMESPACE}/node-firefox:${VERSION} bash -c \"certutil -L -d sql:/home/seluser/.pki/nssdb -n ${cert_nick_name}\"\n  docker run --entrypoint=\"\" --rm  ${NAMESPACE}/node-edge:${VERSION} bash -c \"certutil -L -d sql:/home/seluser/.pki/nssdb -n ${cert_nick_name}\"\ndone\n"
  },
  {
    "path": "tests/docker-compose-v3-dev-arm64.yml",
    "content": "# To execute this docker compose yml file use `docker compose -f docker-compose-v3-dev-arm64.yml up`\n# Add the `-d` flag at the end for detached execution\n# To stop the execution, hit Ctrl+C, and then `docker compose -f docker-compose-v3-dev-arm64.yml down`\nservices:\n  chrome:\n    deploy:\n      mode: replicated\n      replicas: 3\n    image: selenium/node-chromium:4.41.0-20260222\n    platform: linux/arm64\n    shm_size: 2gb\n    volumes:\n      - ./selenium_server_deploy.jar:/opt/selenium/selenium-server.jar\n    depends_on:\n      - selenium-hub\n    environment:\n      - SE_EVENT_BUS_HOST=selenium-hub\n      - SE_VNC_NO_PASSWORD=true\n      - SE_NODE_ENABLE_MANAGED_DOWNLOADS=true\n      - SE_RECORD_VIDEO=true\n\n  firefox:\n    deploy:\n      mode: replicated\n      replicas: 3\n    image: selenium/node-firefox:4.41.0-20260222\n    shm_size: 2gb\n    volumes:\n      - ./selenium_server_deploy.jar:/opt/selenium/selenium-server.jar\n    depends_on:\n      - selenium-hub\n    environment:\n      - SE_EVENT_BUS_HOST=selenium-hub\n      - SE_VNC_NO_PASSWORD=true\n      - SE_NODE_ENABLE_MANAGED_DOWNLOADS=true\n      - SE_RECORD_VIDEO=true\n\n  selenium-hub:\n    image: selenium/hub:4.41.0-20260222\n    container_name: selenium-hub\n    volumes:\n      - ./selenium_server_deploy.jar:/opt/selenium/selenium-server.jar\n    ports:\n      - \"4442:4442\"\n      - \"4443:4443\"\n      - \"4444:4444\"\n"
  },
  {
    "path": "tests/docker-compose-v3-event-driven-arm64.yml",
    "content": "services:\n  # Start a local FTP server to demonstrate video upload with RCLONE (https://github.com/delfer/docker-alpine-ftp-server)\n  ftp_server:\n    image: delfer/alpine-ftp-server:latest\n    container_name: ftp_server\n    environment:\n      - USERS=seluser|selenium.dev\n    volumes:\n      # Mount the local directory `/home/${USER}/Videos/upload` to the FTP server's `/ftp/seluser` directory to check out the uploaded videos\n      - /tmp/upload:/ftp/seluser\n    command: [\"/bin/sh\", \"-c\", \"/sbin/tini -- /bin/start_vsftpd.sh && tail -f /dev/null\"]\n    stop_grace_period: 30s\n\n  # File browser to manage the uploaded videos from the FTP server\n  file_browser:\n    image: filebrowser/filebrowser:latest\n    container_name: file_browser\n    restart: always\n    ports:\n      - \"8081:80\"\n    volumes:\n      # Mount the local directory `/tmp/upload` to file browser's `/srv` directory to check out the uploaded videos\n      - /tmp/upload:/srv\n    environment:\n      - FB_NOAUTH=true\n\n  chrome:\n    deploy:\n      mode: replicated\n      replicas: 3\n    image: selenium/node-chromium:4.41.0-20260222\n    shm_size: 2gb\n    depends_on:\n      - selenium-hub\n    volumes:\n      - /tmp/videos:/videos\n    environment:\n      - SE_EVENT_BUS_HOST=selenium-hub\n      - SE_RECORD_VIDEO=true\n      - SE_VIDEO_UPLOAD_ENABLED=true\n      - SE_UPLOAD_FAILURE_SESSION_ONLY=true\n      # Remote name and destination path to upload\n      - SE_UPLOAD_DESTINATION_PREFIX=myftp://ftp/seluser\n      # All configs required for RCLONE to upload to remote name myftp\n      - RCLONE_CONFIG_MYFTP_TYPE=ftp\n      - RCLONE_CONFIG_MYFTP_HOST=ftp_server\n      - RCLONE_CONFIG_MYFTP_PORT=21\n      - RCLONE_CONFIG_MYFTP_USER=seluser\n      # Password encrypted using command: rclone obscure <your_password>\n      - RCLONE_CONFIG_MYFTP_PASS=KkK8RsUIba-MMTBUSnuYIdAKvcnFyLl2pdhQig\n      - RCLONE_CONFIG_MYFTP_FTP_CONCURRENCY=10\n    stop_grace_period: 30s\n\n  firefox:\n    deploy:\n      mode: replicated\n      replicas: 3\n    image: selenium/node-firefox:4.41.0-20260222\n    shm_size: 2gb\n    depends_on:\n      - selenium-hub\n    volumes:\n      - /tmp/videos:/videos\n    environment:\n      - SE_EVENT_BUS_HOST=selenium-hub\n      - SE_RECORD_VIDEO=true\n      - SE_VIDEO_UPLOAD_ENABLED=true\n      - SE_UPLOAD_FAILURE_SESSION_ONLY=true\n      # Remote name and destination path to upload\n      - SE_UPLOAD_DESTINATION_PREFIX=myftp://ftp/seluser\n      # All configs required for RCLONE to upload to remote name myftp\n      - RCLONE_CONFIG_MYFTP_TYPE=ftp\n      - RCLONE_CONFIG_MYFTP_HOST=ftp_server\n      - RCLONE_CONFIG_MYFTP_PORT=21\n      - RCLONE_CONFIG_MYFTP_USER=seluser\n      # Password encrypted using command: rclone obscure <your_password>\n      - RCLONE_CONFIG_MYFTP_PASS=KkK8RsUIba-MMTBUSnuYIdAKvcnFyLl2pdhQig\n      - RCLONE_CONFIG_MYFTP_FTP_CONCURRENCY=10\n    stop_grace_period: 30s\n\n  selenium-hub:\n    image: selenium/hub:4.41.0-20260222\n    container_name: selenium-hub\n    ports:\n      - \"4442:4442\"\n      - \"4443:4443\"\n      - \"4444:4444\"\n"
  },
  {
    "path": "tests/docker-compose-v3-event-driven-standalone-arm64.yml",
    "content": "services:\n  # Start a local FTP server to demonstrate video upload with RCLONE (https://github.com/delfer/docker-alpine-ftp-server)\n  ftp_server:\n    image: delfer/alpine-ftp-server:latest\n    container_name: ftp_server\n    environment:\n      - USERS=seluser|selenium.dev\n    volumes:\n      # Mount the local directory `/home/${USER}/Videos/upload` to the FTP server's `/ftp/seluser` directory to check out the uploaded videos\n      - /tmp/upload:/ftp/seluser\n    command: [\"/bin/sh\", \"-c\", \"/sbin/tini -- /bin/start_vsftpd.sh && tail -f /dev/null\"]\n    stop_grace_period: 30s\n\n  # File browser to manage the uploaded videos from the FTP server\n  file_browser:\n    image: filebrowser/filebrowser:latest\n    container_name: file_browser\n    restart: always\n    ports:\n      - \"8081:80\"\n    volumes:\n      # Mount the local directory `/tmp/upload` to file browser's `/srv` directory to check out the uploaded videos\n      - /tmp/upload:/srv\n    environment:\n      - FB_NOAUTH=true\n\n  chrome:\n    deploy:\n      mode: replicated\n      replicas: 1\n    image: selenium/standalone-chromium:4.41.0-20260222\n    shm_size: 2gb\n    ports:\n      - \"4444:4444\"\n    volumes:\n      - /tmp/videos:/videos\n    environment:\n      - SE_VIDEO_RECORD_STANDALONE=true\n      - SE_RECORD_VIDEO=true\n      - SE_VIDEO_UPLOAD_ENABLED=true\n      - SE_DYNAMIC_OVERRIDE_MAX_SESSIONS=true\n      - SE_DYNAMIC_MAX_SESSIONS=4\n      # Remote name and destination path to upload\n      - SE_UPLOAD_DESTINATION_PREFIX=myftp://ftp/seluser\n      # All configs required for RCLONE to upload to remote name myftp\n      - RCLONE_CONFIG_MYFTP_TYPE=ftp\n      - RCLONE_CONFIG_MYFTP_HOST=ftp_server\n      - RCLONE_CONFIG_MYFTP_PORT=21\n      - RCLONE_CONFIG_MYFTP_USER=seluser\n      # Password encrypted using command: rclone obscure <your_password>\n      - RCLONE_CONFIG_MYFTP_PASS=KkK8RsUIba-MMTBUSnuYIdAKvcnFyLl2pdhQig\n      - RCLONE_CONFIG_MYFTP_FTP_CONCURRENCY=10\n    stop_grace_period: 30s"
  },
  {
    "path": "tests/docker-compose-v3-get-started-arm64.yml",
    "content": "# To execute this docker compose yml file use `docker compose -f docker-compose-v3-get-started-arm64.yml up`\n# Add the `-d` flag at the end for detached execution\n# To stop the execution, hit Ctrl+C, and then `docker compose -f docker-compose-v3-get-started-arm64.yml down`\nservices:\n  chrome:\n    deploy:\n      mode: replicated\n      replicas: 3\n    image: selenium/node-chromium:latest\n    shm_size: 2gb\n    depends_on:\n      - selenium-hub\n    volumes:\n      - /tmp/videos:/videos\n    environment:\n      - SE_EVENT_BUS_HOST=selenium-hub\n      - SE_RECORD_VIDEO=true\n      - SE_VIDEO_FILE_NAME=auto\n      - SE_NODE_GRID_URL=http://selenium-hub:4444\n\n  firefox:\n    deploy:\n      mode: replicated\n      replicas: 3\n    image: selenium/node-firefox:latest\n    shm_size: 2gb\n    depends_on:\n      - selenium-hub\n    volumes:\n      - /tmp/videos:/videos\n    environment:\n      - SE_EVENT_BUS_HOST=selenium-hub\n      - SE_RECORD_VIDEO=true\n      - SE_VIDEO_FILE_NAME=auto\n      - SE_NODE_GRID_URL=http://selenium-hub:4444\n\n  selenium-hub:\n    image: selenium/hub:latest\n    container_name: selenium-hub\n    ports:\n      - \"4442:4442\"\n      - \"4443:4443\"\n      - \"4444:4444\"\n\n  # File browser to manage the videos from local volume\n  file_browser:\n    image: filebrowser/filebrowser:latest\n    container_name: file_browser\n    restart: always\n    ports:\n      - \"8081:80\"\n    volumes:\n      - /tmp/videos:/srv\n    environment:\n      - FB_NOAUTH=true\n"
  },
  {
    "path": "tests/docker-compose-v3-test-node-docker.yaml",
    "content": "services:\n  node-docker:\n    image: ${NAMESPACE}/node-docker:${TAG}\n    volumes:\n      - ./videos:/opt/selenium/assets\n      - ./videos/config.toml:/opt/selenium/docker.toml\n      - /var/run/docker.sock:/var/run/docker.sock\n      - ./videos/Downloads:/home/seluser/Downloads\n    dns:\n      - 8.8.8.8\n      - 8.8.4.4\n    dns_search: selenium-grid.local\n    extra_hosts:\n      - \"prod.domain.com:${HOST_IP}\"\n    depends_on:\n      - selenium-hub\n      - ftp_server\n    environment:\n      - SE_EVENT_BUS_HOST=selenium-hub\n      - SE_NODE_ENABLE_MANAGED_DOWNLOADS=${SELENIUM_ENABLE_MANAGED_DOWNLOADS}\n      - SE_OPTS=--enable-managed-downloads ${SELENIUM_ENABLE_MANAGED_DOWNLOADS}\n      - SE_BROWSER_ARGS_DISABLE_DSHM=--disable-dev-shm-usage\n      - SE_LOG_LEVEL=${LOG_LEVEL}\n      - SE_VIDEO_RECORD_STANDALONE=true\n      - SE_VIDEO_FILE_NAME=${VIDEO_FILE_NAME}\n      - SE_VIDEO_FILE_NAME_SUFFIX=${VIDEO_FILE_NAME_SUFFIX}\n      - SE_VIDEO_UPLOAD_ENABLED=true\n      - SE_UPLOAD_DESTINATION_PREFIX=myftp://ftp/seluser\n      - SE_RCLONE_CONFIG_MYFTP_TYPE=ftp\n      - SE_RCLONE_CONFIG_MYFTP_HOST=ftp_server\n      - SE_RCLONE_CONFIG_MYFTP_PORT=21\n      - SE_RCLONE_CONFIG_MYFTP_USER=seluser\n      - SE_RCLONE_CONFIG_MYFTP_PASS=KkK8RsUIba-MMTBUSnuYIdAKvcnFyLl2pdhQig\n      - SE_RCLONE_CONFIG_MYFTP_FTP_CONCURRENCY=10\n\n  selenium-hub:\n    image: ${NAMESPACE}/hub:${TAG}\n    user: ${UID}\n    container_name: selenium-hub\n    environment:\n      - SE_LOG_LEVEL=${LOG_LEVEL}\n      - SE_SESSION_REQUEST_TIMEOUT=${REQUEST_TIMEOUT}\n    ports:\n      - \"4442:4442\"\n      - \"4443:4443\"\n      - \"4444:4444\"\n\n  ftp_server:\n    image: delfer/alpine-ftp-server:latest\n    container_name: ftp_server\n    command: [\"/bin/sh\", \"-c\", \"/sbin/tini -- /bin/start_vsftpd.sh && tail -f /dev/null\"]\n    environment:\n      - USERS=seluser|selenium.dev\n      - MAX_PORT=21010\n      - TINI_SUBREAPER=true\n    volumes:\n      - ./videos/upload:/ftp/seluser\n    stop_grace_period: 30s\n\n  the-internet:\n    image: ndviet/the-internet:latest\n    container_name: the-internet\n\n  tests:\n    image: docker-selenium-tests:latest\n    build:\n      context: ./\n      dockerfile: ./Dockerfile\n    depends_on:\n      - selenium-hub\n      - the-internet\n    environment:\n      - TEST_SITE=the-internet:5000\n      - RUN_IN_DOCKER_COMPOSE=true\n      - SELENIUM_GRID_HOST=selenium-hub\n      - BINDING_VERSION=${BINDING_VERSION}\n      - SELENIUM_ENABLE_MANAGED_DOWNLOADS=${SELENIUM_ENABLE_MANAGED_DOWNLOADS}\n      - TEST_DELAY_AFTER_TEST=${TEST_DELAY_AFTER_TEST}\n      - HUB_CHECKS_INTERVAL=${HUB_CHECKS_INTERVAL}\n      - TEST_CUSTOM_SPECIFIC_NAME=${TEST_CUSTOM_SPECIFIC_NAME}\n    command: [\"/bin/bash\", \"-c\", \"./bootstrap.sh ${NODE}\"]\n"
  },
  {
    "path": "tests/docker-compose-v3-test-node-relay.yml",
    "content": "services:\n  node-relay-standalone:\n    image: ${NAMESPACE}/node-base:${TAG}\n    shm_size: 2gb\n    depends_on:\n      - selenium-hub\n      - standalone\n    volumes:\n      - ./videos/relay_config.toml:/opt/selenium/config.toml\n    environment:\n      - SE_EVENT_BUS_HOST=selenium-hub\n      - SE_LOG_LEVEL=${LOG_LEVEL}\n      - GENERATE_CONFIG=false\n\n  standalone:\n    image: ${NAMESPACE}/standalone-${BROWSER}:${TAG}\n    shm_size: 2gb\n    environment:\n      - SE_OPTS=--enable-cdp true\n      - SE_NODE_ENABLE_CDP=true\n\n  selenium-hub:\n    image: ${NAMESPACE}/hub:${TAG}\n    environment:\n      - SE_LOG_LEVEL=${LOG_LEVEL}\n      - SE_SESSION_REQUEST_TIMEOUT=${REQUEST_TIMEOUT}\n    ports:\n      - \"4442:4442\"\n      - \"4443:4443\"\n      - \"4444:4444\"\n\n  the-internet:\n    image: ndviet/the-internet:latest\n    container_name: the-internet\n\n  tests:\n    image: docker-selenium-tests:${TAG}\n    build:\n      context: ./\n      dockerfile: ./Dockerfile\n    depends_on:\n      - selenium-hub\n      - the-internet\n    environment:\n      - TEST_SITE=the-internet:5000\n      - RUN_IN_DOCKER_COMPOSE=true\n      - SELENIUM_GRID_HOST=selenium-hub\n      - BINDING_VERSION=${BINDING_VERSION}\n      - SELENIUM_ENABLE_MANAGED_DOWNLOADS=false\n      - TEST_NODE_RELAY=${TEST_NODE_RELAY}\n      - ANDROID_PLATFORM_API=${ANDROID_PLATFORM_API}\n      - TEST_DELAY_AFTER_TEST=${TEST_DELAY_AFTER_TEST}\n    command: [\"/bin/bash\", \"-c\", \"./bootstrap.sh ${NODE}\"]\n\n  node-relay-emulator:\n    profiles:\n      - Android\n    image: ${NAMESPACE}/node-base:${TAG}\n    shm_size: 2gb\n    depends_on:\n      - selenium-hub\n      - emulator\n    environment:\n      - SE_EVENT_BUS_HOST=selenium-hub\n      - SE_LOG_LEVEL=${LOG_LEVEL}\n      - SE_NODE_SESSION_TIMEOUT=${SESSION_TIMEOUT}\n      - SE_NODE_RELAY_URL=http://emulator:4723\n      - SE_NODE_RELAY_PROTOCOL_VERSION=HTTP/1.1\n      - SE_NODE_RELAY_MAX_SESSIONS=1\n      - SE_NODE_RELAY_PLATFORM_NAME=Android\n      - SE_NODE_RELAY_PLATFORM_VERSION=${ANDROID_PLATFORM_API}\n      - SE_NODE_RELAY_BROWSER_NAME=chrome\n      - SE_NODE_RELAY_STEREOTYPE_EXTRA={\"myApp:version\":\"beta\",\"myApp:publish\":\"public\"}\n      - SE_NODE_RELAY_WEB_VNC=ws://emulator:6080/websockify\n\n  emulator:\n    profiles:\n      - Android\n    image: ${ANDROID_BASED_NAME}/${ANDROID_BASED_IMAGE}:${TAG}\n    shm_size: 2gb\n    build:\n      args:\n        ANDROID_BASED_NAME: ${ANDROID_BASED_NAME}\n        ANDROID_BASED_IMAGE: ${ANDROID_BASED_IMAGE}\n        ANDROID_BASED_TAG: ${ANDROID_BASED_TAG}\n        CHROME_DRIVER_URL: https://chromedriver.storage.googleapis.com/113.0.5672.63/chromedriver_linux64.zip\n      dockerfile: ./Dockerfile.emulator\n    environment:\n      - EMULATOR_DEVICE=Nexus 5\n      - WEB_VNC=true\n      - APPIUM=true\n      - WEB_LOG=true\n      - WEB_LOG_PORT=9001\n      - EMULATOR_NO_SKIN=true\n      - EMULATOR_NAME=emulator-5554\n    devices:\n      - /dev/kvm\n"
  },
  {
    "path": "tests/docker-compose-v3-test-parallel.yml",
    "content": "# How to run this?\n# docker compose -f docker-compose-v3-test-video.yml up --abort-on-container-exit --build\n# To clean up, `docker compose -f docker-compose-v3-test-video.yml down`\nservices:\n  chrome:\n    profiles:\n      - linux/amd64\n      - linux/arm64\n    deploy:\n      mode: replicated\n      replicas: 5\n    image: selenium/node-${NODE_CHROME}:${TAG}\n    user: ${UID}\n    shm_size: 2gb\n    depends_on:\n      - selenium-hub\n    volumes:\n      - ./videos/certs:/opt/selenium/secrets\n      - ./videos:/videos\n    environment:\n      - SE_NODE_BROWSER_VERSION=\n      - SE_EVENT_BUS_HOST=selenium-hub\n      - SE_NODE_ENABLE_MANAGED_DOWNLOADS=true\n      - SE_BROWSER_ARGS_DISABLE_DSHM=--disable-dev-shm-usage\n      - SE_BROWSER_ARGS_INCOGNITO=--incognito --incognito\n      - SE_LOG_LEVEL=${LOG_LEVEL}\n      - SE_SUPERVISORD_LOG_LEVEL=info\n      - SE_NODE_GRACEFUL_SHUTDOWN=true\n      - SE_NODE_OVERRIDE_MAX_SESSIONS=true\n      - SE_NODE_MAX_SESSIONS=2\n      - SE_DRAIN_AFTER_SESSION_COUNT=4\n      - SE_ENABLE_TLS=true\n      - SE_JAVA_OPTS=-Dwebdriver.httpclient.readTimeout=${REQUEST_TIMEOUT}\n      - SE_RECORD_VIDEO=true\n      - SE_VIDEO_FILE_NAME=auto\n      - SE_SERVER_PROTOCOL=https\n      - SE_NODE_GRID_URL=https://selenium-hub:4444\n      - SE_NODE_STEREOTYPE_EXTRA={\"myApp:version\":\"beta\",\"myApp:publish\":\"public\"}\n    restart: always\n\n  firefox:\n    profiles:\n      - linux/amd64\n      - linux/arm64\n    deploy:\n      mode: replicated\n      replicas: 5\n    image: selenium/node-firefox:${TAG}\n    user: ${UID}\n    shm_size: 2gb\n    depends_on:\n      - selenium-hub\n    volumes:\n      - ./videos/certs:/opt/selenium/secrets\n      - ./videos:/videos\n    environment:\n      - SE_NODE_BROWSER_VERSION=\n      - SE_EVENT_BUS_HOST=selenium-hub\n      - SE_NODE_ENABLE_MANAGED_DOWNLOADS=true\n      - SE_LOG_LEVEL=${LOG_LEVEL}\n      - SE_SUPERVISORD_LOG_LEVEL=info\n      - SE_NODE_GRACEFUL_SHUTDOWN=true\n      - SE_NODE_OVERRIDE_MAX_SESSIONS=true\n      - SE_NODE_MAX_SESSIONS=2\n      - SE_DRAIN_AFTER_SESSION_COUNT=2\n      - SE_ENABLE_TLS=true\n      - SE_JAVA_OPTS=-Dwebdriver.httpclient.readTimeout=${REQUEST_TIMEOUT}\n      - SE_RECORD_VIDEO=true\n      - SE_VIDEO_FILE_NAME=auto\n      - SE_SERVER_PROTOCOL=https\n      - SE_NODE_GRID_URL=https://selenium-hub:4444\n      - SE_NODE_STEREOTYPE_EXTRA={\"myApp:version\":\"beta\",\"myApp:publish\":\"public\"}\n    restart: always\n\n  edge:\n    profiles:\n      - linux/amd64\n    deploy:\n      mode: replicated\n      replicas: 5\n    image: selenium/node-edge:${TAG}\n    user: ${UID}\n    shm_size: 2gb\n    depends_on:\n      - selenium-hub\n    volumes:\n      - ./videos/certs:/opt/selenium/secrets\n    environment:\n      - SE_NODE_BROWSER_VERSION=\n      - SE_EVENT_BUS_HOST=selenium-hub\n      - SE_NODE_ENABLE_MANAGED_DOWNLOADS=true\n      - SE_LOG_LEVEL=${LOG_LEVEL}\n      - SE_SUPERVISORD_LOG_LEVEL=info\n      - SE_NODE_GRACEFUL_SHUTDOWN=true\n      - SE_NODE_OVERRIDE_MAX_SESSIONS=true\n      - SE_NODE_MAX_SESSIONS=3\n      - SE_DRAIN_AFTER_SESSION_COUNT=3\n      - SE_ENABLE_TLS=true\n      - SE_JAVA_OPTS=-Dwebdriver.httpclient.readTimeout=${REQUEST_TIMEOUT}\n      - SE_RECORD_VIDEO=true\n      - SE_VIDEO_FILE_NAME=auto\n      - SE_SERVER_PROTOCOL=https\n      - SE_NODE_GRID_URL=https://selenium-hub:4444\n      - SE_NODE_STEREOTYPE_EXTRA={\"myApp:version\":\"beta\",\"myApp:publish\":\"public\"}\n    restart: always\n\n  selenium-hub:\n    image: selenium/hub:${TAG}\n    user: ${UID}\n    container_name: selenium-hub\n    ports:\n      - \"4442:4442\"\n      - \"4443:4443\"\n      - \"4444:4444\"\n    volumes:\n      - ./videos/certs:/opt/selenium/secrets\n    environment:\n      - SE_LOG_LEVEL=${LOG_LEVEL}\n      - SE_SESSION_REQUEST_TIMEOUT=${REQUEST_TIMEOUT}\n      - SE_SUPERVISORD_LOG_LEVEL=error\n      - SE_ENABLE_TLS=true\n      - SE_SERVER_PROTOCOL=https\n      - SE_JAVA_OPTS=-Dwebdriver.httpclient.readTimeout=${REQUEST_TIMEOUT}\n    healthcheck:\n      test: \"/opt/bin/check-grid.sh --host 0.0.0.0 --port 4444\"\n      interval: 20s\n      timeout: 30s\n      retries: 5\n\n  the-internet:\n    image: ndviet/the-internet:latest\n    container_name: the-internet\n\n#  tests:\n#    image: docker-selenium-tests:latest\n#    build:\n#      context: ./\n#      dockerfile: ./Dockerfile\n#    depends_on:\n#      - selenium-hub\n#    environment:\n#      - RUN_IN_DOCKER_COMPOSE=true\n#      - SELENIUM_GRID_HOST=selenium-hub\n#      - TEST_PARALLEL_HARDENING=${TEST_PARALLEL_HARDENING}\n#      - BINDING_VERSION=${BINDING_VERSION}\n#      - TEST_PLATFORMS=${PLATFORMS}\n#      - SELENIUM_GRID_PROTOCOL=${SELENIUM_GRID_PROTOCOL}\n#      - CHART_CERT_PATH=${CHART_CERT_PATH}\n#    command: [\"/bin/bash\", \"-c\", \"./bootstrap.sh ${NODE}\"]\n"
  },
  {
    "path": "tests/docker-compose-v3-test-standalone-docker.yaml",
    "content": "services:\n  standalone-docker:\n    image: ${NAMESPACE}/standalone-docker:${TAG}\n    depends_on:\n      - ftp_server\n    volumes:\n      - ./videos:/opt/selenium/assets\n      - ./videos/config.toml:/opt/selenium/docker.toml\n      - /var/run/docker.sock:/var/run/docker.sock\n    environment:\n      - SE_VNC_NO_PASSWORD=true\n      - SE_START_VNC=true\n      - SE_LOG_LEVEL=${LOG_LEVEL}\n      - SE_NODE_ENABLE_MANAGED_DOWNLOADS=${SELENIUM_ENABLE_MANAGED_DOWNLOADS}\n      - SE_NODE_GRID_URL=${GRID_URL}\n      - SE_OPTS=--log-level ${LOG_LEVEL} --enable-managed-downloads ${SELENIUM_ENABLE_MANAGED_DOWNLOADS}\n      - SE_VIDEO_RECORD_STANDALONE=${RECORD_STANDALONE}\n      - SE_VIDEO_FILE_NAME=${VIDEO_FILE_NAME}\n      - SE_VIDEO_FILE_NAME_SUFFIX=${VIDEO_FILE_NAME_SUFFIX}\n      - SE_VIDEO_UPLOAD_ENABLED=true\n      - SE_UPLOAD_DESTINATION_PREFIX=myftp://ftp/seluser\n      - SE_RCLONE_CONFIG_MYFTP_TYPE=ftp\n      - SE_RCLONE_CONFIG_MYFTP_HOST=ftp_server\n      - SE_RCLONE_CONFIG_MYFTP_PORT=21\n      - SE_RCLONE_CONFIG_MYFTP_USER=seluser\n      - SE_RCLONE_CONFIG_MYFTP_PASS=KkK8RsUIba-MMTBUSnuYIdAKvcnFyLl2pdhQig\n      - SE_RCLONE_CONFIG_MYFTP_FTP_CONCURRENCY=10\n      - SE_ROUTER_USERNAME=${BASIC_AUTH_USER}\n      - SE_ROUTER_PASSWORD=${BASIC_AUTH_PASSWORD}\n    container_name: selenium-hub\n    ports:\n      - \"4444:4444\"\n    healthcheck:\n      test: \"/opt/bin/check-grid.sh --host 0.0.0.0 --port 4444\"\n      interval: 15s\n      timeout: 30s\n      retries: 5\n\n  ftp_server:\n    image: delfer/alpine-ftp-server:latest\n    container_name: ftp_server\n    command: [\"/bin/sh\", \"-c\", \"/sbin/tini -- /bin/start_vsftpd.sh && tail -f /dev/null\"]\n    environment:\n      - USERS=seluser|selenium.dev\n      - MAX_PORT=21010\n      - TINI_SUBREAPER=true\n    volumes:\n      - ./videos/upload:/ftp/seluser\n    stop_grace_period: 30s\n\n  the-internet:\n    image: ndviet/the-internet:latest\n    container_name: the-internet\n\n  tests:\n    image: docker-selenium-tests:latest\n    build:\n      context: ./\n      dockerfile: ./Dockerfile\n    depends_on:\n      - standalone-docker\n      - the-internet\n    environment:\n      - TEST_SITE=the-internet:5000\n      - RUN_IN_DOCKER_COMPOSE=true\n      - SELENIUM_GRID_HOST=selenium-hub\n      - BINDING_VERSION=${BINDING_VERSION}\n      - SELENIUM_ENABLE_MANAGED_DOWNLOADS=${SELENIUM_ENABLE_MANAGED_DOWNLOADS}\n      - TEST_PARALLEL_HARDENING=${TEST_PARALLEL_HARDENING}\n      - TEST_DELAY_AFTER_TEST=${TEST_DELAY_AFTER_TEST}\n      - HUB_CHECKS_INTERVAL=${HUB_CHECKS_INTERVAL}\n      - TEST_CUSTOM_SPECIFIC_NAME=${TEST_CUSTOM_SPECIFIC_NAME}\n      - SELENIUM_GRID_USERNAME=${BASIC_AUTH_USER}\n      - SELENIUM_GRID_PASSWORD=${BASIC_AUTH_PASSWORD}\n    command: [\"/bin/bash\", \"-c\", \"./bootstrap.sh ${NODE}\"]\n"
  },
  {
    "path": "tests/docker-compose-v3-test-standalone.yml",
    "content": "# How to run this?\n# Ensure .env file with following variables is present in the same directory as this file\n# docker compose -f docker-compose-v3-test-standalone.yml up --abort-on-container-exit --build\n# To clean up, `docker compose -f docker-compose-v3-test-standalone.yml down`\nservices:\n  standalone:\n    image: selenium/standalone-${BROWSER}:${TAG}\n    user: ${UID}\n    shm_size: 2gb\n    container_name: standalone\n    depends_on:\n      - browser_video\n    environment:\n      - SE_NODE_BROWSER_VERSION=\n      - SE_NODE_MAX_SESSIONS=1\n      - SE_NODE_OVERRIDE_MAX_SESSIONS=true\n      - SE_NODE_ENABLE_MANAGED_DOWNLOADS=${SELENIUM_ENABLE_MANAGED_DOWNLOADS}\n      - SE_OPTS=--enable-managed-downloads ${SELENIUM_ENABLE_MANAGED_DOWNLOADS}\n      - SE_ROUTER_USERNAME=${BASIC_AUTH_USERNAME}\n      - SE_ROUTER_PASSWORD=${BASIC_AUTH_PASSWORD}\n      - SE_SUB_PATH=${SUB_PATH}\n      - SE_NODE_STEREOTYPE_EXTRA={\"myApp:version\":\"beta\",\"myApp:publish\":\"public\"}\n    ports:\n      - \"4444:4444\"\n    healthcheck:\n      test: \"/opt/bin/check-grid.sh --host 0.0.0.0 --port 4444\"\n      interval: 15s\n      timeout: 30s\n      retries: 5\n\n  browser_video:\n    image: selenium/video:${VIDEO_TAG}\n    user: ${UID}\n    depends_on:\n      - ftp_server\n    environment:\n      - SE_VIDEO_RECORD_STANDALONE=true\n      - DISPLAY_CONTAINER_NAME=standalone\n      - SE_ROUTER_USERNAME=${BASIC_AUTH_USERNAME}\n      - SE_ROUTER_PASSWORD=${BASIC_AUTH_PASSWORD}\n      - SE_SUB_PATH=${SUB_PATH}\n      - SE_VIDEO_FILE_NAME=${VIDEO_FILE_NAME}\n      - SE_VIDEO_FILE_NAME_SUFFIX=${VIDEO_FILE_NAME_SUFFIX}\n      - SE_SUPERVISORD_LOG_LEVEL=error\n      - SE_VIDEO_UPLOAD_ENABLED=true\n      - SE_UPLOAD_DESTINATION_PREFIX=myftp://ftp/seluser\n      - RCLONE_CONFIG_MYFTP_TYPE=ftp\n      - RCLONE_CONFIG_MYFTP_HOST=ftp_server\n      - RCLONE_CONFIG_MYFTP_PORT=21\n      - RCLONE_CONFIG_MYFTP_USER=seluser\n      - RCLONE_CONFIG_MYFTP_PASS=KkK8RsUIba-MMTBUSnuYIdAKvcnFyLl2pdhQig\n      - RCLONE_CONFIG_MYFTP_FTP_CONCURRENCY=10\n    stop_grace_period: 30s\n\n  ftp_server:\n    image: delfer/alpine-ftp-server:latest\n    container_name: ftp_server\n    command: [\"/bin/sh\", \"-c\", \"/sbin/tini -- /bin/start_vsftpd.sh && tail -f /dev/null\"]\n    environment:\n      - USERS=seluser|selenium.dev\n      - MAX_PORT=21010\n      - TINI_SUBREAPER=true\n    volumes:\n      - ./videos/upload:/ftp/seluser\n    stop_grace_period: 30s\n\n  the-internet:\n    image: ndviet/the-internet:latest\n    container_name: the-internet\n\n  tests:\n    image: docker-selenium-tests:latest\n    build:\n      context: ./\n      dockerfile: ./Dockerfile\n    depends_on:\n      - standalone\n      - the-internet\n    environment:\n      - TEST_SITE=the-internet:5000\n      - RUN_IN_DOCKER_COMPOSE=true\n      - SELENIUM_GRID_HOST=standalone\n      - SELENIUM_GRID_PORT=4444${SUB_PATH}\n      - SELENIUM_GRID_USERNAME=${BASIC_AUTH_USERNAME}\n      - SELENIUM_GRID_PASSWORD=${BASIC_AUTH_PASSWORD}\n      - BINDING_VERSION=${BINDING_VERSION}\n      - TEST_DELAY_AFTER_TEST=${TEST_DELAY_AFTER_TEST}\n      - SELENIUM_ENABLE_MANAGED_DOWNLOADS=${SELENIUM_ENABLE_MANAGED_DOWNLOADS}\n      - TEST_FIREFOX_INSTALL_LANG_PACKAGE=${TEST_FIREFOX_INSTALL_LANG_PACKAGE}\n      - HUB_CHECKS_INTERVAL=${HUB_CHECKS_INTERVAL}\n    command: [\"/bin/bash\", \"-c\", \"./bootstrap.sh ${NODE}\"]\n"
  },
  {
    "path": "tests/docker-compose-v3-test-video.yml",
    "content": "# How to run this?\n# docker compose -f docker-compose-v3-test-video.yml up --abort-on-container-exit --build\n# To clean up, `docker compose -f docker-compose-v3-test-video.yml down`\nservices:\n  browser:\n    image: selenium/node-${BROWSER}:${TAG}\n    user: ${UID}\n    shm_size: 2gb\n    depends_on:\n      - selenium-hub\n      - browser_video\n    environment:\n      - SE_EVENT_BUS_HOST=selenium-hub\n      - SE_NODE_ENABLE_MANAGED_DOWNLOADS=${SELENIUM_ENABLE_MANAGED_DOWNLOADS}\n    ports:\n      - \"6900:5900\"\n\n  browser_video:\n    image: selenium/video:${VIDEO_TAG}\n    user: ${UID}\n    depends_on:\n      - ftp_server\n    environment:\n      - SE_NODE_GRID_URL=http://selenium-hub:4444\n      - DISPLAY_CONTAINER_NAME=browser\n      - SE_VIDEO_FILE_NAME=${VIDEO_FILE_NAME}\n      - SE_VIDEO_FILE_NAME_SUFFIX=${VIDEO_FILE_NAME_SUFFIX}\n      - SE_SUPERVISORD_LOG_LEVEL=info\n      - SE_VIDEO_UPLOAD_ENABLED=true\n      - SE_UPLOAD_DESTINATION_PREFIX=myftp://ftp/seluser\n      - RCLONE_CONFIG_MYFTP_TYPE=ftp\n      - RCLONE_CONFIG_MYFTP_HOST=ftp_server\n      - RCLONE_CONFIG_MYFTP_PORT=21\n      - RCLONE_CONFIG_MYFTP_USER=seluser\n      - RCLONE_CONFIG_MYFTP_PASS=KkK8RsUIba-MMTBUSnuYIdAKvcnFyLl2pdhQig\n      - RCLONE_CONFIG_MYFTP_FTP_CONCURRENCY=10\n    stop_grace_period: 30s\n\n  ftp_server:\n    image: delfer/alpine-ftp-server:latest\n    container_name: ftp_server\n    command: [\"/bin/sh\", \"-c\", \"/sbin/tini -- /bin/start_vsftpd.sh && tail -f /dev/null\"]\n    environment:\n      - USERS=seluser|selenium.dev\n      - MAX_PORT=21010\n      - TINI_SUBREAPER=true\n    volumes:\n      - ./videos/upload:/ftp/seluser\n    stop_grace_period: 30s\n\n  selenium-hub:\n    image: selenium/hub:${TAG}\n    user: ${UID}\n    container_name: selenium-hub\n    ports:\n      - \"4442:4442\"\n      - \"4443:4443\"\n      - \"4444:4444\"\n    healthcheck:\n      test: \"/opt/bin/check-grid.sh --host 0.0.0.0 --port 4444\"\n      interval: 15s\n      timeout: 30s\n      retries: 5\n\n  the-internet:\n    image: ndviet/the-internet:latest\n    container_name: the-internet\n\n  tests:\n    image: docker-selenium-tests:latest\n    build:\n      context: ./\n      dockerfile: ./Dockerfile\n    depends_on:\n      - selenium-hub\n      - browser\n      - the-internet\n    environment:\n      - TEST_SITE=the-internet:5000\n      - RUN_IN_DOCKER_COMPOSE=true\n      - SELENIUM_GRID_HOST=selenium-hub\n      - BINDING_VERSION=${BINDING_VERSION}\n      - TEST_DELAY_AFTER_TEST=${TEST_DELAY_AFTER_TEST}\n      - SELENIUM_ENABLE_MANAGED_DOWNLOADS=${SELENIUM_ENABLE_MANAGED_DOWNLOADS}\n      - TEST_FIREFOX_INSTALL_LANG_PACKAGE=${TEST_FIREFOX_INSTALL_LANG_PACKAGE}\n      - HUB_CHECKS_INTERVAL=${HUB_CHECKS_INTERVAL}\n      - TEST_ADD_CAPS_RECORD_VIDEO=${TEST_ADD_CAPS_RECORD_VIDEO}\n    command: [\"/bin/bash\", \"-c\", \"./bootstrap.sh ${NODE}\"]\n"
  },
  {
    "path": "tests/get_started.py",
    "content": "import sys\nimport time\n\nfrom selenium import webdriver\nfrom selenium.webdriver.chrome.options import Options as ChromeOptions\nfrom selenium.webdriver.edge.options import Options as EdgeOptions\nfrom selenium.webdriver.firefox.options import Options as FirefoxOptions\n\nif len(sys.argv) < 2:\n    print(\"Usage: python3 get_started.py [chrome|firefox|edge]\")\n    sys.exit(1)\nbrowser = sys.argv[1].lower()\nif browser not in [\"chrome\", \"firefox\", \"edge\"]:\n    print(\"Unsupported browser. Use 'chrome', 'firefox', or 'edge'.\")\n    sys.exit(1)\n\nif len(sys.argv) > 2:\n    GRID_URL = sys.argv[2]\nelse:\n    GRID_URL = \"http://localhost:4444/wd/hub\"\n\nimport concurrent.futures\n\n\ndef run_browser_instance(browser, grid_url):\n    options = None\n    if browser == \"chrome\":\n        options = ChromeOptions()\n    elif browser == \"firefox\":\n        options = FirefoxOptions()\n    elif browser == \"edge\":\n        options = EdgeOptions()\n    options.enable_bidi = True\n    options.enable_downloads = True\n    options.set_capability('se:recordVideo', True)\n    options.set_capability('se:name', \"Test this test session\")\n\n    while True:\n        driver = webdriver.Remote(\n            command_executor=grid_url,\n            options=options,\n        )\n        print(f\"Session created: {driver.session_id} ({browser})\")\n        driver.get('https://www.google.com/')\n        print(driver.title)\n        time.sleep(15)\n        driver.fire_session_event(\"test:failed\", {\"error\": \"Element not found\"})\n        driver.quit()\n\n\nwith concurrent.futures.ThreadPoolExecutor(max_workers=3) as executor:\n    for _ in range(3):\n        executor.submit(run_browser_instance, browser, GRID_URL)\n"
  },
  {
    "path": "tests/relay_config.toml",
    "content": "[events]\npublish = \"tcp://selenium-hub:4442\"\nsubscribe = \"tcp://selenium-hub:4443\"\n\n[node]\nsession-timeout = \"300\"\noverride-max-sessions = false\ndetect-drivers = false\ndrain-after-session-count = 0\nmax-sessions = 1\n\n[relay]\nurl = \"http://standalone:4444/wd/hub\"\nstatus-endpoint = \"/status\"\nconfigs = [\n    '3', '{\"browserName\":\"${BROWSER_NAME}\",\"platformName\":\"linux\"}'\n]\n"
  },
  {
    "path": "tests/requirements.txt",
    "content": "docker\nrequests\nchardet\ncsv2md\nselenium\npyyaml\nyamale\nyamllint\nisort\nblack\nshfmt-py\nmbake\n"
  },
  {
    "path": "tests/standalone_docker_config.toml",
    "content": "[docker]\nconfigs = [\n    \"${NAMESPACE}/standalone-firefox:${TAG}\", '{\"browserName\": \"firefox\", \"platformName\": \"linux\", \"myApp:version\": \"stable\", \"myApp:publish\": \"external\"}',\n    \"${NAMESPACE}/standalone-firefox:${TAG}\", '{\"browserName\": \"firefox\", \"platformName\": \"linux\", \"myApp:version\": \"beta\", \"myApp:publish\": \"internal\"}',\n    \"${NAMESPACE}/standalone-${NODE_CHROME}:${TAG}\", '{\"browserName\": \"chrome\", \"platformName\": \"linux\", \"myApp:version\": \"stable\", \"myApp:publish\": \"external\"}',\n    \"${NAMESPACE}/standalone-${NODE_CHROME}:${TAG}\", '{\"browserName\": \"chrome\", \"platformName\": \"linux\", \"myApp:version\": \"beta\", \"myApp:publish\": \"internal\"}',\n    \"${NAMESPACE}/standalone-${NODE_EDGE}:${TAG}\", '{\"browserName\": \"MicrosoftEdge\", \"platformName\": \"linux\", \"myApp:version\": \"stable\", \"myApp:publish\": \"external\"}',\n    \"${NAMESPACE}/standalone-${NODE_EDGE}:${TAG}\", '{\"browserName\": \"MicrosoftEdge\", \"platformName\": \"linux\", \"myApp:version\": \"beta\", \"myApp:publish\": \"internal\"}'\n    ]\n\nurl = \"http://127.0.0.1:2375\"\n\nvideo-image = \"false\"\n\n[node]\ndetect-drivers = false\nenable-managed-downloads = \"${SELENIUM_ENABLE_MANAGED_DOWNLOADS}\"\noverride-max-sessions = true\nmax-sessions = 16\nsession-timeout = 1000\nenable-cdp = true\nselenium-manager = false\n\n[sessionqueue]\nsession-request-timeout = \"${REQUEST_TIMEOUT}\"\n\n[router]\ndisable-ui = false\n"
  },
  {
    "path": "tests/test.py",
    "content": "import logging\nimport os\nimport platform\nimport random\nimport re\nimport signal\nimport sys\nimport unittest\n\nimport docker\nfrom docker.errors import NotFound\n\n\ndef clean_up():\n    logger.info(\"Cleaning up...\")\n\n    # Clean up test container\n    test_container = client.containers.get(test_container_id)\n    test_container.kill()\n    test_container.remove()\n\n    # Clean up application container if it exists\n    try:\n        app_container = client.containers.get('the-internet')\n        app_container.kill()\n        logger.info(f'Stopped application container: {app_container.id}')\n    except Exception as e:\n        logger.debug(f'Application container not found or already stopped: {e}')\n\n    if standalone:\n        logger.info(\"Standalone Cleaned up\")\n    else:\n        # Kill the launched hub\n        hub = client.containers.get(hub_id)\n        hub.kill()\n        hub.remove()\n        logger.info(\"Hub / Node Cleaned up\")\n\n\ndef signal_handler(signum, frame):\n    clean_up()\n    sys.exit(0)\n\n\nsignal.signal(signal.SIGINT, signal_handler)\nsignal.signal(signal.SIGQUIT, signal_handler)\n\n# LOGGING #\nlogging.basicConfig(level=logging.INFO, format=\"%(asctime)s - %(name)s - %(levelname)s - %(message)s\")\nlogger = logging.getLogger(__name__)\n\nNAMESPACE = os.environ.get('NAMESPACE')\nVERSION = os.environ.get('VERSION')\nUSE_RANDOM_USER_ID = os.environ.get('USE_RANDOM_USER_ID')\nRUN_IN_DOCKER_COMPOSE = os.environ.get('RUN_IN_DOCKER_COMPOSE')\nhttp_proxy = os.environ.get('http_proxy', '')\nhttps_proxy = os.environ.get('https_proxy', '')\nno_proxy = os.environ.get('no_proxy', '')\nSKIP_BUILD = os.environ.get('SKIP_BUILD', False)\nPLATFORMS = os.environ.get('PLATFORMS', 'linux/amd64')\nFILESYSTEM_READ_ONLY = os.environ.get('FILESYSTEM_READ_ONLY', 'false').lower() == 'true'\nBASE_VERSION = os.environ.get('BASE_VERSION')\nBASE_RELEASE = os.environ.get('BASE_RELEASE')\n\ntry:\n    client = docker.from_env()\nexcept:\n    client = None\n\nIMAGE_NAME_MAP = {\n    # Hub\n    'Hub': 'hub',\n    # Chrome Images\n    'NodeChrome': 'node-chrome',\n    'NodeAllChrome': 'node-all-browsers',\n    'StandaloneChrome': 'standalone-chrome',\n    'StandaloneAllChrome': 'standalone-all-browsers',\n    'NodeChrome-for-testing': 'node-chrome-for-testing',\n    'StandaloneChrome-for-testing': 'standalone-chrome-for-testing',\n    # Edge Images\n    'NodeEdge': 'node-edge',\n    'NodeAllEdge': 'node-all-browsers',\n    'StandaloneEdge': 'standalone-edge',\n    'StandaloneAllEdge': 'standalone-all-browsers',\n    # Firefox Images\n    'NodeFirefox': 'node-firefox',\n    'NodeAllFirefox': 'node-all-browsers',\n    'StandaloneFirefox': 'standalone-firefox',\n    'StandaloneAllFirefox': 'standalone-all-browsers',\n    # Chromium Images\n    'NodeChromium': 'node-chromium',\n    'StandaloneChromium': 'standalone-chromium',\n}\n\nTEST_NAME_MAP = {\n    \"Android\": \"ChromeTests\",\n    # Chrome Images\n    'NodeChrome': 'ChromeTests',\n    'NodeAllChrome': 'ChromeTests',\n    'StandaloneChrome': 'ChromeTests',\n    'StandaloneAllChrome': 'ChromeTests',\n    'NodeChrome-for-testing': 'ChromeTests',\n    'StandaloneChrome-for-testing': 'ChromeTests',\n    # Edge Images\n    'NodeEdge': 'EdgeTests',\n    'NodeAllEdge': 'EdgeTests',\n    'StandaloneEdge': 'EdgeTests',\n    'StandaloneAllEdge': 'EdgeTests',\n    # Firefox Images\n    'NodeFirefox': 'FirefoxTests',\n    'NodeAllFirefox': 'FirefoxTests',\n    'StandaloneFirefox': 'FirefoxTests',\n    'StandaloneAllFirefox': 'FirefoxTests',\n    # Chromium Images\n    'NodeChromium': 'ChromeTests',\n    'StandaloneChromium': 'ChromeTests',\n    # Chart Parallel Test\n    'JobAutoscaling': 'JobAutoscalingTests',\n    'DeploymentAutoscaling': 'DeploymentAutoscalingTests',\n}\n\nFROM_IMAGE_ARGS = {\n    'NAMESPACE': NAMESPACE,\n    'VERSION': VERSION,\n    'BASE_VERSION': BASE_VERSION,\n    'BASE_RELEASE': BASE_RELEASE,\n}\n\n\ndef get_platform():\n    os_arch = platform.machine()\n    if os_arch == 'x86_64':\n        os_arch = 'linux/amd64'\n    else:\n        os_arch = 'linux/arm64'\n    logger.info(\"Current OS platform: %s\" % os_arch)\n    return os_arch\n\n\ndef launch_application(network_name):\n    \"\"\"\n    Launch the application under test\n    :return: the application container\n    \"\"\"\n    logger.info(\"Launching Application...\")\n\n    existing_app = None\n\n    try:\n        existing_app = client.containers.get('the-internet')\n    except NotFound:\n        pass\n\n    if existing_app:\n        try:\n            logger.debug(\"Application container already exists. Removing...\")\n            if existing_app.status == 'running':\n                logger.debug(\"Application is running. Stopping...\")\n                existing_app.kill()\n                logger.debug(\"Application stopped\")\n            try:\n                existing_app.remove()\n                logger.debug(\"Application container removed\")\n            except Exception as e:\n                if \"removal of container\" in str(e) and \"is already in progress\" in str(e):\n                    logger.debug(\"Container is already being removed, continuing...\")\n                else:\n                    raise e\n        except Exception as e:\n            logger.warning(f\"Error while cleaning up existing application container: {e}\")\n            logger.debug(\"Attempting to continue with new container creation...\")\n\n    # Start new application container\n    app_container = client.containers.run(\n        'ndviet/the-internet:latest', name='the-internet', network=network_name, detach=True, remove=True\n    )\n    logger.info(f'Started application container: {app_container.name}')\n    return app_container\n\n\ndef launch_hub(network_name):\n    \"\"\"\n    Launch the hub\n    :return: the hub ID\n    \"\"\"\n    logger.info(\"Launching Hub...\")\n\n    existing_hub = None\n\n    try:\n        existing_hub = client.containers.get('selenium-hub')\n    except NotFound:\n        pass\n\n    if existing_hub:\n        logger.debug(\"hub already exists. removing.\")\n        if existing_hub.status == 'running':\n            logger.debug(\"hub is running. Killing\")\n            existing_hub.kill()\n            logger.debug(\"hub killed\")\n        existing_hub.remove()\n        logger.debug(\"hub removed\")\n\n    grid_ports = {'4442': 4442, '4443': 4443, '4444': 4444}\n    if use_random_user_id:\n        hub_container_id = launch_container(\n            'Hub', network=network_name, name=\"selenium-hub\", ports=grid_ports, user=random_user_id\n        )\n    else:\n        hub_container_id = launch_container('Hub', network=network_name, name=\"selenium-hub\", ports=grid_ports)\n\n    logger.info(\"Hub Launched\")\n    return hub_container_id\n\n\ndef create_network(network_name):\n    client.networks.create(network_name, driver=\"bridge\", check_duplicate=True)\n\n\ndef prune_networks():\n    client.networks.prune()\n\n\ndef launch_container(container, **kwargs):\n    \"\"\"\n    Launch a specific container\n    :param container:\n    :return: the container ID\n    \"\"\"\n    skip_building_images = SKIP_BUILD == 'true'\n    if skip_building_images:\n        logger.info(\"SKIP_BUILD is true...not rebuilding images...\")\n    else:\n        PLATFORM_LIST = PLATFORMS.split(',')\n        for PLATFORM in PLATFORM_LIST:\n            if get_platform() != PLATFORM:\n                continue\n            # Build the container if it doesn't exist\n            logger.info(f\"Building {container} container in platform {PLATFORM}...\")\n            set_from_image_base_for_standalone(container)\n            build_path = get_build_path(container)\n            client.images.build(\n                path='../%s' % build_path,\n                tag=f\"{NAMESPACE}/{IMAGE_NAME_MAP[container]}:{VERSION}\",\n                rm=True,\n                buildargs=FROM_IMAGE_ARGS,\n                platform=PLATFORM,\n            )\n            logger.info(\"Done building %s\" % container)\n\n    # Run the container\n    logger.info(\"Running %s container...\" % container)\n    # Merging env vars\n    environment = {\n        'http_proxy': http_proxy,\n        'https_proxy': https_proxy,\n        'no_proxy': no_proxy,\n        'SE_EVENT_BUS_HOST': 'selenium-hub',\n        'SE_EVENT_BUS_PUBLISH_PORT': 4442,\n        'SE_EVENT_BUS_SUBSCRIBE_PORT': 4443,\n    }\n    if \"standalone\" in container.lower():\n        environment['SE_EVENT_BUS_HOST'] = '0.0.0.0'\n    if container != 'Hub':\n        environment['SE_NODE_ENABLE_MANAGED_DOWNLOADS'] = \"true\"\n    container_id = client.containers.run(\n        f\"{NAMESPACE}/{IMAGE_NAME_MAP[container]}:{VERSION}\",\n        detach=True,\n        environment=environment,\n        shm_size=\"2G\",\n        read_only=FILESYSTEM_READ_ONLY,\n        tmpfs={'/tmp': 'rw'},\n        **kwargs,\n    ).short_id\n    logger.info(\"%s up and running\" % container)\n    return container_id\n\n\ndef set_from_image_base_for_standalone(container):\n    match = standalone_browser_container_matches(container)\n    if match != None:\n        FROM_IMAGE_ARGS['BASE'] = 'node-' + match.group(2).lower()\n\n\ndef get_build_path(container):\n    match = standalone_browser_container_matches(container)\n    if match == None:\n        return container\n    else:\n        return match.group(1)\n\n\ndef standalone_browser_container_matches(container):\n    return re.match(\"(Standalone)(Chromium|Chrome|Firefox|Edge)\", container)\n\n\nif __name__ == '__main__':\n    # The container to test against\n    image = sys.argv[1]\n\n    use_random_user_id = USE_RANDOM_USER_ID == 'true'\n    run_in_docker_compose = RUN_IN_DOCKER_COMPOSE == 'true'\n    random_user_id = random.randint(2000, 65000)\n\n    if use_random_user_id:\n        logger.info(\"Running tests with a random user ID -> %s\" % random_user_id)\n\n    standalone = 'standalone' in image.lower()\n\n    # Flag for failure (for posterity)\n    failed = False\n\n    # Avoiding to start the containers when running inside docker compose\n    test_container_id = ''\n    hub_id = ''\n    if not run_in_docker_compose:\n        logger.info('========== Starting %s Container ==========' % image)\n        try:\n            prune_networks()\n            create_network(\"grid\")\n        except Exception as e:\n            logger.debug(f'Network not found or already stopped: {e}')\n\n        # Launch application under test\n        app_container = launch_application(\"grid\")\n        if standalone:\n            \"\"\"\n            Standalone Configuration\n            \"\"\"\n            ports = {'4444': 4444}\n            if use_random_user_id:\n                test_container_id = launch_container(image, network='grid', ports=ports, user=random_user_id)\n            else:\n                test_container_id = launch_container(image, network='grid', ports=ports)\n        else:\n            \"\"\"\n            Hub / Node Configuration\n            \"\"\"\n            hub_id = launch_hub(\"grid\")\n            ports = {'5555': 5555, '7900': 7900}\n            if use_random_user_id:\n                test_container_id = launch_container(image, network='grid', ports=ports, user=random_user_id)\n            else:\n                test_container_id = launch_container(image, network='grid', ports=ports)\n            prune_networks()\n\n        logger.info('========== / Containers ready to go ==========')\n\n    try:\n        # Smoke tests\n        logger.info('*********** Running smoke tests %s Tests **********' % image)\n        image_class = \"%sTest\" % image\n        module = __import__('SmokeTests', fromlist='GridTest')\n        test_class = getattr(module, 'GridTest')\n        suite = unittest.TestLoader().loadTestsFromTestCase(test_class)\n        test_runner = unittest.TextTestRunner(verbosity=3)\n        failed = not test_runner.run(suite).wasSuccessful()\n    except Exception as e:\n        logger.fatal(e)\n        failed = True\n\n    try:\n        # Run Selenium tests\n        logger.info('*********** Running Selenium tests %s Tests **********' % image)\n        test_class = getattr(__import__('SeleniumTests', fromlist=[TEST_NAME_MAP[image]]), TEST_NAME_MAP[image])\n        suite = unittest.TestLoader().loadTestsFromTestCase(test_class)\n        test_runner = unittest.TextTestRunner(verbosity=3)\n        failed = not test_runner.run(suite).wasSuccessful()\n    except Exception as e:\n        logger.fatal(e)\n        failed = True\n\n    # Avoiding a container cleanup if tests run inside docker compose\n    if not run_in_docker_compose:\n        clean_up()\n\n    if failed:\n        exit(1)\n"
  },
  {
    "path": "tests/test_grid_ui.py",
    "content": "import sys\nimport time\n\nfrom selenium import webdriver\nfrom selenium.webdriver.chrome.options import Options as ChromeOptions\nfrom selenium.webdriver.common.by import By\nfrom selenium.webdriver.edge.options import Options as EdgeOptions\nfrom selenium.webdriver.firefox.options import Options as FirefoxOptions\nfrom selenium.webdriver.support import expected_conditions as EC\nfrom selenium.webdriver.support.ui import WebDriverWait\n\nif len(sys.argv) < 2:\n    print(\"Usage: python3 get_started.py [chrome|firefox|edge]\")\n    sys.exit(1)\nbrowser = sys.argv[1].lower()\nif browser not in [\"chrome\", \"firefox\", \"edge\"]:\n    print(\"Unsupported browser. Use 'chrome', 'firefox', or 'edge'.\")\n    sys.exit(1)\n\n\ndef run_browser_instance(browser):\n\n    while True:\n        options = None\n        if browser == \"chrome\":\n            options = ChromeOptions()\n            options.add_argument(\"--headless=new\")\n            driver = webdriver.Chrome(options=options)\n        elif browser == \"firefox\":\n            options = FirefoxOptions()\n            driver = webdriver.Firefox(options=options)\n        elif browser == \"edge\":\n            options = EdgeOptions()\n            driver = webdriver.Edge(options=options)\n        else:\n            raise ValueError(\"Unsupported browser. Use 'chrome', 'firefox', or 'edge'.\")\n\n        try:\n            driver.get('http://localhost:4444')\n            print(driver.title)\n\n            # Explicit wait for the search bar to be visible\n            WebDriverWait(driver, 10).until(\n                EC.visibility_of_element_located((By.XPATH, \"//*[@data-testid='VideocamIcon']/..\"))\n            )\n\n            import random\n\n            elements = driver.find_elements(By.XPATH, \"//*[@data-testid='VideocamIcon']/..\")\n            if elements:\n                random.choice(elements).click()\n                print(\"Random element clicked.\")\n            else:\n                print(\"No elements found.\")\n        finally:\n            time.sleep(15)  # Keep the browser open for 10 seconds\n            driver.quit()\n\n\nimport concurrent.futures\n\nwith concurrent.futures.ThreadPoolExecutor(max_workers=5) as executor:\n    for _ in range(5):\n        executor.submit(run_browser_instance, browser)\n"
  },
  {
    "path": "update_tag_in_docs_and_files.sh",
    "content": "#!/usr/bin/env bash\n\nLATEST_TAG=$1\nNEXT_TAG=$2\nLATEST_DATE=$(echo ${LATEST_TAG} | sed 's/.*-//')\nNEXT_DATE=$(echo ${NEXT_TAG} | sed 's/.*-//')\nlatest_chart_app_version=$(find . \\( -type d -name .git -prune \\) -o -type f -wholename '*/selenium-grid/Chart.yaml' -print0 | xargs -0 cat | grep ^appVersion | cut -d ':' -f 2 | tr -d '[:space:]')\nFFMPEG_TAG_PREV_VERSION=$(grep FFMPEG_TAG_PREV_VERSION Makefile | sed 's/.*,\\([^)]*\\))/\\1/p' | head -n 1)\nFFMPEG_TAG_VERSION=$(grep FFMPEG_TAG_VERSION Makefile | sed 's/.*,\\([^)]*\\))/\\1/p' | head -n 1)\nKEDA_TAG_PREV_VERSION=$(grep KEDA_TAG_PREV_VERSION Makefile | sed 's/.*,\\([^)]*\\))/\\1/p' | head -n 1)\nKEDA_TAG_VERSION=$(grep KEDA_TAG_VERSION Makefile | sed 's/.*,\\([^)]*\\))/\\1/p' | head -n 1)\n\necho -e \"\\033[0;32m Updating tag displayed in docs and files...\\033[0m\"\necho -e \"\\033[0;32m LATEST_TAG -> ${LATEST_TAG}\\033[0m\"\necho -e \"\\033[0;32m NEXT_TAG -> ${NEXT_TAG}\\033[0m\"\n\n# If you want to test this locally and you are using macOS, do `brew install gnu-sed` and change `sed` for `gsed`.\nfind . \\( -type d -name .git -prune \\) -o -type f ! -name 'CHANGELOG.md' -print0 | xargs -0 sed -i \"s/${FFMPEG_TAG_PREV_VERSION}/${FFMPEG_TAG_VERSION}/g\"\n\n# If you want to test this locally and you are using macOS, do `brew install gnu-sed` and change `sed` for `gsed`.\nfind . \\( -type d -name .git -prune \\) -o -type f ! -name 'CHANGELOG.md' -print0 | xargs -0 sed -i \"s/${KEDA_TAG_PREV_VERSION}/${KEDA_TAG_VERSION}/g\"\n\n# If you want to test this locally and you are using macOS, do `brew install gnu-sed` and change `sed` for `gsed`.\nfind . \\( -type d -name .git -prune -o -type d -name 'CHANGELOG' -prune \\) -o -type f ! -name 'CHANGELOG.md' -print0 | xargs -0 sed -i \"s/${LATEST_TAG}/${NEXT_TAG}/g\"\n\nif [[ \"$NEXT_TAG\" == \"latest\" ]] || [[ \"$NEXT_TAG\" == \"nightly\" ]]; then\n  # If you want to test this locally and you are using macOS, do `brew install gnu-sed` and change `sed` for `gsed`.\n  FFMPEG_LATEST_TAG=${FFMPEG_TAG_VERSION}-${LATEST_DATE}\n  KEDA_LATEST_TAG=${KEDA_TAG_VERSION}-${LATEST_DATE}\n  find . \\( -type d -name .git -prune \\) -o -type f ! -name 'CHANGELOG.md' -print0 | xargs -0 sed -i \"s/${KEDA_LATEST_TAG}/${NEXT_TAG}/g\"\n  find . \\( -type d -name .git -prune \\) -o -type f ! -name 'CHANGELOG.md' -print0 | xargs -0 sed -i \"s/${FFMPEG_LATEST_TAG}/${NEXT_TAG}/g\"\nfi\n\necho -e \"\\033[0;32m Updating date used in some docs and files...\\033[0m\"\necho -e \"\\033[0;32m LATEST_DATE -> ${LATEST_DATE}\\033[0m\"\necho -e \"\\033[0;32m NEXT_DATE -> ${NEXT_DATE}\\033[0m\"\n\n# If you want to test this locally and you are using macOS, do `brew install gnu-sed` and change `sed` for `gsed`.\nfind . \\( -type d -name .git -prune -o -type d -name 'CHANGELOG' -prune \\) -o -type f ! -name 'CHANGELOG.md' -print0 | xargs -0 sed -i \"s/${LATEST_DATE}/${NEXT_DATE}/g\"\n\n# Bump chart version and appVersion if next tag is different\nif [ \"$latest_chart_app_version\" == $LATEST_TAG ] && [ \"$latest_chart_app_version\" != \"$NEXT_TAG\" ]; then\n  IFS='.' read -ra latest_version_parts <<<\"$LATEST_TAG\"\n  IFS='.' read -ra next_version_parts <<<\"$NEXT_TAG\"\n  latest_chart_version=$(find . \\( -type d -name .git -prune \\) -o -type f -wholename '*/selenium-grid/Chart.yaml' -print0 | xargs -0 cat | grep ^version | cut -d ':' -f 2 | tr -d '[:space:]')\n  IFS='.' read -ra latest_chart_version_parts <<<\"$latest_chart_version\"\n  if [ \"${latest_version_parts[0]}\" != \"${next_version_parts[0]}\" ]; then\n    ((latest_chart_version_parts[0]++))\n    latest_chart_version_parts[1]=0\n    latest_chart_version_parts[2]=0\n  elif [ \"${latest_version_parts[1]}\" != \"${next_version_parts[1]}\" ]; then\n    ((latest_chart_version_parts[1]++))\n    latest_chart_version_parts[2]=0\n  elif [ \"${latest_version_parts[2]}\" != \"${next_version_parts[2]}\" ]; then\n    ((latest_chart_version_parts[2]++))\n  fi\n  next_chart_version=\"${latest_chart_version_parts[0]}.${latest_chart_version_parts[1]}.${latest_chart_version_parts[2]}\"\n  echo -e \"\\033[0;32m Updating chart version...\\033[0m\"\n  echo -e \"\\033[0;32m LATEST_CHART_VERSION -> ${latest_chart_version}\\033[0m\"\n  echo -e \"\\033[0;32m NEXT_CHART_VERSION -> ${next_chart_version}\\033[0m\"\n  # If you want to test this locally and you are using macOS, do `brew install gnu-sed` and change `sed` for `gsed`.\n  find . \\( -type d -name .git -prune \\) -o -type f -wholename '*/selenium-grid/Chart.yaml' -print0 | xargs -0 sed -i \"s/${latest_chart_version}/${next_chart_version}/g\"\n  find . \\( -type d -name .git -prune \\) -o -type f -wholename '*/bug_report.yml' -print0 | xargs -0 sed -i \"s/${latest_chart_version}/${next_chart_version}/g\"\nfi\n\ngit diff | cat\n\necho -e \"\\033[0;32m Text updated...\\033[0m\"\n"
  }
]