layer at (0,0) size 800x600
  RenderView at (0,0) size 800x600
layer at (0,0) size 800x600
  RenderSVGRoot {svg} at (0,0) size 800x600
    RenderSVGContainer {g} at (28,8) size 761x490
      RenderSVGText {text} at (25,5) size 432x19 contains 1 chunk(s)
        RenderSVGInlineText {#text} at (0,0) size 432x19
          chunk 1 text run 1 at (25.00,20.00) startOffset 0 endOffset 60 width 431.40: "Basics of tspan: changing visual properties and positioning."
      RenderSVGContainer {g} at (78,81) size 523x134
        RenderSVGText {text} at (74,49) size 164x19 contains 1 chunk(s)
          RenderSVGInlineText {#text} at (0,0) size 57x19
            chunk 1 text run 1 at (74.00,63.75) startOffset 0 endOffset 7 width 57.00: "You are"
          RenderSVGTSpan {tspan} at (0,0) size 35x19
            RenderSVGInlineText {#text} at (57,0) size 35x19
              chunk 1 text run 1 at (131.00,63.75) startOffset 0 endOffset 5 width 34.20: " not "
          RenderSVGInlineText {#text} at (91,0) size 73x19
            chunk 1 text run 1 at (165.20,63.75) startOffset 0 endOffset 9 width 72.60: "a banana."
        RenderSVGRect {rect} at (78,122) size 520x92 [stroke={[type=SOLID] [color=#000000]}] [x=47.50] [y=74.25] [width=310.50] [height=53.50]
        RenderSVGText {text} at (65,76) size 216x19 contains 1 chunk(s)
          RenderSVGInlineText {#text} at (0,0) size 216x19
            chunk 1 text run 1 at (65.25,90.75) startOffset 0 endOffset 29 width 215.40: "Text: \"You are not a banana.\""
        RenderSVGText {text} at (65,93) size 296x19 contains 1 chunk(s)
          RenderSVGInlineText {#text} at (0,0) size 296x19
            chunk 1 text run 1 at (65.25,108.00) startOffset 0 endOffset 43 width 295.20: "'tspan' changes visual attributes of \"not\","
        RenderSVGText {text} at (65,110) size 88x19 contains 1 chunk(s)
          RenderSVGInlineText {#text} at (0,0) size 87x19
            chunk 1 text run 1 at (65.25,125.25) startOffset 0 endOffset 13 width 87.00: "to red, bold."
      RenderSVGContainer {g} at (374,213) size 415x176
        RenderSVGText {text} at (257,128) size 181x44 contains 1 chunk(s)
          RenderSVGInlineText {#text} at (0,10) size 56x19
            chunk 1 text run 1 at (257.50,153.75) startOffset 0 endOffset 7 width 55.80: "But you"
          RenderSVGTSpan {tspan} at (0,0) size 26x19
            RenderSVGInlineText {#text} at (87,0) size 25x19
              chunk 1 text run 1 at (345.30,143.00) startOffset 0 endOffset 3 width 24.60: "are"
          RenderSVGTSpan {tspan} at (0,0) size 69x19
            RenderSVGInlineText {#text} at (112,25) size 68x19
              chunk 1 text run 1 at (369.90,168.50) startOffset 0 endOffset 9 width 67.80: " a peach!"
        RenderSVGRect {rect} at (374,297) size 411x92 [stroke={[type=SOLID] [color=#000000]}] [x=225.00] [y=179.00] [width=245.50] [height=53.50]
        RenderSVGText {text} at (238,180) size 206x19 contains 1 chunk(s)
          RenderSVGInlineText {#text} at (0,0) size 206x19
            chunk 1 text run 1 at (238.00,195.00) startOffset 0 endOffset 28 width 205.20: "Text: \"But you are a peach!\""
        RenderSVGText {text} at (238,197) size 236x19 contains 1 chunk(s)
          RenderSVGInlineText {#text} at (0,0) size 236x19
            chunk 1 text run 1 at (238.00,212.25) startOffset 0 endOffset 34 width 235.20: "Using dx,dy, 'tspan' raises \"are\","
        RenderSVGText {text} at (238,214) size 178x19 contains 1 chunk(s)
          RenderSVGInlineText {#text} at (0,0) size 178x19
            chunk 1 text run 1 at (238.00,229.50) startOffset 0 endOffset 25 width 177.60: "'tspan' lowers \"a peach!\""
      RenderSVGContainer {g} at (28,308) size 563x190
        RenderSVGText {text} at (35,185) size 146x49 contains 1 chunk(s)
          RenderSVGTSpan {tspan} at (0,0) size 146x19
            RenderSVGInlineText {#text} at (0,0) size 146x19
              chunk 1 text run 1 at (35.00,200.00) startOffset 0 endOffset 1 width 11.40: "C"
              chunk 1 text run 1 at (53.75,200.00) startOffset 0 endOffset 1 width 9.00: "u"
              chunk 1 text run 1 at (72.50,200.00) startOffset 0 endOffset 1 width 4.80: "t"
              chunk 1 text run 1 at (91.25,200.00) startOffset 0 endOffset 1 width 9.00: "e"
              chunk 1 text run 1 at (110.50,200.00) startOffset 0 endOffset 1 width 4.80: " "
              chunk 1 text run 1 at (128.75,200.00) startOffset 0 endOffset 1 width 9.00: "a"
              chunk 1 text run 1 at (147.50,200.00) startOffset 0 endOffset 1 width 9.00: "n"
              chunk 1 text run 1 at (166.25,200.00) startOffset 0 endOffset 2 width 13.80: "d "
          RenderSVGInlineText {#text} at (0,0) size 0x0
          RenderSVGTSpan {tspan} at (0,0) size 89x19
            RenderSVGInlineText {#text} at (28,30) size 89x19
              chunk 1 text run 1 at (63.13,230.50) startOffset 0 endOffset 1 width 4.80: "f"
              chunk 1 text run 1 at (81.88,230.50) startOffset 0 endOffset 1 width 9.00: "u"
              chunk 1 text run 1 at (100.63,230.50) startOffset 0 endOffset 1 width 8.40: "z"
              chunk 1 text run 1 at (119.38,230.50) startOffset 0 endOffset 1 width 8.40: "z"
              chunk 1 text run 1 at (138.13,230.50) startOffset 0 endOffset 2 width 13.20: "y."
          RenderSVGInlineText {#text} at (0,0) size 0x0
        RenderSVGRect {rect} at (28,407) size 562x91 [stroke={[type=SOLID] [color=#000000]}] [x=17.50] [y=244.75] [width=335.50] [height=53.50]
        RenderSVGText {text} at (25,243) size 169x19 contains 1 chunk(s)
          RenderSVGInlineText {#text} at (0,0) size 168x19
            chunk 1 text run 1 at (25.25,258.00) startOffset 0 endOffset 23 width 168.00: "Text: \"Cute and fuzzy.\""
        RenderSVGText {text} at (25,260) size 330x19 contains 1 chunk(s)
          RenderSVGInlineText {#text} at (0,0) size 329x19
            chunk 1 text run 1 at (25.25,275.25) startOffset 0 endOffset 45 width 328.80: "'tspan' char-by-char placement of \"Cute and\","
        RenderSVGText {text} at (25,277) size 269x19 contains 1 chunk(s)
          RenderSVGInlineText {#text} at (0,0) size 269x19
            chunk 1 text run 1 at (25.25,292.50) startOffset 0 endOffset 39 width 268.20: "'tspan' char-by-char \"fuzzy\", below it."
    RenderSVGText {text} at (10,303) size 269x48 contains 1 chunk(s)
      RenderSVGInlineText {#text} at (0,0) size 269x47
        chunk 1 text run 1 at (10.00,340.00) startOffset 0 endOffset 16 width 268.20: "$Revision: 1.7 $"
    RenderSVGRect {rect} at (0,0) size 800x600 [stroke={[type=SOLID] [color=#000000]}] [x=1.00] [y=1.00] [width=478.00] [height=358.00]
selection start: position 0 of child 0 {#text} of child 1 {text} of child 13 {g} of child 35 {svg} of document
selection end:   position 16 of child 0 {#text} of child 15 {text} of child 35 {svg} of document
