<!doctype html>
<html>
<!--
    Copyright 2019 The Android Open Source Project

    Licensed under the Apache License, Version 2.0 (the "License");
    you may not use this file except in compliance with the License.
    You may obtain a copy of the License at

        http://www.apache.org/licenses/LICENSE-2.0

    Unless required by applicable law or agreed to in writing, software
    distributed under the License is distributed on an "AS IS" BASIS,
    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    See the License for the specific language governing permissions and
    limitations under the License.
  -->

<head>
    <meta charset="utf-8">
    <title>Perfetto CI</title>
    <link href="https://fonts.googleapis.com/icon?family=Material+Icons" rel="stylesheet">
    <link href="https://fonts.googleapis.com/css?family=Source+Sans+Pro:100,300,400" rel="stylesheet">
    <link rel="stylesheet" type="text/css" href="/static/third_party/xterm-3.14.4.min.css">
    <link rel="stylesheet" type="text/css" href="/static/style.css">
    <link href="static/icon.png" rel="shortcut icon">
</head>

<body>
</body>

<script src="https://www.gstatic.com/firebasejs/6.2.4/firebase-app.js"></script>
<script src="https://www.gstatic.com/firebasejs/6.2.4/firebase-database.js"></script>
<script src="/static/third_party/xterm-3.14.4.min.js"></script>
<script src="/static/third_party/xterm-3.14.4-addon-fit.min.js"></script>
<script src="/static/third_party/xterm-3.14.4-addon-search.min.js"></script>
<script src="/static/third_party/mithril-1.1.6.min.js"></script>
<script src="/static/config.js"></script>
<script src="/static/script.js"></script>

</html>
