<!DOCTYPE html>
<html>
<head>
<title>Android 5.1 Compatibility Definition Footer</title>
<link rel="stylesheet" type="text/css" href="android-cdd.css"/>

<script>
  function subst() {
    var vars={};
    var x=window.location.search.substring(1).split('&');
    for (var i in x) {var z=x[i].split('=',2);vars[z[0]] = unescape(z[1]);}
    var x=['frompage','topage','page','webpage','section','subsection','subsubsection'];
    for (var i in x) {
      var y = document.getElementsByClassName(x[i]);
      for (var j=0; j<y.length; ++j) y[j].textContent = vars[x[i]];
    }
  }
</script>

</head>

<body style="border:0; margin: 0;" onload="subst()">
<div class="footer">

<table class="noborder" style="border-top: 1px solid silver; width: 100%">
    <tr>
      <td class="noborder"><img src="images/android-logo.png" alt="Android logo"/></td>
      <td class="noborder" style="text-align:right">
        Page <span class="page"></span> of <span class="topage"></span>
      </td>
    </tr>
</table>

</div>

</body>
</html>
