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 10x17 [color=#800000]
          RenderText at (0,0) size 10x17
            text run at (0,0) width 10: "T"
        RenderText {#text} at (10,0) size 345x17
          text run at (10,0) width 345: "he style declarations which apply to the text below are:"
      RenderBlock {PRE} at (0,34) size 769x105
        RenderText {#text} at (0,0) size 368x105
          text run at (0,0) width 224: "P:first-line {color: green;}"
          text run at (0,15) width 248: "P:first-letter {color: maroon;}"
          text run at (0,30) width 272: ".two:first-line {font-size: 200%;}"
          text run at (0,45) width 288: ".two:first-letter {font-size: 350%;}"
          text run at (0,60) width 312: "P.three:first-letter {font-size: 350%;}"
          text run at (0,75) width 368: "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 10x17 [color=#800000]
          RenderText at (0,0) size 10x17
            text run at (0,0) width 10: "T"
        RenderText {#text} at (10,0) size 764x53
          text run at (10,0) width 717: "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 43: "green. "
          text run at (43,18) width 511: "If this precise combination does not occur, then the user agent has failed this test. "
          text run at (554,18) width 210: "Remember that in order to ensure"
          text run at (0,36) width 449: "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 68x124 [color=#800000]
          RenderText at (0,2) size 68x124
            text run at (0,2) width 68: "T"
        RenderText {#text} at (68,73) size 751x109
          text run at (68,73) width 634: "he first letter of this paragraph, and only that one,"
          text run at (0,129) width 736: "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 299: "should be 200% bigger than normal and green. "
          text run at (299,147) width 452: "If this precise combination does not occur, then the user agent has failed"
          text run at (0,165) width 55: "this test. "
          text run at (55,165) width 663: "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 76x62 [color=#800000]
          RenderText at (0,1) size 76x62
            text run at (0,1) width 76: "\"W"
        RenderText {#text} at (76,37) size 765x80
          text run at (76,37) width 333: "e should check for quotation support,\" it was said. "
          text run at (408,37) width 355: "The first two characters in this paragraph-- a double-"
          text run at (0,64) width 683: "quote mark and a capital 'W'-- should be 350% bigger than the rest of the paragraph, and maroon (dark red). "
          text run at (683,64) width 81: "Note that the"
          text run at (0,82) width 765: "inclusion of both the quotation mark and the 'W' in the first-letter style is not required under CSS1, but it is recommended."
          text run at (0,100) width 450: "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 163x17
                RenderText {#text} at (4,4) size 163x17
                  text run at (4,4) width 163: "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 4x18
                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 10x17 [color=#800000]
                  RenderText at (0,0) size 10x17
                    text run at (0,0) width 10: "T"
                RenderText {#text} at (10,0) size 727x53
                  text run at (10,0) width 717: "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 43: "green. "
                  text run at (43,18) width 511: "If this precise combination does not occur, then the user agent has failed this test. "
                  text run at (554,18) width 165: "Remember that in order to"
                  text run at (0,36) width 494: "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 68x124 [color=#800000]
                  RenderText at (0,2) size 68x124
                    text run at (0,2) width 68: "T"
                RenderText {#text} at (68,73) size 736x127
                  text run at (68,73) width 634: "he first letter of this paragraph, and only that one,"
                  text run at (0,129) width 736: "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 299: "should be 200% bigger than normal and green. "
                  text run at (299,147) width 413: "If this precise combination does not occur, then the user agent has"
                  text run at (0,165) width 94: "failed this test. "
                  text run at (94,165) width 632: "Remember that in order to ensure a complete test, the paragraph must be displayed on more than one"
                  text run at (0,183) width 27: "line."
              RenderBlock {P} at (4,291) size 747x118
                RenderInline (generated) at (0,0) size 76x62 [color=#800000]
                  RenderText at (0,1) size 76x62
                    text run at (0,1) width 76: "\"W"
                RenderText {#text} at (76,37) size 739x80
                  text run at (76,37) width 333: "e should check for quotation support,\" it was said. "
                  text run at (408,37) width 301: "The first two characters in this paragraph-- a"
                  text run at (0,64) width 727: "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 739: "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 111: "is recommended. "
                  text run at (111,100) width 450: "In addition, the entire first line should be in a small-caps font and green."
