<html>
  <head>
    <title>Gerrit Code Review</title>
    <meta name="gwt:property" content="locale=en_US" />
    <script id="gwtdevmode">
      (function () {
        var pn = 'gwt.codesvr';
        var cn = 'gerrit_ui.' + pn;

        var p_start = window.location.search.indexOf(pn + '=');
        if (p_start != -1) {
          p_start = p_start + pn.length + 1;
          var p_end = window.location.search.indexOf(";", p_start);
          if (p_end == -1) p_end = window.location.search.length;
          var v = window.location.search.substring(p_start, p_end);

          var e = new Date();
          e.setDate(e.getDate() + 1);
          document.cookie = cn + "=" + v + ';expires=' + e.toGMTString();

        } else if (document.cookie.length != 0) {
          var c_start = document.cookie.indexOf(cn + '=');
          if (c_start != -1) {
            c_start = c_start + cn.length + 1;
            var c_end = document.cookie.indexOf(";", c_start);
            if (c_end == -1) c_end = document.cookie.length;
            var v = document.cookie.substring(c_start, c_end);
            window.location.replace('?' + pn + '=' + v + document.location.hash);
          }
        }
      })();
    </script>
    <script id="gerrit_hostpagedata"></script>
    <style id="gerrit_sitecss" type="text/css"></style>
    <link rel="shortcut icon" type="image/x-icon" href="favicon.ico" />
  </head>
  <body>
    <div id="gerrit_topmenu"></div>
    <div id="gerrit_header"></div>
    <div id="gerrit_startinggerrit" style="margin-left: 10px;">
      <p>Loading <a href="http://code.google.com/p/gerrit/" target="_blank">Gerrit Code Review</a> ...</p>
      <noscript>
        <p>Gerrit requires a JavaScript enabled browser.</p>
      </noscript>
    </div>
    <div id="gerrit_body"></div>
    <div style="clear: both; margin-top: 15px; padding-top: 2px; margin-bottom: 15px;">
      <div id="gerrit_footer"></div>
      <div id="gerrit_btmmenu" style="clear: both;"></div>
    </div>
    <iframe src="javascript:''" id="__gwt_historyFrame" tabIndex='-1' style="position:absolute;width:0;height:0;border:0"></iframe>
    <script id="gerrit_module"></script>
  </body>
</html>
