-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathmtxgui-help.pd
executable file
·477 lines (477 loc) · 15.4 KB
/
mtxgui-help.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
#N canvas 0 27 820 993 12;
#X obj 1 29 cnv 3 800 3 empty empty description 12 12 0 12 #7c7c7c #404040 0;
#X obj 1 113 cnv 3 800 3 empty empty inlets 8 12 0 13 #dcdcdc #000000 0;
#X obj 83 119 cnv 18 3 17 empty empty 0 5 9 0 14 #dcdcdc #9c9c9c 0;
#X obj 1 183 cnv 3 800 3 empty empty outlets 8 12 0 13 #dcdcdc #000000 0;
#X obj 83 189 cnv 18 3 17 empty empty 0 5 9 0 14 #dcdcdc #9c9c9c 0;
#X obj 1 425 cnv 3 800 3 empty empty example 8 12 0 13 #dcdcdc #000000 0;
#X obj 1 1 cnv 3 800 3 empty empty mtxgui 14 14 1 16 #7c7c7c #404040 0;
#X text 105 119 commands: col row matrix element get set setrows setcols setsize setcellsize setnewargs colorons coloroffs mtxdump cellcolorons cellcoloroffs colcolorons colcoloroffs rowcolorons rowcoloroffs (see below);
#N canvas 124 23 1316 855 setting_values 0;
#X obj 65 28 tgl 15 0 empty empty empty 17 7 0 10 #fcfcfc #000000 #000000 0 1;
#X msg 65 47 set 2 3 \$1;
#X msg 77 90 element 4 3 \$1;
#X obj 77 71 tgl 15 0 empty empty empty 17 7 0 10 #fcfcfc #000000 #000000 0 1;
#X text 312 57 element row col 1/0;
#X text 340 41 set row col 1/0;
#X text 462 49 -> set cell value;
#X text 292 130 col colnumber vals ...;
#X text 462 129 -> set entire col values;
#X text 292 200 row rownumber vals ...;
#X text 462 199 -> set entire row values;
#X obj 26 420 mtxgui 7 8;
#X msg 126 149 col 5 0 0 0 0 0 0 0;
#X msg 126 191 row 3 1 1 1 1 1 1 1 1;
#X msg 127 214 row 3 0 0 0 0 0 0 0 0;
#X msg 148 299 matrix 7 8 0 1 0 0 1 0 1 0 0 1 0 0 1 0 0 0 0 1 0 0 1 0 1 0 0 1 1 1 1 0 1 0 0 1 0 0 1 0 1 0 0 1 0 0 1 0 1 0 0 1 0 0 1 0 1 0;
#X msg 165 352 matrix 7 8 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0;
#X text 144 277 set entire matrix;
#X msg 193 442 mtxdump \$1;
#X obj 193 423 tgl 15 0 empty empty empty 17 7 0 10 #fcfcfc #000000 #000000 0 1;
#X msg 126 126 col 5 0.1 1 1 1 1 1 1;
#X obj 245 559 print cell;
#X obj 252 580 print row;
#X obj 252 602 print col;
#X obj 224 624 print changed;
#X obj 26 520 route cell row col changed mtx;
#X obj 252 646 print mtx;
#X obj 238 668 print other;
#X connect 0 0 1 0;
#X connect 1 0 11 0;
#X connect 2 0 11 0;
#X connect 3 0 2 0;
#X connect 11 0 25 0;
#X connect 12 0 11 0;
#X connect 13 0 11 0;
#X connect 14 0 11 0;
#X connect 15 0 11 0;
#X connect 16 0 11 0;
#X connect 18 0 11 0;
#X connect 19 0 18 0;
#X connect 20 0 11 0;
#X connect 25 0 21 0;
#X connect 25 1 22 0;
#X connect 25 2 23 0;
#X connect 25 3 24 0;
#X connect 25 4 26 0;
#X connect 25 5 27 0;
#X restore 562 481 pd setting_values;
#N canvas 617 23 734 666 getting_values 0;
#N canvas 0 23 1440 855 loadbang 0;
#X obj 26 161 outlet;
#X obj 26 26 loadbang;
#X msg 26 48 matrix 7 27 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 1 0 1 1 1 1 0 1 0 0 0 1 0 0 0 1 1 1 1 0 1 0 0 1 1 1 1 1 0 1 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 1 0 1 0 0 1 0 0 0 1 0 1 1 1 0 0 1 0 0 0 1 0 0 0 1 0 0 1 0 1 0 0 1 0 0 0 1 0 1 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 1 0 0 0 1 0 1 1 1 1 0 1 1 1 0 1 1 1 0 1 1 1 1 0 1 0;
#X connect 1 0 2 0;
#X connect 2 0 0 0;
#X restore 86 309 pd loadbang;
#X msg 58 36 get 3 2;
#X msg 68 60 element 3 2;
#X text 200 41 get row col;
#X text 172 57 element row col;
#X msg 97 100 col 2;
#X msg 103 125 col 3;
#X text 182 100 col colnumber;
#X text 182 170 row rownumber;
#X msg 123 195 row 7;
#X msg 117 172 row 1;
#X msg 137 232 matrix;
#X text 231 230 matrix;
#X text 292 49 -> get cell value (out0);
#X text 292 99 -> get entire col values (out1);
#X text 292 169 -> get entire row values (out1);
#X text 292 229 -> get entire matrix (out3);
#X obj 61 330 mtxgui 7 27 8;
#X obj 280 436 print cell;
#X obj 287 457 print row;
#X obj 287 479 print col;
#X obj 259 501 print changed;
#X obj 61 397 route cell row col changed mtx;
#X obj 287 523 print mtx;
#X connect 0 0 17 0;
#X connect 1 0 17 0;
#X connect 2 0 17 0;
#X connect 5 0 17 0;
#X connect 6 0 17 0;
#X connect 9 0 17 0;
#X connect 10 0 17 0;
#X connect 11 0 17 0;
#X connect 17 0 22 0;
#X connect 22 0 18 0;
#X connect 22 1 19 0;
#X connect 22 2 20 0;
#X connect 22 3 21 0;
#X connect 22 4 23 0;
#X restore 562 503 pd getting_values;
#X obj 20 839 mtxgui 5 5 10;
#X obj 19 464 loadbang;
#X msg 95 812 mtxdump \$1;
#X obj 95 795 tgl 15 0 empty empty empty 17 7 0 10 #fcfcfc #000000 #000000 0 1;
#X text 314 1021 <- ready to be used with iemmatrix;
#X text 314 1000 <- individual cell updates;
#X text 314 935 <- get/element query;
#X msg 64 666 get 1 2;
#X msg 64 687 get 1 3;
#X msg 36 524 set 2 4 \$1;
#X obj 36 507 tgl 15 0 empty empty empty 17 7 0 10 #fcfcfc #000000 #000000 0 1;
#X msg 20 485 matrix 5 5 0 1 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0;
#X msg 47 578 row 4 0 0 0 0 0;
#X msg 58 631 col 4 0 0 0 0 0;
#X msg 58 609 col 4 1 1 1 1 1;
#X text 123 672 same as "element row col";
#X text 114 522 same as "element row col value";
#X msg 100 750 col 4;
#X msg 86 718 row 4;
#X msg 46 557 row 4 1 1 1 1 1;
#N canvas 561 55 767 714 instantiate 0;
#X obj 64 84 mtxgui;
#X obj 66 160 mtxgui 4 2;
#X obj 66 248 mtxgui 2 3 20;
#X text 61 140 [mtxgui 4 2] -> 4 rows \, 2 columns;
#X text 63 60 [mtxgui] (no arguments) -> 3 rows \, 4 cols \, cellsize: 13;
#X text 61 230 [mtxgui 2 3 20] -> 2 rows \, 3 columns \, cellsize: 20;
#X msg 67 404 setrows 5;
#X msg 77 428 setcols 12;
#X msg 88 451 setsize 5 9;
#X text 45 37 You can create a mtxgui with the following syntaxes;
#X obj 66 505 mtxgui 4 4 10;
#X text 45 337 It is possible to change these parameters and reinstantiate the matrix with the following commands:;
#X msg 96 476 setnewargs 12 12 8;
#X obj 66 631 route mtxgui_ready;
#X obj 66 655 tgl 15 0 empty empty empty 17 7 0 10 #fcfcfc #000000 #000000 0 1;
#X text 86 653 <- may be usefull to know when everything is ready (as the GUI is created with dynamic patching);
#X connect 6 0 10 0;
#X connect 7 0 10 0;
#X connect 8 0 10 0;
#X connect 10 0 13 0;
#X connect 12 0 10 0;
#X connect 13 0 14 0;
#X restore 562 460 pd instantiate;
#X text 32 50 a vanilla abstraction/GUI to work with matrices;
#X text 560 441 see:;
#X obj 239 936 print cell;
#X obj 246 957 print row;
#X obj 246 979 print col;
#X obj 218 1001 print changed;
#X obj 20 897 route cell row col changed mtx;
#X obj 246 1023 print mtx;
#X obj 232 1045 print other;
#X text 314 955 <- row query;
#X text 314 978 <- col query;
#X text 314 1044 <- internal state/other messages;
#X text 174 815 dump matrix when setting values (use [route mtx]);
#X text 109 189 the abstraction uses only one real output \, but uses tags to route the following info:;
#X text 162 224 cell:;
#X text 199 224 [float] result of get/element methods;
#X text 169 247 row:;
#X text 199 248 [list] result of row method;
#X text 169 271 col:;
#X text 199 271 [list] result of col method;
#X text 141 295 changed:;
#X text 169 322 mtx:;
#X text 199 322 [list] result of matrix method. Also outputs matrices continuously \, at every change \, if [mtxdump 1< is sent to the object.;
#X text 155 376 other:;
#X text 199 376 [list] internal state messages (signals if matrix was already generated through the abstraction dynamic patching process \, for instance).;
#X text 199 296 [list] outputs all cell values that changed (row col val);
#X obj 564 586 bng 15 250 50 0 empty empty empty 17 7 0 10 #fcfcfc #000000 #000000;
#N canvas 447 43 993 689 set_matrix_color 0;
#X obj 65 608 mtxgui 5 5 10;
#X obj 64 7 loadbang;
#N canvas 0 23 450 300 packvals 0;
#X obj 39 34 inlet;
#X obj 39 142 pack 0 0 0;
#X obj 79 105 t b f;
#X obj 121 105 t b f;
#X obj 80 83 f;
#X obj 121 84 f;
#X obj 39 84 f;
#X obj 80 34 inlet;
#X obj 121 34 inlet;
#X obj 39 165 outlet;
#X connect 0 0 6 0;
#X connect 1 0 9 0;
#X connect 2 0 6 0;
#X connect 2 1 1 1;
#X connect 3 0 6 0;
#X connect 3 1 1 2;
#X connect 4 0 2 0;
#X connect 5 0 3 0;
#X connect 6 0 1 0;
#X connect 7 0 4 0;
#X connect 8 0 5 0;
#X restore 161 143 pd packvals;
#X text 81 82 R;
#X text 81 103 G;
#X text 81 122 B;
#X msg 161 167 colorons \$1 \$2 \$3;
#X msg 64 50 matrix 5 5 0 1 1 1 0 1 0 1 0 1 0 0 0 1 1 1 1 0 0 0 1 0 0 0 1;
#X text 68 31 set some values to test colors;
#X text 290 167 <- set "on" state color globally;
#X obj 100 84 hsl 128 15 0 255 0 0 empty empty empty -2 -8 0 10 #fcfcfc #000000 #000000 0 1;
#X obj 100 104 hsl 128 15 0 255 0 0 empty empty empty -2 -8 0 10 #fcfcfc #000000 #000000 0 1;
#X obj 100 124 hsl 128 15 0 255 0 0 empty empty empty -2 -8 0 10 #fcfcfc #000000 #000000 0 1;
#X floatatom 234 81 5 0 0 0 - - - 0;
#X floatatom 234 101 5 0 0 0 - - - 0;
#X floatatom 234 122 5 0 0 0 - - - 0;
#N canvas 0 23 450 300 packvals 0;
#X obj 39 34 inlet;
#X obj 39 142 pack 0 0 0;
#X obj 79 105 t b f;
#X obj 121 105 t b f;
#X obj 80 83 f;
#X obj 121 84 f;
#X obj 39 84 f;
#X obj 80 34 inlet;
#X obj 121 34 inlet;
#X obj 39 165 outlet;
#X connect 0 0 6 0;
#X connect 1 0 9 0;
#X connect 2 0 6 0;
#X connect 2 1 1 1;
#X connect 3 0 6 0;
#X connect 3 1 1 2;
#X connect 4 0 2 0;
#X connect 5 0 3 0;
#X connect 6 0 1 0;
#X connect 7 0 4 0;
#X connect 8 0 5 0;
#X restore 251 273 pd packvals;
#X text 171 212 R;
#X text 171 233 G;
#X text 171 252 B;
#X obj 190 214 hsl 128 15 0 255 0 0 empty empty empty -2 -8 0 10 #fcfcfc #000000 #000000 0 1;
#X obj 190 234 hsl 128 15 0 255 0 0 empty empty empty -2 -8 0 10 #fcfcfc #000000 #000000 0 1;
#X obj 190 254 hsl 128 15 0 255 0 0 empty empty empty -2 -8 0 10 #fcfcfc #000000 #000000 0 1;
#X floatatom 324 211 5 0 0 0 - - - 0;
#X floatatom 324 231 5 0 0 0 - - - 0;
#X floatatom 324 252 5 0 0 0 - - - 0;
#X msg 251 297 coloroffs \$1 \$2 \$3;
#X text 385 297 <- set "off" state color globally;
#X msg 256 395 colormode hsv;
#X msg 256 372 colormode rgb;
#X text 357 372 (default);
#X text 358 396 <- the color commands will be interpreted as hue/saturation/value (instead of R G B);
#X connect 1 0 7 0;
#X connect 2 0 6 0;
#X connect 6 0 0 0;
#X connect 7 0 0 0;
#X connect 10 0 13 0;
#X connect 11 0 14 0;
#X connect 12 0 15 0;
#X connect 13 0 2 0;
#X connect 14 0 2 1;
#X connect 15 0 2 2;
#X connect 16 0 26 0;
#X connect 20 0 23 0;
#X connect 21 0 24 0;
#X connect 22 0 25 0;
#X connect 23 0 16 0;
#X connect 24 0 16 1;
#X connect 25 0 16 2;
#X connect 26 0 0 0;
#X connect 28 0 0 0;
#X connect 29 0 0 0;
#X restore 565 898 pd set_matrix_color;
#N canvas 447 132 993 689 set_colrow_color 0;
#X obj 64 7 loadbang;
#X text 68 31 set some values to test colors;
#X text 333 160 rowcolorons rownumber R G B;
#X text 538 160 -> set "on" state color of a specific row;
#X text 333 187 colcolorons colnumber R G B;
#X msg 134 186 colcolorons 1 100 220 0;
#X msg 64 50 matrix 5 5 1 1 1 1 0 0 1 1 0 1 0 0 0 1 1 1 1 0 0 0 1 0 0 0 1;
#X text 332 216 rowcoloroffs rownumber R G B;
#X text 333 242 colcoloroffs colnumber R G B;
#X text 538 214 -> set "off" state color of a specific row;
#X text 538 187 -> set "on" state color of a specific col;
#X text 538 243 -> set "off" state color of a specific col;
#X msg 134 213 rowcoloroffs 4 100 100 155;
#X msg 134 239 colcoloroffs 2 20 20 50;
#X obj 62 381 mtxgui 5 5 10;
#X msg 142 275 colordefault;
#X msg 149 331 colormode hsv;
#X msg 149 308 colormode rgb;
#X text 250 308 (default);
#X text 251 332 <- the color commands will be interpreted as hue/saturation/value;
#X msg 238 275 colorreset;
#X text 319 275 reset to the default color;
#X msg 134 159 rowcolorons 2 200 50 190;
#X connect 0 0 6 0;
#X connect 5 0 14 0;
#X connect 6 0 14 0;
#X connect 12 0 14 0;
#X connect 13 0 14 0;
#X connect 15 0 14 0;
#X connect 16 0 14 0;
#X connect 17 0 14 0;
#X connect 20 0 14 0;
#X connect 22 0 14 0;
#X restore 565 919 pd set_colrow_color;
#X obj 595 612 tgl 15 0 empty empty empty 17 7 0 10 #fcfcfc #000000 #000000 0 1;
#X text 575 610 or;
#N canvas 447 132 993 689 set_individual_cell_color 0;
#X obj 65 328 mtxgui 5 5 10;
#X obj 64 7 loadbang;
#X text 68 31 set some values to test colors;
#X msg 64 50 matrix 5 5 1 1 1 1 0 0 1 1 0 1 0 0 0 1 1 1 1 0 0 0 1 0 0 0 1;
#X msg 141 161 cellcolorons 1 2 0 196 0;
#X msg 106 184 cellcoloroffs 3 3 128 255 255;
#X text 333 160 cellcolorons row col R G B;
#X text 326 187 cellcoloroffs row col R G B;
#X text 538 160 -> set "on" state color of a specific cell;
#X text 538 187 -> set "off" state color of a specific cell;
#X connect 1 0 3 0;
#X connect 3 0 0 0;
#X connect 4 0 0 0;
#X connect 5 0 0 0;
#X restore 565 940 pd set_individual_cell_color;
#X text 583 584 colors!;
#X text 563 878 see:;
#N canvas 464 23 1211 940 wiphala 0;
#X msg 386 612 255 255 255;
#X text 478 611 white;
#X text 478 635 yellow;
#X text 479 657 orange;
#X text 480 681 red;
#X text 480 704 purple;
#X text 480 727 blue;
#X text 480 747 green;
#X obj 116 231 until;
#X obj 115 454 mod 7;
#X obj 116 255 f;
#X obj 146 255 + 1;
#X msg 159 232 0;
#X obj 192 301 div 7;
#X obj 116 277 t f f f;
#X obj 263 558 sel 0 1 2 3 4 5 6;
#X obj 260 464 +;
#X obj 217 346 change;
#X obj 194 439 f;
#X msg 117 187 49;
#X msg 222 439 0;
#X obj 115 500 pack 0 0;
#X obj 168 479 + 1;
#X obj 115 478 + 1;
#X msg 115 523 cellcoloroffs \$2 \$1;
#X obj 113 777 list append;
#X obj 113 800 list trim;
#X obj 217 390 f;
#X obj 246 390 - 1;
#X obj 217 370 bng 15 250 50 0 empty empty empty 17 7 0 10 #fcfcfc #000000 #000000;
#X msg 266 346 -1;
#X obj 260 487 + 1;
#X obj 263 534 mod 7;
#X obj 116 209 t f b b b;
#X obj 171 324 t f b f;
#X obj 113 827 outlet;
#X obj 117 117 inlet;
#X msg 576 337 colorons 20 20 20;
#X obj 117 165 t b b;
#X obj 401 147 inlet;
#X obj 340 462 f;
#X obj 374 215 t b b;
#X obj 294 507 +;
#X obj 117 141 t b b;
#X msg 235 164 0;
#X obj 370 461 + 1;
#X msg 386 635 252 221 42;
#X msg 386 658 235 119 19;
#X msg 387 681 218 33 27;
#X msg 387 705 116 44 100;
#X msg 387 728 12 72 175;
#X msg 387 750 8 137 48;
#X obj 402 183 metro 80;
#X connect 0 0 25 1;
#X connect 8 0 10 0;
#X connect 9 0 23 0;
#X connect 10 0 11 0;
#X connect 10 0 14 0;
#X connect 11 0 10 1;
#X connect 12 0 10 1;
#X connect 13 0 34 0;
#X connect 14 0 9 0;
#X connect 14 1 13 0;
#X connect 14 2 16 1;
#X connect 15 0 0 0;
#X connect 15 1 46 0;
#X connect 15 2 47 0;
#X connect 15 3 48 0;
#X connect 15 4 49 0;
#X connect 15 5 50 0;
#X connect 15 6 51 0;
#X connect 16 0 31 0;
#X connect 17 0 29 0;
#X connect 18 0 16 0;
#X connect 19 0 33 0;
#X connect 20 0 18 1;
#X connect 21 0 24 0;
#X connect 22 0 21 1;
#X connect 23 0 21 0;
#X connect 24 0 25 0;
#X connect 25 0 26 0;
#X connect 26 0 35 0;
#X connect 27 0 18 1;
#X connect 27 0 28 0;
#X connect 28 0 27 1;
#X connect 29 0 27 0;
#X connect 30 0 27 1;
#X connect 31 0 42 0;
#X connect 32 0 15 0;
#X connect 33 0 8 0;
#X connect 33 1 12 0;
#X connect 33 2 30 0;
#X connect 33 3 20 0;
#X connect 34 0 22 0;
#X connect 34 1 18 0;
#X connect 34 2 17 0;
#X connect 36 0 43 0;
#X connect 37 0 35 0;
#X connect 38 0 19 0;
#X connect 38 1 37 0;
#X connect 39 0 52 0;
#X connect 40 0 42 1;
#X connect 40 0 45 0;
#X connect 41 0 38 0;
#X connect 41 1 40 0;
#X connect 42 0 32 0;
#X connect 43 0 38 0;
#X connect 43 1 44 0;
#X connect 43 1 38 0;
#X connect 44 0 40 0;
#X connect 45 0 40 1;
#X connect 46 0 25 1;
#X connect 47 0 25 1;
#X connect 48 0 25 1;
#X connect 49 0 25 1;
#X connect 50 0 25 1;
#X connect 51 0 25 1;
#X connect 52 0 41 0;
#X restore 564 638 pd wiphala;
#X obj 564 660 mtxgui 7 7 30;
#X obj 564 560 loadbang;
#X text 611 609 :);
#X obj 621 40 plnf_version;
#X connect 10 0 37 0;
#X connect 11 0 21 0;
#X connect 12 0 10 0;
#X connect 13 0 12 0;
#X connect 17 0 10 0;
#X connect 18 0 10 0;
#X connect 19 0 10 0;
#X connect 20 0 19 0;
#X connect 21 0 10 0;
#X connect 22 0 10 0;
#X connect 23 0 10 0;
#X connect 24 0 10 0;
#X connect 27 0 10 0;
#X connect 28 0 10 0;
#X connect 29 0 10 0;
#X connect 37 0 33 0;
#X connect 37 1 34 0;
#X connect 37 2 35 0;
#X connect 37 3 36 0;
#X connect 37 4 38 0;
#X connect 37 5 39 0;
#X connect 57 0 65 0;
#X connect 60 0 65 1;
#X connect 65 0 66 0;
#X connect 67 0 57 0;