layer at (0,0) size 785x1030
  RenderView at (0,0) size 785x600
layer at (0,0) size 785x1030
  RenderBlock {HTML} at (0,0) size 785x1030
    RenderBody {BODY} at (8,8) size 769x1014 [bgcolor=#CCCCCC]
      RenderBlock {P} at (0,0) size 769x18
        RenderInline (generated) at (0,0) size 10x18 [color=#800000]
          RenderText at (0,0) size 10x18
            text run at (0,0) width 10: "T"
        RenderText {#text} at (9,0) size 354x18
          text run at (9,0) width 354: "he style declarations which apply to the text below are:"
      RenderBlock {PRE} at (0,34) size 769x105
        RenderText {#text} at (0,0) size 359x105
          text run at (0,0) width 219: "P:first-line {color: green;}"
          text run at (0,15) width 242: "P:first-letter {color: maroon;}"
          text run at (0,30) width 266: ".two:first-line {font-size: 200%;}"
          text run at (0,45) width 281: ".two:first-letter {font-size: 350%;}"
          text run at (0,60) width 305: "P.three:first-letter {font-size: 350%;}"
          text run at (0,75) width 359: "P.three:first-line {font-variant: small-caps;}"
          text run at (0,90) width 0: " "
      RenderBlock {HR} at (0,152) size 769x2 [border: (1px inset #000000)]
      RenderBlock {P} at (0,170) size 769x54
        RenderInline (generated) at (0,0) size 10x18 [color=#800000]
          RenderText at (0,0) size 10x18
            text run at (0,0) width 10: "T"
        RenderText {#text} at (9,0) size 743x54
          text run at (9,0) width 734: "he first letter of this paragraph, and only that one, should be maroon (dark red), while the entire first line should be"
          text run at (0,18) width 44: "green. "
          text run at (43,18) width 524: "If this precise combination does not occur, then the user agent has failed this test. "
          text run at (566,18) width 170: "Remember that in order to"
          text run at (0,36) width 505: "ensure a complete test, the paragraph must be displayed on more than one line."
      RenderBlock {P} at (0,240) size 769x183
        RenderInline (generated) at (0,0) size 69x129 [color=#800000]
          RenderText at (0,0) size 69x129
            text run at (0,0) width 69: "T"
        RenderText {#text} at (68,72) size 766x111
          text run at (68,72) width 633: "he first letter of this paragraph, and only that one,"
          text run at (0,129) width 753: "should be 350% bigger than the rest of the first line of this paragraph and maroon (dark red), while the entire first line"
          text run at (0,147) width 304: "should be 200% bigger than normal and green. "
          text run at (303,147) width 463: "If this precise combination does not occur, then the user agent has failed"
          text run at (0,165) width 58: "this test. "
          text run at (57,165) width 678: "Remember that in order to ensure a complete test, the paragraph must be displayed on more than one line."
      RenderBlock {P} at (0,439) size 769x118
        RenderInline (generated) at (0,0) size 76x64 [color=#800000]
          RenderText at (0,0) size 76x64
            text run at (0,0) width 76: "\"W"
        RenderText {#text} at (75,36) size 756x82
          text run at (75,36) width 336: "e should check for quotation support,\" it was said. "
          text run at (410,36) width 306: "The first two characters in this paragraph-- a"
          text run at (0,64) width 741: "double-quote mark and a capital 'W'-- should be 350% bigger than the rest of the paragraph, and maroon (dark red)."
          text run at (0,82) width 756: "Note that the inclusion of both the quotation mark and the 'W' in the first-letter style is not required under CSS1, but it"
          text run at (0,100) width 114: "is recommended. "
          text run at (113,100) width 462: "In addition, the entire first line should be in a small-caps font and green."
      RenderTable {TABLE} at (0,573) size 769x441 [border: (1px outset #808080)]
        RenderTableSection {TBODY} at (1,1) size 767x439
          RenderTableRow {TR} at (0,0) size 767x26
            RenderTableCell {TD} at (0,0) size 767x26 [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 767x413
            RenderTableCell {TD} at (0,219) 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 755x413 [border: (1px inset #808080)] [r=1 c=1 rs=1 cs=1]
              RenderBlock {P} at (4,4) size 747x54
                RenderInline (generated) at (0,0) size 10x18 [color=#800000]
                  RenderText at (0,0) size 10x18
                    text run at (0,0) width 10: "T"
                RenderText {#text} at (9,0) size 743x54
                  text run at (9,0) width 734: "he first letter of this paragraph, and only that one, should be maroon (dark red), while the entire first line should be"
                  text run at (0,18) width 44: "green. "
                  text run at (43,18) width 524: "If this precise combination does not occur, then the user agent has failed this test. "
                  text run at (566,18) width 170: "Remember that in order to"
                  text run at (0,36) width 505: "ensure a complete test, the paragraph must be displayed on more than one line."
              RenderBlock {P} at (4,74) size 747x201
                RenderInline (generated) at (0,0) size 69x129 [color=#800000]
                  RenderText at (0,0) size 69x129
                    text run at (0,0) width 69: "T"
                RenderText {#text} at (68,72) size 742x129
                  text run at (68,72) width 633: "he first letter of this paragraph, and only that one,"
                  text run at (0,129) width 725: "should be 350% bigger than the rest of the first line of this paragraph and maroon (dark red), while the entire first"
                  text run at (0,147) width 332: "line should be 200% bigger than normal and green. "
                  text run at (331,147) width 397: "If this precise combination does not occur, then the user agent"
                  text run at (0,165) width 124: "has failed this test. "
                  text run at (123,165) width 619: "Remember that in order to ensure a complete test, the paragraph must be displayed on more than"
                  text run at (0,183) width 56: "one line."
              RenderBlock {P} at (4,291) size 747x118
                RenderInline (generated) at (0,0) size 76x64 [color=#800000]
                  RenderText at (0,0) size 76x64
                    text run at (0,0) width 76: "\"W"
                RenderText {#text} at (75,36) size 743x82
                  text run at (75,36) width 336: "e should check for quotation support,\" it was said. "
                  text run at (410,36) width 306: "The first two characters in this paragraph-- a"
                  text run at (0,64) width 741: "double-quote mark and a capital 'W'-- should be 350% bigger than the rest of the paragraph, and maroon (dark red)."
                  text run at (0,82) width 743: "Note that the inclusion of both the quotation mark and the 'W' in the first-letter style is not required under CSS1, but"
                  text run at (0,100) width 127: "it is recommended. "
                  text run at (126,100) width 461: "In addition, the entire first line should be in a small-caps font and green."
