layer at (0,0) size 1518x3166
  RenderView at (0,0) size 785x585
layer at (0,0) size 785x3166
  RenderBlock {HTML} at (0,0) size 785x3166
    RenderBody {BODY} at (8,8) size 769x3142
      RenderBlock (anonymous) at (0,0) size 769x36
        RenderText {#text} at (0,0) size 762x36
          text run at (0,0) width 762: "In all of the examples, you should be able to see blue and green rectangles that spill way out of their containing blocks."
          text run at (0,18) width 612: "They should be 100px tall and not overlap one another at all. They should be stacked vertically."
      RenderBlock {DIV} at (0,52) size 720x240 [border: (10px solid #000000)]
        RenderText {#text} at (10,10) size 311x18
          text run at (10,10) width 311: "You should see blue and green rectangles below."
        RenderBR {BR} at (320,24) size 1x0
        RenderBlock (floating) {DIV} at (10,28) size 1500x100 [bgcolor=#0000FF]
        RenderText {#text} at (0,0) size 0x0
        RenderBlock (floating) {DIV} at (10,128) size 1500x100 [bgcolor=#008000]
        RenderText {#text} at (0,0) size 0x0
      RenderBlock {DIV} at (0,308) size 720x240 [border: (10px solid #000000)]
        RenderText {#text} at (10,10) size 160x18
          text run at (10,10) width 160: "You should see blue and "
        RenderBlock (floating) {DIV} at (10,28) size 1500x100 [bgcolor=#0000FF]
        RenderText {#text} at (0,0) size 0x0
        RenderBlock (floating) {DIV} at (10,128) size 1500x100 [bgcolor=#008000]
        RenderText {#text} at (169,10) size 152x18
          text run at (169,10) width 152: "green rectangles below."
      RenderBlock {DIV} at (0,564) size 720x240 [border: (10px solid #000000)]
        RenderBlock (floating) {DIV} at (10,10) size 1500x100 [bgcolor=#0000FF]
        RenderBlock (floating) {DIV} at (10,110) size 1500x100 [bgcolor=#008000]
        RenderBR {BR} at (1510,10) size 0x18
        RenderText {#text} at (10,210) size 311x18
          text run at (10,210) width 311: "You should see blue and green rectangles above."
      RenderBlock {DIV} at (0,820) size 720x240 [border: (10px solid #000000)]
        RenderBlock (floating) {DIV} at (10,10) size 1500x100 [bgcolor=#0000FF]
        RenderBlock (floating) {DIV} at (10,110) size 1500x100 [bgcolor=#008000]
        RenderText {#text} at (10,210) size 311x18
          text run at (10,210) width 311: "You should see blue and green rectangles above."
      RenderBlock {DIV} at (0,1076) size 720x240 [border: (10px solid #000000)]
        RenderBlock (floating) {DIV} at (10,10) size 1500x100 [bgcolor=#0000FF]
        RenderText {#text} at (10,110) size 284x18
          text run at (10,110) width 284: "You should see blue above and green below."
        RenderBlock (floating) {DIV} at (10,128) size 1500x100 [bgcolor=#008000]
        RenderText {#text} at (0,0) size 0x0
      RenderBlock {DIV} at (0,1332) size 720x240 [border: (10px solid #000000)]
        RenderBlock (floating) {DIV} at (10,10) size 1500x100 [bgcolor=#0000FF]
        RenderText {#text} at (10,110) size 284x18
          text run at (10,110) width 284: "You should see blue above and green below."
        RenderBR {BR} at (293,124) size 1x0
        RenderBlock (floating) {DIV} at (10,128) size 1500x100 [bgcolor=#008000]
        RenderText {#text} at (0,0) size 0x0
      RenderBlock (anonymous) at (0,1588) size 769x18
        RenderText {#text} at (0,0) size 595x18
          text run at (0,0) width 595: "The next examples should have blue and green rectangles that snugly fit without spilling out."
      RenderBlock {DIV} at (0,1622) size 720x240 [border: (10px solid #000000)]
        RenderText {#text} at (10,10) size 311x18
          text run at (10,10) width 311: "You should see blue and green rectangles below."
        RenderBR {BR} at (320,24) size 1x0
        RenderBlock (floating) {DIV} at (10,28) size 698x100 [bgcolor=#0000FF]
        RenderText {#text} at (0,0) size 0x0
        RenderBlock (floating) {DIV} at (10,128) size 698x100 [bgcolor=#008000]
        RenderText {#text} at (0,0) size 0x0
      RenderBlock {DIV} at (0,1878) size 720x240 [border: (10px solid #000000)]
        RenderText {#text} at (10,10) size 311x18
          text run at (10,10) width 311: "You should see blue and green rectangles below."
        RenderBlock (floating) {DIV} at (10,28) size 698x100 [bgcolor=#0000FF]
        RenderText {#text} at (0,0) size 0x0
        RenderBlock (floating) {DIV} at (10,128) size 698x100 [bgcolor=#008000]
        RenderText {#text} at (0,0) size 0x0
      RenderBlock {DIV} at (0,2134) size 720x240 [border: (10px solid #000000)]
        RenderBlock (floating) {DIV} at (10,10) size 698x100 [bgcolor=#0000FF]
        RenderBlock (floating) {DIV} at (10,110) size 698x100 [bgcolor=#008000]
        RenderBR {BR} at (708,10) size 0x18
        RenderText {#text} at (10,210) size 311x18
          text run at (10,210) width 311: "You should see blue and green rectangles above."
      RenderBlock {DIV} at (0,2390) size 720x240 [border: (10px solid #000000)]
        RenderBlock (floating) {DIV} at (10,10) size 698x100 [bgcolor=#0000FF]
        RenderBlock (floating) {DIV} at (10,110) size 698x100 [bgcolor=#008000]
        RenderText {#text} at (10,210) size 311x18
          text run at (10,210) width 311: "You should see blue and green rectangles above."
      RenderBlock {DIV} at (0,2646) size 720x240 [border: (10px solid #000000)]
        RenderBlock (floating) {DIV} at (10,10) size 698x100 [bgcolor=#0000FF]
        RenderText {#text} at (10,110) size 284x18
          text run at (10,110) width 284: "You should see blue above and green below."
        RenderBlock (floating) {DIV} at (10,128) size 698x100 [bgcolor=#008000]
        RenderText {#text} at (0,0) size 0x0
      RenderBlock {DIV} at (0,2902) size 720x240 [border: (10px solid #000000)]
        RenderBlock (floating) {DIV} at (10,10) size 698x100 [bgcolor=#0000FF]
        RenderText {#text} at (10,110) size 284x18
          text run at (10,110) width 284: "You should see blue above and green below."
        RenderBR {BR} at (293,124) size 1x0
        RenderBlock (floating) {DIV} at (10,128) size 698x100 [bgcolor=#008000]
        RenderText {#text} at (0,0) size 0x0
