aboutsummaryrefslogtreecommitdiff
path: root/test
diff options
context:
space:
mode:
authorN.N. <krzyszcz@users.sourceforge.net>2003-09-24 10:46:19 +0000
committerN.N. <krzyszcz@users.sourceforge.net>2003-09-24 10:46:19 +0000
commit9680b47879dfc58f884208f7abf2f945b3b41d25 (patch)
tree93eda19deb61daff60c533a3bbd1efe79e9cdc9b /test
parentedab184352cd14788a37c76dce147ac19f7464b4 (diff)
adding toxy project
svn path=/trunk/externals/miXed/; revision=1024
Diffstat (limited to 'test')
-rw-r--r--test/toxy/button-test.pd37
-rw-r--r--test/toxy/default.wid108
-rw-r--r--test/toxy/defaults-test.pd25
-rw-r--r--test/toxy/kb-test.pd17
-rw-r--r--test/toxy/listbox-test.pd18
-rw-r--r--test/toxy/pop1.wid10
-rw-r--r--test/toxy/pop2.wid8
-rw-r--r--test/toxy/popup-test.pd39
-rw-r--r--test/toxy/radio-test.pd50
-rw-r--r--test/toxy/scale-test.pd44
-rw-r--r--test/toxy/test1.tot301
-rw-r--r--test/toxy/tot-bulk.pd67
-rw-r--r--test/toxy/tot-cover.pd87
-rw-r--r--test/toxy/tot-files.pd29
-rw-r--r--test/toxy/tot-head.pd17
-rw-r--r--test/toxy/tot-monkey.pd50
-rw-r--r--test/toxy/tot-nomenu.pd12
-rw-r--r--test/toxy/tot-qlist.pd59
-rw-r--r--test/toxy/tot-query.pd62
-rw-r--r--test/toxy/tot-rstring.pd15
-rw-r--r--test/toxy/tot.ql186
-rw-r--r--test/toxy/tow-test.pd65
22 files changed, 1306 insertions, 0 deletions
diff --git a/test/toxy/button-test.pd b/test/toxy/button-test.pd
new file mode 100644
index 0000000..1f553dd
--- /dev/null
+++ b/test/toxy/button-test.pd
@@ -0,0 +1,37 @@
+#N canvas 106 44 636 366 12;
+#X obj 21 259 widget button b -bg red -activebackground yellow -text
+red -command .<.>;
+#X msg 130 162 -command .<.>;
+#X msg 48 295 debug;
+#X obj 21 324 tgl 15 0 empty empty empty 0 -6 0 8 -262144 -1 -1 0 1
+;
+#X obj 193 268 r t1;
+#X obj 193 324 tgl 15 0 empty empty empty 0 -6 0 8 -262144 -1 -1 0
+1;
+#X msg 45 74 -bg pink -text pink;
+#X msg 21 21 -bg red -text red;
+#X msg 34 47 -bg green -text green;
+#X msg 56 101 -bg gray -text "";
+#X msg 62 132 -activebackground \$1;
+#X msg 250 74 query tk_chooseColor;
+#X obj 250 101 tot .;
+#X msg 166 187 -command .<:t1 bang.>;
+#X msg 90 213 -command .(set c [tk_chooseColor] .: eval .<| "-bg" $c
+"-text" $c.>.);
+#X msg 68 186 -width \$1;
+#X floatatom 68 162 5 0 0 0 - - -;
+#X connect 0 0 3 0;
+#X connect 1 0 0 0;
+#X connect 2 0 0 0;
+#X connect 4 0 5 0;
+#X connect 6 0 0 0;
+#X connect 7 0 0 0;
+#X connect 8 0 0 0;
+#X connect 9 0 0 0;
+#X connect 10 0 0 0;
+#X connect 11 0 12 0;
+#X connect 12 0 10 0;
+#X connect 13 0 0 0;
+#X connect 14 0 0 0;
+#X connect 15 0 0 0;
+#X connect 16 0 15 0;
diff --git a/test/toxy/default.wid b/test/toxy/default.wid
new file mode 100644
index 0000000..e9a20a1
--- /dev/null
+++ b/test/toxy/default.wid
@@ -0,0 +1,108 @@
+# first the setup stuff (is this the right place for it?)
+
+# LATER ask for adding something of the sort to pd.tk:
+bind Canvas <1> {+focus %W}
+
+proc ::toxy::popup {path target remote entries args} {
+ eval {menu $path.pop} $args
+ set i 1
+ foreach e $entries {
+ $path.pop add command -label [lindex $e 0] \
+ -command [concat ::toxy::callback $target \
+ -text [lindex $e [expr {[llength $e] > 1}]] \; \
+ ::toxy::callback $remote $i]
+ incr i
+ }
+}
+
+proc ::toxy::kb {path target remote noctaves size} {
+ set lft [expr {round(5 * $size)}]
+ set top [expr {5 * $size}]
+ set bot [expr {100 * $size}]
+ set dx [expr {round(17 * $size)}]
+ set wid [expr {$dx - $size * .5}]
+ set blbot [expr {$bot * .65}]
+
+ $path config -height [expr {$bot + $top}] \
+ -width [expr {$dx * ($noctaves * 7 + 1) + $lft * 2 - 1}]
+
+ for {set octave 0} {$octave <= $noctaves} {incr octave} {
+ set prevkey 0
+ foreach key {0 2 4 5 7 9 11} {
+ set ndx [expr $octave * 12 + $key]
+ set id [$path create rect $lft $top \
+ [expr {$lft + $wid}] $bot -fill white -tags $path.$ndx]
+ $path bind $id <1> [concat ::toxy::kbset \
+ $path $target $remote $ndx]
+ if {$key - $prevkey > 1} {
+ incr ndx -1
+ set x [expr {$lft - $wid * .22}]
+ set id [$path create rect $x $top [expr {$x + $wid * .44}] \
+ $blbot -fill black -tags $path.$ndx]
+ $path bind $id <1> [concat ::toxy::kbset \
+ $path $target $remote $ndx]
+ }
+ set prevkey $key
+ incr lft $dx
+ if {$octave == $noctaves && $key == 0} break
+ }
+ }
+ set ::toxy::kbval($target) 0
+ set ::toxy::kbcol($target) white
+ $path itemconfig $path.0 -fill grey
+}
+
+proc ::toxy::kbout {path target remote} {
+ ::toxy::callback $target _cb $::toxy::kbval($target)
+ if {$remote != "."} {::toxy::callback $remote $::toxy::kbval($target)}
+}
+
+proc ::toxy::kbset {path target remote value} {
+ $path itemconfig $path.$::toxy::kbval($target) \
+ -fill $::toxy::kbcol($target)
+ set ::toxy::kbval($target) $value
+ set ::toxy::kbcol($target) [lindex [$path itemconfig $path.$value -fill] 4]
+ $path itemconfig $path.$value -fill grey
+ ::toxy::kbout $path $target $remote
+}
+
+# the default initializer
+#> default
+
+# pdtk_canvas_mouseup is a hack, which we must call anyway
+bind .- <ButtonRelease> {
+ eval .<|_inout 1.>
+ pdtk_canvas_mouseup .^.c [expr %x + [winfo x %W]] [expr %y + [winfo y %W]] %b
+}
+
+bind .- <1> .<|_click %x %y %b 0.>
+bind .- <3> .<|_click %x %y %b 8.>
+bind .- <Motion> .<|_motion %x %y.>
+bind .- <Enter> .<|_inout 1.>
+bind .- <Leave> .<|_inout 0.>
+
+#> bang button
+#. -image ::toxy::img::empty -command .<.>
+#. -bg pink -activebackground red -width 50 -height 50
+#. @bang .- flash .: .- invoke
+
+#> float scale
+#. -command .<.> -bg pink -activebackground red -length 200
+#. @float .- set .#1
+
+#> symbol entry
+#. -bg pink -font .(helvetica 24.) -width 16
+#. @symbol .- delete 0 end .: .- insert 0 .#1
+
+bind .- <Return> {eval .<[.- get].>; focus .^.c}
+
+#> kb canvas
+#. -bg yellow -cursor hand1
+#. #oct 4 #size .75
+#. @bang ::toxy::kbout .- .| .
+#. @float ::toxy::kbset .- .| . .#1
+
+::toxy::kb .- .| . .#oct .#size
+
+# undo the "bind Canvas <1> {+focus %W}" in the setup part above
+bind .- <FocusIn> {focus .^.c}
diff --git a/test/toxy/defaults-test.pd b/test/toxy/defaults-test.pd
new file mode 100644
index 0000000..c0c5aaf
--- /dev/null
+++ b/test/toxy/defaults-test.pd
@@ -0,0 +1,25 @@
+#N canvas 281 172 504 371 12;
+#X obj 247 89 widget bang b;
+#X obj 33 89 widget float f;
+#X obj 124 247 widget symbol s;
+#X floatatom 33 325 5 0 0 0 - - -;
+#X obj 247 175 tgl 15 0 empty empty empty 0 -6 0 8 -262144 -1 -1 0
+1;
+#X obj 124 325 print;
+#X msg 33 20 debug;
+#X msg 247 20 bang;
+#X msg 307 55 remove @bang;
+#X msg 307 20 @bang .- invoke;
+#X floatatom 121 20 5 0 0 0 - - -;
+#X msg 124 206 symbol test;
+#X connect 0 0 4 0;
+#X connect 1 0 3 0;
+#X connect 2 0 5 0;
+#X connect 6 0 0 0;
+#X connect 6 0 1 0;
+#X connect 6 0 2 0;
+#X connect 7 0 0 0;
+#X connect 8 0 0 0;
+#X connect 9 0 0 0;
+#X connect 10 0 1 0;
+#X connect 11 0 2 0;
diff --git a/test/toxy/kb-test.pd b/test/toxy/kb-test.pd
new file mode 100644
index 0000000..2978dce
--- /dev/null
+++ b/test/toxy/kb-test.pd
@@ -0,0 +1,17 @@
+#N canvas 354 116 645 486 12;
+#X obj 37 61 widget kb k1;
+#X floatatom 37 160 5 0 0 0 - - -;
+#X obj 37 310 widget kb k2 #oct 8 #size 0.35 -bg red;
+#X floatatom 37 369 5 0 0 0 - - -;
+#X msg 120 271 #oct \$1 \, refresh;
+#X floatatom 120 237 5 0 0 0 - - -;
+#X floatatom 37 24 5 0 0 0 - - -;
+#X msg 114 24 bang;
+#X floatatom 37 237 5 0 0 0 - - -;
+#X connect 0 0 1 0;
+#X connect 2 0 3 0;
+#X connect 4 0 2 0;
+#X connect 5 0 4 0;
+#X connect 6 0 0 0;
+#X connect 7 0 0 0;
+#X connect 8 0 2 0;
diff --git a/test/toxy/listbox-test.pd b/test/toxy/listbox-test.pd
new file mode 100644
index 0000000..cd1fa46
--- /dev/null
+++ b/test/toxy/listbox-test.pd
@@ -0,0 +1,18 @@
+#N canvas 154 52 626 383 12;
+#X obj 281 144 widget listbox lb -width 32 -height 12 -bg black -fg
+white;
+#X obj 20 282 tow . listbox lb;
+#X obj 20 21 loadbang;
+#X msg 20 52 ini foreach fn [lsort [glob *]] .(.- insert end $fn.)
+;
+#X obj 236 143 widget button b -text ok -height 14 -bg black -fg white
+-command .<.>;
+#X obj 112 21 tow . button b;
+#X msg 36 83 tot if .([.- curselection] != "".) .(eval .<set [.- get
+[.- curselection]].>.);
+#X msg 20 324;
+#X connect 1 0 7 0;
+#X connect 2 0 3 0;
+#X connect 3 0 1 0;
+#X connect 5 0 6 0;
+#X connect 6 0 1 0;
diff --git a/test/toxy/pop1.wid b/test/toxy/pop1.wid
new file mode 100644
index 0000000..88b6595
--- /dev/null
+++ b/test/toxy/pop1.wid
@@ -0,0 +1,10 @@
+#> pop1 menubutton
+#. -menu .-.pop
+#. -bg purple -fg white -activebackground magenta -width 8 -text jeden
+#. @float if .(.#1 >= 1.) .(.-.pop invoke .#1.)
+
+::toxy::popup .- .| rpop1 \
+ [list {one jeden} {two dwa} {three trzy} \
+ {four cztery} {five pięć} {six sześć} {seven siedem} \
+ {eight osiem} {nine dziewięć} {ten dziesięć}] \
+ -bg purple -fg white -activebackground magenta
diff --git a/test/toxy/pop2.wid b/test/toxy/pop2.wid
new file mode 100644
index 0000000..8f7ccf5
--- /dev/null
+++ b/test/toxy/pop2.wid
@@ -0,0 +1,8 @@
+#> pop2 menubutton
+#. -menu .-.pop
+#. -bg purple -fg white -activebackground magenta -width 6 -text kura
+#. @float if .(.#1 >= 1.) .(.-.pop invoke .#1.)
+
+::toxy::popup .- .| rpop2 \
+ [list {hen kura} {duck kaczka} {cat kot} {cow krowa} {horse koń}] \
+ -bg purple -fg white -activebackground magenta
diff --git a/test/toxy/popup-test.pd b/test/toxy/popup-test.pd
new file mode 100644
index 0000000..7f49162
--- /dev/null
+++ b/test/toxy/popup-test.pd
@@ -0,0 +1,39 @@
+#N canvas 356 9 338 241 12;
+#X obj 38 104 r rpop;
+#X floatatom 38 142 5 0 0 0 - - -;
+#X floatatom 120 142 5 0 0 0 - - -;
+#X obj 120 104 r rpop1;
+#X floatatom 210 142 5 0 0 0 - - -;
+#X obj 210 104 r rpop2;
+#N canvas 12 11 293 279 blackpanel 1;
+#X obj 23 111 widget menubutton mb -menu .-.pop -bg green -activebackground
+yellow -width 5 -text one @float if .(.#1 >= 1.) .(.-.pop invoke .#1.)
+;
+#X obj 23 12 loadbang;
+#X obj 96 110 widget pop1 p1;
+#X obj 188 110 widget pop2 p2;
+#X msg 23 41 ini ::toxy::popup .- .| rpop [list one two three four five]
+-bg green -activebackground yellow .: destroy .^.m .: .^.scrollvert
+configure -width 0 .: .^.scrollhort configure -width 0 .: .^.c configure
+-bg black;
+#X obj 23 150 r topop;
+#X obj 96 150 r topop1;
+#X obj 188 150 r topop2;
+#X connect 1 0 4 0;
+#X connect 4 0 0 0;
+#X connect 5 0 0 0;
+#X connect 6 0 2 0;
+#X connect 7 0 3 0;
+#X restore 95 198 pd blackpanel;
+#X floatatom 38 24 5 0 0 0 - - -;
+#X floatatom 120 24 5 0 0 0 - - -;
+#X floatatom 210 24 5 0 0 0 - - -;
+#X obj 38 58 s topop;
+#X obj 120 58 s topop1;
+#X obj 210 58 s topop2;
+#X connect 0 0 1 0;
+#X connect 3 0 2 0;
+#X connect 5 0 4 0;
+#X connect 7 0 10 0;
+#X connect 8 0 11 0;
+#X connect 9 0 12 0;
diff --git a/test/toxy/radio-test.pd b/test/toxy/radio-test.pd
new file mode 100644
index 0000000..24e1a3b
--- /dev/null
+++ b/test/toxy/radio-test.pd
@@ -0,0 +1,50 @@
+#N canvas 179 90 559 300 12;
+#X obj 20 158 widget radiobutton r -variable ::toxy::r -value 0 -command
+.<:common $::toxy::r.> -bg orange -activebackground magenta -width
+44 -height 44 -indicatoron off -image ::toxy::img::empty;
+#X obj 70 158 widget radiobutton r -variable ::toxy::r -value 1 -command
+.<:common $::toxy::r.> -bg orange -activebackground magenta -width
+44 -height 44 -indicatoron off -image ::toxy::img::empty;
+#X obj 120 158 widget radiobutton r -variable ::toxy::r -value 2 -command
+.<:common $::toxy::r.> -bg orange -activebackground magenta -width
+44 -height 44 -indicatoron off -image ::toxy::img::empty;
+#X obj 170 158 widget radiobutton r -variable ::toxy::r -value 3 -command
+.<:common $::toxy::r.> -bg orange -activebackground magenta -width
+44 -height 44 -indicatoron off -image ::toxy::img::empty;
+#X obj 20 221 r t0;
+#X obj 70 221 r t1;
+#X obj 120 221 r t2;
+#X obj 170 221 r t3;
+#X obj 261 260 hradio 15 1 0 4 empty empty empty 0 -6 0 8 -262144 -1
+-1 0;
+#X obj 20 127 t a;
+#X obj 20 260 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1
+-1;
+#X obj 70 260 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1
+-1;
+#X obj 120 260 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1
+-1;
+#X obj 170 260 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1
+-1;
+#X obj 261 222 r common;
+#X msg 20 15 -command .<:common $::toxy::r.>;
+#X msg 31 46 -command .<:[join [list t $::toxy::r] ""] $::toxy::r.>
+;
+#X obj 366 260 hradio 15 1 0 4 empty empty empty 0 -6 0 8 -262144 -1
+-1 0;
+#X connect 4 0 10 0;
+#X connect 4 0 8 0;
+#X connect 5 0 11 0;
+#X connect 5 0 8 0;
+#X connect 6 0 12 0;
+#X connect 6 0 8 0;
+#X connect 7 0 13 0;
+#X connect 7 0 8 0;
+#X connect 9 0 0 0;
+#X connect 9 0 1 0;
+#X connect 9 0 2 0;
+#X connect 9 0 3 0;
+#X connect 14 0 8 0;
+#X connect 14 0 17 0;
+#X connect 15 0 9 0;
+#X connect 16 0 9 0;
diff --git a/test/toxy/scale-test.pd b/test/toxy/scale-test.pd
new file mode 100644
index 0000000..e35a4a2
--- /dev/null
+++ b/test/toxy/scale-test.pd
@@ -0,0 +1,44 @@
+#N canvas 79 51 599 397 12;
+#X obj 22 197 widget scale s -command .<.> -variable ::toxy::simplescale
+-label "Simple Scale" -orient h -length 300 -width 50 -font "Helvetica
+12" -from -16 -to 16 -showvalue 0 @float .- set .#1;
+#X floatatom 22 336 5 0 0 0 - - -;
+#X floatatom 191 128 5 0 0 0 - - -;
+#X msg 191 159 -from \$1;
+#X floatatom 287 128 5 0 0 0 - - -;
+#X msg 287 159 -to \$1;
+#X msg 44 159 -showvalue \$1;
+#X obj 44 133 tgl 15 0 empty empty empty 0 -6 0 8 -262144 -1 -1 0 1
+;
+#X floatatom 214 336 5 0 0 0 - - -;
+#X msg 36 102 -command .<.>;
+#X obj 214 306 r \$0-scale;
+#X msg 22 70 -command .<: \$1-scale .>;
+#X obj 22 10 loadbang;
+#X obj 22 40 int \$0;
+#X msg 113 10 bang;
+#X msg 269 67 @float .- set .#1;
+#X msg 269 102 remove @float;
+#X floatatom 269 40 5 0 0 0 - - -;
+#N canvas 0 0 450 420 linked 0;
+#X obj 54 49 widget scale s -command .<.> -variable ::toxy::simplescale
+-orient v -length 300 -width 50 -font "Helvetica 12" -from -16 -to
+16 -showvalue 0 @float .- set .#1;
+#X coords 0 0 1 1 80 360 1;
+#X restore 472 20 pd linked;
+#X connect 0 0 1 0;
+#X connect 2 0 3 0;
+#X connect 3 0 0 0;
+#X connect 4 0 5 0;
+#X connect 5 0 0 0;
+#X connect 6 0 0 0;
+#X connect 7 0 6 0;
+#X connect 9 0 0 0;
+#X connect 10 0 8 0;
+#X connect 11 0 0 0;
+#X connect 12 0 13 0;
+#X connect 13 0 11 0;
+#X connect 14 0 13 0;
+#X connect 15 0 0 0;
+#X connect 16 0 0 0;
+#X connect 17 0 0 0;
diff --git a/test/toxy/test1.tot b/test/toxy/test1.tot
new file mode 100644
index 0000000..3faf74e
--- /dev/null
+++ b/test/toxy/test1.tot
@@ -0,0 +1,301 @@
+puts [concat .#0 .#1 .#9 .#: .^.c]
+puts [concat .#0 .#1 .#2 .#3 .#4 .#5 .#6 .#7 .#8 .#9]
+puts [concat .#0 .#1 .#2 .#3 .#4 .#5 .#6 .#7 .#8 .#9]
+puts [concat .#0 .#1 .#2 .#3 .#4 .#5 .#6 .#7 .#8 .#9]
+puts [concat .#0 .#1 .#2 .#3 .#4 .#5 .#6 .#7 .#8 .#9]
+puts [concat .#0 .#1 .#2 .#3 .#4 .#5 .#6 .#7 .#8 .#9]
+puts [concat .#0 .#1 .#2 .#3 .#4 .#5 .#6 .#7 .#8 .#9]
+puts [concat .#0 .#1 .#2 .#3 .#4 .#5 .#6 .#7 .#8 .#9]
+puts [concat .#0 .#1 .#2 .#3 .#4 .#5 .#6 .#7 .#8 .#9]
+puts [concat .#0 .#1 .#2 .#3 .#4 .#5 .#6 .#7 .#8 .#9]
+puts [concat .#0 .#1 .#2 .#3 .#4 .#5 .#6 .#7 .#8 .#9]
+puts [concat .#0 .#1 .#2 .#3 .#4 .#5 .#6 .#7 .#8 .#9]
+puts [concat .#0 .#1 .#2 .#3 .#4 .#5 .#6 .#7 .#8 .#9]
+puts [concat .#0 .#1 .#2 .#3 .#4 .#5 .#6 .#7 .#8 .#9]
+puts [concat .#0 .#1 .#2 .#3 .#4 .#5 .#6 .#7 .#8 .#9]
+puts [concat .#0 .#1 .#2 .#3 .#4 .#5 .#6 .#7 .#8 .#9]
+puts [concat .#0 .#1 .#2 .#3 .#4 .#5 .#6 .#7 .#8 .#9]
+puts [concat .#0 .#1 .#2 .#3 .#4 .#5 .#6 .#7 .#8 .#9]
+puts [concat .#0 .#1 .#2 .#3 .#4 .#5 .#6 .#7 .#8 .#9]
+puts [concat .#0 .#1 .#2 .#3 .#4 .#5 .#6 .#7 .#8 .#9]
+puts [concat .#0 .#1 .#2 .#3 .#4 .#5 .#6 .#7 .#8 .#9]
+puts [concat .#0 .#1 .#2 .#3 .#4 .#5 .#6 .#7 .#8 .#9]
+puts [concat .#0 .#1 .#2 .#3 .#4 .#5 .#6 .#7 .#8 .#9]
+puts [concat .#0 .#1 .#2 .#3 .#4 .#5 .#6 .#7 .#8 .#9]
+puts [concat .#0 .#1 .#2 .#3 .#4 .#5 .#6 .#7 .#8 .#9]
+puts [concat .#0 .#1 .#2 .#3 .#4 .#5 .#6 .#7 .#8 .#9]
+puts [concat .#0 .#1 .#2 .#3 .#4 .#5 .#6 .#7 .#8 .#9]
+puts [concat .#0 .#1 .#2 .#3 .#4 .#5 .#6 .#7 .#8 .#9]
+puts [concat .#0 .#1 .#2 .#3 .#4 .#5 .#6 .#7 .#8 .#9]
+puts [concat .#0 .#1 .#2 .#3 .#4 .#5 .#6 .#7 .#8 .#9]
+puts [concat .#0 .#1 .#2 .#3 .#4 .#5 .#6 .#7 .#8 .#9]
+puts [concat .#0 .#1 .#2 .#3 .#4 .#5 .#6 .#7 .#8 .#9]
+puts [concat .#0 .#1 .#2 .#3 .#4 .#5 .#6 .#7 .#8 .#9]
+puts [concat .#0 .#1 .#2 .#3 .#4 .#5 .#6 .#7 .#8 .#9]
+puts [concat .#0 .#1 .#2 .#3 .#4 .#5 .#6 .#7 .#8 .#9]
+puts [concat .#0 .#1 .#2 .#3 .#4 .#5 .#6 .#7 .#8 .#9]
+puts [concat .#0 .#1 .#2 .#3 .#4 .#5 .#6 .#7 .#8 .#9]
+puts [concat .#0 .#1 .#2 .#3 .#4 .#5 .#6 .#7 .#8 .#9]
+puts [concat .#0 .#1 .#2 .#3 .#4 .#5 .#6 .#7 .#8 .#9]
+puts [concat .#0 .#1 .#2 .#3 .#4 .#5 .#6 .#7 .#8 .#9]
+puts [concat .#0 .#1 .#2 .#3 .#4 .#5 .#6 .#7 .#8 .#9]
+puts [concat .#0 .#1 .#2 .#3 .#4 .#5 .#6 .#7 .#8 .#9]
+puts [concat .#0 .#1 .#2 .#3 .#4 .#5 .#6 .#7 .#8 .#9]
+puts [concat .#0 .#1 .#2 .#3 .#4 .#5 .#6 .#7 .#8 .#9]
+puts [concat .#0 .#1 .#2 .#3 .#4 .#5 .#6 .#7 .#8 .#9]
+puts [concat .#0 .#1 .#2 .#3 .#4 .#5 .#6 .#7 .#8 .#9]
+puts [concat .#0 .#1 .#2 .#3 .#4 .#5 .#6 .#7 .#8 .#9]
+puts [concat .#0 .#1 .#2 .#3 .#4 .#5 .#6 .#7 .#8 .#9]
+puts [concat .#0 .#1 .#2 .#3 .#4 .#5 .#6 .#7 .#8 .#9]
+puts [concat .#0 .#1 .#2 .#3 .#4 .#5 .#6 .#7 .#8 .#9]
+puts [concat .#0 .#1 .#2 .#3 .#4 .#5 .#6 .#7 .#8 .#9]
+puts [concat .#0 .#1 .#2 .#3 .#4 .#5 .#6 .#7 .#8 .#9]
+puts [concat .#0 .#1 .#2 .#3 .#4 .#5 .#6 .#7 .#8 .#9]
+puts [concat .#0 .#1 .#2 .#3 .#4 .#5 .#6 .#7 .#8 .#9]
+puts [concat .#0 .#1 .#2 .#3 .#4 .#5 .#6 .#7 .#8 .#9]
+puts [concat .#0 .#1 .#2 .#3 .#4 .#5 .#6 .#7 .#8 .#9]
+puts [concat .#0 .#1 .#2 .#3 .#4 .#5 .#6 .#7 .#8 .#9]
+puts [concat .#0 .#1 .#2 .#3 .#4 .#5 .#6 .#7 .#8 .#9]
+puts [concat .#0 .#1 .#2 .#3 .#4 .#5 .#6 .#7 .#8 .#9]
+puts [concat .#0 .#1 .#2 .#3 .#4 .#5 .#6 .#7 .#8 .#9]
+puts [concat .#0 .#1 .#2 .#3 .#4 .#5 .#6 .#7 .#8 .#9]
+puts [concat .#0 .#1 .#2 .#3 .#4 .#5 .#6 .#7 .#8 .#9]
+puts [concat .#0 .#1 .#2 .#3 .#4 .#5 .#6 .#7 .#8 .#9]
+puts [concat .#0 .#1 .#2 .#3 .#4 .#5 .#6 .#7 .#8 .#9]
+puts [concat .#0 .#1 .#2 .#3 .#4 .#5 .#6 .#7 .#8 .#9]
+puts [concat .#0 .#1 .#2 .#3 .#4 .#5 .#6 .#7 .#8 .#9]
+puts [concat .#0 .#1 .#2 .#3 .#4 .#5 .#6 .#7 .#8 .#9]
+puts [concat .#0 .#1 .#2 .#3 .#4 .#5 .#6 .#7 .#8 .#9]
+puts [concat .#0 .#1 .#2 .#3 .#4 .#5 .#6 .#7 .#8 .#9]
+puts [concat .#0 .#1 .#2 .#3 .#4 .#5 .#6 .#7 .#8 .#9]
+puts [concat .#0 .#1 .#2 .#3 .#4 .#5 .#6 .#7 .#8 .#9]
+puts [concat .#0 .#1 .#2 .#3 .#4 .#5 .#6 .#7 .#8 .#9]
+puts [concat .#0 .#1 .#2 .#3 .#4 .#5 .#6 .#7 .#8 .#9]
+puts [concat .#0 .#1 .#2 .#3 .#4 .#5 .#6 .#7 .#8 .#9]
+puts [concat .#0 .#1 .#2 .#3 .#4 .#5 .#6 .#7 .#8 .#9]
+puts [concat .#0 .#1 .#2 .#3 .#4 .#5 .#6 .#7 .#8 .#9]
+puts [concat .#0 .#1 .#2 .#3 .#4 .#5 .#6 .#7 .#8 .#9]
+puts [concat .#0 .#1 .#2 .#3 .#4 .#5 .#6 .#7 .#8 .#9]
+puts [concat .#0 .#1 .#2 .#3 .#4 .#5 .#6 .#7 .#8 .#9]
+puts [concat .#0 .#1 .#2 .#3 .#4 .#5 .#6 .#7 .#8 .#9]
+puts [concat .#0 .#1 .#2 .#3 .#4 .#5 .#6 .#7 .#8 .#9]
+puts [concat .#0 .#1 .#2 .#3 .#4 .#5 .#6 .#7 .#8 .#9]
+puts [concat .#0 .#1 .#2 .#3 .#4 .#5 .#6 .#7 .#8 .#9]
+puts [concat .#0 .#1 .#2 .#3 .#4 .#5 .#6 .#7 .#8 .#9]
+puts [concat .#0 .#1 .#2 .#3 .#4 .#5 .#6 .#7 .#8 .#9]
+puts [concat .#0 .#1 .#2 .#3 .#4 .#5 .#6 .#7 .#8 .#9]
+puts [concat .#0 .#1 .#2 .#3 .#4 .#5 .#6 .#7 .#8 .#9]
+puts [concat .#0 .#1 .#2 .#3 .#4 .#5 .#6 .#7 .#8 .#9]
+puts [concat .#0 .#1 .#2 .#3 .#4 .#5 .#6 .#7 .#8 .#9]
+puts [concat .#0 .#1 .#2 .#3 .#4 .#5 .#6 .#7 .#8 .#9]
+puts [concat .#0 .#1 .#2 .#3 .#4 .#5 .#6 .#7 .#8 .#9]
+puts [concat .#0 .#1 .#2 .#3 .#4 .#5 .#6 .#7 .#8 .#9]
+puts [concat .#0 .#1 .#2 .#3 .#4 .#5 .#6 .#7 .#8 .#9]
+puts [concat .#0 .#1 .#2 .#3 .#4 .#5 .#6 .#7 .#8 .#9]
+puts [concat .#0 .#1 .#2 .#3 .#4 .#5 .#6 .#7 .#8 .#9]
+puts [concat .#0 .#1 .#2 .#3 .#4 .#5 .#6 .#7 .#8 .#9]
+puts [concat .#0 .#1 .#2 .#3 .#4 .#5 .#6 .#7 .#8 .#9]
+puts [concat .#0 .#1 .#2 .#3 .#4 .#5 .#6 .#7 .#8 .#9]
+puts [concat .#0 .#1 .#2 .#3 .#4 .#5 .#6 .#7 .#8 .#9]
+puts [concat .#0 .#1 .#2 .#3 .#4 .#5 .#6 .#7 .#8 .#9]
+puts [concat .#0 .#1 .#2 .#3 .#4 .#5 .#6 .#7 .#8 .#9]
+puts [concat .#0 .#1 .#2 .#3 .#4 .#5 .#6 .#7 .#8 .#9]
+puts [concat .#0 .#1 .#2 .#3 .#4 .#5 .#6 .#7 .#8 .#9]
+puts [concat .#0 .#1 .#2 .#3 .#4 .#5 .#6 .#7 .#8 .#9]
+puts [concat .#0 .#1 .#2 .#3 .#4 .#5 .#6 .#7 .#8 .#9]
+puts [concat .#0 .#1 .#2 .#3 .#4 .#5 .#6 .#7 .#8 .#9]
+puts [concat .#0 .#1 .#2 .#3 .#4 .#5 .#6 .#7 .#8 .#9]
+puts [concat .#0 .#1 .#2 .#3 .#4 .#5 .#6 .#7 .#8 .#9]
+puts [concat .#0 .#1 .#2 .#3 .#4 .#5 .#6 .#7 .#8 .#9]
+puts [concat .#0 .#1 .#2 .#3 .#4 .#5 .#6 .#7 .#8 .#9]
+puts [concat .#0 .#1 .#2 .#3 .#4 .#5 .#6 .#7 .#8 .#9]
+puts [concat .#0 .#1 .#2 .#3 .#4 .#5 .#6 .#7 .#8 .#9]
+puts [concat .#0 .#1 .#2 .#3 .#4 .#5 .#6 .#7 .#8 .#9]
+puts [concat .#0 .#1 .#2 .#3 .#4 .#5 .#6 .#7 .#8 .#9]
+puts [concat .#0 .#1 .#2 .#3 .#4 .#5 .#6 .#7 .#8 .#9]
+puts [concat .#0 .#1 .#2 .#3 .#4 .#5 .#6 .#7 .#8 .#9]
+puts [concat .#0 .#1 .#2 .#3 .#4 .#5 .#6 .#7 .#8 .#9]
+puts [concat .#0 .#1 .#2 .#3 .#4 .#5 .#6 .#7 .#8 .#9]
+puts [concat .#0 .#1 .#2 .#3 .#4 .#5 .#6 .#7 .#8 .#9]
+puts [concat .#0 .#1 .#2 .#3 .#4 .#5 .#6 .#7 .#8 .#9]
+puts [concat .#0 .#1 .#2 .#3 .#4 .#5 .#6 .#7 .#8 .#9]
+puts [concat .#0 .#1 .#2 .#3 .#4 .#5 .#6 .#7 .#8 .#9]
+puts [concat .#0 .#1 .#2 .#3 .#4 .#5 .#6 .#7 .#8 .#9]
+puts [concat .#0 .#1 .#2 .#3 .#4 .#5 .#6 .#7 .#8 .#9]
+puts [concat .#0 .#1 .#2 .#3 .#4 .#5 .#6 .#7 .#8 .#9]
+puts [concat .#0 .#1 .#2 .#3 .#4 .#5 .#6 .#7 .#8 .#9]
+puts [concat .#0 .#1 .#2 .#3 .#4 .#5 .#6 .#7 .#8 .#9]
+puts [concat .#0 .#1 .#2 .#3 .#4 .#5 .#6 .#7 .#8 .#9]
+puts [concat .#0 .#1 .#2 .#3 .#4 .#5 .#6 .#7 .#8 .#9]
+puts [concat .#0 .#1 .#2 .#3 .#4 .#5 .#6 .#7 .#8 .#9]
+puts [concat .#0 .#1 .#2 .#3 .#4 .#5 .#6 .#7 .#8 .#9]
+puts [concat .#0 .#1 .#2 .#3 .#4 .#5 .#6 .#7 .#8 .#9]
+puts [concat .#0 .#1 .#2 .#3 .#4 .#5 .#6 .#7 .#8 .#9]
+puts [concat .#0 .#1 .#2 .#3 .#4 .#5 .#6 .#7 .#8 .#9]
+puts [concat .#0 .#1 .#2 .#3 .#4 .#5 .#6 .#7 .#8 .#9]
+puts [concat .#0 .#1 .#2 .#3 .#4 .#5 .#6 .#7 .#8 .#9]
+puts [concat .#0 .#1 .#2 .#3 .#4 .#5 .#6 .#7 .#8 .#9]
+puts [concat .#0 .#1 .#2 .#3 .#4 .#5 .#6 .#7 .#8 .#9]
+puts [concat .#0 .#1 .#2 .#3 .#4 .#5 .#6 .#7 .#8 .#9]
+puts [concat .#0 .#1 .#2 .#3 .#4 .#5 .#6 .#7 .#8 .#9]
+puts [concat .#0 .#1 .#2 .#3 .#4 .#5 .#6 .#7 .#8 .#9]
+puts [concat .#0 .#1 .#2 .#3 .#4 .#5 .#6 .#7 .#8 .#9]
+puts [concat .#0 .#1 .#2 .#3 .#4 .#5 .#6 .#7 .#8 .#9]
+puts [concat .#0 .#1 .#2 .#3 .#4 .#5 .#6 .#7 .#8 .#9]
+puts [concat .#0 .#1 .#2 .#3 .#4 .#5 .#6 .#7 .#8 .#9]
+puts [concat .#0 .#1 .#2 .#3 .#4 .#5 .#6 .#7 .#8 .#9]
+puts [concat .#0 .#1 .#2 .#3 .#4 .#5 .#6 .#7 .#8 .#9]
+puts [concat .#0 .#1 .#2 .#3 .#4 .#5 .#6 .#7 .#8 .#9]
+puts [concat .#0 .#1 .#2 .#3 .#4 .#5 .#6 .#7 .#8 .#9]
+puts [concat .#0 .#1 .#2 .#3 .#4 .#5 .#6 .#7 .#8 .#9]
+puts [concat .#0 .#1 .#2 .#3 .#4 .#5 .#6 .#7 .#8 .#9]
+puts [concat .#0 .#1 .#2 .#3 .#4 .#5 .#6 .#7 .#8 .#9]
+puts [concat .#0 .#1 .#2 .#3 .#4 .#5 .#6 .#7 .#8 .#9]
+puts [concat .#0 .#1 .#2 .#3 .#4 .#5 .#6 .#7 .#8 .#9]
+puts [concat .#0 .#1 .#2 .#3 .#4 .#5 .#6 .#7 .#8 .#9]
+puts [concat .#0 .#1 .#2 .#3 .#4 .#5 .#6 .#7 .#8 .#9]
+puts [concat .#0 .#1 .#2 .#3 .#4 .#5 .#6 .#7 .#8 .#9]
+puts [concat .#0 .#1 .#2 .#3 .#4 .#5 .#6 .#7 .#8 .#9]
+puts [concat .#0 .#1 .#2 .#3 .#4 .#5 .#6 .#7 .#8 .#9]
+puts [concat .#0 .#1 .#2 .#3 .#4 .#5 .#6 .#7 .#8 .#9]
+puts [concat .#0 .#1 .#2 .#3 .#4 .#5 .#6 .#7 .#8 .#9]
+puts [concat .#0 .#1 .#2 .#3 .#4 .#5 .#6 .#7 .#8 .#9]
+puts [concat .#0 .#1 .#2 .#3 .#4 .#5 .#6 .#7 .#8 .#9]
+puts [concat .#0 .#1 .#2 .#3 .#4 .#5 .#6 .#7 .#8 .#9]
+puts [concat .#0 .#1 .#2 .#3 .#4 .#5 .#6 .#7 .#8 .#9]
+puts [concat .#0 .#1 .#2 .#3 .#4 .#5 .#6 .#7 .#8 .#9]
+puts [concat .#0 .#1 .#2 .#3 .#4 .#5 .#6 .#7 .#8 .#9]
+puts [concat .#0 .#1 .#2 .#3 .#4 .#5 .#6 .#7 .#8 .#9]
+puts [concat .#0 .#1 .#2 .#3 .#4 .#5 .#6 .#7 .#8 .#9]
+puts [concat .#0 .#1 .#2 .#3 .#4 .#5 .#6 .#7 .#8 .#9]
+puts [concat .#0 .#1 .#2 .#3 .#4 .#5 .#6 .#7 .#8 .#9]
+puts [concat .#0 .#1 .#2 .#3 .#4 .#5 .#6 .#7 .#8 .#9]
+puts [concat .#0 .#1 .#2 .#3 .#4 .#5 .#6 .#7 .#8 .#9]
+puts [concat .#0 .#1 .#2 .#3 .#4 .#5 .#6 .#7 .#8 .#9]
+puts [concat .#0 .#1 .#2 .#3 .#4 .#5 .#6 .#7 .#8 .#9]
+puts [concat .#0 .#1 .#2 .#3 .#4 .#5 .#6 .#7 .#8 .#9]
+puts [concat .#0 .#1 .#2 .#3 .#4 .#5 .#6 .#7 .#8 .#9]
+puts [concat .#0 .#1 .#2 .#3 .#4 .#5 .#6 .#7 .#8 .#9]
+puts [concat .#0 .#1 .#2 .#3 .#4 .#5 .#6 .#7 .#8 .#9]
+puts [concat .#0 .#1 .#2 .#3 .#4 .#5 .#6 .#7 .#8 .#9]
+puts [concat .#0 .#1 .#2 .#3 .#4 .#5 .#6 .#7 .#8 .#9]
+puts [concat .#0 .#1 .#2 .#3 .#4 .#5 .#6 .#7 .#8 .#9]
+puts [concat .#0 .#1 .#2 .#3 .#4 .#5 .#6 .#7 .#8 .#9]
+puts [concat .#0 .#1 .#2 .#3 .#4 .#5 .#6 .#7 .#8 .#9]
+puts [concat .#0 .#1 .#2 .#3 .#4 .#5 .#6 .#7 .#8 .#9]
+puts [concat .#0 .#1 .#2 .#3 .#4 .#5 .#6 .#7 .#8 .#9]
+puts [concat .#0 .#1 .#2 .#3 .#4 .#5 .#6 .#7 .#8 .#9]
+puts [concat .#0 .#1 .#2 .#3 .#4 .#5 .#6 .#7 .#8 .#9]
+puts [concat .#0 .#1 .#2 .#3 .#4 .#5 .#6 .#7 .#8 .#9]
+puts [concat .#0 .#1 .#2 .#3 .#4 .#5 .#6 .#7 .#8 .#9]
+puts [concat .#0 .#1 .#2 .#3 .#4 .#5 .#6 .#7 .#8 .#9]
+puts [concat .#0 .#1 .#2 .#3 .#4 .#5 .#6 .#7 .#8 .#9]
+puts [concat .#0 .#1 .#2 .#3 .#4 .#5 .#6 .#7 .#8 .#9]
+puts [concat .#0 .#1 .#2 .#3 .#4 .#5 .#6 .#7 .#8 .#9]
+puts [concat .#0 .#1 .#2 .#3 .#4 .#5 .#6 .#7 .#8 .#9]
+puts [concat .#0 .#1 .#2 .#3 .#4 .#5 .#6 .#7 .#8 .#9]
+puts [concat .#0 .#1 .#2 .#3 .#4 .#5 .#6 .#7 .#8 .#9]
+puts [concat .#0 .#1 .#2 .#3 .#4 .#5 .#6 .#7 .#8 .#9]
+puts [concat .#0 .#1 .#2 .#3 .#4 .#5 .#6 .#7 .#8 .#9]
+puts [concat .#0 .#1 .#2 .#3 .#4 .#5 .#6 .#7 .#8 .#9]
+puts [concat .#0 .#1 .#2 .#3 .#4 .#5 .#6 .#7 .#8 .#9]
+puts [concat .#0 .#1 .#2 .#3 .#4 .#5 .#6 .#7 .#8 .#9]
+puts [concat .#0 .#1 .#2 .#3 .#4 .#5 .#6 .#7 .#8 .#9]
+puts [concat .#0 .#1 .#2 .#3 .#4 .#5 .#6 .#7 .#8 .#9]
+puts [concat .#0 .#1 .#2 .#3 .#4 .#5 .#6 .#7 .#8 .#9]
+puts [concat .#0 .#1 .#2 .#3 .#4 .#5 .#6 .#7 .#8 .#9]
+puts [concat .#0 .#1 .#2 .#3 .#4 .#5 .#6 .#7 .#8 .#9]
+puts [concat .#0 .#1 .#2 .#3 .#4 .#5 .#6 .#7 .#8 .#9]
+puts [concat .#0 .#1 .#2 .#3 .#4 .#5 .#6 .#7 .#8 .#9]
+puts [concat .#0 .#1 .#2 .#3 .#4 .#5 .#6 .#7 .#8 .#9]
+puts [concat .#0 .#1 .#2 .#3 .#4 .#5 .#6 .#7 .#8 .#9]
+puts [concat .#0 .#1 .#2 .#3 .#4 .#5 .#6 .#7 .#8 .#9]
+puts [concat .#0 .#1 .#2 .#3 .#4 .#5 .#6 .#7 .#8 .#9]
+puts [concat .#0 .#1 .#2 .#3 .#4 .#5 .#6 .#7 .#8 .#9]
+puts [concat .#0 .#1 .#2 .#3 .#4 .#5 .#6 .#7 .#8 .#9]
+puts [concat .#0 .#1 .#2 .#3 .#4 .#5 .#6 .#7 .#8 .#9]
+puts [concat .#0 .#1 .#2 .#3 .#4 .#5 .#6 .#7 .#8 .#9]
+puts [concat .#0 .#1 .#2 .#3 .#4 .#5 .#6 .#7 .#8 .#9]
+puts [concat .#0 .#1 .#2 .#3 .#4 .#5 .#6 .#7 .#8 .#9]
+puts [concat .#0 .#1 .#2 .#3 .#4 .#5 .#6 .#7 .#8 .#9]
+puts [concat .#0 .#1 .#2 .#3 .#4 .#5 .#6 .#7 .#8 .#9]
+puts [concat .#0 .#1 .#2 .#3 .#4 .#5 .#6 .#7 .#8 .#9]
+puts [concat .#0 .#1 .#2 .#3 .#4 .#5 .#6 .#7 .#8 .#9]
+puts [concat .#0 .#1 .#2 .#3 .#4 .#5 .#6 .#7 .#8 .#9]
+puts [concat .#0 .#1 .#2 .#3 .#4 .#5 .#6 .#7 .#8 .#9]
+puts [concat .#0 .#1 .#2 .#3 .#4 .#5 .#6 .#7 .#8 .#9]
+puts [concat .#0 .#1 .#2 .#3 .#4 .#5 .#6 .#7 .#8 .#9]
+puts [concat .#0 .#1 .#2 .#3 .#4 .#5 .#6 .#7 .#8 .#9]
+puts [concat .#0 .#1 .#2 .#3 .#4 .#5 .#6 .#7 .#8 .#9]
+puts [concat .#0 .#1 .#2 .#3 .#4 .#5 .#6 .#7 .#8 .#9]
+puts [concat .#0 .#1 .#2 .#3 .#4 .#5 .#6 .#7 .#8 .#9]
+puts [concat .#0 .#1 .#2 .#3 .#4 .#5 .#6 .#7 .#8 .#9]
+puts [concat .#0 .#1 .#2 .#3 .#4 .#5 .#6 .#7 .#8 .#9]
+puts [concat .#0 .#1 .#2 .#3 .#4 .#5 .#6 .#7 .#8 .#9]
+puts [concat .#0 .#1 .#2 .#3 .#4 .#5 .#6 .#7 .#8 .#9]
+puts [concat .#0 .#1 .#2 .#3 .#4 .#5 .#6 .#7 .#8 .#9]
+puts [concat .#0 .#1 .#2 .#3 .#4 .#5 .#6 .#7 .#8 .#9]
+puts [concat .#0 .#1 .#2 .#3 .#4 .#5 .#6 .#7 .#8 .#9]
+puts [concat .#0 .#1 .#2 .#3 .#4 .#5 .#6 .#7 .#8 .#9]
+puts [concat .#0 .#1 .#2 .#3 .#4 .#5 .#6 .#7 .#8 .#9]
+puts [concat .#0 .#1 .#2 .#3 .#4 .#5 .#6 .#7 .#8 .#9]
+puts [concat .#0 .#1 .#2 .#3 .#4 .#5 .#6 .#7 .#8 .#9]
+puts [concat .#0 .#1 .#2 .#3 .#4 .#5 .#6 .#7 .#8 .#9]
+puts [concat .#0 .#1 .#2 .#3 .#4 .#5 .#6 .#7 .#8 .#9]
+puts [concat .#0 .#1 .#2 .#3 .#4 .#5 .#6 .#7 .#8 .#9]
+puts [concat .#0 .#1 .#2 .#3 .#4 .#5 .#6 .#7 .#8 .#9]
+puts [concat .#0 .#1 .#2 .#3 .#4 .#5 .#6 .#7 .#8 .#9]
+puts [concat .#0 .#1 .#2 .#3 .#4 .#5 .#6 .#7 .#8 .#9]
+puts [concat .#0 .#1 .#2 .#3 .#4 .#5 .#6 .#7 .#8 .#9]
+puts [concat .#0 .#1 .#2 .#3 .#4 .#5 .#6 .#7 .#8 .#9]
+puts [concat .#0 .#1 .#2 .#3 .#4 .#5 .#6 .#7 .#8 .#9]
+puts [concat .#0 .#1 .#2 .#3 .#4 .#5 .#6 .#7 .#8 .#9]
+puts [concat .#0 .#1 .#2 .#3 .#4 .#5 .#6 .#7 .#8 .#9]
+puts [concat .#0 .#1 .#2 .#3 .#4 .#5 .#6 .#7 .#8 .#9]
+puts [concat .#0 .#1 .#2 .#3 .#4 .#5 .#6 .#7 .#8 .#9]
+puts [concat .#0 .#1 .#2 .#3 .#4 .#5 .#6 .#7 .#8 .#9]
+puts [concat .#0 .#1 .#2 .#3 .#4 .#5 .#6 .#7 .#8 .#9]
+puts [concat .#0 .#1 .#2 .#3 .#4 .#5 .#6 .#7 .#8 .#9]
+puts [concat .#0 .#1 .#2 .#3 .#4 .#5 .#6 .#7 .#8 .#9]
+puts [concat .#0 .#1 .#2 .#3 .#4 .#5 .#6 .#7 .#8 .#9]
+puts [concat .#0 .#1 .#2 .#3 .#4 .#5 .#6 .#7 .#8 .#9]
+puts [concat .#0 .#1 .#2 .#3 .#4 .#5 .#6 .#7 .#8 .#9]
+puts [concat .#0 .#1 .#2 .#3 .#4 .#5 .#6 .#7 .#8 .#9]
+puts [concat .#0 .#1 .#2 .#3 .#4 .#5 .#6 .#7 .#8 .#9]
+puts [concat .#0 .#1 .#2 .#3 .#4 .#5 .#6 .#7 .#8 .#9]
+puts [concat .#0 .#1 .#2 .#3 .#4 .#5 .#6 .#7 .#8 .#9]
+puts [concat .#0 .#1 .#2 .#3 .#4 .#5 .#6 .#7 .#8 .#9]
+puts [concat .#0 .#1 .#2 .#3 .#4 .#5 .#6 .#7 .#8 .#9]
+puts [concat .#0 .#1 .#2 .#3 .#4 .#5 .#6 .#7 .#8 .#9]
+puts [concat .#0 .#1 .#2 .#3 .#4 .#5 .#6 .#7 .#8 .#9]
+puts [concat .#0 .#1 .#2 .#3 .#4 .#5 .#6 .#7 .#8 .#9]
+puts [concat .#0 .#1 .#2 .#3 .#4 .#5 .#6 .#7 .#8 .#9]
+puts [concat .#0 .#1 .#2 .#3 .#4 .#5 .#6 .#7 .#8 .#9]
+puts [concat .#0 .#1 .#2 .#3 .#4 .#5 .#6 .#7 .#8 .#9]
+puts [concat .#0 .#1 .#2 .#3 .#4 .#5 .#6 .#7 .#8 .#9]
+puts [concat .#0 .#1 .#2 .#3 .#4 .#5 .#6 .#7 .#8 .#9]
+puts [concat .#0 .#1 .#2 .#3 .#4 .#5 .#6 .#7 .#8 .#9]
+puts [concat .#0 .#1 .#2 .#3 .#4 .#5 .#6 .#7 .#8 .#9]
+puts [concat .#0 .#1 .#2 .#3 .#4 .#5 .#6 .#7 .#8 .#9]
+puts [concat .#0 .#1 .#2 .#3 .#4 .#5 .#6 .#7 .#8 .#9]
+puts [concat .#0 .#1 .#2 .#3 .#4 .#5 .#6 .#7 .#8 .#9]
+puts [concat .#0 .#1 .#2 .#3 .#4 .#5 .#6 .#7 .#8 .#9]
+puts [concat .#0 .#1 .#2 .#3 .#4 .#5 .#6 .#7 .#8 .#9]
+puts [concat .#0 .#1 .#2 .#3 .#4 .#5 .#6 .#7 .#8 .#9]
+puts [concat .#0 .#1 .#2 .#3 .#4 .#5 .#6 .#7 .#8 .#9]
+puts [concat .#0 .#1 .#2 .#3 .#4 .#5 .#6 .#7 .#8 .#9]
+puts [concat .#0 .#1 .#2 .#3 .#4 .#5 .#6 .#7 .#8 .#9]
+puts [concat .#0 .#1 .#2 .#3 .#4 .#5 .#6 .#7 .#8 .#9]
+puts [concat .#0 .#1 .#2 .#3 .#4 .#5 .#6 .#7 .#8 .#9]
+puts [concat .#0 .#1 .#2 .#3 .#4 .#5 .#6 .#7 .#8 .#9]
+puts [concat .#0 .#1 .#2 .#3 .#4 .#5 .#6 .#7 .#8 .#9]
+puts [concat .#0 .#1 .#2 .#3 .#4 .#5 .#6 .#7 .#8 .#9]
+puts [concat .#0 .#1 .#2 .#3 .#4 .#5 .#6 .#7 .#8 .#9]
+puts [concat .#0 .#1 .#2 .#3 .#4 .#5 .#6 .#7 .#8 .#9]
+puts [concat .#0 .#1 .#2 .#3 .#4 .#5 .#6 .#7 .#8 .#9]
+puts [concat .#0 .#1 .#2 .#3 .#4 .#5 .#6 .#7 .#8 .#9]
+puts [concat .#0 .#1 .#2 .#3 .#4 .#5 .#6 .#7 .#8 .#9]
+puts [concat .#0 .#1 .#2 .#3 .#4 .#5 .#6 .#7 .#8 .#9]
+puts [concat .#0 .#1 .#2 .#3 .#4 .#5 .#6 .#7 .#8 .#9]
+puts [concat .#0 .#1 .#2 .#3 .#4 .#5 .#6 .#7 .#8 .#9]
+puts [concat .#0 .#1 .#2 .#3 .#4 .#5 .#6 .#7 .#8 .#9] \ No newline at end of file
diff --git a/test/toxy/tot-bulk.pd b/test/toxy/tot-bulk.pd
new file mode 100644
index 0000000..cefb622
--- /dev/null
+++ b/test/toxy/tot-bulk.pd
@@ -0,0 +1,67 @@
+#N canvas 309 244 595 546 12;
+#X obj 62 449 pack;
+#X obj 62 387 t b b;
+#X obj 62 356 until;
+#X obj 33 250 makefilename #%x;
+#X obj 33 219 + 256;
+#X obj 33 188 random 3840;
+#X obj 62 418 random 500;
+#X obj 175 418 random 500;
+#X obj 33 126 + 3;
+#X obj 83 6 tgl 15 0 empty empty empty 0 -6 0 8 -262144 -1 -1 0 1;
+#X obj 33 33 metro 500;
+#X obj 157 95 random 10;
+#X obj 157 126 sel 7;
+#X obj 33 64 t b b;
+#X obj 175 449 + 20;
+#X obj 33 6 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1 -1
+;
+#X msg 130 33 tot .^.c delete bulk;
+#X msg 98 544 tot .^.c configure -bg pink;
+#X msg 62 480 add [expr \$1 + .#1] [expr \$2 + .#2];
+#X msg 62 511 debug;
+#X obj 33 285 pack s 0 0;
+#X obj 33 157 t b b b 0 b;
+#X msg 33 320 add -tags bulk -fill \$1 -smooth true \, push \$2 \$3
+;
+#X msg 157 188 reset \, add .^.c create polygon;
+#X obj 261 250 random 150;
+#X obj 201 219 random 100;
+#X obj 201 250 + 10;
+#X obj 33 95 random 700;
+#X obj 33 544 tot .;
+#X connect 0 0 18 0;
+#X connect 1 0 6 0;
+#X connect 1 1 7 0;
+#X connect 2 0 1 0;
+#X connect 3 0 20 0;
+#X connect 4 0 3 0;
+#X connect 5 0 4 0;
+#X connect 6 0 0 0;
+#X connect 7 0 14 0;
+#X connect 8 0 21 0;
+#X connect 9 0 10 0;
+#X connect 10 0 13 0;
+#X connect 11 0 12 0;
+#X connect 12 0 16 0;
+#X connect 13 0 27 0;
+#X connect 13 1 11 0;
+#X connect 14 0 0 1;
+#X connect 15 0 13 0;
+#X connect 16 0 28 0;
+#X connect 17 0 28 0;
+#X connect 18 0 28 0;
+#X connect 19 0 28 0;
+#X connect 20 0 22 0;
+#X connect 21 0 5 0;
+#X connect 21 1 25 0;
+#X connect 21 2 24 0;
+#X connect 21 3 2 0;
+#X connect 21 4 23 0;
+#X connect 22 0 28 0;
+#X connect 23 0 28 0;
+#X connect 24 0 20 2;
+#X connect 25 0 26 0;
+#X connect 26 0 20 1;
+#X connect 27 0 8 0;
+#X connect 28 3 17 0;
diff --git a/test/toxy/tot-cover.pd b/test/toxy/tot-cover.pd
new file mode 100644
index 0000000..267c22d
--- /dev/null
+++ b/test/toxy/tot-cover.pd
@@ -0,0 +1,87 @@
+#N canvas 392 177 590 367 12;
+#X msg 58 239 cover;
+#X msg 125 239 uncover;
+#N canvas 354 120 500 400 cv 1;
+#X restore 16 12 pd cv;
+#X obj 16 305 tot cv;
+#X obj 258 225 snapshot~;
+#X obj 481 225 snapshot~;
+#X obj 258 283 pack;
+#X obj 393 195 metro 50;
+#X obj 393 170 tgl 15 0 empty empty empty 0 -6 0 8 -262144 -1 -1 0
+1;
+#X obj 481 254 * 5;
+#X obj 258 254 * 5;
+#X msg 308 12 0 \; pd dsp 0;
+#X msg 199 12 1 \; pd dsp 1;
+#X obj 363 193 tgl 15 0 empty empty empty 0 -6 0 8 -262144 -1 -1 0
+1;
+#X obj 363 225 metro 500;
+#X obj 363 254 random 20;
+#X obj 258 170 osc~ 3;
+#X obj 481 170 osc~ 7;
+#X obj 199 62 pipe 3000;
+#X msg 122 58 stop;
+#X msg 122 29 bang;
+#X obj 16 62 delay 5000;
+#N canvas 80 35 613 356 commands 0;
+#X obj 25 13 inlet;
+#X obj 25 198 route cover uncover;
+#X obj 25 306 outlet;
+#X obj 48 46 loadbang;
+#X msg 25 226 tot tot_cover .^.c [ expr .~x2 - .~x1 ] [ expr .~y2 -
+.~y1 ];
+#X msg 42 259 tot if .( [winfo exists .^.c.cover] .) .( destroy .^.c.cover
+.);
+#X obj 48 145 tot .;
+#X msg 48 78 tot proc tot_cover .( cv wd ht .) .( if .( [expr ![winfo
+exists $cv.cover]] .) .( canvas $cv.cover -width $wd -height $ht -bg
+red -bd 0 .: pack $cv.cover .) .);
+#X connect 0 0 1 0;
+#X connect 1 0 4 0;
+#X connect 1 1 5 0;
+#X connect 3 0 7 0;
+#X connect 4 0 2 0;
+#X connect 5 0 2 0;
+#X connect 7 0 6 0;
+#X restore 58 268 pd commands;
+#X msg 16 91 tot .^.c create polygon 50 50 170 130 400 70 50 50 -fill
+#abcdef -tags t1 \, tot .^.c create text 200 90 -text "hide me" -font
+"times 24" -fill #fedcba -tags t1;
+#X msg 34 170 tot .^.c delete t1;
+#X msg 43 202 tot .^.c move t1 \$1 \$2;
+#X msg 65 336 tot .^.c configure -bg red;
+#X connect 0 0 22 0;
+#X connect 1 0 22 0;
+#X connect 3 3 26 0;
+#X connect 4 0 10 0;
+#X connect 5 0 9 0;
+#X connect 6 0 25 0;
+#X connect 7 0 4 0;
+#X connect 7 0 5 0;
+#X connect 8 0 7 0;
+#X connect 9 0 6 1;
+#X connect 10 0 6 0;
+#X connect 11 0 8 0;
+#X connect 11 0 24 0;
+#X connect 11 0 13 0;
+#X connect 11 0 19 0;
+#X connect 12 0 23 0;
+#X connect 12 0 18 0;
+#X connect 13 0 14 0;
+#X connect 14 0 15 0;
+#X connect 15 0 10 1;
+#X connect 15 0 9 1;
+#X connect 16 0 4 0;
+#X connect 17 0 5 0;
+#X connect 18 0 13 0;
+#X connect 18 0 8 0;
+#X connect 19 0 21 0;
+#X connect 20 0 21 0;
+#X connect 21 0 23 0;
+#X connect 22 0 3 0;
+#X connect 23 0 3 0;
+#X connect 23 0 20 0;
+#X connect 24 0 3 0;
+#X connect 25 0 3 0;
+#X connect 26 0 3 0;
diff --git a/test/toxy/tot-files.pd b/test/toxy/tot-files.pd
new file mode 100644
index 0000000..b21fd41
--- /dev/null
+++ b/test/toxy/tot-files.pd
@@ -0,0 +1,29 @@
+#N canvas 331 164 627 378 12;
+#X msg 33 336 debug;
+#X msg 83 178 tot puts [concat .#0 .#1 .#9 .#: .^.c ];
+#X msg 62 143 reset \, add puts [concat .#0 .#1 .#9 .#: .^.c];
+#X msg 276 306 push a b c;
+#X msg 276 335 push;
+#X msg 276 277 push a b c d e f g h i j k l m n;
+#X msg 100 216 write;
+#X msg 113 245 read;
+#X msg 171 245 read test1.tot;
+#X msg 171 216 write test1.tot;
+#X obj 37 51 until;
+#X msg 37 22 300;
+#X msg 37 86 addnext puts [concat .#0 .#1 .#2 .#3 .#4 .#5 .#6 .#7 .#8
+.#9];
+#X obj 96 336 tot . test1.tot;
+#X connect 0 0 13 0;
+#X connect 1 0 13 0;
+#X connect 2 0 13 0;
+#X connect 3 0 13 0;
+#X connect 4 0 13 0;
+#X connect 5 0 13 0;
+#X connect 6 0 13 0;
+#X connect 7 0 13 0;
+#X connect 8 0 13 0;
+#X connect 9 0 13 0;
+#X connect 10 0 12 0;
+#X connect 11 0 10 0;
+#X connect 12 0 13 0;
diff --git a/test/toxy/tot-head.pd b/test/toxy/tot-head.pd
new file mode 100644
index 0000000..d5e5ec6
--- /dev/null
+++ b/test/toxy/tot-head.pd
@@ -0,0 +1,17 @@
+#N canvas 7 0 606 345 12;
+#X obj 38 156 -;
+#X floatatom 36 83 5 0 0 0 - - -;
+#X obj 36 122 t 0 0;
+#X msg 38 191 tot .^.c move head \$1 0;
+#X msg 54 224 tot .^.c delete head;
+#X msg 21 18 tot global margin .: set margin 3 .: .^.c create line
+300 $margin 300 [expr .~y2 - .~y1 - 2 * $margin ] -tags head;
+#X obj 21 264 tot .;
+#X connect 0 0 3 0;
+#X connect 1 0 2 0;
+#X connect 2 0 0 1;
+#X connect 2 1 0 0;
+#X connect 3 0 6 0;
+#X connect 4 0 6 0;
+#X connect 5 0 6 0;
+#X connect 6 3 5 0;
diff --git a/test/toxy/tot-monkey.pd b/test/toxy/tot-monkey.pd
new file mode 100644
index 0000000..2128ae8
--- /dev/null
+++ b/test/toxy/tot-monkey.pd
@@ -0,0 +1,50 @@
+#N canvas 199 254 540 290 12;
+#X obj 198 62 tgl 15 0 empty empty empty 0 -6 0 8 -262144 -1 -1 1 1
+;
+#X msg 41 62 capture \$1;
+#X obj 99 171 unpack 0 0 0;
+#X floatatom 99 212 5 0 0 0 - - -;
+#X floatatom 150 212 5 0 0 0 - - -;
+#X floatatom 202 212 5 0 0 0 - - -;
+#X obj 99 136 route motion mouseup mouse key;
+#X msg 260 171 \$1;
+#X obj 260 212 tgl 15 0 empty empty empty 0 -6 0 8 -262144 -1 -1 1
+1;
+#X obj 297 208 route float;
+#X msg 297 171 \$2;
+#X floatatom 297 242 5 0 0 0 - - -;
+#X obj 364 171 print other;
+#N canvas 10 26 352 252 dux 1;
+#X obj 30 20 vsl 15 128 0 127 0 0 empty empty empty 0 -8 0 8 -262144
+-1 -1 0 1;
+#X obj 84 19 hsl 128 15 0 127 0 0 empty empty empty -2 -6 0 8 -262144
+-1 -1 0 1;
+#X text 29 222 do some editing here \, too;
+#X restore 248 32 pd dux;
+#N canvas 408 26 352 252 comes 1;
+#X obj 30 20 vsl 15 128 0 127 0 0 empty empty empty 0 -8 0 8 -262144
+-1 -1 0 1;
+#X obj 84 19 hsl 128 15 0 127 0 0 empty empty empty -2 -6 0 8 -262144
+-1 -1 0 1;
+#X restore 326 32 pd comes;
+#X obj 41 97 tot dux;
+#X obj 79 242 s pd-comes;
+#X msg 121 97 1;
+#X connect 0 0 1 0;
+#X connect 1 0 15 0;
+#X connect 2 0 3 0;
+#X connect 2 1 4 0;
+#X connect 2 2 5 0;
+#X connect 6 0 2 0;
+#X connect 6 1 2 0;
+#X connect 6 2 2 0;
+#X connect 6 3 7 0;
+#X connect 6 3 10 0;
+#X connect 6 4 12 0;
+#X connect 7 0 8 0;
+#X connect 9 0 11 0;
+#X connect 10 0 9 0;
+#X connect 15 2 16 0;
+#X connect 15 2 6 0;
+#X connect 15 3 17 0;
+#X connect 17 0 0 0;
diff --git a/test/toxy/tot-nomenu.pd b/test/toxy/tot-nomenu.pd
new file mode 100644
index 0000000..f2becca
--- /dev/null
+++ b/test/toxy/tot-nomenu.pd
@@ -0,0 +1,12 @@
+#N canvas 128 254 589 218 12;
+#X obj 13 175 tot nomenu;
+#N canvas 329 49 450 300 nomenu 1;
+#X restore 12 16 pd nomenu;
+#X msg 54 142 debug;
+#X msg 13 57 tot destroy .^.m \, tot bind .^.c <Control-Key> "";
+#X msg 41 92 tot global sz .: set sz [wm maxsize .^] .: wm geometry
+.^ [expr [lindex $sz 0] - 20]x[expr [lindex $sz 1] - 20]+20+20;
+#X connect 0 3 3 0;
+#X connect 2 0 0 0;
+#X connect 3 0 0 0;
+#X connect 4 0 0 0;
diff --git a/test/toxy/tot-qlist.pd b/test/toxy/tot-qlist.pd
new file mode 100644
index 0000000..24f7ba6
--- /dev/null
+++ b/test/toxy/tot-qlist.pd
@@ -0,0 +1,59 @@
+#N canvas 250 295 422 249 12;
+#X obj 75 126 qlist;
+#N canvas 59 33 296 202 src 1;
+#X restore 15 186 pd src;
+#N canvas 407 33 296 202 dst 1;
+#X restore 15 216 pd dst;
+#X obj 37 24 tgl 15 0 empty empty empty 0 -6 0 8 -262144 -1 -1 0 1
+;
+#X msg 16 126 print;
+#X obj 37 89 tot src;
+#X msg 139 89 rewind;
+#X msg 37 54 capture \$1 pd-dst;
+#X msg 271 54 read tot.ql;
+#X msg 270 89 write tot.ql;
+#X obj 271 20 loadbang;
+#X obj 139 156 tot dst;
+#X obj 209 54 t b b;
+#X msg 249 126 detach;
+#X msg 139 126 attach;
+#X obj 332 126 r pd-dst;
+#X obj 332 156 s pd-src;
+#X obj 249 156 tot src;
+#X obj 148 216 spigot;
+#X obj 258 216 spigot;
+#X obj 209 24 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1
+-1;
+#X msg 216 216 0;
+#X msg 197 186 1;
+#X msg 307 186 1;
+#X connect 0 1 14 0;
+#X connect 3 0 7 0;
+#X connect 4 0 0 0;
+#X connect 5 2 0 0;
+#X connect 6 0 0 0;
+#X connect 6 0 14 0;
+#X connect 7 0 5 0;
+#X connect 8 0 0 0;
+#X connect 9 0 0 0;
+#X connect 10 0 8 0;
+#X connect 11 3 22 0;
+#X connect 11 3 19 0;
+#X connect 12 0 0 0;
+#X connect 12 1 13 0;
+#X connect 13 0 11 0;
+#X connect 13 0 17 0;
+#X connect 14 0 11 0;
+#X connect 14 0 17 0;
+#X connect 15 0 16 0;
+#X connect 17 3 23 0;
+#X connect 17 3 18 0;
+#X connect 18 0 12 0;
+#X connect 18 0 21 0;
+#X connect 19 0 12 0;
+#X connect 19 0 21 0;
+#X connect 20 0 12 0;
+#X connect 21 0 18 1;
+#X connect 21 0 19 1;
+#X connect 22 0 18 1;
+#X connect 23 0 19 1;
diff --git a/test/toxy/tot-query.pd b/test/toxy/tot-query.pd
new file mode 100644
index 0000000..d646f78
--- /dev/null
+++ b/test/toxy/tot-query.pd
@@ -0,0 +1,62 @@
+#N canvas 421 109 778 551 12;
+#X msg 21 8 symbol pinecone;
+#X obj 455 142 tgl 15 0 empty empty empty 0 -6 0 8 -262144 -1 -1 0
+1;
+#X msg 186 8 symbol conehead;
+#X obj 67 174 sel 1;
+#X obj 128 238 sel 0;
+#X obj 128 339 print error;
+#X obj 199 238 metro 150;
+#X msg 128 311 open it first...;
+#X msg 54 124 tot global ch .: set ch [open ~/PureData/miXed/test/toxy/tot-query.pd
+r];
+#X msg 75 435 query concat set [lsort -decreasing [glob *]];
+#X msg 37 90 reset \, addnext set x -1 .: concat set [expr acos($x)]
+\, qpush;
+#X msg 21 44 tot global ans .: regsub cone \$1 apple ans \, query global
+ans .: concat set $ans;
+#X msg 60 369 tot global ch .: set ch [open ~/.pdrc] \, query global
+ch .: concat set [read $ch] \, tot global ch .: close $ch .: unset
+ch;
+#X msg 199 266 tot global txt ch .: set txt [gets $ch] \, query global
+txt .: concat set $txt;
+#N canvas 0 0 578 346 more 0;
+#X msg 35 73 query .^.c bbox foo;
+#X obj 19 280 print reply;
+#X msg 84 152 query winfo id .^.c;
+#X msg 84 231 query winfo pathname \$1;
+#X msg 19 26 tot .^.c create text 400 100 -width 80 -font "times 24"
+-anchor nw -text "abcd efgh ijkl mnop" -tags foo;
+#X msg 48 104 tot .^.c delete foo;
+#X obj 19 231 tot .;
+#X obj 84 191 tot .;
+#X connect 0 0 6 0;
+#X connect 2 0 7 0;
+#X connect 3 0 6 0;
+#X connect 4 0 6 0;
+#X connect 5 0 6 0;
+#X connect 6 0 1 0;
+#X connect 7 0 3 0;
+#X restore 576 174 pd more;
+#X obj 21 468 tot .;
+#X obj 67 238 tot .;
+#X msg 67 202 tot eval .< [global ch .: info exists ch] .>;
+#X msg 21 502;
+#X connect 0 0 11 0;
+#X connect 1 0 3 0;
+#X connect 2 0 11 0;
+#X connect 3 0 17 0;
+#X connect 3 1 6 0;
+#X connect 4 0 7 0;
+#X connect 4 1 6 0;
+#X connect 6 0 13 0;
+#X connect 7 0 5 0;
+#X connect 8 0 15 0;
+#X connect 9 0 15 0;
+#X connect 10 0 15 0;
+#X connect 11 0 15 0;
+#X connect 12 0 15 0;
+#X connect 13 0 15 0;
+#X connect 15 0 18 0;
+#X connect 16 1 4 0;
+#X connect 17 0 16 0;
diff --git a/test/toxy/tot-rstring.pd b/test/toxy/tot-rstring.pd
new file mode 100644
index 0000000..24d1e1c
--- /dev/null
+++ b/test/toxy/tot-rstring.pd
@@ -0,0 +1,15 @@
+#N canvas 254 48 671 300 12;
+#X obj 21 179 tot .;
+#X obj 164 77 tosymbol;
+#X msg 50 77 123456;
+#X msg 21 124 query set lst [list] .: foreach el [split " \$1 " ""]
+.(set lst [linsert $lst 0 $el].) .: concat set [join $lst ""];
+#X msg 164 40 One Two Three;
+#X msg 21 40 symbol abcdef;
+#X msg 21 221;
+#X connect 0 0 6 0;
+#X connect 1 0 3 0;
+#X connect 2 0 3 0;
+#X connect 3 0 0 0;
+#X connect 4 0 1 0;
+#X connect 5 0 3 0;
diff --git a/test/toxy/tot.ql b/test/toxy/tot.ql
new file mode 100644
index 0000000..fa2b22e
--- /dev/null
+++ b/test/toxy/tot.ql
@@ -0,0 +1,186 @@
+590.4762 pd-dst motion 70 11 0;
+64.58 pd-dst text 0;
+0 pd-dst motion 117 114 0;
+1.45125 pd-dst motion 115 114 0;
+68.2086 pd-dst motion 103 110 0;
+23.22 pd-dst motion 87 106 0;
+17.415 pd-dst motion 65 98 0;
+23.22 pd-dst motion 53 92 0;
+29.0249 pd-dst motion 47 90 0;
+58.0499 pd-dst motion 47 89 0;
+29.0249 pd-dst motion 47 88 0;
+23.22 pd-dst motion 47 87 0;
+68.345 pd-dst motion 48 87 0;
+29.0249 pd-dst motion 50 87 0;
+23.22 pd-dst motion 53 87 0;
+17.415 pd-dst motion 59 85 0;
+23.22 pd-dst motion 63 79 0;
+17.415 pd-dst motion 63 78 0;
+69.6599 pd-dst motion 62 78 0;
+29.0249 pd-dst motion 61 76 0;
+23.22 pd-dst motion 55 70 0;
+17.415 pd-dst motion 49 66 0;
+23.22 pd-dst motion 45 62 0;
+29.0249 pd-dst motion 43 61 0;
+50 pd-dst key 1 32 0;
+50 pd-dst key 0 32 0;
+59.773 pd-dst mouse 43 61 1 0;
+76.9161 pd-dst mouseup 43 61 1;
+0 pd-dst relocate 298x204+0+0 319x225+99+33;
+63.8549 pd-dst motion 44 61 0;
+17.415 pd-dst motion 47 61 0;
+21.7687 pd-dst motion 55 63 0;
+18.8662 pd-dst motion 63 65 0;
+29.0249 pd-dst motion 66 65 0;
+23.22 pd-dst motion 67 65 0;
+451.25 pd-dst key 1 116 0;
+75.4649 pd-dst key 1 101 0;
+74.0136 pd-dst key 0 116 0;
+47.8912 pd-dst key 1 115 0;
+29.0249 pd-dst key 0 101 0;
+46.4399 pd-dst key 0 115 0;
+95.283 pd-dst key 1 116 0;
+69.6599 pd-dst key 0 116 0;
+23.22 pd-dst key 1 105 0;
+75.4649 pd-dst key 1 110 0;
+46.4399 pd-dst key 0 105 0;
+69.6599 pd-dst key 0 110 0;
+77.551 pd-dst key 1 103 0;
+50.7937 pd-dst key 0 103 0;
+88.934 pd-dst key 1 32 0;
+75.4649 pd-dst key 0 32 0;
+36.689 pd-dst key 1 116 0;
+75.4649 pd-dst key 0 116 0;
+69.6599 pd-dst key 1 111 0;
+76.9161 pd-dst key 0 111 0;
+21.7687 pd-dst key 1 116 0;
+29.0249 pd-dst key 0 116 0;
+48.844 pd-dst key 1 39 0;
+46.4399 pd-dst key 1 115 0;
+29.0249 pd-dst key 0 39 0;
+52.2449 pd-dst key 0 115 0;
+57.823 pd-dst key 1 32 0;
+75.4649 pd-dst key 0 32 0;
+88.934 pd-dst key 1 113 0;
+75.4649 pd-dst key 0 113 0;
+81.2698 pd-dst key 1 108 0;
+75.4649 pd-dst key 1 105 0;
+29.0249 pd-dst key 0 108 0;
+69.6599 pd-dst key 0 105 0;
+23.22 pd-dst key 1 115 0;
+52.2449 pd-dst key 0 115 0;
+69.6599 pd-dst key 1 116 0;
+75.4649 pd-dst key 0 116 0;
+70.204 pd-dst key 1 32 0;
+63.8549 pd-dst key 0 32 0;
+58.594 pd-dst key 1 102 0;
+21.905 pd-dst key 0 102 0;
+17.415 pd-dst key 1 97 0;
+29.0249 pd-dst key 0 97 0;
+267.029 pd-dst key 1 99 0;
+52.2449 pd-dst key 0 99 0;
+69.6599 pd-dst key 1 105 0;
+69.6599 pd-dst key 0 105 0;
+36.689 pd-dst key 1 108 0;
+92.8798 pd-dst key 1 105 0;
+26.1224 pd-dst key 0 108 0;
+49.3424 pd-dst key 0 105 0;
+75.4649 pd-dst key 1 116 0;
+52.2449 pd-dst key 0 116 0;
+92.8798 pd-dst key 1 121 0;
+46.4399 pd-dst key 0 121 0;
+399.773 pd-dst motion 67 66 0;
+17.415 pd-dst motion 85 86 0;
+23.22 pd-dst motion 105 102 0;
+17.415 pd-dst motion 115 104 0;
+69.6599 pd-dst motion 116 104 0;
+21.905 pd-dst mouse 116 104 1 0;
+69.6599 pd-dst mouseup 116 104 1;
+280.86 pd-dst motion 117 104 0;
+20.3175 pd-dst motion 129 94 0;
+17.415 pd-dst motion 143 82 0;
+23.22 pd-dst motion 157 72 0;
+17.415 pd-dst motion 169 66 0;
+29.0249 pd-dst motion 171 65 0;
+72.063 pd-dst mouse 171 65 1 0;
+52.2449 pd-dst motion 170 65 0;
+29.0249 pd-dst motion 156 65 0;
+17.415 pd-dst motion 138 65 0;
+23.22 pd-dst motion 126 67 0;
+17.415 pd-dst motion 116 69 0;
+23.22 pd-dst motion 112 73 0;
+29.0249 pd-dst motion 111 74 0;
+17.415 pd-dst motion 110 76 0;
+23.22 pd-dst motion 110 84 0;
+17.415 pd-dst motion 110 94 0;
+29.0249 pd-dst motion 112 102 0;
+23.22 pd-dst motion 116 108 0;
+17.415 pd-dst motion 124 112 0;
+23.22 pd-dst motion 136 116 0;
+29.0249 pd-dst motion 152 116 0;
+17.415 pd-dst motion 170 116 0;
+23.22 pd-dst motion 178 110 0;
+17.415 pd-dst motion 182 100 0;
+23.22 pd-dst motion 182 97 0;
+29.0249 pd-dst motion 180 91 0;
+17.415 pd-dst motion 177 91 0;
+23.22 pd-dst motion 174 91 0;
+17.415 pd-dst motion 172 90 0;
+29.0249 pd-dst motion 166 88 0;
+23.22 pd-dst motion 156 84 0;
+17.415 pd-dst motion 148 82 0;
+23.22 pd-dst motion 146 81 0;
+29.0249 pd-dst motion 145 80 0;
+52.2449 pd-dst motion 145 79 0;
+17.415 pd-dst motion 145 65 0;
+23.22 pd-dst motion 147 41 0;
+17.415 pd-dst motion 147 15 0;
+17.415 pd-dst motion 147 7 0;
+81.2698 pd-dst motion 147 8 0;
+23.22 pd-dst motion 149 14 0;
+17.415 pd-dst motion 157 22 0;
+29.0249 pd-dst motion 167 28 0;
+23.22 pd-dst motion 175 44 0;
+17.415 pd-dst motion 183 64 0;
+23.22 pd-dst motion 183 80 0;
+17.415 pd-dst motion 181 92 0;
+29.0249 pd-dst motion 173 104 0;
+23.22 pd-dst motion 163 114 0;
+17.415 pd-dst motion 157 118 0;
+23.22 pd-dst motion 154 118 0;
+29.0249 pd-dst motion 148 120 0;
+17.415 pd-dst motion 145 120 0;
+23.22 pd-dst motion 139 118 0;
+17.415 pd-dst motion 133 110 0;
+29.0249 pd-dst motion 133 100 0;
+23.22 pd-dst motion 133 86 0;
+17.415 pd-dst motion 133 72 0;
+23.22 pd-dst motion 133 64 0;
+17.415 pd-dst motion 137 58 0;
+29.0249 pd-dst motion 139 57 0;
+23.22 pd-dst motion 141 56 0;
+17.415 pd-dst motion 143 56 0;
+23.22 pd-dst motion 151 62 0;
+29.0249 pd-dst motion 157 72 0;
+17.415 pd-dst motion 159 80 0;
+23.22 pd-dst motion 159 88 0;
+17.415 pd-dst motion 159 90 0;
+29.0249 pd-dst motion 157 91 0;
+23.22 pd-dst motion 156 91 0;
+17.415 pd-dst motion 155 91 0;
+23.22 pd-dst motion 155 89 0;
+29.0249 pd-dst motion 155 88 0;
+36.689 pd-dst mouseup 155 88 1;
+52.2449 pd-dst motion 155 89 0;
+17.415 pd-dst motion 167 101 0;
+23.22 pd-dst motion 177 111 0;
+29.0249 pd-dst motion 185 127 0;
+17.415 pd-dst motion 187 133 0;
+59.138 pd-dst mouse 187 133 1 0;
+69.6599 pd-dst mouseup 187 133 1;
+23.22 pd-dst motion 188 133 0;
+46.4399 pd-dst motion 189 133 0;
+74.15 pd-dst motion 189 134 0;
+29.0249 pd-dst motion 188 136 0;
+17.415 pd-dst motion 184 154 0;
+23.22 pd-dst motion 178 194 0;
diff --git a/test/toxy/tow-test.pd b/test/toxy/tow-test.pd
new file mode 100644
index 0000000..d0a8c95
--- /dev/null
+++ b/test/toxy/tow-test.pd
@@ -0,0 +1,65 @@
+#N canvas 275 304 262 189 12;
+#N canvas 23 43 450 305 panel 1;
+#X obj 37 49 widget float f -bg orange;
+#X floatatom 37 273 5 0 0 0 - - -;
+#X floatatom 37 15 5 0 0 0 - - -;
+#X obj 269 49 widget bang b1;
+#X msg 269 15 bang;
+#X obj 269 126 tgl 15 0 empty empty empty 0 -6 0 8 -262144 -1 -1 0
+1;
+#X obj 104 49 widget float f -bg orange;
+#X floatatom 104 273 5 0 0 0 - - -;
+#X floatatom 104 15 5 0 0 0 - - -;
+#X obj 267 195 widget bang b2 -bg violet;
+#X obj 267 273 tgl 15 0 empty empty empty 0 -6 0 8 -262144 -1 -1 0
+1;
+#X msg 267 160 bang;
+#X connect 0 0 1 0;
+#X connect 2 0 0 0;
+#X connect 3 0 5 0;
+#X connect 4 0 3 0;
+#X connect 6 0 7 0;
+#X connect 8 0 6 0;
+#X connect 9 0 10 0;
+#X connect 11 0 9 0;
+#X restore 21 32 pd panel;
+#N canvas 329 98 450 310 guts 1;
+#X msg 253 123 bang;
+#X obj 253 279 tgl 15 0 empty empty empty 0 -6 0 8 -262144 -1 -1 0
+1;
+#X msg 72 56 bang;
+#X obj 136 123 tgl 15 0 empty empty empty 0 -6 0 8 -262144 -1 -1 0
+1;
+#X obj 136 88 tow panel bang b1;
+#X obj 253 245 tow panel bang b2;
+#X msg 280 215 debug;
+#X msg 280 183 -bg violet;
+#X msg 262 153 -bg white;
+#X obj 29 245 tow panel float f;
+#X floatatom 29 279 5 0 0 0 - - -;
+#X floatatom 29 123 5 0 0 0 - - -;
+#X msg 63 215 debug;
+#X msg 63 183 -bg orange;
+#X msg 50 153 -bg brown;
+#X obj 136 21 loadbang;
+#X msg 136 56 ini .^.c configure -bg darkgreen;
+#X connect 0 0 5 0;
+#X connect 2 0 4 0;
+#X connect 4 0 3 0;
+#X connect 5 0 1 0;
+#X connect 6 0 5 0;
+#X connect 7 0 5 0;
+#X connect 8 0 5 0;
+#X connect 9 0 10 0;
+#X connect 11 0 9 0;
+#X connect 12 0 9 0;
+#X connect 13 0 9 0;
+#X connect 14 0 9 0;
+#X connect 15 0 16 0;
+#X connect 16 0 4 0;
+#X restore 120 32 pd guts;
+#X obj 21 105 tow panel float f;
+#X floatatom 21 139 5 0 0 0 - - -;
+#X floatatom 21 72 5 0 0 0 - - -;
+#X connect 2 0 3 0;
+#X connect 4 0 2 0;