From bee95280e5ed22c62fcce77b30f35baa09c1f46e Mon Sep 17 00:00:00 2001
From: OGAWA Keiji <70509917+kibi2@users.noreply.github.com>
Date: Tue, 7 Apr 2026 07:43:02 +0900
Subject: [PATCH 1/4] refactor: api.nvim_buf_line_count(bufnr) ->
buffer.line_count(bufnr)
---
lua/tirenvi/core/tir_vim.lua | 3 ++-
lua/tirenvi/editor/motion.lua | 3 ++-
lua/tirenvi/render.lua | 3 +--
lua/tirenvi/state/buffer.lua | 6 +++---
lua/tirenvi/util/log.lua | 4 ++--
5 files changed, 10 insertions(+), 9 deletions(-)
diff --git a/lua/tirenvi/core/tir_vim.lua b/lua/tirenvi/core/tir_vim.lua
index b57bedd..525d19a 100644
--- a/lua/tirenvi/core/tir_vim.lua
+++ b/lua/tirenvi/core/tir_vim.lua
@@ -1,5 +1,6 @@
local config = require("tirenvi.config")
local util = require("tirenvi.util.util")
+local buffer = require("tirenvi.state.buffer")
local log = require("tirenvi.util.log")
local pipen = config.marks.pipe
@@ -205,7 +206,7 @@ function M.get_block_rect(line_provider, count, is_around, allow_plain)
brow = M.get_block_bottom_nrow(line_provider, irow)
else
trow = 1
- brow = api.nvim_buf_line_count(0)
+ brow = buffer.line_count(0)
end
local tline = line_provider.get_line(trow) or ""
local bline = line_provider.get_line(brow) or ""
diff --git a/lua/tirenvi/editor/motion.lua b/lua/tirenvi/editor/motion.lua
index 8df8258..70b5e37 100644
--- a/lua/tirenvi/editor/motion.lua
+++ b/lua/tirenvi/editor/motion.lua
@@ -1,5 +1,6 @@
local config = require("tirenvi.config")
local buf_state = require("tirenvi.state.buf_state")
+local buffer = require("tirenvi.state.buffer")
local LinProvider = require("tirenvi.state.buffer_line_provider")
local tir_vim = require("tirenvi.core.tir_vim")
local util = require("tirenvi.util.util")
@@ -53,7 +54,7 @@ function M.block_bottom()
local bottom
local parser = util.get_parser(bufnr)
if not parser or not parser.allow_plain then
- bottom = vim.api.nvim_buf_line_count(bufnr)
+ bottom = buffer.line_count(bufnr)
else
local line_provider = LinProvider.new(0)
bottom = tir_vim.get_block_bottom_nrow(line_provider, row)
diff --git a/lua/tirenvi/render.lua b/lua/tirenvi/render.lua
index c776530..8a56580 100644
--- a/lua/tirenvi/render.lua
+++ b/lua/tirenvi/render.lua
@@ -10,8 +10,7 @@ local M = {}
---@param last integer
---@param id integer
function M.set_range(bufnr, first, last, id)
- local line_count = vim.api.nvim_buf_line_count(bufnr)
- last = math.min(last, line_count - 1)
+ last = math.min(last, buffer.line_count(bufnr) - 1)
local line = buffer.get_line(bufnr, last)
local end_col = #line
local opts = {
diff --git a/lua/tirenvi/state/buffer.lua b/lua/tirenvi/state/buffer.lua
index a8a8e4c..99f0237 100644
--- a/lua/tirenvi/state/buffer.lua
+++ b/lua/tirenvi/state/buffer.lua
@@ -181,7 +181,7 @@ end
function M.get_lines(bufnr, i_start, i_end)
bufnr = bufnr == 0 and api.nvim_get_current_buf() or bufnr
i_start = math.max(0, i_start)
- local nline = api.nvim_buf_line_count(bufnr)
+ local nline = M.line_count(bufnr)
if i_end == -1 then
i_end = nline
end
@@ -210,7 +210,7 @@ function M.get_line(bufnr, iline)
get_lines_and_cache(bufnr, iline - 2 * STEP, iline + 1)
end
else
- if iline < api.nvim_buf_line_count(bufnr) then
+ if iline < M.line_count(bufnr) then
get_lines_and_cache(bufnr, iline, iline + 2 * STEP)
end
end
@@ -218,7 +218,7 @@ function M.get_line(bufnr, iline)
end
---@param bufnr number
----@return string|nil
+---@return integer
function M.line_count(bufnr)
return api.nvim_buf_line_count(bufnr)
end
diff --git a/lua/tirenvi/util/log.lua b/lua/tirenvi/util/log.lua
index 240080d..d886668 100644
--- a/lua/tirenvi/util/log.lua
+++ b/lua/tirenvi/util/log.lua
@@ -123,7 +123,7 @@ local function get_bufnr_by_name(name)
return nil
end
----@return boolean
+---@return number
local function ensure_log_buf()
if log_bufnr and api.nvim_buf_is_valid(log_bufnr) then
return log_bufnr
@@ -132,7 +132,7 @@ local function ensure_log_buf()
if log_bufnr then
return log_bufnr
end
-
+ ---@type number
log_bufnr = api.nvim_create_buf(false, true)
api.nvim_buf_set_name(log_bufnr, config.log.buffer_name)
From d5b899dfcc8a88cc00a66efe8fed395c3f70cfef Mon Sep 17 00:00:00 2001
From: OGAWA Keiji <70509917+kibi2@users.noreply.github.com>
Date: Tue, 7 Apr 2026 08:31:07 +0900
Subject: [PATCH 2/4] refactor: leverage buffer cache to minimize line fetching
Avoid reading the entire buffer and fetch only required lines.
---
lua/tirenvi/state/buf_state.lua | 4 ++--
lua/tirenvi/state/buffer.lua | 6 ++++--
tests/cases/ut/state/buffer/out-expected.txt | 10 +++++-----
3 files changed, 11 insertions(+), 9 deletions(-)
diff --git a/lua/tirenvi/state/buf_state.lua b/lua/tirenvi/state/buf_state.lua
index 65e2c37..d3fb88f 100644
--- a/lua/tirenvi/state/buf_state.lua
+++ b/lua/tirenvi/state/buf_state.lua
@@ -25,8 +25,8 @@ end
---@param bufnr number
---@return boolean
local function has_pipe(bufnr)
- local fl_lines = buffer.get_lines(bufnr, 0, -1)
- for _, fl_line in ipairs(fl_lines) do
+ for iline = 0, buffer.line_count(bufnr) do
+ local fl_line = buffer.get_line(bufnr, iline)
if tir_vim.has_pipe(fl_line) then
return true
end
diff --git a/lua/tirenvi/state/buffer.lua b/lua/tirenvi/state/buffer.lua
index 99f0237..a2db4a8 100644
--- a/lua/tirenvi/state/buffer.lua
+++ b/lua/tirenvi/state/buffer.lua
@@ -73,8 +73,10 @@ end
---@param i_start integer
---@param i_end integer integer
local function get_lines_and_cache(bufnr, i_start, i_end)
- local start = math.max(0, i_start)
- local lines = api.nvim_buf_get_lines(bufnr, start, i_end, false)
+ local start = math.max(i_start, 0)
+ local end_ = math.min(math.max(i_end, start + 2 * STEP), M.line_count(bufnr))
+ local start = math.max(math.min(start, end_ - 2 * STEP), 0)
+ local lines = api.nvim_buf_get_lines(bufnr, start, end_, false)
cache = { bufnr = bufnr, start = start, lines = lines, }
log.debug("===== bufnr=%d, start=%d, end=%d, lines[1]=%s, line[%d]=%s, ",
cache.bufnr, cache.start, cache.start + #cache.lines,
diff --git a/tests/cases/ut/state/buffer/out-expected.txt b/tests/cases/ut/state/buffer/out-expected.txt
index a12773d..493768d 100644
--- a/tests/cases/ut/state/buffer/out-expected.txt
+++ b/tests/cases/ut/state/buffer/out-expected.txt
@@ -1,23 +1,23 @@
=== MESSAGE ===
[TIR][🟧PROBE][[string ":lua"]:14] buffer.get_lines(0, 0, -1)
-[TIR][DEBUG][buffer.lua:79] ===== bufnr=1, start=0, end=21, lines[1]=0, line[21]=20,
+[TIR][DEBUG][buffer.lua:81] ===== bufnr=1, start=0, end=21, lines[1]=0, line[21]=20,
[TIR][DEBUG][[string ":lua"]:16]
{ "0", "1", "2", "3", "4", "5", "6", "7", "8", "9", "10", "11", "12", "13", "14", "15", "16", "17", "18", "19", "20" }
[TIR][DEBUG][[string ":lua"]:18] { "0", "1", "2", "3", "4", "5", "6", "7", "8", "9", "10", "11", "12", "13", "14", "15", "16", "17", "18", "19", "20" }
[TIR][🟧PROBE][[string ":lua"]:19] buffer.get_lines(0, -100, 100)
[TIR][DEBUG][[string ":lua"]:21] { "0", "1", "2", "3", "4", "5", "6", "7", "8", "9", "10", "11", "12", "13", "14", "15", "16", "17", "18", "19", "20" }
[TIR][🟧PROBE][[string ":lua"]:22] clear & buffer.get_lines(0, 9, 13)
-[TIR][DEBUG][buffer.lua:79] ===== bufnr=1, start=6, end=16, lines[1]=6, line[10]=15,
+[TIR][DEBUG][buffer.lua:81] ===== bufnr=1, start=6, end=16, lines[1]=6, line[10]=15,
[TIR][DEBUG][[string ":lua"]:25] { "9", "10", "11", "12" }
[TIR][🟧PROBE][[string ":lua"]:26] buffer.get_line(0, 6)
[TIR][DEBUG][[string ":lua"]:28] 6
[TIR][🟧PROBE][[string ":lua"]:29] buffer.get_line(0, 2)
-[TIR][DEBUG][buffer.lua:79] ===== bufnr=1, start=0, end=3, lines[1]=0, line[3]=2,
+[TIR][DEBUG][buffer.lua:81] ===== bufnr=1, start=0, end=6, lines[1]=0, line[6]=5,
[TIR][DEBUG][[string ":lua"]:31] 2
[TIR][🟧PROBE][[string ":lua"]:32] buffer.get_line(0, 19)
-[TIR][DEBUG][buffer.lua:79] ===== bufnr=1, start=19, end=21, lines[1]=19, line[2]=20,
+[TIR][DEBUG][buffer.lua:81] ===== bufnr=1, start=15, end=21, lines[1]=15, line[6]=20,
[TIR][DEBUG][[string ":lua"]:34] 19
[TIR][🟧PROBE][[string ":lua"]:35] buffer.get_line(0, 10)
-[TIR][DEBUG][buffer.lua:79] ===== bufnr=1, start=4, end=11, lines[1]=4, line[7]=10,
+[TIR][DEBUG][buffer.lua:81] ===== bufnr=1, start=4, end=11, lines[1]=4, line[7]=10,
[TIR][DEBUG][[string ":lua"]:37] 10
[TIR][🟧PROBE][[string ":lua"]:38] buffer.get_line(0, -1)
[TIR][DEBUG][[string ":lua"]:40] nil
From 380e0bba498384155ac4b3dae532794c05de8c00 Mon Sep 17 00:00:00 2001
From: OGAWA Keiji <70509917+kibi2@users.noreply.github.com>
Date: Tue, 7 Apr 2026 08:58:30 +0900
Subject: [PATCH 3/4] feat: implement pipe-aware f/t motions for cell
navigation
---
lua/tirenvi/core/attr.lua | 50 +---
lua/tirenvi/core/block.lua | 165 ++++++++-----
lua/tirenvi/core/blocks.lua | 101 +++-----
lua/tirenvi/core/cell.lua | 74 +++++-
lua/tirenvi/core/flat_parser.lua | 45 ++--
lua/tirenvi/core/record.lua | 96 +++-----
lua/tirenvi/core/repair.lua | 2 +-
lua/tirenvi/core/tir_vim.lua | 8 +-
lua/tirenvi/core/vim_parser.lua | 2 +-
lua/tirenvi/editor/motion.lua | 24 +-
lua/tirenvi/editor/textobj.lua | 14 +-
lua/tirenvi/init.lua | 15 +-
lua/tirenvi/state/buf_state.lua | 3 +-
lua/tirenvi/state/buffer.lua | 2 +-
lua/tirenvi/util/util.lua | 24 +-
tests/cases/edit/csv-main/out-expected.txt | 228 +++++++++---------
.../error/invalid-table/out-expected.txt | 14 +-
tests/cases/file/csv/out-expected.txt | 21 +-
tests/cases/file/csv/run.vim | 2 +-
tests/cases/file/foo/out-expected.txt | 14 +-
tests/cases/file/tsv/out-expected.txt | 14 +-
tests/cases/filetype/csv2csv/out-expected.txt | 14 +-
.../cases/insert/lf-at-start/out-expected.txt | 16 +-
.../cases/insert/lf-in-cell/out-expected.txt | 16 +-
.../cases/insert/tab-expand/out-expected.txt | 14 +-
tests/cases/motion/ftg/out-expected.txt | 2 +-
tests/cases/motion/ftg/run.vim | 15 +-
tests/cases/motion/g-csv/out-expected.txt | 224 ++++++++---------
tests/cases/motion/g-csv/run.vim | 2 +
tests/cases/normal/join/out-expected.txt | 16 +-
tests/cases/normal/o/out-expected.txt | 19 +-
tests/cases/normal/o/run.vim | 10 +-
tests/cases/save/as-csv/out-expected.txt | 228 +++++++++---------
tests/cases/save/as-csv2tsv/out-expected.txt | 14 +-
tests/cases/save/as-csv2xxx/out-expected.txt | 228 +++++++++---------
tests/cases/save/csv/out-expected.txt | 228 +++++++++---------
tests/cases/textobj/val/out-expected.txt | 14 +-
tests/cases/textobj/vil/run.vim | 4 +
tests/cases/tir/on/out-expected.txt | 228 +++++++++---------
tests/cases/tir/redraw/run.vim | 3 +
tests/cases/ut/state/buffer/out-expected.txt | 10 +-
41 files changed, 1127 insertions(+), 1096 deletions(-)
diff --git a/lua/tirenvi/core/attr.lua b/lua/tirenvi/core/attr.lua
index db8df12..9a49df3 100644
--- a/lua/tirenvi/core/attr.lua
+++ b/lua/tirenvi/core/attr.lua
@@ -1,4 +1,3 @@
-local CONST = require("tirenvi.constants")
local Cell = require("tirenvi.core.cell")
local log = require("tirenvi.util.log")
@@ -48,28 +47,6 @@ local function new_from_columns(columns)
return { columns = columns }
end
----@param records Record_grid[]
----@return Attr
-local function new_merged_attr(records)
- local attr = M.grid.new()
- for _, record in ipairs(records) do
- merge(attr, M.grid.new_from_record(record))
- end
- return attr
-end
-
----@self Attr
----@param source Attr
-local function extend(self, source)
- if #self.columns == 0 then
- self.columns = source.columns
- else
- for index, column in ipairs(self.columns) do
- column.width = column.width or source.columns[index].width
- end
- end
-end
-
-----------------------------------------------------------------------
-- Public API
-----------------------------------------------------------------------
@@ -131,29 +108,14 @@ function M.grid.new_from_record(record)
return new_from_columns(get_columns(record.row))
end
----@self Attr
---@param records Record_grid[]
-function M.grid:extend(records)
- extend(self, new_merged_attr(records))
-end
-
----@self Attr
----@return boolean
-function M.grid:has_all()
- if not self or self.kind ~= CONST.KIND.ATTR_GRID then
- return false
- end
- local cols = self.columns
- if not cols or #cols == 0 then
- return false
- end
- for index = 1, #cols do
- local col = cols[index]
- if not col or not col.width or not col.align then
- return false
- end
+---@return Attr
+function M.new_merged_attr(records)
+ local attr = M.grid.new()
+ for _, record in ipairs(records) do
+ merge(attr, M.grid.new_from_record(record))
end
- return true
+ return attr
end
return M
diff --git a/lua/tirenvi/core/block.lua b/lua/tirenvi/core/block.lua
index a844ebb..ab501c6 100644
--- a/lua/tirenvi/core/block.lua
+++ b/lua/tirenvi/core/block.lua
@@ -1,6 +1,5 @@
local CONST = require("tirenvi.constants")
local Record = require("tirenvi.core.record")
-local Cell = require("tirenvi.core.cell")
local config = require("tirenvi.config")
local Attr = require("tirenvi.core.attr")
local util = require("tirenvi.util.util")
@@ -12,20 +11,32 @@ M.grid = {}
-- constants / defaults
+---@param map {[string]: string}
+---@return {[string]: string}
+local function prepare_replace_map(map)
+ local out = {}
+ for key, value in pairs(map) do
+ out[vim.pesc(key)] = value
+ end
+ return out
+end
+
+local ESCAPE_MAP = prepare_replace_map({
+ ["\n"] = config.marks.lf,
+ ["\t"] = config.marks.tab,
+})
+
+local UNESCAPE_MAP = prepare_replace_map({
+ [config.marks.lf] = "\n",
+ [config.marks.tab] = "\t",
+})
+
-----------------------------------------------------------------------
-- Private helpers
-----------------------------------------------------------------------
local function nop(...) end
----@self Block_grid
-local function reset_master_attr(self)
- if Attr.grid.has_all(self.attr) then
- return
- end
- Attr.grid.extend(self.attr, self.records)
-end
-
---@self Block
---@param kind Block_kind
local function initialize(self, kind)
@@ -45,16 +56,25 @@ local function serialize_records(self)
end
---@param self Block_grid
-local function split_lf(self)
+local function wrap_lf(self)
+ local records = {}
+ for _, record in ipairs(self.records) do
+ util.extend(records, Record.grid.wrap_lf(record))
+ end
+ self.records = records
+end
+
+---@param self Block_grid
+local function wrap_width(self)
local records = {}
for _, record in ipairs(self.records) do
- util.extend(records, Record.grid.split_lf(record))
+ util.extend(records, Record.grid.wrap_width(record, self.attr.columns))
end
self.records = records
end
---@param self Block_grid
-local function fill_padding(self)
+local function apply_column_widths(self)
for _, record in ipairs(self.records) do
Record.grid.fill_padding(record, self.attr.columns)
end
@@ -68,7 +88,7 @@ local function remove_padding(self)
end
---@self Block_grid
-local function concat_record(self)
+local function unwrap(self)
local records = {}
---@type Record_grid
local new_record = nil
@@ -85,6 +105,44 @@ local function concat_record(self)
self.records = records
end
+--- Normalize all rows in a grid block to have the same number of columns.
+---@self Block_grid
+local function apply_column_count(self, ncol)
+ for _, record in ipairs(self.records) do
+ Record.apply_column_count(record, ncol)
+ end
+end
+
+local function derive_column_count(self)
+ local ncol = 0
+ for _, record in ipairs(self.records) do
+ ncol = math.max(ncol, #record.row)
+ end
+ return ncol
+end
+
+---@self Block
+local function ensure_table_attr(self)
+ if #self.attr.columns == 0 then
+ self.attr = Attr.new_merged_attr(self.records)
+ end
+end
+
+---@self Block
+---@self Block_grid
+---@param replace {[string]:string}
+local function apply_replacements(self, replace)
+ for _, record in ipairs(self.records) do
+ assert(record.kind == CONST.KIND.GRID, "unexpected record kind")
+ for icol, cell in ipairs(record.row) do
+ for key, val in pairs(replace) do
+ cell = cell:gsub(key, val)
+ end
+ record.row[icol] = cell
+ end
+ end
+end
+
-----------------------------------------------------------------------
-- Public API
-----------------------------------------------------------------------
@@ -128,13 +186,6 @@ function M.plain:serialize()
return serialize_records(self)
end
-M.plain.normalize = nop
-M.plain.to_vim = nop
-M.plain.apply_replacements = nop
-M.plain.from_vim = nop
-M.plain.set_attr = nop
-M.plain.set_attr_from_vi = nop
-
---@self Block_plain
---@return Block_grid
function M.plain:to_grid()
@@ -147,70 +198,62 @@ function M.plain:to_grid()
return block
end
+M.plain.set_attr = nop
+M.plain.from_flat = nop
+M.plain.to_flat = nop
+M.plain.from_vim = nop
+M.plain.to_vim = nop
+
---@self Block_grid
---@return Ndjson[]
function M.grid:serialize()
return serialize_records(self)
end
---- Normalize all rows in a grid block to have the same number of columns.
---@self Block_grid
-function M.grid:normalize()
- reset_master_attr(self)
- local ncol = #self.attr.columns
- for _, record in ipairs(self.records) do
- Record.normalize_and_resize(record, ncol)
+---@return Block_grid
+function M.grid:to_grid()
+ return self
+end
+
+---@self Block
+---@param attr Attr|nil
+function M.grid:set_attr(attr)
+ if not attr or Attr.is_plain(attr) then
+ return
end
+ self.attr = attr
end
--- Normalize all rows in a grid block to have the same number of columns.
---@self Block_grid
-function M.grid:to_vim()
- split_lf(self)
- fill_padding(self)
+function M.grid:from_flat()
+ local ncol = derive_column_count(self)
+ apply_column_count(self, ncol)
+ apply_replacements(self, ESCAPE_MAP)
end
---@self Block_grid
----@param replace {[string]:string}
-function M.grid:apply_replacements(replace)
- for _, record in ipairs(self.records) do
- assert(record.kind == CONST.KIND.GRID, "unexpected record kind")
- for icol, cell in ipairs(record.row) do
- for key, val in pairs(replace) do
- cell = cell:gsub(key, val)
- end
- record.row[icol] = cell
- end
- end
+function M.grid:to_flat()
+ apply_replacements(self, UNESCAPE_MAP)
end
---@self Block_grid
function M.grid:from_vim()
+ ensure_table_attr(self)
remove_padding(self)
- concat_record(self)
+ apply_column_count(self, #self.attr.columns)
+ unwrap(self)
end
+--- Normalize all rows in a grid block to have the same number of columns.
---@self Block_grid
----@return Block_grid
-function M.grid:to_grid()
- return self
-end
-
----@self Block
----@param attr Attr|nil
-function M.grid:set_attr(attr)
- if not attr or Attr.is_plain(attr) then
- return
- end
- self.attr = attr
-end
-
----@self Block
-function M.grid:set_attr_from_vi()
- if #self.records == 0 then
- return
- end
- self.attr = Attr.grid.new_from_record(self.records[1])
+function M.grid:to_vim()
+ wrap_lf(self)
+ ensure_table_attr(self)
+ wrap_width(self)
+ apply_column_count(self, #self.attr.columns)
+ apply_column_widths(self)
end
return M
diff --git a/lua/tirenvi/core/blocks.lua b/lua/tirenvi/core/blocks.lua
index 063fe5b..e571778 100644
--- a/lua/tirenvi/core/blocks.lua
+++ b/lua/tirenvi/core/blocks.lua
@@ -18,16 +18,6 @@ M.VERSION = "tir/0.1"
-- constants / defaults
-local ESCAPE_MAP = {
- ["\n"] = config.marks.lf,
- ["\t"] = config.marks.tab,
-}
-
-local UNESCAPE_MAP = {
- [config.marks.lf] = "\n",
- [config.marks.tab] = "\t",
-}
-
-----------------------------------------------------------------------
-- Utility
-----------------------------------------------------------------------
@@ -37,28 +27,6 @@ local function new_attr_file()
return { kind = CONST.KIND.ATTR_FILE, version = M.VERSION }
end
----@self Blocks
----@param replace {[string]: string}
-local function apply_replacements(self, replace)
- for _, block in ipairs(self) do
- Block[block.kind].apply_replacements(block, replace)
- end
-end
-
----@self Blocks
-local function set_attr(self)
- for _, block in ipairs(self) do
- Block[block.kind].set_attr_from_vi(block)
- end
-end
-
----@self Blocks
-local function from_vim(self)
- for _, block in ipairs(self) do
- Block[block.kind].from_vim(block)
- end
-end
-
-----------------------------------------------------------------------
-- Block construction
-----------------------------------------------------------------------
@@ -67,12 +35,12 @@ end
---@param records Ndjson[]
---@return Blocks
local function build_blocks(records)
- local blocks = {}
+ local self = {}
---@type Block
local block = Block.new()
local function flush_block()
if #(block.records) ~= 0 then
- table.insert(blocks, block)
+ table.insert(self, block)
end
block = Block.new()
end
@@ -91,7 +59,7 @@ local function build_blocks(records)
end
end
flush_block()
- return blocks
+ return self
end
-----------------------------------------------------------------------
@@ -163,20 +131,13 @@ end
---@param blocks Blocks
---@param attr_prev Attr|nil
---@param attr_next Attr|nil
+---@return boolean
local function apply_reference_attr_multi(blocks, attr_prev, attr_next)
insert_plain_block(blocks, attr_prev, attr_next)
attach_attr(blocks, attr_prev, attr_next)
+ return true
end
----@param map {[string]: string}
----@return {[string]: string}
-local function prepare_replace_map(map)
- local out = {}
- for key, value in pairs(map) do
- out[vim.pesc(key)] = value
- end
- return out
-end
-----------------------------------------------------------------------
-- Public API
-----------------------------------------------------------------------
@@ -200,54 +161,57 @@ function M.merge_blocks(self)
end
end
---- Convert NDJSON records into normalized blocks.
----@param ndjsons Ndjson[]
----@return Blocks
-function M.new_from_flat(ndjsons)
- local self = build_blocks(ndjsons)
- local map = prepare_replace_map(ESCAPE_MAP)
- apply_replacements(self, map)
- return self
+---@self Blocks
+function M:reset_attr()
+ for _, block in ipairs(self) do
+ Block.reset_attr(block)
+ end
end
--- Convert NDJSON records into normalized blocks.
----@param records Record[]
+---@param ndjsons Ndjson[]
---@return Blocks
-function M.new_from_vim(records)
- local self = build_blocks(records)
- set_attr(self)
- from_vim(self)
- return self
-end
-
----@self Blocks
-function M:reset_attr()
+function M.new_from_flat(ndjsons, allow_plain)
+ local self = build_blocks(ndjsons)
+ if not allow_plain then
+ M.merge_blocks(self)
+ end
for _, block in ipairs(self) do
- Block.reset_attr(block)
+ Block[block.kind].from_flat(block)
end
+ return self
end
---@self Blocks
---@return Ndjson[]
function M:serialize_to_flat()
- local map = prepare_replace_map(UNESCAPE_MAP)
- apply_replacements(self, map)
local ndjsons = { new_attr_file() }
for _, block in ipairs(self) do
local impl = Block[block.kind]
- impl.normalize(block)
+ impl.to_flat(block)
util.extend(ndjsons, impl.serialize(block))
end
return ndjsons
end
+--- Convert NDJSON records into normalized blocks.
+---@param records Record[]
+---@return Blocks
+function M.new_from_vim(records)
+ local self = build_blocks(records)
+ for _, block in ipairs(self) do
+ Block[block.kind].from_vim(block)
+ end
+
+ return self
+end
+
---@self Blocks
---@return Ndjson[]
function M:serialize_to_vim()
local ndjsons = {}
for _, block in ipairs(self) do
local impl = Block[block.kind]
- impl.normalize(block)
impl.to_vim(block)
util.extend(ndjsons, impl.serialize(block))
end
@@ -262,8 +226,7 @@ end
---@return RefAttrError|nil
function M:repair(attr_prev, attr_next, allow_plain)
if allow_plain then
- apply_reference_attr_multi(self, attr_prev, attr_next)
- return true
+ return apply_reference_attr_multi(self, attr_prev, attr_next)
else
return apply_reference_attr_single(self, attr_prev, attr_next)
end
diff --git a/lua/tirenvi/core/cell.lua b/lua/tirenvi/core/cell.lua
index 4aa4caf..01eea75 100644
--- a/lua/tirenvi/core/cell.lua
+++ b/lua/tirenvi/core/cell.lua
@@ -1,4 +1,5 @@
local config = require("tirenvi.config")
+local util = require("tirenvi.util.util")
local M = {}
@@ -6,6 +7,9 @@ local M = {}
local fn = vim.fn
local padding = config.marks.padding
local escaped_padding = vim.pesc(padding)
+local lf = config.marks.lf
+
+local multiline_lf = true
-----------------------------------------------------------------------
-- Private helpers
@@ -42,14 +46,23 @@ function M.normalize(cells, ncol)
local cell = cells[index]
if cell == nil then
cells[index] = ""
- elseif type(cell) == "string" then
- -- do nothing
- else
+ elseif type(cell) ~= "string" then
cells[index] = tostring(cell)
end
end
end
+---@param cells Cell[]
+---@param ncol integer
+---@return Cell[]
+function M.merge_tail(cells, ncol)
+ if #cells <= ncol then
+ return cells
+ end
+ cells[ncol] = table.concat(cells, " ", ncol)
+ return vim.list_slice(cells, 1, ncol)
+end
+
---@param self Cell
---@param target_width integer
---@return string
@@ -71,4 +84,59 @@ function M:remove_padding()
return (self:gsub(escaped_padding, ""))
end
+---@param self Cell
+---@param _has_continuation boolean
+---@return Cell[]
+function M:wrap_lf(_has_continuation)
+ if not multiline_lf then
+ return { self }
+ end
+ local cells = vim.split(self, lf)
+ for irow = 1, #cells - 1 do
+ cells[irow] = cells[irow] .. lf
+ end
+ if #cells > 1 and cells[#cells] == "" and _has_continuation then
+ cells[#cells] = nil
+ end
+ return cells
+end
+
+---@param self Cell
+---@param width integer
+---@return Cell[]
+function M:wrap_width(width)
+ local cells = {}
+
+ -- 空やwidth不正はそのまま返す
+ if not self or self == "" or width <= 0 then
+ return { self }
+ end
+
+ local chars = util.utf8_chars(self)
+
+ local current = ""
+ local current_width = 0
+
+ for _, ch in ipairs(chars) do
+ local ch_width = display_width(ch)
+
+ -- 追加すると幅オーバーする場合は確定
+ if current ~= "" and current_width + ch_width > width then
+ cells[#cells + 1] = current
+ current = ch
+ current_width = ch_width
+ else
+ current = current .. ch
+ current_width = current_width + ch_width
+ end
+ end
+
+ -- 残りを追加
+ if current ~= "" then
+ cells[#cells + 1] = current
+ end
+
+ return cells
+end
+
return M
diff --git a/lua/tirenvi/core/flat_parser.lua b/lua/tirenvi/core/flat_parser.lua
index 0a70587..f1a1c66 100644
--- a/lua/tirenvi/core/flat_parser.lua
+++ b/lua/tirenvi/core/flat_parser.lua
@@ -156,30 +156,6 @@ end
-- public API
----@param fl_lines string[]
----@param parser Parser
----@return Blocks
-function M.parse(fl_lines, parser)
- local js_lines = flat_to_js_lines(fl_lines, parser)
- local ndjsons = js_lines_to_ndjsons(js_lines)
- local blocks = Blocks.new_from_flat(ndjsons)
- if not parser.allow_plain then
- Blocks.merge_blocks(blocks)
- end
- return blocks
-end
-
---- Convert display lines back to TSV format
----@param blocks Blocks
----@param parser Parser
----@return string[]
-function M.unparse(blocks, parser)
- local ndjsons = Blocks.serialize_to_flat(blocks)
- local js_lines = ndjsons_to_lines(ndjsons)
- log.debug({ #js_lines, js_lines[1], js_lines[#js_lines] })
- return js_lines_to_flat(js_lines, parser)
-end
-
---@class HealthItem
---@field status "ok"|"warn"|"error"
---@field message string
@@ -241,4 +217,25 @@ function M.check_command(parser)
return results
end
+---@param fl_lines string[]
+---@param parser Parser
+---@return Blocks
+function M.parse(fl_lines, parser)
+ local js_lines = flat_to_js_lines(fl_lines, parser)
+ local ndjsons = js_lines_to_ndjsons(js_lines)
+ local blocks = Blocks.new_from_flat(ndjsons, parser.allow_plain)
+ return blocks
+end
+
+--- Convert display lines back to TSV format
+---@param blocks Blocks
+---@param parser Parser
+---@return string[]
+function M.unparse(blocks, parser)
+ local ndjsons = Blocks.serialize_to_flat(blocks)
+ local js_lines = ndjsons_to_lines(ndjsons)
+ log.debug({ #js_lines, js_lines[1], js_lines[#js_lines] })
+ return js_lines_to_flat(js_lines, parser)
+end
+
return M
diff --git a/lua/tirenvi/core/record.lua b/lua/tirenvi/core/record.lua
index eb00509..50c632a 100644
--- a/lua/tirenvi/core/record.lua
+++ b/lua/tirenvi/core/record.lua
@@ -9,65 +9,27 @@ M.plain = {}
M.grid = {}
-- constants / defaults
-local lf = config.marks.lf
-----------------------------------------------------------------------
-- Private helpers
-----------------------------------------------------------------------
----@param line string
----@return Record_plain
-local function plain_new(line)
- return { kind = CONST.KIND.PLAIN, line = line }
-end
-
----@param self Record_grid
----@param new_count integer
----@return nil
-local function decrease_cols(self, new_count)
- local row = self.row
- row[new_count] = table.concat(row, " ", new_count)
- for i = #row, new_count + 1, -1 do
- row[i] = nil
- end
-end
+-----------------------------------------------------------------------
+-- Public API
+-----------------------------------------------------------------------
---@param self Record_grid
---@param ncol integer
-local function resize_columns(self, ncol)
- local old_count = #self.row
- if old_count > ncol then
- decrease_cols(self, ncol)
- end
-end
-
----@param self Record_grid
-local function normalize_row(self, ncol)
+function M:apply_column_count(ncol)
self.row = self.row or {}
Cell.normalize(self.row, ncol)
-end
-
------------------------------------------------------------------------
--- Public API
------------------------------------------------------------------------
-
----@param cells Cell[]|nil
----@return Record_grid
-function M.grid.new(cells)
- return { kind = CONST.KIND.GRID, row = cells or {} }
+ self.row = Cell.merge_tail(self.row, ncol) -- TODO join
end
---@param vi_line string
---@return Record_plain
function M.plain.new_from_vi_line(vi_line)
- return plain_new(vi_line)
-end
-
----@param self Record_grid
----@param ncol integer
-function M:normalize_and_resize(ncol)
- normalize_row(self, ncol)
- resize_columns(self, ncol)
+ return { kind = CONST.KIND.PLAIN, line = vi_line }
end
---@param self Record_plain
@@ -76,6 +38,12 @@ function M.plain:to_grid()
return M.grid.new({ self.line })
end
+---@param cells Cell[]|nil
+---@return Record_grid
+function M.grid.new(cells)
+ return { kind = CONST.KIND.GRID, row = cells or {} }
+end
+
---@param vi_line string
---@param has_continuation boolean
---@return Record_grid
@@ -102,32 +70,42 @@ function M.grid:remove_padding()
end
end
-local multiline_lf = true
-
---@param self Record_grid
---@return Record_grid[]
-function M.grid:split_lf()
+function M.grid:wrap_lf()
local records = {}
- local nrow = 0
for icol, cell in ipairs(self.row) do
- local cells = { cell }
- if multiline_lf then
- cells = vim.split(cell, lf)
- if #cells > 1 and cells[#cells] == "" and self._has_continuation then
- cells[#cells] = nil
- end
+ local cells = Cell.wrap_lf(cell, self._has_continuation)
+ for irow, cell in ipairs(cells) do
+ records[irow] = records[irow] or M.grid.new()
+ records[irow].row[icol] = cell
end
+ end
+ local ncol = #self.row
+ for irow = 1, #records do
+ records[irow]._has_continuation = true
+ Cell.normalize(records[irow].row, ncol)
+ end
+ records[#records]._has_continuation = self._has_continuation
+ return records
+end
+
+---@param self Record_grid
+---@param columns Attr_column[]
+---@return Record_grid[]
+function M.grid:wrap_width(columns)
+ local records = {}
+ for icol, cell in ipairs(self.row) do
+ local cells = Cell.wrap_width(cell, columns[icol].width)
for irow, cell in ipairs(cells) do
records[irow] = records[irow] or M.grid.new()
- local append = irow ~= #cells and lf or ""
- records[irow].row[icol] = cell .. append
+ records[irow].row[icol] = cell
end
- nrow = math.max(nrow, #cells)
end
local ncol = #self.row
- for irow = 1, nrow do
+ for irow = 1, #records do
records[irow]._has_continuation = true
- normalize_row(records[irow], ncol)
+ Cell.normalize(records[irow].row, ncol)
end
records[#records]._has_continuation = self._has_continuation
return records
diff --git a/lua/tirenvi/core/repair.lua b/lua/tirenvi/core/repair.lua
index 219c966..fff8c20 100644
--- a/lua/tirenvi/core/repair.lua
+++ b/lua/tirenvi/core/repair.lua
@@ -104,7 +104,6 @@ end
---@param bufnr number
---@param ranges Range[]
local function repair_ranges(bufnr, ranges)
- buffer.set_undo_tree_last(bufnr)
for index = 1, #ranges do
local first = ranges[index].first
local last = ranges[index].last + 1
@@ -133,6 +132,7 @@ local function repair(bufnr, first, last, new_last)
ui.diagnostic_set(bufnr, ranges)
return
end
+ buffer.set_undo_tree_last(bufnr)
pcall(vim.cmd, "undojoin")
repair_ranges(bufnr, ranges)
end
diff --git a/lua/tirenvi/core/tir_vim.lua b/lua/tirenvi/core/tir_vim.lua
index 525d19a..6662d91 100644
--- a/lua/tirenvi/core/tir_vim.lua
+++ b/lua/tirenvi/core/tir_vim.lua
@@ -46,7 +46,7 @@ local function is_block_boundary(base_pipe, target)
if not target then
return true
end
- return base_pipe ~= (M.has_pipe(target) ~= nil)
+ return base_pipe ~= (M.get_pipe_char(target) ~= nil)
end
---@param provider LineProvider
@@ -55,7 +55,7 @@ end
---@return integer
local function find_block_edge(provider, irow, step)
local line = provider.get_line(irow)
- local base_pipe = (M.has_pipe(line) ~= nil)
+ local base_pipe = (M.get_pipe_char(line) ~= nil)
while true do
irow = irow + step
local line = provider.get_line(irow)
@@ -159,7 +159,7 @@ end
---@param line string|nil
---@return string|nil
-function M.has_pipe(line)
+function M.get_pipe_char(line)
if not line then
return nil
end
@@ -178,7 +178,7 @@ function M.is_continue_line(line)
if not line then
return false
end
- return M.has_pipe(line) == pipec
+ return M.get_pipe_char(line) == pipec
end
---@param line_provider LineProvider
diff --git a/lua/tirenvi/core/vim_parser.lua b/lua/tirenvi/core/vim_parser.lua
index 70d7a08..ba4f995 100644
--- a/lua/tirenvi/core/vim_parser.lua
+++ b/lua/tirenvi/core/vim_parser.lua
@@ -42,7 +42,7 @@ end
---@param vi_line string
---@return Record
local function tir_vim_to_ndjson(vi_line)
- local pipe = tir_vim.has_pipe(vi_line)
+ local pipe = tir_vim.get_pipe_char(vi_line)
if pipe then
return Record.grid.new_from_vi_line(vi_line, pipe == pipec)
else
diff --git a/lua/tirenvi/editor/motion.lua b/lua/tirenvi/editor/motion.lua
index 70b5e37..136547f 100644
--- a/lua/tirenvi/editor/motion.lua
+++ b/lua/tirenvi/editor/motion.lua
@@ -1,5 +1,3 @@
-local config = require("tirenvi.config")
-local buf_state = require("tirenvi.state.buf_state")
local buffer = require("tirenvi.state.buffer")
local LinProvider = require("tirenvi.state.buffer_line_provider")
local tir_vim = require("tirenvi.core.tir_vim")
@@ -7,23 +5,21 @@ local util = require("tirenvi.util.util")
local M = {}
+---@return string
+local function get_pipe()
+ local irow = vim.api.nvim_win_get_cursor(0)[1]
+ local bufnr = vim.api.nvim_get_current_buf()
+ local line = buffer.get_line(bufnr, irow - 1)
+ return tir_vim.get_pipe_char(line) or ""
+end
+
---@param op string
---@return function
local function build_motion(op)
return function()
- local bufnr = vim.api.nvim_get_current_buf()
- if not buf_state.is_tir_vim(bufnr) then
- return op
- end
-
- local delim = config.marks.pipe
local count = vim.v.count
-
- if count > 0 then
- return count .. op .. delim
- end
-
- return op .. delim
+ local prefix = (count > 0) and tostring(count) or ""
+ return prefix .. op .. get_pipe()
end
end
diff --git a/lua/tirenvi/editor/textobj.lua b/lua/tirenvi/editor/textobj.lua
index f39df76..c17c679 100644
--- a/lua/tirenvi/editor/textobj.lua
+++ b/lua/tirenvi/editor/textobj.lua
@@ -1,5 +1,4 @@
local tir_vim = require("tirenvi.core.tir_vim")
-local buffer = require("tirenvi.state.buffer")
local config = require("tirenvi.config")
local util = require("tirenvi.util.util")
local LinProvider = require("tirenvi.state.buffer_line_provider")
@@ -25,24 +24,23 @@ local function setup_vl(line_provider, is_around)
vim.api.nvim_win_set_cursor(0, { pos.end_row, pos.end_col - 1, })
end
--- public API
-
-function M.setup_vil()
+local function setup_vil()
local line_provider = LinProvider.new(0)
setup_vl(line_provider)
end
-function M.setup_val()
+local function setup_val()
local line_provider = LinProvider.new(0)
setup_vl(line_provider, true)
end
+-- public API
+
function M.setup()
- vim.keymap.set({ "x" }, "i" .. config.textobj.column, M.setup_vil, {
+ vim.keymap.set({ "x" }, "i" .. config.textobj.column, setup_vil, {
desc = "Inner column",
})
-
- vim.keymap.set({ "x" }, "a" .. config.textobj.column, M.setup_val, {
+ vim.keymap.set({ "x" }, "a" .. config.textobj.column, setup_val, {
desc = "Around column",
})
end
diff --git a/lua/tirenvi/init.lua b/lua/tirenvi/init.lua
index 174ac47..1de53ce 100644
--- a/lua/tirenvi/init.lua
+++ b/lua/tirenvi/init.lua
@@ -171,7 +171,7 @@ end
---@return nil
function M.restore_tir_vim(bufnr)
pcall(vim.cmd, "undojoin")
- from_flat(bufnr)
+ from_flat(bufnr) -- TODO recover Attr_grid
end
---@param bufnr number|nil Buffer number.
@@ -213,15 +213,16 @@ function M.insert_char_in_newline(bufnr)
local winid = api.nvim_get_current_win()
local row = api.nvim_win_get_cursor(winid)[1]
local line_prev, line_next = buffer.get_lines_around(bufnr, row - 1, row)
- local ref_line = line_prev and line_prev or line_next
- if not ref_line or not tir_vim.start_with_pipe(ref_line) then
+ local line_ref = line_prev and line_prev or line_next
+ if not line_ref or not tir_vim.start_with_pipe(line_ref) then
return
end
- if buffer.get_line(bufnr, row - 1) ~= "" then
+ local line_new = buffer.get_line(bufnr, row - 1)
+ if line_new ~= "" then
return
end
local ch = vim.v.char
- local pipe = fn.strcharpart(ref_line, 0, 1)
+ local pipe = fn.strcharpart(line_ref, 0, 1)
vim.v.char = pipe .. ch
end
@@ -229,7 +230,7 @@ end
function M.keymap_lf()
local col = fn.col(".")
local line = fn.getline(".")
- if not tir_vim.has_pipe(line) then
+ if not tir_vim.get_pipe_char(line) then
return api.nvim_replace_termcodes("", true, true, true)
end
if col == 1 or col > #line then
@@ -241,7 +242,7 @@ end
---@return string
function M.keymap_tab()
local line = fn.getline(".")
- if not tir_vim.has_pipe(line) then
+ if not tir_vim.get_pipe_char(line) then
return api.nvim_replace_termcodes("", true, true, true)
end
if bo.expandtab then
diff --git a/lua/tirenvi/state/buf_state.lua b/lua/tirenvi/state/buf_state.lua
index d3fb88f..c10c8d4 100644
--- a/lua/tirenvi/state/buf_state.lua
+++ b/lua/tirenvi/state/buf_state.lua
@@ -27,7 +27,7 @@ end
local function has_pipe(bufnr)
for iline = 0, buffer.line_count(bufnr) do
local fl_line = buffer.get_line(bufnr, iline)
- if tir_vim.has_pipe(fl_line) then
+ if tir_vim.get_pipe_char(fl_line) then
return true
end
end
@@ -56,6 +56,7 @@ end
function M.is_undo_mode(bufnr)
local pre = buffer.get(bufnr, buffer.IKEY.UNDO_TREE_LAST)
local next = fn.undotree(bufnr).seq_last
+ --log.probe("===-===-===-=== und/redo mode[%d] (%d, %d) ===-===-===-===", bufnr, pre, next)
if pre == next then
log.debug("===-===-===-=== und/redo mode[%d] (%d, %d) ===-===-===-===", bufnr, pre, next)
return true
diff --git a/lua/tirenvi/state/buffer.lua b/lua/tirenvi/state/buffer.lua
index a2db4a8..039fbff 100644
--- a/lua/tirenvi/state/buffer.lua
+++ b/lua/tirenvi/state/buffer.lua
@@ -65,7 +65,6 @@ local function set_lines(bufnr, i_start, i_end, strict, lines, no_undo)
end
api.nvim_buf_set_lines(bufnr, i_start, i_end, strict, lines)
fix_cursor_utf8()
- M.set_undo_tree_last(bufnr)
bo[bufnr].undolevels = undolevels
end
@@ -231,6 +230,7 @@ end
---@return string|nil
---@return string|nil
function M.get_lines_around(bufnr, start, end_)
+ M.get_lines(bufnr, start - 1, end_ + 1)
return M.get_line(bufnr, start - 1), M.get_line(bufnr, end_)
end
diff --git a/lua/tirenvi/util/util.lua b/lua/tirenvi/util/util.lua
index f2ea30b..eb52faa 100644
--- a/lua/tirenvi/util/util.lua
+++ b/lua/tirenvi/util/util.lua
@@ -35,17 +35,6 @@ local function get_parser_for_file(bufnr)
return config.parser_map[filetype]
end
----@param str string
----@return string[]
-local function utf8_chars(str)
- local chars = {}
- local nStr = fn.strchars(str)
- for iStr = 0, nStr - 1 do
- chars[#chars + 1] = fn.strcharpart(str, iStr, 1)
- end
- return chars
-end
-
---@return {[string]:string}
local function collect_reserved_chars()
local set = {}
@@ -63,7 +52,7 @@ local function find_reserved_marks(fl_lines)
local char_to_name = collect_reserved_chars()
local found_names = {}
for _, line in ipairs(fl_lines) do
- for _, ch in ipairs(utf8_chars(line)) do
+ for _, ch in ipairs(M.utf8_chars(line)) do
local name = char_to_name[ch]
if name then
found_names[name] = true
@@ -81,6 +70,17 @@ end
-- Public API
-----------------------------------------------------------------------
+---@param str string
+---@return string[]
+function M.utf8_chars(str)
+ local chars = {}
+ local nStr = fn.strchars(str)
+ for iStr = 0, nStr - 1 do
+ chars[#chars + 1] = fn.strcharpart(str, iStr, 1)
+ end
+ return chars
+end
+
--- Get file extension.
---@param filename string
---@return string|nil
diff --git a/tests/cases/edit/csv-main/out-expected.txt b/tests/cases/edit/csv-main/out-expected.txt
index 12c8222..487b549 100644
--- a/tests/cases/edit/csv-main/out-expected.txt
+++ b/tests/cases/edit/csv-main/out-expected.txt
@@ -1,117 +1,117 @@
=== MESSAGE ===
=== DISPLAY ===
-│A1⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│B22⠀⠀⠀⠀⠀⠀│C333⠀⠀⠀⠀⠀⠀│D4444⠀⠀⠀│E55555⠀⠀⠀│F666666│
-│alpha1⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│b2⠀⠀⠀⠀⠀⠀⠀│c3⠀⠀⠀⠀⠀⠀⠀⠀│d4⠀⠀⠀⠀⠀⠀│e5⠀⠀⠀⠀⠀⠀⠀│f6⠀⠀⠀⠀⠀│
-│ ===⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│- next -⠀│ line⠀⠀⠀⠀⠀│ has⠀⠀⠀│ no⠀⠀⠀⠀⠀⠀│ value │
-│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│
-│x1⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│y22⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│z333⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│
-│===⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│ - next -│ line⠀⠀⠀⠀⠀│ has⠀⠀⠀│linefeed⠀│ ⠀⠀⠀⠀⠀│
-┊↲⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀┊abc⠀⠀⠀⠀⠀⠀┊DEF123⠀⠀⠀⠀┊↲⠀⠀⠀⠀⠀⠀⠀┊gh⠀⠀⠀⠀⠀⠀⠀┊9⠀⠀⠀⠀⠀⠀┊
-┊"1"2h", 34567890a⠀┊⠀⠀⠀⠀⠀⠀⠀⠀⠀┊⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀┊↲⠀⠀⠀⠀⠀⠀⠀┊⠀⠀⠀⠀⠀⠀⠀⠀⠀┊⠀⠀⠀⠀⠀⠀⠀┊
-┊⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀┊⠀⠀⠀⠀⠀⠀⠀⠀⠀┊⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀┊↲⠀⠀⠀⠀⠀⠀⠀┊⠀⠀⠀⠀⠀⠀⠀⠀⠀┊⠀⠀⠀⠀⠀⠀⠀┊
-│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│
-┊a⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀┊⠀⠀⠀⠀⠀⠀⠀⠀⠀┊b↲⠀⠀⠀⠀⠀⠀⠀⠀┊⠀⠀⠀⠀⠀⠀⠀⠀┊c⠀⠀⠀⠀⠀⠀⠀⠀┊⠀⠀⠀⠀⠀⠀⠀┊
-│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│
-│ ===⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│- next -⠀│ lines⠀⠀⠀⠀│ has⠀⠀⠀│tab⠀⠀⠀⠀⠀⠀│ ⠀⠀⠀⠀⠀│
-│⇥ l⇥ongtext01⠀⠀⠀⠀⠀│mi⇥⇥d2⠀⠀⠀│s⠀⠀⠀⠀⠀⠀⠀⠀⠀│tt⠀⠀⠀⠀⠀⠀│uuu⠀⠀⠀⠀⠀⠀│vvvv⠀⠀⠀│
-│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⇥⇥⇥⇥⇥⇥⇥⠀⠀⠀│⇥⇥⇥⇥⇥⇥⇥⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│
-│R1C1⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│R1C2⠀⠀⠀⠀⠀│R1C3⠀⠀⠀⠀⠀⠀│R1C4⠀⠀⠀⠀│R1C5⠀⠀⠀⠀⠀│R1C6⠀⠀⠀│
-│ ===⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│- next -⠀│ line⠀⠀⠀⠀⠀│ is⠀⠀⠀⠀│multibyte│ value │
-│aaあい⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│いろ2⠀⠀⠀⠀│ぼんさんが│へを⠀⠀⠀⠀│こいた⠀⠀⠀│.!...⠀│
-│g1⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│h22⠀⠀⠀⠀⠀⠀│i333⠀⠀⠀⠀⠀⠀│j4444⠀⠀⠀│k55555⠀⠀⠀│l6⠀⠀⠀⠀⠀│
-│ ===⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│- next -⠀│ lines⠀⠀⠀⠀│ has⠀⠀⠀│linefeed+│tab ⠀⠀│
-┊⇥⇥ ⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀┊↲⠀⠀⠀⠀⠀⠀⠀⠀┊n⇥ ⠀⠀⠀⠀⠀⠀⠀┊⇥⇥ o333⠀┊⠀⠀⠀⠀⠀⠀⠀⠀⠀┊⠀⠀⠀⠀⠀⠀⠀┊
-│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⇥⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│
-│pqrst⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│uv⠀⠀⠀⠀⠀⠀⠀│wx1⠀⠀⠀⠀⠀⠀⠀│yz22⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│345⠀⠀⠀⠀│
-│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│
-│a1b2c3⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│XYZ⠀⠀⠀⠀⠀⠀⠀│7777⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│k9⠀⠀⠀⠀⠀│
-│short⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│longer12⠀│x⠀⠀⠀⠀⠀⠀⠀⠀⠀│yz⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│end⠀⠀⠀⠀│
-│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│
-│row15a⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│row15b⠀⠀⠀│row15c⠀⠀⠀⠀│row15d⠀⠀│row15e⠀⠀⠀│row15f⠀│
-│1⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│22⠀⠀⠀⠀⠀⠀⠀│333⠀⠀⠀⠀⠀⠀⠀│4444⠀⠀⠀⠀│55555⠀⠀⠀⠀│666666⠀│
-│alpha⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│beta⠀⠀⠀⠀⠀│gamma⠀⠀⠀⠀⠀│delta⠀⠀⠀│epsilon⠀⠀│zeta⠀⠀⠀│
-│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│
-│mix1⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│mix3⠀⠀⠀⠀⠀⠀│444⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│six6⠀⠀⠀│
-│abc123⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│def456⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│ghi789⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│
-│z⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│y⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│x⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│
-│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│
-│t1⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│t2⠀⠀⠀⠀⠀⠀⠀│t3⠀⠀⠀⠀⠀⠀⠀⠀│t4⠀⠀⠀⠀⠀⠀│t5⠀⠀⠀⠀⠀⠀⠀│t6⠀⠀⠀⠀⠀│
-│r1c1⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│r1c2⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│r1c4⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│r1c6⠀⠀⠀│
-│data1⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│data22⠀⠀⠀│data333⠀⠀⠀│data4444│data55555│data6⠀⠀│
-│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│
-│A⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│B⠀⠀⠀⠀⠀⠀⠀⠀│C⠀⠀⠀⠀⠀⠀⠀⠀⠀│D⠀⠀⠀⠀⠀⠀⠀│E⠀⠀⠀⠀⠀⠀⠀⠀│F⠀⠀⠀⠀⠀⠀│
-│abc⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│123⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│XYZ⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│
-│one1⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│two22⠀⠀⠀⠀│three3⠀⠀⠀⠀│four44⠀⠀│five5⠀⠀⠀⠀│six66⠀⠀│
-│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│
-│r30a⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│r30b⠀⠀⠀⠀⠀│r30c⠀⠀⠀⠀⠀⠀│r30d⠀⠀⠀⠀│r30e⠀⠀⠀⠀⠀│r30f⠀⠀⠀│
-│longvalue1⠀⠀⠀⠀⠀⠀⠀⠀│mid⠀⠀⠀⠀⠀⠀│short⠀⠀⠀⠀⠀│s⠀⠀⠀⠀⠀⠀⠀│tt⠀⠀⠀⠀⠀⠀⠀│uuu⠀⠀⠀⠀│
-│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│
-│x⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│y⠀⠀⠀⠀⠀⠀⠀⠀│z⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│end⠀⠀⠀⠀│
-│abcde⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│fghij⠀⠀⠀⠀│klmno⠀⠀⠀⠀⠀│pqrst⠀⠀⠀│uvwxy⠀⠀⠀⠀│z⠀⠀⠀⠀⠀⠀│
-│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│
-│cell1⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│cell3⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│cell5⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│
-│111⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│2222⠀⠀⠀⠀⠀│33333⠀⠀⠀⠀⠀│444444⠀⠀│55⠀⠀⠀⠀⠀⠀⠀│6⠀⠀⠀⠀⠀⠀│
-│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│
-│row40a⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│row40b⠀⠀⠀│row40c⠀⠀⠀⠀│row40d⠀⠀│row40e⠀⠀⠀│row40f⠀│
-│a1⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│a2⠀⠀⠀⠀⠀⠀⠀│a3⠀⠀⠀⠀⠀⠀⠀⠀│a4⠀⠀⠀⠀⠀⠀│a5⠀⠀⠀⠀⠀⠀⠀│a6⠀⠀⠀⠀⠀│
-│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│
-│mixA⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│mixC⠀⠀⠀⠀⠀⠀│DDD⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│FFF⠀⠀⠀⠀│
-│123abc⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│456def⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│789ghi⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│000⠀⠀⠀⠀│
-│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│
-│r45a⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│r45b⠀⠀⠀⠀⠀│r45c⠀⠀⠀⠀⠀⠀│r45d⠀⠀⠀⠀│r45e⠀⠀⠀⠀⠀│r45f⠀⠀⠀│
-│alpha9⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│beta8⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│gamma7⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│
-│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│
-│A1B2C3⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│D4E5F6⠀⠀⠀│G7H8I9⠀⠀⠀⠀│J0⠀⠀⠀⠀⠀⠀│K1⠀⠀⠀⠀⠀⠀⠀│L2⠀⠀⠀⠀⠀│
-│short1⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│short3⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│short5⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│
-│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│
-│r50a⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│r50b⠀⠀⠀⠀⠀│r50c⠀⠀⠀⠀⠀⠀│r50d⠀⠀⠀⠀│r50e⠀⠀⠀⠀⠀│r50f⠀⠀⠀│
-│x1y2⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│z3⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│w4⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│v5⠀⠀⠀⠀⠀│
-│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│
-│longertext⠀⠀⠀⠀⠀⠀⠀⠀│mid⠀⠀⠀⠀⠀⠀│small⠀⠀⠀⠀⠀│s1⠀⠀⠀⠀⠀⠀│s22⠀⠀⠀⠀⠀⠀│s333⠀⠀⠀│
-│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│
-│r55a⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│r55b⠀⠀⠀⠀⠀│r55c⠀⠀⠀⠀⠀⠀│r55d⠀⠀⠀⠀│r55e⠀⠀⠀⠀⠀│r55f⠀⠀⠀│
-│abc⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│def⠀⠀⠀⠀⠀⠀│ghi⠀⠀⠀⠀⠀⠀⠀│jkl⠀⠀⠀⠀⠀│mno⠀⠀⠀⠀⠀⠀│pqr⠀⠀⠀⠀│
-│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│
-│1a⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│2b⠀⠀⠀⠀⠀⠀⠀│3c⠀⠀⠀⠀⠀⠀⠀⠀│4d⠀⠀⠀⠀⠀⠀│5e⠀⠀⠀⠀⠀⠀⠀│6f⠀⠀⠀⠀⠀│
-│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│
-│row60a⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│row60b⠀⠀⠀│row60c⠀⠀⠀⠀│row60d⠀⠀│row60e⠀⠀⠀│row60f⠀│
-│value1⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│value3⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│value5⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│
-│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│
-│aa⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│bb⠀⠀⠀⠀⠀⠀⠀│cc⠀⠀⠀⠀⠀⠀⠀⠀│dd⠀⠀⠀⠀⠀⠀│ee⠀⠀⠀⠀⠀⠀⠀│ff⠀⠀⠀⠀⠀│
-│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│
-│r65a⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│r65b⠀⠀⠀⠀⠀│r65c⠀⠀⠀⠀⠀⠀│r65d⠀⠀⠀⠀│r65e⠀⠀⠀⠀⠀│r65f⠀⠀⠀│
-│x⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│y⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│z⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│
-│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│
-│alpha01⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│beta02⠀⠀⠀│gamma03⠀⠀⠀│delta04⠀│eps05⠀⠀⠀⠀│z6⠀⠀⠀⠀⠀│
-│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│
-│row70a⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│row70b⠀⠀⠀│row70c⠀⠀⠀⠀│row70d⠀⠀│row70e⠀⠀⠀│row70f⠀│
-│1⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│3⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│5⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│
-│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│
-│abc1⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│def2⠀⠀⠀⠀⠀│ghi3⠀⠀⠀⠀⠀⠀│jkl4⠀⠀⠀⠀│mno5⠀⠀⠀⠀⠀│pqr6⠀⠀⠀│
-│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│
-│r75a⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│r75b⠀⠀⠀⠀⠀│r75c⠀⠀⠀⠀⠀⠀│r75d⠀⠀⠀⠀│r75e⠀⠀⠀⠀⠀│r75f⠀⠀⠀│
-│mix⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│mix2⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│mix3⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│
-│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│
-│a⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│b⠀⠀⠀⠀⠀⠀⠀⠀│c⠀⠀⠀⠀⠀⠀⠀⠀⠀│d⠀⠀⠀⠀⠀⠀⠀│e⠀⠀⠀⠀⠀⠀⠀⠀│f⠀⠀⠀⠀⠀⠀│
-│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│
-│row80a⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│row80b⠀⠀⠀│row80c⠀⠀⠀⠀│row80d⠀⠀│row80e⠀⠀⠀│row80f⠀│
-│123⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│234⠀⠀⠀⠀⠀⠀│345⠀⠀⠀⠀⠀⠀⠀│456⠀⠀⠀⠀⠀│567⠀⠀⠀⠀⠀⠀│678⠀⠀⠀⠀│
-│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│
-│Aaa⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│Bbb⠀⠀⠀⠀⠀⠀│Ccc⠀⠀⠀⠀⠀⠀⠀│Ddd⠀⠀⠀⠀⠀│Eee⠀⠀⠀⠀⠀⠀│Fff⠀⠀⠀⠀│
-│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│
-│r85a⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│r85b⠀⠀⠀⠀⠀│r85c⠀⠀⠀⠀⠀⠀│r85d⠀⠀⠀⠀│r85e⠀⠀⠀⠀⠀│r85f⠀⠀⠀│
-│x1⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│x3⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│x5⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│
-│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│
-│abcde12345⠀⠀⠀⠀⠀⠀⠀⠀│f1⠀⠀⠀⠀⠀⠀⠀│g2⠀⠀⠀⠀⠀⠀⠀⠀│h3⠀⠀⠀⠀⠀⠀│i4⠀⠀⠀⠀⠀⠀⠀│j5⠀⠀⠀⠀⠀│
-│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│
-│row90a⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│row90b⠀⠀⠀│row90c⠀⠀⠀⠀│row90d⠀⠀│row90e⠀⠀⠀│row90f⠀│
-│1a2b3c⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│4d5e6f⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│7g8h9i⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│
-│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│
-│short⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│mid⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│longer⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│
-│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│
-│r95a⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│r95b⠀⠀⠀⠀⠀│r95c⠀⠀⠀⠀⠀⠀│r95d⠀⠀⠀⠀│r95e⠀⠀⠀⠀⠀│r95f⠀⠀⠀│
-│a1b⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│c2d⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│e3f⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│
-│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│
-│end1⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│end2⠀⠀⠀⠀⠀│end3⠀⠀⠀⠀⠀⠀│end4⠀⠀⠀⠀│end5⠀⠀⠀⠀⠀│end6⠀⠀⠀│
-│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│
+│A1⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│B22⠀⠀⠀⠀⠀⠀│C333⠀⠀⠀⠀⠀⠀│D4444⠀⠀⠀│E55555⠀⠀⠀│F666666│
+│alpha1⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│b2⠀⠀⠀⠀⠀⠀⠀│c3⠀⠀⠀⠀⠀⠀⠀⠀│d4⠀⠀⠀⠀⠀⠀│e5⠀⠀⠀⠀⠀⠀⠀│f6⠀⠀⠀⠀⠀│
+│ ===⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│- next -⠀│ line⠀⠀⠀⠀⠀│ has⠀⠀⠀│ no⠀⠀⠀⠀⠀⠀│ value │
+│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│
+│x1⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│y22⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│z333⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│
+│===⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│ - next -│ line⠀⠀⠀⠀⠀│ has⠀⠀⠀│linefeed⠀│ ⠀⠀⠀⠀⠀│
+┊↲⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀┊abc⠀⠀⠀⠀⠀⠀┊DEF123⠀⠀⠀⠀┊↲⠀⠀⠀⠀⠀⠀⠀┊gh⠀⠀⠀⠀⠀⠀⠀┊9⠀⠀⠀⠀⠀⠀┊
+┊"1"2h", 34567890a┊⠀⠀⠀⠀⠀⠀⠀⠀⠀┊⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀┊↲⠀⠀⠀⠀⠀⠀⠀┊⠀⠀⠀⠀⠀⠀⠀⠀⠀┊⠀⠀⠀⠀⠀⠀⠀┊
+┊⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀┊⠀⠀⠀⠀⠀⠀⠀⠀⠀┊⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀┊↲⠀⠀⠀⠀⠀⠀⠀┊⠀⠀⠀⠀⠀⠀⠀⠀⠀┊⠀⠀⠀⠀⠀⠀⠀┊
+│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│
+┊a⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀┊⠀⠀⠀⠀⠀⠀⠀⠀⠀┊b↲⠀⠀⠀⠀⠀⠀⠀⠀┊⠀⠀⠀⠀⠀⠀⠀⠀┊c⠀⠀⠀⠀⠀⠀⠀⠀┊⠀⠀⠀⠀⠀⠀⠀┊
+│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│
+│ ===⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│- next -⠀│ lines⠀⠀⠀⠀│ has⠀⠀⠀│tab⠀⠀⠀⠀⠀⠀│ ⠀⠀⠀⠀⠀│
+│⇥ l⇥ongtext01⠀⠀⠀⠀│mi⇥⇥d2⠀⠀⠀│s⠀⠀⠀⠀⠀⠀⠀⠀⠀│tt⠀⠀⠀⠀⠀⠀│uuu⠀⠀⠀⠀⠀⠀│vvvv⠀⠀⠀│
+│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⇥⇥⇥⇥⇥⇥⇥⠀⠀⠀│⇥⇥⇥⇥⇥⇥⇥⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│
+│R1C1⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│R1C2⠀⠀⠀⠀⠀│R1C3⠀⠀⠀⠀⠀⠀│R1C4⠀⠀⠀⠀│R1C5⠀⠀⠀⠀⠀│R1C6⠀⠀⠀│
+│ ===⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│- next -⠀│ line⠀⠀⠀⠀⠀│ is⠀⠀⠀⠀│multibyte│ value │
+│aaあい⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│いろ2⠀⠀⠀⠀│ぼんさんが│へを⠀⠀⠀⠀│こいた⠀⠀⠀│.!...⠀│
+│g1⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│h22⠀⠀⠀⠀⠀⠀│i333⠀⠀⠀⠀⠀⠀│j4444⠀⠀⠀│k55555⠀⠀⠀│l6⠀⠀⠀⠀⠀│
+│ ===⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│- next -⠀│ lines⠀⠀⠀⠀│ has⠀⠀⠀│linefeed+│tab ⠀⠀│
+┊⇥⇥ ⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀┊↲⠀⠀⠀⠀⠀⠀⠀⠀┊n⇥ ⠀⠀⠀⠀⠀⠀⠀┊⇥⇥ o333⠀┊⠀⠀⠀⠀⠀⠀⠀⠀⠀┊⠀⠀⠀⠀⠀⠀⠀┊
+│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⇥⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│
+│pqrst⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│uv⠀⠀⠀⠀⠀⠀⠀│wx1⠀⠀⠀⠀⠀⠀⠀│yz22⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│345⠀⠀⠀⠀│
+│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│
+│a1b2c3⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│XYZ⠀⠀⠀⠀⠀⠀⠀│7777⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│k9⠀⠀⠀⠀⠀│
+│short⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│longer12⠀│x⠀⠀⠀⠀⠀⠀⠀⠀⠀│yz⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│end⠀⠀⠀⠀│
+│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│
+│row15a⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│row15b⠀⠀⠀│row15c⠀⠀⠀⠀│row15d⠀⠀│row15e⠀⠀⠀│row15f⠀│
+│1⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│22⠀⠀⠀⠀⠀⠀⠀│333⠀⠀⠀⠀⠀⠀⠀│4444⠀⠀⠀⠀│55555⠀⠀⠀⠀│666666⠀│
+│alpha⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│beta⠀⠀⠀⠀⠀│gamma⠀⠀⠀⠀⠀│delta⠀⠀⠀│epsilon⠀⠀│zeta⠀⠀⠀│
+│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│
+│mix1⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│mix3⠀⠀⠀⠀⠀⠀│444⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│six6⠀⠀⠀│
+│abc123⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│def456⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│ghi789⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│
+│z⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│y⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│x⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│
+│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│
+│t1⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│t2⠀⠀⠀⠀⠀⠀⠀│t3⠀⠀⠀⠀⠀⠀⠀⠀│t4⠀⠀⠀⠀⠀⠀│t5⠀⠀⠀⠀⠀⠀⠀│t6⠀⠀⠀⠀⠀│
+│r1c1⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│r1c2⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│r1c4⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│r1c6⠀⠀⠀│
+│data1⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│data22⠀⠀⠀│data333⠀⠀⠀│data4444│data55555│data6⠀⠀│
+│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│
+│A⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│B⠀⠀⠀⠀⠀⠀⠀⠀│C⠀⠀⠀⠀⠀⠀⠀⠀⠀│D⠀⠀⠀⠀⠀⠀⠀│E⠀⠀⠀⠀⠀⠀⠀⠀│F⠀⠀⠀⠀⠀⠀│
+│abc⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│123⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│XYZ⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│
+│one1⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│two22⠀⠀⠀⠀│three3⠀⠀⠀⠀│four44⠀⠀│five5⠀⠀⠀⠀│six66⠀⠀│
+│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│
+│r30a⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│r30b⠀⠀⠀⠀⠀│r30c⠀⠀⠀⠀⠀⠀│r30d⠀⠀⠀⠀│r30e⠀⠀⠀⠀⠀│r30f⠀⠀⠀│
+│longvalue1⠀⠀⠀⠀⠀⠀⠀│mid⠀⠀⠀⠀⠀⠀│short⠀⠀⠀⠀⠀│s⠀⠀⠀⠀⠀⠀⠀│tt⠀⠀⠀⠀⠀⠀⠀│uuu⠀⠀⠀⠀│
+│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│
+│x⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│y⠀⠀⠀⠀⠀⠀⠀⠀│z⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│end⠀⠀⠀⠀│
+│abcde⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│fghij⠀⠀⠀⠀│klmno⠀⠀⠀⠀⠀│pqrst⠀⠀⠀│uvwxy⠀⠀⠀⠀│z⠀⠀⠀⠀⠀⠀│
+│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│
+│cell1⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│cell3⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│cell5⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│
+│111⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│2222⠀⠀⠀⠀⠀│33333⠀⠀⠀⠀⠀│444444⠀⠀│55⠀⠀⠀⠀⠀⠀⠀│6⠀⠀⠀⠀⠀⠀│
+│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│
+│row40a⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│row40b⠀⠀⠀│row40c⠀⠀⠀⠀│row40d⠀⠀│row40e⠀⠀⠀│row40f⠀│
+│a1⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│a2⠀⠀⠀⠀⠀⠀⠀│a3⠀⠀⠀⠀⠀⠀⠀⠀│a4⠀⠀⠀⠀⠀⠀│a5⠀⠀⠀⠀⠀⠀⠀│a6⠀⠀⠀⠀⠀│
+│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│
+│mixA⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│mixC⠀⠀⠀⠀⠀⠀│DDD⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│FFF⠀⠀⠀⠀│
+│123abc⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│456def⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│789ghi⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│000⠀⠀⠀⠀│
+│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│
+│r45a⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│r45b⠀⠀⠀⠀⠀│r45c⠀⠀⠀⠀⠀⠀│r45d⠀⠀⠀⠀│r45e⠀⠀⠀⠀⠀│r45f⠀⠀⠀│
+│alpha9⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│beta8⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│gamma7⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│
+│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│
+│A1B2C3⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│D4E5F6⠀⠀⠀│G7H8I9⠀⠀⠀⠀│J0⠀⠀⠀⠀⠀⠀│K1⠀⠀⠀⠀⠀⠀⠀│L2⠀⠀⠀⠀⠀│
+│short1⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│short3⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│short5⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│
+│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│
+│r50a⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│r50b⠀⠀⠀⠀⠀│r50c⠀⠀⠀⠀⠀⠀│r50d⠀⠀⠀⠀│r50e⠀⠀⠀⠀⠀│r50f⠀⠀⠀│
+│x1y2⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│z3⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│w4⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│v5⠀⠀⠀⠀⠀│
+│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│
+│longertext⠀⠀⠀⠀⠀⠀⠀│mid⠀⠀⠀⠀⠀⠀│small⠀⠀⠀⠀⠀│s1⠀⠀⠀⠀⠀⠀│s22⠀⠀⠀⠀⠀⠀│s333⠀⠀⠀│
+│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│
+│r55a⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│r55b⠀⠀⠀⠀⠀│r55c⠀⠀⠀⠀⠀⠀│r55d⠀⠀⠀⠀│r55e⠀⠀⠀⠀⠀│r55f⠀⠀⠀│
+│abc⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│def⠀⠀⠀⠀⠀⠀│ghi⠀⠀⠀⠀⠀⠀⠀│jkl⠀⠀⠀⠀⠀│mno⠀⠀⠀⠀⠀⠀│pqr⠀⠀⠀⠀│
+│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│
+│1a⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│2b⠀⠀⠀⠀⠀⠀⠀│3c⠀⠀⠀⠀⠀⠀⠀⠀│4d⠀⠀⠀⠀⠀⠀│5e⠀⠀⠀⠀⠀⠀⠀│6f⠀⠀⠀⠀⠀│
+│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│
+│row60a⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│row60b⠀⠀⠀│row60c⠀⠀⠀⠀│row60d⠀⠀│row60e⠀⠀⠀│row60f⠀│
+│value1⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│value3⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│value5⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│
+│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│
+│aa⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│bb⠀⠀⠀⠀⠀⠀⠀│cc⠀⠀⠀⠀⠀⠀⠀⠀│dd⠀⠀⠀⠀⠀⠀│ee⠀⠀⠀⠀⠀⠀⠀│ff⠀⠀⠀⠀⠀│
+│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│
+│r65a⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│r65b⠀⠀⠀⠀⠀│r65c⠀⠀⠀⠀⠀⠀│r65d⠀⠀⠀⠀│r65e⠀⠀⠀⠀⠀│r65f⠀⠀⠀│
+│x⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│y⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│z⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│
+│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│
+│alpha01⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│beta02⠀⠀⠀│gamma03⠀⠀⠀│delta04⠀│eps05⠀⠀⠀⠀│z6⠀⠀⠀⠀⠀│
+│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│
+│row70a⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│row70b⠀⠀⠀│row70c⠀⠀⠀⠀│row70d⠀⠀│row70e⠀⠀⠀│row70f⠀│
+│1⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│3⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│5⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│
+│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│
+│abc1⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│def2⠀⠀⠀⠀⠀│ghi3⠀⠀⠀⠀⠀⠀│jkl4⠀⠀⠀⠀│mno5⠀⠀⠀⠀⠀│pqr6⠀⠀⠀│
+│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│
+│r75a⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│r75b⠀⠀⠀⠀⠀│r75c⠀⠀⠀⠀⠀⠀│r75d⠀⠀⠀⠀│r75e⠀⠀⠀⠀⠀│r75f⠀⠀⠀│
+│mix⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│mix2⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│mix3⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│
+│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│
+│a⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│b⠀⠀⠀⠀⠀⠀⠀⠀│c⠀⠀⠀⠀⠀⠀⠀⠀⠀│d⠀⠀⠀⠀⠀⠀⠀│e⠀⠀⠀⠀⠀⠀⠀⠀│f⠀⠀⠀⠀⠀⠀│
+│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│
+│row80a⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│row80b⠀⠀⠀│row80c⠀⠀⠀⠀│row80d⠀⠀│row80e⠀⠀⠀│row80f⠀│
+│123⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│234⠀⠀⠀⠀⠀⠀│345⠀⠀⠀⠀⠀⠀⠀│456⠀⠀⠀⠀⠀│567⠀⠀⠀⠀⠀⠀│678⠀⠀⠀⠀│
+│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│
+│Aaa⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│Bbb⠀⠀⠀⠀⠀⠀│Ccc⠀⠀⠀⠀⠀⠀⠀│Ddd⠀⠀⠀⠀⠀│Eee⠀⠀⠀⠀⠀⠀│Fff⠀⠀⠀⠀│
+│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│
+│r85a⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│r85b⠀⠀⠀⠀⠀│r85c⠀⠀⠀⠀⠀⠀│r85d⠀⠀⠀⠀│r85e⠀⠀⠀⠀⠀│r85f⠀⠀⠀│
+│x1⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│x3⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│x5⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│
+│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│
+│abcde12345⠀⠀⠀⠀⠀⠀⠀│f1⠀⠀⠀⠀⠀⠀⠀│g2⠀⠀⠀⠀⠀⠀⠀⠀│h3⠀⠀⠀⠀⠀⠀│i4⠀⠀⠀⠀⠀⠀⠀│j5⠀⠀⠀⠀⠀│
+│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│
+│row90a⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│row90b⠀⠀⠀│row90c⠀⠀⠀⠀│row90d⠀⠀│row90e⠀⠀⠀│row90f⠀│
+│1a2b3c⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│4d5e6f⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│7g8h9i⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│
+│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│
+│short⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│mid⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│longer⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│
+│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│
+│r95a⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│r95b⠀⠀⠀⠀⠀│r95c⠀⠀⠀⠀⠀⠀│r95d⠀⠀⠀⠀│r95e⠀⠀⠀⠀⠀│r95f⠀⠀⠀│
+│a1b⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│c2d⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│e3f⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│
+│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│
+│end1⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│end2⠀⠀⠀⠀⠀│end3⠀⠀⠀⠀⠀⠀│end4⠀⠀⠀⠀│end5⠀⠀⠀⠀⠀│end6⠀⠀⠀│
+│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│
diff --git a/tests/cases/error/invalid-table/out-expected.txt b/tests/cases/error/invalid-table/out-expected.txt
index e542d9a..fc20694 100644
--- a/tests/cases/error/invalid-table/out-expected.txt
+++ b/tests/cases/error/invalid-table/out-expected.txt
@@ -1,10 +1,10 @@
=== MESSAGE ===
=== DISPLAY ===
-│1a⠀│2 a│ 3a⠀│
-┊1↲⠀┊2b⠀┊3↲⠀⠀┊
-│⠀⠀⠀│⠀⠀⠀│b⇥⠀⠀│
-┊↲⠀⠀┊⠀⠀⠀┊⇥c⠀⠀┊
-┊↲⠀⠀┊⠀⠀⠀┊⠀⠀⠀⠀┊
-┊↲⠀⠀┊⠀⠀⠀┊⠀⠀⠀⠀┊
-│⠀⠀⠀│⠀⠀⠀│⠀⠀⠀⠀│
+│1a│2 a│ 3a│
+┊1↲┊2b⠀┊3↲⠀┊
+│⠀⠀│⠀⠀⠀│b⇥⠀│
+┊↲⠀┊⠀⠀⠀┊⇥c⠀┊
+┊↲⠀┊⠀⠀⠀┊⠀⠀⠀┊
+┊↲⠀┊⠀⠀⠀┊⠀⠀⠀┊
+│⠀⠀│⠀⠀⠀│⠀⠀⠀│
diff --git a/tests/cases/file/csv/out-expected.txt b/tests/cases/file/csv/out-expected.txt
index c359450..ec193e6 100644
--- a/tests/cases/file/csv/out-expected.txt
+++ b/tests/cases/file/csv/out-expected.txt
@@ -1,10 +1,21 @@
=== MESSAGE ===
-"gen.csv" [New] 2L, 8B written
+"gen.csv" [New] 8L, 36B written
=== DISPLAY ===
-│a│b│
-│c│d│
+│1a│2 a│ 3a│
+┊1↲┊2b⠀┊3↲⠀┊
+│⠀⠀│⠀⠀⠀│b⇥⠀│
+┊↲⠀┊⠀⠀⠀┊⇥c⠀┊
+┊↲⠀┊⠀⠀⠀┊⠀⠀⠀┊
+┊↲⠀┊⠀⠀⠀┊⠀⠀⠀┊
+│⠀⠀│⠀⠀⠀│⠀⠀⠀│
=== FILE ===
-a,b
-c,d
+1a,2 a, 3a
+"1
+",2b,"3
+b "
+"
+
+
+",, c
diff --git a/tests/cases/file/csv/run.vim b/tests/cases/file/csv/run.vim
index a7c5902..478cd2b 100644
--- a/tests/cases/file/csv/run.vim
+++ b/tests/cases/file/csv/run.vim
@@ -3,7 +3,7 @@
source $TIRENVI_ROOT/tests/common.vim
let outfile = 'gen.csv'
-edit ./input
+edit $TIRENVI_ROOT/tests/data/simple.csv
execute 'file ' . outfile
write
execute 'edit ' . outfile
diff --git a/tests/cases/file/foo/out-expected.txt b/tests/cases/file/foo/out-expected.txt
index 24d2f53..14c928d 100644
--- a/tests/cases/file/foo/out-expected.txt
+++ b/tests/cases/file/foo/out-expected.txt
@@ -2,13 +2,13 @@
"gen.foo" [New] 8L, 36B written
=== DISPLAY ===
-│1a⠀│2 a│ 3a⠀│
-┊1↲⠀┊2b⠀┊3↲⠀⠀┊
-│⠀⠀⠀│⠀⠀⠀│b⇥⠀⠀│
-┊↲⠀⠀┊⠀⠀⠀┊⇥c⠀⠀┊
-┊↲⠀⠀┊⠀⠀⠀┊⠀⠀⠀⠀┊
-┊↲⠀⠀┊⠀⠀⠀┊⠀⠀⠀⠀┊
-│⠀⠀⠀│⠀⠀⠀│⠀⠀⠀⠀│
+│1a│2 a│ 3a│
+┊1↲┊2b⠀┊3↲⠀┊
+│⠀⠀│⠀⠀⠀│b⇥⠀│
+┊↲⠀┊⠀⠀⠀┊⇥c⠀┊
+┊↲⠀┊⠀⠀⠀┊⠀⠀⠀┊
+┊↲⠀┊⠀⠀⠀┊⠀⠀⠀┊
+│⠀⠀│⠀⠀⠀│⠀⠀⠀│
=== FILE ===
1a,2 a, 3a
diff --git a/tests/cases/file/tsv/out-expected.txt b/tests/cases/file/tsv/out-expected.txt
index 11a0a7b..97f59ce 100644
--- a/tests/cases/file/tsv/out-expected.txt
+++ b/tests/cases/file/tsv/out-expected.txt
@@ -2,13 +2,13 @@
"gen.tsv" [New] 8L, 36B written
=== DISPLAY ===
-│1a⠀│2 a│ 3a⠀│
-┊1↲⠀┊2b⠀┊3↲⠀⠀┊
-│⠀⠀⠀│⠀⠀⠀│b⇥⠀⠀│
-┊↲⠀⠀┊⠀⠀⠀┊⇥c⠀⠀┊
-┊↲⠀⠀┊⠀⠀⠀┊⠀⠀⠀⠀┊
-┊↲⠀⠀┊⠀⠀⠀┊⠀⠀⠀⠀┊
-│⠀⠀⠀│⠀⠀⠀│⠀⠀⠀⠀│
+│1a│2 a│ 3a│
+┊1↲┊2b⠀┊3↲⠀┊
+│⠀⠀│⠀⠀⠀│b⇥⠀│
+┊↲⠀┊⠀⠀⠀┊⇥c⠀┊
+┊↲⠀┊⠀⠀⠀┊⠀⠀⠀┊
+┊↲⠀┊⠀⠀⠀┊⠀⠀⠀┊
+│⠀⠀│⠀⠀⠀│⠀⠀⠀│
=== FILE ===
1a,2 a, 3a
diff --git a/tests/cases/filetype/csv2csv/out-expected.txt b/tests/cases/filetype/csv2csv/out-expected.txt
index e542d9a..fc20694 100644
--- a/tests/cases/filetype/csv2csv/out-expected.txt
+++ b/tests/cases/filetype/csv2csv/out-expected.txt
@@ -1,10 +1,10 @@
=== MESSAGE ===
=== DISPLAY ===
-│1a⠀│2 a│ 3a⠀│
-┊1↲⠀┊2b⠀┊3↲⠀⠀┊
-│⠀⠀⠀│⠀⠀⠀│b⇥⠀⠀│
-┊↲⠀⠀┊⠀⠀⠀┊⇥c⠀⠀┊
-┊↲⠀⠀┊⠀⠀⠀┊⠀⠀⠀⠀┊
-┊↲⠀⠀┊⠀⠀⠀┊⠀⠀⠀⠀┊
-│⠀⠀⠀│⠀⠀⠀│⠀⠀⠀⠀│
+│1a│2 a│ 3a│
+┊1↲┊2b⠀┊3↲⠀┊
+│⠀⠀│⠀⠀⠀│b⇥⠀│
+┊↲⠀┊⠀⠀⠀┊⇥c⠀┊
+┊↲⠀┊⠀⠀⠀┊⠀⠀⠀┊
+┊↲⠀┊⠀⠀⠀┊⠀⠀⠀┊
+│⠀⠀│⠀⠀⠀│⠀⠀⠀│
diff --git a/tests/cases/insert/lf-at-start/out-expected.txt b/tests/cases/insert/lf-at-start/out-expected.txt
index e5e50f3..0c357f2 100644
--- a/tests/cases/insert/lf-at-start/out-expected.txt
+++ b/tests/cases/insert/lf-at-start/out-expected.txt
@@ -2,11 +2,11 @@
[TIR][ERROR][[string ":lua"]:5] [CI] key = 0D
=== DISPLAY ===
-│1a⠀│2 a│ 3a⠀│
-│⠀⠀⠀│⠀⠀⠀│⠀⠀⠀⠀│
-┊1↲⠀┊2b⠀┊3↲⠀⠀┊
-│⠀⠀⠀│⠀⠀⠀│b⇥⠀⠀│
-┊↲⠀⠀┊⠀⠀⠀┊⇥c⠀⠀┊
-┊↲⠀⠀┊⠀⠀⠀┊⠀⠀⠀⠀┊
-┊↲⠀⠀┊⠀⠀⠀┊⠀⠀⠀⠀┊
-│⠀⠀⠀│⠀⠀⠀│⠀⠀⠀⠀│
+│1a│2 a│ 3a│
+│⠀⠀│⠀⠀⠀│⠀⠀⠀│
+┊1↲┊2b⠀┊3↲⠀┊
+│⠀⠀│⠀⠀⠀│b⇥⠀│
+┊↲⠀┊⠀⠀⠀┊⇥c⠀┊
+┊↲⠀┊⠀⠀⠀┊⠀⠀⠀┊
+┊↲⠀┊⠀⠀⠀┊⠀⠀⠀┊
+│⠀⠀│⠀⠀⠀│⠀⠀⠀│
diff --git a/tests/cases/insert/lf-in-cell/out-expected.txt b/tests/cases/insert/lf-in-cell/out-expected.txt
index e7da441..cfdcaf7 100644
--- a/tests/cases/insert/lf-in-cell/out-expected.txt
+++ b/tests/cases/insert/lf-in-cell/out-expected.txt
@@ -4,11 +4,11 @@
[TIR][ERROR][[string ":lua"]:5] [CI] key = B2
=== DISPLAY ===
-│1a⠀│2 a│ 3a⠀│
-┊↲⠀⠀┊2b⠀┊3↲⠀⠀┊
-┊1↲⠀┊⠀⠀⠀┊b⇥⠀⠀┊
-│⠀⠀⠀│⠀⠀⠀│⠀⠀⠀⠀│
-┊↲⠀⠀┊⠀⠀⠀┊⇥c⠀⠀┊
-┊↲⠀⠀┊⠀⠀⠀┊⠀⠀⠀⠀┊
-┊↲⠀⠀┊⠀⠀⠀┊⠀⠀⠀⠀┊
-│⠀⠀⠀│⠀⠀⠀│⠀⠀⠀⠀│
+│1a│2 a│ 3a│
+┊↲⠀┊2b┊3↲┊
+┊1↲┊⠀⠀┊b⇥┊
+│⠀⠀│⠀⠀│⠀⠀│
+┊↲⠀┊⠀⠀⠀┊⇥c⠀┊
+┊↲⠀┊⠀⠀⠀┊⠀⠀⠀┊
+┊↲⠀┊⠀⠀⠀┊⠀⠀⠀┊
+│⠀⠀│⠀⠀⠀│⠀⠀⠀│
diff --git a/tests/cases/insert/tab-expand/out-expected.txt b/tests/cases/insert/tab-expand/out-expected.txt
index bc33b9c..afbc389 100644
--- a/tests/cases/insert/tab-expand/out-expected.txt
+++ b/tests/cases/insert/tab-expand/out-expected.txt
@@ -1,10 +1,10 @@
=== MESSAGE ===
=== DISPLAY ===
-│1a⠀│2 a│ 3a⠀│
-┊ 1↲┊2b⠀┊3↲⠀⠀┊
-│⠀⠀⠀│⠀⠀⠀│b⇥⠀⠀│
-┊↲⠀⠀┊⠀⠀⠀┊⇥c⠀⠀┊
-┊↲⠀⠀┊⠀⠀⠀┊⠀⠀⠀⠀┊
-┊↲⠀⠀┊⠀⠀⠀┊⠀⠀⠀⠀┊
-│⠀⠀⠀│⠀⠀⠀│⠀⠀⠀⠀│
+│1a│2 a│ 3a│
+┊ 1↲┊2b┊3↲┊
+│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀│b⇥│
+┊↲⠀┊⠀⠀⠀┊⇥c⠀┊
+┊↲⠀┊⠀⠀⠀┊⠀⠀⠀┊
+┊↲⠀┊⠀⠀⠀┊⠀⠀⠀┊
+│⠀⠀│⠀⠀⠀│⠀⠀⠀│
diff --git a/tests/cases/motion/ftg/out-expected.txt b/tests/cases/motion/ftg/out-expected.txt
index c5ca91e..8f93224 100644
--- a/tests/cases/motion/ftg/out-expected.txt
+++ b/tests/cases/motion/ftg/out-expected.txt
@@ -21,7 +21,7 @@ This should *not* be part of any table.
│Left│Center│Right│
│:---│:----:│----:│
-│a⠀⠀⠀
+│a⠀⠀⠀│⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀│
│10⠀⠀│20⠀⠀⠀⠀│30⠀⠀⠀│
│foo⠀│bar⠀⠀⠀│baz⠀⠀│
diff --git a/tests/cases/motion/ftg/run.vim b/tests/cases/motion/ftg/run.vim
index 293c3a6..95d2ce0 100644
--- a/tests/cases/motion/ftg/run.vim
+++ b/tests/cases/motion/ftg/run.vim
@@ -14,17 +14,22 @@ EOF
edit $TIRENVI_ROOT/tests/data/complex.md
call cursor(2, 1)
-call feedkeys("gtg", "x")
+execute "normal gtg"
execute "normal dd"
-call feedkeys("gtG", "x")
+sleep 1m
+execute "normal gtG"
execute "normal dd"
+sleep 1m
call cursor(11, 1)
-call feedkeys("gtg", "x")
+execute "normal gtg"
execute "normal dd"
-call feedkeys("gtG", "x")
+sleep 1m
+execute "normal gtG"
execute "normal dd"
+sleep 1m
call cursor(21, 1)
-call feedkeys("gtf", "x")
+execute "normal gtf"
execute "normal D"
+sleep 1m
call RunTest({})
\ No newline at end of file
diff --git a/tests/cases/motion/g-csv/out-expected.txt b/tests/cases/motion/g-csv/out-expected.txt
index d1d2815..4675092 100644
--- a/tests/cases/motion/g-csv/out-expected.txt
+++ b/tests/cases/motion/g-csv/out-expected.txt
@@ -1,115 +1,115 @@
=== MESSAGE ===
=== DISPLAY ===
-│A1⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│B22⠀⠀⠀⠀⠀⠀│C333⠀⠀⠀⠀⠀⠀│D4444⠀⠀⠀│E55555⠀⠀⠀│F666666│
-│ ===⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│- next -⠀│ line⠀⠀⠀⠀⠀│ has⠀⠀⠀│ no⠀⠀⠀⠀⠀⠀│ value │
-│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│
-│x1⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│y22⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│z333⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│
-│===⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│ - next -│ line⠀⠀⠀⠀⠀│ has⠀⠀⠀│linefeed⠀│ ⠀⠀⠀⠀⠀│
-┊↲⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀┊abc⠀⠀⠀⠀⠀⠀┊DEF123⠀⠀⠀⠀┊↲⠀⠀⠀⠀⠀⠀⠀┊gh⠀⠀⠀⠀⠀⠀⠀┊9⠀⠀⠀⠀⠀⠀┊
-┊"1"2h", 34567890a⠀┊⠀⠀⠀⠀⠀⠀⠀⠀⠀┊⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀┊↲⠀⠀⠀⠀⠀⠀⠀┊⠀⠀⠀⠀⠀⠀⠀⠀⠀┊⠀⠀⠀⠀⠀⠀⠀┊
-┊⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀┊⠀⠀⠀⠀⠀⠀⠀⠀⠀┊⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀┊↲⠀⠀⠀⠀⠀⠀⠀┊⠀⠀⠀⠀⠀⠀⠀⠀⠀┊⠀⠀⠀⠀⠀⠀⠀┊
-│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│
-┊a⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀┊⠀⠀⠀⠀⠀⠀⠀⠀⠀┊b↲⠀⠀⠀⠀⠀⠀⠀⠀┊⠀⠀⠀⠀⠀⠀⠀⠀┊c⠀⠀⠀⠀⠀⠀⠀⠀┊⠀⠀⠀⠀⠀⠀⠀┊
-│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│
-│ ===⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│- next -⠀│ lines⠀⠀⠀⠀│ has⠀⠀⠀│tab⠀⠀⠀⠀⠀⠀│ ⠀⠀⠀⠀⠀│
-│⇥ l⇥ongtext01⠀⠀⠀⠀⠀│mi⇥⇥d2⠀⠀⠀│s⠀⠀⠀⠀⠀⠀⠀⠀⠀│tt⠀⠀⠀⠀⠀⠀│uuu⠀⠀⠀⠀⠀⠀│vvvv⠀⠀⠀│
-│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⇥⇥⇥⇥⇥⇥⇥⠀⠀⠀│⇥⇥⇥⇥⇥⇥⇥⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│
-│R1C1⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│R1C2⠀⠀⠀⠀⠀│R1C3⠀⠀⠀⠀⠀⠀│R1C4⠀⠀⠀⠀│R1C5⠀⠀⠀⠀⠀│R1C6⠀⠀⠀│
-│ ===⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│- next -⠀│ line⠀⠀⠀⠀⠀│ is⠀⠀⠀⠀│multibyte│ value │
-│aaあい⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│いろ2⠀⠀⠀⠀│ぼんさんが│へを⠀⠀⠀⠀│こいた⠀⠀⠀│.!...⠀│
-│g1⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│h22⠀⠀⠀⠀⠀⠀│i333⠀⠀⠀⠀⠀⠀│j4444⠀⠀⠀│k55555⠀⠀⠀│l6⠀⠀⠀⠀⠀│
-│ ===⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│- next -⠀│ lines⠀⠀⠀⠀│ has⠀⠀⠀│linefeed+│tab ⠀⠀│
-┊⇥⇥ ⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀┊↲⠀⠀⠀⠀⠀⠀⠀⠀┊n⇥ ⠀⠀⠀⠀⠀⠀⠀┊⇥⇥ o333⠀┊⠀⠀⠀⠀⠀⠀⠀⠀⠀┊⠀⠀⠀⠀⠀⠀⠀┊
-│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⇥⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│
-│pqrst⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│uv⠀⠀⠀⠀⠀⠀⠀│wx1⠀⠀⠀⠀⠀⠀⠀│yz22⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│345⠀⠀⠀⠀│
-│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│
-│a1b2c3⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│XYZ⠀⠀⠀⠀⠀⠀⠀│7777⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│k9⠀⠀⠀⠀⠀│
-│short⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│longer12⠀│x⠀⠀⠀⠀⠀⠀⠀⠀⠀│yz⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│end⠀⠀⠀⠀│
-│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│
-│row15a⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│row15b⠀⠀⠀│row15c⠀⠀⠀⠀│row15d⠀⠀│row15e⠀⠀⠀│row15f⠀│
-│1⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│22⠀⠀⠀⠀⠀⠀⠀│333⠀⠀⠀⠀⠀⠀⠀│4444⠀⠀⠀⠀│55555⠀⠀⠀⠀│666666⠀│
-│alpha⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│beta⠀⠀⠀⠀⠀│gamma⠀⠀⠀⠀⠀│delta⠀⠀⠀│epsilon⠀⠀│zeta⠀⠀⠀│
-│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│
-│mix1⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│mix3⠀⠀⠀⠀⠀⠀│444⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│six6⠀⠀⠀│
-│abc123⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│def456⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│ghi789⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│
-│z⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│y⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│x⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│
-│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│
-│t1⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│t2⠀⠀⠀⠀⠀⠀⠀│t3⠀⠀⠀⠀⠀⠀⠀⠀│t4⠀⠀⠀⠀⠀⠀│t5⠀⠀⠀⠀⠀⠀⠀│t6⠀⠀⠀⠀⠀│
-│r1c1⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│r1c2⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│r1c4⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│r1c6⠀⠀⠀│
-│data1⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│data22⠀⠀⠀│data333⠀⠀⠀│data4444│data55555│data6⠀⠀│
-│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│
-│A⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│B⠀⠀⠀⠀⠀⠀⠀⠀│C⠀⠀⠀⠀⠀⠀⠀⠀⠀│D⠀⠀⠀⠀⠀⠀⠀│E⠀⠀⠀⠀⠀⠀⠀⠀│F⠀⠀⠀⠀⠀⠀│
-│abc⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│123⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│XYZ⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│
-│one1⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│two22⠀⠀⠀⠀│three3⠀⠀⠀⠀│four44⠀⠀│five5⠀⠀⠀⠀│six66⠀⠀│
-│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│
-│r30a⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│r30b⠀⠀⠀⠀⠀│r30c⠀⠀⠀⠀⠀⠀│r30d⠀⠀⠀⠀│r30e⠀⠀⠀⠀⠀│r30f⠀⠀⠀│
-│longvalue1⠀⠀⠀⠀⠀⠀⠀⠀│mid⠀⠀⠀⠀⠀⠀│short⠀⠀⠀⠀⠀│s⠀⠀⠀⠀⠀⠀⠀│tt⠀⠀⠀⠀⠀⠀⠀│uuu⠀⠀⠀⠀│
-│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│
-│x⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│y⠀⠀⠀⠀⠀⠀⠀⠀│z⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│end⠀⠀⠀⠀│
-│abcde⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│fghij⠀⠀⠀⠀│klmno⠀⠀⠀⠀⠀│pqrst⠀⠀⠀│uvwxy⠀⠀⠀⠀│z⠀⠀⠀⠀⠀⠀│
-│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│
-│cell1⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│cell3⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│cell5⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│
-│111⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│2222⠀⠀⠀⠀⠀│33333⠀⠀⠀⠀⠀│444444⠀⠀│55⠀⠀⠀⠀⠀⠀⠀│6⠀⠀⠀⠀⠀⠀│
-│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│
-│row40a⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│row40b⠀⠀⠀│row40c⠀⠀⠀⠀│row40d⠀⠀│row40e⠀⠀⠀│row40f⠀│
-│a1⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│a2⠀⠀⠀⠀⠀⠀⠀│a3⠀⠀⠀⠀⠀⠀⠀⠀│a4⠀⠀⠀⠀⠀⠀│a5⠀⠀⠀⠀⠀⠀⠀│a6⠀⠀⠀⠀⠀│
-│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│
-│mixA⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│mixC⠀⠀⠀⠀⠀⠀│DDD⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│FFF⠀⠀⠀⠀│
-│123abc⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│456def⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│789ghi⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│000⠀⠀⠀⠀│
-│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│
-│r45a⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│r45b⠀⠀⠀⠀⠀│r45c⠀⠀⠀⠀⠀⠀│r45d⠀⠀⠀⠀│r45e⠀⠀⠀⠀⠀│r45f⠀⠀⠀│
-│alpha9⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│beta8⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│gamma7⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│
-│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│
-│A1B2C3⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│D4E5F6⠀⠀⠀│G7H8I9⠀⠀⠀⠀│J0⠀⠀⠀⠀⠀⠀│K1⠀⠀⠀⠀⠀⠀⠀│L2⠀⠀⠀⠀⠀│
-│short1⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│short3⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│short5⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│
-│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│
-│r50a⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│r50b⠀⠀⠀⠀⠀│r50c⠀⠀⠀⠀⠀⠀│r50d⠀⠀⠀⠀│r50e⠀⠀⠀⠀⠀│r50f⠀⠀⠀│
-│x1y2⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│z3⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│w4⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│v5⠀⠀⠀⠀⠀│
-│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│
-│longertext⠀⠀⠀⠀⠀⠀⠀⠀│mid⠀⠀⠀⠀⠀⠀│small⠀⠀⠀⠀⠀│s1⠀⠀⠀⠀⠀⠀│s22⠀⠀⠀⠀⠀⠀│s333⠀⠀⠀│
-│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│
-│r55a⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│r55b⠀⠀⠀⠀⠀│r55c⠀⠀⠀⠀⠀⠀│r55d⠀⠀⠀⠀│r55e⠀⠀⠀⠀⠀│r55f⠀⠀⠀│
-│abc⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│def⠀⠀⠀⠀⠀⠀│ghi⠀⠀⠀⠀⠀⠀⠀│jkl⠀⠀⠀⠀⠀│mno⠀⠀⠀⠀⠀⠀│pqr⠀⠀⠀⠀│
-│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│
-│1a⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│2b⠀⠀⠀⠀⠀⠀⠀│3c⠀⠀⠀⠀⠀⠀⠀⠀│4d⠀⠀⠀⠀⠀⠀│5e⠀⠀⠀⠀⠀⠀⠀│6f⠀⠀⠀⠀⠀│
-│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│
-│row60a⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│row60b⠀⠀⠀│row60c⠀⠀⠀⠀│row60d⠀⠀│row60e⠀⠀⠀│row60f⠀│
-│value1⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│value3⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│value5⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│
-│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│
-│aa⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│bb⠀⠀⠀⠀⠀⠀⠀│cc⠀⠀⠀⠀⠀⠀⠀⠀│dd⠀⠀⠀⠀⠀⠀│ee⠀⠀⠀⠀⠀⠀⠀│ff⠀⠀⠀⠀⠀│
-│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│
-│r65a⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│r65b⠀⠀⠀⠀⠀│r65c⠀⠀⠀⠀⠀⠀│r65d⠀⠀⠀⠀│r65e⠀⠀⠀⠀⠀│r65f⠀⠀⠀│
-│x⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│y⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│z⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│
-│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│
-│alpha01⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│beta02⠀⠀⠀│gamma03⠀⠀⠀│delta04⠀│eps05⠀⠀⠀⠀│z6⠀⠀⠀⠀⠀│
-│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│
-│row70a⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│row70b⠀⠀⠀│row70c⠀⠀⠀⠀│row70d⠀⠀│row70e⠀⠀⠀│row70f⠀│
-│1⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│3⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│5⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│
-│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│
-│abc1⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│def2⠀⠀⠀⠀⠀│ghi3⠀⠀⠀⠀⠀⠀│jkl4⠀⠀⠀⠀│mno5⠀⠀⠀⠀⠀│pqr6⠀⠀⠀│
-│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│
-│r75a⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│r75b⠀⠀⠀⠀⠀│r75c⠀⠀⠀⠀⠀⠀│r75d⠀⠀⠀⠀│r75e⠀⠀⠀⠀⠀│r75f⠀⠀⠀│
-│mix⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│mix2⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│mix3⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│
-│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│
-│a⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│b⠀⠀⠀⠀⠀⠀⠀⠀│c⠀⠀⠀⠀⠀⠀⠀⠀⠀│d⠀⠀⠀⠀⠀⠀⠀│e⠀⠀⠀⠀⠀⠀⠀⠀│f⠀⠀⠀⠀⠀⠀│
-│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│
-│row80a⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│row80b⠀⠀⠀│row80c⠀⠀⠀⠀│row80d⠀⠀│row80e⠀⠀⠀│row80f⠀│
-│123⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│234⠀⠀⠀⠀⠀⠀│345⠀⠀⠀⠀⠀⠀⠀│456⠀⠀⠀⠀⠀│567⠀⠀⠀⠀⠀⠀│678⠀⠀⠀⠀│
-│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│
-│Aaa⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│Bbb⠀⠀⠀⠀⠀⠀│Ccc⠀⠀⠀⠀⠀⠀⠀│Ddd⠀⠀⠀⠀⠀│Eee⠀⠀⠀⠀⠀⠀│Fff⠀⠀⠀⠀│
-│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│
-│r85a⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│r85b⠀⠀⠀⠀⠀│r85c⠀⠀⠀⠀⠀⠀│r85d⠀⠀⠀⠀│r85e⠀⠀⠀⠀⠀│r85f⠀⠀⠀│
-│x1⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│x3⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│x5⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│
-│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│
-│abcde12345⠀⠀⠀⠀⠀⠀⠀⠀│f1⠀⠀⠀⠀⠀⠀⠀│g2⠀⠀⠀⠀⠀⠀⠀⠀│h3⠀⠀⠀⠀⠀⠀│i4⠀⠀⠀⠀⠀⠀⠀│j5⠀⠀⠀⠀⠀│
-│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│
-│row90a⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│row90b⠀⠀⠀│row90c⠀⠀⠀⠀│row90d⠀⠀│row90e⠀⠀⠀│row90f⠀│
-│1a2b3c⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│4d5e6f⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│7g8h9i⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│
-│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│
-│short⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│mid⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│longer⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│
-│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│
-│r95a⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│r95b⠀⠀⠀⠀⠀│r95c⠀⠀⠀⠀⠀⠀│r95d⠀⠀⠀⠀│r95e⠀⠀⠀⠀⠀│r95f⠀⠀⠀│
-│a1b⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│c2d⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│e3f⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│
-│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│
-│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│
+│A1⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│B22⠀⠀⠀⠀⠀⠀│C333⠀⠀⠀⠀⠀⠀│D4444⠀⠀⠀│E55555⠀⠀⠀│F666666│
+│ ===⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│- next -⠀│ line⠀⠀⠀⠀⠀│ has⠀⠀⠀│ no⠀⠀⠀⠀⠀⠀│ value │
+│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│
+│x1⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│y22⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│z333⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│
+│===⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│ - next -│ line⠀⠀⠀⠀⠀│ has⠀⠀⠀│linefeed⠀│ ⠀⠀⠀⠀⠀│
+┊↲⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀┊abc⠀⠀⠀⠀⠀⠀┊DEF123⠀⠀⠀⠀┊↲⠀⠀⠀⠀⠀⠀⠀┊gh⠀⠀⠀⠀⠀⠀⠀┊9⠀⠀⠀⠀⠀⠀┊
+┊"1"2h", 34567890a┊⠀⠀⠀⠀⠀⠀⠀⠀⠀┊⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀┊↲⠀⠀⠀⠀⠀⠀⠀┊⠀⠀⠀⠀⠀⠀⠀⠀⠀┊⠀⠀⠀⠀⠀⠀⠀┊
+┊⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀┊⠀⠀⠀⠀⠀⠀⠀⠀⠀┊⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀┊↲⠀⠀⠀⠀⠀⠀⠀┊⠀⠀⠀⠀⠀⠀⠀⠀⠀┊⠀⠀⠀⠀⠀⠀⠀┊
+│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│
+┊a⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀┊⠀⠀⠀⠀⠀⠀⠀⠀⠀┊b↲⠀⠀⠀⠀⠀⠀⠀⠀┊⠀⠀⠀⠀⠀⠀⠀⠀┊c⠀⠀⠀⠀⠀⠀⠀⠀┊⠀⠀⠀⠀⠀⠀⠀┊
+│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│
+│ ===⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│- next -⠀│ lines⠀⠀⠀⠀│ has⠀⠀⠀│tab⠀⠀⠀⠀⠀⠀│ ⠀⠀⠀⠀⠀│
+│⇥ l⇥ongtext01⠀⠀⠀⠀│mi⇥⇥d2⠀⠀⠀│s⠀⠀⠀⠀⠀⠀⠀⠀⠀│tt⠀⠀⠀⠀⠀⠀│uuu⠀⠀⠀⠀⠀⠀│vvvv⠀⠀⠀│
+│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⇥⇥⇥⇥⇥⇥⇥⠀⠀⠀│⇥⇥⇥⇥⇥⇥⇥⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│
+│R1C1⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│R1C2⠀⠀⠀⠀⠀│R1C3⠀⠀⠀⠀⠀⠀│R1C4⠀⠀⠀⠀│R1C5⠀⠀⠀⠀⠀│R1C6⠀⠀⠀│
+│ ===⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│- next -⠀│ line⠀⠀⠀⠀⠀│ is⠀⠀⠀⠀│multibyte│ value │
+│aaあい⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│いろ2⠀⠀⠀⠀│ぼんさんが│へを⠀⠀⠀⠀│こいた⠀⠀⠀│.!...⠀│
+│g1⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│h22⠀⠀⠀⠀⠀⠀│i333⠀⠀⠀⠀⠀⠀│j4444⠀⠀⠀│k55555⠀⠀⠀│l6⠀⠀⠀⠀⠀│
+│ ===⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│- next -⠀│ lines⠀⠀⠀⠀│ has⠀⠀⠀│linefeed+│tab ⠀⠀│
+┊⇥⇥ ⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀┊↲⠀⠀⠀⠀⠀⠀⠀⠀┊n⇥ ⠀⠀⠀⠀⠀⠀⠀┊⇥⇥ o333⠀┊⠀⠀⠀⠀⠀⠀⠀⠀⠀┊⠀⠀⠀⠀⠀⠀⠀┊
+│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⇥⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│
+│pqrst⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│uv⠀⠀⠀⠀⠀⠀⠀│wx1⠀⠀⠀⠀⠀⠀⠀│yz22⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│345⠀⠀⠀⠀│
+│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│
+│a1b2c3⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│XYZ⠀⠀⠀⠀⠀⠀⠀│7777⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│k9⠀⠀⠀⠀⠀│
+│short⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│longer12⠀│x⠀⠀⠀⠀⠀⠀⠀⠀⠀│yz⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│end⠀⠀⠀⠀│
+│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│
+│row15a⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│row15b⠀⠀⠀│row15c⠀⠀⠀⠀│row15d⠀⠀│row15e⠀⠀⠀│row15f⠀│
+│1⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│22⠀⠀⠀⠀⠀⠀⠀│333⠀⠀⠀⠀⠀⠀⠀│4444⠀⠀⠀⠀│55555⠀⠀⠀⠀│666666⠀│
+│alpha⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│beta⠀⠀⠀⠀⠀│gamma⠀⠀⠀⠀⠀│delta⠀⠀⠀│epsilon⠀⠀│zeta⠀⠀⠀│
+│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│
+│mix1⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│mix3⠀⠀⠀⠀⠀⠀│444⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│six6⠀⠀⠀│
+│abc123⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│def456⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│ghi789⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│
+│z⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│y⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│x⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│
+│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│
+│t1⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│t2⠀⠀⠀⠀⠀⠀⠀│t3⠀⠀⠀⠀⠀⠀⠀⠀│t4⠀⠀⠀⠀⠀⠀│t5⠀⠀⠀⠀⠀⠀⠀│t6⠀⠀⠀⠀⠀│
+│r1c1⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│r1c2⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│r1c4⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│r1c6⠀⠀⠀│
+│data1⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│data22⠀⠀⠀│data333⠀⠀⠀│data4444│data55555│data6⠀⠀│
+│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│
+│A⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│B⠀⠀⠀⠀⠀⠀⠀⠀│C⠀⠀⠀⠀⠀⠀⠀⠀⠀│D⠀⠀⠀⠀⠀⠀⠀│E⠀⠀⠀⠀⠀⠀⠀⠀│F⠀⠀⠀⠀⠀⠀│
+│abc⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│123⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│XYZ⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│
+│one1⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│two22⠀⠀⠀⠀│three3⠀⠀⠀⠀│four44⠀⠀│five5⠀⠀⠀⠀│six66⠀⠀│
+│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│
+│r30a⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│r30b⠀⠀⠀⠀⠀│r30c⠀⠀⠀⠀⠀⠀│r30d⠀⠀⠀⠀│r30e⠀⠀⠀⠀⠀│r30f⠀⠀⠀│
+│longvalue1⠀⠀⠀⠀⠀⠀⠀│mid⠀⠀⠀⠀⠀⠀│short⠀⠀⠀⠀⠀│s⠀⠀⠀⠀⠀⠀⠀│tt⠀⠀⠀⠀⠀⠀⠀│uuu⠀⠀⠀⠀│
+│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│
+│x⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│y⠀⠀⠀⠀⠀⠀⠀⠀│z⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│end⠀⠀⠀⠀│
+│abcde⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│fghij⠀⠀⠀⠀│klmno⠀⠀⠀⠀⠀│pqrst⠀⠀⠀│uvwxy⠀⠀⠀⠀│z⠀⠀⠀⠀⠀⠀│
+│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│
+│cell1⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│cell3⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│cell5⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│
+│111⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│2222⠀⠀⠀⠀⠀│33333⠀⠀⠀⠀⠀│444444⠀⠀│55⠀⠀⠀⠀⠀⠀⠀│6⠀⠀⠀⠀⠀⠀│
+│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│
+│row40a⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│row40b⠀⠀⠀│row40c⠀⠀⠀⠀│row40d⠀⠀│row40e⠀⠀⠀│row40f⠀│
+│a1⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│a2⠀⠀⠀⠀⠀⠀⠀│a3⠀⠀⠀⠀⠀⠀⠀⠀│a4⠀⠀⠀⠀⠀⠀│a5⠀⠀⠀⠀⠀⠀⠀│a6⠀⠀⠀⠀⠀│
+│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│
+│mixA⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│mixC⠀⠀⠀⠀⠀⠀│DDD⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│FFF⠀⠀⠀⠀│
+│123abc⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│456def⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│789ghi⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│000⠀⠀⠀⠀│
+│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│
+│r45a⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│r45b⠀⠀⠀⠀⠀│r45c⠀⠀⠀⠀⠀⠀│r45d⠀⠀⠀⠀│r45e⠀⠀⠀⠀⠀│r45f⠀⠀⠀│
+│alpha9⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│beta8⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│gamma7⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│
+│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│
+│A1B2C3⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│D4E5F6⠀⠀⠀│G7H8I9⠀⠀⠀⠀│J0⠀⠀⠀⠀⠀⠀│K1⠀⠀⠀⠀⠀⠀⠀│L2⠀⠀⠀⠀⠀│
+│short1⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│short3⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│short5⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│
+│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│
+│r50a⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│r50b⠀⠀⠀⠀⠀│r50c⠀⠀⠀⠀⠀⠀│r50d⠀⠀⠀⠀│r50e⠀⠀⠀⠀⠀│r50f⠀⠀⠀│
+│x1y2⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│z3⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│w4⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│v5⠀⠀⠀⠀⠀│
+│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│
+│longertext⠀⠀⠀⠀⠀⠀⠀│mid⠀⠀⠀⠀⠀⠀│small⠀⠀⠀⠀⠀│s1⠀⠀⠀⠀⠀⠀│s22⠀⠀⠀⠀⠀⠀│s333⠀⠀⠀│
+│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│
+│r55a⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│r55b⠀⠀⠀⠀⠀│r55c⠀⠀⠀⠀⠀⠀│r55d⠀⠀⠀⠀│r55e⠀⠀⠀⠀⠀│r55f⠀⠀⠀│
+│abc⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│def⠀⠀⠀⠀⠀⠀│ghi⠀⠀⠀⠀⠀⠀⠀│jkl⠀⠀⠀⠀⠀│mno⠀⠀⠀⠀⠀⠀│pqr⠀⠀⠀⠀│
+│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│
+│1a⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│2b⠀⠀⠀⠀⠀⠀⠀│3c⠀⠀⠀⠀⠀⠀⠀⠀│4d⠀⠀⠀⠀⠀⠀│5e⠀⠀⠀⠀⠀⠀⠀│6f⠀⠀⠀⠀⠀│
+│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│
+│row60a⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│row60b⠀⠀⠀│row60c⠀⠀⠀⠀│row60d⠀⠀│row60e⠀⠀⠀│row60f⠀│
+│value1⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│value3⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│value5⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│
+│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│
+│aa⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│bb⠀⠀⠀⠀⠀⠀⠀│cc⠀⠀⠀⠀⠀⠀⠀⠀│dd⠀⠀⠀⠀⠀⠀│ee⠀⠀⠀⠀⠀⠀⠀│ff⠀⠀⠀⠀⠀│
+│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│
+│r65a⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│r65b⠀⠀⠀⠀⠀│r65c⠀⠀⠀⠀⠀⠀│r65d⠀⠀⠀⠀│r65e⠀⠀⠀⠀⠀│r65f⠀⠀⠀│
+│x⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│y⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│z⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│
+│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│
+│alpha01⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│beta02⠀⠀⠀│gamma03⠀⠀⠀│delta04⠀│eps05⠀⠀⠀⠀│z6⠀⠀⠀⠀⠀│
+│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│
+│row70a⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│row70b⠀⠀⠀│row70c⠀⠀⠀⠀│row70d⠀⠀│row70e⠀⠀⠀│row70f⠀│
+│1⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│3⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│5⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│
+│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│
+│abc1⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│def2⠀⠀⠀⠀⠀│ghi3⠀⠀⠀⠀⠀⠀│jkl4⠀⠀⠀⠀│mno5⠀⠀⠀⠀⠀│pqr6⠀⠀⠀│
+│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│
+│r75a⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│r75b⠀⠀⠀⠀⠀│r75c⠀⠀⠀⠀⠀⠀│r75d⠀⠀⠀⠀│r75e⠀⠀⠀⠀⠀│r75f⠀⠀⠀│
+│mix⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│mix2⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│mix3⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│
+│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│
+│a⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│b⠀⠀⠀⠀⠀⠀⠀⠀│c⠀⠀⠀⠀⠀⠀⠀⠀⠀│d⠀⠀⠀⠀⠀⠀⠀│e⠀⠀⠀⠀⠀⠀⠀⠀│f⠀⠀⠀⠀⠀⠀│
+│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│
+│row80a⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│row80b⠀⠀⠀│row80c⠀⠀⠀⠀│row80d⠀⠀│row80e⠀⠀⠀│row80f⠀│
+│123⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│234⠀⠀⠀⠀⠀⠀│345⠀⠀⠀⠀⠀⠀⠀│456⠀⠀⠀⠀⠀│567⠀⠀⠀⠀⠀⠀│678⠀⠀⠀⠀│
+│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│
+│Aaa⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│Bbb⠀⠀⠀⠀⠀⠀│Ccc⠀⠀⠀⠀⠀⠀⠀│Ddd⠀⠀⠀⠀⠀│Eee⠀⠀⠀⠀⠀⠀│Fff⠀⠀⠀⠀│
+│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│
+│r85a⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│r85b⠀⠀⠀⠀⠀│r85c⠀⠀⠀⠀⠀⠀│r85d⠀⠀⠀⠀│r85e⠀⠀⠀⠀⠀│r85f⠀⠀⠀│
+│x1⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│x3⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│x5⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│
+│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│
+│abcde12345⠀⠀⠀⠀⠀⠀⠀│f1⠀⠀⠀⠀⠀⠀⠀│g2⠀⠀⠀⠀⠀⠀⠀⠀│h3⠀⠀⠀⠀⠀⠀│i4⠀⠀⠀⠀⠀⠀⠀│j5⠀⠀⠀⠀⠀│
+│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│
+│row90a⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│row90b⠀⠀⠀│row90c⠀⠀⠀⠀│row90d⠀⠀│row90e⠀⠀⠀│row90f⠀│
+│1a2b3c⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│4d5e6f⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│7g8h9i⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│
+│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│
+│short⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│mid⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│longer⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│
+│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│
+│r95a⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│r95b⠀⠀⠀⠀⠀│r95c⠀⠀⠀⠀⠀⠀│r95d⠀⠀⠀⠀│r95e⠀⠀⠀⠀⠀│r95f⠀⠀⠀│
+│a1b⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│c2d⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│e3f⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│
+│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│
+│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│
diff --git a/tests/cases/motion/g-csv/run.vim b/tests/cases/motion/g-csv/run.vim
index 0e2ef74..4ec6f84 100644
--- a/tests/cases/motion/g-csv/run.vim
+++ b/tests/cases/motion/g-csv/run.vim
@@ -17,8 +17,10 @@ call cursor(2, 1)
call feedkeys("gtg", "x")
call feedkeys("j", "x")
execute "normal dd"
+sleep 1m
call feedkeys("gtG", "x")
call feedkeys("k", "x")
execute "normal dd"
+sleep 1m
call RunTest({})
\ No newline at end of file
diff --git a/tests/cases/normal/join/out-expected.txt b/tests/cases/normal/join/out-expected.txt
index dd5c0ac..cb4cf3c 100644
--- a/tests/cases/normal/join/out-expected.txt
+++ b/tests/cases/normal/join/out-expected.txt
@@ -1,12 +1,10 @@
=== MESSAGE ===
=== DISPLAY ===
-│1a⠀│2 a│ 3a⠀│
-┊1a⠀┊2 a┊ 3a 1↲┊
-┊⠀⠀⠀┊⠀⠀⠀┊ 2b 3↲┊
-│⠀⠀⠀│⠀⠀⠀│⠀⠀⠀⠀│
-│⠀⠀⠀│⠀⠀⠀│b⇥⠀⠀│
-┊↲⠀⠀┊⠀⠀⠀┊⇥c⠀⠀┊
-┊↲⠀⠀┊⠀⠀⠀┊⠀⠀⠀⠀┊
-┊↲⠀⠀┊⠀⠀⠀┊⠀⠀⠀⠀┊
-│⠀⠀⠀│⠀⠀⠀│⠀⠀⠀⠀│
+│1a│2 a│ 3a│
+┊1a┊2 a┊ 3a 1↲ 2b 3↲┊
+│⠀⠀│⠀⠀⠀│b⇥⠀│
+┊↲⠀┊⠀⠀⠀┊⇥c⠀┊
+┊↲⠀┊⠀⠀⠀┊⠀⠀⠀┊
+┊↲⠀┊⠀⠀⠀┊⠀⠀⠀┊
+│⠀⠀│⠀⠀⠀│⠀⠀⠀│
diff --git a/tests/cases/normal/o/out-expected.txt b/tests/cases/normal/o/out-expected.txt
index 12be85b..487e983 100644
--- a/tests/cases/normal/o/out-expected.txt
+++ b/tests/cases/normal/o/out-expected.txt
@@ -1,13 +1,12 @@
=== MESSAGE ===
=== DISPLAY ===
-│1a⠀⠀⠀⠀│2 a│ 3a⠀│
-│ abc⠀⠀│⠀⠀⠀│⠀⠀⠀⠀│
-│123⠀⠀⠀│⠀⠀⠀│⠀⠀⠀⠀│
-┊1↲⠀⠀⠀⠀┊2b⠀┊3↲⠀⠀┊
-│⠀⠀⠀⠀⠀⠀│⠀⠀⠀│b⇥⠀⠀│
-┊↲⠀⠀⠀⠀⠀┊⠀⠀⠀┊⇥c⠀⠀┊
-┊↲⠀⠀⠀⠀⠀┊⠀⠀⠀┊⠀⠀⠀⠀┊
-┊↲⠀⠀⠀⠀⠀┊⠀⠀⠀┊⠀⠀⠀⠀┊
-│⠀⠀⠀⠀⠀⠀│⠀⠀⠀│⠀⠀⠀⠀│
-│ 1 | 2│⠀⠀⠀│⠀⠀⠀⠀│
+│ abc│⠀⠀⠀│⠀⠀⠀│
+│1a│2 a│ 3a│
+┊1↲┊2b⠀┊3↲⠀┊
+│123│⠀⠀⠀│b⇥⠀│
+┊↲⠀┊⠀⠀⠀┊⇥c⠀┊
+┊↲⠀┊⠀⠀⠀┊⠀⠀⠀┊
+┊↲⠀┊⠀⠀⠀┊⠀⠀⠀┊
+│⠀⠀│⠀⠀⠀│⠀⠀⠀│
+│ 1 | 2│⠀⠀⠀│⠀⠀⠀│
diff --git a/tests/cases/normal/o/run.vim b/tests/cases/normal/o/run.vim
index e82643b..35430d9 100644
--- a/tests/cases/normal/o/run.vim
+++ b/tests/cases/normal/o/run.vim
@@ -1,11 +1,13 @@
source $TIRENVI_ROOT/tests/common.vim
edit $TIRENVI_ROOT/tests/data/simple.csv
-call cursor(1, 1)
+call cursor(2, 2)
execute "normal! o123\"
-call cursor(0, 1)
+sleep 1m
+call cursor(1, 5)
execute "normal! O abc\"
+sleep 1m
execute "normal! Go 1 | 2\"
-Tir redraw
+sleep 1m
-call RunTest({})
\ No newline at end of file
+call RunTest({})
diff --git a/tests/cases/save/as-csv/out-expected.txt b/tests/cases/save/as-csv/out-expected.txt
index e7a1f27..73d9319 100644
--- a/tests/cases/save/as-csv/out-expected.txt
+++ b/tests/cases/save/as-csv/out-expected.txt
@@ -2,120 +2,120 @@
"gen.csv" [New] 115L, 2239B written
=== DISPLAY ===
-│A1⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│B22⠀⠀⠀⠀⠀⠀│C333⠀⠀⠀⠀⠀⠀│D4444⠀⠀⠀│E55555⠀⠀⠀│F666666│
-│alpha1⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│b2⠀⠀⠀⠀⠀⠀⠀│c3⠀⠀⠀⠀⠀⠀⠀⠀│d4⠀⠀⠀⠀⠀⠀│e5⠀⠀⠀⠀⠀⠀⠀│f6⠀⠀⠀⠀⠀│
-│ ===⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│- next -⠀│ line⠀⠀⠀⠀⠀│ has⠀⠀⠀│ no⠀⠀⠀⠀⠀⠀│ value │
-│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│
-│x1⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│y22⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│z333⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│
-│===⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│ - next -│ line⠀⠀⠀⠀⠀│ has⠀⠀⠀│linefeed⠀│ ⠀⠀⠀⠀⠀│
-┊↲⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀┊abc⠀⠀⠀⠀⠀⠀┊DEF123⠀⠀⠀⠀┊↲⠀⠀⠀⠀⠀⠀⠀┊gh⠀⠀⠀⠀⠀⠀⠀┊9⠀⠀⠀⠀⠀⠀┊
-┊"1"2h", 34567890a⠀┊⠀⠀⠀⠀⠀⠀⠀⠀⠀┊⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀┊↲⠀⠀⠀⠀⠀⠀⠀┊⠀⠀⠀⠀⠀⠀⠀⠀⠀┊⠀⠀⠀⠀⠀⠀⠀┊
-┊⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀┊⠀⠀⠀⠀⠀⠀⠀⠀⠀┊⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀┊↲⠀⠀⠀⠀⠀⠀⠀┊⠀⠀⠀⠀⠀⠀⠀⠀⠀┊⠀⠀⠀⠀⠀⠀⠀┊
-│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│
-┊a⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀┊⠀⠀⠀⠀⠀⠀⠀⠀⠀┊b↲⠀⠀⠀⠀⠀⠀⠀⠀┊⠀⠀⠀⠀⠀⠀⠀⠀┊c⠀⠀⠀⠀⠀⠀⠀⠀┊⠀⠀⠀⠀⠀⠀⠀┊
-│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│
-│ ===⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│- next -⠀│ lines⠀⠀⠀⠀│ has⠀⠀⠀│tab⠀⠀⠀⠀⠀⠀│ ⠀⠀⠀⠀⠀│
-│⇥ l⇥ongtext01⠀⠀⠀⠀⠀│mi⇥⇥d2⠀⠀⠀│s⠀⠀⠀⠀⠀⠀⠀⠀⠀│tt⠀⠀⠀⠀⠀⠀│uuu⠀⠀⠀⠀⠀⠀│vvvv⠀⠀⠀│
-│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⇥⇥⇥⇥⇥⇥⇥⠀⠀⠀│⇥⇥⇥⇥⇥⇥⇥⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│
-│R1C1⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│R1C2⠀⠀⠀⠀⠀│R1C3⠀⠀⠀⠀⠀⠀│R1C4⠀⠀⠀⠀│R1C5⠀⠀⠀⠀⠀│R1C6⠀⠀⠀│
-│ ===⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│- next -⠀│ line⠀⠀⠀⠀⠀│ is⠀⠀⠀⠀│multibyte│ value │
-│aaあい⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│いろ2⠀⠀⠀⠀│ぼんさんが│へを⠀⠀⠀⠀│こいた⠀⠀⠀│.!...⠀│
-│g1⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│h22⠀⠀⠀⠀⠀⠀│i333⠀⠀⠀⠀⠀⠀│j4444⠀⠀⠀│k55555⠀⠀⠀│l6⠀⠀⠀⠀⠀│
-│ ===⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│- next -⠀│ lines⠀⠀⠀⠀│ has⠀⠀⠀│linefeed+│tab ⠀⠀│
-┊⇥⇥ ⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀┊↲⠀⠀⠀⠀⠀⠀⠀⠀┊n⇥ ⠀⠀⠀⠀⠀⠀⠀┊⇥⇥ o333⠀┊⠀⠀⠀⠀⠀⠀⠀⠀⠀┊⠀⠀⠀⠀⠀⠀⠀┊
-│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⇥⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│
-│pqrst⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│uv⠀⠀⠀⠀⠀⠀⠀│wx1⠀⠀⠀⠀⠀⠀⠀│yz22⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│345⠀⠀⠀⠀│
-│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│
-│a1b2c3⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│XYZ⠀⠀⠀⠀⠀⠀⠀│7777⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│k9⠀⠀⠀⠀⠀│
-│short⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│longer12⠀│x⠀⠀⠀⠀⠀⠀⠀⠀⠀│yz⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│end⠀⠀⠀⠀│
-│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│
-│row15a⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│row15b⠀⠀⠀│row15c⠀⠀⠀⠀│row15d⠀⠀│row15e⠀⠀⠀│row15f⠀│
-│1⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│22⠀⠀⠀⠀⠀⠀⠀│333⠀⠀⠀⠀⠀⠀⠀│4444⠀⠀⠀⠀│55555⠀⠀⠀⠀│666666⠀│
-│alpha⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│beta⠀⠀⠀⠀⠀│gamma⠀⠀⠀⠀⠀│delta⠀⠀⠀│epsilon⠀⠀│zeta⠀⠀⠀│
-│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│
-│mix1⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│mix3⠀⠀⠀⠀⠀⠀│444⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│six6⠀⠀⠀│
-│abc123⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│def456⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│ghi789⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│
-│z⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│y⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│x⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│
-│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│
-│t1⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│t2⠀⠀⠀⠀⠀⠀⠀│t3⠀⠀⠀⠀⠀⠀⠀⠀│t4⠀⠀⠀⠀⠀⠀│t5⠀⠀⠀⠀⠀⠀⠀│t6⠀⠀⠀⠀⠀│
-│r1c1⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│r1c2⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│r1c4⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│r1c6⠀⠀⠀│
-│data1⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│data22⠀⠀⠀│data333⠀⠀⠀│data4444│data55555│data6⠀⠀│
-│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│
-│A⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│B⠀⠀⠀⠀⠀⠀⠀⠀│C⠀⠀⠀⠀⠀⠀⠀⠀⠀│D⠀⠀⠀⠀⠀⠀⠀│E⠀⠀⠀⠀⠀⠀⠀⠀│F⠀⠀⠀⠀⠀⠀│
-│abc⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│123⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│XYZ⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│
-│one1⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│two22⠀⠀⠀⠀│three3⠀⠀⠀⠀│four44⠀⠀│five5⠀⠀⠀⠀│six66⠀⠀│
-│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│
-│r30a⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│r30b⠀⠀⠀⠀⠀│r30c⠀⠀⠀⠀⠀⠀│r30d⠀⠀⠀⠀│r30e⠀⠀⠀⠀⠀│r30f⠀⠀⠀│
-│longvalue1⠀⠀⠀⠀⠀⠀⠀⠀│mid⠀⠀⠀⠀⠀⠀│short⠀⠀⠀⠀⠀│s⠀⠀⠀⠀⠀⠀⠀│tt⠀⠀⠀⠀⠀⠀⠀│uuu⠀⠀⠀⠀│
-│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│
-│x⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│y⠀⠀⠀⠀⠀⠀⠀⠀│z⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│end⠀⠀⠀⠀│
-│abcde⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│fghij⠀⠀⠀⠀│klmno⠀⠀⠀⠀⠀│pqrst⠀⠀⠀│uvwxy⠀⠀⠀⠀│z⠀⠀⠀⠀⠀⠀│
-│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│
-│cell1⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│cell3⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│cell5⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│
-│111⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│2222⠀⠀⠀⠀⠀│33333⠀⠀⠀⠀⠀│444444⠀⠀│55⠀⠀⠀⠀⠀⠀⠀│6⠀⠀⠀⠀⠀⠀│
-│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│
-│row40a⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│row40b⠀⠀⠀│row40c⠀⠀⠀⠀│row40d⠀⠀│row40e⠀⠀⠀│row40f⠀│
-│a1⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│a2⠀⠀⠀⠀⠀⠀⠀│a3⠀⠀⠀⠀⠀⠀⠀⠀│a4⠀⠀⠀⠀⠀⠀│a5⠀⠀⠀⠀⠀⠀⠀│a6⠀⠀⠀⠀⠀│
-│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│
-│mixA⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│mixC⠀⠀⠀⠀⠀⠀│DDD⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│FFF⠀⠀⠀⠀│
-│123abc⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│456def⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│789ghi⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│000⠀⠀⠀⠀│
-│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│
-│r45a⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│r45b⠀⠀⠀⠀⠀│r45c⠀⠀⠀⠀⠀⠀│r45d⠀⠀⠀⠀│r45e⠀⠀⠀⠀⠀│r45f⠀⠀⠀│
-│alpha9⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│beta8⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│gamma7⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│
-│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│
-│A1B2C3⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│D4E5F6⠀⠀⠀│G7H8I9⠀⠀⠀⠀│J0⠀⠀⠀⠀⠀⠀│K1⠀⠀⠀⠀⠀⠀⠀│L2⠀⠀⠀⠀⠀│
-│short1⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│short3⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│short5⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│
-│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│
-│r50a⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│r50b⠀⠀⠀⠀⠀│r50c⠀⠀⠀⠀⠀⠀│r50d⠀⠀⠀⠀│r50e⠀⠀⠀⠀⠀│r50f⠀⠀⠀│
-│x1y2⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│z3⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│w4⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│v5⠀⠀⠀⠀⠀│
-│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│
-│longertext⠀⠀⠀⠀⠀⠀⠀⠀│mid⠀⠀⠀⠀⠀⠀│small⠀⠀⠀⠀⠀│s1⠀⠀⠀⠀⠀⠀│s22⠀⠀⠀⠀⠀⠀│s333⠀⠀⠀│
-│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│
-│r55a⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│r55b⠀⠀⠀⠀⠀│r55c⠀⠀⠀⠀⠀⠀│r55d⠀⠀⠀⠀│r55e⠀⠀⠀⠀⠀│r55f⠀⠀⠀│
-│abc⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│def⠀⠀⠀⠀⠀⠀│ghi⠀⠀⠀⠀⠀⠀⠀│jkl⠀⠀⠀⠀⠀│mno⠀⠀⠀⠀⠀⠀│pqr⠀⠀⠀⠀│
-│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│
-│1a⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│2b⠀⠀⠀⠀⠀⠀⠀│3c⠀⠀⠀⠀⠀⠀⠀⠀│4d⠀⠀⠀⠀⠀⠀│5e⠀⠀⠀⠀⠀⠀⠀│6f⠀⠀⠀⠀⠀│
-│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│
-│row60a⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│row60b⠀⠀⠀│row60c⠀⠀⠀⠀│row60d⠀⠀│row60e⠀⠀⠀│row60f⠀│
-│value1⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│value3⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│value5⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│
-│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│
-│aa⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│bb⠀⠀⠀⠀⠀⠀⠀│cc⠀⠀⠀⠀⠀⠀⠀⠀│dd⠀⠀⠀⠀⠀⠀│ee⠀⠀⠀⠀⠀⠀⠀│ff⠀⠀⠀⠀⠀│
-│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│
-│r65a⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│r65b⠀⠀⠀⠀⠀│r65c⠀⠀⠀⠀⠀⠀│r65d⠀⠀⠀⠀│r65e⠀⠀⠀⠀⠀│r65f⠀⠀⠀│
-│x⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│y⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│z⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│
-│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│
-│alpha01⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│beta02⠀⠀⠀│gamma03⠀⠀⠀│delta04⠀│eps05⠀⠀⠀⠀│z6⠀⠀⠀⠀⠀│
-│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│
-│row70a⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│row70b⠀⠀⠀│row70c⠀⠀⠀⠀│row70d⠀⠀│row70e⠀⠀⠀│row70f⠀│
-│1⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│3⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│5⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│
-│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│
-│abc1⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│def2⠀⠀⠀⠀⠀│ghi3⠀⠀⠀⠀⠀⠀│jkl4⠀⠀⠀⠀│mno5⠀⠀⠀⠀⠀│pqr6⠀⠀⠀│
-│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│
-│r75a⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│r75b⠀⠀⠀⠀⠀│r75c⠀⠀⠀⠀⠀⠀│r75d⠀⠀⠀⠀│r75e⠀⠀⠀⠀⠀│r75f⠀⠀⠀│
-│mix⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│mix2⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│mix3⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│
-│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│
-│a⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│b⠀⠀⠀⠀⠀⠀⠀⠀│c⠀⠀⠀⠀⠀⠀⠀⠀⠀│d⠀⠀⠀⠀⠀⠀⠀│e⠀⠀⠀⠀⠀⠀⠀⠀│f⠀⠀⠀⠀⠀⠀│
-│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│
-│row80a⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│row80b⠀⠀⠀│row80c⠀⠀⠀⠀│row80d⠀⠀│row80e⠀⠀⠀│row80f⠀│
-│123⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│234⠀⠀⠀⠀⠀⠀│345⠀⠀⠀⠀⠀⠀⠀│456⠀⠀⠀⠀⠀│567⠀⠀⠀⠀⠀⠀│678⠀⠀⠀⠀│
-│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│
-│Aaa⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│Bbb⠀⠀⠀⠀⠀⠀│Ccc⠀⠀⠀⠀⠀⠀⠀│Ddd⠀⠀⠀⠀⠀│Eee⠀⠀⠀⠀⠀⠀│Fff⠀⠀⠀⠀│
-│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│
-│r85a⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│r85b⠀⠀⠀⠀⠀│r85c⠀⠀⠀⠀⠀⠀│r85d⠀⠀⠀⠀│r85e⠀⠀⠀⠀⠀│r85f⠀⠀⠀│
-│x1⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│x3⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│x5⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│
-│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│
-│abcde12345⠀⠀⠀⠀⠀⠀⠀⠀│f1⠀⠀⠀⠀⠀⠀⠀│g2⠀⠀⠀⠀⠀⠀⠀⠀│h3⠀⠀⠀⠀⠀⠀│i4⠀⠀⠀⠀⠀⠀⠀│j5⠀⠀⠀⠀⠀│
-│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│
-│row90a⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│row90b⠀⠀⠀│row90c⠀⠀⠀⠀│row90d⠀⠀│row90e⠀⠀⠀│row90f⠀│
-│1a2b3c⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│4d5e6f⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│7g8h9i⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│
-│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│
-│short⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│mid⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│longer⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│
-│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│
-│r95a⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│r95b⠀⠀⠀⠀⠀│r95c⠀⠀⠀⠀⠀⠀│r95d⠀⠀⠀⠀│r95e⠀⠀⠀⠀⠀│r95f⠀⠀⠀│
-│a1b⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│c2d⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│e3f⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│
-│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│
-│end1⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│end2⠀⠀⠀⠀⠀│end3⠀⠀⠀⠀⠀⠀│end4⠀⠀⠀⠀│end5⠀⠀⠀⠀⠀│end6⠀⠀⠀│
-│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│
+│A1⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│B22⠀⠀⠀⠀⠀⠀│C333⠀⠀⠀⠀⠀⠀│D4444⠀⠀⠀│E55555⠀⠀⠀│F666666│
+│alpha1⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│b2⠀⠀⠀⠀⠀⠀⠀│c3⠀⠀⠀⠀⠀⠀⠀⠀│d4⠀⠀⠀⠀⠀⠀│e5⠀⠀⠀⠀⠀⠀⠀│f6⠀⠀⠀⠀⠀│
+│ ===⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│- next -⠀│ line⠀⠀⠀⠀⠀│ has⠀⠀⠀│ no⠀⠀⠀⠀⠀⠀│ value │
+│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│
+│x1⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│y22⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│z333⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│
+│===⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│ - next -│ line⠀⠀⠀⠀⠀│ has⠀⠀⠀│linefeed⠀│ ⠀⠀⠀⠀⠀│
+┊↲⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀┊abc⠀⠀⠀⠀⠀⠀┊DEF123⠀⠀⠀⠀┊↲⠀⠀⠀⠀⠀⠀⠀┊gh⠀⠀⠀⠀⠀⠀⠀┊9⠀⠀⠀⠀⠀⠀┊
+┊"1"2h", 34567890a┊⠀⠀⠀⠀⠀⠀⠀⠀⠀┊⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀┊↲⠀⠀⠀⠀⠀⠀⠀┊⠀⠀⠀⠀⠀⠀⠀⠀⠀┊⠀⠀⠀⠀⠀⠀⠀┊
+┊⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀┊⠀⠀⠀⠀⠀⠀⠀⠀⠀┊⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀┊↲⠀⠀⠀⠀⠀⠀⠀┊⠀⠀⠀⠀⠀⠀⠀⠀⠀┊⠀⠀⠀⠀⠀⠀⠀┊
+│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│
+┊a⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀┊⠀⠀⠀⠀⠀⠀⠀⠀⠀┊b↲⠀⠀⠀⠀⠀⠀⠀⠀┊⠀⠀⠀⠀⠀⠀⠀⠀┊c⠀⠀⠀⠀⠀⠀⠀⠀┊⠀⠀⠀⠀⠀⠀⠀┊
+│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│
+│ ===⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│- next -⠀│ lines⠀⠀⠀⠀│ has⠀⠀⠀│tab⠀⠀⠀⠀⠀⠀│ ⠀⠀⠀⠀⠀│
+│⇥ l⇥ongtext01⠀⠀⠀⠀│mi⇥⇥d2⠀⠀⠀│s⠀⠀⠀⠀⠀⠀⠀⠀⠀│tt⠀⠀⠀⠀⠀⠀│uuu⠀⠀⠀⠀⠀⠀│vvvv⠀⠀⠀│
+│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⇥⇥⇥⇥⇥⇥⇥⠀⠀⠀│⇥⇥⇥⇥⇥⇥⇥⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│
+│R1C1⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│R1C2⠀⠀⠀⠀⠀│R1C3⠀⠀⠀⠀⠀⠀│R1C4⠀⠀⠀⠀│R1C5⠀⠀⠀⠀⠀│R1C6⠀⠀⠀│
+│ ===⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│- next -⠀│ line⠀⠀⠀⠀⠀│ is⠀⠀⠀⠀│multibyte│ value │
+│aaあい⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│いろ2⠀⠀⠀⠀│ぼんさんが│へを⠀⠀⠀⠀│こいた⠀⠀⠀│.!...⠀│
+│g1⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│h22⠀⠀⠀⠀⠀⠀│i333⠀⠀⠀⠀⠀⠀│j4444⠀⠀⠀│k55555⠀⠀⠀│l6⠀⠀⠀⠀⠀│
+│ ===⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│- next -⠀│ lines⠀⠀⠀⠀│ has⠀⠀⠀│linefeed+│tab ⠀⠀│
+┊⇥⇥ ⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀┊↲⠀⠀⠀⠀⠀⠀⠀⠀┊n⇥ ⠀⠀⠀⠀⠀⠀⠀┊⇥⇥ o333⠀┊⠀⠀⠀⠀⠀⠀⠀⠀⠀┊⠀⠀⠀⠀⠀⠀⠀┊
+│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⇥⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│
+│pqrst⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│uv⠀⠀⠀⠀⠀⠀⠀│wx1⠀⠀⠀⠀⠀⠀⠀│yz22⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│345⠀⠀⠀⠀│
+│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│
+│a1b2c3⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│XYZ⠀⠀⠀⠀⠀⠀⠀│7777⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│k9⠀⠀⠀⠀⠀│
+│short⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│longer12⠀│x⠀⠀⠀⠀⠀⠀⠀⠀⠀│yz⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│end⠀⠀⠀⠀│
+│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│
+│row15a⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│row15b⠀⠀⠀│row15c⠀⠀⠀⠀│row15d⠀⠀│row15e⠀⠀⠀│row15f⠀│
+│1⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│22⠀⠀⠀⠀⠀⠀⠀│333⠀⠀⠀⠀⠀⠀⠀│4444⠀⠀⠀⠀│55555⠀⠀⠀⠀│666666⠀│
+│alpha⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│beta⠀⠀⠀⠀⠀│gamma⠀⠀⠀⠀⠀│delta⠀⠀⠀│epsilon⠀⠀│zeta⠀⠀⠀│
+│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│
+│mix1⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│mix3⠀⠀⠀⠀⠀⠀│444⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│six6⠀⠀⠀│
+│abc123⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│def456⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│ghi789⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│
+│z⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│y⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│x⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│
+│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│
+│t1⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│t2⠀⠀⠀⠀⠀⠀⠀│t3⠀⠀⠀⠀⠀⠀⠀⠀│t4⠀⠀⠀⠀⠀⠀│t5⠀⠀⠀⠀⠀⠀⠀│t6⠀⠀⠀⠀⠀│
+│r1c1⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│r1c2⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│r1c4⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│r1c6⠀⠀⠀│
+│data1⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│data22⠀⠀⠀│data333⠀⠀⠀│data4444│data55555│data6⠀⠀│
+│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│
+│A⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│B⠀⠀⠀⠀⠀⠀⠀⠀│C⠀⠀⠀⠀⠀⠀⠀⠀⠀│D⠀⠀⠀⠀⠀⠀⠀│E⠀⠀⠀⠀⠀⠀⠀⠀│F⠀⠀⠀⠀⠀⠀│
+│abc⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│123⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│XYZ⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│
+│one1⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│two22⠀⠀⠀⠀│three3⠀⠀⠀⠀│four44⠀⠀│five5⠀⠀⠀⠀│six66⠀⠀│
+│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│
+│r30a⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│r30b⠀⠀⠀⠀⠀│r30c⠀⠀⠀⠀⠀⠀│r30d⠀⠀⠀⠀│r30e⠀⠀⠀⠀⠀│r30f⠀⠀⠀│
+│longvalue1⠀⠀⠀⠀⠀⠀⠀│mid⠀⠀⠀⠀⠀⠀│short⠀⠀⠀⠀⠀│s⠀⠀⠀⠀⠀⠀⠀│tt⠀⠀⠀⠀⠀⠀⠀│uuu⠀⠀⠀⠀│
+│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│
+│x⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│y⠀⠀⠀⠀⠀⠀⠀⠀│z⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│end⠀⠀⠀⠀│
+│abcde⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│fghij⠀⠀⠀⠀│klmno⠀⠀⠀⠀⠀│pqrst⠀⠀⠀│uvwxy⠀⠀⠀⠀│z⠀⠀⠀⠀⠀⠀│
+│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│
+│cell1⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│cell3⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│cell5⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│
+│111⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│2222⠀⠀⠀⠀⠀│33333⠀⠀⠀⠀⠀│444444⠀⠀│55⠀⠀⠀⠀⠀⠀⠀│6⠀⠀⠀⠀⠀⠀│
+│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│
+│row40a⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│row40b⠀⠀⠀│row40c⠀⠀⠀⠀│row40d⠀⠀│row40e⠀⠀⠀│row40f⠀│
+│a1⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│a2⠀⠀⠀⠀⠀⠀⠀│a3⠀⠀⠀⠀⠀⠀⠀⠀│a4⠀⠀⠀⠀⠀⠀│a5⠀⠀⠀⠀⠀⠀⠀│a6⠀⠀⠀⠀⠀│
+│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│
+│mixA⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│mixC⠀⠀⠀⠀⠀⠀│DDD⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│FFF⠀⠀⠀⠀│
+│123abc⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│456def⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│789ghi⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│000⠀⠀⠀⠀│
+│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│
+│r45a⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│r45b⠀⠀⠀⠀⠀│r45c⠀⠀⠀⠀⠀⠀│r45d⠀⠀⠀⠀│r45e⠀⠀⠀⠀⠀│r45f⠀⠀⠀│
+│alpha9⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│beta8⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│gamma7⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│
+│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│
+│A1B2C3⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│D4E5F6⠀⠀⠀│G7H8I9⠀⠀⠀⠀│J0⠀⠀⠀⠀⠀⠀│K1⠀⠀⠀⠀⠀⠀⠀│L2⠀⠀⠀⠀⠀│
+│short1⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│short3⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│short5⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│
+│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│
+│r50a⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│r50b⠀⠀⠀⠀⠀│r50c⠀⠀⠀⠀⠀⠀│r50d⠀⠀⠀⠀│r50e⠀⠀⠀⠀⠀│r50f⠀⠀⠀│
+│x1y2⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│z3⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│w4⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│v5⠀⠀⠀⠀⠀│
+│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│
+│longertext⠀⠀⠀⠀⠀⠀⠀│mid⠀⠀⠀⠀⠀⠀│small⠀⠀⠀⠀⠀│s1⠀⠀⠀⠀⠀⠀│s22⠀⠀⠀⠀⠀⠀│s333⠀⠀⠀│
+│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│
+│r55a⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│r55b⠀⠀⠀⠀⠀│r55c⠀⠀⠀⠀⠀⠀│r55d⠀⠀⠀⠀│r55e⠀⠀⠀⠀⠀│r55f⠀⠀⠀│
+│abc⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│def⠀⠀⠀⠀⠀⠀│ghi⠀⠀⠀⠀⠀⠀⠀│jkl⠀⠀⠀⠀⠀│mno⠀⠀⠀⠀⠀⠀│pqr⠀⠀⠀⠀│
+│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│
+│1a⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│2b⠀⠀⠀⠀⠀⠀⠀│3c⠀⠀⠀⠀⠀⠀⠀⠀│4d⠀⠀⠀⠀⠀⠀│5e⠀⠀⠀⠀⠀⠀⠀│6f⠀⠀⠀⠀⠀│
+│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│
+│row60a⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│row60b⠀⠀⠀│row60c⠀⠀⠀⠀│row60d⠀⠀│row60e⠀⠀⠀│row60f⠀│
+│value1⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│value3⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│value5⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│
+│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│
+│aa⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│bb⠀⠀⠀⠀⠀⠀⠀│cc⠀⠀⠀⠀⠀⠀⠀⠀│dd⠀⠀⠀⠀⠀⠀│ee⠀⠀⠀⠀⠀⠀⠀│ff⠀⠀⠀⠀⠀│
+│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│
+│r65a⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│r65b⠀⠀⠀⠀⠀│r65c⠀⠀⠀⠀⠀⠀│r65d⠀⠀⠀⠀│r65e⠀⠀⠀⠀⠀│r65f⠀⠀⠀│
+│x⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│y⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│z⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│
+│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│
+│alpha01⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│beta02⠀⠀⠀│gamma03⠀⠀⠀│delta04⠀│eps05⠀⠀⠀⠀│z6⠀⠀⠀⠀⠀│
+│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│
+│row70a⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│row70b⠀⠀⠀│row70c⠀⠀⠀⠀│row70d⠀⠀│row70e⠀⠀⠀│row70f⠀│
+│1⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│3⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│5⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│
+│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│
+│abc1⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│def2⠀⠀⠀⠀⠀│ghi3⠀⠀⠀⠀⠀⠀│jkl4⠀⠀⠀⠀│mno5⠀⠀⠀⠀⠀│pqr6⠀⠀⠀│
+│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│
+│r75a⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│r75b⠀⠀⠀⠀⠀│r75c⠀⠀⠀⠀⠀⠀│r75d⠀⠀⠀⠀│r75e⠀⠀⠀⠀⠀│r75f⠀⠀⠀│
+│mix⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│mix2⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│mix3⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│
+│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│
+│a⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│b⠀⠀⠀⠀⠀⠀⠀⠀│c⠀⠀⠀⠀⠀⠀⠀⠀⠀│d⠀⠀⠀⠀⠀⠀⠀│e⠀⠀⠀⠀⠀⠀⠀⠀│f⠀⠀⠀⠀⠀⠀│
+│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│
+│row80a⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│row80b⠀⠀⠀│row80c⠀⠀⠀⠀│row80d⠀⠀│row80e⠀⠀⠀│row80f⠀│
+│123⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│234⠀⠀⠀⠀⠀⠀│345⠀⠀⠀⠀⠀⠀⠀│456⠀⠀⠀⠀⠀│567⠀⠀⠀⠀⠀⠀│678⠀⠀⠀⠀│
+│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│
+│Aaa⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│Bbb⠀⠀⠀⠀⠀⠀│Ccc⠀⠀⠀⠀⠀⠀⠀│Ddd⠀⠀⠀⠀⠀│Eee⠀⠀⠀⠀⠀⠀│Fff⠀⠀⠀⠀│
+│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│
+│r85a⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│r85b⠀⠀⠀⠀⠀│r85c⠀⠀⠀⠀⠀⠀│r85d⠀⠀⠀⠀│r85e⠀⠀⠀⠀⠀│r85f⠀⠀⠀│
+│x1⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│x3⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│x5⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│
+│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│
+│abcde12345⠀⠀⠀⠀⠀⠀⠀│f1⠀⠀⠀⠀⠀⠀⠀│g2⠀⠀⠀⠀⠀⠀⠀⠀│h3⠀⠀⠀⠀⠀⠀│i4⠀⠀⠀⠀⠀⠀⠀│j5⠀⠀⠀⠀⠀│
+│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│
+│row90a⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│row90b⠀⠀⠀│row90c⠀⠀⠀⠀│row90d⠀⠀│row90e⠀⠀⠀│row90f⠀│
+│1a2b3c⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│4d5e6f⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│7g8h9i⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│
+│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│
+│short⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│mid⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│longer⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│
+│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│
+│r95a⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│r95b⠀⠀⠀⠀⠀│r95c⠀⠀⠀⠀⠀⠀│r95d⠀⠀⠀⠀│r95e⠀⠀⠀⠀⠀│r95f⠀⠀⠀│
+│a1b⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│c2d⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│e3f⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│
+│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│
+│end1⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│end2⠀⠀⠀⠀⠀│end3⠀⠀⠀⠀⠀⠀│end4⠀⠀⠀⠀│end5⠀⠀⠀⠀⠀│end6⠀⠀⠀│
+│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│
=== FILE ===
A1,B22,C333,D4444,E55555,F666666
diff --git a/tests/cases/save/as-csv2tsv/out-expected.txt b/tests/cases/save/as-csv2tsv/out-expected.txt
index 11a0a7b..97f59ce 100644
--- a/tests/cases/save/as-csv2tsv/out-expected.txt
+++ b/tests/cases/save/as-csv2tsv/out-expected.txt
@@ -2,13 +2,13 @@
"gen.tsv" [New] 8L, 36B written
=== DISPLAY ===
-│1a⠀│2 a│ 3a⠀│
-┊1↲⠀┊2b⠀┊3↲⠀⠀┊
-│⠀⠀⠀│⠀⠀⠀│b⇥⠀⠀│
-┊↲⠀⠀┊⠀⠀⠀┊⇥c⠀⠀┊
-┊↲⠀⠀┊⠀⠀⠀┊⠀⠀⠀⠀┊
-┊↲⠀⠀┊⠀⠀⠀┊⠀⠀⠀⠀┊
-│⠀⠀⠀│⠀⠀⠀│⠀⠀⠀⠀│
+│1a│2 a│ 3a│
+┊1↲┊2b⠀┊3↲⠀┊
+│⠀⠀│⠀⠀⠀│b⇥⠀│
+┊↲⠀┊⠀⠀⠀┊⇥c⠀┊
+┊↲⠀┊⠀⠀⠀┊⠀⠀⠀┊
+┊↲⠀┊⠀⠀⠀┊⠀⠀⠀┊
+│⠀⠀│⠀⠀⠀│⠀⠀⠀│
=== FILE ===
1a,2 a, 3a
diff --git a/tests/cases/save/as-csv2xxx/out-expected.txt b/tests/cases/save/as-csv2xxx/out-expected.txt
index d756bca..34b6bd5 100644
--- a/tests/cases/save/as-csv2xxx/out-expected.txt
+++ b/tests/cases/save/as-csv2xxx/out-expected.txt
@@ -2,120 +2,120 @@
"gen.xxx" [New] 115L, 2239B written
=== DISPLAY ===
-│A1⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│B22⠀⠀⠀⠀⠀⠀│C333⠀⠀⠀⠀⠀⠀│D4444⠀⠀⠀│E55555⠀⠀⠀│F666666│
-│alpha1⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│b2⠀⠀⠀⠀⠀⠀⠀│c3⠀⠀⠀⠀⠀⠀⠀⠀│d4⠀⠀⠀⠀⠀⠀│e5⠀⠀⠀⠀⠀⠀⠀│f6⠀⠀⠀⠀⠀│
-│ ===⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│- next -⠀│ line⠀⠀⠀⠀⠀│ has⠀⠀⠀│ no⠀⠀⠀⠀⠀⠀│ value │
-│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│
-│x1⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│y22⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│z333⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│
-│===⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│ - next -│ line⠀⠀⠀⠀⠀│ has⠀⠀⠀│linefeed⠀│ ⠀⠀⠀⠀⠀│
-┊↲⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀┊abc⠀⠀⠀⠀⠀⠀┊DEF123⠀⠀⠀⠀┊↲⠀⠀⠀⠀⠀⠀⠀┊gh⠀⠀⠀⠀⠀⠀⠀┊9⠀⠀⠀⠀⠀⠀┊
-┊"1"2h", 34567890a⠀┊⠀⠀⠀⠀⠀⠀⠀⠀⠀┊⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀┊↲⠀⠀⠀⠀⠀⠀⠀┊⠀⠀⠀⠀⠀⠀⠀⠀⠀┊⠀⠀⠀⠀⠀⠀⠀┊
-┊⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀┊⠀⠀⠀⠀⠀⠀⠀⠀⠀┊⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀┊↲⠀⠀⠀⠀⠀⠀⠀┊⠀⠀⠀⠀⠀⠀⠀⠀⠀┊⠀⠀⠀⠀⠀⠀⠀┊
-│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│
-┊a⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀┊⠀⠀⠀⠀⠀⠀⠀⠀⠀┊b↲⠀⠀⠀⠀⠀⠀⠀⠀┊⠀⠀⠀⠀⠀⠀⠀⠀┊c⠀⠀⠀⠀⠀⠀⠀⠀┊⠀⠀⠀⠀⠀⠀⠀┊
-│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│
-│ ===⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│- next -⠀│ lines⠀⠀⠀⠀│ has⠀⠀⠀│tab⠀⠀⠀⠀⠀⠀│ ⠀⠀⠀⠀⠀│
-│⇥ l⇥ongtext01⠀⠀⠀⠀⠀│mi⇥⇥d2⠀⠀⠀│s⠀⠀⠀⠀⠀⠀⠀⠀⠀│tt⠀⠀⠀⠀⠀⠀│uuu⠀⠀⠀⠀⠀⠀│vvvv⠀⠀⠀│
-│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⇥⇥⇥⇥⇥⇥⇥⠀⠀⠀│⇥⇥⇥⇥⇥⇥⇥⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│
-│R1C1⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│R1C2⠀⠀⠀⠀⠀│R1C3⠀⠀⠀⠀⠀⠀│R1C4⠀⠀⠀⠀│R1C5⠀⠀⠀⠀⠀│R1C6⠀⠀⠀│
-│ ===⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│- next -⠀│ line⠀⠀⠀⠀⠀│ is⠀⠀⠀⠀│multibyte│ value │
-│aaあい⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│いろ2⠀⠀⠀⠀│ぼんさんが│へを⠀⠀⠀⠀│こいた⠀⠀⠀│.!...⠀│
-│g1⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│h22⠀⠀⠀⠀⠀⠀│i333⠀⠀⠀⠀⠀⠀│j4444⠀⠀⠀│k55555⠀⠀⠀│l6⠀⠀⠀⠀⠀│
-│ ===⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│- next -⠀│ lines⠀⠀⠀⠀│ has⠀⠀⠀│linefeed+│tab ⠀⠀│
-┊⇥⇥ ⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀┊↲⠀⠀⠀⠀⠀⠀⠀⠀┊n⇥ ⠀⠀⠀⠀⠀⠀⠀┊⇥⇥ o333⠀┊⠀⠀⠀⠀⠀⠀⠀⠀⠀┊⠀⠀⠀⠀⠀⠀⠀┊
-│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⇥⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│
-│pqrst⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│uv⠀⠀⠀⠀⠀⠀⠀│wx1⠀⠀⠀⠀⠀⠀⠀│yz22⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│345⠀⠀⠀⠀│
-│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│
-│a1b2c3⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│XYZ⠀⠀⠀⠀⠀⠀⠀│7777⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│k9⠀⠀⠀⠀⠀│
-│short⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│longer12⠀│x⠀⠀⠀⠀⠀⠀⠀⠀⠀│yz⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│end⠀⠀⠀⠀│
-│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│
-│row15a⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│row15b⠀⠀⠀│row15c⠀⠀⠀⠀│row15d⠀⠀│row15e⠀⠀⠀│row15f⠀│
-│1⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│22⠀⠀⠀⠀⠀⠀⠀│333⠀⠀⠀⠀⠀⠀⠀│4444⠀⠀⠀⠀│55555⠀⠀⠀⠀│666666⠀│
-│alpha⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│beta⠀⠀⠀⠀⠀│gamma⠀⠀⠀⠀⠀│delta⠀⠀⠀│epsilon⠀⠀│zeta⠀⠀⠀│
-│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│
-│mix1⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│mix3⠀⠀⠀⠀⠀⠀│444⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│six6⠀⠀⠀│
-│abc123⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│def456⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│ghi789⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│
-│z⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│y⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│x⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│
-│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│
-│t1⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│t2⠀⠀⠀⠀⠀⠀⠀│t3⠀⠀⠀⠀⠀⠀⠀⠀│t4⠀⠀⠀⠀⠀⠀│t5⠀⠀⠀⠀⠀⠀⠀│t6⠀⠀⠀⠀⠀│
-│r1c1⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│r1c2⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│r1c4⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│r1c6⠀⠀⠀│
-│data1⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│data22⠀⠀⠀│data333⠀⠀⠀│data4444│data55555│data6⠀⠀│
-│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│
-│A⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│B⠀⠀⠀⠀⠀⠀⠀⠀│C⠀⠀⠀⠀⠀⠀⠀⠀⠀│D⠀⠀⠀⠀⠀⠀⠀│E⠀⠀⠀⠀⠀⠀⠀⠀│F⠀⠀⠀⠀⠀⠀│
-│abc⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│123⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│XYZ⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│
-│one1⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│two22⠀⠀⠀⠀│three3⠀⠀⠀⠀│four44⠀⠀│five5⠀⠀⠀⠀│six66⠀⠀│
-│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│
-│r30a⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│r30b⠀⠀⠀⠀⠀│r30c⠀⠀⠀⠀⠀⠀│r30d⠀⠀⠀⠀│r30e⠀⠀⠀⠀⠀│r30f⠀⠀⠀│
-│longvalue1⠀⠀⠀⠀⠀⠀⠀⠀│mid⠀⠀⠀⠀⠀⠀│short⠀⠀⠀⠀⠀│s⠀⠀⠀⠀⠀⠀⠀│tt⠀⠀⠀⠀⠀⠀⠀│uuu⠀⠀⠀⠀│
-│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│
-│x⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│y⠀⠀⠀⠀⠀⠀⠀⠀│z⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│end⠀⠀⠀⠀│
-│abcde⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│fghij⠀⠀⠀⠀│klmno⠀⠀⠀⠀⠀│pqrst⠀⠀⠀│uvwxy⠀⠀⠀⠀│z⠀⠀⠀⠀⠀⠀│
-│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│
-│cell1⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│cell3⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│cell5⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│
-│111⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│2222⠀⠀⠀⠀⠀│33333⠀⠀⠀⠀⠀│444444⠀⠀│55⠀⠀⠀⠀⠀⠀⠀│6⠀⠀⠀⠀⠀⠀│
-│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│
-│row40a⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│row40b⠀⠀⠀│row40c⠀⠀⠀⠀│row40d⠀⠀│row40e⠀⠀⠀│row40f⠀│
-│a1⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│a2⠀⠀⠀⠀⠀⠀⠀│a3⠀⠀⠀⠀⠀⠀⠀⠀│a4⠀⠀⠀⠀⠀⠀│a5⠀⠀⠀⠀⠀⠀⠀│a6⠀⠀⠀⠀⠀│
-│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│
-│mixA⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│mixC⠀⠀⠀⠀⠀⠀│DDD⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│FFF⠀⠀⠀⠀│
-│123abc⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│456def⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│789ghi⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│000⠀⠀⠀⠀│
-│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│
-│r45a⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│r45b⠀⠀⠀⠀⠀│r45c⠀⠀⠀⠀⠀⠀│r45d⠀⠀⠀⠀│r45e⠀⠀⠀⠀⠀│r45f⠀⠀⠀│
-│alpha9⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│beta8⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│gamma7⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│
-│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│
-│A1B2C3⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│D4E5F6⠀⠀⠀│G7H8I9⠀⠀⠀⠀│J0⠀⠀⠀⠀⠀⠀│K1⠀⠀⠀⠀⠀⠀⠀│L2⠀⠀⠀⠀⠀│
-│short1⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│short3⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│short5⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│
-│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│
-│r50a⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│r50b⠀⠀⠀⠀⠀│r50c⠀⠀⠀⠀⠀⠀│r50d⠀⠀⠀⠀│r50e⠀⠀⠀⠀⠀│r50f⠀⠀⠀│
-│x1y2⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│z3⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│w4⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│v5⠀⠀⠀⠀⠀│
-│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│
-│longertext⠀⠀⠀⠀⠀⠀⠀⠀│mid⠀⠀⠀⠀⠀⠀│small⠀⠀⠀⠀⠀│s1⠀⠀⠀⠀⠀⠀│s22⠀⠀⠀⠀⠀⠀│s333⠀⠀⠀│
-│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│
-│r55a⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│r55b⠀⠀⠀⠀⠀│r55c⠀⠀⠀⠀⠀⠀│r55d⠀⠀⠀⠀│r55e⠀⠀⠀⠀⠀│r55f⠀⠀⠀│
-│abc⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│def⠀⠀⠀⠀⠀⠀│ghi⠀⠀⠀⠀⠀⠀⠀│jkl⠀⠀⠀⠀⠀│mno⠀⠀⠀⠀⠀⠀│pqr⠀⠀⠀⠀│
-│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│
-│1a⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│2b⠀⠀⠀⠀⠀⠀⠀│3c⠀⠀⠀⠀⠀⠀⠀⠀│4d⠀⠀⠀⠀⠀⠀│5e⠀⠀⠀⠀⠀⠀⠀│6f⠀⠀⠀⠀⠀│
-│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│
-│row60a⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│row60b⠀⠀⠀│row60c⠀⠀⠀⠀│row60d⠀⠀│row60e⠀⠀⠀│row60f⠀│
-│value1⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│value3⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│value5⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│
-│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│
-│aa⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│bb⠀⠀⠀⠀⠀⠀⠀│cc⠀⠀⠀⠀⠀⠀⠀⠀│dd⠀⠀⠀⠀⠀⠀│ee⠀⠀⠀⠀⠀⠀⠀│ff⠀⠀⠀⠀⠀│
-│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│
-│r65a⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│r65b⠀⠀⠀⠀⠀│r65c⠀⠀⠀⠀⠀⠀│r65d⠀⠀⠀⠀│r65e⠀⠀⠀⠀⠀│r65f⠀⠀⠀│
-│x⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│y⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│z⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│
-│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│
-│alpha01⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│beta02⠀⠀⠀│gamma03⠀⠀⠀│delta04⠀│eps05⠀⠀⠀⠀│z6⠀⠀⠀⠀⠀│
-│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│
-│row70a⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│row70b⠀⠀⠀│row70c⠀⠀⠀⠀│row70d⠀⠀│row70e⠀⠀⠀│row70f⠀│
-│1⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│3⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│5⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│
-│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│
-│abc1⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│def2⠀⠀⠀⠀⠀│ghi3⠀⠀⠀⠀⠀⠀│jkl4⠀⠀⠀⠀│mno5⠀⠀⠀⠀⠀│pqr6⠀⠀⠀│
-│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│
-│r75a⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│r75b⠀⠀⠀⠀⠀│r75c⠀⠀⠀⠀⠀⠀│r75d⠀⠀⠀⠀│r75e⠀⠀⠀⠀⠀│r75f⠀⠀⠀│
-│mix⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│mix2⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│mix3⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│
-│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│
-│a⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│b⠀⠀⠀⠀⠀⠀⠀⠀│c⠀⠀⠀⠀⠀⠀⠀⠀⠀│d⠀⠀⠀⠀⠀⠀⠀│e⠀⠀⠀⠀⠀⠀⠀⠀│f⠀⠀⠀⠀⠀⠀│
-│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│
-│row80a⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│row80b⠀⠀⠀│row80c⠀⠀⠀⠀│row80d⠀⠀│row80e⠀⠀⠀│row80f⠀│
-│123⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│234⠀⠀⠀⠀⠀⠀│345⠀⠀⠀⠀⠀⠀⠀│456⠀⠀⠀⠀⠀│567⠀⠀⠀⠀⠀⠀│678⠀⠀⠀⠀│
-│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│
-│Aaa⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│Bbb⠀⠀⠀⠀⠀⠀│Ccc⠀⠀⠀⠀⠀⠀⠀│Ddd⠀⠀⠀⠀⠀│Eee⠀⠀⠀⠀⠀⠀│Fff⠀⠀⠀⠀│
-│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│
-│r85a⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│r85b⠀⠀⠀⠀⠀│r85c⠀⠀⠀⠀⠀⠀│r85d⠀⠀⠀⠀│r85e⠀⠀⠀⠀⠀│r85f⠀⠀⠀│
-│x1⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│x3⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│x5⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│
-│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│
-│abcde12345⠀⠀⠀⠀⠀⠀⠀⠀│f1⠀⠀⠀⠀⠀⠀⠀│g2⠀⠀⠀⠀⠀⠀⠀⠀│h3⠀⠀⠀⠀⠀⠀│i4⠀⠀⠀⠀⠀⠀⠀│j5⠀⠀⠀⠀⠀│
-│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│
-│row90a⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│row90b⠀⠀⠀│row90c⠀⠀⠀⠀│row90d⠀⠀│row90e⠀⠀⠀│row90f⠀│
-│1a2b3c⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│4d5e6f⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│7g8h9i⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│
-│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│
-│short⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│mid⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│longer⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│
-│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│
-│r95a⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│r95b⠀⠀⠀⠀⠀│r95c⠀⠀⠀⠀⠀⠀│r95d⠀⠀⠀⠀│r95e⠀⠀⠀⠀⠀│r95f⠀⠀⠀│
-│a1b⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│c2d⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│e3f⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│
-│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│
-│end1⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│end2⠀⠀⠀⠀⠀│end3⠀⠀⠀⠀⠀⠀│end4⠀⠀⠀⠀│end5⠀⠀⠀⠀⠀│end6⠀⠀⠀│
-│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│
+│A1⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│B22⠀⠀⠀⠀⠀⠀│C333⠀⠀⠀⠀⠀⠀│D4444⠀⠀⠀│E55555⠀⠀⠀│F666666│
+│alpha1⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│b2⠀⠀⠀⠀⠀⠀⠀│c3⠀⠀⠀⠀⠀⠀⠀⠀│d4⠀⠀⠀⠀⠀⠀│e5⠀⠀⠀⠀⠀⠀⠀│f6⠀⠀⠀⠀⠀│
+│ ===⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│- next -⠀│ line⠀⠀⠀⠀⠀│ has⠀⠀⠀│ no⠀⠀⠀⠀⠀⠀│ value │
+│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│
+│x1⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│y22⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│z333⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│
+│===⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│ - next -│ line⠀⠀⠀⠀⠀│ has⠀⠀⠀│linefeed⠀│ ⠀⠀⠀⠀⠀│
+┊↲⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀┊abc⠀⠀⠀⠀⠀⠀┊DEF123⠀⠀⠀⠀┊↲⠀⠀⠀⠀⠀⠀⠀┊gh⠀⠀⠀⠀⠀⠀⠀┊9⠀⠀⠀⠀⠀⠀┊
+┊"1"2h", 34567890a┊⠀⠀⠀⠀⠀⠀⠀⠀⠀┊⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀┊↲⠀⠀⠀⠀⠀⠀⠀┊⠀⠀⠀⠀⠀⠀⠀⠀⠀┊⠀⠀⠀⠀⠀⠀⠀┊
+┊⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀┊⠀⠀⠀⠀⠀⠀⠀⠀⠀┊⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀┊↲⠀⠀⠀⠀⠀⠀⠀┊⠀⠀⠀⠀⠀⠀⠀⠀⠀┊⠀⠀⠀⠀⠀⠀⠀┊
+│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│
+┊a⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀┊⠀⠀⠀⠀⠀⠀⠀⠀⠀┊b↲⠀⠀⠀⠀⠀⠀⠀⠀┊⠀⠀⠀⠀⠀⠀⠀⠀┊c⠀⠀⠀⠀⠀⠀⠀⠀┊⠀⠀⠀⠀⠀⠀⠀┊
+│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│
+│ ===⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│- next -⠀│ lines⠀⠀⠀⠀│ has⠀⠀⠀│tab⠀⠀⠀⠀⠀⠀│ ⠀⠀⠀⠀⠀│
+│⇥ l⇥ongtext01⠀⠀⠀⠀│mi⇥⇥d2⠀⠀⠀│s⠀⠀⠀⠀⠀⠀⠀⠀⠀│tt⠀⠀⠀⠀⠀⠀│uuu⠀⠀⠀⠀⠀⠀│vvvv⠀⠀⠀│
+│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⇥⇥⇥⇥⇥⇥⇥⠀⠀⠀│⇥⇥⇥⇥⇥⇥⇥⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│
+│R1C1⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│R1C2⠀⠀⠀⠀⠀│R1C3⠀⠀⠀⠀⠀⠀│R1C4⠀⠀⠀⠀│R1C5⠀⠀⠀⠀⠀│R1C6⠀⠀⠀│
+│ ===⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│- next -⠀│ line⠀⠀⠀⠀⠀│ is⠀⠀⠀⠀│multibyte│ value │
+│aaあい⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│いろ2⠀⠀⠀⠀│ぼんさんが│へを⠀⠀⠀⠀│こいた⠀⠀⠀│.!...⠀│
+│g1⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│h22⠀⠀⠀⠀⠀⠀│i333⠀⠀⠀⠀⠀⠀│j4444⠀⠀⠀│k55555⠀⠀⠀│l6⠀⠀⠀⠀⠀│
+│ ===⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│- next -⠀│ lines⠀⠀⠀⠀│ has⠀⠀⠀│linefeed+│tab ⠀⠀│
+┊⇥⇥ ⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀┊↲⠀⠀⠀⠀⠀⠀⠀⠀┊n⇥ ⠀⠀⠀⠀⠀⠀⠀┊⇥⇥ o333⠀┊⠀⠀⠀⠀⠀⠀⠀⠀⠀┊⠀⠀⠀⠀⠀⠀⠀┊
+│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⇥⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│
+│pqrst⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│uv⠀⠀⠀⠀⠀⠀⠀│wx1⠀⠀⠀⠀⠀⠀⠀│yz22⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│345⠀⠀⠀⠀│
+│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│
+│a1b2c3⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│XYZ⠀⠀⠀⠀⠀⠀⠀│7777⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│k9⠀⠀⠀⠀⠀│
+│short⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│longer12⠀│x⠀⠀⠀⠀⠀⠀⠀⠀⠀│yz⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│end⠀⠀⠀⠀│
+│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│
+│row15a⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│row15b⠀⠀⠀│row15c⠀⠀⠀⠀│row15d⠀⠀│row15e⠀⠀⠀│row15f⠀│
+│1⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│22⠀⠀⠀⠀⠀⠀⠀│333⠀⠀⠀⠀⠀⠀⠀│4444⠀⠀⠀⠀│55555⠀⠀⠀⠀│666666⠀│
+│alpha⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│beta⠀⠀⠀⠀⠀│gamma⠀⠀⠀⠀⠀│delta⠀⠀⠀│epsilon⠀⠀│zeta⠀⠀⠀│
+│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│
+│mix1⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│mix3⠀⠀⠀⠀⠀⠀│444⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│six6⠀⠀⠀│
+│abc123⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│def456⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│ghi789⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│
+│z⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│y⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│x⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│
+│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│
+│t1⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│t2⠀⠀⠀⠀⠀⠀⠀│t3⠀⠀⠀⠀⠀⠀⠀⠀│t4⠀⠀⠀⠀⠀⠀│t5⠀⠀⠀⠀⠀⠀⠀│t6⠀⠀⠀⠀⠀│
+│r1c1⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│r1c2⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│r1c4⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│r1c6⠀⠀⠀│
+│data1⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│data22⠀⠀⠀│data333⠀⠀⠀│data4444│data55555│data6⠀⠀│
+│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│
+│A⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│B⠀⠀⠀⠀⠀⠀⠀⠀│C⠀⠀⠀⠀⠀⠀⠀⠀⠀│D⠀⠀⠀⠀⠀⠀⠀│E⠀⠀⠀⠀⠀⠀⠀⠀│F⠀⠀⠀⠀⠀⠀│
+│abc⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│123⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│XYZ⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│
+│one1⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│two22⠀⠀⠀⠀│three3⠀⠀⠀⠀│four44⠀⠀│five5⠀⠀⠀⠀│six66⠀⠀│
+│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│
+│r30a⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│r30b⠀⠀⠀⠀⠀│r30c⠀⠀⠀⠀⠀⠀│r30d⠀⠀⠀⠀│r30e⠀⠀⠀⠀⠀│r30f⠀⠀⠀│
+│longvalue1⠀⠀⠀⠀⠀⠀⠀│mid⠀⠀⠀⠀⠀⠀│short⠀⠀⠀⠀⠀│s⠀⠀⠀⠀⠀⠀⠀│tt⠀⠀⠀⠀⠀⠀⠀│uuu⠀⠀⠀⠀│
+│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│
+│x⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│y⠀⠀⠀⠀⠀⠀⠀⠀│z⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│end⠀⠀⠀⠀│
+│abcde⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│fghij⠀⠀⠀⠀│klmno⠀⠀⠀⠀⠀│pqrst⠀⠀⠀│uvwxy⠀⠀⠀⠀│z⠀⠀⠀⠀⠀⠀│
+│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│
+│cell1⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│cell3⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│cell5⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│
+│111⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│2222⠀⠀⠀⠀⠀│33333⠀⠀⠀⠀⠀│444444⠀⠀│55⠀⠀⠀⠀⠀⠀⠀│6⠀⠀⠀⠀⠀⠀│
+│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│
+│row40a⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│row40b⠀⠀⠀│row40c⠀⠀⠀⠀│row40d⠀⠀│row40e⠀⠀⠀│row40f⠀│
+│a1⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│a2⠀⠀⠀⠀⠀⠀⠀│a3⠀⠀⠀⠀⠀⠀⠀⠀│a4⠀⠀⠀⠀⠀⠀│a5⠀⠀⠀⠀⠀⠀⠀│a6⠀⠀⠀⠀⠀│
+│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│
+│mixA⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│mixC⠀⠀⠀⠀⠀⠀│DDD⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│FFF⠀⠀⠀⠀│
+│123abc⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│456def⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│789ghi⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│000⠀⠀⠀⠀│
+│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│
+│r45a⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│r45b⠀⠀⠀⠀⠀│r45c⠀⠀⠀⠀⠀⠀│r45d⠀⠀⠀⠀│r45e⠀⠀⠀⠀⠀│r45f⠀⠀⠀│
+│alpha9⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│beta8⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│gamma7⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│
+│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│
+│A1B2C3⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│D4E5F6⠀⠀⠀│G7H8I9⠀⠀⠀⠀│J0⠀⠀⠀⠀⠀⠀│K1⠀⠀⠀⠀⠀⠀⠀│L2⠀⠀⠀⠀⠀│
+│short1⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│short3⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│short5⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│
+│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│
+│r50a⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│r50b⠀⠀⠀⠀⠀│r50c⠀⠀⠀⠀⠀⠀│r50d⠀⠀⠀⠀│r50e⠀⠀⠀⠀⠀│r50f⠀⠀⠀│
+│x1y2⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│z3⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│w4⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│v5⠀⠀⠀⠀⠀│
+│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│
+│longertext⠀⠀⠀⠀⠀⠀⠀│mid⠀⠀⠀⠀⠀⠀│small⠀⠀⠀⠀⠀│s1⠀⠀⠀⠀⠀⠀│s22⠀⠀⠀⠀⠀⠀│s333⠀⠀⠀│
+│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│
+│r55a⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│r55b⠀⠀⠀⠀⠀│r55c⠀⠀⠀⠀⠀⠀│r55d⠀⠀⠀⠀│r55e⠀⠀⠀⠀⠀│r55f⠀⠀⠀│
+│abc⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│def⠀⠀⠀⠀⠀⠀│ghi⠀⠀⠀⠀⠀⠀⠀│jkl⠀⠀⠀⠀⠀│mno⠀⠀⠀⠀⠀⠀│pqr⠀⠀⠀⠀│
+│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│
+│1a⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│2b⠀⠀⠀⠀⠀⠀⠀│3c⠀⠀⠀⠀⠀⠀⠀⠀│4d⠀⠀⠀⠀⠀⠀│5e⠀⠀⠀⠀⠀⠀⠀│6f⠀⠀⠀⠀⠀│
+│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│
+│row60a⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│row60b⠀⠀⠀│row60c⠀⠀⠀⠀│row60d⠀⠀│row60e⠀⠀⠀│row60f⠀│
+│value1⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│value3⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│value5⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│
+│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│
+│aa⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│bb⠀⠀⠀⠀⠀⠀⠀│cc⠀⠀⠀⠀⠀⠀⠀⠀│dd⠀⠀⠀⠀⠀⠀│ee⠀⠀⠀⠀⠀⠀⠀│ff⠀⠀⠀⠀⠀│
+│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│
+│r65a⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│r65b⠀⠀⠀⠀⠀│r65c⠀⠀⠀⠀⠀⠀│r65d⠀⠀⠀⠀│r65e⠀⠀⠀⠀⠀│r65f⠀⠀⠀│
+│x⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│y⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│z⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│
+│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│
+│alpha01⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│beta02⠀⠀⠀│gamma03⠀⠀⠀│delta04⠀│eps05⠀⠀⠀⠀│z6⠀⠀⠀⠀⠀│
+│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│
+│row70a⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│row70b⠀⠀⠀│row70c⠀⠀⠀⠀│row70d⠀⠀│row70e⠀⠀⠀│row70f⠀│
+│1⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│3⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│5⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│
+│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│
+│abc1⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│def2⠀⠀⠀⠀⠀│ghi3⠀⠀⠀⠀⠀⠀│jkl4⠀⠀⠀⠀│mno5⠀⠀⠀⠀⠀│pqr6⠀⠀⠀│
+│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│
+│r75a⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│r75b⠀⠀⠀⠀⠀│r75c⠀⠀⠀⠀⠀⠀│r75d⠀⠀⠀⠀│r75e⠀⠀⠀⠀⠀│r75f⠀⠀⠀│
+│mix⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│mix2⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│mix3⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│
+│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│
+│a⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│b⠀⠀⠀⠀⠀⠀⠀⠀│c⠀⠀⠀⠀⠀⠀⠀⠀⠀│d⠀⠀⠀⠀⠀⠀⠀│e⠀⠀⠀⠀⠀⠀⠀⠀│f⠀⠀⠀⠀⠀⠀│
+│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│
+│row80a⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│row80b⠀⠀⠀│row80c⠀⠀⠀⠀│row80d⠀⠀│row80e⠀⠀⠀│row80f⠀│
+│123⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│234⠀⠀⠀⠀⠀⠀│345⠀⠀⠀⠀⠀⠀⠀│456⠀⠀⠀⠀⠀│567⠀⠀⠀⠀⠀⠀│678⠀⠀⠀⠀│
+│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│
+│Aaa⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│Bbb⠀⠀⠀⠀⠀⠀│Ccc⠀⠀⠀⠀⠀⠀⠀│Ddd⠀⠀⠀⠀⠀│Eee⠀⠀⠀⠀⠀⠀│Fff⠀⠀⠀⠀│
+│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│
+│r85a⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│r85b⠀⠀⠀⠀⠀│r85c⠀⠀⠀⠀⠀⠀│r85d⠀⠀⠀⠀│r85e⠀⠀⠀⠀⠀│r85f⠀⠀⠀│
+│x1⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│x3⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│x5⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│
+│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│
+│abcde12345⠀⠀⠀⠀⠀⠀⠀│f1⠀⠀⠀⠀⠀⠀⠀│g2⠀⠀⠀⠀⠀⠀⠀⠀│h3⠀⠀⠀⠀⠀⠀│i4⠀⠀⠀⠀⠀⠀⠀│j5⠀⠀⠀⠀⠀│
+│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│
+│row90a⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│row90b⠀⠀⠀│row90c⠀⠀⠀⠀│row90d⠀⠀│row90e⠀⠀⠀│row90f⠀│
+│1a2b3c⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│4d5e6f⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│7g8h9i⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│
+│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│
+│short⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│mid⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│longer⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│
+│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│
+│r95a⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│r95b⠀⠀⠀⠀⠀│r95c⠀⠀⠀⠀⠀⠀│r95d⠀⠀⠀⠀│r95e⠀⠀⠀⠀⠀│r95f⠀⠀⠀│
+│a1b⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│c2d⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│e3f⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│
+│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│
+│end1⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│end2⠀⠀⠀⠀⠀│end3⠀⠀⠀⠀⠀⠀│end4⠀⠀⠀⠀│end5⠀⠀⠀⠀⠀│end6⠀⠀⠀│
+│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│
=== FILE ===
A1,B22,C333,D4444,E55555,F666666
diff --git a/tests/cases/save/csv/out-expected.txt b/tests/cases/save/csv/out-expected.txt
index 82d3e35..e2dbbd3 100644
--- a/tests/cases/save/csv/out-expected.txt
+++ b/tests/cases/save/csv/out-expected.txt
@@ -2,120 +2,120 @@
"gen.csv" 115L, 2239B written
=== DISPLAY ===
-│A1⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│B22⠀⠀⠀⠀⠀⠀│C333⠀⠀⠀⠀⠀⠀│D4444⠀⠀⠀│E55555⠀⠀⠀│F666666│
-│alpha1⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│b2⠀⠀⠀⠀⠀⠀⠀│c3⠀⠀⠀⠀⠀⠀⠀⠀│d4⠀⠀⠀⠀⠀⠀│e5⠀⠀⠀⠀⠀⠀⠀│f6⠀⠀⠀⠀⠀│
-│ ===⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│- next -⠀│ line⠀⠀⠀⠀⠀│ has⠀⠀⠀│ no⠀⠀⠀⠀⠀⠀│ value │
-│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│
-│x1⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│y22⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│z333⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│
-│===⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│ - next -│ line⠀⠀⠀⠀⠀│ has⠀⠀⠀│linefeed⠀│ ⠀⠀⠀⠀⠀│
-┊↲⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀┊abc⠀⠀⠀⠀⠀⠀┊DEF123⠀⠀⠀⠀┊↲⠀⠀⠀⠀⠀⠀⠀┊gh⠀⠀⠀⠀⠀⠀⠀┊9⠀⠀⠀⠀⠀⠀┊
-┊"1"2h", 34567890a⠀┊⠀⠀⠀⠀⠀⠀⠀⠀⠀┊⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀┊↲⠀⠀⠀⠀⠀⠀⠀┊⠀⠀⠀⠀⠀⠀⠀⠀⠀┊⠀⠀⠀⠀⠀⠀⠀┊
-┊⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀┊⠀⠀⠀⠀⠀⠀⠀⠀⠀┊⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀┊↲⠀⠀⠀⠀⠀⠀⠀┊⠀⠀⠀⠀⠀⠀⠀⠀⠀┊⠀⠀⠀⠀⠀⠀⠀┊
-│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│
-┊a⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀┊⠀⠀⠀⠀⠀⠀⠀⠀⠀┊b↲⠀⠀⠀⠀⠀⠀⠀⠀┊⠀⠀⠀⠀⠀⠀⠀⠀┊c⠀⠀⠀⠀⠀⠀⠀⠀┊⠀⠀⠀⠀⠀⠀⠀┊
-│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│
-│ ===⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│- next -⠀│ lines⠀⠀⠀⠀│ has⠀⠀⠀│tab⠀⠀⠀⠀⠀⠀│ ⠀⠀⠀⠀⠀│
-│⇥ l⇥ongtext01⠀⠀⠀⠀⠀│mi⇥⇥d2⠀⠀⠀│s⠀⠀⠀⠀⠀⠀⠀⠀⠀│tt⠀⠀⠀⠀⠀⠀│uuu⠀⠀⠀⠀⠀⠀│vvvv⠀⠀⠀│
-│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⇥⇥⇥⇥⇥⇥⇥⠀⠀⠀│⇥⇥⇥⇥⇥⇥⇥⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│
-│R1C1⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│R1C2⠀⠀⠀⠀⠀│R1C3⠀⠀⠀⠀⠀⠀│R1C4⠀⠀⠀⠀│R1C5⠀⠀⠀⠀⠀│R1C6⠀⠀⠀│
-│ ===⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│- next -⠀│ line⠀⠀⠀⠀⠀│ is⠀⠀⠀⠀│multibyte│ value │
-│aaあい⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│いろ2⠀⠀⠀⠀│ぼんさんが│へを⠀⠀⠀⠀│こいた⠀⠀⠀│.!...⠀│
-│g1⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│h22⠀⠀⠀⠀⠀⠀│i333⠀⠀⠀⠀⠀⠀│j4444⠀⠀⠀│k55555⠀⠀⠀│l6⠀⠀⠀⠀⠀│
-│ ===⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│- next -⠀│ lines⠀⠀⠀⠀│ has⠀⠀⠀│linefeed+│tab ⠀⠀│
-┊⇥⇥ ⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀┊↲⠀⠀⠀⠀⠀⠀⠀⠀┊n⇥ ⠀⠀⠀⠀⠀⠀⠀┊⇥⇥ o333⠀┊⠀⠀⠀⠀⠀⠀⠀⠀⠀┊⠀⠀⠀⠀⠀⠀⠀┊
-│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⇥⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│
-│pqrst⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│uv⠀⠀⠀⠀⠀⠀⠀│wx1⠀⠀⠀⠀⠀⠀⠀│yz22⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│345⠀⠀⠀⠀│
-│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│
-│a1b2c3⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│XYZ⠀⠀⠀⠀⠀⠀⠀│7777⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│k9⠀⠀⠀⠀⠀│
-│short⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│longer12⠀│x⠀⠀⠀⠀⠀⠀⠀⠀⠀│yz⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│end⠀⠀⠀⠀│
-│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│
-│row15a⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│row15b⠀⠀⠀│row15c⠀⠀⠀⠀│row15d⠀⠀│row15e⠀⠀⠀│row15f⠀│
-│1⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│22⠀⠀⠀⠀⠀⠀⠀│333⠀⠀⠀⠀⠀⠀⠀│4444⠀⠀⠀⠀│55555⠀⠀⠀⠀│666666⠀│
-│alpha⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│beta⠀⠀⠀⠀⠀│gamma⠀⠀⠀⠀⠀│delta⠀⠀⠀│epsilon⠀⠀│zeta⠀⠀⠀│
-│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│
-│mix1⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│mix3⠀⠀⠀⠀⠀⠀│444⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│six6⠀⠀⠀│
-│abc123⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│def456⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│ghi789⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│
-│z⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│y⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│x⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│
-│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│
-│t1⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│t2⠀⠀⠀⠀⠀⠀⠀│t3⠀⠀⠀⠀⠀⠀⠀⠀│t4⠀⠀⠀⠀⠀⠀│t5⠀⠀⠀⠀⠀⠀⠀│t6⠀⠀⠀⠀⠀│
-│r1c1⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│r1c2⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│r1c4⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│r1c6⠀⠀⠀│
-│data1⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│data22⠀⠀⠀│data333⠀⠀⠀│data4444│data55555│data6⠀⠀│
-│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│
-│A⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│B⠀⠀⠀⠀⠀⠀⠀⠀│C⠀⠀⠀⠀⠀⠀⠀⠀⠀│D⠀⠀⠀⠀⠀⠀⠀│E⠀⠀⠀⠀⠀⠀⠀⠀│F⠀⠀⠀⠀⠀⠀│
-│abc⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│123⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│XYZ⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│
-│one1⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│two22⠀⠀⠀⠀│three3⠀⠀⠀⠀│four44⠀⠀│five5⠀⠀⠀⠀│six66⠀⠀│
-│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│
-│r30a⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│r30b⠀⠀⠀⠀⠀│r30c⠀⠀⠀⠀⠀⠀│r30d⠀⠀⠀⠀│r30e⠀⠀⠀⠀⠀│r30f⠀⠀⠀│
-│longvalue1⠀⠀⠀⠀⠀⠀⠀⠀│mid⠀⠀⠀⠀⠀⠀│short⠀⠀⠀⠀⠀│s⠀⠀⠀⠀⠀⠀⠀│tt⠀⠀⠀⠀⠀⠀⠀│uuu⠀⠀⠀⠀│
-│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│
-│x⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│y⠀⠀⠀⠀⠀⠀⠀⠀│z⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│end⠀⠀⠀⠀│
-│abcde⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│fghij⠀⠀⠀⠀│klmno⠀⠀⠀⠀⠀│pqrst⠀⠀⠀│uvwxy⠀⠀⠀⠀│z⠀⠀⠀⠀⠀⠀│
-│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│
-│cell1⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│cell3⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│cell5⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│
-│111⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│2222⠀⠀⠀⠀⠀│33333⠀⠀⠀⠀⠀│444444⠀⠀│55⠀⠀⠀⠀⠀⠀⠀│6⠀⠀⠀⠀⠀⠀│
-│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│
-│row40a⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│row40b⠀⠀⠀│row40c⠀⠀⠀⠀│row40d⠀⠀│row40e⠀⠀⠀│row40f⠀│
-│a1⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│a2⠀⠀⠀⠀⠀⠀⠀│a3⠀⠀⠀⠀⠀⠀⠀⠀│a4⠀⠀⠀⠀⠀⠀│a5⠀⠀⠀⠀⠀⠀⠀│a6⠀⠀⠀⠀⠀│
-│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│
-│mixA⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│mixC⠀⠀⠀⠀⠀⠀│DDD⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│FFF⠀⠀⠀⠀│
-│123abc⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│456def⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│789ghi⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│000⠀⠀⠀⠀│
-│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│
-│r45a⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│r45b⠀⠀⠀⠀⠀│r45c⠀⠀⠀⠀⠀⠀│r45d⠀⠀⠀⠀│r45e⠀⠀⠀⠀⠀│r45f⠀⠀⠀│
-│alpha9⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│beta8⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│gamma7⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│
-│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│
-│A1B2C3⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│D4E5F6⠀⠀⠀│G7H8I9⠀⠀⠀⠀│J0⠀⠀⠀⠀⠀⠀│K1⠀⠀⠀⠀⠀⠀⠀│L2⠀⠀⠀⠀⠀│
-│short1⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│short3⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│short5⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│
-│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│
-│r50a⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│r50b⠀⠀⠀⠀⠀│r50c⠀⠀⠀⠀⠀⠀│r50d⠀⠀⠀⠀│r50e⠀⠀⠀⠀⠀│r50f⠀⠀⠀│
-│x1y2⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│z3⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│w4⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│v5⠀⠀⠀⠀⠀│
-│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│
-│longertext⠀⠀⠀⠀⠀⠀⠀⠀│mid⠀⠀⠀⠀⠀⠀│small⠀⠀⠀⠀⠀│s1⠀⠀⠀⠀⠀⠀│s22⠀⠀⠀⠀⠀⠀│s333⠀⠀⠀│
-│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│
-│r55a⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│r55b⠀⠀⠀⠀⠀│r55c⠀⠀⠀⠀⠀⠀│r55d⠀⠀⠀⠀│r55e⠀⠀⠀⠀⠀│r55f⠀⠀⠀│
-│abc⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│def⠀⠀⠀⠀⠀⠀│ghi⠀⠀⠀⠀⠀⠀⠀│jkl⠀⠀⠀⠀⠀│mno⠀⠀⠀⠀⠀⠀│pqr⠀⠀⠀⠀│
-│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│
-│1a⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│2b⠀⠀⠀⠀⠀⠀⠀│3c⠀⠀⠀⠀⠀⠀⠀⠀│4d⠀⠀⠀⠀⠀⠀│5e⠀⠀⠀⠀⠀⠀⠀│6f⠀⠀⠀⠀⠀│
-│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│
-│row60a⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│row60b⠀⠀⠀│row60c⠀⠀⠀⠀│row60d⠀⠀│row60e⠀⠀⠀│row60f⠀│
-│value1⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│value3⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│value5⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│
-│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│
-│aa⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│bb⠀⠀⠀⠀⠀⠀⠀│cc⠀⠀⠀⠀⠀⠀⠀⠀│dd⠀⠀⠀⠀⠀⠀│ee⠀⠀⠀⠀⠀⠀⠀│ff⠀⠀⠀⠀⠀│
-│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│
-│r65a⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│r65b⠀⠀⠀⠀⠀│r65c⠀⠀⠀⠀⠀⠀│r65d⠀⠀⠀⠀│r65e⠀⠀⠀⠀⠀│r65f⠀⠀⠀│
-│x⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│y⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│z⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│
-│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│
-│alpha01⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│beta02⠀⠀⠀│gamma03⠀⠀⠀│delta04⠀│eps05⠀⠀⠀⠀│z6⠀⠀⠀⠀⠀│
-│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│
-│row70a⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│row70b⠀⠀⠀│row70c⠀⠀⠀⠀│row70d⠀⠀│row70e⠀⠀⠀│row70f⠀│
-│1⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│3⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│5⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│
-│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│
-│abc1⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│def2⠀⠀⠀⠀⠀│ghi3⠀⠀⠀⠀⠀⠀│jkl4⠀⠀⠀⠀│mno5⠀⠀⠀⠀⠀│pqr6⠀⠀⠀│
-│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│
-│r75a⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│r75b⠀⠀⠀⠀⠀│r75c⠀⠀⠀⠀⠀⠀│r75d⠀⠀⠀⠀│r75e⠀⠀⠀⠀⠀│r75f⠀⠀⠀│
-│mix⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│mix2⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│mix3⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│
-│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│
-│a⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│b⠀⠀⠀⠀⠀⠀⠀⠀│c⠀⠀⠀⠀⠀⠀⠀⠀⠀│d⠀⠀⠀⠀⠀⠀⠀│e⠀⠀⠀⠀⠀⠀⠀⠀│f⠀⠀⠀⠀⠀⠀│
-│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│
-│row80a⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│row80b⠀⠀⠀│row80c⠀⠀⠀⠀│row80d⠀⠀│row80e⠀⠀⠀│row80f⠀│
-│123⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│234⠀⠀⠀⠀⠀⠀│345⠀⠀⠀⠀⠀⠀⠀│456⠀⠀⠀⠀⠀│567⠀⠀⠀⠀⠀⠀│678⠀⠀⠀⠀│
-│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│
-│Aaa⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│Bbb⠀⠀⠀⠀⠀⠀│Ccc⠀⠀⠀⠀⠀⠀⠀│Ddd⠀⠀⠀⠀⠀│Eee⠀⠀⠀⠀⠀⠀│Fff⠀⠀⠀⠀│
-│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│
-│r85a⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│r85b⠀⠀⠀⠀⠀│r85c⠀⠀⠀⠀⠀⠀│r85d⠀⠀⠀⠀│r85e⠀⠀⠀⠀⠀│r85f⠀⠀⠀│
-│x1⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│x3⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│x5⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│
-│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│
-│abcde12345⠀⠀⠀⠀⠀⠀⠀⠀│f1⠀⠀⠀⠀⠀⠀⠀│g2⠀⠀⠀⠀⠀⠀⠀⠀│h3⠀⠀⠀⠀⠀⠀│i4⠀⠀⠀⠀⠀⠀⠀│j5⠀⠀⠀⠀⠀│
-│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│
-│row90a⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│row90b⠀⠀⠀│row90c⠀⠀⠀⠀│row90d⠀⠀│row90e⠀⠀⠀│row90f⠀│
-│1a2b3c⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│4d5e6f⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│7g8h9i⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│
-│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│
-│short⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│mid⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│longer⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│
-│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│
-│r95a⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│r95b⠀⠀⠀⠀⠀│r95c⠀⠀⠀⠀⠀⠀│r95d⠀⠀⠀⠀│r95e⠀⠀⠀⠀⠀│r95f⠀⠀⠀│
-│a1b⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│c2d⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│e3f⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│
-│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│
-│end1⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│end2⠀⠀⠀⠀⠀│end3⠀⠀⠀⠀⠀⠀│end4⠀⠀⠀⠀│end5⠀⠀⠀⠀⠀│end6⠀⠀⠀│
-│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│
+│A1⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│B22⠀⠀⠀⠀⠀⠀│C333⠀⠀⠀⠀⠀⠀│D4444⠀⠀⠀│E55555⠀⠀⠀│F666666│
+│alpha1⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│b2⠀⠀⠀⠀⠀⠀⠀│c3⠀⠀⠀⠀⠀⠀⠀⠀│d4⠀⠀⠀⠀⠀⠀│e5⠀⠀⠀⠀⠀⠀⠀│f6⠀⠀⠀⠀⠀│
+│ ===⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│- next -⠀│ line⠀⠀⠀⠀⠀│ has⠀⠀⠀│ no⠀⠀⠀⠀⠀⠀│ value │
+│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│
+│x1⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│y22⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│z333⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│
+│===⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│ - next -│ line⠀⠀⠀⠀⠀│ has⠀⠀⠀│linefeed⠀│ ⠀⠀⠀⠀⠀│
+┊↲⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀┊abc⠀⠀⠀⠀⠀⠀┊DEF123⠀⠀⠀⠀┊↲⠀⠀⠀⠀⠀⠀⠀┊gh⠀⠀⠀⠀⠀⠀⠀┊9⠀⠀⠀⠀⠀⠀┊
+┊"1"2h", 34567890a┊⠀⠀⠀⠀⠀⠀⠀⠀⠀┊⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀┊↲⠀⠀⠀⠀⠀⠀⠀┊⠀⠀⠀⠀⠀⠀⠀⠀⠀┊⠀⠀⠀⠀⠀⠀⠀┊
+┊⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀┊⠀⠀⠀⠀⠀⠀⠀⠀⠀┊⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀┊↲⠀⠀⠀⠀⠀⠀⠀┊⠀⠀⠀⠀⠀⠀⠀⠀⠀┊⠀⠀⠀⠀⠀⠀⠀┊
+│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│
+┊a⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀┊⠀⠀⠀⠀⠀⠀⠀⠀⠀┊b↲⠀⠀⠀⠀⠀⠀⠀⠀┊⠀⠀⠀⠀⠀⠀⠀⠀┊c⠀⠀⠀⠀⠀⠀⠀⠀┊⠀⠀⠀⠀⠀⠀⠀┊
+│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│
+│ ===⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│- next -⠀│ lines⠀⠀⠀⠀│ has⠀⠀⠀│tab⠀⠀⠀⠀⠀⠀│ ⠀⠀⠀⠀⠀│
+│⇥ l⇥ongtext01⠀⠀⠀⠀│mi⇥⇥d2⠀⠀⠀│s⠀⠀⠀⠀⠀⠀⠀⠀⠀│tt⠀⠀⠀⠀⠀⠀│uuu⠀⠀⠀⠀⠀⠀│vvvv⠀⠀⠀│
+│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⇥⇥⇥⇥⇥⇥⇥⠀⠀⠀│⇥⇥⇥⇥⇥⇥⇥⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│
+│R1C1⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│R1C2⠀⠀⠀⠀⠀│R1C3⠀⠀⠀⠀⠀⠀│R1C4⠀⠀⠀⠀│R1C5⠀⠀⠀⠀⠀│R1C6⠀⠀⠀│
+│ ===⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│- next -⠀│ line⠀⠀⠀⠀⠀│ is⠀⠀⠀⠀│multibyte│ value │
+│aaあい⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│いろ2⠀⠀⠀⠀│ぼんさんが│へを⠀⠀⠀⠀│こいた⠀⠀⠀│.!...⠀│
+│g1⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│h22⠀⠀⠀⠀⠀⠀│i333⠀⠀⠀⠀⠀⠀│j4444⠀⠀⠀│k55555⠀⠀⠀│l6⠀⠀⠀⠀⠀│
+│ ===⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│- next -⠀│ lines⠀⠀⠀⠀│ has⠀⠀⠀│linefeed+│tab ⠀⠀│
+┊⇥⇥ ⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀┊↲⠀⠀⠀⠀⠀⠀⠀⠀┊n⇥ ⠀⠀⠀⠀⠀⠀⠀┊⇥⇥ o333⠀┊⠀⠀⠀⠀⠀⠀⠀⠀⠀┊⠀⠀⠀⠀⠀⠀⠀┊
+│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⇥⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│
+│pqrst⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│uv⠀⠀⠀⠀⠀⠀⠀│wx1⠀⠀⠀⠀⠀⠀⠀│yz22⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│345⠀⠀⠀⠀│
+│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│
+│a1b2c3⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│XYZ⠀⠀⠀⠀⠀⠀⠀│7777⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│k9⠀⠀⠀⠀⠀│
+│short⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│longer12⠀│x⠀⠀⠀⠀⠀⠀⠀⠀⠀│yz⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│end⠀⠀⠀⠀│
+│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│
+│row15a⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│row15b⠀⠀⠀│row15c⠀⠀⠀⠀│row15d⠀⠀│row15e⠀⠀⠀│row15f⠀│
+│1⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│22⠀⠀⠀⠀⠀⠀⠀│333⠀⠀⠀⠀⠀⠀⠀│4444⠀⠀⠀⠀│55555⠀⠀⠀⠀│666666⠀│
+│alpha⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│beta⠀⠀⠀⠀⠀│gamma⠀⠀⠀⠀⠀│delta⠀⠀⠀│epsilon⠀⠀│zeta⠀⠀⠀│
+│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│
+│mix1⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│mix3⠀⠀⠀⠀⠀⠀│444⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│six6⠀⠀⠀│
+│abc123⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│def456⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│ghi789⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│
+│z⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│y⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│x⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│
+│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│
+│t1⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│t2⠀⠀⠀⠀⠀⠀⠀│t3⠀⠀⠀⠀⠀⠀⠀⠀│t4⠀⠀⠀⠀⠀⠀│t5⠀⠀⠀⠀⠀⠀⠀│t6⠀⠀⠀⠀⠀│
+│r1c1⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│r1c2⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│r1c4⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│r1c6⠀⠀⠀│
+│data1⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│data22⠀⠀⠀│data333⠀⠀⠀│data4444│data55555│data6⠀⠀│
+│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│
+│A⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│B⠀⠀⠀⠀⠀⠀⠀⠀│C⠀⠀⠀⠀⠀⠀⠀⠀⠀│D⠀⠀⠀⠀⠀⠀⠀│E⠀⠀⠀⠀⠀⠀⠀⠀│F⠀⠀⠀⠀⠀⠀│
+│abc⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│123⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│XYZ⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│
+│one1⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│two22⠀⠀⠀⠀│three3⠀⠀⠀⠀│four44⠀⠀│five5⠀⠀⠀⠀│six66⠀⠀│
+│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│
+│r30a⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│r30b⠀⠀⠀⠀⠀│r30c⠀⠀⠀⠀⠀⠀│r30d⠀⠀⠀⠀│r30e⠀⠀⠀⠀⠀│r30f⠀⠀⠀│
+│longvalue1⠀⠀⠀⠀⠀⠀⠀│mid⠀⠀⠀⠀⠀⠀│short⠀⠀⠀⠀⠀│s⠀⠀⠀⠀⠀⠀⠀│tt⠀⠀⠀⠀⠀⠀⠀│uuu⠀⠀⠀⠀│
+│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│
+│x⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│y⠀⠀⠀⠀⠀⠀⠀⠀│z⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│end⠀⠀⠀⠀│
+│abcde⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│fghij⠀⠀⠀⠀│klmno⠀⠀⠀⠀⠀│pqrst⠀⠀⠀│uvwxy⠀⠀⠀⠀│z⠀⠀⠀⠀⠀⠀│
+│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│
+│cell1⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│cell3⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│cell5⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│
+│111⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│2222⠀⠀⠀⠀⠀│33333⠀⠀⠀⠀⠀│444444⠀⠀│55⠀⠀⠀⠀⠀⠀⠀│6⠀⠀⠀⠀⠀⠀│
+│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│
+│row40a⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│row40b⠀⠀⠀│row40c⠀⠀⠀⠀│row40d⠀⠀│row40e⠀⠀⠀│row40f⠀│
+│a1⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│a2⠀⠀⠀⠀⠀⠀⠀│a3⠀⠀⠀⠀⠀⠀⠀⠀│a4⠀⠀⠀⠀⠀⠀│a5⠀⠀⠀⠀⠀⠀⠀│a6⠀⠀⠀⠀⠀│
+│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│
+│mixA⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│mixC⠀⠀⠀⠀⠀⠀│DDD⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│FFF⠀⠀⠀⠀│
+│123abc⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│456def⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│789ghi⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│000⠀⠀⠀⠀│
+│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│
+│r45a⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│r45b⠀⠀⠀⠀⠀│r45c⠀⠀⠀⠀⠀⠀│r45d⠀⠀⠀⠀│r45e⠀⠀⠀⠀⠀│r45f⠀⠀⠀│
+│alpha9⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│beta8⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│gamma7⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│
+│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│
+│A1B2C3⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│D4E5F6⠀⠀⠀│G7H8I9⠀⠀⠀⠀│J0⠀⠀⠀⠀⠀⠀│K1⠀⠀⠀⠀⠀⠀⠀│L2⠀⠀⠀⠀⠀│
+│short1⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│short3⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│short5⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│
+│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│
+│r50a⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│r50b⠀⠀⠀⠀⠀│r50c⠀⠀⠀⠀⠀⠀│r50d⠀⠀⠀⠀│r50e⠀⠀⠀⠀⠀│r50f⠀⠀⠀│
+│x1y2⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│z3⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│w4⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│v5⠀⠀⠀⠀⠀│
+│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│
+│longertext⠀⠀⠀⠀⠀⠀⠀│mid⠀⠀⠀⠀⠀⠀│small⠀⠀⠀⠀⠀│s1⠀⠀⠀⠀⠀⠀│s22⠀⠀⠀⠀⠀⠀│s333⠀⠀⠀│
+│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│
+│r55a⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│r55b⠀⠀⠀⠀⠀│r55c⠀⠀⠀⠀⠀⠀│r55d⠀⠀⠀⠀│r55e⠀⠀⠀⠀⠀│r55f⠀⠀⠀│
+│abc⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│def⠀⠀⠀⠀⠀⠀│ghi⠀⠀⠀⠀⠀⠀⠀│jkl⠀⠀⠀⠀⠀│mno⠀⠀⠀⠀⠀⠀│pqr⠀⠀⠀⠀│
+│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│
+│1a⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│2b⠀⠀⠀⠀⠀⠀⠀│3c⠀⠀⠀⠀⠀⠀⠀⠀│4d⠀⠀⠀⠀⠀⠀│5e⠀⠀⠀⠀⠀⠀⠀│6f⠀⠀⠀⠀⠀│
+│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│
+│row60a⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│row60b⠀⠀⠀│row60c⠀⠀⠀⠀│row60d⠀⠀│row60e⠀⠀⠀│row60f⠀│
+│value1⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│value3⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│value5⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│
+│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│
+│aa⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│bb⠀⠀⠀⠀⠀⠀⠀│cc⠀⠀⠀⠀⠀⠀⠀⠀│dd⠀⠀⠀⠀⠀⠀│ee⠀⠀⠀⠀⠀⠀⠀│ff⠀⠀⠀⠀⠀│
+│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│
+│r65a⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│r65b⠀⠀⠀⠀⠀│r65c⠀⠀⠀⠀⠀⠀│r65d⠀⠀⠀⠀│r65e⠀⠀⠀⠀⠀│r65f⠀⠀⠀│
+│x⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│y⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│z⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│
+│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│
+│alpha01⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│beta02⠀⠀⠀│gamma03⠀⠀⠀│delta04⠀│eps05⠀⠀⠀⠀│z6⠀⠀⠀⠀⠀│
+│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│
+│row70a⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│row70b⠀⠀⠀│row70c⠀⠀⠀⠀│row70d⠀⠀│row70e⠀⠀⠀│row70f⠀│
+│1⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│3⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│5⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│
+│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│
+│abc1⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│def2⠀⠀⠀⠀⠀│ghi3⠀⠀⠀⠀⠀⠀│jkl4⠀⠀⠀⠀│mno5⠀⠀⠀⠀⠀│pqr6⠀⠀⠀│
+│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│
+│r75a⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│r75b⠀⠀⠀⠀⠀│r75c⠀⠀⠀⠀⠀⠀│r75d⠀⠀⠀⠀│r75e⠀⠀⠀⠀⠀│r75f⠀⠀⠀│
+│mix⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│mix2⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│mix3⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│
+│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│
+│a⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│b⠀⠀⠀⠀⠀⠀⠀⠀│c⠀⠀⠀⠀⠀⠀⠀⠀⠀│d⠀⠀⠀⠀⠀⠀⠀│e⠀⠀⠀⠀⠀⠀⠀⠀│f⠀⠀⠀⠀⠀⠀│
+│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│
+│row80a⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│row80b⠀⠀⠀│row80c⠀⠀⠀⠀│row80d⠀⠀│row80e⠀⠀⠀│row80f⠀│
+│123⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│234⠀⠀⠀⠀⠀⠀│345⠀⠀⠀⠀⠀⠀⠀│456⠀⠀⠀⠀⠀│567⠀⠀⠀⠀⠀⠀│678⠀⠀⠀⠀│
+│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│
+│Aaa⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│Bbb⠀⠀⠀⠀⠀⠀│Ccc⠀⠀⠀⠀⠀⠀⠀│Ddd⠀⠀⠀⠀⠀│Eee⠀⠀⠀⠀⠀⠀│Fff⠀⠀⠀⠀│
+│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│
+│r85a⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│r85b⠀⠀⠀⠀⠀│r85c⠀⠀⠀⠀⠀⠀│r85d⠀⠀⠀⠀│r85e⠀⠀⠀⠀⠀│r85f⠀⠀⠀│
+│x1⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│x3⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│x5⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│
+│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│
+│abcde12345⠀⠀⠀⠀⠀⠀⠀│f1⠀⠀⠀⠀⠀⠀⠀│g2⠀⠀⠀⠀⠀⠀⠀⠀│h3⠀⠀⠀⠀⠀⠀│i4⠀⠀⠀⠀⠀⠀⠀│j5⠀⠀⠀⠀⠀│
+│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│
+│row90a⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│row90b⠀⠀⠀│row90c⠀⠀⠀⠀│row90d⠀⠀│row90e⠀⠀⠀│row90f⠀│
+│1a2b3c⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│4d5e6f⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│7g8h9i⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│
+│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│
+│short⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│mid⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│longer⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│
+│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│
+│r95a⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│r95b⠀⠀⠀⠀⠀│r95c⠀⠀⠀⠀⠀⠀│r95d⠀⠀⠀⠀│r95e⠀⠀⠀⠀⠀│r95f⠀⠀⠀│
+│a1b⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│c2d⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│e3f⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│
+│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│
+│end1⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│end2⠀⠀⠀⠀⠀│end3⠀⠀⠀⠀⠀⠀│end4⠀⠀⠀⠀│end5⠀⠀⠀⠀⠀│end6⠀⠀⠀│
+│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│
=== FILE ===
A1,B22,C333,D4444,E55555,F666666
diff --git a/tests/cases/textobj/val/out-expected.txt b/tests/cases/textobj/val/out-expected.txt
index 72a24d1..e3012dc 100644
--- a/tests/cases/textobj/val/out-expected.txt
+++ b/tests/cases/textobj/val/out-expected.txt
@@ -2,10 +2,10 @@
block of 7 lines yanked
=== DISPLAY ===
-│1a⠀│2 a│ 3a⠀│2 a│
-┊1↲⠀┊2b⠀┊3↲⠀⠀┊2b⠀┊
-│⠀⠀⠀│⠀⠀⠀│b⇥⠀⠀│⠀⠀⠀│
-┊↲⠀⠀┊⠀⠀⠀┊⇥c⠀⠀┊⠀⠀⠀┊
-┊↲⠀⠀┊⠀⠀⠀┊⠀⠀⠀⠀┊⠀⠀⠀┊
-┊↲⠀⠀┊⠀⠀⠀┊⠀⠀⠀⠀┊⠀⠀⠀┊
-│⠀⠀⠀│⠀⠀⠀│⠀⠀⠀⠀│⠀⠀⠀│
+│1a│2 a│ 3a│2 a│
+┊1↲┊2b⠀┊3↲⠀┊2b⠀┊
+│⠀⠀│⠀⠀⠀│b⇥⠀│⠀⠀⠀│
+┊↲⠀┊⠀⠀⠀┊⇥c⠀┊⠀⠀⠀┊
+┊↲⠀┊⠀⠀⠀┊⠀⠀⠀┊⠀⠀⠀┊
+┊↲⠀┊⠀⠀⠀┊⠀⠀⠀┊⠀⠀⠀┊
+│⠀⠀│⠀⠀⠀│⠀⠀⠀│⠀⠀⠀│
diff --git a/tests/cases/textobj/vil/run.vim b/tests/cases/textobj/vil/run.vim
index 636ab92..7fa576e 100644
--- a/tests/cases/textobj/vil/run.vim
+++ b/tests/cases/textobj/vil/run.vim
@@ -4,10 +4,14 @@ edit $TIRENVI_ROOT/tests/data/simple.md
call cursor(2, 1)
call feedkeys("vil", "x")
execute "normal d"
+sleep 1m
call cursor(4, 15)
call feedkeys("vil", "x")
execute "normal d"
+sleep 1m
execute "normal 0"
+sleep 1m
execute "normal p"
+sleep 1m
call RunTest({})
\ No newline at end of file
diff --git a/tests/cases/tir/on/out-expected.txt b/tests/cases/tir/on/out-expected.txt
index 12c8222..487b549 100644
--- a/tests/cases/tir/on/out-expected.txt
+++ b/tests/cases/tir/on/out-expected.txt
@@ -1,117 +1,117 @@
=== MESSAGE ===
=== DISPLAY ===
-│A1⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│B22⠀⠀⠀⠀⠀⠀│C333⠀⠀⠀⠀⠀⠀│D4444⠀⠀⠀│E55555⠀⠀⠀│F666666│
-│alpha1⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│b2⠀⠀⠀⠀⠀⠀⠀│c3⠀⠀⠀⠀⠀⠀⠀⠀│d4⠀⠀⠀⠀⠀⠀│e5⠀⠀⠀⠀⠀⠀⠀│f6⠀⠀⠀⠀⠀│
-│ ===⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│- next -⠀│ line⠀⠀⠀⠀⠀│ has⠀⠀⠀│ no⠀⠀⠀⠀⠀⠀│ value │
-│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│
-│x1⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│y22⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│z333⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│
-│===⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│ - next -│ line⠀⠀⠀⠀⠀│ has⠀⠀⠀│linefeed⠀│ ⠀⠀⠀⠀⠀│
-┊↲⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀┊abc⠀⠀⠀⠀⠀⠀┊DEF123⠀⠀⠀⠀┊↲⠀⠀⠀⠀⠀⠀⠀┊gh⠀⠀⠀⠀⠀⠀⠀┊9⠀⠀⠀⠀⠀⠀┊
-┊"1"2h", 34567890a⠀┊⠀⠀⠀⠀⠀⠀⠀⠀⠀┊⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀┊↲⠀⠀⠀⠀⠀⠀⠀┊⠀⠀⠀⠀⠀⠀⠀⠀⠀┊⠀⠀⠀⠀⠀⠀⠀┊
-┊⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀┊⠀⠀⠀⠀⠀⠀⠀⠀⠀┊⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀┊↲⠀⠀⠀⠀⠀⠀⠀┊⠀⠀⠀⠀⠀⠀⠀⠀⠀┊⠀⠀⠀⠀⠀⠀⠀┊
-│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│
-┊a⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀┊⠀⠀⠀⠀⠀⠀⠀⠀⠀┊b↲⠀⠀⠀⠀⠀⠀⠀⠀┊⠀⠀⠀⠀⠀⠀⠀⠀┊c⠀⠀⠀⠀⠀⠀⠀⠀┊⠀⠀⠀⠀⠀⠀⠀┊
-│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│
-│ ===⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│- next -⠀│ lines⠀⠀⠀⠀│ has⠀⠀⠀│tab⠀⠀⠀⠀⠀⠀│ ⠀⠀⠀⠀⠀│
-│⇥ l⇥ongtext01⠀⠀⠀⠀⠀│mi⇥⇥d2⠀⠀⠀│s⠀⠀⠀⠀⠀⠀⠀⠀⠀│tt⠀⠀⠀⠀⠀⠀│uuu⠀⠀⠀⠀⠀⠀│vvvv⠀⠀⠀│
-│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⇥⇥⇥⇥⇥⇥⇥⠀⠀⠀│⇥⇥⇥⇥⇥⇥⇥⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│
-│R1C1⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│R1C2⠀⠀⠀⠀⠀│R1C3⠀⠀⠀⠀⠀⠀│R1C4⠀⠀⠀⠀│R1C5⠀⠀⠀⠀⠀│R1C6⠀⠀⠀│
-│ ===⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│- next -⠀│ line⠀⠀⠀⠀⠀│ is⠀⠀⠀⠀│multibyte│ value │
-│aaあい⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│いろ2⠀⠀⠀⠀│ぼんさんが│へを⠀⠀⠀⠀│こいた⠀⠀⠀│.!...⠀│
-│g1⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│h22⠀⠀⠀⠀⠀⠀│i333⠀⠀⠀⠀⠀⠀│j4444⠀⠀⠀│k55555⠀⠀⠀│l6⠀⠀⠀⠀⠀│
-│ ===⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│- next -⠀│ lines⠀⠀⠀⠀│ has⠀⠀⠀│linefeed+│tab ⠀⠀│
-┊⇥⇥ ⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀┊↲⠀⠀⠀⠀⠀⠀⠀⠀┊n⇥ ⠀⠀⠀⠀⠀⠀⠀┊⇥⇥ o333⠀┊⠀⠀⠀⠀⠀⠀⠀⠀⠀┊⠀⠀⠀⠀⠀⠀⠀┊
-│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⇥⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│
-│pqrst⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│uv⠀⠀⠀⠀⠀⠀⠀│wx1⠀⠀⠀⠀⠀⠀⠀│yz22⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│345⠀⠀⠀⠀│
-│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│
-│a1b2c3⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│XYZ⠀⠀⠀⠀⠀⠀⠀│7777⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│k9⠀⠀⠀⠀⠀│
-│short⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│longer12⠀│x⠀⠀⠀⠀⠀⠀⠀⠀⠀│yz⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│end⠀⠀⠀⠀│
-│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│
-│row15a⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│row15b⠀⠀⠀│row15c⠀⠀⠀⠀│row15d⠀⠀│row15e⠀⠀⠀│row15f⠀│
-│1⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│22⠀⠀⠀⠀⠀⠀⠀│333⠀⠀⠀⠀⠀⠀⠀│4444⠀⠀⠀⠀│55555⠀⠀⠀⠀│666666⠀│
-│alpha⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│beta⠀⠀⠀⠀⠀│gamma⠀⠀⠀⠀⠀│delta⠀⠀⠀│epsilon⠀⠀│zeta⠀⠀⠀│
-│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│
-│mix1⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│mix3⠀⠀⠀⠀⠀⠀│444⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│six6⠀⠀⠀│
-│abc123⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│def456⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│ghi789⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│
-│z⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│y⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│x⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│
-│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│
-│t1⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│t2⠀⠀⠀⠀⠀⠀⠀│t3⠀⠀⠀⠀⠀⠀⠀⠀│t4⠀⠀⠀⠀⠀⠀│t5⠀⠀⠀⠀⠀⠀⠀│t6⠀⠀⠀⠀⠀│
-│r1c1⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│r1c2⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│r1c4⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│r1c6⠀⠀⠀│
-│data1⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│data22⠀⠀⠀│data333⠀⠀⠀│data4444│data55555│data6⠀⠀│
-│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│
-│A⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│B⠀⠀⠀⠀⠀⠀⠀⠀│C⠀⠀⠀⠀⠀⠀⠀⠀⠀│D⠀⠀⠀⠀⠀⠀⠀│E⠀⠀⠀⠀⠀⠀⠀⠀│F⠀⠀⠀⠀⠀⠀│
-│abc⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│123⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│XYZ⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│
-│one1⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│two22⠀⠀⠀⠀│three3⠀⠀⠀⠀│four44⠀⠀│five5⠀⠀⠀⠀│six66⠀⠀│
-│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│
-│r30a⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│r30b⠀⠀⠀⠀⠀│r30c⠀⠀⠀⠀⠀⠀│r30d⠀⠀⠀⠀│r30e⠀⠀⠀⠀⠀│r30f⠀⠀⠀│
-│longvalue1⠀⠀⠀⠀⠀⠀⠀⠀│mid⠀⠀⠀⠀⠀⠀│short⠀⠀⠀⠀⠀│s⠀⠀⠀⠀⠀⠀⠀│tt⠀⠀⠀⠀⠀⠀⠀│uuu⠀⠀⠀⠀│
-│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│
-│x⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│y⠀⠀⠀⠀⠀⠀⠀⠀│z⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│end⠀⠀⠀⠀│
-│abcde⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│fghij⠀⠀⠀⠀│klmno⠀⠀⠀⠀⠀│pqrst⠀⠀⠀│uvwxy⠀⠀⠀⠀│z⠀⠀⠀⠀⠀⠀│
-│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│
-│cell1⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│cell3⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│cell5⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│
-│111⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│2222⠀⠀⠀⠀⠀│33333⠀⠀⠀⠀⠀│444444⠀⠀│55⠀⠀⠀⠀⠀⠀⠀│6⠀⠀⠀⠀⠀⠀│
-│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│
-│row40a⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│row40b⠀⠀⠀│row40c⠀⠀⠀⠀│row40d⠀⠀│row40e⠀⠀⠀│row40f⠀│
-│a1⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│a2⠀⠀⠀⠀⠀⠀⠀│a3⠀⠀⠀⠀⠀⠀⠀⠀│a4⠀⠀⠀⠀⠀⠀│a5⠀⠀⠀⠀⠀⠀⠀│a6⠀⠀⠀⠀⠀│
-│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│
-│mixA⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│mixC⠀⠀⠀⠀⠀⠀│DDD⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│FFF⠀⠀⠀⠀│
-│123abc⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│456def⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│789ghi⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│000⠀⠀⠀⠀│
-│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│
-│r45a⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│r45b⠀⠀⠀⠀⠀│r45c⠀⠀⠀⠀⠀⠀│r45d⠀⠀⠀⠀│r45e⠀⠀⠀⠀⠀│r45f⠀⠀⠀│
-│alpha9⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│beta8⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│gamma7⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│
-│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│
-│A1B2C3⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│D4E5F6⠀⠀⠀│G7H8I9⠀⠀⠀⠀│J0⠀⠀⠀⠀⠀⠀│K1⠀⠀⠀⠀⠀⠀⠀│L2⠀⠀⠀⠀⠀│
-│short1⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│short3⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│short5⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│
-│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│
-│r50a⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│r50b⠀⠀⠀⠀⠀│r50c⠀⠀⠀⠀⠀⠀│r50d⠀⠀⠀⠀│r50e⠀⠀⠀⠀⠀│r50f⠀⠀⠀│
-│x1y2⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│z3⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│w4⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│v5⠀⠀⠀⠀⠀│
-│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│
-│longertext⠀⠀⠀⠀⠀⠀⠀⠀│mid⠀⠀⠀⠀⠀⠀│small⠀⠀⠀⠀⠀│s1⠀⠀⠀⠀⠀⠀│s22⠀⠀⠀⠀⠀⠀│s333⠀⠀⠀│
-│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│
-│r55a⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│r55b⠀⠀⠀⠀⠀│r55c⠀⠀⠀⠀⠀⠀│r55d⠀⠀⠀⠀│r55e⠀⠀⠀⠀⠀│r55f⠀⠀⠀│
-│abc⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│def⠀⠀⠀⠀⠀⠀│ghi⠀⠀⠀⠀⠀⠀⠀│jkl⠀⠀⠀⠀⠀│mno⠀⠀⠀⠀⠀⠀│pqr⠀⠀⠀⠀│
-│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│
-│1a⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│2b⠀⠀⠀⠀⠀⠀⠀│3c⠀⠀⠀⠀⠀⠀⠀⠀│4d⠀⠀⠀⠀⠀⠀│5e⠀⠀⠀⠀⠀⠀⠀│6f⠀⠀⠀⠀⠀│
-│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│
-│row60a⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│row60b⠀⠀⠀│row60c⠀⠀⠀⠀│row60d⠀⠀│row60e⠀⠀⠀│row60f⠀│
-│value1⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│value3⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│value5⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│
-│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│
-│aa⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│bb⠀⠀⠀⠀⠀⠀⠀│cc⠀⠀⠀⠀⠀⠀⠀⠀│dd⠀⠀⠀⠀⠀⠀│ee⠀⠀⠀⠀⠀⠀⠀│ff⠀⠀⠀⠀⠀│
-│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│
-│r65a⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│r65b⠀⠀⠀⠀⠀│r65c⠀⠀⠀⠀⠀⠀│r65d⠀⠀⠀⠀│r65e⠀⠀⠀⠀⠀│r65f⠀⠀⠀│
-│x⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│y⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│z⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│
-│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│
-│alpha01⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│beta02⠀⠀⠀│gamma03⠀⠀⠀│delta04⠀│eps05⠀⠀⠀⠀│z6⠀⠀⠀⠀⠀│
-│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│
-│row70a⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│row70b⠀⠀⠀│row70c⠀⠀⠀⠀│row70d⠀⠀│row70e⠀⠀⠀│row70f⠀│
-│1⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│3⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│5⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│
-│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│
-│abc1⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│def2⠀⠀⠀⠀⠀│ghi3⠀⠀⠀⠀⠀⠀│jkl4⠀⠀⠀⠀│mno5⠀⠀⠀⠀⠀│pqr6⠀⠀⠀│
-│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│
-│r75a⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│r75b⠀⠀⠀⠀⠀│r75c⠀⠀⠀⠀⠀⠀│r75d⠀⠀⠀⠀│r75e⠀⠀⠀⠀⠀│r75f⠀⠀⠀│
-│mix⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│mix2⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│mix3⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│
-│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│
-│a⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│b⠀⠀⠀⠀⠀⠀⠀⠀│c⠀⠀⠀⠀⠀⠀⠀⠀⠀│d⠀⠀⠀⠀⠀⠀⠀│e⠀⠀⠀⠀⠀⠀⠀⠀│f⠀⠀⠀⠀⠀⠀│
-│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│
-│row80a⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│row80b⠀⠀⠀│row80c⠀⠀⠀⠀│row80d⠀⠀│row80e⠀⠀⠀│row80f⠀│
-│123⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│234⠀⠀⠀⠀⠀⠀│345⠀⠀⠀⠀⠀⠀⠀│456⠀⠀⠀⠀⠀│567⠀⠀⠀⠀⠀⠀│678⠀⠀⠀⠀│
-│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│
-│Aaa⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│Bbb⠀⠀⠀⠀⠀⠀│Ccc⠀⠀⠀⠀⠀⠀⠀│Ddd⠀⠀⠀⠀⠀│Eee⠀⠀⠀⠀⠀⠀│Fff⠀⠀⠀⠀│
-│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│
-│r85a⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│r85b⠀⠀⠀⠀⠀│r85c⠀⠀⠀⠀⠀⠀│r85d⠀⠀⠀⠀│r85e⠀⠀⠀⠀⠀│r85f⠀⠀⠀│
-│x1⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│x3⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│x5⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│
-│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│
-│abcde12345⠀⠀⠀⠀⠀⠀⠀⠀│f1⠀⠀⠀⠀⠀⠀⠀│g2⠀⠀⠀⠀⠀⠀⠀⠀│h3⠀⠀⠀⠀⠀⠀│i4⠀⠀⠀⠀⠀⠀⠀│j5⠀⠀⠀⠀⠀│
-│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│
-│row90a⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│row90b⠀⠀⠀│row90c⠀⠀⠀⠀│row90d⠀⠀│row90e⠀⠀⠀│row90f⠀│
-│1a2b3c⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│4d5e6f⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│7g8h9i⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│
-│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│
-│short⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│mid⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│longer⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│
-│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│
-│r95a⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│r95b⠀⠀⠀⠀⠀│r95c⠀⠀⠀⠀⠀⠀│r95d⠀⠀⠀⠀│r95e⠀⠀⠀⠀⠀│r95f⠀⠀⠀│
-│a1b⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│c2d⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│e3f⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│
-│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│
-│end1⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│end2⠀⠀⠀⠀⠀│end3⠀⠀⠀⠀⠀⠀│end4⠀⠀⠀⠀│end5⠀⠀⠀⠀⠀│end6⠀⠀⠀│
-│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│
+│A1⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│B22⠀⠀⠀⠀⠀⠀│C333⠀⠀⠀⠀⠀⠀│D4444⠀⠀⠀│E55555⠀⠀⠀│F666666│
+│alpha1⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│b2⠀⠀⠀⠀⠀⠀⠀│c3⠀⠀⠀⠀⠀⠀⠀⠀│d4⠀⠀⠀⠀⠀⠀│e5⠀⠀⠀⠀⠀⠀⠀│f6⠀⠀⠀⠀⠀│
+│ ===⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│- next -⠀│ line⠀⠀⠀⠀⠀│ has⠀⠀⠀│ no⠀⠀⠀⠀⠀⠀│ value │
+│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│
+│x1⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│y22⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│z333⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│
+│===⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│ - next -│ line⠀⠀⠀⠀⠀│ has⠀⠀⠀│linefeed⠀│ ⠀⠀⠀⠀⠀│
+┊↲⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀┊abc⠀⠀⠀⠀⠀⠀┊DEF123⠀⠀⠀⠀┊↲⠀⠀⠀⠀⠀⠀⠀┊gh⠀⠀⠀⠀⠀⠀⠀┊9⠀⠀⠀⠀⠀⠀┊
+┊"1"2h", 34567890a┊⠀⠀⠀⠀⠀⠀⠀⠀⠀┊⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀┊↲⠀⠀⠀⠀⠀⠀⠀┊⠀⠀⠀⠀⠀⠀⠀⠀⠀┊⠀⠀⠀⠀⠀⠀⠀┊
+┊⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀┊⠀⠀⠀⠀⠀⠀⠀⠀⠀┊⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀┊↲⠀⠀⠀⠀⠀⠀⠀┊⠀⠀⠀⠀⠀⠀⠀⠀⠀┊⠀⠀⠀⠀⠀⠀⠀┊
+│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│
+┊a⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀┊⠀⠀⠀⠀⠀⠀⠀⠀⠀┊b↲⠀⠀⠀⠀⠀⠀⠀⠀┊⠀⠀⠀⠀⠀⠀⠀⠀┊c⠀⠀⠀⠀⠀⠀⠀⠀┊⠀⠀⠀⠀⠀⠀⠀┊
+│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│
+│ ===⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│- next -⠀│ lines⠀⠀⠀⠀│ has⠀⠀⠀│tab⠀⠀⠀⠀⠀⠀│ ⠀⠀⠀⠀⠀│
+│⇥ l⇥ongtext01⠀⠀⠀⠀│mi⇥⇥d2⠀⠀⠀│s⠀⠀⠀⠀⠀⠀⠀⠀⠀│tt⠀⠀⠀⠀⠀⠀│uuu⠀⠀⠀⠀⠀⠀│vvvv⠀⠀⠀│
+│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⇥⇥⇥⇥⇥⇥⇥⠀⠀⠀│⇥⇥⇥⇥⇥⇥⇥⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│
+│R1C1⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│R1C2⠀⠀⠀⠀⠀│R1C3⠀⠀⠀⠀⠀⠀│R1C4⠀⠀⠀⠀│R1C5⠀⠀⠀⠀⠀│R1C6⠀⠀⠀│
+│ ===⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│- next -⠀│ line⠀⠀⠀⠀⠀│ is⠀⠀⠀⠀│multibyte│ value │
+│aaあい⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│いろ2⠀⠀⠀⠀│ぼんさんが│へを⠀⠀⠀⠀│こいた⠀⠀⠀│.!...⠀│
+│g1⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│h22⠀⠀⠀⠀⠀⠀│i333⠀⠀⠀⠀⠀⠀│j4444⠀⠀⠀│k55555⠀⠀⠀│l6⠀⠀⠀⠀⠀│
+│ ===⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│- next -⠀│ lines⠀⠀⠀⠀│ has⠀⠀⠀│linefeed+│tab ⠀⠀│
+┊⇥⇥ ⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀┊↲⠀⠀⠀⠀⠀⠀⠀⠀┊n⇥ ⠀⠀⠀⠀⠀⠀⠀┊⇥⇥ o333⠀┊⠀⠀⠀⠀⠀⠀⠀⠀⠀┊⠀⠀⠀⠀⠀⠀⠀┊
+│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⇥⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│
+│pqrst⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│uv⠀⠀⠀⠀⠀⠀⠀│wx1⠀⠀⠀⠀⠀⠀⠀│yz22⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│345⠀⠀⠀⠀│
+│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│
+│a1b2c3⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│XYZ⠀⠀⠀⠀⠀⠀⠀│7777⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│k9⠀⠀⠀⠀⠀│
+│short⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│longer12⠀│x⠀⠀⠀⠀⠀⠀⠀⠀⠀│yz⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│end⠀⠀⠀⠀│
+│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│
+│row15a⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│row15b⠀⠀⠀│row15c⠀⠀⠀⠀│row15d⠀⠀│row15e⠀⠀⠀│row15f⠀│
+│1⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│22⠀⠀⠀⠀⠀⠀⠀│333⠀⠀⠀⠀⠀⠀⠀│4444⠀⠀⠀⠀│55555⠀⠀⠀⠀│666666⠀│
+│alpha⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│beta⠀⠀⠀⠀⠀│gamma⠀⠀⠀⠀⠀│delta⠀⠀⠀│epsilon⠀⠀│zeta⠀⠀⠀│
+│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│
+│mix1⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│mix3⠀⠀⠀⠀⠀⠀│444⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│six6⠀⠀⠀│
+│abc123⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│def456⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│ghi789⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│
+│z⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│y⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│x⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│
+│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│
+│t1⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│t2⠀⠀⠀⠀⠀⠀⠀│t3⠀⠀⠀⠀⠀⠀⠀⠀│t4⠀⠀⠀⠀⠀⠀│t5⠀⠀⠀⠀⠀⠀⠀│t6⠀⠀⠀⠀⠀│
+│r1c1⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│r1c2⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│r1c4⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│r1c6⠀⠀⠀│
+│data1⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│data22⠀⠀⠀│data333⠀⠀⠀│data4444│data55555│data6⠀⠀│
+│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│
+│A⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│B⠀⠀⠀⠀⠀⠀⠀⠀│C⠀⠀⠀⠀⠀⠀⠀⠀⠀│D⠀⠀⠀⠀⠀⠀⠀│E⠀⠀⠀⠀⠀⠀⠀⠀│F⠀⠀⠀⠀⠀⠀│
+│abc⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│123⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│XYZ⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│
+│one1⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│two22⠀⠀⠀⠀│three3⠀⠀⠀⠀│four44⠀⠀│five5⠀⠀⠀⠀│six66⠀⠀│
+│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│
+│r30a⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│r30b⠀⠀⠀⠀⠀│r30c⠀⠀⠀⠀⠀⠀│r30d⠀⠀⠀⠀│r30e⠀⠀⠀⠀⠀│r30f⠀⠀⠀│
+│longvalue1⠀⠀⠀⠀⠀⠀⠀│mid⠀⠀⠀⠀⠀⠀│short⠀⠀⠀⠀⠀│s⠀⠀⠀⠀⠀⠀⠀│tt⠀⠀⠀⠀⠀⠀⠀│uuu⠀⠀⠀⠀│
+│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│
+│x⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│y⠀⠀⠀⠀⠀⠀⠀⠀│z⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│end⠀⠀⠀⠀│
+│abcde⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│fghij⠀⠀⠀⠀│klmno⠀⠀⠀⠀⠀│pqrst⠀⠀⠀│uvwxy⠀⠀⠀⠀│z⠀⠀⠀⠀⠀⠀│
+│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│
+│cell1⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│cell3⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│cell5⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│
+│111⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│2222⠀⠀⠀⠀⠀│33333⠀⠀⠀⠀⠀│444444⠀⠀│55⠀⠀⠀⠀⠀⠀⠀│6⠀⠀⠀⠀⠀⠀│
+│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│
+│row40a⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│row40b⠀⠀⠀│row40c⠀⠀⠀⠀│row40d⠀⠀│row40e⠀⠀⠀│row40f⠀│
+│a1⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│a2⠀⠀⠀⠀⠀⠀⠀│a3⠀⠀⠀⠀⠀⠀⠀⠀│a4⠀⠀⠀⠀⠀⠀│a5⠀⠀⠀⠀⠀⠀⠀│a6⠀⠀⠀⠀⠀│
+│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│
+│mixA⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│mixC⠀⠀⠀⠀⠀⠀│DDD⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│FFF⠀⠀⠀⠀│
+│123abc⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│456def⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│789ghi⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│000⠀⠀⠀⠀│
+│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│
+│r45a⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│r45b⠀⠀⠀⠀⠀│r45c⠀⠀⠀⠀⠀⠀│r45d⠀⠀⠀⠀│r45e⠀⠀⠀⠀⠀│r45f⠀⠀⠀│
+│alpha9⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│beta8⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│gamma7⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│
+│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│
+│A1B2C3⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│D4E5F6⠀⠀⠀│G7H8I9⠀⠀⠀⠀│J0⠀⠀⠀⠀⠀⠀│K1⠀⠀⠀⠀⠀⠀⠀│L2⠀⠀⠀⠀⠀│
+│short1⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│short3⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│short5⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│
+│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│
+│r50a⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│r50b⠀⠀⠀⠀⠀│r50c⠀⠀⠀⠀⠀⠀│r50d⠀⠀⠀⠀│r50e⠀⠀⠀⠀⠀│r50f⠀⠀⠀│
+│x1y2⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│z3⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│w4⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│v5⠀⠀⠀⠀⠀│
+│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│
+│longertext⠀⠀⠀⠀⠀⠀⠀│mid⠀⠀⠀⠀⠀⠀│small⠀⠀⠀⠀⠀│s1⠀⠀⠀⠀⠀⠀│s22⠀⠀⠀⠀⠀⠀│s333⠀⠀⠀│
+│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│
+│r55a⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│r55b⠀⠀⠀⠀⠀│r55c⠀⠀⠀⠀⠀⠀│r55d⠀⠀⠀⠀│r55e⠀⠀⠀⠀⠀│r55f⠀⠀⠀│
+│abc⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│def⠀⠀⠀⠀⠀⠀│ghi⠀⠀⠀⠀⠀⠀⠀│jkl⠀⠀⠀⠀⠀│mno⠀⠀⠀⠀⠀⠀│pqr⠀⠀⠀⠀│
+│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│
+│1a⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│2b⠀⠀⠀⠀⠀⠀⠀│3c⠀⠀⠀⠀⠀⠀⠀⠀│4d⠀⠀⠀⠀⠀⠀│5e⠀⠀⠀⠀⠀⠀⠀│6f⠀⠀⠀⠀⠀│
+│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│
+│row60a⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│row60b⠀⠀⠀│row60c⠀⠀⠀⠀│row60d⠀⠀│row60e⠀⠀⠀│row60f⠀│
+│value1⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│value3⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│value5⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│
+│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│
+│aa⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│bb⠀⠀⠀⠀⠀⠀⠀│cc⠀⠀⠀⠀⠀⠀⠀⠀│dd⠀⠀⠀⠀⠀⠀│ee⠀⠀⠀⠀⠀⠀⠀│ff⠀⠀⠀⠀⠀│
+│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│
+│r65a⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│r65b⠀⠀⠀⠀⠀│r65c⠀⠀⠀⠀⠀⠀│r65d⠀⠀⠀⠀│r65e⠀⠀⠀⠀⠀│r65f⠀⠀⠀│
+│x⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│y⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│z⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│
+│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│
+│alpha01⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│beta02⠀⠀⠀│gamma03⠀⠀⠀│delta04⠀│eps05⠀⠀⠀⠀│z6⠀⠀⠀⠀⠀│
+│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│
+│row70a⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│row70b⠀⠀⠀│row70c⠀⠀⠀⠀│row70d⠀⠀│row70e⠀⠀⠀│row70f⠀│
+│1⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│3⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│5⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│
+│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│
+│abc1⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│def2⠀⠀⠀⠀⠀│ghi3⠀⠀⠀⠀⠀⠀│jkl4⠀⠀⠀⠀│mno5⠀⠀⠀⠀⠀│pqr6⠀⠀⠀│
+│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│
+│r75a⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│r75b⠀⠀⠀⠀⠀│r75c⠀⠀⠀⠀⠀⠀│r75d⠀⠀⠀⠀│r75e⠀⠀⠀⠀⠀│r75f⠀⠀⠀│
+│mix⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│mix2⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│mix3⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│
+│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│
+│a⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│b⠀⠀⠀⠀⠀⠀⠀⠀│c⠀⠀⠀⠀⠀⠀⠀⠀⠀│d⠀⠀⠀⠀⠀⠀⠀│e⠀⠀⠀⠀⠀⠀⠀⠀│f⠀⠀⠀⠀⠀⠀│
+│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│
+│row80a⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│row80b⠀⠀⠀│row80c⠀⠀⠀⠀│row80d⠀⠀│row80e⠀⠀⠀│row80f⠀│
+│123⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│234⠀⠀⠀⠀⠀⠀│345⠀⠀⠀⠀⠀⠀⠀│456⠀⠀⠀⠀⠀│567⠀⠀⠀⠀⠀⠀│678⠀⠀⠀⠀│
+│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│
+│Aaa⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│Bbb⠀⠀⠀⠀⠀⠀│Ccc⠀⠀⠀⠀⠀⠀⠀│Ddd⠀⠀⠀⠀⠀│Eee⠀⠀⠀⠀⠀⠀│Fff⠀⠀⠀⠀│
+│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│
+│r85a⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│r85b⠀⠀⠀⠀⠀│r85c⠀⠀⠀⠀⠀⠀│r85d⠀⠀⠀⠀│r85e⠀⠀⠀⠀⠀│r85f⠀⠀⠀│
+│x1⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│x3⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│x5⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│
+│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│
+│abcde12345⠀⠀⠀⠀⠀⠀⠀│f1⠀⠀⠀⠀⠀⠀⠀│g2⠀⠀⠀⠀⠀⠀⠀⠀│h3⠀⠀⠀⠀⠀⠀│i4⠀⠀⠀⠀⠀⠀⠀│j5⠀⠀⠀⠀⠀│
+│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│
+│row90a⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│row90b⠀⠀⠀│row90c⠀⠀⠀⠀│row90d⠀⠀│row90e⠀⠀⠀│row90f⠀│
+│1a2b3c⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│4d5e6f⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│7g8h9i⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│
+│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│
+│short⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│mid⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│longer⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│
+│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│
+│r95a⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│r95b⠀⠀⠀⠀⠀│r95c⠀⠀⠀⠀⠀⠀│r95d⠀⠀⠀⠀│r95e⠀⠀⠀⠀⠀│r95f⠀⠀⠀│
+│a1b⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│c2d⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│e3f⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│
+│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│
+│end1⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│end2⠀⠀⠀⠀⠀│end3⠀⠀⠀⠀⠀⠀│end4⠀⠀⠀⠀│end5⠀⠀⠀⠀⠀│end6⠀⠀⠀│
+│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│
diff --git a/tests/cases/tir/redraw/run.vim b/tests/cases/tir/redraw/run.vim
index 11a082e..7648bcc 100644
--- a/tests/cases/tir/redraw/run.vim
+++ b/tests/cases/tir/redraw/run.vim
@@ -4,8 +4,11 @@
source $TIRENVI_ROOT/tests/common.vim
edit input.csv
+sleep 1m
call cursor(2, 1)
execute "normal! aADD\"
+sleep 1m
Tir redraw
+sleep 1m
call RunTest({})
\ No newline at end of file
diff --git a/tests/cases/ut/state/buffer/out-expected.txt b/tests/cases/ut/state/buffer/out-expected.txt
index 493768d..136f5e5 100644
--- a/tests/cases/ut/state/buffer/out-expected.txt
+++ b/tests/cases/ut/state/buffer/out-expected.txt
@@ -1,23 +1,23 @@
=== MESSAGE ===
[TIR][🟧PROBE][[string ":lua"]:14] buffer.get_lines(0, 0, -1)
-[TIR][DEBUG][buffer.lua:81] ===== bufnr=1, start=0, end=21, lines[1]=0, line[21]=20,
+[TIR][DEBUG][buffer.lua:80] ===== bufnr=1, start=0, end=21, lines[1]=0, line[21]=20,
[TIR][DEBUG][[string ":lua"]:16] { "0", "1", "2", "3", "4", "5", "6", "7", "8", "9", "10", "11", "12", "13", "14", "15", "16", "17", "18", "19", "20" }
[TIR][DEBUG][[string ":lua"]:18] { "0", "1", "2", "3", "4", "5", "6", "7", "8", "9", "10", "11", "12", "13", "14", "15", "16", "17", "18", "19", "20" }
[TIR][🟧PROBE][[string ":lua"]:19] buffer.get_lines(0, -100, 100)
[TIR][DEBUG][[string ":lua"]:21] { "0", "1", "2", "3", "4", "5", "6", "7", "8", "9", "10", "11", "12", "13", "14", "15", "16", "17", "18", "19", "20" }
[TIR][🟧PROBE][[string ":lua"]:22] clear & buffer.get_lines(0, 9, 13)
-[TIR][DEBUG][buffer.lua:81] ===== bufnr=1, start=6, end=16, lines[1]=6, line[10]=15,
+[TIR][DEBUG][buffer.lua:80] ===== bufnr=1, start=6, end=16, lines[1]=6, line[10]=15,
[TIR][DEBUG][[string ":lua"]:25] { "9", "10", "11", "12" }
[TIR][🟧PROBE][[string ":lua"]:26] buffer.get_line(0, 6)
[TIR][DEBUG][[string ":lua"]:28] 6
[TIR][🟧PROBE][[string ":lua"]:29] buffer.get_line(0, 2)
-[TIR][DEBUG][buffer.lua:81] ===== bufnr=1, start=0, end=6, lines[1]=0, line[6]=5,
+[TIR][DEBUG][buffer.lua:80] ===== bufnr=1, start=0, end=6, lines[1]=0, line[6]=5,
[TIR][DEBUG][[string ":lua"]:31] 2
[TIR][🟧PROBE][[string ":lua"]:32] buffer.get_line(0, 19)
-[TIR][DEBUG][buffer.lua:81] ===== bufnr=1, start=15, end=21, lines[1]=15, line[6]=20,
+[TIR][DEBUG][buffer.lua:80] ===== bufnr=1, start=15, end=21, lines[1]=15, line[6]=20,
[TIR][DEBUG][[string ":lua"]:34] 19
[TIR][🟧PROBE][[string ":lua"]:35] buffer.get_line(0, 10)
-[TIR][DEBUG][buffer.lua:81] ===== bufnr=1, start=4, end=11, lines[1]=4, line[7]=10,
+[TIR][DEBUG][buffer.lua:80] ===== bufnr=1, start=4, end=11, lines[1]=4, line[7]=10,
[TIR][DEBUG][[string ":lua"]:37] 10
[TIR][🟧PROBE][[string ":lua"]:38] buffer.get_line(0, -1)
[TIR][DEBUG][[string ":lua"]:40] nil
From 66b927e66ff0217bf8be73d8a53aec3f1ef0f6c0 Mon Sep 17 00:00:00 2001
From: OGAWA Keiji <70509917+kibi2@users.noreply.github.com>
Date: Wed, 8 Apr 2026 11:01:34 +0900
Subject: [PATCH 4/4] feat: wrap cell content to fit column width
---
docs/testing.md | 25 ++
lua/tirenvi/config.lua | 2 +-
lua/tirenvi/core/attr.lua | 21 +-
lua/tirenvi/core/block.lua | 18 +-
lua/tirenvi/core/blocks.lua | 10 +-
lua/tirenvi/core/cell.lua | 18 +-
lua/tirenvi/core/repair.lua | 32 ++-
lua/tirenvi/core/vim_parser.lua | 8 +-
lua/tirenvi/editor/commands.lua | 15 +-
lua/tirenvi/init.lua | 35 ++-
lua/tirenvi/state/buf_state.lua | 1 -
lua/tirenvi/state/buffer.lua | 15 +-
lua/tirenvi/ui.lua | 15 +-
tests/cases/check/health-ng/out-expected.txt | 2 +-
tests/cases/check/health/out-expected.txt | 2 +-
tests/cases/filetype/md2csv/out-expected.txt | 3 +-
.../cases/insert/lf-in-cell/out-expected.txt | 6 +-
.../cases/insert/tab-expand/out-expected.txt | 8 +-
tests/cases/insert/tab/out-expected.txt | 15 +-
tests/cases/normal/join/out-expected.txt | 8 +-
tests/cases/normal/o/out-expected.txt | 10 +-
tests/cases/normal/o/run.vim | 2 +-
tests/cases/normal/yyp/out-expected.txt | 16 +-
tests/cases/normal/yyp/run.vim | 7 +
tests/cases/save/as-csv/out-expected.txt | 241 +-----------------
tests/cases/save/as-csv/run.vim | 15 +-
tests/cases/textobj/vil/out-expected.txt | 12 +-
tests/cases/textobj/width/out-expected.txt | 22 +-
tests/cases/textobj/width/run.vim | 11 +
tests/cases/tir/on/run.vim | 2 +-
tests/cases/ut/state/buffer/out-expected.txt | 10 +-
tests/data/simple.md | 3 +-
32 files changed, 259 insertions(+), 351 deletions(-)
create mode 100644 docs/testing.md
diff --git a/docs/testing.md b/docs/testing.md
new file mode 100644
index 0000000..5c79215
--- /dev/null
+++ b/docs/testing.md
@@ -0,0 +1,25 @@
+# Test Specification
+
+## About This Test Specification
+
+* Define specifications first following a test-first approach
+* Each test case corresponds to a single commit
+* Tests are written in GFM (GitHub Flavored Markdown) table format
+* The table format also serves as a real-world usage test for tirenvi
+
+### Notes
+
+* Since cell content can become lengthy, it may be difficult to read with standard Markdown rendering
+* Viewing with tirenvi is recommended
+
+---
+
+## Test Case Template
+
+### Column Width Restoration
+
+| No | Preconditions | Action | Expected | Date | Notes | Commit |
+| --- | --- | --- | --- | --- | --- | --- |
+| | CSV is displayed in tir-vim mode
csv tir-vim表示中 | Switch back to flat mode with `Tir toggle`
`echo b:tirenvi`
Tir toggleでflat表示に戻す
echo b:tirenvi | `columns` field exists
columnsフィールドあり | 2026/4/9 | | |
+
+
diff --git a/lua/tirenvi/config.lua b/lua/tirenvi/config.lua
index 675c620..7b6eb0b 100644
--- a/lua/tirenvi/config.lua
+++ b/lua/tirenvi/config.lua
@@ -25,7 +25,7 @@ local defaults = {
parser_map = {
csv = { executable = "tir-csv", required_version = "0.1.4" },
tsv = { executable = "tir-csv", options = { "--delimiter", "\t" }, required_version = "0.1.4" },
- markdown = { executable = "tir-gfm-lite", allow_plain = true, required_version = "0.1.3" },
+ markdown = { executable = "tir-gfm-lite", allow_plain = true, required_version = "0.1.5" },
pukiwiki = { executable = "tir-pukiwiki", allow_plain = true, required_version = "0.1.0" },
},
log = {
diff --git a/lua/tirenvi/core/attr.lua b/lua/tirenvi/core/attr.lua
index 9a49df3..561f27a 100644
--- a/lua/tirenvi/core/attr.lua
+++ b/lua/tirenvi/core/attr.lua
@@ -17,6 +17,7 @@ local function get_columns(cells)
local columns = {}
local widths = Cell.get_widths(cells)
for _, width in ipairs(widths) do
+ width = math.max(width, 2)
columns[#columns + 1] = { width = width }
end
return columns
@@ -96,26 +97,34 @@ end
---@return Attr
function M.grid.new(record)
if record then
- return M.grid.new_from_record(record)
+ return M.grid.new_from_record(record.row)
else
return new_from_columns({})
end
end
----@param record Record_grid
+---@param cells Cell[]
---@return Attr
-function M.grid.new_from_record(record)
- return new_from_columns(get_columns(record.row))
+function M.grid.new_from_record(cells)
+ return new_from_columns(get_columns(cells))
end
---@param records Record_grid[]
---@return Attr
-function M.new_merged_attr(records)
+function M.grid.new_merged_attr(records)
local attr = M.grid.new()
for _, record in ipairs(records) do
- merge(attr, M.grid.new_from_record(record))
+ merge(attr, M.grid.new_from_record(record.row))
end
return attr
end
+---@self Attr
+---@param icol integer
+---@param width integer
+function M.grid:set_width(icol, width)
+ self.columns[icol] = self.columns[icol] or {}
+ self.columns[icol].width = math.max(width, 2)
+end
+
return M
diff --git a/lua/tirenvi/core/block.lua b/lua/tirenvi/core/block.lua
index ab501c6..c895af7 100644
--- a/lua/tirenvi/core/block.lua
+++ b/lua/tirenvi/core/block.lua
@@ -92,15 +92,16 @@ local function unwrap(self)
local records = {}
---@type Record_grid
local new_record = nil
- local cont = false
+ local cont_prev = false
for _, record in ipairs(self.records) do
- if not cont then
+ if not cont_prev then
new_record = Record.grid.new(record.row)
records[#records + 1] = new_record
else
Record.grid.concat(new_record, record)
end
- cont = record._has_continuation
+ cont_prev = record._has_continuation
+ new_record._has_continuation = cont_prev
end
self.records = records
end
@@ -124,7 +125,7 @@ end
---@self Block
local function ensure_table_attr(self)
if #self.attr.columns == 0 then
- self.attr = Attr.new_merged_attr(self.records)
+ self.attr = Attr.grid.new_merged_attr(self.records)
end
end
@@ -239,11 +240,14 @@ function M.grid:to_flat()
end
---@self Block_grid
-function M.grid:from_vim()
+---@param no_unwrap boolean
+function M.grid:from_vim(no_unwrap)
ensure_table_attr(self)
remove_padding(self)
apply_column_count(self, #self.attr.columns)
- unwrap(self)
+ if not no_unwrap then
+ unwrap(self)
+ end
end
--- Normalize all rows in a grid block to have the same number of columns.
@@ -251,8 +255,8 @@ end
function M.grid:to_vim()
wrap_lf(self)
ensure_table_attr(self)
- wrap_width(self)
apply_column_count(self, #self.attr.columns)
+ wrap_width(self)
apply_column_widths(self)
end
diff --git a/lua/tirenvi/core/blocks.lua b/lua/tirenvi/core/blocks.lua
index e571778..1fb464b 100644
--- a/lua/tirenvi/core/blocks.lua
+++ b/lua/tirenvi/core/blocks.lua
@@ -78,6 +78,8 @@ end
local function apply_reference_attr_single(blocks, attr_prev, attr_next)
M.merge_blocks(blocks)
if Attr.is_conflict(attr_prev, attr_next, false) then
+ log.debug("===-===-===-=== conflict")
+ log.debug(blocks[1].records[1])
return false, "conflict"
end
if #blocks == 0 then
@@ -94,6 +96,9 @@ local function apply_reference_attr_single(blocks, attr_prev, attr_next)
end
elseif Attr.is_plain(attr) then
if block.kind == CONST.KIND.GRID then
+ log.debug("===-===-===-=== grid in plain")
+ log.debug(attr_prev)
+ log.debug(attr_next)
return false, "grid in plain"
end
end
@@ -196,11 +201,12 @@ end
--- Convert NDJSON records into normalized blocks.
---@param records Record[]
+---@param no_unwrap boolean
---@return Blocks
-function M.new_from_vim(records)
+function M.new_from_vim(records, no_unwrap)
local self = build_blocks(records)
for _, block in ipairs(self) do
- Block[block.kind].from_vim(block)
+ Block[block.kind].from_vim(block, no_unwrap)
end
return self
diff --git a/lua/tirenvi/core/cell.lua b/lua/tirenvi/core/cell.lua
index 01eea75..1d3d597 100644
--- a/lua/tirenvi/core/cell.lua
+++ b/lua/tirenvi/core/cell.lua
@@ -106,36 +106,26 @@ end
---@return Cell[]
function M:wrap_width(width)
local cells = {}
-
- -- 空やwidth不正はそのまま返す
if not self or self == "" or width <= 0 then
return { self }
end
-
local chars = util.utf8_chars(self)
-
local current = ""
local current_width = 0
-
- for _, ch in ipairs(chars) do
- local ch_width = display_width(ch)
-
- -- 追加すると幅オーバーする場合は確定
+ for _, char in ipairs(chars) do
+ local ch_width = display_width(char)
if current ~= "" and current_width + ch_width > width then
cells[#cells + 1] = current
- current = ch
+ current = char
current_width = ch_width
else
- current = current .. ch
+ current = current .. char
current_width = current_width + ch_width
end
end
-
- -- 残りを追加
if current ~= "" then
cells[#cells + 1] = current
end
-
return cells
end
diff --git a/lua/tirenvi/core/repair.lua b/lua/tirenvi/core/repair.lua
index fff8c20..8daa464 100644
--- a/lua/tirenvi/core/repair.lua
+++ b/lua/tirenvi/core/repair.lua
@@ -17,6 +17,7 @@ local Blocks = require("tirenvi.core.blocks")
local Attr = require("tirenvi.core.attr")
local vim_parser = require("tirenvi.core.vim_parser")
local flat_parser = require("tirenvi.core.flat_parser")
+local tir_vim = require("tirenvi.core.tir_vim")
local ui = require("tirenvi.ui")
-----------------------------------------------------------------------
@@ -39,19 +40,22 @@ local api = vim.api
--- If a new line is added above a table, it is treated as a plain line,
--- so no modification is applied.
---@param vi_lines string[]
----@param attr_prev Attr|nil
-local function fix_empty_line_after_table(vi_lines, attr_prev)
- if not attr_prev then
+---@param line_prev string|nil
+local function fix_empty_line_after_table(vi_lines, line_prev)
+ if not line_prev then
return
end
if #vi_lines == 0 then
return
end
- if not Attr.is_plain(attr_prev) then
- if vi_lines[1] == "" then
- vi_lines[1] = config.marks.pipe .. config.marks.pipe
- end
+ if vi_lines[1] ~= "" then
+ return
+ end
+ local pipe = tir_vim.get_pipe_char(line_prev)
+ if not pipe then
+ return
end
+ vi_lines[1] = pipe .. pipe
end
---@param bufnr number
@@ -61,8 +65,9 @@ end
---@return Blocks
local function get_blocks(bufnr, start_row, end_row, attr_prev)
local vi_lines = buffer.get_lines(bufnr, start_row, end_row)
- fix_empty_line_after_table(vi_lines, attr_prev)
- return vim_parser.parse(vi_lines)
+ local line_prev = buffer.get_line(bufnr, start_row - 1)
+ fix_empty_line_after_table(vi_lines, line_prev)
+ return vim_parser.parse(vi_lines, true)
end
---@param bufnr number
@@ -72,9 +77,11 @@ end
---@return Attr|nil
local function get_reference_attrs(bufnr, start_row, end_row)
local line_prev, line_next = buffer.get_lines_around(bufnr, start_row, end_row)
- log.debug("[prev] %s [next] %s", tostring(line_prev), tostring(line_next))
+ local target = buffer.get_line(bufnr, start_row)
+ log.debug("[prev] %s [target] %s [next] %s", tostring(line_prev), tostring(target), tostring(line_next))
local attr_prev = vim_parser.parse_to_attr(line_prev)
local attr_next = vim_parser.parse_to_attr(line_next)
+ log.debug({ attr_prev, attr_next })
return attr_prev, attr_next
end
@@ -86,10 +93,15 @@ local function get_repaired_lines(bufnr, start_row, end_row)
log.debug("===-===-===-=== validation start (%d, %d) ===-===-===-===", start_row, end_row)
local attr_prev, attr_next = get_reference_attrs(bufnr, start_row, end_row)
local blocks = get_blocks(bufnr, start_row, end_row, attr_prev)
+ log.debug(#blocks ~= 0 and blocks[1].records)
local parser = util.get_parser(bufnr)
local allow_plain = parser.allow_plain
+ log.debug(#blocks ~= 0 and blocks[1].records[1])
local success, reason = Blocks.repair(blocks, attr_prev, attr_next, allow_plain)
+ log.debug(#blocks ~= 0 and blocks[1].attr)
+ log.debug(#blocks ~= 0 and blocks[1].records[1])
if not success then
+ log.debug("===-===-===-=== not success: %s", reason)
if reason == "grid in plain" then
return flat_parser.unparse(blocks, parser)
elseif reason == "conflict" then
diff --git a/lua/tirenvi/core/vim_parser.lua b/lua/tirenvi/core/vim_parser.lua
index ba4f995..0764087 100644
--- a/lua/tirenvi/core/vim_parser.lua
+++ b/lua/tirenvi/core/vim_parser.lua
@@ -65,10 +65,12 @@ end
-----------------------------------------------------------------------
---@param vi_lines string[]
+---@param no_unwrap boolean|nil
---@return Blocks
-function M.parse(vi_lines)
+function M.parse(vi_lines, no_unwrap)
+ no_unwrap = no_unwrap or false
local records = tir_vim_to_ndjsons(vi_lines)
- local blocks = Blocks.new_from_vim(records)
+ local blocks = Blocks.new_from_vim(records, no_unwrap)
return blocks
end
@@ -86,7 +88,7 @@ function M.parse_to_attr(vi_line)
return nil
end
local record = tir_vim_to_ndjson(vi_line)
- return Attr[record.kind].new_from_record(record)
+ return Attr[record.kind].new_from_record(record.row)
end
return M
diff --git a/lua/tirenvi/editor/commands.lua b/lua/tirenvi/editor/commands.lua
index 3d25d33..53c4175 100644
--- a/lua/tirenvi/editor/commands.lua
+++ b/lua/tirenvi/editor/commands.lua
@@ -7,6 +7,7 @@ local init = require("tirenvi.init")
local notify = require("tirenvi.util.notify")
local log = require("tirenvi.util.log")
local errors = require("tirenvi.util.errors")
+local ui = require("tirenvi.ui")
-- module
local M = {}
@@ -38,6 +39,8 @@ local function cmd_toggle(bufnr, opts)
}) then
return
end
+ ui.special_clear()
+ ui.special_apply()
init.toggle(bufnr)
end
@@ -75,12 +78,18 @@ end
local commands = {
toggle = cmd_toggle,
redraw = cmd_redraw,
- hbar = cmd_hbar,
+ _hbar = cmd_hbar,
width = cmd_width,
}
+
local function get_command_keys()
- local keys = vim.tbl_keys(commands)
+ local keys = {}
+ for key, _ in pairs(commands) do
+ if not key:match("^_") then
+ table.insert(keys, key)
+ end
+ end
table.sort(keys)
return keys
end
@@ -96,7 +105,7 @@ end
---@param opts any
local function on_tir(opts)
local sub = opts.fargs[1]
- local command = sub:match("^[A-Za-z]+") or ""
+ local command = sub:match("^[A-Za-z_]+") or ""
if not sub then
notify.info(build_usage())
return
diff --git a/lua/tirenvi/init.lua b/lua/tirenvi/init.lua
index 1de53ce..76c2606 100644
--- a/lua/tirenvi/init.lua
+++ b/lua/tirenvi/init.lua
@@ -9,6 +9,7 @@ local flat_parser = require("tirenvi.core.flat_parser")
local vim_parser = require("tirenvi.core.vim_parser")
local tir_vim = require("tirenvi.core.tir_vim")
local Blocks = require("tirenvi.core.blocks")
+local Attr = require("tirenvi.core.attr")
local ui = require("tirenvi.ui")
local notify = require("tirenvi.util.notify")
@@ -46,7 +47,7 @@ local function from_flat(bufnr, no_undo)
util.assert_no_reserved_marks(fl_lines)
local blocks = flat_parser.parse(fl_lines, parser)
local vi_lines = vim_parser.unparse(blocks)
- ui.set_lines(bufnr, 0, -1, vi_lines, true, no_undo)
+ ui.set_lines(bufnr, 0, -1, vi_lines, no_undo)
end
---@return integer|nil
@@ -81,17 +82,17 @@ local function change_width(line_provider, operator, count)
if count <= 0 then
return
end
- block.attr.columns[icol].width = count
+ Attr.grid.set_width(block.attr, icol, count)
elseif operator == "+" then
if count == 0 then
count = 1
end
- block.attr.columns[icol].width = old_width + count
+ Attr.grid.set_width(block.attr, icol, old_width + count)
elseif operator == "-" then
if count == 0 then
count = 1
end
- block.attr.columns[icol].width = old_width - count
+ Attr.grid.set_width(block.attr, icol, old_width - count)
end
local vi_lines = vim_parser.unparse(blocks)
ui.set_lines(bufnr, top - 1, bottom, vi_lines)
@@ -142,12 +143,26 @@ function M.enable(bufnr)
from_flat(bufnr)
end
+local buffer_backup
+
--- Convert current buffer (or specified buffer) from display format back to file format (tsv)
---@param bufnr number Buffer number.
---@return nil
function M.export_flat(bufnr)
+ buffer_backup = buffer.get_lines(bufnr, 0, -1)
to_flat(bufnr)
- log.debug("export_flat done")
+end
+
+--- Convert current buffer (or specified buffer) from plain format to view format
+---@param bufnr number Buffer number.
+---@return nil
+function M.restore_tir_vim(bufnr)
+ if not buffer_backup then
+ return
+ end
+ pcall(vim.cmd, "undojoin")
+ buffer.set_lines(bufnr, 0, -1, buffer_backup)
+ buffer_backup = nil
end
---@param bufnr number Buffer number.
@@ -166,14 +181,6 @@ function M.toggle(bufnr)
end
end
---- Convert current buffer (or specified buffer) from plain format to view format
----@param bufnr number Buffer number.
----@return nil
-function M.restore_tir_vim(bufnr)
- pcall(vim.cmd, "undojoin")
- from_flat(bufnr) -- TODO recover Attr_grid
-end
-
---@param bufnr number|nil Buffer number.
---@return nil
function M.redraw(bufnr)
@@ -191,7 +198,7 @@ end
---@param bufnr number Buffer number.
---@return nil
function M.hbar(bufnr)
- vim.w.tirenvi_view_bar = not (vim.w.tirenvi_view_bar or false)
+ vim.w.tirenvi_view_nobar = not (vim.w.tirenvi_view_nobar or false)
ui.special_apply()
end
diff --git a/lua/tirenvi/state/buf_state.lua b/lua/tirenvi/state/buf_state.lua
index c10c8d4..1324c16 100644
--- a/lua/tirenvi/state/buf_state.lua
+++ b/lua/tirenvi/state/buf_state.lua
@@ -56,7 +56,6 @@ end
function M.is_undo_mode(bufnr)
local pre = buffer.get(bufnr, buffer.IKEY.UNDO_TREE_LAST)
local next = fn.undotree(bufnr).seq_last
- --log.probe("===-===-===-=== und/redo mode[%d] (%d, %d) ===-===-===-===", bufnr, pre, next)
if pre == next then
log.debug("===-===-===-=== und/redo mode[%d] (%d, %d) ===-===-===-===", bufnr, pre, next)
return true
diff --git a/lua/tirenvi/state/buffer.lua b/lua/tirenvi/state/buffer.lua
index 039fbff..e85b74b 100644
--- a/lua/tirenvi/state/buffer.lua
+++ b/lua/tirenvi/state/buffer.lua
@@ -51,10 +51,9 @@ end
---@param bufnr number
---@param i_start integer
---@param i_end integer
----@param strict boolean
---@param lines string[]
---@param no_undo boolean|nil
-local function set_lines(bufnr, i_start, i_end, strict, lines, no_undo)
+local function set_lines(bufnr, i_start, i_end, lines, no_undo)
M.clear_cache()
local undolevels = bo[bufnr].undolevels
if no_undo then
@@ -63,7 +62,9 @@ local function set_lines(bufnr, i_start, i_end, strict, lines, no_undo)
bo[bufnr].undolevels = -1
end
end
- api.nvim_buf_set_lines(bufnr, i_start, i_end, strict, lines)
+ i_start = math.max(i_start, 0)
+ M.set_undo_tree_last(bufnr)
+ api.nvim_buf_set_lines(bufnr, i_start, i_end, false, lines)
fix_cursor_utf8()
bo[bufnr].undolevels = undolevels
end
@@ -156,14 +157,12 @@ end
---@param i_start integer
---@param i_end integer integer
---@param lines string[]
----@param strict boolean|nil
---@param no_undo boolean|nil
-function M.set_lines(bufnr, i_start, i_end, lines, strict, no_undo)
- strict = strict == true
- log.debug("=== set_lines(%d, %d)[1]%s [%d]%s", i_start, i_end, lines[1], #lines, lines[#lines])
+function M.set_lines(bufnr, i_start, i_end, lines, no_undo)
+ log.debug("=== set_lines(%d, %d)[1]%s [%d]%s", i_start, i_end, tostring(lines[1]), #lines, tostring(lines[#lines]))
log.debug(M.get_state(bufnr))
M.set(bufnr, M.IKEY.PATCH_DEPTH, M.get(bufnr, M.IKEY.PATCH_DEPTH) + 1)
- local ok, err = pcall(set_lines, bufnr, i_start, i_end, strict, lines, no_undo)
+ local ok, err = pcall(set_lines, bufnr, i_start, i_end, lines, no_undo)
M.set(bufnr, M.IKEY.PATCH_DEPTH, M.get(bufnr, M.IKEY.PATCH_DEPTH) - 1)
assert(M.get(bufnr, M.IKEY.PATCH_DEPTH) == 0)
if not ok then
diff --git a/lua/tirenvi/ui.lua b/lua/tirenvi/ui.lua
index c1aa745..42b8bc2 100644
--- a/lua/tirenvi/ui.lua
+++ b/lua/tirenvi/ui.lua
@@ -71,10 +71,9 @@ end
---@param i_start integer
---@param i_end integer integer
---@param lines string[]
----@param strict boolean|nil
---@param no_undo boolean|nil
-function M.set_lines(bufnr, i_start, i_end, lines, strict, no_undo)
- buffer.set_lines(bufnr, i_start, i_end, lines, strict, no_undo)
+function M.set_lines(bufnr, i_start, i_end, lines, no_undo)
+ buffer.set_lines(bufnr, i_start, i_end, lines, no_undo)
end
-- =========================
@@ -123,8 +122,7 @@ function M.special_apply()
add_match(winid, "TirenviPadding", pat_v(config.marks.padding), 10)
add_match(winid, "TirenviSpecialChar", pat_v(config.marks.lf), 20)
add_match(winid, "TirenviSpecialChar", pat_v(config.marks.tab), 20)
- vim.w.tirenvi_view_bar = true
- if vim.w.tirenvi_view_bar then
+ if not vim.w.tirenvi_view_nobar then
add_match(winid, "TirenviPipeHbar", pat_v(pipen), 30)
add_match(winid, "TirenviHbar", pat_line_inner(pipen), 20)
add_match(winid, "TirenviPipeNoHbar", pat_line_start(pipen), 40)
@@ -136,11 +134,8 @@ function M.special_apply()
vim.opt_local.conceallevel = 1
vim.opt_local.concealcursor = "nc"
local pattern = vim.fn.escape(pipec, [[/\]])
- vim.cmd(string.format(
- [[syntax match TirPipeC /%s/ conceal cchar=%s]],
- pattern,
- pipen
- ))
+ local command = string.format([[syntax match TirPipeC /%s/ conceal cchar=%s]], pattern, pipen)
+ vim.cmd(command)
end
function M.special_clear()
diff --git a/tests/cases/check/health-ng/out-expected.txt b/tests/cases/check/health-ng/out-expected.txt
index 73d1622..f1e8668 100644
--- a/tests/cases/check/health-ng/out-expected.txt
+++ b/tests/cases/check/health-ng/out-expected.txt
@@ -11,7 +11,7 @@
- ❌ ERROR Could not parse tir-pukiwiki version string: 0.
- ❌ ERROR foo not found in PATH
- ❌ ERROR tir-csv >= 1.1.4 required, but 0.1.4 found
-- ❌ ERROR tir-gfm-lite >= 0.2 required, but 0.1.3 found
+- ❌ ERROR tir-gfm-lite >= 0.2 required, but 0.1.5 found
=== DISPLAY ===
==============================================================================
tirenvi ~
diff --git a/tests/cases/check/health/out-expected.txt b/tests/cases/check/health/out-expected.txt
index 1b7cecf..9e7bb47 100644
--- a/tests/cases/check/health/out-expected.txt
+++ b/tests/cases/check/health/out-expected.txt
@@ -7,7 +7,7 @@
- ✅ OK tir-csv found
- ✅ OK tir-csv version 0.1.4 OK
- ✅ OK tir-gfm-lite found
-- ✅ OK tir-gfm-lite version 0.1.3 OK
+- ✅ OK tir-gfm-lite version 0.1.5 OK
- ✅ OK tir-pukiwiki found
- ✅ OK tir-pukiwiki version 0.1.0 OK
=== DISPLAY ===
diff --git a/tests/cases/filetype/md2csv/out-expected.txt b/tests/cases/filetype/md2csv/out-expected.txt
index e22decc..4c39fa6 100644
--- a/tests/cases/filetype/md2csv/out-expected.txt
+++ b/tests/cases/filetype/md2csv/out-expected.txt
@@ -5,7 +5,8 @@ gfm
| Name | Age | City |
| ---- | --- | ---- |
| Alice | 23 | Tokyo |
-| Bob | 31 | Osaka |
+| Bob | 31 | Osaka
nipponbashi |
| Carol | 27 | Nagoya |
markdown
+
diff --git a/tests/cases/insert/lf-in-cell/out-expected.txt b/tests/cases/insert/lf-in-cell/out-expected.txt
index cfdcaf7..5e996c3 100644
--- a/tests/cases/insert/lf-in-cell/out-expected.txt
+++ b/tests/cases/insert/lf-in-cell/out-expected.txt
@@ -5,9 +5,9 @@
=== DISPLAY ===
│1a│2 a│ 3a│
-┊↲⠀┊2b┊3↲┊
-┊1↲┊⠀⠀┊b⇥┊
-│⠀⠀│⠀⠀│⠀⠀│
+┊↲⠀┊2b⠀┊3↲⠀┊
+┊1↲┊⠀⠀⠀┊⠀⠀⠀┊
+│⠀⠀│⠀⠀⠀│b⇥⠀│
┊↲⠀┊⠀⠀⠀┊⇥c⠀┊
┊↲⠀┊⠀⠀⠀┊⠀⠀⠀┊
┊↲⠀┊⠀⠀⠀┊⠀⠀⠀┊
diff --git a/tests/cases/insert/tab-expand/out-expected.txt b/tests/cases/insert/tab-expand/out-expected.txt
index afbc389..b690c91 100644
--- a/tests/cases/insert/tab-expand/out-expected.txt
+++ b/tests/cases/insert/tab-expand/out-expected.txt
@@ -2,8 +2,12 @@
=== DISPLAY ===
│1a│2 a│ 3a│
-┊ 1↲┊2b┊3↲┊
-│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀│b⇥│
+┊ ┊2b⠀┊3↲⠀┊
+┊ ┊⠀⠀⠀┊⠀⠀⠀┊
+┊ ┊⠀⠀⠀┊⠀⠀⠀┊
+┊ 1┊⠀⠀⠀┊⠀⠀⠀┊
+┊↲⠀┊⠀⠀⠀┊⠀⠀⠀┊
+│⠀⠀│⠀⠀⠀│b⇥⠀│
┊↲⠀┊⠀⠀⠀┊⇥c⠀┊
┊↲⠀┊⠀⠀⠀┊⠀⠀⠀┊
┊↲⠀┊⠀⠀⠀┊⠀⠀⠀┊
diff --git a/tests/cases/insert/tab/out-expected.txt b/tests/cases/insert/tab/out-expected.txt
index 1ae8732..fa99c74 100644
--- a/tests/cases/insert/tab/out-expected.txt
+++ b/tests/cases/insert/tab/out-expected.txt
@@ -4,10 +4,11 @@
[TIR][ERROR][[string ":lua"]:5] [CI] key = A5
=== DISPLAY ===
-│1a⠀│2 a│ 3a⠀│
-┊⇥1↲┊2b⠀┊3↲⠀⠀┊
-│⠀⠀⠀│⠀⠀⠀│b⇥⠀⠀│
-┊↲⠀⠀┊⠀⠀⠀┊⇥c⠀⠀┊
-┊↲⠀⠀┊⠀⠀⠀┊⠀⠀⠀⠀┊
-┊↲⠀⠀┊⠀⠀⠀┊⠀⠀⠀⠀┊
-│⠀⠀⠀│⠀⠀⠀│⠀⠀⠀⠀│
+│1a│2 a│ 3a│
+┊⇥1┊2b⠀┊3↲⠀┊
+┊↲⠀┊⠀⠀⠀┊⠀⠀⠀┊
+│⠀⠀│⠀⠀⠀│b⇥⠀│
+┊↲⠀┊⠀⠀⠀┊⇥c⠀┊
+┊↲⠀┊⠀⠀⠀┊⠀⠀⠀┊
+┊↲⠀┊⠀⠀⠀┊⠀⠀⠀┊
+│⠀⠀│⠀⠀⠀│⠀⠀⠀│
diff --git a/tests/cases/normal/join/out-expected.txt b/tests/cases/normal/join/out-expected.txt
index cb4cf3c..bbbff13 100644
--- a/tests/cases/normal/join/out-expected.txt
+++ b/tests/cases/normal/join/out-expected.txt
@@ -2,7 +2,13 @@
=== DISPLAY ===
│1a│2 a│ 3a│
-┊1a┊2 a┊ 3a 1↲ 2b 3↲┊
+┊1a┊2 a┊ 3a┊
+┊⠀⠀┊⠀⠀⠀┊ ┊
+┊⠀⠀┊⠀⠀⠀┊1↲ ┊
+┊⠀⠀┊⠀⠀⠀┊2b ┊
+┊⠀⠀┊⠀⠀⠀┊3↲⠀┊
+┊⠀⠀┊⠀⠀⠀┊ ┊
+│⠀⠀│⠀⠀⠀│ ⠀⠀│
│⠀⠀│⠀⠀⠀│b⇥⠀│
┊↲⠀┊⠀⠀⠀┊⇥c⠀┊
┊↲⠀┊⠀⠀⠀┊⠀⠀⠀┊
diff --git a/tests/cases/normal/o/out-expected.txt b/tests/cases/normal/o/out-expected.txt
index 487e983..d910e21 100644
--- a/tests/cases/normal/o/out-expected.txt
+++ b/tests/cases/normal/o/out-expected.txt
@@ -1,12 +1,16 @@
=== MESSAGE ===
=== DISPLAY ===
-│ abc│⠀⠀⠀│⠀⠀⠀│
+┊ a┊⠀⠀⠀┊⠀⠀⠀┊
+│bc│⠀⠀⠀│⠀⠀⠀│
│1a│2 a│ 3a│
┊1↲┊2b⠀┊3↲⠀┊
-│123│⠀⠀⠀│b⇥⠀│
+┊⠀⠀┊⠀⠀⠀┊⠀⠀⠀┊
+│⠀⠀│⠀⠀⠀│b⇥⠀│
┊↲⠀┊⠀⠀⠀┊⇥c⠀┊
┊↲⠀┊⠀⠀⠀┊⠀⠀⠀┊
┊↲⠀┊⠀⠀⠀┊⠀⠀⠀┊
│⠀⠀│⠀⠀⠀│⠀⠀⠀│
-│ 1 | 2│⠀⠀⠀│⠀⠀⠀│
+┊ 1┊⠀⠀⠀┊⠀⠀⠀┊
+┊ |┊⠀⠀⠀┊⠀⠀⠀┊
+│ 2│⠀⠀⠀│⠀⠀⠀│
diff --git a/tests/cases/normal/o/run.vim b/tests/cases/normal/o/run.vim
index 35430d9..62daa09 100644
--- a/tests/cases/normal/o/run.vim
+++ b/tests/cases/normal/o/run.vim
@@ -2,7 +2,7 @@ source $TIRENVI_ROOT/tests/common.vim
edit $TIRENVI_ROOT/tests/data/simple.csv
call cursor(2, 2)
-execute "normal! o123\"
+execute "normal! o\"
sleep 1m
call cursor(1, 5)
execute "normal! O abc\"
diff --git a/tests/cases/normal/yyp/out-expected.txt b/tests/cases/normal/yyp/out-expected.txt
index 020ca32..38c86c2 100644
--- a/tests/cases/normal/yyp/out-expected.txt
+++ b/tests/cases/normal/yyp/out-expected.txt
@@ -2,10 +2,14 @@
=== DISPLAY ===
gfm
-│Name⠀│Age│City⠀⠀│
-│----⠀│---│----⠀⠀│
-│Alice│23⠀│Tokyo⠀│
-│Bob⠀⠀│31⠀│Osaka⠀│
-│Carol│27⠀│Nagoya│
-│Carol│27⠀│Nagoya│
+│Name⠀│Age│City⠀⠀⠀⠀⠀⠀⠀│
+│----⠀│---│----⠀⠀⠀⠀⠀⠀⠀│
+│Alice│23⠀│Tokyo⠀⠀⠀⠀⠀⠀│
+┊Bob⠀⠀┊31⠀┊Osaka↲⠀⠀⠀⠀⠀┊
+┊Bob⠀⠀┊31⠀┊Osaka↲⠀⠀⠀⠀⠀┊
+│⠀⠀⠀⠀⠀│⠀⠀⠀│nipponbashi│
+│⠀⠀⠀⠀⠀│⠀⠀⠀│nipponbashi│
+│Carol│27⠀│Nagoya⠀⠀⠀⠀⠀│
+│Carol│27⠀│Nagoya⠀⠀⠀⠀⠀│
markdown
+
diff --git a/tests/cases/normal/yyp/run.vim b/tests/cases/normal/yyp/run.vim
index 0809527..1d9937a 100644
--- a/tests/cases/normal/yyp/run.vim
+++ b/tests/cases/normal/yyp/run.vim
@@ -1,7 +1,14 @@
source $TIRENVI_ROOT/tests/common.vim
edit $TIRENVI_ROOT/tests/data/simple.md
+call cursor(7, 1)
+execute "normal! yyp\"
+sleep 1m
call cursor(6, 1)
execute "normal! yyp\"
+sleep 1m
+call cursor(5, 1)
+execute "normal! yyp\"
+sleep 1m
call RunTest({})
\ No newline at end of file
diff --git a/tests/cases/save/as-csv/out-expected.txt b/tests/cases/save/as-csv/out-expected.txt
index 73d9319..983e146 100644
--- a/tests/cases/save/as-csv/out-expected.txt
+++ b/tests/cases/save/as-csv/out-expected.txt
@@ -1,235 +1,22 @@
=== MESSAGE ===
-"gen.csv" [New] 115L, 2239B written
+tirenvi: install 'tpope/vim-repeat' to enable '.' repeat
+"gen.csv" [New] 8L, 36B written
=== DISPLAY ===
-│A1⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│B22⠀⠀⠀⠀⠀⠀│C333⠀⠀⠀⠀⠀⠀│D4444⠀⠀⠀│E55555⠀⠀⠀│F666666│
-│alpha1⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│b2⠀⠀⠀⠀⠀⠀⠀│c3⠀⠀⠀⠀⠀⠀⠀⠀│d4⠀⠀⠀⠀⠀⠀│e5⠀⠀⠀⠀⠀⠀⠀│f6⠀⠀⠀⠀⠀│
-│ ===⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│- next -⠀│ line⠀⠀⠀⠀⠀│ has⠀⠀⠀│ no⠀⠀⠀⠀⠀⠀│ value │
-│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│
-│x1⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│y22⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│z333⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│
-│===⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│ - next -│ line⠀⠀⠀⠀⠀│ has⠀⠀⠀│linefeed⠀│ ⠀⠀⠀⠀⠀│
-┊↲⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀┊abc⠀⠀⠀⠀⠀⠀┊DEF123⠀⠀⠀⠀┊↲⠀⠀⠀⠀⠀⠀⠀┊gh⠀⠀⠀⠀⠀⠀⠀┊9⠀⠀⠀⠀⠀⠀┊
-┊"1"2h", 34567890a┊⠀⠀⠀⠀⠀⠀⠀⠀⠀┊⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀┊↲⠀⠀⠀⠀⠀⠀⠀┊⠀⠀⠀⠀⠀⠀⠀⠀⠀┊⠀⠀⠀⠀⠀⠀⠀┊
-┊⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀┊⠀⠀⠀⠀⠀⠀⠀⠀⠀┊⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀┊↲⠀⠀⠀⠀⠀⠀⠀┊⠀⠀⠀⠀⠀⠀⠀⠀⠀┊⠀⠀⠀⠀⠀⠀⠀┊
-│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│
-┊a⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀┊⠀⠀⠀⠀⠀⠀⠀⠀⠀┊b↲⠀⠀⠀⠀⠀⠀⠀⠀┊⠀⠀⠀⠀⠀⠀⠀⠀┊c⠀⠀⠀⠀⠀⠀⠀⠀┊⠀⠀⠀⠀⠀⠀⠀┊
-│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│
-│ ===⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│- next -⠀│ lines⠀⠀⠀⠀│ has⠀⠀⠀│tab⠀⠀⠀⠀⠀⠀│ ⠀⠀⠀⠀⠀│
-│⇥ l⇥ongtext01⠀⠀⠀⠀│mi⇥⇥d2⠀⠀⠀│s⠀⠀⠀⠀⠀⠀⠀⠀⠀│tt⠀⠀⠀⠀⠀⠀│uuu⠀⠀⠀⠀⠀⠀│vvvv⠀⠀⠀│
-│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⇥⇥⇥⇥⇥⇥⇥⠀⠀⠀│⇥⇥⇥⇥⇥⇥⇥⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│
-│R1C1⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│R1C2⠀⠀⠀⠀⠀│R1C3⠀⠀⠀⠀⠀⠀│R1C4⠀⠀⠀⠀│R1C5⠀⠀⠀⠀⠀│R1C6⠀⠀⠀│
-│ ===⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│- next -⠀│ line⠀⠀⠀⠀⠀│ is⠀⠀⠀⠀│multibyte│ value │
-│aaあい⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│いろ2⠀⠀⠀⠀│ぼんさんが│へを⠀⠀⠀⠀│こいた⠀⠀⠀│.!...⠀│
-│g1⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│h22⠀⠀⠀⠀⠀⠀│i333⠀⠀⠀⠀⠀⠀│j4444⠀⠀⠀│k55555⠀⠀⠀│l6⠀⠀⠀⠀⠀│
-│ ===⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│- next -⠀│ lines⠀⠀⠀⠀│ has⠀⠀⠀│linefeed+│tab ⠀⠀│
-┊⇥⇥ ⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀┊↲⠀⠀⠀⠀⠀⠀⠀⠀┊n⇥ ⠀⠀⠀⠀⠀⠀⠀┊⇥⇥ o333⠀┊⠀⠀⠀⠀⠀⠀⠀⠀⠀┊⠀⠀⠀⠀⠀⠀⠀┊
-│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⇥⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│
-│pqrst⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│uv⠀⠀⠀⠀⠀⠀⠀│wx1⠀⠀⠀⠀⠀⠀⠀│yz22⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│345⠀⠀⠀⠀│
-│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│
-│a1b2c3⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│XYZ⠀⠀⠀⠀⠀⠀⠀│7777⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│k9⠀⠀⠀⠀⠀│
-│short⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│longer12⠀│x⠀⠀⠀⠀⠀⠀⠀⠀⠀│yz⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│end⠀⠀⠀⠀│
-│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│
-│row15a⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│row15b⠀⠀⠀│row15c⠀⠀⠀⠀│row15d⠀⠀│row15e⠀⠀⠀│row15f⠀│
-│1⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│22⠀⠀⠀⠀⠀⠀⠀│333⠀⠀⠀⠀⠀⠀⠀│4444⠀⠀⠀⠀│55555⠀⠀⠀⠀│666666⠀│
-│alpha⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│beta⠀⠀⠀⠀⠀│gamma⠀⠀⠀⠀⠀│delta⠀⠀⠀│epsilon⠀⠀│zeta⠀⠀⠀│
-│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│
-│mix1⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│mix3⠀⠀⠀⠀⠀⠀│444⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│six6⠀⠀⠀│
-│abc123⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│def456⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│ghi789⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│
-│z⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│y⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│x⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│
-│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│
-│t1⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│t2⠀⠀⠀⠀⠀⠀⠀│t3⠀⠀⠀⠀⠀⠀⠀⠀│t4⠀⠀⠀⠀⠀⠀│t5⠀⠀⠀⠀⠀⠀⠀│t6⠀⠀⠀⠀⠀│
-│r1c1⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│r1c2⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│r1c4⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│r1c6⠀⠀⠀│
-│data1⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│data22⠀⠀⠀│data333⠀⠀⠀│data4444│data55555│data6⠀⠀│
-│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│
-│A⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│B⠀⠀⠀⠀⠀⠀⠀⠀│C⠀⠀⠀⠀⠀⠀⠀⠀⠀│D⠀⠀⠀⠀⠀⠀⠀│E⠀⠀⠀⠀⠀⠀⠀⠀│F⠀⠀⠀⠀⠀⠀│
-│abc⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│123⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│XYZ⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│
-│one1⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│two22⠀⠀⠀⠀│three3⠀⠀⠀⠀│four44⠀⠀│five5⠀⠀⠀⠀│six66⠀⠀│
-│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│
-│r30a⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│r30b⠀⠀⠀⠀⠀│r30c⠀⠀⠀⠀⠀⠀│r30d⠀⠀⠀⠀│r30e⠀⠀⠀⠀⠀│r30f⠀⠀⠀│
-│longvalue1⠀⠀⠀⠀⠀⠀⠀│mid⠀⠀⠀⠀⠀⠀│short⠀⠀⠀⠀⠀│s⠀⠀⠀⠀⠀⠀⠀│tt⠀⠀⠀⠀⠀⠀⠀│uuu⠀⠀⠀⠀│
-│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│
-│x⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│y⠀⠀⠀⠀⠀⠀⠀⠀│z⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│end⠀⠀⠀⠀│
-│abcde⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│fghij⠀⠀⠀⠀│klmno⠀⠀⠀⠀⠀│pqrst⠀⠀⠀│uvwxy⠀⠀⠀⠀│z⠀⠀⠀⠀⠀⠀│
-│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│
-│cell1⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│cell3⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│cell5⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│
-│111⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│2222⠀⠀⠀⠀⠀│33333⠀⠀⠀⠀⠀│444444⠀⠀│55⠀⠀⠀⠀⠀⠀⠀│6⠀⠀⠀⠀⠀⠀│
-│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│
-│row40a⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│row40b⠀⠀⠀│row40c⠀⠀⠀⠀│row40d⠀⠀│row40e⠀⠀⠀│row40f⠀│
-│a1⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│a2⠀⠀⠀⠀⠀⠀⠀│a3⠀⠀⠀⠀⠀⠀⠀⠀│a4⠀⠀⠀⠀⠀⠀│a5⠀⠀⠀⠀⠀⠀⠀│a6⠀⠀⠀⠀⠀│
-│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│
-│mixA⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│mixC⠀⠀⠀⠀⠀⠀│DDD⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│FFF⠀⠀⠀⠀│
-│123abc⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│456def⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│789ghi⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│000⠀⠀⠀⠀│
-│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│
-│r45a⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│r45b⠀⠀⠀⠀⠀│r45c⠀⠀⠀⠀⠀⠀│r45d⠀⠀⠀⠀│r45e⠀⠀⠀⠀⠀│r45f⠀⠀⠀│
-│alpha9⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│beta8⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│gamma7⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│
-│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│
-│A1B2C3⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│D4E5F6⠀⠀⠀│G7H8I9⠀⠀⠀⠀│J0⠀⠀⠀⠀⠀⠀│K1⠀⠀⠀⠀⠀⠀⠀│L2⠀⠀⠀⠀⠀│
-│short1⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│short3⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│short5⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│
-│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│
-│r50a⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│r50b⠀⠀⠀⠀⠀│r50c⠀⠀⠀⠀⠀⠀│r50d⠀⠀⠀⠀│r50e⠀⠀⠀⠀⠀│r50f⠀⠀⠀│
-│x1y2⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│z3⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│w4⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│v5⠀⠀⠀⠀⠀│
-│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│
-│longertext⠀⠀⠀⠀⠀⠀⠀│mid⠀⠀⠀⠀⠀⠀│small⠀⠀⠀⠀⠀│s1⠀⠀⠀⠀⠀⠀│s22⠀⠀⠀⠀⠀⠀│s333⠀⠀⠀│
-│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│
-│r55a⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│r55b⠀⠀⠀⠀⠀│r55c⠀⠀⠀⠀⠀⠀│r55d⠀⠀⠀⠀│r55e⠀⠀⠀⠀⠀│r55f⠀⠀⠀│
-│abc⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│def⠀⠀⠀⠀⠀⠀│ghi⠀⠀⠀⠀⠀⠀⠀│jkl⠀⠀⠀⠀⠀│mno⠀⠀⠀⠀⠀⠀│pqr⠀⠀⠀⠀│
-│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│
-│1a⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│2b⠀⠀⠀⠀⠀⠀⠀│3c⠀⠀⠀⠀⠀⠀⠀⠀│4d⠀⠀⠀⠀⠀⠀│5e⠀⠀⠀⠀⠀⠀⠀│6f⠀⠀⠀⠀⠀│
-│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│
-│row60a⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│row60b⠀⠀⠀│row60c⠀⠀⠀⠀│row60d⠀⠀│row60e⠀⠀⠀│row60f⠀│
-│value1⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│value3⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│value5⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│
-│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│
-│aa⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│bb⠀⠀⠀⠀⠀⠀⠀│cc⠀⠀⠀⠀⠀⠀⠀⠀│dd⠀⠀⠀⠀⠀⠀│ee⠀⠀⠀⠀⠀⠀⠀│ff⠀⠀⠀⠀⠀│
-│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│
-│r65a⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│r65b⠀⠀⠀⠀⠀│r65c⠀⠀⠀⠀⠀⠀│r65d⠀⠀⠀⠀│r65e⠀⠀⠀⠀⠀│r65f⠀⠀⠀│
-│x⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│y⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│z⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│
-│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│
-│alpha01⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│beta02⠀⠀⠀│gamma03⠀⠀⠀│delta04⠀│eps05⠀⠀⠀⠀│z6⠀⠀⠀⠀⠀│
-│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│
-│row70a⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│row70b⠀⠀⠀│row70c⠀⠀⠀⠀│row70d⠀⠀│row70e⠀⠀⠀│row70f⠀│
-│1⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│3⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│5⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│
-│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│
-│abc1⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│def2⠀⠀⠀⠀⠀│ghi3⠀⠀⠀⠀⠀⠀│jkl4⠀⠀⠀⠀│mno5⠀⠀⠀⠀⠀│pqr6⠀⠀⠀│
-│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│
-│r75a⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│r75b⠀⠀⠀⠀⠀│r75c⠀⠀⠀⠀⠀⠀│r75d⠀⠀⠀⠀│r75e⠀⠀⠀⠀⠀│r75f⠀⠀⠀│
-│mix⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│mix2⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│mix3⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│
-│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│
-│a⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│b⠀⠀⠀⠀⠀⠀⠀⠀│c⠀⠀⠀⠀⠀⠀⠀⠀⠀│d⠀⠀⠀⠀⠀⠀⠀│e⠀⠀⠀⠀⠀⠀⠀⠀│f⠀⠀⠀⠀⠀⠀│
-│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│
-│row80a⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│row80b⠀⠀⠀│row80c⠀⠀⠀⠀│row80d⠀⠀│row80e⠀⠀⠀│row80f⠀│
-│123⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│234⠀⠀⠀⠀⠀⠀│345⠀⠀⠀⠀⠀⠀⠀│456⠀⠀⠀⠀⠀│567⠀⠀⠀⠀⠀⠀│678⠀⠀⠀⠀│
-│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│
-│Aaa⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│Bbb⠀⠀⠀⠀⠀⠀│Ccc⠀⠀⠀⠀⠀⠀⠀│Ddd⠀⠀⠀⠀⠀│Eee⠀⠀⠀⠀⠀⠀│Fff⠀⠀⠀⠀│
-│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│
-│r85a⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│r85b⠀⠀⠀⠀⠀│r85c⠀⠀⠀⠀⠀⠀│r85d⠀⠀⠀⠀│r85e⠀⠀⠀⠀⠀│r85f⠀⠀⠀│
-│x1⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│x3⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│x5⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│
-│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│
-│abcde12345⠀⠀⠀⠀⠀⠀⠀│f1⠀⠀⠀⠀⠀⠀⠀│g2⠀⠀⠀⠀⠀⠀⠀⠀│h3⠀⠀⠀⠀⠀⠀│i4⠀⠀⠀⠀⠀⠀⠀│j5⠀⠀⠀⠀⠀│
-│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│
-│row90a⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│row90b⠀⠀⠀│row90c⠀⠀⠀⠀│row90d⠀⠀│row90e⠀⠀⠀│row90f⠀│
-│1a2b3c⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│4d5e6f⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│7g8h9i⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│
-│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│
-│short⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│mid⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│longer⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│
-│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│
-│r95a⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│r95b⠀⠀⠀⠀⠀│r95c⠀⠀⠀⠀⠀⠀│r95d⠀⠀⠀⠀│r95e⠀⠀⠀⠀⠀│r95f⠀⠀⠀│
-│a1b⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│c2d⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│e3f⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│
-│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│
-│end1⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│end2⠀⠀⠀⠀⠀│end3⠀⠀⠀⠀⠀⠀│end4⠀⠀⠀⠀│end5⠀⠀⠀⠀⠀│end6⠀⠀⠀│
-│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│
+│1a│2 a⠀⠀⠀⠀⠀│ 3a│
+┊1↲┊2b⠀⠀⠀⠀⠀⠀┊3↲⠀┊
+│⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│b⇥⠀│
+┊↲⠀┊⠀⠀⠀⠀⠀⠀⠀⠀┊⇥c⠀┊
+┊↲⠀┊⠀⠀⠀⠀⠀⠀⠀⠀┊⠀⠀⠀┊
+┊↲⠀┊⠀⠀⠀⠀⠀⠀⠀⠀┊⠀⠀⠀┊
+│⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀│
=== FILE ===
-A1,B22,C333,D4444,E55555,F666666
-alpha1,b2,c3,d4,e5,f6
- ===,- next -, line, has, no, value
-,,,,,
-x1,,y22,,z333,
-===, - next -, line, has,linefeed,
+1a,2 a, 3a
+"1
+",2b,"3
+b "
"
-""1""2h"", 34567890a",abc,DEF123,"
-",gh,9
-a,,"b
-",,c,
- ===,- next -, lines, has,tab,
- l ongtext01,mi d2,s,tt,uuu,vvvv
-,, , ,,
-R1C1,R1C2,R1C3,R1C4,R1C5,R1C6
- ===,- next -, line, is,multibyte, value
-aaあい,いろ2,ぼんさんが,へを,こいた,.!...
-g1,h22,i333,j4444,k55555,l6
- ===,- next -, lines, has,linefeed+,tab
- ,"
- ",n , o333,,
-pqrst,uv,wx1,yz22,,345
-,,,,,
-a1b2c3,,XYZ,7777,,k9
-short,longer12,x,yz,,end
-,,,,,
-row15a,row15b,row15c,row15d,row15e,row15f
-1,22,333,4444,55555,666666
-alpha,beta,gamma,delta,epsilon,zeta
-,,,,,
-mix1,,mix3,444,,six6
-abc123,,def456,,ghi789,
-z,,y,,x,
-,,,,,
-t1,t2,t3,t4,t5,t6
-r1c1,r1c2,,r1c4,,r1c6
-data1,data22,data333,data4444,data55555,data6
-,,,,,
-A,B,C,D,E,F
-abc,,123,,XYZ,
-one1,two22,three3,four44,five5,six66
-,,,,,
-r30a,r30b,r30c,r30d,r30e,r30f
-longvalue1,mid,short,s,tt,uuu
-,,,,,
-x,y,z,,,end
-abcde,fghij,klmno,pqrst,uvwxy,z
-,,,,,
-cell1,,cell3,,cell5,
-111,2222,33333,444444,55,6
-,,,,,
-row40a,row40b,row40c,row40d,row40e,row40f
-a1,a2,a3,a4,a5,a6
-,,,,,
-mixA,,mixC,DDD,,FFF
-123abc,456def,,789ghi,,000
-,,,,,
-r45a,r45b,r45c,r45d,r45e,r45f
-alpha9,,beta8,,gamma7,
-,,,,,
-A1B2C3,D4E5F6,G7H8I9,J0,K1,L2
-short1,,short3,,short5,
-,,,,,
-r50a,r50b,r50c,r50d,r50e,r50f
-x1y2,z3,,w4,,v5
-,,,,,
-longertext,mid,small,s1,s22,s333
-,,,,,
-r55a,r55b,r55c,r55d,r55e,r55f
-abc,def,ghi,jkl,mno,pqr
-,,,,,
-1a,2b,3c,4d,5e,6f
-,,,,,
-row60a,row60b,row60c,row60d,row60e,row60f
-value1,,value3,,value5,
-,,,,,
-aa,bb,cc,dd,ee,ff
-,,,,,
-r65a,r65b,r65c,r65d,r65e,r65f
-x,,y,,z,
-,,,,,
-alpha01,beta02,gamma03,delta04,eps05,z6
-,,,,,
-row70a,row70b,row70c,row70d,row70e,row70f
-1,,3,,5,
-,,,,,
-abc1,def2,ghi3,jkl4,mno5,pqr6
-,,,,,
-r75a,r75b,r75c,r75d,r75e,r75f
-mix,,mix2,,mix3,
-,,,,,
-a,b,c,d,e,f
-,,,,,
-row80a,row80b,row80c,row80d,row80e,row80f
-123,234,345,456,567,678
-,,,,,
-Aaa,Bbb,Ccc,Ddd,Eee,Fff
-,,,,,
-r85a,r85b,r85c,r85d,r85e,r85f
-x1,,x3,,x5,
-,,,,,
-abcde12345,f1,g2,h3,i4,j5
-,,,,,
-row90a,row90b,row90c,row90d,row90e,row90f
-1a2b3c,,4d5e6f,,7g8h9i,
-,,,,,
-short,,mid,,longer,
-,,,,,
-r95a,r95b,r95c,r95d,r95e,r95f
-a1b,,c2d,,e3f,
-,,,,,
-end1,end2,end3,end4,end5,end6
-,,,,,
+",, c
diff --git a/tests/cases/save/as-csv/run.vim b/tests/cases/save/as-csv/run.vim
index c5c5a03..46ac933 100644
--- a/tests/cases/save/as-csv/run.vim
+++ b/tests/cases/save/as-csv/run.vim
@@ -3,7 +3,20 @@
source $TIRENVI_ROOT/tests/common.vim
let outfile = 'gen.csv'
-edit $TIRENVI_ROOT/tests/data/complex.csv
+lua << EOF
+local M = require("tirenvi")
+M.setup({
+ textobj = {
+ column = "h"
+ },
+})
+EOF
+
+edit $TIRENVI_ROOT/tests/data/simple.csv
+sleep 1m
+call cursor(2, 11)
+Tir width=8
+sleep 1m
execute 'write ' . outfile
call RunTest({ 'file': outfile })
\ No newline at end of file
diff --git a/tests/cases/textobj/vil/out-expected.txt b/tests/cases/textobj/vil/out-expected.txt
index 1eac5ca..106a6b2 100644
--- a/tests/cases/textobj/vil/out-expected.txt
+++ b/tests/cases/textobj/vil/out-expected.txt
@@ -2,9 +2,11 @@
=== DISPLAY ===
gfm
-│City⠀⠀│Age││
-│----⠀⠀│---││
-│Tokyo⠀│23⠀││
-│Osaka⠀│31⠀││
-│Nagoya│27⠀││
+│City⠀⠀⠀⠀⠀⠀⠀│Age││
+│----⠀⠀⠀⠀⠀⠀⠀│---││
+│Tokyo⠀⠀⠀⠀⠀⠀│23⠀││
+┊Osaka↲⠀⠀⠀⠀⠀┊31⠀┊┊
+│nipponbashi│⠀⠀⠀││
+│Nagoya⠀⠀⠀⠀⠀│27⠀││
markdown
+
diff --git a/tests/cases/textobj/width/out-expected.txt b/tests/cases/textobj/width/out-expected.txt
index bbd277b..c7687c2 100644
--- a/tests/cases/textobj/width/out-expected.txt
+++ b/tests/cases/textobj/width/out-expected.txt
@@ -1,12 +1,22 @@
=== MESSAGE ===
tirenvi: install 'tpope/vim-repeat' to enable '.' repeat
-5 changes; before #6 0 seconds ago
+7 changes; before #6 0 seconds ago
=== DISPLAY ===
gfm
-│Name│Age⠀⠀│City⠀⠀⠀⠀│
-│----│---⠀⠀│----⠀⠀⠀⠀│
-│Alice│23⠀⠀⠀│Tokyo⠀⠀⠀│
-│Bob│31⠀⠀⠀│Osaka⠀⠀⠀│
-│Carol│27⠀⠀⠀│Nagoya⠀⠀│
+┊Na┊Age⠀⠀┊City⠀⠀⠀⠀┊
+│me│⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│
+┊--┊---⠀⠀┊----⠀⠀⠀⠀┊
+│--│⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│
+┊Al┊23⠀⠀⠀┊Tokyo⠀⠀⠀┊
+┊ic┊⠀⠀⠀⠀⠀┊⠀⠀⠀⠀⠀⠀⠀⠀┊
+│e⠀│⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│
+┊Bo┊31⠀⠀⠀┊Osaka↲⠀⠀┊
+┊b⠀┊⠀⠀⠀⠀⠀┊⠀⠀⠀⠀⠀⠀⠀⠀┊
+┊⠀⠀┊⠀⠀⠀⠀⠀┊nipponba┊
+│⠀⠀│⠀⠀⠀⠀⠀│shi⠀⠀⠀⠀⠀│
+┊Ca┊27⠀⠀⠀┊Nagoya⠀⠀┊
+┊ro┊⠀⠀⠀⠀⠀┊⠀⠀⠀⠀⠀⠀⠀⠀┊
+│l⠀│⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│
markdown
+
diff --git a/tests/cases/textobj/width/run.vim b/tests/cases/textobj/width/run.vim
index 6066d35..45c604f 100644
--- a/tests/cases/textobj/width/run.vim
+++ b/tests/cases/textobj/width/run.vim
@@ -10,22 +10,33 @@ M.setup({
EOF
edit $TIRENVI_ROOT/tests/data/simple.md
+sleep 1m
call cursor(2, 22)
Tir width=8
+sleep 1m
call cursor(3, 11)
Tir width=5
+sleep 1m
call cursor(4, 1)
Tir width=9
+sleep 1m
call cursor(5, 23)
Tir width+9
+sleep 1m
Tir width+5
+sleep 1m
Tir width+
+sleep 1m
call feedkeys("u", "x")
+sleep 1m
call cursor(6, 20)
Tir width-10
+sleep 1m
call cursor(2, 1)
Tir width-100
+sleep 1m
call cursor(1, 1)
Tir width-
+sleep 1m
call RunTest({})
\ No newline at end of file
diff --git a/tests/cases/tir/on/run.vim b/tests/cases/tir/on/run.vim
index 906ae50..ea8c5f6 100644
--- a/tests/cases/tir/on/run.vim
+++ b/tests/cases/tir/on/run.vim
@@ -7,6 +7,6 @@ let outfile = 'gen.csv'
edit $TIRENVI_ROOT/tests/data/complex.csv
Tir toggle
Tir toggle
-Tir hbar
+Tir _hbar
call RunTest({})
diff --git a/tests/cases/ut/state/buffer/out-expected.txt b/tests/cases/ut/state/buffer/out-expected.txt
index 136f5e5..493768d 100644
--- a/tests/cases/ut/state/buffer/out-expected.txt
+++ b/tests/cases/ut/state/buffer/out-expected.txt
@@ -1,23 +1,23 @@
=== MESSAGE ===
[TIR][🟧PROBE][[string ":lua"]:14] buffer.get_lines(0, 0, -1)
-[TIR][DEBUG][buffer.lua:80] ===== bufnr=1, start=0, end=21, lines[1]=0, line[21]=20,
+[TIR][DEBUG][buffer.lua:81] ===== bufnr=1, start=0, end=21, lines[1]=0, line[21]=20,
[TIR][DEBUG][[string ":lua"]:16] { "0", "1", "2", "3", "4", "5", "6", "7", "8", "9", "10", "11", "12", "13", "14", "15", "16", "17", "18", "19", "20" }
[TIR][DEBUG][[string ":lua"]:18] { "0", "1", "2", "3", "4", "5", "6", "7", "8", "9", "10", "11", "12", "13", "14", "15", "16", "17", "18", "19", "20" }
[TIR][🟧PROBE][[string ":lua"]:19] buffer.get_lines(0, -100, 100)
[TIR][DEBUG][[string ":lua"]:21] { "0", "1", "2", "3", "4", "5", "6", "7", "8", "9", "10", "11", "12", "13", "14", "15", "16", "17", "18", "19", "20" }
[TIR][🟧PROBE][[string ":lua"]:22] clear & buffer.get_lines(0, 9, 13)
-[TIR][DEBUG][buffer.lua:80] ===== bufnr=1, start=6, end=16, lines[1]=6, line[10]=15,
+[TIR][DEBUG][buffer.lua:81] ===== bufnr=1, start=6, end=16, lines[1]=6, line[10]=15,
[TIR][DEBUG][[string ":lua"]:25] { "9", "10", "11", "12" }
[TIR][🟧PROBE][[string ":lua"]:26] buffer.get_line(0, 6)
[TIR][DEBUG][[string ":lua"]:28] 6
[TIR][🟧PROBE][[string ":lua"]:29] buffer.get_line(0, 2)
-[TIR][DEBUG][buffer.lua:80] ===== bufnr=1, start=0, end=6, lines[1]=0, line[6]=5,
+[TIR][DEBUG][buffer.lua:81] ===== bufnr=1, start=0, end=6, lines[1]=0, line[6]=5,
[TIR][DEBUG][[string ":lua"]:31] 2
[TIR][🟧PROBE][[string ":lua"]:32] buffer.get_line(0, 19)
-[TIR][DEBUG][buffer.lua:80] ===== bufnr=1, start=15, end=21, lines[1]=15, line[6]=20,
+[TIR][DEBUG][buffer.lua:81] ===== bufnr=1, start=15, end=21, lines[1]=15, line[6]=20,
[TIR][DEBUG][[string ":lua"]:34] 19
[TIR][🟧PROBE][[string ":lua"]:35] buffer.get_line(0, 10)
-[TIR][DEBUG][buffer.lua:80] ===== bufnr=1, start=4, end=11, lines[1]=4, line[7]=10,
+[TIR][DEBUG][buffer.lua:81] ===== bufnr=1, start=4, end=11, lines[1]=4, line[7]=10,
[TIR][DEBUG][[string ":lua"]:37] 10
[TIR][🟧PROBE][[string ":lua"]:38] buffer.get_line(0, -1)
[TIR][DEBUG][[string ":lua"]:40] nil
diff --git a/tests/data/simple.md b/tests/data/simple.md
index 669c0a9..b41c667 100644
--- a/tests/data/simple.md
+++ b/tests/data/simple.md
@@ -2,6 +2,7 @@ gfm
| Name | Age | City |
| ---- | --- | ---- |
| Alice | 23 | Tokyo |
-| Bob | 31 | Osaka |
+| Bob | 31 | Osaka
nipponbashi |
| Carol | 27 | Nagoya |
markdown
+