<style>
body { -webkit-column-width: 0; }
#container { position: relative; }
.hardware:last-of-type { -webkit-column-span: all; }
</style>

<body>
<script>
    function clear() {
        document.documentElement.removeChild(document.body);
        document.documentElement.innerHTML='PASS, if no exception or crash';
        if (window.testRunner) {
            testRunner.notifyDone();
        }
    }
    setTimeout("clear();", 0);
    if (window.testRunner) {
        testRunner.waitUntilDone();
        testRunner.dumpAsText();
    }
</script>
<div id="container">
    <div class="hardware box">
</body>
