layer at (0,0) size 785x877
  RenderView at (0,0) size 785x600
layer at (0,0) size 785x877
  RenderBlock {HTML} at (0,0) size 785x877
    RenderBody {BODY} at (8,8) size 769x861 [bgcolor=#CCCCCC]
      RenderBlock {P} at (0,0) size 769x18
        RenderText {#text} at (0,0) size 363x18
          text run at (0,0) width 363: "The style declarations which apply to the text below are:"
      RenderBlock {PRE} at (0,34) size 769x90
        RenderText {#text} at (0,0) size 453x90
          text run at (0,0) width 445: ".zero {background-color: silver; border-bottom-width: 0;}"
          text run at (0,15) width 422: ".one {border-bottom-width: 50px; border-style: solid;}"
          text run at (0,30) width 430: ".two {border-bottom-width: thick; border-style: solid;}"
          text run at (0,45) width 453: ".three {border-bottom-width: medium; border-style: solid;}"
          text run at (0,60) width 430: ".four {border-bottom-width: thin; border-style: solid;}"
          text run at (0,75) width 266: ".five {border-bottom-width: 25px;}"
      RenderBlock {HR} at (0,137) size 769x2 [border: (1px inset #000000)]
      RenderBlock {P} at (0,155) size 769x18
        RenderText {#text} at (0,0) size 160x18
          text run at (0,0) width 160: "(These will only work if "
        RenderInline {CODE} at (0,0) size 95x15
          RenderText {#text} at (159,2) size 95x15
            text run at (159,2) width 95: "border-style"
        RenderText {#text} at (253,0) size 92x18
          text run at (253,0) width 92: " is supported.)"
      RenderBlock {P} at (0,189) size 769x18 [bgcolor=#C0C0C0]
        RenderText {#text} at (0,0) size 208x18
          text run at (0,0) width 208: "This element has a class of zero."
      RenderBlock {P} at (0,223) size 769x71 [border: (3px solid #000000) (50px solid #000000) (3px solid #000000)]
        RenderText {#text} at (3,3) size 395x18
          text run at (3,3) width 395: "This element should have a bottom border width of 50 pixels."
      RenderBlock {P} at (0,310) size 769x26 [border: (3px solid #000000) (5px solid #000000) (3px solid #000000)]
        RenderText {#text} at (3,3) size 351x18
          text run at (3,3) width 351: "This element should have a thick bottom border width."
      RenderBlock {P} at (0,352) size 769x24 [border: (3px solid #000000)]
        RenderText {#text} at (3,3) size 372x18
          text run at (3,3) width 372: "This element should have a medium bottom border width."
      RenderBlock {P} at (0,392) size 769x22 [border: (3px solid #000000) (1px solid #000000) (3px solid #000000)]
        RenderText {#text} at (3,3) size 344x18
          text run at (3,3) width 344: "This element should have a thin bottom border width."
      RenderBlock {P} at (0,430) size 769x18
        RenderText {#text} at (0,0) size 545x18
          text run at (0,0) width 545: "This element should have no border and no extra \"padding\" on its bottom side, as no "
        RenderInline {CODE} at (0,0) size 95x15
          RenderText {#text} at (544,2) size 95x15
            text run at (544,2) width 95: "border-style"
        RenderText {#text} at (638,0) size 56x18
          text run at (638,0) width 56: " was set."
      RenderBlock {P} at (0,464) size 769x18 [bgcolor=#C0C0C0]
        RenderText {#text} at (0,0) size 208x18
          text run at (0,0) width 208: "This element has a class of zero."
      RenderTable {TABLE} at (0,498) size 716x363 [border: (1px outset #808080)]
        RenderTableSection {TBODY} at (1,1) size 714x361
          RenderTableRow {TR} at (0,0) size 714x26
            RenderTableCell {TD} at (0,0) size 714x26 [bgcolor=#C0C0C0] [border: (1px inset #808080)] [r=0 c=0 rs=1 cs=2]
              RenderInline {STRONG} at (0,0) size 161x18
                RenderText {#text} at (4,4) size 161x18
                  text run at (4,4) width 161: "TABLE Testing Section"
          RenderTableRow {TR} at (0,26) size 714x335
            RenderTableCell {TD} at (0,180) size 12x27 [bgcolor=#C0C0C0] [border: (1px inset #808080)] [r=1 c=0 rs=1 cs=1]
              RenderText {#text} at (4,4) size 4x19
                text run at (4,5) width 4: " "
            RenderTableCell {TD} at (12,26) size 702x335 [border: (1px inset #808080)] [r=1 c=1 rs=1 cs=1]
              RenderBlock {P} at (4,4) size 694x18
                RenderText {#text} at (0,0) size 160x18
                  text run at (0,0) width 160: "(These will only work if "
                RenderInline {CODE} at (0,0) size 95x15
                  RenderText {#text} at (159,2) size 95x15
                    text run at (159,2) width 95: "border-style"
                RenderText {#text} at (253,0) size 92x18
                  text run at (253,0) width 92: " is supported.)"
              RenderBlock {P} at (4,38) size 694x18 [bgcolor=#C0C0C0]
                RenderText {#text} at (0,0) size 208x18
                  text run at (0,0) width 208: "This element has a class of zero."
              RenderBlock {P} at (4,72) size 694x71 [border: (3px solid #000000) (50px solid #000000) (3px solid #000000)]
                RenderText {#text} at (3,3) size 395x18
                  text run at (3,3) width 395: "This element should have a bottom border width of 50 pixels."
              RenderBlock {P} at (4,159) size 694x26 [border: (3px solid #000000) (5px solid #000000) (3px solid #000000)]
                RenderText {#text} at (3,3) size 351x18
                  text run at (3,3) width 351: "This element should have a thick bottom border width."
              RenderBlock {P} at (4,201) size 694x24 [border: (3px solid #000000)]
                RenderText {#text} at (3,3) size 372x18
                  text run at (3,3) width 372: "This element should have a medium bottom border width."
              RenderBlock {P} at (4,241) size 694x22 [border: (3px solid #000000) (1px solid #000000) (3px solid #000000)]
                RenderText {#text} at (3,3) size 344x18
                  text run at (3,3) width 344: "This element should have a thin bottom border width."
              RenderBlock {P} at (4,279) size 694x18
                RenderText {#text} at (0,0) size 545x18
                  text run at (0,0) width 545: "This element should have no border and no extra \"padding\" on its bottom side, as no "
                RenderInline {CODE} at (0,0) size 95x15
                  RenderText {#text} at (544,2) size 95x15
                    text run at (544,2) width 95: "border-style"
                RenderText {#text} at (638,0) size 56x18
                  text run at (638,0) width 56: " was set."
              RenderBlock {P} at (4,313) size 694x18 [bgcolor=#C0C0C0]
                RenderText {#text} at (0,0) size 208x18
                  text run at (0,0) width 208: "This element has a class of zero."
