layer at (0,0) size 785x699
  RenderView at (0,0) size 785x600
layer at (0,0) size 785x699
  RenderBlock {HTML} at (0,0) size 785x699
    RenderBody {BODY} at (8,8) size 769x683 [bgcolor=#CCCCCC]
      RenderBlock {P} at (0,0) size 769x20
        RenderText {#text} at (0,0) size 337x19
          text run at (0,0) width 337: "The style declarations which apply to the text below are:"
      RenderBlock {PRE} at (0,36) size 769x64
        RenderText {#text} at (0,0) size 360x64
          text run at (0,0) width 224: "P:first-line {color: green;}"
          text run at (0,16) width 272: ".two:first-line {font-size: 200%;}"
          text run at (0,32) width 360: ".three:first-line {font-variant: small-caps;}"
          text run at (0,48) width 0: " "
      RenderBlock {HR} at (0,113) size 769x2 [border: (1px inset #000000)]
      RenderBlock {P} at (0,131) size 769x60
        RenderText {#text} at (0,0) size 758x59
          text run at (0,0) width 400: "The first line of this paragraph, and only that one, should be green. "
          text run at (400,0) width 335: "If this precise combination does not occur, then the user"
          text run at (0,20) width 149: "agent has failed this test. "
          text run at (149,20) width 609: "Remember that in order to ensure a complete test, the paragraph must be displayed on more than one"
          text run at (0,40) width 24: "line."
      RenderBlock {P} at (0,207) size 769x77
        RenderText {#text} at (0,0) size 759x76
          text run at (0,0) width 749: "The first line of this paragraph, and only that one, should be"
          text run at (0,37) width 205: "a larger font size as well as green. "
          text run at (205,37) width 488: "If this precise combination does not occur, then the user agent has failed this test. "
          text run at (693,37) width 66: "Remember"
          text run at (0,57) width 567: "that in order to ensure a complete test, the paragraph must be displayed on more than one line."
      RenderBlock {P} at (0,300) size 769x80
        RenderText {#text} at (0,0) size 761x59
          text run at (0,0) width 609: "The first line of this paragraph, and only that one, should be displayed in small-caps style. "
          text run at (609,0) width 152: "Thus, if the first line is"
          text run at (0,20) width 745: "not in small-caps style, OR if the entire paragraph turns out in small-caps, then the user agent has failed this test (although the"
          text run at (0,40) width 135: "problem might be that "
        RenderInline {CODE} at (0,0) size 80x16
          RenderText {#text} at (135,43) size 80x16
            text run at (135,43) width 80: "small-caps"
        RenderText {#text} at (215,40) size 750x39
          text run at (215,40) width 218: " is not supported by your browser). "
          text run at (433,40) width 317: "This is extra text included for the purposes of making"
          text run at (0,60) width 325: "the paragraph long enough to have more than one line."
      RenderTable {TABLE} at (0,396) size 769x287 [border: (1px outset #808080)]
        RenderTableSection {TBODY} at (1,1) size 767x285
          RenderTableRow {TR} at (0,0) size 767x28
            RenderTableCell {TD} at (0,0) size 767x28 [bgcolor=#C0C0C0] [border: (1px inset #808080)] [r=0 c=0 rs=1 cs=2]
              RenderInline {STRONG} at (0,0) size 159x19
                RenderText {#text} at (4,4) size 159x19
                  text run at (4,4) width 159: "TABLE Testing Section"
          RenderTableRow {TR} at (0,28) size 767x257
            RenderTableCell {TD} at (0,142) size 12x29 [bgcolor=#C0C0C0] [border: (1px inset #808080)] [r=1 c=0 rs=1 cs=1]
              RenderText {#text} at (4,4) size 4x20
                text run at (4,5) width 4: " "
            RenderTableCell {TD} at (12,28) size 755x257 [border: (1px inset #808080)] [r=1 c=1 rs=1 cs=1]
              RenderBlock {P} at (4,4) size 747x60
                RenderText {#text} at (0,0) size 735x59
                  text run at (0,0) width 400: "The first line of this paragraph, and only that one, should be green. "
                  text run at (400,0) width 335: "If this precise combination does not occur, then the user"
                  text run at (0,20) width 149: "agent has failed this test. "
                  text run at (149,20) width 583: "Remember that in order to ensure a complete test, the paragraph must be displayed on more than"
                  text run at (0,40) width 50: "one line."
              RenderBlock {P} at (4,80) size 747x77
                RenderText {#text} at (0,0) size 711x76
                  text run at (0,0) width 711: "The first line of this paragraph, and only that one, should"
                  text run at (0,37) width 224: "be a larger font size as well as green. "
                  text run at (224,37) width 484: "If this precise combination does not occur, then the user agent has failed this test."
                  text run at (0,57) width 637: "Remember that in order to ensure a complete test, the paragraph must be displayed on more than one line."
              RenderBlock {P} at (4,173) size 747x80
                RenderText {#text} at (0,0) size 718x59
                  text run at (0,0) width 609: "The first line of this paragraph, and only that one, should be displayed in small-caps style. "
                  text run at (609,0) width 109: "Thus, if the first"
                  text run at (0,20) width 701: "line is not in small-caps style, OR if the entire paragraph turns out in small-caps, then the user agent has failed this test"
                  text run at (0,40) width 216: "(although the problem might be that "
                RenderInline {CODE} at (0,0) size 80x16
                  RenderText {#text} at (216,43) size 80x16
                    text run at (216,43) width 80: "small-caps"
                RenderText {#text} at (296,40) size 709x39
                  text run at (296,40) width 218: " is not supported by your browser). "
                  text run at (514,40) width 195: "This is extra text included for the"
                  text run at (0,60) width 447: "purposes of making the paragraph long enough to have more than one line."
