SAX.setDocumentLocator()
SAX.startDocument()
SAX.internalSubset(HTML, -//W3C//DTD HTML 4.0 Transitional//EN, )
SAX.comment( saved from url=(0025)http://bp6.gamesquad.net/ )
SAX.comment( BEGIN Naviscope Javascript )
SAX.startElement(html)
SAX.startElement(head)
SAX.startElement(title)
SAX.characters(BP6.com #1 online resource for, 47)
SAX.endElement(title)
SAX.ignorableWhitespace(
, 2)
SAX.startElement(script, language='javascript')
SAX.cdata(
          NS_ActualOpen=wind, 199)
SAX.endElement(script)
SAX.ignorableWhitespace(
, 2)
SAX.comment( END Naviscope Javascript )
SAX.error: Misplaced DOCTYPE declaration
SAX.internalSubset(HTML, -//W3C//DTD HTML 3.2//EN, )
SAX.comment(last modified on Tuesday, February 22, 2000 11:47 PM )
SAX.ignorableWhitespace(
, 2)
SAX.startElement(meta, content='text/html;CHARSET=iso-8859-1', http-equiv='Content-Type')
SAX.endElement(meta)
SAX.ignorableWhitespace(
, 2)
SAX.startElement(meta, content='Tim', name='Author')
SAX.endElement(meta)
SAX.ignorableWhitespace(
, 2)
SAX.startElement(style, type='text/css')
SAX.cdata(A.nav {
	COLOR: #003399; TEXT, 115)
SAX.endElement(style)
SAX.ignorableWhitespace(

, 4)
SAX.startElement(script, language='JavaScript')
SAX.cdata(
, 1)
SAX.comment( Idea by:  Nic Wolfe (Nic@TimelapseProductions.com) )
SAX.cdata(
, 1)
SAX.comment( Web URL:  http://fineline.xs.mw )
SAX.cdata(

, 2)
SAX.comment( This script and many more are available free online at )
SAX.cdata(
, 1)
SAX.comment( The JavaScript Source!! http://javascript.internet.com )
SAX.cdata(

, 2)
SAX.comment( Begin
function popUp(URL) {
day = new Date();
id = day.getTime();
eval("page" + id + " = window.open(URL, '" + id + "', 'toolbars=0, scrollbars=0, location=0, statusbars=0, menubars=0, resizable=0, width=145, height=250');");
}
// End )
SAX.cdata(
, 1)
SAX.endElement(script)
SAX.ignorableWhitespace(

, 4)
SAX.startElement(meta, content='MSHTML 5.00.3103.1000', name='GENERATOR')
SAX.endElement(meta)
SAX.endElement(head)
SAX.ignorableWhitespace(
, 2)
SAX.startElement(body, alink='red', bgcolor='black', link='red', text='white', vlink='red')
SAX.ignorableWhitespace(
, 2)
SAX.startElement(p)
SAX.characters(
, 2)
SAX.endElement(p)
SAX.startElement(div, align='center')
SAX.characters(
, 2)
SAX.startElement(table, border='0', cellpadding='0', cellspacing='0', width='80%')
SAX.characters(
  , 4)
SAX.startElement(tbody)
SAX.characters(
  , 4)
SAX.startElement(tr)
SAX.characters(
    , 6)
SAX.startElement(td, valign='top', width='31')
SAX.startElement(a, href='http://bp6.gamesquad.net/')
SAX.startElement(img, align='bottom', border='0', height='74', src='doc3_files/logo.gif', width='252')
SAX.endElement(img)
SAX.endElement(a)
SAX.endElement(td)
SAX.characters(
    , 6)
SAX.startElement(td, align='left', bgcolor='#000000')
SAX.startElement(img, height='15', src='doc3_files/spacer.gif', width='15')
SAX.endElement(img)
SAX.comment( START GAMESQUAD.NET IFRAME RICH MEDIA CODE )
SAX.characters( , 1)
SAX.comment( © 2000 GameSquad.net All Rights Reserved. )
SAX.startElement(iframe, border='0', frameborder='no', height='60', marginheight='0', marginwidth='0', scrolling='no', src='doc3_files/adcycle.htm', width='468')
SAX.characters(
, 1)
SAX.error: htmlParseEntityRef: expecting ';'
SAX.startElement(a, href='http://ads.gamesquad.net/addclick.exe/adclick.cgi?REGION=game|tech|ent&amp;id=1', target='_top')
SAX.error: htmlParseEntityRef: expecting ';'
SAX.error: htmlParseEntityRef: expecting ';'
SAX.startElement(img, src='http://ads.gamesquad.net/addclick.exe/adcycle.cgi?group=52&amp;media=1&amp;id=1', width='468', height='60', border='0', alt='GSN ROS Ad')
SAX.endElement(img)
SAX.endElement(a)
SAX.characters(
, 1)
SAX.endElement(iframe)
SAX.comment( END GAMESQUAD.NET IFRAME RICH MEDIA CODE )
SAX.startElement(br)
SAX.endElement(br)
SAX.startElement(img, height='15', src='doc3_files/spacer.gif', width='400')
SAX.endElement(img)
SAX.characters( , 1)
SAX.endElement(td)
SAX.endElement(tr)
SAX.characters(
  , 4)
SAX.startElement(tr)
SAX.characters(
    , 6)
SAX.startElement(td, bgcolor='#003399', colspan='2')
SAX.characters(
      , 8)
SAX.startElement(p, align='right')
SAX.startElement(img, align='right', border='0', height='18', hspace='0', src='doc3_files/trcorner.gif', width='20')
SAX.endElement(img)
SAX.startElement(img, align='left', border='0', height='18', hspace='0', src='doc3_files/tlcorner.gif', width='20')
SAX.endElement(img)
SAX.startElement(font, face='Verdana', size='2')
SAX.characters(Monday, July 31st, 2000, 23)
SAX.endElement(font)
SAX.characters( , 1)
SAX.endElement(p)
SAX.endElement(td)
SAX.endElement(tr)
SAX.characters(
  , 4)
SAX.startElement(tr)
SAX.characters(
    , 6)
SAX.startElement(td, colspan='2')
SAX.characters(
      , 8)
SAX.startElement(table, bgcolor='#003399', border='0', cellpadding='0', cellspacing='4', width='100%')
SAX.startElement(tbody)
SAX.characters(
        , 10)
SAX.startElement(tr)
SAX.characters(
          , 12)
SAX.startElement(td, bgcolor='#666666', width='100%')
SAX.characters(
            , 14)
SAX.startElement(center)
SAX.characters(
            , 14)
SAX.startElement(p)
SAX.characters(
            , 14)
SAX.endElement(p)
SAX.startElement(table, bgcolor='black', border='0', cellpadding='0', cellspacing='1', width='100%')
SAX.characters(
              , 16)
SAX.startElement(tbody)
SAX.characters(
              , 16)
SAX.startElement(tr)
SAX.characters(
                , 18)
SAX.startElement(td, background='doc3_files/hscan.gif', bgcolor='#666666', width='100%')
SAX.startElement(img, height='1', src='doc3_files/spacer.gif', width='738')
SAX.endElement(img)
SAX.startElement(br)
SAX.endElement(br)
SAX.characters(
                  , 20)
SAX.startElement(center)
SAX.characters(
                  , 20)
SAX.startElement(table, border='0', cellpadding='2', cellspacing='0', width='91%')
SAX.characters(
                    , 22)
SAX.startElement(tbody)
SAX.characters(
                    , 22)
SAX.startElement(tr)
SAX.characters(
                      , 24)
SAX.startElement(td, valign='top', width='15%')
SAX.characters(
                        , 26)
SAX.startElement(p, align='center')
SAX.startElement(a, href='http://bp6.gamesquad.net/specs.phtml')
SAX.startElement(img, align='bottom', alt='Abit BP6 Motherboard specification and information.', border='0', height='45', src='doc3_files/bp6icon.gif', width='70')
SAX.endElement(img)
SAX.endElement(a)
SAX.startElement(font, face='Verdana', size='1')
SAX.startElement(br)
SAX.endElement(br)
SAX.endElement(font)
SAX.startElement(a, href='http://bp6.gamesquad.net/specs.phtml')
SAX.startElement(font, color='white', face='Verdana', size='1')
SAX.characters(BP6 Specs, 9)
SAX.endElement(font)
SAX.endElement(a)
SAX.characters( 
                      , 25)
SAX.endElement(p)
SAX.endElement(td)
SAX.characters(
                      , 24)
SAX.startElement(td, valign='top', width='15%')
SAX.characters(
                        , 26)
SAX.startElement(p, align='center')
SAX.startElement(a, href='http://bp6.gamesquad.net/bxcool.phtml')
SAX.startElement(img, align='bottom', alt='How to cool the BX Chipset on your BP6.', border='0', height='45', src='doc3_files/bxcool.gif', width='70')
SAX.endElement(img)
SAX.endElement(a)
SAX.startElement(font, face='Verdana', size='1')
SAX.startElement(br)
SAX.endElement(br)
SAX.endElement(font)
SAX.startElement(a, href='http://bp6.gamesquad.net/uc.phtml')
SAX.startElement(font, color='white', face='Verdana', size='1')
SAX.characters(BX Cooling, 10)
SAX.endElement(font)
SAX.endElement(a)
SAX.characters( 
                        , 27)
SAX.endElement(p)
SAX.endElement(td)
SAX.characters(
                      , 24)
SAX.startElement(td, valign='top', width='15%')
SAX.characters(
                        , 26)
SAX.startElement(p, align='center')
SAX.startElement(a, href='http://bp6.gamesquad.net/contest.phtml')
SAX.startElement(img, align='bottom', alt='The U;timate Gaming Contest - Coming Soon!', border='0', height='45', src='doc3_files/ugmcontest.gif', width='70')
SAX.endElement(img)
SAX.endElement(a)
SAX.startElement(font, face='Verdana', size='1')
SAX.startElement(br)
SAX.endElement(br)
SAX.endElement(font)
SAX.startElement(a, href='http://bp6.gamesquad.net/contest.phtml')
SAX.startElement(font, color='white', face='Verdana', size='1')
SAX.characters(UGM Contest, 11)
SAX.endElement(font)
SAX.endElement(a)
SAX.characters( 
                        , 27)
SAX.endElement(p)
SAX.endElement(td)
SAX.characters(
                      , 24)
SAX.startElement(td, valign='top', width='15%')
SAX.characters(
                        , 26)
SAX.startElement(p, align='center')
SAX.startElement(a, href='http://bp6.gamesquad.net/uc.phtml')
SAX.startElement(img, align='bottom', alt='Cooling &amp; Heatsink review for the BP6.', border='0', height='45', src='doc3_files/alpha.gif', width='70')
SAX.endElement(img)
SAX.endElement(a)
SAX.startElement(font, face='Verdana', size='1')
SAX.startElement(br)
SAX.endElement(br)
SAX.endElement(font)
SAX.startElement(a, href='http://bp6.gamesquad.net/uc.phtml')
SAX.startElement(font, color='white', face='Verdana', size='1')
SAX.characters(Heatsinks, 9)
SAX.endElement(font)
SAX.endElement(a)
SAX.characters( 
                      , 25)
SAX.endElement(p)
SAX.endElement(td)
SAX.characters(
                      , 24)
SAX.startElement(td, valign='top', width='15%')
SAX.characters(
                        , 26)
SAX.startElement(p, align='center')
SAX.startElement(a, href='http://bp6.gamesquad.net/101.phtml')
SAX.startElement(img, align='bottom', alt='BP6 101 - Class is now in session. Welcome newbies!', border='0', height='45', src='doc3_files/bp6101.gif', width='70')
SAX.endElement(img)
SAX.endElement(a)
SAX.startElement(font, face='Verdana', size='1')
SAX.startElement(br)
SAX.endElement(br)
SAX.endElement(font)
SAX.startElement(a, href='http://bp6.gamesquad.net/101.phtml')
SAX.startElement(font, color='white', face='Verdana', size='1')
SAX.characters(BP6 101, 7)
SAX.endElement(font)
SAX.endElement(a)
SAX.characters( 
                      , 25)
SAX.endElement(p)
SAX.endElement(td)
SAX.characters(
                      , 24)
SAX.startElement(td, valign='top', width='15%')
SAX.characters(
                        , 26)
SAX.startElement(p, align='center')
SAX.startElement(a, href='http://bp6.gamesquad.net/win2k_install.phtml')
SAX.startElement(img, align='bottom', alt='Install guide for installing Windows 2000 on the BP6 ', border='0', height='45', src='doc3_files/win2kht.gif', width='70')
SAX.endElement(img)
SAX.endElement(a)
SAX.startElement(font, face='Verdana', size='1')
SAX.startElement(br)
SAX.endElement(br)
SAX.endElement(font)
SAX.startElement(a, href='http://bp6.gamesquad.net/win2k_install.phtml')
SAX.startElement(font, color='white', face='Verdana', size='1')
SAX.characters(Win2k Install, 13)
SAX.endElement(font)
SAX.endElement(a)
SAX.characters( 
                        , 27)
SAX.endElement(p)
SAX.endElement(td)
SAX.characters(
                      , 24)
SAX.startElement(td, valign='top', width='15%')
SAX.characters(
                        , 26)
SAX.startElement(p, align='center')
SAX.startElement(a, href='http://www.gentus.com/')
SAX.error: error parsing attribute name
SAX.startElement(img, align='bottom', alt='Taking a first look at the Abit Linux release called ', border='0', height='45', src='doc3_files/gentusbox.gif', width='70', gentus)
SAX.endElement(img)
SAX.endElement(a)
SAX.startElement(br)
SAX.endElement(br)
SAX.startElement(a, href='http://www.gentus.com/')
SAX.startElement(font, color='white', face='Verdana', size='1')
SAX.characters(Gentus, 6)
SAX.endElement(font)
SAX.endElement(a)
SAX.characters( 
                  , 21)
SAX.endElement(p)
SAX.endElement(td)
SAX.endElement(tr)
SAX.endElement(tbody)
SAX.endElement(table)
SAX.endElement(center)
SAX.endElement(td)
SAX.endElement(tr)
SAX.endElement(tbody)
SAX.endElement(table)
SAX.endElement(center)
SAX.error: Unexpected end tag : p
SAX.endElement(td)
SAX.endElement(tr)
SAX.endElement(tbody)
SAX.endElement(table)
SAX.endElement(td)
SAX.endElement(tr)
SAX.endElement(tbody)
SAX.endElement(table)
SAX.characters(
, 2)
SAX.startElement(table, bgcolor='#003399', border='0', cellspacing='6', width='80%')
SAX.characters(
  , 4)
SAX.startElement(tbody)
SAX.characters(
  , 4)
SAX.startElement(tr)
SAX.characters(
    , 6)
SAX.startElement(td, bgcolor='black', valign='top', width='10%')
SAX.characters(
      , 8)
SAX.startElement(table, border='0', cellpadding='3', cellspacing='0', width='100%')
SAX.characters(
        , 10)
SAX.startElement(tbody)
SAX.characters(
        , 10)
SAX.startElement(tr)
SAX.characters(
          , 12)
SAX.startElement(td, width='100%')
SAX.startElement(img, height='1', src='doc3_files/spacer.gif', width='111')
SAX.endElement(img)
SAX.startElement(br)
SAX.endElement(br)
SAX.startElement(b)
SAX.startElement(font, color='yellow', face='Verdana', size='2')
SAX.characters(REVIEWS, 7)
SAX.endElement(font)
SAX.endElement(b)
SAX.startElement(font, face='Verdana', size='2')
SAX.startElement(br)
SAX.endElement(br)
SAX.characters(
            , 14)
SAX.startElement(hr, align='center')
SAX.endElement(hr)
SAX.characters(
            , 14)
SAX.endElement(font)
SAX.startElement(a, href='http://bp6.gamesquad.net/bp6reviews.phtml')
SAX.startElement(font, color='white', face='Verdana', size='1')
SAX.characters(BP6 Reviews, 11)
SAX.endElement(font)
SAX.endElement(a)
SAX.startElement(font, face='Verdana', size='1')
SAX.startElement(br)
SAX.endElement(br)
SAX.endElement(font)
SAX.startElement(a, href='http://bp6.gamesquad.net/h2o.phtml')
SAX.startElement(font, color='white', face='Verdana', size='1')
SAX.characters(BP6 Watercooling, 16)
SAX.endElement(font)
SAX.endElement(a)
SAX.startElement(font, face='Verdana', size='1')
SAX.startElement(br)
SAX.endElement(br)
SAX.endElement(font)
SAX.startElement(a, href='http://bp6.gamesquad.net/bxcool.phtml')
SAX.startElement(font, color='white', face='Verdana', size='1')
SAX.characters(BX Chipset Cooling, 18)
SAX.endElement(font)
SAX.endElement(a)
SAX.startElement(font, face='Verdana', size='1')
SAX.startElement(br)
SAX.endElement(br)
SAX.endElement(font)
SAX.startElement(a, href='http://bp6.gamesquad.net/benchmark.phtml')
SAX.startElement(font, color='white', face='Verdana', size='1')
SAX.characters(Benchmarks, 10)
SAX.endElement(font)
SAX.endElement(a)
SAX.startElement(font, face='Verdana', size='1')
SAX.startElement(br)
SAX.endElement(br)
SAX.endElement(font)
SAX.startElement(a, href='http://bp6.gamesquad.net/bp6fsb.phtml')
SAX.startElement(font, color='white', face='Verdana', size='1')
SAX.characters(BP6FSB Utility, 14)
SAX.endElement(font)
SAX.endElement(a)
SAX.startElement(font, face='Verdana', size='1')
SAX.startElement(br)
SAX.endElement(br)
SAX.endElement(font)
SAX.startElement(a, href='http://bp6.gamesquad.net/powerleap.phtml')
SAX.startElement(font, color='white', face='Verdana', size='1')
SAX.characters(PowerLeap NEO S370, 18)
SAX.endElement(font)
SAX.endElement(a)
SAX.startElement(font, face='Verdana', size='1')
SAX.startElement(br)
SAX.endElement(br)
SAX.endElement(font)
SAX.startElement(a, href='http://bp6.gamesquad.net/seti.phtml')
SAX.startElement(font, color='white', face='Verdana', size='1')
SAX.characters(SETI on the BP6, 15)
SAX.endElement(font)
SAX.endElement(a)
SAX.startElement(font, face='Verdana', size='1')
SAX.startElement(br)
SAX.endElement(br)
SAX.endElement(font)
SAX.startElement(a, href='http://bp6.gamesquad.net/orbs.phtml')
SAX.startElement(font, color='white', face='Verdana', size='1')
SAX.characters(Golden Orbs I, 13)
SAX.endElement(font)
SAX.endElement(a)
SAX.startElement(font, face='Verdana', size='1')
SAX.startElement(br)
SAX.endElement(br)
SAX.endElement(font)
SAX.startElement(a, href='http://bp6.gamesquad.net/orbs/orbs2.phtml')
SAX.startElement(font, color='white', face='Verdana', size='1')
SAX.characters(Golden Orbs II, 14)
SAX.endElement(font)
SAX.endElement(a)
SAX.startElement(font, face='Verdana', size='1')
SAX.startElement(br)
SAX.endElement(br)
SAX.endElement(font)
SAX.startElement(a, href='http://bp6.gamesquad.net/Q6fix.phtml')
SAX.startElement(font, color='white', face='Verdana', size='1')
SAX.characters(VTT Solution, 12)
SAX.endElement(font)
SAX.endElement(a)
SAX.startElement(font, face='Verdana', size='1')
SAX.startElement(br)
SAX.endElement(br)
SAX.startElement(br)
SAX.endElement(br)
SAX.endElement(font)
SAX.startElement(b)
SAX.startElement(font, color='yellow', face='Verdana', size='2')
SAX.characters(NAVIGATE, 8)
SAX.endElement(font)
SAX.endElement(b)
SAX.startElement(font, color='yellow', face='Verdana', size='2')
SAX.characters( 
            , 15)
SAX.startElement(hr, align='center')
SAX.endElement(hr)
SAX.characters(
            , 14)
SAX.endElement(font)
SAX.startElement(a, href='http://www.bp6.com/')
SAX.startElement(font, color='white', face='Verdana', size='1')
SAX.characters(News, 4)
SAX.endElement(font)
SAX.endElement(a)
SAX.startElement(font, face='Verdana', size='1')
SAX.startElement(br)
SAX.endElement(br)
SAX.endElement(font)
SAX.startElement(a, href='http://bp6.gamesquad.net/chat.phtml')
SAX.startElement(font, color='white', face='Verdana', size='1')
SAX.characters(Online Text Chat, 16)
SAX.endElement(font)
SAX.endElement(a)
SAX.startElement(font, face='Verdana', size='1')
SAX.startElement(br)
SAX.endElement(br)
SAX.endElement(font)
SAX.startElement(a, href='javascript:popUp(&apos;chat_popup.htm&apos;)')
SAX.startElement(font, color='white', face='Verdana', size='1')
SAX.characters(Voice Chat, 10)
SAX.endElement(font)
SAX.endElement(a)
SAX.startElement(br)
SAX.endElement(br)
SAX.startElement(a, href='http://216.247.220.192/Forum')
SAX.startElement(font, color='white', face='Verdana', size='1')
SAX.characters(Messageboard, 12)
SAX.endElement(font)
SAX.endElement(a)
SAX.startElement(font, face='Verdana', size='1')
SAX.startElement(br)
SAX.endElement(br)
SAX.endElement(font)
SAX.startElement(a, href='http://bp6.gamesquad.net/cooling')
SAX.startElement(font, color='white', face='Verdana', size='1')
SAX.characters(Temp. Converter, 15)
SAX.endElement(font)
SAX.endElement(a)
SAX.startElement(font, face='Verdana', size='1')
SAX.startElement(br)
SAX.endElement(br)
SAX.endElement(font)
SAX.startElement(a, href='http://bp6.gamesquad.net/uc.phtml')
SAX.startElement(font, color='white', face='Verdana', size='1')
SAX.characters(Picture Gallery, 15)
SAX.endElement(font)
SAX.endElement(a)
SAX.startElement(font, face='Verdana', size='1')
SAX.startElement(br)
SAX.endElement(br)
SAX.endElement(font)
SAX.startElement(a, href='http://bp6.gamesquad.net/bios.phtml')
SAX.startElement(font, color='white', face='Verdana', size='1')
SAX.characters(Latest BIOS, 11)
SAX.endElement(font)
SAX.endElement(a)
SAX.startElement(font, face='Verdana', size='1')
SAX.startElement(br)
SAX.endElement(br)
SAX.endElement(font)
SAX.startElement(a, href='http://bp6.gamesquad.net/files/')
SAX.startElement(font, color='white', face='Verdana', size='1')
SAX.characters(Drivers , 8)
SAX.characters(&amp;, 1)
SAX.characters( Files, 6)
SAX.endElement(font)
SAX.endElement(a)
SAX.startElement(font, face='Verdana', size='1')
SAX.startElement(br)
SAX.endElement(br)
SAX.endElement(font)
SAX.startElement(a, href='http://bp6.gamesquad.net/uc.phtml')
SAX.startElement(font, color='white', face='Verdana', size='1')
SAX.characters(UGM of the week, 15)
SAX.endElement(font)
SAX.endElement(a)
SAX.startElement(font, face='Verdana', size='1')
SAX.startElement(br)
SAX.endElement(br)
SAX.endElement(font)
SAX.startElement(a, href='http://bp6.gamesquad.net/contest.phtml')
SAX.startElement(font, color='white', face='Verdana', size='1')
SAX.characters(BP6 Contest, 11)
SAX.endElement(font)
SAX.endElement(a)
SAX.startElement(font, face='Verdana', size='1')
SAX.startElement(br)
SAX.endElement(br)
SAX.startElement(br)
SAX.endElement(br)
SAX.endElement(font)
SAX.startElement(b)
SAX.startElement(font, color='yellow', face='Verdana', size='2')
SAX.characters(OTHER STUFF, 11)
SAX.endElement(font)
SAX.endElement(b)
SAX.startElement(font, color='yellow', face='Verdana', size='2')
SAX.characters( 

            , 17)
SAX.startElement(hr, align='center')
SAX.endElement(hr)
SAX.characters(
            , 14)
SAX.endElement(font)
SAX.startElement(a, href='http://bp6.gamesquad.net/whois.phtml')
SAX.startElement(font, color='white', face='Verdana', size='1')
SAX.characters(Who is Tim?, 11)
SAX.endElement(font)
SAX.endElement(a)
SAX.startElement(font, face='Verdana', size='1')
SAX.startElement(br)
SAX.endElement(br)
SAX.endElement(font)
SAX.startElement(a, href='mailto:tim@bp6.com')
SAX.startElement(font, color='white', face='Verdana', size='1')
SAX.characters(Contact BP6.com, 15)
SAX.endElement(font)
SAX.endElement(a)
SAX.startElement(font, face='Verdana', size='1')
SAX.startElement(br)
SAX.endElement(br)
SAX.endElement(font)
SAX.startElement(a, href='http://bp6.gamesquad.net/uc.phtml')
SAX.startElement(font, color='white', face='Verdana', size='1')
SAX.characters(Affiliates Section, 18)
SAX.endElement(font)
SAX.endElement(a)
SAX.startElement(font, face='Verdana', size='1')
SAX.startElement(br)
SAX.endElement(br)
SAX.endElement(font)
SAX.startElement(a, href='http://bp6.gamesquad.net/uc.phtml')
SAX.startElement(font, color='white', face='Verdana', size='1')
SAX.characters(Sponsors Section , 17)
SAX.startElement(br)
SAX.endElement(br)
SAX.endElement(font)
SAX.endElement(a)
SAX.startElement(a, href='http://bp6.gamesquad.net/links.phtml')
SAX.startElement(font, color='white', face='Verdana', size='1')
SAX.characters(Links, 5)
SAX.startElement(br)
SAX.endElement(br)
SAX.startElement(br)
SAX.endElement(br)
SAX.endElement(font)
SAX.endElement(a)
SAX.startElement(b)
SAX.startElement(font, color='yellow', face='Verdana', size='2')
SAX.characters(PC SPECIALS, 11)
SAX.endElement(font)
SAX.endElement(b)
SAX.startElement(font, color='yellow', face='Verdana', size='2')
SAX.characters( 
            , 15)
SAX.startElement(hr, align='center')
SAX.endElement(hr)
SAX.characters(
            , 14)
SAX.endElement(font)
SAX.startElement(a, href='http://bp6.gamesquad.net/specials.phtml')
SAX.startElement(font, color='white', face='Verdana', size='1')
SAX.characters(Vendor 
            Specials, 29)
SAX.startElement(br)
SAX.endElement(br)
SAX.startElement(br)
SAX.endElement(br)
SAX.endElement(font)
SAX.endElement(a)
SAX.startElement(br)
SAX.endElement(br)
SAX.error: Unexpected end tag : font
SAX.error: Unexpected end tag : a
SAX.startElement(b)
SAX.startElement(font, color='yellow', face='Verdana', size='2')
SAX.characters(Pic of the day, 14)
SAX.endElement(font)
SAX.endElement(b)
SAX.characters(
            , 14)
SAX.startElement(hr)
SAX.endElement(hr)
SAX.characters(
             
            , 29)
SAX.startElement(center)
SAX.characters(
            , 14)
SAX.startElement(p, align='center')
SAX.startElement(font, face='Verdana, Arial, Helvetica', size='1')
SAX.startElement(a, href='http://bp6.gamesquad.net/cgi-bin/schlabo/potd.pl')
SAX.startElement(img, alt='No picture is available for today.', border='0', src='doc3_files/potd_na_110x83.gif')
SAX.endElement(img)
SAX.endElement(a)
SAX.characters( , 1)
SAX.endElement(font)
SAX.endElement(p)
SAX.endElement(center)
SAX.startElement(br)
SAX.endElement(br)
SAX.characters(
            , 14)
SAX.startElement(center)
SAX.endElement(center)
SAX.startElement(br)
SAX.endElement(br)
SAX.comment(<A HREF="code:javascript:ID_FTPWebView.InvokeHelp()"><FONT SIZE="1" COLOR="white" FACE="Verdana">FTP Help</FONT></A>)
SAX.endElement(td)
SAX.endElement(tr)
SAX.endElement(tbody)
SAX.endElement(table)
SAX.endElement(td)
SAX.characters(
    , 6)
SAX.startElement(td, bgcolor='white', valign='top', width='80%')
SAX.startElement(img, height='1', src='doc3_files/spacer.gif', width='490')
SAX.endElement(img)
SAX.startElement(br)
SAX.endElement(br)
SAX.characters(
      , 8)
SAX.startElement(center)
SAX.characters(
      , 8)
SAX.startElement(p)
SAX.characters(
      , 8)
SAX.endElement(p)
SAX.startElement(table, bgcolor='white', border='0', cellpadding='10', cellspacing='0', height='100%', width='100%')
SAX.characters(
        , 10)
SAX.startElement(tbody)
SAX.characters(
        , 10)
SAX.startElement(tr)
SAX.characters(
          , 12)
SAX.startElement(td, bgcolor='white', valign='top', width='100%')
SAX.characters(
            , 14)
SAX.startElement(center)
SAX.startElement(a, href='http://www.encounter2001.com/', target='_blank')
SAX.startElement(img, border='0', height='60', src='doc3_files/banner2.gif', width='468')
SAX.endElement(img)
SAX.endElement(a)
SAX.characters( 
            , 15)
SAX.endElement(center)
SAX.startElement(br)
SAX.endElement(br)
SAX.startElement(a, name='news_top')
SAX.endElement(a)
SAX.startElement(font, color='#003366', face='verdana,arial', size='2')
SAX.startElement(b)
SAX.characters(Headlines, 9)
SAX.endElement(b)
SAX.endElement(font)
SAX.startElement(br)
SAX.endElement(br)
SAX.startElement(font, face='arial', size='1')
SAX.startElement(a, class='nav', href='http://bp6.gamesquad.net/index.phtml#newsitem965012956,78924,')
SAX.characters(Chat 
            with ABIT -, 41)
SAX.endElement(a)
SAX.endElement(font)
SAX.startElement(br)
SAX.endElement(br)
SAX.startElement(font, face='arial', size='1')
SAX.startElement(a, class='nav', href='http://bp6.gamesquad.net/index.phtml#newsitem964766837,26344,')
SAX.characters(Fixed 
            wallpaper , 43)
SAX.endElement(a)
SAX.endElement(font)
SAX.startElement(br)
SAX.endElement(br)
SAX.startElement(font, face='arial', size='1')
SAX.startElement(a, class='nav', href='http://bp6.gamesquad.net/index.phtml#newsitem964762841,25865,')
SAX.characters(Seti 
            update - 10, 39)
SAX.endElement(a)
SAX.endElement(font)
SAX.startElement(br)
SAX.endElement(br)
SAX.startElement(font, face='arial', size='1')
SAX.startElement(a, class='nav', href='http://bp6.gamesquad.net/index.phtml#newsitem964732235,45502,')
SAX.characters(Judge 
            gives Naps, 57)
SAX.endElement(a)
SAX.endElement(font)
SAX.startElement(br)
SAX.endElement(br)
SAX.startElement(font, face='arial', size='1')
SAX.startElement(a, class='nav', href='http://bp6.gamesquad.net/index.phtml#newsitem964713289,83675,')
SAX.characters(Ram 
            Sinks.. more, 83)
SAX.endElement(a)
SAX.endElement(font)
SAX.startElement(br)
SAX.endElement(br)
SAX.startElement(font, face='arial', size='1')
SAX.startElement(a, class='nav', href='http://bp6.gamesquad.net/index.phtml#newsitem964671589,7831,')
SAX.characters(is 
            it [H]ard? - , 40)
SAX.endElement(a)
SAX.endElement(font)
SAX.startElement(br)
SAX.endElement(br)
SAX.startElement(font, face='arial', size='1')
SAX.startElement(a, class='nav', href='http://bp6.gamesquad.net/index.phtml#newsitem964644047,60218,')
SAX.characters(WiLd 
            CaSe!! - 1:, 38)
SAX.endElement(a)
SAX.endElement(font)
SAX.startElement(br)
SAX.endElement(br)
SAX.startElement(font, face='arial', size='1')
SAX.startElement(a, class='nav', href='http://bp6.gamesquad.net/index.phtml#newsitem964631110,84122,')
SAX.characters(What 
            the heck is, 58)
SAX.endElement(a)
SAX.endElement(font)
SAX.startElement(br)
SAX.endElement(br)
SAX.startElement(font, face='arial', size='1')
SAX.startElement(a, class='nav', href='http://bp6.gamesquad.net/index.phtml#newsitem964587833,74573,')
SAX.characters(HELLO 
            EVERYONE!!, 45)
SAX.endElement(a)
SAX.endElement(font)
SAX.startElement(br)
SAX.endElement(br)
SAX.startElement(font, face='arial', size='1')
SAX.startElement(a, class='nav', href='http://bp6.gamesquad.net/index.phtml#newsitem964429577,13375,')
SAX.characters(BP6 
            Q3 server up, 57)
SAX.endElement(a)
SAX.endElement(font)
SAX.startElement(br)
SAX.endElement(br)
SAX.startElement(br)
SAX.endElement(br)
SAX.comment( NP v3.7.5 )
SAX.startElement(a, name='newsitem965012956,78924,')
SAX.endElement(a)
SAX.characters(
            , 14)
SAX.startElement(table, bgcolor='#003399', width='100%')
SAX.characters(
              , 16)
SAX.startElement(tbody)
SAX.characters(
              , 16)
SAX.startElement(tr)
SAX.characters(
                , 18)
SAX.startElement(td)
SAX.startElement(font, color='#ffffff', face='Verdana,arial', size='2')
SAX.startElement(b)
SAX.characters(Sunday, 
                  Ju, 41)
SAX.endElement(b)
SAX.endElement(font)
SAX.endElement(td)
SAX.endElement(tr)
SAX.endElement(tbody)
SAX.endElement(table)
SAX.startElement(br)
SAX.endElement(br)
SAX.comment(<hr noshade width=100%>)
SAX.startElement(b)
SAX.startElement(u)
SAX.startElement(font, color='#003366', face='Verdana, Arial', size='2')
SAX.characters(Chat with 
            ABIT, 28)
SAX.endElement(font)
SAX.endElement(u)
SAX.endElement(b)
SAX.startElement(br)
SAX.endElement(br)
SAX.startElement(font, color='#0066cc', face='Arial', size='1')
SAX.startElement(small)
SAX.characters(Posted by , 10)
SAX.startElement(a, class='nav', href='mailto:Holodeck@bp6.com')
SAX.characters(Holodeck2, 9)
SAX.endElement(a)
SAX.characters( @ 8:09PM 
            PDT, 27)
SAX.endElement(small)
SAX.characters(&nbsp;, 2)
SAX.characters( , 1)
SAX.startElement(a, href='http://bp6.gamesquad.net/news/965012956,78924,.html')
SAX.startElement(img, border='0', src='doc3_files/comments.gif')
SAX.endElement(img)
SAX.characters(0 comments, 10)
SAX.endElement(a)
SAX.characters( 
            , 15)
SAX.characters(&nbsp;, 2)
SAX.characters(|, 1)
SAX.characters(&nbsp;, 2)
SAX.startElement(a, href='http://bp6.gamesquad.net/#news_top')
SAX.characters(top, 3)
SAX.endElement(a)
SAX.endElement(font)
SAX.characters( , 1)
SAX.startElement(br)
SAX.endElement(br)
SAX.startElement(font, color='black', face='Arial', size='2')
SAX.characters(I, 1)
SAX.characters(&rsquo;, 3)
SAX.characters(m slacking a little. All game , 83)
SAX.startElement(br)
SAX.endElement(br)
SAX.startElement(br)
SAX.endElement(br)
SAX.characters(Wallpaper update: I got 
    , 130)
SAX.startElement(br)
SAX.endElement(br)
SAX.startElement(br)
SAX.endElement(br)
SAX.startElement(b)
SAX.startElement(a, href='http://fullon3d.com/chat/abit/', target='3d')
SAX.characters(Fullon3d had a live chat with , 69)
SAX.endElement(a)
SAX.endElement(b)
SAX.characters(Submitted by: MJS, 17)
SAX.startElement(br)
SAX.endElement(br)
SAX.startElement(br)
SAX.endElement(br)
SAX.characters(Here, 4)
SAX.characters(&rsquo;, 3)
SAX.characters(s a little clip:, 16)
SAX.startElement(br)
SAX.endElement(br)
SAX.characters([Falcon] 
            BP6-2??, 30)
SAX.startElement(br)
SAX.endElement(br)
SAX.characters([EricBoeing] We already have a, 75)
SAX.startElement(br)
SAX.endElement(br)
SAX.characters([EricBoeing] but it's OEM only, 30)
SAX.startElement(br)
SAX.endElement(br)
SAX.characters([EricBoeing] the full ATX 
  , 74)
SAX.startElement(br)
SAX.endElement(br)
SAX.endElement(font)
SAX.startElement(br)
SAX.endElement(br)
SAX.startElement(br)
SAX.endElement(br)
SAX.startElement(a, name='newsitem964766837,26344,')
SAX.endElement(a)
SAX.characters(
            , 14)
SAX.startElement(table, bgcolor='#003399', width='100%')
SAX.characters(
              , 16)
SAX.startElement(tbody)
SAX.characters(
              , 16)
SAX.startElement(tr)
SAX.characters(
                , 18)
SAX.startElement(td)
SAX.startElement(font, color='#ffffff', face='Verdana,arial', size='2')
SAX.startElement(b)
SAX.characters(Thursday, 
                  , 43)
SAX.endElement(b)
SAX.endElement(font)
SAX.endElement(td)
SAX.endElement(tr)
SAX.endElement(tbody)
SAX.endElement(table)
SAX.startElement(br)
SAX.endElement(br)
SAX.comment(<hr noshade width=100%>)
SAX.startElement(b)
SAX.startElement(u)
SAX.startElement(font, color='#003366', face='Verdana, Arial', size='2')
SAX.characters(Fixed 
            wallpaper, 29)
SAX.endElement(font)
SAX.endElement(u)
SAX.endElement(b)
SAX.startElement(br)
SAX.endElement(br)
SAX.startElement(font, color='#0066cc', face='Arial', size='1')
SAX.startElement(small)
SAX.characters(Posted by , 10)
SAX.startElement(a, class='nav', href='mailto:Holodeck@bp6.com')
SAX.characters(Holodeck2, 9)
SAX.endElement(a)
SAX.characters( @ 11:47PM 
            PDT, 28)
SAX.endElement(small)
SAX.characters(&nbsp;, 2)
SAX.characters( , 1)
SAX.startElement(a, href='http://bp6.gamesquad.net/news/964766837,26344,.html')
SAX.startElement(img, border='0', src='doc3_files/comments.gif')
SAX.endElement(img)
SAX.characters(5 comments, 10)
SAX.endElement(a)
SAX.characters( 
            , 15)
SAX.characters(&nbsp;, 2)
SAX.characters(|, 1)
SAX.characters(&nbsp;, 2)
SAX.startElement(a, href='http://bp6.gamesquad.net/#news_top')
SAX.characters(top, 3)
SAX.endElement(a)
SAX.endElement(font)
SAX.characters( , 1)
SAX.startElement(br)
SAX.endElement(br)
SAX.startElement(font, color='black', face='Arial', size='2')
SAX.startElement(b)
SAX.characters(Get them now!!, 14)
SAX.endElement(b)
SAX.startElement(br)
SAX.endElement(br)
SAX.characters(This is a 
            fixed , 106)
SAX.startElement(br)
SAX.endElement(br)
SAX.startElement(img, height='180', src='doc3_files/3-800.jpg', width='240')
SAX.endElement(img)
SAX.startElement(br)
SAX.endElement(br)
SAX.characters(It's still the Intels Inside o, 104)
SAX.startElement(br)
SAX.endElement(br)
SAX.startElement(br)
SAX.endElement(br)
SAX.characters(Thanks to Matt for 
         , 57)
SAX.startElement(br)
SAX.endElement(br)
SAX.characters(I would also like to thank Kev, 133)
SAX.startElement(br)
SAX.endElement(br)
SAX.characters(And 1 more person, THANK YOU T, 90)
SAX.startElement(br)
SAX.endElement(br)
SAX.startElement(br)
SAX.endElement(br)
SAX.characters(If you need a weird resolution, 59)
SAX.startElement(a, href='mailto:Holodeck2@home.com')
SAX.characters(e-mail, 6)
SAX.endElement(a)
SAX.characters( me requesting 
            f, 37)
SAX.startElement(br)
SAX.endElement(br)
SAX.characters(If you have ideas or more erro, 47)
SAX.startElement(a, href='mailto:Holodeck2@home.com')
SAX.characters(mailto:Holodeck2@home.com, 25)
SAX.endElement(a)
SAX.startElement(br)
SAX.endElement(br)
SAX.startElement(br)
SAX.endElement(br)
SAX.startElement(a, href='doc3_files/3-800.jpg', target='800')
SAX.characters(800x600 , 8)
SAX.endElement(a)
SAX.startElement(br)
SAX.endElement(br)
SAX.startElement(a, href='http://www.bp6.com/pics/holodeck2/wallpaper/3-1024.jpg', target='800')
SAX.characters(1024x768 , 9)
SAX.endElement(a)
SAX.startElement(br)
SAX.endElement(br)
SAX.startElement(a, href='http://www.bp6.com/pics/holodeck2/wallpaper/3-1152.jpg', target='800')
SAX.characters(1152x864 , 9)
SAX.endElement(a)
SAX.startElement(br)
SAX.endElement(br)
SAX.startElement(a, href='http://www.bp6.com/pics/holodeck2/wallpaper/3-1280x1024.jpg', target='800')
SAX.characters(1280x1024 , 10)
SAX.endElement(a)
SAX.startElement(br)
SAX.endElement(br)
SAX.startElement(a, href='http://www.bp6.com/pics/holodeck2/wallpaper/3-1600.jpg', target='800')
SAX.characters(1600x1200 , 10)
SAX.endElement(a)
SAX.startElement(br)
SAX.endElement(br)
SAX.characters(
            , 14)
SAX.startElement(p)
SAX.characters(Enjoy :-), 9)
SAX.startElement(br)
SAX.endElement(br)
SAX.characters(
            , 14)
SAX.endElement(p)
SAX.startElement(p)
SAX.startElement(a, href='mailto:Holodeck2@home.com')
SAX.characters(Holodeck2,, 10)
SAX.endElement(a)
SAX.startElement(br)
SAX.endElement(br)
SAX.characters([H]ard at 
            work o, 65)
SAX.startElement(br)
SAX.endElement(br)
SAX.endElement(p)
SAX.endElement(font)
SAX.startElement(br)
SAX.endElement(br)
SAX.startElement(br)
SAX.endElement(br)
SAX.startElement(a, name='newsitem964762841,25865,')
SAX.endElement(a)
SAX.startElement(b)
SAX.startElement(u)
SAX.startElement(font, color='#003366', face='Verdana, Arial', size='2')
SAX.characters(Seti update, 11)
SAX.endElement(font)
SAX.endElement(u)
SAX.endElement(b)
SAX.startElement(br)
SAX.endElement(br)
SAX.startElement(font, color='#0066cc', face='Arial', size='1')
SAX.startElement(small)
SAX.characters(Posted by , 10)
SAX.startElement(a, class='nav', href='mailto:Holodeck@bp6.com')
SAX.characters(Holodeck2, 9)
SAX.endElement(a)
SAX.characters( @ 10:40PM 
            PDT, 28)
SAX.endElement(small)
SAX.characters(&nbsp;, 2)
SAX.characters( , 1)
SAX.startElement(a, href='http://bp6.gamesquad.net/news/964762841,25865,.html')
SAX.startElement(img, border='0', src='doc3_files/comments.gif')
SAX.endElement(img)
SAX.characters(5 comments, 10)
SAX.endElement(a)
SAX.characters( 
            , 15)
SAX.characters(&nbsp;, 2)
SAX.characters(|, 1)
SAX.characters(&nbsp;, 2)
SAX.startElement(a, href='http://bp6.gamesquad.net/#news_top')
SAX.characters(top, 3)
SAX.endElement(a)
SAX.endElement(font)
SAX.characters( , 1)
SAX.startElement(br)
SAX.endElement(br)
SAX.startElement(font, color='black', face='Arial', size='2')
SAX.startElement(img, height='54', src='doc3_files/setiupdate.jpg', width='400')
SAX.endElement(img)
SAX.startElement(br)
SAX.endElement(br)
SAX.characters(You like the 
            pic, 31)
SAX.startElement(br)
SAX.endElement(br)
SAX.startElement(br)
SAX.endElement(br)
SAX.characters(Bp6 User Group Update:, 22)
SAX.startElement(br)
SAX.endElement(br)
SAX.characters(Completed 61531 
            , 37)
SAX.startElement(br)
SAX.endElement(br)
SAX.startElement(b)
SAX.characters(#168 on Top 200 All Groups, 26)
SAX.endElement(b)
SAX.characters( (Going to pass CLRC in 
    , 49)
SAX.startElement(br)
SAX.endElement(br)
SAX.startElement(b)
SAX.characters(#74 on Top 200 Teams, 20)
SAX.endElement(b)
SAX.characters( (Gaining fast on 
          , 42)
SAX.startElement(br)
SAX.endElement(br)
SAX.startElement(br)
SAX.endElement(br)
SAX.characters(We are flying though at the sp, 82)
SAX.startElement(br)
SAX.endElement(br)
SAX.characters(Good job everyone!!, 19)
SAX.startElement(br)
SAX.endElement(br)
SAX.startElement(br)
SAX.endElement(br)
SAX.characters(Check this page at 
         , 67)
SAX.startElement(br)
SAX.endElement(br)
SAX.endElement(font)
SAX.startElement(br)
SAX.endElement(br)
SAX.startElement(br)
SAX.endElement(br)
SAX.startElement(a, name='newsitem964732235,45502,')
SAX.endElement(a)
SAX.startElement(b)
SAX.startElement(u)
SAX.startElement(font, color='#003366', face='Verdana, Arial', size='2')
SAX.characters(Judge gives Napster the 
    , 44)
SAX.endElement(font)
SAX.endElement(u)
SAX.endElement(b)
SAX.startElement(br)
SAX.endElement(br)
SAX.startElement(font, color='#0066cc', face='Arial', size='1')
SAX.startElement(small)
SAX.characters(Posted by , 10)
SAX.startElement(a, class='nav', href='mailto:Holodeck@bp6.com')
SAX.characters(Holodeck2, 9)
SAX.endElement(a)
SAX.characters( @ 2:10PM 
            PDT, 27)
SAX.endElement(small)
SAX.characters(&nbsp;, 2)
SAX.characters( , 1)
SAX.startElement(a, href='http://bp6.gamesquad.net/news/964732235,45502,.html')
SAX.startElement(img, border='0', src='doc3_files/comments.gif')
SAX.endElement(img)
SAX.characters(0 comments, 10)
SAX.endElement(a)
SAX.characters( 
            , 15)
SAX.characters(&nbsp;, 2)
SAX.characters(|, 1)
SAX.characters(&nbsp;, 2)
SAX.startElement(a, href='http://bp6.gamesquad.net/#news_top')
SAX.characters(top, 3)
SAX.endElement(a)
SAX.endElement(font)
SAX.characters( , 1)
SAX.startElement(br)
SAX.endElement(br)
SAX.startElement(font, color='black', face='Arial', size='2')
SAX.characters(Good afternoon for everyone li, 135)
SAX.startElement(br)
SAX.endElement(br)
SAX.characters(I woke up and thought about po, 488)
SAX.startElement(br)
SAX.endElement(br)
SAX.startElement(br)
SAX.endElement(br)
SAX.startElement(a, href='http://www.msnbc.com/news/437532.asp', target='Judge vs Napster')
SAX.characters(Judge shuts Napster down
    , 38)
SAX.startElement(p)
SAX.startElement(img, height='143', src='doc3_files/669915.jpg', width='200')
SAX.endElement(img)
SAX.endElement(p)
SAX.endElement(a)
SAX.startElement(br)
SAX.endElement(br)
SAX.characters(Check out the Goofy guy in the, 35)
SAX.startElement(br)
SAX.endElement(br)
SAX.characters(He's Sean 
            Fannin, 52)
SAX.startElement(br)
SAX.endElement(br)
SAX.startElement(br)
SAX.endElement(br)
SAX.characters(Got news?? , 11)
SAX.startElement(a, href='mailto:Holodeck2@home.com')
SAX.characters(mailto:Holodeck2@home.com, 25)
SAX.endElement(a)
SAX.startElement(br)
SAX.endElement(br)
SAX.endElement(font)
SAX.startElement(br)
SAX.endElement(br)
SAX.startElement(br)
SAX.endElement(br)
SAX.startElement(a, name='newsitem964713289,83675,')
SAX.endElement(a)
SAX.startElement(b)
SAX.startElement(u)
SAX.startElement(font, color='#003366', face='Verdana, Arial', size='2')
SAX.characters(Ram Sinks.. more cooling for s, 56)
SAX.endElement(font)
SAX.endElement(u)
SAX.endElement(b)
SAX.startElement(br)
SAX.endElement(br)
SAX.startElement(font, color='#0066cc', face='Arial', size='1')
SAX.startElement(small)
SAX.characters(Posted by , 10)
SAX.startElement(a, class='nav', href='mailto:tim@bp6.com')
SAX.characters(tim, 3)
SAX.endElement(a)
SAX.characters( @ 8:54AM PDT, 13)
SAX.endElement(small)
SAX.characters(&nbsp;, 2)
SAX.characters( , 1)
SAX.startElement(a, href='http://bp6.gamesquad.net/news/964713289,83675,.html')
SAX.startElement(img, border='0', src='doc3_files/comments.gif')
SAX.endElement(img)
SAX.characters(0 comments, 10)
SAX.endElement(a)
SAX.characters( 
            , 15)
SAX.characters(&nbsp;, 2)
SAX.characters(|, 1)
SAX.characters(&nbsp;, 2)
SAX.startElement(a, href='http://bp6.gamesquad.net/#news_top')
SAX.characters(top, 3)
SAX.endElement(a)
SAX.endElement(font)
SAX.characters( , 1)
SAX.startElement(br)
SAX.endElement(br)
SAX.startElement(font, color='black', face='Arial', size='2')
SAX.characters(Need some cooling for your Vid, 106)
SAX.startElement(a, href='http://www.overclockershideout.com/RamSinks.html', target='_BLANK')
SAX.characters(Overclockers Hiedout Ram Sinks, 30)
SAX.endElement(a)
SAX.characters( They just notified 
        , 57)
SAX.startElement(br)
SAX.endElement(br)
SAX.startElement(img, border='1', src='doc3_files/ramsink.jpg')
SAX.endElement(img)
SAX.endElement(font)
SAX.startElement(br)
SAX.endElement(br)
SAX.startElement(br)
SAX.endElement(br)
SAX.startElement(a, name='newsitem964671589,7831,')
SAX.endElement(a)
SAX.characters(
            , 14)
SAX.startElement(table, bgcolor='#003399', width='100%')
SAX.characters(
              , 16)
SAX.startElement(tbody)
SAX.characters(
              , 16)
SAX.startElement(tr)
SAX.characters(
                , 18)
SAX.startElement(td)
SAX.startElement(font, color='#ffffff', face='Verdana,arial', size='2')
SAX.startElement(b)
SAX.characters(Wednesday, July 26, 
        , 38)
SAX.endElement(b)
SAX.endElement(font)
SAX.endElement(td)
SAX.endElement(tr)
SAX.endElement(tbody)
SAX.endElement(table)
SAX.startElement(br)
SAX.endElement(br)
SAX.comment(<hr noshade width=100%>)
SAX.startElement(b)
SAX.startElement(u)
SAX.startElement(font, color='#003366', face='Verdana, Arial', size='2')
SAX.characters(is it 
            [H]ard?, 27)
SAX.endElement(font)
SAX.endElement(u)
SAX.endElement(b)
SAX.startElement(br)
SAX.endElement(br)
SAX.startElement(font, color='#0066cc', face='Arial', size='1')
SAX.startElement(small)
SAX.characters(Posted by , 10)
SAX.startElement(a, class='nav', href='mailto:Holodeck@bp6.com')
SAX.characters(Holodeck2, 9)
SAX.endElement(a)
SAX.characters( @ 9:19PM 
            PDT, 27)
SAX.endElement(small)
SAX.characters(&nbsp;, 2)
SAX.characters( , 1)
SAX.startElement(a, href='http://bp6.gamesquad.net/news/964671589,7831,.html')
SAX.startElement(img, border='0', src='doc3_files/comments.gif')
SAX.endElement(img)
SAX.characters(0 comments, 10)
SAX.endElement(a)
SAX.characters( 
            , 15)
SAX.characters(&nbsp;, 2)
SAX.characters(|, 1)
SAX.characters(&nbsp;, 2)
SAX.startElement(a, href='http://bp6.gamesquad.net/#news_top')
SAX.characters(top, 3)
SAX.endElement(a)
SAX.endElement(font)
SAX.characters( , 1)
SAX.startElement(br)
SAX.endElement(br)
SAX.startElement(font, color='black', face='Arial', size='2')
SAX.characters(Big heatsinks are good, very g, 71)
SAX.startElement(br)
SAX.endElement(br)
SAX.characters(You can never can have a too b, 99)
SAX.startElement(br)
SAX.endElement(br)
SAX.startElement(br)
SAX.endElement(br)
SAX.startElement(img, height='173', src='doc3_files/voodooside2.jpg', width='230')
SAX.endElement(img)
SAX.startElement(br)
SAX.endElement(br)
SAX.characters(My overclocked 
            V, 74)
SAX.startElement(br)
SAX.endElement(br)
SAX.characters(Peltier and 
            wate, 50)
SAX.startElement(br)
SAX.endElement(br)
SAX.characters((if you pry off the heatsink y, 66)
SAX.startElement(br)
SAX.endElement(br)
SAX.startElement(br)
SAX.endElement(br)
SAX.characters(it was originally posted on , 28)
SAX.startElement(a, href='http://www.hardocp.com/')
SAX.characters([H]ardOCP , 10)
SAX.endElement(a)
SAX.startElement(br)
SAX.endElement(br)
SAX.characters(I, 1)
SAX.characters(&rsquo;, 3)
SAX.characters(m not only a 
            BP6, 55)
SAX.startElement(br)
SAX.endElement(br)
SAX.endElement(font)
SAX.startElement(br)
SAX.endElement(br)
SAX.startElement(br)
SAX.endElement(br)
SAX.startElement(a, name='newsitem964644047,60218,')
SAX.endElement(a)
SAX.startElement(b)
SAX.startElement(u)
SAX.startElement(font, color='#003366', face='Verdana, Arial', size='2')
SAX.characters(WiLd CaSe!!, 11)
SAX.endElement(font)
SAX.endElement(u)
SAX.endElement(b)
SAX.startElement(br)
SAX.endElement(br)
SAX.startElement(font, color='#0066cc', face='Arial', size='1')
SAX.startElement(small)
SAX.characters(Posted by , 10)
SAX.startElement(a, class='nav', href='mailto:Holodeck@bp6.com')
SAX.characters(Holodeck2, 9)
SAX.endElement(a)
SAX.characters( @ 1:40PM 
            PDT, 27)
SAX.endElement(small)
SAX.characters(&nbsp;, 2)
SAX.characters( , 1)
SAX.startElement(a, href='http://bp6.gamesquad.net/news/964644047,60218,.html')
SAX.startElement(img, border='0', src='doc3_files/comments.gif')
SAX.endElement(img)
SAX.characters(8 comments, 10)
SAX.endElement(a)
SAX.characters( 
            , 15)
SAX.characters(&nbsp;, 2)
SAX.characters(|, 1)
SAX.characters(&nbsp;, 2)
SAX.startElement(a, href='http://bp6.gamesquad.net/#news_top')
SAX.characters(top, 3)
SAX.endElement(a)
SAX.endElement(font)
SAX.characters( , 1)
SAX.startElement(br)
SAX.endElement(br)
SAX.startElement(font, color='black', face='Arial', size='2')
SAX.characters(Now this person really knows h, 70)
SAX.startElement(br)
SAX.endElement(br)
SAX.characters(Addin an 18" Fan!! WOW!!, 24)
SAX.startElement(br)
SAX.endElement(br)
SAX.startElement(br)
SAX.endElement(br)
SAX.startElement(a, href='http://www.envador.com/Photos/PVCII/', target='_blank')
SAX.startElement(img, src='doc3_files/TN_OpenedUp1.jpg')
SAX.endElement(img)
SAX.endElement(a)
SAX.startElement(br)
SAX.endElement(br)
SAX.characters(Click to go to his 
         , 38)
SAX.startElement(br)
SAX.endElement(br)
SAX.endElement(font)
SAX.startElement(br)
SAX.endElement(br)
SAX.startElement(br)
SAX.endElement(br)
SAX.startElement(a, name='newsitem964631110,84122,')
SAX.endElement(a)
SAX.startElement(b)
SAX.startElement(u)
SAX.startElement(font, color='#003366', face='Verdana, Arial', size='2')
SAX.characters(What the heck is a 
         , 44)
SAX.endElement(font)
SAX.endElement(u)
SAX.endElement(b)
SAX.startElement(br)
SAX.endElement(br)
SAX.startElement(font, color='#0066cc', face='Arial', size='1')
SAX.startElement(small)
SAX.characters(Posted by , 10)
SAX.startElement(a, class='nav', href='mailto:Holodeck@bp6.com')
SAX.characters(Holodeck2, 9)
SAX.endElement(a)
SAX.characters( @ 10:05AM 
            PDT, 28)
SAX.endElement(small)
SAX.characters(&nbsp;, 2)
SAX.characters( , 1)
SAX.startElement(a, href='http://bp6.gamesquad.net/news/964631110,84122,.html')
SAX.startElement(img, border='0', src='doc3_files/comments.gif')
SAX.endElement(img)
SAX.characters(6 comments, 10)
SAX.endElement(a)
SAX.characters( 
            , 15)
SAX.characters(&nbsp;, 2)
SAX.characters(|, 1)
SAX.characters(&nbsp;, 2)
SAX.startElement(a, href='http://bp6.gamesquad.net/#news_top')
SAX.characters(top, 3)
SAX.endElement(a)
SAX.endElement(font)
SAX.characters( , 1)
SAX.startElement(br)
SAX.endElement(br)
SAX.startElement(font, color='black', face='Arial', size='2')
SAX.characters(This is for all you people who, 78)
SAX.startElement(br)
SAX.endElement(br)
SAX.startElement(br)
SAX.endElement(br)
SAX.characters(The quest fo the Perfect 
   , 46)
SAX.startElement(br)
SAX.endElement(br)
SAX.startElement(a, href='http://www.tweakmax.com/html/peltier/peltier-1.cfm', target='_blank')
SAX.startElement(img, src='doc3_files/peltier.jpg')
SAX.endElement(img)
SAX.endElement(a)
SAX.characters( , 1)
SAX.startElement(br)
SAX.endElement(br)
SAX.characters(Thanks to 
            , 24)
SAX.startElement(a, href='http://www.tweakmax.com/', target='_blank')
SAX.characters(TweakMax.com, 12)
SAX.endElement(a)
SAX.characters( 
            , 15)
SAX.startElement(br)
SAX.endElement(br)
SAX.startElement(br)
SAX.endElement(br)
SAX.characters(Note: Today morning when I wok, 397)
SAX.startElement(img, src='doc3_files/smile.gif')
SAX.endElement(img)
SAX.startElement(br)
SAX.endElement(br)
SAX.characters(I'm not angry at anyone... 
 , 71)
SAX.startElement(img, src='doc3_files/tongue.gif')
SAX.endElement(img)
SAX.startElement(br)
SAX.endElement(br)
SAX.endElement(font)
SAX.startElement(br)
SAX.endElement(br)
SAX.startElement(br)
SAX.endElement(br)
SAX.startElement(a, name='newsitem964587833,74573,')
SAX.endElement(a)
SAX.characters(
            , 14)
SAX.startElement(table, bgcolor='#003399', width='100%')
SAX.characters(
              , 16)
SAX.startElement(tbody)
SAX.characters(
              , 16)
SAX.startElement(tr)
SAX.characters(
                , 18)
SAX.startElement(td)
SAX.startElement(font, color='#ffffff', face='Verdana,arial', size='2')
SAX.startElement(b)
SAX.characters(Tuesday, 
                  J, 42)
SAX.endElement(b)
SAX.endElement(font)
SAX.endElement(td)
SAX.endElement(tr)
SAX.endElement(tbody)
SAX.endElement(table)
SAX.startElement(br)
SAX.endElement(br)
SAX.comment(<hr noshade width=100%>)
SAX.startElement(b)
SAX.startElement(u)
SAX.startElement(font, color='#003366', face='Verdana, Arial', size='2')
SAX.characters(HELLO 
            EVERYONE!!, 31)
SAX.endElement(font)
SAX.endElement(u)
SAX.endElement(b)
SAX.startElement(br)
SAX.endElement(br)
SAX.startElement(font, color='#0066cc', face='Arial', size='1')
SAX.startElement(small)
SAX.characters(Posted by , 10)
SAX.startElement(a, class='nav', href='mailto:Holodeck@bp6.com')
SAX.characters(Holodeck2, 9)
SAX.endElement(a)
SAX.characters( @ 10:03PM 
            PDT, 28)
SAX.endElement(small)
SAX.characters(&nbsp;, 2)
SAX.characters( , 1)
SAX.startElement(br)
SAX.endElement(br)
SAX.startElement(font, color='black', face='Arial', size='2')
SAX.characters(Hello 
            everyone, , 47)
SAX.startElement(br)
SAX.endElement(br)
SAX.characters(Who is this Holodeck2 person , 66)
SAX.startElement(br)
SAX.endElement(br)
SAX.characters(I, 1)
SAX.characters(&rsquo;, 3)
SAX.characters(m a regular on the bp6 message, 97)
SAX.startElement(br)
SAX.endElement(br)
SAX.characters(I, 1)
SAX.characters(&rsquo;, 3)
SAX.characters(m the 
            self-procl, 85)
SAX.characters(&rsquo;, 3)
SAX.characters(ve 
            probably alre, 68)
SAX.startElement(br)
SAX.endElement(br)
SAX.characters(My computer 
            is a, 200)
SAX.startElement(br)
SAX.endElement(br)
SAX.characters(Any Questions or comments, you, 98)
SAX.startElement(br)
SAX.endElement(br)
SAX.startElement(br)
SAX.endElement(br)
SAX.characters(Ways to contact 
            , 33)
SAX.startElement(br)
SAX.endElement(br)
SAX.characters(E-mail: , 8)
SAX.startElement(a, href='mailto:Holodeck2@home.com')
SAX.characters(Holodeck2@home.com, 18)
SAX.endElement(a)
SAX.characters( (All E-mails 
            wi, 82)
SAX.startElement(br)
SAX.endElement(br)
SAX.characters(When you 
            write m, 163)
SAX.startElement(br)
SAX.endElement(br)
SAX.startElement(a, href='http://www.aol.com/aim')
SAX.characters(AIM: , 5)
SAX.endElement(a)
SAX.characters(Holodeck2 (instant response 
, 46)
SAX.characters(&rsquo;, 3)
SAX.characters(m in front of my comp and not , 53)
SAX.startElement(br)
SAX.endElement(br)
SAX.startElement(a, href='http://www.icq.com/download')
SAX.characters(ICQ: , 5)
SAX.endElement(a)
SAX.characters(82640218 (rarely 
           , 34)
SAX.startElement(br)
SAX.endElement(br)
SAX.startElement(br)
SAX.endElement(br)
SAX.characters(P.S. If someone named , 22)
SAX.characters(&ldquo;, 3)
SAX.characters(Digital Vortex, 14)
SAX.characters(&rdquo;, 3)
SAX.characters( on either Quake 3 
         , 51)
SAX.characters(&rsquo;, 3)
SAX.characters(s probably me. ;-), 18)
SAX.startElement(br)
SAX.endElement(br)
SAX.endElement(font)
SAX.startElement(br)
SAX.endElement(br)
SAX.startElement(br)
SAX.endElement(br)
SAX.startElement(a, name='newsitem964429577,13375,')
SAX.endElement(a)
SAX.characters(
            , 14)
SAX.startElement(table, bgcolor='#003399', width='100%')
SAX.characters(
              , 16)
SAX.startElement(tbody)
SAX.characters(
              , 16)
SAX.startElement(tr)
SAX.characters(
                , 18)
SAX.startElement(td)
SAX.startElement(font, color='#ffffff', face='Verdana,arial', size='2')
SAX.startElement(b)
SAX.characters(Monday, 
                  Ju, 41)
SAX.endElement(b)
SAX.endElement(font)
SAX.endElement(td)
SAX.endElement(tr)
SAX.endElement(tbody)
SAX.endElement(table)
SAX.startElement(br)
SAX.endElement(br)
SAX.comment(<hr noshade width=100%>)
SAX.startElement(b)
SAX.startElement(u)
SAX.startElement(font, color='#003366', face='Verdana, Arial', size='2')
SAX.characters(BP6 Q3 server up and 
       , 44)
SAX.endElement(font)
SAX.endElement(u)
SAX.endElement(b)
SAX.startElement(br)
SAX.endElement(br)
SAX.startElement(font, color='#0066cc', face='Arial', size='1')
SAX.startElement(small)
SAX.characters(Posted by , 10)
SAX.startElement(a, class='nav', href='mailto:tim@bp6.com')
SAX.characters(tim, 3)
SAX.endElement(a)
SAX.characters( @ 2:06AM PDT, 13)
SAX.endElement(small)
SAX.characters(&nbsp;, 2)
SAX.characters( , 1)
SAX.startElement(a, href='http://bp6.gamesquad.net/news/964429577,13375,.html')
SAX.startElement(img, border='0', src='doc3_files/comments.gif')
SAX.endElement(img)
SAX.characters(3 comments, 10)
SAX.endElement(a)
SAX.characters( 
            , 15)
SAX.characters(&nbsp;, 2)
SAX.characters(|, 1)
SAX.characters(&nbsp;, 2)
SAX.startElement(a, href='http://bp6.gamesquad.net/#news_top')
SAX.characters(top, 3)
SAX.endElement(a)
SAX.endElement(font)
SAX.characters( , 1)
SAX.startElement(br)
SAX.endElement(br)
SAX.startElement(font, color='black', face='Arial', size='2')
SAX.characters(Setup a Q3 server for anyone w, 355)
SAX.startElement(br)
SAX.endElement(br)
SAX.characters((BTW- 
            there are , 68)
SAX.endElement(font)
SAX.startElement(br)
SAX.endElement(br)
SAX.startElement(br)
SAX.endElement(br)
SAX.startElement(a, name='newsitem964425184,95812,')
SAX.endElement(a)
SAX.startElement(b)
SAX.startElement(u)
SAX.startElement(font, color='#003366', face='Verdana, Arial', size='2')
SAX.characters(BIOS Savior to the 
         , 43)
SAX.endElement(font)
SAX.endElement(u)
SAX.endElement(b)
SAX.startElement(br)
SAX.endElement(br)
SAX.startElement(font, color='#0066cc', face='Arial', size='1')
SAX.startElement(small)
SAX.characters(Posted by , 10)
SAX.startElement(a, class='nav', href='mailto:tim@bp6.com')
SAX.characters(tim, 3)
SAX.endElement(a)
SAX.characters( @ 12:53AM PDT, 14)
SAX.endElement(small)
SAX.characters(&nbsp;, 2)
SAX.characters( , 1)
SAX.startElement(a, href='http://bp6.gamesquad.net/news/964425184,95812,.html')
SAX.startElement(img, border='0', src='doc3_files/comments.gif')
SAX.endElement(img)
SAX.characters(2 comments, 10)
SAX.endElement(a)
SAX.characters( 
            , 15)
SAX.characters(&nbsp;, 2)
SAX.characters(|, 1)
SAX.characters(&nbsp;, 2)
SAX.startElement(a, href='http://bp6.gamesquad.net/#news_top')
SAX.characters(top, 3)
SAX.endElement(a)
SAX.endElement(font)
SAX.characters( , 1)
SAX.startElement(br)
SAX.endElement(br)
SAX.startElement(font, color='black', face='Arial', size='2')
SAX.characters(Do you sweat during the BIOS f, 167)
SAX.startElement(b)
SAX.characters(RD1 BIOS Savior, 15)
SAX.endElement(b)
SAX.characters(" and it 
            plugs i, 520)
SAX.startElement(br)
SAX.endElement(br)
SAX.startElement(a, href='http://www.ioss.com.tw/eg/rd1/RD1info0004.PDF', target='_NEW')
SAX.characters(Manufacturers Brochure, 22)
SAX.endElement(a)
SAX.characters( (PDF Format), 13)
SAX.startElement(br)
SAX.endElement(br)
SAX.startElement(a, href='http://192.216.185.10/mwave/doc/A06950.html', target='_BLANK"')
SAX.characters(Another info page, 17)
SAX.endElement(a)
SAX.startElement(br)
SAX.endElement(br)
SAX.startElement(a, href='http://192.216.185.10/mwave/ProdMB-AC-MW.hmx?UID=&amp;CID=&amp;updepts=MB&amp;DNAME=%3Cb%3EMotherboards%3C%2Fb%3E&amp;Back=ProdMB-AC-MW.hmx?', target='_BLANK')
SAX.characters(Available for about $20, 23)
SAX.endElement(a)
SAX.startElement(br)
SAX.endElement(br)
SAX.startElement(br)
SAX.endElement(br)
SAX.startElement(img, src='doc3_files/rd1.jpg')
SAX.endElement(img)
SAX.endElement(font)
SAX.startElement(br)
SAX.endElement(br)
SAX.startElement(br)
SAX.endElement(br)
SAX.startElement(a, name='newsitem963875853,12731,')
SAX.endElement(a)
SAX.characters(
            , 14)
SAX.startElement(table, bgcolor='#003399', width='100%')
SAX.characters(
              , 16)
SAX.startElement(tbody)
SAX.characters(
              , 16)
SAX.startElement(tr)
SAX.characters(
                , 18)
SAX.startElement(td)
SAX.startElement(font, color='#ffffff', face='Verdana,arial', size='2')
SAX.startElement(b)
SAX.characters(Monday, 
                  Ju, 41)
SAX.endElement(b)
SAX.endElement(font)
SAX.endElement(td)
SAX.endElement(tr)
SAX.endElement(tbody)
SAX.endElement(table)
SAX.startElement(br)
SAX.endElement(br)
SAX.comment(<hr noshade width=100%>)
SAX.startElement(b)
SAX.startElement(u)
SAX.startElement(font, color='#003366', face='Verdana, Arial', size='2')
SAX.characters(How To 
            Overclock, 30)
SAX.endElement(font)
SAX.endElement(u)
SAX.endElement(b)
SAX.startElement(br)
SAX.endElement(br)
SAX.startElement(font, color='#0066cc', face='Arial', size='1')
SAX.startElement(small)
SAX.characters(Posted by , 10)
SAX.startElement(a, class='nav', href='mailto:killz@i82hq.com')
SAX.characters(DareDevil, 9)
SAX.endElement(a)
SAX.characters( @ 4:17PM 
            PDT, 27)
SAX.endElement(small)
SAX.characters(&nbsp;, 2)
SAX.characters( , 1)
SAX.startElement(a, href='http://bp6.gamesquad.net/news/963875853,12731,.html')
SAX.startElement(img, border='0', src='doc3_files/comments.gif')
SAX.endElement(img)
SAX.characters(3 comments, 10)
SAX.endElement(a)
SAX.characters( 
            , 15)
SAX.characters(&nbsp;, 2)
SAX.characters(|, 1)
SAX.characters(&nbsp;, 2)
SAX.startElement(a, href='http://bp6.gamesquad.net/#news_top')
SAX.characters(top, 3)
SAX.endElement(a)
SAX.endElement(font)
SAX.characters( , 1)
SAX.startElement(br)
SAX.endElement(br)
SAX.startElement(font, color='black', face='Arial', size='2')
SAX.characters(For those of you who are new t, 209)
SAX.startElement(br)
SAX.endElement(br)
SAX.startElement(br)
SAX.endElement(br)
SAX.startElement(a, href='http://netkills.qgl.org/a_oc_comp.shtml', target='_blank')
SAX.characters(How To Overclock, 16)
SAX.endElement(a)
SAX.characters( , 1)
SAX.endElement(font)
SAX.startElement(br)
SAX.endElement(br)
SAX.startElement(br)
SAX.endElement(br)
SAX.startElement(a, name='newsitem963875485,23353,')
SAX.endElement(a)
SAX.startElement(b)
SAX.startElement(u)
SAX.startElement(font, color='#003366', face='Verdana, Arial', size='2')
SAX.characters(The Cardcooler 
            X, 31)
SAX.endElement(font)
SAX.endElement(u)
SAX.endElement(b)
SAX.startElement(br)
SAX.endElement(br)
SAX.startElement(font, color='#0066cc', face='Arial', size='1')
SAX.startElement(small)
SAX.characters(Posted by , 10)
SAX.startElement(a, class='nav', href='mailto:killz@i82hq.com')
SAX.characters(DareDevil, 9)
SAX.endElement(a)
SAX.characters( @ 4:11PM 
            PDT, 27)
SAX.endElement(small)
SAX.characters(&nbsp;, 2)
SAX.characters( , 1)
SAX.startElement(a, href='http://bp6.gamesquad.net/news/963875485,23353,.html')
SAX.startElement(img, border='0', src='doc3_files/comments.gif')
SAX.endElement(img)
SAX.characters(1 comments, 10)
SAX.endElement(a)
SAX.characters( 
            , 15)
SAX.characters(&nbsp;, 2)
SAX.characters(|, 1)
SAX.characters(&nbsp;, 2)
SAX.startElement(a, href='http://bp6.gamesquad.net/#news_top')
SAX.characters(top, 3)
SAX.endElement(a)
SAX.endElement(font)
SAX.characters( , 1)
SAX.startElement(br)
SAX.endElement(br)
SAX.startElement(font, color='black', face='Arial', size='2')
SAX.characters(Wow! I am impressed! Nevermind, 98)
SAX.startElement(br)
SAX.endElement(br)
SAX.startElement(br)
SAX.endElement(br)
SAX.startElement(i)
SAX.characters(Even if your 
            not, 345)
SAX.endElement(i)
SAX.startElement(br)
SAX.endElement(br)
SAX.startElement(br)
SAX.endElement(br)
SAX.characters(Check this out!, 15)
SAX.startElement(br)
SAX.endElement(br)
SAX.startElement(br)
SAX.endElement(br)
SAX.startElement(a, href='http://www.brokenpixel.com/articles/coolerXT/cardcoolerXT_1.shtml', target='_blank')
SAX.characters(http://www.brokenpixel.com/art, 65)
SAX.endElement(a)
SAX.characters( 
            , 15)
SAX.endElement(font)
SAX.startElement(br)
SAX.endElement(br)
SAX.startElement(br)
SAX.endElement(br)
SAX.startElement(a, name='newsitem963859982,88982,')
SAX.endElement(a)
SAX.startElement(b)
SAX.startElement(u)
SAX.startElement(font, color='#003366', face='Verdana, Arial', size='2')
SAX.characters('Nerd 
            Inside', 27)
SAX.endElement(font)
SAX.endElement(u)
SAX.endElement(b)
SAX.startElement(br)
SAX.endElement(br)
SAX.startElement(font, color='#0066cc', face='Arial', size='1')
SAX.startElement(small)
SAX.characters(Posted by , 10)
SAX.startElement(a, class='nav', href='mailto:killz@i82hq.com')
SAX.characters(DareDevil, 9)
SAX.endElement(a)
SAX.characters( @ 11:53AM 
            PDT, 28)
SAX.endElement(small)
SAX.characters(&nbsp;, 2)
SAX.characters( , 1)
SAX.startElement(a, href='http://bp6.gamesquad.net/news/963859982,88982,.html')
SAX.startElement(img, border='0', src='doc3_files/comments.gif')
SAX.endElement(img)
SAX.characters(1 comments, 10)
SAX.endElement(a)
SAX.characters( 
            , 15)
SAX.characters(&nbsp;, 2)
SAX.characters(|, 1)
SAX.characters(&nbsp;, 2)
SAX.startElement(a, href='http://bp6.gamesquad.net/#news_top')
SAX.characters(top, 3)
SAX.endElement(a)
SAX.endElement(font)
SAX.characters( , 1)
SAX.startElement(br)
SAX.endElement(br)
SAX.startElement(font, color='black', face='Arial', size='2')
SAX.characters(We all need to have some fun , 181)
SAX.startElement(br)
SAX.endElement(br)
SAX.startElement(br)
SAX.endElement(br)
SAX.characters(
            , 14)
SAX.startElement(div, align='center')
SAX.startElement(a, href='http://www.nerdgear.com/', target='_blank')
SAX.startElement(img, border='0', src='doc3_files/nerdinside.gif')
SAX.endElement(img)
SAX.endElement(a)
SAX.endElement(div)
SAX.endElement(font)
SAX.startElement(br)
SAX.endElement(br)
SAX.startElement(br)
SAX.endElement(br)
SAX.startElement(a, name='newsitem963819796,9688,')
SAX.endElement(a)
SAX.startElement(b)
SAX.startElement(u)
SAX.startElement(font, color='#003366', face='Verdana, Arial', size='2')
SAX.characters(Dual PSU Wiring diagram... (pr, 81)
SAX.endElement(font)
SAX.endElement(u)
SAX.endElement(b)
SAX.startElement(br)
SAX.endElement(br)
SAX.startElement(font, color='#0066cc', face='Arial', size='1')
SAX.startElement(small)
SAX.characters(Posted by , 10)
SAX.startElement(a, class='nav', href='mailto:tim@bp6.com')
SAX.characters(tim, 3)
SAX.endElement(a)
SAX.characters( @ 12:43AM PDT, 14)
SAX.endElement(small)
SAX.characters(&nbsp;, 2)
SAX.characters( , 1)
SAX.startElement(a, href='http://bp6.gamesquad.net/news/963819796,9688,.html')
SAX.startElement(img, border='0', src='doc3_files/comments.gif')
SAX.endElement(img)
SAX.characters(11 comments, 11)
SAX.endElement(a)
SAX.characters( 
            , 15)
SAX.characters(&nbsp;, 2)
SAX.characters(|, 1)
SAX.characters(&nbsp;, 2)
SAX.startElement(a, href='http://bp6.gamesquad.net/#news_top')
SAX.characters(top, 3)
SAX.endElement(a)
SAX.endElement(font)
SAX.characters( , 1)
SAX.startElement(br)
SAX.endElement(br)
SAX.startElement(font, color='black', face='Arial', size='2')
SAX.characters(When is comes to overclocking , 848)
SAX.startElement(br)
SAX.endElement(br)
SAX.startElement(br)
SAX.endElement(br)
SAX.characters(View Diagram 1 , 15)
SAX.startElement(a, href='http://bp6.gamesquad.net/images/wiring.jpg', target='_BLANK')
SAX.characters(here, 4)
SAX.endElement(a)
SAX.characters(., 1)
SAX.startElement(br)
SAX.endElement(br)
SAX.characters(View Diagram 2 , 15)
SAX.startElement(a, href='http://bp6.gamesquad.net/images/psu2.gif', target='_BLANK')
SAX.characters(here, 4)
SAX.endElement(a)
SAX.characters(., 1)
SAX.startElement(br)
SAX.endElement(br)
SAX.startElement(br)
SAX.endElement(br)
SAX.characters(I used Tap-In Squeeze Connecto, 150)
SAX.startElement(a, href='http://www.radioshack.com/ProductCatalog/ProductDetail/Index/1,2098,,00.html?SKUString1=64&amp;SKUString2=3053', target='_blank')
SAX.characters(click here, 10)
SAX.endElement(a)
SAX.characters(., 1)
SAX.endElement(font)
SAX.startElement(br)
SAX.endElement(br)
SAX.startElement(br)
SAX.endElement(br)
SAX.startElement(a, name='newsitem963766655,78511,')
SAX.endElement(a)
SAX.characters(
            , 14)
SAX.startElement(table, bgcolor='#003399', width='100%')
SAX.characters(
              , 16)
SAX.startElement(tbody)
SAX.characters(
              , 16)
SAX.startElement(tr)
SAX.characters(
                , 18)
SAX.startElement(td)
SAX.startElement(font, color='#ffffff', face='Verdana,arial', size='2')
SAX.startElement(b)
SAX.characters(Sunday, 
                  Ju, 41)
SAX.endElement(b)
SAX.endElement(font)
SAX.endElement(td)
SAX.endElement(tr)
SAX.endElement(tbody)
SAX.endElement(table)
SAX.startElement(br)
SAX.endElement(br)
SAX.comment(<hr noshade width=100%>)
SAX.startElement(b)
SAX.startElement(u)
SAX.startElement(font, color='#003366', face='Verdana, Arial', size='2')
SAX.characters(RAM Overclocking? 
          , 39)
SAX.endElement(font)
SAX.endElement(u)
SAX.endElement(b)
SAX.startElement(br)
SAX.endElement(br)
SAX.startElement(font, color='#0066cc', face='Arial', size='1')
SAX.startElement(small)
SAX.characters(Posted by , 10)
SAX.startElement(a, class='nav', href='mailto:killz@i82hq.com')
SAX.characters(DareDevil, 9)
SAX.endElement(a)
SAX.characters( @ 9:57AM 
            PDT, 27)
SAX.endElement(small)
SAX.characters(&nbsp;, 2)
SAX.characters( , 1)
SAX.startElement(a, href='http://bp6.gamesquad.net/news/963766655,78511,.html')
SAX.startElement(img, border='0', src='doc3_files/comments.gif')
SAX.endElement(img)
SAX.characters(3 comments, 10)
SAX.endElement(a)
SAX.characters( 
            , 15)
SAX.characters(&nbsp;, 2)
SAX.characters(|, 1)
SAX.characters(&nbsp;, 2)
SAX.startElement(a, href='http://bp6.gamesquad.net/#news_top')
SAX.characters(top, 3)
SAX.endElement(a)
SAX.endElement(font)
SAX.characters( , 1)
SAX.startElement(br)
SAX.endElement(br)
SAX.startElement(font, color='black', face='Arial', size='2')
SAX.characters(I know we're pretty big overcl, 636)
SAX.startElement(br)
SAX.endElement(br)
SAX.startElement(br)
SAX.endElement(br)
SAX.characters(Extreme Overclocking has teste, 145)
SAX.startElement(br)
SAX.endElement(br)
SAX.startElement(br)
SAX.endElement(br)
SAX.startElement(i)
SAX.characters(Well, the guys at Extreme Over, 344)
SAX.endElement(i)
SAX.startElement(br)
SAX.endElement(br)
SAX.startElement(br)
SAX.endElement(br)
SAX.startElement(a, href='http://www.extremeoverclocking.com/reviews/memory/ram_roundup_1.html', target='_blank')
SAX.characters(Cooked RAM... Yummie, 20)
SAX.endElement(a)
SAX.startElement(br)
SAX.endElement(br)
SAX.startElement(br)
SAX.endElement(br)
SAX.characters(The 
            &ETH;&ETH;., 23)
SAX.endElement(font)
SAX.startElement(br)
SAX.endElement(br)
SAX.startElement(br)
SAX.endElement(br)
SAX.startElement(a, name='newsitem963764236,76720,')
SAX.endElement(a)
SAX.startElement(b)
SAX.startElement(u)
SAX.startElement(font, color='#003366', face='Verdana, Arial', size='2')
SAX.characters(CPU 
            Guide, 23)
SAX.endElement(font)
SAX.endElement(u)
SAX.endElement(b)
SAX.startElement(br)
SAX.endElement(br)
SAX.startElement(font, color='#0066cc', face='Arial', size='1')
SAX.startElement(small)
SAX.characters(Posted by , 10)
SAX.startElement(a, class='nav', href='mailto:killz@i82hq.com')
SAX.characters(DareDevil, 9)
SAX.endElement(a)
SAX.characters( @ 9:17AM 
            PDT, 27)
SAX.endElement(small)
SAX.characters(&nbsp;, 2)
SAX.characters( , 1)
SAX.startElement(a, href='http://bp6.gamesquad.net/news/963764236,76720,.html')
SAX.startElement(img, border='0', src='doc3_files/comments.gif')
SAX.endElement(img)
SAX.characters(0 comments, 10)
SAX.endElement(a)
SAX.characters( 
            , 15)
SAX.characters(&nbsp;, 2)
SAX.characters(|, 1)
SAX.characters(&nbsp;, 2)
SAX.startElement(a, href='http://bp6.gamesquad.net/#news_top')
SAX.characters(top, 3)
SAX.endElement(a)
SAX.endElement(font)
SAX.characters( , 1)
SAX.startElement(br)
SAX.endElement(br)
SAX.startElement(font, color='black', face='Arial', size='2')
SAX.characters(A follow up on the 'Weekly CPU, 203)
SAX.startElement(br)
SAX.endElement(br)
SAX.startElement(br)
SAX.endElement(br)
SAX.characters(
            , 14)
SAX.startElement(li)
SAX.startElement(a, href='http://www6.tomshardware.com/howto/00q2/000412/index.html', target='_blank')
SAX.characters(http://www6.tomshardware.com/h, 57)
SAX.endElement(a)
SAX.endElement(li)
SAX.endElement(font)
SAX.startElement(br)
SAX.endElement(br)
SAX.startElement(br)
SAX.endElement(br)
SAX.startElement(a, name='newsitem963685749,28290,')
SAX.endElement(a)
SAX.characters(
            , 14)
SAX.startElement(table, bgcolor='#003399', width='100%')
SAX.characters(
              , 16)
SAX.startElement(tbody)
SAX.characters(
              , 16)
SAX.startElement(tr)
SAX.characters(
                , 18)
SAX.startElement(td)
SAX.startElement(font, color='#ffffff', face='Verdana,arial', size='2')
SAX.startElement(b)
SAX.characters(Saturday, 
                  , 43)
SAX.endElement(b)
SAX.endElement(font)
SAX.endElement(td)
SAX.endElement(tr)
SAX.endElement(tbody)
SAX.endElement(table)
SAX.startElement(br)
SAX.endElement(br)
SAX.comment(<hr noshade width=100%>)
SAX.startElement(b)
SAX.startElement(u)
SAX.startElement(font, color='#003366', face='Verdana, Arial', size='2')
SAX.characters(Weekly CPU 
            Price, 31)
SAX.endElement(font)
SAX.endElement(u)
SAX.endElement(b)
SAX.startElement(br)
SAX.endElement(br)
SAX.startElement(font, color='#0066cc', face='Arial', size='1')
SAX.startElement(small)
SAX.characters(Posted by , 10)
SAX.startElement(a, class='nav', href='mailto:killz@i82hq.com')
SAX.characters(DareDevil, 9)
SAX.endElement(a)
SAX.characters( @ 11:29AM 
            PDT, 28)
SAX.endElement(small)
SAX.characters(&nbsp;, 2)
SAX.characters( , 1)
SAX.startElement(a, href='http://bp6.gamesquad.net/news/963685749,28290,.html')
SAX.startElement(img, border='0', src='doc3_files/comments.gif')
SAX.endElement(img)
SAX.characters(2 comments, 10)
SAX.endElement(a)
SAX.characters( 
            , 15)
SAX.characters(&nbsp;, 2)
SAX.characters(|, 1)
SAX.characters(&nbsp;, 2)
SAX.startElement(a, href='http://bp6.gamesquad.net/#news_top')
SAX.characters(top, 3)
SAX.endElement(a)
SAX.endElement(font)
SAX.characters( , 1)
SAX.startElement(br)
SAX.endElement(br)
SAX.startElement(font, color='black', face='Arial', size='2')
SAX.characters(Wow, found this very useful! W, 104)
SAX.startElement(br)
SAX.endElement(br)
SAX.startElement(br)
SAX.endElement(br)
SAX.startElement(a, href='http://www.sharkyextreme.com/hardware/weekly_cpu/', target='_blank')
SAX.characters(Click Here., 11)
SAX.endElement(a)
SAX.characters( , 1)
SAX.startElement(br)
SAX.endElement(br)
SAX.startElement(br)
SAX.endElement(br)
SAX.characters(Thanks Sharky 
            Ex, 36)
SAX.endElement(font)
SAX.startElement(br)
SAX.endElement(br)
SAX.startElement(br)
SAX.endElement(br)
SAX.startElement(a, name='newsitem963679881,35277,')
SAX.endElement(a)
SAX.startElement(b)
SAX.startElement(u)
SAX.startElement(font, color='#003366', face='Verdana, Arial', size='2')
SAX.characters(Fast Wallpapers, 15)
SAX.endElement(font)
SAX.endElement(u)
SAX.endElement(b)
SAX.startElement(br)
SAX.endElement(br)
SAX.startElement(font, color='#0066cc', face='Arial', size='1')
SAX.startElement(small)
SAX.characters(Posted by , 10)
SAX.startElement(a, class='nav', href='mailto:killz@i82hq.com')
SAX.characters(DareDevil, 9)
SAX.endElement(a)
SAX.characters( @ 9:51AM 
            PDT, 27)
SAX.endElement(small)
SAX.characters(&nbsp;, 2)
SAX.characters( , 1)
SAX.startElement(a, href='http://bp6.gamesquad.net/news/963679881,35277,.html')
SAX.startElement(img, border='0', src='doc3_files/comments.gif')
SAX.endElement(img)
SAX.characters(0 comments, 10)
SAX.endElement(a)
SAX.characters( 
            , 15)
SAX.characters(&nbsp;, 2)
SAX.characters(|, 1)
SAX.characters(&nbsp;, 2)
SAX.startElement(a, href='http://bp6.gamesquad.net/#news_top')
SAX.characters(top, 3)
SAX.endElement(a)
SAX.endElement(font)
SAX.characters( , 1)
SAX.startElement(br)
SAX.endElement(br)
SAX.startElement(font, color='black', face='Arial', size='2')
SAX.characters(FAST-MHz has released some wal, 53)
SAX.startElement(a, href='http://64.29.18.111/wallpaper/index.html', target='_blank')
SAX.characters(Click here, 10)
SAX.endElement(a)
SAX.characters( to view them. They come in si, 241)
SAX.startElement(br)
SAX.endElement(br)
SAX.startElement(br)
SAX.endElement(br)
SAX.characters(In other news, we want to 
  , 135)
SAX.startElement(a, href='http://bp6.gamesquad.net/uc.phtml', target='_blank')
SAX.characters(Picture Gallery, 15)
SAX.endElement(a)
SAX.characters(. To help us out, you can send, 103)
SAX.startElement(a, href='mailto:thedaredevil@bp6.com')
SAX.characters(thedaredevil@bp6.com, 20)
SAX.endElement(a)
SAX.characters(. (The 
            topic bei, 186)
SAX.startElement(br)
SAX.endElement(br)
SAX.startElement(br)
SAX.endElement(br)
SAX.characters(Okay, that's all for now., 25)
SAX.startElement(br)
SAX.endElement(br)
SAX.startElement(br)
SAX.endElement(br)
SAX.characters(The 
            &ETH;&ETH;., 23)
SAX.endElement(font)
SAX.startElement(br)
SAX.endElement(br)
SAX.startElement(br)
SAX.endElement(br)
SAX.startElement(a, name='newsitem963619505,3764,')
SAX.endElement(a)
SAX.characters(
            , 14)
SAX.startElement(table, bgcolor='#003399', width='100%')
SAX.characters(
              , 16)
SAX.startElement(tbody)
SAX.characters(
              , 16)
SAX.startElement(tr)
SAX.characters(
                , 18)
SAX.startElement(td)
SAX.startElement(font, color='#ffffff', face='Verdana,arial', size='2')
SAX.startElement(b)
SAX.characters(Friday, 
                  Ju, 41)
SAX.endElement(b)
SAX.endElement(font)
SAX.endElement(td)
SAX.endElement(tr)
SAX.endElement(tbody)
SAX.endElement(table)
SAX.startElement(br)
SAX.endElement(br)
SAX.comment(<hr noshade width=100%>)
SAX.startElement(b)
SAX.startElement(u)
SAX.startElement(font, color='#003366', face='Verdana, Arial', size='2')
SAX.characters(Hey 
            There!, 24)
SAX.endElement(font)
SAX.endElement(u)
SAX.endElement(b)
SAX.startElement(br)
SAX.endElement(br)
SAX.startElement(font, color='#0066cc', face='Arial', size='1')
SAX.startElement(small)
SAX.characters(Posted by , 10)
SAX.startElement(a, class='nav', href='mailto:killz@i82hq.com')
SAX.characters(DareDevil, 9)
SAX.endElement(a)
SAX.characters( @ 5:05PM 
            PDT, 27)
SAX.endElement(small)
SAX.characters(&nbsp;, 2)
SAX.characters( , 1)
SAX.startElement(a, href='http://bp6.gamesquad.net/news/963619505,3764,.html')
SAX.startElement(img, border='0', src='doc3_files/comments.gif')
SAX.endElement(img)
SAX.characters(7 comments, 10)
SAX.endElement(a)
SAX.characters( 
            , 15)
SAX.characters(&nbsp;, 2)
SAX.characters(|, 1)
SAX.characters(&nbsp;, 2)
SAX.startElement(a, href='http://bp6.gamesquad.net/#news_top')
SAX.characters(top, 3)
SAX.endElement(a)
SAX.endElement(font)
SAX.characters( , 1)
SAX.startElement(br)
SAX.endElement(br)
SAX.startElement(font, color='black', face='Arial', size='2')
SAX.characters(Hey guys, just wanted to intro, 312)
SAX.startElement(br)
SAX.endElement(br)
SAX.startElement(br)
SAX.endElement(br)
SAX.characters(My e-mail address is , 21)
SAX.startElement(a, href='mailto:killz@i82hq.com')
SAX.characters(killz@i82hq.com, 15)
SAX.endElement(a)
SAX.startElement(br)
SAX.endElement(br)
SAX.startElement(br)
SAX.endElement(br)
SAX.characters(Ciao for 
            now., 27)
SAX.startElement(br)
SAX.endElement(br)
SAX.startElement(br)
SAX.endElement(br)
SAX.characters(The &ETH;&ETH;., 9)
SAX.endElement(font)
SAX.startElement(br)
SAX.endElement(br)
SAX.startElement(br)
SAX.endElement(br)
SAX.characters(
            , 14)
SAX.endElement(font)
SAX.startElement(center)
SAX.startElement(iframe, frameborder='0', height='60', marginheight='0', marginwidth='0', noresize, scrolling='no', src='doc3_files/ad_iframe.htm', width='468')
SAX.startElement(a, href='http://ads.adflight.com/go_static.asp?asid=7708', target='_top')
SAX.error: htmlParseEntityRef: expecting ';'
SAX.error: htmlParseEntityRef: expecting ';'
SAX.startElement(img, width='468', height='60', border='0', alt='Advertisement', src='http://ads.adflight.com/ad_static.asp?pid=2097&amp;sid=1881&amp;asid=7708')
SAX.endElement(img)
SAX.endElement(a)
SAX.endElement(iframe)
SAX.endElement(center)
SAX.error: Unexpected end tag : li
SAX.error: Unexpected end tag : font
SAX.endElement(td)
SAX.endElement(tr)
SAX.endElement(tbody)
SAX.endElement(table)
SAX.endElement(center)
SAX.error: Unexpected end tag : p
SAX.endElement(td)
SAX.characters(
    , 6)
SAX.startElement(td, bgcolor='silver', valign='top', width='10%')
SAX.characters(
      , 8)
SAX.startElement(center)
SAX.characters(
      , 8)
SAX.startElement(p)
SAX.characters(
      , 8)
SAX.endElement(p)
SAX.startElement(table, bgcolor='silver', border='0', cellpadding='0', cellspacing='0', width='100%')
SAX.characters(
        , 10)
SAX.startElement(tbody)
SAX.characters(
        , 10)
SAX.startElement(tr)
SAX.characters(
          , 12)
SAX.startElement(td, colstart='1')
SAX.characters(
            , 14)
SAX.startElement(center)
SAX.comment(	<FORM ACTION="/cgi-bin/subscribe.pl" METHOD="POST" ENCTYPE="application/x-www-form-urlencoded">
						<IMG SRC="/images/spacer.gif" WIDTH="111" HEIGHT="1"><BR>
						<P><B><FONT SIZE="2" COLOR="#000066" FACE="Verdana">Newsletter</FONT></B><FONT SIZE="1" FACE="Verdana"><BR>
						<INPUT TYPE="TEXT" NAME="email" SIZE="10" VALUE="ur@email.com"><BR>
						<INPUT TYPE="HIDDEN" NAME="subscribe" SIZE="-1" VALUE="subscribe"><INPUT TYPE="IMAGE" SRC="/images/subscribe.gif" WIDTH="80"
						HEIGHT="27" ALIGN="BOTTOM" BORDER="0"></FONT>
						</FORM> )
SAX.characters(
            , 14)
SAX.startElement(form, action='http://bp6.gamesquad.net/cgi-bin/news/viewnews.cgi?emaillist', method='post')
SAX.startElement(img, height='1', src='doc3_files/spacer.gif', width='111')
SAX.endElement(img)
SAX.startElement(br)
SAX.endElement(br)
SAX.startElement(font, size='1')
SAX.characters(Newsletter, 10)
SAX.startElement(br)
SAX.endElement(br)
SAX.startElement(input, name='npemail', size='13', value='e-mail addr.')
SAX.endElement(input)
SAX.startElement(br)
SAX.endElement(br)
SAX.startElement(input, name='npsubscribe', style='BACKGROUND-COLOR: #000000; COLOR: #ffffff; FONT-FAMILY: Verdana; FONT-SIZE: xx-small; FONT-WEIGHT: bold', type='submit', value='Subscribe')
SAX.endElement(input)
SAX.startElement(br)
SAX.endElement(br)
SAX.comment( <input type="submit" name="npunsubscribe" value="Unsubscribe" style="font-size: xx-small; font-family: Verdana; font-weight: bold; color: #ffffff; background-color: #000000;"> )
SAX.endElement(font)
SAX.endElement(form)
SAX.startElement(font, size='1')
SAX.characters(
            , 14)
SAX.startElement(form, action='http://bp6.gamesquad.net/cgi-bin/news/viewnews.cgi?search', method='post')
SAX.characters(Search news, 11)
SAX.startElement(br)
SAX.endElement(br)
SAX.startElement(input, name='searchstring', size='13')
SAX.endElement(input)
SAX.startElement(br)
SAX.endElement(br)
SAX.startElement(input, name='submit', style='BACKGROUND-COLOR: #000000; COLOR: #ffffff; FONT-FAMILY: Verdana; FONT-SIZE: xx-small; FONT-WEIGHT: bold', type='submit', value='Submit')
SAX.endElement(input)
SAX.startElement(br)
SAX.endElement(br)
SAX.startElement(a, href='http://bp6.gamesquad.net/cgi-bin/news/viewnews.cgi?newsall')
SAX.characters(News 
            archive, 26)
SAX.endElement(a)
SAX.endElement(form)
SAX.endElement(font)
SAX.characters( , 1)
SAX.error: Unexpected end tag : form
SAX.endElement(center)
SAX.endElement(td)
SAX.endElement(tr)
SAX.endElement(tbody)
SAX.endElement(table)
SAX.comment(				<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="0" WIDTH="100%" BGCOLOR="silver">
					<TR>
						<TD WIDTH="100%">
							<P ALIGN="CENTER"><A HREF="http://www.free56k.com" target="_blank"><IMG SRC="/images/free56k.gif" WIDTH="100" HEIGHT="49"
							ALIGN="BOTTOM" BORDER="0"></A>
						</TD>
					</TR>
				</TABLE> 
)
SAX.characters(
      , 8)
SAX.startElement(table, bgcolor='silver', border='0', cellpadding='0', cellspacing='0', width='100%')
SAX.characters(
        , 10)
SAX.startElement(tbody)
SAX.characters(
        , 10)
SAX.startElement(tr)
SAX.characters(
          , 12)
SAX.startElement(td, align='middle', width='100%')
SAX.comment( BEGIN GoTo.com Search Box )
SAX.characters(
            , 14)
SAX.startElement(script, language='javascript', type='text/javascript')
SAX.cdata(
							, 9)
SAX.comment(
							if ((parseInt(navigator.appVersion) >= 3)
							&& (navigator.appName != "Netscape")) {
							document.write("<IFRAME marginheight=0 frameborder=0 ");
							document.write("marginwidth=0 scrolling=no width=100 height");
							document.write("=90 ");
							document.write("SRC=http://www.goto.com/d/ssn/dynconsole/?t");
							document.write("ype=html&size=100x90&url=http://www.goto.co");
							document.write("m/d/search/ssn/&target=_blank&Partner=SSN80");
							document.write("42DF8478957377></IFRAME>");
							} else if ((parseInt(navigator.appVersion) > 3)
							&& (navigator.appName == "Netscape")) {
							document.write("<SCRIPT language=javascript type=text/javas");
							document.write("cript ");
							document.write("SRC=http://www.goto.com/d/ssn/dynconsole/?t");
							document.write("ype=js&size=100x90&url=http://www.goto.com/");
							document.write("d/search/ssn/&target=_blank&Partner=SSN8042");
							document.write("DF8478957377></SC");
							document.write("RIPT>");
							} else {
							document.write("<A TARGET=_blank ");
							document.write("HREF=http://www.goto.com/d/search/ssn/?from");
							document.write("GIF=true>");
							document.write("<IMG ismap ");
							document.write("SRC=http://www.goto.com/d/ssn/dynconsole/?t");
							document.write("ype=gif&size=100x90></A>");
							}
							// )
SAX.cdata(
							, 9)
SAX.endElement(script)
SAX.characters(
            , 14)
SAX.startElement(b)
SAX.startElement(noscript)
SAX.endElement(noscript)
SAX.endElement(b)
SAX.startElement(a, href='http://www.goto.com/d/search/ssn/?fromGIF=true', target='_blank')
SAX.startElement(img, align='bottom', border='0', height='90', ismap, src='doc3_files/100x90.gif', width='100')
SAX.endElement(img)
SAX.endElement(a)
SAX.startElement(b)
SAX.startElement(a, href='http://www.goto.com/d/search/ssn/?fromGIF=true', target='_blank')
SAX.characters( 
            , 15)
SAX.endElement(a)
SAX.error: Unexpected end tag : a
SAX.endElement(b)
SAX.startElement(b)
SAX.error: Unexpected end tag : noscript
SAX.endElement(b)
SAX.startElement(b)
SAX.comment( END GoTo.com Search Box )
SAX.endElement(b)
SAX.comment( Pricewatch Search Box )
SAX.characters(
            , 14)
SAX.startElement(form, action='http://www.pricewatch.com/search/search.asp', method='get', target='_Blank')
SAX.characters(
            , 14)
SAX.startElement(center)
SAX.characters(
            , 14)
SAX.startElement(p)
SAX.startElement(b)
SAX.startElement(font, color='white', face='ARIAL, HELVETICA', size='1')
SAX.characters(PC Price 
            Search, 29)
SAX.startElement(br)
SAX.endElement(br)
SAX.endElement(font)
SAX.endElement(b)
SAX.startElement(input, maxlength='30', name='criteria', size='10')
SAX.endElement(input)
SAX.startElement(br)
SAX.endElement(br)
SAX.startElement(input, name='submit', style='BACKGROUND-COLOR: #000000; COLOR: #ffffff; FONT-FAMILY: Verdana; FONT-SIZE: xx-small; FONT-WEIGHT: bold', type='submit', value='Search')
SAX.endElement(input)
SAX.characters( 
            , 15)
SAX.endElement(p)
SAX.error: Opening and ending tag mismatch: form and center
SAX.endElement(center)
SAX.endElement(form)
SAX.comment( Pricewatch Search Box )
SAX.startElement(a, href='http://www.puicorp.com/bp6specials.htm', target='_BLANK')
SAX.startElement(img, src='doc3_files/puibp6.gif')
SAX.endElement(img)
SAX.endElement(a)
SAX.startElement(br)
SAX.endElement(br)
SAX.startElement(br)
SAX.endElement(br)
SAX.startElement(br)
SAX.endElement(br)
SAX.startElement(br)
SAX.endElement(br)
SAX.startElement(a, href='http://store.yahoo.com/dunamis-site/maxtor.html', target='_BLANK')
SAX.startElement(img, alt='BP6.com Special - Enter CODE: BP6-hd in the order (notes) to receive a discount', src='doc3_files/hd5.gif')
SAX.endElement(img)
SAX.startElement(font, size='1')
SAX.startElement(br)
SAX.endElement(br)
SAX.characters(BP6.COM 
            Special, 29)
SAX.startElement(br)
SAX.endElement(br)
SAX.characters(Code:BP6-hd, 11)
SAX.endElement(font)
SAX.endElement(a)
SAX.characters( , 1)
SAX.error: Unexpected end tag : p
SAX.error: Opening and ending tag mismatch: center and td
SAX.endElement(td)
SAX.endElement(tr)
SAX.endElement(tbody)
SAX.endElement(table)
SAX.characters(
      , 8)
SAX.startElement(table, bgcolor='silver', border='0', cellpadding='0', cellspacing='0', height='100%', width='100%')
SAX.characters(
        , 10)
SAX.startElement(tbody)
SAX.characters(
        , 10)
SAX.startElement(tr)
SAX.characters(
          , 12)
SAX.startElement(td, width='100%')
SAX.characters(&nbsp;, 2)
SAX.endElement(td)
SAX.endElement(tr)
SAX.endElement(tbody)
SAX.endElement(table)
SAX.error: Unexpected end tag : p
SAX.endElement(center)
SAX.endElement(td)
SAX.endElement(tr)
SAX.endElement(tbody)
SAX.endElement(table)
SAX.comment(	</TABLE>)
SAX.characters(
, 2)
SAX.startElement(center)
SAX.endElement(center)
SAX.error: Unexpected end tag : td
SAX.error: Unexpected end tag : tr
SAX.startElement(tr)
SAX.startElement(td, colspan='3', valign='TOP', height='70')
SAX.characters(&nbsp;, 2)
SAX.endElement(td)
SAX.characters( , 1)
SAX.endElement(tr)
SAX.error: Unexpected end tag : table
SAX.characters(
, 2)
SAX.startElement(table, border='0', width='780')
SAX.characters(
  , 4)
SAX.startElement(tbody)
SAX.characters(
  , 4)
SAX.startElement(tr)
SAX.characters(
    , 6)
SAX.startElement(td, width='780')
SAX.characters(
      , 8)
SAX.startElement(p, align='center')
SAX.startElement(font, color='#999999', face='verdana,arial', size='1')
SAX.characters(Copyright 
      &copy;1999-2, 59)
SAX.startElement(br)
SAX.endElement(br)
SAX.characters(Got news? Send it to , 21)
SAX.endElement(font)
SAX.startElement(a, href='mailto:tim@bp6.com')
SAX.startElement(font, color='white', face='Verdana', size='1')
SAX.characters(Tim, 3)
SAX.endElement(font)
SAX.endElement(a)
SAX.characters( , 1)
SAX.endElement(p)
SAX.endElement(td)
SAX.endElement(tr)
SAX.comment(	<TR>		<TD WIDTH="780">			<P ALIGN="CENTER"><FONT SIZE="1" COLOR="#999999" FACE="Verdana,arial">Site design by Tim Brinkley</FONT>		</TD>	</TR> )
SAX.endElement(tbody)
SAX.endElement(table)
SAX.endElement(div)
SAX.ignorableWhitespace(
, 2)
SAX.startElement(script)
SAX.cdata( window.open=NS_ActualOpen; , 28)
SAX.endElement(script)
SAX.ignorableWhitespace(
, 2)
SAX.endElement(body)
SAX.endElement(html)
SAX.ignorableWhitespace(
, 2)
SAX.endDocument()
