List<List<T>> chunk<T>(List<T> arr, int size) { final int chunks = (arr.length / size).ceil(); return List.generate(chunks, (i) => arr.skip(i * size).take(size).toList()); }