<!DOCTYPE html>

<!--
  Copyright 2018 The Chromium Authors. All rights reserved.
  Use of this source code is governed by a BSD-style license that can be
  found in the LICENSE file.
-->

<html>

<head>
  <meta charset="utf-8">
  <meta http-equiv="X-UA-Compatible" content="IE=edge">
  <!-- Note: This tag is replaced when served through DDS! -->
  <base href="/">

  <title></title>
  <link href="favicon.png" rel="icon" sizes="64x64">

  <!-- Global site tag (gtag.js) - Google Analytics -->
  <script>
    // The value of DEVTOOLS_GOOGLE_TAG_ID here must match the value of the '?id='
    // query parameter below in the 'https://www.googletagmanager.com' script.
    // This is the value of the "Dart DevTools - GA4" Google Tag, which is linked
    // to the DevTools GA4 analytics property.
    const DEVTOOLS_GOOGLE_TAG_ID = 'G-69MPZE94D5'; // 

    function getDevToolsPropertyID() {
      return DEVTOOLS_GOOGLE_TAG_ID;
    }
  </script>
  <!-- The below URI ?id= must match the DEVTOOLS_GOOGLE_TAG_ID above. -->
  <script async src="https://www.googletagmanager.com/gtag/js?id=G-69MPZE94D5"></script>
  <script src="devtools_analytics.js"></script>
  <!-- End of DevTools Google Analytics -->

  <!-- DO NOT REMOVE: -->
  <!-- OBSERVER SCRIPT PLACEHOLDER -->

  <script>
    function supportsES6Classes() {
      "use strict";
      try { eval("class Foo {}"); }
      catch (e) { return false; }
      return true;
    }

    if (!supportsES6Classes()) {
      window.location.href = '/unsupported-browser.html';
    }
  </script>

  <!-- TODO(elliette): Remove once https://github.com/flutter/flutter/issues/122541 is fixed. -->
  <link rel="stylesheet" href="styles.css">

</head>

<body>
  <script src="flutter_bootstrap.js" async></script>
</body>

</html>
