layer at (0,0) size 785x1342
  RenderView at (0,0) size 785x600
layer at (0,0) size 785x1342
  RenderBlock {HTML} at (0,0) size 785x1342
    RenderBody {BODY} at (8,8) size 769x1326 [bgcolor=#CCCCCC]
      RenderBlock {P} at (0,0) size 769x18
        RenderText {#text} at (0,0) size 355x17
          text run at (0,0) width 355: "The style declarations which apply to the text below are:"
      RenderBlock {PRE} at (0,34) size 769x45
        RenderText {#text} at (0,0) size 152x45
          text run at (0,0) width 152: ".one {width: 50px;}"
          text run at (152,0) width 0: " "
          text run at (0,15) width 144: ".two {width: 50%;}"
          text run at (144,15) width 0: " "
          text run at (0,30) width 152: "TABLE {width: 50%;}"
          text run at (152,30) width 0: " "
      RenderBlock {HR} at (0,92) size 769x2 [border: (1px inset #000000)]
      RenderBlock (anonymous) at (0,102) size 769x50
        RenderImage {IMG} at (0,0) size 50x50
        RenderText {#text} at (0,0) size 0x0
      RenderBlock {P} at (0,168) size 769x18
        RenderText {#text} at (0,0) size 287x17
          text run at (0,0) width 287: "The square above should be fifty pixels wide."
      RenderBlock (anonymous) at (0,202) size 769x385
        RenderImage {IMG} at (0,0) size 385x385
        RenderText {#text} at (0,0) size 0x0
      RenderBlock {P} at (0,603) size 769x18
        RenderText {#text} at (0,0) size 671x17
          text run at (0,0) width 671: "The square above should be half as wide as the image's parent element (either the BODY or the table cell)."
      RenderBlock {P} at (0,637) size 385x90
        RenderText {#text} at (0,0) size 382x71
          text run at (0,0) width 382: "This paragraph should be half the width of its parent element"
          text run at (0,18) width 379: "(either the BODY or the table, which should itself be half as"
          text run at (0,36) width 188: "wide as the BODY element). "
          text run at (188,36) width 178: "This is extra text included to"
          text run at (0,54) width 246: "ensure that this will be a fair test of the "
        RenderInline {CODE} at (0,0) size 40x15
          RenderText {#text} at (246,57) size 40x15
            text run at (246,57) width 40: "width"
        RenderText {#text} at (286,54) size 374x35
          text run at (286,54) width 57: " property"
          text run at (0,72) width 374: "without the need for the user to resize the viewing window."
      RenderTable {TABLE} at (0,743) size 385x583 [border: (1px outset #808080)]
        RenderTableSection {TBODY} at (1,1) size 383x581
          RenderTableRow {TR} at (0,0) size 383x26
            RenderTableCell {TD} at (0,0) size 383x26 [bgcolor=#C0C0C0] [border: (1px inset #808080)] [r=0 c=0 rs=1 cs=2]
              RenderInline {STRONG} at (0,0) size 163x17
                RenderText {#text} at (4,4) size 163x17
                  text run at (4,4) width 163: "TABLE Testing Section"
          RenderTableRow {TR} at (0,26) size 383x555
            RenderTableCell {TD} at (0,290) size 12x27 [bgcolor=#C0C0C0] [border: (1px inset #808080)] [r=1 c=0 rs=1 cs=1]
              RenderText {#text} at (4,4) size 4x18
                text run at (4,5) width 4: " "
            RenderTableCell {TD} at (12,26) size 371x555 [border: (1px inset #808080)] [r=1 c=1 rs=1 cs=1]
              RenderBlock (anonymous) at (4,4) size 363x50
                RenderImage {IMG} at (0,0) size 50x50
                RenderText {#text} at (0,0) size 0x0
              RenderBlock {P} at (4,70) size 363x18
                RenderText {#text} at (0,0) size 287x17
                  text run at (0,0) width 287: "The square above should be fifty pixels wide."
              RenderBlock (anonymous) at (4,104) size 363x181
                RenderImage {IMG} at (0,0) size 182x181
                RenderText {#text} at (0,0) size 0x0
              RenderBlock {P} at (4,301) size 363x36
                RenderText {#text} at (0,0) size 348x35
                  text run at (0,0) width 348: "The square above should be half as wide as the image's"
                  text run at (0,18) width 319: "parent element (either the BODY or the table cell)."
              RenderBlock {P} at (4,353) size 182x198
                RenderText {#text} at (0,0) size 177x161
                  text run at (0,0) width 160: "This paragraph should be"
                  text run at (0,18) width 165: "half the width of its parent"
                  text run at (0,36) width 167: "element (either the BODY"
                  text run at (0,54) width 163: "or the table, which should"
                  text run at (0,72) width 169: "itself be half as wide as the"
                  text run at (0,90) width 113: "BODY element). "
                  text run at (113,90) width 42: "This is"
                  text run at (0,108) width 177: "extra text included to ensure"
                  text run at (0,126) width 174: "that this will be a fair test of"
                  text run at (0,144) width 23: "the "
                RenderInline {CODE} at (0,0) size 40x15
                  RenderText {#text} at (23,147) size 40x15
                    text run at (23,147) width 40: "width"
                RenderText {#text} at (63,144) size 174x53
                  text run at (63,144) width 109: " property without"
                  text run at (0,162) width 144: "the need for the user to"
                  text run at (0,180) width 174: "resize the viewing window."
