[BACK]Return to cvsup.html CVS log [TXT][DIR] Up to [local] / www

Annotation of www/cvsup.html, Revision 1.128

1.74      xsa         1: <!DOCTYPE HTML PUBLIC  "-//W3C//DTD HTML 4.01 Transitional//EN"
                      2:        "http://www.w3.org/TR/html4/loose.dtd">
1.21      naddy       3: <html>
1.1       brian       4: <head>
                      5: <title>OpenBSD CVSup</title>
1.21      naddy       6: <link rev="made" href="mailto:www@openbsd.org">
1.74      xsa         7: <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
1.21      naddy       8: <meta name="resource-type" content="document">
                      9: <meta name="description" content="How to get OpenBSD updates via Internet using CVSup">
                     10: <meta name="keywords" content="openbsd,cvsup,updates">
                     11: <meta name="distribution" content="global">
1.107     nick       12: <meta name="copyright" content="This document copyright 2000-2007 by OpenBSD.">
1.1       brian      13: </head>
                     14:
1.7       brian      15: <body bgcolor="#FFFFFF" text="#000000" link="#23238E">
1.1       brian      16:
1.74      xsa        17: <a href="index.html"><img alt="[OpenBSD]" height="30" width="141"
                     18:        src="images/smalltitle.gif" border="0"></a>
1.7       brian      19:
                     20: <h2><font color="#e00000">CVSup</font></h2>
1.21      naddy      21: <hr>
1.1       brian      22:
1.7       brian      23: <h3>Table of Contents</h3>
                     24: <ul>
                     25: <li><a href="#cvsup">What Is CVSup?</a></li>
1.114     nick       26: <li><a href="#CVS">What Is CVS?</a></li>
1.7       brian      27: <li><a href="#starting">Getting Started Using CVSup</a></li>
1.113     nick       28: <li><a href="#using">Using CVS to Work With Your Repository</a></li>
1.7       brian      29: <li><a href="#checkout">Running CVSup in Checkout Mode</a></li>
                     30: <li><a href="#CVSROOT">Available CVSup Servers</a></li>
1.1       brian      31: </ul>
                     32:
1.21      naddy      33: <hr>
1.1       brian      34:
1.9       naddy      35:
1.21      naddy      36: <h3><a name="cvsup"><font color="#0000e0">What Is CVSup?</font></a></h3>
1.1       brian      37:
                     38: <p>
                     39: <b>CVSup</b> is a software package for distributing and updating source
1.58      naddy      40: trees from a master <a href="http://www.openbsd.org/cgi-bin/man.cgi?query=cvs&amp;sektion=1">cvs(1)</a> repository on a remote server host. The OpenBSD
1.1       brian      41: sources are maintained in a CVS repository on a central development machine
                     42: in Canada.  With CVSup, OpenBSD users can easily keep their own source trees
                     43: up to date.
                     44:
                     45: <p>
                     46: <b>CVSup</b> uses the so-called pull model of updating. Under the pull
                     47: model, each client asks the server for updates, if and when they are
                     48: wanted.  The server waits passively for update requests from its clients.
                     49: Thus all updates are instigated by the client.  The server never sends
                     50: unsolicited updates.  Users must either run the <b>CVSup</b> client
1.58      naddy      51: manually to get an update, or they must set up a <a href="http://www.openbsd.org/cgi-bin/man.cgi?query=cron&amp;sektion=8">cron(8)</a> job to run it
1.1       brian      52: automatically on a regular basis.
                     53:
                     54: <p>
                     55: The term <b>CVSup</b>, capitalized just so, refers to the entire software
1.119     naddy      56: package. Its main components are the client <tt>cvsup</tt>
                     57: (or its alternative implementation <tt>csup</tt>) which runs on
1.1       brian      58: each user's machine, and the server <tt>cvsupd</tt> which runs at each of
                     59: the OpenBSD CVSup mirror sites.
                     60:
                     61: <p>
                     62: <b>CVSup</b> is intended to be both faster and more flexible than
1.21      naddy      63: <a href="http://www.openbsd.org/cgi-bin/man.cgi?query=sup&amp;sektion=1&amp;format=html">sup(1)</a>, CVSup's predecessor.
1.1       brian      64:
                     65: <p>
1.107     nick       66: The OpenBSD Project currently has six main source repositories:
1.1       brian      67:
                     68: <ul>
1.9       naddy      69:   <li><b>src</b> - Houses all source code for the OpenBSD Operating System.</li>
1.127     steven     70:   <li><b>ports</b> - Houses the <a href="faq/ports/index.html">OpenBSD Ports</a>.</li>
1.124     nick       71:   <li><b>www</b> - Houses all OpenBSD web pages (including this one).</li>
1.88      matthieu   72:   <li><b>X11</b> - Houses OpenBSD's adaptation of the
1.89      matthieu   73:       <a href="http://www.XFree86.org/">XFree86-3</a> software project.
                     74:       This is here just for historical purposes, most users will have no
                     75:       reason to use this tree, it is no longer being used.
1.115     deraadt    76:   <li><b>XF4</b> - Houses OpenBSD's adaptation of the XFree86-4 source tree.
                     77:   <li><b>xenocara</b> - Houses OpenBSD's active X.org v7 source tree.
1.1       brian      78: </ul>
                     79:
1.21      naddy      80: <h3><a name="CVS"><font color="#0000e0">What Is CVS?</font></a></h3>
1.1       brian      81:
                     82: <p>
                     83: CVS is the source code control system used to manage the OpenBSD source
1.7       brian      84: tree.  It is described in more detail <a href="anoncvs.html#CVS">here</a>.
1.50      naddy      85: Note that CVS and CVSup are entirely different programs.  Although
                     86: CVS can be used for remote file access, it is not optimized for
                     87: wholesale source tree distribution over the net, and CVSup can be
                     88: easily an order of magnitude more efficient for this task.
1.1       brian      89:
1.2       brian      90: <h3>
1.21      naddy      91: <a name="starting"><font color="#0000e0">Getting Started Using CVSup</font></a>
1.2       brian      92: </h3>
1.1       brian      93:
                     94: <p>
1.59      naddy      95: Building CVSup from the sources can prove cumbersome since it is
                     96: written in Modula-3.  The <tt>lang/ezm3</tt> port provides a smaller
                     97: distribution of the Modula-3 compiler and runtime system for people
                     98: whose only need for Modula-3 is to build CVSup.  Nevertheless, if
                     99: you only care about running CVSup, it is recommended that you
                    100: download the cvsup package from the <a href="ftp.html">ftp mirror
                    101: sites</a> instead of building your own from the <tt>net/cvsup</tt>
                    102: port.  Currently the OpenBSD ports of Ezm3 and consequently CVSup
                    103: are only available on the i386 platform.
1.1       brian     104:
                    105: <p>
1.119     naddy     106: Alternatively, the csup package is written in C and provides a drop-in
                    107: compatible client.
                    108:
                    109: <p>
1.50      naddy     110: For further information about CVSup, see the author's
1.109     mbalmer   111: <a href="http://www.cvsup.org/">project homepage</a>.
1.9       naddy     112:
                    113: <p>
1.50      naddy     114: In order to mirror the OpenBSD repository with CVSup,
                    115: the following configuration file might be used:
1.1       brian     116:
                    117: <pre>
                    118:         # Defaults that apply to all the collections
                    119:         *default release=cvs
                    120:         *default delete use-rel-suffix
                    121:         *default umask=002
1.121     sthen     122:         *default host=mirror.osn.de
1.1       brian     123:         *default base=/cvs
                    124:         *default prefix=/cvs
                    125:
                    126:         # If your network link is a T1 or faster, comment out the following line.
                    127:         *default compress
                    128:
                    129:         OpenBSD-all
                    130:         #OpenBSD-src
                    131:         #OpenBSD-www
                    132:         #OpenBSD-ports
                    133:         #OpenBSD-x11
1.20      brian     134:         #OpenBSD-xf4
1.110     mbalmer   135:         #OpenBSD-xenocara
1.1       brian     136: </pre>
                    137:
                    138: <p>
                    139: This directs cvsup to refresh all OpenBSD distributions from
1.121     sthen     140: <b>mirror.osn.de</b> with a <a href="http://www.openbsd.org/cgi-bin/man.cgi?query=umask&amp;sektion=2">umask(2)</a> that permits group write
1.1       brian     141: permission to the local repository.
                    142:
                    143: <p>
                    144: Assuming this file is saved as <tt>cvs-supfile</tt>, the
1.39      horacio   145: following command would be used to invoke the cvsup GUI:
1.1       brian     146: <pre>
                    147:         cvsup cvs-supfile
                    148: </pre>
1.9       naddy     149: <p>
1.1       brian     150: whereas for batch mode, the following might be used:
                    151: <pre>
                    152:         cvsup -g -L 2 cvs-supfile
                    153: </pre>
                    154:
1.21      naddy     155: <h3><a name="using">
1.113     nick      156: <font color="#0000e0">Using CVS to Work With Your Repository</font>
1.2       brian     157: </a></h3>
1.1       brian     158:
                    159: <p>
1.113     nick      160: Now that you have a local copy of the CVS repository, it is now simple
                    161: to check out, update, or do any of the other CVS operations you would
                    162: normally do against a remote repository, locally.
1.117     deraadt   163: For example:
1.7       brian     164: <pre>
1.113     nick      165:         cvs -d/cvs checkout src -P
                    166:         cvs -d/cvs up -Pd
                    167:         cvs -d/cvs diff -u file.c
1.7       brian     168: </pre>
1.113     nick      169: More details on CVS operation can be found in
                    170: <a href="faq/faq5.html#BldGetSrc">FAQ5, Fetching appropriate source
                    171: code</a> and in the
                    172: <a href="http://www.openbsd.org/cgi-bin/man.cgi?query=cvs&amp;sektion=1">cvs(1)</a>
                    173: man page.
1.7       brian     174:
1.21      naddy     175: <h3><a name="checkout"><font color="#0000e0">Running CVSup in
1.7       brian     176: Checkout Mode</font></a></h3>
1.1       brian     177:
                    178: <p>
1.7       brian     179: As an alternative to getting the repository and using CVS, you can
                    180: run CVSup in checkout mode by adding a <tt>tag</tt> or <tt>date</tt>
                    181: keyword to your supfile, either as a <tt>*default</tt> or as an
                    182: option to a collection. In particular, you can use this to efficiently
                    183: update the source and ports trees shipped on the <a
                    184: href="orders.html">CDROMs</a>.
                    185: <p>
                    186: The following supfile could be used to update your ports tree:
                    187: <pre>
                    188:         # Defaults that apply to all the collections
1.121     sthen     189:         *default host=mirror.osn.de
1.7       brian     190:         *default base=/var
                    191:         *default prefix=/usr
                    192:         *default release=cvs
                    193:         *default delete use-rel-suffix compress
                    194:
                    195:         # Ports Collection.
                    196:         OpenBSD-ports tag=.
                    197: </pre>
                    198: <p>
                    199: Any CVS symbolic tag can be used.  A single period "." means HEAD,
                    200: i.e. the newest revision of all files in the main branch.  Take care
                    201: to specify an existing tag, as CVSup cannot distinguish valid from
                    202: invalid tags, and an attempt to synchronize an existing source tree
                    203: to an invalid tag will remove all files.
                    204: <p>
                    205: Alternatively, use the keyword <tt>date=[cc.]yy.mm.dd.hh.mm.ss</tt>
1.60      deraadt   206: to select a revision by date.  All 17 or 20 characters must be
1.7       brian     207: given as shown.  For the years 2000 and beyond, specify the century
                    208: <var>cc</var>.  For earlier years, specify only the last two digits
                    209: <var>yy</var>.  You may also combine the <tt>tag</tt> and <tt>date</tt>
                    210: keywords.
                    211:
1.1       brian     212:
1.2       brian     213: <h3>
1.21      naddy     214: <a name="CVSROOT"><font color="#0000e0">Available CVSup Servers</font></a>
1.2       brian     215: </h3>
1.1       brian     216:
1.74      xsa       217: <p>The following CVSup servers are available:
1.7       brian     218:
1.26      brian     219: <dl>
1.41      brad      220: <dt><a href="http://cvsup.no.openbsd.org/"><strong>cvsup.no.openbsd.org</strong></a></dt>
1.27      brian     221: <dd><p>
1.43      heko      222: located in Oslo, Norway;
1.106     steven    223: maintained by <a href="mailto:anders@fupp.net">Anders Nordby</a>.<br>
1.29      brian     224: Updated every 3 hours.
1.27      brian     225: <p>
                    226: Available collections:
                    227: <table>
                    228: <tr><td width="20"></td>
                    229:     <td><strong>OpenBSD-src</strong></td>
1.102     steven    230:     <td>- The <b>src</b> repository</td></tr>
1.27      brian     231: <tr><td></td>
                    232:     <td><strong>OpenBSD-ports</strong></td>
                    233:     <td>- The <b>ports</b> repository</td></tr>
                    234: <tr><td></td>
                    235:     <td><strong>OpenBSD-www</strong></td>
                    236:     <td>- The <b>www</b> repository</td></tr>
                    237: <tr><td></td>
                    238:     <td><strong>OpenBSD-x11</strong></td>
                    239:     <td>- The <b>XFree86-3</b> repository</td></tr>
                    240: <tr><td></td>
                    241:     <td><strong>OpenBSD-xf4</strong></td>
                    242:     <td>- The <b>XFree86-4</b> repository</td></tr>
                    243: <tr><td></td>
1.121     sthen     244:     <td><strong>OpenBSD-xenocara</strong></td>
                    245:     <td>- The <b>Xenocara</b> repository</td></tr>
                    246: <tr><td></td>
1.27      brian     247:     <td><strong>OpenBSD-all</strong></td>
1.121     sthen     248:     <td>- All OpenBSD repositories</td></tr><!-- 20090907 xenocara not in OpenBSD-all -->
1.27      brian     249: </table>
                    250: </dd>
                    251: </dl>
                    252:
1.47      brian     253: <dl>
1.44      brian     254: <dt><strong>skeleton.phys.spbu.ru</strong></dt>
                    255: <dd><p>
1.46      brian     256: located in St. Petersburg State University, St. Petersburg, Russia;
1.44      brian     257: maintained by <a href="mailto:kab00m@lich.phys.spbu.ru">Dima Veselov</a>.<br>
                    258: Updated every 4 hours.
                    259: <p>
                    260: Available collections:
                    261: <table>
1.49      jufi      262: <tr><td width="20"></td>
1.44      brian     263:     <td><strong>OpenBSD-ports</strong></td>
                    264:     <td>- The <b>ports</b> repository</td></tr>
                    265: </table>
                    266: </dd>
                    267: </dl>
                    268:
1.52      brian     269: <dl>
1.58      naddy     270: <dt><strong>cvsup.jp.OpenBSD.org</strong></dt>
1.52      brian     271: <dd><p>
                    272: located at Otemachi, Tokyo, Japan;
1.57      brian     273: maintained by <a href="mailto:cvsupadm@openbsd.bsdlab.org">CVSup Administrator</a>.<br>
1.52      brian     274: Updated every 3 hours.
                    275: <p>
                    276: Available collections:
                    277: <table>
                    278: <tr><td width="20"></td>
                    279:     <td><strong>OpenBSD-src</strong></td>
1.102     steven    280:     <td>- The <b>src</b> repository</td></tr>
1.52      brian     281: <tr><td></td>
                    282:     <td><strong>OpenBSD-ports</strong></td>
                    283:     <td>- The <b>ports</b> repository</td></tr>
                    284: <tr><td></td>
                    285:     <td><strong>OpenBSD-www</strong></td>
                    286:     <td>- The <b>www</b> repository</td></tr>
                    287: <tr><td></td>
                    288:     <td><strong>OpenBSD-x11</strong></td>
                    289:     <td>- The <b>XFree86-3</b> repository</td></tr>
                    290: <tr><td></td>
                    291:     <td><strong>OpenBSD-xf4</strong></td>
                    292:     <td>- The <b>XFree86-4</b> repository</td></tr>
                    293: <tr><td></td>
1.121     sthen     294:     <td><strong>OpenBSD-xenocara</strong></td>
                    295:     <td>- The <b>Xenocara</b> repository</td></tr>
                    296: <tr><td></td>
1.52      brian     297:     <td><strong>OpenBSD-all</strong></td>
1.121     sthen     298:     <td>- All OpenBSD repositories</td></tr><!-- 20090907 xenocara not in OpenBSD-all -->
1.52      brian     299: </table>
                    300: </dd>
                    301: </dl>
                    302:
1.54      brian     303: <dl>
1.73      kevlo     304: <dt><strong>cvsup.tw.OpenBSD.org</strong></dt>
                    305: <dd><p>
                    306: located at National Chiao-Tung University, Taiwan;
1.121     sthen     307: maintained by <a href="mailto:yzlin@FreeBSD.org">Yi-Jheng Lin</a>.<br>
1.73      kevlo     308: Updated every 2 hours.
                    309: <p>
                    310: Available collections:
                    311: <table>
                    312: <tr><td width="20"></td>
                    313:     <td><strong>OpenBSD-src</strong></td>
1.102     steven    314:     <td>- The <b>src</b> repository</td></tr>
1.73      kevlo     315: <tr><td></td>
                    316:     <td><strong>OpenBSD-ports</strong></td>
                    317:     <td>- The <b>ports</b> repository</td></tr>
                    318: <tr><td></td>
                    319:     <td><strong>OpenBSD-www</strong></td>
                    320:     <td>- The <b>www</b> repository</td></tr>
                    321: <tr><td></td>
                    322:     <td><strong>OpenBSD-x11</strong></td>
                    323:     <td>- The <b>XFree86-3</b> repository</td></tr>
                    324: <tr><td></td>
                    325:     <td><strong>OpenBSD-xf4</strong></td>
                    326:     <td>- The <b>XFree86-4</b> repository</td></tr>
                    327: <tr><td></td>
                    328:     <td><strong>OpenBSD-all</strong></td>
                    329:     <td>- All OpenBSD repositories</td></tr>
                    330: </table>
                    331: </dd>
                    332: </dl>
                    333:
                    334: <dl>
1.63      beck      335: <dt><a href="http://mirror.osn.de/"><strong>mirror.osn.de</strong></a></dt>
                    336: <dd><p>
                    337: located in Germany
                    338: maintained by <a href="mailto:aw@osn.de">Armin Wolfermann</a>.<br>
1.123     sthen     339: Updated every 3 hours.
1.63      beck      340: <p>
                    341: Available collections:
                    342: <table>
                    343: <tr><td width="20"></td>
                    344:     <td><strong>OpenBSD-src</strong></td>
1.102     steven    345:     <td>- The <b>src</b> repository</td></tr>
1.63      beck      346: <tr><td></td>
                    347:     <td><strong>OpenBSD-ports</strong></td>
                    348:     <td>- The <b>ports</b> repository</td></tr>
                    349: <tr><td></td>
                    350:     <td><strong>OpenBSD-www</strong></td>
                    351:     <td>- The <b>www</b> repository</td></tr>
                    352: <tr><td></td>
                    353:     <td><strong>OpenBSD-x11</strong></td>
                    354:     <td>- The <b>XFree86-3</b> repository</td></tr>
                    355: <tr><td></td>
                    356:     <td><strong>OpenBSD-xf4</strong></td>
                    357:     <td>- The <b>XFree86-4</b> repository</td></tr>
                    358: <tr><td></td>
1.108     grunk     359:     <td><strong>OpenBSD-xenocara</strong></td>
                    360:     <td>- The <b>Xenocara</b> repository</td></tr>
                    361: <tr><td></td>
1.63      beck      362:     <td><strong>OpenBSD-all</strong></td>
                    363:     <td>- All OpenBSD repositories</td></tr>
                    364: </table>
                    365: </dd>
                    366: </dl>
                    367:
1.118     sthen     368: <p>
1.1       brian     369: <p>
1.87      joel      370: <em>Note:</em> If your server is listed on here with inaccurate or
                    371: unknown information, please contact
                    372: <a href="mailto:www@openbsd.org"><tt>www@openbsd.org</tt></a>.
1.1       brian     373: <p>
1.58      naddy     374: You may want to use <a href="http://www.openbsd.org/cgi-bin/man.cgi?query=traceroute&amp;sektion=8">traceroute(8)</a>
1.39      horacio   375: to find out which server is nearest you.
1.1       brian     376: Problems with a server should be reported to the <b>maintainer</b> of the
                    377: server in question.
                    378: <p>
1.126     matthieu  379: As of April, 2010, the CVS repository sizes are
1.4       brian     380: <table>
1.9       naddy     381: <tr><td width="20"></td>
1.20      brian     382:     <td><strong>OpenBSD-ports</strong></td>
1.126     matthieu  383:     <td>- <b>425</b>MB</td></tr>
1.9       naddy     384: <tr><td></td>
1.20      brian     385:     <td><strong>OpenBSD-src</strong></td>
1.126     matthieu  386:     <td>- <b>1684</b>MB</td></tr>
1.9       naddy     387: <tr><td></td>
1.20      brian     388:     <td><strong>OpenBSD-www</strong></td>
1.126     matthieu  389:     <td>- <b>401</b>MB</td></tr>
1.116     steven    390: <tr><td></td>
                    391:     <td><strong>OpenBSD-xenocara</strong></td>
1.126     matthieu  392:     <td>- <b>723</b>MB</td></tr>
1.9       naddy     393: <tr><td></td>
1.20      brian     394:     <td><strong>OpenBSD-x11</strong></td>
1.68      naddy     395:     <td>- <b>200</b>MB</td></tr>
1.20      brian     396: <tr><td></td>
                    397:     <td><strong>OpenBSD-xf4</strong></td>
1.116     steven    398:     <td>- <b>564</b>MB</td></tr>
1.4       brian     399: </table>
                    400: <p>
1.100     steven    401: There is an additional overhead of <b>408</b>MB for the CVSROOT
1.68      naddy     402: directory.  The overall repository size currently increases at a rate
1.85      nick      403: of about <b>400</b>MB per annum.
1.4       brian     404: <p>
1.1       brian     405: <strong>IMPORTANT NOTE:</strong>
                    406: There are a few issues relating to cryptographic software that everyone
                    407: should be aware of:
                    408: <ul>
1.9       naddy     409:   <li>
                    410:     <p>
                    411:     The OpenBSD sources are from Canada. As
1.67      nick      412:     <a href="http://www.efc.ca/pages/doc/crypto-export.html">
1.9       naddy     413:     researched by a Canadian individual</a> and as
                    414:     <a href="http://axion.physics.ubc.ca/ECL.html">
                    415:     described in the Export Control list of Canada</a>,
                    416:     it is legal to export crypto software from Canada to the world.
                    417:   </li>
                    418:   <li>
                    419:     <p>
                    420:     However, if you are outside the USA or Canada, you should not
1.72      naddy     421:     fetch the cryptographic sections of the OpenBSD sources from a
                    422:     CVSup server located in the USA. The files in question are...
1.9       naddy     423:     <ul>
                    424:       <li><tt>src/kerberosIV/*</tt></li>
1.56      miod      425:       <li><tt>src/kerberosV/*</tt></li>
1.9       naddy     426:       <li><tt>src/lib/libdes/*</tt></li>
                    427:       <li><tt>src/lib/libc/crypt/crypt.c</tt></li>
                    428:       <li><tt>src/lib/libc/crypt/morecrypt.c</tt></li>
1.56      miod      429:       <li><tt>src/sys/crypto</tt></li>
1.9       naddy     430:       <li><tt>src/sys/netinet</tt></li>
                    431:       <li><tt>src/usr.sbin/afs/src/rxkad/*</tt></li>
1.56      miod      432:       <li><tt>XF4/xc-mit/lib/Xdmcp/Wraphelp.c</tt></li>
                    433:       <li><tt>XF4/xc-old/lib/Xdmcp/Wraphelp.c</tt></li>
                    434:       <li><tt>XF4/xc/lib/Xdmcp/Wraphelp.c</tt></li>
1.9       naddy     435:     </ul>
                    436:     <p>
                    437:     Because of the USA ITAR munitions list,
                    438:     crypto software may only be exported to Canada from the USA.
                    439:   </li>
1.1       brian     440: </ul>
                    441:
                    442: <p>
                    443: The OpenBSD project is looking for more CVSup servers -- if you are
1.87      joel      444: interested, please contact
                    445: <a href="mailto:www@openbsd.org"><tt>www@openbsd.org</tt></a>
1.1       brian     446: for configuration details.
                    447:
1.21      naddy     448: <hr>
                    449: <a href="index.html"><img height="24" width="24" src="back.gif" border="0" alt="OpenBSD"></a>
1.7       brian     450: <a href="mailto:www@openbsd.org">www@openbsd.org</a>
1.128   ! sthen     451: <br><small>$OpenBSD: cvsup.html,v 1.127 2010/09/02 05:35:14 steven Exp $</small>
1.1       brian     452:
                    453: </body>
                    454: </html>