#N canvas 1170 122 987 999 12; #X obj 397 366 + 1; #X obj 444 258 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144 -1 -1; #X obj 362 366 f 0; #X obj 444 236 r \$0_showResults; #X obj 295 222 bng 15 250 50 0 empty empty empty 17 7 0 10 -257985 -1 -1; #N canvas 0 50 450 250 (subpatch) 0; #X array input 1024 float 3; #A 0 0.487279 0.121662 0.522406 -0.036088 0.112906 -0.571429 -0.571429 -0.571429 -0.571429 -0.571429 -0.571429 -0.571429 -0.571429 -0.571429 -0.571429 -0.571429 -0.56875 -0.566072 -0.563393 -0.560714 -0.558036 -0.555357 -0.552679 -0.55 -0.547321 -0.544643 -0.541964 -0.539286 -0.536607 -0.533929 -0.53125 -0.528571 -0.528571 -0.528571 -0.528571 -0.528571 -0.528571 -0.527143 -0.525714 -0.524286 -0.522857 -0.521429 -0.52 -0.518571 -0.517143 -0.515714 -0.514286 -0.51 -0.505714 -0.501429 -0.497143 -0.492857 -0.488572 -0.484286 -0.48 -0.475714 -0.471429 -0.468681 -0.465934 -0.463187 -0.46044 -0.457692 -0.454945 -0.452198 -0.449451 -0.446703 -0.443956 -0.441209 -0.438462 -0.435714 -0.432967 -0.43022 -0.427473 -0.424725 -0.421978 -0.419231 -0.416484 -0.413737 -0.410989 -0.408242 -0.405495 -0.402748 -0.4 -0.398096 -0.396191 -0.394286 -0.392381 -0.390477 -0.388572 -0.386667 -0.384762 -0.382858 -0.380953 -0.379048 -0.377143 -0.375238 -0.373334 -0.371429 -0.366667 -0.361905 -0.357143 -0.352382 -0.34762 -0.342858 -0.338096 -0.333334 -0.328572 -0.32381 -0.319048 -0.314286 -0.309524 -0.304763 -0.300001 -0.295239 -0.290477 -0.285715 -0.280953 -0.276191 -0.271429 -0.265715 -0.260001 -0.254286 -0.248572 -0.242858 -0.237143 -0.231429 -0.225715 -0.220001 -0.214286 -0.208572 -0.202858 -0.197144 -0.191429 -0.185715 -0.180001 -0.174287 -0.168572 -0.162858 -0.157144 -0.151429 -0.145715 -0.140001 -0.134287 -0.128572 -0.122858 -0.117144 -0.11143 -0.105715 -0.100001 -0.0942867 -0.0885724 -0.0828582 -0.0771439 -0.0714296 -0.0678582 -0.0642868 -0.0607153 -0.0571439 -0.0535725 -0.0500011 -0.0464297 -0.0428582 -0.0392868 -0.0357154 -0.032144 -0.0285726 -0.0250011 -0.0214297 -0.0178583 -0.0142869 -0.00285833 0.00857022 0.0199988 0.0314273 0.0428559 0.045713 0.0485701 0.0514273 0.0542844 0.0571415 0.0599987 0.0628558 0.065713 0.0685701 0.114284 0.114284 0.114284 0.114284 0.114284 -0.0428582 -0.037144 -0.0314297 -0.0257154 -0.0200011 0.842857 -0.0571439 -0.0714296 -0.0857153 -0.100001 -0.114287 -0.128572 -0.142858 -0.157144 -0.171429 -0.185715 -0.200001 -0.214286 -0.228572 -0.242858 -0.257143 -0.385715 -0.397143 -0.408572 -0.42 -0.431429 -0.442857 -0.454286 -0.465715 -0.477143 -0.488572 -0.5 -0.517143 -0.534286 -0.551429 -0.568571 -0.585714 -0.597143 -0.608571 -0.62 -0.631428 -0.642857 -0.647143 -0.651428 -0.655714 -0.66 -0.664286 -0.668571 -0.672857 -0.677143 -0.681428 -0.685714 -0.694286 -0.702857 -0.711428 -0.72 -0.728571 -0.728571 -0.728571 -0.728571 -0.728571 -0.728571 -0.728571 -0.728571 -0.728571 -0.728571 -0.728571 -0.728571 -0.728571 -0.728571 -0.728571 -0.728571 -0.728571 -0.727428 -0.726285 -0.725143 -0.724 -0.722857 -0.721714 -0.720571 -0.719428 -0.718285 -0.717143 -0.716 -0.714857 -0.713714 -0.712571 -0.711428 -0.710285 -0.709143 -0.708 -0.706857 -0.705714 -0.704571 -0.703428 -0.702285 -0.701143 -0.7 -0.688571 -0.677143 -0.665714 -0.654285 -0.642856 -0.63956 -0.636263 -0.632966 -0.62967 -0.626373 -0.623076 -0.61978 -0.616483 -0.613186 -0.60989 -0.606593 -0.603296 -0.6 -0.596703 -0.593406 -0.59011 -0.586813 -0.583516 -0.58022 -0.576923 -0.573626 -0.57033 -0.567033 -0.563736 -0.56044 -0.557143 -0.552857 -0.548571 -0.544286 -0.54 -0.535714 -0.531428 -0.527143 -0.522857 -0.518571 -0.514286 -0.51 -0.505714 -0.501429 -0.497143 -0.492857 -0.488572 -0.484286 -0.48 -0.475714 -0.471429 -0.467857 -0.464286 -0.460714 -0.457143 -0.453572 -0.45 -0.446429 -0.442857 -0.439286 -0.435715 -0.432143 -0.428572 -0.425 -0.421429 -0.417857 -0.414286 -0.410715 -0.407143 -0.403572 -0.4 -0.396429 -0.392857 -0.389286 -0.385715 -0.382143 -0.378572 -0.375 -0.371429 -0.367858 -0.364286 -0.360715 -0.357143 -0.353572 -0.35 -0.346429 -0.342858 -0.339561 -0.336264 -0.332968 -0.329671 -0.326374 -0.323078 -0.319781 -0.316484 -0.313187 -0.309891 -0.306594 -0.303297 -0.300001 -0.296704 -0.293407 -0.290111 -0.286814 -0.283517 -0.28022 -0.276924 -0.273627 -0.27033 -0.267034 -0.263737 -0.26044 -0.257144 -0.252572 -0.248001 -0.243429 -0.238858 -0.234286 -0.229715 -0.225144 -0.220572 -0.216001 -0.211429 -0.206858 -0.202287 -0.197715 -0.193144 -0.188572 -0.184001 -0.179429 -0.174858 -0.170287 -0.165715 -0.161144 -0.156572 -0.152001 -0.147429 -0.142858 -0.139171 -0.135485 -0.131798 -0.128112 -0.124425 -0.120738 -0.117052 -0.113365 -0.109678 -0.105992 -0.102305 -0.0986185 -0.0949319 -0.0912453 -0.0875586 -0.083872 -0.0801854 -0.0764987 -0.0728121 -0.0691255 -0.0654389 -0.0617522 -0.0580656 -0.054379 -0.0506923 -0.0470057 -0.0433191 -0.0396324 -0.0359458 -0.0322592 -0.0285726 -0.0228583 -0.017144 -0.0114297 -0.00571546 -0.442857 -0.44 -0.437143 -0.434286 -0.431429 -0.428572 -0.377143 -0.368572 -0.36 -0.351429 -0.342858 -0.276191 -0.266667 -0.257144 -0.24762 -0.238096 -0.228572 -0.821908 -0.288818 -0.212009 -0.0953557 0.194061 0.759667 0.810377 -0.473476 0.711447 0.4084 -0.212516 0.73229 0.680928 0.401147 -0.495781 -0.372719 0.338823 -0.0529927 0.515505 -0.483456 -0.324151 -0.310839 -0.384965 -0.126419 -0.0941369 -0.326378 0.304023 -0.690897 0.934621 -0.682015 -0.740049 0.539777 0.828521 -0.619823 0.805322 -0.643024 -0.716644 -0.0727943 -0.623594 -0.404467 -0.906937 0.303913 -0.00800377 0.102486 -0.381524 -0.898277 0.722152 -0.294171 0.256071 0.127389 -0.843046 0.183266 -0.0932814 0.371749 0.875252 -0.769045 0.444435 -0.0215279 -0.0865845 -0.567737 0.185131 0.212809 -0.765917 -0.773487 -0.644639 -0.569656 -0.805087 -0.122264 -0.438926 -0.954259 0.0173339 0.44342 -0.743635 -0.498502 0.255293 0.743258 -0.787779 0.236694 -0.735994 0.327903 -0.0147232 -0.34426 -0.331289 -0.552288 -0.613441 -0.90287 -0.166586 0.0215026 -0.049761 0.802189 0.329639 0.605296 0.402384 -0.116175 0.405183 -0.638928 -0.870294 0.295277 0.45286 -0.974482 -0.351691 0.798866 0.479253 -0.121223 0.0724446 0.934746 0.573467 0.713201 0.583257 0.989653 -0.624125 -0.197904 0.897535 -0.0343465 0.54687 -0.131522 -0.263538 -0.451102 -0.764386 -0.946182 0.294368 0.0783676 0.548788 -0.113204 -0.292525 0.514626 0.0193447 0.252048 0.52265 0.408569 0.0752543 0.358915 0.166155 -0.129825 0.508257 -0.2898 0.412397 -0.462747 0.942614 0.0709072 0.852676 0.544194 -0.696147 0.437002 0.363938 0.490724 0.287524 0.00415564 0.577524 -0.589353 -0.172054 -0.863504 -0.652083 -0.259399 -0.433044 0.335358 0.221497 0.288807 -0.677338 -0.791967 -0.0947133 0.203815 -0.441809 -0.563478 -0.264295 0.943262 -0.149559 -0.25372 -0.852685 0.242611 -0.641174 0.874972 -0.858427 0.083912 -0.705967 0.541215 -0.244418 0.664544 -0.613232 0.41334 -0.469164 0.36597 0.356504 -0.921872 0.981978 -0.277517 0.380236 -0.990427 0.0655429 -0.61004 -0.438771 -0.462377 -0.35129 0.114609 0.397764 -0.183068 0.978054 0.70172 0.251897 -0.204386 -0.851707 -0.0155847 -0.181802 -0.816013 0.571042 0.7924 -0.40749 0.423329 0.8 0.795714 0.791429 0.787143 0.782857 0.778571 0.774286 0.77 0.765714 0.761429 0.757143 0.751429 0.745714 0.74 0.734286 0.728572 0.725715 0.722857 0.72 0.717143 0.714286 0.709524 0.704762 0.7 0.695238 0.690476 0.685715 0.682857 0.68 0.677143 0.674286 0.657143 0.654286 0.651429 0.648572 0.645715 0.642858 0.637143 0.631429 0.625715 0.62 0.614286 0.614286 0.614286 0.614286 0.614286 0.6 0.6 0.6 0.6 0.6 0.6 0.6 0.6 0.6 0.6 0.6 0.6 0.6 0.6 0.6 0.600001 0.597143 0.594286 0.591429 0.588572 0.585715 0.585715 0.585715 0.585715 0.585715 0.585715 0.585715 0.585715 0.585715 0.585715 0.585715 0.585715 0.585715 0.585715 0.585715 0.585715 0.585715 0.585715 0.585715 0.585715 0.585715 0.585715 0.584286 0.582857 0.581429 0.58 -0.628571 0.577143 0.575715 0.574286 0.572858 0.571429 0.571429 0.571429 0.571429 0.571429 0.571429 0.571429 0.571429 0.571429 0.571429 0.571429 0.571429 0.571429 0.571429 0.571429 0.571429 0.571429 0.571429 0.571429 0.571429 0.571429 0.571429 0.571429 0.571429 0.571429 0.571429 0.571429 0.571429 0.571429 0.571429 0.571429 0.571429 0.571429 0.571429 0.571429 0.571429 0.671429 0.671429 0.671429 0.671429 0.671429 0.671429 0.674286 0.677143 0.68 0.682857 0.685714 0.691429 0.697143 0.702857 0.708572 0.714286 0.714286 0.714286 0.714286 0.714286 0.714286 0.714286 0.714286 0.714286 0.714286 0.714286 0.714286 0.715715 0.717143 0.718572 0.72 0.721429 0.722857 0.724286 0.725715 0.727143 0.157143 0.728572 0.728572 0.728572 0.728572 0.728572 0.73 0.731429 0.732857 0.734286 0.735715 0.737143 0.738572 0.74 0.741429 0.742857 0.745714 0.748572 0.751429 0.754286 0.757143 0.76 0.762857 0.765714 0.768571 0.771429 0.771429 0.771429 0.771429 0.771429 0.771429 0.771429 0.771429 0.771429 0.771429 0.771429 0.771429 0.771429 0.771429 0.771429 0.771429 0.771429 0.771429 0.771429 0.771429 0.771429 0.771429 0.771429 0.771429 0.771429 0.771429 0.771429 0.771429 0.771429 0.771429 0.771429 0.771429 0.771429 0.771429 0.771429 0.771429 0.771429 0.771429 0.771429 0.771429 0.771429 -0.614286 0.771429 0.771429 0.771429 0.771429 0.771429 0.771429 0.771429 0.771429 0.771429 0.771429 0.771429 0.771429 0.771429 0.771429 0.771429 0.771429 0.771429 0.771429 0.771429 0.771429 0.771429 0.771429 0.771429 0.771429 0.771429 0.771429 0.771429 0.771429 0.771429 0.771429 0.771429 0.771429 0.771429 0.771429 0.771429 0.771429 0.771429 0.771429 0.771429 0.771429 0.771429 0.771429 0.771429 0.771429 0.771429 0.771429 0.771429 0.771429 0.771429 0.771429 0.771429 0.771429 0.771429 0.771429 0.771429 0.771429 0.771429 0.771429 0.771429 0.771429 0.771429 0.771429 0.771429 0.771429 0.771429 0.771429 0.771429 0.771429 0.771429 0.771429 0.771429 0.771429 0.771429 0.771429 0.771429 0.771429 0.771429 0.771429 0.771429; #A 1000 0.771429 0.771429 0.771429 0.771429 0.771429 0.771429 0.771429 0.771429 0.723582 -0.941328 0.558256 -0.655637 0.384956 0.403326 -0.372185 0.686564 0.0769631 0.764497 -0.409325 0.29473 0.0787702 0.771083 0.767261 -0.94614; #X coords 0 1 1023 -1 200 140 1 0 0; #X restore 143 58 graph; #N canvas 0 50 450 250 (subpatch) 0; #X array output 1024 float 2; #X coords 0 1 1023 -1 200 140 1 0 0; #X restore 382 60 graph; #N canvas 688 637 785 577 computeFFT 0; #X obj 112 69 rfft~; #X obj 572 65 loadbang; #X msg 616 97 \; pd dsp 1; #X obj 439 152 switch~ 1024 4; #X obj 456 32 inlet; #X msg 456 120 1; #X obj 385 86 t b b; #X msg 417 120 0; #X obj 385 180 s \$0_showResults; #X obj 385 55 bang~; #X obj 112 34 tabreceive~ input; #X obj 60 194 *~; #X obj 94 194 *~; #X obj 68 225 +~; #X obj 68 246 sqrt~; #X obj 68 473 tabsend~ termMagnitudes; #X obj 68 267 /~ 1024; #X obj 146 446 tabsend~ termPhaseAngles; #X obj 255 229 tabsend~ imaginary; #X obj 256 257 tabsend~ real; #X obj 147 304 /~; #X obj 147 372 /~ 6.28318; #X obj 147 408 +~; #X obj 274 324 expr~ if($v1 < 0 \, 0.5 \, 0); #X obj 274 346 expr~ if($v2 < 0 \, -$v1 \, $v1); #X text 182 409 quadrant correction; #X obj 147 325 expr~ atan($v1); #X obj 199 349 r twoPi; #X msg 572 97 -1; #X obj 572 118 acos; #X obj 572 139 * 2; #X obj 572 160 s twoPi; #X connect 0 0 11 0; #X connect 0 0 11 1; #X connect 0 0 19 0; #X connect 0 0 20 1; #X connect 0 0 23 0; #X connect 0 1 12 0; #X connect 0 1 12 1; #X connect 0 1 18 0; #X connect 0 1 20 0; #X connect 0 1 24 1; #X connect 1 0 2 0; #X connect 1 0 28 0; #X connect 4 0 5 0; #X connect 5 0 3 0; #X connect 6 0 8 0; #X connect 6 1 7 0; #X connect 7 0 3 0; #X connect 9 0 6 0; #X connect 10 0 0 0; #X connect 11 0 13 0; #X connect 12 0 13 1; #X connect 13 0 14 0; #X connect 14 0 16 0; #X connect 16 0 15 0; #X connect 20 0 26 0; #X connect 21 0 22 0; #X connect 22 0 17 0; #X connect 23 0 24 0; #X connect 24 0 22 1; #X connect 26 0 21 0; #X connect 27 0 21 1; #X connect 28 0 29 0; #X connect 29 0 30 0; #X connect 30 0 31 0; #X restore 295 248 pd computeFFT; #X msg 58 248 \; input const 0.42; #X msg 58 212 \; input const 0; #X msg 504 306 0; #X floatatom 504 394 10 0 0 0 - - -; #X msg 504 414 \; output const \$1; #X obj 282 690 *; #X obj 215 493 until; #X obj 250 514 + 1; #X obj 215 514 f 0; #X obj 250 568 / 1024; #X msg 215 472 1024; #X obj 286 514 mod 1024; #X obj 250 541 t f f; #X obj 449 721 tabread output; #X obj 352 791 tabwrite output; #X obj 352 769 +; #X obj 250 589 *; #N canvas 0 50 450 250 (subpatch) 0; #X array termMagnitudes 1024 float 2; #X coords 0 1 1024 -1 200 20 1 0 0; #X restore 654 706 graph; #N canvas 0 50 450 250 (subpatch) 0; #X array termPhaseAngles 1024 float 2; #X coords 0 1 1024 -1 200 20 1 0 0; #X restore 654 745 graph; #N canvas 0 50 450 250 (subpatch) 0; #X array real 1024 float 2; #X coords 0 1024 1024 -1024 200 20 1 0 0; #X restore 655 618 graph; #N canvas 0 50 450 250 (subpatch) 0; #X array imaginary 1024 float 2; #X coords 0 1024 1024 -1024 200 20 1 0 0; #X restore 655 661 graph; #X text 541 307 DC term; #X text 237 340 for each AC term; #X text 52 515 for each output point; #X text 107 588 at the term's freq; #X text 132 770 mix it with the previous terms; #X obj 444 281 t b b; #X obj 250 611 * 6.28318; #N canvas 0 50 450 250 (subpatch) 0; #X array diff 1024 float 2; #X coords 0 0.001 1023 -0.001 200 140 1 0 0; #X restore 669 63 graph; #N canvas 1907 190 376 407 diff 0; #X obj 67 64 inlet; #X obj 67 127 until; #X obj 102 148 + 1; #X obj 67 148 f 0; #X msg 67 106 1024; #X obj 138 148 mod 1024; #X obj 67 169 t f f; #X obj 127 201 tabread output; #X obj 67 272 tabwrite diff; #X obj 67 230 tabread input; #X obj 67 251 -; #X connect 0 0 4 0; #X connect 1 0 3 0; #X connect 2 0 5 0; #X connect 3 0 2 0; #X connect 3 0 6 0; #X connect 4 0 1 0; #X connect 5 0 3 1; #X connect 6 0 9 0; #X connect 6 1 7 0; #X connect 6 1 8 1; #X connect 7 0 10 1; #X connect 9 0 10 0; #X connect 10 0 8 0; #X restore 749 249 pd diff; #X obj 749 223 bng 15 250 50 0 empty empty empty 17 7 0 10 -257985 -1 -1; #X floatatom 408 395 5 0 0 0 - - -; #N canvas 1254 267 386 361 ctrl 0; #X obj 45 216 outlet; #X obj 188 216 outlet; #X obj 45 38 inlet; #X obj 45 163 sel 0; #X msg 45 184 stop; #X obj 139 123 + 500; #X obj 139 102 * -10; #X obj 139 144 clip 1 500; #X obj 188 38 inlet; #X obj 139 165 spigot; #X obj 225 146 select 0; #X obj 188 59 t f f; #X msg 225 167 1; #X connect 2 0 3 0; #X connect 2 0 6 0; #X connect 3 0 4 0; #X connect 4 0 0 0; #X connect 5 0 7 0; #X connect 6 0 5 0; #X connect 7 0 9 0; #X connect 8 0 11 0; #X connect 9 0 1 0; #X connect 10 0 12 0; #X connect 11 0 10 0; #X connect 11 1 9 1; #X connect 12 0 1 0; #X restore 362 313 pd ctrl; #N canvas 1309 164 450 422 inputNoise 0; #X obj 67 64 inlet; #X obj 67 127 until; #X obj 102 148 + 1; #X obj 67 148 f 0; #X msg 67 106 1024; #X obj 138 148 mod 1024; #X obj 67 272 tabwrite input; #X obj 67 169 t b f; #X obj 67 202 random 2e+007; #X obj 67 223 / 1e+007; #X obj 67 244 - 1; #X connect 0 0 4 0; #X connect 1 0 3 0; #X connect 2 0 5 0; #X connect 3 0 2 0; #X connect 3 0 7 0; #X connect 4 0 1 0; #X connect 5 0 3 1; #X connect 7 0 8 0; #X connect 7 1 6 1; #X connect 8 0 9 0; #X connect 9 0 10 0; #X connect 10 0 6 0; #X restore 58 353 pd inputNoise; #X obj 58 327 bng 15 250 50 0 empty empty empty 17 7 0 10 -257985 -1 -1; #X obj 433 366 mod 512; #X obj 351 283 tgl 15 1 empty empty animate 17 7 0 10 -262144 -1 -1 1 1; #X obj 362 341 metro; #N canvas 1650 109 542 263 rifft 0; #X obj 371 152 switch~ 1024 4; #X obj 388 32 inlet; #X msg 388 120 1; #X msg 349 120 0; #X obj 317 55 bang~; #X obj 68 145 /~ 1024; #X obj 70 32 tabreceive~ real; #X obj 107 58 tabreceive~ imaginary; #X obj 69 113 rifft~; #X obj 68 184 tabsend~ output; #X connect 1 0 2 0; #X connect 2 0 0 0; #X connect 3 0 0 0; #X connect 4 0 3 0; #X connect 5 0 9 0; #X connect 6 0 8 0; #X connect 7 0 8 1; #X connect 8 0 5 0; #X restore 750 307 pd rifft; #X obj 750 285 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144 -1 -1; #X obj 310 590 r twoPi; #X obj 397 427 t b f f; #X msg 57 285 \; input sinesum 1024 0.5 -0.25; #X text 732 45 X1000; #X text 494 501 AC terms are echoed in upper half of FFT; #X text 54 7 draw on the input \, click compute FFT. Select "animate" if you want to see the first 50 partials drawn in slowly; #X text 498 515 EXCEPT FOR TERM N/2+1; #X obj 386 574 tabread real; #X obj 482 574 tabread imaginary; #X obj 250 632 t f f; #X obj 250 690 *; #X obj 386 595 /; #X obj 482 595 /; #X obj 488 530 expr if($f1 == 512 \, 1024 \, 512); #X text 713 527 rescale; #X obj 257 716 +; #X obj 250 654 cos; #X obj 282 654 sin; #X text 442 663 IN REVERSE!; #X obj 404 663 * -1; #X obj 404 683 + 1024; #X obj 504 343 tabread real; #X obj 504 373 / 1024; #X text 311 846 Is the sign of sin flipped because we're rendering it in reverse?; #X text 96 653 render a cos - b sin; #X connect 0 0 39 0; #X connect 0 0 43 0; #X connect 0 0 49 0; #X connect 1 0 34 0; #X connect 2 0 0 0; #X connect 3 0 1 0; #X connect 4 0 7 0; #X connect 10 0 69 0; #X connect 11 0 12 0; #X connect 13 0 63 1; #X connect 14 0 16 0; #X connect 15 0 19 0; #X connect 15 0 20 0; #X connect 16 0 15 0; #X connect 17 0 24 0; #X connect 18 0 14 0; #X connect 19 0 16 1; #X connect 20 0 17 0; #X connect 20 1 67 0; #X connect 21 0 23 1; #X connect 23 0 22 0; #X connect 24 0 35 0; #X connect 34 0 45 0; #X connect 34 1 10 0; #X connect 35 0 57 0; #X connect 38 0 37 0; #X connect 40 0 45 0; #X connect 40 1 45 1; #X connect 42 0 41 0; #X connect 43 0 2 1; #X connect 43 0 40 0; #X connect 44 0 40 1; #X connect 45 0 2 0; #X connect 47 0 46 0; #X connect 48 0 35 1; #X connect 49 0 18 0; #X connect 49 1 24 1; #X connect 49 1 55 0; #X connect 49 1 56 0; #X connect 49 2 61 0; #X connect 55 0 59 0; #X connect 56 0 60 0; #X connect 57 0 64 0; #X connect 57 1 65 0; #X connect 58 0 63 0; #X connect 59 0 58 1; #X connect 60 0 13 1; #X connect 61 0 59 1; #X connect 61 0 60 1; #X connect 63 0 23 0; #X connect 64 0 58 0; #X connect 65 0 13 0; #X connect 67 0 68 0; #X connect 68 0 21 0; #X connect 68 0 22 1; #X connect 69 0 70 0; #X connect 70 0 11 0;