<!--
Copyright (C) 2011 Apple Inc. All rights reserved.

Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions
are met:
1. Redistributions of source code must retain the above copyright
   notice, this list of conditions and the following disclaimer.
2. Redistributions in binary form must reproduce the above copyright
   notice, this list of conditions and the following disclaimer in the
   documentation and/or other materials provided with the distribution.

THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
THE POSSIBILITY OF SUCH DAMAGE.
-->

<!DOCTYPE html>
<html>
<head>
    <link rel="stylesheet" href="styles/TestFailures.css"></link>
    <script src="https://webkit.org/ajax/libs/jquery/jquery-1.6.2.min.js"></script>

    <script src="scripts/config.js"></script>
    <script src="scripts/base.js"></script>
    <script src="scripts/net.js"></script>
    <script src="scripts/Trac.js"></script>

    <script src="scripts/Utilities.js"></script>
    <script src="scripts/NewBugForm.js"></script>
    <script src="scripts/TestRelatedBugForm.js"></script>
    <script src="scripts/FailingTestsBugForm.js"></script>
    <script src="scripts/FlakyTestBugForm.js"></script>

    <script src="scripts/Bugzilla.js"></script>
    <script src="scripts/Buildbot.js"></script>
    <script src="scripts/Builder.js"></script>
    <script src="scripts/FlakyLayoutTestDetector.js"></script>
    <script src="scripts/LayoutTestHistoryAnalyzer.js"></script>
    <script src="scripts/LayoutTestResultsLoader.js"></script>
    <script src="scripts/NRWTResultsParser.js"></script>
    <script src="scripts/ORWTResultsParser.js"></script>
    <script src="scripts/PersistentCache.js"></script>
    <script src="scripts/ViewController.js"></script>
    <script src="scripts/WebKitBugzilla.js"></script>
    <script src="scripts/WebKitBuildbot.js"></script>
    <script>
        var viewController = new ViewController(new WebKitBuildbot());
    </script>
</head>
<body>
</body>
</html>
