<!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-4.11.0.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-4.11.0.min.js"></script>
<script src="/static/third_party/xterm-0.5.0-addon-fit.min.js"></script>
<script src="/static/third_party/xterm-0.8.0-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>
