scope renderLineCompedSingleLevels_raw_v3. static long[][] renderLineCompedSingleLevels_raw_v3(LineCompedSingle lc) { int n = lcLength(lc); // each matrix element is the character's symbol number+1 combined with its starting position (or 0 for empty) L rows = new AutoCreateList<>(() -> new long[n]); fill(lc, rows, 0, 0, lc.main); ret toArray(rows, long[].class); } // returns new x static int #fill(LineCompedSingle lc, L rows, int x, int y, L symbols) { //printVars_str fill(+x, +y, +symbols); for (int idx : symbols) { if (idx < l(lc.literals)) { rows.get(y)[x] = twoIntsToLong(idx+1); x++; } else { int newX = fill(lc, rows, x, y+1, intPairToList(lc.getPair(idx))); while (x < newX) rows.get(y)[x++] = idx+1; } } ret x; } end scope