diff options
Diffstat (limited to 'test/functional/ui/multibyte_spec.lua')
-rw-r--r-- | test/functional/ui/multibyte_spec.lua | 90 |
1 files changed, 52 insertions, 38 deletions
diff --git a/test/functional/ui/multibyte_spec.lua b/test/functional/ui/multibyte_spec.lua index c2fc763401..dc25a09d0d 100644 --- a/test/functional/ui/multibyte_spec.lua +++ b/test/functional/ui/multibyte_spec.lua @@ -1,14 +1,16 @@ -local helpers = require('test.functional.helpers')(after_each) +local t = require('test.testutil') +local n = require('test.functional.testnvim')() local Screen = require('test.functional.ui.screen') -local clear = helpers.clear -local command = helpers.command -local feed = helpers.feed -local feed_command = helpers.feed_command -local insert = helpers.insert -local fn = helpers.fn -local api = helpers.api + +local clear = n.clear +local command = n.command +local feed = n.feed +local feed_command = n.feed_command +local insert = n.insert +local fn = n.fn +local api = n.api local split = vim.split -local dedent = helpers.dedent +local dedent = t.dedent describe('multibyte rendering', function() local screen @@ -16,15 +18,6 @@ describe('multibyte rendering', function() clear() screen = Screen.new(60, 6) screen:attach({ rgb = true }) - screen:set_default_attr_ids({ - [1] = { bold = true, foreground = Screen.colors.Blue }, - [2] = { background = Screen.colors.WebGray }, - [3] = { background = Screen.colors.LightMagenta }, - [4] = { bold = true }, - [5] = { foreground = Screen.colors.Blue }, - [6] = { reverse = true, bold = true }, - [7] = { reverse = true }, - }) end) it('works with composed char at start of line', function() @@ -83,17 +76,17 @@ describe('multibyte rendering', function() ab ^ | -馬 | {1:~ }|*3 - {4:-- INSERT --} | + {5:-- INSERT --} | ]]) -- check double-width char is temporarily hidden when overlapped fn.complete(4, { 'xx', 'yy' }) screen:expect([[ ab xx^ | - - {2: xx } | - {1:~ }{3: yy }{1: }| + - {12: xx } | + {1:~ }{4: yy }{1: }| {1:~ }|*2 - {4:-- INSERT --} | + {5:-- INSERT --} | ]]) -- check it is properly restored @@ -102,7 +95,7 @@ describe('multibyte rendering', function() ab xxz^ | -馬 | {1:~ }|*3 - {4:-- INSERT --} | + {5:-- INSERT --} | ]]) end) @@ -129,7 +122,7 @@ describe('multibyte rendering', function() {1:~ }│a口口口口口口口口口口口口口口口口 | {1:~ }│aa口口口口口口口口口口口口口口口口 | {1:~ }│aaa口口口口口口口口口口口口口口口口 | - {6:[No Name] }{7:[No Name] [+] }| + {3:[No Name] }{2:[No Name] [+] }| | ]]) end) @@ -139,7 +132,7 @@ describe('multibyte rendering', function() feed('$') screen:expect { grid = [[ - {5:<ffff>}!!^! | + {18:<ffff>}!!^! | {1:~ }|*4 | ]], @@ -204,6 +197,32 @@ describe('multibyte rendering', function() } end) + it('works with even huger zalgo chars', function() + screen:try_resize(100, 20) + api.nvim_command 'color default' + api.nvim_set_hl(0, 'MyHighlight', { bg = '#53246b', fg = '#a4d844' }) + screen:add_extra_attr_ids { + [100] = { background = tonumber('0x53246b'), foreground = Screen.colors.NvimLightGrey4 }, + [101] = { background = tonumber('0x53246b'), foreground = tonumber('0xa4d844') }, + } + api.nvim_set_option_value('winhl', 'Normal:MyHighlight', {}) + api.nvim_set_option_value('number', true, {}) + local text = + 'c̯̥̳̮̫̳͔̱̀ͦͩ̄͋̓͘c̯̥̳̮̫̳͔̱̀ͦͩ̄͋̓͘l̶̴̴̨̛͓͚͎̥ͦͤ̑͆͛͢l̶̴̴̨̛͓͚͎̥ͦͤ̑͆͛͢ô̷̤̩ͯͧ͆ͪ̈́́͒̒̐͐̕ô̷̤̩ͯͧ͆ͪ̈́́͒̒̐͐̕s̶̷̢̩̱̠̀ͦ̽ͮ͒ͨ̚͟͠s̶̷̢̩̱̠̀ͦ̽ͮ͒ͨ̚͟͠e͉̯̱̖͕̳̼̽̊̒ͣ̊ͥ̚̚e͉̯̱̖͕̳̼̽̊̒ͣ̊ͥ̚̚ ͇͌̈̄ͬͧͧ͝͠͏̷ͪ̎͟͠ ͇͌̈̄ͬͧͧ͝͠͏̷ͪ̎͟͠t̵̳̅̽͏̵̡̥̲͍͙̹̯ͩ̐t̵̳̅̽͏̵̡̥̲͍͙̹̯ͩ̐o͋͏̬̞̣ͬ́ͬ̎̋̓̽͘͠͡o͋͏̬̞̣ͬ́ͬ̎̋̓̽͘͠͡ ͏̛͙̮̈ͬ̌͐ͤ͒ͧ̎ͤ͜͠ ͏̛͙̮̈ͬ̌͐ͤ͒ͧ̎ͤ͜͠ǫ̛̳͕̦͖̪̀͂͛̅̔ͪ͒͜ǫ̛̳͕̦͖̪̀͂͛̅̔ͪ͒͜v̸̡͖̗̣ͯ̿̔͊̅ͯ̈̓̇ͅv̸̡͖̗̣ͯ̿̔͊̅ͯ̈̓̇ͅe̴̶̢̜̭̠̰̞ͪͨ͂ͤ͆́͗e̴̶̢̜̭̠̰̞ͪͨ͂ͤ͆́͗r̨̖̼̳̳͚̖̒ͯ̊̋̂̑̚͞r̨̖̼̳̳͚̖̒ͯ̊̋̂̑̚͞f̵̮̣̬̾͛̌ͧͦ͘͢͜͜͠ͅf̵̮̣̬̾͛̌ͧͦ͘͢͜͜͠ͅl̡͉̬̳͈̠̏͂ͤ̈ͨ̀ͩ̔͏l̡͉̬̳͈̠̏͂ͤ̈ͨ̀ͩ̔͏ỏ̶̢̻̠͎͇͈̜̈̆ͯ̔ͩ̾ỏ̶̢̻̠͎͇͈̜̈̆ͯ̔ͩ̾ẉ̦̞̼̩̣͙̅̿́̓̉̎̈ͪẉ̦̞̼̩̣͙̅̿́̓̉̎̈ͪi̷̡͍͓͔̝͙͖͖̍ͯͤͬͦ͝i̷̡͍͓͔̝͙͖͖̍ͯͤͬͦ͝n̠̪̰͋ͩ̆͏̶̖̯ͭ̀̿͛͘n̠̪̰͋ͩ̆͏̶̖̯ͭ̀̿͛͘g̴̭͎̞͙̗̯͙͖ͬ́ͧͧ͝ͅg̴̭͎̞͙̗̯͙͖ͬ́ͧͧ͝ͅ ̢͎̬͓̮̹̰̙͍̓̐͋͂͐̚ ̢͎̬͓̮̹̰̙͍̓̐͋͂͐̚ť̴̼̝̗ͩ̍͋̿͏͇ͧ̑̏̚ť̴̼̝̗ͩ̍͋̿͏͇ͧ̑̏̚h̨̨̢͓̲͚͕̦ͨ͛̓ͩ̚͟͠h̨̨̢͓̲͚͕̦ͨ͛̓ͩ̚͟͠ȩ͕̜̥̃̑͋̏͐̎̒͛͊͏͙ȩ͕̜̥̃̑͋̏͐̎̒͛͊͏͙ ̵̨̜̜̠͉̱͎͑ͥ̌͐̽͢͡ ̵̨̜̜̠͉̱͎͑ͥ̌͐̽͢͡r̢̫͓͎̙̭̽ͥͭ͐̂̀̕͟͝r̢̫͓͎̙̭̽ͥͭ͐̂̀̕͟͝e̴̷͓̹̩ͧ́̉̑̈̿ͥ̕͡͝e̴̷͓̹̩ͧ́̉̑̈̿ͥ̕͡͝d̵̡̼̩̠̜͈̯̬͚͛̋̀̆͟d̵̡̼̩̠̜͈̯̬͚͛̋̀̆͟ŕ̻̳̬͏̨̮͚̲ͥ̌͆͗͠ͅŕ̻̳̬͏̨̮͚̲ͥ̌͆͗͠ͅā̸͙̥̤͍͈̣ͪͨ̈͋̈́̈́͜ā̸͙̥̤͍͈̣ͪͨ̈͋̈́̈́͜w̶̦̪͚̤̃ͬ̓͒ͤ̇̇ͮ͢͡w̶̦̪͚̤̃ͬ̓͒ͤ̇̇ͮ͢͡ ̷̡̦̻̻̪͚̳͎ͥ̓ͩͪ͠͝ ̷̡̦̻̻̪͚̳͎ͥ̓ͩͪ͠͝b̳ͮ̒̊̆̒́̈́̏̓͋ͭ̔ͤ̚b̳ͮ̒̊̆̒́̈́̏̓͋ͭ̔ͤ̚u̧̟̫͎͚̭̠͕͂̄̀̒̈̇͜u̧̟̫͎͚̭̠͕͂̄̀̒̈̇͜f̶̸̢͍̑̂̊ͥͫ̈́ͥ͛̈́̃͝f̶̸̢͍̑̂̊ͥͫ̈́ͥ͛̈́̃͝f̵̼̭̮͎ͧ̒̆͊̀ͤ͊̇̕͡f̵̼̭̮͎ͧ̒̆͊̀ͤ͊̇̕͡e̮̪̲̣̞̖͎ͥͤ̐̌̓̐͟͢e̮̪̲̣̞̖͎ͥͤ̐̌̓̐͟͢ŗ̭̘̮̹̖̎̄̆́ͫͭ͢ͅͅŗ̭̘̮̹̖̎̄̆́ͫͭ͢ͅͅ.̪̖͉͚̹̾̉ͮ̔̊ͪ̾̎͟͞.̪̖͉͚̹̾̉ͮ̔̊ͪ̾̎͟͞ ̷̧̺̰͎̣̃͒͗ͮ͑ͪͮ͞ͅ ̷̧̺̰͎̣̃͒͗ͮ͑ͪͮ͞ͅf̛̫͚͚͍̜͎̗̳̂ͬͭ͜͢͝f̛̫͚͚͍̜͎̗̳̂ͬͭ͜͢͝i̴̵̡̛̛͎̤̳̮ͩ̐ͩ͑̇̚i̴̵̡̛̛͎̤̳̮ͩ̐ͩ͑̇̚n̵͇͍͚̖̥̣ͨ̄ͧ̌̂͗͘͝n̵͇͍͚̖̥̣ͨ̄ͧ̌̂͗͘͝ȉ̼̱̫̜̋̓̐͌͆ͨ͘͝͡ͅȉ̼̱̫̜̋̓̐͌͆ͨ͘͝͡ͅs̴̸̝̺̬͚̲̹̘ͪ̆̊ͥ͞͝s̴̸̝̺̬͚̲̹̘ͪ̆̊ͥ͞͝h̴̜̠͇ͦͥ̔̅ͭͭ͋ͩ͟͡͞h̴̜̠͇ͦͥ̔̅ͭͭ͋ͩ͟͡͞ ̶̧̛̻͙̤̘̺̣̻̗͍̓͑͠ ̶̧̛̻͙̤̘̺̣̻̗͍̓͑͠t̠͉̼̬̩͛́ͨ͐̀͛̂ͨ̾͞t̠͉̼̬̩͛́ͨ͐̀͛̂ͨ̾͞h̻̹̝̹̾ͩ̍ͧ͆ͥ̔͘͏̉ͯh̻̹̝̹̾ͩ̍ͧ͆ͥ̔͘͏̉ͯì̷̢̛̺̭͇̟̦̄̓́̓ͪ͟ì̷̢̛̺̭͇̟̦̄̓́̓ͪ͟s̴̡̗͍͕͖̮̟̱̫̎ͣ̀̎̿s̴̡̗͍͕͖̮̟̱̫̎ͣ̀̎̿ ̶͇̟̜̗̗͇͇͐̑̈͋̋̽͟ ̶͇̟̜̗̗͇͇͐̑̈͋̋̽͟e̷̥͙͈̖̤̯̹̯͗̉̈́̽ͨ̕e̷̥͙͈̖̤̯̹̯͗̉̈́̽ͨ̕v̛̝͕̱͙̞̖̒̂̔͆̊̎́ͫv̛̝͕̱͙̞̖̒̂̔͆̊̎́ͫę̴̤̭͖̈̐̿͂ͣ͒̃ͭ̕͟ę̴̤̭͖̈̐̿͂ͣ͒̃ͭ̕͟ṇ̳̭͓̟̠͕̯͑̉ͦ̀ͯ͜͡ṇ̳̭͓̟̠͕̯͑̉ͦ̀ͯ͜͡t̢̞͔̣̄̀͆̂̃ͨͦ͜͜͝͠t̢̞͔̣̄̀͆̂̃ͨͦ͜͜͝͠,̬̳̮͓͉̟͉͓̦͔̑̄ͨ̎͜,̬̳̮͓͉̟͉͓̦͔̑̄ͨ̎͜ ͕͈̠̰̬̬̌͂̏ͥ̀̕̚͢͠ ͕͈̠̰̬̬̌͂̏ͥ̀̕̚͢͠f̺̮̞̈́̏̋͏̺̖̝̓̑̂̚͢f̺̮̞̈́̏̋͏̺̖̝̓̑̂̚͢l̜̪͍̩̩̟͉͓̊̓ͤ̆ͣͫ̌l̜̪͍̩̩̟͉͓̊̓ͤ̆ͣͫ̌u̷̧̞̳̱̜̟̲͑̐͂ͪ͛͘͟u̷̧̞̳̱̜̟̲͑̐͂ͪ͛͘͟s͔͍̽ͣͮ̏̓͛̄ͯ̽͂̐ͯ͜s͔͍̽ͣͮ̏̓͛̄ͯ̽͂̐ͯ͜ḩ̼͕̦͖̼͚̗̃̃ͥ̅̂̈͟ḩ̼͕̦͖̼͚̗̃̃ͥ̅̂̈͟,̵͍̮̮̟͚̝̃ͨ̿ͭ̌ͤ̋̊,̵͍̮̮̟͚̝̃ͨ̿ͭ̌ͤ̋̊ ̷̨̨͈̝̦͂ͦ̒̋̇ͧ̒͟͝ ̷̨̨͈̝̦͂ͦ̒̋̇ͧ̒͟͝a̡̨̲̖̾̂͗̚͢͡͏͈ͤ̉͡a̡̨̲̖̾̂͗̚͢͡͏͈ͤ̉͡nͫͤ̚͜͏̧̛̣̻ͩ̔̍ͦ̕͝nͫͤ̚͜͏̧̛̣̻ͩ̔̍ͦ̕͝d͈̻̗̼̀͡͏̶̵̟̹̻̎̾ͯd͈̻̗̼̀͡͏̶̵̟̹̻̎̾ͯ ̶͙͈̠̜̬̺͛̀̊̂ͪ̔ͮ͑ ̶͙͈̠̜̬̺͛̀̊̂ͪ̔ͮ͑ş̧̡̢͓̠͋ͫ͑͒͊̅̔͜͞ş̧̡̢͓̠͋ͫ͑͒͊̅̔͜͞t̤̭͓̰̣̉̔̎ͫ͛ͦ̑̕͟͞t̤̭͓̰̣̉̔̎ͫ͛ͦ̑̕͟͞a̠͇͇̯̥͍͚̳̒́͐͐̏͋̓a̠͇͇̯̥͍͚̳̒́͐͐̏͋̓r͉͈̻̻͕̩̩̃̅͋͆ͮ͢͢͡r͉͈̻̻͕̩̩̃̅͋͆ͮ͢͢͡t̵̛̝̗̥̙̟̆ͮ̽̏ͧ͜͠ͅt̵̛̝̗̥̙̟̆ͮ̽̏ͧ͜͠ͅ ̷̼͎̦ͫ̈͑̃̽͏̲̪ͣͯ̽ ̷̼͎̦ͫ̈͑̃̽͏̲̪ͣͯ̽á̸̷̴̟̣́̔̌͏̶͕͋ͭͭá̸̷̴̟̣́̔̌͏̶͕͋ͭͭ ̧̧̲͍̘̘͚͔͇͙ͨͬ́̊ͅ ̧̧̲͍̘̘͚͔͇͙ͨͬ́̊ͅn̸̸̩͖͔͚͚̖͗ͦ̓̀̀̈́̈́n̸̸̩͖͔͚͚̖͗ͦ̓̀̀̈́̈́ę̵̧̬̣̦̖̝̹̱͌̃̑ͣ̚ę̵̧̬̣̦̖̝̹̱͌̃̑ͣ̚w͍̥͚̺ͮ̓̈̈́̾̊̆́̚͜͝w͍̥͚̺ͮ̓̈̈́̾̊̆́̚͜͝ ̛̹̲̥̝͙̾ͨ̆̎̃̋͂̓̕ ̛̹̲̥̝͙̾ͨ̆̎̃̋͂̓̕"̴̜̰̰̱̖̙̘̈́͌ͨͪ̐̕͠"̴̜̰̰̱̖̙̘̈́͌ͨͪ̐̕͠g̸̛͇̐͊͂̽͢͏͖̣ͫ͊ͯͅg̸̛͇̐͊͂̽͢͏͖̣ͫ͊ͯͅr̴̨̲͎̹͇̠̐ͤ̇̒ͬ̆ͧ͞r̴̨̲͎̹͇̠̐ͤ̇̒ͬ̆ͧ͞į̝̱̩͔̈ͨ̉͌̋̍̂͜͟͞į̝̱̩͔̈ͨ̉͌̋̍̂͜͟͞d̷̴̷̟̎͌͑͛̈́ͭͨͯ̋ͭ̕d̷̴̷̟̎͌͑͛̈́ͭͨͯ̋ͭ̕_̢̭̙̦̪͇̾̔̆ͬͦ́ͥ͢͡_̢̭̙̦̪͇̾̔̆ͬͦ́ͥ͢͡l̡̢̨̧͔̱̥̹̬̆ͮ̈́̏̅͜l̡̢̨̧͔̱̥̹̬̆ͮ̈́̏̅͜ĩ̢͖̠̩̞͚̰̰̉̋̌͛ͪ͠ĩ̢͖̠̩̞͚̰̰̉̋̌͛ͪ͠n̢̬̜̘̲͉ͮ͆͏̯͕ͭͦ̉̅n̢̬̜̘̲͉ͮ͆͏̯͕ͭͦ̉̅ē̡͈̮̭̰̜͍̗̮͔͌͐͆ͫē̡͈̮̭̰̜͍̗̮͔͌͐͆ͫ"̦̠̟ͣ̽͋͐ͧ̓̂̆̎͒͝ͅ"̦̠̟ͣ̽͋͐ͧ̓̂̆̎͒͝ͅ ̴̡̺̹̖̰̀ͤ͊̊͗̊́͜͠ ̴̡̺̹̖̰̀ͤ͊̊͗̊́͜͠ẻ͎̳̻̯̹͓͊̌̄͑͂̉͜͢ẻ͎̳̻̯̹͓͊̌̄͑͂̉͜͢v̞̬̪̥͖ͤ͐̍́ͤ̇̀̕̕ͅv̞̬̪̥͖ͤ͐̍́ͤ̇̀̕̕ͅȇ̶̱̗̩̠͚͎͊ͤͪͦͫ̂̚ȇ̶̱̗̩̠͚͎͊ͤͪͦͫ̂̚n̢̮̜͉̎ͨͩ̒̓ͬͨ̓ͦ͘͜n̢̮̜͉̎ͨͩ̒̓ͬͨ̓ͦ͘͜t̢͚͉̹͇̺̭ͪ̄̉ͨ̄͐̕ͅt̢͚͉̹͇̺̭ͪ̄̉ͨ̄͐̕ͅ ̵̛̳̱͍̩͓ͣ͋̈́͐ͭͧ̿ͅ ̵̛̳̱͍̩͓ͣ͋̈́͐ͭͧ̿ͅã̰̪̙͉̪͇ͣ͋ͤ̓͋͑̕͘ã̰̪̙͉̪͇ͣ͋ͤ̓͋͑̕͘t̴̴̡̡̛̳̼̻̳̂̽͒̇̚͠t̴̴̡̡̛̳̼̻̳̂̽͒̇̚͠ ̴̙̤̹͔̳̟̽̀̆ͥ̂̕͘͝ ̴̙̤̹͔̳̟̽̀̆ͥ̂̕͘͝t̴͖̼͔̬̦̏ͩ̄́̓̊̔̇͡t̴͖̼͔̬̦̏ͩ̄́̓̊̔̇͡ḫ̷͚͇̫̫̠͒ͮ̍ͣ̃͐͐̍ḫ̷͚͇̫̫̠͒ͮ̍ͣ̃͐͐̍e̳͉̮͖̳̣̎͌̂ͣ͋ͯ̆͜͞e̳͉̮͖̳̣̎͌̂ͣ͋ͯ̆͜͞ ̪̖̉̌̀̽̄̍̓̀̂̋͐̈̚ ̪̖̉̌̀̽̄̍̓̀̂̋͐̈̚c̶̫̜͚̊̿̂̿ͥͭ̓̂̈́͘͡c̶̫̜͚̊̿̂̿ͥͭ̓̂̈́͘͡ṷ̵̷͉̯̜̬̝̑͛ͤ̋ͧͯ̉ṷ̵̷͉̯̜̬̝̑͛ͤ̋ͧͯ̉ŗ̙̬̺̬ͥͤ̓͐̈́ͬ̽̌͡͡ŗ̙̬̺̬ͥͤ̓͐̈́ͬ̽̌͡͡r̛͖̼̣͙̋̇̀̅͒̽ͥ̑ͅͅr̛͖̼̣͙̋̇̀̅͒̽ͥ̑ͅͅě̢̪̦̼͘͏̴̠̞͍̓̐ͭ̇ě̢̪̦̼͘͏̴̠̞͍̓̐ͭ̇ǹ̨̨̛̛̯̍ͭͫ̎̍̃̄̐̍ǹ̨̨̛̛̯̍ͭͫ̎̍̃̄̐̍t̵̳͔̭̮̭̱̰ͤ͐̉̾͗̅͢t̵̳͔̭̮̭̱̰ͤ͐̉̾͗̅͢ ̩͕ͧ̌͂͂́ͫͥ̍͏̬̙͗ͅ ̩͕ͧ̌͂͂́ͫͥ̍͏̬̙͗ͅp̞̞͇͇̯̩̬̜ͥ̃͐̑͋́͗p̞̞͇͇̯̩̬̜ͥ̃͐̑͋́͗o̵͖͈̩̪̥̝̊̒̉̿͋ͩ̆͠o̵͖͈̩̪̥̝̊̒̉̿͋ͩ̆͠s̶͇̺̩̟̺͋̆̒ͫͥ̆͏͔͜s̶͇̺̩̟̺͋̆̒ͫͥ̆͏͔͜i̞̝̭̲͈̝̮̫͚͑̓ͤ̎ͮ̀i̞̝̭̲͈̝̮̫͚͑̓ͤ̎ͮ̀t̷̬͇̗̥̳͔̮͔̎̀ͣ̊̕͢t̷̬͇̗̥̳͔̮͔̎̀ͣ̊̕͢i̶̧̗̠̗̲͑̋ͣͪͦͣ͆̕͢i̶̧̗̠̗̲͑̋ͣͪͦͣ͆̕͢ǫ̰̟̙ͯ͏̬̦͚̝̀̈́ͣ͘͜ǫ̰̟̙ͯ͏̬̦͚̝̀̈́ͣ͘͜n̸̻̩͖͓̠̲̮̐̄̌̇́́͠n̸̻̩͖͓̠̲̮̐̄̌̇́́͠.̧̛͈̙̭̉ͥ̋͛̏͋̂̿͛͞.̧̛͈̙̭̉ͥ̋͛̏͋̂̿͛͞ ̡̲͇̳͔̦̤̹̥ͣ̍ͪͮ̎͡ ̡̲͇̳͔̦̤̹̥ͣ̍ͪͮ̎͡F̼̣͙̳̞͑͒ͧͣ̔̊̇̓̈́͠F̼̣͙̳̞͑͒ͧͣ̔̊̇̓̈́͠ŏ̸̶͎̘̟͙̤̑̒̿͗͛̐̚ŏ̸̶͎̘̟͙̤̑̒̿͗͛̐̚r̵̰͇͚̥̻͚̈́̌̽ͨͥ̕͘͞r̵̰͇͚̥̻͚̈́̌̽ͨͥ̕͘͞ ̵̶̧͖̙̝̻̭̤̒̿͌͗͑͡ ̵̶̧͖̙̝̻̭̤̒̿͌͗͑͡ś̸̬̘̭̼͓̹ͥ͛ͪ̐̈́͆͝ś̸̬̘̭̼͓̹ͥ͛ͪ̐̈́͆͝i͎̺̪̖̻ͫ̀ͤ̾ͦ̽ͭ͒̒͘i͎̺̪̖̻ͫ̀ͤ̾ͦ̽ͭ͒̒͘m̨̩͎̫̫̙̃̈͆ͬ̊͠͏̽͞m̨̩͎̫̫̙̃̈͆ͬ̊͠͏̽͞p̴̢̨͖̼͍̲͍̲ͩ̊̒̌̃ͤp̴̢̨͖̼͍̲͍̲ͩ̊̒̌̃ͤļ͔̱͙̝̟̜͚͎͕̮̹ͣ̀͘ļ͔̱͙̝̟̜͚͎͕̮̹ͣ̀͘ḭ̢̛͈͍̠̟̪̑̎̈́̑̽͜͡ḭ̢̛͈͍̠̟̪̑̎̈́̑̽͜͡c̖̠̥͔̪̼̑̃̆̓ͫ͗ͩͩ̋c̖̠̥͔̪̼̑̃̆̓ͫ͗ͩͩ̋i̴̸̡̘͇͔̹͂̍̐̀ͬͩ̈͘i̴̸̡̘͇͔̹͂̍̐̀ͬͩ̈͘t̵̵̖̫͙͎̒ͭ̔̃̔ͧͫ̽͝t̵̵̖̫͙͎̒ͭ̔̃̔ͧͫ̽͝y̴̘̱͈̳ͯ̈́̍ͮ̔͊͊̚̚͞y̴̘̱͈̳ͯ̈́̍ͮ̔͊͊̚̚͞ ̛̩̤̪͇̬͕̯̞̙̪̮̀̂̕ ̛̩̤̪͇̬͕̯̞̙̪̮̀̂̕ļ̲̰̞̈̌̿͐̉́̋ͬ͟͟͡ļ̲̰̞̈̌̿͐̉́̋ͬ͟͟͡e̡̧̛̬̣̗̣̰͂̐̂͗͛̋̇e̡̧̛̬̣̗̣̰͂̐̂͗͛̋̇a̡̯͉̠̞ͩͮ̉̓́ͮ̔̆̒͘a̡̯͉̠̞ͩͮ̉̓́ͮ̔̆̒͘v͔ͦ͏͎̪̮̝̟̤́̀͊̈̎͟v͔ͦ͏͎̪̮̝̟̤́̀͊̈̎͟ȩ̪͔̤̺͗ͦ̅̓ͭͤͫ̆ͣ͒ȩ̪͔̤̺͗ͦ̅̓ͭͤͫ̆ͣ͒ ̶̢̤͎̰̝̤͂̔͒ͦͦ͂̊̀ ̶̢̤͎̰̝̤͂̔͒ͦͦ͂̊̀p̛̝̪͚͖̫͕̅̍̊́̓͒̂̃p̛̝̪͚͖̫͕̅̍̊́̓͒̂̃l̴̸͉͎̖͕̦̥̾ͨ̌̑ͣ̕͝l̴̸͉͎̖͕̦̥̾ͨ̌̑ͣ̕͝a̰̩͔̼͔̦̩͒ͪͭ̐͡͏̗ͮa̰̩͔̼͔̦̩͒ͪͭ̐͡͏̗ͮč̵̱͇̲̞̉̆̌̄ͧͫ̑̈́͠č̵̱͇̲̞̉̆̌̄ͧͫ̑̈́͠e̶̛̜̬̯̤͔̓ͤͮͦ̂͐͜͜e̶̛̜̬̯̤͔̓ͤͮͦ̂͐͜͜ ̸̧̼̯͕̼̭ͣͣ̿̑̈̎̽͜ ̸̧̼̯͕̼̭ͣͣ̿̑̈̎̽͜f̴̼̞͇̺̊̎̓̑̔̈́͗̊͘͞f̴̼̞͇̺̊̎̓̑̔̈́͗̊͘͞ő̶̶̧̺̤̜̹̫͎̻̏̉̍ͩő̶̶̧̺̤̜̹̫͎̻̏̉̍ͩr̵̙̱̺̮͙̯̼͐̀͗̾͊͟͝r̵̙̱̺̮͙̯̼͐̀͗̾͊͟͝ ̵̪̥͍̩̱ͨ͗̓̎̓͒̚͜͞ ̵̪̥͍̩̱ͨ͗̓̎̓͒̚͜͞t̪̤͙̥̖̹̣̤͎̞̒́̒̽̃t̪̤͙̥̖̹̣̤͎̞̒́̒̽̃ḥ̵̷̷̭̘͙͓ͩ̓ͪͤ̓ͮ̍ḥ̵̷̷̭̘͙͓ͩ̓ͪͤ̓ͮ̍é̡̬̺͉̻̻̀̀͂̽ͬ̕̕͠é̡̬̺͉̻̻̀̀͂̽ͬ̕̕͠ ̵̱̻̣͙̌͊́ͯ́̐̀́͂̕ ̵̱̻̣͙̌͊́ͯ́̐̀́͂̕f̨̪͈̲̬̟̝͎̀̔̋ͨ̀͡ͅf̨̪͈̲̬̟̝͎̀̔̋ͨ̀͡ͅi̵̫̱̝͒̇̏̃ͭ̂̄̄̊̐͠i̵̫̱̝͒̇̏̃ͭ̂̄̄̊̐͠n̵̷͖̻̦͍̻̑̈́̎̓͑ͪͫ͟n̵̷͖̻̦͍̻̑̈́̎̓͑ͪͫ͟a̗̗̠̫̦̻̹͇ͯͦͫ͗̽ͥ̚a̗̗̠̫̦̻̹͇ͯͦͫ͗̽ͥ̚l̵̨̨͙̜͔̘̗̯͌̋͂̑̄͢l̵̨̨͙̜͔̘̗̯͌̋͂̑̄͢ ̵̷̛̺̳͙̲̥̬̊̌̽̓̇͝ ̵̷̛̺̳͙̲̥̬̊̌̽̓̇͝"̸̨̫̟̤̥͉̮̥̀ͤ̐͊̇̑"̸̨̫̟̤̥͉̮̥̀ͤ̐͊̇̑c̵̭̘͍͇̜ͨ̔̍̆͛͌͂͌͛c̵̭̘͍͇̜ͨ̔̍̆͛͌͂͌͛l̸̷̢̡̫̩̃́͐̆͒ͨ̔̄͟l̸̷̢̡̫̩̃́͐̆͒ͨ̔̄͟è̙͎̝̞̠̹͍́́̅͐͌͘ͅè̙͎̝̞̠̹͍́́̅͐͌͘ͅą̶̢̡̘̦͖̰̌̎͌ͩ́̓ͮą̶̢̡̘̦͖̰̌̎͌ͩ́̓ͮȑ̹̻̦͙̠͂̽͆ͫ͛͟͏̺͡ȑ̹̻̦͙̠͂̽͆ͫ͛͟͏̺͡"̣̞͕̇ͯ̓̽ͪ͑́̍̚͘͘ͅ"̣̞͕̇ͯ̓̽ͪ͑́̍̚͘͘ͅ ̛̩̘̗̜̗̥̂͊ͥ̀ͨͫ̾ͧ ̛̩̘̗̜̗̥̂͊ͥ̀ͨͫ̾ͧe̵̡͚͉̤̯̮͛̎̓ͪ̾̉̆͟e̵̡͚͉̤̯̮͛̎̓ͪ̾̉̆͟l̢̩͓̙͓͍̈̊ͫͣ́̅ͧ͛͞l̢̩͓̙͓͍̈̊ͫͣ́̅ͧ͛͞e̠̱͉̯͔̙͔̓ͩ̃͋͌ͬͭ͋e̠̱͉̯͔̙͔̓ͩ̃͋͌ͬͭ͋m̧̡̛̤͕̻̳̽͛̓̈́ͣ̊̚͟m̧̡̛̤͕̻̳̽͛̓̈́ͣ̊̚͟e̯͎̺͔̼̾͂͐̄ͮ͌̍͑̕ͅe̯͎̺͔̼̾͂͐̄ͮ͌̍͑̕ͅṉ̸͔̩̙̙̹͚̭ͩ͛͗̀̾ͅṉ̸͔̩̙̙̹͚̭ͩ͛͗̀̾ͅt̸̢̧̝͉̺͉̓́̇ͯ̕͠͠͝t̸̢̧̝͉̺͉̓́̇ͯ̕͠͠͝ ̳͔̜̹̘̪̅̋̎̉͆̑ͤ͡͞ ̳͔̜̹̘̪̅̋̎̉͆̑ͤ͡͞a̷̳͓̞̱͈̓́̒̔̆ͩͯ̊͠a̷̳͓̞̱͈̓́̒̔̆ͩͯ̊͠s̷̛͙̘̳͙͓̠̞̫̆̓̚̚͡s̷̛͙̘̳͙͓̠̞̫̆̓̚̚͡ ̷̢̦̘̮̰͕̏̀ͩ̓͂ͦ͟ͅ ̷̢̦̘̮̰͕̏̀ͩ̓͂ͦ͟ͅw̮͔͇͕̝͖ͪ͒̏̇ͪ̇̍ͦ͠w̮͔͇͕̝͖ͪ͒̏̇ͪ̇̍ͦ͠ẹ̗͚̮̭̓̍̐̃̍́̐͘̕͘ẹ̗͚̮̭̓̍̐̃̍́̐͘̕͘l̴̡̩̱̞͛ͤ͑͑͂̀ͣ̉̌̕l̴̡̩̱̞͛ͤ͑͑͂̀ͣ̉̌̕l̷̨̘̤̣̯͇̲̝ͨ̍ͦ͝͝ͅl̷̨̘̤̣̯͇̲̝ͨ̍ͦ͝͝ͅ,̷̻̙̖͔͚͋̇̂̑͗̕̕͢ͅ,̷̻̙̖͔͚͋̇̂̑͗̕̕͢ͅ ̴̶̮̣̪̣̟͚̅͊ͧͭ̂͂̓ ̴̶̮̣̪̣̟͚̅͊ͧͭ̂͂̓h̡͈̗̙͚̳͕̤͍̿̄͑ͥ͊̉h̡͈̗̙͚̳͕̤͍̿̄͑ͥ͊̉e̡̞͔̘͐̋͌̅̓̈͆̇̿͟͠e̡̞͔̘͐̋͌̅̓̈͆̇̿͟͠n̤͕͉̣̐͊́̽̍́͂͏̙̾ͅn̤͕͉̣̐͊́̽̍́͂͏̙̾ͅc̨̧̛̜͈͍͓̣̹ͮͧ̊͟͡ͅc̨̧̛̜͈͍͓̣̹ͮͧ̊͟͡ͅȩ̢̛͚̣͓͙ͣͮͩ̌̌́͟͠ȩ̢̛͚̣͓͙ͣͮͩ̌̌́͟͠ ̷̜̀ͪ̅͐͝͏̤̮̄͑̾ͬ͝ ̷̜̀ͪ̅͐͝͏̤̮̄͑̾ͬ͝t̙͔̳͕̝̝͔͐̊̓ͩ̈́ͪ̒͠t̙͔̳͕̝̝͔͐̊̓ͩ̈́ͪ̒͠h̩̖̪̠͂ͪ́͐̿͊ͨ̈̋̃͟h̩̖̪̠͂ͪ́͐̿͊ͨ̈̋̃͟e̋͆ͬ͞͏̵̘̹̙̂ͥ̐̀́ͅe̋͆ͬ͞͏̵̘̹̙̂ͥ̐̀́ͅ ̧̱͌̆̏͘͏̬̠̹̏ͦ̓͋̕ ̧̱͌̆̏͘͏̬̠̹̏ͦ̓͋̕f̸̧͎̣̪̯̻̗̟̎̎͂ͫ̕͝f̸̧͎̣̪̯̻̗̟̎̎͂ͫ̕͝a̟̓̃͒͏̸̧̣̱̎̽̏̐̓ͤa̟̓̃͒͏̸̧̣̱̎̽̏̐̓ͤć̯͚͕͡͏̴̛̜̺̣͙͉̀̍ć̯͚͕͡͏̴̛̜̺̣͙͉̀̍ț̢̹͇͈ͩ̋́̔̇̉ͤ̽͢ͅț̢̹͇͈ͩ̋́̔̇̉ͤ̽͢ͅo͈̥͊ͦ̔̃ͬ̎͛ͧ͌͌͟͟͝o͈̥͊ͦ̔̃ͬ̎͛ͧ͌͌͟͟͝r̸̨͕̙̟̟͈̼͔ͥͮ͋ͫ͒͝r̸̨͕̙̟̟͈̼͔ͥͮ͋ͫ͒͝ ̧̗̝̘͇͉̩̗̅̊̓͂̐͊͡ ̧̗̝̘͇͉̩̗̅̊̓͂̐͊͡o̬̻̪̹̘̥̳̲̫̳̫̳ͬͩ͊o̬̻̪̹̘̥̳̲̫̳̫̳ͬͩ͊f̡̣̜̗͚̙͇̓͑̍ͬ̅̚͞͞f̡̣̜̗͚̙͇̓͑̍ͬ̅̚͞͞ ̵̸͓̱̻̱̌̃ͫ̑̿͐͂ͨ̇ ̵̸͓̱̻̱̌̃ͫ̑̿͐͂ͨ̇2̡̝̥̯͚͔̖̫ͫ̽̔͑̅̚͞2̡̝̥̯͚͔̖̫ͫ̽̔͑̅̚͞ ̨̠̰̯̤͕̗̗̳͆̑͐͌̕͟ ̨̠̰̯̤͕̗̗̳͆̑͐͌̕͟i͇̫̲̲͓̖͙͖̱ͤ͊̎̃ͧ͢i͇̫̲̲͓̖͙͖̱ͤ͊̎̃ͧ͢n̵̢̻̦̭̏̓̂́͏̲̪̙̏͌n̵̢̻̦̭̏̓̂́͏̲̪̙̏͌ ̸̵̛̹͇͚̓̋̎̏̽̚̚͢͜ ̸̵̛̹͇͚̓̋̎̏̽̚̚͢͜t͈͔̤̲̬ͧͩ̔̀̂́͑̂ͭ͘t͈͔̤̲̬ͧͩ̔̀̂́͑̂ͭ͘h̡̻̙̖̪̱̍͗̍́͗́́̅͠h̡̻̙̖̪̱̍͗̍́͗́́̅͠e̶̖̩̜͐ͥͨͪͣ̆͋̋̉͢͡e̶̖̩̜͐ͥͨͪͣ̆͋̋̉͢͡ ̧͈̙̤͉͌ͩ̓͐̌̄ͦ͌ͥ͝ ̧͈̙̤͉͌ͩ̓͐̌̄ͦ͌ͥ͝c̨̨̹̗̬͕̩̈̑̉̃̑́̆͞c̨̨̹̗̬͕̩̈̑̉̃̑́̆͞h̭͚̦̻̘͈͆ͪ̿̌́̏̐͊͠h̭͚̦̻̘͈͆ͪ̿̌́̏̐͊͠ę̙͍͚ͮͦ́ͭͥ̈͑ͧ̕̕͢ę̙͍͚ͮͦ́ͭͥ̈͑ͧ̕̕͢c̝̭͓̹̙̠̄̍ͦ̌̏̉̇͛ͥc̝̭͓̹̙̠̄̍ͦ̌̏̉̇͛ͥk̶̡͚̦̰̣͖̔͌́̋͋̔ͥ̕k̶̡͚̦̰̣͖̔͌́̋͋̔ͥ̕.̛̱̖͓̼͚̲ͪ̆̈́̃̚͜͞ͅ.̛̱̖͓̼͚̲ͪ̆̈́̃̚͜͞ͅ ̶̴̺̹̜̺͇ͮ̉ͯ͋͗͝͝ͅ ̶̴̺̹̜̺͇ͮ̉ͯ͋͗͝͝ͅA͉̺̰̲̟̺͚͙̽́̀̌ͬͩ͠A͉̺̰̲̟̺͚͙̽́̀̌ͬͩ͠l̜͈̟͖̾͑̈́́̇ͮ̐ͦͮ͋̋l̜͈̟͖̾͑̈́́̇ͮ̐ͦͮ͋̋s̡̛̯̜̩̪̤̹̅͛̋̓͂̊͡s̡̛̯̜̩̪̤̹̅͛̋̓͂̊͡o̶͉̱͉̠̫̻ͤͣ̓ͭ͊͑͆ͅo̶͉̱͉̠̫̻ͤͣ̓ͭ͊͑͆ͅ ̢̗͉̝̞͗͛̊́ͦ͛̍̚͜͡ ̢̗͉̝̞͗͛̊́ͦ͛̍̚͜͡i̵̧͍̝̦̬̭̽̎̈̃̓̚͟͝i̵̧͍̝̦̬̭̽̎̈̃̓̚͟͝f̴̛̻̞̬̟͖̙̦̑́̀̍̇͝f̴̛̻̞̬̟͖̙̦̑́̀̍̇͝ ͓͚͇̺ͪ͛ͦͥ̓̎ͨ͒͊̚͟ ͓͚͇̺ͪ͛ͦͥ̓̎ͨ͒͊̚͟t̶̯͙̹̟͖̂̇͒̾ͭ͒͐͛̌t̶̯͙̹̟͖̂̇͒̾ͭ͒͐͛̌ḧ̠̬́͋̕͏̧̙̼͑͂̀̌̉̈ḧ̠̬́͋̕͏̧̙̼͑͂̀̌̉̈e̫̺͔̗̳͋̒͌ͤͬ̔͗̕̕͡e̫̺͔̗̳͋̒͌ͤͬ̔͗̕̕͡r̴̛̭͙͑́ͤ̓̒͊̈ͥ̑ͮ͞r̴̛̭͙͑́ͤ̓̒͊̈ͥ̑ͮ͞ȇ̷̛̝͓̜̮̩͙ͨ̎̎͛̌̽ȇ̷̛̝͓̜̮̩͙ͨ̎̎͛̌̽ ̸̩̤̘̖̳̻̋̈͛͑̈́̌̒͝ ̸̩̤̘̖̳̻̋̈͛͑̈́̌̒͝i̧͖͕̞̩̱̭̎̽̀͏̮ͬͨ͡i̧͖͕̞̩̱̭̎̽̀͏̮ͬͨ͡ś̶͍̞̉ͯ̊ͦͧ̀̆̌͂͞͝ś̶͍̞̉ͯ̊ͦͧ̀̆̌͂͞͝ ̡̛͙͈̜̗̻̮̞͍̝̝̓̅͋ ̡̛͙͈̜̗̻̮̞͍̝̝̓̅͋ȃ̢͍̟̬̳ͣ͏̝̔͑̎ͣ̕ͅȃ̢͍̟̬̳ͣ͏̝̔͑̎ͣ̕ͅ ̖̼͙̯͎̒͒ͩͣ̀̆͗̇͝ͅ ̖̼͙̯͎̒͒ͩͣ̀̆͗̇͝ͅļ̩̪͕͓͖͌̐͛̊ͫͪ̿͊ͤļ̩̪͕͓͖͌̐͛̊ͫͪ̿͊ͤȍ͍̜͓̣͈͍̳̄͊̄ͣ͢͝ͅȍ͍̜͓̣͈͍̳̄͊̄ͣ͢͝ͅt̵̷̛̤͎͕̖̹ͦ̇͒́͂ͮ͘t̵̷̛̤͎͕̖̹ͦ̇͒́͂ͮ͘ ̶̨̳̺̖̼̯͎̯̬̀̈̐ͦ͜ ̶̨̳̺̖̼̯͎̯̬̀̈̐ͦ͜o̷̡̯̼͇̻͙̙̙͒͂ͩ̉̀ͮo̷̡̯̼͇̻͙̙̙͒͂ͩ̉̀ͮf̻̺̖͉̊ͤ̇ͤ̍͌͛̐͟͟͝f̻̺̖͉̊ͤ̇ͤ̍͌͛̐͟͟͝ ̷̴̟̠̹͎̱̈́̈́̆̈́̇̃͘͞ ̷̴̟̠̹͎̱̈́̈́̆̈́̇̃͘͞p̸̸̧̨̦̪͕̮̀͒͒͌͌̑͢p̸̸̧̨̦̪͕̮̀͒͒͌͌̑͢a̯͙ͥͬ̊̓ͯ͌ͮ͊̎̂͒͢͠a̯͙ͥͬ̊̓ͯ͌ͮ͊̎̂͒͢͠ċ̛̫̱̥͕̳̲ͫͤ̎͐̄̕͠ċ̛̫̱̥͕̳̲ͫͤ̎͐̄̕͠k̵̡̹̲͓̾̉͏̶̻́ͩ̎̓̊k̵̡̹̲͓̾̉͏̶̻́ͩ̎̓̊e̵̡̢̢̪͍̲̣͒̒̍ͯͤ͊͑e̵̡̢̢̪͍̲̣͒̒̍ͯͤ͊͑ḑ̘͖̼̌ͭ̐͑ͯ͋ͬ̈́͆̓̚ḑ̘͖̼̌ͭ̐͑ͯ͋ͬ̈́͆̓̚ ̶̶̧̺̰͖̯͇̏̄̿ͤ̔͘͡ ̶̶̧̺̰͖̯͇̏̄̿ͤ̔͘͡c̩̝̯͂͆ͤ̈́͆̏̑̄ͦ͗̿͞c̩̝̯͂͆ͤ̈́͆̏̑̄ͦ͗̿͞e̥̫͌̓̚͏̵̧͙̣̻̞́̌̉e̥̫͌̓̚͏̵̧͙̣̻̞́̌̉l̵̪̣̪̘̙̟̘͊͒̿̏͗͝͠l̵̪̣̪̘̙̟̘͊͒̿̏͗͝͠l̨̮͚̟̺̹ͮ͊ͭ̊ͮ̿͘͘͟l̨̮͚̟̺̹ͮ͊ͭ̊ͮ̿͘͘͟s̩̯͌̊͒͝͏̥͑̈̎ͥ̀͟͞s̩̯͌̊͒͝͏̥͑̈̎ͥ̀͟͞,̡̙̻̭̪̭̖̀̇̒ͮ̈̒̇̕,̡̙̻̭̪̭̖̀̇̒ͮ̈̒̇̕ ̷̢̫̳̺͉̯̳̂̓ͨ͋͛͂͞ ̷̢̫̳̺͉̯̳̂̓ͨ͋͛͂͞p̟̰͖̹̦̲͙̉̑͐͑͗̀͟͢p̟̰͖̹̦̲͙̉̑͐͑͗̀͟͢á̳̜̈̓͛͠͏̢̄ͧ̉ͧͨͅá̳̜̈̓͛͠͏̢̄ͧ̉ͧͨͅs̵̢̥̖̰̥̼̯ͪͭ̿͗͌ͪ͊s̵̢̥̖̰̥̼̯ͪͭ̿͗͌ͪ͊s̘̱͕̓̅͛̆̅ͮ́̅ͧͣ̈̚s̘̱͕̓̅͛̆̅ͮ́̅ͧͣ̈̚ ̡̮̹̹̗͎̝ͣ̇́ͤ̾ͤ͞ͅ ̡̮̹̹̗͎̝ͣ̇́ͤ̾ͤ͞ͅt̡̛̝̯̱̖̠̱ͤ͒͆̍̚͘ͅt̡̛̝̯̱̖̠̱ͤ͒͆̍̚͘ͅh̛̯̻̩̘̤̳̿̓͂̐͐͡͡͠h̛̯̻̩̘̤̳̿̓͂̐͐͡͡͠ë́͏̩̣̗̺̟ͭ̃̾͂̀͘͢͝ë́͏̩̣̗̺̟ͭ̃̾͂̀͘͢͝m̸̜͔̮̥̹̲̖̲̄̈̊̎ͬ͠m̸̜͔̮̥̹̲̖̲̄̈̊̎ͬ͠ ̝͇̏͏̡̟̥͍ͦ̋̎ͤ̕͢͜ ̝͇̏͏̡̟̥͍ͦ̋̎ͤ̕͢͜ó͖̬̩̤̜̫͔͑̌ͫ̈́͡͏̇ó͖̬̩̤̜̫͔͑̌ͫ̈́͡͏̇f̴̶̴̥͔̗͖̬̆͒ͨ͊ͬͅͅf̴̶̴̥͔̗͖̬̆͒ͨ͊ͬͅͅ ̮̦̲̼̞̑ͨ͒̌ͤ̿́̌͐͒ ̮̦̲̼̞̑ͨ͒̌ͤ̿́̌͐͒t̛̮̰͔̋͂͗̓͋̇̅̆̒͊ͅt̛̮̰͔̋͂͗̓͋̇̅̆̒͊ͅo̴̢͚̮̳͙̟̳̐ͬ͑̃̓͡ͅo̴̢͚̮̳͙̟̳̐ͬ͑̃̓͡ͅ ̝̺͖͒ͯͭ̑ͤ͊ͮ͂̚̚͡ͅ ̝̺͖͒ͯͭ̑ͤ͊ͮ͂̚̚͡ͅt̶̨̲̦͉͖̲̤̗ͬ̋̋ͦ̂ͯt̶̨̲̦͉͖̲̤̗ͬ̋̋ͦ̂ͯh̶̨̤͍̜̯͈͇͛ͩ́̀͊ͮͩh̶̨̤͍̜̯͈͇͛ͩ́̀͊ͮͩe̡̢̤̰̰͙̭͈̓ͯͬ͑ͨ̃͢e̡̢̤̰̰͙̭͈̓ͯͬ͑ͨ̃͢ ̶̛̺̦̯̹̞͎̟̥̞̝̐̕ͅ ̶̛̺̦̯̹̞͎̟̥̞̝̐̕ͅU͙̓ͤ͏̟̗̟͕̥̰́͑̆ͧ͟U͙̓ͤ͏̟̗̟͕̥̰́͑̆ͧ͟I̪̩͕͕̼̎͐ͭͦ͐̋̐̅ͯ͢I̪̩͕͕̼̎͐ͭͦ͐̋̐̅ͯ͢ ̢̦͍̰̬͚ͯ́ͫ̿ͨ͘͘͝͡ ̢̦͍̰̬͚ͯ́ͫ̿ͨ͘͘͝͡t̴̨͉̟̥͛͐̇̀̎̒̄ͧ̀̇t̴̨͉̟̥͛͐̇̀̎̒̄ͧ̀̇o̸͇͏̷͍͉̠ͤ̈̾ͤ͛ͥ̚͝o̸͇͏̷͍͉̠ͤ̈̾ͤ͛ͥ̚͝ ̸̣͕̝̯̼́ͨͯ̏̋̂̑́͘ ̸̣͕̝̯̼́ͨͯ̏̋̂̑́͘l̵̨̛̬̱̣̬͚̺̫̳ͨ̽ͫͯl̵̨̛̬̱̣̬͚̺̫̳ͨ̽ͫͯḙ̳͕̝̥̄̆ͮ̄ͦͨ̓̚͏͢ḙ̳͕̝̥̄̆ͮ̄ͦͨ̓̚͏͢t̵̼̲̣̉̀̌ͭ̒̓͌̀͒̀ͅt̵̼̲̣̉̀̌ͭ̒̓͌̀͒̀ͅ ̺͈͙̘̣̩̙͕̋̇͆̀͊̇̂ ̺͈͙̘̣̩̙͕̋̇͆̀͊̇̂i̧̭̲̼̗̥̪̣̭ͬ͑ͨ̓̈̐i̧̭̲̼̗̥̪̣̭ͬ͑ͨ̓̈̐ṱ̴̯̲̱̫̲̥ͭ̀͋̂̚̕͟ṱ̴̯̲̱̫̲̥ͭ̀͋̂̚̕͟ ̖̗͔̦̲̻̌̀̏͆͊ͤ̑ͨ̉ ̖̗͔̦̲̻̌̀̏͆͊ͤ̑ͨ̉s̨̢͔̄̃ͯ̈́̑͐̚̕͢͝͝s̨̢͔̄̃ͯ̈́̑͐̚̕͢͝͝t͚͉͇̳̘̅̇̋͌̀̋́ͨ́͏t͚͉͇̳̘̅̇̋͌̀̋́ͨ́͏â͇͎̺ͨͭ͡͏͚̯ͤͩ͋ͧ͘â͇͎̺ͨͭ͡͏͚̯ͤͩ͋ͧ͘r̷̘̜͍̫̯ͭͪ͑͗̓͆͟͝ͅr̷̘̜͍̫̯ͭͪ͑͗̓͆͟͝ͅṭ̷̢̱͕̎ͬ̿́́͊̐͟͢͜ṭ̷̢̱͕̎ͬ̿́́͊̐͟͢͜ ̟̥̖͕̭͍̲ͩ̆̒̑͊̕̚͡ ̟̥̖͕̭͍̲ͩ̆̒̑͊̕̚͡p̶̴̨̧̜̰̜̘̉̽ͤ́͘͢͜p̶̴̨̧̜̰̜̘̉̽ͤ́͘͢͜ṙ̠̘̟̭͖̜̜͍ͦ̾͒͜͠͞ṙ̠̘̟̭͖̜̜͍ͦ̾͒͜͠͞ǒ̷̶̫͈̫̹ͬ͂ͧ̿̿̑͂͂ǒ̷̶̫͈̫̹ͬ͂ͧ̿̿̑͂͂c̵̸̮͕̮͈̞̼͎͉͍̑́ͭ̀c̵̸̮͕̮͈̞̼͎͉͍̑́ͭ̀e̸̡͔͓̳̞̟̘ͩ̍̽ͪͤͣ͢e̸̡͔͓̳̞̟̘ͩ̍̽ͪͤͣ͢s̨͍̬̖͂̏ͦ̀ͫ̐ͨͪ͡ͅͅs̨͍̬̖͂̏ͦ̀ͫ̐ͨͪ͡ͅͅs̡̻̹̜͍̺͌͛ͮ̓̀̈́̉̿͑s̡̻̹̜͍̺͌͛ͮ̓̀̈́̉̿͑í̤̜ͭ͢͏̶̶̹͍ͤͪ̉ͫ̋í̤̜ͭ͢͏̶̶̹͍ͤͪ̉ͫ̋ņ̵̼̪̭̲̤͙͖̒̑ͨ͂̌͘ņ̵̼̪̭̲̤͙͖̒̑ͨ͂̌͘g̷̢̢̭̘̙̥̖̲̭͛ͣ́̀̍g̷̢̢̭̘̙̥̖̲̭͛ͣ́̀̍ ̷̺̱̙̹͔̗͆ͪ̾ͬͬ̓͘͠ ̷̺̱̙̹͔̗͆ͪ̾ͬͬ̓͘͠t̛̤̻̲̓̓ͩ̇ͫͫ͆ͦ͛̕͞t̛̤̻̲̓̓ͩ̇ͫͫ͆ͦ͛̕͞ḣ̜̘̮̫͍̗͇ͥͯ̽̕͢͢͝ḣ̜̘̮̫͍̗͇ͥͯ̽̕͢͢͝ẹ̵̱̹͚͖̜̞̆̾͌ͬ̀̿͞ẹ̵̱̹͚͖̜̞̆̾͌ͬ̀̿͞m̶̢̧͉̝̜̝̍͑͂̽̌̉̈́ͩm̶̢̧͉̝̜̝̍͑͂̽̌̉̈́ͩ' + api.nvim_buf_set_lines(0, 0, -1, true, { text }) + + screen:try_resize(250, 10) + screen:expect({ + grid = [[ + {100: 1 }{101:^c̯̥̳̮̫̳͔̱̀ͦͩ̄͋̓͘c̯̥̳̮̫̳͔̱̀ͦͩ̄͋̓͘l̶̴̴̨̛͓͚͎̥ͦͤ̑͆͛͢l̶̴̴̨̛͓͚͎̥ͦͤ̑͆͛͢ô̷̤̩ͯͧ͆ͪ̈́́͒̒̐͐̕ô̷̤̩ͯͧ͆ͪ̈́́͒̒̐͐̕s̶̷̢̩̱̠̀ͦ̽ͮ͒ͨ̚͟͠s̶̷̢̩̱̠̀ͦ̽ͮ͒ͨ̚͟͠e͉̯̱̖͕̳̼̽̊̒ͣ̊ͥ̚̚e͉̯̱̖͕̳̼̽̊̒ͣ̊ͥ̚̚ ͇͌̈̄ͬͧͧ͝͠͏̷ͪ̎͟͠ ͇͌̈̄ͬͧͧ͝͠͏̷ͪ̎͟͠t̵̳̅̽͏̵̡̥̲͍͙̹̯ͩ̐t̵̳̅̽͏̵̡̥̲͍͙̹̯ͩ̐o͋͏̬̞̣ͬ́ͬ̎̋̓̽͘͠͡o͋͏̬̞̣ͬ́ͬ̎̋̓̽͘͠͡ ͏̛͙̮̈ͬ̌͐ͤ͒ͧ̎ͤ͜͠ ͏̛͙̮̈ͬ̌͐ͤ͒ͧ̎ͤ͜͠ǫ̛̳͕̦͖̪̀͂͛̅̔ͪ͒͜ǫ̛̳͕̦͖̪̀͂͛̅̔ͪ͒͜v̸̡͖̗̣ͯ̿̔͊̅ͯ̈̓̇ͅv̸̡͖̗̣ͯ̿̔͊̅ͯ̈̓̇ͅe̴̶̢̜̭̠̰̞ͪͨ͂ͤ͆́͗e̴̶̢̜̭̠̰̞ͪͨ͂ͤ͆́͗r̨̖̼̳̳͚̖̒ͯ̊̋̂̑̚͞r̨̖̼̳̳͚̖̒ͯ̊̋̂̑̚͞f̵̮̣̬̾͛̌ͧͦ͘͢͜͜͠ͅf̵̮̣̬̾͛̌ͧͦ͘͢͜͜͠ͅl̡͉̬̳͈̠̏͂ͤ̈ͨ̀ͩ̔͏l̡͉̬̳͈̠̏͂ͤ̈ͨ̀ͩ̔͏ỏ̶̢̻̠͎͇͈̜̈̆ͯ̔ͩ̾ỏ̶̢̻̠͎͇͈̜̈̆ͯ̔ͩ̾ẉ̦̞̼̩̣͙̅̿́̓̉̎̈ͪẉ̦̞̼̩̣͙̅̿́̓̉̎̈ͪi̷̡͍͓͔̝͙͖͖̍ͯͤͬͦ͝i̷̡͍͓͔̝͙͖͖̍ͯͤͬͦ͝n̠̪̰͋ͩ̆͏̶̖̯ͭ̀̿͛͘n̠̪̰͋ͩ̆͏̶̖̯ͭ̀̿͛͘g̴̭͎̞͙̗̯͙͖ͬ́ͧͧ͝ͅg̴̭͎̞͙̗̯͙͖ͬ́ͧͧ͝ͅ ̢͎̬͓̮̹̰̙͍̓̐͋͂͐̚ ̢͎̬͓̮̹̰̙͍̓̐͋͂͐̚ť̴̼̝̗ͩ̍͋̿͏͇ͧ̑̏̚ť̴̼̝̗ͩ̍͋̿͏͇ͧ̑̏̚h̨̨̢͓̲͚͕̦ͨ͛̓ͩ̚͟͠h̨̨̢͓̲͚͕̦ͨ͛̓ͩ̚͟͠ȩ͕̜̥̃̑͋̏͐̎̒͛͊͏͙ȩ͕̜̥̃̑͋̏͐̎̒͛͊͏͙ ̵̨̜̜̠͉̱͎͑ͥ̌͐̽͢͡ ̵̨̜̜̠͉̱͎͑ͥ̌͐̽͢͡r̢̫͓͎̙̭̽ͥͭ͐̂̀̕͟͝r̢̫͓͎̙̭̽ͥͭ͐̂̀̕͟͝e̴̷͓̹̩ͧ́̉̑̈̿ͥ̕͡͝e̴̷͓̹̩ͧ́̉̑̈̿ͥ̕͡͝d̵̡̼̩̠̜͈̯̬͚͛̋̀̆͟d̵̡̼̩̠̜͈̯̬͚͛̋̀̆͟ŕ̻̳̬͏̨̮͚̲ͥ̌͆͗͠ͅŕ̻̳̬͏̨̮͚̲ͥ̌͆͗͠ͅā̸͙̥̤͍͈̣ͪͨ̈͋̈́̈́͜ā̸͙̥̤͍͈̣ͪͨ̈͋̈́̈́͜w̶̦̪͚̤̃ͬ̓͒ͤ̇̇ͮ͢͡w̶̦̪͚̤̃ͬ̓͒ͤ̇̇ͮ͢͡ ̷̡̦̻̻̪͚̳͎ͥ̓ͩͪ͠͝ ̷̡̦̻̻̪͚̳͎ͥ̓ͩͪ͠͝b̳ͮ̒̊̆̒́̈́̏̓͋ͭ̔ͤ̚b̳ͮ̒̊̆̒́̈́̏̓͋ͭ̔ͤ̚u̧̟̫͎͚̭̠͕͂̄̀̒̈̇͜u̧̟̫͎͚̭̠͕͂̄̀̒̈̇͜f̶̸̢͍̑̂̊ͥͫ̈́ͥ͛̈́̃͝f̶̸̢͍̑̂̊ͥͫ̈́ͥ͛̈́̃͝f̵̼̭̮͎ͧ̒̆͊̀ͤ͊̇̕͡f̵̼̭̮͎ͧ̒̆͊̀ͤ͊̇̕͡e̮̪̲̣̞̖͎ͥͤ̐̌̓̐͟͢e̮̪̲̣̞̖͎ͥͤ̐̌̓̐͟͢ŗ̭̘̮̹̖̎̄̆́ͫͭ͢ͅͅŗ̭̘̮̹̖̎̄̆́ͫͭ͢ͅͅ.̪̖͉͚̹̾̉ͮ̔̊ͪ̾̎͟͞.̪̖͉͚̹̾̉ͮ̔̊ͪ̾̎͟͞ ̷̧̺̰͎̣̃͒͗ͮ͑ͪͮ͞ͅ ̷̧̺̰͎̣̃͒͗ͮ͑ͪͮ͞ͅf̛̫͚͚͍̜͎̗̳̂ͬͭ͜͢͝f̛̫͚͚͍̜͎̗̳̂ͬͭ͜͢͝i̴̵̡̛̛͎̤̳̮ͩ̐ͩ͑̇̚i̴̵̡̛̛͎̤̳̮ͩ̐ͩ͑̇̚n̵͇͍͚̖̥̣ͨ̄ͧ̌̂͗͘͝n̵͇͍͚̖̥̣ͨ̄ͧ̌̂͗͘͝ȉ̼̱̫̜̋̓̐͌͆ͨ͘͝͡ͅȉ̼̱̫̜̋̓̐͌͆ͨ͘͝͡ͅs̴̸̝̺̬͚̲̹̘ͪ̆̊ͥ͞͝s̴̸̝̺̬͚̲̹̘ͪ̆̊ͥ͞͝h̴̜̠͇ͦͥ̔̅ͭͭ͋ͩ͟͡͞h̴̜̠͇ͦͥ̔̅ͭͭ͋ͩ͟͡͞ ̶̧̛̻͙̤̘̺̣̻̗͍̓͑͠ ̶̧̛̻͙̤̘̺̣̻̗͍̓͑͠t̠͉̼̬̩͛́ͨ͐̀͛̂ͨ̾͞t̠͉̼̬̩͛́ͨ͐̀͛̂ͨ̾͞h̻̹̝̹̾ͩ̍ͧ͆ͥ̔͘͏̉ͯh̻̹̝̹̾ͩ̍ͧ͆ͥ̔͘͏̉ͯì̷̢̛̺̭͇̟̦̄̓́̓ͪ͟ì̷̢̛̺̭͇̟̦̄̓́̓ͪ͟s̴̡̗͍͕͖̮̟̱̫̎ͣ̀̎̿s̴̡̗͍͕͖̮̟̱̫̎ͣ̀̎̿ ̶͇̟̜̗̗͇͇͐̑̈͋̋̽͟ ̶͇̟̜̗̗͇͇͐̑̈͋̋̽͟e̷̥͙͈̖̤̯̹̯͗̉̈́̽ͨ̕e̷̥͙͈̖̤̯̹̯͗̉̈́̽ͨ̕v̛̝͕̱͙̞̖̒̂̔͆̊̎́ͫv̛̝͕̱͙̞̖̒̂̔͆̊̎́ͫę̴̤̭͖̈̐̿͂ͣ͒̃ͭ̕͟ę̴̤̭͖̈̐̿͂ͣ͒̃ͭ̕͟ṇ̳̭͓̟̠͕̯͑̉ͦ̀ͯ͜͡ṇ̳̭͓̟̠͕̯͑̉ͦ̀ͯ͜͡t̢̞͔̣̄̀͆̂̃ͨͦ͜͜͝͠t̢̞͔̣̄̀͆̂̃ͨͦ͜͜͝͠,̬̳̮͓͉̟͉͓̦͔̑̄ͨ̎͜,̬̳̮͓͉̟͉͓̦͔̑̄ͨ̎͜ ͕͈̠̰̬̬̌͂̏ͥ̀̕̚͢͠ ͕͈̠̰̬̬̌͂̏ͥ̀̕̚͢͠f̺̮̞̈́̏̋͏̺̖̝̓̑̂̚͢f̺̮̞̈́̏̋͏̺̖̝̓̑̂̚͢l̜̪͍̩̩̟͉͓̊̓ͤ̆ͣͫ̌l̜̪͍̩̩̟͉͓̊̓ͤ̆ͣͫ̌u̷̧̞̳̱̜̟̲͑̐͂ͪ͛͘͟u̷̧̞̳̱̜̟̲͑̐͂ͪ͛͘͟s͔͍̽ͣͮ̏̓͛̄ͯ̽͂̐ͯ͜s͔͍̽ͣͮ̏̓͛̄ͯ̽͂̐ͯ͜ḩ̼͕̦͖̼͚̗̃̃ͥ̅̂̈͟ḩ̼͕̦͖̼͚̗̃̃ͥ̅̂̈͟,̵͍̮̮̟͚̝̃ͨ̿ͭ̌ͤ̋̊,̵͍̮̮̟͚̝̃ͨ̿ͭ̌ͤ̋̊ ̷̨̨͈̝̦͂ͦ̒̋̇ͧ̒͟͝ ̷̨̨͈̝̦͂ͦ̒̋̇ͧ̒͟͝a̡̨̲̖̾̂͗̚͢͡͏͈ͤ̉͡a̡̨̲̖̾̂͗̚͢͡͏͈ͤ̉͡nͫͤ̚͜͏̧̛̣̻ͩ̔̍ͦ̕͝nͫͤ̚͜͏̧̛̣̻ͩ̔̍ͦ̕͝d͈̻̗̼̀͡͏̶̵̟̹̻̎̾ͯd͈̻̗̼̀͡͏̶̵̟̹̻̎̾ͯ ̶͙͈̠̜̬̺͛̀̊̂ͪ̔ͮ͑ ̶͙͈̠̜̬̺͛̀̊̂ͪ̔ͮ͑ş̧̡̢͓̠͋ͫ͑͒͊̅̔͜͞ş̧̡̢͓̠͋ͫ͑͒͊̅̔͜͞t̤̭͓̰̣̉̔̎ͫ͛ͦ̑̕͟͞t̤̭͓̰̣̉̔̎ͫ͛ͦ̑̕͟͞a̠͇͇̯̥͍͚̳̒́͐͐̏͋̓a̠͇͇̯̥͍͚̳̒́͐͐̏͋̓r͉͈̻̻͕̩̩̃̅͋͆ͮ͢͢͡r͉͈̻̻͕̩̩̃̅͋͆ͮ͢͢͡t̵̛̝̗̥̙̟̆ͮ̽̏ͧ͜͠ͅt̵̛̝̗̥̙̟̆ͮ̽̏ͧ͜͠ͅ ̷̼͎̦ͫ̈͑̃̽͏̲̪ͣͯ̽ ̷̼͎̦ͫ̈͑̃̽͏̲̪ͣͯ̽á̸̷̴̟̣́̔̌͏̶͕͋ͭͭá̸̷̴̟̣́̔̌͏̶͕͋ͭͭ ̧̧̲͍̘̘͚͔͇͙ͨͬ́̊ͅ ̧̧̲͍̘̘͚͔͇͙ͨͬ́̊ͅn̸̸̩͖͔͚͚̖͗ͦ̓̀̀̈́̈́n̸̸̩͖͔͚͚̖͗ͦ̓̀̀̈́̈́ę̵̧̬̣̦̖̝̹̱͌̃̑ͣ̚ę̵̧̬̣̦̖̝̹̱͌̃̑ͣ̚w͍̥͚̺ͮ̓̈̈́̾̊̆́̚͜͝w͍̥͚̺ͮ̓̈̈́̾̊̆́̚͜͝ ̛̹̲̥̝͙̾ͨ̆̎̃̋͂̓̕ ̛̹̲̥̝͙̾ͨ̆̎̃̋͂̓̕"̴̜̰̰̱̖̙̘̈́͌ͨͪ̐̕͠"̴̜̰̰̱̖̙̘̈́͌ͨͪ̐̕͠g̸̛͇̐͊͂̽͢͏͖̣ͫ͊ͯͅg̸̛͇̐͊͂̽͢͏͖̣ͫ͊ͯͅr̴̨̲͎̹͇̠̐ͤ̇̒ͬ̆ͧ͞r̴̨̲͎̹͇̠̐ͤ̇̒ͬ̆ͧ͞į̝̱̩͔̈ͨ̉͌̋̍̂͜͟͞į̝̱̩͔̈ͨ̉͌̋̍̂͜͟͞d̷̴̷̟̎͌͑͛̈́ͭͨͯ̋ͭ̕d̷̴̷̟̎͌͑͛̈́ͭͨͯ̋ͭ̕_̢̭̙̦̪͇̾̔̆ͬͦ́ͥ͢͡_̢̭̙̦̪͇̾̔̆ͬͦ́ͥ͢͡l̡̢̨̧͔̱̥̹̬̆ͮ̈́̏̅͜l̡̢̨̧͔̱̥̹̬̆ͮ̈́̏̅͜ĩ̢͖̠̩̞͚̰̰̉̋̌͛ͪ͠ĩ̢͖̠̩̞͚̰̰̉̋̌͛ͪ͠n̢̬̜̘̲͉ͮ͆͏̯͕ͭͦ̉̅n̢̬̜̘̲͉ͮ͆͏̯͕ͭͦ̉̅ē̡͈̮̭̰̜͍̗̮͔͌͐͆ͫē̡͈̮̭̰̜͍̗̮͔͌͐͆ͫ"̦̠̟ͣ̽͋͐ͧ̓̂̆̎͒͝ͅ"̦̠̟ͣ̽͋͐ͧ̓̂̆̎͒͝ͅ ̴̡̺̹̖̰̀ͤ͊̊͗̊́͜͠ ̴̡̺̹̖̰̀ͤ͊̊͗̊́͜͠ẻ͎̳̻̯̹͓͊̌̄͑͂̉͜͢ẻ͎̳̻̯̹͓͊̌̄͑͂̉͜͢v̞̬̪̥͖ͤ͐̍́ͤ̇̀̕̕ͅv̞̬̪̥͖ͤ͐̍́ͤ̇̀̕̕ͅȇ̶̱̗̩̠͚͎͊ͤͪͦͫ̂̚ȇ̶̱̗̩̠͚͎͊ͤͪͦͫ̂̚n̢̮̜͉̎ͨͩ̒̓ͬͨ̓ͦ͘͜n̢̮̜͉̎ͨͩ̒̓ͬͨ̓ͦ͘͜t̢͚͉̹͇̺̭ͪ̄̉ͨ̄͐̕ͅt̢͚͉̹͇̺̭ͪ̄̉ͨ̄͐̕ͅ ̵̛̳̱͍̩͓ͣ͋̈́͐ͭͧ̿ͅ ̵̛̳̱͍̩͓ͣ͋̈́͐ͭͧ̿ͅã̰̪̙͉̪͇ͣ͋ͤ̓͋͑̕͘ã̰̪̙͉̪͇ͣ͋ͤ̓͋͑̕͘t̴̴̡̡̛̳̼̻̳̂̽͒̇̚͠t̴̴̡̡̛̳̼̻̳̂̽͒̇̚͠ ̴̙̤̹͔̳̟̽̀̆ͥ̂̕͘͝ ̴̙̤̹͔̳̟̽̀̆ͥ̂̕͘͝t̴͖̼͔̬̦̏ͩ̄́̓̊̔̇͡t̴͖̼͔̬̦̏ͩ̄́̓̊̔̇͡ḫ̷͚͇̫̫̠͒ͮ̍ͣ̃͐͐̍ḫ̷͚͇̫̫̠͒ͮ̍ͣ̃͐͐̍e̳͉̮͖̳̣̎͌̂ͣ͋ͯ̆͜͞e̳͉̮͖̳̣̎͌̂ͣ͋ͯ̆͜͞ ̪̖̉̌̀̽̄̍̓̀̂̋͐̈̚ ̪̖̉̌̀̽̄̍̓̀̂̋͐̈̚c̶̫̜͚̊̿̂̿ͥͭ̓̂̈́͘͡c̶̫̜͚̊̿̂̿ͥͭ̓̂̈́͘͡ṷ̵̷͉̯̜̬̝̑͛ͤ̋ͧͯ̉ṷ̵̷͉̯̜̬̝̑͛ͤ̋ͧͯ̉ŗ̙̬̺̬ͥͤ̓͐̈́ͬ̽̌͡͡ŗ̙̬̺̬ͥͤ̓͐̈́ͬ̽̌͡͡r̛͖̼̣͙̋̇̀̅͒̽ͥ̑ͅͅr̛͖̼̣͙̋̇̀̅͒̽ͥ̑ͅͅě̢̪̦̼͘͏̴̠̞͍̓̐ͭ̇ě̢̪̦̼͘͏̴̠̞͍̓̐ͭ̇ǹ̨̨̛̛̯̍ͭͫ̎̍̃̄̐̍ǹ̨̨̛̛̯̍ͭͫ̎̍̃̄̐̍t̵̳͔̭̮̭̱̰ͤ͐̉̾͗̅͢t̵̳͔̭̮̭̱̰ͤ͐̉̾͗̅͢ ̩͕ͧ̌͂͂́ͫͥ̍͏̬̙͗ͅ ̩͕ͧ̌͂͂́ͫͥ̍͏̬̙͗ͅp̞̞͇͇̯̩̬̜ͥ̃͐̑͋́͗p̞̞͇͇̯̩̬̜ͥ̃͐̑͋́͗o̵͖͈̩̪̥̝̊̒̉̿͋ͩ̆͠o̵͖͈̩̪̥̝̊̒̉̿͋ͩ̆͠s̶͇̺̩̟̺͋̆̒ͫͥ̆͏͔͜s̶͇̺̩̟̺͋̆̒ͫͥ̆͏͔͜i̞̝̭̲͈̝̮̫͚͑̓ͤ̎ͮ̀i̞̝̭̲͈̝̮̫͚͑̓ͤ̎ͮ̀t̷̬͇̗̥̳͔̮͔̎̀ͣ̊̕͢t̷̬͇̗̥̳͔̮͔̎̀ͣ̊̕͢i̶̧̗̠̗̲͑̋ͣͪͦͣ͆̕͢i̶̧̗̠̗̲͑̋ͣͪͦͣ͆̕͢ǫ̰̟̙ͯ͏̬̦͚̝̀̈́ͣ͘͜ǫ̰̟̙ͯ͏̬̦͚̝̀̈́ͣ͘͜n̸̻̩͖͓̠̲̮̐̄̌̇́́͠n̸̻̩͖͓̠̲̮̐̄̌̇́́͠}| + {100: }{101:.̧̛͈̙̭̉ͥ̋͛̏͋̂̿͛͞.̧̛͈̙̭̉ͥ̋͛̏͋̂̿͛͞ ̡̲͇̳͔̦̤̹̥ͣ̍ͪͮ̎͡ ̡̲͇̳͔̦̤̹̥ͣ̍ͪͮ̎͡F̼̣͙̳̞͑͒ͧͣ̔̊̇̓̈́͠F̼̣͙̳̞͑͒ͧͣ̔̊̇̓̈́͠ŏ̸̶͎̘̟͙̤̑̒̿͗͛̐̚ŏ̸̶͎̘̟͙̤̑̒̿͗͛̐̚r̵̰͇͚̥̻͚̈́̌̽ͨͥ̕͘͞r̵̰͇͚̥̻͚̈́̌̽ͨͥ̕͘͞ ̵̶̧͖̙̝̻̭̤̒̿͌͗͑͡ ̵̶̧͖̙̝̻̭̤̒̿͌͗͑͡ś̸̬̘̭̼͓̹ͥ͛ͪ̐̈́͆͝ś̸̬̘̭̼͓̹ͥ͛ͪ̐̈́͆͝i͎̺̪̖̻ͫ̀ͤ̾ͦ̽ͭ͒̒͘i͎̺̪̖̻ͫ̀ͤ̾ͦ̽ͭ͒̒͘m̨̩͎̫̫̙̃̈͆ͬ̊͠͏̽͞m̨̩͎̫̫̙̃̈͆ͬ̊͠͏̽͞p̴̢̨͖̼͍̲͍̲ͩ̊̒̌̃ͤp̴̢̨͖̼͍̲͍̲ͩ̊̒̌̃ͤļ͔̱͙̝̟̜͚͎͕̮̹ͣ̀͘ļ͔̱͙̝̟̜͚͎͕̮̹ͣ̀͘ḭ̢̛͈͍̠̟̪̑̎̈́̑̽͜͡ḭ̢̛͈͍̠̟̪̑̎̈́̑̽͜͡c̖̠̥͔̪̼̑̃̆̓ͫ͗ͩͩ̋c̖̠̥͔̪̼̑̃̆̓ͫ͗ͩͩ̋i̴̸̡̘͇͔̹͂̍̐̀ͬͩ̈͘i̴̸̡̘͇͔̹͂̍̐̀ͬͩ̈͘t̵̵̖̫͙͎̒ͭ̔̃̔ͧͫ̽͝t̵̵̖̫͙͎̒ͭ̔̃̔ͧͫ̽͝y̴̘̱͈̳ͯ̈́̍ͮ̔͊͊̚̚͞y̴̘̱͈̳ͯ̈́̍ͮ̔͊͊̚̚͞ ̛̩̤̪͇̬͕̯̞̙̪̮̀̂̕ ̛̩̤̪͇̬͕̯̞̙̪̮̀̂̕ļ̲̰̞̈̌̿͐̉́̋ͬ͟͟͡ļ̲̰̞̈̌̿͐̉́̋ͬ͟͟͡e̡̧̛̬̣̗̣̰͂̐̂͗͛̋̇e̡̧̛̬̣̗̣̰͂̐̂͗͛̋̇a̡̯͉̠̞ͩͮ̉̓́ͮ̔̆̒͘a̡̯͉̠̞ͩͮ̉̓́ͮ̔̆̒͘v͔ͦ͏͎̪̮̝̟̤́̀͊̈̎͟v͔ͦ͏͎̪̮̝̟̤́̀͊̈̎͟ȩ̪͔̤̺͗ͦ̅̓ͭͤͫ̆ͣ͒ȩ̪͔̤̺͗ͦ̅̓ͭͤͫ̆ͣ͒ ̶̢̤͎̰̝̤͂̔͒ͦͦ͂̊̀ ̶̢̤͎̰̝̤͂̔͒ͦͦ͂̊̀p̛̝̪͚͖̫͕̅̍̊́̓͒̂̃p̛̝̪͚͖̫͕̅̍̊́̓͒̂̃l̴̸͉͎̖͕̦̥̾ͨ̌̑ͣ̕͝l̴̸͉͎̖͕̦̥̾ͨ̌̑ͣ̕͝a̰̩͔̼͔̦̩͒ͪͭ̐͡͏̗ͮa̰̩͔̼͔̦̩͒ͪͭ̐͡͏̗ͮč̵̱͇̲̞̉̆̌̄ͧͫ̑̈́͠č̵̱͇̲̞̉̆̌̄ͧͫ̑̈́͠e̶̛̜̬̯̤͔̓ͤͮͦ̂͐͜͜e̶̛̜̬̯̤͔̓ͤͮͦ̂͐͜͜ ̸̧̼̯͕̼̭ͣͣ̿̑̈̎̽͜ ̸̧̼̯͕̼̭ͣͣ̿̑̈̎̽͜f̴̼̞͇̺̊̎̓̑̔̈́͗̊͘͞f̴̼̞͇̺̊̎̓̑̔̈́͗̊͘͞ő̶̶̧̺̤̜̹̫͎̻̏̉̍ͩő̶̶̧̺̤̜̹̫͎̻̏̉̍ͩr̵̙̱̺̮͙̯̼͐̀͗̾͊͟͝r̵̙̱̺̮͙̯̼͐̀͗̾͊͟͝ ̵̪̥͍̩̱ͨ͗̓̎̓͒̚͜͞ ̵̪̥͍̩̱ͨ͗̓̎̓͒̚͜͞t̪̤͙̥̖̹̣̤͎̞̒́̒̽̃t̪̤͙̥̖̹̣̤͎̞̒́̒̽̃ḥ̵̷̷̭̘͙͓ͩ̓ͪͤ̓ͮ̍ḥ̵̷̷̭̘͙͓ͩ̓ͪͤ̓ͮ̍é̡̬̺͉̻̻̀̀͂̽ͬ̕̕͠é̡̬̺͉̻̻̀̀͂̽ͬ̕̕͠ ̵̱̻̣͙̌͊́ͯ́̐̀́͂̕ ̵̱̻̣͙̌͊́ͯ́̐̀́͂̕f̨̪͈̲̬̟̝͎̀̔̋ͨ̀͡ͅf̨̪͈̲̬̟̝͎̀̔̋ͨ̀͡ͅi̵̫̱̝͒̇̏̃ͭ̂̄̄̊̐͠i̵̫̱̝͒̇̏̃ͭ̂̄̄̊̐͠n̵̷͖̻̦͍̻̑̈́̎̓͑ͪͫ͟n̵̷͖̻̦͍̻̑̈́̎̓͑ͪͫ͟a̗̗̠̫̦̻̹͇ͯͦͫ͗̽ͥ̚a̗̗̠̫̦̻̹͇ͯͦͫ͗̽ͥ̚l̵̨̨͙̜͔̘̗̯͌̋͂̑̄͢l̵̨̨͙̜͔̘̗̯͌̋͂̑̄͢ ̵̷̛̺̳͙̲̥̬̊̌̽̓̇͝ ̵̷̛̺̳͙̲̥̬̊̌̽̓̇͝"̸̨̫̟̤̥͉̮̥̀ͤ̐͊̇̑"̸̨̫̟̤̥͉̮̥̀ͤ̐͊̇̑c̵̭̘͍͇̜ͨ̔̍̆͛͌͂͌͛c̵̭̘͍͇̜ͨ̔̍̆͛͌͂͌͛l̸̷̢̡̫̩̃́͐̆͒ͨ̔̄͟l̸̷̢̡̫̩̃́͐̆͒ͨ̔̄͟è̙͎̝̞̠̹͍́́̅͐͌͘ͅè̙͎̝̞̠̹͍́́̅͐͌͘ͅą̶̢̡̘̦͖̰̌̎͌ͩ́̓ͮą̶̢̡̘̦͖̰̌̎͌ͩ́̓ͮȑ̹̻̦͙̠͂̽͆ͫ͛͟͏̺͡ȑ̹̻̦͙̠͂̽͆ͫ͛͟͏̺͡"̣̞͕̇ͯ̓̽ͪ͑́̍̚͘͘ͅ"̣̞͕̇ͯ̓̽ͪ͑́̍̚͘͘ͅ ̛̩̘̗̜̗̥̂͊ͥ̀ͨͫ̾ͧ ̛̩̘̗̜̗̥̂͊ͥ̀ͨͫ̾ͧe̵̡͚͉̤̯̮͛̎̓ͪ̾̉̆͟e̵̡͚͉̤̯̮͛̎̓ͪ̾̉̆͟l̢̩͓̙͓͍̈̊ͫͣ́̅ͧ͛͞l̢̩͓̙͓͍̈̊ͫͣ́̅ͧ͛͞e̠̱͉̯͔̙͔̓ͩ̃͋͌ͬͭ͋e̠̱͉̯͔̙͔̓ͩ̃͋͌ͬͭ͋m̧̡̛̤͕̻̳̽͛̓̈́ͣ̊̚͟m̧̡̛̤͕̻̳̽͛̓̈́ͣ̊̚͟e̯͎̺͔̼̾͂͐̄ͮ͌̍͑̕ͅe̯͎̺͔̼̾͂͐̄ͮ͌̍͑̕ͅṉ̸͔̩̙̙̹͚̭ͩ͛͗̀̾ͅṉ̸͔̩̙̙̹͚̭ͩ͛͗̀̾ͅt̸̢̧̝͉̺͉̓́̇ͯ̕͠͠͝t̸̢̧̝͉̺͉̓́̇ͯ̕͠͠͝ ̳͔̜̹̘̪̅̋̎̉͆̑ͤ͡͞ ̳͔̜̹̘̪̅̋̎̉͆̑ͤ͡͞a̷̳͓̞̱͈̓́̒̔̆ͩͯ̊͠a̷̳͓̞̱͈̓́̒̔̆ͩͯ̊͠s̷̛͙̘̳͙͓̠̞̫̆̓̚̚͡s̷̛͙̘̳͙͓̠̞̫̆̓̚̚͡ ̷̢̦̘̮̰͕̏̀ͩ̓͂ͦ͟ͅ ̷̢̦̘̮̰͕̏̀ͩ̓͂ͦ͟ͅw̮͔͇͕̝͖ͪ͒̏̇ͪ̇̍ͦ͠w̮͔͇͕̝͖ͪ͒̏̇ͪ̇̍ͦ͠ẹ̗͚̮̭̓̍̐̃̍́̐͘̕͘ẹ̗͚̮̭̓̍̐̃̍́̐͘̕͘l̴̡̩̱̞͛ͤ͑͑͂̀ͣ̉̌̕l̴̡̩̱̞͛ͤ͑͑͂̀ͣ̉̌̕l̷̨̘̤̣̯͇̲̝ͨ̍ͦ͝͝ͅl̷̨̘̤̣̯͇̲̝ͨ̍ͦ͝͝ͅ,̷̻̙̖͔͚͋̇̂̑͗̕̕͢ͅ,̷̻̙̖͔͚͋̇̂̑͗̕̕͢ͅ ̴̶̮̣̪̣̟͚̅͊ͧͭ̂͂̓ ̴̶̮̣̪̣̟͚̅͊ͧͭ̂͂̓h̡͈̗̙͚̳͕̤͍̿̄͑ͥ͊̉h̡͈̗̙͚̳͕̤͍̿̄͑ͥ͊̉e̡̞͔̘͐̋͌̅̓̈͆̇̿͟͠e̡̞͔̘͐̋͌̅̓̈͆̇̿͟͠n̤͕͉̣̐͊́̽̍́͂͏̙̾ͅn̤͕͉̣̐͊́̽̍́͂͏̙̾ͅc̨̧̛̜͈͍͓̣̹ͮͧ̊͟͡ͅc̨̧̛̜͈͍͓̣̹ͮͧ̊͟͡ͅȩ̢̛͚̣͓͙ͣͮͩ̌̌́͟͠ȩ̢̛͚̣͓͙ͣͮͩ̌̌́͟͠ ̷̜̀ͪ̅͐͝͏̤̮̄͑̾ͬ͝ ̷̜̀ͪ̅͐͝͏̤̮̄͑̾ͬ͝t̙͔̳͕̝̝͔͐̊̓ͩ̈́ͪ̒͠t̙͔̳͕̝̝͔͐̊̓ͩ̈́ͪ̒͠h̩̖̪̠͂ͪ́͐̿͊ͨ̈̋̃͟h̩̖̪̠͂ͪ́͐̿͊ͨ̈̋̃͟e̋͆ͬ͞͏̵̘̹̙̂ͥ̐̀́ͅe̋͆ͬ͞͏̵̘̹̙̂ͥ̐̀́ͅ ̧̱͌̆̏͘͏̬̠̹̏ͦ̓͋̕ ̧̱͌̆̏͘͏̬̠̹̏ͦ̓͋̕f̸̧͎̣̪̯̻̗̟̎̎͂ͫ̕͝f̸̧͎̣̪̯̻̗̟̎̎͂ͫ̕͝a̟̓̃͒͏̸̧̣̱̎̽̏̐̓ͤa̟̓̃͒͏̸̧̣̱̎̽̏̐̓ͤć̯͚͕͡͏̴̛̜̺̣͙͉̀̍ć̯͚͕͡͏̴̛̜̺̣͙͉̀̍ț̢̹͇͈ͩ̋́̔̇̉ͤ̽͢ͅț̢̹͇͈ͩ̋́̔̇̉ͤ̽͢ͅo͈̥͊ͦ̔̃ͬ̎͛ͧ͌͌͟͟͝o͈̥͊ͦ̔̃ͬ̎͛ͧ͌͌͟͟͝r̸̨͕̙̟̟͈̼͔ͥͮ͋ͫ͒͝r̸̨͕̙̟̟͈̼͔ͥͮ͋ͫ͒͝ ̧̗̝̘͇͉̩̗̅̊̓͂̐͊͡ ̧̗̝̘͇͉̩̗̅̊̓͂̐͊͡o̬̻̪̹̘̥̳̲̫̳̫̳ͬͩ͊o̬̻̪̹̘̥̳̲̫̳̫̳ͬͩ͊f̡̣̜̗͚̙͇̓͑̍ͬ̅̚͞͞f̡̣̜̗͚̙͇̓͑̍ͬ̅̚͞͞ ̵̸͓̱̻̱̌̃ͫ̑̿͐͂ͨ̇ ̵̸͓̱̻̱̌̃ͫ̑̿͐͂ͨ̇2̡̝̥̯͚͔̖̫ͫ̽̔͑̅̚͞2̡̝̥̯͚͔̖̫ͫ̽̔͑̅̚͞ ̨̠̰̯̤͕̗̗̳͆̑͐͌̕͟ ̨̠̰̯̤͕̗̗̳͆̑͐͌̕͟i͇̫̲̲͓̖͙͖̱ͤ͊̎̃ͧ͢i͇̫̲̲͓̖͙͖̱ͤ͊̎̃ͧ͢n̵̢̻̦̭̏̓̂́͏̲̪̙̏͌n̵̢̻̦̭̏̓̂́͏̲̪̙̏͌ ̸̵̛̹͇͚̓̋̎̏̽̚̚͢͜ ̸̵̛̹͇͚̓̋̎̏̽̚̚͢͜t͈͔̤̲̬ͧͩ̔̀̂́͑̂ͭ͘t͈͔̤̲̬ͧͩ̔̀̂́͑̂ͭ͘h̡̻̙̖̪̱̍͗̍́͗́́̅͠h̡̻̙̖̪̱̍͗̍́͗́́̅͠e̶̖̩̜͐ͥͨͪͣ̆͋̋̉͢͡e̶̖̩̜͐ͥͨͪͣ̆͋̋̉͢͡ ̧͈̙̤͉͌ͩ̓͐̌̄ͦ͌ͥ͝ ̧͈̙̤͉͌ͩ̓͐̌̄ͦ͌ͥ͝c̨̨̹̗̬͕̩̈̑̉̃̑́̆͞c̨̨̹̗̬͕̩̈̑̉̃̑́̆͞h̭͚̦̻̘͈͆ͪ̿̌́̏̐͊͠h̭͚̦̻̘͈͆ͪ̿̌́̏̐͊͠ę̙͍͚ͮͦ́ͭͥ̈͑ͧ̕̕͢ę̙͍͚ͮͦ́ͭͥ̈͑ͧ̕̕͢c̝̭͓̹̙̠̄̍ͦ̌̏̉̇͛ͥc̝̭͓̹̙̠̄̍ͦ̌̏̉̇͛ͥk̶̡͚̦̰̣͖̔͌́̋͋̔ͥ̕k̶̡͚̦̰̣͖̔͌́̋͋̔ͥ̕.̛̱̖͓̼͚̲ͪ̆̈́̃̚͜͞ͅ.̛̱̖͓̼͚̲ͪ̆̈́̃̚͜͞ͅ ̶̴̺̹̜̺͇ͮ̉ͯ͋͗͝͝ͅ ̶̴̺̹̜̺͇ͮ̉ͯ͋͗͝͝ͅA͉̺̰̲̟̺͚͙̽́̀̌ͬͩ͠A͉̺̰̲̟̺͚͙̽́̀̌ͬͩ͠l̜͈̟͖̾͑̈́́̇ͮ̐ͦͮ͋̋l̜͈̟͖̾͑̈́́̇ͮ̐ͦͮ͋̋s̡̛̯̜̩̪̤̹̅͛̋̓͂̊͡s̡̛̯̜̩̪̤̹̅͛̋̓͂̊͡o̶͉̱͉̠̫̻ͤͣ̓ͭ͊͑͆ͅo̶͉̱͉̠̫̻ͤͣ̓ͭ͊͑͆ͅ ̢̗͉̝̞͗͛̊́ͦ͛̍̚͜͡ ̢̗͉̝̞͗͛̊́ͦ͛̍̚͜͡i̵̧͍̝̦̬̭̽̎̈̃̓̚͟͝i̵̧͍̝̦̬̭̽̎̈̃̓̚͟͝f̴̛̻̞̬̟͖̙̦̑́̀̍̇͝f̴̛̻̞̬̟͖̙̦̑́̀̍̇͝ ͓͚͇̺ͪ͛ͦͥ̓̎ͨ͒͊̚͟ ͓͚͇̺ͪ͛ͦͥ̓̎ͨ͒͊̚͟t̶̯͙̹̟͖̂̇͒̾ͭ͒͐͛̌t̶̯͙̹̟͖̂̇͒̾ͭ͒͐͛̌ḧ̠̬́͋̕͏̧̙̼͑͂̀̌̉̈ḧ̠̬́͋̕͏̧̙̼͑͂̀̌̉̈e̫̺͔̗̳͋̒͌ͤͬ̔͗̕̕͡e̫̺͔̗̳͋̒͌ͤͬ̔͗̕̕͡r̴̛̭͙͑́ͤ̓̒͊̈ͥ̑ͮ͞r̴̛̭͙͑́ͤ̓̒͊̈ͥ̑ͮ͞ȇ̷̛̝͓̜̮̩͙ͨ̎̎͛̌̽ȇ̷̛̝͓̜̮̩͙ͨ̎̎͛̌̽ ̸̩̤̘̖̳̻̋̈͛͑̈́̌̒͝ ̸̩̤̘̖̳̻̋̈͛͑̈́̌̒͝i̧͖͕̞̩̱̭̎̽̀͏̮ͬͨ͡i̧͖͕̞̩̱̭̎̽̀͏̮ͬͨ͡ś̶͍̞̉ͯ̊ͦͧ̀̆̌͂͞͝ś̶͍̞̉ͯ̊ͦͧ̀̆̌͂͞͝ ̡̛͙͈̜̗̻̮̞͍̝̝̓̅͋ ̡̛͙͈̜̗̻̮̞͍̝̝̓̅͋ȃ̢͍̟̬̳ͣ͏̝̔͑̎ͣ̕ͅȃ̢͍̟̬̳ͣ͏̝̔͑̎ͣ̕ͅ ̖̼͙̯͎̒͒ͩͣ̀̆͗̇͝ͅ ̖̼͙̯͎̒͒ͩͣ̀̆͗̇͝ͅ}| + {100: }{101:ļ̩̪͕͓͖͌̐͛̊ͫͪ̿͊ͤļ̩̪͕͓͖͌̐͛̊ͫͪ̿͊ͤȍ͍̜͓̣͈͍̳̄͊̄ͣ͢͝ͅȍ͍̜͓̣͈͍̳̄͊̄ͣ͢͝ͅt̵̷̛̤͎͕̖̹ͦ̇͒́͂ͮ͘t̵̷̛̤͎͕̖̹ͦ̇͒́͂ͮ͘ ̶̨̳̺̖̼̯͎̯̬̀̈̐ͦ͜ ̶̨̳̺̖̼̯͎̯̬̀̈̐ͦ͜o̷̡̯̼͇̻͙̙̙͒͂ͩ̉̀ͮo̷̡̯̼͇̻͙̙̙͒͂ͩ̉̀ͮf̻̺̖͉̊ͤ̇ͤ̍͌͛̐͟͟͝f̻̺̖͉̊ͤ̇ͤ̍͌͛̐͟͟͝ ̷̴̟̠̹͎̱̈́̈́̆̈́̇̃͘͞ ̷̴̟̠̹͎̱̈́̈́̆̈́̇̃͘͞p̸̸̧̨̦̪͕̮̀͒͒͌͌̑͢p̸̸̧̨̦̪͕̮̀͒͒͌͌̑͢a̯͙ͥͬ̊̓ͯ͌ͮ͊̎̂͒͢͠a̯͙ͥͬ̊̓ͯ͌ͮ͊̎̂͒͢͠ċ̛̫̱̥͕̳̲ͫͤ̎͐̄̕͠ċ̛̫̱̥͕̳̲ͫͤ̎͐̄̕͠k̵̡̹̲͓̾̉͏̶̻́ͩ̎̓̊k̵̡̹̲͓̾̉͏̶̻́ͩ̎̓̊e̵̡̢̢̪͍̲̣͒̒̍ͯͤ͊͑e̵̡̢̢̪͍̲̣͒̒̍ͯͤ͊͑ḑ̘͖̼̌ͭ̐͑ͯ͋ͬ̈́͆̓̚ḑ̘͖̼̌ͭ̐͑ͯ͋ͬ̈́͆̓̚ ̶̶̧̺̰͖̯͇̏̄̿ͤ̔͘͡ ̶̶̧̺̰͖̯͇̏̄̿ͤ̔͘͡c̩̝̯͂͆ͤ̈́͆̏̑̄ͦ͗̿͞c̩̝̯͂͆ͤ̈́͆̏̑̄ͦ͗̿͞e̥̫͌̓̚͏̵̧͙̣̻̞́̌̉e̥̫͌̓̚͏̵̧͙̣̻̞́̌̉l̵̪̣̪̘̙̟̘͊͒̿̏͗͝͠l̵̪̣̪̘̙̟̘͊͒̿̏͗͝͠l̨̮͚̟̺̹ͮ͊ͭ̊ͮ̿͘͘͟l̨̮͚̟̺̹ͮ͊ͭ̊ͮ̿͘͘͟s̩̯͌̊͒͝͏̥͑̈̎ͥ̀͟͞s̩̯͌̊͒͝͏̥͑̈̎ͥ̀͟͞,̡̙̻̭̪̭̖̀̇̒ͮ̈̒̇̕,̡̙̻̭̪̭̖̀̇̒ͮ̈̒̇̕ ̷̢̫̳̺͉̯̳̂̓ͨ͋͛͂͞ ̷̢̫̳̺͉̯̳̂̓ͨ͋͛͂͞p̟̰͖̹̦̲͙̉̑͐͑͗̀͟͢p̟̰͖̹̦̲͙̉̑͐͑͗̀͟͢á̳̜̈̓͛͠͏̢̄ͧ̉ͧͨͅá̳̜̈̓͛͠͏̢̄ͧ̉ͧͨͅs̵̢̥̖̰̥̼̯ͪͭ̿͗͌ͪ͊s̵̢̥̖̰̥̼̯ͪͭ̿͗͌ͪ͊s̘̱͕̓̅͛̆̅ͮ́̅ͧͣ̈̚s̘̱͕̓̅͛̆̅ͮ́̅ͧͣ̈̚ ̡̮̹̹̗͎̝ͣ̇́ͤ̾ͤ͞ͅ ̡̮̹̹̗͎̝ͣ̇́ͤ̾ͤ͞ͅt̡̛̝̯̱̖̠̱ͤ͒͆̍̚͘ͅt̡̛̝̯̱̖̠̱ͤ͒͆̍̚͘ͅh̛̯̻̩̘̤̳̿̓͂̐͐͡͡͠h̛̯̻̩̘̤̳̿̓͂̐͐͡͡͠ë́͏̩̣̗̺̟ͭ̃̾͂̀͘͢͝ë́͏̩̣̗̺̟ͭ̃̾͂̀͘͢͝m̸̜͔̮̥̹̲̖̲̄̈̊̎ͬ͠m̸̜͔̮̥̹̲̖̲̄̈̊̎ͬ͠ ̝͇̏͏̡̟̥͍ͦ̋̎ͤ̕͢͜ ̝͇̏͏̡̟̥͍ͦ̋̎ͤ̕͢͜ó͖̬̩̤̜̫͔͑̌ͫ̈́͡͏̇ó͖̬̩̤̜̫͔͑̌ͫ̈́͡͏̇f̴̶̴̥͔̗͖̬̆͒ͨ͊ͬͅͅf̴̶̴̥͔̗͖̬̆͒ͨ͊ͬͅͅ ̮̦̲̼̞̑ͨ͒̌ͤ̿́̌͐͒ ̮̦̲̼̞̑ͨ͒̌ͤ̿́̌͐͒t̛̮̰͔̋͂͗̓͋̇̅̆̒͊ͅt̛̮̰͔̋͂͗̓͋̇̅̆̒͊ͅo̴̢͚̮̳͙̟̳̐ͬ͑̃̓͡ͅo̴̢͚̮̳͙̟̳̐ͬ͑̃̓͡ͅ ̝̺͖͒ͯͭ̑ͤ͊ͮ͂̚̚͡ͅ ̝̺͖͒ͯͭ̑ͤ͊ͮ͂̚̚͡ͅt̶̨̲̦͉͖̲̤̗ͬ̋̋ͦ̂ͯt̶̨̲̦͉͖̲̤̗ͬ̋̋ͦ̂ͯh̶̨̤͍̜̯͈͇͛ͩ́̀͊ͮͩh̶̨̤͍̜̯͈͇͛ͩ́̀͊ͮͩe̡̢̤̰̰͙̭͈̓ͯͬ͑ͨ̃͢e̡̢̤̰̰͙̭͈̓ͯͬ͑ͨ̃͢ ̶̛̺̦̯̹̞͎̟̥̞̝̐̕ͅ ̶̛̺̦̯̹̞͎̟̥̞̝̐̕ͅU͙̓ͤ͏̟̗̟͕̥̰́͑̆ͧ͟U͙̓ͤ͏̟̗̟͕̥̰́͑̆ͧ͟I̪̩͕͕̼̎͐ͭͦ͐̋̐̅ͯ͢I̪̩͕͕̼̎͐ͭͦ͐̋̐̅ͯ͢ ̢̦͍̰̬͚ͯ́ͫ̿ͨ͘͘͝͡ ̢̦͍̰̬͚ͯ́ͫ̿ͨ͘͘͝͡t̴̨͉̟̥͛͐̇̀̎̒̄ͧ̀̇t̴̨͉̟̥͛͐̇̀̎̒̄ͧ̀̇o̸͇͏̷͍͉̠ͤ̈̾ͤ͛ͥ̚͝o̸͇͏̷͍͉̠ͤ̈̾ͤ͛ͥ̚͝ ̸̣͕̝̯̼́ͨͯ̏̋̂̑́͘ ̸̣͕̝̯̼́ͨͯ̏̋̂̑́͘l̵̨̛̬̱̣̬͚̺̫̳ͨ̽ͫͯl̵̨̛̬̱̣̬͚̺̫̳ͨ̽ͫͯḙ̳͕̝̥̄̆ͮ̄ͦͨ̓̚͏͢ḙ̳͕̝̥̄̆ͮ̄ͦͨ̓̚͏͢t̵̼̲̣̉̀̌ͭ̒̓͌̀͒̀ͅt̵̼̲̣̉̀̌ͭ̒̓͌̀͒̀ͅ ̺͈͙̘̣̩̙͕̋̇͆̀͊̇̂ ̺͈͙̘̣̩̙͕̋̇͆̀͊̇̂i̧̭̲̼̗̥̪̣̭ͬ͑ͨ̓̈̐i̧̭̲̼̗̥̪̣̭ͬ͑ͨ̓̈̐ṱ̴̯̲̱̫̲̥ͭ̀͋̂̚̕͟ṱ̴̯̲̱̫̲̥ͭ̀͋̂̚̕͟ ̖̗͔̦̲̻̌̀̏͆͊ͤ̑ͨ̉ ̖̗͔̦̲̻̌̀̏͆͊ͤ̑ͨ̉s̨̢͔̄̃ͯ̈́̑͐̚̕͢͝͝s̨̢͔̄̃ͯ̈́̑͐̚̕͢͝͝t͚͉͇̳̘̅̇̋͌̀̋́ͨ́͏t͚͉͇̳̘̅̇̋͌̀̋́ͨ́͏â͇͎̺ͨͭ͡͏͚̯ͤͩ͋ͧ͘â͇͎̺ͨͭ͡͏͚̯ͤͩ͋ͧ͘r̷̘̜͍̫̯ͭͪ͑͗̓͆͟͝ͅr̷̘̜͍̫̯ͭͪ͑͗̓͆͟͝ͅṭ̷̢̱͕̎ͬ̿́́͊̐͟͢͜ṭ̷̢̱͕̎ͬ̿́́͊̐͟͢͜ ̟̥̖͕̭͍̲ͩ̆̒̑͊̕̚͡ ̟̥̖͕̭͍̲ͩ̆̒̑͊̕̚͡p̶̴̨̧̜̰̜̘̉̽ͤ́͘͢͜p̶̴̨̧̜̰̜̘̉̽ͤ́͘͢͜ṙ̠̘̟̭͖̜̜͍ͦ̾͒͜͠͞ṙ̠̘̟̭͖̜̜͍ͦ̾͒͜͠͞ǒ̷̶̫͈̫̹ͬ͂ͧ̿̿̑͂͂ǒ̷̶̫͈̫̹ͬ͂ͧ̿̿̑͂͂c̵̸̮͕̮͈̞̼͎͉͍̑́ͭ̀c̵̸̮͕̮͈̞̼͎͉͍̑́ͭ̀e̸̡͔͓̳̞̟̘ͩ̍̽ͪͤͣ͢e̸̡͔͓̳̞̟̘ͩ̍̽ͪͤͣ͢s̨͍̬̖͂̏ͦ̀ͫ̐ͨͪ͡ͅͅs̨͍̬̖͂̏ͦ̀ͫ̐ͨͪ͡ͅͅs̡̻̹̜͍̺͌͛ͮ̓̀̈́̉̿͑s̡̻̹̜͍̺͌͛ͮ̓̀̈́̉̿͑í̤̜ͭ͢͏̶̶̹͍ͤͪ̉ͫ̋í̤̜ͭ͢͏̶̶̹͍ͤͪ̉ͫ̋ņ̵̼̪̭̲̤͙͖̒̑ͨ͂̌͘ņ̵̼̪̭̲̤͙͖̒̑ͨ͂̌͘g̷̢̢̭̘̙̥̖̲̭͛ͣ́̀̍g̷̢̢̭̘̙̥̖̲̭͛ͣ́̀̍ ̷̺̱̙̹͔̗͆ͪ̾ͬͬ̓͘͠ ̷̺̱̙̹͔̗͆ͪ̾ͬͬ̓͘͠t̛̤̻̲̓̓ͩ̇ͫͫ͆ͦ͛̕͞t̛̤̻̲̓̓ͩ̇ͫͫ͆ͦ͛̕͞ḣ̜̘̮̫͍̗͇ͥͯ̽̕͢͢͝ḣ̜̘̮̫͍̗͇ͥͯ̽̕͢͢͝ẹ̵̱̹͚͖̜̞̆̾͌ͬ̀̿͞ẹ̵̱̹͚͖̜̞̆̾͌ͬ̀̿͞m̶̢̧͉̝̜̝̍͑͂̽̌̉̈́ͩm̶̢̧͉̝̜̝̍͑͂̽̌̉̈́ͩ }| + {100:~ }|*6 + | + ]], + }) + end) + it('works with arabic input and arabicshape', function() command('set arabic') @@ -285,11 +304,6 @@ describe('multibyte rendering: statusline', function() before_each(function() clear() screen = Screen.new(40, 4) - screen:set_default_attr_ids({ - [1] = { bold = true, foreground = Screen.colors.Blue1 }, - [2] = { bold = true, reverse = true }, - [3] = { background = Screen.colors.Red, foreground = Screen.colors.Gray100 }, - }) screen:attach() command('set laststatus=2') end) @@ -299,7 +313,7 @@ describe('multibyte rendering: statusline', function() screen:expect([[ ^ | {1:~ }| - {2:你好 }| + {3:你好 }| | ]]) end) @@ -308,7 +322,7 @@ describe('multibyte rendering: statusline', function() screen:expect([[ ^ | {1:~ }| - {2:abc }| + {3:abc }| | ]]) end) @@ -317,7 +331,7 @@ describe('multibyte rendering: statusline', function() screen:expect([[ ^ | {1:~ }| - {2:<9f> }| + {3:<9f> }| | ]]) end) @@ -327,7 +341,7 @@ describe('multibyte rendering: statusline', function() screen:expect([[ ^ | {1:~ }| - {2:o̸⃯ᷰ⃐⃧⃝ }| + {3:o̸⃯ᷰ⃐⃧⃝ }| | ]]) end) @@ -337,7 +351,7 @@ describe('multibyte rendering: statusline', function() screen:expect([[ ^ | {1:~ }| - {2:<9f><1df0><20ef><0338><20d0><20e7><20dd>}| + {3:<9f><1df0><20ef><0338><20d0><20e7><20dd>}| | ]]) end) @@ -348,7 +362,7 @@ describe('multibyte rendering: statusline', function() grid = [[ ^ | {1:~ }| - {2: Q≡ }| + {3: Q≡ }| | ]], } @@ -361,7 +375,7 @@ describe('multibyte rendering: statusline', function() grid = [[ ^ | {1:~ }| - {2:🧑�💻 }| + {3:🧑�💻 }| | ]], } @@ -375,7 +389,7 @@ describe('multibyte rendering: statusline', function() grid = [[ ^ | {1:~ }| - {2:xx}{3:🧑<200d>💻}{2:yy }| + {3:xx}{9:🧑<200d>💻}{3:yy }| | ]], } |