<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
    <meta http-equiv="Content-Type" content="text/html;charset=utf-8">
    <meta name="robots" content="noodp">

    <title>The WebKit Open Source Project<?php if (isset($title)) { echo " - " . $title; } ?></title>

    <link rel="stylesheet" type="text/css" href="/css/main.css">
    <link rel="stylesheet" type="text/css" href="/css/green.css" title="green">

    <link rel="alternate stylesheet" type="text/css" href="/css/blue.css" title="blue">
    <link rel="alternate stylesheet" type="text/css" href="/css/yellow.css" title="yellow">
    <link rel="alternate stylesheet" type="text/css" href="/css/pink.css" title="pink">
    <link rel="alternate stylesheet" type="text/css" href="/css/purple.css" title="purple">
    <link rel="alternate stylesheet" type="text/css" href="/css/gray.css" title="gray">

<!--[if gte IE 5]>
    <link rel="stylesheet" type="text/css" href="/css/ie.css">
<![endif]-->

    <script type="text/javascript">
        pic1 = new Image(8,9);
        pic1.src="/images/green-bullet.png";
        pic2 = new Image(8,9);
        pic2.src="/images/blue-bullet.png";
        pic3 = new Image(8,9);
        pic3.src="/images/yellow-bullet.png";
        pic4 = new Image(8,9);
        pic4.src="/images/pink-bullet.png";
        pic5 = new Image(8,9);
        pic5.src="/images/purple-bullet.png";
    </script>
    
<?php
    if (isset($extra_head_content)) {
        echo $extra_head_content;
    }
?>
</head>
<body>

<div id="title">
<h1>The WebKit Open Source Project</h1>
</div>

<div id="icon"></div>

<div id="content">
