-
Notifications
You must be signed in to change notification settings - Fork 8
/
TO_LP_X.pd
642 lines (642 loc) · 15.7 KB
/
TO_LP_X.pd
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
#N canvas 3 84 1261 681 10;
#X floatatom 154 160 5 0 0 0 - - -;
#X floatatom 195 160 5 0 0 0 - - -;
#X obj 55 35 inlet;
#X obj 215 35 inlet;
#X text 55 18 pad;
#X text 217 18 color;
#X text 55 6 pad+color (list);
#X obj 154 185 pack;
#X floatatom 470 96 5 0 0 0 - - -;
#X floatatom 575 96 5 0 0 0 - - -;
#X obj 575 117 min 127;
#X obj 575 139 max 0;
#X floatatom 513 96 5 0 0 0 - - -;
#X obj 513 139 max 0;
#X obj 470 139 max 0;
#X msg 640 164 0;
#X msg 720 164 2;
#X msg 680 164 1;
#X obj 640 186 s \$0_mode;
#X obj 640 112 route static flash pulse float;
#X obj 772 136 sel 0 1 2;
#N canvas 0 23 1159 474 BUTTON_TO_INT 0;
#X obj 37 37 inlet;
#X text 361 37 scenes from bottom to top;
#X obj 37 343 outlet;
#X obj 37 78 list trim;
#X msg 37 140 89;
#X msg 76 160 79;
#X msg 117 140 69;
#X msg 157 160 59;
#X msg 197 140 49;
#X msg 237 160 39;
#X msg 287 140 29;
#X msg 327 160 19;
#X msg 367 140 91;
#X msg 407 160 92;
#X msg 457 140 93;
#X msg 497 160 94;
#X msg 547 140 95;
#X msg 587 160 96;
#X msg 617 140 97;
#X msg 657 160 98;
#X obj 37 108 route volume pan send_a send_b stop_clip mute solo record_arm
arrow_up arrow_down arrow_left arrow_right session note custom capture
, f 101;
#X connect 0 0 3 0;
#X connect 3 0 20 0;
#X connect 4 0 2 0;
#X connect 5 0 2 0;
#X connect 6 0 2 0;
#X connect 7 0 2 0;
#X connect 8 0 2 0;
#X connect 9 0 2 0;
#X connect 10 0 2 0;
#X connect 11 0 2 0;
#X connect 12 0 2 0;
#X connect 13 0 2 0;
#X connect 14 0 2 0;
#X connect 15 0 2 0;
#X connect 16 0 2 0;
#X connect 17 0 2 0;
#X connect 18 0 2 0;
#X connect 19 0 2 0;
#X connect 20 0 4 0;
#X connect 20 1 5 0;
#X connect 20 2 6 0;
#X connect 20 3 7 0;
#X connect 20 4 8 0;
#X connect 20 5 9 0;
#X connect 20 6 10 0;
#X connect 20 7 11 0;
#X connect 20 8 12 0;
#X connect 20 9 13 0;
#X connect 20 10 14 0;
#X connect 20 11 15 0;
#X connect 20 12 16 0;
#X connect 20 13 17 0;
#X connect 20 14 18 0;
#X connect 20 15 19 0;
#X restore 104 86 pd BUTTON_TO_INT;
#X obj 785 247 list fromsymbol;
#X obj 847 291 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 0
1;
#X floatatom 875 291 5 0 0 0 - - -;
#X obj 785 445 list append 247;
#X obj 785 193 unpack s f f;
#X text 877 192 ASCII-loop-speed;
#X obj 785 476 midiout;
#X obj 380 469 midiout;
#X obj 380 394 min 1;
#X obj 380 416 max 0;
#X obj 88 304 * 10;
#X obj 88 323 % 100;
#X obj 88 341 * 0.1;
#X obj 55 220 unpack;
#X obj 55 271 t f f;
#X obj 55 490 spigot;
#X obj 148 470 spigot;
#X obj 88 362 == 9;
#X obj 88 468 == 0;
#X obj 181 448 == 1;
#X obj 88 383 t f f;
#X obj 55 541 noteout;
#X obj 246 430 r \$0_mode;
#X obj 148 541 ctlout;
#X obj 55 445 pack;
#X obj 148 495 swap;
#X text 127 329 check whether it's a \; noteon or a CC \;;
#X text 445 425 turn on DAW mode \;;
#X obj 215 56 s \$0_color;
#X obj 904 315 r \$0_color;
#X text 916 391 color type from palette \; hard coded for now \;;
#X msg 854 374 240 0 32 41 2 12 7 \$1 \$2 0 \$3;
#X obj 847 339 pack 0 0 0;
#X obj 785 394 list prepend;
#X obj 785 320 list append 0;
#N canvas 643 88 637 623 SET_ALL 0;
#X obj 113 21 inlet;
#X obj 140 269 * 10;
#X obj 140 288 % 100;
#X obj 140 306 * 0.1;
#X obj 140 327 == 9;
#X text 179 294 check whether it's a \; noteon or a CC \;;
#X obj 113 93 t f b;
#X obj 113 114 until;
#X obj 113 135 f 0;
#X obj 113 156 t f f;
#X obj 153 156 + 1;
#X msg 152 136 0;
#X obj 113 241 t f f;
#X obj 140 348 t f f;
#X obj 146 409 == 0;
#X obj 113 429 spigot;
#X obj 193 429 spigot;
#X obj 226 409 == 1;
#X obj 113 371 pack;
#X obj 113 490 noteout;
#X obj 193 450 swap;
#X obj 193 491 ctlout;
#X obj 113 46 t f f;
#X obj 158 241 t f b;
#X msg 185 268 1;
#X msg 113 72 81;
#X obj 113 177 tabread \$0_SURFACE;
#X obj 113 201 moses 91;
#X obj 293 428 r \$0_mode;
#X obj 293 449 + 1;
#X connect 0 0 22 0;
#X connect 1 0 2 0;
#X connect 2 0 3 0;
#X connect 3 0 4 0;
#X connect 4 0 13 0;
#X connect 6 0 7 0;
#X connect 6 1 11 0;
#X connect 7 0 8 0;
#X connect 8 0 9 0;
#X connect 9 0 26 0;
#X connect 9 1 10 0;
#X connect 10 0 8 1;
#X connect 11 0 8 1;
#X connect 12 0 18 0;
#X connect 12 1 1 0;
#X connect 13 0 14 0;
#X connect 13 1 17 0;
#X connect 14 0 15 1;
#X connect 15 0 19 0;
#X connect 16 0 20 0;
#X connect 17 0 16 1;
#X connect 18 0 15 0;
#X connect 18 0 16 0;
#X connect 20 0 21 0;
#X connect 20 1 21 1;
#X connect 22 0 25 0;
#X connect 22 1 18 1;
#X connect 23 0 18 0;
#X connect 23 1 24 0;
#X connect 24 0 13 0;
#X connect 25 0 6 0;
#X connect 26 0 27 0;
#X connect 27 0 12 0;
#X connect 27 1 23 0;
#X connect 28 0 29 0;
#X connect 29 0 21 2;
#X connect 29 0 19 2;
#X restore 575 226 pd SET_ALL;
#X obj 55 245 moses 91;
#X obj 100 270 t f b;
#X msg 127 293 1;
#X obj 912 146 pack 32 0 63;
#X obj 912 118 b;
#X obj 912 167 unpack f f f;
#N canvas 0 23 486 440 ARRAY_SURFACE 0;
#X obj 27 259 % 9;
#X obj 81 259 div 9;
#X obj 27 305 +;
#X obj 81 279 * 10;
#X obj 27 138 t f b;
#X obj 27 159 until;
#X obj 27 180 f 0;
#X obj 91 201 + 1;
#X msg 91 160 0;
#X obj 27 284 + 11;
#X msg 27 117 81;
#X obj 27 74 loadbang;
#X obj 27 342 array set \$0_SURFACE;
#X obj 27 201 t f f;
#X obj 27 229 t f f f;
#X obj 283 143 s \$0_SURFACE;
#X msg 283 89 arrayviewlistnew;
#X obj 229 257 array define \$0_SURFACE 81;
#X msg 293 119 arrayviewclose;
#X obj 283 27 inlet;
#X obj 283 48 sel 0 1;
#X text 44 19 LP X pad/button IDs \;;
#X connect 0 0 9 0;
#X connect 1 0 3 0;
#X connect 2 0 12 0;
#X connect 3 0 2 1;
#X connect 4 0 5 0;
#X connect 4 1 8 0;
#X connect 5 0 6 0;
#X connect 6 0 13 0;
#X connect 7 0 6 1;
#X connect 8 0 6 1;
#X connect 9 0 2 0;
#X connect 10 0 4 0;
#X connect 11 0 10 0;
#X connect 13 0 14 0;
#X connect 13 1 7 0;
#X connect 14 0 0 0;
#X connect 14 1 1 0;
#X connect 14 2 12 1;
#X connect 16 0 15 0;
#X connect 18 0 15 0;
#X connect 19 0 20 0;
#X connect 20 0 18 0;
#X connect 20 1 16 0;
#X restore 1048 52 pd ARRAY_SURFACE;
#X obj 1048 27 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 0
1;
#X text 1071 26 view array \;;
#N canvas 499 91 306 650 COLUMN 0;
#X obj 43 26 inlet;
#X msg 43 97 9;
#X obj 43 118 t f b;
#X obj 43 139 until;
#X obj 43 160 f 0;
#X obj 43 181 t f f;
#X obj 93 181 + 1;
#X msg 83 140 0;
#X obj 43 71 t b f;
#X obj 43 223 +;
#X obj 43 244 tabread \$0_SURFACE;
#X obj 76 319 * 10;
#X obj 76 338 % 100;
#X obj 76 356 * 0.1;
#X obj 43 505 spigot;
#X obj 136 485 spigot;
#X obj 76 377 == 9;
#X obj 76 483 == 0;
#X obj 169 463 == 1;
#X obj 76 398 t f f;
#X obj 136 510 swap;
#X text 115 344 check whether it's a \; noteon or a CC \;;
#X obj 43 295 t f f;
#X obj 64 426 r \$0_color;
#X obj 43 447 pack;
#X obj 43 202 * 9;
#X obj 123 281 t f b;
#X msg 150 308 1;
#X obj 43 268 moses 91;
#X obj 197 500 r \$0_mode;
#X obj 43 556 noteout;
#X obj 136 557 ctlout;
#X obj 197 521 + 1;
#X connect 0 0 8 0;
#X connect 1 0 2 0;
#X connect 2 0 3 0;
#X connect 2 1 7 0;
#X connect 3 0 4 0;
#X connect 4 0 5 0;
#X connect 5 0 25 0;
#X connect 5 1 6 0;
#X connect 6 0 4 1;
#X connect 7 0 4 1;
#X connect 8 0 1 0;
#X connect 8 1 9 1;
#X connect 9 0 10 0;
#X connect 10 0 28 0;
#X connect 11 0 12 0;
#X connect 12 0 13 0;
#X connect 13 0 16 0;
#X connect 14 0 30 0;
#X connect 15 0 20 0;
#X connect 16 0 19 0;
#X connect 17 0 14 1;
#X connect 18 0 15 1;
#X connect 19 0 17 0;
#X connect 19 1 18 0;
#X connect 20 0 31 0;
#X connect 20 1 31 1;
#X connect 22 0 24 0;
#X connect 22 1 11 0;
#X connect 23 0 24 1;
#X connect 24 0 15 0;
#X connect 24 0 14 0;
#X connect 25 0 9 0;
#X connect 26 0 24 0;
#X connect 26 1 27 0;
#X connect 27 0 19 0;
#X connect 28 0 22 0;
#X connect 28 1 26 0;
#X connect 29 0 32 0;
#X connect 32 0 31 2;
#X connect 32 0 30 2;
#X restore 470 170 pd COLUMN;
#N canvas 540 91 319 600 ROW 0;
#X obj 43 16 inlet;
#X msg 43 87 9;
#X obj 43 108 t f b;
#X obj 43 129 until;
#X obj 43 150 f 0;
#X obj 43 171 t f f;
#X obj 93 171 + 1;
#X msg 83 130 0;
#X obj 43 61 t b f;
#X obj 43 213 +;
#X obj 43 234 tabread \$0_SURFACE;
#X obj 76 309 * 10;
#X obj 76 328 % 100;
#X obj 76 346 * 0.1;
#X obj 43 495 spigot;
#X obj 136 475 spigot;
#X obj 76 367 == 9;
#X obj 76 473 == 0;
#X obj 169 453 == 1;
#X obj 76 388 t f f;
#X obj 43 546 noteout;
#X obj 136 546 ctlout;
#X obj 136 500 swap;
#X text 115 334 check whether it's a \; noteon or a CC \;;
#X obj 43 285 t f f;
#X obj 64 416 r \$0_color;
#X obj 43 437 pack;
#X obj 123 271 t f b;
#X msg 150 298 1;
#X obj 43 258 moses 91;
#X obj 124 130 * 9;
#X obj 197 500 r \$0_mode;
#X obj 197 521 + 1;
#X connect 0 0 8 0;
#X connect 1 0 2 0;
#X connect 2 0 3 0;
#X connect 2 1 7 0;
#X connect 3 0 4 0;
#X connect 4 0 5 0;
#X connect 5 0 9 0;
#X connect 5 1 6 0;
#X connect 6 0 4 1;
#X connect 7 0 4 1;
#X connect 8 0 1 0;
#X connect 8 1 30 0;
#X connect 9 0 10 0;
#X connect 10 0 29 0;
#X connect 11 0 12 0;
#X connect 12 0 13 0;
#X connect 13 0 16 0;
#X connect 14 0 20 0;
#X connect 15 0 22 0;
#X connect 16 0 19 0;
#X connect 17 0 14 1;
#X connect 18 0 15 1;
#X connect 19 0 17 0;
#X connect 19 1 18 0;
#X connect 22 0 21 0;
#X connect 22 1 21 1;
#X connect 24 0 26 0;
#X connect 24 1 11 0;
#X connect 25 0 26 1;
#X connect 26 0 15 0;
#X connect 26 0 14 0;
#X connect 27 0 26 0;
#X connect 27 1 28 0;
#X connect 28 0 19 0;
#X connect 29 0 24 0;
#X connect 29 1 27 0;
#X connect 30 0 9 1;
#X connect 31 0 32 0;
#X connect 32 0 21 2;
#X connect 32 0 20 2;
#X restore 513 190 pd ROW;
#X obj 470 117 min 8;
#X obj 513 117 min 8;
#X obj 195 136 r \$0_color;
#X obj 55 141 midiout;
#N canvas 0 23 544 447 LIST_OF_PADS 0;
#X obj 82 77 list split 2;
#X obj 82 152 list prepend 0;
#X obj 116 104 t l;
#X obj 82 200 list prepend;
#X obj 82 28 inlet;
#X obj 82 382 outlet;
#X text 179 134 0=STATIC - hard coded for now \; but this could be
FLASHING \; PULSING or RGB \, but would \; require a different 'list'
\; as input \;;
#X obj 82 302 list prepend 240 0 32 41 2 12 3;
#X obj 82 326 list append 247;
#X obj 187 63 list length;
#X obj 187 84 / 2;
#X obj 82 263 list;
#X obj 187 105 - 1;
#X obj 82 224 t b l l;
#X obj 166 239 f 0;
#X obj 166 260 t f f;
#X obj 207 260 + 1;
#X obj 166 281 sel -1;
#X floatatom 228 106 5 0 0 0 - - -;
#X obj 82 50 t l b l b;
#X msg 175 213 0;
#X connect 0 0 1 0;
#X connect 0 1 2 0;
#X connect 1 0 3 0;
#X connect 2 0 0 0;
#X connect 3 0 13 0;
#X connect 4 0 19 0;
#X connect 7 0 8 0;
#X connect 8 0 5 0;
#X connect 9 0 10 0;
#X connect 10 0 12 0;
#X connect 11 0 7 0;
#X connect 12 0 17 1;
#X connect 12 0 18 0;
#X connect 13 0 14 0;
#X connect 13 1 11 1;
#X connect 13 2 3 1;
#X connect 14 0 15 0;
#X connect 15 0 17 0;
#X connect 15 1 16 0;
#X connect 16 0 14 1;
#X connect 17 0 11 0;
#X connect 19 0 0 0;
#X connect 19 1 3 1;
#X connect 19 2 9 0;
#X connect 19 3 20 0;
#X connect 20 0 14 1;
#X restore 55 120 pd LIST_OF_PADS;
#X msg 427 71 0;
#X obj 570 469 midiout;
#X obj 570 394 min 1;
#X obj 570 416 max 0;
#X msg 570 448 240 0 32 41 2 12 14 \$1 247;
#X msg 380 448 240 0 32 41 2 12 16 \$1 247;
#X text 615 425 enter programmer mode \;;
#X obj 246 451 + 1;
#N canvas 221 64 601 396 CLEAR 0;
#X obj 113 21 inlet;
#X obj 113 325 midiout;
#X msg 113 225 240 0 32 41 2 12 3 0 81 0 0 82 0 0 83 0 0 84 0 0 85
0 0 86 0 0 87 0 0 88 0 0 89 0 0 90 0 0 91 0 0 92 0 0 93 0 0 94 0 0
95 0 0 96 0 0 97 0 0 98 0 0 99 0 247;
#X msg 140 74 240 0 32 41 2 12 3 0 0 0 0 1 0 0 2 0 0 3 0 0 4 0 0 5
0 0 6 0 0 7 0 0 8 0 0 9 0 0 10 0 0 11 0 0 12 0 0 13 0 0 14 0 0 15 0
0 16 0 0 17 0 0 18 0 0 19 0 0 20 0 0 21 0 0 22 0 0 23 0 0 24 0 0 25
0 0 26 0 0 27 0 0 28 0 0 29 0 0 30 0 0 31 0 0 32 0 0 33 0 0 34 0 0
35 0 0 36 0 0 37 0 0 38 0 0 39 0 0 40 0 0 41 0 0 42 0 0 43 0 0 44 0
0 45 0 0 46 0 0 47 0 0 48 0 0 49 0 0 50 0 0 51 0 0 52 0 0 53 0 0 54
0 0 55 0 0 56 0 0 57 0 0 58 0 0 59 0 0 60 0 0 61 0 0 62 0 0 63 0 0
64 0 0 65 0 0 66 0 0 67 0 0 68 0 0 69 0 0 70 0 0 71 0 0 72 0 0 73 0
0 74 0 0 75 0 0 76 0 0 77 0 0 78 0 0 79 0 0 80 0 247;
#X obj 113 42 t b b;
#X connect 0 0 4 0;
#X connect 2 0 1 0;
#X connect 3 0 1 0;
#X connect 4 0 2 0;
#X connect 4 1 3 0;
#X restore 427 226 pd CLEAR;
#N canvas 0 23 635 474 RGB 0;
#X obj 71 46 inlet;
#X obj 105 124 t l;
#X obj 71 220 list prepend;
#X obj 71 322 list prepend 240 0 32 41 2 12 3;
#X obj 71 346 list append 247;
#X obj 176 83 list length;
#X obj 71 283 list;
#X obj 176 125 - 1;
#X obj 71 244 t b l l;
#X obj 155 259 f 0;
#X obj 155 280 t f f;
#X obj 196 280 + 1;
#X obj 155 301 sel -1;
#X floatatom 217 126 5 0 0 0 - - -;
#X obj 71 70 t l b l b;
#X msg 164 233 0;
#X obj 71 97 list split 4;
#X obj 176 104 / 4;
#X obj 71 173 list prepend 3;
#X text 165 173 <<< RBG byte \;;
#X obj 71 402 midiout;
#X connect 0 0 14 0;
#X connect 1 0 16 0;
#X connect 2 0 8 0;
#X connect 3 0 4 0;
#X connect 4 0 20 0;
#X connect 5 0 17 0;
#X connect 6 0 3 0;
#X connect 7 0 12 1;
#X connect 7 0 13 0;
#X connect 8 0 9 0;
#X connect 8 1 6 1;
#X connect 8 2 2 1;
#X connect 9 0 10 0;
#X connect 10 0 12 0;
#X connect 10 1 11 0;
#X connect 11 0 9 1;
#X connect 12 0 6 0;
#X connect 14 0 16 0;
#X connect 14 1 2 1;
#X connect 14 2 5 0;
#X connect 14 3 15 0;
#X connect 15 0 9 1;
#X connect 16 0 18 0;
#X connect 16 1 1 0;
#X connect 17 0 7 0;
#X connect 18 0 2 0;
#X restore 866 73 pd RGB;
#X obj 55 56 route list symbol float;
#X obj 427 30 route clear column row setall mode text text_stop daw_mode
programmer_mode rgb print_methods, f 90;
#X obj 915 73 s \$0_print_methods;
#X obj 887 514 r \$0_print_methods;
#X msg 887 535 TO_LP_X METHODS \, clear \, column \, row \, setall
\, mode \, text \, tex_stop \, daw_mode \, programmer_mode \, rgb;
#X obj 887 567 print -n;
#X text 367 522 Copyright 2019-2020 Focusrite Audio Engineering Limited.
;
#X text 398 644 http://www.apache.org/licenses/LICENSE-2.0;
#X text 368 552 Licensed under the Apache License \, Version 2 (the
"License") \; you may not use this file except in compliance with the
License.;
#X text 368 609 You may obtain a copy of the License at;
#X text 368 674 Unless required by applicable law or agreed to in writing
\, software distributed under the License is distributed on an "AS
IS" BASIS \, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND \, either
express or implied.;
#X text 368 730 See the License for the specific language governing
permissions and limitations under the License.;
#X connect 0 0 7 0;
#X connect 1 0 7 1;
#X connect 2 0 84 0;
#X connect 3 0 50 0;
#X connect 7 0 35 0;
#X connect 8 0 69 0;
#X connect 9 0 10 0;
#X connect 10 0 11 0;
#X connect 11 0 57 0;
#X connect 12 0 70 0;
#X connect 13 0 68 0;
#X connect 14 0 67 0;
#X connect 15 0 18 0;
#X connect 16 0 18 0;
#X connect 17 0 18 0;
#X connect 19 0 15 0;
#X connect 19 1 17 0;
#X connect 19 2 16 0;
#X connect 19 3 20 0;
#X connect 20 0 15 0;
#X connect 20 1 17 0;
#X connect 20 2 16 0;
#X connect 21 0 0 0;
#X connect 22 0 56 0;
#X connect 23 0 54 0;
#X connect 24 0 54 1;
#X connect 25 0 28 0;
#X connect 26 0 22 0;
#X connect 26 1 23 0;
#X connect 26 2 24 0;
#X connect 30 0 31 0;
#X connect 31 0 79 0;
#X connect 32 0 33 0;
#X connect 33 0 34 0;
#X connect 34 0 39 0;
#X connect 35 0 58 0;
#X connect 35 1 46 1;
#X connect 36 0 46 0;
#X connect 36 1 32 0;
#X connect 37 0 43 0;
#X connect 38 0 47 0;
#X connect 39 0 42 0;
#X connect 40 0 37 1;
#X connect 41 0 38 1;
#X connect 42 0 40 0;
#X connect 42 1 41 0;
#X connect 44 0 81 0;
#X connect 46 0 37 0;
#X connect 46 0 38 0;
#X connect 47 0 45 0;
#X connect 47 1 45 1;
#X connect 51 0 54 2;
#X connect 53 0 55 1;
#X connect 54 0 53 0;
#X connect 55 0 25 0;
#X connect 56 0 55 0;
#X connect 58 0 36 0;
#X connect 58 1 59 0;
#X connect 59 0 46 0;
#X connect 59 1 60 0;
#X connect 60 0 42 0;
#X connect 61 0 63 0;
#X connect 62 0 61 0;
#X connect 63 0 56 0;
#X connect 63 1 54 0;
#X connect 63 2 54 1;
#X connect 65 0 64 0;
#X connect 69 0 14 0;
#X connect 70 0 13 0;
#X connect 71 0 1 0;
#X connect 73 0 72 0;
#X connect 74 0 82 0;
#X connect 76 0 77 0;
#X connect 77 0 78 0;
#X connect 78 0 75 0;
#X connect 79 0 29 0;
#X connect 81 0 45 2;
#X connect 81 0 43 2;
#X connect 84 0 73 0;
#X connect 84 1 21 0;
#X connect 84 2 0 0;
#X connect 84 3 85 0;
#X connect 85 0 74 0;
#X connect 85 1 8 0;
#X connect 85 2 12 0;
#X connect 85 3 9 0;
#X connect 85 4 19 0;
#X connect 85 5 26 0;
#X connect 85 6 62 0;
#X connect 85 7 30 0;
#X connect 85 8 76 0;
#X connect 85 9 83 0;
#X connect 85 10 86 0;
#X connect 87 0 88 0;
#X connect 88 0 89 0;