Commit f0bfa151 authored by Ivica Bukvic's avatar Ivica Bukvic
Browse files

Merge branch 'master' of git://github.com/pd-l2ork/pd

parents 5c1d8c6b a63e1049
#N struct rcurver float x float y float x1 float y1 float ax float
ay float bx float by float zx float zy float r float g float b;
#N canvas 0 19 813 591 10;
#X obj 92 363 cnv 15 461 213 empty empty empty 20 12 0 14 -33289 -66577
#N canvas -9 19 813 626 10;
#X obj 92 401 cnv 15 461 213 empty empty empty 20 12 0 14 -33289 -66577
0;
#X scalar rcurver 150 401 30 123 -31 135 21 -12 -28 -5 255 40 100 \;
#X scalar rcurver 150 439 42 137 -18 141 29 -3 -29 -2 255 40 100 \;
;
#X obj 95 69 loadbang;
#X obj 95 114 draw path M x1 y1 C ax ay bx by zx zy;
#X obj 95 177 draw path M x1 y1 L ax ay M bx by L zx zy;
#X msg 95 156 stroke #ccc \, stroke-dasharray 1 1;
#X obj 95 135 loadbang;
#X scalar rcurver 250 404 30 123 -31 135 20 -13 -28 -5 80 2 150 \;
#X scalar rcurver 250 442 23 125 -31 135 23 -9 -28 -5 80 2 150 \;;
#X scalar rcurver 365 445 18 131 -31 135 18 -10 -39 -5 150 6 50 \;
;
#X scalar rcurver 365 407 42 128 -31 135 18 -10 -39 -5 150 6 50 \;
;
#X scalar rcurver 480 403 34 136 -32 143 17 -9 -37 -5 70 255 60 \;
#X scalar rcurver 480 441 34 136 -32 143 17 -9 -37 -5 70 255 60 \;
;
#X obj 95 17 struct rcurver float x float y float x1 float y1 float
ax float ay float bx float by float zx float zy float r float g float
b;
#X obj 95 198 draw circle x1 y1 5;
#X obj 95 219 draw circle ax ay 5;
#X obj 95 240 draw circle bx by 5;
#X obj 95 261 draw circle zx zy 5;
#X obj 16 152 loadbang;
#X msg 16 173 fill white;
#X obj 95 228 draw circle x1 y1 5;
#X obj 95 269 draw circle ax ay 5;
#X obj 95 310 draw circle bx by 5;
#X obj 95 351 draw circle zx zy 5;
#X obj 16 182 loadbang;
#X text 424 112 Raphael Curver;
#X text 424 112 ______________;
#X text 424 322 So \, though it makes this patch easier to write \,
a more powerful method of defining interactive behavior is needed.
;
#X text 575 392 <- Click and drag the white circles;
#X text 575 430 <- Click and drag the white circles;
#X text 424 132 This is an interesting demo for two reasons. First
\, aside from the loadbangs it is completely declarative. We just define
some variables and put them in the drawing instructions. Second \,
......@@ -46,12 +44,23 @@ At present you can't define any other behavior-- only turn off mouse
interaction altogether.;
#X msg 95 90 stroke-width 4 \, stroke-linecap 1 \, stroke r g b \,
fill "";
#X connect 2 0 23 0;
#X msg 16 203 fill white \, mousedown 1 \, drag 1;
#X obj 95 249 drag-event rcurver x1 y1;
#X text 465 24 Note: this can be improved with a set method for [set]: the
[drag-event] abstraction can be removed;
#X obj 95 289 drag-event rcurver ax ay;
#X obj 95 329 drag-event rcurver bx by;
#X obj 95 373 drag-event rcurver zx zy;
#X connect 2 0 22 0;
#X connect 5 0 4 0;
#X connect 6 0 5 0;
#X connect 15 0 16 0;
#X connect 16 0 11 0;
#X connect 16 0 12 0;
#X connect 16 0 13 0;
#X connect 16 0 14 0;
#X connect 23 0 3 0;
#X connect 11 0 24 0;
#X connect 12 0 26 0;
#X connect 13 0 27 0;
#X connect 14 0 28 0;
#X connect 15 0 23 0;
#X connect 22 0 3 0;
#X connect 23 0 11 0;
#X connect 23 0 12 0;
#X connect 23 0 13 0;
#X connect 23 0 14 0;
#N canvas 433 184 450 300 10;
#X obj 81 25 inlet;
#X obj 81 46 route drag;
#X obj 228 89 unpack p;
#X obj 81 67 trigger anything anything;
#X obj 81 157 +;
#X obj 134 110 get \$1 \$2;
#X obj 81 196 set \$1 \$2;
#X msg 81 109 \$3;
#X connect 0 0 1 0;
#X connect 1 0 3 0;
#X connect 2 0 5 0;
#X connect 2 0 6 1;
#X connect 3 0 7 0;
#X connect 3 1 2 0;
#X connect 4 0 6 0;
#X connect 5 0 4 1;
#X connect 7 0 4 0;
#N canvas 433 184 450 300 10;
#X obj 81 25 inlet;
#X obj 81 46 route drag;
#X obj 81 196 set \$1 \$2 \$3;
#X obj 134 110 get \$1 \$2 \$3;
#X obj 228 89 unpack p;
#X obj 81 67 trigger anything anything;
#X msg 81 89 \$2 \$3;
#X obj 81 110 unpack;
#X obj 81 157 +;
#X obj 125 156 +;
#X connect 0 0 1 0;
#X connect 1 0 5 0;
#X connect 3 0 8 1;
#X connect 3 1 9 1;
#X connect 4 0 3 0;
#X connect 4 0 2 2;
#X connect 5 0 6 0;
#X connect 5 1 4 0;
#X connect 6 0 7 0;
#X connect 7 0 8 0;
#X connect 7 1 9 0;
#X connect 8 0 2 0;
#X connect 9 0 2 1;
......@@ -31,14 +31,14 @@ opacity float r float g float b float sw;
#X connect 13 0 10 0;
#X restore 33 19 pd targets;
#X scalar targets 33 9 \;;
#N canvas 197 100 645 479 movers 0;
#N canvas 710 109 645 479 movers 0;
#X obj 119 250 loadbang;
#X obj 119 312 draw circle x1 y1 20;
#X obj 119 52 route click;
#X obj 119 73 trigger anything anything;
#X obj 298 151 print junk;
#X obj 238 117 unpack p f;
#N canvas 262 48 644 608 animate 0;
#N canvas 465 39 644 608 animate 0;
#X obj 40 13 inlet;
#X obj 168 60 inlet;
#X obj 40 124 line;
......@@ -194,15 +194,13 @@ opacity float r float g float b float sw;
#X connect 7 0 8 0;
#X connect 8 0 1 0;
#X restore 116 235 pd backout;
#N canvas 801 333 450 366 elastic 0;
#N canvas 297 236 450 366 elastic 0;
#X obj 112 20 inlet;
#X obj 111 320 outlet;
#X obj 112 59 sel 0 1;
#X obj 112 89 f 0;
#X obj 139 89 f 1;
#X msg 313 121 pi;
#X obj 313 142 pdinfo;
#X obj 313 163 * 2;
#X obj 313 142 * 2;
#X obj 212 121 * -10;
#X obj 180 122 f 2;
#X obj 182 162 pow;
......@@ -213,28 +211,28 @@ opacity float r float g float b float sw;
#X obj 184 259 *;
#X obj 184 280 + 1;
#X obj 180 88 t b a a b;
#X obj 313 121 float 3.14159;
#X connect 0 0 2 0;
#X connect 2 0 3 0;
#X connect 2 1 4 0;
#X connect 2 2 17 0;
#X connect 2 2 15 0;
#X connect 3 0 1 0;
#X connect 4 0 1 0;
#X connect 5 0 6 0;
#X connect 6 0 7 0;
#X connect 7 0 12 1;
#X connect 8 0 10 1;
#X connect 5 0 10 1;
#X connect 6 0 8 1;
#X connect 7 0 8 0;
#X connect 8 0 13 0;
#X connect 9 0 10 0;
#X connect 10 0 15 0;
#X connect 10 0 11 0;
#X connect 11 0 12 0;
#X connect 12 0 13 0;
#X connect 12 0 13 1;
#X connect 13 0 14 0;
#X connect 14 0 15 1;
#X connect 15 0 16 0;
#X connect 16 0 1 0;
#X connect 17 0 9 0;
#X connect 17 1 8 0;
#X connect 17 2 11 0;
#X connect 17 3 5 0;
#X connect 14 0 1 0;
#X connect 15 0 7 0;
#X connect 15 1 6 0;
#X connect 15 2 9 0;
#X connect 15 3 16 0;
#X connect 16 0 5 0;
#X restore 132 212 pd elastic;
#N canvas 700 60 570 618 bounce 0;
#X obj 60 10 inlet;
......@@ -415,16 +413,16 @@ opacity \, stroke-width sw;
#X connect 8 0 2 0;
#X connect 9 0 1 0;
#X restore 113 19 pd movers;
#X scalar movers 133 109 0 0 0 0 255 0 0 1 \;;
#X scalar movers 133 159 0 0 1 0 100 100 0 1 \;;
#X scalar movers 133 209 0 0 2 0 0 100 100 1 \;;
#X scalar movers 133 310 0 -1 4 0 50 210 0 1 \;;
#X scalar movers 133 359 0 0 5 0 210 0 80 1 \;;
#X scalar movers 133 109 200 0 0 1 255 0 0 3 \;;
#X scalar movers 133 159 200 0 1 1 100 100 0 3 \;;
#X scalar movers 133 209 200 0 2 1 0 100 100 3 \;;
#X scalar movers 133 310 200 -1 4 1 50 210 0 3 \;;
#X scalar movers 133 359 200 0 5 1 210 0 80 3 \;;
#X scalar movers 133 409 0 0 6 0 42 84 126 1 \;;
#X scalar movers 133 459 0 0 7 0 80 80 0 1 \;;
#X scalar movers 133 459 200 0 7 1 80 80 0 3 \;;
#X text 181 22 CRASHER!... select all scalars \, deselct the backdrop
\, then move what's left;
#X scalar movers 133 259 0.000244141 0 3 1.2207e-06 100 0 0 1 \;;
#X scalar movers 133 259 200 0 3 0.999999 100 0 0 3 \;;
#X text 450 99 linear;
#X text 450 149 easein;
#X text 450 199 easeout;
......
#N struct http://prescottfoland.co/hexshifter/ float x float y;
#N canvas 122 24 947 656 10;
#X scalar http://prescottfoland.co/hexshifter/ 57 53 \;;
#X obj 708 611 draw rect -20 -20 863 615;
#X obj 274 3 struct http://prescottfoland.co/hexshifter/ float x float
y;
#X msg 68 67 1;
#X obj 68 254 +;
#X msg 108 67 -1;
#X obj 68 275 min 15;
#X obj 68 296 max 0;
#X msg 198 67 1;
#X obj 198 224 +;
#X msg 238 67 -1;
#X obj 198 245 min 15;
#X obj 198 266 max 0;
#X msg 328 67 1;
#X obj 328 194 +;
#X msg 368 67 -1;
#X obj 328 215 min 15;
#X obj 328 236 max 0;
#X msg 458 67 1;
#X obj 458 164 +;
#X msg 498 67 -1;
#X obj 458 185 min 15;
#X obj 458 206 max 0;
#X msg 588 67 1;
#X obj 588 129 +;
#X msg 628 67 -1;
#X obj 588 150 min 15;
#X obj 588 171 max 0;
#X msg 718 67 1;
#X obj 718 104 +;
#X msg 758 67 -1;
#X obj 718 125 min 15;
#X obj 718 146 max 0;
#X symbolatom 778 585 10 0 0 0 - - -, f 10;
#X obj 68 438 << 20;
#X obj 778 541 +;
#X obj 198 408 << 16;
#X obj 328 378 << 12;
#X obj 778 468 t b a;
#X obj 778 489 +;
#X obj 778 510 t b a;
#X obj 458 348 << 8;
#X obj 778 445 +;
#X obj 778 397 +;
#X obj 588 313 << 4;
#X obj 778 352 +;
#X obj 778 420 t b a;
#X obj 778 374 t b a;
#X obj 778 328 t b a;
#X msg 112 418 fill \$1 0 0;
#X obj 112 358 + 1;
#X obj 112 378 << 4;
#X obj 112 398 - 1;
#X msg 245 388 fill \$1 0 0;
#X obj 245 328 + 1;
#X obj 245 348 << 4;
#X obj 245 368 - 1;
#X obj 375 298 + 1;
#X obj 375 318 << 4;
#X obj 375 338 - 1;
#X msg 375 358 fill 0 \$1 0;
#X obj 495 268 + 1;
#X obj 495 288 << 4;
#X obj 495 308 - 1;
#X msg 495 328 fill 0 \$1 0;
#X obj 626 233 + 1;
#X obj 626 253 << 4;
#X obj 626 273 - 1;
#X obj 718 208 + 1;
#X obj 718 228 << 4;
#X obj 718 248 - 1;
#X msg 718 268 fill 0 0 \$1;
#X msg 626 293 fill 0 0 \$1;
#X obj 68 327 t a a;
#X obj 198 297 t a a;
#X obj 328 267 t a a;
#X obj 458 237 t a a;
#X obj 588 202 t a a;
#X obj 718 177 trigger anything anything;
#X obj 68 98 t a;
#X obj 198 98 t a;
#X obj 328 98 t a;
#X obj 458 98 t a;
#X obj 588 98 t a;
#X obj 112 438 draw rect 0 0 133 420;
#X obj 245 408 draw rect 133 0 133 380;
#X obj 375 378 draw rect 266 0 129 350;
#X obj 495 348 draw rect 395 0 129 320;
#X obj 626 313 draw rect 524 0 133 290;
#X obj 718 288 draw rect 655 0 168 258;
#X msg 708 585 fill #\$1;
#X obj 330 564 loadbang;
#X msg 330 585 stroke-width 2 \, stroke gray \, stroke-dasharray \,
rx 30 \, ry 30;
#X obj 778 563 makefilename %.6x;
#X connect 3 0 79 0;
#X connect 4 0 6 0;
#X connect 5 0 79 0;
#X connect 6 0 7 0;
#X connect 7 0 73 0;
#X connect 8 0 80 0;
#X connect 9 0 11 0;
#X connect 10 0 80 0;
#X connect 11 0 12 0;
#X connect 12 0 74 0;
#X connect 13 0 81 0;
#X connect 14 0 16 0;
#X connect 15 0 81 0;
#X connect 16 0 17 0;
#X connect 17 0 75 0;
#X connect 18 0 82 0;
#X connect 19 0 21 0;
#X connect 20 0 82 0;
#X connect 21 0 22 0;
#X connect 22 0 76 0;
#X connect 23 0 83 0;
#X connect 24 0 26 0;
#X connect 25 0 83 0;
#X connect 26 0 27 0;
#X connect 27 0 77 0;
#X connect 28 0 29 0;
#X connect 29 0 31 0;
#X connect 30 0 29 0;
#X connect 31 0 32 0;
#X connect 32 0 78 0;
#X connect 34 0 35 0;
#X connect 35 0 93 0;
#X connect 36 0 39 0;
#X connect 37 0 42 0;
#X connect 38 0 39 0;
#X connect 38 1 39 1;
#X connect 39 0 40 0;
#X connect 40 0 35 0;
#X connect 40 1 35 1;
#X connect 41 0 43 0;
#X connect 42 0 38 0;
#X connect 43 0 46 0;
#X connect 44 0 45 0;
#X connect 45 0 47 0;
#X connect 46 0 42 0;
#X connect 46 1 42 1;
#X connect 47 0 43 0;
#X connect 47 1 43 1;
#X connect 48 0 45 0;
#X connect 48 1 45 1;
#X connect 49 0 84 0;
#X connect 50 0 51 0;
#X connect 51 0 52 0;
#X connect 52 0 49 0;
#X connect 53 0 85 0;
#X connect 54 0 55 0;
#X connect 55 0 56 0;
#X connect 56 0 53 0;
#X connect 57 0 58 0;
#X connect 58 0 59 0;
#X connect 59 0 60 0;
#X connect 60 0 86 0;
#X connect 61 0 62 0;
#X connect 62 0 63 0;
#X connect 63 0 64 0;
#X connect 64 0 87 0;
#X connect 65 0 66 0;
#X connect 66 0 67 0;
#X connect 67 0 72 0;
#X connect 68 0 69 0;
#X connect 69 0 70 0;
#X connect 70 0 71 0;
#X connect 71 0 89 0;
#X connect 72 0 88 0;
#X connect 73 0 34 0;
#X connect 73 0 4 1;
#X connect 73 1 50 0;
#X connect 74 0 9 1;
#X connect 74 0 36 0;
#X connect 74 1 54 0;
#X connect 75 0 14 1;
#X connect 75 0 37 0;
#X connect 75 1 57 0;
#X connect 76 0 19 1;
#X connect 76 0 41 0;
#X connect 76 1 61 0;
#X connect 77 0 24 1;
#X connect 77 0 44 0;
#X connect 77 1 65 0;
#X connect 78 0 29 1;
#X connect 78 0 68 0;
#X connect 78 1 48 0;
#X connect 79 0 4 0;
#X connect 80 0 9 0;
#X connect 81 0 14 0;
#X connect 82 0 19 0;
#X connect 83 0 24 0;
#X connect 90 0 1 0;
#X connect 91 0 92 0;
#X connect 92 0 1 0;
#X connect 93 0 90 0;
#X connect 93 0 33 0;
#N struct mm float x float y float a;
#N canvas 0 19 844 666 10;
#X obj -11 119 cnv 15 317 17 empty empty empty 20 12 0 14 -204786 -66577
#N canvas -9 19 766 666 10;
#X obj -1 334 cnv 15 317 17 empty empty empty 20 12 0 14 -204786 -66577
0;
#X scalar mm 301 434.322 3 \;;
#X obj 333 -2 key;
#X obj 510 348 pointer;
#X obj 333 21 select 115;
#X obj 412 153 f;
#X obj 454 153 + 1;
#X obj 454 178 % 4;
#X obj 454 212 sel 0 1 2 3;
#X msg 454 243 6;
#X msg 484 243 7;
#X msg 514 243 8;
#X msg 544 243 7;
#X obj 258 0 keyup;
#X obj 258 21 select 115;
#X msg 258 42 0;
#X obj 453 300 t a b;
#X obj 333 62 metro 90;
#X obj 481 417 + 5;
#X obj 525 270 t a b;
#X obj 569 269 t a b;
#X msg 561 378 4;
#X msg 617 373 6;
#X text -10 119 Click the "s" key to make megaman run to the right!
;
#X msg 510 327 traverse pd-megaman.pd \, next;
#X obj 0 0 struct mm float x float y float a;
#X obj 481 378 get mm x;
#X obj 453 446 set mm a x;
#X obj 226 295 canvasinfo;
#X msg 226 152 traverse pd-megaman.pd \, next;
#X obj 226 173 pointer;
#X obj 226 194 get mm x y;
#X obj 292 221 + 20;
#X obj 98 192 cnv 15 40 60 empty empty empty 20 12 0 14 -233017 -66577
0;
#X obj 226 253 pack;
#X msg 226 274 hitbox \$1 \$2;
#X obj 226 316 route bang;
#X msg 263 466 traverse pd-megaman.pd \, next;
#X obj 263 487 pointer;
#X obj 224 380 t b b b;
#X obj 52 318 t b b;
#X obj 52 360 line;
#X obj 138 192 cnv 15 40 60 empty empty empty 20 12 0 14 -233017 -66577
0;
#X obj 178 172 cnv 15 40 60 empty empty empty 20 12 0 14 -233017 -66577
0;
#X obj 28 212 cnv 15 40 60 empty empty empty 20 12 0 14 -233017 -66577
0;
#X obj 68 212 cnv 15 40 60 empty empty empty 20 12 0 14 -233017 -66577
0;
#X obj 385 93 spigot 1;
#X msg 430 46 0;
#X msg 460 67 1;
#X obj 283 341 t a b;
#X obj 461 17 b;
#X obj 52 381 t a a;
#X obj 147 488 * 6.28319;
#X obj 117 508 sin;
#X obj 177 466 * 0.437;
#X obj 52 595 +;
#X obj 263 513 get mm x y;
#X msg 228 466 9;
#X obj 385 114 t b b;
#X msg 52 339 0 \, 1 750;
#X obj 461 46 del 751;
#X obj 310 364 s stop;
#X obj 226 215 + 40;
#X obj 52 411 * 30;
#X obj 77 528 * -52;
#X obj 77 595 +;
#X obj 52 624 set mm x y a;
#X scalar mm 44 505.367 3 \;;
#X obj 383 -2 key;
#X obj 560 348 pointer;
#X obj 383 21 select 115;
#X obj 462 153 f;
#X obj 504 153 + 1;
#X obj 504 178 % 4;
#X obj 504 212 sel 0 1 2 3;
#X msg 504 243 6;
#X msg 534 243 7;
#X msg 564 243 8;
#X msg 594 243 7;
#X obj 308 0 keyup;
#X obj 308 21 select 115;
#X msg 308 42 0;
#X obj 503 300 t a b;
#X obj 383 62 metro 90;
#X obj 531 417 + 5;
#X obj 575 270 t a b;
#X obj 619 269 t a b;
#X msg 611 378 4;
#X msg 667 373 6;
#X text 0 334 Click the "s" key to make megaman run to the right!;
#X msg 560 327 traverse pd-megaman.pd \, next;
#X obj 16 160 struct mm float x float y float a;
#X obj 531 378 get mm x;
#X obj 503 446 set mm a x;
#X obj 276 288 canvasinfo;
#X msg 276 152 traverse pd-megaman.pd \, next;
#X obj 276 173 pointer;
#X obj 276 194 get mm x y;
#X obj 333 215 + 20;
#X obj 276 246 pack;
#X msg 276 267 hitbox \$1 \$2;
#X obj 276 309 route bang;
#X msg 263 455 traverse pd-megaman.pd \, next;
#X obj 263 476 pointer;
#X obj 224 360 t b b b;
#X obj 22 388 t b b;
#X obj 22 430 line;
#X obj 435 103 spigot 1;
#X msg 480 49 0;
#X msg 510 70 1;
#X obj 333 334 t a b;
#X obj 511 20 b;
#X obj 22 451 t a a;
#X obj 127 498 * 6.28319;
#X obj 97 518 sin;
#X obj 177 476 * 0.437;
#X obj 22 595 +;
#X obj 263 519 get mm x y;
#X msg 228 476 9;
#X obj 435 124 t b b;
#X msg 22 409 0 \, 1 750;
#X obj 511 49 del 751;
#X obj 360 364 s stop;
#X obj 276 215 + 40;
#X obj 22 481 * 30;
#X obj 47 538 * -52;
#X obj 47 595 +;
#X obj 22 624 set mm x y a;
#N canvas 416 58 460 233 stand-and-blink 0;
#X msg 391 114 traverse pd-megaman.pd \, next;
#X obj 391 135 pointer;
......@@ -104,13 +93,13 @@
#X connect 11 0 12 0;
#X connect 12 0 3 0;
#X connect 12 0 10 0;
#X restore 260 94 pd stand-and-blink;
#X obj -12 232 cnv 15 40 60 empty empty empty 20 12 0 14 -233017 -66577
0;
#X text 487 147 ---------- 2014 Jonathan Wilkes ----------;
#X obj 26 73 draw sprite ./megaman 0 0 a;
#X msg 26 51 index a;
#X obj 26 29 loadbang;
#X restore 310 103 pd stand-and-blink;
#X text 16 0 ---------- 2014 Jonathan Wilkes ----------;
#X obj 16 243 draw sprite ./megaman 0 0 a;
#X msg 16 221 index a;
#X obj 16 199 loadbang;
#X obj 511 -2 r stop;
#X obj 263 497 trigger anything anything;
#X connect 2 0 4 0;
#X connect 3 0 26 0;
#X connect 3 0 27 2;
......@@ -132,8 +121,8 @@
#X connect 15 0 17 0;
#X connect 16 0 27 0;
#X connect 16 1 24 0;
#X connect 17 0 46 0;
#X connect 17 0 67 0;
#X connect 17 0 41 0;
#X connect 17 0 62 0;
#X connect 18 0 27 1;
#X connect 19 0 16 0;
#X connect 19 1 21 0;
......@@ -143,47 +132,48 @@
#X connect 22 0 18 1;
#X connect 24 0 3 0;
#X connect 26 0 18 0;
#X connect 28 0 36 0;
#X connect 28 0 35 0;
#X connect 29 0 30 0;
#X connect 30 0 31 0;
#X connect 31 0 62 0;
#X connect 31 0 57 0;
#X connect 31 1 32 0;
#X connect 32 0 34 1;
#X connect 34 0 35 0;
#X connect 35 0 28 0;
#X connect 36 1 49 0;
#X connect 37 0 38 0;
#X connect 38 0 56 0;
#X connect 38 0 66 3;
#X connect 39 0 40 0;
#X connect 39 1 57 0;
#X connect 39 2 37 0;
#X connect 40 0 59 0;
#X connect 41 0 51 0;
#X connect 32 0 33 1;
#X connect 33 0 34 0;
#X connect 34 0 28 0;
#X connect 35 1 44 0;
#X connect 36 0 37 0;
#X connect 37 0 68 0;